diff --git a/asignados.html b/asignados.html
index ac50a0f..11be78f 100644
--- a/asignados.html
+++ b/asignados.html
@@ -550,8 +550,37 @@ function renderServices(servicesToRender = localServices) {
const isUrgent = s.is_urgent;
const company = raw["Compañía"] || raw["Procedencia"] || "Particular";
- let desc = raw["Descripción"] || raw["DESCRIPCION"] || raw["Averia"] || "Sin descripción de avería en el expediente.";
- desc = desc.replace(/(\r\n|\n|\r)/gm, " ");
+ // 🤖 "IA" LIMPIADORA: Filtramos la paja de las aseguradoras para dejar solo la avería real
+ function limpiarPaja(texto) {
+ if (!texto) return "Sin descripción de avería en el expediente.";
+ let res = texto.replace(/(\r\n|\n|\r)/gm, " ");
+
+ // 1. Quitamos todas las fechas de inicio de línea (Ej: "19/03/2026 - ")
+ res = res.replace(/\d{2}\/\d{2}\/\d{4}\s*-\s*/g, ' ');
+
+ // 2. Pulverizamos las frases administrativas típicas
+ const basura = [
+ /Llama asegurad[oa]\s*\d*/gi,
+ /solicita (operario|profesional) para/gi,
+ /Cobro banco.*?(?=\.|\s-|$)/gi,
+ /El servicio dispone de hasta.*?(?=\.|\s-|$)/gi,
+ /Servicio asignado a:.*?(?=\.|\s-|$)/gi,
+ /Cambio de estado:.*?(?=\.|\s-|$)/gi,
+ /y? el material debe ser aportado.*?(?=\.|\s-|$)/gi,
+ /informo material a cargo.*?(?=\.|\s-|$)/gi,
+ /en espera de profesional.*?(?=\.|\s-|$)/gi
+ ];
+
+ basura.forEach(regex => { res = res.replace(regex, ' '); });
+
+ // 3. Limpiamos los espacios rotos y comas sueltas que hayan quedado
+ res = res.replace(/\s+/g, ' ').replace(/\s,\s/g, ', ').replace(/^[,\.\-\s]+/, '').trim();
+
+ // Ponemos la primera letra en mayúscula. Si nos pasamos borrando, devolvemos el texto original por seguridad.
+ return res.length > 5 ? res.charAt(0).toUpperCase() + res.slice(1) : texto;
+ }
+
+ let desc = limpiarPaja(raw["Descripción"] || raw["DESCRIPCION"] || raw["Averia"]);
const calledTimes = parseInt(raw.called_times || 0);
const delayDays = calculateDelayDays(s.created_at);