/* =====================================================================
   ESTILO — identidade visual do sistema. Não precisa editar.
   Direção: "livro-caixa". Números em fonte monoespaçada e alinhados,
   como fita de máquina registradora. Interface silenciosa, dado em destaque.
   ===================================================================== */

:root{
  --marca:#0C4A45;
  --marca-clara:#12655E;
  --tinta:#17262B;
  --tinta-fraca:#5D6E73;
  --papel:#EDF0F0;
  --cartao:#FFFFFF;
  --linha:#D7DEDD;
  --entrada:#17715A;
  --saida:#A8392F;
  --alerta:#B37413;
  --raio:10px;
  --sombra:0 1px 2px rgba(23,38,43,.06), 0 8px 24px rgba(23,38,43,.06);
}

*{box-sizing:border-box;}

html,body{margin:0;padding:0;}

body{
  background:var(--papel);
  color:var(--tinta);
  font-family:'Public Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;
  font-size:16px;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3{
  font-family:'Bricolage Grotesque','Public Sans',Arial,sans-serif;
  font-weight:700;
  letter-spacing:-.02em;
  margin:0 0 .4em;
  line-height:1.15;
}
h1{font-size:1.75rem;}
h2{font-size:1.15rem;}

a{color:var(--marca);}

/* ---------- números: sempre monoespaçados e alinhados ---------- */
.num{
  font-family:'IBM Plex Mono',ui-monospace,'Courier New',monospace;
  font-variant-numeric:tabular-nums;
  letter-spacing:-.02em;
}
.positivo{color:var(--entrada);}
.negativo{color:var(--saida);}

/* ---------- topo ---------- */
.topo{
  background:var(--marca);
  color:#EAF2F1;
  padding:14px 20px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
}
.topo .marca{
  font-family:'Bricolage Grotesque',Arial,sans-serif;
  font-weight:800;
  font-size:1.1rem;
  letter-spacing:-.02em;
}
.topo .livro{
  font-size:.8rem;
  text-transform:uppercase;
  letter-spacing:.12em;
  opacity:.75;
  display:block;
}
.topo a{color:#EAF2F1;text-decoration:none;font-size:.9rem;}
.topo a:hover{text-decoration:underline;}

/* ---------- estrutura ---------- */
.pagina{max-width:1000px;margin:0 auto;padding:28px 20px 60px;}

.cartao{
  background:var(--cartao);
  border:1px solid var(--linha);
  border-radius:var(--raio);
  padding:22px;
  box-shadow:var(--sombra);
  margin-bottom:18px;
}

.rotulo{
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.14em;
  color:var(--tinta-fraca);
  font-weight:600;
  margin-bottom:6px;
}

.saldo{
  font-family:'IBM Plex Mono',monospace;
  font-variant-numeric:tabular-nums;
  font-size:2.4rem;
  font-weight:600;
  letter-spacing:-.04em;
  line-height:1.1;
}

.aviso{
  border-left:3px solid var(--alerta);
  background:#FCF6EA;
  padding:12px 16px;
  border-radius:0 var(--raio) var(--raio) 0;
  font-size:.92rem;
  margin-bottom:18px;
}
.erro{
  border-left:3px solid var(--saida);
  background:#FBEEEC;
  padding:12px 16px;
  border-radius:0 var(--raio) var(--raio) 0;
  font-size:.92rem;
  margin-bottom:18px;
}
.ok{
  border-left:3px solid var(--entrada);
  background:#EAF4F0;
  padding:12px 16px;
  border-radius:0 var(--raio) var(--raio) 0;
  font-size:.92rem;
  margin-bottom:18px;
}

/* ---------- formulários ---------- */
label{display:block;font-weight:600;font-size:.88rem;margin:14px 0 5px;}

input[type=text],input[type=email],input[type=password],input[type=date],select{
  width:100%;
  padding:11px 12px;
  border:1px solid var(--linha);
  border-radius:8px;
  font-size:1rem;
  font-family:inherit;
  background:#fff;
  color:var(--tinta);
}
input:focus,select:focus{
  outline:2px solid var(--marca-clara);
  outline-offset:1px;
  border-color:var(--marca-clara);
}
.dica{font-size:.8rem;color:var(--tinta-fraca);margin-top:4px;}

.botao{
  display:inline-block;
  background:var(--marca);
  color:#fff;
  border:0;
  border-radius:8px;
  padding:12px 22px;
  font-size:1rem;
  font-weight:600;
  font-family:inherit;
  cursor:pointer;
  margin-top:20px;
}
.botao:hover{background:var(--marca-clara);}
.botao:focus-visible{outline:2px solid var(--tinta);outline-offset:2px;}

/* ---------- login ---------- */
.entrada-tela{
  min-height:100vh;
  display:grid;
  grid-template-columns:1fr 1fr;
}
.entrada-lado{
  background:var(--marca);
  color:#DCEAE8;
  padding:44px 44px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:6px;
}
.marca-topo{
  font-family:'Bricolage Grotesque',sans-serif;font-weight:800;
  font-size:1.4rem;letter-spacing:-.02em;color:#fff;margin-bottom:auto;
}
.entrada-lado h1.chamada{color:#fff;font-size:2.7rem;line-height:1.08;margin:0 0 18px;}
.sub-chamada{max-width:36ch;opacity:.82;font-size:1rem;line-height:1.5;}
.fita-titulo{
  font-size:.7rem;text-transform:uppercase;letter-spacing:.16em;
  opacity:.6;margin-bottom:8px;
}
.selos{display:flex;gap:8px;flex-wrap:wrap;margin-top:32px;}
.selos span{
  font-size:.76rem;padding:5px 12px;border-radius:20px;
  background:rgba(255,255,255,.12);color:#DCEAE8;
}

/* assinatura visual: fita de caixa */
.fita{
  margin-top:34px;
  font-family:'IBM Plex Mono',monospace;
  font-variant-numeric:tabular-nums;
  font-size:.82rem;
  max-width:42ch;
  opacity:.85;
}
/* só as linhas simples (inicial/final) são flex; as colunas têm layout próprio */
.fita-inicial,.fita-final,.fita-col div{
  display:flex;
  align-items:baseline;
  gap:6px;
  padding:5px 0;
}
.fita span:first-child{white-space:nowrap;}
.fita i{
  flex:1;
  border-bottom:1px dotted rgba(255,255,255,.35);
  transform:translateY(-3px);
}
.fita .vermelho{color:#F0A79E;}

.entrada-form{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:40px 24px;
}
.entrada-form .caixa-form{width:100%;max-width:360px;}

/* ---------- tabela ---------- */
table{width:100%;border-collapse:collapse;font-size:.93rem;}
th{
  text-align:left;
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.1em;
  color:var(--tinta-fraca);
  border-bottom:1px solid var(--linha);
  padding:8px 10px;
}
td{padding:10px;border-bottom:1px solid var(--linha);}
td.direita,th.direita{text-align:right;}

.lista-passos{padding-left:20px;color:var(--tinta-fraca);}
.lista-passos li{margin-bottom:8px;}
.lista-passos b{color:var(--tinta);}

/* ---------- responsivo ---------- */
@media (max-width:760px){
  .entrada-tela{grid-template-columns:1fr;}
  .entrada-lado{padding:36px 24px;}
  .entrada-lado h1{font-size:1.9rem;}
  .saldo{font-size:2rem;}
  .pagina{padding:20px 14px 50px;}
  .cartao{padding:18px;}
}

@media (prefers-reduced-motion:reduce){
  *{animation:none !important;transition:none !important;}
}

/* =====================================================================
   COMPONENTES — lançamentos, filtros, etiquetas
   ===================================================================== */

.topo .menu{display:flex;gap:16px;align-items:center;flex-wrap:wrap;}
.topo .menu a.ativo{text-decoration:underline;font-weight:600;}
.topo .menu a.destaque{
  background:rgba(255,255,255,.15);
  padding:6px 14px;
  border-radius:7px;
  font-weight:600;
}
.topo .menu a.destaque:hover{background:rgba(255,255,255,.25);text-decoration:none;}

/* filtros */
.filtros{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;}
.filtros > div{flex:1;min-width:130px;}
.filtros label{margin-top:0;}
.botao-filtro{margin-top:0;padding:11px 20px;}

/* três colunas de totais */
.tres-colunas{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
.tres-colunas .cartao{margin-bottom:18px;}
.valor-medio{font-size:1.35rem;font-weight:600;letter-spacing:-.03em;}

/* etiquetas de situação */
.etiqueta{
  display:inline-block;
  font-size:.72rem;
  font-weight:600;
  letter-spacing:.04em;
  padding:3px 9px;
  border-radius:20px;
  white-space:nowrap;
}
.et-previsto {background:#E7ECEE;color:#4A5A60;}
.et-atrasado {background:#FBEEEC;color:var(--saida);}
.et-parcial  {background:#FCF6EA;color:#8A5A0F;}
.et-realizado{background:#EAF4F0;color:var(--entrada);}

tr.sit-atrasado td{background:#FDF7F6;}

/* tabela com rolagem no celular */
.rolagem{overflow-x:auto;}
.nowrap{white-space:nowrap;}

table.resumo td{border:0;padding:6px 0;}

/* formulário */
.escolha{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:4px;}
.opcao{
  display:flex;
  align-items:center;
  gap:7px;
  font-weight:400;
  margin:6px 0;
  cursor:pointer;
}
.opcao input{width:auto;}

input[type=file]{
  width:100%;
  padding:10px;
  border:1px dashed var(--linha);
  border-radius:8px;
  background:#fff;
  font-size:.9rem;
}

.bloco-concluido{
  margin-top:22px;
  padding:14px 16px;
  background:var(--papel);
  border-radius:var(--raio);
}

.anexos{margin-top:10px;display:flex;flex-direction:column;gap:6px;font-size:.9rem;}

.botao-claro{background:#fff;color:var(--marca);border:1px solid var(--marca);}
.botao-claro:hover{background:var(--papel);}

.link-cancelar{margin-left:16px;font-size:.92rem;}

@media (max-width:700px){
  .tres-colunas{grid-template-columns:1fr;}
  .filtros > div{min-width:calc(50% - 6px);}
}

/* =====================================================================
   PAINEL PRINCIPAL E FICHA DO LANÇAMENTO
   ===================================================================== */

.topo-painel{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.cartao-caixa .saldo{font-size:2rem;}

.alerta-furo{font-size:1rem;line-height:1.55;}

.cabecalho-bloco{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  margin-bottom:14px;
}
.cabecalho-bloco h2{margin:0;}

.botao-pequeno{margin-top:0;padding:8px 16px;font-size:.9rem;}

.botao-mini{
  display:inline-block;
  background:var(--marca);
  color:#fff;
  padding:5px 12px;
  border-radius:6px;
  font-size:.82rem;
  font-weight:600;
  text-decoration:none;
  white-space:nowrap;
}
.botao-mini:hover{background:var(--marca-clara);}

.link-linha{
  color:var(--tinta);
  text-decoration:none;
  font-weight:600;
  border-bottom:1px solid transparent;
}
.link-linha:hover{border-bottom-color:var(--marca);}

.mini-alerta{
  font-size:.68rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--saida);
  font-weight:600;
  margin-top:2px;
}

.tabela-fluxo td{vertical-align:top;}

/* ficha */
.volta{margin:0 0 12px;font-size:.92rem;}
.titulo-ficha{margin:10px 0 4px;}
.ficha-valor{
  font-family:'IBM Plex Mono',monospace;
  font-variant-numeric:tabular-nums;
  font-size:1.9rem;
  font-weight:600;
  letter-spacing:-.03em;
  margin-bottom:16px;
}

.anexos-grande{display:flex;flex-direction:column;gap:10px;margin-top:8px;}
.anexo-item{
  display:block;
  padding:14px 16px;
  border:1px solid var(--linha);
  border-radius:var(--raio);
  text-decoration:none;
  background:var(--papel);
}
.anexo-item:hover{border-color:var(--marca);}
.anexo-nome{display:block;font-weight:600;color:var(--tinta);margin-bottom:2px;}

.acoes-ficha{display:flex;gap:12px;flex-wrap:wrap;}
.acoes-ficha .botao{margin-top:0;text-decoration:none;}

.form-excluir{margin-top:18px;}
.link-excluir{
  background:none;
  border:0;
  color:var(--saida);
  font-family:inherit;
  font-size:.88rem;
  cursor:pointer;
  padding:0;
  text-decoration:underline;
}

.campo-secundario{margin-top:8px;}

@media (max-width:700px){
  .topo-painel{grid-template-columns:1fr;}
  .cartao-caixa .saldo{font-size:1.8rem;}
  .ficha-valor{font-size:1.5rem;}
}

/* =====================================================================
   LANÇAMENTO RÁPIDO, EXTRATO E ANÁLISE
   ===================================================================== */

.identidade{text-decoration:none;display:block;}
.identidade:hover .marca{text-decoration:underline;}

/* lançar sem sair da página */
.lancar-rapido{padding:0;}
.lancar-rapido summary{
  padding:18px 22px;
  cursor:pointer;
  font-weight:600;
  display:flex;
  align-items:center;
  gap:12px;
  list-style:none;
}
.lancar-rapido summary::-webkit-details-marker{display:none;}
.lancar-rapido summary .mais{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:26px;height:26px;
  border-radius:50%;
  background:var(--marca);
  color:#fff;
  font-size:1.05rem;
  line-height:1;
}
.lancar-rapido[open] summary{border-bottom:1px solid var(--linha);}
.lancar-rapido form{padding:4px 22px 22px;}

.linha-campos{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px;}
.linha-campos .c2{grid-column:span 1;}
.linha-campos label{margin-top:12px;}

/* extrato */




tfoot td{border-top:2px solid var(--linha);border-bottom:0;}

.cabecalho-impressao{display:none;}

@media (max-width:800px){
        .linha-campos{grid-template-columns:1fr;}
}

/* ---------- impressão / PDF ---------- */
@media print{
  .naoimprimir, .topo, .lancar-rapido{display:none !important;}
  .cabecalho-impressao{display:block;margin-bottom:18px;}
  body{background:#fff;font-size:11pt;}
  .pagina{max-width:100%;padding:0;}
  .cartao{
    border:1px solid #ccc;
    box-shadow:none;
    break-inside:avoid;
    page-break-inside:avoid;
    margin-bottom:12px;
  }
    a{text-decoration:none;color:inherit;}
}

/* =====================================================================
   SINO DE AVISOS
   ===================================================================== */
.sino{position:relative;}
.sino summary{
  list-style:none;cursor:pointer;display:flex;align-items:center;gap:5px;
  padding:6px 10px;border-radius:7px;background:rgba(255,255,255,.12);
}
.sino summary::-webkit-details-marker{display:none;}
.sino summary:hover{background:rgba(255,255,255,.22);}
.icone-sino{width:19px;height:19px;color:#EAF2F1;display:block;}
.contador{
  background:#E4574A;color:#fff;font-size:.72rem;font-weight:700;
  min-width:19px;height:19px;border-radius:10px;
  display:inline-flex;align-items:center;justify-content:center;padding:0 5px;
}
.painel-avisos{
  position:absolute;right:0;top:calc(100% + 8px);z-index:50;
  width:330px;max-height:400px;overflow-y:auto;
  background:#fff;color:var(--tinta);
  border:1px solid var(--linha);border-radius:var(--raio);
  box-shadow:0 12px 32px rgba(23,38,43,.18);
}
.cabecalho-avisos{
  padding:12px 16px;border-bottom:1px solid var(--linha);
  font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;
  font-weight:700;color:var(--tinta-fraca);
}
.vazio-avisos{padding:16px;margin:0;font-size:.9rem;color:var(--tinta-fraca);}
.item-aviso{
  display:grid;grid-template-columns:1fr auto;gap:2px 10px;
  padding:11px 16px;border-bottom:1px solid var(--linha);
  text-decoration:none;color:var(--tinta);
}
.item-aviso:last-child{border-bottom:0;}
.item-aviso:hover{background:var(--papel);}
.texto-aviso{
  font-size:.7rem;text-transform:uppercase;letter-spacing:.07em;
  font-weight:700;color:var(--tinta-fraca);
}
.texto-aviso.grave{color:var(--saida);}
.desc-aviso{font-weight:600;font-size:.94rem;}
.valor-aviso{grid-row:2;text-align:right;font-size:.9rem;}

/* =====================================================================
   BOTÃO GRANDE DE LANÇAR
   ===================================================================== */
.lancar-rapido summary{
  padding:22px;justify-content:center;font-size:1.05rem;
}
.lancar-rapido summary .mais{
  width:40px;height:40px;font-size:1.6rem;font-weight:400;
}
.lancar-rapido[open] summary .mais{transform:rotate(45deg);}
.texto-lancar{font-weight:700;}

/* =====================================================================
   EXTRATO E ANÁLISE
   ===================================================================== */
.barra-periodo .filtros{align-items:flex-end;}

.rodape-periodo{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  flex-wrap:wrap;margin-top:16px;padding-top:14px;
  border-top:1px solid var(--linha);
}
.atalhos-periodo{display:flex;gap:18px;flex-wrap:wrap;font-size:.92rem;}
.botao-pdf{margin-top:0;padding:10px 20px;font-size:.92rem;}

.faixa-resumo{
  display:grid;grid-template-columns:repeat(4,1fr);gap:1px;
  background:var(--linha);
  border:1px solid var(--linha);border-radius:var(--raio);
  overflow:hidden;margin-bottom:18px;
}
.bloco-resumo{background:#fff;padding:18px 20px;}
.destaque-resumo{background:#F7FAFA;}
.numero-resumo{
  font-size:1.4rem;font-weight:600;letter-spacing:-.03em;line-height:1.2;
}

.dois-graficos{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.dois-graficos .cartao{margin-bottom:18px;}

.area-grafico{display:grid;grid-template-columns:190px 1fr;gap:22px;align-items:start;}
.pizza{width:190px;height:190px;display:block;}
.rosca-rotulo{
  font-family:'Public Sans',sans-serif;font-size:9px;
  fill:#5D6E73;text-transform:uppercase;letter-spacing:.12em;
}
.rosca-valor{
  font-family:'IBM Plex Mono',monospace;font-size:13px;
  font-weight:600;fill:#17262B;
}

.legenda{display:flex;flex-direction:column;}
.item-legenda{border-bottom:1px solid var(--linha);}
.item-legenda:last-child{border-bottom:0;}
.item-legenda summary{
  display:grid;grid-template-columns:12px 1fr auto 52px;
  gap:9px;align-items:center;
  padding:9px 0;cursor:pointer;font-size:.9rem;list-style:none;
}
.item-legenda summary::-webkit-details-marker{display:none;}
.item-legenda summary:hover .nome-legenda{text-decoration:underline;}
.bolinha{width:12px;height:12px;border-radius:3px;display:block;}
.nome-legenda{font-weight:600;}
.valor-legenda{font-size:.88rem;}
.perc{text-align:right;color:var(--tinta-fraca);font-size:.82rem;}

.detalhe-legenda{padding:2px 0 12px 21px;}
.sub-item{
  display:flex;justify-content:space-between;gap:12px;
  padding:5px 0;font-size:.86rem;
  color:var(--tinta-fraca);text-decoration:none;
}
.sub-item:hover{color:var(--tinta);}

.form-inline{display:flex;gap:8px;align-items:center;}
.form-inline input[type=text]{width:auto;flex:1;padding:7px 10px;font-size:.9rem;}

@media (max-width:900px){
  .dois-graficos{grid-template-columns:1fr;}
  .faixa-resumo{grid-template-columns:repeat(2,1fr);}
  .area-grafico{grid-template-columns:1fr;justify-items:center;}
  .legenda{width:100%;}
  .painel-avisos{width:min(330px,86vw);}
}

@media print{
  .faixa-resumo{grid-template-columns:repeat(4,1fr);}
  .dois-graficos{grid-template-columns:1fr 1fr;}
  .detalhe-legenda{display:none;}
}

/* ---------- categoria em lista suspensa ---------- */
.linha-categoria{display:flex;gap:8px;align-items:center;}
.linha-categoria select{flex:1;}
.linha-categoria .apagar-cat{
  border:1px solid var(--linha);background:#fff;color:var(--saida);
  font-size:1.3rem;line-height:1;padding:0 14px;height:44px;
  border-radius:8px;cursor:pointer;
}
.linha-categoria .apagar-cat:hover:enabled{background:#FBEEEC;border-color:var(--saida);}
.linha-categoria .apagar-cat:disabled{
  color:var(--linha);border-color:var(--linha);
  cursor:not-allowed;background:var(--papel);
}

.fatia{transition:opacity .12s;cursor:default;}
.area-grafico:hover .fatia{opacity:.55;}
.area-grafico .fatia:hover{opacity:1;}

/* ---------- categorias como etiquetas (não usado) ---------- */
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 4px;}
.chip-caixa{display:inline-flex;align-items:stretch;}
.chip{
  display:inline-flex;align-items:center;gap:6px;
  padding:8px 14px;margin:0;font-weight:500;font-size:.9rem;
  border:1px solid var(--linha);border-radius:20px;
  background:#fff;cursor:pointer;white-space:nowrap;
}
.chip input{
  appearance:none;-webkit-appearance:none;
  width:12px;height:12px;margin:0;border-radius:50%;
  border:1px solid var(--linha);background:#fff;
}
.chip input:checked{border:4px solid var(--marca);background:#fff;}
.chip:has(input:checked){
  border-color:var(--marca);background:#EDF4F3;font-weight:600;
}
.chip-caixa .chip{border-top-right-radius:0;border-bottom-right-radius:0;border-right:0;}
.apagar-cat{
  border:1px solid var(--linha);border-left:0;background:#fff;
  color:var(--saida);font-size:1rem;line-height:1;
  padding:0 11px;cursor:pointer;
  border-radius:0 20px 20px 0;
}
.apagar-cat:hover{background:#FBEEEC;}
.chip-nova{border-style:dashed;color:var(--marca);font-weight:600;}
.oculto{display:none;}

/* ---------- entradas e saídas lado a lado ---------- */
.duas-listas{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start;}
.duas-listas .cartao{margin-bottom:18px;}

.area-pdf{text-align:right;max-width:280px;}
.area-pdf .dica{margin-top:6px;}

@media (max-width:900px){
  .duas-listas{grid-template-columns:1fr;}
  .area-pdf{text-align:left;max-width:none;}
}

/* ---------- impressão: manter as cores ---------- */
@media print{
  *{
    -webkit-print-color-adjust:exact !important;
    print-color-adjust:exact !important;
    color-adjust:exact !important;
  }
  .duas-listas{grid-template-columns:1fr 1fr;}
  .positivo{color:#17715A !important;}
  .negativo{color:#A8392F !important;}
  .rotulo{color:#5D6E73 !important;}
  @page{margin:12mm;}
}

/* ---------- vendas ---------- */
.botao-venda{
  display:flex;align-items:center;justify-content:center;gap:12px;
  text-decoration:none;color:#fff;font-weight:700;font-size:1.05rem;
  background:var(--marca);border:0;padding:20px;
}
.botao-venda:hover{background:var(--marca-clara);}
.mais-venda{
  display:inline-flex;align-items:center;justify-content:center;
  width:38px;height:38px;border-radius:50%;
  background:rgba(255,255,255,.18);font-family:'IBM Plex Mono',monospace;font-size:1.3rem;
}

.interruptor{font-size:1rem;font-weight:600;}
.interruptor input{width:auto;}

.tabela-taxas .mini-input,.tabela-venda .mini-input{
  width:110px;padding:8px 10px;text-align:right;
  font-family:'IBM Plex Mono',monospace;
}
.tabela-venda th,.tabela-taxas th{white-space:nowrap;}
.liquido-linha{font-family:'IBM Plex Mono',monospace;font-weight:600;}

.mini-data{width:150px;padding:7px 9px;font-size:.88rem;}
@media (max-width:760px){ .mini-data{width:130px;} }

/* ---------- métrica de vendas ---------- */
.separador-vendas{margin:26px 0 4px;padding-top:22px;border-top:2px solid var(--linha);}
.titulo-secao{font-size:1.35rem;}
.faixa-vendas{grid-template-columns:1fr 1fr;}

.item-legenda-simples{
  display:grid;grid-template-columns:12px 1fr auto 52px;
  gap:9px;align-items:center;padding:9px 0;
  border-bottom:1px solid var(--linha);font-size:.9rem;
}
.item-legenda-simples:last-child{border-bottom:0;}

.linha-svg{width:100%;height:auto;display:block;}
.rotulo-x{font-family:'IBM Plex Mono',monospace;font-size:8px;fill:#5D6E73;}

@media print{ .faixa-vendas{grid-template-columns:1fr 1fr;} }

/* ---------- métrica de vendas ---------- */
.faixa-vendas{margin-bottom:18px;}
.faixa-vendas .bloco-resumo{
  border:1px solid var(--linha);border-radius:var(--raio);
}
.linha-vendas{width:100%;min-width:520px;height:auto;display:block;}
.linha-vendas .fatia{cursor:default;}
.eixo-x{font-family:'Public Sans',sans-serif;font-size:10px;fill:#5D6E73;}
.eixo-y{font-family:'IBM Plex Mono',monospace;font-size:9px;fill:#8A9599;}
.ponto-unico{padding:20px 0;font-size:1.1rem;}

.quebra-pagina{height:0;}
@media print{
  .quebra-pagina{break-before:page;page-break-before:always;}
}

/* ---------- recorrência ---------- */
.bloco-repetir{
  margin-top:14px;padding:12px 16px;
  background:#EDF4F3;border-radius:var(--raio);
}
.marca-recorrente{
  display:inline-block;margin-left:5px;color:var(--marca);
  font-size:.95rem;vertical-align:middle;
}
.bloco-recorrencia{
  margin-top:18px;padding:14px 16px;
  border:1px solid var(--linha);border-radius:var(--raio);
  background:#F7FAFA;
}
.bloco-recorrencia .opcao{font-size:.9rem;margin:8px 0;}

/* ---------- botão "Ver mais" ---------- */
.area-vermais{text-align:center;margin-top:14px;padding-top:12px;border-top:1px solid var(--linha);}
.botao-vermais{
  background:#fff;border:1px solid var(--linha);
  color:var(--marca);font-family:inherit;font-weight:600;font-size:.9rem;
  padding:9px 22px;border-radius:8px;cursor:pointer;
}
.botao-vermais:hover:enabled{background:var(--papel);border-color:var(--marca);}
.botao-vermais:disabled{opacity:.6;cursor:default;}

/* ---------- diálogo modal (admin) ---------- */
.modal-fundo{
  position:fixed;inset:0;z-index:100;
  background:rgba(23,38,43,.45);
  display:flex;align-items:center;justify-content:center;padding:20px;
}
.modal-caixa{
  background:#fff;border-radius:var(--raio);
  padding:26px;max-width:440px;width:100%;
  box-shadow:0 20px 50px rgba(23,38,43,.3);
}
.modal-caixa h2{margin-top:0;}

/* link esqueci a senha */
.link-ajuda{margin-top:18px;font-size:.9rem;text-align:center;}
.link-ajuda a{color:var(--tinta-fraca);}

/* botão redefinir senha no admin */
.link-redefinir{
  background:none;border:0;color:var(--marca);
  font-family:inherit;font-size:.88rem;cursor:pointer;
  text-decoration:underline;margin-right:12px;padding:0;
}
.link-redefinir:hover{color:var(--marca-clara);}

/* =====================================================================
   REVISÃO MOBILE CONSOLIDADA — telas no tamanho de celular
   ===================================================================== */
@media (max-width:600px){

  /* topo: marca à esquerda, sino + hambúrguer à direita */
  .topo{padding:12px 16px;gap:10px;}
  .topo .marca{font-size:1rem;}
  .menu{gap:8px;font-size:.92rem;width:auto;flex-wrap:nowrap;}
  .sino summary{padding:5px 8px;}
  /* No mobile o painel de avisos usa position:fixed para aparecer inteiro. */
  .sino{position:static;}
  .painel-avisos{
    position:fixed;top:64px;right:12px;left:auto;
    width:min(340px,92vw);max-height:70vh;
  }

  /* páginas com menos respiro lateral */
  .pagina{padding:16px 12px 44px;}
  .cartao{padding:16px;}

  /* números grandes não estouram a largura */
  .saldo{font-size:1.7rem;}
  .cartao-caixa .saldo{font-size:1.6rem;}
  .topo-painel{grid-template-columns:1fr;gap:12px;}

  /* tabelas: fonte menor e rolagem horizontal suave onde precisa */
  table{font-size:.86rem;}
  th{font-size:.66rem;}
  td{padding:9px 7px;}
  .botao-mini{padding:5px 10px;font-size:.78rem;}

  /* botões grandes de ação ocupam a largura toda, mais fáceis de tocar */
  .botao-venda{padding:16px;font-size:.98rem;}
  .lancar-rapido summary{padding:18px;font-size:.98rem;}
  .botao{width:100%;text-align:center;}
  .link-cancelar{display:block;text-align:center;margin:12px 0 0;}

  /* formulário de venda: cada forma vira um bloco, sem tabela espremida */
  .tabela-venda thead{display:none;}
  .tabela-venda, .tabela-venda tbody, .tabela-venda tr, .tabela-venda td{display:block;width:100%;}
  .tabela-venda tr{
    border:1px solid var(--linha);border-radius:var(--raio);
    padding:10px 12px;margin-bottom:10px;
  }
  .tabela-venda td{border:0;padding:4px 0;display:flex;justify-content:space-between;align-items:center;}
  .tabela-venda td::before{content:attr(data-rotulo);font-weight:600;color:var(--tinta-fraca);font-size:.82rem;}
  .tabela-venda .mini-input{width:130px;}
  .tabela-venda tfoot{display:block;margin-top:6px;}
  .tabela-venda tfoot tr{border:0;padding:0;}
  .tabela-venda tfoot td{padding:3px 0;}

  /* taxas nos ajustes: inputs menores mas tocáveis */
  .tabela-taxas .mini-input{width:88px;padding:9px 8px;}

  /* filtros do extrato empilham */
  .filtros > div{min-width:100%;}
  .rodape-periodo{flex-direction:column;align-items:stretch;gap:12px;}
  .area-pdf{text-align:center;max-width:none;}
  .botao-pdf{width:100%;}

  /* faixa de resumo do extrato: 2 colunas */
  .faixa-resumo{grid-template-columns:1fr 1fr;}
  .numero-resumo{font-size:1.15rem;}

  /* gráficos empilham e centralizam */
  .dois-graficos{grid-template-columns:1fr;}
  .area-grafico{grid-template-columns:1fr;justify-items:center;}
  .pizza{width:170px;height:170px;}

  /* entradas e saídas do extrato empilham */
  .duas-listas{grid-template-columns:1fr;}

  /* três/quatro colunas de cartões viram uma */
  .tres-colunas,.quatro-colunas{grid-template-columns:1fr;}

  /* modais do admin caber na tela */
  .modal-caixa{padding:20px;}

  /* formulário: linha de campos empilha */
  .linha-campos{grid-template-columns:1fr;}

  /* login: vira uma coluna, lado visual em cima menor */
  .entrada-tela{grid-template-columns:1fr;}
  .entrada-lado{padding:32px 24px;gap:4px;}
  .entrada-lado h1.chamada{font-size:2rem;}
  .fita{margin-top:20px;}
  .selos{margin-top:20px;}
}

/* telas muito estreitas (iPhone SE etc) */
@media (max-width:380px){
  .saldo{font-size:1.5rem;}
  .faixa-resumo{grid-template-columns:1fr;}
  table{font-size:.82rem;}
}

/* ---------- venda: seletor de modalidade e repasse ---------- */
.seletor-modalidade{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap;}
.mod-botao{
  flex:1;min-width:180px;padding:12px 16px;border:1px solid var(--linha);
  background:#fff;border-radius:var(--raio);cursor:pointer;
  font-family:inherit;font-size:.92rem;font-weight:600;color:var(--tinta-fraca);
}
.mod-botao.ativo{
  background:var(--marca);color:#fff;border-color:var(--marca);
}
.escolha-comissao,.escolha{display:flex;gap:18px;flex-wrap:wrap;margin:6px 0 12px;}
.escolha-comissao .opcao,.escolha .opcao{font-size:.92rem;}
.resumo-comissao{
  background:var(--papel);border-radius:var(--raio);
  padding:14px 16px;margin:16px 0;
}
.resumo-comissao div{display:flex;justify-content:space-between;padding:4px 0;
  font-family:'IBM Plex Mono',monospace;font-size:.92rem;}
.resumo-comissao span{color:var(--tinta-fraca);font-family:'Public Sans',sans-serif;}

/* ---------- busca em vendas comissionadas ---------- */
.campo-busca{
  width:100%;padding:11px 14px;margin-bottom:12px;
  border:1px solid var(--linha);border-radius:8px;
  font-family:inherit;font-size:.95rem;
}

/* ---------- exemplo de mês no login (duas colunas) ---------- */
.fita-inicial{opacity:.9;margin-bottom:4px;}
.fita-final{
  margin-top:4px;padding-top:10px;border-top:1px solid rgba(255,255,255,.2);
  font-weight:700;color:#fff;opacity:1;
}
.fita-colunas{
  display:grid;grid-template-columns:1fr 1fr;gap:22px;
  margin:14px 0;
}
.fita-col-titulo{
  font-size:.68rem;text-transform:uppercase;letter-spacing:.12em;
  margin-bottom:8px;padding-bottom:5px;
  border-bottom:1px solid rgba(255,255,255,.15);
}
.fita-col-titulo.entradas{color:#8FD3BE;}
.fita-col-titulo.saidas{color:#E7A79E;}
.fita-col div{
  font-size:.8rem;opacity:.85;padding:3px 0;
}
.fita-col div i{
  border-bottom:1px dotted rgba(255,255,255,.22);
}
@media (max-width:600px){
  .fita-colunas{gap:14px;}
  .fita-col div{font-size:.74rem;}
}

/* ---------- caixinhas ---------- */
.resumo-caixinha{margin:12px 0 4px;font-size:.92rem;}
.resumo-caixinha div{display:flex;justify-content:space-between;padding:3px 0;
  font-family:'IBM Plex Mono',monospace;}
.resumo-caixinha span{color:var(--tinta-fraca);font-family:'Public Sans',sans-serif;}
.resumo-caixinha .total-linha{
  border-top:1px solid var(--linha);margin-top:5px;padding-top:7px;font-weight:700;
}
.caixinha-item{display:block;}
.caixinha-topo{margin-bottom:12px;}
.caixinha-nome{font-weight:700;font-size:1.05rem;}
.caixinha-saldo{font-size:1.4rem;color:#6B5B95;margin-top:2px;}
.caixinha-acoes{display:flex;gap:10px;flex-wrap:wrap;align-items:center;}
.form-inline{display:flex;gap:6px;align-items:center;margin:0;}
.form-inline .mini-input{width:110px;}
.botao-mini.secundario{background:#fff;color:var(--marca);border:1px solid var(--marca);}
@media (max-width:600px){
  .caixinha-acoes{flex-direction:column;align-items:stretch;}
  .form-inline{width:100%;}
  .form-inline .mini-input{flex:1;}
}

/* busca dentro de listas (painel e extrato) */
.busca-lista{margin-bottom:12px;}

/* ---------- seletor de data na previsão ---------- */
.form-previsao{margin-top:14px;padding-top:14px;border-top:1px solid var(--linha);}
.form-previsao label{
  display:block;font-size:.8rem;color:var(--tinta-fraca);margin-bottom:6px;
}
.linha-previsao{display:flex;gap:12px;align-items:center;flex-wrap:wrap;}
.linha-previsao input[type=date]{
  padding:8px 10px;border:1px solid var(--linha);border-radius:8px;
  font-family:inherit;font-size:.9rem;
}

/* ---------- listas recolhíveis (extrato) ---------- */
.cabecalho-recolhe{
  cursor:pointer;user-select:none;display:flex;align-items:center;gap:8px;
}
.cabecalho-recolhe:hover{opacity:.85;}
.seta-recolhe{
  font-size:.8em;transition:transform .15s;display:inline-block;width:14px;
}
.conta-itens{
  font-size:.7rem;color:var(--tinta-fraca);font-weight:400;
  font-family:'IBM Plex Mono',monospace;
}
.area-recolhivel.recolhido{display:none;}

/* no PDF/impressão, sempre mostra tudo aberto */
@media print{
  .area-recolhivel.recolhido{display:block !important;}
  .seta-recolhe{display:none;}
}

/* ---------- filtro de mês e histórico de vendas ---------- */
.filtro-mes{display:flex;align-items:center;gap:10px;margin-top:8px;}
.filtro-mes input[type=month]{
  padding:8px 10px;border:1px solid var(--linha);border-radius:8px;
  font-family:inherit;font-size:.92rem;
}

/* ---------- botões rápidos de previsão ---------- */
.botoes-previsao{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap;}
.botao-prazo{
  padding:7px 16px;border:1px solid var(--linha);border-radius:20px;
  font-size:.85rem;font-weight:600;color:var(--tinta-fraca);
  text-decoration:none;background:#fff;transition:all .12s;
}
.botao-prazo:hover{border-color:var(--marca);color:var(--marca);}
.botao-prazo.ativo{background:var(--marca);color:#fff;border-color:var(--marca);}

/* ---------- filtro por categoria no gráfico ---------- */
.btn-filtrar-cat{
  margin-left:8px;padding:2px 8px;font-size:.7rem;
  border:1px solid var(--linha);border-radius:12px;background:#fff;
  color:var(--tinta-fraca);cursor:pointer;font-family:inherit;
}
.btn-filtrar-cat:hover{border-color:var(--marca);color:var(--marca);}
.fatia:hover{opacity:.85;}
.aviso-filtro-cat{
  background:var(--papel);border:1px solid var(--linha);border-radius:8px;
  padding:8px 12px;margin-bottom:10px;font-size:.88rem;
  display:flex;align-items:center;gap:10px;
}
.aviso-filtro-cat button{
  padding:3px 10px;font-size:.78rem;border:1px solid var(--marca);
  border-radius:12px;background:var(--marca);color:#fff;cursor:pointer;
  font-family:inherit;
}

/* ---------- legenda simplificada (clicável para filtrar) ---------- */
.item-legenda-linha{
  display:flex;align-items:center;gap:8px;
  padding:8px 6px;border-bottom:1px solid var(--linha);
}
.item-legenda-linha .nome-legenda{flex:1;font-size:.9rem;}
.item-legenda-linha .valor-legenda{font-size:.88rem;white-space:nowrap;}
.item-legenda-linha .perc{font-size:.78rem;color:var(--tinta-fraca);min-width:48px;text-align:right;}
.item-legenda-linha.clicavel{cursor:pointer;border-radius:8px;transition:background .12s;}
.item-legenda-linha.clicavel:hover{background:var(--papel);}
.item-legenda-linha .bolinha{width:12px;height:12px;border-radius:3px;flex-shrink:0;}

/* ---------- botão atalho gastar no cartão ---------- */
.botao-cartao-atalho{
  display:flex;align-items:center;gap:12px;text-decoration:none;
  color:var(--tinta);margin-bottom:16px;transition:background .12s;
}
.botao-cartao-atalho:hover{background:var(--papel);}
.botao-cartao-atalho .mais{font-size:1.3rem;}
.botao-cartao-atalho .texto-lancar{font-weight:600;}

/* ---------- faturas expansíveis na página de cartões ---------- */
.fatura-bloco{border:1px solid var(--linha);border-radius:10px;margin-bottom:10px;overflow:hidden;}
.fatura-bloco summary{
  display:flex;align-items:center;gap:12px;padding:12px 14px;cursor:pointer;
  list-style:none;
}
.fatura-bloco summary::-webkit-details-marker{display:none;}
.fatura-bloco summary::before{content:'▸';color:var(--tinta-fraca);font-size:.8em;}
.fatura-bloco[open] summary::before{content:'▾';}
.fatura-mes{font-weight:600;flex:1;}
.fatura-total{font-weight:600;}
.fatura-detalhe{padding:0 14px 14px;}
.fatura-acoes{margin-top:12px;}

/* ---------- menu hambúrguer (desktop: escondido; mobile: ativo) ---------- */
.menu-hamburguer{position:relative;display:none;} /* escondido no desktop */
.menu-hamburguer summary{
  list-style:none;cursor:pointer;padding:6px 8px;display:flex;align-items:center;
}
.menu-hamburguer summary::-webkit-details-marker{display:none;}
.icone-hamburguer{width:26px;height:26px;color:#fff;}
.menu-hamburguer .links-menu{
  position:fixed;top:60px;right:12px;z-index:60;
  background:#fff;border-radius:12px;box-shadow:0 10px 40px rgba(0,0,0,.18);
  padding:8px;min-width:200px;display:flex;flex-direction:column;
}
.menu-hamburguer .links-menu a{
  padding:12px 14px;border-radius:8px;color:var(--tinta);text-decoration:none;
  font-size:1rem;
}
.menu-hamburguer .links-menu a:hover{background:var(--papel);}
.menu-hamburguer .links-menu a.ativo{font-weight:700;background:var(--papel);}

/* links inline: visíveis no desktop */
.links-inline{display:flex;gap:16px;align-items:center;}

@media (max-width:600px){
  /* no mobile, esconde os links inline e mostra o hambúrguer */
  .links-inline{display:none;}
  .menu-hamburguer{display:block;}
}

/* ---------- Equipe / funcionários (ajustes) ---------- */
.funcionario-bloco{border:1px solid var(--linha);border-radius:10px;margin-bottom:10px;overflow:hidden;}
.funcionario-bloco summary{
  display:flex;align-items:center;gap:12px;padding:12px 14px;cursor:pointer;list-style:none;
}
.funcionario-bloco summary::-webkit-details-marker{display:none;}
.funcionario-bloco summary::before{content:'▸';color:var(--tinta-fraca);font-size:.8em;}
.funcionario-bloco[open] summary::before{content:'▾';}
.func-nome{font-weight:600;flex:1;}
.func-situacao{font-size:.8rem;font-weight:600;}
.funcionario-detalhe{padding:0 14px 16px;}
.grade-permissoes{
  display:grid;grid-template-columns:1fr 1fr;gap:8px 16px;margin:12px 0;
}
.grade-permissoes .opcao{display:flex;align-items:center;gap:8px;font-size:.9rem;cursor:pointer;}
.func-acoes{margin-top:12px;display:flex;gap:16px;align-items:center;}
.link-secundario{background:none;border:none;color:var(--tinta-fraca);cursor:pointer;text-decoration:underline;font-size:.88rem;padding:0;}
.novo-funcionario summary .func-nome{color:var(--verde);}
@media (max-width:600px){
  .grade-permissoes{grid-template-columns:1fr;}
}

/* ---------- Ajustes: índice e seções colapsáveis ---------- */
.indice-ajustes{
  display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px;
}
.indice-ajustes a{
  padding:8px 14px;background:var(--papel);border-radius:20px;
  text-decoration:none;color:var(--tinta);font-size:.9rem;font-weight:600;
  border:1px solid var(--linha);transition:background .12s;
}
.indice-ajustes a:hover{background:var(--verde);color:#fff;}
.secao-ajuste{padding:0;overflow:hidden;}
.secao-ajuste > summary{
  list-style:none;cursor:pointer;padding:16px 20px;display:flex;align-items:center;
  justify-content:space-between;
}
.secao-ajuste > summary::-webkit-details-marker{display:none;}
.secao-ajuste > summary h2{margin:0;font-size:1.1rem;}
.secao-ajuste > summary::after{content:'▾';color:var(--tinta-fraca);font-size:.9em;}
.secao-ajuste[open] > summary::after{content:'▴';}
.secao-ajuste > summary:hover{background:var(--papel);}
.secao-conteudo{padding:0 20px 20px;}
