/* global React, Icon, BRL, Ticker, Drawer */ const PARECERES = [ { id: 'par-1', n: 'PE-094_2026_TecnicoJuridico.pdf', d: '12/05', s: 'final', titulo: 'PARECER TÉCNICO-JURÍDICO Nº 094/2026', processo: 'Processo Administrativo nº PE-094/2026 — SEFAZ-RJ', referencia: 'Pregão Eletrônico nº 094/2026 — Aquisição de material de expediente.', conclusao: 'regularidade', autora: 'Mariana Costa' }, { id: 'par-2', n: 'PE-087_2026_PrestacaoContas.pdf', d: '10/05', s: 'final', titulo: 'PRESTAÇÃO DE CONTAS Nº 087/2026', processo: 'Processo Administrativo nº PE-087/2026 — TJ-PR', referencia: 'Pregão Eletrônico nº 087/2026 — Aquisição de material escolar.', conclusao: 'execução concluída', autora: 'Mariana Costa' }, { id: 'par-3', n: 'PE-079_2026_AnaliseRecurso.pdf', d: '05/05', s: 'rascunho', titulo: 'ANÁLISE DE RECURSO Nº 079/2026', processo: 'Processo Administrativo nº PE-079/2026 — Pref. Vitória', referencia: 'Pregão Eletrônico nº 079/2026 — Recurso administrativo do item 12.', conclusao: 'rascunho · em análise', autora: 'Mariana Costa' }, { id: 'par-4', n: 'ARP_014_2026_Acompanh_trimestral.pdf', d: '02/05', s: 'final', titulo: 'ACOMPANHAMENTO TRIMESTRAL ARP 014/2026', processo: 'ARP nº 014/2026 — Pref. Niterói', referencia: 'Ata de Registro de Preços nº 014/2026 — primeiro trimestre.', conclusao: 'em execução normal', autora: 'Mariana Costa' }, { id: 'par-5', n: 'Relatorio_Conformidade_Abr2026.pdf', d: '30/04', s: 'final', titulo: 'RELATÓRIO DE CONFORMIDADE · ABR/2026', processo: 'Relatório mensal interno', referencia: 'Relatório de Conformidade Operacional — Abril/2026.', conclusao: '97% conformidade · 2 itens pendentes', autora: 'Ana Lúcia Pereira (DPO)' }, { id: 'par-6', n: 'Auto_circunstanciado_PE068.pdf', d: '25/04', s: 'final', titulo: 'AUTO CIRCUNSTANCIADO Nº 068/2026', processo: 'Processo Administrativo nº PE-068/2026 — UFMG', referencia: 'Pregão Eletrônico nº 068/2026 — Aquisição de material gráfico.', conclusao: 'execução concluída · pagamento liquidado', autora: 'Mariana Costa' }, ]; const RISCOS = [ { id: 'r1', area: 'Tributário', prob: 'baixa', imp: 'alta', cor: 'amber', evt: 'reclassificação NCM', resp: 'Contabilidade JF', plano: 'Auditoria trimestral de NCMs por categoria. Consulta prévia à RFB quando há nova linha de produto. Treinamento da equipe de cadastro.', historico: ['Mar/2026: NCM de toner revisado · ajuste de 9608 para 8443.99', 'Jan/2026: auditoria preventiva · 0 divergências'], mitigado: 70 }, { id: 'r2', area: 'Operacional', prob: 'média', imp: 'média', cor: 'amber', evt: 'atraso entrega > SLA', resp: 'Logística BTM', plano: 'SLA monitorado em tempo real via M06. Triangulação como plano B para SKUs com estoque crítico. Múltiplos transportadores cadastrados (Correios, JadLog, Braspress).', historico: ['Abr/2026: 1 atraso em 62 entregas (98.4% no prazo)', 'Mar/2026: 0 atrasos'], mitigado: 85 }, { id: 'r3', area: 'Financeiro', prob: 'baixa', imp: 'alta', cor: 'amber', evt: 'inadimplência cliente público', resp: 'Financeiro · Mariana', plano: 'Cobrança automática em D+40 pós-NF. Diversificação de carteira (sem cliente > 25% do faturamento). Acompanhamento via M07 com alertas em vermelho para atrasos.', historico: ['Mai/2026: 1 cliente em atraso (AGE-RS · R$ 31.280)', 'Q1/2026: 0 inadimplências'], mitigado: 75 }, { id: 'r4', area: 'Fiscal', prob: 'baixa', imp: 'baixa', cor: 'lime', evt: 'erro em NF · revisão IA', resp: 'IA-Gerente + Contador', plano: 'Validação automática de 6 checks por NF antes da aprovação manual. SPED gerado e auditado mensalmente pelo contador externo.', historico: ['Últimos 12 meses: 0 NFs com erro reclamado pela SEFAZ', '100% das NFs aprovadas com check IA'], mitigado: 95 }, { id: 'r5', area: 'Conformidade', prob: 'média', imp: 'alta', cor: 'red', evt: 'CND vencer antes do empenho', resp: 'Mariana + Contador', plano: 'Alerta automático 12 dias antes do vencimento. Renovação automatizada via Portal RF/SEFAZ quando possível. Dashboard de certidões sempre visível no painel principal.', historico: ['Mai/2026: 1 alerta ativo (CND Municipal · 6 dias)', 'Abr/2026: 100% certidões renovadas no prazo'], mitigado: 60 }, { id: 'r6', area: 'Reputacional', prob: 'baixa', imp: 'média', cor: 'lime', evt: 'descumpr. contrato', resp: 'Mariana + IA', plano: 'Acompanhamento contínuo via M05 (pipeline 12 etapas). IA monitora SLA de cada empenho. Resposta automática ao órgão em cada fase.', historico: ['Últimos 24 meses: 0 reclamações formais', '98.4% das entregas no prazo'], mitigado: 90 }, { id: 'r7', area: 'Logístico', prob: 'média', imp: 'média', cor: 'amber', evt: 'transportadora indisponível', resp: 'Logística BTM', plano: '3 transportadoras cadastradas (Correios PAC/SEDEX, JadLog, Braspress). Cotação automática prévia. Coleta agendada com 48h de antecedência.', historico: ['Mar/2026: 1 troca de transportadora durante operação', 'Resolvido em 4h'], mitigado: 80 }, { id: 'r8', area: 'TI/Segurança', prob: 'baixa', imp: 'alta', cor: 'amber', evt: 'vazamento de dados', resp: 'DPO · Ana Lúcia', plano: 'Backup diário em AWS Glacier (criptografia AES-256). Acesso por 2FA. Trilha de auditoria com hash em blockchain privada. Treinamento LGPD anual.', historico: ['Nunca houve incidente reportado', 'Última auditoria DPO: 97% conformidade'], mitigado: 88 }, ]; function MAuditoria({ onNav }) { const [tab, setTab] = React.useState('trilha'); const [evento, setEvento] = React.useState(null); const [risco, setRisco] = React.useState(null); const [riscoTab, setRiscoTab] = React.useState('plano'); const [eventos, setEventos] = React.useState([]); const [loadingEventos, setLoadingEventos] = React.useState(true); React.useEffect(() => { let mounted = true; window.dataApi.listAuditoriaEvents({ limit: 200 }) .then(rows => { if (!mounted) return; setEventos(rows.map(r => ({ id: r.id, ts: new Date(r.ts).toLocaleString('pt-BR', { day: '2-digit', month: '2-digit', year: 'numeric', hour: '2-digit', minute: '2-digit', second: '2-digit' }), a: r.autor, ev: r.evento, mod: r.modulo || 'CORE', tipo: r.tipo, ip: r.ip || '—', userAgent: r.user_agent || '—', detalhes: r.detalhes, valor: r.valor_relacionado != null ? parseFloat(r.valor_relacionado) : null, modulo: r.modulo_target, // LGPD compatibility shape d: new Date(r.ts).toLocaleString('pt-BR', { day: '2-digit', month: '2-digit', hour: '2-digit', minute: '2-digit' }), u: r.autor, dd: r.detalhes ? r.detalhes.split('.')[0] : r.evento, bl: 'execução contrato', f: r.evento, justificativa: r.detalhes, }))); setLoadingEventos(false); }) .catch(() => { if (mounted) setLoadingEventos(false); }); return () => { mounted = false; }; }, []); const trilhaEventos = eventos.filter(e => e.tipo !== 'lgpd'); const lgpdEventos = eventos.filter(e => e.tipo === 'lgpd'); return ( <>
Auditoria & ComplianceM12

Trilha imutável · LGPD · Pareceres TCU/CGU

Log inviolável (hash em blockchain privada) · Versionamento de propostas e atas · Geração automática de pareceres em formato CGU.

{eventos.length} EVENTOS
setTab('trilha')}>Trilha de Auditoria {loadingEventos ? '…' : trilhaEventos.length}
setTab('lgpd')}>LGPD · Acessos {loadingEventos ? '…' : lgpdEventos.length}
setTab('parecer')}>Pareceres TCU/CGU {PARECERES.length}
setTab('risco')}>Mapa de Risco {RISCOS.length}
{tab === 'trilha' && } {tab === 'lgpd' && } {tab === 'parecer' && } {tab === 'risco' && { setRisco(r); setRiscoTab('plano'); }} />}
{evento && setEvento(null)} onNav={onNav} />} {risco && setRisco(null)} tab={riscoTab} onTab={setRiscoTab} />} ); } /* ── TRILHA ───────────────────────────────────────────────── */ function TrilhaView({ onOpen, eventos, loading }) { return (
Trilha imutável · cada evento ancorado em hash
{loading && ( )} {!loading && eventos.length === 0 && ( )} {!loading && eventos.map(e => ( onOpen({ ...e, tipo: 'trilha' })} style={{ cursor: 'pointer' }}> ))}
Timestamp Ator Mód. Evento Hash IP
Carregando trilha de auditoria...
Nenhum evento registrado ainda.
{e.ts} {e.a} {e.mod} {e.ev} {e.id.slice(0, 8)}… {e.ip}
{eventos.length} eventos · ordenados por timestamp · IDs em UUID v4
); } /* ── LGPD ─────────────────────────────────────────────────── */ function LGPDView({ onOpen, eventos, loading }) { return (
Acessos a dados pessoais · últimos 30d
clique para detalhe
{loading && ( )} {!loading && eventos.length === 0 && ( )} {!loading && eventos.map(r => ( onOpen({ ...r, tipo: 'lgpd' })} style={{ cursor: 'pointer' }}> ))}
Data Usuário Dado acessado Base legal Finalidade
Carregando eventos LGPD...
Nenhum acesso a dados pessoais registrado.
{r.d} {r.u} {r.dd} {(r.bl || '—').toUpperCase()} {r.f}
CONFORMIDADE LGPD
97%
2 itens pendentes · revisão DPO
Direitos do titular
DPO RESPONSÁVEL
Ana Lúcia Pereira · OAB-RJ 174.892
dpo@btm.com.br · (21) 99812-4477
); } /* ── PARECERES ────────────────────────────────────────────── */ function ParecerView() { const [sel, setSel] = React.useState(PARECERES[0].id); const p = PARECERES.find(p => p.id === sel) || PARECERES[0]; return (
Pareceres gerados automaticamente · formato TCU/CGU
{PARECERES.map(par => (
setSel(par.id)} className="clickable" style={{ display: 'flex', alignItems: 'center', gap: 8, padding: '8px 10px', background: par.id === sel ? 'var(--bg-2)' : 'var(--bg-1)', borderRadius: 4, borderLeft: par.id === sel ? '2px solid var(--lime)' : '2px solid transparent', }}> PDF
{par.n}
{par.d} · {par.s}
))}
BTM SERVIÇOS E COMÉRCIO LTDA
CNPJ 33.804.351/0001-04
{p.titulo}
{p.processo}

Referência: {p.referencia}

Objeto: Análise técnica e jurídica da proposta apresentada pela empresa BTM Ltda., bem como verificação de conformidade documental, fiscal e operacional para os fins do disposto na Lei nº 14.133/2021.

1. DA HABILITAÇÃO. Verificou-se a regularidade fiscal junto à RFB, FGTS, Trabalhista, Estadual e Municipal, todas dentro do prazo de validade. As certidões estão arquivadas eletronicamente sob hash de auditoria 0x8a7b2c91...e4f2.

2. DA PROPOSTA. A proposta apresentada respeita os limites mínimos de viabilidade econômica (margem INNER ≥ 15%), preservando capacidade de execução do contrato sem comprometimento da qualidade do fornecimento.

3. DA CONCLUSÃO. Pelo exposto, opina-se pela {p.conclusao} da participação da BTM Ltda. no certame, atendidos todos os requisitos do edital.

Rio de Janeiro, {p.d} de maio de 2026.
__________________________________
{p.autora}
Assinatura digital ICP-Brasil A3
{p.n} · status {p.s.toUpperCase()}
); } /* ── RISCO ────────────────────────────────────────────────── */ function RiscoView({ onOpen }) { return (
Mapa de risco · {RISCOS.length} áreas monitoradas
clique para plano
{RISCOS.map(r => ( onOpen(r)} style={{ cursor: 'pointer' }}> ))}
Área Evento Probab. Impacto Status
{r.area} {r.evt} {r.prob} {r.imp} {r.cor === 'lime' ? 'OK' : r.cor === 'amber' ? 'MONITORAR' : 'CRÍTICO'}
Matriz Probabilidade × Impacto
BAIXA
MÉDIA
ALTA
{['ALTA', 'MÉDIA', 'BAIXA'].map((imp, ri) => (
{imp}
{['baixa', 'média', 'alta'].map(prob => { const sev = ri === 0 && prob !== 'baixa' ? 'red' : ri === 0 || prob === 'alta' ? 'amber' : 'lime'; const itens = RISCOS.filter(m => m.imp.toUpperCase() === imp && m.prob === prob); return (
{itens.map(i =>
onOpen(i)} style={{ marginBottom: 2 }}>● {i.area}
)}
); })}
))}
); } /* ── EVENTO DRAWER (trilha + LGPD) ─────────────────────────── */ function EventoDrawer({ evento, onClose, onNav }) { const isLgpd = evento.tipo === 'lgpd'; return ( {isLgpd ? 'LGPD · Acesso a dado pessoal' : 'Evento de auditoria'}M12{!isLgpd && {evento.mod}}{isLgpd && {evento.bl.toUpperCase()}}} title={{isLgpd ? evento.dd : evento.ev}} subtitle={`${isLgpd ? evento.d : evento.ts} · por ${isLgpd ? evento.u : evento.a}`} headRight={ !isLgpd && (
HASH ANCORADO
{evento.hash}
) } footer={ <> {!isLgpd && evento.modulo && ( )} {isLgpd && ( )} } >
{!isLgpd && ( <>
DETALHES DO EVENTO
{evento.detalhes}
METADADOS
{evento.valor && 100 ? BRL(evento.valor) : `R$ ${evento.valor.toFixed(2)}`} valueClass="text-lime" />}
HASH DE INTEGRIDADE
SHA-256 · ancorado em cadeia privada
{evento.hashFull}
Evento imutável · validado em cadeia
Qualquer alteração no registro original quebraria o hash e seria detectada na próxima validação automática (a cada 32 minutos).
)} {isLgpd && ( <>
DETALHES DO ACESSO
{evento.justificativa}
METADADOS DO ACESSO
LGPD · Art. 7º — Base legal documentada
Acesso registrado em conformidade com a Lei 13.709/2018. O titular pode solicitar relatório completo à DPO Ana Lúcia Pereira (OAB-RJ 174.892).
)}
); } /* ── RISCO DRAWER ──────────────────────────────────────────── */ function RiscoDrawer({ risco, onClose, tab, onTab }) { return ( Risco · {risco.area}M12{risco.cor === 'lime' ? 'OK' : risco.cor === 'amber' ? 'MONITORAR' : 'CRÍTICO'}} title={{risco.evt}} subtitle={`Probabilidade ${risco.prob} · Impacto ${risco.imp} · Responsável ${risco.resp}`} headRight={
MITIGAÇÃO
= 80 ? 'var(--lime)' : risco.mitigado >= 60 ? 'var(--amber)' : 'var(--red)' }}>{risco.mitigado}%
} tabs={[ { id: 'plano', label: 'Plano de mitigação' }, { id: 'hist', label: 'Histórico', count: risco.historico.length }, { id: 'acoes', label: 'Próximas ações' }, ]} activeTab={tab} onTabChange={onTab} footer={ <> } > {tab === 'plano' && (
NÍVEL DE MITIGAÇÃO
0%
= 80 ? 'var(--lime)' : risco.mitigado >= 60 ? 'var(--amber)' : 'var(--red)' }}>
100%
Cobertura atual do plano = 80 ? 'var(--lime)' : risco.mitigado >= 60 ? 'var(--amber)' : 'var(--red)' }}>{risco.mitigado}%
DESCRIÇÃO DO RISCO
PLANO DE MITIGAÇÃO
{risco.plano}
)} {tab === 'hist' && (
HISTÓRICO DE OCORRÊNCIAS
{risco.historico.map((h, i) => (
{h}
))}
Histórico mantido por 7 anos para auditoria externa (TCU/CGU).
)} {tab === 'acoes' && (
PRÓXIMAS AÇÕES DE MITIGAÇÃO
{[ { t: 'Revisão trimestral do plano', q: 'próxima · 30/06/2026', tone: '' }, { t: 'Treinamento da equipe', q: 'agendado · 15/07/2026', tone: 'cyan' }, { t: 'Auditoria externa', q: 'agendada · Q4/2026', tone: 'amber' }, { t: 'Atualização da política', q: 'pendente · sem data', tone: 'red' }, ].map((a, i) => (
{a.t}
{a.q}
))}
)}
); } function Field({ label, value, valueClass, mono }) { return (
{label}
{value}
); } window.MAuditoria = MAuditoria;