criar uma análise financeira completa de fluxo de caixa a partir dos dados colados do relatório. Considerar Novembro como mês de fechamento e destacar os pontos principais como Receitas totais, Despesas totais, resultado operacional, lucro líquido, margem de contribuição, etc. Detalhar a composição das despesas e receitas (incluir a divisão das receitas, Receitas de Trafego, de Web, de Serviços, etc) e informar o PLR. Inclui também uma análise com principais pontos de atenção e diretrizes. Incluir uma projeção do fluxo da caixa. Seguem dados: FLUXO DE CAIXA Realizado (R$) Realizado (R$) Realizado (R$) Realizado (R$) Realizado (R$) Realizado (R$) Realizado (R$) Realizado (R$) Realizado (R$) Realizado (R$) Realizado (R$) Previsto (R$) Realizado (R$)
Browse filesCATEGORIAS jan/25 fev/25 mar/25 abr/25 mai/25 jun/25 jul/25 ago/25 set/25 out/25 nov/25 dez/25 dez/25
Saldo do Mês Anterior R$ 57.765 R$ 52.114 R$ 50.371 R$ 46.703 R$ 42.816 R$ 42.529 R$ 44.457 R$ 36.478 R$ 25.195 R$ 27.204 R$ 27.102 R$ 17.611 R$ 27.611
Total de Recebimentos R$ 32.757 R$ 36.279 R$ 37.684 R$ 34.902 R$ 34.148 R$ 42.104 R$ 33.888 R$ 44.910 R$ 46.361 R$ 49.334 R$ 51.009 R$ 47.416 R$ 4.656
3.01 Receitas de Vendas e de Serviços R$ 30.291 R$ 35.806 R$ 37.240 R$ 34.097 R$ 33.737 R$ 42.104 R$ 33.888 R$ 43.745 R$ 44.574 R$ 49.071 R$ 49.841 R$ 47.416 R$ 4.656
HOSPEDAGEM R$ - R$ 250 R$ 250 R$ - R$ - R$ - R$ - R$ - R$ - R$ - R$ 222 R$ - R$ -
Receita de Tráfego R$ 22.815 R$ 23.843 R$ 25.170 R$ 19.145 R$ 23.370 R$ 32.961 R$ 27.074 R$ 34.795 R$ 30.949 R$ 39.539 R$ 37.828 R$ 38.857 R$ 4.656
Receitas de Serviços R$ - R$ 497 R$ 497 R$ - R$ 1.216 R$ 547 R$ 829 R$ 714 R$ 5.490 R$ 1.547 R$ 2.627 R$ 2.394 R$ -
Receitas de Web Design R$ 7.476 R$ 11.217 R$ 11.324 R$ 14.952 R$ 9.151 R$ 8.596 R$ 5.985 R$ 8.236 R$ 8.135 R$ 7.985 R$ 9.165 R$ 6.165 R$ -
3.02 Receitas Financeiras R$ 2.466 R$ 473 R$ - R$ 805 R$ 412 R$ - R$ - R$ - R$ 1.787 R$ 263 R$ - R$ - R$ -
Rendimentos de Aplicações R$ 2.466 R$ 473 R$ - R$ 805 R$ 412 R$ - R$ - R$ - R$ 1.787 R$ 263 R$ - R$ - R$ -
3.03 Outras Receitas e Entradas R$ - R$ - R$ 444 R$ - R$ - R$ - R$ - R$ 1.166 R$ - R$ - R$ 1.168 R$ - R$ -
Reembolso R$ - R$ - R$ 444 R$ - R$ - R$ - R$ - R$ 1.166 R$ - R$ 1.168 R$ - R$ -
Total de Pagamentos -R$ 38.408 -R$ 38.022 -R$ 41.353 -R$ 38.789 -R$ 38.435 -R$ 46.177 -R$ 43.866 -R$ 44.193 -R$ 50.352 -R$ 51.320 -R$ 52.617 -R$ 50.153 -R$ 6.278
4.01 Impostos sobre Vendas e sobre Serviços -R$ 2.754 -R$ 2.177 -R$ 3.447 -R$ 2.763 -R$ 2.227 -R$ 3.029 -R$ 3.047 -R$ 3.290 -R$ 3.981 -R$ 4.146 -R$ 4.813 -R$ 4.282 R$ -
Simples Nacional - DAS -R$ 2.754 -R$ 2.177 -R$ 3.447 -R$ 2.763 -R$ 2.227 -R$ 3.029 -R$ 3.047 -R$ 3.290 -R$ 3.981 -R$ 4.146 -R$ 4.813 -R$ 4.282 R$ -
4.02 Despesas com Vendas e Serviços -R$ 2.690 -R$ 6.214 -R$ 6.514 -R$ 6.253 -R$ 7.581 -R$ 10.308 -R$ 7.792 -R$ 8.205 -R$ 9.666 -R$ 9.813 -R$ 6.577 -R$ 6.657 -R$ 397
CRM R$ - R$ - R$ - R$ - -R$ 171 -R$ 815 R$ - -R$ 331 -R$ 1.649 -R$ 540 R$ - -R$ 260 -R$ 260
Comissões de Vendedores R$ - R$ - R$ - R$ - R$ - R$ - R$ - -R$ 459 R$ - -R$ 759 -R$ 449 R$ - R$ -
Desenvolvimento Web R$ - R$ - R$ - R$ - R$ - R$ - R$ - R$ - -R$ 525 -R$ 1.075 R$ - R$ - R$ -
Despesas com reembolso R$ - R$ - R$ - R$ - R$ - -R$ 1.131 R$ - R$ - R$ - R$ - R$ - R$ - R$ -
Manutenção -R$ 417 -R$ 582 -R$ 582 -R$ 582 -R$ 669 -R$ 769 -R$ 769 -R$ 841 -R$ 901 -R$ 2.331 -R$ 1.015 -R$ 1.146 R$ -
Materiais Aplicados na Prestação de Serviços R$ - R$ - R$ - R$ - R$ - R$ - R$ - R$ - -R$ 938 -R$ 889 -R$ 533 -R$ 670 -R$ 137
Remuneração de prestadores de serviço -R$ 2.274 -R$ 5.631 -R$ 5.932 -R$ 5.670 -R$ 4.760 -R$ 4.624 -R$ 4.053 -R$ 2.353 -R$ 1.253 R$ - R$ - R$ - R$ -
Social mídia R$ - R$ - R$ - R$ - -R$ 1.980 -R$ 2.970 -R$ 2.970 -R$ 4.220 -R$ 4.400 -R$ 4.220 -R$ 4.580 -R$ 4.580 R$ -
Total de custos variáveis -R$ 5.444 -R$ 8.391 -R$ 9.961 -R$ 9.016 -R$ 9.808 -R$ 13.338 -R$ 10.839 -R$ 11.495 -R$ 13.648 -R$ 13.959 -R$ 11.391 -R$ 10.939 -R$ 397
Margem de Contribuição R$ 24.847 R$ 27.416 R$ 27.279 R$ 25.081 R$ 23.929 R$ 28.766 R$ 23.048 R$ 32.250 R$ 30.927 R$ 35.112 R$ 38.451 R$ 36.478 R$ 4.259
4.03 Despesas com Salários e Encargos -R$ 7.811 -R$ 2.305 -R$ 7.513 -R$ 6.909 -R$ 5.909 -R$ 6.909 -R$ 7.465 -R$ 7.669 -R$ 10.146 -R$ 9.690 -R$ 11.294 -R$ 11.486 -R$ 1.450
Pró-labore -R$ 5.006 R$ - -R$ 5.208 -R$ 2.604 -R$ 2.604 -R$ 2.604 -R$ 2.604 -R$ 2.604 -R$ 3.036 -R$ 3.036 -R$ 3.036 -R$ 3.036 R$ -
Remuneração de Autônomos -R$ 2.805 -R$ 2.305 -R$ 2.305 -R$ 4.305 -R$ 3.305 -R$ 4.305 -R$ 4.861 -R$ 5.065 -R$ 7.110 -R$ 6.654 -R$ 8.258 -R$ 8.450 -R$ 1.450
4.04 Despesas com Colaboradores -R$ 575 -R$ 197 -R$ 197 -R$ 197 -R$ 197 -R$ 494 -R$ 197 -R$ 100 -R$ 1.100 -R$ 100 -R$ 100 -R$ 578 -R$ 578
Cursos e Treinamentos -R$ 575 -R$ 197 -R$ 197 -R$ 197 -R$ 197 -R$ 494 -R$ 197 -R$ 100 -R$ 1.100 -R$ 100 -R$ 100 -R$ 578 -R$ 578
4.05 Despesas Administrativas -R$ 1.777 -R$ 3.991 -R$ 3.777 -R$ 2.195 -R$ 2.310 -R$ 3.551 -R$ 2.403 -R$ 2.220 -R$ 2.656 -R$ 2.548 -R$ 5.827 -R$ 2.785 -R$ 2.451
Honorários Advocatícios R$ - -R$ 567 -R$ 283 R$ - R$ - R$ - R$ - R$ - R$ - R$ - R$ - R$ - R$ -
Honorários Contábeis -R$ 350 -R$ 380 -R$ 380 -R$ 380 -R$ 380 -R$ 380 -R$ 380 -R$ 380 -R$ 380 -R$ 380 -R$ 380 -R$ 600 -R$ 600
Materiais de Escritório -R$ 485 -R$ 291 -R$ 291 -R$ 460 -R$ 390 -R$ 390 -R$ 390 -R$ 390 -R$ 390 -R$ 425 -R$ 468 -R$ 680 -R$ 680
Retenção - GPS 2631 - INSS -R$ 311 -R$ 334 -R$ 334 -R$ 334 -R$ 334 -R$ 334 -R$ 334 -R$ 334 -R$ 334 -R$ 334 -R$ 334 -R$ 334 R$ -
Sistemas -R$ 631 -R$ 2.419 -R$ 2.414 -R$ 903 -R$ 1.206 -R$ 2.447 -R$ 1.004 -R$ 1.005 -R$ 1.441 -R$ 1.409 -R$ 4.499 -R$ 1.025 -R$ 1.025
outras despesas R$ - R$ - -R$ 74 -R$ 119 R$ - R$ - R$ - -R$ 111 -R$ 111 R$ - -R$ 146 -R$ 146 -R$ 146
taxa de licença R$ - R$ - R$ - R$ - R$ - R$ - -R$ 296 R$ - R$ - R$ - R$ - R$ - R$ -
4.06 Despesas Comerciais -R$ 191 -R$ 470 -R$ 402 -R$ 966 -R$ 709 -R$ 331 -R$ 1.462 -R$ 1.210 -R$ 1.685 -R$ 1.818 -R$ 893 -R$ 1.310 -R$ 1.310
Brindes para Clientes R$ - R$ - R$ - R$ - R$ - R$ - R$ - R$ - R$ - -R$ 300 R$ - R$ - R$ -
Marketing e Publicidade -R$ 191 -R$ 470 -R$ 402 -R$ 966 -R$ 709 -R$ 331 -R$ 1.041 -R$ 1.210 -R$ 1.685 -R$ 1.518 -R$ 893 -R$ 1.310 -R$ 1.310
Viagens e Representações R$ - R$ - R$ - R$ - R$ - R$ - -R$ 421 R$ - R$ - R$ - R$ - R$ - R$ -
4.07 Despesas com Imóvel -R$ 205 -R$ 100 -R$ 100 -R$ 100 -R$ 100 -R$ 100 -R$ 100 -R$ 100 -R$ 89 -R$ 164 -R$ 89 -R$ 89 -R$ 89
Aluguel -R$ 205 -R$ 100 -R$ 100 -R$ 100 -R$ 100 -R$ 100 -R$ 100 -R$ 100 -R$ 89 -R$ 164 -R$ 89 -R$ 89 -R$ 89
Custos fixos -R$ 10.559 -R$ 7.062 -R$ 11.989 -R$ 10.367 -R$ 9.224 -R$ 11.385 -R$ 11.627 -R$ 11.298 -R$ 15.675 -R$ 14.320 -R$ 18.201 -R$ 16.247 -R$ 5.877
Lucro Operacional R$ 14.289 R$ 20.353 R$ 15.290 R$ 14.714 R$ 14.704 R$ 17.381 R$ 11.422 R$ 20.951 R$ 15.252 R$ 20.792 R$ 20.249 R$ 20.231 -R$ 1.618
4.09 Despesas com Diretoria -R$ 19.396 -R$ 19.396 -R$ 19.396 -R$ 19.396 -R$ 19.396 -R$ 21.396 -R$ 21.396 -R$ 21.396 -R$ 20.964 -R$ 22.964 -R$ 22.964 -R$ 22.964 R$ -
PLR - Participação nos Lucros e Resultados -R$ 19.396 -R$ 19.396 -R$ 19.396 -R$ 19.396 -R$ 19.396 -R$ 21.396 -R$ 21.396 -R$ 21.396 -R$ 20.964 -R$ 22.964 -R$ 22.964 -R$ 22.964 R$ -
4.10 Despesas Financeiras -R$ 9 -R$ 12 -R$ 6 -R$ 9 -R$ 6 -R$ 58 -R$ 4 -R$ 4 -R$ 14 -R$ 27 -R$ 61 -R$ 4 -R$ 4
Tarifas Bancárias R$ - -R$ 12 -R$ 6 -R$ 9 -R$ 6 -R$ 58 -R$ 4 -R$ 4 -R$ 14 -R$ 27 -R$ 61 -R$ 4 -R$ 4
Tarifas de Cartões de Crédito -R$ 9 R$ - R$ - R$ - R$ - R$ - R$ - R$ - R$ - R$ - R$ - R$ - R$ -
4.11 Outras Despesas R$ - -R$ 161 R$ - R$ - R$ - R$ - R$ - R$ - -R$ 52 -R$ 50 R$ - R$ - R$ -
Despesas a identificar R$ - -R$ 161 R$ - R$ - R$ - R$ - R$ - R$ - -R$ 52 -R$ 50 R$ - R$ - R$ -
5.01 Bens Imobilizados da Empresa -R$ 3.000 -R$ 3.000 R$ - R$ - R$ - R$ - R$ - R$ - R$ - R$ - R$ - R$ - R$ -
Investimento em cursos ou consultoria -R$ 3.000 -R$ 3.000 R$ - R$ - R$ - R$ - R$ - R$ - R$ - R$ - R$ - R$ - R$ -
Geração de Caixa do Período -R$ 5.651 -R$ 1.743 -R$ 3.668 -R$ 3.887 -R$ 4.286 -R$ 4.073 -R$ 9.978 R$ 717 -R$ 3.991 -R$ 1.985 -R$ 1.608 -R$ 2.737 -R$ 1.622
Saldo Final de Caixa R$ 52.114 R$ 50.371 R$ 46.703 R$ 42.816 R$ 42.529 R$ 44.457 R$ 36.478 R$ 25.195 R$ 27.204 R$ 27.102 R$ 27.611 R$ 14.874 R$ 25.989
- README.md +7 -4
- components/footer.js +101 -0
- components/header.js +132 -0
- index.html +169 -19
- script.js +194 -0
- style.css +112 -18
|
@@ -1,10 +1,13 @@
|
|
| 1 |
---
|
| 2 |
-
title:
|
| 3 |
-
|
| 4 |
-
colorFrom: purple
|
| 5 |
colorTo: gray
|
|
|
|
| 6 |
sdk: static
|
| 7 |
pinned: false
|
|
|
|
|
|
|
| 8 |
---
|
| 9 |
|
| 10 |
-
|
|
|
|
|
|
| 1 |
---
|
| 2 |
+
title: CashFlow Genius Analyzer 💰
|
| 3 |
+
colorFrom: yellow
|
|
|
|
| 4 |
colorTo: gray
|
| 5 |
+
emoji: 🐳
|
| 6 |
sdk: static
|
| 7 |
pinned: false
|
| 8 |
+
tags:
|
| 9 |
+
- deepsite-v3
|
| 10 |
---
|
| 11 |
|
| 12 |
+
# Welcome to your new DeepSite project!
|
| 13 |
+
This project was created with [DeepSite](https://huggingface.co/deepsite).
|
|
@@ -0,0 +1,101 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
class FinancialFooter extends HTMLElement {
|
| 2 |
+
connectedCallback() {
|
| 3 |
+
this.attachShadow({ mode: 'open' });
|
| 4 |
+
this.shadowRoot.innerHTML = `
|
| 5 |
+
<style>
|
| 6 |
+
:host {
|
| 7 |
+
display: block;
|
| 8 |
+
width: 100%;
|
| 9 |
+
}
|
| 10 |
+
|
| 11 |
+
footer {
|
| 12 |
+
background: #1f2937;
|
| 13 |
+
color: #d1d5db;
|
| 14 |
+
padding: 2rem 0;
|
| 15 |
+
margin-top: 2rem;
|
| 16 |
+
}
|
| 17 |
+
|
| 18 |
+
.container {
|
| 19 |
+
max-width: 1200px;
|
| 20 |
+
margin: 0 auto;
|
| 21 |
+
padding: 0 1rem;
|
| 22 |
+
}
|
| 23 |
+
|
| 24 |
+
.footer-content {
|
| 25 |
+
display: grid;
|
| 26 |
+
grid-template-columns: 2fr 1fr 1fr;
|
| 27 |
+
gap: 2rem;
|
| 28 |
+
}
|
| 29 |
+
|
| 30 |
+
.footer-section h3 {
|
| 31 |
+
color: white;
|
| 32 |
+
margin-bottom: 1rem;
|
| 33 |
+
font-weight: 600;
|
| 34 |
+
}
|
| 35 |
+
|
| 36 |
+
.footer-links {
|
| 37 |
+
display: flex;
|
| 38 |
+
flex-direction: column;
|
| 39 |
+
gap: 0.5rem;
|
| 40 |
+
}
|
| 41 |
+
|
| 42 |
+
.footer-link {
|
| 43 |
+
color: #9ca3af;
|
| 44 |
+
text-decoration: none;
|
| 45 |
+
transition: color 0.3s ease;
|
| 46 |
+
}
|
| 47 |
+
|
| 48 |
+
.footer-link:hover {
|
| 49 |
+
color: white;
|
| 50 |
+
}
|
| 51 |
+
|
| 52 |
+
.footer-bottom {
|
| 53 |
+
border-top: 1px solid #374151;
|
| 54 |
+
margin-top: 2rem;
|
| 55 |
+
padding-top: 1rem;
|
| 56 |
+
text-align: center;
|
| 57 |
+
color: #9ca3af;
|
| 58 |
+
}
|
| 59 |
+
|
| 60 |
+
@media (max-width: 768px) {
|
| 61 |
+
.footer-content {
|
| 62 |
+
grid-template-columns: 1fr;
|
| 63 |
+
gap: 1.5rem;
|
| 64 |
+
}
|
| 65 |
+
}
|
| 66 |
+
</style>
|
| 67 |
+
<footer>
|
| 68 |
+
<div class="container">
|
| 69 |
+
<div class="footer-content">
|
| 70 |
+
<div class="footer-section">
|
| 71 |
+
<h3>CashFlow Genius</h3>
|
| 72 |
+
<p>Análise financeira completa e projeção de fluxo de caixa para tomada de decisões estratégicas.</p>
|
| 73 |
+
</div>
|
| 74 |
+
|
| 75 |
+
<div class="footer-section">
|
| 76 |
+
<h3>Relatórios</h3>
|
| 77 |
+
<div class="footer-links">
|
| 78 |
+
<a href="#" class="footer-link">Mensal</a>
|
| 79 |
+
<a href="#" class="footer-link">Trimestral</a>
|
| 80 |
+
</div>
|
| 81 |
+
</div>
|
| 82 |
+
|
| 83 |
+
<div class="footer-section">
|
| 84 |
+
<h3>Suporte</h3>
|
| 85 |
+
<div class="footer-links">
|
| 86 |
+
<a href="#" class="footer-link">Documentação</a>
|
| 87 |
+
<a href="#" class="footer-link">Contato</a>
|
| 88 |
+
</div>
|
| 89 |
+
</div>
|
| 90 |
+
</div>
|
| 91 |
+
|
| 92 |
+
<div class="footer-bottom">
|
| 93 |
+
<p>© 2024 CashFlow Genius. Todos os direitos reservados.</p>
|
| 94 |
+
</div>
|
| 95 |
+
</div>
|
| 96 |
+
</footer>
|
| 97 |
+
`;
|
| 98 |
+
}
|
| 99 |
+
}
|
| 100 |
+
|
| 101 |
+
customElements.define('financial-footer', FinancialFooter);
|
|
@@ -0,0 +1,132 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
class FinancialHeader extends HTMLElement {
|
| 2 |
+
connectedCallback() {
|
| 3 |
+
this.attachShadow({ mode: 'open' });
|
| 4 |
+
this.shadowRoot.innerHTML = `
|
| 5 |
+
<style>
|
| 6 |
+
:host {
|
| 7 |
+
display: block;
|
| 8 |
+
width: 100%;
|
| 9 |
+
}
|
| 10 |
+
|
| 11 |
+
header {
|
| 12 |
+
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
| 13 |
+
color: white;
|
| 14 |
+
padding: 1rem 0;
|
| 15 |
+
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
|
| 16 |
+
}
|
| 17 |
+
|
| 18 |
+
.container {
|
| 19 |
+
max-width: 1200px;
|
| 20 |
+
margin: 0 auto;
|
| 21 |
+
padding: 0 1rem;
|
| 22 |
+
}
|
| 23 |
+
|
| 24 |
+
.nav-content {
|
| 25 |
+
display: flex;
|
| 26 |
+
justify-content: space-between;
|
| 27 |
+
align-items: center;
|
| 28 |
+
}
|
| 29 |
+
|
| 30 |
+
.logo {
|
| 31 |
+
display: flex;
|
| 32 |
+
align-items: center;
|
| 33 |
+
gap: 0.5rem;
|
| 34 |
+
font-weight: 700;
|
| 35 |
+
font-size: 1.5rem;
|
| 36 |
+
}
|
| 37 |
+
|
| 38 |
+
.nav-links {
|
| 39 |
+
display: flex;
|
| 40 |
+
gap: 2rem;
|
| 41 |
+
align-items: center;
|
| 42 |
+
}
|
| 43 |
+
|
| 44 |
+
.nav-link {
|
| 45 |
+
color: rgba(255, 255, 255, 0.9);
|
| 46 |
+
text-decoration: none;
|
| 47 |
+
transition: color 0.3s ease;
|
| 48 |
+
font-weight: 500;
|
| 49 |
+
}
|
| 50 |
+
|
| 51 |
+
.nav-link:hover {
|
| 52 |
+
color: white;
|
| 53 |
+
}
|
| 54 |
+
|
| 55 |
+
.mobile-menu-btn {
|
| 56 |
+
display: none;
|
| 57 |
+
background: none;
|
| 58 |
+
border: none;
|
| 59 |
+
color: white;
|
| 60 |
+
cursor: pointer;
|
| 61 |
+
}
|
| 62 |
+
|
| 63 |
+
@media (max-width: 768px) {
|
| 64 |
+
.nav-links {
|
| 65 |
+
display: none;
|
| 66 |
+
position: absolute;
|
| 67 |
+
top: 100%;
|
| 68 |
+
left: 0;
|
| 69 |
+
right: 0;
|
| 70 |
+
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
| 71 |
+
flex-direction: column;
|
| 72 |
+
padding: 1rem;
|
| 73 |
+
gap: 1rem;
|
| 74 |
+
}
|
| 75 |
+
|
| 76 |
+
.nav-links.active {
|
| 77 |
+
display: flex;
|
| 78 |
+
}
|
| 79 |
+
|
| 80 |
+
.mobile-menu-btn {
|
| 81 |
+
display: block;
|
| 82 |
+
}
|
| 83 |
+
}
|
| 84 |
+
</style>
|
| 85 |
+
<header>
|
| 86 |
+
<div class="container">
|
| 87 |
+
<nav class="nav-content">
|
| 88 |
+
<div class="logo">
|
| 89 |
+
<i data-feather="trending-up"></i>
|
| 90 |
+
<span>CashFlow Genius</span>
|
| 91 |
+
</div>
|
| 92 |
+
|
| 93 |
+
<div class="nav-links">
|
| 94 |
+
<a href="#overview" class="nav-link">Visão Geral</a>
|
| 95 |
+
<a href="#revenues" class="nav-link">Receitas</a>
|
| 96 |
+
<a href="#expenses" class="nav-link">Despesas</a>
|
| 97 |
+
<a href="#projection" class="nav-link">Projeção</a>
|
| 98 |
+
<a href="#insights" class="nav-link">Insights</a>
|
| 99 |
+
</div>
|
| 100 |
+
|
| 101 |
+
<button class="mobile-menu-btn">
|
| 102 |
+
<i data-feather="menu"></i>
|
| 103 |
+
</button>
|
| 104 |
+
</nav>
|
| 105 |
+
</div>
|
| 106 |
+
</header>
|
| 107 |
+
`;
|
| 108 |
+
|
| 109 |
+
// Initialize mobile menu
|
| 110 |
+
this.initializeMobileMenu();
|
| 111 |
+
}
|
| 112 |
+
|
| 113 |
+
initializeMobileMenu() {
|
| 114 |
+
const menuBtn = this.shadowRoot.querySelector('.mobile-menu-btn');
|
| 115 |
+
const navLinks = this.shadowRoot.querySelector('.nav-links');
|
| 116 |
+
|
| 117 |
+
menuBtn.addEventListener('click', () => {
|
| 118 |
+
navLinks.classList.toggle('active');
|
| 119 |
+
|
| 120 |
+
// Update icon
|
| 121 |
+
const icon = menuBtn.querySelector('i');
|
| 122 |
+
if (navLinks.classList.contains('active')) {
|
| 123 |
+
icon.setAttribute('data-feather', 'x');
|
| 124 |
+
} else {
|
| 125 |
+
icon.setAttribute('data-feather', 'menu');
|
| 126 |
+
}
|
| 127 |
+
feather.replace();
|
| 128 |
+
});
|
| 129 |
+
}
|
| 130 |
+
}
|
| 131 |
+
|
| 132 |
+
customElements.define('financial-header', FinancialHeader);
|
|
@@ -1,19 +1,169 @@
|
|
| 1 |
-
<!
|
| 2 |
-
<html>
|
| 3 |
-
|
| 4 |
-
|
| 5 |
-
|
| 6 |
-
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
|
| 10 |
-
|
| 11 |
-
|
| 12 |
-
|
| 13 |
-
|
| 14 |
-
|
| 15 |
-
|
| 16 |
-
|
| 17 |
-
|
| 18 |
-
|
| 19 |
-
<
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<!DOCTYPE html>
|
| 2 |
+
<html lang="pt-BR">
|
| 3 |
+
<head>
|
| 4 |
+
<meta charset="UTF-8">
|
| 5 |
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
| 6 |
+
<title>CashFlow Genius - Análise Financeira</title>
|
| 7 |
+
<link rel="icon" type="image/x-icon" href="/static/favicon.ico">
|
| 8 |
+
<link rel="stylesheet" href="style.css">
|
| 9 |
+
<script src="https://cdn.tailwindcss.com"></script>
|
| 10 |
+
<script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
|
| 11 |
+
<script src="https://unpkg.com/feather-icons"></script>
|
| 12 |
+
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
|
| 13 |
+
</head>
|
| 14 |
+
<body class="bg-gray-50">
|
| 15 |
+
<financial-header></financial-header>
|
| 16 |
+
|
| 17 |
+
<main class="container mx-auto px-4 py-8">
|
| 18 |
+
<!-- Dashboard Overview -->
|
| 19 |
+
<section class="mb-12">
|
| 20 |
+
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6 mb-8">
|
| 21 |
+
<div class="bg-white rounded-xl shadow-lg p-6 border-l-4 border-green-500">
|
| 22 |
+
<div class="flex items-center justify-between">
|
| 23 |
+
<div>
|
| 24 |
+
<p class="text-gray-600 text-sm">Receitas Totais (Nov)</p>
|
| 25 |
+
<h3 class="text-2xl font-bold text-gray-800">R$ 51.009</h3>
|
| 26 |
+
</div>
|
| 27 |
+
<i data-feather="trending-up" class="text-green-500"></i>
|
| 28 |
+
</div>
|
| 29 |
+
</div>
|
| 30 |
+
|
| 31 |
+
<div class="bg-white rounded-xl shadow-lg p-6 border-l-4 border-red-500">
|
| 32 |
+
<div class="flex items-center justify-between">
|
| 33 |
+
<div>
|
| 34 |
+
<p class="text-gray-600 text-sm">Despesas Totais (Nov)</p>
|
| 35 |
+
<h3 class="text-2xl font-bold text-gray-800">R$ 52.617</h3>
|
| 36 |
+
</div>
|
| 37 |
+
<i data-feather="trending-down" class="text-red-500"></i>
|
| 38 |
+
</div>
|
| 39 |
+
</div>
|
| 40 |
+
|
| 41 |
+
<div class="bg-white rounded-xl shadow-lg p-6 border-l-4 border-blue-500">
|
| 42 |
+
<div class="flex items-center justify-between">
|
| 43 |
+
<div>
|
| 44 |
+
<p class="text-gray-600 text-sm">Lucro Operacional (Nov)</p>
|
| 45 |
+
<h3 class="text-2xl font-bold text-gray-800">R$ 20.249</h3>
|
| 46 |
+
</div>
|
| 47 |
+
<i data-feather="dollar-sign" class="text-blue-500"></i>
|
| 48 |
+
</div>
|
| 49 |
+
</div>
|
| 50 |
+
|
| 51 |
+
<div class="bg-white rounded-xl shadow-lg p-6 border-l-4 border-purple-500">
|
| 52 |
+
<div class="flex items-center justify-between">
|
| 53 |
+
<div>
|
| 54 |
+
<p class="text-gray-600 text-sm">Margem de Contribuição (Nov)</p>
|
| 55 |
+
<h3 class="text-2xl font-bold text-gray-800">R$ 38.451</h3>
|
| 56 |
+
</div>
|
| 57 |
+
<i data-feather="percent" class="text-purple-500"></i>
|
| 58 |
+
</div>
|
| 59 |
+
</div>
|
| 60 |
+
</div>
|
| 61 |
+
</section>
|
| 62 |
+
|
| 63 |
+
<!-- Detailed Analysis -->
|
| 64 |
+
<section class="grid grid-cols-1 lg:grid-cols-2 gap-8 mb-12">
|
| 65 |
+
<!-- Revenue Composition -->
|
| 66 |
+
<div class="bg-white rounded-xl shadow-lg p-6">
|
| 67 |
+
<h2 class="text-xl font-bold text-gray-800 mb-4 flex items-center">
|
| 68 |
+
<i data-feather="pie-chart" class="mr-2 text-green-500"></i>
|
| 69 |
+
Composição das Receitas - Novembro
|
| 70 |
+
</h2>
|
| 71 |
+
<div class="h-64">
|
| 72 |
+
<canvas id="revenueChart"></canvas>
|
| 73 |
+
</div>
|
| 74 |
+
</div>
|
| 75 |
+
|
| 76 |
+
<!-- Expense Composition -->
|
| 77 |
+
<div class="bg-white rounded-xl shadow-lg p-6">
|
| 78 |
+
<h2 class="text-xl font-bold text-gray-800 mb-4 flex items-center">
|
| 79 |
+
<i data-feather="bar-chart-2" class="mr-2 text-red-500"></i>
|
| 80 |
+
Composição das Despesas - Novembro
|
| 81 |
+
</h2>
|
| 82 |
+
<div class="h-64">
|
| 83 |
+
<canvas id="expenseChart"></canvas>
|
| 84 |
+
</div>
|
| 85 |
+
</div>
|
| 86 |
+
</section>
|
| 87 |
+
|
| 88 |
+
<!-- PLR Section -->
|
| 89 |
+
<section class="bg-gradient-to-r from-purple-500 to-indigo-600 rounded-xl shadow-lg p-6 text-white mb-12">
|
| 90 |
+
<div class="flex items-center justify-between">
|
| 91 |
+
<div>
|
| 92 |
+
<h2 class="text-2xl font-bold mb-2">PLR - Participação nos Lucros</h2>
|
| 93 |
+
<p class="text-purple-100">Valor distribuído em Novembro: <span class="font-bold text-xl">R$ 22.964</span></p>
|
| 94 |
+
<p class="text-purple-100 mt-2">Total anual acumulado: R$ 231.664</p>
|
| 95 |
+
</div>
|
| 96 |
+
<i data-feather="award" class="text-white text-4xl"></i>
|
| 97 |
+
</div>
|
| 98 |
+
</section>
|
| 99 |
+
|
| 100 |
+
<!-- Cash Flow Projection -->
|
| 101 |
+
<section class="bg-white rounded-xl shadow-lg p-6 mb-12">
|
| 102 |
+
<h2 class="text-xl font-bold text-gray-800 mb-4 flex items-center">
|
| 103 |
+
<i data-feather="calendar" class="mr-2 text-blue-500"></i>
|
| 104 |
+
Projeção do Fluxo de Caixa
|
| 105 |
+
</h2>
|
| 106 |
+
<div class="h-80">
|
| 107 |
+
<canvas id="cashFlowChart"></canvas>
|
| 108 |
+
</div>
|
| 109 |
+
</section>
|
| 110 |
+
|
| 111 |
+
<!-- Key Insights -->
|
| 112 |
+
<section class="grid grid-cols-1 lg:grid-cols-2 gap-8 mb-12">
|
| 113 |
+
<!-- Points of Attention -->
|
| 114 |
+
<div class="bg-red-50 rounded-xl shadow-lg p-6 border border-red-200">
|
| 115 |
+
<h2 class="text-xl font-bold text-red-800 mb-4 flex items-center">
|
| 116 |
+
<i data-feather="alert-triangle" class="mr-2"></i>
|
| 117 |
+
Pontos de Atenção
|
| 118 |
+
</h2>
|
| 119 |
+
<ul class="space-y-3">
|
| 120 |
+
<li class="flex items-start">
|
| 121 |
+
<i data-feather="chevron-right" class="text-red-500 mr-2 mt-1 flex-shrink-0"></i>
|
| 122 |
+
<span class="text-red-700">Saldo de caixa em tendência de redução desde agosto</span>
|
| 123 |
+
</li>
|
| 124 |
+
<li class="flex items-start">
|
| 125 |
+
<i data-feather="chevron-right" class="text-red-500 mr-2 mt-1 flex-shrink-0"></i>
|
| 126 |
+
<span class="text-red-700">Margem de contribuição variável entre meses</span>
|
| 127 |
+
</li>
|
| 128 |
+
<li class="flex items-start">
|
| 129 |
+
<i data-feather="chevron-right" class="text-red-500 mr-2 mt-1 flex-shrink-0"></i>
|
| 130 |
+
<span class="text-red-700">Despesas com PLR representam carga significativa</span>
|
| 131 |
+
</li>
|
| 132 |
+
</ul>
|
| 133 |
+
</div>
|
| 134 |
+
|
| 135 |
+
<!-- Guidelines -->
|
| 136 |
+
<div class="bg-green-50 rounded-xl shadow-lg p-6 border border-green-200">
|
| 137 |
+
<h2 class="text-xl font-bold text-green-800 mb-4 flex items-center">
|
| 138 |
+
<i data-feather="target" class="mr-2"></i>
|
| 139 |
+
Diretrizes Recomendadas
|
| 140 |
+
</h2>
|
| 141 |
+
<ul class="space-y-3">
|
| 142 |
+
<li class="flex items-start">
|
| 143 |
+
<i data-feather="check-circle" class="text-green-500 mr-2 mt-1 flex-shrink-0"></i>
|
| 144 |
+
<span class="text-green-700">Otimizar mix de receitas para maior estabilidade</span>
|
| 145 |
+
</li>
|
| 146 |
+
<li class="flex items-start">
|
| 147 |
+
<i data-feather="check-circle" class="text-green-500 mr-2 mt-1 flex-shrink-0"></i>
|
| 148 |
+
<span class="text-green-700">Revisar estrutura de custos fixos</span>
|
| 149 |
+
</li>
|
| 150 |
+
<li class="flex items-start">
|
| 151 |
+
<i data-feather="check-circle" class="text-green-500 mr-2 mt-1 flex-shrink-0"></i>
|
| 152 |
+
<span class="text-green-700">Implementar controle mais rigoroso de despesas variáveis</span>
|
| 153 |
+
</li>
|
| 154 |
+
</ul>
|
| 155 |
+
</div>
|
| 156 |
+
</section>
|
| 157 |
+
</main>
|
| 158 |
+
|
| 159 |
+
<financial-footer></financial-footer>
|
| 160 |
+
|
| 161 |
+
<script src="components/header.js"></script>
|
| 162 |
+
<script src="components/footer.js"></script>
|
| 163 |
+
<script src="script.js"></script>
|
| 164 |
+
<script>
|
| 165 |
+
feather.replace();
|
| 166 |
+
</script>
|
| 167 |
+
<script src="https://huggingface.co/deepsite/deepsite-badge.js"></script>
|
| 168 |
+
</body>
|
| 169 |
+
</html>
|
|
@@ -0,0 +1,194 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// Financial Data Analysis
|
| 2 |
+
const financialData = {
|
| 3 |
+
months: ['jan/25', 'fev/25', 'mar/25', 'abr/25', 'mai/25', 'jun/25', 'jul/25', 'ago/25', 'set/25', 'out/25', 'nov/25', 'dez/25'],
|
| 4 |
+
|
| 5 |
+
revenues: {
|
| 6 |
+
total: [32757, 36279, 37684, 34902, 34148, 42104, 33888, 44910, 46361, 49334, 51009, 47416],
|
| 7 |
+
traffic: [22815, 23843, 25170, 19145, 23370, 32961, 27074, 34795, 30949, 39539, 37828, 38857],
|
| 8 |
+
services: [0, 497, 497, 0, 1216, 547, 829, 714, 5490, 1547, 2627, 2394],
|
| 9 |
+
webDesign: [7476, 11217, 11324, 14952, 9151, 8596, 5985, 8236, 8135, 7985, 9165, 6165],
|
| 10 |
+
hosting: [0, 250, 250, 0, 0, 0, 0, 0, 0, 0, 222, 0]
|
| 11 |
+
},
|
| 12 |
+
|
| 13 |
+
expenses: {
|
| 14 |
+
total: [38408, 38022, 41353, 38789, 38435, 46177, 43866, 44193, 50352, 51320, 52617, 50153],
|
| 15 |
+
taxes: [2754, 2177, 3447, 2763, 2227, 3029, 3047, 3290, 3981, 4146, 4813, 4282],
|
| 16 |
+
sales: [2690, 6214, 6514, 6253, 7581, 10308, 7792, 8205, 9666, 9813, 6577, 6657],
|
| 17 |
+
salaries: [7811, 2305, 7513, 6909, 5909, 6909, 7465, 7669, 10146, 9690, 11294, 11486],
|
| 18 |
+
administrative: [1777, 3991, 3777, 2195, 2310, 3551, 2403, 2220, 2656, 2548, 5827, 2785],
|
| 19 |
+
commercial: [191, 470, 402, 966, 709, 331, 1462, 1210, 1685, 1818, 893, 1310],
|
| 20 |
+
plr: [19396, 19396, 19396, 19396, 19396, 21396, 21396, 21396, 20964, 22964, 22964, 22964]
|
| 21 |
+
},
|
| 22 |
+
|
| 23 |
+
results: {
|
| 24 |
+
contributionMargin: [24847, 27416, 27279, 25081, 23929, 28766, 23048, 32250, 30927, 35112, 38451, 36478],
|
| 25 |
+
operationalProfit: [14289, 20353, 15290, 14714, 14704, 17381, 11422, 20951, 15252, 20792, 20249, 20231],
|
| 26 |
+
cashGeneration: [-5651, -1743, -3668, -3887, -4286, -4073, -9978, 717, -3991, -1985, -1608, -2737],
|
| 27 |
+
finalCash: [52114, 50371, 46703, 42816, 42529, 44457, 36478, 25195, 27204, 27102, 27611, 14874]
|
| 28 |
+
}
|
| 29 |
+
};
|
| 30 |
+
|
| 31 |
+
// Initialize Charts
|
| 32 |
+
document.addEventListener('DOMContentLoaded', function() {
|
| 33 |
+
initializeCharts();
|
| 34 |
+
setupEventListeners();
|
| 35 |
+
});
|
| 36 |
+
|
| 37 |
+
function initializeCharts() {
|
| 38 |
+
// Revenue Composition Chart
|
| 39 |
+
const revenueCtx = document.getElementById('revenueChart').getContext('2d');
|
| 40 |
+
new Chart(revenueCtx, {
|
| 41 |
+
type: 'doughnut',
|
| 42 |
+
data: {
|
| 43 |
+
labels: ['Receita de Tráfego', 'Web Design', 'Serviços', 'Hospedagem'],
|
| 44 |
+
datasets: [{
|
| 45 |
+
data: [37828, 9165, 2627, 222],
|
| 46 |
+
backgroundColor: [
|
| 47 |
+
'#10B981',
|
| 48 |
+
'#3B82F6',
|
| 49 |
+
'#8B5CF6',
|
| 50 |
+
'#F59E0B'
|
| 51 |
+
],
|
| 52 |
+
borderWidth: 2,
|
| 53 |
+
borderColor: '#ffffff'
|
| 54 |
+
}]
|
| 55 |
+
},
|
| 56 |
+
options: {
|
| 57 |
+
responsive: true,
|
| 58 |
+
maintainAspectRatio: false,
|
| 59 |
+
plugins: {
|
| 60 |
+
legend: {
|
| 61 |
+
position: 'bottom',
|
| 62 |
+
labels: {
|
| 63 |
+
padding: 20,
|
| 64 |
+
usePointStyle: true
|
| 65 |
+
}
|
| 66 |
+
}
|
| 67 |
+
}
|
| 68 |
+
}
|
| 69 |
+
});
|
| 70 |
+
|
| 71 |
+
// Expense Composition Chart
|
| 72 |
+
const expenseCtx = document.getElementById('expenseChart').getContext('2d');
|
| 73 |
+
new Chart(expenseCtx, {
|
| 74 |
+
type: 'bar',
|
| 75 |
+
data: {
|
| 76 |
+
labels: ['Impostos', 'Vendas', 'Salários', 'Administrativas', 'Comerciais', 'PLR'],
|
| 77 |
+
datasets: [{
|
| 78 |
+
label: 'Valores em R$',
|
| 79 |
+
data: [4813, 6577, 11294, 5827, 893, 22964],
|
| 80 |
+
backgroundColor: [
|
| 81 |
+
'#EF4444',
|
| 82 |
+
'#F59E0B',
|
| 83 |
+
'#3B82F6',
|
| 84 |
+
'#8B5CF6',
|
| 85 |
+
'#10B981',
|
| 86 |
+
'#EC4899'
|
| 87 |
+
}]
|
| 88 |
+
},
|
| 89 |
+
options: {
|
| 90 |
+
responsive: true,
|
| 91 |
+
maintainAspectRatio: false,
|
| 92 |
+
plugins: {
|
| 93 |
+
legend: {
|
| 94 |
+
display: false
|
| 95 |
+
}
|
| 96 |
+
},
|
| 97 |
+
scales: {
|
| 98 |
+
y: {
|
| 99 |
+
beginAtZero: true,
|
| 100 |
+
grid: {
|
| 101 |
+
drawBorder: false
|
| 102 |
+
}
|
| 103 |
+
},
|
| 104 |
+
x: {
|
| 105 |
+
grid: {
|
| 106 |
+
display: false
|
| 107 |
+
}
|
| 108 |
+
}
|
| 109 |
+
}
|
| 110 |
+
}
|
| 111 |
+
});
|
| 112 |
+
|
| 113 |
+
// Cash Flow Projection Chart
|
| 114 |
+
const cashFlowCtx = document.getElementById('cashFlowChart').getContext('2d');
|
| 115 |
+
new Chart(cashFlowCtx, {
|
| 116 |
+
type: 'line',
|
| 117 |
+
data: {
|
| 118 |
+
labels: financialData.months,
|
| 119 |
+
datasets: [{
|
| 120 |
+
label: 'Saldo Final de Caixa',
|
| 121 |
+
data: financialData.results.finalCash,
|
| 122 |
+
borderColor: '#10B981',
|
| 123 |
+
backgroundColor: 'rgba(16, 185, 129, 0.1)',
|
| 124 |
+
tension: 0.4,
|
| 125 |
+
fill: true
|
| 126 |
+
}]
|
| 127 |
+
},
|
| 128 |
+
options: {
|
| 129 |
+
responsive: true,
|
| 130 |
+
maintainAspectRatio: false,
|
| 131 |
+
plugins: {
|
| 132 |
+
legend: {
|
| 133 |
+
display: true,
|
| 134 |
+
position: 'top'
|
| 135 |
+
}
|
| 136 |
+
},
|
| 137 |
+
scales: {
|
| 138 |
+
y: {
|
| 139 |
+
beginAtZero: false,
|
| 140 |
+
grid: {
|
| 141 |
+
drawBorder: false
|
| 142 |
+
}
|
| 143 |
+
},
|
| 144 |
+
x: {
|
| 145 |
+
grid: {
|
| 146 |
+
display: false
|
| 147 |
+
}
|
| 148 |
+
}
|
| 149 |
+
}
|
| 150 |
+
}
|
| 151 |
+
});
|
| 152 |
+
}
|
| 153 |
+
|
| 154 |
+
function setupEventListeners() {
|
| 155 |
+
// Add smooth scrolling for anchor links
|
| 156 |
+
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
|
| 157 |
+
anchor.addEventListener('click', function (e) {
|
| 158 |
+
e.preventDefault();
|
| 159 |
+
const target = document.querySelector(this.getAttribute('href'));
|
| 160 |
+
if (target) {
|
| 161 |
+
target.scrollIntoView({
|
| 162 |
+
behavior: 'smooth',
|
| 163 |
+
block: 'start'
|
| 164 |
+
});
|
| 165 |
+
}
|
| 166 |
+
});
|
| 167 |
+
});
|
| 168 |
+
|
| 169 |
+
// Add loading animation for charts
|
| 170 |
+
const charts = document.querySelectorAll('canvas');
|
| 171 |
+
charts.forEach(chart => {
|
| 172 |
+
chart.classList.add('fade-in');
|
| 173 |
+
});
|
| 174 |
+
}
|
| 175 |
+
|
| 176 |
+
// Utility function to format currency
|
| 177 |
+
function formatCurrency(value) {
|
| 178 |
+
return new Intl.NumberFormat('pt-BR', {
|
| 179 |
+
style: 'currency',
|
| 180 |
+
currency: 'BRL'
|
| 181 |
+
}).format(value);
|
| 182 |
+
}
|
| 183 |
+
|
| 184 |
+
// Export data for potential download
|
| 185 |
+
function exportFinancialData() {
|
| 186 |
+
const dataStr = JSON.stringify(financialData, null, 2);
|
| 187 |
+
const dataBlob = new Blob([dataStr], { type: 'application/json' });
|
| 188 |
+
const url = URL.createObjectURL(dataBlob);
|
| 189 |
+
const link = document.createElement('a');
|
| 190 |
+
link.href = url;
|
| 191 |
+
link.download = 'analise-financeira-novembro.json';
|
| 192 |
+
link.click();
|
| 193 |
+
URL.revokeObjectURL(url);
|
| 194 |
+
}
|
|
@@ -1,28 +1,122 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
body {
|
| 2 |
-
|
| 3 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4 |
}
|
| 5 |
|
| 6 |
-
|
| 7 |
-
|
| 8 |
-
|
| 9 |
}
|
| 10 |
|
| 11 |
-
|
| 12 |
-
|
| 13 |
-
|
| 14 |
-
|
| 15 |
-
|
|
|
|
| 16 |
}
|
| 17 |
|
| 18 |
-
|
| 19 |
-
|
| 20 |
-
|
| 21 |
-
|
| 22 |
-
|
| 23 |
-
|
| 24 |
}
|
| 25 |
|
| 26 |
-
.
|
| 27 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 28 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');
|
| 2 |
+
|
| 3 |
+
* {
|
| 4 |
+
margin: 0;
|
| 5 |
+
padding: 0;
|
| 6 |
+
box-sizing: border-box;
|
| 7 |
+
}
|
| 8 |
+
|
| 9 |
body {
|
| 10 |
+
font-family: 'Inter', sans-serif;
|
| 11 |
+
}
|
| 12 |
+
|
| 13 |
+
/* Custom scrollbar */
|
| 14 |
+
::-webkit-scrollbar {
|
| 15 |
+
width: 6px;
|
| 16 |
+
}
|
| 17 |
+
|
| 18 |
+
::-webkit-scrollbar-track {
|
| 19 |
+
background: #f1f1f1;
|
| 20 |
+
}
|
| 21 |
+
|
| 22 |
+
::-webkit-scrollbar-thumb {
|
| 23 |
+
background: #c1c1c1;
|
| 24 |
+
border-radius: 3px;
|
| 25 |
+
}
|
| 26 |
+
|
| 27 |
+
::-webkit-scrollbar-thumb:hover {
|
| 28 |
+
background: #a8a8a8;
|
| 29 |
+
}
|
| 30 |
+
|
| 31 |
+
/* Animation classes */
|
| 32 |
+
.fade-in {
|
| 33 |
+
animation: fadeIn 0.5s ease-in;
|
| 34 |
+
}
|
| 35 |
+
|
| 36 |
+
@keyframes fadeIn {
|
| 37 |
+
from {
|
| 38 |
+
opacity: 0;
|
| 39 |
+
transform: translateY(20px);
|
| 40 |
+
}
|
| 41 |
+
to {
|
| 42 |
+
opacity: 1;
|
| 43 |
+
transform: translateY(0);
|
| 44 |
+
}
|
| 45 |
+
}
|
| 46 |
+
|
| 47 |
+
.slide-in {
|
| 48 |
+
animation: slideIn 0.6s ease-out;
|
| 49 |
+
}
|
| 50 |
+
|
| 51 |
+
@keyframes slideIn {
|
| 52 |
+
from {
|
| 53 |
+
transform: translateX(-100%);
|
| 54 |
+
}
|
| 55 |
+
to {
|
| 56 |
+
transform: translateX(0);
|
| 57 |
+
}
|
| 58 |
+
}
|
| 59 |
+
|
| 60 |
+
/* Card hover effects */
|
| 61 |
+
.hover-lift {
|
| 62 |
+
transition: all 0.3s ease;
|
| 63 |
}
|
| 64 |
|
| 65 |
+
.hover-lift:hover {
|
| 66 |
+
transform: translateY(-5px);
|
| 67 |
+
box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
|
| 68 |
}
|
| 69 |
|
| 70 |
+
/* Gradient text */
|
| 71 |
+
.gradient-text {
|
| 72 |
+
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
| 73 |
+
-webkit-background-clip: text;
|
| 74 |
+
-webkit-text-fill-color: transparent;
|
| 75 |
+
background-clip: text;
|
| 76 |
}
|
| 77 |
|
| 78 |
+
/* Loading animation */
|
| 79 |
+
.loading-dots {
|
| 80 |
+
display: inline-block;
|
| 81 |
+
position: relative;
|
| 82 |
+
width: 80px;
|
| 83 |
+
height: 80px;
|
| 84 |
}
|
| 85 |
|
| 86 |
+
.loading-dots div {
|
| 87 |
+
position: absolute;
|
| 88 |
+
top: 33px;
|
| 89 |
+
width: 13px;
|
| 90 |
+
height: 13px;
|
| 91 |
+
border-radius: 50%;
|
| 92 |
+
background: #667eea;
|
| 93 |
+
animation-timing-function: cubic-bezier(0, 1, 1, 0);
|
| 94 |
}
|
| 95 |
+
|
| 96 |
+
.loading-dots div:nth-child(1) {
|
| 97 |
+
left: 8px;
|
| 98 |
+
animation: loading-dots1 0.6s infinite;
|
| 99 |
+
}
|
| 100 |
+
|
| 101 |
+
.loading-dots div:nth-child(2) {
|
| 102 |
+
left: 32px;
|
| 103 |
+
animation: loading-dots2 0.6s infinite;
|
| 104 |
+
}
|
| 105 |
+
|
| 106 |
+
@keyframes loading-dots1 {
|
| 107 |
+
0% {
|
| 108 |
+
transform: scale(0);
|
| 109 |
+
}
|
| 110 |
+
100% {
|
| 111 |
+
transform: scale(1);
|
| 112 |
+
}
|
| 113 |
+
}
|
| 114 |
+
|
| 115 |
+
@keyframes loading-dots2 {
|
| 116 |
+
0% {
|
| 117 |
+
transform: translate(0, 0);
|
| 118 |
+
}
|
| 119 |
+
100% {
|
| 120 |
+
transform: translate(24px, 0);
|
| 121 |
+
}
|
| 122 |
+
}
|