/* caminho: despesas.mais.live/assets/estilo.css */
/* despesas.mais.live - estilo
   atualizado em: 27/07/2026 às 08:34 (horário de Bacabal - MA) */

:root{
  --roxo:#6B2FD6; --roxo-escuro:#5522b8; --roxo-claro:#ede8fb;
  --verde:#16A34A; --vermelho:#E11D48; --teal:#0F766E;
  --fundo:#f3f4f7; --branco:#fff; --texto:#1a1d29; --cinza:#666d7d;
  --borda:#e4e6ee; --sombra:0 1px 2px rgba(17,24,39,.05),0 4px 14px rgba(17,24,39,.05);
  --raio:14px; --raio-sm:10px;
}
*{box-sizing:border-box;margin:0;padding:0}
html.tema-escuro{--fundo:#131522;--branco:#1c1f2e;--texto:#e9ebf3;--cinza:#9aa0b4;--borda:#2a2e42;--roxo-claro:#241a3d;--sombra:0 1px 2px rgba(0,0,0,.4),0 6px 18px rgba(0,0,0,.35)}
body{font-family:'Manrope',-apple-system,"Segoe UI",Roboto,Arial,sans-serif;background:var(--fundo);color:var(--texto);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;letter-spacing:-.006em}
a{text-decoration:none;color:inherit}
svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--roxo);outline-offset:2px;border-radius:6px}

/* ---------- LAYOUT ---------- */
.app{display:flex;min-height:100vh}
.lateral{width:250px;background:var(--branco);border-right:1px solid var(--borda);display:flex;flex-direction:column;padding:20px 14px;position:fixed;top:0;left:0;bottom:0;z-index:40;overflow-y:auto}
.logo{font-size:24px;font-weight:800;color:var(--roxo);padding:6px 8px 18px}
.logo span{color:var(--cinza);font-weight:600;font-size:15px}
.btn-novo{background:var(--roxo);color:#fff;text-align:center;padding:14px;border-radius:30px;font-weight:700;margin-bottom:18px;box-shadow:0 6px 16px rgba(107,47,214,.35);width:100%;border:0;cursor:pointer;font-size:15px}
.btn-novo:hover{background:var(--roxo-escuro)}
.novo-wrap{position:relative}
.novo-menu{display:none;position:absolute;top:52px;left:0;right:0;z-index:70;background:var(--branco);border:1px solid var(--borda);border-radius:14px;box-shadow:0 12px 30px rgba(20,20,40,.18);padding:6px;flex-direction:column}
.novo-menu.aberto{display:flex}
.novo-menu a{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:10px;color:var(--texto);font-weight:600;font-size:14px}
.novo-menu a:hover{background:var(--roxo-claro)}
.novo-menu svg{width:22px;height:22px;flex:0 0 22px}
.novo-menu .ic-desp{color:var(--vermelho)}
.novo-menu .ic-rec{color:var(--verde)}
.novo-menu .ic-card{color:var(--roxo)}
.novo-menu .ic-transf{color:#2563EB}
.nav{display:flex;flex-direction:column;gap:2px;flex:1}
.nav-item{display:flex;align-items:center;gap:14px;padding:12px 12px;border-radius:12px;color:var(--cinza);font-weight:600;background:none;border:0;width:100%;cursor:pointer;font-size:15px;text-align:left;font-family:inherit}
.nav-item:hover{background:var(--roxo-claro);color:var(--roxo)}
.nav-item.ativo{background:var(--roxo-claro);color:var(--roxo)}
.nav-item.ativo svg{color:var(--roxo)}
.ajuda{margin-top:14px;color:var(--cinza)}
.nav-grupo .submenu{display:none;flex-direction:column;padding:2px 0 2px 46px}
.nav-grupo.aberto .submenu{display:flex}
.sub-item{padding:9px 8px;border-radius:8px;color:var(--cinza);font-size:14px}
.sub-item:hover,.sub-item.ativo{color:var(--roxo)}

.conteudo{margin-left:250px;flex:1;min-width:0;display:flex;flex-direction:column}

/* ----- Recolher / expandir barra lateral ----- */
.logo-mini{display:none}
.logo-mini svg{width:30px;height:30px;stroke:var(--roxo);stroke-width:1.8;margin:0 auto}
.recolher{position:fixed;top:60px;left:234px;width:30px;height:30px;border-radius:50%;background:var(--branco);border:1px solid var(--borda);box-shadow:0 3px 10px rgba(0,0,0,.16);color:var(--roxo);cursor:pointer;z-index:50;display:flex;align-items:center;justify-content:center;font-size:18px;line-height:1;padding:0;transition:left .18s ease}
.recolher:hover{background:var(--roxo-claro)}
@media(min-width:821px){
.sb-recolhida .lateral{width:76px;padding-left:10px;padding-right:10px;overflow:visible}
.sb-recolhida .conteudo{margin-left:76px}
.sb-recolhida .recolher{left:60px;transform:rotate(180deg)}
.sb-recolhida .logo-completo{display:none}
.sb-recolhida .logo{display:flex;justify-content:center;padding:6px 0 18px}
.sb-recolhida .logo-mini{display:block}
.sb-recolhida .nav-item{justify-content:center;gap:0;padding:12px 0}
.sb-recolhida .nav-item span{display:none}
.sb-recolhida .novo-txt{display:none}
.sb-recolhida .btn-novo{padding:14px 0;font-size:20px}
.sb-recolhida .novo-menu{left:calc(100% + 10px);top:0;right:auto;width:220px}
.sb-recolhida .ajuda span{display:none}
.sb-recolhida .nav-grupo{position:relative}
.sb-recolhida .nav-grupo.aberto .submenu{position:absolute;left:calc(100% + 8px);top:0;width:200px;padding:6px;background:var(--branco);border:1px solid var(--borda);border-radius:12px;box-shadow:0 12px 30px rgba(20,20,40,.18);z-index:60}
.sb-recolhida .nav-grupo.aberto .sub-item{padding:9px 12px;border-radius:8px}
}
@media(max-width:820px){.recolher{display:none}}
.topo{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:16px 26px;gap:16px;position:relative}
.topo > :first-child{grid-column:2;justify-self:center}
.topo .usuario{grid-column:3;justify-self:end}
.seletor-mes input{border:1px solid var(--borda);background:var(--branco);border-radius:30px;padding:9px 16px;font-weight:600;color:var(--texto);font-family:inherit}
.mes-picker{position:relative}
.mes-botao{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--borda);background:var(--branco);border-radius:30px;padding:9px 18px;font-weight:700;color:var(--texto);font-family:inherit;font-size:15px;cursor:pointer;text-transform:capitalize;min-width:150px;justify-content:center}
.mes-botao svg{width:18px;height:18px;fill:none;stroke:var(--cinza);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.mes-pop{display:none;position:absolute;top:52px;left:50%;transform:translateX(-50%);z-index:80;width:300px;background:var(--branco);border-radius:16px;box-shadow:0 16px 40px rgba(20,20,40,.22);overflow:hidden}
.mes-pop.aberto{display:block}
.mes-pop-topo{display:flex;align-items:center;justify-content:space-between;background:var(--roxo);color:#fff;padding:12px 16px;font-weight:800;font-size:17px}
.mes-nav{background:transparent;border:0;color:#fff;font-size:22px;line-height:1;cursor:pointer;padding:0 8px;border-radius:8px}
.mes-nav:hover{background:rgba(255,255,255,.18)}
.mes-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:14px}
.mes-cel{background:transparent;border:0;padding:12px 0;border-radius:10px;font-weight:700;font-size:13px;color:var(--texto);cursor:pointer;font-family:inherit}
.mes-cel:hover{background:var(--roxo-claro);color:var(--roxo)}
.mes-cel.hoje{color:var(--roxo)}
.mes-cel.sel{background:var(--roxo);color:#fff}
.mes-acoes{display:flex;justify-content:space-between;padding:6px 16px 16px}
.mes-link{background:transparent;border:0;color:var(--roxo);font-weight:800;font-size:13px;letter-spacing:.4px;cursor:pointer;font-family:inherit}
.mes-link.cinza{color:var(--cinza)}
.usuario{display:flex;align-items:center;gap:10px;position:relative}
.avatar{width:36px;height:36px;border-radius:50%;background:#cfd3e0;color:#444;display:flex;align-items:center;justify-content:center;font-weight:700;overflow:hidden}
img.avatar{object-fit:cover;display:block}
img.avatar-grande{object-fit:cover;display:block}
.perfil-foto-acoes{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}
.perfil-foto-acoes .btn{padding:8px 16px;font-size:13px}
.perfil-foto-dica{color:var(--cinza);font-size:12px;margin-top:8px}
.usuario-nome{font-weight:700}
.usuario-sair{color:var(--cinza);font-size:20px;padding:4px 8px}
.usuario-botao{display:flex;align-items:center;gap:10px;background:none;border:0;cursor:pointer;font-family:inherit;color:var(--texto)}
.usuario-seta{width:18px;height:18px;stroke:var(--cinza)}
.usuario-pop{display:none;position:absolute;top:52px;right:0;z-index:80;width:220px;background:var(--branco);border:1px solid var(--borda);border-radius:14px;box-shadow:0 14px 34px rgba(20,20,40,.2);padding:6px}
.usuario-pop.aberto{display:block}
.usuario-pop a{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:10px;color:var(--texto);font-weight:600;font-size:14px}
.usuario-pop a:hover{background:var(--roxo-claro);color:var(--roxo)}
.usuario-pop svg{width:20px;height:20px}
.perfil-cabeca{display:flex;align-items:center;gap:18px}
.avatar-grande{width:72px;height:72px;border-radius:50%;background:var(--roxo);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:30px;flex:none}
.perfil-nome{font-weight:800;font-size:20px}
.perfil-email{color:var(--cinza)}
.perfil-desde{color:var(--cinza);font-size:13px;margin-top:4px}
.pagina{padding:8px 26px 60px}
.pagina h1{font-size:30px;font-weight:800;margin-bottom:20px}

.menu-toggle{display:none;position:fixed;top:14px;left:14px;z-index:60;background:var(--roxo);color:#fff;border:0;width:44px;height:44px;border-radius:12px;font-size:22px;cursor:pointer}
.overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:35}
.overlay.ativo{display:block}

/* ---------- CARDS RESUMO ---------- */
.resumo{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}
.card{background:var(--branco);border-radius:var(--raio);box-shadow:var(--sombra);padding:20px}
.card-resumo{display:flex;align-items:center;gap:16px}
.card-resumo .icone{width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;flex:none}
.card-resumo .rotulo{color:var(--cinza);font-size:14px}
.card-resumo .valor{font-size:22px;font-weight:800;margin-top:2px}
.ic-azul{background:#2563EB}.ic-verde{background:var(--verde)}.ic-vermelho{background:var(--vermelho)}.ic-teal{background:var(--teal)}
.pos{color:var(--verde)}.neg{color:var(--vermelho)}

/* ---------- GRID CONTEUDO ---------- */
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.bloco{background:var(--branco);border-radius:var(--raio);box-shadow:var(--sombra);padding:22px;margin-bottom:20px}
.bloco h2{font-size:16px;color:var(--cinza);margin-bottom:16px;font-weight:700}
.vazio{text-align:center;color:var(--cinza);padding:30px 10px}

/* ---------- ROSCA / GRAFICO ---------- */
.rosca{display:flex;align-items:center;justify-content:center;gap:24px;flex-wrap:wrap}
.rosca svg{width:210px;height:210px;stroke:none}
.rel-rosca svg{width:min(320px,80vw);height:auto}
.rosca .centro-txt{font-size:20px;font-weight:800}
.legenda{list-style:none;display:flex;flex-direction:column;gap:10px;min-width:220px}
.legenda li{display:flex;align-items:center;gap:10px;font-size:14px}
.legenda .bolinha{width:12px;height:12px;border-radius:50%;flex:none}
.legenda .leg-nome{flex:1}
.legenda .leg-val{font-weight:700}
.legenda .leg-pct{color:var(--cinza);font-size:12px;margin-left:6px}
.rosca-svg{cursor:pointer;display:inline-block;line-height:0;border-radius:50%;transition:transform .15s ease}
.rosca-svg:hover{transform:scale(1.02)}
.legenda .leg-link{flex:1;display:flex;align-items:center;gap:10px;cursor:pointer;color:inherit;padding:6px 8px;border-radius:9px;transition:background .12s ease}
.legenda .leg-link:hover{background:var(--roxo-claro)}
.linha-cat.destaque{background:var(--roxo-claro);border-radius:10px;padding-left:12px;padding-right:12px}

/* barras */
.barras{display:flex;align-items:flex-end;gap:18px;height:200px;padding-top:10px}
.barra-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;justify-content:flex-end;height:100%}
.barra{width:60%;border-radius:8px 8px 0 0;min-height:4px}
.barra-rot{font-size:12px;color:var(--cinza)}

/* ---------- TABELA / LISTA ---------- */
.tabela{width:100%;border-collapse:collapse}
.tabela th{text-align:left;color:var(--cinza);font-size:13px;font-weight:700;padding:12px 10px;border-bottom:1px solid var(--borda)}
.tabela td{padding:14px 10px;border-bottom:1px solid var(--borda);vertical-align:middle}
.tabela tr:last-child td{border-bottom:0}
.cat-chip{display:inline-flex;align-items:center;gap:8px}
.cat-bolinha{width:26px;height:26px;border-radius:50%;flex:none}

/* ----- Categorias (seletor Despesas/Receitas, icones) ----- */
.cat-switch{position:relative;display:inline-block;margin-bottom:16px}
.cat-switch-btn{display:inline-flex;align-items:center;gap:10px;background:var(--roxo);color:#fff;border:0;border-radius:30px;padding:12px 22px;font-weight:700;font-size:15px;cursor:pointer;font-family:inherit;box-shadow:0 6px 16px rgba(107,47,214,.3)}
.cat-switch-btn svg{width:18px;height:18px;stroke:#fff}
.cat-switch-menu{display:none;position:absolute;top:52px;left:0;z-index:70;min-width:240px;background:var(--branco);border:1px solid var(--borda);border-radius:14px;box-shadow:0 14px 34px rgba(20,20,40,.2);padding:6px}
.cat-switch-menu.aberto{display:block}
.cat-switch-menu button{display:block;width:100%;text-align:left;padding:12px 14px;border-radius:10px;background:none;border:0;cursor:pointer;font-family:inherit;font-weight:700;font-size:14px;color:var(--texto)}
.cat-switch-menu button:hover{background:var(--roxo-claro);color:var(--roxo)}
.cat-icone{display:inline-flex;color:var(--texto)}
.cat-icone svg{width:24px;height:24px}
.cat-tabela th:nth-child(2),.cat-tabela td:nth-child(2),.cat-tabela th:nth-child(3),.cat-tabela td:nth-child(3){width:120px}
.icone-picker{display:grid;grid-template-columns:repeat(8,1fr);gap:6px;margin:6px 0 4px;max-height:236px;overflow-y:auto;padding:2px 4px 2px 0}
.icone-op{display:flex;align-items:center;justify-content:center;padding:8px;border:1px solid var(--borda);border-radius:10px;background:var(--branco);cursor:pointer;color:var(--cinza)}
.icone-op:hover{border-color:var(--roxo);color:var(--roxo)}
.icone-op.sel{border-color:var(--roxo);background:var(--roxo-claro);color:var(--roxo)}
.icone-op svg{width:22px;height:22px}
@media(max-width:520px){.icone-picker{grid-template-columns:repeat(6,1fr)}}
.valor-desp{color:var(--vermelho);font-weight:700;text-align:right}
.valor-rec{color:var(--verde);font-weight:700;text-align:right}
.sit-ok{width:22px;height:22px;border-radius:50%;background:var(--verde);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:13px}
.sit-pend{width:22px;height:22px;border-radius:50%;border:2px solid #d1a300;color:#d1a300;display:inline-flex;align-items:center;justify-content:center;font-size:12px}
.acao-linha{color:var(--cinza);cursor:pointer;font-weight:800;letter-spacing:1px}
.dia-saldo{background:var(--roxo-claro);color:var(--roxo);text-align:center;font-weight:700;padding:8px;border-radius:20px;font-size:13px;margin:4px 0}

/* ---------- BOTOES / FORM ---------- */
.btn{display:inline-flex;align-items:center;gap:8px;border:0;border-radius:30px;padding:11px 20px;font-weight:700;cursor:pointer;font-family:inherit;font-size:14px}
.btn-principal{background:var(--roxo);color:#fff;width:100%;justify-content:center;padding:14px;border-radius:30px;border:0;font-weight:700;cursor:pointer;font-size:15px}
.btn-principal:hover{background:var(--roxo-escuro)}
.btn-roxo{background:var(--roxo);color:#fff}
.btn-roxo:hover{background:var(--roxo-escuro)}
.btn-linha{background:var(--roxo-claro);color:var(--roxo)}
.btn-vermelho{background:var(--vermelho);color:#fff}
.btn-vermelho:hover{filter:brightness(.92)}
.btn-perigo{background:#fee2e2;color:#b91c1c}
.cabecalho-pagina{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:20px}
.cabecalho-pagina h1{margin:0}

.form-linha{display:grid;grid-template-columns:1fr 1fr;gap:14px}
label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--cinza);font-weight:600;margin-bottom:12px}
input,select,textarea{border:1px solid var(--borda);background:var(--branco);border-radius:10px;padding:11px 12px;font-family:inherit;font-size:15px;color:var(--texto)}
input:focus,select:focus,textarea:focus{outline:2px solid var(--roxo);border-color:transparent}

/* cards de conta */
/* ----- Contas: layout responsivo ----- */
.contas-layout{display:grid;grid-template-columns:1fr;gap:24px;align-items:start}
@media(min-width:1160px){.contas-layout{grid-template-columns:1fr 320px}}
.cartoes-grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px}
.conta-card{background:var(--branco);border-radius:var(--raio);box-shadow:var(--sombra);padding:20px;display:flex;flex-direction:column;transition:box-shadow .2s ease}
.conta-card:hover{box-shadow:0 10px 26px rgba(20,20,40,.12)}
.conta-topo{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.conta-icone{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff;flex:none}
.conta-icone svg{width:22px;height:22px;stroke:#fff}
.conta-nome{font-weight:800;font-size:17px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.conta-menu-wrap{position:relative;margin-left:auto;flex:none}
.conta-menu-btn{width:40px;height:40px;border-radius:50%;border:0;background:none;color:var(--cinza);cursor:pointer;display:flex;align-items:center;justify-content:center}
.conta-menu-btn:hover{background:var(--roxo-claro);color:var(--roxo)}
.conta-menu{display:none;position:absolute;top:44px;right:0;z-index:60;min-width:150px;background:var(--branco);border:1px solid var(--borda);border-radius:12px;box-shadow:0 12px 30px rgba(20,20,40,.18);padding:6px}
.conta-menu.aberto{display:block}
.conta-menu button{display:block;width:100%;text-align:left;padding:10px 12px;border-radius:8px;background:none;border:0;cursor:pointer;font-family:inherit;font-weight:600;font-size:14px;color:var(--texto)}
.conta-menu button:hover{background:var(--roxo-claro);color:var(--roxo)}
.conta-linha{display:flex;justify-content:space-between;align-items:center;margin:8px 0;font-size:14px}
.info-dica{color:var(--cinza);cursor:help;font-size:13px}
.conta-rodape{margin-top:auto;padding-top:14px;text-align:center;border-top:1px solid var(--borda)}
.conta-rodape a{color:var(--roxo);font-weight:700;font-size:13px;letter-spacing:.3px;display:inline-block;padding:8px 10px;min-height:20px}
.conta-add{border:2px dashed var(--borda);background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:200px;color:var(--roxo);font-weight:700;cursor:pointer;border-radius:var(--raio);font-family:inherit;font-size:15px;transition:border-color .2s,background .2s}
.conta-add:hover{border-color:var(--roxo);background:var(--roxo-claro)}
.conta-add .mais{width:56px;height:56px;border-radius:50%;border:2px solid var(--roxo);display:flex;align-items:center;justify-content:center;font-size:28px}
.contas-resumo{display:grid;grid-template-columns:1fr;gap:16px}
@media(min-width:560px) and (max-width:1159px){.contas-resumo{grid-template-columns:1fr 1fr}}
.resumo-conta{background:var(--branco);border-radius:var(--raio);box-shadow:var(--sombra);padding:20px;display:flex;align-items:center;justify-content:space-between;gap:14px}
.resumo-conta .rotulo{color:var(--cinza);font-size:14px;margin-bottom:6px}
.valor-grande{font-size:23px;font-weight:800}
.resumo-icone{width:48px;height:48px;border-radius:50%;background:var(--roxo);color:#fff;display:flex;align-items:center;justify-content:center;flex:none}
.resumo-icone svg{width:22px;height:22px;stroke:#fff}
a:focus-visible,button:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--roxo);outline-offset:2px;border-radius:6px}

/* abas de configuracoes */
.abas{display:inline-flex;background:var(--branco);border-radius:30px;padding:6px;box-shadow:var(--sombra);gap:4px;flex-wrap:wrap}
.aba{padding:10px 20px;border-radius:24px;color:var(--cinza);font-weight:700;font-size:14px}
.aba.ativa{background:var(--roxo);color:#fff}

/* ----- Barra de ferramentas de Transacoes ----- */
.trans-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:20px;flex-wrap:wrap}
.trans-acoes{display:flex;align-items:center;gap:10px;position:relative}
.icone-redondo{width:44px;height:44px;border-radius:50%;background:var(--branco);border:1px solid var(--borda);box-shadow:var(--sombra);color:var(--cinza);cursor:pointer;display:flex;align-items:center;justify-content:center;flex:none}
.icone-redondo:hover{color:var(--roxo)}
.icone-redondo.ativo{background:var(--roxo);color:#fff;border-color:var(--roxo)}
.icone-redondo svg{width:20px;height:20px}
.busca-form{display:none;align-items:center;background:var(--branco);border:1px solid var(--borda);border-radius:30px;box-shadow:var(--sombra);padding:4px 6px 4px 16px;width:min(360px,60vw)}
.busca-form.aberta{display:flex}
.busca-form input{border:0;outline:0;flex:1;font-family:inherit;font-size:14px;background:transparent;color:var(--texto)}
.busca-form button{background:none;border:0;color:var(--cinza);cursor:pointer;padding:6px}
.busca-form button svg{width:20px;height:20px}
.busca-form.aberta ~ #btnBusca{display:none}
.mais-wrap{position:relative}
.mais-menu{display:none;position:absolute;top:52px;right:0;z-index:80;width:230px;background:var(--branco);border:1px solid var(--borda);border-radius:14px;box-shadow:0 14px 34px rgba(20,20,40,.2);padding:6px}
.mais-menu.aberto{display:block}
.mais-menu a,.mais-menu button{display:block;width:100%;text-align:left;padding:11px 12px;border-radius:10px;color:var(--texto);font-weight:600;font-size:14px;background:none;border:0;cursor:pointer;font-family:inherit}
.mais-menu a:hover,.mais-menu button:hover{background:var(--roxo-claro);color:var(--roxo)}

/* ----- Transacoes: dropdown de tipo, selecao, tabela ----- */
.filtro-tipo{position:relative}
.filtro-tipo-btn{display:inline-flex;align-items:center;gap:10px;background:var(--roxo);color:#fff;border:0;border-radius:30px;padding:12px 24px;font-weight:700;font-size:15px;cursor:pointer;font-family:inherit;box-shadow:0 6px 16px rgba(107,47,214,.3)}
.filtro-tipo-btn svg{width:18px;height:18px;stroke:#fff}
.filtro-tipo-menu{display:none;position:absolute;top:52px;left:0;z-index:70;min-width:180px;background:var(--branco);border:1px solid var(--borda);border-radius:14px;box-shadow:0 14px 34px rgba(20,20,40,.2);padding:6px}
.filtro-tipo-menu.aberto{display:block}
.filtro-tipo-menu a{display:block;padding:11px 14px;border-radius:10px;color:var(--texto);font-weight:700;font-size:14px}
.filtro-tipo-menu a:hover{background:var(--roxo-claro);color:var(--roxo)}
.filtro-tipo-menu a.sel{color:var(--roxo)}
.col-check{width:44px;text-align:center}
.col-check input{width:18px;height:18px;cursor:pointer;accent-color:var(--roxo)}
.cat-lista{display:inline-flex;align-items:center;gap:10px}
.cat-lista-icone{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;flex:none}
.cat-lista-icone svg{width:20px;height:20px;stroke:#fff}
.linha-menu-wrap{position:relative;display:inline-block}
.linha-menu-btn{width:38px;height:38px;border-radius:50%;border:0;background:none;color:var(--cinza);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.linha-menu-btn:hover{background:var(--roxo-claro);color:var(--roxo)}
.linha-menu{display:none;position:absolute;top:40px;right:0;z-index:60;min-width:210px;background:var(--branco);border:1px solid var(--borda);border-radius:12px;box-shadow:0 12px 30px rgba(20,20,40,.18);padding:6px}
.linha-menu.aberto{display:block}
.linha-menu button{display:flex;align-items:center;gap:11px;width:100%;text-align:left;padding:10px 12px;border-radius:8px;background:none;border:0;cursor:pointer;font-family:inherit;font-weight:600;font-size:14px;color:var(--texto);white-space:nowrap}
.linha-menu button:hover{background:var(--roxo-claro);color:var(--roxo)}
.linha-menu .mi{width:17px;height:17px;flex:none}
.barra-selecao{display:none;align-items:center;justify-content:space-between;gap:12px;background:var(--roxo-claro);border-radius:12px;padding:10px 16px;margin-bottom:12px}
.barra-selecao.ativa{display:flex}
.barra-selecao .btn{padding:8px 16px;font-size:13px}
.linha-saldo-dia td{border:0;padding:8px 0;text-align:center;background:transparent}
.saldo-dia-pill{display:inline-block;background:var(--fundo);border:1px solid var(--borda);border-radius:20px;padding:6px 18px;font-size:13px;color:var(--cinza);font-weight:600}
.saldo-dia-pill b{margin-left:6px}
@media(max-width:820px){
    .linha-saldo-dia td{grid-column:1/-1;text-align:center}
    .linha-saldo-dia td:before{content:none}
    .col-check{width:auto}
}

/* ----- Drawer de filtro ----- */
.drawer-overlay{position:fixed;inset:0;background:rgba(20,20,40,.4);opacity:0;visibility:hidden;transition:.2s;z-index:90}
.drawer-overlay.ativo{opacity:1;visibility:visible}
.drawer{position:fixed;top:0;right:0;bottom:0;width:360px;max-width:90vw;background:var(--branco);z-index:95;box-shadow:-12px 0 40px rgba(0,0,0,.18);transform:translateX(100%);transition:transform .25s;display:flex;flex-direction:column}
.drawer.aberto{transform:translateX(0)}
.drawer-topo{display:flex;align-items:center;justify-content:space-between;padding:20px;border-bottom:1px solid var(--borda)}
.drawer-topo h3{margin:0}
.drawer-x{background:none;border:0;font-size:26px;line-height:1;color:var(--cinza);cursor:pointer}
.drawer-corpo{padding:20px;overflow-y:auto;display:flex;flex-direction:column;gap:2px}
.drawer-acoes{display:flex;justify-content:space-between;gap:12px;margin-top:auto;padding-top:20px}
.toggle{position:relative;width:44px;height:24px;flex:none}
.toggle input{display:none}
.toggle span{position:absolute;inset:0;background:#cfd3e0;border-radius:20px;transition:.2s;cursor:pointer}
.toggle span:before{content:"";position:absolute;width:18px;height:18px;background:#fff;border-radius:50%;top:3px;left:3px;transition:.2s}
.toggle input:checked + span{background:var(--roxo)}
.toggle input:checked + span:before{transform:translateX(20px)}
.linha-config{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:16px 0;border-bottom:1px solid var(--borda)}
.linha-config small{color:var(--cinza);font-weight:400;display:block;margin-top:4px}
.grid-cards-cfg{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.card-check{display:flex;align-items:center;gap:12px;background:var(--fundo);border-radius:12px;padding:14px;font-weight:600;font-size:14px}

/* progresso */
.progresso{height:8px;background:var(--borda);border-radius:6px;overflow:hidden;margin:8px 0}
.progresso i{display:block;height:100%;background:var(--roxo)}

/* modal */
.modal{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:80;align-items:center;justify-content:center;padding:16px}
.modal.aberto{display:flex}
.modal-cx{background:var(--branco);border-radius:var(--raio);padding:26px;width:100%;max-width:480px;max-height:92vh;overflow:auto}
.modal-cx h3{margin-bottom:18px}
.modal-acoes{display:flex;gap:10px;justify-content:flex-end;margin-top:8px}

/* ----- Modal de transacao (estilo Mobills) ----- */
.modal-transacao{max-width:520px}
.modal-cabeca{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.modal-cabeca h3{margin:0}
.modal-x{background:none;border:0;font-size:26px;line-height:1;color:var(--cinza);cursor:pointer;padding:4px 8px;border-radius:8px}
.modal-x:hover{background:var(--roxo-claro);color:var(--roxo)}
.campo-valor{display:flex;align-items:center;gap:12px;border-bottom:2px solid var(--acento,var(--borda));padding:12px 0;margin:8px 0 4px}
.campo-valor .ci{width:22px;height:22px;color:var(--cinza);flex:none}
.input-valor{flex:1;border:0;outline:0;font-size:26px;font-weight:800;font-family:inherit;background:transparent;min-width:0;color:var(--acento,var(--texto))}
.input-valor:focus{outline:2px solid var(--acento,var(--roxo));outline-offset:2px;border-radius:8px}
.campo-valor .moeda{color:var(--cinza);font-weight:700;font-size:14px}
.linha-detalhe{display:flex;flex-direction:row;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid var(--borda);margin-bottom:0;font-size:15px;color:var(--texto);font-weight:400}
.linha-detalhe .ci{width:22px;height:22px;color:var(--cinza);flex:none}
.linha-detalhe .flex1{flex:1}
.linha-detalhe input[type=text],.linha-detalhe select{flex:1;border:0;outline:0;background:transparent;font-family:inherit;font-size:15px;color:var(--texto);min-width:0}
.data-chips{display:flex;align-items:center;gap:8px;flex:1;flex-wrap:wrap}
.chip-data{border:1px solid var(--borda);background:var(--branco);color:var(--cinza);border-radius:20px;padding:7px 16px;font-weight:700;font-size:13px;cursor:pointer;font-family:inherit}
.chip-data.ativo{background:var(--acento,var(--roxo));color:#fff;border-color:var(--acento,var(--roxo))}
.modal-transacao .toggle input:checked + span{background:var(--acento,var(--roxo))}
.modal-acoes-t .btn-roxo{background:var(--acento,var(--roxo))}
.data-outros{display:none;border:1px solid var(--borda);border-radius:10px;padding:6px 10px;font-family:inherit}
.mais-detalhes-btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;background:none;border:0;color:var(--roxo);font-weight:800;font-size:14px;cursor:pointer;font-family:inherit;padding:16px 0 6px}
.mais-detalhes-btn .seta{font-size:18px}
.detalhes-extra{display:none}
.detalhes-extra.aberto{display:block}
.repetir-campos{display:none;align-items:center;gap:10px;padding:12px 0 4px;flex-wrap:wrap}
.repetir-campos.aberto{display:flex}
.repetir-campos input[type=number]{width:70px;border:1px solid var(--borda);border-radius:10px;padding:8px;font-family:inherit}
.repetir-campos select{border:1px solid var(--borda);border-radius:10px;padding:8px;font-family:inherit}
.repetir-campos span{color:var(--cinza);font-size:14px}
.modal-acoes-t{margin-top:18px;align-items:center}
.btn-texto{background:none;border:0;color:var(--roxo);font-weight:800;font-size:13px;letter-spacing:.3px;cursor:pointer;font-family:inherit;padding:11px 14px;text-transform:uppercase}
.btn-texto:hover{text-decoration:underline}
.mes-nav-barra{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:16px}
.mes-nav-seta{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--roxo);font-size:22px;font-weight:800;text-decoration:none;flex:none}
.mes-nav-seta:hover{background:var(--roxo-claro)}
.mes-nav-pill{border:1px solid var(--roxo);color:var(--roxo);border-radius:24px;padding:8px 20px;font-weight:800;font-size:15px;white-space:nowrap;background:transparent;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;gap:8px}
.mes-nav-pill:hover{background:var(--roxo-claro)}
.mes-nav-pill span{color:var(--cinza);font-weight:600}
.mes-pill-seta{width:16px;height:16px;flex:none}

/* ----- Relatorios ----- */
.rel-cabeca{align-items:center;min-height:46px}
.rel-controles{display:flex;align-items:center;gap:10px;min-height:44px}
.rel-metrica{padding:0 18px;font-size:14px;height:42px;display:inline-flex;align-items:center;white-space:nowrap}
.rel-metrica>span{white-space:nowrap}
.rel-abas{display:flex;gap:4px;margin:6px 0 20px}
.rel-abas .aba{display:flex;align-items:center;justify-content:center;padding:10px 34px}
.rel-abas .aba svg{width:22px;height:22px}
.grafico{width:100%;height:auto;display:block}
.grafico circle,.grafico rect,.grafico text{stroke:none}
.gr-grid{stroke:var(--borda);stroke-width:1}
.gr-ylab{fill:#9aa1ad;font-size:10px;font-weight:400}
.gr-xlab{fill:#9aa1ad;font-size:9.5px;font-weight:400}
.rel-cat-linha{display:flex;align-items:center;gap:14px;padding:12px 10px;border-bottom:1px solid var(--borda);border-radius:10px;cursor:pointer;transition:background .12s}
.rel-cat-linha:hover{background:var(--roxo-claro)}
.rel-cat-icone{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;flex:none}
.rel-cat-icone svg{width:22px;height:22px;stroke:#fff}
.rel-cat-nome{flex:1;font-weight:700;color:var(--roxo)}
.rel-cat-nome small{display:block;color:var(--cinza);font-weight:400;font-size:12px}
.rel-cat-valor{text-align:right}
.rel-cat-valor b{font-weight:800}
.rel-cat-valor small{display:block;color:var(--cinza);font-size:12px}
.rel-dia-linha{display:flex;justify-content:space-between;align-items:center;padding:11px 4px;border-bottom:1px solid var(--borda);font-size:14px}
.rel-dia-linha span{color:var(--cinza)}
.rel-dia-linha b{font-weight:700}
.rel-mes-bloco{padding:6px 0 10px;border-bottom:1px solid var(--borda);margin-bottom:6px}
.rel-mes-titulo{color:var(--roxo);font-weight:800;margin:8px 0 4px}
.alerta-erro{background:#fee2e2;color:#b91c1c;padding:12px;border-radius:10px;margin-bottom:14px;font-size:14px}
.aviso{background:var(--roxo-claro);color:var(--roxo);padding:14px;border-radius:12px;font-size:14px;margin-bottom:16px}

/* ---------- AUTENTICACAO ---------- */
.tela-auth{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px;background:linear-gradient(135deg,var(--roxo),var(--roxo-escuro))}
.auth-cartao{background:#fff;border-radius:22px;padding:34px;width:100%;max-width:420px;box-shadow:0 20px 60px rgba(0,0,0,.25)}
.auth-logo{font-size:26px;font-weight:800;color:var(--roxo);text-align:center;margin-bottom:20px}
.auth-logo span{color:var(--cinza);font-weight:600;font-size:16px}
.auth-abas{display:flex;background:#f1f2f8;border-radius:30px;padding:5px;margin-bottom:22px}
.auth-aba{flex:1;border:0;background:none;padding:10px;border-radius:24px;font-weight:700;color:var(--cinza);cursor:pointer;font-family:inherit}
.auth-aba.ativa{background:var(--roxo);color:#fff}
.auth-form label{color:var(--texto)}
.oculto{display:none}

/* ---------- RESPONSIVO ---------- */
@media(max-width:1024px){.resumo{grid-template-columns:repeat(2,1fr)}.grid-2{grid-template-columns:1fr}.grid-cards-cfg{grid-template-columns:1fr}}
@media(max-width:820px){
  .menu-toggle{display:flex;align-items:center;justify-content:center}
  .lateral{transform:translateX(-100%);transition:transform .25s;box-shadow:0 0 40px rgba(0,0,0,.2)}
  .lateral.aberta{transform:translateX(0)}
  .conteudo{margin-left:0}
  .topo{padding:16px 16px 16px 66px}
  .pagina{padding:8px 16px 60px}
  .pagina h1{font-size:24px}
  .form-linha{grid-template-columns:1fr}
  .usuario-nome{display:none}
}
@media(max-width:520px){
  .resumo{grid-template-columns:1fr}
  .tabela thead{display:none}
  .tabela tr{display:grid;grid-template-columns:1fr auto;gap:4px 10px;padding:12px 0;border-bottom:1px solid var(--borda)}
  .tabela td{border:0;padding:2px 0}
  .tabela td[data-r]:before{content:attr(data-r);color:var(--cinza);font-size:12px;display:block}
}

/* ----- Animacoes de abertura (suaviza menus e modais) ----- */
@keyframes surgirMenu{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
@keyframes surgirFlyout{from{opacity:0;transform:translateX(-6px)}to{opacity:1;transform:translateX(0)}}
@keyframes surgirOverlay{from{opacity:0}to{opacity:1}}
@keyframes surgirModal{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes surgirDetalhe{from{opacity:0}to{opacity:1}}
@keyframes surgirMesPop{from{opacity:0;transform:translateX(-50%) translateY(-6px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}

.novo-menu.aberto,.usuario-pop.aberto,.mais-menu.aberto,.filtro-tipo-menu.aberto,
.cat-switch-menu.aberto,.conta-menu.aberto,.linha-menu.aberto{
    animation:surgirMenu .16s ease-out;
}
.mes-pop.aberto{animation:surgirMesPop .16s ease-out}
.sb-recolhida .novo-menu.aberto,.sb-recolhida .nav-grupo.aberto .submenu{animation:surgirFlyout .16s ease-out}
.nav-grupo.aberto .submenu{animation:surgirMenu .16s ease-out}
.modal.aberto{animation:surgirOverlay .18s ease-out}
.modal.aberto .modal-cx{animation:surgirModal .22s cubic-bezier(.2,.75,.35,1)}
.detalhes-extra.aberto,.repetir-campos.aberto,.busca-form.aberta{animation:surgirDetalhe .18s ease-out}

/* Transicoes de realce mais suaves */
.nav-item,.aba,.icone-redondo,.chip-data,.btn,.btn-novo,.rel-cat-linha,.conta-card{transition:background .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease}

@media (prefers-reduced-motion: reduce){
    *,*::before,*::after{animation-duration:.001ms !important;transition-duration:.001ms !important}
}

/* ----- Ajustes do sistema (master) ----- */
.marca-sistema{background:var(--roxo-claro);border-radius:12px;padding:16px 18px;margin-bottom:16px}
.marca-logo{font-size:20px;font-weight:800;color:var(--roxo)}
.paleta{display:flex;gap:18px;flex-wrap:wrap}
.paleta-item{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--cinza);font-weight:600}
.paleta-cor{width:26px;height:26px;border-radius:50%;border:1px solid rgba(0,0,0,.08)}
.presets-cor{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.swatch-cor{width:34px;height:34px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px var(--borda);cursor:pointer;padding:0}
.swatch-cor:hover{box-shadow:0 0 0 2px var(--roxo);transform:scale(1.08)}
.badge-papel{display:inline-block;padding:4px 12px;border-radius:20px;font-size:12px;font-weight:700;background:var(--borda);color:var(--texto)}
.badge-papel.master{background:var(--roxo);color:#fff}
.badge-papel.admin{background:#DBEAFE;color:#1D4ED8}
.sel-papel{padding:7px 10px;border:1px solid var(--borda);border-radius:10px;font-family:inherit;font-size:13px;background:var(--branco);color:var(--texto);cursor:pointer}
.btn-mini{padding:6px 12px;font-size:12px}

/* ----- Ajustes do sistema: aproveitar largura ----- */
.sistema-grid{display:grid;grid-template-columns:1fr;gap:24px;align-items:start}

/* ----- Logotipos (marca) ----- */
.logo .logo-img{max-height:46px;max-width:200px;display:block;object-fit:contain}
.favicon-mini{width:30px;height:30px;object-fit:contain;display:block;border-radius:6px}
.auth-logo .logo-img{max-height:54px;max-width:100%;margin:0 auto 4px;display:block;object-fit:contain}
.marca-form{display:flex;flex-direction:column}
.marca-campo{display:flex;gap:18px;align-items:flex-start;padding:16px 0;border-bottom:1px solid var(--borda);flex-wrap:wrap}
.marca-preview{width:120px;height:70px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex:none;border:1px solid var(--borda);overflow:hidden}
.marca-preview.claro{background:#fff}
.marca-preview.escuro{background:#1f2430}
.marca-preview img{max-width:100%;max-height:100%;object-fit:contain}
.marca-preview span{color:var(--cinza);font-size:12px}
.marca-controles{flex:1;min-width:260px;display:flex;flex-direction:column;gap:8px}
.marca-titulo{font-weight:700;color:var(--texto)}
.marca-controles label{font-size:13px;color:var(--cinza)}
.chk-remover{flex-direction:row;align-items:center;gap:8px;color:var(--vermelho);font-weight:600}
.chk-remover input{width:auto}

/* ----- Tooltip dos graficos de relatorio ----- */
.grafico-tip{position:fixed;z-index:200;background:var(--roxo);color:#fff;padding:7px 12px;border-radius:10px;font-size:12px;pointer-events:none;opacity:0;transform:translate(-50%,-100%);transition:opacity .12s ease;box-shadow:0 8px 20px rgba(0,0,0,.25);white-space:nowrap;text-align:center;line-height:1.35}
.grafico-tip.ativo{opacity:1}
.grafico-tip b{display:block;font-weight:800}
.grafico-tip span{font-weight:600;opacity:.92}
.grafico-tip:after{content:"";position:absolute;left:50%;top:100%;transform:translateX(-50%);border:6px solid transparent;border-top-color:var(--roxo)}
.gr-ponto{transition:none}

/* ----- Calendário ----- */
.cal-layout{display:flex;flex-wrap:wrap;gap:24px;align-items:flex-start}
.cal-bloco{flex:1 1 520px;min-width:0;max-width:740px}
.cal-painel{flex:1 1 300px;min-width:0}
.cal-topo{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.cal-mes{font-weight:800;color:var(--texto);text-transform:capitalize;font-size:16px}
.cal-nav{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--roxo);font-size:20px;text-decoration:none;border:1px solid var(--borda)}
.cal-nav:hover{background:var(--roxo-claro)}
.cal-grade{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.cal-ds{text-align:center;color:var(--cinza);font-weight:700;font-size:12px;padding:4px 0 8px}
.cal-cel{min-height:60px;border:0;border-radius:10px;padding:6px 3px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:4px;transition:border-color .15s ease,background .15s ease}
.cal-cel:hover{border-color:var(--roxo);background:var(--roxo-claro)}
.cal-cel.sel{border-color:var(--roxo);box-shadow:0 0 0 2px var(--roxo) inset}
.cal-fora{opacity:.45}
.cal-num{font-weight:700;font-size:13px;color:var(--texto)}
.cal-hoje .cal-num{color:var(--roxo)}
.cal-pill-slot{min-height:18px;width:100%;display:flex;justify-content:center}
.cal-pill{background:var(--vermelho);color:#fff;border-radius:20px;padding:2px 6px;font-size:10.5px;font-weight:700;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.cal-det-tit{margin-bottom:16px}
.cal-vazio{color:var(--cinza);font-size:15px;line-height:1.5;overflow-wrap:anywhere}
.cal-toggle-linha{display:flex;flex-direction:row;align-items:center;gap:10px;justify-content:flex-end;margin-bottom:12px;font-weight:600;color:var(--texto)}
.cal-tab td,.cal-tab th{vertical-align:middle}
.cal-acoes{display:flex;align-items:center;gap:14px;justify-content:flex-end;white-space:nowrap}
.cal-acoes a{color:var(--cinza);text-decoration:none;font-size:16px}
.cal-acoes a:hover{color:var(--roxo)}
.cal-lixo{cursor:pointer;color:var(--cinza);font-size:18px;line-height:1}
.cal-lixo:hover{color:var(--vermelho)}
.cal-tab tfoot td{border-top:1px solid var(--borda);padding-top:12px}

/* ----- Campo de senha com olho ----- */
.campo-senha{position:relative;display:block}
.campo-senha input{width:100%;padding-right:46px}
.olho-senha{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:none;border:0;cursor:pointer;color:var(--cinza);width:36px;height:36px;display:flex;align-items:center;justify-content:center;padding:0}
.olho-senha:hover{color:var(--roxo)}
.olho-senha svg{width:20px;height:20px}
.olho-senha .olho-fechar{display:none}
.olho-senha.mostrando .olho-abrir{display:none}
.olho-senha.mostrando .olho-fechar{display:block}

/* ----- Seletor de data (calendário dos modais) ----- */
.modal-dp{z-index:120}
.dp-caixa{--acento:#E11D48;background:#fff;border-radius:16px;width:340px;max-width:94vw;overflow:hidden;box-shadow:0 24px 60px rgba(0,0,0,.3)}
.dp-cabeca{background:var(--acento);color:#fff;padding:16px 22px}
.dp-ano{font-size:14px;font-weight:700;opacity:.9}
.dp-data{font-size:28px;font-weight:800}
.dp-corpo{padding:8px 14px 14px}
.dp-nav{display:flex;align-items:center;justify-content:space-between;padding:8px 4px}
.dp-nav span{font-weight:700;text-transform:capitalize}
.dp-seta{background:none;border:0;color:var(--texto);font-size:20px;cursor:pointer;width:34px;height:34px;border-radius:50%;line-height:1}
.dp-seta:hover{background:var(--roxo-claro)}
.dp-semana{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin:2px 0 4px}
.dp-semana span{text-align:center;font-size:12px;color:var(--cinza);font-weight:700}
.dp-grade{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.dp-dia{background:none;border:0;aspect-ratio:1/1;border-radius:50%;cursor:pointer;font-family:inherit;font-size:14px;font-weight:600;color:var(--texto);display:flex;align-items:center;justify-content:center}
.dp-dia:hover{background:var(--roxo-claro)}
.dp-dia.sel{background:var(--acento);color:#fff}
.dp-acoes{display:flex;justify-content:flex-end;gap:24px;padding:12px 8px 4px}
.dp-link{background:none;border:0;color:var(--acento);font-weight:800;font-size:14px;letter-spacing:.4px;cursor:pointer;font-family:inherit}
.dp-link.cinza{color:var(--cinza)}
.ci-data{cursor:pointer}

/* ----- Barra de navegação inferior (mobile) + FAB ----- */
.bottom-nav{display:none}
.novo-radial{display:none;position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:130}
.novo-radial.aberto{display:block}
.nr-btn{position:absolute;left:50%;display:flex;flex-direction:column;align-items:center;gap:8px;text-decoration:none;color:#fff;font-weight:600;font-size:13px;text-align:center;width:96px;margin-left:-48px;animation:nrFade .2s ease-out}
.nr-lbl{text-shadow:0 1px 3px rgba(0,0,0,.4)}
.nr-circ{width:60px;height:60px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 16px rgba(0,0,0,.35);animation:nrPop .22s ease-out}
.nr-circ svg{width:26px;height:26px}
.nr-receita{bottom:200px;margin-left:-126px}
.nr-cartao{bottom:200px;margin-left:30px}
.nr-transf{bottom:106px;margin-left:-176px}
.nr-despesa{bottom:106px;margin-left:80px}
.nr-receita .nr-circ{color:var(--verde)}
.nr-cartao .nr-circ{color:var(--teal)}
.nr-transf .nr-circ{color:#2563EB}
.nr-despesa .nr-circ{color:var(--vermelho)}
.nr-fechar{position:absolute;left:50%;bottom:5px;transform:translateX(-50%);width:56px;height:56px;border-radius:50%;background:var(--roxo);color:#fff;border:0;font-size:32px;line-height:1;cursor:pointer;box-shadow:0 6px 16px rgba(107,47,214,.5);display:flex;align-items:center;justify-content:center}
@keyframes nrPop{from{transform:scale(.3);opacity:0}to{transform:scale(1);opacity:1}}
@keyframes nrFade{from{opacity:0}to{opacity:1}}

@media(max-width:820px){
  .bottom-nav{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:60;background:var(--branco);border-top:1px solid var(--borda);height:62px;align-items:center;justify-content:space-around;padding:0 4px;box-shadow:0 -2px 12px rgba(0,0,0,.06)}
  .bn-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;background:none;border:0;color:var(--cinza);font-size:10.5px;font-weight:600;text-decoration:none;font-family:inherit;cursor:pointer;padding:6px 0;min-width:0}
  .bn-item svg{width:22px;height:22px}
  .bn-item.ativo{color:var(--roxo)}
  .bn-fab{flex:none;width:56px;height:56px;border-radius:50%;background:var(--roxo);color:#fff;border:0;font-size:30px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 6px 16px rgba(107,47,214,.45);margin-top:-26px}
  .menu-toggle{display:none}
  .lateral{z-index:80}
  .overlay{z-index:75}
  .topo{padding-left:16px}
  .pagina{padding-bottom:86px}
}

/* ----- Mais Opções (mobile) ----- */
.mais-cabeca{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:12px}
.mais-cabeca h1{margin:0}
.mais-config{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--texto);border:1px solid var(--borda);flex:none}
.mais-config svg{width:22px;height:22px}
.mais-config:hover{background:var(--roxo-claro);color:var(--roxo);border-color:var(--roxo-claro)}
.mais-abas-wrap{margin-bottom:18px}
.mais-abas{display:flex;width:100%;max-width:560px;background:#e9ebf2;border-radius:30px;box-shadow:none;padding:5px}
.mais-abas .aba{flex:1;text-align:center;cursor:pointer;border:0;background:none;font-family:inherit;font-size:14px}
.mais-abas .aba.ativa{background:#fff;color:var(--roxo);box-shadow:0 2px 6px rgba(0,0,0,.1)}
.mais-painel{max-width:760px;padding:4px 20px}
.mais-item{display:flex;align-items:center;gap:16px;padding:18px 4px;border-bottom:1px solid var(--borda);text-decoration:none;color:var(--texto);font-weight:600;font-size:16px}
.mais-item:last-child{border-bottom:0}
.mais-item .mi-ic{width:26px;height:26px;color:var(--texto);flex:none}
.mais-item .mi-seta{width:18px;height:18px;color:var(--cinza);margin-left:auto;flex:none}
.mais-item:hover{color:var(--roxo)}
.mais-item:hover .mi-ic{color:var(--roxo)}


/* ============================================================
   Layout mobile estilo Mobills — Dashboard e Transações
   (adicionado em 16/07/2026)
   ============================================================ */

/* ----- /transacoes: resumo de topo (Saldo atual + Balanço) ----- */
.resumo-topo{display:flex;align-items:stretch;background:var(--branco);border-radius:var(--raio);box-shadow:var(--sombra);padding:14px 4px;margin-bottom:18px}
.rt-card{flex:1;display:flex;align-items:center;gap:8px;padding:2px 8px;min-width:0}
.rt-card>div{min-width:0}
.rt-ic{width:28px;height:28px;flex:none;color:var(--cinza);display:flex;align-items:center;justify-content:center}
.rt-ic svg{width:22px;height:22px}
.rt-rot{color:var(--cinza);font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rt-val{font-size:clamp(13px,4vw,18px);font-weight:800;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rt-div{width:1px;background:var(--borda);margin:6px 0}
@media(max-width:360px){.rt-ic{display:none}}

/* alterna os layouts de /transacoes: tabela (desktop) x lista (mobile) */
.trans-mobile{display:none}
@media(max-width:820px){
  .trans-desktop{display:none}
  .trans-mobile{display:block}
  .trans-cabeca{display:none}
}

/* ----- /transacoes: lista limpa agrupada por dia ----- */
.tx-lista{display:flex;flex-direction:column}
.tx-dia{font-weight:800;font-size:15px;color:var(--texto);margin:18px 2px 4px}
.tx-lista .tx-dia:first-child{margin-top:2px}
.tx-item{display:flex;align-items:center;gap:14px;padding:12px 4px;border-bottom:1px solid var(--borda);cursor:pointer;position:relative}
.tx-item:last-child{border-bottom:0}
.tx-ic{width:44px;height:44px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;color:#fff}
.tx-ic svg{width:22px;height:22px;stroke:#fff}
.tx-mid{flex:1;min-width:0}
.tx-desc{font-weight:700;font-size:15px;color:var(--texto);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tx-sub{color:var(--cinza);font-size:13px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tx-right{flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.tx-val{font-weight:800;font-size:15px;white-space:nowrap}
.tx-check{width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:13px;flex:none}
.tx-check.ok{background:var(--verde);color:#fff}
.tx-check.pend{border:2px solid #d1a300;color:#d1a300;font-size:12px}
/* checkbox só no modo seleção */
.tx-item .chk-linha{display:none;width:20px;height:20px;flex:none;accent-color:var(--roxo);cursor:pointer}
.tx-lista.selecionando .tx-item .chk-linha{display:block}
/* menu de ações (aparece ao tocar o item) */
.tx-menu{display:none;position:absolute;right:6px;top:100%;z-index:40;min-width:210px;background:var(--branco);border:1px solid var(--borda);border-radius:12px;box-shadow:0 14px 34px rgba(20,20,40,.2);padding:6px;margin-top:-6px}
.tx-menu.aberto{display:block;animation:surgirMenu .16s ease-out}
.tx-menu button{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:11px 12px;border:0;background:none;border-radius:9px;cursor:pointer;font-family:inherit;font-weight:600;font-size:14px;color:var(--texto)}
.tx-menu button:hover{background:var(--roxo-claro);color:var(--roxo)}
.tx-menu .mi{width:18px;height:18px;flex:none;color:var(--cinza)}
.tx-menu button:hover .mi{color:var(--roxo)}
/* barra de seleção */
.bs-todos{display:flex;align-items:center;gap:8px;font-weight:700;font-size:14px;cursor:pointer}
.bs-todos input{width:18px;height:18px;accent-color:var(--roxo)}
.bs-acoes{display:flex;gap:8px}

/* ----- /dashboard: saldo em destaque + ocultar ----- */
.dash-hero{text-align:center;padding:10px 0 18px}
.dh-rot{color:var(--cinza);font-size:15px}
.dh-valor{font-size:clamp(30px,9vw,44px);font-weight:800;margin:6px 0 8px;letter-spacing:-.5px}
.dash-hero.oculto .dh-valor{visibility:hidden;position:relative}
.dash-hero.oculto .dh-valor::after{content:"R$ ••••••••";visibility:visible;position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--texto)}
.dh-olho{background:none;border:0;cursor:pointer;color:var(--cinza);padding:4px;line-height:0}
.dh-olho svg{width:22px;height:22px}
.dh-olho .olho-off{display:none}
.dash-hero.oculto .dh-olho .olho-on{display:none}
.dash-hero.oculto .dh-olho .olho-off{display:inline-block}

/* Receitas / Despesas */
.dash-rd{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:20px}
.rd-card{background:var(--branco);border-radius:var(--raio);box-shadow:var(--sombra);padding:16px;display:flex;align-items:center;gap:12px}
.rd-ic{width:46px;height:46px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;color:#fff}
.rd-ic svg{width:24px;height:24px;stroke:#fff}
.rd-ic.verde{background:var(--verde)}.rd-ic.vermelho{background:var(--vermelho)}
.rd-rot{color:var(--cinza);font-size:14px}
.rd-val{font-size:19px;font-weight:800;margin-top:2px;white-space:nowrap}
@media(max-width:380px){.rd-val{font-size:16px}.rd-card{padding:14px 12px;gap:10px}.rd-ic{width:40px;height:40px}}

/* Balanço mensal (barras receita x despesa) */
.balanco-mes{display:flex;align-items:stretch;gap:20px}
.bm-bars{display:flex;align-items:flex-end;gap:12px;height:120px;flex:none;padding:0 6px}
.bm-bar-col{width:26px;display:flex;align-items:flex-end}
.bm-bar{width:100%;border-radius:8px 8px 0 0;min-height:6px}
.bm-bar.verde{background:var(--verde)}.bm-bar.vermelho{background:var(--vermelho)}
.bm-legs{flex:1;display:flex;flex-direction:column;justify-content:center;gap:14px}
.bm-leg{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:16px}
.bm-leg b{font-weight:800}
.bm-total{border-top:1px solid var(--borda);padding-top:12px}

/* ============================================================
   /categorias — layout mobile (toggle + lista + arquivar)
   (adicionado em 16/07/2026)
   ============================================================ */
/* visibilidade genérica desktop/mobile (corte 820px) */
.ver-mobile{display:none}
@media(max-width:820px){ .ver-desktop{display:none} .ver-mobile{display:block} }

.catm-topo{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.cat-abas{flex:1;display:flex;background:#e9ebf2;border-radius:30px;padding:5px}
.cat-abas .aba{flex:1;text-align:center;cursor:pointer;border:0;background:none;font-family:inherit;font-size:14px;font-weight:700;color:var(--cinza);padding:9px 0;border-radius:24px}
.cat-abas .aba.ativa{background:#fff;color:var(--roxo);box-shadow:0 2px 6px rgba(0,0,0,.1)}
.catm-arq-btn{width:44px;height:44px;border-radius:50%;flex:none;margin-left:auto;border:1px solid var(--borda);background:var(--branco);color:var(--cinza);display:flex;align-items:center;justify-content:center;cursor:pointer}
.catm-arq-btn svg{width:22px;height:22px}
.catm-arq-btn.ativo{background:var(--roxo);color:#fff;border-color:var(--roxo)}

.cat-lista-m,.cat-arqlista{background:var(--branco);border-radius:var(--raio);box-shadow:var(--sombra)}
.cat-arqlista{display:none;margin-top:8px}
.cat-mobile.arq .cat-abas{display:none}
.cat-mobile.arq .cat-lista-m{display:none}
.cat-mobile.arq .cat-arqlista{display:block}
.catm-arq-cabeca{padding:14px 16px 4px;font-weight:800;color:var(--cinza);font-size:12px;text-transform:uppercase;letter-spacing:.6px}

.catm-item{display:flex;align-items:center;gap:14px;padding:14px 16px;border-bottom:1px solid var(--borda);position:relative}
.catm-item:last-child{border-bottom:0}
.catm-ic{width:44px;height:44px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;color:#fff}
.catm-ic svg{width:22px;height:22px;stroke:#fff}
.catm-nome{flex:1;font-weight:700;font-size:16px;color:var(--texto);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.catm-add{width:34px;height:34px;border-radius:50%;flex:none;border:0;background:none;color:var(--cinza);cursor:pointer;display:flex;align-items:center;justify-content:center}
.catm-add svg{width:24px;height:24px}
.catm-add:hover{color:var(--roxo)}
.catm-menu-wrap{position:relative;flex:none}
.catm-menu-btn{width:34px;height:34px;border-radius:50%;border:0;background:none;color:var(--cinza);cursor:pointer;display:flex;align-items:center;justify-content:center}
.catm-menu-btn svg{width:22px;height:22px}
.catm-menu{display:none;position:absolute;right:0;top:100%;z-index:40;min-width:190px;background:var(--branco);border:1px solid var(--borda);border-radius:12px;box-shadow:0 14px 34px rgba(20,20,40,.2);padding:6px}
.catm-menu.aberto{display:block;animation:surgirMenu .16s ease-out}
.catm-menu button,.catm-menu a{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:11px 12px;border:0;background:none;border-radius:9px;cursor:pointer;font-family:inherit;font-weight:600;font-size:14px;color:var(--texto);text-decoration:none}
.catm-menu button:hover,.catm-menu a:hover{background:var(--roxo-claro);color:var(--roxo)}
.catm-menu .mi{width:18px;height:18px;flex:none;color:var(--cinza)}
.catm-menu button:hover .mi,.catm-menu a:hover .mi{color:var(--roxo)}

/* ============================================================
   Calculadoras
   ============================================================ */
.calc-busca-wrap{margin-bottom:12px;max-width:760px}
.calc-busca{width:100%;padding:12px 16px;border:1px solid var(--borda);border-radius:12px;font-family:inherit;font-size:15px;background:var(--branco);color:var(--texto)}
.calc-busca:focus{outline:none;border-color:var(--roxo)}
#calcLista{max-width:760px}
.calc-grupo-tit{font-size:12px;font-weight:800;color:var(--cinza);text-transform:uppercase;letter-spacing:.6px;margin:16px 4px 8px}
.calc-lista-bloco{background:var(--branco);border-radius:var(--raio);box-shadow:var(--sombra);overflow:hidden;margin-bottom:6px}
.calc-item{display:flex;align-items:center;gap:16px;width:100%;padding:16px;border:0;border-bottom:1px solid var(--borda);background:none;cursor:pointer;font-family:inherit;text-align:left;color:var(--texto)}
.calc-item:last-child{border-bottom:0}
.calc-item .ci-ic{width:26px;height:26px;color:var(--roxo);flex:none}
.calc-item .ci-nome{flex:1;font-weight:600;font-size:16px}
.calc-item .ci-seta{width:18px;height:18px;color:var(--cinza);flex:none}
.calc-item:hover{background:var(--roxo-claro)}
.calc-item:hover .ci-nome{color:var(--roxo)}

.calc-campos label{display:block;margin:0 0 12px}
.calc-campos .cc-rot{font-size:14px;color:var(--cinza);margin-bottom:5px;display:block}
.calc-campos input,.calc-campos select{width:100%;padding:11px 12px;border:1px solid var(--borda);border-radius:10px;font-family:inherit;font-size:16px;background:var(--branco);color:var(--texto)}
.calc-campos input:focus,.calc-campos select:focus{outline:none;border-color:var(--roxo)}
.calc-btn{width:100%;margin-top:6px}
.calc-resultado{margin-top:16px}
.calc-resultado .cr-linha{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--borda);font-size:15px;color:var(--texto)}
.calc-resultado .cr-linha:last-child{border-bottom:0}
.calc-resultado .cr-linha .cr-v{font-weight:700;text-align:right;white-space:nowrap}
.calc-resultado .cr-linha.destaque{font-size:20px;font-weight:800;color:var(--roxo);border-bottom:2px solid var(--roxo-claro);padding-bottom:12px}
.calc-resultado .cr-linha.destaque .cr-v{color:var(--roxo)}
.calc-resultado .cr-nota{color:var(--cinza);font-size:12px;padding:8px 0;line-height:1.4}

/* ============================================================
   /contas — lista mobile (saldo atual + previsto por conta)
   ============================================================ */
.cta-lista{background:var(--branco);border-radius:var(--raio);box-shadow:var(--sombra)}
.cta-item{display:flex;flex-direction:column;gap:4px;padding:16px;border-bottom:1px solid var(--borda)}
.cta-item:last-child{border-bottom:0}
.cta-cab{display:flex;align-items:center;gap:12px;margin-bottom:6px}
.cta-ic{width:44px;height:44px}
.cta-nome{font-weight:800;font-size:17px;color:var(--texto);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cta-cab .conta-menu-btn{width:34px;height:34px}
.cta-linha{display:flex;justify-content:space-between;gap:10px;font-size:14px;padding:2px 0;align-items:baseline}
.cta-linha>span{color:var(--texto);font-weight:700}
.cta-linha b{font-weight:800;white-space:nowrap}
.cta-prev>span{color:var(--cinza);font-weight:400}
.cta-prev b{color:var(--cinza);font-weight:600}
.cta-cadastrar{text-align:center;margin:20px 0 8px}
.cta-cadastrar button{background:none;border:0;color:var(--roxo);font-weight:800;font-size:16px;font-family:inherit;cursor:pointer;padding:8px}
.cta-arq-toggle{display:block;width:100%;text-align:center;background:none;border:0;color:var(--cinza);font-weight:700;font-size:14px;font-family:inherit;cursor:pointer;padding:10px;margin-top:6px}
.cta-arq-toggle:hover{color:var(--roxo)}

/* ============================================================
   /cartoes — mobile (Abertas/Fechadas, melhor cartão, faturas)
   ============================================================ */
.cart-abas-wrap{margin-bottom:14px}
.cart-abas{display:flex;max-width:560px;background:#e9ebf2;border-radius:30px;padding:5px}
.cart-abas .aba{flex:1;text-align:center;cursor:pointer;border:0;background:none;font-family:inherit;font-size:14px;font-weight:700;color:var(--cinza);padding:9px 0;border-radius:24px}
.cart-abas .aba.ativa{background:#fff;color:var(--roxo);box-shadow:0 2px 6px rgba(0,0,0,.1)}
.cart-topo{padding:18px}
.cart-melhor{display:flex;gap:10px;align-items:flex-start;text-align:center;color:var(--cinza);font-size:14px;padding-bottom:14px;margin-bottom:14px;border-bottom:1px solid var(--borda);justify-content:center}
.cart-melhor b{color:var(--texto);font-size:16px}
.cart-melhor .cm-ic{color:var(--cinza);font-size:16px;flex:none}
.cart-resumo{display:flex;gap:12px}
.cr-item{flex:1;display:flex;align-items:center;gap:10px;min-width:0}
.cr-ic{width:34px;height:34px;flex:none;color:var(--cinza);display:flex;align-items:center;justify-content:center}
.cr-ic svg{width:26px;height:26px}
.cr-rot{color:var(--cinza);font-size:13px}
.cr-val{font-size:18px;font-weight:800;margin-top:2px;white-space:nowrap}
.cart-lista{display:flex;flex-direction:column;gap:14px}
.cart-card{background:var(--branco);border-radius:var(--raio);box-shadow:var(--sombra);padding:18px}
.cart-card-topo{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.cart-band{width:42px;height:30px;border-radius:7px;flex:none;display:flex;align-items:center;justify-content:center;color:#fff}
.cart-band svg{width:22px;height:22px;stroke:#fff}
.cart-nome-wrap{flex:1;min-width:0;display:flex;flex-direction:column}
.cart-nome{font-weight:800;font-size:16px;color:var(--texto);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cart-bandtxt{font-size:11px;color:var(--cinza);font-weight:700;letter-spacing:.5px}
.cart-card-topo .conta-menu-btn{width:34px;height:34px}
.cart-linha{display:flex;justify-content:space-between;gap:10px;font-size:15px;align-items:center}
.cart-linha b{font-weight:800;white-space:nowrap}
.cart-sub{font-size:13px;color:var(--cinza)}
.cart-rodape{margin-top:12px;padding-top:12px;border-top:1px solid var(--borda);text-align:center}
.cart-rodape a{color:var(--roxo);font-weight:700;font-size:13px;letter-spacing:.3px;padding:6px;display:inline-block}

/* ----- Seta de voltar no topo (mobile, telas fora da barra inferior) ----- */
.topo-voltar{display:none;background:none;border:0;color:var(--texto);cursor:pointer;padding:6px;line-height:0}
.topo-voltar svg{width:26px;height:26px}
@media(max-width:820px){
  .topo-voltar{display:flex;position:absolute;left:6px;top:50%;transform:translateY(-50%);align-items:center;justify-content:center;z-index:5}
}

/* ============================================================
   /calendario — versão mobile (grade limpa + lista do dia)
   ============================================================ */
.cal-topo-m{justify-content:center;gap:28px;margin-bottom:6px}
.cal-topo-m .cal-mes{font-size:17px}
.calm-grade{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;margin-bottom:18px}
.calm-grade .cal-ds{font-size:11px;padding:4px 0 8px;letter-spacing:.3px}
.calm-cel{min-height:44px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;cursor:pointer;border-radius:10px;padding:4px 0}
.calm-cel.sel{background:var(--roxo-claro)}
.calm-num{font-size:15px;font-weight:600;color:var(--texto);line-height:1}
.cal-fora .calm-num{opacity:.4}
.calm-cel.cal-hoje .calm-num{color:var(--vermelho);font-weight:800}
.calm-dot{width:5px;height:5px;border-radius:50%;background:transparent}
.calm-cel.tem .calm-dot{background:var(--vermelho)}
.cal-mobile.modo-receita .calm-cel.tem .calm-dot{background:var(--verde)}
.cal-abas-wrap{margin-bottom:14px}
.cal-abas{display:flex;background:#e9ebf2;border-radius:30px;padding:5px;max-width:520px;margin:0 auto}
.cal-abas .aba{flex:1;text-align:center;cursor:pointer;border:0;background:none;font-family:inherit;font-size:14px;font-weight:700;color:var(--cinza);padding:9px 0;border-radius:24px}
.cal-abas .aba.ativa{background:#fff;color:var(--roxo);box-shadow:0 2px 6px rgba(0,0,0,.1)}
.calm-toggle{justify-content:space-between;margin-bottom:6px}
.calm-painel .tx-dia{margin-top:6px}

/* ============================================================
   /perfil — Convidar amigos
   ============================================================ */
.convidar-card .convidar-ilustra{width:64px;height:64px;border-radius:18px;background:var(--roxo-claro);color:var(--roxo);display:flex;align-items:center;justify-content:center;margin-bottom:14px}
.convidar-card .convidar-ilustra svg{width:36px;height:36px}
.convidar-lista{list-style:none;padding:0;margin:12px 0 4px}
.convidar-lista li{position:relative;padding-left:26px;margin:9px 0;color:var(--texto);line-height:1.4}
.convidar-lista li::before{content:"✓";position:absolute;left:0;top:0;width:18px;height:18px;border-radius:50%;background:var(--roxo);color:#fff;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center}
.convidar-lbl{display:block;font-weight:700;margin:18px 0 6px;font-size:14px}
.convidar-link{display:flex;gap:8px}
.convidar-link input{flex:1;min-width:0;padding:11px 12px;border:1px solid var(--borda);border-radius:10px;background:var(--fundo);color:var(--texto);font-family:inherit;font-size:14px}
.convidar-link button{width:46px;flex:none;border:1px solid var(--borda);border-radius:10px;background:var(--branco);color:var(--roxo);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s,border-color .15s}
.convidar-link button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2}
.convidar-link button.copiado{background:var(--verde);color:#fff;border-color:var(--verde)}
.convidar-wpp{margin-top:14px;display:inline-flex;align-items:center;gap:8px}
.convidar-wpp svg{width:18px;height:18px;fill:none;stroke:#fff;stroke-width:2}
.convidar-stat{display:flex;align-items:baseline;gap:12px;margin-bottom:16px}
.convidar-stat .cv-num{font-size:34px;font-weight:800;color:var(--roxo);line-height:1}
.convidar-stat .cv-rot{color:var(--cinza)}
.convidar-amigos{display:flex;flex-direction:column}
.cv-amigo{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--borda)}
.cv-amigo:last-child{border-bottom:0}
.cv-avatar{width:36px;height:36px;border-radius:50%;background:var(--roxo);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;flex:none}
.cv-nome{flex:1;font-weight:700;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cv-amigo small{color:var(--cinza);flex:none}
.convidar-faq{margin-top:22px}
.convidar-faq details{border-bottom:1px solid var(--borda);padding:14px 0}
.convidar-faq details:last-child{border-bottom:0}
.convidar-faq summary{cursor:pointer;font-weight:700;color:var(--texto);list-style:none;display:flex;justify-content:space-between;align-items:center;gap:10px}
.convidar-faq summary::-webkit-details-marker{display:none}
.convidar-faq summary::after{content:"⌄";color:var(--cinza);font-size:18px;line-height:1}
.convidar-faq details[open] summary::after{content:"⌃"}
.convidar-faq p{color:var(--cinza);margin-top:10px;line-height:1.5}

/* ============================================================
   Gestão de módulos (configuracoes?sistema)
   ============================================================ */
.modulos-lista{display:flex;flex-direction:column;gap:2px}
.modulo-item{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid var(--borda)}
.modulo-item:last-child{border-bottom:0}
.modulo-info{min-width:0}
.modulo-info b{display:block;font-size:15px}
.modulo-info small{color:var(--cinza);font-size:13px;line-height:1.4;display:block;margin-top:2px}

/* ============================================================
   /perfil — aba Assinatura (módulo)
   ============================================================ */
.ass-tit{color:var(--cinza);font-weight:700;font-size:15px;margin:24px 4px 12px}
.ass-tit:first-child{margin-top:4px}
.ass-beneficios{display:grid;grid-template-columns:repeat(3,1fr);gap:26px 20px}
.ass-benef{text-align:center;padding:6px}
.ass-benef-ic{width:56px;height:56px;border-radius:16px;background:var(--roxo-claro);color:var(--roxo);display:inline-flex;align-items:center;justify-content:center;margin-bottom:12px}
.ass-benef-ic svg{width:28px;height:28px}
.ass-benef-nome{font-weight:800;margin-bottom:6px}
.ass-benef-desc{color:var(--cinza);font-size:14px;line-height:1.45}
.ass-oculto{display:none}
.ass-beneficios.ass-expandido .ass-oculto{display:block}
.ass-vermais{text-align:center;margin-top:22px}
.ass-vermais button{background:none;border:1px solid var(--roxo);color:var(--roxo);border-radius:24px;padding:10px 30px;font-weight:700;font-family:inherit;cursor:pointer}
.ass-vermais button:hover{background:var(--roxo-claro)}
.ass-plano{display:flex;gap:30px;flex-wrap:wrap;align-items:flex-start}
.ass-plano-info{flex:2 1 320px;min-width:0}
.ass-plano-status{flex:1 1 200px;text-align:center}
.ass-plano-rot{font-weight:800;margin-bottom:10px}
.ass-plano-nome{display:flex;align-items:center;gap:8px;font-size:22px;font-weight:800}
.ass-coroa{width:26px;height:26px;color:#EAB308}
.ass-status-badge{display:inline-block;background:var(--fundo);border:1px solid var(--borda);border-radius:20px;padding:8px 16px;font-weight:700;color:var(--cinza);margin-bottom:8px}
.ass-plano-status small{display:block;color:var(--cinza)}
.ass-tab .ass-vazio-linha{text-align:center;color:var(--cinza);padding:26px}
.ass-duvidas h2{margin-bottom:6px}
.btn:disabled{opacity:.5;cursor:not-allowed}
@media(max-width:720px){.ass-beneficios{grid-template-columns:1fr;gap:22px}.ass-plano-status{text-align:left}}

/* ============================================================
   Central de Ajuda (/ajuda)
   ============================================================ */
.ajuda-hero{text-align:center;padding:26px 16px 30px;max-width:720px;margin:0 auto}
.ajuda-hero h1{font-size:30px;margin-bottom:8px}
.ajuda-hero>p{color:var(--cinza);margin-bottom:22px}
.ajuda-busca{position:relative;max-width:560px;margin:0 auto}
.ajuda-busca svg{position:absolute;left:16px;top:50%;transform:translateY(-50%);width:20px;height:20px;color:var(--cinza)}
.ajuda-busca input{width:100%;padding:15px 16px 15px 46px;border:1px solid var(--borda);border-radius:30px;background:var(--branco);color:var(--texto);font-family:inherit;font-size:15px;box-shadow:var(--sombra)}
.ajuda-busca input:focus{outline:none;border-color:var(--roxo)}
.ajuda-resultados{max-width:560px;margin:14px auto 0;text-align:left;background:var(--branco);border:1px solid var(--borda);border-radius:14px;box-shadow:var(--sombra);overflow:hidden}
.ajuda-res-item{display:flex;flex-direction:column;padding:12px 16px;border-bottom:1px solid var(--borda)}
.ajuda-res-item:last-child{border-bottom:0}
.ajuda-res-item:hover{background:var(--roxo-claro)}
.ajuda-res-item span{font-weight:700}
.ajuda-res-item small{color:var(--cinza)}
.ajuda-nada{padding:16px;color:var(--cinza)}
.ajuda-cats{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-top:6px}
.ajuda-cat{display:flex;flex-direction:column;background:var(--branco);border:1px solid var(--borda);border-radius:var(--raio);box-shadow:var(--sombra);padding:22px;transition:transform .15s,box-shadow .15s}
.ajuda-cat:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(17,24,39,.10)}
.ajuda-cat-ic{width:48px;height:48px;border-radius:14px;background:var(--roxo-claro);color:var(--roxo);display:flex;align-items:center;justify-content:center;margin-bottom:14px}
.ajuda-cat-ic svg{width:26px;height:26px}
.ajuda-cat-nome{font-weight:800;font-size:17px;margin-bottom:4px}
.ajuda-cat-desc{color:var(--cinza);font-size:14px;line-height:1.4;flex:1}
.ajuda-cat-conta{color:var(--roxo);font-weight:700;font-size:13px;margin-top:12px}
.ajuda-trilha{display:flex;flex-wrap:wrap;align-items:center;gap:8px;color:var(--cinza);font-size:14px;margin-bottom:16px}
.ajuda-trilha a{color:var(--roxo);font-weight:600}
.ajuda-trilha .atual{color:var(--texto)}
.ajuda-sub{color:var(--cinza);margin:-6px 4px 16px}
.ajuda-lista{padding:6px 0}
.ajuda-link{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 18px;border-bottom:1px solid var(--borda);color:var(--texto);font-weight:600}
.ajuda-link:last-child{border-bottom:0}
.ajuda-link:hover{background:var(--roxo-claro);color:var(--roxo)}
.ajuda-link svg{width:18px;height:18px;color:var(--cinza);flex:none}
.ajuda-artigo h1{font-size:26px;margin-bottom:16px}
.ajuda-corpo{color:var(--texto);line-height:1.6}
.ajuda-corpo p{margin-bottom:14px}
.ajuda-corpo p:last-child{margin-bottom:0}
.ajuda-corpo ul,.ajuda-corpo ol{margin:0 0 14px 20px}
.ajuda-corpo li{margin-bottom:6px}
.ajuda-feedback b{display:block;margin-bottom:6px}
.ajuda-feedback p{color:var(--cinza);margin:0}
.ajuda-feedback a{color:var(--roxo);font-weight:700}
@media(max-width:600px){.ajuda-hero h1{font-size:24px}.ajuda-cats{grid-template-columns:1fr}}

/* Plano/assinatura — badges e trial */
.badge-plano{display:inline-block;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:800;background:var(--fundo);border:1px solid var(--borda);color:var(--cinza)}
.badge-plano.prem{background:#FEF3C7;border-color:#FDE68A;color:#B45309}
.ass-status-badge.premium{background:#FEF3C7;border-color:#FDE68A;color:#B45309}
.ass-trial-num{display:flex;flex-direction:column;align-items:center;justify-content:center}
.ass-trial-num b{font-size:40px;font-weight:800;color:var(--roxo);line-height:1}
.ass-trial-num span{color:var(--cinza);font-size:13px;margin-top:4px}

/* ============================================================
   Comparativo de planos (/perfil?assinatura)
   ============================================================ */
.planos-grade{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
.plano-card{position:relative;background:var(--branco);border:1px solid var(--borda);border-radius:var(--raio);box-shadow:var(--sombra);padding:22px;display:flex;flex-direction:column}
.plano-card.destaque{border-color:var(--roxo);box-shadow:0 8px 24px rgba(107,47,214,.14)}
.plano-card.atual{outline:2px solid var(--verde);outline-offset:-2px}
.plano-tag{position:absolute;top:-11px;left:50%;transform:translateX(-50%);background:var(--roxo);color:#fff;font-size:11px;font-weight:800;padding:4px 12px;border-radius:20px;white-space:nowrap}
.plano-nome{font-weight:800;font-size:18px}
.plano-preco{font-size:26px;font-weight:800;color:var(--roxo);margin:8px 0 14px;line-height:1}
.plano-preco small{font-size:13px;font-weight:600;color:var(--cinza)}
.plano-recursos{list-style:none;padding:0;margin:0 0 16px;flex:1}
.plano-recursos li{position:relative;padding-left:24px;margin:8px 0;color:var(--texto);font-size:14px;line-height:1.35}
.plano-recursos li::before{content:"✓";position:absolute;left:0;top:0;color:var(--verde);font-weight:800}
.plano-atual-sel{text-align:center;font-weight:800;color:var(--verde);padding:11px;border:1px solid var(--verde);border-radius:24px}
.plano-card .btn{width:100%}
.pl-chks{display:flex;flex-direction:column;gap:8px;justify-content:center}
.chk-inline{display:flex;align-items:center;gap:8px;font-size:14px}
.chk-inline input{width:auto}

/* ============================================================
   /ajustes-site — painel administrativo
   ============================================================ */
.admin-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;margin-bottom:6px}
.admin-stat{display:flex;align-items:center;gap:14px;background:var(--branco);border:1px solid var(--borda);border-radius:var(--raio);box-shadow:var(--sombra);padding:18px}
.admin-stat .as-ic{width:44px;height:44px;border-radius:12px;background:var(--roxo-claro);color:var(--roxo);flex:none;display:flex;align-items:center;justify-content:center}
.admin-stat .as-ic svg{width:22px;height:22px}
.admin-stat .as-num{font-size:24px;font-weight:800;color:var(--texto);line-height:1}
.admin-stat .as-rot{color:var(--cinza);font-size:13px;margin-top:3px}
.admin-tools{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.admin-tool{display:flex;align-items:center;gap:14px;background:var(--branco);border:1px solid var(--borda);border-radius:var(--raio);box-shadow:var(--sombra);padding:18px;color:var(--texto);transition:transform .15s,border-color .15s}
a.admin-tool:hover{transform:translateY(-2px);border-color:var(--roxo)}
.admin-tool .at-ic{width:44px;height:44px;border-radius:12px;background:var(--roxo-claro);color:var(--roxo);flex:none;display:flex;align-items:center;justify-content:center}
.admin-tool .at-ic svg{width:22px;height:22px}
.admin-tool>div{flex:1;min-width:0}
.admin-tool b{display:block;color:var(--texto)}
.admin-tool small{color:var(--cinza);font-size:13px}
.admin-tool .at-seta{width:18px;height:18px;color:var(--cinza);flex:none}
.admin-tool.bloqueado{opacity:.7}
.admin-tool.bloqueado .at-ic{background:var(--fundo);color:var(--cinza)}
.at-tag{display:inline-block;background:#FEF3C7;color:#B45309;font-size:11px;font-weight:800;padding:1px 8px;border-radius:20px;margin-left:2px}

/* ============================================================
   Editor de conteúdo do site (/ajustes-site)
   ============================================================ */
.site-salvo{background:#DCFCE7;border:1px solid #86EFAC;color:#15803D;padding:12px 16px;border-radius:12px;margin-bottom:16px;font-weight:700}
.site-sec{border:1px solid var(--borda);border-radius:12px;margin-bottom:12px;overflow:hidden}
.site-sec>summary{cursor:pointer;font-weight:800;color:var(--texto);padding:14px 16px;background:var(--fundo);list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px}
.site-sec>summary::-webkit-details-marker{display:none}
.site-sec>summary::after{content:"";width:10px;height:10px;border-right:2px solid var(--cinza);border-bottom:2px solid var(--cinza);transform:rotate(45deg);transition:transform .2s;flex:none}
.site-sec[open]>summary::after{transform:rotate(-135deg)}
.site-campos{padding:16px;display:grid;grid-template-columns:1fr 1fr;gap:14px}
.site-campo{display:flex;flex-direction:column;gap:6px}
.site-campo-full{grid-column:1/-1}
.site-campo>span{font-size:13px;color:var(--cinza);font-weight:600}
.site-campo input,.site-campo textarea{width:100%;padding:10px 12px;border:1px solid var(--borda);border-radius:10px;font-family:inherit;font-size:14px;background:var(--branco);color:var(--texto);resize:vertical;line-height:1.5}
.site-campo input:focus,.site-campo textarea:focus{outline:none;border-color:var(--roxo)}
.site-editor-acoes{margin-top:16px;text-align:right}
@media(max-width:640px){.site-campos{grid-template-columns:1fr}}

/* ============================================================
   Pagamentos (gateways + checkout)
   ============================================================ */
.pgto-webhook{margin-top:16px;padding:14px 16px;background:var(--fundo);border:1px solid var(--borda);border-radius:12px}
.pgto-webhook b{display:block;margin-bottom:4px}
.pgto-webhook p{color:var(--cinza);font-size:13px;margin:0 0 8px}
.pgto-webhook code{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;background:var(--branco);border:1px solid var(--borda);border-radius:8px;padding:8px 10px;margin-top:6px;word-break:break-all;color:var(--texto)}
.aviso-info{background:var(--roxo-claro);border:1px solid var(--borda);color:var(--texto);padding:12px 16px;border-radius:12px;margin-bottom:16px}

.pgto-hint{font-size:12.5px;color:var(--cinza);margin:-6px 0 12px;line-height:1.5}
.pgto-hint a{color:var(--roxo);font-weight:700}

/* Planos por período */
.plano-apartir{display:block;font-size:12px;font-weight:600;color:var(--cinza);margin-bottom:2px}
.assinar-per{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--cinza);font-weight:700;margin:2px 0 14px}
.assinar-per select{padding:10px 12px;border:1px solid var(--borda);border-radius:10px;font-family:inherit;font-size:14px;font-weight:600;background:var(--branco);color:var(--texto);cursor:pointer}

/* Tela de boas-vindas (teste grátis) */
.bv-cx{max-width:440px;text-align:center}
.bv-icone{width:64px;height:64px;border-radius:50%;background:var(--roxo-claro);color:var(--roxo);display:flex;align-items:center;justify-content:center;margin:0 auto 16px}
.bv-icone svg{width:32px;height:32px}
.bv-cx h3{margin-bottom:12px}
.bv-cx p{color:var(--cinza);margin-bottom:8px}
.bv-sub{color:var(--texto)!important;font-weight:700;margin-top:14px!important}
.bv-acoes{display:flex;flex-direction:column;gap:10px;margin:16px 0 12px}
.bv-acoes .btn{width:100%}
.bv-naomostrar{display:flex;align-items:center;justify-content:center;gap:8px;font-size:13px;color:var(--cinza);cursor:pointer}
.bv-naomostrar input{width:auto;cursor:pointer}

/* Modal de confirmação de compra (/assinar) */
.compra-cx{max-width:420px}
.compra-plano{font-weight:800;font-size:18px;color:var(--texto);margin-bottom:16px}
.compra-campo{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--cinza);font-weight:700;margin-bottom:16px}
.compra-campo select{padding:12px;border:1px solid var(--borda);border-radius:10px;font-family:inherit;font-size:15px;font-weight:600;background:var(--branco);color:var(--texto);cursor:pointer}
.compra-total{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-top:1px solid var(--borda);border-bottom:1px solid var(--borda);margin-bottom:14px}
.compra-total span{color:var(--cinza);font-weight:600}
.compra-total b{font-size:24px;font-weight:800;color:var(--roxo)}
.compra-nota{font-size:12.5px;color:var(--cinza);margin-bottom:18px;line-height:1.5}
.compra-acoes .btn{min-height:46px}
@media(max-width:560px){
  #modalCompra{align-items:flex-end;padding:0}
  #modalCompra .compra-cx{max-width:none;border-radius:18px 18px 0 0;padding:22px 20px calc(20px + env(safe-area-inset-bottom));max-height:88vh}
  .compra-acoes{flex-direction:column-reverse}
  .compra-acoes .btn{width:100%}
}

/* Botão "Assinar Plano" na sidebar (piscando) */
.assinar-cta{background:var(--roxo);border-radius:12px;margin:6px 0;font-weight:800;animation:piscarAssinar 1.3s ease-in-out infinite}
.assinar-cta,.assinar-cta span,.assinar-cta svg{color:#fff!important}
.assinar-cta:hover{background:var(--roxo-escuro)}
@keyframes piscarAssinar{0%,100%{opacity:1;box-shadow:0 0 0 0 rgba(0,0,0,0)}50%{opacity:.62;box-shadow:0 0 16px 1px var(--roxo)}}
@media(prefers-reduced-motion:reduce){.assinar-cta{animation:none}}

/* Autocompletar descrição (Nova Despesa/Receita) */
.desc-wrap{position:relative}
.desc-sugestoes{position:absolute;top:100%;left:0;right:0;z-index:30;background:var(--branco);border:1px solid var(--borda);border-radius:12px;box-shadow:0 12px 30px rgba(0,0,0,.14);margin-top:6px;max-height:260px;overflow:auto;padding:6px}
.ds-item{padding:10px 12px;border-radius:9px;cursor:pointer}
.ds-item:hover{background:var(--fundo)}
.ds-desc{font-weight:600;color:var(--texto);font-size:14px;line-height:1.3}
.ds-sub{font-size:12px;color:var(--cinza);margin-top:2px}

/* Cadastro de perguntas do FAQ (ajustes do site) */
.faq-admin{padding:0 16px 16px}
.faq-admin-top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}
.faq-admin-top span{font-size:13px;color:var(--cinza);font-weight:700}
.faq-vazio{color:var(--cinza);font-size:14px;margin:0}
.faq-itens{display:flex;flex-direction:column;gap:8px}
.faq-item{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:12px 14px;border:1px solid var(--borda);border-radius:10px;background:var(--fundo)}
.faq-item-txt{min-width:0}
.faq-item-txt b{display:block;color:var(--texto);font-size:14px}
.faq-item-txt small{display:block;color:var(--cinza);font-size:12.5px;margin-top:2px}
.faq-off{color:var(--vermelho);font-weight:700;font-size:11px}
.faq-item-acoes{display:flex;gap:6px;flex:none}
.faq-item-acoes button{border:1px solid var(--borda);background:var(--branco);color:var(--texto);border-radius:8px;padding:6px 10px;font-size:12.5px;font-weight:600;cursor:pointer;font-family:inherit}
.faq-item-acoes button:hover{border-color:var(--roxo);color:var(--roxo)}
.faq-item-acoes .perigo:hover{border-color:var(--vermelho);color:var(--vermelho)}

/* Botão copiar (URLs de webhook) */
.wh-linha{display:flex;align-items:stretch;gap:8px;margin-top:6px}
.wh-linha code{flex:1;margin-top:0}
.wh-copiar{flex:none;border:1px solid var(--borda);background:var(--branco);color:var(--roxo);border-radius:8px;padding:0 14px;font-size:12.5px;font-weight:700;cursor:pointer;font-family:inherit}
.wh-copiar:hover{border-color:var(--roxo);background:var(--roxo-claro)}
.wh-copiar.ok{color:var(--verde);border-color:var(--verde);background:var(--branco)}

/* Campos secretos (credenciais com olho + copiar) */
.campo-secreto{display:flex;align-items:stretch;gap:6px}
.campo-secreto input{flex:1;min-width:0}
.cs-olho,.cs-copiar{flex:none;border:1px solid var(--borda);background:var(--branco);border-radius:10px;cursor:pointer;font-family:inherit}
.cs-olho{width:42px;display:inline-flex;align-items:center;justify-content:center;color:var(--cinza);padding:0}
.cs-olho svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.cs-olho:hover{color:var(--roxo);border-color:var(--roxo)}
.cs-olho .olho-off{display:none}
.cs-olho.ver .olho-on{display:none}
.cs-olho.ver .olho-off{display:block}
.cs-copiar{color:var(--roxo);font-size:12.5px;font-weight:700;padding:0 14px}
.cs-copiar:hover{border-color:var(--roxo);background:var(--roxo-claro)}
.cs-copiar.ok{color:var(--verde);border-color:var(--verde);background:var(--branco)}

/* Barra de progresso (na seção salva) + aviso de sucesso */
.barra-sec{position:absolute;top:0;left:0;height:3px;width:0;background:var(--roxo);border-radius:var(--raio) 0 0 0;z-index:6;opacity:0;transition:width .35s ease,opacity .25s}
.barra-sec.ativa{opacity:1;box-shadow:0 0 8px var(--roxo)}
.toast-ok{position:fixed;left:50%;bottom:28px;transform:translate(-50%,20px);background:var(--verde);color:#fff;font-weight:700;font-size:14px;padding:12px 18px;border-radius:12px;box-shadow:0 12px 30px rgba(0,0,0,.22);z-index:9999;opacity:0;transition:opacity .3s,transform .3s;display:flex;align-items:center;gap:8px;max-width:90vw}
.toast-ok.ver{opacity:1;transform:translate(-50%,0)}
@media(prefers-reduced-motion:reduce){.barra-sec{transition:opacity .2s}.toast-ok{transition:opacity .2s}}

/* Upload de logo: arquivo e link lado a lado */
.marca-linha{display:flex;gap:14px}
.marca-linha label{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.marca-linha input{width:100%}
@media(max-width:560px){.marca-linha{flex-direction:column;gap:8px}}

/* Lista de segurança (perfil) e listas dos artigos de ajuda */
.priv-lista{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.priv-lista li{position:relative;padding-left:26px;color:var(--texto);font-size:14.5px;line-height:1.5}
.priv-lista li::before{content:"✓";position:absolute;left:0;top:0;color:var(--verde);font-weight:800}
.ajuda-corpo ul{margin:10px 0 14px;padding-left:22px}
.ajuda-corpo li{margin:7px 0;line-height:1.6;color:var(--texto)}

/* ===== Notificações (sino, dropdown, modal) e editor rico ===== */
.topo-dir{grid-column:3;justify-self:end;display:flex;align-items:center;gap:6px}
.sino{position:relative}
.sino-botao{position:relative;background:none;border:0;cursor:pointer;color:var(--texto);width:42px;height:42px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;transition:background .15s}
.sino-botao:hover{background:var(--fundo)}
.sino-botao svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.sino-badge{position:absolute;top:4px;right:4px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--vermelho);color:#fff;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 2px var(--branco)}
.sino-pop{position:absolute;top:calc(100% + 8px);right:0;width:min(360px,92vw);background:var(--branco);border:1px solid var(--borda);border-radius:16px;box-shadow:0 18px 50px rgba(0,0,0,.18);opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .18s,transform .18s;z-index:70;overflow:hidden}
.sino.aberto .sino-pop{opacity:1;visibility:visible;transform:none}
.sino-topo{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid var(--borda)}
.sino-topo b{font-size:15px}
.sino-todas{background:none;border:0;color:var(--roxo);font-weight:700;font-size:12.5px;cursor:pointer;font-family:inherit}
.sino-todas:hover{text-decoration:underline}
.sino-lista{max-height:min(420px,60vh);overflow:auto}
.notif-item{display:flex;gap:12px;align-items:flex-start;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--borda);padding:14px 16px;cursor:pointer;font-family:inherit;transition:background .12s}
.notif-item:last-child{border-bottom:0}
.notif-item:hover{background:var(--fundo)}
.notif-item.nova{background:color-mix(in srgb,var(--roxo) 6%,transparent)}
.notif-dot{width:9px;height:9px;border-radius:50%;flex:none;margin-top:5px;background:var(--cinza)}
.notif-dot.t-aviso{background:var(--roxo)}
.notif-dot.t-alerta{background:var(--vermelho)}
.notif-dot.t-promocao{background:var(--verde)}
.notif-info{display:flex;flex-direction:column;gap:2px;min-width:0}
.notif-tit{font-weight:700;color:var(--texto);font-size:14px;line-height:1.35}
.notif-item.nova .notif-tit{font-weight:800}
.notif-quando{font-size:12px;color:var(--cinza)}
.sino-vazio{display:flex;flex-direction:column;align-items:center;gap:10px;padding:34px 16px;color:var(--cinza);text-align:center;font-size:14px}
.sino-vazio svg{width:34px;height:34px;fill:none;stroke:currentColor;stroke-width:1.6;opacity:.55}
.notif-modal{max-width:520px;position:relative}
.notif-x{position:absolute;top:14px;right:14px;background:none;border:0;cursor:pointer;color:var(--cinza)}
.notif-x:hover{color:var(--texto)}
.notif-tag{display:inline-block;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;padding:4px 10px;border-radius:20px;color:#fff;background:var(--roxo)}
.notif-tag.t-aviso{background:var(--roxo)}
.notif-tag.t-alerta{background:var(--vermelho)}
.notif-tag.t-promocao{background:var(--verde)}
.notif-modal h3{margin:12px 0 4px;padding-right:30px}
.notif-quando2{font-size:12.5px;color:var(--cinza);margin-bottom:14px}
.notif-corpo{color:var(--texto);line-height:1.6;font-size:15px;word-break:break-word}
.notif-corpo img{max-width:100%;height:auto;border-radius:12px;margin:10px 0}
.notif-corpo a{color:var(--roxo);font-weight:600}
.notif-corpo ul,.notif-corpo ol{padding-left:22px;margin:10px 0}
.notif-corpo h3{font-size:17px;margin:14px 0 6px;padding:0}
.notif-corpo blockquote{border-left:3px solid var(--borda);margin:10px 0;padding:4px 14px;color:var(--cinza)}
.rt{border:1px solid var(--borda);border-radius:12px;overflow:hidden;background:var(--branco)}
.rt-bar{display:flex;flex-wrap:wrap;gap:2px;align-items:center;padding:6px;background:var(--fundo);border-bottom:1px solid var(--borda)}
.rt-bar button{min-width:34px;height:32px;padding:0 8px;border:1px solid transparent;background:none;border-radius:8px;cursor:pointer;font-family:inherit;font-size:13px;font-weight:700;color:var(--texto)}
.rt-bar button:hover{background:var(--branco);border-color:var(--borda)}
.rt-sep{width:1px;height:20px;background:var(--borda);margin:0 4px}
.rt-editor{min-height:160px;max-height:400px;overflow:auto;padding:14px 16px;font-size:15px;line-height:1.6;color:var(--texto);outline:none}
.rt-editor:empty::before{content:attr(data-ph);color:var(--cinza)}
.rt-editor img{max-width:100%;height:auto;border-radius:10px}
.notif-tag{margin-right:6px}

/* Recursos liberados por usuário (modal) */
.rec-grid{display:flex;flex-direction:column;gap:0;max-height:52vh;overflow:auto;margin-bottom:8px}
.rec-linha{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 4px;border-bottom:1px solid var(--borda);font-size:14.5px;color:var(--texto)}
.rec-linha:last-child{border-bottom:0}

/* Aviso de sucesso e link de "Esqueci a senha" (auth) */
.alerta-ok{background:color-mix(in srgb,var(--verde) 12%,#fff);color:var(--verde);border:1px solid color-mix(in srgb,var(--verde) 35%,transparent);padding:12px 14px;border-radius:12px;font-size:14px;font-weight:600;margin-bottom:14px}
.link-auth{display:block;width:100%;background:none;border:0;color:var(--roxo);font-family:inherit;font-size:13.5px;font-weight:700;cursor:pointer;margin-top:12px;text-align:center}
.link-auth:hover{text-decoration:underline}

/* Seção SEO (configurações) */
.seo-dica{font-size:12px;color:var(--cinza);margin:-6px 0 12px}
.seo-dica.excede{color:var(--vermelho);font-weight:600}
.seo-preview{background:#fff;border:1px solid var(--borda);border-radius:12px;padding:14px 16px;margin-top:14px}
.seo-pv-tag{font-size:11px;font-weight:700;color:var(--cinza);text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px}
.seo-pv-url{font-size:13px;color:#4b5563}
.seo-pv-titulo{color:#1a0dab;font-size:19px;line-height:1.3;margin:2px 0 3px;font-weight:500;word-break:break-word}
.seo-pv-desc{font-size:13.5px;color:#4d5156;line-height:1.5;word-break:break-word}
.seo-tips{margin-top:16px;border:1px solid var(--borda);border-radius:12px;padding:0 16px}
.seo-tips summary{cursor:pointer;font-weight:700;padding:14px 0;color:var(--texto)}
.seo-tips ul{margin:0 0 14px;padding-left:20px}
.seo-tips li{margin:8px 0;line-height:1.55;font-size:14px;color:var(--texto)}

/* Checkbox "Continuar conectado" (login) */
.lembrar-cx{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--cinza);font-weight:600;cursor:pointer;margin:2px 0 4px}
.lembrar-cx input{width:16px;height:16px;accent-color:var(--roxo);cursor:pointer;margin:0}

/* Relatório comparativo (mês x mesmo mês do ano anterior) */
.comp-titulo{text-align:center;margin-bottom:2px}
.comp-sub{text-align:center;color:var(--cinza);font-size:14px;margin:0 0 18px}
.comp-resumo{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:8px}
.comp-card{border:1px solid var(--borda);border-radius:14px;padding:14px;text-align:center;background:var(--branco)}
.comp-rot{font-weight:700;color:var(--cinza);font-size:12.5px;text-transform:uppercase;letter-spacing:.03em;margin-bottom:10px}
.comp-vals{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap}
.comp-lado{display:flex;flex-direction:column;line-height:1.2}
.comp-lado small{color:var(--cinza);font-size:11px}
.comp-lado b{font-size:15px}
.comp-seta{width:20px;height:20px;flex:none;fill:none;stroke:var(--cinza);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.comp-var{margin-top:10px;font-weight:700;font-size:14px}
.comp-var.melhor,.comp-cat-var.melhor{color:var(--verde)}
.comp-var.pior,.comp-cat-var.pior{color:var(--vermelho)}
.comp-var.zero,.comp-cat-var.zero{color:var(--cinza)}
.comp-cat{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--borda)}
.comp-cat:last-child{border-bottom:0}
.comp-cat-nome{flex:1;display:flex;flex-direction:column;font-weight:600;line-height:1.3}
.comp-cat-nome small{color:var(--cinza);font-size:12px;font-weight:500}
.comp-cat-var{font-weight:700;font-size:14px;white-space:nowrap}
@media(max-width:640px){.comp-resumo{grid-template-columns:1fr}}