feat(finanzas): submódulo Fiscal (Pasivo Fiscal histórico + corte 2025)
Nuevo submódulo "Fiscal" en el portal de Finanzas que integra las hojas PASIVO FISCAL (histórico mensual por impuesto) y PASIVO FISCAL25 (corte vigente por empresa) del TABLEAU 2025. El backend (modelos/parsers/sync) ya existía; aquí se agrega la capa enriquecida + el dashboard.
Backend:
- finanzas.py: endpoints enriquecidos GET /api/finanzas/pasivo-fiscal y
/pasivo-fiscal25 ({items, kpis, ...}), gated con require_subarea("fiscal")
- require_area("finanzas").
- main.py: sub-área "fiscal" en _seed_areas (DBs nuevas).
- migración 20260529_seed_finanzas_fiscal_subarea.sql: registra la sub-área y la otorga a usuarios con área finanzas (idempotente, corre en deploy QA).
Frontend:
- app/finanzas/fiscal/page.tsx: dashboard de 2 tabs (Corte actual / Histórico) homologado a Control de Cumplimiento (hero card, ComposedChart de evolución, donut de composición, heatmap empresa×concepto/mes, barras, top/bottom con sparklines, tabla con búsqueda+CSV+sticky, cc-fade-in, tooltips custom).
- components/finanzas/fiscal/FiscalKit.tsx: kit de primitivas compartidas.
- Sidebar: entrada "Fiscal" (ícono Landmark). api.ts: getPasivoFiscal(25) + tipos.
Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com