/* =========================================================
   Sistema financeiro — folha de estilo única
   Fonte Inter hospedada no próprio servidor.
   ========================================================= */
@font-face{font-family:"Inter";font-weight:400;font-style:normal;font-display:swap;src:url(fontes/inter-400.woff2) format("woff2")}
@font-face{font-family:"Inter";font-weight:500;font-style:normal;font-display:swap;src:url(fontes/inter-500.woff2) format("woff2")}
@font-face{font-family:"Inter";font-weight:600;font-style:normal;font-display:swap;src:url(fontes/inter-600.woff2) format("woff2")}
@font-face{font-family:"Inter";font-weight:700;font-style:normal;font-display:swap;src:url(fontes/inter-700.woff2) format("woff2")}

:root{
  --lateral:#0f172a; --lateral-2:#1b2438; --lateral-texto:#cdd4e2; --lateral-fraco:#7c879c;
  --fundo:#f4f5f8; --superficie:#ffffff; --linha:#e3e6ec; --linha-suave:#eef0f4;
  --texto:#151c28; --texto-2:#566072; --texto-3:#8a93a3;
  --primaria:#2350c8; --primaria-escura:#1b40a3; --primaria-clara:#ecf1fd;
  --positivo:#127a4f; --positivo-fundo:#e7f6ef; --negativo:#bf3434; --negativo-fundo:#fcecec;
  --atencao:#94600a; --atencao-fundo:#fdf3df;
  --raio:10px; --raio-p:7px;
  --sombra:0 14px 40px rgba(15,23,42,.16);
  --largura-lateral:248px; --altura-topo:64px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:400 14px/1.5 "Inter",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;color:var(--texto);background:var(--fundo);font-variant-numeric:tabular-nums}
h1,h2,h3{margin:0;line-height:1.25;letter-spacing:-.01em}
a{color:var(--primaria)}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--primaria);outline-offset:2px}
.sprite{position:absolute;width:0;height:0;overflow:hidden}
.ic{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.positivo{color:var(--positivo)} .negativo{color:var(--negativo)} .apagado{color:var(--texto-3);text-decoration:line-through}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* ---------- Menu lateral ---------- */
.lateral{position:fixed;inset:0 auto 0 0;width:var(--largura-lateral);background:var(--lateral);color:var(--lateral-texto);display:flex;flex-direction:column;z-index:40}
.marca{display:flex;align-items:center;gap:11px;height:var(--altura-topo);padding:0 18px;border-bottom:1px solid rgba(255,255,255,.07);text-decoration:none;color:#fff;flex:none}
.marca-simbolo{width:34px;height:34px;border-radius:9px;background:#fff;color:var(--lateral);display:grid;place-items:center;font-weight:700;font-size:13px;letter-spacing:.02em;flex:none}
.marca-texto{display:flex;flex-direction:column;min-width:0}
.marca-texto strong{font-size:15px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.marca-texto small{font-size:12px;color:var(--lateral-fraco);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.navegacao{flex:1;overflow-y:auto;padding:12px 12px 16px;scrollbar-width:none}
.navegacao::-webkit-scrollbar{display:none}
.nav-grupo{margin:18px 10px 6px;font-size:11.5px;font-weight:600;color:var(--lateral-fraco)}
.nav-item{display:flex;align-items:center;gap:11px;min-height:38px;padding:0 10px;border-radius:var(--raio-p);color:var(--lateral-texto);text-decoration:none;font-size:13.5px}
.nav-item:hover{background:rgba(255,255,255,.06);color:#fff}
.nav-item.ativo{background:var(--lateral-2);color:#fff;box-shadow:inset 3px 0 0 #6f95ff}
.nav-item span{flex:1}
.breve{font-style:normal;font-size:10.5px;color:var(--lateral-fraco);border:1px solid rgba(255,255,255,.12);border-radius:20px;padding:0 7px;line-height:18px}
.lateral-rodape{border-top:1px solid rgba(255,255,255,.07);padding:10px 12px 14px;flex:none}
.perfil{display:flex;align-items:center;gap:10px;padding:10px 6px 0}
.perfil span:last-child{display:flex;flex-direction:column;min-width:0}
.perfil strong{font-size:13px;color:#fff;font-weight:600}
.perfil small{font-size:12px;color:var(--lateral-fraco)}
.avatar{width:34px;height:34px;border-radius:50%;background:var(--primaria-clara);color:var(--primaria);display:grid;place-items:center;font-size:12.5px;font-weight:700;flex:none}

/* ---------- Topo ---------- */
.principal{margin-left:var(--largura-lateral);min-width:0}
.topo{position:sticky;top:0;z-index:30;height:var(--altura-topo);background:var(--superficie);border-bottom:1px solid var(--linha);display:flex;align-items:center;gap:16px;padding:0 28px}
.botao-menu{display:none;border:0;background:none;padding:8px;margin-left:-8px;border-radius:var(--raio-p);cursor:pointer}
.busca{display:flex;align-items:center;gap:9px;height:40px;width:min(480px,100%);padding:0 12px;border:1px solid var(--linha);border-radius:9px;color:var(--texto-3);background:#fbfbfd}
.busca:focus-within{border-color:var(--primaria);background:#fff}
.busca input{flex:1;border:0;outline:0;background:none;min-width:0;color:var(--texto)}
.busca kbd{font:500 11px/1 "Inter",sans-serif;border:1px solid var(--linha);border-radius:5px;padding:4px 6px;color:var(--texto-3);background:#fff}
.topo-acoes{margin-left:auto;display:flex;align-items:center;gap:6px}

/* Menus suspensos feitos com <details> */
.suspenso{position:relative}
.suspenso>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:9px;padding:6px 10px;border-radius:9px}
.suspenso>summary::-webkit-details-marker{display:none}
.suspenso>summary:hover,.suspenso[open]>summary{background:var(--fundo)}
.suspenso .seta{width:15px;height:15px;color:var(--texto-3);transition:transform .15s}
.suspenso[open] .seta{transform:rotate(180deg)}
.seletor-visao{display:flex;flex-direction:column;align-items:flex-start!important;gap:0!important;position:relative;padding-right:30px!important;max-width:260px}
.seletor-visao .seta{position:absolute;right:9px;top:50%;margin-top:-7px}
.seletor-visao strong{font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}
.rotulo-pequeno{font-size:11px;color:var(--texto-3);line-height:1.2}
.usuario-nome{display:flex;flex-direction:column;line-height:1.3}
.usuario-nome strong{font-size:13.5px;font-weight:600}
.usuario-nome small{font-size:12px;color:var(--texto-3)}
.suspenso-painel{position:absolute;top:calc(100% + 6px);left:0;min-width:260px;background:var(--superficie);border:1px solid var(--linha);border-radius:var(--raio);box-shadow:var(--sombra);padding:6px;z-index:50}
.suspenso-painel.direita{left:auto;right:0}
.suspenso-painel form{margin:0}
.suspenso-painel button,.suspenso-painel a{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;min-height:38px;padding:0 10px;border:0;border-radius:var(--raio-p);background:none;text-align:left;text-decoration:none;color:var(--texto);cursor:pointer;font-size:13.5px}
.suspenso-painel button small{color:var(--texto-3);font-size:12px}
.suspenso-painel button:hover,.suspenso-painel a:hover{background:var(--fundo)}
.suspenso-painel .marcado{color:var(--primaria);font-weight:600}
.suspenso-painel .marcado::after{content:"✓"}
.suspenso-titulo{margin:6px 10px 4px;font-size:11.5px;font-weight:600;color:var(--texto-3)}
.suspenso-painel hr{border:0;border-top:1px solid var(--linha-suave);margin:6px 0}

/* ---------- Conteúdo ---------- */
.conteudo{padding:28px 30px 48px;max-width:1480px;margin:0 auto}
.cabecalho-pagina{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:20px;flex-wrap:wrap}
.trilha{margin:0 0 4px;font-size:12.5px;color:var(--texto-3)}
.cabecalho-pagina h1{font-size:26px;font-weight:700;letter-spacing:-.025em}
.descricao{margin:4px 0 0;color:var(--texto-2)}
.acoes-pagina{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.seletor-mes select{height:40px;border:1px solid var(--linha);border-radius:9px;background:var(--superficie);padding:0 34px 0 12px;font-weight:500}

/* Botões */
.botao{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:40px;padding:0 15px;border-radius:9px;border:1px solid transparent;font-weight:600;font-size:13.5px;text-decoration:none;cursor:pointer;white-space:nowrap;background:none}
.botao .ic{width:16px;height:16px;stroke-width:2.2}
.botao.primario{background:var(--primaria);color:#fff}
.botao.primario:hover{background:var(--primaria-escura)}
.botao.secundario{background:var(--superficie);border-color:var(--linha);color:var(--texto)}
.botao.secundario:hover{background:#f8f9fb;border-color:#d4d8e0}
.botao.fantasma{color:var(--texto-2)}
.botao.fantasma:hover{background:var(--fundo)}
.botao.perigo{background:var(--superficie);border-color:#efc9c9;color:var(--negativo)}
.botao.perigo:hover{background:var(--negativo-fundo)}
.botao.perigo-cheio{background:var(--negativo);color:#fff}
.botao.mini{height:30px;padding:0 10px;font-size:12.5px;font-weight:500;border-color:var(--linha);background:var(--superficie);color:var(--texto-2)}
.botao.mini:hover{color:var(--texto);border-color:#cfd4dd}
.botao.largo{width:100%}

/* Indicadores do painel */
.indicadores{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:var(--superficie);border:1px solid var(--linha);border-radius:var(--raio);margin-bottom:18px;overflow:hidden}
.indicadores article{padding:18px 20px;border-right:1px solid var(--linha)}
.indicadores article:last-child{border-right:0}
.indicadores .rotulo{display:block;font-size:13px;color:var(--texto-2)}
.indicadores strong{display:block;font-size:23px;font-weight:700;letter-spacing:-.02em;margin:6px 0 4px}
.variacao{font-size:12.5px;font-weight:600}
.variacao.boa{color:var(--positivo)} .variacao.ruim{color:var(--negativo)} .variacao.neutra{color:var(--texto-3);font-weight:400}

/* Blocos */
.grade-painel{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:18px}
.bloco{background:var(--superficie);border:1px solid var(--linha);border-radius:var(--raio);overflow:hidden;min-width:0}
.bloco.recheado{padding:20px 22px}
.bloco.recheado h2{font-size:16px;margin-bottom:6px}
.bloco-topo{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:16px 20px;border-bottom:1px solid var(--linha-suave)}
.bloco-topo h2{font-size:15px;font-weight:600}
.bloco-topo p{margin:3px 0 0;font-size:12.5px;color:var(--texto-3)}
.link-bloco{font-size:13px;font-weight:500;text-decoration:none;white-space:nowrap}
.link-bloco:hover{text-decoration:underline}
.nota-vazia{padding:22px 20px;margin:0;color:var(--texto-3)}
.duas-areas{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}

.boas-vindas{background:var(--primaria-clara);border:1px solid #d3defb;border-radius:var(--raio);padding:20px 22px;margin-bottom:18px}
.boas-vindas h2{font-size:17px;margin-bottom:6px}
.boas-vindas p{margin:0 0 14px;color:var(--texto-2);max-width:70ch}

/* Gráfico de fluxo (SVG desenhado no servidor) */
.grafico{padding:14px 18px 16px}
.grafico svg{width:100%;height:auto;display:block}
.g-grade{stroke:var(--linha-suave);stroke-width:1}
.g-eixo{fill:var(--texto-3);font-size:11px}
.g-receita{fill:none;stroke:var(--primaria);stroke-width:2.6;stroke-linejoin:round;stroke-linecap:round}
.g-despesa{fill:none;stroke:#98a4b8;stroke-width:2;stroke-dasharray:6 5;stroke-linejoin:round}
.legenda{display:flex;gap:6px 18px;flex-wrap:wrap;align-items:center;margin:8px 0 0;font-size:12.5px;color:var(--texto-2)}
.ponto{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px;vertical-align:middle}
.ponto.receita{background:var(--primaria)} .ponto.despesa{background:#98a4b8}

/* Rosca de categorias */
.rosca{display:flex;align-items:center;gap:22px;padding:20px}
.rosca svg{width:136px;height:136px;flex:none}
.rosca-fundo{fill:none;stroke:var(--linha-suave);stroke-width:16}
.rosca-fatia{fill:none;stroke-width:16}
.f1{stroke:var(--primaria);background:var(--primaria)} .f2{stroke:#5f86e6;background:#5f86e6} .f3{stroke:#9bb4ef;background:#9bb4ef}
.f4{stroke:#c6d4f5;background:#c6d4f5} .f5{stroke:#dfe3ea;background:#dfe3ea}
.rosca-valor{font-size:15px;font-weight:700;fill:var(--texto)}
.rosca-rotulo{font-size:10px;fill:var(--texto-3)}
.rosca-legenda{list-style:none;margin:0;padding:0;flex:1;display:grid;gap:9px;font-size:13px;color:var(--texto-2);min-width:0}
.rosca-legenda li{display:flex;align-items:center}
.rosca-legenda b{margin-left:auto;color:var(--texto);font-weight:600;padding-left:10px}

/* Listas curtas (painel) */
.lista-simples{list-style:none;margin:0;padding:0}
.lista-simples li+li{border-top:1px solid var(--linha-suave)}
.lista-simples a{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 20px;text-decoration:none;color:inherit}
.lista-simples a:hover{background:#fafbfc}
.lista-simples span{display:flex;flex-direction:column;min-width:0}
.lista-simples strong{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lista-simples small{font-size:12px;color:var(--texto-3)}
.lista-simples b{font-weight:600;white-space:nowrap}

/* Abas do módulo */
.abas-modulo{display:flex;gap:2px;border-bottom:1px solid var(--linha);margin-bottom:18px;overflow-x:auto;scrollbar-width:none}
.abas-modulo a{padding:10px 14px;color:var(--texto-2);text-decoration:none;font-weight:500;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}
.abas-modulo a:hover{color:var(--texto)}
.abas-modulo a.ativo{color:var(--primaria);border-bottom-color:var(--primaria)}

/* Faixa de resumo */
.faixa-resumo{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:var(--superficie);border:1px solid var(--linha);border-radius:var(--raio);margin-bottom:16px;overflow:hidden}
.faixa-resumo.tres{grid-template-columns:repeat(3,minmax(0,1fr))}
.faixa-resumo div{padding:15px 18px;border-right:1px solid var(--linha)}
.faixa-resumo div:last-child{border-right:0}
.faixa-resumo span{font-size:12.5px;color:var(--texto-2)}
.faixa-resumo strong{display:block;font-size:19px;font-weight:700;margin-top:3px;letter-spacing:-.015em}

/* Filtros */
.filtros{display:grid;grid-template-columns:minmax(220px,1.6fr) repeat(4,minmax(130px,1fr)) auto;gap:12px;align-items:end;background:var(--superficie);border:1px solid var(--linha);border-radius:var(--raio);padding:14px 16px;margin-bottom:16px}
.filtros.compacto{grid-template-columns:minmax(200px,280px);background:none;border:0;padding:0}
.filtros-acoes{display:flex;gap:6px}

/* Campos */
.campo{display:flex;flex-direction:column;gap:6px;min-width:0}
.campo>span:first-child{font-size:12.5px;font-weight:600;color:var(--texto-2)}
.campo>span small{font-weight:400;color:var(--texto-3)}
.campo input,.campo select,.campo textarea{width:100%;height:42px;padding:0 12px;border:1px solid var(--linha);border-radius:8px;background:var(--superficie);outline:0}
.campo textarea{height:auto;padding:10px 12px;resize:vertical}
.campo input:focus,.campo select:focus,.campo textarea:focus{border-color:var(--primaria);box-shadow:0 0 0 3px rgba(35,80,200,.12)}
.campo input:disabled,.campo select:disabled{background:var(--fundo);color:var(--texto-3)}
.campo.com-erro input,.campo.com-erro select,.campo.com-erro textarea,.campo.com-erro .campo-moeda{border-color:var(--negativo)}
.erro-campo{font-size:12.5px;color:var(--negativo)}
.ajuda{font-size:12px;color:var(--texto-3)}
.campo-moeda{display:flex;align-items:stretch;border:1px solid var(--linha);border-radius:8px;overflow:hidden;background:var(--superficie)}
.campo-moeda:focus-within{border-color:var(--primaria);box-shadow:0 0 0 3px rgba(35,80,200,.12)}
.campo-moeda b{display:grid;place-items:center;padding:0 11px;background:var(--fundo);border-right:1px solid var(--linha);font-size:12.5px;font-weight:600;color:var(--texto-2)}
.campo-moeda input{border:0!important;box-shadow:none!important;border-radius:0}
.marcar{display:flex;gap:10px;align-items:flex-start;flex-wrap:wrap;font-size:13.5px;color:var(--texto-2)}
.marcar input{width:18px;height:18px;margin:1px 0 0;accent-color:var(--primaria)}
.marcar span{flex:1}
.marcar .erro-campo{flex-basis:100%}
.grade-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.grade-form .largo{grid-column:1/-1}
.formulario{display:flex;flex-direction:column;gap:14px}
.formulario h2{font-size:14.5px;margin-top:8px}
.duas-colunas{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.isca{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* Tabelas */
.tabela{width:100%;border-collapse:collapse}
.tabela th{padding:10px 16px;text-align:left;font-size:12px;font-weight:600;color:var(--texto-3);background:#fafbfc;border-bottom:1px solid var(--linha-suave);white-space:nowrap}
.tabela td{padding:12px 16px;border-bottom:1px solid var(--linha-suave);vertical-align:middle}
.tabela tbody tr:hover{background:#fafbfd}
.tabela .num{text-align:right;white-space:nowrap}
.tabela tr.clicavel{cursor:pointer}
.tabela tr.inativa td{color:var(--texto-3)}
.link-linha{color:var(--texto);font-weight:500;text-decoration:none}
.link-linha:hover{color:var(--primaria)}
.sub{display:block;font-size:12px;color:var(--texto-3);font-weight:400}
.recuo{color:var(--texto-3)}
.etiqueta{display:inline-block;font-size:11px;font-weight:600;color:var(--texto-2);background:var(--fundo);border:1px solid var(--linha);border-radius:5px;padding:0 5px;line-height:18px}
.acoes-linha{text-align:right;white-space:nowrap}
.acoes-linha form{display:inline}
.acoes-linha .botao+.botao,.acoes-linha .botao+form,.acoes-linha form+form{margin-left:4px}
.selo{display:inline-block;font-size:12px;font-weight:500;padding:2px 9px;border-radius:20px;white-space:nowrap}
.selo.ok{background:var(--positivo-fundo);color:var(--positivo)}
.selo.alerta{background:var(--atencao-fundo);color:var(--atencao)}
.selo.neutro{background:#eef0f4;color:var(--texto-2)}
.selo.riscado{background:#f3f4f6;color:var(--texto-3);text-decoration:line-through}
.vazio{padding:40px 20px;text-align:center}
.vazio strong{display:block;font-size:15px;margin-bottom:4px}
.vazio p{margin:0 0 16px;color:var(--texto-2)}

/* Paginação */
.paginacao{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 16px;font-size:13px;color:var(--texto-2);flex-wrap:wrap}
.por-pagina select{height:32px;border:1px solid var(--linha);border-radius:7px;background:var(--superficie);padding:0 6px;margin:0 4px}
.paginas{display:flex;gap:4px}
.pg{min-width:32px;height:32px;padding:0 8px;display:grid;place-items:center;border:1px solid var(--linha);border-radius:7px;background:var(--superficie);color:var(--texto-2);text-decoration:none}
.pg:hover{border-color:#c9cfda;color:var(--texto)}
.pg.on{background:var(--primaria);border-color:var(--primaria);color:#fff;font-weight:600}
.pg.off{opacity:.4}

/* Janelas (dialog) */
dialog{padding:0;border:0;color:var(--texto)}
dialog::backdrop{background:rgba(15,23,42,.42)}
.janela{width:min(640px,calc(100vw - 32px));max-height:calc(100vh - 48px);border-radius:12px;box-shadow:var(--sombra)}
.janela.pequena{width:min(480px,calc(100vw - 32px))}
.janela-form{display:flex;flex-direction:column;max-height:calc(100vh - 48px)}
.janela-topo{display:flex;justify-content:space-between;gap:16px;padding:20px 22px 14px;border-bottom:1px solid var(--linha)}
.janela-topo h2{font-size:18px}
.janela-topo p{margin:4px 0 0;font-size:13px;color:var(--texto-2)}
.fechar{display:grid;place-items:center;width:34px;height:34px;flex:none;border:0;border-radius:8px;background:var(--fundo);color:var(--texto-2);cursor:pointer}
.fechar:hover{color:var(--texto)}
.janela-corpo{padding:16px 22px 18px;overflow-y:auto}
.janela-corpo>.alerta{margin-bottom:14px}
.janela-rodape{display:flex;justify-content:flex-end;gap:8px;padding:14px 22px;background:#fafbfc;border-top:1px solid var(--linha)}
.abas-tipo{display:flex;gap:6px;margin-bottom:16px}
.aba-tipo{position:relative}
.aba-tipo input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.aba-tipo span{display:inline-block;padding:8px 15px;border-radius:8px;background:var(--fundo);color:var(--texto-2);font-weight:600;font-size:13px;cursor:pointer;border:1px solid transparent}
.aba-tipo input:checked+span{background:var(--primaria-clara);border-color:#cbd8fa;color:var(--primaria)}
.aba-tipo input:focus-visible+span{outline:2px solid var(--primaria);outline-offset:2px}
.mais-opcoes{margin-top:16px;border-top:1px solid var(--linha-suave);padding-top:12px}
.mais-opcoes summary{cursor:pointer;font-weight:600;color:var(--texto-2);font-size:13.5px;margin-bottom:12px}
[data-so][hidden]{display:none}

/* Gaveta lateral de detalhes */
.gaveta{margin:0 0 0 auto;height:100vh;max-height:100vh;width:min(520px,100vw);display:flex;flex-direction:column;box-shadow:-14px 0 40px rgba(15,23,42,.14)}
.gaveta:not([open]){display:none}
.gaveta-topo{display:flex;justify-content:space-between;gap:16px;padding:20px 22px 16px;border-bottom:1px solid var(--linha)}
.sobretitulo{margin:0 0 4px;font-size:12.5px;font-weight:600;color:var(--texto-3)}
.gaveta-topo h2{font-size:19px;margin-bottom:8px}
.gaveta-topo p{margin:0}
.gaveta-corpo{flex:1;overflow-y:auto;padding:18px 22px}
.gaveta-corpo h3{font-size:14px;margin:20px 0 10px}
.gaveta-rodape{display:flex;gap:8px;padding:14px 22px;border-top:1px solid var(--linha);flex-wrap:wrap}
.gaveta-rodape .fantasma{margin-left:auto}
.destaque-valor{padding:14px 16px;border:1px solid var(--linha);border-radius:9px;margin-bottom:16px}
.destaque-valor span{font-size:12.5px;color:var(--texto-2)}
.destaque-valor strong{display:block;font-size:24px;font-weight:700;letter-spacing:-.02em}
.dados{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:0;border:1px solid var(--linha);border-radius:9px;overflow:hidden}
.dados div{padding:11px 14px;border-bottom:1px solid var(--linha-suave);min-width:0}
.dados div:nth-child(odd){border-right:1px solid var(--linha-suave)}
.dados dt{font-size:12px;color:var(--texto-3)}
.dados dd{margin:2px 0 0;font-weight:500;overflow-wrap:anywhere}
.texto-livre{margin:0;color:var(--texto-2);white-space:normal}
.linha-tempo{list-style:none;margin:0;padding:0 0 0 16px;border-left:2px solid var(--linha)}
.linha-tempo li{position:relative;padding:0 0 12px}
.linha-tempo li::before{content:"";position:absolute;left:-21px;top:6px;width:8px;height:8px;border-radius:50%;background:var(--primaria)}
.linha-tempo strong{display:block;font-weight:500}
.linha-tempo span{font-size:12.5px;color:var(--texto-3)}

/* Aviso rápido */
.aviso{position:fixed;right:24px;bottom:24px;z-index:100;max-width:380px;padding:12px 16px;border-radius:9px;background:#172033;color:#fff;box-shadow:var(--sombra);font-weight:500;transition:opacity .3s,transform .3s}
.aviso.erro{background:var(--negativo)}
.aviso.saindo{opacity:0;transform:translateY(8px)}
.alerta{padding:11px 14px;border-radius:8px;font-size:13.5px}
.alerta.erro{background:var(--negativo-fundo);color:#9b2525;border:1px solid #f2cccc}
.alerta.ok{background:var(--positivo-fundo);color:#0f6640;border:1px solid #c6e9d8}
.em-breve p{margin:0;color:var(--texto-2);max-width:65ch}

/* ---------- Assinatura e Pix ---------- */
.indicadores.tres{grid-template-columns:repeat(3,minmax(0,1fr))}
.texto-medio{font-size:15px!important;margin:9px 0 6px!important}
.faixa-alerta{margin-bottom:16px}
.barra-assinatura{margin:-4px 0 18px;padding:10px 14px;border-radius:9px;background:var(--primaria-clara);border:1px solid #d3defb;color:#2a3c6b;font-size:13.5px}
.barra-assinatura.atencao{background:var(--atencao-fundo);border-color:#f1dcae;color:#6d4706}
.barra-assinatura.perigo{background:var(--negativo-fundo);border-color:#f2cccc;color:#8f2222}
.barra-assinatura a{font-weight:600;margin-left:4px}
.alerta-menu{color:#ffb4b4;border-color:rgba(255,120,120,.4)}
.pagamento-pix{margin-bottom:18px}
.pix-grade{display:grid;grid-template-columns:240px 1fr;gap:26px;padding:20px 22px;align-items:start}
.pix-qr{width:240px;aspect-ratio:1;border:1px solid var(--linha);border-radius:10px;overflow:hidden;background:#fff}
.pix-qr svg{width:100%;height:100%;display:block}
.pix-qr.pequeno{width:180px;margin:6px 0 14px}
.pix-dados{display:flex;flex-direction:column;gap:12px;align-items:flex-start;min-width:0}
.pix-dados .campo{width:100%}
.pix-dados textarea{font:12.5px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace;word-break:break-all;background:var(--fundo)}
.pix-valor{margin:0}
.pix-valor span{display:block;font-size:12.5px;color:var(--texto-2)}
.pix-valor strong{font-size:30px;letter-spacing:-.02em}
.pix-dados .apoio{margin:0;color:var(--texto-2)}
.pix-informar{border-top:1px solid var(--linha-suave);padding:16px 22px 20px;display:flex;flex-direction:column;gap:12px;align-items:flex-start}
.pix-informar h3{font-size:14.5px;margin:0}
.pix-informar .grade-form{width:100%}
.planos{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;padding:18px 20px 20px}
.plano{border:1px solid var(--linha);border-radius:var(--raio);padding:18px;display:flex;flex-direction:column;gap:8px}
.plano.atual{border-color:#b9cbf6;background:#fafcff}
.plano h3{font-size:15px;display:flex;align-items:center;gap:8px}
.plano-preco{margin:0;font-size:24px;font-weight:700;letter-spacing:-.02em}
.plano-preco small,.opcao-plano b small{font-size:12.5px;font-weight:500;color:var(--texto-3)}
.plano .apoio{margin:0;color:var(--texto-2);font-size:13px}
.plano-itens{margin:4px 0 8px;padding-left:18px;color:var(--texto-2);font-size:13px;flex:1}
.escolha-plano{border:0;margin:0;padding:0;display:grid;gap:8px}
.escolha-plano legend{font-size:12.5px;font-weight:600;color:var(--texto-2);margin-bottom:8px;padding:0}
.opcao-plano{display:flex;align-items:center;gap:12px;padding:11px 13px;border:1px solid var(--linha);border-radius:9px;cursor:pointer}
.opcao-plano:has(input:checked){border-color:var(--primaria);background:var(--primaria-clara)}
.opcao-plano input{accent-color:var(--primaria);width:17px;height:17px;margin:0}
.opcao-plano span{flex:1;display:flex;flex-direction:column}
.opcao-plano small{color:var(--texto-3);font-size:12px}
.opcao-plano b{white-space:nowrap;font-size:14px}
.escolha-plano .ajuda{margin:2px 0 0}
.codigo{font:12px ui-monospace,SFMono-Regular,Consolas,monospace;background:var(--fundo);border:1px solid var(--linha);border-radius:5px;padding:1px 5px}
.botao.mini.confirmar{background:var(--positivo);border-color:var(--positivo);color:#fff}
details.recusa{display:inline-block;position:relative;margin-left:4px}
details.recusa summary{list-style:none}
details.recusa summary::-webkit-details-marker{display:none}
.recusa-form{position:absolute;right:0;top:calc(100% + 6px);z-index:20;display:flex;gap:6px;padding:8px;background:var(--superficie);border:1px solid var(--linha);border-radius:9px;box-shadow:var(--sombra);width:340px}
.recusa-form input{flex:1;height:30px;border:1px solid var(--linha);border-radius:7px;padding:0 8px;min-width:0}
.planos-edicao{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px;padding:18px 20px 20px}
.plano-form{border:1px solid var(--linha);border-radius:var(--raio);padding:16px;display:flex;flex-direction:column;gap:12px;align-items:flex-start}
.plano-form h3{font-size:14.5px}
.plano-form .grade-form{width:100%}
@media (max-width:720px){
  .indicadores.tres{grid-template-columns:1fr}
  .indicadores.tres article{border-right:0;border-bottom:1px solid var(--linha)}
  .pix-grade{grid-template-columns:1fr;justify-items:center}
  .pix-dados{width:100%}
  .recusa-form{width:280px}
}

/* ---------- Membros e convites ---------- */
.grupo-opcoes{border:0;margin:0;padding:0;display:grid;gap:8px}
.grupo-opcoes legend{font-size:12.5px;font-weight:600;color:var(--texto-2);margin-bottom:8px;padding:0}
.lista-marcar{display:grid;gap:8px;padding:10px 12px;border:1px solid var(--linha);border-radius:9px;background:#fafbfc}
.lista-marcar[hidden]{display:none}
.link-convite{margin-bottom:18px;border-color:#c6e9d8;background:#f6fcf9}
.linha-copiar{display:flex;gap:8px;margin-top:12px}
.linha-copiar input{flex:1;min-width:0;height:40px;border:1px solid var(--linha);border-radius:8px;padding:0 12px;font:12.5px ui-monospace,SFMono-Regular,Consolas,monospace;background:#fff}
@media (max-width:720px){.linha-copiar{flex-direction:column}}

/* ---------- Páginas públicas ---------- */
body.publica{min-height:100vh;display:grid;place-items:center;padding:32px 16px;background:var(--fundo)}
.cartao-acesso{width:min(440px,100%);background:var(--superficie);border:1px solid var(--linha);border-radius:14px;padding:30px}
.cartao-acesso.largo{width:min(680px,100%)}
.marca.escura{height:auto;padding:0 0 22px;border:0;color:var(--texto)}
.marca.escura .marca-simbolo{background:var(--lateral);color:#fff}
.marca.escura small{color:var(--texto-3)}
.cartao-acesso h1{font-size:24px;letter-spacing:-.02em;margin-bottom:6px}
.cartao-acesso .apoio{margin:0 0 18px;color:var(--texto-2)}
.cartao-acesso>.alerta{margin-bottom:16px}
.rodape-acesso{margin:18px 0 0;text-align:center;font-size:13.5px;color:var(--texto-2)}
.requisitos{list-style:none;margin:0 0 16px;padding:0;display:grid;gap:4px;font-size:13px}
.requisitos .ok{color:var(--positivo)} .requisitos .falha{color:var(--negativo)}
.texto-legal p{color:var(--texto-2);max-width:70ch}

/* ---------- Responsivo ---------- */
@media (max-width:1180px){
  .filtros{grid-template-columns:repeat(3,minmax(0,1fr))}
  .filtros .busca-campo{grid-column:1/-1}
  .grade-painel{grid-template-columns:1fr}
}
@media (max-width:900px){
  .lateral{transform:translateX(-100%);transition:transform .2s}
  body.menu-aberto .lateral{transform:none}
  body.menu-aberto .sombra-menu{position:fixed;inset:0;background:rgba(15,23,42,.4);z-index:35}
  .principal{margin-left:0}
  .botao-menu{display:grid}
  .topo{padding:0 16px;gap:10px}
  .busca kbd,.usuario-nome{display:none}
  .conteudo{padding:20px 16px 40px}
  .indicadores,.faixa-resumo{grid-template-columns:repeat(2,minmax(0,1fr))}
  .indicadores article:nth-child(2),.faixa-resumo div:nth-child(2){border-right:0}
  .indicadores article:nth-child(-n+2),.faixa-resumo div:nth-child(-n+2){border-bottom:1px solid var(--linha)}
  .faixa-resumo.tres{grid-template-columns:1fr}
  .faixa-resumo.tres div{border-right:0;border-bottom:1px solid var(--linha)}
  .duas-areas{grid-template-columns:1fr}
}
@media (max-width:720px){
  .seletor-visao .rotulo-pequeno{display:none}
  .seletor-visao{padding:6px 24px 6px 6px!important}
  .seletor-visao strong{max-width:96px;font-size:13px}
  .busca{width:auto;flex:1;min-width:0}
  .busca input{width:100%}
  .topo-acoes{gap:0}
  .usuario{padding:6px 4px!important}
  .usuario .seta{display:none}
  .cabecalho-pagina{align-items:stretch}
  .acoes-pagina{width:100%}
  .acoes-pagina>*{flex:1}
  .seletor-mes select{width:100%}
  .filtros{grid-template-columns:1fr 1fr}
  .grade-form,.duas-colunas,.dados{grid-template-columns:1fr}
  .dados div:nth-child(odd){border-right:0}
  /* tabelas viram cartões */
  .tabela thead{display:none}
  .tabela,.tabela tbody,.tabela tr,.tabela td{display:block}
  .tabela tr{padding:10px 16px;border-bottom:1px solid var(--linha-suave)}
  .tabela td{display:flex;justify-content:space-between;gap:12px;padding:4px 0;border:0;text-align:right}
  .tabela td::before{content:attr(data-rotulo);font-size:12px;color:var(--texto-3);text-align:left}
  .tabela td.acoes-linha{justify-content:flex-end;padding-top:8px}
  .tabela td.acoes-linha::before{content:none}
  .rosca{flex-direction:column;align-items:stretch}
  .rosca svg{align-self:center}
  .janela,.janela.pequena{width:100vw;max-width:100vw;max-height:94vh;margin:auto 0 0;border-radius:14px 14px 0 0}
  .paginacao{justify-content:center}
  .aviso{left:16px;right:16px;bottom:16px}
}
@media (max-width:440px){
  .indicadores,.faixa-resumo{grid-template-columns:1fr}
  .indicadores article,.faixa-resumo div{border-right:0!important;border-bottom:1px solid var(--linha)}
  .filtros{grid-template-columns:1fr}
}
