import { useState, useMemo } from "react";
import { BarChart, Bar, LineChart, Line, XAxis, YAxis, CartesianGrid, Tooltip, ResponsiveContainer, Legend, ReferenceLine } from "recharts";
import { ChevronRight, ChevronLeft, Sparkles, ShoppingBag, Factory, Briefcase, Layers, CheckCircle, TrendingUp, Target, DollarSign, AlertTriangle, Building2, Printer, Calculator, FileText } from "lucide-react";
const LOGO = "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCACWASwDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD8qqKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK+gf2OP2aNH/ak+IZ8J3niHW9CvShmWTTdA+3wLGBy80vnJ5AzwCykEkDOTive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";
const G = {
bg:'#0B1221', surf:'#0E1A2E', card:'#132038', border:'#1D3454',
accent:'#C9A84C', accLt:'#EDD068', text:'#E2E8F2', muted:'#5A7898',
dim:'#2E4A68', success:'#22C55E', danger:'#EF4444', info:'#60A5FA',
};
const STEPS = [
{id:'sector',label:'Setor'},{id:'empresa',label:'Empresa'},
{id:'mercado',label:'Mercado'},{id:'operacional',label:'Operacional'},
{id:'marketing',label:'Marketing'},{id:'financeiro',label:'Financeiro'},
{id:'swot',label:'SWOT'},{id:'revisao',label:'Revisão'},
];
const CNAES = [
{v:'4711-3/02',l:'4711-3/02 — Comércio varejista de alimentos em geral',a:'I',s:'c'},
{v:'4721-1/02',l:'4721-1/02 — Padaria e confeitaria com predominância de produção',a:'I',s:'c'},
{v:'4731-8/00',l:'4731-8/00 — Comércio varejista de combustíveis',a:'I',s:'c'},
{v:'4741-5/00',l:'4741-5/00 — Comércio varejista de material de construção',a:'I',s:'c'},
{v:'4751-2/01',l:'4751-2/01 — Comércio varejista especializado de equipamentos de informática',a:'I',s:'c'},
{v:'4771-7/01',l:'4771-7/01 — Comércio varejista de produtos farmacêuticos',a:'I',s:'c'},
{v:'4781-4/00',l:'4781-4/00 — Comércio varejista de artigos do vestuário e acessórios',a:'I',s:'c'},
{v:'4789-0/99',l:'4789-0/99 — Comércio varejista de outros produtos não especificados',a:'I',s:'c'},
{v:'4610-1/00',l:'4610-1/00 — Representantes comerciais e agentes do comércio',a:'I',s:'c'},
{v:'4691-5/00',l:'4691-5/00 — Comércio atacadista de mercadorias em geral',a:'I',s:'c'},
{v:'1011-2/01',l:'1011-2/01 — Frigorífico — abate de bovinos',a:'II',s:'i'},
{v:'1091-1/02',l:'1091-1/02 — Fabricação de produtos de padaria',a:'II',s:'i'},
{v:'1610-2/02',l:'1610-2/02 — Serrarias com desdobramento de madeira',a:'II',s:'i'},
{v:'2512-8/00',l:'2512-8/00 — Fabricação de esquadrias de metal',a:'II',s:'i'},
{v:'3102-1/00',l:'3102-1/00 — Fabricação de móveis com predominância de metal',a:'II',s:'i'},
{v:'3321-0/00',l:'3321-0/00 — Fabricação de aparelhos e utensílios para usos médicos',a:'II',s:'i'},
{v:'2591-8/00',l:'2591-8/00 — Fabricação de embalagens metálicas',a:'II',s:'i'},
{v:'5611-2/01',l:'5611-2/01 — Restaurantes e similares',a:'III',s:'s'},
{v:'5620-1/04',l:'5620-1/04 — Fornecimento de alimentos preparados para empresas',a:'III',s:'s'},
{v:'8512-1/00',l:'8512-1/00 — Educação infantil — creche',a:'III',s:'s'},
{v:'8513-9/00',l:'8513-9/00 — Educação infantil — pré-escola',a:'III',s:'s'},
{v:'8621-6/01',l:'8621-6/01 — UTI móvel',a:'III',s:'s'},
{v:'8630-5/03',l:'8630-5/03 — Atividade odontológica',a:'III',s:'s'},
{v:'8640-2/02',l:'8640-2/02 — Laboratórios clínicos',a:'III',s:'s'},
{v:'8650-0/01',l:'8650-0/01 — Atividades de enfermagem',a:'III',s:'s'},
{v:'9001-9/01',l:'9001-9/01 — Produção teatral',a:'III',s:'s'},
{v:'4120-4/00',l:'4120-4/00 — Construção de edifícios',a:'IV',s:'s'},
{v:'4399-1/03',l:'4399-1/03 — Obras de alvenaria',a:'IV',s:'s'},
{v:'8011-1/01',l:'8011-1/01 — Atividades de vigilância e segurança privada',a:'IV',s:'s'},
{v:'8121-4/00',l:'8121-4/00 — Limpeza em prédios e em domicílios',a:'IV',s:'s'},
{v:'6201-5/01',l:'6201-5/01 — Desenvolvimento de programas de computador sob encomenda',a:'V',s:'s'},
{v:'6202-3/00',l:'6202-3/00 — Desenvolvimento e licenciamento de programas de computador',a:'V',s:'s'},
{v:'6311-9/00',l:'6311-9/00 — Tratamento de dados, hospedagem e similares',a:'V',s:'s'},
{v:'7020-4/00',l:'7020-4/00 — Atividades de consultoria em gestão empresarial',a:'V',s:'s'},
{v:'7111-1/00',l:'7111-1/00 — Serviços de arquitetura',a:'V',s:'s'},
{v:'7112-0/00',l:'7112-0/00 — Serviços de engenharia',a:'V',s:'s'},
{v:'7410-2/02',l:'7410-2/02 — Design de interiores',a:'V',s:'s'},
{v:'7490-1/04',l:'7490-1/04 — Atividades de intermediação e agenciamento',a:'V',s:'s'},
{v:'8630-5/01',l:'8630-5/01 — Atividade médica ambulatorial com recursos para realização de exames',a:'V',s:'s'},
{v:'7320-3/00',l:'7320-3/00 — Pesquisas de mercado e de opinião pública',a:'V',s:'s'},
];
// Simples Nacional tabelas 2024 — [limiteRBT12, aliqNominal, parcelaDeduzir]
const SN = {
I: [[180000,.04,0],[360000,.073,5940],[720000,.095,13860],[1800000,.107,22500],[3600000,.143,87300],[4800000,.19,378000]],
II: [[180000,.045,0],[360000,.078,5940],[720000,.10,13860],[1800000,.112,22500],[3600000,.147,85500],[4800000,.30,720000]],
III:[[180000,.06,0],[360000,.112,9360],[720000,.135,17640],[1800000,.16,35640],[3600000,.21,125640],[4800000,.33,648000]],
IV: [[180000,.045,0],[360000,.09,8100],[720000,.102,12420],[1800000,.14,39780],[3600000,.22,183780],[4800000,.33,828000]],
V: [[180000,.155,0],[360000,.18,4500],[720000,.195,9900],[1800000,.205,17100],[3600000,.23,62100],[4800000,.305,540000]],
};
const calcSimples = (rbt12, anexo) => {
const tab = SN[anexo] || SN['I'];
const rbt = Math.max(1, Math.min(rbt12, 4800000));
const idx = tab.findIndex(([lim]) => rbt <= lim);
const faixa = idx >= 0 ? tab[idx] : tab[tab.length - 1];
const [, aliq, pd] = faixa;
const ef = (rbt * aliq - pd) / rbt;
return {
aliqNominal: (aliq * 100).toFixed(2),
aliqEfetiva: (ef * 100).toFixed(2),
faixa: `${(idx >= 0 ? idx : tab.length - 1) + 1}ª`,
tributoMensal: Math.round(rbt * ef / 12),
tributoAnual: Math.round(rbt * ef),
};
};
const fmt = v => (parseFloat(v)||0).toLocaleString('pt-BR',{style:'currency',currency:'BRL',minimumFractionDigits:0});
const fmtPct = v => `${parseFloat(v)||0}%`;
const today = () => new Date().toLocaleDateString('pt-BR');
export default function PlanodeNegocios() {
const [step, setStep] = useState(0);
const [showReport, setShowReport] = useState(false);
const [sectors, setSectors] = useState({commerce:false,industry:false,services:false});
const [form, setForm] = useState({
nomeFantasia:'',razaoSocial:'',cnpj:'',fundacao:'',porte:'ME',
missao:'',visao:'',valores:'',
regime:'simples',cnae:'',faturamentoAnual:'',
pisTx:'0.65',cofinsTx:'3.00',issTx:'3.00',icmsTx:'12.00',csllTx:'9.00',irpjTx:'15.00',
descricao:'',publicoAlvo:'',segmento:'',areaGeo:'',
concorrentes:'',diferenciais:'',tendencias:'',
localizacao:'',infraestrutura:'',tecnologia:'',
fornecedores:'',estoqueGestao:'',mixProdutos:'',
processosProd:'',capacidadeProd:'',materiasPrimas:'',controleQual:'',
portfolio:'',equipe:'',capacidadeServ:'',indicadores:'',
produto:'',preco:'',praca:'',promocao:'',canaisDigitais:'',metaMensal:'',
investimento:'',capitalGiro:'',receita:'',crescimento:'3',
custosFixos:'',custosVarPerc:'30',
forcas:'',fraquezas:'',oportunidades:'',ameacas:'',resumo:'',
});
const [ai, setAi] = useState({});
const upd = (f,v) => setForm(p=>({...p,[f]:v}));
const tog = id => setSectors(s=>({...s,[id]:!s[id]}));
const hasSec = id => sectors[id];
const sectorLabel = Object.entries(sectors).filter(([,v])=>v).map(([k])=>({commerce:'Comércio',industry:'Indústria',services:'Serviços'}[k])).join(' + ') || '—';
const setRegime = r => {
const rates = r === 'real'
? {pisTx:'1.65',cofinsTx:'7.60',irpjTx:'15.00',csllTx:'9.00',issTx:'3.00',icmsTx:'12.00'}
: {pisTx:'0.65',cofinsTx:'3.00',irpjTx:'15.00',csllTx:'9.00',issTx:'3.00',icmsTx:'12.00'};
setForm(p=>({...p,regime:r,...rates}));
};
const proj = useMemo(()=>{
const r=parseFloat(form.receita)||0, fc=parseFloat(form.custosFixos)||0;
const vc=(parseFloat(form.custosVarPerc)||30)/100, gr=(parseFloat(form.crescimento)||3)/100;
return ['Jan','Fev','Mar','Abr','Mai','Jun','Jul','Ago','Set','Out','Nov','Dez'].map((mes,i)=>{
const receita=Math.round(r*Math.pow(1+gr,i)), custos=Math.round(fc+receita*vc);
return {mes,receita,custos,lucro:receita-custos};
});
},[form.receita,form.custosFixos,form.custosVarPerc,form.crescimento]);
const be = useMemo(()=>{const fc=parseFloat(form.custosFixos)||0,vc=(parseFloat(form.custosVarPerc)||30)/100;return vc<1?Math.round(fc/(1-vc)):0;},[form.custosFixos,form.custosVarPerc]);
const totalInv=(parseFloat(form.investimento)||0)+(parseFloat(form.capitalGiro)||0);
const avgProfit=proj.reduce((a,p)=>a+p.lucro,0)/12;
const payback=avgProfit>0?Math.ceil(totalInv/avgProfit):null;
const taxCalc = useMemo(()=>{
const rec=parseFloat(form.receita)||0;
const rbt12=parseFloat(form.faturamentoAnual)||rec*12;
const cd=CNAES.find(c=>c.v===form.cnae);
const isServ=cd?.s==='s';
const anexo=cd?.a||'I';
if(form.regime==='mei') {
const inss=75.90, issicms=isServ?5.00:1.00;
return {type:'MEI',items:[{n:'INSS (5% do salário mínimo)',v:inss},{n:isServ?'ISS':'ICMS',v:issicms}],total:inss+issicms,nota:'DAS fixo mensal. Limite de faturamento MEI: R$ 81.000/ano.'};
}
if(form.regime==='simples') {
const sn=calcSimples(rbt12,anexo);
return {type:`Simples Nacional — Anexo ${anexo}`,faixa:sn.faixa,aliqNominal:sn.aliqNominal,aliqEfetiva:sn.aliqEfetiva,items:[{n:`DAS Simples (Anexo ${anexo})`,v:sn.tributoMensal}],total:sn.tributoMensal,nota:`RBT12: ${fmt(rbt12)} | ${sn.faixa} faixa | Alíq. nominal: ${sn.aliqNominal}% | Alíq. efetiva: ${sn.aliqEfetiva}%`};
}
if(form.regime==='presumido') {
const presIRPJ=isServ?.32:.08, presCSLL=isServ?.32:.12;
const pis=rec*(parseFloat(form.pisTx)||0)/100;
const cofins=rec*(parseFloat(form.cofinsTx)||0)/100;
const irpj=rec*presIRPJ*(parseFloat(form.irpjTx)||15)/100;
const csll=rec*presCSLL*(parseFloat(form.csllTx)||9)/100;
const issicms=isServ?rec*(parseFloat(form.issTx)||0)/100:rec*(parseFloat(form.icmsTx)||0)/100;
const total=pis+cofins+irpj+csll+issicms;
return {type:'Lucro Presumido',items:[
{n:'PIS',v:pis,f:'pisTx'},{n:'COFINS',v:cofins,f:'cofinsTx'},
{n:`IRPJ (base ${(presIRPJ*100).toFixed(0)}% pres.)`,v:irpj,f:'irpjTx'},
{n:`CSLL (base ${(presCSLL*100).toFixed(0)}% pres.)`,v:csll,f:'csllTx'},
{n:isServ?'ISS':'ICMS',v:issicms,f:isServ?'issTx':'icmsTx'},
],total,nota:`Presunção IRPJ: ${(presIRPJ*100).toFixed(0)}% | Presunção CSLL: ${(presCSLL*100).toFixed(0)}%`};
}
if(form.regime==='real') {
const custosMens=(parseFloat(form.custosFixos)||0)+rec*(parseFloat(form.custosVarPerc)||30)/100;
const lucroR=Math.max(0,rec-custosMens);
const pis=rec*(parseFloat(form.pisTx)||0)/100;
const cofins=rec*(parseFloat(form.cofinsTx)||0)/100;
const irpj=lucroR*(parseFloat(form.irpjTx)||15)/100;
const csll=lucroR*(parseFloat(form.csllTx)||9)/100;
const issicms=isServ?rec*(parseFloat(form.issTx)||0)/100:rec*(parseFloat(form.icmsTx)||0)/100;
const total=pis+cofins+irpj+csll+issicms;
return {type:'Lucro Real',items:[
{n:'PIS (não-cumulativo)',v:pis,f:'pisTx'},{n:'COFINS (não-cumulativo)',v:cofins,f:'cofinsTx'},
{n:'IRPJ s/ lucro real',v:irpj,f:'irpjTx'},{n:'CSLL s/ lucro real',v:csll,f:'csllTx'},
{n:isServ?'ISS':'ICMS',v:issicms,f:isServ?'issTx':'icmsTx'},
],total,nota:`Lucro apurado: ${fmt(lucroR)}/mês | PIS/COFINS no regime não-cumulativo`};
}
return null;
},[form.regime,form.cnae,form.receita,form.faturamentoAnual,form.pisTx,form.cofinsTx,form.issTx,form.icmsTx,form.csllTx,form.irpjTx,form.custosFixos,form.custosVarPerc]);
const askAi = async section => {
setAi(a=>({...a,[section]:{loading:true,text:''}}));
const ctx=`Setor: ${sectorLabel}.${form.nomeFantasia?` Empresa: ${form.nomeFantasia}.`:''}`;
const prompts={
empresa:`Consultor sênior de planos de negócios no Brasil. ${ctx} Crie Missão (1 frase), Visão (1 frase) e Valores (5 itens). Formato:\n**Missão:** ...\n**Visão:** ...\n**Valores:** 1. ... 2. ... 3. ... 4. ... 5. ...`,
mercado:`Analista de mercado sênior. ${ctx}${form.descricao?` Negócio: ${form.descricao.slice(0,120)}.`:''} Elabore:\n1. Perfil do público-alvo\n2. Tamanho do mercado brasileiro\n3. 3 concorrentes com pontos fortes/fracos\n4. 4 diferenciais competitivos\n5. Tendências 2025-2027`,
operacional:`Modelo operacional para PME de ${sectorLabel} no Brasil: estrutura, processos-chave, tecnologias (cite ferramentas), KPIs e riscos operacionais.`,
marketing:`Plano 4Ps para ${sectorLabel}${form.descricao?`. Negócio: ${form.descricao.slice(0,100)}`:''}: 3 táticas por P + Marketing Digital 2025 para PME brasileira.`,
swot:`SWOT para PME de ${sectorLabel} no Brasil. 4-5 itens por quadrante:\n**Forças:** ...\n**Fraquezas:** ...\n**Oportunidades:** ...\n**Ameaças:** ...`,
resumo:`Sumário Executivo (280 palavras, tom persuasivo para investidores). ${ctx}${form.missao?` Missão: ${form.missao}.`:''}${form.publicoAlvo?` Mercado: ${form.publicoAlvo}.`:''}${form.receita?` Receita: R$${form.receita}/mês.`:''}`,
};
try {
const res=await fetch('https://api.anthropic.com/v1/messages',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({model:'claude-sonnet-4-20250514',max_tokens:1000,messages:[{role:'user',content:prompts[section]||`Ajude com ${section} para ${sectorLabel}.`}]})});
const d=await res.json();
setAi(a=>({...a,[section]:{loading:false,text:d.content?.[0]?.text||'Sem resposta.'}}));
} catch {
setAi(a=>({...a,[section]:{loading:false,text:'Erro de conexão.'}}));
}
};
const inp={width:'100%',background:G.bg,border:`1px solid ${G.border}`,borderRadius:8,padding:'9px 12px',color:G.text,fontSize:13,outline:'none',fontFamily:'inherit',resize:'vertical',boxSizing:'border-box'};
const row2={display:'grid',gridTemplateColumns:'1fr 1fr',gap:14};
const hd={fontSize:20,fontWeight:700,color:G.text,marginBottom:4,fontFamily:'Georgia,serif'};
const sub={fontSize:13,color:G.muted,marginBottom:18};
const Field=({label,field,type='text',ph='',hint,rows=3,opts})=>(
{label}
{opts?
upd(field,e.target.value)} style={{...inp,cursor:'pointer'}}>{opts.map(o=>{o.l} )}
:type==='textarea'?
);
const AiPanel=({section,label})=>(
IA — {label}
askAi(section)} disabled={ai[section]?.loading} style={{background:ai[section]?.loading?G.border:`linear-gradient(135deg,${G.accent},${G.accLt})`,border:'none',borderRadius:5,padding:'5px 11px',fontSize:11,fontWeight:700,color:ai[section]?.loading?G.muted:'#080F1C',cursor:ai[section]?.loading?'not-allowed':'pointer'}}>
{ai[section]?.loading?'Gerando…':'✦ Gerar com IA'}
{ai[section]?.text||Clique em "Gerar com IA" para sugestões contextuais }
);
const Card=({children,style:s={}})=>
{children}
;
const CardTitle=({icon:Icon,color=G.accent,children})=>
{Icon&&}{children}
;
const KPI=({label,value,color=G.accLt})=>(
);
const TaxBox=()=>(
Regime Tributário
{[{v:'mei',l:'MEI',d:'Faturamento até R$81.000/ano. DAS mensal fixo.'},
{v:'simples',l:'Simples Nacional',d:'Até R$4,8M/ano. Tributação unificada.'},
{v:'presumido',l:'Lucro Presumido',d:'Até R$78M/ano. Base de cálculo presumida.'},
{v:'real',l:'Lucro Real',d:'Tributação sobre lucro efetivo apurado.'}
].map(r=>(
setRegime(r.v)} style={{background:form.regime===r.v?'linear-gradient(145deg,#1A3050,#0E2040)':G.bg,border:`2px solid ${form.regime===r.v?G.accent:G.border}`,borderRadius:9,padding:12,cursor:'pointer'}}>
{r.l}
{r.d}
))}
CNAE Principal
upd('cnae',e.target.value)} style={{...inp,cursor:'pointer'}}>
Selecione o CNAE...
{CNAES.filter(c=>c.s==='c').map(c=>{c.l} )}
{CNAES.filter(c=>c.s==='i').map(c=>{c.l} )}
{CNAES.filter(c=>c.s==='s'&&c.a==='III').map(c=>{c.l} )}
{CNAES.filter(c=>c.s==='s'&&c.a==='IV').map(c=>{c.l} )}
{CNAES.filter(c=>c.s==='s'&&c.a==='V').map(c=>{c.l} )}
{taxCalc&&(
Estimativa Tributária — {taxCalc.type}
{taxCalc.faixa&&(
{[{l:'Faixa',v:taxCalc.faixa},{l:'Alíq. Nominal',v:`${taxCalc.aliqNominal}%`},{l:'Alíq. Efetiva',v:`${taxCalc.aliqEfetiva}%`}].map(({l,v})=>(
))}
)}
{taxCalc.items.map((item,i)=>(
))}
Total Mensal Estimado
{fmt(taxCalc.total)}
{taxCalc.nota&&
{taxCalc.nota}
}
)}
);
const content=()=>{
switch(STEPS[step].id) {
case 'sector': return(
Selecione o(s) Setor(es)
Escolha um ou mais setores. O plano adapta-se automaticamente.
{[{id:'commerce',Icon:ShoppingBag,t:'Comércio',d:'Varejo, atacado, distribuição'},{id:'industry',Icon:Factory,t:'Indústria',d:'Manufatura, transformação, produção'},{id:'services',Icon:Briefcase,t:'Serviços',d:'Consultorias, saúde, tech, educação'}].map(({id,Icon,t,d})=>(
tog(id)} style={{background:sectors[id]?'linear-gradient(145deg,#1A3050,#0E2040)':G.card,border:`2px solid ${sectors[id]?G.accent:G.border}`,borderRadius:12,padding:18,cursor:'pointer',textAlign:'center'}}>
{t}
{d}
{sectors[id]&&
✓ SELECIONADO
}
))}
{Object.values(sectors).some(Boolean)&&
Modelo configurado para:
{sectorLabel}
}
);
case 'empresa': return(
Identificação da Empresa
Dados básicos, identidade e regime tributário
);
case 'mercado': return(
Análise de Mercado
Mercado-alvo, concorrência e tendências
);
case 'operacional': return(
Plano Operacional
Estrutura e processos · Setor: {sectorLabel}
{hasSec('commerce')&&
Operações de Comércio
}
{hasSec('industry')&&
Processos Industriais
}
{hasSec('services')&&
Operações de Serviços
}
);
case 'marketing': return(
Plano de Marketing
Estratégia 4Ps + canais digitais
{[{bg:'#0D221A',bd:'#1A4A2A',i:'📦',l:'Produto / Serviço',f:'produto',ph:'Descrição, benefícios, diferenciais…'},
{bg:'#0D1E2A',bd:'#1A3A4A',i:'💲',l:'Preço',f:'preco',ph:'Política de preços, descontos, tabela…'},
{bg:'#221A0D',bd:'#4A3A1A',i:'📍',l:'Praça (Canais)',f:'praca',ph:'Pontos de venda, e-commerce, distribuidores…'},
{bg:'#1A0D22',bd:'#3A1A4A',i:'📣',l:'Promoção',f:'promocao',ph:'Publicidade, redes sociais, eventos…'},
].map(({bg,bd,i,l,f,ph})=>(
))}
);
case 'financeiro': return(
Plano Financeiro
Investimento, projeções e viabilidade econômica
💰 Investimento {totalInv>0&&Total: {fmt(totalInv)}
}
📊 Receita
📉 Custos
📈 Indicadores 0?fmt(be):null}/>0?G.success:G.danger}/>
{parseFloat(form.receita)>0&&<>
Projeção Anual — Receita × Custos
v>=1000?`${Math.round(v/1000)}k`:v}/>
[fmt(v),n==='receita'?'Receita':'Custos']} contentStyle={{background:G.card,border:`1px solid ${G.border}`,borderRadius:7,fontSize:11}} labelStyle={{color:G.text}}/>
Evolução do Lucro Mensal
v>=1000?`${Math.round(v/1000)}k`:v}/>
[fmt(v),'Lucro']} contentStyle={{background:G.card,border:`1px solid ${G.border}`,borderRadius:7,fontSize:11}} labelStyle={{color:G.text}}/>
>}
);
case 'swot': return(
Análise SWOT
Diagnóstico estratégico interno e externo
{[{f:'forcas',t:'Forças',s2:'Interno · Positivo',bg:'#0C2018',bd:'#1A4A28',c:G.success,i:'💪'},
{f:'fraquezas',t:'Fraquezas',s2:'Interno · Negativo',bg:'#200C0C',bd:'#4A1818',c:G.danger,i:'⚠️'},
{f:'oportunidades',t:'Oportunidades',s2:'Externo · Positivo',bg:'#0C1620',bd:'#1A2E4A',c:G.info,i:'🚀'},
{f:'ameacas',t:'Ameaças',s2:'Externo · Negativo',bg:'#20180C',bd:'#4A381A',c:'#F59E0B',i:'🛡️'},
].map(({f,t,s2,bg,bd,c,i})=>(
))}
);
case 'revisao': return(
Revisão Final
Sumário executivo e consolidação do plano
{[{l:'Empresa',v:form.nomeFantasia},{l:'Setor',v:sectorLabel},{l:'Porte',v:{MEI:'MEI',ME:'Microempresa',EPP:'Peq. Porte',MEDIO:'Médio',GRANDE:'Grande'}[form.porte]},
{l:'Regime',v:{mei:'MEI',simples:'Simples Nac.',presumido:'L. Presumido',real:'Lucro Real'}[form.regime]},
{l:'Inv. Total',v:totalInv>0?fmt(totalInv):null},{l:'Receita Mês 1',v:form.receita?fmt(form.receita):null},
{l:'Payback',v:payback?`${payback} meses`:null},{l:'Ponto Equilíbrio',v:be>0?fmt(be):null},{l:'Lucro Mês 12',v:proj[11]?.lucro?fmt(proj[11].lucro):null},
].map(({l,v})=>(
))}
📝 Sumário Executivo
Plano de Negócios Concluído
setShowReport(true)} style={{display:'flex',alignItems:'center',gap:8,padding:'10px 24px',background:`linear-gradient(135deg,${G.accent},${G.accLt})`,border:'none',borderRadius:8,color:'#08101C',fontSize:13,fontWeight:700,cursor:'pointer'}}>
Gerar Relatório Elegante
);
default: return null;
}
};
// ── REPORT VIEW ───────────────────────────────────────────────
if(showReport) {
const cnaeInfo = CNAES.find(c=>c.v===form.cnae);
const regimeLabel = {mei:'MEI',simples:'Simples Nacional',presumido:'Lucro Presumido',real:'Lucro Real'}[form.regime]||'—';
return(
{/* Toolbar */}
setShowReport(false)} style={{display:'flex',alignItems:'center',gap:6,padding:'7px 14px',background:G.card,border:`1px solid ${G.border}`,borderRadius:7,color:G.text,cursor:'pointer',fontSize:12}}> Voltar
Prévia do Relatório
window.print()} style={{display:'flex',alignItems:'center',gap:6,padding:'8px 18px',background:`linear-gradient(135deg,${G.accent},${G.accLt})`,border:'none',borderRadius:7,color:'#1a1a2e',cursor:'pointer',fontSize:12,fontWeight:700}}> Salvar como PDF
{/* Report */}
{/* Cover header */}
Rede Resultados Desenvolvimento Pessoal e Profissional
{form.nomeFantasia||'Plano de Negócios'}
{form.razaoSocial&&
{form.razaoSocial}
}
{sectorLabel} · {today()}
{/* KPI strip */}
{(form.receita||totalInv>0)&&(
{[{l:'Setor',v:sectorLabel},{l:'Regime',v:regimeLabel},{l:'Investimento',v:totalInv>0?fmt(totalInv):'—'},{l:'Payback',v:payback?`${payback} meses`:'—'}].map(({l,v})=>(
))}
)}
{/* 1. Sumário Executivo */}
{form.resumo&&
1. Sumário Executivo
{form.resumo}
}
{/* 2. Empresa */}
2. Identificação da Empresa
{[['Nome Fantasia',form.nomeFantasia],['Razão Social',form.razaoSocial],['CNPJ/CPF',form.cnpj],['Fundação',form.fundacao],['Porte',form.porte],['Regime Tributário',regimeLabel],['CNAE',cnaeInfo?`${form.cnae} — ${cnaeInfo.l.split('—')[1]?.trim()||''}`:form.cnae],['Missão',form.missao],['Visão',form.visao],['Valores',form.valores]].filter(([,v])=>v).map(([k,v])=>(
{k} {v}
))}
{/* 3. Tributos */}
{taxCalc&&
3. Estimativa de Carga Tributária — {taxCalc.type}
{taxCalc.faixa&&
Faixa: {taxCalc.faixa} Alíq. Nominal: {taxCalc.aliqNominal}% Alíq. Efetiva: {taxCalc.aliqEfetiva}%
}
Tributo Valor Mensal
{taxCalc.items.map((item,i)=>(
{item.n}
{fmt(item.v)}
))}
TOTAL MENSAL ESTIMADO
{fmt(taxCalc.total)}
{taxCalc.nota&&{taxCalc.nota}
}
}
{/* 4. Mercado */}
{(form.descricao||form.publicoAlvo)&&
4. Análise de Mercado
{[['Descrição',form.descricao],['Público-Alvo',form.publicoAlvo],['Segmento',form.segmento],['Área de Atuação',form.areaGeo],['Concorrentes',form.concorrentes],['Diferenciais',form.diferenciais],['Tendências',form.tendencias]].filter(([,v])=>v).map(([k,v])=>(
{k}: {v}
))}
}
{/* 5. Marketing */}
{(form.produto||form.preco)&&
5. Plano de Marketing — 4Ps
{[['📦 Produto/Serviço',form.produto],['💲 Preço',form.preco],['📍 Praça',form.praca],['📣 Promoção',form.promocao]].filter(([,v])=>v).map(([k,v])=>(
))}
}
{/* 6. Financeiro */}
{parseFloat(form.receita)>0&&
6. Plano Financeiro
{[{l:'Investimento Total',v:totalInv>0?fmt(totalInv):'—'},{l:'Capital de Giro',v:form.capitalGiro?fmt(form.capitalGiro):'—'},{l:'Receita Mês 1',v:fmt(form.receita)},{l:'Custos Fixos',v:form.custosFixos?fmt(form.custosFixos):'—'},{l:'Ponto de Equilíbrio',v:be>0?fmt(be):'—'},{l:'Payback Estimado',v:payback?`${payback} meses`:'—'}].map(({l,v})=>(
))}
{['Mês','Receita','Custos','Lucro'].map(h=>{h} )}
{proj.map((p,i)=>(
{p.mes}
{fmt(p.receita)}
{fmt(p.custos)}
=0?'#1a7a40':'#c0392b'}}>{fmt(p.lucro)}
))}
}
{/* 7. SWOT */}
{(form.forcas||form.oportunidades)&&
7. Análise SWOT
{[{k:'💪 Forças',v:form.forcas,bg:'#e8f5e9',bd:'#2e7d32',c:'#2e7d32'},{k:'⚠️ Fraquezas',v:form.fraquezas,bg:'#fce4ec',bd:'#c62828',c:'#c62828'},{k:'🚀 Oportunidades',v:form.oportunidades,bg:'#e3f2fd',bd:'#1565c0',c:'#1565c0'},{k:'🛡️ Ameaças',v:form.ameacas,bg:'#fff8e1',bd:'#f57f17',c:'#e65100'}].filter(x=>x.v).map(({k,v,bg,bd,c})=>(
))}
}
{/* Footer */}
RDR — Rede Resultados Desenvolvimento Pessoal e Profissional rederesultados.com.br · {today()}
);
}
// ── MAIN WIZARD ───────────────────────────────────────────────
return(
{/* Header with logo */}
Plano de Negócios
Ferramenta Profissional · {sectorLabel}
Etapa {step+1} / {STEPS.length}
{/* Stepper — all steps clickable */}
{STEPS.map(({label},i)=>(
setStep(i)} style={{padding:'3px 11px',borderRadius:20,border:`1px solid ${i===step?G.accent:i
{i
))}
{/* Content */}
{content()}
{/* Navigation — free movement */}
setStep(s=>Math.max(0,s-1))} disabled={step===0} style={{display:'flex',alignItems:'center',gap:5,padding:'8px 16px',background:step===0?'transparent':G.card,border:`1px solid ${step===0?G.border:G.border}`,borderRadius:7,color:step===0?G.dim:G.text,cursor:step===0?'not-allowed':'pointer',fontSize:13,fontWeight:500}}>
Anterior
{STEPS[step].label} · {step+1} de {STEPS.length}
{step
setStep(s=>s+1)} style={{display:'flex',alignItems:'center',gap:5,padding:'8px 18px',background:`linear-gradient(135deg,${G.accent},${G.accLt})`,border:'none',borderRadius:7,color:'#000',cursor:'pointer',fontSize:13,fontWeight:700}}>
Próximo
):(
setShowReport(true)} style={{display:'flex',alignItems:'center',gap:6,padding:'8px 18px',background:`linear-gradient(135deg,${G.accent},${G.accLt})`,border:'none',borderRadius:7,color:'#000',cursor:'pointer',fontSize:13,fontWeight:700}}>
Gerar Relatório
)}
);
}