feat(comercial): drill-down en tabla Productividad por Asesor KAM
- KamTable acepta onRowClick. Cada fila es clickeable con cursor pointer y tooltip Ver ventas cerradas de KAM cuando el handler esta disponible.
- Nuevo handler openKamRowModal en ComercialDashboard que abre el modal con el contexto del KAM clickado.
- IndicadorDetalleModal acepta una prop opcional registrosBaseParams. Cuando se provee se usa solo en el fetch del tab Registros, mientras que el tab Detalle y el breakdown siguen usando baseParams. Si no se provee ambos tabs usan baseParams igual que antes.
- baseKey del modal incluye registrosBaseParams para que cambios en ese scope disparen reset y refetch del Registros tab.
- KAM drill usa la prop nueva para diferenciar contexto entre tabs.
- Detalle usa baseParams con funnel Cerrado para que el bar chart sume monto solo de cierres y cuadre con la columna Monto Cerrado de la tabla Productividad.
- Registros usa registrosBaseParams sin filtro de funnel para que la tabla muestre el pipeline completo del KAM equivalente a la columna Prospectos.
- lockedFilters queda en kams unicamente. Funnel no se lockea para que el usuario pueda narrowear etapa desde el toolbar de Registros si quiere segmentar.
- Title del modal queda KAM nombre sin sufijo Ventas cerradas para no implicar contexto que aplica solo a un tab.
- Chip Funnel Cerrado eliminado porque no aplica universalmente entre tabs.
- metric sum_monto y levels linea_negocio para que el breakdown del Detalle sea un bar chart de monto cerrado por linea de negocio sin toggle ni drill adicional.
- accent emerald consistente con el lenguaje visual de cierres.
- No se lockea empresa porque el backend agrupa la tabla solo por KAM y la empresa de la fila es solo representativa. Lockearla dejaria fuera ventas del KAM en otras empresas.