/* ELC Financeiro: fundo escuro com tons apagados; cor viva só em detalhes. Celular (390px) primeiro. */
:root{
  --bg:#0f1114;--card:#171a1e;--card2:#1f2328;--line:rgba(255,255,255,.08);
  --acc:#8fb0c4;--acc-bg:rgba(143,176,196,.12);--acc-txt:#12202a;
  --txt:#e9ecef;--dim:#8a9099;--ok:#7fb39a;--ok-bg:rgba(127,179,154,.13);--err:#d48a8a;--err-bg:rgba(212,138,138,.13);
  --warn:#d1ad78;--warn-bg:rgba(209,173,120,.13);--nav:64px;--menu:220px
}
*{box-sizing:border-box;margin:0;padding:0;font-family:'Segoe UI',system-ui,-apple-system,sans-serif;-webkit-tap-highlight-color:transparent}
html,body{background:var(--bg);color:var(--txt)}
body{min-height:100dvh;overflow-x:hidden}
.hide{display:none !important}
.dim{color:var(--dim);font-size:13px;line-height:1.45}
.ico{width:20px;height:20px;flex:none;display:block}
button{font:inherit;color:inherit}

/* conectar aparelho */
.entrar{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px 16px}
.entrar-card{width:100%;max-width:360px;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:28px 22px;text-align:center}
.entrar-card h1{font-size:23px;margin:12px 0 6px}
.entrar-card label{text-align:left}
.entrar-logo{border-radius:16px;display:block;margin:0 auto}
.senha-campo{position:relative}
.senha-campo input{padding-right:50px}
.ver-senha{position:absolute;right:3px;top:50%;transform:translateY(-50%);width:44px;height:44px;background:none;border:none;color:var(--dim);display:flex;align-items:center;justify-content:center;cursor:pointer}

/* formulários e botões */
label{display:block;font-size:12px;color:var(--dim);margin:12px 0 5px}
input,select,textarea{width:100%;background:var(--card2);border:1px solid var(--line);border-radius:11px;padding:12px;color:var(--txt);font-size:16px;outline:none}
input:focus,select:focus,textarea:focus{border-color:var(--acc)}
.btn{border:none;border-radius:12px;padding:13px 18px;font-size:15px;font-weight:700;cursor:pointer;background:var(--acc);color:var(--acc-txt);width:100%;margin-top:14px;display:flex;align-items:center;justify-content:center;gap:8px}
.btn:disabled{opacity:.5;cursor:default}
.btn-sec{background:var(--card2);color:var(--txt);border:1px solid var(--line)}
.btn-perigo{background:var(--err-bg);color:var(--err);border:1px solid rgba(212,138,138,.3)}
.btn-ico{width:44px;height:44px;border-radius:12px;border:1px solid var(--line);background:var(--card);color:var(--dim);display:flex;align-items:center;justify-content:center;cursor:pointer}
.btn-ico.ativo{color:var(--acc);border-color:rgba(143,176,196,.35)}
.msg{font-size:13px;margin-top:10px;min-height:18px}
.msg.err{color:var(--err)}

/* estrutura: menu embaixo no celular, na lateral no computador */
.menu{position:fixed;left:0;right:0;bottom:0;height:calc(var(--nav) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);
  background:rgba(15,17,20,.94);backdrop-filter:blur(10px);border-top:1px solid var(--line);display:flex;z-index:20}
.menu button{flex:1;min-width:0;background:none;border:none;color:var(--dim);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:11px;cursor:pointer;padding:6px 2px}
.menu button span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.menu button.ativo{color:var(--acc)}
.menu button.ativo .ico{filter:drop-shadow(0 0 6px rgba(143,176,196,.35))}
.menu-marca{display:none}
#conteudo{padding-bottom:calc(var(--nav) + env(safe-area-inset-bottom) + 16px)}
.topo{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:calc(10px + env(safe-area-inset-top)) 16px 10px;background:rgba(15,17,20,.9);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.topo h2{font-size:19px}
.aba{display:none;padding:16px;max-width:900px;margin:0 auto}
.aba.ativa{display:block}

@media (min-width:900px){
  .menu{top:0;bottom:0;right:auto;width:var(--menu);height:auto;flex-direction:column;justify-content:flex-start;padding:18px 12px;gap:4px;border-top:none;border-right:1px solid var(--line)}
  .menu button{flex:none;flex-direction:row;justify-content:flex-start;gap:12px;font-size:14px;padding:11px 12px;border-radius:10px}
  .menu button.ativo{background:var(--acc-bg)}
  .menu-marca{display:flex;align-items:center;gap:10px;padding:4px 10px 18px;font-weight:700;font-size:15px}
  .menu-marca img{width:30px;height:30px;border-radius:8px}
  #conteudo{margin-left:var(--menu);padding-bottom:24px}
  .topo{padding:14px 24px}
  .aba{padding:24px}
}

/* blocos */
.sec{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px;margin-bottom:14px}
.sec-title{font-size:13px;font-weight:700;color:var(--dim);text-transform:uppercase;letter-spacing:.04em;margin-bottom:10px}
.vazio{text-align:center;padding:28px 16px}
.vazio .ico{width:34px;height:34px;margin:0 auto 12px;color:var(--acc);opacity:.8}
.vazio h3{font-size:16px;margin-bottom:6px}
.etiqueta{display:inline-block;font-size:11px;font-weight:700;padding:3px 8px;border-radius:999px;background:var(--acc-bg);color:var(--acc)}
.lista-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-top:1px solid var(--line)}
.lista-item:first-child{border-top:none;padding-top:0}
.lista-item strong{font-size:14px;display:block}

/* janela (no lugar de alert/confirm do navegador) */
.modal{position:fixed;inset:0;z-index:50;background:rgba(0,0,0,.55);display:flex;align-items:flex-end;justify-content:center;padding:0}
.modal-box{width:100%;max-width:440px;background:var(--card);border:1px solid var(--line);border-radius:18px 18px 0 0;padding:20px 18px calc(18px + env(safe-area-inset-bottom));max-height:90dvh;overflow:auto}
.modal-box h3{font-size:17px;margin-bottom:8px}
.modal-acoes{display:flex;gap:10px;margin-top:6px}
.modal-acoes .btn{margin-top:12px}
@media (min-width:600px){.modal{align-items:center;padding:16px}.modal-box{border-radius:18px}}

/* aviso rápido */
.toast{position:fixed;left:16px;right:16px;bottom:calc(var(--nav) + env(safe-area-inset-bottom) + 12px);z-index:60;max-width:420px;margin:0 auto;
  background:var(--card2);border:1px solid var(--line);border-radius:12px;padding:12px 14px;font-size:14px;box-shadow:0 8px 30px rgba(0,0,0,.4)}
.toast.ok{border-color:rgba(127,179,154,.35);color:var(--ok)}
.toast.err{border-color:rgba(212,138,138,.35);color:var(--err)}
@media (min-width:900px){.toast{bottom:24px;left:calc(var(--menu) + 16px)}}

/* ---------- etapa 2: notas e estoque ---------- */
a{color:var(--acc);text-decoration:none}
.claro{color:var(--txt)}
.centro{text-align:center;margin-top:8px}
.texto-err{color:var(--err)}
.texto-ok{color:var(--ok)}
.btn-sm{padding:9px 12px;font-size:13px;background:var(--card2);border:1px solid var(--line);color:var(--txt);border-radius:10px;cursor:pointer;white-space:nowrap;font-weight:600;display:inline-flex;align-items:center;gap:6px}
.btn-sm .ico{width:16px;height:16px}
.btn-acc{background:var(--acc-bg);color:var(--acc);border-color:rgba(143,176,196,.3)}
a.btn{text-decoration:none}
.acoes-topo,.acoes-linha{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.acoes-linha{margin:14px 0 0}
.filtros{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}
.filtros input{grid-column:1 / -1}
.filtros select,.filtros input{padding:10px;font-size:15px}
@media (min-width:700px){.filtros{grid-template-columns:1fr 1fr 1fr}.filtros input{grid-column:auto}}
.busca{position:relative;margin-bottom:12px}
.busca .ico{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--dim)}
.busca input{padding-left:40px}
.destaque{display:flex;justify-content:space-between;align-items:center;gap:12px}
.destaque strong{font-size:20px}
/* linha clicável de lista */
.linha{width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;background:none;border:none;border-top:1px solid var(--line);text-align:left;cursor:pointer;color:var(--txt)}
.linha:first-child{border-top:none;padding-top:2px}
.linha strong{display:block;font-size:14.5px}
.linha .dim{display:block;margin-top:2px}
.linha-dir{display:flex;flex-direction:column;align-items:flex-end;gap:5px;flex:none}
.linha.inativo{opacity:.55}
.et-rascunho{background:var(--warn-bg);color:var(--warn)}
.et-confirmada{background:var(--ok-bg);color:var(--ok)}
.et-estornada{background:var(--err-bg);color:var(--err)}
.voltar{display:inline-flex;align-items:center;gap:4px;background:none;border:none;color:var(--dim);font-size:14px;cursor:pointer;padding:4px 0 12px}
.voltar .ico{width:18px;height:18px}
/* formulários de nota e produto */
.grade{display:grid;grid-template-columns:1fr 1fr;gap:0 10px}
.grade > div:last-child:nth-child(odd){grid-column:1 / -1}
@media (min-width:700px){.grade{grid-template-columns:repeat(3,1fr)}.grade > div:last-child:nth-child(odd){grid-column:auto}}
.grade2{display:grid;grid-template-columns:1fr 1fr;gap:0 10px}
textarea{min-height:70px;resize:vertical}
.check{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--txt);margin-top:14px}
.check input{width:18px;height:18px;accent-color:var(--acc)}
.item-form{border:1px solid var(--line);border-radius:12px;padding:12px;margin-bottom:10px;background:rgba(255,255,255,.015)}
.item-form-cab{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.produto-btn{width:100%;text-align:left;background:var(--card2);border:1px solid var(--line);border-radius:11px;padding:12px;cursor:pointer;font-size:15px;margin-top:8px}
.produto-btn.falta{border-color:rgba(209,173,120,.45);color:var(--warn)}
.link,.link-perigo{background:none;border:none;color:var(--acc);font-size:13px;font-weight:600;cursor:pointer;padding:6px 0}
.link-perigo{color:var(--err)}
.total-linha{display:flex;justify-content:space-between;align-items:center;margin-top:16px;padding-top:12px;border-top:1px solid var(--line)}
.total-linha strong{font-size:18px}
/* detalhe da nota */
.cab-nota{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.cab-nota h3{font-size:19px;margin-top:2px}
.info{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px;font-size:14px}
.info > div:last-child:nth-child(odd){grid-column:1 / -1}
.info .dim{display:block;font-size:12px;margin-bottom:2px}
@media (min-width:700px){.info{grid-template-columns:repeat(3,1fr)}.info > div:last-child:nth-child(odd){grid-column:auto}}
.chave{margin-top:12px;word-break:break-all}
.aviso{display:flex;gap:10px;align-items:flex-start;background:var(--warn-bg);color:var(--warn);border-radius:10px;padding:10px 12px;margin-top:12px;font-size:13.5px;line-height:1.4}
.aviso .ico{width:18px;height:18px;margin-top:1px}
.item{padding:14px}
.item-cab{display:flex;justify-content:space-between;gap:12px}
.item-cab strong{font-size:14.5px}
.item-cab .dim{display:block;margin-top:3px}
.item .dim{margin-top:8px}
.lotes{margin-top:10px;border-top:1px dashed var(--line);padding-top:8px}
.lote-linha{display:flex;justify-content:space-between;gap:12px;font-size:13.5px;padding:4px 0}
.lote-linha span:last-child{text-align:right;flex:none}
.lote-linha.mov{border-top:1px solid var(--line);padding:9px 0}
.lote-linha.mov:first-of-type{border-top:none}
.lote-bloco{border-top:1px solid var(--line);padding:9px 0}
.lote-bloco:first-of-type{border-top:none;padding-top:0}
.riscado{opacity:.55}
.barra-acoes{margin-top:6px}
.barra-acoes .btn{margin-top:10px}
@media (min-width:700px){.barra-acoes{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.barra-acoes .btn{width:auto;flex:1}.barra-acoes p{flex-basis:100%;order:9}}
/* janelas de escolha */
.escolha{max-height:46dvh;overflow:auto;margin-top:10px}
.escolha-item{width:100%;text-align:left;background:none;border:none;border-top:1px solid var(--line);padding:11px 2px;cursor:pointer;color:var(--txt)}
.escolha-item:first-child{border-top:none}
.escolha-item strong{display:block;font-size:14.5px}
.escolha-item:hover strong{color:var(--acc)}
.lote-escolha{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding:10px 0}
.lote-escolha strong,.lote-escolha .dim{display:block}
.lote-escolha input{width:96px;flex:none;text-align:right}

/* ---------- etapa 3: painel, mão de obra, impostos ---------- */
.chips{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;margin-bottom:12px;scrollbar-width:none}
.chip{flex:none;background:var(--card);border:1px solid var(--line);color:var(--dim);border-radius:999px;padding:8px 14px;font-size:13.5px;font-weight:600;cursor:pointer}
.chip.ativo{background:var(--acc-bg);color:var(--acc);border-color:rgba(143,176,196,.35)}
.periodo{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}
.resultado{display:flex;flex-direction:column;gap:4px}
.resultado strong{font-size:28px;letter-spacing:-.01em}
.cartoes{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
@media (min-width:900px){.cartoes{grid-template-columns:repeat(4,1fr)}}
.cartao{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:13px;display:flex;flex-direction:column;gap:4px;min-width:0}
.cartao .dim{font-size:12px}
.cartao strong{font-size:17px;overflow-wrap:anywhere}
.cartao small{font-size:11.5px;color:var(--dim);line-height:1.35}
.cartao.alerta{border-color:rgba(209,173,120,.35)}
.cartao.alerta strong{color:var(--warn)}
.preco{margin-top:10px;border-top:1px dashed var(--line);padding-top:6px}
.preco select{padding:9px;font-size:15px;margin-bottom:6px}
.fim{display:flex;align-items:flex-end;padding-bottom:6px}
.custo-linha{display:grid;grid-template-columns:1fr 110px auto;gap:8px;align-items:center;margin-bottom:8px}
.mes-linha{display:grid;grid-template-columns:64px 1fr 1fr;gap:8px;align-items:center;margin-top:8px;font-size:14px}
.mes-linha input,.faixa-linha input{padding:10px;font-size:15px}
.faixa-cab,.faixa-linha{display:grid;grid-template-columns:36px 1fr 1fr 1fr;gap:6px;align-items:center}
.faixa-cab{font-size:11px;margin-bottom:4px}
.faixa-linha{margin-bottom:6px;font-size:14px}
.faixa-linha span{text-align:center}

/* ---------- etapa 4: assistente ELC ---------- */
.fab{position:fixed;right:16px;bottom:calc(var(--nav) + env(safe-area-inset-bottom) + 16px);z-index:30;width:58px;height:58px;border-radius:50%;border:1px solid rgba(143,176,196,.4);
  background:#1b2630;color:var(--acc);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 8px 24px rgba(0,0,0,.45)}
.fab .ico{width:26px;height:26px}
@media (min-width:900px){.fab{bottom:24px;right:24px}}
.assistente{position:fixed;inset:0;z-index:40;background:var(--bg);display:flex;flex-direction:column;padding-bottom:env(safe-area-inset-bottom)}
@media (min-width:900px){.assistente{left:auto;width:420px;border-left:1px solid var(--line);box-shadow:-10px 0 30px rgba(0,0,0,.35)}body.com-assistente #conteudo{margin-right:420px}}
.as-topo{display:flex;align-items:center;gap:10px;padding:calc(10px + env(safe-area-inset-top)) 14px 10px;border-bottom:1px solid var(--line)}
.as-topo > div{flex:1;min-width:0}
.as-topo strong{display:block;font-size:17px}
.as-topo .dim{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.as-aviso{padding:8px 14px;background:var(--acc-bg);font-size:12.5px}
.as-falas{flex:1;overflow:auto;padding:14px;display:flex;flex-direction:column;gap:8px}
.fala{max-width:86%;padding:10px 13px;border-radius:14px;font-size:15px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}
.fala-eu{align-self:flex-end;background:var(--acc-bg);color:var(--txt);border-bottom-right-radius:4px}
.fala-elc{align-self:flex-start;background:var(--card);border:1px solid var(--line);border-bottom-left-radius:4px}
.as-proposta{margin:0 14px 10px;padding:12px;border:1px solid rgba(209,173,120,.4);background:var(--warn-bg);border-radius:14px}
.as-proposta p{font-size:14.5px;line-height:1.45;margin-top:4px}
.as-barra{display:flex;gap:8px;padding:10px 14px 12px;border-top:1px solid var(--line)}
.as-barra input{flex:1;min-width:0}
.as-barra .btn-ico{width:48px;height:48px;flex:none}
#asMic.ouvindo{color:var(--err);border-color:rgba(212,138,138,.5);animation:pulsa 1.4s ease-in-out infinite}
@keyframes pulsa{50%{box-shadow:0 0 0 6px rgba(212,138,138,.12)}}

/* ---------- etapa 5: relatórios ---------- */
.tabela-rolagem{overflow-x:auto;margin:0 -4px}
.tabela{width:100%;border-collapse:collapse;font-size:13px}
.tabela th{text-align:left;color:var(--dim);font-weight:600;font-size:12px;padding:6px 8px;border-bottom:1px solid var(--line);white-space:nowrap}
.tabela td{padding:7px 8px;border-bottom:1px solid var(--line);vertical-align:top}
.tabela .num{text-align:right;white-space:nowrap}
.tabela tfoot td{font-weight:700;border-bottom:none}
.fala-link{align-self:flex-start}
@media print{.chips,.periodo,.acoes-linha,#rTipo,label[for=rTipo]{display:none !important}}

/* primeiros passos */
.passo{width:100%;display:flex;gap:12px;align-items:flex-start;text-align:left;background:none;border:none;border-top:1px solid var(--line);padding:11px 0;cursor:pointer;color:var(--txt)}
.passo:first-of-type{border-top:none;padding-top:2px}
.passo .marca{width:22px;height:22px;flex:none;border-radius:50%;border:1.5px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--ok);margin-top:1px}
.passo.feito .marca{border-color:rgba(127,179,154,.5);background:var(--ok-bg)}
.passo .marca .ico{width:14px;height:14px}
.passo strong{font-size:14.5px}
.passo .dim{display:block;margin-top:3px}
.passo.feito strong{color:var(--dim)}

/* ---------- design: refinamentos ---------- */
body{font-variant-numeric:tabular-nums}
:focus-visible{outline:2px solid var(--acc);outline-offset:2px;border-radius:8px}
#conteudo{padding-bottom:calc(var(--nav) + env(safe-area-inset-bottom) + 88px)} /* espaço para o botão de voz */
@media (min-width:900px){#conteudo{padding-bottom:96px}}
.sec{box-shadow:0 1px 0 rgba(255,255,255,.02) inset}
.sec-title{font-size:12px;letter-spacing:.06em}
/* carregando: blocos no lugar do texto */
.esqueleto{display:flex;flex-direction:column;gap:10px;padding:6px 0}
.esqueleto span{height:14px;border-radius:7px;background:linear-gradient(90deg,var(--card2) 0%,#272c32 50%,var(--card2) 100%);background-size:200% 100%;animation:brilho 1.4s ease-in-out infinite}
.esqueleto span:nth-child(2){width:80%}.esqueleto span:nth-child(3){width:55%}
@keyframes brilho{to{background-position:-200% 0}}
@media (prefers-reduced-motion:reduce){.esqueleto span,#asMic.ouvindo{animation:none}}
/* atalhos do painel */
.atalhos{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:14px}
.atalhos button{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 4px 10px;display:flex;flex-direction:column;align-items:center;gap:7px;cursor:pointer;color:var(--txt);font-size:12px;font-weight:600;text-align:center;line-height:1.2}
.atalhos button .ico{width:22px;height:22px;color:var(--acc)}
.atalhos button:hover{border-color:rgba(143,176,196,.35)}
@media (min-width:900px){.atalhos{grid-template-columns:repeat(4,minmax(0,180px))}.atalhos button{flex-direction:row;justify-content:center;font-size:13.5px;padding:12px}}
/* precisa de atenção */
.atencao{border-color:rgba(209,173,120,.3)}
.alerta-linha{width:100%;display:flex;gap:12px;align-items:flex-start;text-align:left;background:none;border:none;border-top:1px solid var(--line);padding:11px 0;cursor:pointer;color:var(--txt)}
.alerta-linha:first-of-type{border-top:none;padding-top:2px}
.alerta-linha > .ico{color:var(--warn);margin-top:1px}
.alerta-linha strong{display:block;font-size:14.5px}
.alerta-linha .dim{display:block;margin-top:2px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
/* resultado: a conta que leva ao número */
.conta{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:13px;color:var(--dim);margin:4px 0 2px}
.conta b{color:var(--txt);font-weight:600}
.cartao{transition:border-color .15s}
/* gráfico */
.grafico{--g-receita:#3987e5;--g-custos:#d95926}
.g-cab{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.g-cab .sec-title{margin:0}
.g-legenda{display:flex;gap:14px;font-size:12.5px;color:var(--dim)}
.g-legenda span{display:flex;align-items:center;gap:6px}
.g-legenda i,.g-dica i{width:10px;height:10px;border-radius:3px;display:inline-block}
i.g-receita{background:var(--g-receita)}i.g-custos{background:var(--g-custos)}
.g-area{position:relative;height:190px;margin:10px 0 4px 0;padding-left:62px}
.g-linha{position:absolute;left:62px;right:0;border-top:1px solid var(--line);height:0}
.g-linha span{position:absolute;right:calc(100% + 8px);top:-8px;font-size:11px;color:var(--dim);white-space:nowrap}
.g-colunas{position:absolute;left:62px;right:0;top:0;bottom:0;display:flex;align-items:stretch}
.g-mes{flex:1;background:none;border:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;padding:0;min-width:0;border-radius:8px;position:relative}
.g-mes.ativo,.g-mes:hover{background:rgba(255,255,255,.03)}
.g-barras{flex:1;width:100%;display:flex;justify-content:center;align-items:flex-end;gap:2px}
.g-barra{width:min(24px,32%);border-radius:4px 4px 0 0;display:block}
.g-barra.g-receita{background:var(--g-receita)}.g-barra.g-custos{background:var(--g-custos)}
.g-rotulo{position:absolute;bottom:-20px;font-size:11.5px;color:var(--dim)}
.g-area{margin-bottom:28px}
.g-dica{position:absolute;top:-6px;z-index:2;background:var(--card2);border:1px solid var(--line);border-radius:10px;padding:8px 10px;font-size:12.5px;display:flex;flex-direction:column;gap:3px;pointer-events:none;box-shadow:0 6px 20px rgba(0,0,0,.4);white-space:nowrap}
.g-dica span{display:flex;align-items:center;gap:6px}
.g-tabela summary{cursor:pointer;color:var(--acc);font-size:13px;font-weight:600;padding:4px 0}
.g-tabela .tabela{margin-top:8px}
/* listas agrupadas por dia */
.resumo-lista{display:flex;justify-content:space-between;gap:10px;font-size:12.5px;color:var(--dim);padding-bottom:10px;border-bottom:1px solid var(--line);margin-bottom:2px}
.resumo-lista strong{color:var(--txt)}
.grupo-dia{font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--dim);padding:14px 0 4px}
.grupo-dia + .linha{border-top:none;padding-top:4px}
.linha{gap:12px}
.linha-meio{flex:1;min-width:0}
.linha-meio strong,.linha-meio .dim{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tipo-ico{width:36px;height:36px;flex:none;border-radius:11px;display:flex;align-items:center;justify-content:center;background:var(--card2);color:var(--dim)}
.tipo-ico .ico{width:18px;height:18px}
.tipo-entrada{color:var(--ok);background:var(--ok-bg)}
.tipo-saida{color:var(--acc);background:var(--acc-bg)}
/* contador no menu */
.menu button{position:relative}
.badge{position:absolute;top:4px;left:calc(50% + 6px);min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--warn);color:#1d160b;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;font-style:normal}
@media (min-width:900px){.badge{position:static;margin-left:auto}}
/* ação principal sempre visível no celular */
@media (max-width:699px){
  .acao-fixa{position:sticky;bottom:calc(var(--nav) + env(safe-area-inset-bottom) + 8px);z-index:5;padding:8px 0 0;background:linear-gradient(to bottom,transparent,var(--bg) 30%)}
  .acao-fixa .btn{box-shadow:0 8px 24px rgba(0,0,0,.45);width:calc(100% - 72px)} /* deixa o botão de voz livre */
}

/* ==========================================================================
   Tema inspirado no shadcn/ui (https://ui.shadcn.com, licença MIT): tons neutros (zinc),
   botão principal claro, cantos de 8–12px, etiquetas pequenas com borda.
   Fica no fim do arquivo e sobrepõe as regras acima. Cor viva só em detalhes (status e gráfico).
   ========================================================================== */
:root{
  --bg:#09090b;--card:#09090b;--card2:#18181b;--line:#27272a;--linha-forte:#3f3f46;
  --acc:#fafafa;--acc-bg:#27272a;--acc-txt:#18181b;
  --txt:#fafafa;--dim:#a1a1aa;
  --ok:#86c3a1;--ok-bg:rgba(134,195,161,.1);--err:#e08c8c;--err-bg:rgba(224,140,140,.1);--warn:#d9b37a;--warn-bg:rgba(217,179,122,.1);
  --raio:10px;--raio-sm:8px
}
*{font-family:Inter,'Segoe UI',system-ui,-apple-system,sans-serif}
body{-webkit-font-smoothing:antialiased;letter-spacing:-.005em}
h1,h2,h3{letter-spacing:-.02em}
a{color:var(--txt);text-decoration:underline;text-decoration-color:var(--linha-forte);text-underline-offset:3px}
a:hover{text-decoration-color:var(--dim)}
:focus-visible{outline:2px solid #d4d4d8;outline-offset:2px}
/* blocos */
.sec,.cartao,.atalhos button,.entrar-card{background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 1px 2px rgba(0,0,0,.3)}
.sec{padding:18px}
.sec-title{font-size:14px;font-weight:600;letter-spacing:-.01em;text-transform:none;color:var(--txt);margin-bottom:12px}
.cartao{padding:14px}
.cartao .dim{font-size:12.5px;font-weight:500}
.cartao strong{font-size:19px;font-weight:700;letter-spacing:-.02em}
.resultado strong{font-size:30px;font-weight:700;letter-spacing:-.03em}
.grupo-dia{text-transform:none;letter-spacing:0;font-size:12.5px;font-weight:600;color:var(--dim)}
/* formulários */
label{font-size:13px;font-weight:500;color:var(--txt);margin:14px 0 6px}
input,select,textarea,.produto-btn{background:transparent;border:1px solid var(--line);border-radius:var(--raio-sm);padding:11px 12px}
input:focus,select:focus,textarea:focus{border-color:var(--dim);box-shadow:0 0 0 3px rgba(161,161,170,.15)}
select{background-color:var(--bg)}
select option{background:var(--card2)}
input::placeholder,textarea::placeholder{color:#71717a}
input[type=checkbox]{accent-color:#fafafa}
/* botões: principal claro, secundário cinza, perigo discreto */
.btn{border-radius:var(--raio-sm);font-size:14.5px;font-weight:600;padding:12px 16px;background:var(--acc);color:var(--acc-txt);border:1px solid var(--acc)}
.btn:hover:not(:disabled){background:#e4e4e7}
.btn-sec{background:transparent;color:var(--txt);border:1px solid var(--line)}
.btn-sec:hover:not(:disabled){background:var(--card2)}
.btn-perigo{background:transparent;color:var(--err);border:1px solid rgba(224,140,140,.35)}
.btn-perigo:hover:not(:disabled){background:var(--err-bg)}
.btn-sm{border-radius:var(--raio-sm);background:transparent;border:1px solid var(--line);font-weight:500;padding:8px 12px}
.btn-sm:hover{background:var(--card2)}
.btn-acc{background:var(--acc);color:var(--acc-txt);border-color:var(--acc)}
.btn-acc:hover{background:#e4e4e7}
a.btn-sm,a.btn{text-decoration:none}
.btn-ico{border-radius:var(--raio-sm);background:transparent;border:1px solid var(--line);color:var(--dim)}
.btn-ico:hover{background:var(--card2);color:var(--txt)}
.btn-ico.ativo{color:var(--txt);border-color:var(--linha-forte)}
.link{color:var(--txt);text-decoration:underline;text-decoration-color:var(--linha-forte);text-underline-offset:3px;font-weight:500}
.link-perigo{color:var(--err);font-weight:500}
/* etiquetas (como o Badge do shadcn): pequenas, cantos de 6px, com borda */
.etiqueta{border-radius:6px;padding:2px 8px;font-size:11.5px;font-weight:600;line-height:1.5;background:transparent;border:1px solid var(--line);color:var(--dim)}
.et-rascunho{background:var(--warn-bg);color:var(--warn);border-color:rgba(217,179,122,.25)}
.et-confirmada{background:var(--ok-bg);color:var(--ok);border-color:rgba(134,195,161,.25)}
.et-estornada{background:var(--err-bg);color:var(--err);border-color:rgba(224,140,140,.25)}
/* filtros de período (abas segmentadas) */
.chips{gap:4px;background:var(--card2);border:1px solid var(--line);border-radius:var(--raio-sm);padding:4px;width:max-content;max-width:100%}
.chip{background:transparent;border:none;border-radius:6px;padding:7px 12px;font-weight:500;color:var(--dim)}
.chip:hover{color:var(--txt)}
.chip.ativo{background:var(--bg);color:var(--txt);border:none;box-shadow:0 1px 2px rgba(0,0,0,.4)}
.as-topo .chip{border:1px solid var(--line)}
.as-topo .chip.ativo{background:var(--txt);color:var(--acc-txt)}
/* menu: lateral no computador, barra embaixo no celular */
.menu{background:rgba(9,9,11,.92);border-color:var(--line)}
.menu button{color:#71717a}
.menu button.ativo{color:var(--txt)}
.menu button.ativo .ico{filter:none}
@media (min-width:900px){
  .menu{background:var(--bg);padding:16px 12px}
  .menu button{color:var(--dim);font-weight:500;padding:9px 12px;border-radius:var(--raio-sm)}
  .menu button:hover{background:var(--card2);color:var(--txt)}
  .menu button.ativo{background:var(--acc-bg);color:var(--txt)}
  .menu-marca{font-weight:600;letter-spacing:-.01em}
}
.badge{background:var(--txt);color:var(--acc-txt)}
.topo{background:rgba(9,9,11,.85);border-bottom-color:var(--line)}
.topo h2{font-size:18px;font-weight:600}
/* listas e linhas */
.linha:hover .linha-meio strong,.linha:hover > div:first-child strong{text-decoration:underline;text-decoration-color:var(--linha-forte);text-underline-offset:3px}
.tipo-ico{border-radius:var(--raio-sm);border:1px solid var(--line);background:transparent}
.tipo-entrada{background:transparent;color:var(--ok)}
.tipo-saida{background:transparent;color:var(--txt)}
.resumo-lista{border-bottom-color:var(--line)}
/* painel */
.atalhos button{border-radius:var(--raio)}
.atalhos button .ico{color:var(--txt)}
.atalhos button:hover{background:var(--card2);border-color:var(--line)}
.atencao{border-color:rgba(217,179,122,.3)}
.passo .marca{border-color:var(--linha-forte)}
.passo.feito .marca{border-color:rgba(134,195,161,.5);background:var(--ok-bg)}
.cartao.alerta{border-color:rgba(217,179,122,.35)}
/* janela, aviso e assistente */
.modal{background:rgba(0,0,0,.7);backdrop-filter:blur(2px)}
.modal-box{background:var(--bg);border-color:var(--line)}
.toast{background:var(--bg);border-color:var(--line);border-radius:var(--raio)}
.aviso{border:1px solid rgba(217,179,122,.25);border-radius:var(--raio-sm)}
.fab{background:var(--txt);color:var(--acc-txt);border:none;box-shadow:0 10px 30px rgba(0,0,0,.6)}
.fala-elc{background:var(--card2);border-color:var(--line)}
.fala-eu{background:var(--txt);color:var(--acc-txt)}
.as-proposta{border-color:rgba(217,179,122,.35)}
.tabela th{font-weight:500}
.g-mes.ativo,.g-mes:hover{background:rgba(255,255,255,.04)}
.esqueleto span{background:linear-gradient(90deg,#18181b 0%,#27272a 50%,#18181b 100%);background-size:200% 100%}
/* "clip" corta o que passa da largura sem virar área de rolagem (assim o cabeçalho e o botão fixo funcionam) */
body{overflow-x:clip}
.acao-fixa .btn{margin-top:0}
.acao-fixa .centro{margin:6px 0 0}
@media (min-width:700px){.acao-fixa{margin-bottom:10px}}
