Cada tecla en el input de búsqueda disparaba renderPanel() que
reescribía panel.innerHTML — incluyendo el input mismo — así que el
navegador descartaba el foco (y la posición del cursor). Los usuarios
tenían que hacer clic después de cada letra.
Cambios:
- Nuevo filterState por depto en memoria (no lee del DOM al filtrar)
- renderPanel() reconstruye todo solo cuando cambia el conjunto de
datos (carga inicial, guardar, borrar, cambio de tab)
- Nuevo renderPanelBody() que solo repinta contadores + tbody
- Los handlers de search/status/abogado/esfera actualizan
filterState y llaman renderPanelBody, dejando el toolbar intacto
Efecto: al tipear en el buscador, el input mantiene foco y cursor.