feat(juridico/corporativo): widgets del Dashboard Corporativo en la OAE con piezas compartidas
Seis widgets de Jurídico Corporativo en Mis Dashboards de la OAE, uno o dos
por pestaña del Dashboard Corporativo, con el patrón de RH: la tarjeta vive
en *Piezas.tsx y la montan la pestaña y un *Widget.tsx self-fetching
(embebido vía @juridico-corporativo). Un cambio a la tarjeta cambia los dos
lados.
- Alta de sociedades: «Sociedades por aprobar» (operativo).
- Participación: «Estructura accionaria validada» (% del censo con cap table validado; estratégico). Sustituye a la tarjeta «Validadas» de la pestaña; umbrales juridico_censo_validado_verde/ambar en /admin.
- Bóveda: «Sociedades sin poder vigente» (estratégico) y «Poderes por vencer» (operativo). «Acervo en resguardo» → «Instrumentos en resguardo».
- Asambleas: «Cumplimiento ejercicio N» (estratégico); el ejercicio es el último exigible y cambia solo cada 1 de mayo; umbrales juridico_asambleas_cumplimiento_verde/ambar (antes fijos en código).
- Avisos: «Sociedades sin aviso de privacidad» (estratégico).
Los widgets de stock/alerta ignoran Año/Mes (la OAE siempre manda año +
meses YTD y vaciaba Avisos, Poderes por vencer y Por aprobar) y solo toman
Portafolio/Empresa. Tipos jur_* en VALID_TIPOS del backend (sin eso el POST
de agregar da 400). OaeKpiCard gana hint (subtítulo) en las dos copias.
Marcas: nivel en los 10 widgets (vencidas y vigencia ≤90d estratégicos).
Revisado con 3 agentes (código piezas/widgets, cableado OAE+backend, QA funcional con conciliación SQL): sin bloqueantes tras las correcciones.