{
  "version": 1,
  "nota": "Fuente ÚNICA del vocabulario del panel (Capa de Contexto, Ola 1). Alimenta: tooltips ⓘ, glosario del Manual (se genera de aquí) y el test de cobertura tests/test_contexto_vocabulario.py — un estado nuevo sin entrada aquí pone la suite en rojo.",
  "_nota_dominios": "`dominios` rotula cada CLAVE de `estados` (no sus valores), para que el glosario del Manual no imprima la clave técnica cruda como título de sección. Vobo del dueño 2026-09-27; `criterio` sigue nombrando `com_folio` entre sus valores, y esa clave está ELIMINADA por decisión de Dirección del 25-sep — el rótulo del dominio se queda porque retirar el valor no es de esta entrega, pero un glosario que aún enseña un criterio muerto es un drift declarado, no resuelto aquí.",
  "dominios": {
    "estado_ingesta": { "label": "Estado de la ingesta" },
    "zoho_estado": { "label": "Estado en Zoho CRM" },
    "criterio": { "label": "Criterio del cruce" },
    "nivel": { "label": "Fuerza del cruce (N1-N6)" },
    "caso_estado": { "label": "Estado del caso de conciliación" },
    "accion": { "label": "Acción recomendada" },
    "confianza": { "label": "Confianza del cruce" },
    "reconciliacion_edc": { "label": "Reconciliación contra el estado de cuenta" },
    "sobrante_motivo": { "label": "Motivo del sobrante" },
    "corrida_status": { "label": "Estado de la corrida de ingesta" },
    "decision_comprobante": { "label": "Dictamen del comprobante" },
    "fase_comprobante": { "label": "Fase del comprobante" },
    "cotejo_status": { "label": "Cotejo de la cuenta destino" },
    "borrador_estado": { "label": "Estado del borrador en CRM" },
    "cierre_status": { "label": "Estado del cierre diario" },
    "era_del_dato": { "label": "Era del dato: operación viva o legado" },
    "difusion_estado": { "label": "Estado de la campaña" },
    "difusion_tipo": { "label": "Tipo de campaña" },
    "difusion_polaridad": { "label": "Lista de la campaña" },
    "difusion_modo": { "label": "Modo de la campaña" },
    "difusion_despacho": { "label": "Estado del envío en angelus" },
    "difusion_motivo_exclusion": { "label": "Por qué no se le escribe" },
    "difusion_motivo_skip": { "label": "Por qué angelus no le escribió" },
    "difusion_detenida_por": { "label": "Por qué se detuvo el envío" },
    "difusion_bloqueo": { "label": "Por qué un botón está apagado" },
    "difusion_plantilla_estado": { "label": "Estado de la plantilla en Meta" },
    "difusion_encabezado": { "label": "Encabezado de la plantilla" },
    "difusion_boton_tipo": { "label": "Botón de la plantilla" },
    "difusion_embudo": { "label": "Líneas del embudo" },
    "difusion_actor": { "label": "Quién hizo el cambio" },
    "difusion_excluido_canal": { "label": "Exclusiones estimadas por canal" },
    "difusion_evento": { "label": "Evento de la campaña" },
    "difusion_ausente": { "label": "Por qué un dato no está" },
    "difusion_alarma": { "label": "Alarmas de la campaña" },
    "difusion_estado_envio": { "label": "Resultado del envío por cliente" },
    "difusion_acuse": { "label": "Acuse del mensaje" },
    "difusion_situacion": { "label": "Situación de la cuenta con exención caída" },
    "difusion_envio_plantilla": { "label": "Plantilla de un envío (nombre legible)" },
    "difusion_subitem": { "label": "Subpantallas de Difusiones" },
    "difusion_envio_aviso": { "label": "Avisos de Envíos por corrida" },
    "exencion_plazo": { "label": "Hasta cuándo está protegida una exención" },
    "alerta_extracto": { "label": "Alerta del corte: falta cargar el extracto" },
    "corte_franja": { "label": "Franja del módulo de corte" },
    "corte_cuentas": { "label": "Cuentas del corte" },
    "corte_recargo": { "label": "Recargo y retiro del corte" },
    "corte_reconexion": { "label": "Reconexión del corte" },
    "corte_tablero": { "label": "Tablero del corte" },
    "corte_partes": { "label": "Partes y sondas del corte (solo lectura)" },
    "corte_venc_susp": { "label": "Vencimientos y suspensión del corte" }
  },
  "estados": {
    "estado_ingesta": {
      "nuevo": {
        "label": "Nuevo",
        "tono": "info",
        "trad": "Acaba de entrar al sistema; nadie lo había visto antes."
      },
      "duplicado": {
        "label": "Ya visto",
        "tono": "gray",
        "trad": "Llegó otra vez en una descarga posterior; el sistema lo reconoció y no lo contó doble."
      },
      "probable_duplicado": {
        "label": "Posible duplicado",
        "tono": "warn",
        "trad": "Se parece demasiado a otro movimiento; requiere que un humano confirme si es el mismo."
      },
      "inconsistente": {
        "label": "Inconsistente",
        "tono": "crit",
        "trad": "Misma identidad bancaria pero datos distintos entre dos fuentes; fuera de conciliación hasta revisarse."
      },
      "resuelto": {
        "label": "Resuelto por operador",
        "tono": "good",
        "trad": "Un humano ya revisó y decidió sobre este movimiento."
      },
      "backfill_edc": {
        "label": "Aportado por el estado de cuenta",
        "tono": "info",
        "trad": "Los extractos diarios nunca lo trajeron; el estado de cuenta oficial del banco sí — el sistema lo rellenó desde ahí."
      },
      "cuarentena_edc": {
        "label": "Sin respaldo del banco",
        "tono": "crit",
        "trad": "El estado de cuenta oficial NO reconoce este movimiento; no participa en conciliación hasta revisarse."
      }
    },
    "zoho_estado": {
      "SC": {
        "label": "Sin conciliar",
        "tono": "gray",
        "trad": "Nadie lo ha procesado aún (ni el sistema anterior ni core)."
      },
      "OK": {
        "label": "Conciliado",
        "tono": "good",
        "trad": "El pago del cliente quedó casado con su depósito bancario."
      },
      "MATCH": {
        "label": "Conciliado (match)",
        "tono": "good",
        "trad": "Variante histórica de Conciliado que usaba el sistema anterior."
      },
      "SR": {
        "label": "A revisión",
        "tono": "warn",
        "trad": "Requiere decisión humana; el sistema no lo resuelve solo."
      },
      "NC": {
        "label": "Sin coincidencia",
        "tono": "gray",
        "trad": "No se encontró ningún depósito bancario que corresponda al comprobante."
      },
      "CG": {
        "label": "Referencia genérica",
        "tono": "gray",
        "trad": "El comprobante trae datos demasiado genéricos para casarlo con certeza."
      },
      "MULTI": {
        "label": "Varios candidatos",
        "tono": "warn",
        "trad": "Hay más de un depósito idéntico posible; falta desempatar."
      },
      "FD": {
        "label": "Fuera de rango",
        "tono": "gray",
        "trad": "Marca histórica del sistema anterior (fecha fuera del rango que procesaba)."
      },
      "RE": {
        "label": "Reprocesar",
        "tono": "gray",
        "trad": "Marca histórica del sistema anterior para volver a intentar."
      }
    },
    "criterio": {
      "com_folio": {
        "label": "Folio del comprobante",
        "tono": "good",
        "trad": "El número de comprobante (COM) aparece impreso en el movimiento bancario. Evidencia dura."
      },
      "clave_rastreo": {
        "label": "Clave de rastreo",
        "tono": "good",
        "trad": "La clave SPEI única de la transferencia coincide exactamente. La evidencia más fuerte que existe."
      },
      "timestamp": {
        "label": "Hora exacta",
        "tono": "good",
        "trad": "El pago y el depósito ocurrieron en el mismo minuto (pagos SPIN). Evidencia dura."
      },
      "autorizacion": {
        "label": "Nº de autorización",
        "tono": "good",
        "trad": "El número de autorización del voucher aparece en el movimiento. Evidencia dura."
      },
      "folio_concepto": {
        "label": "Folio en el concepto",
        "tono": "good",
        "trad": "El folio del depósito aparece dentro del texto del movimiento."
      },
      "prefijo_concepto": {
        "label": "Referencia + concepto",
        "tono": "good",
        "trad": "El concepto del depósito es exactamente la referencia y el concepto del comprobante, pegados como los manda el banco emisor — y esa huella no se repite en ningún otro depósito. Evidencia dura."
      },
      "folio_bbva": {
        "label": "Folio (transferencia BBVA)",
        "tono": "good",
        "trad": "El pago salió de BBVA y llegó a una cuenta BBVA, y el folio de la operación del comprobante aparece completo en el movimiento. En una transferencia entre cuentas BBVA ese número es el mismo en los dos lados. Evidencia dura."
      },
      "referencia": {
        "label": "Referencia",
        "tono": "info",
        "trad": "La referencia del pago coincide. Confiable salvo referencias que parecen fechas."
      },
      "concepto_texto": {
        "label": "Texto del concepto",
        "tono": "warn",
        "trad": "El texto que el pagador escribió como concepto aparece dentro del movimiento. En un SPEI ese texto viaja al banco, así que es evidencia real — pero es del cliente y no una llave bancaria, así que el caso lo revisa una persona."
      },
      "monto_fecha": {
        "label": "Solo monto y fecha",
        "tono": "warn",
        "trad": "Coinciden importe y día, pero sin ningún identificador. La evidencia más débil."
      },
      "ninguno": {
        "label": "Sin criterio",
        "tono": "gray",
        "trad": "No se encontró forma de casarlo."
      },
      "cliente_huella": {
        "label": "Nº de cliente en el depósito",
        "tono": "warn",
        "trad": "El número de cliente de este expediente aparece escrito en el depósito bancario. Dice de QUIÉN es el pago, no cuál pago es: sirve para elegir entre depósitos que coinciden en importe y cuenta, no para identificar uno por sí solo.",
        "implica": "El número lo escribió el pagador a mano, así que se usa solo cuando señala a un único depósito y cuando ya se sabe de dónde salió la adjudicación del cliente.",
        "cuidado": "Coincidir en número de cliente no prueba que sea ESTE pago: el mismo cliente puede tener dos depósitos del mismo importe."
      },
      "banco_origen": {
        "label": "Banco desde el que pagó",
        "tono": "warn",
        "trad": "El banco que el cliente declaró en su comprobante es el mismo que el banco emisor que leímos del movimiento. Es la evidencia más débil de todas: descarta candidatos, no identifica pagos.",
        "implica": "Solo decide cuando ningún otro criterio dijo nada y queda un único candidato.",
        "cuidado": "Miles de pagos comparten banco. Que coincida no significa casi nada por sí solo; su valor es reducir un empate."
      }
    },
    "nivel": {
      "N1": {
        "label": "Llave dura",
        "tono": "good",
        "trad": "Folio, clave de rastreo o autorización idénticos. Certeza impresa por el banco."
      },
      "N2": {
        "label": "Hora exacta",
        "tono": "good",
        "trad": "Mismo minuto (SPIN). Certeza de la notificación bancaria."
      },
      "N3": {
        "label": "Nombre del pagador",
        "tono": "info",
        "trad": "El nombre en el movimiento bancario coincide con el cliente del comprobante. Evidencia textual (92% de precisión medida)."
      },
      "N4": {
        "label": "Huella del cliente",
        "tono": "info",
        "trad": "El cliente pagó desde la cuenta/referencia con la que siempre paga (aprendida de su historial). 100% de precisión medida."
      },
      "N5": {
        "label": "Reparto de grupo",
        "tono": "gray",
        "trad": "N clientes pagaron lo mismo el mismo día y hay N depósitos: el grupo cuadra y se reparte de forma estable. La garantía es del grupo, no individual."
      },
      "N6": {
        "label": "Revisión humana",
        "tono": "warn",
        "trad": "El grupo NO cuadra en número; lo decide un humano viendo el grupo completo."
      }
    },
    "caso_estado": {
      "conciliado": {
        "label": "Depósito identificado",
        "tono": "good",
        "trad": "El depósito está en el estado de cuenta y se identificó por una llave del propio comprobante, no por coincidencia de importe."
      },
      "multiple": {
        "label": "Varios depósitos posibles",
        "tono": "warn",
        "trad": "Hay más de un depósito por ese importe y ninguno trae un identificador que lo ligue a este comprobante. Coincidir en importe no es prueba."
      },
      "revision": {
        "label": "Lo decide una persona",
        "tono": "warn",
        "trad": "Hay un solo depósito compatible pero sin identificador que lo confirme, o varios que no son idénticos entre sí y ninguno cruza una llave del pago. El sistema no propone lista: prefiere que decida un humano antes que adivinar."
      },
      "controversia": {
        "label": "Depósito ya usado por otro comprobante",
        "tono": "crit",
        "trad": "El depósito que coincide YA está ligado a otro comprobante. Si se aplican los dos, al cliente se le cobra dos veces. Hay que decidir de quién es antes de aplicar ninguno."
      },
      "sin_movimiento": {
        "label": "El depósito no aparece",
        "tono": "gray",
        "trad": "Se buscó en el estado de cuenta y no hay ningún depósito con esa cuenta y ese importe. Puede ser latencia del banco (hasta 3 días hábiles) o que el dinero no entró."
      }
    },
    "accion": {
      "aplicar": {
        "label": "Aplicar",
        "tono": "good",
        "trad": "Listo para aplicar el pago a las facturas del cliente (hoy: simulado)."
      },
      "revisar_humano": {
        "label": "Revisar",
        "tono": "warn",
        "trad": "Pasa a la bandeja del operador."
      },
      "controversia": {
        "label": "Controversia",
        "tono": "crit",
        "trad": "Atención prioritaria: hay evidencia en conflicto."
      },
      "sin_movimiento": {
        "label": "Sin movimiento",
        "tono": "gray",
        "trad": "Esperar a que llegue el depósito del banco."
      },
      "ya_aplicado": {
        "label": "Ya aplicado",
        "tono": "info",
        "trad": "El pago ya estaba aplicado en Books; no hay nada que hacer."
      }
    },
    "confianza": {
      "alta": {
        "label": "Alta",
        "tono": "good",
        "trad": "Evidencia dura impresa por el banco."
      },
      "media": {
        "label": "Media",
        "tono": "warn",
        "trad": "Evidencia buena pero no infalible."
      },
      "baja": {
        "label": "Baja",
        "tono": "gray",
        "trad": "Solo coincidencias circunstanciales."
      }
    },
    "reconciliacion_edc": {
      "en_core": {
        "label": "En el sistema",
        "tono": "good",
        "trad": "El renglón del estado de cuenta ya estaba en el sistema (entró por el extracto diario)."
      },
      "rellenado": {
        "label": "Rellenado desde el estado",
        "tono": "info",
        "trad": "El extracto diario nunca lo trajo; el sistema lo tomó del estado de cuenta oficial."
      },
      "asimetria": {
        "label": "Asimetría de fuente",
        "tono": "gray",
        "trad": "El mismo depósito visto con distinto detalle por el extracto y el estado oficial. No es un error."
      },
      "faltante": {
        "label": "Faltante",
        "tono": "crit",
        "trad": "El banco lo reconoce y el sistema no lo tiene. Requiere investigar."
      }
    },
    "sobrante_motivo": {
      "cuarentena": {
        "label": "En cuarentena",
        "tono": "crit",
        "trad": "El sistema lo tiene pero el estado oficial no lo respalda; quedó fuera de conciliación."
      },
      "asimetria_emparejada": {
        "label": "Asimetría emparejada",
        "tono": "gray",
        "trad": "Es el mismo depósito que un renglón del estado, visto con otro detalle. No es un error."
      },
      "sin_respaldo_pendiente": {
        "label": "Pendiente de revisar",
        "tono": "warn",
        "trad": "El estado oficial no lo lista y aún no se clasifica el porqué."
      }
    },
    "corrida_status": {
      "ok": {
        "label": "Completa",
        "tono": "good",
        "trad": "La ingesta terminó sin problemas."
      },
      "partial": {
        "label": "Parcial",
        "tono": "warn",
        "trad": "Algo del archivo entró y algo requiere revisión."
      },
      "duplicate": {
        "label": "Ya ingerido",
        "tono": "gray",
        "trad": "Este archivo exacto ya se había procesado antes (mismo contenido)."
      },
      "error": {
        "label": "Error",
        "tono": "crit",
        "trad": "El archivo no se pudo procesar; el motivo queda registrado."
      }
    },
    "decision_comprobante": {
      "ready_for_operator": {
        "label": "Aprobado",
        "tono": "good",
        "trad": "La extracción es consistente y la cuenta destino es de Youcom; listo para confirmar."
      },
      "needs_review": {
        "label": "Revisión manual",
        "tono": "warn",
        "trad": "Algo no cuadró del todo (cuenta, monto o campos); revisa antes de confirmar."
      },
      "rejected_intake": {
        "label": "Rechazado",
        "tono": "crit",
        "trad": "El documento no es un comprobante utilizable."
      },
      "propio_registrado": {
        "label": "Cobro propio",
        "tono": "good",
        "trad": "El recibo lo emitimos nosotros al recibir el dinero: el cobro ya está registrado. No espera al banco ni necesita revisión."
      }
    },
    "fase_comprobante": {
      "recepcion": {
        "label": "Recepción",
        "tono": "gray",
        "trad": "Llegó y se está leyendo: ¿es un comprobante y qué dice? La contesta el documento."
      },
      "conciliacion": {
        "label": "Conciliación",
        "tono": "warn",
        "trad": "Es válido y espera su movimiento en el banco: ¿entró ese dinero? La contesta el estado de cuenta."
      },
      "acreditacion": {
        "label": "Acreditación",
        "tono": "good",
        "trad": "Se convirtió en pago y se aplicó: ¿a qué se abonó? La contesta la aplicación al Trato."
      },
      "cobro_propio": {
        "label": "Cobro propio",
        "tono": "good",
        "trad": "El documento lo emitimos nosotros al cobrar. La pregunta de conciliación la contesta nuestro propio registro, no el banco: el recibo ES el registro."
      }
    },
    "cotejo_status": {
      "validated": {
        "label": "Cuenta validada",
        "tono": "good",
        "trad": "La cuenta destino del voucher es una cuenta real de Youcom."
      },
      "not_recognized": {
        "label": "Cuenta no reconocida",
        "tono": "warn",
        "trad": "La cuenta destino no coincide con ninguna cuenta de Youcom."
      },
      "ambiguous": {
        "label": "Cuenta ambigua",
        "tono": "warn",
        "trad": "Los dígitos visibles coinciden con más de una cuenta."
      }
    },
    "borrador_estado": {
      "borrador": {
        "label": "Borrador",
        "tono": "gray",
        "trad": "Vive solo en el sistema; no ha tocado Zoho."
      },
      "confirmado": {
        "label": "En CRM",
        "tono": "good",
        "trad": "Ya se escribió al CRM real."
      },
      "error_crm": {
        "label": "Error al escribir",
        "tono": "crit",
        "trad": "El CRM rechazó la escritura; se puede reintentar."
      }
    },
    "cierre_status": {
      "cuadra": {
        "label": "Cuadra",
        "tono": "good",
        "trad": "Todo lo del estado de cuenta está en el sistema y viceversa."
      },
      "con_excepciones": {
        "label": "Con excepciones",
        "tono": "warn",
        "trad": "Hay diferencias listadas; no todas son errores (ver asimetría de fuente)."
      }
    },
    "era_del_dato": {
      "acore": {
        "label": "acore",
        "tono": "good",
        "trad": "Llegó DESPUÉS del corte del 24 de agosto de 2026 a las 15:13, así que lo gobierna la lógica de acore de punta a punta: se leyó, se cruzó y se decidió aquí."
      },
      "legacy": {
        "label": "era Zoho→CRM",
        "tono": "gray",
        "trad": "Llegó ANTES de ese corte, cuando la automatización vieja de Make + Zoho Flow movía el dato. Es rezago: se trabaja para drenarlo, pero no es la operación de hoy y no se mezcla con ella."
      }
    },
    "difusion_estado": {
      "draft": {
        "label": "Borrador",
        "tono": "gray",
        "trad": "La campaña se está capturando; todavía no tiene lista de clientes."
      },
      "computed": {
        "label": "Lista calculada",
        "tono": "info",
        "trad": "Ya se calculó a quién sí y a quién no; falta mandarla a revisión."
      },
      "in_review": {
        "label": "En revisión",
        "tono": "warn",
        "trad": "Espera la aprobación de un supervisor."
      },
      "approved": {
        "label": "Programada",
        "tono": "good",
        "trad": "Un supervisor la aprobó; saldrá a la hora indicada."
      },
      "sending": {
        "label": "En envío",
        "tono": "info",
        "trad": "angelus está enviando los mensajes."
      },
      "paused": {
        "label": "En pausa",
        "tono": "warn",
        "trad": "El envío está detenido; se puede reanudar dentro del horario permitido."
      },
      "done": {
        "label": "Terminada",
        "tono": "good",
        "trad": "Se enviaron todos los mensajes que correspondían."
      },
      "cancelled": {
        "label": "Cancelada",
        "tono": "gray",
        "trad": "Se canceló; lo que ya salió no se deshace."
      },
      "expired": {
        "label": "Vencida sin enviar",
        "tono": "warn",
        "trad": "La aprobación venció y no salió ningún mensaje."
      },
      "cut_off": {
        "label": "Cortada por horario",
        "tono": "warn",
        "trad": "Llegó la hora límite con el envío a medias; a quienes faltaron les corresponde una campaña nueva."
      },
      "discarded": {
        "label": "Descartada",
        "tono": "gray",
        "trad": "Se abandonó antes de aprobarse; nunca envió nada."
      }
    },
    "difusion_tipo": {
      "last_day_reminder": {
        "label": "Recordatorio de último día",
        "tono": "info",
        "trad": "Aviso de que hoy es el último día para pagar sin recargo."
      },
      "corte_notice": {
        "label": "Aviso de corte",
        "tono": "info",
        "trad": "Aviso del corte a quienes tienen adeudo."
      },
      "exemption_lapsed_notice": {
        "label": "Aviso de exención vencida",
        "tono": "info",
        "trad": "Aviso a las cuentas cuya exención cayó; el texto del mensaje cambia según la situación de cada una."
      }
    },
    "difusion_polaridad": {
      "send": {
        "label": "Se enviará a",
        "tono": "good",
        "trad": "Clientes a quienes se autoriza enviar el mensaje."
      },
      "do_not_send": {
        "label": "NO se enviará a",
        "tono": "crit",
        "trad": "Clientes a quienes no se les debe escribir."
      }
    },
    "difusion_modo": {
      "live": {
        "label": "Envío real",
        "tono": "info",
        "trad": "El mensaje llega a los clientes."
      },
      "rehearsal": {
        "label": "Ensayo",
        "tono": "gray",
        "trad": "Solo se envía a la línea de prueba; ningún cliente recibe nada."
      }
    },
    "difusion_despacho": {
      "pending": {
        "label": "Pendiente",
        "tono": "gray",
        "trad": "angelus la vio y espera la hora de envío."
      },
      "running": {
        "label": "En curso",
        "tono": "info",
        "trad": "angelus está enviando."
      },
      "paused": {
        "label": "Pausado",
        "tono": "warn",
        "trad": "El envío está detenido."
      },
      "cancelled": {
        "label": "Cancelado",
        "tono": "gray",
        "trad": "El envío se canceló."
      },
      "finished": {
        "label": "Terminado",
        "tono": "good",
        "trad": "angelus terminó de enviar."
      }
    },
    "difusion_motivo_exclusion": {
      "sin_numero_de_cliente": {
        "label": "Cuenta sin número de cliente",
        "tono": "warn",
        "trad": "La cuenta no trae número de cliente: no se puede identificar ni listar, solo se cuenta."
      },
      "pago_en_curso": {
        "label": "Pago en trámite",
        "tono": "info",
        "trad": "Tiene un comprobante en proceso que todavía no se aplica en Books."
      },
      "exencion_protegida": {
        "label": "Exención vigente",
        "tono": "info",
        "trad": "Mandó un comprobante y sigue dentro de sus tres días de protección."
      },
      "exencion_no_evaluada": {
        "label": "Exención sin evaluar",
        "tono": "warn",
        "trad": "No se pudo saber si está protegida; por prudencia no se le escribe."
      },
      "exenta_del_corte": {
        "label": "Exenta del corte",
        "tono": "info",
        "trad": "El corte la clasificó como exenta o tiene una prórroga firmada vigente."
      },
      "comprobante_del_ciclo": {
        "label": "Comprobante del ciclo",
        "tono": "info",
        "trad": "Mandó un comprobante vigente en lo que va del ciclo."
      },
      "cubierta": {
        "label": "Cuenta cubierta",
        "tono": "good",
        "trad": "Su saldo del corte ya quedó en cero."
      },
      "desenlace_firmado_por_persona": {
        "label": "Resuelta por una persona",
        "tono": "info",
        "trad": "Una persona cerró su caso y no se pisa con un envío automático."
      },
      "servicio_ya_actuado": {
        "label": "Servicio ya suspendido o reconectado",
        "tono": "info",
        "trad": "Su servicio ya se suspendió o se reconectó; el aviso ya no aplica."
      },
      "ya_avisada": {
        "label": "Ya se le avisó",
        "tono": "info",
        "trad": "Ya recibió, o está programado que reciba, este aviso en otra campaña del mismo corte; no se le escribe dos veces."
      },
      "situacion_indeterminada": {
        "label": "Situación sin determinar",
        "tono": "warn",
        "trad": "Su exención cayó pero no se pudo saber por qué; por prudencia no se le escribe y lo revisa una persona."
      },
      "situacion_cambiada": {
        "label": "Su situación cambió",
        "tono": "info",
        "trad": "Después de aprobar, su caso cambió (por ejemplo, apareció un depósito): el mensaje aprobado ya no le describe y no se le escribe."
      }
    },
    "difusion_motivo_skip": {
      "sin_saldo_vivo": {
        "label": "Sin saldo en Books",
        "tono": "gray",
        "trad": "Books ya no muestra saldo pendiente (incluye pagos hechos en sucursal)."
      },
      "credito_neto_cero": {
        "label": "Saldo cubierto por crédito",
        "tono": "gray",
        "trad": "Su crédito sin aplicar cubre lo que debía."
      },
      "credito_ilegible": {
        "label": "No se pudo leer su crédito",
        "tono": "warn",
        "trad": "No se pudo consultar su crédito; por prudencia no se le escribió."
      },
      "books_no_disponible": {
        "label": "Books no respondió",
        "tono": "warn",
        "trad": "No se pudo confirmar su saldo; no se le escribió."
      },
      "whatsapp_131026": {
        "label": "Número que no recibe mensajes",
        "tono": "warn",
        "trad": "El último mensaje no se le pudo entregar por ese número."
      },
      "optout_crm": {
        "label": "Pidió no recibir mensajes",
        "tono": "gray",
        "trad": "Tiene marcada la baja de mensajes en el CRM."
      },
      "sin_telefono": {
        "label": "Sin teléfono utilizable",
        "tono": "gray",
        "trad": "No tiene un celular válido registrado."
      },
      "sin_variables": {
        "label": "Faltaba un dato del mensaje",
        "tono": "warn",
        "trad": "No se pudo armar el mensaje completo para este cliente."
      },
      "ya_enviado": {
        "label": "Ya lo recibió",
        "tono": "gray",
        "trad": "Ya recibió este mismo aviso en esta u otra campaña; no se repite nunca."
      },
      "acore_supresion": {
        "label": "Se protegió después del cálculo",
        "tono": "info",
        "trad": "Entró una exclusión (por ejemplo, un comprobante) después de congelar la lista."
      },
      "mismo_telefono_excluido": {
        "label": "Comparte teléfono con una cuenta excluida",
        "tono": "info",
        "trad": "Su número lo comparte con una cuenta que no debe recibir el mensaje."
      },
      "cuenta_de_prueba": {
        "label": "Cuenta de prueba",
        "tono": "gray",
        "trad": "Es una cuenta de prueba."
      },
      "espaciado_cobranza": {
        "label": "Recibió otro cobro hace poco",
        "tono": "gray",
        "trad": "Recibió otro mensaje de cobranza hace pocos días."
      },
      "senal_de_pago_angelus": {
        "label": "Señal de pago que ve angelus",
        "tono": "info",
        "trad": "angelus detecta un pago o un comprobante reciente que acore aún no refleja."
      },
      "rehearsal_suppressed": {
        "label": "No enviado por ser ensayo",
        "tono": "gray",
        "trad": "En un ensayo solo se escribe a la línea de prueba."
      }
    },
    "difusion_detenida_por": {
      "pause_operator": {
        "label": "Pausada por una persona",
        "tono": "warn",
        "trad": "Un operador de angelus pausó el envío."
      },
      "cancel_operator": {
        "label": "Cancelada por una persona",
        "tono": "gray",
        "trad": "Un operador de angelus canceló el envío."
      },
      "acore_cancelled": {
        "label": "Cancelada en acore",
        "tono": "gray",
        "trad": "Un supervisor canceló la campaña en acore."
      },
      "acore_not_listed": {
        "label": "Ya no aparece en acore",
        "tono": "warn",
        "trad": "angelus ya no encontró la campaña en acore y por eso se detuvo."
      },
      "fingerprint_mismatch": {
        "label": "La lista cambió",
        "tono": "crit",
        "trad": "La lista ya no coincide con la que se aprobó: el envío se detuvo y no se reanuda."
      },
      "books_unavailable": {
        "label": "Books no disponible",
        "tono": "warn",
        "trad": "No se pudo confirmar saldos en Books; el envío se pausó."
      },
      "window_expired": {
        "label": "Fuera de horario",
        "tono": "warn",
        "trad": "Llegó la hora límite de envío; ya no sale ningún mensaje más."
      },
      "flag_off": {
        "label": "Envío apagado en angelus",
        "tono": "warn",
        "trad": "El interruptor de envío de angelus está apagado."
      },
      "suppressions_stale": {
        "label": "Protecciones sin actualizar",
        "tono": "warn",
        "trad": "Las exclusiones de acore llevan demasiado sin actualizarse; el envío se pausó."
      },
      "template_not_approved": {
        "label": "Plantilla sin aprobar en Meta",
        "tono": "crit",
        "trad": "Meta todavía no aprueba la plantilla del mensaje."
      },
      "provider_error_rate": {
        "label": "Muchos fallos del proveedor",
        "tono": "crit",
        "trad": "El proveedor de mensajes está fallando demasiado; el envío se pausó."
      }
    },
    "difusion_bloqueo": {
      "role_required": {
        "label": "Solo un supervisor puede hacerlo",
        "tono": "warn",
        "trad": "Tu rol no permite esta acción."
      },
      "no_identity": {
        "label": "Falta iniciar sesión",
        "tono": "warn",
        "trad": "La acción necesita una sesión con tu identidad."
      },
      "wrong_state": {
        "label": "No se puede en este estado",
        "tono": "warn",
        "trad": "La campaña está en un estado que no admite esta acción."
      },
      "fingerprint_changed": {
        "label": "La lista cambió desde que se revisó",
        "tono": "crit",
        "trad": "Recalcula la lista y vuelve a revisarla antes de aprobar."
      },
      "empty_send": {
        "label": "No hay a quién enviar",
        "tono": "crit",
        "trad": "La lista de envío está vacía."
      },
      "empty_exclusion": {
        "label": "La lista de exclusión está vacía",
        "tono": "crit",
        "trad": "Una lista de exclusión vacía no protege a nadie; revisa el cálculo."
      },
      "no_dry_run": {
        "label": "Falta el ensayo de angelus",
        "tono": "warn",
        "trad": "Para este aviso, angelus debe hacer un ensayo antes de aprobar."
      },
      "dry_run_stale": {
        "label": "El ensayo de angelus ya no es vigente",
        "tono": "warn",
        "trad": "El ensayo es de otra versión de la lista o de la plantilla, falló, usó datos sin refrescar o es demasiado viejo."
      },
      "batch_does_not_fit": {
        "label": "El envío no cabe en el horario",
        "tono": "crit",
        "trad": "A la velocidad de envío de angelus, la lista no alcanza a salir entre la hora de envío y la hora límite."
      },
      "outside_send_window": {
        "label": "Fuera del horario de envío",
        "tono": "crit",
        "trad": "Solo se puede enviar de 8:00 a 20:00, hora de México."
      },
      "fire_in_past": {
        "label": "La hora de envío ya pasó",
        "tono": "crit",
        "trad": "Elige una hora de envío futura."
      },
      "no_vigente_cut": {
        "label": "Falta el corte de esa fecha",
        "tono": "crit",
        "trad": "El aviso de corte necesita un corte vigente con esa fecha."
      },
      "population_unavailable": {
        "label": "No se pudo leer la población",
        "tono": "crit",
        "trad": "No se pudo calcular la lista; intenta de nuevo."
      },
      "template_missing": {
        "label": "No hay plantilla en el catálogo",
        "tono": "crit",
        "trad": "angelus no publica esa plantilla en ese idioma; no se puede aprobar."
      },
      "template_catalog_stale": {
        "label": "Catálogo de plantillas sin refrescar",
        "tono": "warn",
        "trad": "El catálogo de angelus lleva más de 30 minutos sin actualizarse; no se afirma si la plantilla está aprobada."
      },
      "template_not_approved": {
        "label": "La plantilla no está aprobada",
        "tono": "crit",
        "trad": "Mientras Meta no apruebe la plantilla no se puede aprobar la campaña (F25). Es el motivo de botón apagado; el mismo identificador existe en `difusion_detenida_por` con otro sentido (angelus se detuvo en pleno envío) y no se duplica: es una clave en dos dominios, uno por cada momento."
      },
      "template_changed": {
        "label": "La plantilla cambió desde que se revisó",
        "tono": "warn",
        "trad": "El texto o el estado de la plantilla cambió; revisa la vista previa otra vez."
      },
      "not_in_review": {
        "label": "Primero hay que mandarla a revisión",
        "tono": "warn",
        "trad": "La campaña todavía no está en revisión."
      },
      "already_approved": {
        "label": "Ya fue aprobada",
        "tono": "gray",
        "trad": "La campaña ya se aprobó; no se aprueba otra vez."
      },
      "campaign_closed": {
        "label": "La campaña está cerrada",
        "tono": "gray",
        "trad": "Ya terminó, se canceló, venció o se descartó; no admite esta acción."
      },
      "not_yet_approved": {
        "label": "Todavía no está aprobada",
        "tono": "gray",
        "trad": "Antes de aprobarse una campaña se descarta, no se cancela."
      },
      "expected_fingerprint_required": {
        "label": "Falta la huella que revisaste",
        "tono": "crit",
        "trad": "La petición no trae la huella de la lista que viste; recarga la pantalla."
      },
      "cancel_reason_required": {
        "label": "Escribe el motivo (mínimo 5 caracteres)",
        "tono": "warn",
        "trad": "Una cancelación sin motivo escrito no deja constancia útil."
      },
      "campaign_already_live": {
        "label": "Ya hay una campaña de este tipo y periodo en curso",
        "tono": "warn",
        "trad": "Ábrela en vez de crear otra: no puede haber dos campañas vivas del mismo tipo, periodo y modo (409, §3.1). El cuerpo trae el `id` de la viva para enlazarla."
      },
      "template_not_editable": {
        "label": "La plantilla no se elige",
        "tono": "warn",
        "trad": "La plantilla la fija el sistema según el tipo de aviso; la petición no debe traerla (422, §3.1)."
      },
      "kind_not_acknowledged": {
        "label": "Este tipo de aviso todavía no está habilitado",
        "tono": "crit",
        "trad": "angelus aún no confirma este tipo de aviso; por ahora solo se puede crear como ensayo."
      },
      "not_found": {
        "label": "No existe esa campaña",
        "tono": "gray",
        "trad": "La campaña que buscas no existe o ya no está disponible."
      },
      "invalid_transition": {
        "label": "Ese paso no es posible",
        "tono": "warn",
        "trad": "La campaña no puede pasar de su estado actual a ese (§3.4)."
      },
      "invalid_input": {
        "label": "Revisa los datos capturados",
        "tono": "warn",
        "trad": "Algún dato de la captura no es válido; corrígelo e inténtalo de nuevo."
      },
      "stale_write": {
        "label": "La campaña cambió mientras la veías",
        "tono": "warn",
        "trad": "Alguien más la modificó; recarga la pantalla y vuelve a intentarlo."
      },
      "difusiones_apagadas": {
        "label": "Difusiones no está disponible",
        "tono": "gray",
        "trad": "El módulo está apagado en este ambiente."
      }
    },
    "difusion_plantilla_estado": {
      "APPROVED": {
        "label": "Aprobada por Meta",
        "tono": "good",
        "trad": "Meta aprobó la plantilla; se puede enviar."
      },
      "PENDING": {
        "label": "Pendiente en Meta",
        "tono": "warn",
        "trad": "Meta todavía no la aprueba; aún no se puede enviar."
      },
      "REJECTED": {
        "label": "Rechazada por Meta",
        "tono": "crit",
        "trad": "Meta la rechazó; hay que corregirla en angelus."
      },
      "PAUSED": {
        "label": "Pausada por Meta",
        "tono": "crit",
        "trad": "Meta la pausó por su desempeño; no se debe enviar."
      },
      "DISABLED": {
        "label": "Deshabilitada",
        "tono": "crit",
        "trad": "La plantilla ya no está disponible."
      }
    },
    "difusion_encabezado": {
      "NONE": {
        "label": "Sin encabezado",
        "tono": "gray",
        "trad": "El mensaje no lleva encabezado."
      },
      "TEXT": {
        "label": "Encabezado de texto",
        "tono": "gray",
        "trad": "El mensaje abre con un texto."
      },
      "IMAGE": {
        "label": "Encabezado de imagen",
        "tono": "gray",
        "trad": "El mensaje lleva una imagen; aquí solo se indica, no se carga."
      },
      "VIDEO": {
        "label": "Encabezado de video",
        "tono": "gray",
        "trad": "El mensaje lleva un video; aquí solo se indica."
      },
      "DOCUMENT": {
        "label": "Encabezado de documento",
        "tono": "gray",
        "trad": "El mensaje lleva un documento; aquí solo se indica."
      }
    },
    "difusion_boton_tipo": {
      "other": {
        "label": "Botón",
        "tono": "gray",
        "trad": "Botón del mensaje. El tipo exacto es de angelus; si llega uno sin rótulo propio se muestra así, nunca la clave cruda."
      }
    },
    "difusion_embudo": {
      "universe": {
        "label": "Clientes y cuentas en la población",
        "tono": "gray",
        "trad": "Filas que entran al cálculo: clientes con número y cuentas sin número."
      },
      "recipients": {
        "label": "Se enviará a",
        "tono": "good",
        "trad": "Quienes quedan autorizados para recibir el mensaje."
      },
      "excluded": {
        "label": "NO se enviará a",
        "tono": "crit",
        "trad": "Suma de todos los motivos de exclusión."
      },
      "dry_universe": {
        "label": "Universo según angelus",
        "tono": "info",
        "trad": "Clientes con saldo y teléfono según el ensayo de angelus."
      },
      "dry_vetoed": {
        "label": "Vetados por acore",
        "tono": "info",
        "trad": "Del universo de angelus, los que acore pide no incluir."
      },
      "dry_sendable": {
        "label": "Se enviaría a (estimado)",
        "tono": "info",
        "trad": "Estimado de angelus tras saldo vivo, canal y protecciones."
      },
      "absent_no_dry_run": {
        "label": "Sin dato de angelus",
        "tono": "gray",
        "trad": "Todavía no hay ensayo de angelus para esta lista."
      }
    },
    "difusion_actor": {
      "person": {
        "label": "Persona",
        "tono": "info",
        "trad": "Una persona con sesión."
      },
      "system": {
        "label": "Proceso automático",
        "tono": "gray",
        "trad": "Un proceso de acore, no una persona."
      },
      "angelus": {
        "label": "Operador de angelus",
        "tono": "info",
        "trad": "Una persona o proceso del lado de angelus."
      },
      "unnamed": {
        "label": "Persona sin nombre registrado",
        "tono": "gray",
        "trad": "No hay nombre en el catálogo de personas; no se sustituye por el correo ni por el identificador."
      }
    },
    "difusion_excluido_canal": {
      "credito_neto_cero": {
        "label": "Su crédito cubre el saldo (estimado)",
        "tono": "gray",
        "trad": "Con su crédito sin aplicar, ya no debería nada; no se les escribiría."
      },
      "credito_ilegible": {
        "label": "No se pudo leer su crédito (estimado)",
        "tono": "warn",
        "trad": "No se pudo consultar su crédito en el ensayo; por prudencia no se les escribiría."
      },
      "whatsapp_131026": {
        "label": "Número que no recibe mensajes (estimado)",
        "tono": "warn",
        "trad": "Su último mensaje no se entregó por ese número."
      },
      "optout_crm": {
        "label": "Pidieron no recibir mensajes (estimado)",
        "tono": "gray",
        "trad": "Tienen marcada la baja de mensajes en el CRM."
      },
      "sin_telefono": {
        "label": "Sin teléfono utilizable (estimado)",
        "tono": "gray",
        "trad": "No tienen un celular válido registrado."
      },
      "ya_enviado": {
        "label": "Ya recibieron este aviso (estimado)",
        "tono": "gray",
        "trad": "Ya lo recibieron en esta u otra campaña; no se repite nunca."
      },
      "sin_saldo_vivo": {
        "label": "Sin saldo en Books (estimado)",
        "tono": "gray",
        "trad": "Books ya no muestra saldo pendiente, incluidos los pagos hechos en sucursal."
      },
      "books_no_disponible": {
        "label": "Books no respondió (estimado)",
        "tono": "warn",
        "trad": "No se pudo confirmar su saldo en el ensayo; por prudencia no se les escribiría."
      },
      "sin_variables": {
        "label": "Faltaría un dato del mensaje (estimado)",
        "tono": "warn",
        "trad": "No se podría armar el mensaje completo para estos clientes."
      },
      "acore_supresion": {
        "label": "Protegidos por acore (estimado)",
        "tono": "info",
        "trad": "Una exclusión nueva de acore les quita el envío."
      },
      "mismo_telefono_excluido": {
        "label": "Comparten teléfono con una cuenta excluida (estimado)",
        "tono": "info",
        "trad": "Su número lo comparte una cuenta que no debe recibir el mensaje."
      },
      "cuenta_de_prueba": {
        "label": "Cuentas de prueba (estimado)",
        "tono": "gray",
        "trad": "Son cuentas de prueba."
      },
      "espaciado_cobranza": {
        "label": "Recibieron otro cobro hace poco (estimado)",
        "tono": "gray",
        "trad": "Recibieron otro mensaje de cobranza hace pocos días."
      },
      "senal_de_pago_angelus": {
        "label": "Señal de pago que ve angelus (estimado)",
        "tono": "info",
        "trad": "angelus detecta un pago o un comprobante reciente que acore aún no refleja."
      },
      "rehearsal_suppressed": {
        "label": "No se enviaría por ser ensayo (estimado)",
        "tono": "gray",
        "trad": "En un ensayo solo se escribe a la línea de prueba."
      }
    },
    "difusion_evento": {
      "created": {
        "label": "Se creó la campaña",
        "tono": "info",
        "trad": "Una persona creó la campaña."
      },
      "computed": {
        "label": "Se calculó la lista",
        "tono": "info",
        "trad": "Se calculó a quién sí y a quién no se enviará."
      },
      "submitted": {
        "label": "Se mandó a revisión",
        "tono": "info",
        "trad": "La lista quedó en espera de un supervisor."
      },
      "approved": {
        "label": "Se aprobó la campaña",
        "tono": "good",
        "trad": "Un supervisor aprobó la campaña."
      },
      "approval_blocked": {
        "label": "No se pudo aprobar",
        "tono": "warn",
        "trad": "Se intentó aprobar y algo lo impidió; el motivo queda anotado."
      },
      "cancelled": {
        "label": "Se canceló la campaña",
        "tono": "gray",
        "trad": "Un supervisor (o angelus) canceló el envío."
      },
      "discarded": {
        "label": "Se descartó el borrador",
        "tono": "gray",
        "trad": "Se abandonó antes de aprobarse."
      },
      "expired": {
        "label": "La aprobación venció sin enviar",
        "tono": "warn",
        "trad": "Pasó el plazo y no salió ningún mensaje."
      },
      "cut_off": {
        "label": "El envío se cortó por horario",
        "tono": "warn",
        "trad": "Llegó la hora límite con el envío a medias."
      },
      "dispatch_observed": {
        "label": "angelus cambió el estado del envío",
        "tono": "info",
        "trad": "acore leyó que el envío arrancó, se pausó, se reanudó o terminó."
      },
      "dispatch_stopped": {
        "label": "angelus detuvo el envío",
        "tono": "warn",
        "trad": "angelus detuvo el envío; el motivo queda anotado."
      },
      "dispatch_conflict": {
        "label": "El estado de angelus contradice al de acore",
        "tono": "crit",
        "trad": "Hay que revisar qué pasó."
      },
      "suppression_added": {
        "label": "Se agregó una protección después de aprobar",
        "tono": "info",
        "trad": "A un cliente se le dejó de escribir porque apareció una exclusión nueva."
      },
      "suppressions_stale": {
        "label": "Las protecciones no se actualizan",
        "tono": "warn",
        "trad": "El refresco de exclusiones lleva demasiado sin correr."
      },
      "dry_run_observed": {
        "label": "angelus hizo un ensayo",
        "tono": "info",
        "trad": "acore leyó el ensayo de angelus sobre esta lista."
      }
    },
    "difusion_ausente": {
      "universe_not_in_acore": {
        "label": "El universo lo conoce angelus",
        "tono": "gray",
        "trad": "En este tipo de aviso acore solo sabe a quién NO enviar."
      },
      "no_dry_run": {
        "label": "Sin dato de angelus: falta el ensayo",
        "tono": "gray",
        "trad": "Todavía no hay ensayo de angelus para esta lista."
      },
      "not_seen_by_angelus": {
        "label": "angelus todavía no ve la campaña",
        "tono": "warn",
        "trad": "No hay lectura de angelus para esta campaña."
      },
      "angelus_unreadable": {
        "label": "Sin lectura de angelus",
        "tono": "warn",
        "trad": "No se pudo leer a angelus; no es lo mismo que cero."
      },
      "not_applicable": {
        "label": "No aplica a este tipo de campaña",
        "tono": "gray",
        "trad": "Este dato no existe para este tipo de aviso."
      },
      "no_data_yet": {
        "label": "Todavía no se calcula",
        "tono": "gray",
        "trad": "La lista aún no se ha calculado."
      },
      "template_list_not_published": {
        "label": "La lista de plantillas aún no está publicada: la plantilla es la fija del tipo",
        "tono": "gray",
        "trad": "angelus todavía no publica una lista de plantillas para escoger; la del tipo de aviso es la fija de §2.2 y no se elige."
      }
    },
    "difusion_alarma": {
      "not_seen_by_angelus": {
        "label": "Angelus aún no ve la campaña",
        "tono": "warn",
        "trad": "Pasaron 2 minutos de la hora de envío y angelus no ha tomado la campaña (F10)."
      },
      "stalled": {
        "label": "El envío se detuvo sin avanzar",
        "tono": "warn",
        "trad": "angelus no reporta avance: el latido lleva más de 5 minutos sin actualizarse (F5) o `sent_n` lleva 10 minutos sin cambiar."
      },
      "dispatch_conflict": {
        "label": "Conflicto entre lo programado y lo que angelus envía",
        "tono": "crit",
        "trad": "El estado que reporta angelus contradice el de acore; sigue mientras exista la contradicción (F14)."
      },
      "suppressions_stale": {
        "label": "Los quitados por acore están desactualizados",
        "tono": "warn",
        "trad": "Las exclusiones de acore llevan más de 15 minutos sin refrescarse (F13)."
      }
    },
    "difusion_estado_envio": {
      "pending": {
        "label": "Pendiente",
        "tono": "gray",
        "trad": "Todavía no se le envía."
      },
      "reserved": {
        "label": "Reservado",
        "tono": "info",
        "trad": "angelus lo reservó y está por enviarlo."
      },
      "sent": {
        "label": "Enviado",
        "tono": "good",
        "trad": "El proveedor aceptó el mensaje."
      },
      "failed": {
        "label": "Fallido",
        "tono": "crit",
        "trad": "El mensaje no se pudo enviar."
      },
      "unknown": {
        "label": "Sin confirmar",
        "tono": "warn",
        "trad": "No se sabe si salió; no se reenvía a ciegas."
      }
    },
    "difusion_acuse": {
      "1": {
        "label": "Enviado",
        "tono": "info",
        "trad": "El proveedor lo aceptó."
      },
      "2": {
        "label": "Entregado",
        "tono": "good",
        "trad": "Llegó al teléfono."
      },
      "3": {
        "label": "Leído",
        "tono": "good",
        "trad": "El cliente lo abrió."
      },
      "4": {
        "label": "No entregado",
        "tono": "crit",
        "trad": "El mensaje no llegó."
      }
    },
    "difusion_situacion": {
      "receipt_rejected": {
        "label": "Comprobante rechazado",
        "tono": "warn",
        "trad": "Su comprobante fue rechazado por una persona, o es un duplicado sin original válido, así que su exención no se sostiene."
      },
      "no_deposit": {
        "label": "Comprobante sin depósito",
        "tono": "warn",
        "trad": "Mandó un comprobante, pasó el plazo de su exención y no hay un depósito que lo respalde."
      },
      "late_payment": {
        "label": "Pago tardío",
        "tono": "warn",
        "trad": "Hay un depósito, pero se hizo después de la fecha límite del corte."
      },
      "short_amount": {
        "label": "Monto que no cubre",
        "tono": "warn",
        "trad": "El depósito se hizo a tiempo, pero no alcanza a cubrir el saldo del corte."
      }
    },
    "difusion_envio_plantilla": {
      "pyf_recordatorio_ultimo_dia_v2": {
        "label": "Recordatorio de último día (v2)",
        "tono": "gray",
        "trad": "PROPUESTO (espera vobo de Dirección). Nombre legible de la plantilla de WhatsApp `pyf_recordatorio_ultimo_dia_v2`, tomado de su nombre técnico; la lista es cerrada y una plantilla fuera de ella sale como «Sin rótulo»."
      },
      "pyf_recordatorio_vencimiento": {
        "label": "Recordatorio de vencimiento",
        "tono": "gray",
        "trad": "PROPUESTO (espera vobo de Dirección). Nombre legible de la plantilla de WhatsApp `pyf_recordatorio_vencimiento`, tomado de su nombre técnico; la lista es cerrada y una plantilla fuera de ella sale como «Sin rótulo»."
      },
      "pyf_aviso_suspension": {
        "label": "Aviso de suspensión",
        "tono": "gray",
        "trad": "PROPUESTO (espera vobo de Dirección). Nombre legible de la plantilla de WhatsApp `pyf_aviso_suspension`, tomado de su nombre técnico; la lista es cerrada y una plantilla fuera de ella sale como «Sin rótulo»."
      },
      "pyf_recordatorio_corte": {
        "label": "Recordatorio de corte",
        "tono": "gray",
        "trad": "PROPUESTO (espera vobo de Dirección). Nombre legible de la plantilla de WhatsApp `pyf_recordatorio_corte`, tomado de su nombre técnico; la lista es cerrada y una plantilla fuera de ella sale como «Sin rótulo»."
      },
      "pyf_recordatorio_saldo_vencido_1": {
        "label": "Recordatorio de saldo vencido",
        "tono": "gray",
        "trad": "PROPUESTO (espera vobo de Dirección). Nombre legible de la plantilla de WhatsApp `pyf_recordatorio_saldo_vencido_1`, tomado de su nombre técnico; la lista es cerrada y una plantilla fuera de ella sale como «Sin rótulo»."
      },
      "st_aviso_mantenimiento_programado": {
        "label": "Aviso de mantenimiento programado",
        "tono": "gray",
        "trad": "PROPUESTO (espera vobo de Dirección). Nombre legible de la plantilla de WhatsApp `st_aviso_mantenimiento_programado`, tomado de su nombre técnico; la lista es cerrada y una plantilla fuera de ella sale como «Sin rótulo»."
      },
      "recordatorio_adeudo_pago_02": {
        "label": "Recordatorio de adeudo de pago (02)",
        "tono": "gray",
        "trad": "PROPUESTO (espera vobo de Dirección). Nombre legible de la plantilla de WhatsApp `recordatorio_adeudo_pago_02`, tomado de su nombre técnico; la lista es cerrada y una plantilla fuera de ella sale como «Sin rótulo»."
      },
      "pyf_notificacion_banamex": {
        "label": "Notificación de Banamex",
        "tono": "gray",
        "trad": "PROPUESTO (espera vobo de Dirección). Nombre legible de la plantilla de WhatsApp `pyf_notificacion_banamex`, tomado de su nombre técnico; la lista es cerrada y una plantilla fuera de ella sale como «Sin rótulo»."
      },
      "pyf_promo_anualidad": {
        "label": "Promoción de anualidad",
        "tono": "gray",
        "trad": "PROPUESTO (espera vobo de Dirección). Nombre legible de la plantilla de WhatsApp `pyf_promo_anualidad`, tomado de su nombre técnico; la lista es cerrada y una plantilla fuera de ella sale como «Sin rótulo»."
      },
      "gi_aviso_fin_anualidad": {
        "label": "Aviso de fin de anualidad",
        "tono": "gray",
        "trad": "PROPUESTO (espera vobo de Dirección). Nombre legible de la plantilla de WhatsApp `gi_aviso_fin_anualidad`, tomado de su nombre técnico; la lista es cerrada y una plantilla fuera de ella sale como «Sin rótulo»."
      },
      "gi_aviso_descuento": {
        "label": "Aviso de descuento",
        "tono": "gray",
        "trad": "PROPUESTO (espera vobo de Dirección). Nombre legible de la plantilla de WhatsApp `gi_aviso_descuento`, tomado de su nombre técnico; la lista es cerrada y una plantilla fuera de ella sale como «Sin rótulo»."
      }
    },
    "difusion_subitem": {
      "envios_por_corrida": {
        "label": "Envíos por corrida",
        "tono": "info",
        "trad": "PROPUESTO (espera vobo de Dirección). Cuántos mensajes salieron cada día, por plantilla, y en qué quedaron. Solo lectura; es histórico, no la operación viva."
      }
    },
    "difusion_envio_aviso": {
      "sin_clasificar": {
        "label": "Sin clasificar",
        "tono": "gray",
        "trad": "PROPUESTO (espera vobo de Dirección). angelus no pudo asignar el envío a un tipo de aviso; se muestra tal cual, acore no lo re-clasifica. Los otros dos tipos (último día, corte) usan los rótulos de «Tipo de campaña»."
      },
      "sin_rotulo": {
        "label": "Sin rótulo",
        "tono": "gray",
        "trad": "PROPUESTO. La plantilla no está en la lista cerrada de nombres legibles; se muestra su nombre técnico."
      },
      "particion_rota": {
        "label": "Las cifras no cuadran",
        "tono": "warn",
        "trad": "PROPUESTO. Los enviados no son la suma de pendientes, entregados, leídos y fallidos; la fila no suma en los totales ni lleva porcentajes. Es una señal para angelus."
      },
      "vacio_sistema": {
        "label": "angelus aún no ha enviado corridas en este histórico",
        "tono": "gray",
        "trad": "PROPUESTO. La lectura funcionó y la vista no trae filas: es un cero verdadero."
      },
      "vacio_filtro": {
        "label": "Ningún envío con estos filtros",
        "tono": "gray",
        "trad": "PROPUESTO. Hay envíos en el histórico, pero ninguno cumple los filtros puestos; se pueden quitar."
      },
      "dato_viejo": {
        "label": "Dato de hace {n} min",
        "tono": "warn",
        "trad": "PROPUESTO. La lectura de angelus lleva más de 15 minutos sin refrescarse; las cifras no se ocultan ni cambian."
      }
    },
    "exencion_plazo": {
      "columna": {
        "label": "Exenta hasta",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-11. El último día en que esta exención sigue protegida. Pasado ese día, si el caso no se resolvió, cae a adeudo. El texto de cada fila dice de dónde sale la fecha."
      },
      "comprobante": {
        "label": "Exenta hasta {fecha} · 3 días desde su comprobante",
        "tono": "good",
        "trad": "Vobo del dueño 2026-10-11. El comprobante de esta cuenta llegó después del corte, así que corren sus propios 3 días naturales desde que se recibió. Gana al piso."
      },
      "general": {
        "label": "Exenta hasta {fecha} · fecha general del corte",
        "tono": "good",
        "trad": "Vobo del dueño 2026-10-11. Es el piso: ninguna exención vence antes de los 3 días naturales del corte (corte el 04, hasta el 06). Aplica cuando el comprobante llegó antes del corte o el mismo día."
      },
      "prorroga": {
        "label": "Exenta hasta {fecha} · prórroga firmada",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-11. Una persona firmó una prórroga que amplía el plazo más allá del comprobante y del piso. La firma y el motivo están en la ficha de la cuenta."
      }
    },
    "alerta_extracto": {
      "titulo": {
        "label": "Falta cargar el extracto",
        "tono": "warn",
        "trad": "Aprobado por Dirección el 2026-10-10. Desde el día 07 del corte: estas exenciones ya habrían vencido, pero siguen protegidas porque el extracto de la cuenta bancaria donde se espera su depósito todavía no se carga. Cargar el extracto las libera: cada una pasa a cruzarse o a caer según lo que traiga."
      },
      "cuenta": {
        "label": "Cuenta bancaria",
        "tono": "info",
        "trad": "Aprobado por Dirección el 2026-10-10. La cuenta de Youcom cuyo extracto falta."
      },
      "exenciones": {
        "label": "Exenciones que protege",
        "tono": "info",
        "trad": "Aprobado por Dirección el 2026-10-10. Cuántas exenciones abiertas del corte siguen protegidas solo porque falta el extracto de esa cuenta."
      },
      "sin_cuenta": {
        "label": "Sin cuenta registrada",
        "tono": "warn",
        "trad": "Aprobado por Dirección el 2026-10-10. Exenciones protegidas por la espera del extracto cuyo expediente no trae la cuenta bancaria: hay que revisarlas a mano."
      },
      "no_leida": {
        "label": "No se pudo leer la alerta del extracto",
        "tono": "crit",
        "trad": "Aprobado por Dirección el 2026-10-10. No se sabe si hay extractos pendientes: esto NO significa que no haya ninguno. Reintenta; si sigue igual, avisa a Sistemas."
      }
    },
    "corte_franja": {
      "titulo": {
        "label": "Franja del corte",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-11. Lo que todas las pantallas del Corte comparten: el corte, la política, si la escritura a Books está en ensayo, las banderas y el interruptor de emergencia."
      },
      "corte": {
        "label": "Corte",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-11. El corte del mes que estás viendo y su estado."
      },
      "corte_vigente": {
        "label": "Vigente",
        "tono": "good",
        "trad": "Vobo del dueño 2026-10-11. Es el corte del mes: sus cifras son las que mueven el recargo y la suspensión."
      },
      "corte_ensayo": {
        "label": "Ensayo",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-11. Es un cálculo de ensayo, no el corte del mes: nada de lo que muestra dispara recargos ni difusión."
      },
      "corte_legado": {
        "label": "Legado",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-11. Es de antes del 24-ago-2026 15:13: lo procesó la automatización vieja y no se reprocesa. Se consulta, no se opera."
      },
      "sin_corte": {
        "label": "Todavía no hay un corte",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-11. El calendario crea el corte del mes el día 04. No es un error ni un cero: aún no empieza el ciclo."
      },
      "frontera": {
        "label": "Frontera de pago a tiempo",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-11. Pagó a tiempo quien tiene evidencia ANTES de la medianoche que abre el día de corte."
      },
      "hora_mx": {
        "label": "hora de México",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-11. Todas las horas del módulo son hora de México."
      },
      "politica": {
        "label": "Política",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-11. La versión de las reglas con que se decide si un lote puede escribirse por reglas, y la fecha en que se propuso."
      },
      "escritura": {
        "label": "Escritura a Books",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-11. Si el sistema escribe recargos en Books ahora mismo, solo ensaya, o está detenido."
      },
      "escritura_ensayo": {
        "label": "ENSAYO · no escribe",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-11. Lee Books y cuenta lo que haría, pero no escribe nada: la bandera del recargo está apagada o su tope es cero."
      },
      "escritura_escribe": {
        "label": "ESCRIBE en Books",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-11. La bandera del recargo está encendida y el interruptor de emergencia está armado: el sistema escribe."
      },
      "escritura_detenida": {
        "label": "DETENIDA",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-11. La bandera está encendida pero el interruptor de emergencia está pulsado, no existe, o no se pudo leer: el sistema no escribe."
      },
      "topes": {
        "label": "Topes de la política",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-11. Los límites con que se decide si un lote puede escribirse por reglas."
      },
      "topes_ejemplo": {
        "label": "Topes de la política · ejemplo",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-11. Los límites de la política; son cifras de ejemplo, todavía sin medir: se afinan con las corridas reales y vuelven a Dirección."
      },
      "cuentas": {
        "label": "cuentas",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-11. Cantidad de cuentas."
      },
      "banderas": {
        "label": "Banderas",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-11. Los interruptores de entorno que encienden el recargo y el retiro. No cambian dentro de un proceso vivo."
      },
      "bandera_recargo_on": {
        "label": "Recargo encendida",
        "tono": "good",
        "trad": "Vobo del dueño 2026-10-11. La bandera del recargo está encendida."
      },
      "bandera_recargo_off": {
        "label": "Recargo apagada",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-11. La bandera del recargo está apagada."
      },
      "bandera_retiro_on": {
        "label": "Retiro encendida",
        "tono": "good",
        "trad": "Vobo del dueño 2026-10-11. La bandera del retiro automático de recargos está encendida."
      },
      "bandera_retiro_off": {
        "label": "Retiro apagada",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-11. La bandera del retiro automático de recargos está apagada: solo ensaya."
      },
      "interruptor": {
        "label": "Interruptor de emergencia",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Detiene la escritura en la siguiente tanda. Aquí se ve su estado; un supervisor o Dirección lo pulsa (sin confirmación) o lo rearma (con motivo escrito)."
      },
      "carril_recargo": {
        "label": "Recargo",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-11. El carril del recargo."
      },
      "carril_retiro": {
        "label": "Retiro",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-11. El carril del retiro de recargos."
      },
      "interruptor_armado": {
        "label": "armado",
        "tono": "good",
        "trad": "Vobo del dueño 2026-10-11. El carril sigue encendido: puede escribir si su bandera lo permite."
      },
      "interruptor_pulsado": {
        "label": "pulsado",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-11. Alguien detuvo este carril. No escribe hasta que Dirección o un supervisor lo rearme con motivo escrito."
      },
      "interruptor_sin_fila": {
        "label": "sin registro · no escribe",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-11. Todavía nadie ha armado este carril, y sin registro no se escribe (falla cerrado). Va en gris hasta que se arme por primera vez: no es una alarma."
      },
      "interruptor_no_leido": {
        "label": "no se pudo leer",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-11. No se sabe en qué estado está el interruptor. Eso NO significa que esté armado: se trata como detenido."
      },
      "interruptor_no_leido_aviso": {
        "label": "No se pudo leer el interruptor de emergencia: se trata como detenido. Reintenta; si sigue igual, avisa a Sistemas.",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-11. Aviso cuando la lectura del interruptor falló."
      },
      "btn_pulsar": {
        "label": "Pulsar: detener la escritura",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-12. Apaga este carril al instante. Sin confirmación: una emergencia no espera."
      },
      "btn_rearmar": {
        "label": "Rearmar",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Vuelve a encender el carril. Pide un motivo escrito."
      },
      "pulsar_hecho": {
        "label": "Escritura detenida. No se escribe hasta que alguien la rearme.",
        "tono": "good",
        "trad": "Vobo del dueño 2026-10-12. Aviso tras pulsar."
      },
      "rearmar_titulo": {
        "label": "Rearmar la escritura",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Diálogo de rearmar: motivo escrito obligatorio."
      },
      "rearmar_intro": {
        "label": "Vuelve a permitir que se escriba, si su bandera está encendida. Queda tu nombre y tu motivo en el historial.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Lo que hace rearmar."
      },
      "rearmar_motivo": {
        "label": "¿Por qué se rearma? — queda con tu nombre",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Etiqueta del motivo."
      },
      "rearmar_si": {
        "label": "Rearmar",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Confirma el rearme."
      },
      "motivo_supervisor_only": {
        "label": "Solo un supervisor o Dirección pulsa o rearma el interruptor.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Motivo por el que los botones del interruptor están apagados para un operador (y rechazo del servidor con 403)."
      },
      "motivo_already_off": {
        "label": "Este carril ya está detenido: no escribe.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Motivo por el que «Pulsar» está apagado: el carril ya está pulsado o no tiene registro (sin registro no escribe)."
      },
      "motivo_already_armed": {
        "label": "Este carril ya está armado.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Motivo por el que «Rearmar» está apagado: ya está armado."
      },
      "motivo_not_read": {
        "label": "No se pudo leer el interruptor: recarga la pantalla antes de rearmar.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-12. Motivo por el que «Rearmar» está apagado: sin la versión leída no se rearma. «Pulsar» sigue disponible."
      },
      "btn_pulsar_carril": {
        "label": "Pulsar: detener la escritura de {carril}",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-12. Nombre accesible del botón por carril."
      },
      "btn_rearmar_carril": {
        "label": "Rearmar el carril {carril}",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Nombre accesible del botón por carril."
      },
      "rearmar_hecho": {
        "label": "Escritura rearmada. Queda tu nombre y tu motivo en el historial.",
        "tono": "good",
        "trad": "Vobo del dueño 2026-10-12. Aviso tras rearmar."
      },
      "rearmar_que_se_pedia": {
        "label": "El rearme",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Sujeto de la frase de error del diálogo («El rearme NO quedó guardado»)."
      },
      "interruptor_error": {
        "label": "No se pudo tocar el interruptor. No se sabe si llegó: recarga la pantalla y mira su estado.",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-12. Falla de red o respuesta inesperada al pulsar."
      },
      "motivo_unknown_lane": {
        "label": "Ese carril no existe.",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-12. Rechazo del servidor."
      },
      "motivo_reason_required": {
        "label": "Escribe el motivo del rearme (al menos 5 caracteres). Queda con tu nombre.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-12. Rechazo del servidor."
      },
      "motivo_stale_version": {
        "label": "Alguien movió el interruptor mientras lo mirabas. Recarga y vuelve a decidir.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-12. Rechazo del servidor: otra persona lo cambió en medio."
      },
      "motivo_version_required": {
        "label": "Falta la versión que viste del interruptor: recarga la pantalla.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-12. Rechazo del servidor."
      },
      "motivo_no_session": {
        "label": "Sin sesión no se puede tocar el interruptor.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Rechazo del servidor: nada que mueva dinero o servicio se ofrece sin un nombre detrás."
      },
      "franja_no_leida": {
        "label": "No se pudo leer la franja del corte",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-11. No se sabe el estado del corte ni de la escritura. Esto NO significa que esté en ensayo ni que no haya corte: reintenta; si sigue igual, avisa a Sistemas."
      }
    },
    "corte_cuentas": {
      "titulo": {
        "label": "Cuentas",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-11. Cada cuenta del corte: exenta o con adeudo, y cómo cerró su caso."
      },
      "descripcion": {
        "label": "Cada cuenta del corte: exenta o con adeudo, y cómo cerró su caso. Aquí se firma el desenlace.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-11. Explica para qué sirve esta pantalla: es la única puerta para firmar el desenlace y la prórroga."
      },
      "sin_seleccion": {
        "label": "Elige una cuenta de la lista para ver su ficha y firmar su caso.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-11. Aparece mientras no hay cuenta elegida."
      },
      "cuenta": {
        "label": "Cuenta",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-11. El número de cliente de la cuenta."
      },
      "exenta_hasta": {
        "label": "Exenta hasta",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-11. El último día en que la exención sigue protegida."
      },
      "factura_corte": {
        "label": "Factura al corte",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-11. Lo que se debía de esa factura el día del corte."
      },
      "factura_replica": {
        "label": "Réplica de Books",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-11. Lo que debe hoy según la réplica de Books. La réplica acusa; Books en vivo concluye: esta cifra puede ir atrasada."
      },
      "sin_dato": {
        "label": "sin dato en la réplica",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-11. La réplica no tiene esa factura. Esto no es cero ni saldada."
      },
      "recargos": {
        "label": "Recargos escritos",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-11. Los recargos de $50 que ya se escribieron en Books para esta cuenta."
      },
      "ninguno": {
        "label": "ninguno",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-11. No se ha escrito ningún recargo para esta cuenta."
      },
      "desenlace": {
        "label": "Desenlace",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-11. Cómo cerró el caso de la cuenta: cubierta, cayó a adeudo, o abierto."
      },
      "firmar": {
        "label": "Firmar el desenlace",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-11. Cada acción pide motivo escrito y queda firmada con tu usuario."
      },
      "btn_cubierta": {
        "label": "Marcar cubierta",
        "tono": "good",
        "trad": "Vobo del dueño 2026-10-11. La cuenta pagó lo que debía a tiempo: queda cubierta y sale del adeudo."
      },
      "btn_adeudo": {
        "label": "Cayó a adeudo",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-11. La cuenta no demostró pago a tiempo: cae a adeudo con recargo retroactivo."
      },
      "btn_prorrogar": {
        "label": "Prorrogar…",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-11. Amplía el plazo de la exención. Solo para lo que ninguna regla cubre y una persona revisó."
      },
      "btn_reabrir": {
        "label": "Reabrir",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-11. Devuelve a abierto un caso ya firmado, con motivo escrito."
      },
      "nota_adeudo": {
        "label": "Cayó a adeudo lleva recargo retroactivo de $50.00 y confirma su impacto antes de firmar.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-11. Advierte el efecto en dinero de esa acción."
      },
      "nota_firma": {
        "label": "Cada acción pide motivo escrito y queda firmada con tu usuario.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-11. Recuerda que firmar deja constancia con tu nombre."
      },
      "factura_vivo": {
        "label": "Factura en Books · en vivo",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-11. Lo que Books dice AHORA de esa factura. La réplica acusa; Books concluye."
      },
      "vivo_leyendo": {
        "label": "leyendo en Books…",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-11. Se está preguntando a Books; no es un cero."
      },
      "vivo_no_pude": {
        "label": "no pude preguntar",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-11. Books no contestó. Esto NO significa que no deba nada ni que deba $0.00: significa que no se sabe."
      },
      "vivo_omitida": {
        "label": "pausada por tope",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-11. La cuota de lecturas a Books es compartida por todo Youcom y el panel limita cuántas hace: esta no se leyó. Reintenta en un minuto."
      },
      "vivo_leido_a": {
        "label": "leído",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-11. La hora de México a la que Books contestó."
      },
      "vivo_motivo_not_configured": {
        "label": "Books no está configurado en este servicio",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-11. No hay credencial de lectura de Books en este servicio."
      },
      "vivo_motivo_books_error": {
        "label": "Books no contestó o contestó algo ilegible",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-11. Falló la llamada a Books o su respuesta venía incompleta."
      },
      "vivo_motivo_no_balance": {
        "label": "la factura no tiene identificador",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-11. No se puede preguntar por una factura sin identificador."
      },
      "vivo_motivo_request_cap": {
        "label": "tope de lecturas por pantalla",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-11. Esta cuenta tiene más facturas de las que se leen de una vez."
      },
      "vivo_motivo_minute_cap": {
        "label": "tope de lecturas por minuto",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-11. El panel ya hizo las lecturas que permite por minuto."
      },
      "books_estado_open": {
        "label": "abierta",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-11. Books la tiene abierta: se debe algo."
      },
      "books_estado_overdue": {
        "label": "vencida",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-11. Books la marca vencida: se debe y pasó su fecha."
      },
      "books_estado_paid": {
        "label": "pagada",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-11. Books la marca pagada."
      },
      "books_estado_partially_paid": {
        "label": "pagada en parte",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-11. Books la marca pagada en parte."
      },
      "books_estado_draft": {
        "label": "borrador",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-11. Books la tiene en borrador."
      },
      "books_estado_void": {
        "label": "anulada",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-11. Books la anuló: anulada no es deuda."
      },
      "books_estado_sent": {
        "label": "enviada",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-11. Books la marca enviada."
      },
      "motivo_no_session": {
        "label": "Sin sesión no se puede firmar.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-11. Sin una sesión iniciada no hay a quién firmarle la acción."
      },
      "motivo_legacy_cut": {
        "label": "Es de antes del corte del 24-ago-2026 15:13: no se reprocesa.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-11. El corte es de la era de la automatización vieja: se consulta, no se opera."
      },
      "motivo_receipt_unreadable": {
        "label": "Sin constancia legible no se firma.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-11. El historial de firmas no se pudo leer; firmar fallaría."
      },
      "motivo_already_signed": {
        "label": "Esta cuenta ya tiene un desenlace firmado: reábrelo primero.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-11. Una cuenta con desenlace se reabre antes de firmar otro."
      },
      "motivo_nothing_to_reopen": {
        "label": "Esta cuenta aún no tiene un desenlace firmado.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-11. No hay nada que reabrir."
      },
      "motivo_no_exemption": {
        "label": "Esta cuenta no tiene exención que prorrogar.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-11. Solo las cuentas exentas tienen una exención con plazo."
      },
      "motivo_sin_botonera": {
        "label": "El servidor no mandó la botonera de esta cuenta: no se ofrece firmar. Recarga el panel.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-11. Sin la decisión del servidor el panel no afirma qué se puede firmar."
      },
      "motivo_sin_panel": {
        "label": "El módulo de firmas no está cargado: recarga el panel.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-11. Falta el componente que abre el diálogo de firma."
      },
      "nota_panel": {
        "label": "Esta ficha resume el panel de la cuenta. El panel completo (imagen del comprobante con zoom, cruce con el banco, reloj, facturas) se conserva como hoy.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-11. Explica qué tiene el panel dedicado."
      },
      "abrir_panel": {
        "label": "Abrir el panel completo de la cuenta",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-11. Lleva al panel dedicado de esta cuenta."
      },
      "ficha_no_leida": {
        "label": "No se pudo leer la ficha de la cuenta. Reintenta; nada de lo que tienes en curso cambia por esto.",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-11. La ficha no se pudo cargar."
      }
    },
    "corte_recargo": {
      "tab_recargo": {
        "label": "Recargo, 1.ª pasada",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. El recargo de $50 por cuenta con adeudo, en la línea «Reconexión»."
      },
      "tab_retiro": {
        "label": "Retiro de recargos",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Quitar el recargo a quien ya no debía pagarlo, por una causa objetiva."
      },
      "recargo_titulo": {
        "label": "Recargo",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Pantalla del recargo de la primera pasada."
      },
      "recargo_descripcion": {
        "label": "$50.00 por cuenta con adeudo, en la línea «Reconexión». Primero se cuenta; se escribe solo si todas las reglas se cumplen.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Explica el orden: contar primero, escribir después."
      },
      "retiro_titulo": {
        "label": "Retiro de recargos",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Pantalla del retiro de recargos."
      },
      "retiro_descripcion": {
        "label": "Quita el recargo a quien ya no debía pagarlo, por una causa objetiva. Lo discrecional lo ve una persona.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Explica qué retira el sistema y qué deja a una persona."
      },
      "segun_replica": {
        "label": "Candidatas según la réplica de Books: Books concluye al retirar.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-12. Esta lista sale de la réplica, que acusa y puede ir atrasada. La relectura en Books en vivo, que decide si la línea sigue y si hay sobrepago, ocurre al retirar."
      },
      "regla_ambiente_production": {
        "label": "Ambiente de producción",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Fuera de producción no hay dinero. Regla de la política v1."
      },
      "nota_ambiente_production": {
        "label": "Fuera de producción no hay dinero.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Nota corta de la regla."
      },
      "regla_corte_vigente": {
        "label": "Corte vigente",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Un ensayo nunca se presenta como el corte del mes. Regla de la política v1."
      },
      "nota_corte_vigente": {
        "label": "Un ensayo nunca se presenta como el corte del mes.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Nota corta de la regla."
      },
      "regla_plan_completo": {
        "label": "Plan completo",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Todas las cuentas del plan tienen su lectura. Regla de la política v1."
      },
      "nota_plan_completo": {
        "label": "Todas las cuentas del plan tienen su lectura.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Nota corta de la regla."
      },
      "regla_sin_cuentas_de_prueba": {
        "label": "Sin cuentas de prueba",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Ninguna cuenta de prueba entra al plan. Regla de la política v1."
      },
      "nota_sin_cuentas_de_prueba": {
        "label": "Ninguna cuenta de prueba entra al plan.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Nota corta de la regla."
      },
      "regla_tope_cuentas": {
        "label": "Tope de cuentas",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Impide un error de escala. Regla de la política v1."
      },
      "nota_tope_cuentas": {
        "label": "Impide un error de escala.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Nota corta de la regla."
      },
      "regla_tope_monto": {
        "label": "Tope de monto",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Impide un error de escala. Regla de la política v1."
      },
      "nota_tope_monto": {
        "label": "Impide un error de escala.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Nota corta de la regla."
      },
      "regla_tolerancia_baja": {
        "label": "Baja contra el ensayo",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Gente que pagó entre el conteo y la escritura. Regla de la política v1."
      },
      "nota_tolerancia_baja": {
        "label": "Gente que pagó entre el conteo y la escritura.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Nota corta de la regla."
      },
      "regla_tolerancia_sube": {
        "label": "Sube contra el ensayo",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Lo que no estaba en lo que se vio. Regla de la política v1."
      },
      "nota_tolerancia_sube": {
        "label": "Lo que no estaba en lo que se vio.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Nota corta de la regla."
      },
      "regla_monto_estable": {
        "label": "Monto por cuenta estable",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Lo que se escribe es el monto decidido. Regla de la política v1."
      },
      "nota_monto_estable": {
        "label": "Lo que se escribe es el monto decidido.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Nota corta de la regla."
      },
      "regla_ventana_horaria": {
        "label": "Ventana horaria",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. El recargo va antes del aviso. Regla de la política v1."
      },
      "nota_ventana_horaria": {
        "label": "El recargo va antes del aviso.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Nota corta de la regla."
      },
      "regla_huella_presente": {
        "label": "Firma del conteo",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Presente y vigente: lo que se escribe es lo que se contó. Regla de la política v1."
      },
      "nota_huella_presente": {
        "label": "Presente y vigente: lo que se escribe es lo que se contó.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Nota corta de la regla."
      },
      "regla_cuentas_no_vistas": {
        "label": "Cuentas que el ensayo no vio",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Cuentas que entran a la escritura sin haber salido en el ensayo. Regla de la política v1."
      },
      "nota_cuentas_no_vistas": {
        "label": "Cuentas que entran a la escritura sin haber salido en el ensayo.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Nota corta de la regla."
      },
      "reglas_titulo": {
        "label": "Reglas de la política",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Todas o ninguna: el recargo se escribe solo si cada regla cumple."
      },
      "estado_cumple": {
        "label": "Cumple",
        "tono": "good",
        "trad": "Vobo del dueño 2026-10-12. La regla se cumple con lo que se leyó."
      },
      "estado_no_cumple": {
        "label": "No cumple",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-12. La regla no se cumple: no se escribe."
      },
      "estado_por_contar": {
        "label": "Por contar",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Todavía no hay cifra leída: esto NO significa que cumpla."
      },
      "col_regla": {
        "label": "Regla",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Nombre de la regla."
      },
      "col_estado": {
        "label": "Estado",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Si la regla cumple."
      },
      "col_cifra": {
        "label": "Cifra leída",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Lo que se leyó para comparar con el límite."
      },
      "col_limite": {
        "label": "Límite de la política",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Contra qué se compara. «Ejemplo» = cifra sin medir."
      },
      "sin_cifra": {
        "label": "—",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Sin cifra leída: no es cero."
      },
      "limite_ejemplo": {
        "label": "ejemplo",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-12. Cifra de ejemplo, todavía sin medir."
      },
      "resumen_reglas": {
        "label": "cumplen · no cumplen · por contar",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Resumen de las reglas. Todas o ninguna."
      },
      "resumen_se_escribe_no": {
        "label": "No se escribe: faltan reglas por cumplir",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-12. Mientras haya una regla que no cumple o por contar, no se escribe."
      },
      "resumen_se_escribe_si": {
        "label": "Todas las reglas cumplen",
        "tono": "good",
        "trad": "Vobo del dueño 2026-10-12. Todas las reglas cumplen con lo leído."
      },
      "ensayo_titulo": {
        "label": "Lo que dice Books hoy",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Lo que se contaría en Books hoy, sin escribir."
      },
      "ensayo_vacio": {
        "label": "Todavía no se ha contado contra Books.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Contar lee Books en vivo (cientos de lecturas de una cuota compartida por todo Youcom) y lo pide un supervisor con «Volver a contar»; no es un cero."
      },
      "huella_titulo": {
        "label": "Firma del conteo",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. La firma de lo que se contó: lo que se escribe tiene que ser lo que se contó."
      },
      "huella_vacia": {
        "label": "Sin conteo: no hay firma.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Sin conteo no existe huella; esto no es una huella vacía."
      },
      "escribir_titulo": {
        "label": "Escribir en Books",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. El recargo se escribe en Books, en la línea «Reconexión»."
      },
      "por_que_apagado": {
        "label": "Por qué está apagado",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. El primer motivo por el que el botón no se puede usar, y los demás."
      },
      "btn_write_first": {
        "label": "Escribir la primera cuenta",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Escribe UNA sola cuenta y la relee en Books antes de seguir."
      },
      "btn_write_surcharge": {
        "label": "Escribir el recargo",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Escribe el resto del recargo por tandas, con progreso real."
      },
      "btn_recount": {
        "label": "Volver a contar",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Cuenta de nuevo contra Books en vivo."
      },
      "btn_revert": {
        "label": "Revertir lo escrito…",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Quita lo escrito, cuenta por cuenta."
      },
      "nota_escribir": {
        "label": "Primero una sola cuenta, que se relee en Books; luego el resto por tandas, con avance real y que se detiene sola si algo falla. Revertir se hace cuenta por cuenta. Ninguna escritura se anima.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Cómo es la escritura: la primera cuenta, las tandas y la reversión existen y se encienden con vobo; el texto anterior hablaba de «cuando exista»."
      },
      "motivo_no_session": {
        "label": "No hay sesión: no se puede firmar. Nada que mueva dinero o servicio se ofrece sin un nombre detrás.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Motivo por el que el botón está apagado."
      },
      "motivo_legacy_cut": {
        "label": "Es de antes del corte del 24-ago-2026 15:13: no se reprocesa.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Motivo por el que el botón está apagado."
      },
      "motivo_flag_off": {
        "label": "La bandera está apagada. Se enciende en la configuración del servicio, con visto bueno de Dirección.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Motivo por el que el botón está apagado."
      },
      "motivo_switch_not_armed": {
        "label": "El interruptor de emergencia no está armado: sin registro o pulsado, no se escribe.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Motivo por el que el botón está apagado."
      },
      "motivo_waiting_parallel": {
        "label": "Espera el paralelo: todavía no está la fotografía del módulo para este corte (la toma el runner antes de que abra la ventana).",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. Consecuencia de D-A: con el paralelo automático encendido, ni la primera cuenta ni las tandas escriben antes de que exista la fotografía del paralelo de ese corte."
      },
      "motivo_not_counted": {
        "label": "Todavía no hay un conteo vigente contra Books.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Motivo por el que el botón está apagado."
      },
      "motivo_write_not_built": {
        "label": "Escribir desde esta pantalla todavía no está disponible: llega en una entrega aparte.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Motivo por el que el botón está apagado."
      },
      "motivo_supervisor_only": {
        "label": "Solo un supervisor puede volver a contar: cuesta lecturas de una cuota que comparte todo Youcom.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Motivo por el que «Volver a contar» está apagado."
      },
      "motivo_count_running": {
        "label": "Ya hay un conteo en curso. Espera a que termine.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Solo corre un conteo a la vez."
      },
      "motivo_daily_cap": {
        "label": "Ya se hicieron los conteos permitidos hoy. Mañana se puede volver a contar.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Tope diario de conteos (6 es un ejemplo, configurable): cada conteo gasta cientos de lecturas de la cuota de Zoho."
      },
      "motivo_no_cut": {
        "label": "No hay un corte elegido: no hay plan que contar.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Motivo por el que «Volver a contar» está apagado."
      },
      "motivo_not_configured": {
        "label": "Books no está configurado en este servicio: no hay con qué preguntar. No se gastó ningún conteo.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Sin credencial de lectura no se cuenta; no es un cero."
      },
      "motivo_no_accounts": {
        "label": "El plan salió vacío: no hay cuentas que contar ni huella que firmar.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Un conteo sin cuentas no deja huella."
      },
      "motivo_interrupted": {
        "label": "El conteo se interrumpió y no dejó huella. Se puede volver a contar.",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-12. Un conteo a medias no vale: no habilita escribir."
      },
      "motivo_count_error": {
        "label": "El conteo falló a medias y no dejó huella. Se puede volver a contar.",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-12. Un conteo a medias no vale: no habilita escribir."
      },
      "conteo_corriendo": {
        "label": "Contando contra Books…",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. El conteo corre en segundo plano; se puede salir de la pantalla sin perderlo."
      },
      "conteo_lecturas": {
        "label": "lecturas hechas",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Lecturas reales a Books hasta ahora."
      },
      "conteo_listo": {
        "label": "Conteo terminado",
        "tono": "good",
        "trad": "Vobo del dueño 2026-10-12. Recorrió todo el plan."
      },
      "conteo_fallido": {
        "label": "El conteo no terminó",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-12. No dejó huella."
      },
      "conteo_confirmar_titulo": {
        "label": "Volver a contar contra Books",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Diálogo de costo antes de contar."
      },
      "conteo_confirmar_costo": {
        "label": "Esto lee en Books la factura de cada cuenta del plan, una por una, de una cuota que comparte todo Youcom. No escribe nada en Books ni en la base.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. El costo, dicho en lecturas."
      },
      "conteo_confirmar_tope": {
        "label": "Conteos de hoy",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Se muestra «n de tope»."
      },
      "conteo_confirmar_si": {
        "label": "Contar ahora",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Confirma el conteo."
      },
      "conteo_confirmar_no": {
        "label": "Cancelar",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Cierra el diálogo sin contar."
      },
      "ensayo_contada": {
        "label": "Contada",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Hora de México en que terminó el conteo."
      },
      "ensayo_vigente_hasta": {
        "label": "Vigente hasta",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. El conteo vale 30 minutos (decidido por Dirección)."
      },
      "ensayo_vencido": {
        "label": "El último conteo ya venció (vale 30 minutos): hay que volver a contar.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-12. Un conteo vencido no habilita nada y no se muestra como cifra vigente."
      },
      "ensayo_planeadas": {
        "label": "Cuentas planeadas",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Lo que el plan de la réplica quería cobrar."
      },
      "ensayo_books_contesto": {
        "label": "Books contestó",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Planeadas menos «no pude preguntar»."
      },
      "ensayo_salieron": {
        "label": "Saldo en cero o a favor",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Books dice saldo cero en esas facturas."
      },
      "ensayo_siguen": {
        "label": "Siguen cumpliendo",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Cuentas que Books confirma y que entrarían al lote."
      },
      "ensayo_sin_respuesta": {
        "label": "No pude preguntar",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-12. Va APARTE: no es «no hay» ni cero. Quedan fuera de la huella."
      },
      "ensayo_dinero": {
        "label": "Monto",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Cuentas que siguen × recargo por cuenta."
      },
      "ensayo_anuladas": {
        "label": "Anuladas en Books",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Anulada no es deuda."
      },
      "ensayo_con_recargo": {
        "label": "Ya traen recargo",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Books ya tiene la línea de reconexión."
      },
      "ensayo_fuera_candado": {
        "label": "No cumplen las condiciones",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. La factura no cumple el candado de la objetivo."
      },
      "huella_valor_nota": {
        "label": "Firma de las cuentas que Books contestó. Lo que se escriba tiene que ser lo que se contó aquí.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. La huella se calcula sobre las cuentas que Books contestó."
      },
      "motivo_revert_not_built": {
        "label": "Revertir desde esta pantalla todavía no está disponible: llega en una entrega aparte.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Motivo por el que el botón está apagado."
      },
      "motivo_no_census": {
        "label": "Falta el censo previo del retiro sobre el corte, con control positivo. Se hace una vez antes de encender.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Motivo por el que el botón está apagado."
      },
      "motivo_withdraw_not_built": {
        "label": "Retirar desde esta pantalla todavía no está disponible: llega en una entrega aparte.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Motivo por el que el botón está apagado."
      },
      "carril_titulo": {
        "label": "Recargos escritos en este corte",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Lo que hoy vive en «Métricas de corte»."
      },
      "carril_aplicados": {
        "label": "Aplicados",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Recargos escritos en Books para este corte."
      },
      "carril_enviando": {
        "label": "Enviando",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-12. Si no fuera 0: no se sabe si Books lo aplicó. Se coteja a mano."
      },
      "carril_condonados": {
        "label": "Condonados",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Recargos retirados después de escribirse."
      },
      "carril_tasa": {
        "label": "Tasa de condonación",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Condonados entre aplicados. «—» no es 0 %: aún no hay nada que medir."
      },
      "carril_omitidos": {
        "label": "Omitidos",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. La factura ya traía la línea de reconexión: no se escribió otra."
      },
      "carril_errores": {
        "label": "Con error",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-12. Books rechazó la escritura."
      },
      "carril_primera": {
        "label": "1.ª pasada",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Recargos escritos el día del corte o antes."
      },
      "carril_segunda": {
        "label": "2.ª pasada",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Recargos escritos después del día del corte (las caídas)."
      },
      "carril_aun_nada": {
        "label": "todavía no se escribe",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Aún no hay recargos escritos en este corte."
      },
      "kpi_candidatas": {
        "label": "Candidatas a retiro",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Cuántas cuentas la réplica propone como candidatas."
      },
      "kpi_retirables": {
        "label": "Retirables (réplica)",
        "tono": "good",
        "trad": "Vobo del dueño 2026-10-12. Candidatas que el sistema podría retirar solo: con línea en Books o solo de registro."
      },
      "kpi_trabadas": {
        "label": "Trabadas por sobrepago (réplica)",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-12. Quitar el recargo dejaría saldo a favor: lo resuelve una persona."
      },
      "kpi_tope": {
        "label": "Tope propio del retiro",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Cuántas cuentas como máximo retira una corrida."
      },
      "kpi_sin_tope": {
        "label": "sin tope",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. No hay tope configurado."
      },
      "causa_todas": {
        "label": "Todas",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Todas las causas."
      },
      "causa_pago_a_tiempo": {
        "label": "Pago a tiempo descubierto después",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. El cliente pagó antes de la frontera y se le cobró el recargo igual."
      },
      "causa_exencion_resuelta_en_cero": {
        "label": "Exención resuelta en $0.00",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. La cuenta tenía exención y la resolvió con saldo cero."
      },
      "causa_linea_ausente": {
        "label": "Línea ya ausente en Books",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. El recargo ya no está en la factura: solo se alinea el registro."
      },
      "col_cuenta": {
        "label": "Cuenta",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Número de cliente."
      },
      "col_expediente": {
        "label": "Expediente",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. El expediente de evidencia de la cuenta."
      },
      "col_causa": {
        "label": "Causa",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Por qué procede retirarlo, según la réplica."
      },
      "col_factura": {
        "label": "Factura",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. La factura que lleva el recargo."
      },
      "col_recargo": {
        "label": "Recargo",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. El monto del recargo."
      },
      "col_saldo_despues": {
        "label": "Saldo después (réplica)",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Saldo de la réplica menos el recargo; entre paréntesis es saldo a favor."
      },
      "estado_retirable": {
        "label": "Retirable (réplica)",
        "tono": "good",
        "trad": "Vobo del dueño 2026-10-12. El sistema puede quitar la línea."
      },
      "estado_solo_registro": {
        "label": "Solo registro (réplica)",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. La línea ya no está: solo se alinea el registro."
      },
      "estado_trabada": {
        "label": "Trabada (réplica)",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-12. Quitar el recargo dejaría saldo a favor: la resuelve una persona."
      },
      "btn_withdraw": {
        "label": "Retirar recargos",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Quita el recargo de las retirables en Books."
      },
      "reglas_retiro_titulo": {
        "label": "Reglas del retiro",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Las condiciones para que el sistema retire solo."
      },
      "regla_retiro_withdraw_flag": {
        "label": "Bandera propia del retiro",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Bandera y tope propios, separados del recargo."
      },
      "regla_retiro_own_cap": {
        "label": "Tope propio",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Cuántas retira como máximo una corrida."
      },
      "regla_retiro_line_still_there": {
        "label": "La línea sigue en la factura viva (relectura)",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Se comprueba en Books al retirar."
      },
      "regla_retiro_no_overpayment": {
        "label": "Sin sobrepago (si no, trabada)",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Se confirma en Books al retirar."
      },
      "regla_retiro_books_answered": {
        "label": "Books contestó",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Se confirma en Books al retirar."
      },
      "regla_retiro_prior_census": {
        "label": "Censo previo con control positivo",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Un paso que se hace una sola vez antes de encender."
      },
      "sin_dato_nota": {
        "label": "sin dato en la réplica: se pregunta a Books, no se cuenta como candidata ni como descartada",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-12. La réplica no alcanzó para decidir; Books lo dirá."
      },
      "trabadas_titulo": {
        "label": "casos trabados por sobrepago, según la réplica",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-12. Quitar el recargo dejaría saldo a favor y Books no acepta un total menor a lo ya pagado. El sistema nunca los resuelve solo (V-4)."
      },
      "trabadas_necesita_persona": {
        "label": "Necesita persona",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-12. Una persona decide qué hacer."
      },
      "col_sobrepago": {
        "label": "Sobrepago (réplica)",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Cuánto se pasó."
      },
      "camino_manual": {
        "label": "El camino manual: 1. Revisar la factura y el pago en Books (en vivo, no la réplica). 2. Borrar y recrear el pago: cambia el folio del recibo y exige el visto bueno de una persona. 3. Registrar el resultado.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Qué hace la persona con un caso trabado."
      },
      "sin_candidatas": {
        "label": "La réplica no propone ninguna candidata a retiro en este corte.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. No hay candidatas según la réplica; esto no sustituye la confirmación en Books."
      },
      "sin_lectura_exencion": {
        "label": "No se pudo leer el dinero de la exención en la réplica: esas cuentas salen «sin dato».",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-12. Falló una lectura de la base."
      },
      "no_leida": {
        "label": "No se pudo leer esta pantalla. Reintenta; si sigue igual, avisa a Sistemas.",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-12. La lectura falló; esto NO significa que no haya nada."
      },
      "sin_corte": {
        "label": "Todavía no hay un corte.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. El calendario crea el corte del mes el día 04."
      },
      "estado_sin_casos": {
        "label": "Sin casos",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. No hay nada que evaluar en esta regla; no es «cumple»."
      },
      "conteo_confirmar_cifras": {
        "label": "Unas {lecturas} lecturas: unos {minutos} minutos ({por_minuto} por minuto, para dejar cuota a las demás pantallas).",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. El costo, dicho con cifras que salen del servidor."
      },
      "ensayo_de_otro_corte": {
        "label": "El conteo vigente es del corte del {fecha}, no de este: vuelve a contar para este corte.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-12. Un conteo de otro corte no habla en esta pantalla."
      },
      "huella_parcial_nota": {
        "label": "Firma parcial: faltaron {n} cuentas por contestar. Quedan fuera de la firma y aparte; no es «no hay».",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-12. La firma cubre solo las cuentas que Books contestó."
      },
      "resumen_reglas_cuenta": {
        "label": "{cumplen} cumplen · {no_cumplen} no cumplen · {por_contar} por contar. Todas o ninguna.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Resumen de las reglas."
      },
      "unidad_cuentas": {
        "label": "{n} cuenta(s)",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Unidad del límite de una regla."
      },
      "unidad_pct": {
        "label": "{n} %",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Unidad del límite de una regla."
      },
      "kpi_candidatas_sub": {
        "label": "{partes} por causa",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Desglose de las candidatas."
      },
      "kpi_retirables_sub": {
        "label": "{con_linea} con línea en Books ({monto}) y {solo_registro} solo de registro",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Desglose de los retirables."
      },
      "kpi_trabadas_sub": {
        "label": "una persona decide; {monto} de recargo en juego",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Lo que está en juego en las trabadas."
      },
      "kpi_tope_sub": {
        "label": "cuentas por corrida",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Unidad del tope."
      },
      "kpi_tope_cero": {
        "label": "0: apagado",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Con la bandera apagada el tope es 0; no es un límite real."
      },
      "btn_withdraw_n": {
        "label": "Retirar {n} recargos",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. El botón con la cuenta de lo que retiraría."
      },
      "error_edicion": {
        "label": "El módulo de edición no está cargado: no se puede contar desde aquí. Recarga el panel.",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-12. Aviso cuando falta un módulo del panel."
      },
      "conteo_que_se_pedia": {
        "label": "El conteo",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Sujeto de los mensajes de error del diálogo."
      },
      "paginacion": {
        "label": "de",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Posición en la lista."
      },
      "motivo_not_authorised": {
        "label": "Tu rol no puede escribir recargos. Lo hacen operadores, supervisores y Dirección.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-13. Motivo por el que «Escribir la primera cuenta» está apagado, o por el que una escritura se detuvo (lo manda el servidor)."
      },
      "motivo_pass_not_supported": {
        "label": "Por ahora solo se escribe la primera pasada; la segunda llega con las tandas.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-13. Motivo por el que «Escribir la primera cuenta» está apagado, o por el que una escritura se detuvo (lo manda el servidor)."
      },
      "motivo_cap_zero": {
        "label": "La bandera del recargo está encendida pero sin tope: sin un tope explícito esto es ensayo y no se escribe.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-13. Motivo por el que «Escribir la primera cuenta» está apagado, o por el que una escritura se detuvo (lo manda el servidor)."
      },
      "motivo_not_current": {
        "label": "Este corte ya no es el vigente: no se escribe en un corte que se cerró.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-13. Motivo por el que «Escribir la primera cuenta» está apagado, o por el que una escritura se detuvo (lo manda el servidor)."
      },
      "motivo_count_persistence_off": {
        "label": "Este servicio no está guardando los conteos, así que no hay un conteo firmado que escribir.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-13. Motivo por el que «Escribir la primera cuenta» está apagado, o por el que una escritura se detuvo (lo manda el servidor)."
      },
      "motivo_no_count": {
        "label": "Todavía no hay un conteo guardado de este corte. Un supervisor tiene que volver a contar.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-13. Motivo por el que «Escribir la primera cuenta» está apagado, o por el que una escritura se detuvo (lo manda el servidor)."
      },
      "motivo_fingerprint_expired": {
        "label": "El conteo ya venció (vale 30 minutos). Hay que volver a contar.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-13. Motivo por el que «Escribir la primera cuenta» está apagado, o por el que una escritura se detuvo (lo manda el servidor)."
      },
      "motivo_count_corrupt": {
        "label": "El conteo guardado no coincide con su firma, así que no se usa. Hay que volver a contar.",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-13. Motivo por el que «Escribir la primera cuenta» está apagado, o por el que una escritura se detuvo (lo manda el servidor)."
      },
      "motivo_fingerprint_changed": {
        "label": "La firma que viste ya no es la del conteo vigente. Se actualizó la pantalla: míralo otra vez y confirma de nuevo.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-13. Motivo por el que «Escribir la primera cuenta» está apagado, o por el que una escritura se detuvo (lo manda el servidor)."
      },
      "motivo_rules_red": {
        "label": "Alguna regla de la política no se cumple con este conteo. Revisa las reglas de arriba.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-13. Motivo por el que «Escribir la primera cuenta» está apagado, o por el que una escritura se detuvo (lo manda el servidor)."
      },
      "motivo_no_constancia": {
        "label": "No hay una política aprobada o el registro del ciclo está apagado: sin constancia no se escribe.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-13. Motivo por el que «Escribir la primera cuenta» está apagado, o por el que una escritura se detuvo (lo manda el servidor)."
      },
      "motivo_already_running": {
        "label": "Ya hay una escritura de este corte en curso. Espera a que termine.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-13. Motivo por el que «Escribir la primera cuenta» está apagado, o por el que una escritura se detuvo (lo manda el servidor)."
      },
      "motivo_books_unanswered": {
        "label": "Books no contestó cuando se le preguntó por la factura. Vuelve a intentarlo en un momento.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-13. Motivo por el que «Escribir la primera cuenta» está apagado, o por el que una escritura se detuvo (lo manda el servidor)."
      },
      "motivo_first_not_eligible": {
        "label": "La primera factura del conteo ya no cumple en Books: cambió desde que se contó. Vuelve a contar.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-13. Motivo por el que «Escribir la primera cuenta» está apagado, o por el que una escritura se detuvo (lo manda el servidor)."
      },
      "motivo_writer_not_configured": {
        "label": "Este servicio no tiene la credencial para escribir en Books.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-13. Motivo por el que «Escribir la primera cuenta» está apagado, o por el que una escritura se detuvo (lo manda el servidor)."
      },
      "motivo_payers_unreadable": {
        "label": "No se pudo comprobar quién pagó a tiempo, y sin eso no se escribe.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-13. Motivo por el que «Escribir la primera cuenta» está apagado, o por el que una escritura se detuvo (lo manda el servidor)."
      },
      "motivo_books_rejected": {
        "label": "Books rechazó la escritura.",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-13. Motivo por el que «Escribir la primera cuenta» está apagado, o por el que una escritura se detuvo (lo manda el servidor)."
      },
      "motivo_books_uncertain": {
        "label": "No se sabe si Books recibió la escritura.",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-13. Motivo por el que «Escribir la primera cuenta» está apagado, o por el que una escritura se detuvo (lo manda el servidor)."
      },
      "motivo_first_not_applied": {
        "label": "La escritura no quedó registrada como aplicada.",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-13. Motivo por el que «Escribir la primera cuenta» está apagado, o por el que una escritura se detuvo (lo manda el servidor)."
      },
      "motivo_reread_missing_line": {
        "label": "Se escribió, pero al releer la factura en Books no aparece la línea del recargo.",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-13. Motivo por el que «Escribir la primera cuenta» está apagado, o por el que una escritura se detuvo (lo manda el servidor)."
      },
      "motivo_reread_total_mismatch": {
        "label": "Se escribió, pero el total de la factura no subió exactamente el monto del recargo.",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-13. Motivo por el que «Escribir la primera cuenta» está apagado, o por el que una escritura se detuvo (lo manda el servidor)."
      },
      "motivo_already_written": {
        "label": "La primera cuenta de este corte ya está escrita; no se escribe otra vez.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-13. Motivo por el que «Escribir la primera cuenta» está apagado, o por el que una escritura se detuvo (lo manda el servidor)."
      },
      "motivo_not_checkable": {
        "label": "No se pudo comprobar si se puede escribir (falló una lectura). Recarga; si sigue igual, avisa a Sistemas.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-13. Motivo por el que «Escribir la primera cuenta» está apagado, o por el que una escritura se detuvo (lo manda el servidor)."
      },
      "primera_titulo": {
        "label": "Escribir la primera cuenta",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Título de la confirmación de dinero."
      },
      "primera_intro": {
        "label": "Esto escribe en Books con dinero real, en una sola factura. El resto del recargo no se toca.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Lo primero que se lee en la confirmación."
      },
      "primera_conteo": {
        "label": "Conteo que se firma: {cuentas} cuentas ({facturas} facturas), {dinero} en total.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Las cifras salen del conteo vigente que el servidor mandó."
      },
      "primera_firma": {
        "label": "Firma del conteo: {huella}. Si cambió desde que la viste, no se escribe.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-13. La firma que viaja con la petición."
      },
      "primera_constancia": {
        "label": "Antes de escribir queda una constancia con folio CT-…; con ese folio se busca esta escritura después.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. La constancia viva se guarda antes del PUT."
      },
      "primera_que": {
        "label": "Se agrega la línea «Reconexión» de {monto} a UNA factura: la primera del conteo. Antes de escribir se vuelve a leer esa factura en Books para confirmar que sigue cumpliendo.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Renglón «Qué cambia»."
      },
      "primera_cuanto_detalle": {
        "label": "en una sola factura; su total sube exactamente esa cantidad",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Renglón «Por cuánto»."
      },
      "primera_aquien": {
        "label": "A la cuenta de esa factura (su número se muestra al terminar). Las otras {otras} cuentas del conteo no se tocan.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Renglón «A quién»."
      },
      "primera_reversible": {
        "label": "Hoy se revierte a mano en Books, quitando la línea de la factura. El botón para revertir por cuenta llega después.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-13. Renglón «¿Se puede deshacer?»."
      },
      "primera_verbo": {
        "label": "Escribir",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. El botón de la confirmación es esta acción más el monto."
      },
      "primera_enviando": {
        "label": "Escribiendo…",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Texto del botón mientras escribe."
      },
      "primera_que_se_pedia": {
        "label": "La escritura",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Sujeto de los mensajes de error genéricos."
      },
      "primera_sin_firma": {
        "label": "Esta pantalla no trae la firma del conteo, y sin ella no se escribe. Recárgala.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-13. El botón estaba disponible pero faltó el ensayo."
      },
      "error_edicion_escribir": {
        "label": "El módulo de edición no está cargado: no se puede escribir desde aquí. Recarga el panel.",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-13. Aviso cuando falta un módulo del panel."
      },
      "primera_hecho_titulo": {
        "label": "Cuenta escrita",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Cabecera del resultado."
      },
      "primera_hecho_ya_titulo": {
        "label": "Ya estaba escrita",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Cabecera cuando se repite la petición."
      },
      "primera_hecho_ya": {
        "label": "Esta cuenta ya estaba escrita; no se escribió otra vez.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Idempotencia: la misma cuenta, sin otro PUT."
      },
      "primera_hecho_frase": {
        "label": "Factura {factura}, cuenta {cuenta}.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Qué se escribió."
      },
      "primera_monto": {
        "label": "Recargo escrito",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Rótulo del monto escrito."
      },
      "primera_total_antes": {
        "label": "Total de la factura antes",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Lo que Books tenía antes de escribir."
      },
      "primera_total_despues": {
        "label": "Total de la factura después",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Lo que Books dice al releer."
      },
      "primera_ref_ct": {
        "label": "Constancia",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Folio CT-… copiable."
      },
      "primera_ref_factura": {
        "label": "Factura",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Número de factura copiable."
      },
      "primera_ref_cuenta": {
        "label": "Cuenta",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Número de cuenta copiable."
      },
      "primera_nada_cola": {
        "label": "No se escribió nada. Se actualizó la pantalla: míralo otra vez antes de insistir.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-13. Cola de los fallos que ocurren antes de escribir."
      },
      "primera_incierto_cola": {
        "label": "Se coteja en Books antes de seguir: no vuelvas a intentarlo mientras tanto.",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-13. Cola de los fallos donde no se puede afirmar que no se escribió."
      },
      "primera_constancia_ref": {
        "label": "Constancia {ct}.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. El folio para buscar la escritura."
      },
      "motivo_revert_flag_off": {
        "label": "Revertir desde esta pantalla todavía no está encendido: se enciende con el visto bueno de Dirección.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-13. Motivo por el que «Revertir lo escrito» está apagado: su bandera propia sigue apagada."
      },
      "motivo_not_production": {
        "label": "Esta copia del panel no es la de producción: aquí no se revierte nada en Books.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-13. Motivo por el que «Revertir lo escrito» está apagado: el ambiente no es producción ni Zoho de pruebas."
      },
      "motivo_nothing_to_revert": {
        "label": "No hay nada escrito en este corte que se pueda revertir.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-13. Motivo por el que «Revertir lo escrito» está apagado: ninguna fila «aplicada» con su línea asentada."
      },
      "motivo_list_changed": {
        "label": "La lista cambió desde que la viste. Ábrela otra vez y revísala antes de revertir.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-13. Motivo de rechazo: la huella de la lista mostrada ya no es la de la lista actual."
      },
      "motivo_no_reason": {
        "label": "Escribe el motivo (al menos 5 letras): queda anotado en cada cuenta que se revierta.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-13. Motivo de rechazo: falta el motivo escrito o es demasiado corto."
      },
      "motivo_personal_data": {
        "label": "El motivo no debe llevar correos ni teléfonos de clientes.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-13. Motivo de rechazo: el motivo trae algo con pinta de correo o teléfono."
      },
      "motivo_bad_list": {
        "label": "La lista está vacía o repite una cuenta.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-13. Motivo de rechazo: lista vacía, repetida o con folios que no son números."
      },
      "motivo_too_many": {
        "label": "Se pueden revertir hasta 50 cuentas por vez.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-13. Motivo de rechazo: más de 50 folios en una petición."
      },
      "motivo_not_revertible": {
        "label": "Alguna cuenta de la lista ya no está como «escrita»: no se revirtió ninguna. Se coteja en Books antes de seguir.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-13. Motivo de rechazo: una fila no existe o ya no está «aplicada» con su línea asentada; no se revierte ninguna."
      },
      "motivo_other_cut": {
        "label": "Alguna cuenta de la lista es de otro corte: no se revirtió ninguna.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-13. Motivo de rechazo: una fila es de otro corte."
      },
      "motivo_revert_failed": {
        "label": "Se detuvo en una cuenta: lo anterior quedó revertido y lo demás no se tocó. Se coteja en Books antes de seguir.",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-13. Motivo de paro: la primera reversión que falla detiene la petición."
      },
      "revert_no_leida": {
        "label": "No se pudo leer la lista de lo escrito. Recarga la pantalla; si sigue igual, avisa a Sistemas.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-13. Cuando la lista de lo revertible no se pudo leer."
      },
      "revert_titulo": {
        "label": "Revertir lo escrito",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Título del diálogo de reversión."
      },
      "revert_intro": {
        "label": "Esto quita de Books, con dinero real, la línea de recargo que escribimos en cada factura que marques. Nada más se toca.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Lo primero que se lee en el diálogo de reversión."
      },
      "revert_paros": {
        "label": "Se revierte una cuenta a la vez y en orden. Si alguna falla, se detiene ahí: lo anterior queda revertido y lo demás no se toca.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-13. Cuándo se detiene sola la reversión."
      },
      "revert_no_vuelve": {
        "label": "Una cuenta revertida no vuelve sola al siguiente recargo de este corte; para escribirla otra vez hace falta una nueva escritura autorizada.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Qué pasa con una cuenta después de revertirla."
      },
      "revert_limite": {
        "label": "Puedes marcar hasta {max} cuentas por vez.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Máximo por petición (lo impone el servidor)."
      },
      "revert_motivo_etiqueta": {
        "label": "Por qué se revierte — queda anotado en cada cuenta con tu nombre",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Rótulo del motivo escrito, obligatorio."
      },
      "revert_motivo_ayuda": {
        "label": "Escribe el motivo (al menos 5 letras). Sin datos de clientes: ni correos ni teléfonos.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Ayuda del motivo."
      },
      "revert_motivo_placeholder": {
        "label": "Por ejemplo: el pago llegó a tiempo y no correspondía el recargo",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Ejemplo de motivo."
      },
      "revert_verbo": {
        "label": "Revertir",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Botón de confirmar cuando aún no hay cuentas marcadas."
      },
      "revert_enviando": {
        "label": "Revirtiendo…",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. El botón mientras el servidor revierte."
      },
      "revert_que_se_pedia": {
        "label": "La reversión",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Sujeto de los mensajes de error del diálogo."
      },
      "revert_sin_seleccion": {
        "label": "Marca las cuentas que quieres revertir.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Mientras no hay ninguna cuenta marcada."
      },
      "revert_total": {
        "label": "Cuentas escritas en este corte: {total}.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. El total lo calcula el servidor sobre todas las cuentas escritas del corte, no sobre la página."
      },
      "revert_sel_visibles": {
        "label": "Seleccionar las visibles",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Marca solo las cuentas de la página que se ve."
      },
      "revert_sel_todo": {
        "label": "Seleccionar todo ({n})",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Solo existe cuando todas las cuentas escritas caben en la página."
      },
      "revert_sel_ninguna": {
        "label": "Quitar selección",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Desmarca todo."
      },
      "revert_sin_todo": {
        "label": "Hay {total} cuentas escritas y aquí se ven {n}: no existe «seleccionar todo». Marca las visibles de cada página; se revierten hasta {max} por vez.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Por qué no hay «seleccionar todo» cuando el total es mayor que la página."
      },
      "revert_tope": {
        "label": "Ya marcaste {max}, el máximo por vez. Quita alguna para marcar otra.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-13. Se llegó al máximo por petición."
      },
      "revert_contador": {
        "label": "{n} seleccionadas · suma de la selección: {monto}",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Contador de lo marcado; la suma es solo de lo marcado."
      },
      "revert_que": {
        "label": "Se quita de Books la línea «Reconexión» de las {n} facturas marcadas. El total de cada una baja {por_cuenta}.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Renglón «Qué cambia» de la confirmación."
      },
      "revert_por_cuenta": {
        "label": "{monto} por cuenta",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Cuando todas las marcadas llevan el mismo recargo."
      },
      "revert_por_cuenta_varias": {
        "label": "lo que se le sumó (no es igual en todas)",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Cuando los montos marcados difieren."
      },
      "revert_cuanto_detalle": {
        "label": "suma de las {n} cuentas marcadas",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Renglón «Por cuánto» de la confirmación."
      },
      "revert_aquien": {
        "label": "Las cuentas {cuentas}.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Renglón «A quién»: números de cuenta."
      },
      "revert_aquien_mas": {
        "label": " y {n} más",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Cuando son más cuentas de las que caben en el renglón."
      },
      "revert_reversible": {
        "label": "Revertir no se deshace desde aquí: para volver a escribir el recargo hace falta otra escritura autorizada.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-13. Renglón «¿Se puede deshacer?» de la confirmación."
      },
      "revert_boton_una": {
        "label": "Revertir 1 cuenta ({monto})",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-13. Botón de confirmar con una cuenta marcada."
      },
      "revert_boton": {
        "label": "Revertir {n} cuentas ({monto})",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-13. Botón de confirmar con varias cuentas marcadas."
      },
      "revert_col_cuenta": {
        "label": "Cuenta",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Encabezado de columna."
      },
      "revert_col_factura": {
        "label": "Factura",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Encabezado de columna."
      },
      "revert_col_monto": {
        "label": "Monto",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Encabezado de columna."
      },
      "revert_col_ct": {
        "label": "Constancia",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Encabezado de columna: la constancia de la escritura."
      },
      "revert_sel_aria": {
        "label": "Marcar la cuenta {cuenta}, factura {factura}",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Etiqueta accesible de la casilla."
      },
      "revert_pag": {
        "label": "{desde}–{hasta} de {total}",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Paginación de la lista."
      },
      "revert_anterior": {
        "label": "← Anterior",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Página anterior."
      },
      "revert_siguiente": {
        "label": "Siguiente →",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Página siguiente."
      },
      "revert_hechas": {
        "label": "Quedaron revertidas {n} antes del paro.",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-13. Cuántas cuentas ya estaban revertidas cuando una falló."
      },
      "revert_hechas_ninguna": {
        "label": "Ninguna cuenta quedó revertida.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-13. Cuando la primera cuenta falló."
      },
      "revert_nada_cola": {
        "label": "No se revirtió ninguna cuenta.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-13. Cola de las negativas que ocurren antes de tocar Books."
      },
      "revert_hecho_titulo": {
        "label": "Reversión hecha",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Título del resultado."
      },
      "revert_hecho_frase": {
        "label": "Se quitó de Books la línea de {n} facturas.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Frase del resultado."
      },
      "revert_hecho_total": {
        "label": "{n} cuentas revertidas · {monto} menos en las facturas.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Totales del resultado."
      },
      "motivo_already_reverted": {
        "label": "La primera cuenta de este corte se revirtió: no se vuelve a escribir sola. Escribirla otra vez pide una autorización nueva.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-13. Motivo por el que «Escribir la primera cuenta» y «Escribir el recargo» están apagados: la fila de la primera cuenta quedó «revertida» (lo manda el servidor)."
      },
      "motivo_already_done": {
        "label": "Esta corrida ya terminó. Si falta algo por escribir, hay que volver a contar para poder autorizar otra.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-13. Motivo por el que «Escribir el recargo» está apagado: la última corrida terminó con este mismo conteo (lo manda el servidor)."
      },
      "motivo_recount_needed": {
        "label": "La corrida se detuvo. Para escribir lo que falta hay que volver a contar y autorizar de nuevo; con el conteo anterior no se sigue.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-13. Motivo por el que «Escribir el recargo» está apagado: la corrida se detuvo y hace falta un conteo nuevo, de después del paro (lo manda el servidor)."
      },
      "motivo_first_not_done": {
        "label": "Primero hay que escribir la primera cuenta y comprobarla en Books. Después se puede escribir el resto.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-13. Motivo por el que «Escribir el recargo» está apagado (lo manda el servidor)."
      },
      "motivo_window_closed": {
        "label": "Se cerró la ventana del día de corte (hasta las 9:30): fuera de ese horario no se escribe.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-13. Motivo de paro: la ventana del día de corte se cerró a media corrida."
      },
      "motivo_error_rate": {
        "label": "Books rechazó demasiadas escrituras en una tanda: se detuvo para no seguir escribiendo con errores.",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-13. Motivo de paro: la tasa de error de la tanda pasó el límite de la política."
      },
      "motivo_cap_reached": {
        "label": "Se llegó al tope de cuentas que permite la bandera del recargo: lo que falta no se escribió.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-13. Motivo de paro: se agotó el cupo de la corrida."
      },
      "motivo_plan_empty": {
        "label": "Al volver a leer Books ya no quedó ninguna cuenta por recargar: no hay nada que escribir.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-13. Motivo de paro: el plan vivo salió vacío."
      },
      "motivo_job_error": {
        "label": "Algo falló dentro del servidor mientras escribía. Avisa a Sistemas.",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-13. Motivo de paro: el trabajo terminó con un error interno (el servidor solo guarda el tipo de error)."
      },
      "motivo_stopped": {
        "label": "La escritura se detuvo sin decir por qué. Avisa a Sistemas.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-13. Motivo de paro cuando el servidor no mandó un código."
      },
      "resto_titulo": {
        "label": "Escribir el recargo",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Título de la confirmación de dinero de la escritura por tandas."
      },
      "resto_intro": {
        "label": "Esto escribe en Books con dinero real, factura por factura y en tandas, en las cuentas que faltan del conteo. Antes de arrancar se vuelve a leer Books en vivo y se compara con este conteo.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Lo primero que se lee en la confirmación."
      },
      "resto_paros": {
        "label": "Se detiene sola si Books rechaza una escritura o no contesta, si hay demasiados errores, si alguien pulsa el interruptor de emergencia o si se cierra la ventana del día de corte (9:30). Lo que ya se escribió se queda escrito.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-13. Cuándo se detiene la corrida por sí sola."
      },
      "resto_que": {
        "label": "Se agrega la línea «Reconexión» de {monto} a la factura de cada una de las {otras} cuentas que faltan, por tandas. Antes de cada tanda se revisa el interruptor.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Renglón «Qué cambia»."
      },
      "resto_cuanto_detalle": {
        "label": "como máximo, en {otras} cuentas ({monto} por cuenta); si alguna ya no cumple al releerla en Books, se deja fuera y el total baja",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Renglón «Por cuánto»: el importe es el tope, (cuentas del conteo menos la primera) por el monto."
      },
      "resto_aquien": {
        "label": "A las otras {otras} cuentas del conteo, una factura cada una. La primera cuenta, que ya se escribió, no se vuelve a tocar.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Renglón «A quién»."
      },
      "resto_reversible": {
        "label": "Hoy se revierte a mano en Books, quitando la línea de cada factura. El botón para revertir por cuenta llega después.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-13. Renglón «¿Se puede deshacer?»."
      },
      "resto_verbo": {
        "label": "Escribir hasta",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. El botón de la confirmación es esta acción más el monto máximo."
      },
      "resto_enviando": {
        "label": "Arrancando…",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Texto del botón mientras el servidor acepta el arranque."
      },
      "resto_que_se_pedia": {
        "label": "El arranque",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Sujeto de los mensajes de error genéricos."
      },
      "resto_por_que_apagado": {
        "label": "Por qué no se puede escribir el recargo",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Encabezado de la lista de motivos del botón «Escribir el recargo»."
      },
      "esc_titulo": {
        "label": "Escritura del recargo por tandas",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Título del panel de avance."
      },
      "esc_ct": {
        "label": "Constancia",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Rótulo del folio CT-… copiable de la corrida."
      },
      "esc_estado_en_curso": {
        "label": "Escribiendo",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Sello del estado de la corrida: viva y con latido."
      },
      "esc_estado_sin_latido": {
        "label": "El proceso no responde",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-13. Sello del estado: la última señal de la corrida es vieja; no se sabe si sigue."
      },
      "esc_estado_hecho": {
        "label": "Terminó",
        "tono": "good",
        "trad": "Vobo del dueño 2026-10-13. Sello del estado: la corrida llegó al final sin detenerse."
      },
      "esc_estado_detenido": {
        "label": "Se detuvo",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-13. Sello del estado: la corrida se detuvo (el motivo va debajo)."
      },
      "esc_estado_no_leida": {
        "label": "No se pudo leer",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-13. Sello del estado cuando el servidor no pudo leer el avance."
      },
      "esc_frase_iniciando": {
        "label": "Arrancando: se está preparando la escritura.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Frase de estado al iniciar."
      },
      "esc_frase_contando": {
        "label": "Releyendo Books en vivo antes de escribir ({lecturas} lecturas hechas).",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Frase de estado mientras relee el plan en Books."
      },
      "esc_frase_tandas": {
        "label": "Escribiendo. Van {n} tandas terminadas; esta pantalla se actualiza sola.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Frase de estado mientras escribe."
      },
      "esc_frase_sin_latido": {
        "label": "El proceso no responde desde hace {min} min. Abajo está lo último que alcanzó a quedar registrado; no se sabe si alcanzó a escribir más. Avisa a Sistemas antes de volver a arrancar.",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-13. Frase de estado sin latido: nunca se presenta como si siguiera trabajando."
      },
      "esc_frase_hecho": {
        "label": "Terminó sin detenerse. Abajo está lo que se escribió en cada tanda.",
        "tono": "good",
        "trad": "Vobo del dueño 2026-10-13. Frase de estado al terminar bien."
      },
      "esc_frase_detenido": {
        "label": "La escritura se detuvo. Abajo dice por qué.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-13. Frase de estado al detenerse."
      },
      "esc_frase_no_leida": {
        "label": "No se pudo leer el avance. Recarga la pantalla: lo que ya se escribió no se pierde.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-13. Frase de estado cuando el servidor no pudo leer el avance."
      },
      "esc_col_tanda": {
        "label": "Tanda",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Encabezado de la tabla de tandas."
      },
      "esc_col_hora": {
        "label": "Hora (México)",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Encabezado de la tabla de tandas."
      },
      "esc_col_tamano": {
        "label": "Cuentas",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Encabezado: cuántas cuentas lleva la tanda."
      },
      "esc_col_aplicados": {
        "label": "Escritas",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Encabezado: cuántas se escribieron."
      },
      "esc_col_omitidos": {
        "label": "Omitidas",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Encabezado: cuántas se dejaron fuera por ya traer la línea."
      },
      "esc_col_errores": {
        "label": "Rechazadas",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Encabezado: cuántas rechazó Books."
      },
      "esc_col_inciertos": {
        "label": "Sin confirmar",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Encabezado: cuántas no se sabe si Books las recibió (se cotejan en Books)."
      },
      "esc_col_importe": {
        "label": "Importe",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Encabezado: importe escrito en la tanda."
      },
      "esc_tanda_n": {
        "label": "Tanda {n}",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Rótulo de cada fila."
      },
      "esc_total_aplicados": {
        "label": "Cuentas escritas (según la base)",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Total del servidor: lo aplicado en la base por las corridas de estas tandas."
      },
      "esc_total_importe": {
        "label": "Importe escrito (según la base)",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Total del servidor."
      },
      "esc_no_coincide": {
        "label": "Las tandas dicen {tandas} cuentas escritas pero la base tiene {base}. No te fíes de este avance: avisa a Sistemas.",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-13. Aviso cuando la suma de las tandas no coincide con lo que quedó en la base."
      },
      "esc_sin_tandas": {
        "label": "Todavía no termina ninguna tanda.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-13. Nota cuando aún no hay filas."
      },
      "esc_fuera": {
        "label": "{n} cuentas quedaron fuera porque Books no contestó al releerlas; no se tocaron.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. «No pude preguntar» va aparte de «no hay»."
      },
      "esc_aviso_cola": {
        "label": "Lo que ya se escribió se quedó escrito; lo demás no se tocó.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Cola del motivo de paro cuando el paro no deja nada en duda."
      }
    },
    "corte_reconexion": {
      "descripcion": {
        "label": "Las cuentas suspendidas y qué les falta para reconectarse, más las que ya se reconectaron. Esta pantalla solo lee; registrar la reconexión se sigue haciendo en «Servicio del corte».",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Explica qué muestra la pantalla y dónde se registra hoy la reconexión."
      },
      "segun_replica": {
        "label": "El saldo es el de la réplica de Books: dice a quién preguntar, no que ya se confirmó. Books en vivo concluye al registrar.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. La réplica acusa, Books concluye: aquí nada se afirma sobre el saldo sin esa confirmación."
      },
      "kpi_por_reconectar": {
        "label": "Por reconectar",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Suspendidas cuyo saldo del corte quedó en $0.00 según la réplica."
      },
      "kpi_reconectar_hoy": {
        "label": "Reconectar hoy",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-12. Suspendidas a las que se les quitó el recargo por pago a tiempo: se reconectan primero."
      },
      "kpi_suspendida": {
        "label": "Suspendidas con saldo",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Suspendidas que todavía deben algo según la réplica; no se reconectan."
      },
      "kpi_sin_lectura": {
        "label": "Sin lectura del saldo",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-12. Suspendidas cuyo saldo la réplica no dio completo. No es «con saldo» ni «saldo $0.00»."
      },
      "kpi_reconectada": {
        "label": "Reconectadas",
        "tono": "good",
        "trad": "Vobo del dueño 2026-10-12. Cuentas cuya última acción de servicio es una reconexión."
      },
      "chip_todas": {
        "label": "Todas",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Todas las cuentas suspendidas o reconectadas del corte."
      },
      "chip_reconectar_hoy": {
        "label": "Reconectar hoy (pago a tiempo)",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-12. Filtra las que están marcadas para reconectarse primero."
      },
      "chip_por_reconectar": {
        "label": "Por reconectar",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Filtra las suspendidas con saldo $0.00 según la réplica."
      },
      "chip_suspendida": {
        "label": "Suspendidas con saldo",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Filtra las suspendidas que todavía deben."
      },
      "chip_sin_lectura": {
        "label": "Sin lectura del saldo",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-12. Filtra las suspendidas sin saldo completo en la réplica."
      },
      "chip_reconectada": {
        "label": "Reconectadas",
        "tono": "good",
        "trad": "Vobo del dueño 2026-10-12. Filtra las ya reconectadas."
      },
      "col_cuenta": {
        "label": "Cuenta",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Número de cuenta del cliente."
      },
      "col_expediente": {
        "label": "Expediente",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Expediente de la evidencia de la cuenta, si lo tiene."
      },
      "col_suspendida": {
        "label": "Suspendida el",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Cuándo se asentó la última suspensión, en hora de México."
      },
      "col_saldo_corte": {
        "label": "Saldo al corte",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Lo que debía la cuenta al día del corte."
      },
      "col_saldo_replica": {
        "label": "Saldo en la réplica",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Saldo según la réplica de Books. «Sin dato» no es $0.00."
      },
      "col_en_vivo": {
        "label": "Books en vivo",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Lo que Books contesta al preguntar ahora; esta pantalla no pregunta."
      },
      "col_evidencia": {
        "label": "Evidencia de reconexión",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Si el operador confirmó que el servicio quedó físicamente reconectado."
      },
      "col_estado": {
        "label": "Estado",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. En qué punto está la cuenta."
      },
      "estado_por_reconectar": {
        "label": "Por reconectar",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Suspendida y con saldo $0.00 según la réplica."
      },
      "estado_suspendida": {
        "label": "Suspendida con saldo",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-12. Suspendida y todavía debe según la réplica."
      },
      "estado_sin_lectura": {
        "label": "Sin lectura del saldo",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-12. Suspendida; la réplica no dio su saldo completo."
      },
      "estado_reconectada": {
        "label": "Reconectada",
        "tono": "good",
        "trad": "Vobo del dueño 2026-10-12. Su última acción de servicio es una reconexión."
      },
      "prioridad_reconectar_hoy": {
        "label": "Reconectar hoy (pago a tiempo)",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-12. Se calcula al leer: el recargo se retiró por pago a tiempo y la cuenta sigue suspendida. No se guarda en ninguna parte."
      },
      "prioridad_nota": {
        "label": "Pagó a tiempo y avisó tarde: se le quitó el recargo. Reconéctala primero y confírmalo por el camino de siempre.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-12. Explica por qué la cuenta va primero."
      },
      "evidencia_confirmada": {
        "label": "Confirmada",
        "tono": "good",
        "trad": "Vobo del dueño 2026-10-12. Hay una reconexión asentada con su confirmación."
      },
      "evidencia_falta_confirmar": {
        "label": "Falta confirmar",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-12. Todavía no hay una reconexión confirmada por una persona."
      },
      "evidencia_no_se_ofrece": {
        "label": "No se ofrece",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Mientras no esté en $0.00 no se ofrece registrar la reconexión."
      },
      "en_vivo_sin_lectura_en_vivo": {
        "label": "Sin lectura en vivo",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Esta pantalla no pregunta a Books. «Sin lectura» no es «saldo $0.00»."
      },
      "sin_dato": {
        "label": "sin dato",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. La réplica no tiene el dato. Nunca se pinta como $0.00."
      },
      "de_otro_corte": {
        "label": "de un corte anterior",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. La suspensión se asentó en otro corte y sigue vigente."
      },
      "buscar": {
        "label": "Buscar por número de cuenta",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Busca en el servidor sobre todas las cuentas del corte."
      },
      "sin_filas": {
        "label": "Ninguna cuenta coincide con este filtro. Los números de los filtros no cambian.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Vacío por filtro: hay cuentas, pero no con este filtro."
      },
      "sin_universo": {
        "label": "Todavía no hay cuentas suspendidas ni reconectadas en este corte.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Vacío por regla: nadie ha sido suspendido todavía."
      },
      "cuentas": {
        "label": "cuentas",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Unidad del conteo."
      },
      "panel_titulo": {
        "label": "Registrar la reconexión",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Panel de la cuenta elegida. Hoy solo se lee: no se registra desde aquí."
      },
      "panel_vacio": {
        "label": "Elige una cuenta de la lista para ver qué le falta.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Texto cuando no hay cuenta elegida."
      },
      "panel_cuenta": {
        "label": "Cuenta",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Número de cuenta elegida."
      },
      "panel_suspendida": {
        "label": "Suspendida",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Cuándo y quién asentó la suspensión."
      },
      "panel_saldo_replica": {
        "label": "Saldo en la réplica",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Saldo según la réplica de Books."
      },
      "panel_en_vivo": {
        "label": "Books en vivo",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Lectura en vivo de Books."
      },
      "panel_casilla": {
        "label": "Confirmo que el servicio quedó físicamente reconectado",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. La confirmación que exige el registro. Aquí va apagada."
      },
      "panel_nota": {
        "label": "Hoy la reconexión se registra en «Servicio del corte». Aquí solo ves a quién le toca.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Dónde se registra mientras esta pantalla solo lee."
      },
      "btn_reconnect": {
        "label": "Registrar la reconexión",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Botón apagado: registrar llega con su entrega, con la relectura en vivo de Books."
      },
      "por_que_apagado": {
        "label": "Por qué está apagado",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Encabeza la lista numerada de motivos."
      },
      "motivo_no_session": {
        "label": "No hay sesión: no se puede firmar. Nada que mueva servicio se ofrece sin un nombre detrás.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Motivo por el que el botón está apagado."
      },
      "motivo_legacy_cut": {
        "label": "Es de antes del corte del 24-ago-2026 15:13: no se reprocesa.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Motivo por el que el botón está apagado."
      },
      "motivo_already_reconnected": {
        "label": "Esta cuenta ya está reconectada.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Motivo por el que el botón está apagado."
      },
      "motivo_balance_not_zero": {
        "label": "La cuenta todavía debe según la réplica: se reconecta cuando su saldo quede en $0.00.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Motivo por el que el botón está apagado."
      },
      "motivo_no_balance_read": {
        "label": "No hay saldo completo de esta cuenta en la réplica: sin eso no se afirma que esté en $0.00.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Motivo por el que el botón está apagado."
      },
      "motivo_live_not_read": {
        "label": "Books en vivo no se pregunta desde esta pantalla: falta confirmar el saldo $0.00 con Books.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Motivo por el que el botón está apagado."
      },
      "motivo_reconnect_not_built": {
        "label": "Registrar la reconexión llega después; mientras tanto se hace en «Servicio del corte».",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Motivo por el que el botón está apagado."
      },
      "motivo_not_authorised": {
        "label": "Tu rol no puede registrar reconexiones. Lo hacen operadores, supervisores y Dirección.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-14. Motivo por el que «Registrar la reconexión» está apagado, o por el que el servidor lo rechazó (403)."
      },
      "motivo_flag_off": {
        "label": "Está apagado: registrar la reconexión desde esta pantalla se enciende con visto bueno de Dirección. Mientras tanto, la puerta es la pestaña «Servicio del corte».",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-14. Motivo por el que «Registrar la reconexión» está apagado mientras la bandera propia esté apagada (la misma de «Registrar suspensión»)."
      },
      "motivo_not_current": {
        "label": "Este corte ya no es el vigente: solo se registra sobre el corte vigente.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-14. Motivo por el que «Registrar la reconexión» está apagado o rechazado."
      },
      "motivo_not_suspended": {
        "label": "Esa cuenta no tiene una suspensión registrada, así que no hay nada que reconectar. No se registró nada.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-14. Rechazo del servidor (409): la última acción de la bitácora de esa cuenta no es una suspensión."
      },
      "motivo_not_confirmed": {
        "label": "Marca la casilla: la reconexión se registra solo confirmando que el servicio quedó activo. No se registró nada.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-14. Rechazo del servidor (422): falta el check de confirmación, que es la evidencia de la reconexión."
      },
      "motivo_live_balance_not_zero": {
        "label": "Books dice que esta cuenta todavía debe: no se registra la reconexión hasta que su saldo quede en $0.00. No se registró nada.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-14. Rechazo del servidor (409): el saldo releído en Books en el momento de registrar no es exactamente $0.00."
      },
      "rx_sub_barra": {
        "label": "Qué les falta a las cuentas suspendidas para reconectarse. Aquí se registra la reconexión una vez hecha en campo.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-14. Subtítulo de la barra superior de «Reconexión» cuando la bandera de registrar está encendida; apagada se queda el de siempre («Se registra en «Servicio del corte»»)."
      },
      "rx_descripcion_registrar": {
        "label": "Las cuentas suspendidas y qué les falta para reconectarse, más las que ya se reconectaron. Cuando la cuadrilla reconecta el servicio en campo, aquí se registra.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-14. Descripción de la pantalla cuando la bandera de registrar está encendida; apagada se queda la de siempre."
      },
      "rx_panel_nota_registrar": {
        "label": "Registrar deja constancia en la bitácora de que el servicio ya se reconectó en campo, con tu nombre. El sistema no reconecta el servicio.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-14. Nota del panel de la cuenta cuando la bandera de registrar está encendida; apagada se queda «Hoy la reconexión se registra en «Servicio del corte»»."
      },
      "rx_dialogo_titulo": {
        "label": "Registrar la reconexión",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-14. Título del diálogo de «Registrar la reconexión»."
      },
      "rx_dialogo_intro": {
        "label": "Vas a dejar constancia de que el servicio de la cuenta {cuenta} ya volvió a quedar activo.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-14. Qué hace el diálogo, en una frase."
      },
      "rx_impacto_que": {
        "label": "Se registra que el servicio de la cuenta {cuenta} volvió a quedar activo. El sistema no lo reconecta: lo hizo la cuadrilla en campo.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-14. Renglón «Qué cambia» del diálogo."
      },
      "rx_impacto_cuanto": {
        "label": "Ningún monto: no se cobra ni se escribe nada en Books ni en el CRM.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-14. Renglón «Por cuánto» del diálogo."
      },
      "rx_impacto_aquien": {
        "label": "Cuenta {cuenta} del corte {corte}.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-14. Renglón «A quién» del diálogo."
      },
      "rx_impacto_reversible": {
        "label": "La bitácora no se edita ni se borra. Corregir es registrar otra fila.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-14. Renglón «¿Se puede deshacer?» del diálogo: dice la verdad de una bitácora append-only."
      },
      "rx_dialogo_releer": {
        "label": "Al confirmar, el servidor vuelve a preguntar a Books el saldo de esta cuenta y solo registra si es exactamente $0.00. Si Books no contesta, no se registra nada.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-14. Dice que la relectura del saldo ocurre al registrar y qué pasa si Books no contesta."
      },
      "rx_saldo_cargando": {
        "label": "Preguntando a Books el saldo de esta cuenta…",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-14. Mientras el diálogo consulta a Books el saldo vivo."
      },
      "rx_saldo_factura": {
        "label": "Books dice ahora, factura {factura}: {saldo}",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-14. Una línea del saldo vivo por factura, a la vista antes de confirmar. El servidor la vuelve a leer al registrar."
      },
      "rx_saldo_sin_lectura": {
        "label": "Factura {factura}: Books no contestó. Eso no es $0.00.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-14. Una factura que Books no contestó: se dice aparte, jamás como $0.00."
      },
      "rx_saldo_omitida": {
        "label": "Factura {factura}: no se preguntó ahora por el tope de lecturas por minuto.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-14. Una factura que no se leyó por el tope de lecturas por minuto."
      },
      "rx_saldo_no_disponible": {
        "label": "No se pudo consultar a Books el saldo ahora. Al registrar, el servidor vuelve a preguntar.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-14. Cuando la consulta previa del diálogo falla entera."
      },
      "rx_confirmo": {
        "label": "Confirmo que el servicio quedó activo",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-14. Casilla obligatoria del diálogo: la evidencia de la reconexión (`confirmada`)."
      },
      "rx_confirmo_falta": {
        "label": "Marca la casilla: sin confirmar que el servicio quedó activo no se registra la reconexión.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-14. Aviso del diálogo si se intenta registrar sin marcar la casilla de confirmación."
      },
      "rx_nota_etiqueta": {
        "label": "Nota (opcional) — queda en la bitácora con tu usuario",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-14. Etiqueta de la nota del diálogo."
      },
      "rx_nota_placeholder": {
        "label": "Por ejemplo: cuadrilla reconectó en sitio a las 10:30",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-14. Ejemplo de la nota."
      },
      "rx_nota_ayuda": {
        "label": "Opcional, máximo 255 caracteres. No escribas datos personales del cliente.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-14. Ayuda de la nota."
      },
      "rx_nota_contador": {
        "label": "{n} / {max}",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-14. Contador de la nota."
      },
      "rx_dialogo_si": {
        "label": "Registrar reconexión",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-14. Botón que confirma el diálogo."
      },
      "rx_enviando": {
        "label": "Registrando…",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-14. Texto del botón mientras el POST viaja."
      },
      "rx_que_se_pedia": {
        "label": "El registro",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-14. Sujeto de los mensajes de error del diálogo."
      },
      "rx_hecho_titulo": {
        "label": "Reconexión registrada",
        "tono": "good",
        "trad": "Vobo del dueño 2026-10-14. Cabecera del resultado."
      },
      "rx_hecho_frase": {
        "label": "Quedó en la bitácora del servicio. Books confirmó el saldo en {saldo}. El sistema no reconectó nada: lo hizo la cuadrilla en campo.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-14. Frase del resultado, con el saldo vivo que decidió."
      },
      "rx_ref_rotulo": {
        "label": "Registro en la bitácora",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-14. Rótulo de la referencia copiable del resultado."
      },
      "hoy_titulo": {
        "label": "Reconectadas hoy",
        "tono": "good",
        "trad": "Vobo del dueño 2026-10-12. Lo que ya se registró hoy, en hora de México. Solo lectura."
      },
      "hoy_vacio": {
        "label": "Hoy todavía no se registra ninguna reconexión.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Vacío del bloque de hoy."
      },
      "col_sello": {
        "label": "Sello",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Cuándo se registró, en hora de México."
      },
      "col_texto": {
        "label": "Texto",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. La nota que escribió quien registró."
      },
      "col_quien": {
        "label": "Quién",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Quién registró, por nombre."
      },
      "persona_sin_nombre": {
        "label": "Persona sin nombre en el catálogo",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. El catálogo no tiene su nombre; no se rellena con el correo."
      },
      "sin_lectura_saldos_aviso": {
        "label": "No se pudo leer el saldo de la réplica: las suspendidas salen «Sin lectura del saldo». No significa que deban ni que estén saldadas.",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-12. Falló la lectura de la réplica."
      },
      "sin_lectura_prioridad_aviso": {
        "label": "No se pudo leer qué cuentas pagaron a tiempo: ninguna se marca «Reconectar hoy». No significa que no haya.",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-12. Falló una lectura de la base."
      },
      "paginacion": {
        "label": "de",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Posición en la lista."
      },
      "no_leida": {
        "label": "No se pudo leer esta pantalla. Reintenta; si sigue igual, avisa a Sistemas.",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-12. La lectura falló; esto NO significa que no haya nada."
      },
      "sin_corte": {
        "label": "Todavía no hay un corte.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. El calendario crea el corte del mes el día 04."
      }
    },
    "corte_tablero": {
      "tab_tablero": {
        "label": "Tablero del corte",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. El tablero del corte del mes: cuentas, dinero, recuperado, embudo y relojes. Solo se mira."
      },
      "tablero_descripcion": {
        "label": "El corte del mes de un vistazo: cuántas cuentas hay, cuánto se adeuda, cuánto se ha recuperado y cuánto falta para que venza la exención. Aquí solo se mira.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Explica para qué sirve la pantalla."
      },
      "no_leida": {
        "label": "No se pudo leer esta pantalla. Reintenta; si sigue igual, avisa a Sistemas.",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-13. La lectura base falló: no se pinta ninguna cifra ni se inventa un cero."
      },
      "sin_corte": {
        "label": "Todavía no hay un corte.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-13. El calendario crea el corte del mes el día 04. No es un error ni un cero: aún no empieza el ciclo."
      },
      "generado": {
        "label": "Datos de",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-13. Antecede la hora en que el servidor armó la respuesta."
      },
      "btn_actualizar": {
        "label": "Actualizar",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Vuelve a leer la pantalla. No pregunta a Books ni escribe nada."
      },
      "aviso_legado": {
        "label": "Este corte es de antes del 24-ago-2026 15:13: lo procesó la automatización vieja. Se consulta; aquí no se opera ni cuenta como trabajo del día.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-13. Corte legado: lectura sola."
      },
      "aviso_sin_sesion": {
        "label": "No hay sesión iniciada: la pantalla solo se mira. Nada que mueva dinero o servicio se ofrece sin un nombre detrás.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-13. Sin sesión (auth apagada en local)."
      },
      "tarjeta_cuentas": {
        "label": "Cuentas en el corte",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Todas las cuentas que entraron al corte, exentas o con adeudo."
      },
      "sub_cuentas": {
        "label": "Facturas vencidas: {monto}",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-13. Monto de las facturas vencidas al momento del corte."
      },
      "sub_cuentas_sin_monto": {
        "label": "Monto sin dato",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-13. El corte no trae el monto del universo."
      },
      "tarjeta_exentas": {
        "label": "Exentas",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Cuentas que pagaron antes de la frontera o tienen una exención vigente."
      },
      "sub_exentas": {
        "label": "Pagaron a tiempo o tienen una exención",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-13. Aclara qué es una cuenta exenta."
      },
      "tarjeta_adeudo": {
        "label": "Con adeudo",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Cuentas que quedaron con adeudo al corte."
      },
      "sub_adeudo": {
        "label": "Adeudo al corte: {monto}",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-13. Monto que se debía al corte en esas cuentas."
      },
      "sub_adeudo_sin_monto": {
        "label": "Monto sin dato",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-13. El corte no trae el monto de adeudo."
      },
      "tarjeta_recuperado": {
        "label": "Recuperado desde el corte",
        "tono": "good",
        "trad": "Vobo del dueño 2026-10-13. Lo que se debía al corte menos lo que Books dice que se debe ahora, según la réplica."
      },
      "sub_recuperado": {
        "label": "{pct}% de {base} que se debía al corte (según la réplica de Books)",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-13. Porcentaje recuperado sobre lo medido."
      },
      "rec_sin_replica": {
        "label": "No se pudo medir: la réplica de Books no contestó.",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-13. Sin la réplica no se afirma nada: no es $0.00."
      },
      "rec_sin_facturas": {
        "label": "No se pudo medir: la réplica no trae ninguna factura de este corte.",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-13. Sin facturas con dato no se afirma nada: no es $0.00."
      },
      "rec_sin_dato_n": {
        "label": "{n} facturas sin dato en la réplica no entran a la cifra.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-13. Se cuentan aparte; no se tratan como pagadas."
      },
      "cuentas_no_cuadran": {
        "label": "Ojo: el corte declara {encabezado} cuentas y su detalle trae {detalle}.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-13. El encabezado del corte y su detalle no coinciden; se muestra el detalle."
      },
      "replica_titulo": {
        "label": "Réplica de Books al correr el corte",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Qué tan fresca estaba la réplica de Books cuando se corrió el corte."
      },
      "replica_corrido": {
        "label": "corrido",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-13. Antecede el momento en que se corrió el corte."
      },
      "replica_sin_dato": {
        "label": "Sin dato de frescura",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-13. El corte no guardó la frescura de la réplica."
      },
      "dinero_titulo": {
        "label": "El dinero del corte",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Facturas vencidas, lo que está en exención, el adeudo vigente y los recargos."
      },
      "d_facturas_vencidas": {
        "label": "Facturas vencidas al corte",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Todas las facturas vencidas que entraron al corte."
      },
      "d_en_exencion": {
        "label": "En exención",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Monto de las exentas que siguen abiertas."
      },
      "d_adeudo_vigente": {
        "label": "Adeudo vigente",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Adeudo de las cuentas que no se han cubierto, más las exentas que cayeron."
      },
      "d_recargos_aplicados": {
        "label": "Recargos aplicados",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Recargos ya escritos en Books en este corte."
      },
      "d_recargos_condonados": {
        "label": "Recargos condonados",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Recargos que se escribieron y luego se quitaron."
      },
      "sub_facturas": {
        "label": "{n} factura(s)",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-13. Número de facturas."
      },
      "sub_cuentas_n": {
        "label": "{n} cuenta(s)",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-13. Número de cuentas."
      },
      "d_tasa": {
        "label": "Tasa de condonación {tasa}%",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-13. Condonados entre aplicados más condonados."
      },
      "d_enviando": {
        "label": "{n} recargo(s) en «enviando»: no se sabe si Books los aplicó. Cotéjalos a mano.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-13. Recargos inciertos: se mandaron y no hubo confirmación."
      },
      "d_sin_monto": {
        "label": "Sin dato",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-13. El corte no trae el monto del recargo; no se inventa un cero."
      },
      "embudo_titulo": {
        "label": "Embudo de cuentas",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. En qué terminó cada cuenta exenta o con adeudo."
      },
      "e_exentas_abiertas": {
        "label": "Exentas abiertas",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Exentas que aún no se cierran."
      },
      "e_exentas_cubiertas": {
        "label": "Exentas cubiertas",
        "tono": "good",
        "trad": "Vobo del dueño 2026-10-13. Exentas que pagaron."
      },
      "e_exentas_caidas": {
        "label": "Exentas que cayeron a adeudo",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-13. Exentas cuyo plazo venció sin pagar."
      },
      "e_adeudo_abierto": {
        "label": "Adeudo abierto",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Cuentas con adeudo que aún deben."
      },
      "e_adeudo_cubierto": {
        "label": "Adeudo cubierto",
        "tono": "good",
        "trad": "Vobo del dueño 2026-10-13. Cuentas con adeudo que ya pagaron."
      },
      "e_con_prorroga": {
        "label": "Con prórroga",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Cuentas con una prórroga firmada."
      },
      "relojes_titulo": {
        "label": "Relojes del vencimiento",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Cuánto falta para que venza la exención y qué ya venció sin resolverse."
      },
      "r_vence_el": {
        "label": "La exención general vence el",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Fecha del piso general de la exención."
      },
      "r_dias_restantes": {
        "label": "Días restantes",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Días que faltan para ese vencimiento, contados en hora de México."
      },
      "r_vencido": {
        "label": "Ya venció",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-13. El vencimiento general ya pasó; no quedan días."
      },
      "r_vencidas_sin_resolver": {
        "label": "Vencidas sin resolver",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-13. Exentas abiertas cuyo plazo ya pasó y nadie las cerró."
      },
      "r_prorrogas": {
        "label": "Prórrogas vigentes",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-13. Cuentas con una prórroga firmada."
      },
      "r_sin_fecha": {
        "label": "Sin fecha",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-13. No se pudo derivar el vencimiento de este corte."
      },
      "sin_dato": {
        "label": "Sin dato",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-13. No hay dato: la pantalla no inventa un cero."
      }
    },
    "corte_partes": {
      "pv_titulo": {
        "label": "Parte de la víspera",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. Plan de encendido v2, paso 0: lo que el sistema midió solo la víspera del corte (desde las 22:00, cada hora hasta las 00:30)."
      },
      "pv_descripcion": {
        "label": "Solo lectura. Cada servicio reporta lo suyo: la columna del runner es lo que él vio al armar su parte; la del panel, lo que ve el panel ahora. Leerlo y decidir si se sigue es de una persona.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. Las variables viven por servicio en Railway: lo que ve el runner no es lo que ve el panel."
      },
      "pv_leyenda": {
        "label": "✓ sí · ✗ no · ? no pude preguntar (no es ni sí ni no)",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. La marca va con símbolo y texto; el color nunca va solo."
      },
      "pv_col_que": {
        "label": "Qué se preguntó",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. Encabezado de la columna."
      },
      "pv_col_runner": {
        "label": "Runner",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. Lo que vio el runner al armar su parte (la hora va arriba)."
      },
      "pv_col_panel": {
        "label": "Panel ({hora})",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. Lo que ve el panel al pedir la tarjeta."
      },
      "pv_runner_hecho": {
        "label": "Parte del runner para el corte del {fecha}, armado el {hora}.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. La hora es la de México."
      },
      "pv_runner_sin_archivo": {
        "label": "Todavía no hay un parte del runner que este servicio pueda leer. Su columna dice «no pude preguntar»; abajo, el resumen de su último latido.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-15. Ausente no es «no»: el runner guarda su parte en la base (core_cut_artifact) y todavía no hay uno."
      },
      "pv_runner_sin_tabla": {
        "label": "La tabla donde el runner deja su parte todavía no existe en la base (falta aplicar su migración): el panel no puede verlo. Su columna dice «no pude preguntar»; abajo, el resumen de su último latido.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-15. s061: sin la tabla core_cut_artifact el parte vive en el disco del runner, que el panel no ve."
      },
      "pv_runner_ilegible": {
        "label": "No se pudo leer el parte del runner (la base o su archivo no contestaron). Su columna dice «no pude preguntar».",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-15. Un archivo ilegible no es un parte vacío."
      },
      "pv_runner_latido": {
        "label": "Latido del runner ({hora}): {detalle}",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. El resumen que el runner deja en su latido: cuántos sí, cuántos no y cuántos no pudo preguntar."
      },
      "pv_alembic_detalle": {
        "label": "aplicada: {aplicada} · espera el código: {esperada}",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. Revisiones de alembic (no son datos de nadie)."
      },
      "pv_escrituras_negadas": {
        "label": "Se negaron {n} intentos de escritura durante el parte: el parte es de solo lectura y esto no debería pasar. Avisar al Parent.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-15. Lo cuenta la conexión de solo lectura."
      },
      "pv_no_leida": {
        "label": "No se pudo leer el parte de la víspera.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-15. La petición falló: no hay marcas que mostrar."
      },
      "pv_marca_si": {
        "label": "Sí",
        "tono": "good",
        "trad": "Vobo del dueño 2026-10-15. Se preguntó y la respuesta es sí."
      },
      "pv_marca_no": {
        "label": "No",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-15. Se preguntó y la respuesta es no."
      },
      "pv_marca_no_pude_preguntar": {
        "label": "No pude preguntar",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-15. No se pudo preguntar: no es ni sí ni no."
      },
      "pv_grupo_bandera": {
        "label": "Bandera",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. Solo encendida o apagada, nunca su valor."
      },
      "pv_grupo_tope": {
        "label": "Tope del recargo definido",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. Solo si existe, nunca el número."
      },
      "pv_grupo_credencial": {
        "label": "Credencial del recargo",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. Solo presente o ausente, jamás el valor."
      },
      "pv_grupo_interruptor": {
        "label": "Interruptor «recargo» armado",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. Se arma el día de corte a las 00:20 (V-3); en la víspera lo normal es «no»."
      },
      "pv_grupo_politica": {
        "label": "Política v1 aprobada",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. Fila v1 de la política de vobo por reglas."
      },
      "pv_grupo_alembic": {
        "label": "Base al día con el código (alembic)",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. La cabeza aplicada en la base contra la que espera el código de ese servicio."
      },
      "pv_grupo_vista": {
        "label": "La vista de Difusiones contesta",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. Si la base contesta y la vista no, es «no»; si ni la base contesta, «no pude preguntar»."
      },
      "pv_estado_on": {
        "label": "Encendida",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. La variable dice que sí y el ambiente lo permite."
      },
      "pv_estado_off": {
        "label": "Apagada",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. Sin la variable, con otro valor o bloqueada por el ambiente."
      },
      "pv_estado_present": {
        "label": "Presente",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. La variable existe en ese servicio."
      },
      "pv_estado_absent": {
        "label": "Ausente",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. La variable no existe en ese servicio."
      },
      "pv_estado_armed": {
        "label": "Armado",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. "
      },
      "pv_estado_not_armed": {
        "label": "No armado",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. "
      },
      "pv_estado_no_row": {
        "label": "Sin registro",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. No hay fila: cuenta como no."
      },
      "pv_estado_approved": {
        "label": "Aprobada",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. "
      },
      "pv_estado_proposed": {
        "label": "Propuesta, sin aprobar",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. "
      },
      "pv_estado_retired": {
        "label": "Retirada",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. "
      },
      "pv_estado_match": {
        "label": "Coincide",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. "
      },
      "pv_estado_differs": {
        "label": "Difiere",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. "
      },
      "pv_estado_answers": {
        "label": "Contesta",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. "
      },
      "pv_estado_no_answer": {
        "label": "No contesta",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. "
      },
      "pv_estado_not_read": {
        "label": "No se pudo leer",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. "
      },
      "pv_estado_no_engine": {
        "label": "Sin base configurada",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. "
      },
      "pv_estado_code_heads_not_read": {
        "label": "No se pudo leer qué espera el código",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. "
      },
      "sc_titulo": {
        "label": "Sondas del corte",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. Plan de encendido v2: el cierre del día de corte (V-5 b) y la alerta del extracto del +2 y del +3, medidos solos y sin escribir."
      },
      "sc_descripcion": {
        "label": "Solo lectura. El cierre coteja con Books en vivo que nadie suspendido hubiera pagado ya; la alerta compara lo que dice la cola contra un conteo independiente. Leerlo y decidir si V-5 se cumple es de una persona.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. La réplica acusa, Books concluye: el cierre pregunta a Books en vivo."
      },
      "sc_sin_archivo": {
        "label": "Todavía no hay un resultado de las sondas que este servicio pueda leer. Abajo, el resumen del último latido de la vuelta que las corre.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-15. Ausente no es «no hay»: la vuelta guarda sus resultados en la base (core_cut_artifact) y todavía no hay uno."
      },
      "sc_sin_tabla": {
        "label": "La tabla donde el runner deja las sondas todavía no existe en la base (falta aplicar su migración): el panel no puede verlas. Abajo, el resumen del último latido de la vuelta que las corre.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-15. s061: sin la tabla core_cut_artifact los resultados viven en el disco del runner, que el panel no ve."
      },
      "sc_latido": {
        "label": "Latido ({hora}): {detalle}",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. El resumen que la vuelta deja en su latido."
      },
      "sc_ilegible": {
        "label": "Esta sonda está guardada pero no se pudo leer: no es un resultado vacío.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-15. Un archivo ilegible no es un cero."
      },
      "sc_no_leida": {
        "label": "No se pudieron leer las sondas del corte.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-15. La petición falló: no hay resultado que mostrar."
      },
      "sc_cierre_titulo": {
        "label": "Cierre del corte del {fecha} · nadie suspendido que ya había pagado (última noche)",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. V-5 b, cada noche a las 23:00 mientras el corte siga vigente; vale la última noche."
      },
      "sc_noches": {
        "label": "Noche del {noche} · noches medidas: {n} (vale la última)",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. La sonda corre cada noche mientras el corte siga vigente, sobre las suspendidas hasta ese momento."
      },
      "sc_hecho": {
        "label": "medido el {hora}",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. Hora de México."
      },
      "sc_estado_cumplido": {
        "label": "Se cumple",
        "tono": "good",
        "trad": "Vobo del dueño 2026-10-15. Ninguna suspendida había pagado antes y todas se pudieron preguntar."
      },
      "sc_estado_no_cumplido": {
        "label": "No se cumple: hay suspendidas que ya habían pagado",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-15. Al menos una cuenta se suspendió con su pago ya hecho."
      },
      "sc_estado_no_pude_preguntar": {
        "label": "No pude preguntar: no se cumple",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-15. Hubo cuentas que no se pudieron preguntar (o el instrumento no se pudo comprobar). No saber no es cumplir."
      },
      "sc_estado_cumplido_por_vacio": {
        "label": "Se cumple por vacío: 0 suspendidas (no es una aprobación)",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-15. Con cero suspendidas el criterio se cumple sin haber medido a nadie; el control positivo dice si el instrumento habría visto el defecto."
      },
      "sc_estado_coincide": {
        "label": "Coincide",
        "tono": "good",
        "trad": "Vobo del dueño 2026-10-15. La alerta y el conteo independiente dicen lo mismo, sin incoherencias."
      },
      "sc_estado_no_coincide": {
        "label": "No coincide",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-15. La alerta y el conteo independiente difieren o la respuesta es incoherente."
      },
      "sc_suspendidas": {
        "label": "Cuentas suspendidas en el corte",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. El denominador: un cero se dice con él."
      },
      "sc_pago_antes": {
        "label": "Ya habían pagado al suspenderse",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. El defecto que V-5 no tolera."
      },
      "sc_pago_despues": {
        "label": "Pagaron después de suspendidas",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. Lo normal: les toca reconexión."
      },
      "sc_sigue_debiendo": {
        "label": "Siguen debiendo",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. Bien suspendidas."
      },
      "sc_sin_dato": {
        "label": "Sin dato (no pude preguntar o el mismo día)",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. Books no contestó, o pagó el mismo día de la suspensión y Books no da la hora: no es ni «pagó» ni «no pagó»."
      },
      "sc_control": {
        "label": "Control positivo (un caso conocido que pagó antes)",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. Si el instrumento no ve el caso conocido, un cero no es creíble."
      },
      "sc_control_ok": {
        "label": "lo ve",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. El caso conocido sale como «ya había pagado»."
      },
      "sc_control_falla": {
        "label": "NO lo ve: el resultado no es creíble",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. El caso conocido no sale como debe."
      },
      "sc_fuente": {
        "label": "Fuente",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. De dónde salen los saldos."
      },
      "sc_fuente_books_en_vivo": {
        "label": "Books en vivo",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. Una lectura por corrida, con el limitador compartido."
      },
      "sc_fuente_desconocida": {
        "label": "Sin dato",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. El resultado no dice su fuente."
      },
      "sc_lista_pagaron_antes": {
        "label": "Revisar a mano (ya habían pagado): {cuentas}",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-15. Cuentas por número; sin nombres."
      },
      "sc_lista_sin_dato": {
        "label": "Sin dato: {cuentas}",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. Cuentas por número; sin nombres."
      },
      "sc_alerta_titulo": {
        "label": "Alerta del extracto · {dia}",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. La cola «falta cargar el extracto» contra un conteo independiente."
      },
      "sc_total_api": {
        "label": "Lo que dice la alerta",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. Exenciones protegidas solo por esperar el extracto, según la cola."
      },
      "sc_total_independiente": {
        "label": "El conteo independiente",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. Otro SQL, no el de la alerta."
      },
      "sc_en_alerta": {
        "label": "Ese día la alerta debe estar",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. El 06 todavía no; el 07 ya."
      },
      "sc_en_alerta_si": {
        "label": "activa",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. "
      },
      "sc_alerta_no_leida": {
        "label": "La alerta no se pudo leer ese día: no hay cifras que cotejar (no es un cero). Se vuelve a intentar ese mismo día.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-15. La respuesta de la alerta vino sin lectura: «no pude preguntar»."
      },
      "sc_en_alerta_no": {
        "label": "inactiva",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. "
      }
    },
    "corte_venc_susp": {
      "tab_vencimientos": {
        "label": "Vencimientos",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Cada exención vence por su comprobante; pasada la fecha, sin resolverse, cae a adeudo."
      },
      "tab_suspension": {
        "label": "Suspensión",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. La lista de trabajo de los operadores; el servicio se corta en campo."
      },
      "vencimientos_descripcion": {
        "label": "Cada exención vence por su comprobante. Pasada la fecha, sin resolverse, cae a adeudo con recargo retroactivo; la que se cubrió está a salvo.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Explica la regla del vencimiento en una frase."
      },
      "suspension_descripcion": {
        "label": "La lista de trabajo de los operadores. El sistema no corta el servicio: se corta en campo y aquí se registra lo hecho.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Explica quién corta el servicio."
      },
      "no_leida": {
        "label": "No se pudo leer esta pantalla. Reintenta; si sigue igual, avisa a Sistemas.",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-12. La lectura base falló: no se pinta ninguna cifra ni se inventa un cero."
      },
      "sin_corte": {
        "label": "Todavía no hay un corte.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. No hay ningún corte: el calendario lo crea el día 04."
      },
      "por_que_apagado": {
        "label": "Por qué está apagado",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Encabeza la lista numerada de motivos de un botón apagado."
      },
      "paginacion": {
        "label": "de",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Une «1–100» con el total del filtro."
      },
      "sin_cifra": {
        "label": "—",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Sin dato: no se afirma ni un cero."
      },
      "limite_ejemplo": {
        "label": "ejemplo",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-12. El límite es una cifra sin medir todavía."
      },
      "generado": {
        "label": "Leído el",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Momento en que el servidor armó esta pantalla."
      },
      "btn_actualizar": {
        "label": "Actualizar",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Vuelve a pedir la pantalla al servidor."
      },
      "estado_cumple": {
        "label": "Cumple",
        "tono": "good",
        "trad": "Vobo del dueño 2026-10-12. La regla se cumple con una cifra leída."
      },
      "estado_no_cumple": {
        "label": "No cumple",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-12. La regla no se cumple."
      },
      "estado_por_contar": {
        "label": "Por contar",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Falta contar contra Books: no es «cumple»."
      },
      "aviso_legado": {
        "label": "Es de antes del corte del 24-ago-2026 15:13: lo procesó la automatización vieja y no se reprocesa. Solo lectura.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. El corte es anterior a la frontera de la lógica vieja."
      },
      "kpi_abiertas": {
        "label": "Exentas abiertas",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Exenciones del corte que ninguna acción ni el motor ha resuelto."
      },
      "kpi_vencen_hoy": {
        "label": "Vencen hoy",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-12. Su último día protegido es hoy (hora de México)."
      },
      "kpi_vencen_manana": {
        "label": "Vencen mañana",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Su último día protegido es mañana (hora de México)."
      },
      "kpi_caidas": {
        "label": "Caídas a adeudo",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-12. El motor las pasó a adeudo: descartado, duplicado cerrado, plazo vencido o sin movimiento."
      },
      "kpi_con_prorroga": {
        "label": "Con prórroga",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Su plazo lo fija una prórroga firmada que amplía el del comprobante o el general."
      },
      "sub_abiertas": {
        "label": "de {exentas} exentas; {cubiertas} cubiertas y {caidas} caídas",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Aclara de cuántas exenciones es el número."
      },
      "sub_vencen_hoy": {
        "label": "sin resolver al cierre del día",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Se cuentan las que siguen abiertas."
      },
      "sub_vencen_manana": {
        "label": "por su plazo",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Se cuentan las que siguen abiertas."
      },
      "sub_caidas": {
        "label": "el recargo retroactivo ya procede",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Lo decidió el motor, no esta pantalla."
      },
      "sub_con_prorroga": {
        "label": "firmada por una persona, con motivo",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Una prórroga la firma una persona."
      },
      "lbl_situacion": {
        "label": "Situación",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Eje de filtro: en qué punto del plazo va la exención."
      },
      "lbl_origen": {
        "label": "Origen del plazo",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Eje de filtro: de dónde sale la fecha límite."
      },
      "chip_todas": {
        "label": "Todas",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Sin filtro en este eje."
      },
      "chip_due_today": {
        "label": "Vencen hoy",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-12. Situación: vence hoy."
      },
      "chip_due_tomorrow": {
        "label": "Vencen mañana",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Situación: vence mañana."
      },
      "chip_expired_open": {
        "label": "Vencidas sin resolver",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-12. Situación: el plazo pasó y el motor todavía no la resolvió."
      },
      "chip_fell": {
        "label": "Caídas",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-12. Situación: ya cayó a adeudo."
      },
      "chip_extended": {
        "label": "Con prórroga",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Situación: abierta, con prórroga firmada vigente que no vence hoy ni mañana."
      },
      "chip_covered": {
        "label": "Cubiertas",
        "tono": "good",
        "trad": "Vobo del dueño 2026-10-12. Situación: ya pagó o se firmó cubierta."
      },
      "chip_protected": {
        "label": "Protegidas",
        "tono": "good",
        "trad": "Vobo del dueño 2026-10-12. Situación: abierta y con plazo para después de mañana."
      },
      "chip_no_date": {
        "label": "Sin fecha",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Situación: el corte no trae vencimiento derivable."
      },
      "situacion_due_today": {
        "label": "Vence hoy",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-12. Su último día protegido es hoy."
      },
      "situacion_due_tomorrow": {
        "label": "Vence mañana",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Su último día protegido es mañana."
      },
      "situacion_expired_open": {
        "label": "Venció sin resolver",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-12. El plazo pasó y el motor todavía no la resolvió."
      },
      "situacion_fell": {
        "label": "Cayó a adeudo",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-12. El motor la pasó a adeudo."
      },
      "situacion_extended": {
        "label": "Con prórroga",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-12. Abierta, con una prórroga firmada vigente."
      },
      "situacion_covered": {
        "label": "Cubierta",
        "tono": "good",
        "trad": "Vobo del dueño 2026-10-12. Ya pagó o se firmó cubierta."
      },
      "situacion_protected": {
        "label": "Protegida",
        "tono": "good",
        "trad": "Vobo del dueño 2026-10-12. Abierta y con plazo para después de mañana."
      },
      "situacion_no_date": {
        "label": "Sin fecha",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. El corte no trae vencimiento derivable: no se inventa un día."
      },
      "origen_comprobante": {
        "label": "3 días desde su comprobante",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. El comprobante recibido después del corte corre sus propios 3 días naturales."
      },
      "origen_general": {
        "label": "Fecha general del corte",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. El piso: el vencimiento general del corte."
      },
      "origen_prorroga": {
        "label": "Prórroga firmada",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Una prórroga firmada que amplía el plazo."
      },
      "col_cuenta": {
        "label": "Cuenta",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Número de cliente."
      },
      "col_expediente": {
        "label": "Expediente",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Expediente del comprobante de evidencia."
      },
      "col_recibido": {
        "label": "Recibido",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Cuándo llegó el comprobante (hora de México)."
      },
      "col_exenta_hasta": {
        "label": "Exenta hasta",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Último día protegido."
      },
      "col_origen": {
        "label": "Origen del plazo",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. De dónde sale la fecha límite."
      },
      "col_situacion": {
        "label": "Situación",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. En qué punto del plazo va."
      },
      "col_saldo_corte": {
        "label": "Saldo corte",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Saldo de la foto del corte."
      },
      "col_si_cae": {
        "label": "Si cae",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. El recargo que se escribiría, no uno ya escrito."
      },
      "buscar_venc": {
        "label": "Buscar cuenta o expediente",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Búsqueda del servidor sobre todas las exenciones."
      },
      "sin_filas_venc": {
        "label": "Ninguna exención coincide con estos filtros.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Vacío por filtro: no es un cero del corte."
      },
      "sin_exentas": {
        "label": "Este corte no tiene exenciones.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. El corte no trae cuentas exentas."
      },
      "relojes_titulo": {
        "label": "Relojes del corte",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Las fechas que mandan el vencimiento."
      },
      "reloj_hoy_mx": {
        "label": "Hoy (México)",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. El día que el servidor usa para decidir «vence hoy»."
      },
      "reloj_piso": {
        "label": "Piso general de la exención",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Vencimiento general del corte."
      },
      "reloj_vencen_hoy": {
        "label": "Vencen hoy sin resolver",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Abiertas cuyo último día es hoy."
      },
      "reloj_vencen_manana": {
        "label": "Vencen mañana",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Abiertas cuyo último día es mañana."
      },
      "reloj_prorrogas": {
        "label": "Prórrogas vigentes",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Abiertas con prórroga firmada que aún no vence."
      },
      "reloj_nota_e1": {
        "label": "Piso: el corte el 04 protege hasta el cierre del día 06. Con comprobante recibido después, corren sus 3 días naturales.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Rige la regla de exención vigente (E1)."
      },
      "reloj_nota_v1": {
        "label": "Con la regla definitiva de exención encendida, el plazo es siempre la fecha general del corte: el comprobante recibido después no corre días propios.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Rige la regla definitiva de exención (2026-10-10)."
      },
      "segunda_titulo": {
        "label": "2.ª pasada de recargo",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Recargo retroactivo a las exenciones que cayeron."
      },
      "seg_ensayo": {
        "label": "Sin contar contra Books",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. No se ha preguntado a Books: lo de abajo se sabe sin preguntar."
      },
      "seg_caidas": {
        "label": "Exenciones caídas",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Cuentas que el motor ya pasó a adeudo."
      },
      "seg_ya_escritas": {
        "label": "Ya con recargo escrito",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Caídas con un recargo aplicado o enviándose en este corte."
      },
      "seg_a_escribir": {
        "label": "Recargo a escribir (como máximo)",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Cota: caídas sin recargo × monto del corte. El conteo contra Books la afina."
      },
      "seg_tope": {
        "label": "Tope propio",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Tope de cuentas de la 2.ª pasada."
      },
      "seg_cuentas": {
        "label": "cuentas",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Unidad del tope."
      },
      "seg_nota": {
        "label": "Es una cota, no un plan: el conteo contra Books y escribir llegan en entregas aparte, cada una con su visto bueno.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Aclara que esta pantalla no cuenta ni escribe."
      },
      "regla_no_unreconciled_movement": {
        "label": "Sin movimiento identificado sin acreditar.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Se comprueba al contar."
      },
      "regla_deadline_passed": {
        "label": "Plazo por comprobante vencido.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Se comprueba al contar."
      },
      "regla_same_rules_as_first": {
        "label": "Mismas reglas del recargo: Books en vivo, huella, tope y ventana.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Se comprueba al contar."
      },
      "regla_own_cap": {
        "label": "Tope propio de la 2.ª pasada.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Cuántas se escribirían contra el tope."
      },
      "btn_write_first_second": {
        "label": "Escribir la primera cuenta",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Escribir la 2.ª pasada: una cuenta primero, luego tandas."
      },
      "nota_d4": {
        "label": "Esta pantalla no promete aviso ni suspensión a nadie.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-12. Decisión D-4 sin tomar."
      },
      "pie_si_cae": {
        "label": "«Si cae» es el recargo que se escribiría, no uno ya escrito.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Aclara la última columna."
      },
      "prec_titulo_corte": {
        "label": "Difusión del corte",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-14. La precondición de suspender es a nivel del corte: la difusión de corte registrada. No es un aviso por cuenta."
      },
      "prec_cumplida": {
        "label": "Difusión del corte registrada el {fecha}",
        "tono": "good",
        "trad": "Vobo del dueño 2026-10-14. La difusión de este corte ya se registró (hora de México): suspender procede."
      },
      "prec_pendiente": {
        "label": "Todavía no se registra la difusión de este corte: no toca suspender",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-14. Sin la difusión del corte registrada nadie está por suspender."
      },
      "prec_nota_corte": {
        "label": "La suspensión depende de la difusión del corte, no del aviso de cada cuenta.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-14. Aclara que el aviso por cuenta no frena."
      },
      "aviso_fuente_no_leida": {
        "label": "No pude leer el aviso por cuenta (fuente no disponible): todas salen “Entrega sin dato”; la suspensión no se frena",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-14. La fuente del rótulo no contestó. No es «no alcanzable» de ninguna cuenta y no frena nada."
      },
      "vacio_difusion_titulo": {
        "label": "Todavía no hay cuentas por suspender",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-14. Vacío por regla: falta la difusión del corte."
      },
      "vacio_difusion_texto": {
        "label": "Falta registrar la difusión de este corte. Mientras no se registre, ninguna cuenta está por suspender, aunque aparezcan como candidatas.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-14. Explica por qué la lista no ofrece suspender."
      },
      "lbl_aviso": {
        "label": "Aviso a la cuenta",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-14. Eje de filtro: el rótulo del aviso de esa cuenta."
      },
      "col_aviso_rotulo": {
        "label": "Aviso y acción recomendada",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-14. El rótulo del aviso de esa cuenta y, si procede, qué hacer. No frena la suspensión."
      },
      "nota_aviso_no_frena": {
        "label": "El aviso por cuenta no frena la suspensión: solo dice qué hacer con quien no lo recibió.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-14. Aclara la columna de aviso."
      },
      "tope_titulo": {
        "label": "Tope de la lista · ejemplo",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Si la lista pasa del tope, se detiene y avisa."
      },
      "tope_de": {
        "label": "de {tope} cuentas",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. El tope de la política."
      },
      "tope_nota": {
        "label": "Si la lista pasa del tope, se detiene y avisa; no se corta la lista.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. No se recorta en silencio."
      },
      "tope_pasa": {
        "label": "Hay más candidatas que el tope: la lista se detendría y la decide una persona.",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-12. Las candidatas superan el tope."
      },
      "saldo_titulo": {
        "label": "Saldo de las candidatas",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Qué se sabe del saldo sin preguntar a Books."
      },
      "saldo_con": {
        "label": "con saldo según la réplica",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Candidatas cuya réplica dice que deben."
      },
      "saldo_sin": {
        "label": "sin dato de la réplica",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-12. La réplica no tiene (o no se pudo leer) alguna de sus facturas."
      },
      "aviso_replica": {
        "label": "No pude leer la réplica de Books: el saldo sale «sin dato», nunca $0.00.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-12. Falló la lectura de la réplica."
      },
      "lbl_estado": {
        "label": "Estado",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Eje de filtro: dónde cae la cuenta."
      },
      "lbl_motivo": {
        "label": "Si no entra, por qué",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Eje de filtro: el motivo."
      },
      "estado_to_suspend": {
        "label": "Por suspender",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-14. Books confirmó el saldo y pasa todo lo demás: es la lista de trabajo de los operadores. Solo aparece con una confirmación de saldos vigente de este corte."
      },
      "estado_candidate": {
        "label": "Candidata",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-12. Pasa todo lo que se sabe sin Books y la réplica no dice que ya pagó. Falta que Books confirme el saldo."
      },
      "estado_not_in": {
        "label": "No entra",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Sale de la lista con su motivo."
      },
      "estado_no_data": {
        "label": "Sin respuesta",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-12. No se pudo preguntar: no es «no hay» ni «entra»."
      },
      "estado_suspended": {
        "label": "Suspendida",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Ya se registró su suspensión."
      },
      "estado_reconnected": {
        "label": "Reconectada",
        "tono": "good",
        "trad": "Vobo del dueño 2026-10-12. Ya se registró su reconexión."
      },
      "estado_paid_replica": {
        "label": "Saldada (réplica)",
        "tono": "good",
        "trad": "Vobo del dueño 2026-10-12. La réplica dice que ya no debe; Books lo confirma al contar."
      },
      "estado_paid_books": {
        "label": "Saldada en Books",
        "tono": "good",
        "trad": "Vobo del dueño 2026-10-14. Books confirmó que ya no debe nada. A diferencia de «Saldada (réplica)», aquí Books concluyó: la réplica solo acusa."
      },
      "chip_to_suspend": {
        "label": "Por suspender",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-14. Estado: por suspender (confirmada en Books)."
      },
      "chip_candidate": {
        "label": "Candidatas",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-12. Estado: candidata."
      },
      "chip_not_in": {
        "label": "No entran",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Estado: no entra."
      },
      "chip_no_data": {
        "label": "Sin respuesta",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-12. Estado: no se pudo preguntar."
      },
      "chip_suspended": {
        "label": "Suspendidas",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Estado: suspendida."
      },
      "chip_reconnected": {
        "label": "Reconectadas",
        "tono": "good",
        "trad": "Vobo del dueño 2026-10-12. Estado: reconectada."
      },
      "chip_paid_books": {
        "label": "Saldadas en Books",
        "tono": "good",
        "trad": "Vobo del dueño 2026-10-14. Estado: saldada en Books (Books confirmó que ya no debe). Solo aparece con una confirmación de saldos vigente de este corte."
      },
      "chip_paid_replica": {
        "label": "Saldadas (réplica)",
        "tono": "good",
        "trad": "Vobo del dueño 2026-10-12. Estado: saldada según la réplica."
      },
      "motivo_cuenta_de_prueba": {
        "label": "Cuenta de prueba",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Es una cuenta de prueba: no debe nada y nunca entra a la lista."
      },
      "motivo_tardio_pagado": {
        "label": "Pagó tarde y ya pagó",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Pagó tarde y Books confirma que ya pagó todo: paga el recargo por el atraso, pero no se suspende."
      },
      "motivo_sin_factura_del_corte": {
        "label": "Sin factura del corte",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. No debe nada: no tiene factura del corte."
      },
      "motivo_sin_numero_de_cliente": {
        "label": "Sin número de cliente",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. No tiene número de cliente: no se puede ubicar su aviso ni su pago."
      },
      "motivo_pago_en_curso": {
        "label": "Comprobante en curso",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Tiene un comprobante en curso: se espera a que se acredite."
      },
      "motivo_exencion_protegida": {
        "label": "Exención vigente",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Tiene una exención vigente: las exenciones protegen."
      },
      "motivo_exencion_no_evaluada": {
        "label": "Revisión pendiente",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Su exención no se ha podido evaluar: una persona la revisa antes."
      },
      "motivo_exenta_del_corte": {
        "label": "Exención o prórroga vigente",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Tiene una exención o una prórroga firmada vigente."
      },
      "motivo_cubierta": {
        "label": "Cubierta",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. El corte la marca cubierta: ya pagó."
      },
      "motivo_desenlace_firmado_por_persona": {
        "label": "Firmado por una persona",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Una persona ya firmó su caso: la corrección humana no se pisa."
      },
      "motivo_signals_unreadable": {
        "label": "Sin lectura de comprobantes y exenciones",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-12. No pude leer si tiene un comprobante en curso o una exención vigente: no se afirma ni que entra ni que no entra."
      },
      "motivo_saldada": {
        "label": "Saldada en Books",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-14. Books confirmó que ya no debe nada: no entra a la lista."
      },
      "motivo_otro_contacto": {
        "label": "La deuda es de otro contacto",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-14. Books dice que la factura es de otro contacto distinto al de la cuenta: no entra, se coteja a mano."
      },
      "motivo_anulada": {
        "label": "Factura anulada",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-14. La factura está anulada en Books; anulada no es deuda."
      },
      "motivo_books_unanswered": {
        "label": "No pude preguntar a Books",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-14. Books no contestó por esta cuenta: no entra y se cuenta aparte; «no pude preguntar» no es «no debe»."
      },
      "motivo_paid_replica": {
        "label": "Saldada según la réplica",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. La réplica dice que ya no debe nada. Books lo confirma al contar; mientras tanto no entra."
      },
      "col_municipio": {
        "label": "Municipio",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Municipio del trato en el CRM; «—» si no hay dato."
      },
      "col_saldo_replica": {
        "label": "Saldo (réplica)",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Saldo de las facturas del corte en la réplica de Books; puede ir atrasado."
      },
      "aviso_notice_read": {
        "label": "Aviso leído",
        "tono": "good",
        "trad": "Vobo del dueño 2026-10-14. Rótulo del aviso por cuenta: el cliente leyó el aviso de corte. No frena la suspensión; sin acción."
      },
      "aviso_notice_delivered": {
        "label": "Aviso entregado",
        "tono": "good",
        "trad": "Vobo del dueño 2026-10-14. Rótulo del aviso por cuenta: el aviso llegó al cliente. No frena la suspensión; sin acción."
      },
      "aviso_notice_unconfirmed": {
        "label": "Enviado sin confirmación",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-14. Rótulo del aviso por cuenta: el aviso salió pero el proveedor no confirma entrega. No frena la suspensión."
      },
      "aviso_notice_unreachable": {
        "label": "Difusión no alcanzable",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-14. Rótulo del aviso por cuenta: el envío falló o el cliente no tiene WhatsApp. No frena la suspensión: se suspende y se recomienda otra vía."
      },
      "aviso_notice_nodata": {
        "label": "Entrega sin dato",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-14. Rótulo del aviso por cuenta: no se pudo ligar a este aviso (otro aviso, pago posterior, o no se pudo leer la fuente). No es «no alcanzable» ni un freno."
      },
      "accion_confirm_other_channel": {
        "label": "Confirmar por llamada o por otro medio.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-14. Acción recomendada del rótulo «Enviado sin confirmación»."
      },
      "accion_call_or_other_channel": {
        "label": "Llamar al cliente, mandar mensaje por otro medio.",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-14. Acción recomendada del rótulo «Difusión no alcanzable»."
      },
      "col_estado": {
        "label": "Estado",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Dónde cae la cuenta."
      },
      "col_motivo": {
        "label": "Motivo / última acción",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Por qué no entra, o la última acción registrada."
      },
      "col_accion": {
        "label": "Acción",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Lo que se puede hacer con la cuenta."
      },
      "buscar_susp": {
        "label": "Buscar cuenta",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Búsqueda del servidor sobre todas las cuentas examinadas."
      },
      "btn_register_suspension": {
        "label": "Registrar suspensión",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Registra que el servicio se cortó en campo."
      },
      "reg_titulo": {
        "label": "Registrar la suspensión",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Encabeza el porqué de que registrar la suspensión esté apagado."
      },
      "sin_accion": {
        "label": "no aplica",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Esta cuenta no se puede suspender."
      },
      "ua_suspension": {
        "label": "Suspendida",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Última acción registrada: suspensión."
      },
      "ua_reconexion": {
        "label": "Reconectada",
        "tono": "good",
        "trad": "Vobo del dueño 2026-10-12. Última acción registrada: reconexión."
      },
      "ua_por": {
        "label": "por",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Quién la registró (nombre, nunca correo)."
      },
      "motivo_balance_not_confirmed": {
        "label": "Falta confirmar el saldo en Books: la lista se arma con la réplica y Books concluye al contar.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Sin saldo confirmado en vivo no se ofrece suspender."
      },
      "motivo_suspend_not_built": {
        "label": "Registrar la suspensión desde esta pantalla todavía no está disponible: llega en una entrega aparte.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Esta versión solo lee."
      },
      "tab_suspension_sub_registrar": {
        "label": "La lista de trabajo de los operadores: el servicio se corta en campo. Aquí se registra la suspensión.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-14. Subtítulo de la barra superior de «Suspensión» cuando la bandera de registrar está encendida; apagada se queda «Registrar la suspensión llega en otra entrega»."
      },
      "motivo_not_authorised": {
        "label": "Tu rol no puede registrar suspensiones. Lo hacen operadores, supervisores y Dirección.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-14. Motivo por el que «Registrar suspensión» está apagado, o por el que el servidor lo rechazó (403)."
      },
      "motivo_flag_off": {
        "label": "Está apagado: registrar la suspensión desde esta pantalla se enciende con visto bueno de Dirección. Mientras tanto, la puerta es la pestaña «Servicio del corte».",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-14. Motivo por el que «Registrar suspensión» está apagado mientras la bandera propia de S3 esté apagada."
      },
      "motivo_not_current": {
        "label": "Este corte ya no es el vigente: solo se registra sobre el corte vigente.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-14. Motivo por el que «Registrar suspensión» está apagado o rechazado."
      },
      "motivo_broadcast_pending": {
        "label": "Falta registrar la difusión de corte: el aviso va antes que el corte, siempre.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-14. Motivo por el que «Registrar suspensión» está apagado o rechazado: la precondición es a nivel corte."
      },
      "btn_registrar_difusion": {
        "label": "Registrar difusión enviada",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-15. Botón de la tarjeta «Difusión del corte»: registra que la difusión de corte ya se envió. Es el mismo registro que hoy se hace en «Servicio del corte»."
      },
      "motivo_broadcast_flag_off": {
        "label": "Se registra en «Servicio del corte» hasta que se encienda esta pantalla.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. Motivo por el que «Registrar difusión enviada» está apagado: se enciende con la misma bandera que «Registrar suspensión»; mientras tanto la puerta es la pestaña vieja."
      },
      "motivo_broadcast_not_authorised": {
        "label": "Tu rol no puede registrar la difusión. Lo hacen operadores, supervisores y Dirección.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. Motivo por el que «Registrar difusión enviada» está apagado para un rol sin permiso."
      },
      "motivo_broadcast_registered": {
        "label": "La difusión de este corte ya está registrada: no se vuelve a registrar.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. La hora de la difusión respalda a toda la lista de suspensión: se registra una sola vez."
      },
      "dif_dialogo_titulo": {
        "label": "Registrar difusión enviada",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-15. Título del diálogo de «Registrar difusión enviada»."
      },
      "dif_dialogo_intro": {
        "label": "Vas a dejar constancia de que la difusión del corte del {corte} ya se envió.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-15. Qué hace el diálogo, en una frase."
      },
      "dif_impacto_que": {
        "label": "Se registra que la difusión de corte de este mes ya se envió (por el canal que sea).",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-15. Renglón «Qué cambia» del diálogo."
      },
      "dif_impacto_cuanto": {
        "label": "Ningún monto. Desde ese momento la lista de suspensión cuenta. No se envía ningún mensaje ni se escribe en Books ni en el CRM.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-15. Renglón «Por cuánto» del diálogo."
      },
      "dif_impacto_aquien": {
        "label": "El corte del {corte}: toda su lista de suspensión.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-15. Renglón «A quién» del diálogo."
      },
      "dif_impacto_reversible": {
        "label": "No se puede volver a registrar: la hora respalda a toda la lista.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-15. Renglón «¿Se puede deshacer?» del diálogo."
      },
      "dif_dialogo_si": {
        "label": "Registrar difusión enviada",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-15. Botón que confirma el diálogo."
      },
      "dif_enviando": {
        "label": "Registrando…",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-15. Texto del botón mientras el POST viaja."
      },
      "dif_que_se_pedia": {
        "label": "El registro de la difusión",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-15. Sujeto de los mensajes de error del diálogo."
      },
      "dif_rechazo_broadcast_registered": {
        "label": "La difusión de este corte ya estaba registrada: no se registró otra vez. La pantalla se actualizó.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-15. Rechazo del servidor (409): alguien ya la registró."
      },
      "dif_rechazo_not_current": {
        "label": "Este corte ya no es el vigente: la difusión solo se registra sobre el corte vigente. No se registró nada.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-15. Rechazo del servidor (422)."
      },
      "dif_rechazo_no_cut": {
        "label": "Ese corte ya no existe. Actualiza la pantalla. No se registró nada.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-15. Rechazo del servidor (404)."
      },
      "prec_por_automatico": {
        "label": "Automático (envío confirmado por Difusiones)",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. D-B: la difusión la registró sola la vuelta del runner al ver en Difusiones los envíos del aviso de corte de ese día. La hora es la de esa observación (la vista no trae la del primer envío)."
      },
      "prec_por_persona": {
        "label": "Registrada por {nombre}",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-15. D-B: la difusión la registró una persona con el botón (respaldo). El nombre es el del catálogo de personas."
      },
      "motivo_no_note": {
        "label": "Escribe la nota: qué se hizo en campo. Es obligatoria. No se registró nada.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-14. Rechazo del servidor (422): la nota es obligatoria."
      },
      "motivo_note_too_long": {
        "label": "La nota es demasiado larga: el máximo son 255 caracteres. No se registró nada.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-14. Rechazo del servidor (422): la nota pasa del máximo de la bitácora."
      },
      "motivo_no_account": {
        "label": "Esa cuenta ya no está en la lista de este corte. Actualiza la pantalla. No se registró nada.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-14. Rechazo del servidor (404)."
      },
      "motivo_already_suspended": {
        "label": "Esa cuenta ya tiene su suspensión registrada. No se registró otra vez.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-14. Rechazo del servidor (409): una fila por acto, dos clics o dos personas a la vez dejan una sola suspensión."
      },
      "motivo_already_reconnected": {
        "label": "Esa cuenta ya fue reconectada: no se registra la suspensión otra vez.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-14. Rechazo del servidor (409): la última acción de la bitácora manda."
      },
      "motivo_list_changed": {
        "label": "La lista cambió desde que la viste. Ábrela otra vez y revísala antes de registrar. No se registró nada.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-14. Rechazo del servidor (409): la huella de la lista que se vio ya no es la de la lista de ahora."
      },
      "motivo_not_to_suspend": {
        "label": "Esa cuenta ya no es «por suspender» según la lista de ahora. No se registró nada.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-14. Rechazo del servidor (409): la cuenta sale de la lista por otra regla."
      },
      "motivo_settled": {
        "label": "Books dice que esta cuenta ya no debe nada: no se registra la suspensión.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-14. Rechazo del servidor (409): el saldo releído en Books en el momento de registrar."
      },
      "motivo_other_contact": {
        "label": "Books dice que la deuda es de otro contacto: lo revisa una persona. No se registró nada.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-14. Rechazo del servidor (409): el saldo releído en Books en el momento de registrar."
      },
      "motivo_voided": {
        "label": "Books dice que las facturas de esta cuenta están anuladas: no hay deuda. No se registró nada.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-14. Rechazo del servidor (409): el saldo releído en Books en el momento de registrar."
      },
      "motivo_books_not_configured": {
        "label": "Books no está configurado en este servicio: no hay con qué releer el saldo. No se registró nada.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-14. Rechazo del servidor (409): sin credencial no se pregunta; no es «saldada» ni «debe»."
      },
      "motivo_not_checkable": {
        "label": "No se pudo revisar la lista para registrar. No se registró nada: reintenta.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-14. Rechazo del servidor (409): no pude leer la lista, y eso no es «no hay»."
      },
      "motivo_already_running": {
        "label": "Otro registro de este corte sigue en curso. Espera unos segundos y vuelve a mirar la lista. No se registró nada.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-14. Rechazo del servidor (409): el candado por corte no se consiguió a tiempo."
      },
      "reg_subtitulo_encendido": {
        "label": "Registrar deja constancia en la bitácora de que el servicio de la cuenta ya se suspendió en campo, con tu nombre y una nota. El sistema no corta el servicio.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-14. Subtítulo de la tarjeta cuando la bandera de registrar está encendida; apagada se queda el de siempre."
      },
      "reg_dialogo_titulo": {
        "label": "Registrar suspensión",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-14. Título del diálogo de «Registrar suspensión»."
      },
      "reg_dialogo_intro": {
        "label": "Vas a dejar constancia de que el servicio de la cuenta {cuenta} ya se suspendió en campo.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-14. Qué hace el diálogo, en una frase."
      },
      "reg_impacto_que": {
        "label": "Se registra que se suspendió el servicio de la cuenta {cuenta}. El sistema no lo corta: lo cortó la cuadrilla en campo.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-14. Renglón «Qué cambia» del diálogo."
      },
      "reg_impacto_cuanto": {
        "label": "Ningún monto: no se cobra ni se escribe nada en Books ni en el CRM.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-14. Renglón «Por cuánto» del diálogo."
      },
      "reg_impacto_aquien": {
        "label": "Cuenta {cuenta} del corte {corte}.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-14. Renglón «A quién» del diálogo."
      },
      "reg_impacto_reversible": {
        "label": "La bitácora no se edita ni se borra. Corregir es registrar otra fila (por ejemplo, la reconexión).",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-14. Renglón «¿Se puede deshacer?» del diálogo: dice la verdad de una bitácora append-only."
      },
      "reg_dialogo_aviso": {
        "label": "Aviso de esta cuenta: {aviso}.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-14. Rótulo del aviso de la cuenta, a la vista antes de confirmar."
      },
      "reg_dialogo_accion": {
        "label": "Acción recomendada: {accion}",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-14. Acción recomendada del rótulo del aviso, a la vista antes de confirmar."
      },
      "reg_dialogo_releer": {
        "label": "Al confirmar, el servidor vuelve a preguntar a Books el saldo de esta cuenta. Si Books no contesta, no se registra nada.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-14. Dice que la relectura del saldo ocurre al registrar."
      },
      "reg_nota_etiqueta": {
        "label": "Qué se hizo en campo (obligatorio) — queda en la bitácora con tu usuario",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-14. Etiqueta de la nota del diálogo."
      },
      "reg_nota_placeholder": {
        "label": "Por ejemplo: cuadrilla suspendió en sitio a las 10:30",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-14. Ejemplo de la nota."
      },
      "reg_nota_ayuda": {
        "label": "Obligatoria, máximo 255 caracteres. No escribas datos personales del cliente.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-14. Ayuda de la nota."
      },
      "reg_nota_contador": {
        "label": "{n} / {max}",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-14. Contador de la nota."
      },
      "reg_nota_vacia": {
        "label": "Escribe la nota: qué se hizo en campo. Es obligatoria.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-14. Error de cliente cuando la nota está vacía."
      },
      "reg_dialogo_si": {
        "label": "Registrar suspensión",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-14. Botón que confirma el diálogo."
      },
      "reg_enviando": {
        "label": "Registrando…",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-14. Texto del botón mientras el POST viaja."
      },
      "reg_que_se_pedia": {
        "label": "El registro",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-14. Sujeto de los mensajes de error del diálogo."
      },
      "reg_hecho_titulo": {
        "label": "Suspensión registrada",
        "tono": "good",
        "trad": "Vobo del dueño 2026-10-14. Cabecera del resultado."
      },
      "reg_hecho_frase": {
        "label": "Quedó en la bitácora del servicio. El sistema no cortó nada: lo cortó la cuadrilla en campo.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-14. Frase del resultado."
      },
      "reg_ref_rotulo": {
        "label": "Registro en la bitácora",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-14. Rótulo de la referencia copiable del resultado."
      },
      "aviso_senales_titulo": {
        "label": "No pude leer las señales de comprobante y exención para {n} cuentas",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-12. Falló la lectura de la población del aviso."
      },
      "aviso_senales_texto": {
        "label": "No se afirma que entren ni que no entren: salen «Sin respuesta».",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Ausente no es vacío."
      },
      "aviso_cambio": {
        "label": "La lista cambió desde que la abriste: {antes} candidatas antes, {ahora} ahora. La tabla no se mueve sola.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Compara la huella al actualizar."
      },
      "abrir_difusiones": {
        "label": "Abrir Difusiones",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Lleva a la pestaña de Difusiones."
      },
      "btn_csv": {
        "label": "Exportar CSV",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-12. Descarga lo que se ve (el filtro entero), sin datos personales."
      },
      "csv_error": {
        "label": "No se pudo generar el CSV. Reintenta; si sigue igual, avisa a Sistemas.",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-12. Falló la descarga."
      },
      "nota_candidata": {
        "label": "«Candidata» no es «por suspender»: falta que Books confirme el saldo.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-12. Aclara el estado principal."
      },
      "sin_filas_susp": {
        "label": "Ninguna cuenta coincide con estos filtros.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. Vacío por filtro."
      },
      "sin_cuentas_susp": {
        "label": "Este corte no tiene cuentas con adeudo que examinar.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. El corte no trae cuentas de adeudo ni caídas."
      },
      "sin_dato": {
        "label": "sin dato",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-12. No se pudo leer: no es $0.00."
      },
      "btn_confirm_balances": {
        "label": "Confirmar saldos en Books",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-14. Botón de la tarjeta «Saldos en Books»: pregunta a Books el saldo de cada cuenta candidata. Solo lee."
      },
      "conf_titulo": {
        "label": "Saldos en Books",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-14. Título de la tarjeta de la confirmación de saldos."
      },
      "conf_ninguna": {
        "label": "Todavía no se han confirmado los saldos en Books. Mientras tanto la lista es la de la réplica, que solo acusa: ninguna cuenta se da como suspendible.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-14. Sin una confirmación vigente la pantalla no afirma que alguien deba suspenderse: la réplica acusa, Books concluye."
      },
      "conf_vigente": {
        "label": "Saldos confirmados en Books a las {hora} · vigente hasta las {hasta}",
        "tono": "good",
        "trad": "Vobo del dueño 2026-10-14. Franja de la confirmación vigente. Las horas son de México."
      },
      "conf_vencida": {
        "label": "La confirmación de las {hora} ya venció (valía {min} minutos). La lista vuelve a ser la de la réplica: confirma otra vez.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-14. Una confirmación vencida no se pinta como vigente: se dice que venció."
      },
      "conf_otro_corte": {
        "label": "La última confirmación es de otro corte y no vale para éste.",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-14. Una confirmación de otro corte no se superpone a este."
      },
      "conf_sin_respuesta": {
        "label": "No pude preguntar a Books por {n} cuentas",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-14. Lo que Books no contestó va aparte y se ve aunque sea 0: nunca se lee como «saldada»."
      },
      "conf_sin_respuesta_nota": {
        "label": "No se dice que no deban: salen «Sin respuesta» y no entran a la lista.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-14. Aclara qué pasa con las cuentas a las que no se pudo preguntar."
      },
      "conf_detenida": {
        "label": "La lista saldría con {entrarian} cuentas y el tope es {tope}: el paso se detiene y no entrega la lista; una persona decide.",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-14. Con la lista por encima del tope no se entrega ninguna cuenta como «por suspender»: no se recorta en silencio."
      },
      "tope_pasa_confirmada": {
        "label": "Books confirmó más cuentas que el tope: la lista se detiene y la decide una persona.",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-14. Nota de la tarjeta del tope cuando hay una confirmación vigente y la lista pasa del tope."
      },
      "saldo_nota_sin_confirmar": {
        "label": "Books concluye el saldo. Mientras no se confirme con el botón «Confirmar saldos en Books», la réplica solo acusa: ninguna cuenta se da como suspendible.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-14. Sustituye a la nota que decía que esa pregunta llegaba en una entrega aparte: ya existe."
      },
      "saldo_nota_confirmada": {
        "label": "Books ya confirmó estos saldos: lo que no cuadró con la réplica salió de la lista con su motivo.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-14. Nota de la tarjeta de saldo con una confirmación vigente."
      },
      "por_suspender_celda": {
        "label": "Saldo confirmado en Books",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-14. Texto de la celda «Motivo» de una cuenta «Por suspender»."
      },
      "aviso_cambio_lista": {
        "label": "La lista cambió desde que la abriste: {antes} por suspender antes, {ahora} ahora. La tabla no se mueve sola.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-14. Como «la lista cambió» de las candidatas, pero con una confirmación vigente cuenta las cuentas por suspender."
      },
      "conf_corriendo": {
        "label": "Preguntando a Books…",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-14. La confirmación corre en segundo plano; se puede salir de la pantalla sin perderla."
      },
      "conf_lecturas": {
        "label": "lecturas hechas",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-14. Lecturas reales a Books hasta ahora."
      },
      "conf_fallida": {
        "label": "La confirmación no terminó",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-14. No dejó resultado: ninguna cuenta se da como «por suspender»."
      },
      "conf_incompleta": {
        "label": "La confirmación quedó incompleta",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-14. No dejó resultado: ninguna cuenta se da como «por suspender»."
      },
      "conf_motivo_interrupted": {
        "label": "El proceso que preguntaba a Books dejó de responder: la confirmación se interrumpió y no dejó resultado. Se puede confirmar otra vez.",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-14. Motivo de fin: se canceló o el worker dejó de latir."
      },
      "conf_motivo_count_error": {
        "label": "La confirmación falló a medias y no dejó resultado. Se puede confirmar otra vez.",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-14. Motivo de fin: error inesperado en el trabajo."
      },
      "conf_motivo_signals_unreadable": {
        "label": "No se pudo leer si hay comprobantes en curso o exenciones, y sin eso no se confirma nada. Se puede confirmar otra vez.",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-14. Motivo de fin: sin las señales el motor afirmaría «entra» sobre lo que no sabe."
      },
      "conf_motivo_no_credential": {
        "label": "Books no está configurado en este servicio: no hay con qué preguntar.",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-14. Motivo de fin: sin credencial de lectura."
      },
      "conf_motivo_no_cut": {
        "label": "No hay un corte elegido: no hay lista que confirmar.",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-14. Motivo de fin: el corte ya no existe."
      },
      "conf_motivo_unanswered": {
        "label": "Books no contestó. Se puede confirmar otra vez.",
        "tono": "crit",
        "trad": "Vobo del dueño 2026-10-14. Motivo de fin genérico de una confirmación incompleta."
      },
      "conf_dialogo_titulo": {
        "label": "Confirmar saldos en Books",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-14. Título del diálogo de costo antes de preguntar."
      },
      "conf_dialogo_costo": {
        "label": "Esto le pregunta a Books el saldo de cada cuenta candidata, una por una, de una cuota de lecturas que comparte todo Youcom. Solo lee: no escribe nada en Books, ni en el CRM, ni en la bitácora del servicio.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-14. El costo, dicho en palabras."
      },
      "conf_dialogo_cuentas": {
        "label": "Hoy hay {n} cuentas candidatas. Se pregunta al menos una vez por cada una y puede tardar varios minutos: va a la velocidad que deja libre la lectura en vivo de las demás pantallas.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-14. El costo, con la única cifra que la pantalla sabe: las candidatas de hoy."
      },
      "conf_dialogo_tope": {
        "label": "Confirmaciones de hoy",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-14. Se muestra «n / tope»."
      },
      "conf_dialogo_vigencia": {
        "label": "Lo que conteste Books vale {min} minutos; pasado ese tiempo hay que confirmar otra vez.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-14. La vigencia, dicha antes de preguntar."
      },
      "conf_dialogo_si": {
        "label": "Confirmar ahora",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-14. Acepta el diálogo y arranca la confirmación."
      },
      "conf_que_se_pedia": {
        "label": "La confirmación",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-14. Sujeto de los mensajes de error del diálogo."
      },
      "motivo_supervisor_only": {
        "label": "Solo un supervisor puede confirmar saldos: cuesta lecturas de una cuota que comparte todo Youcom.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-14. Motivo por el que «Confirmar saldos en Books» está apagado para un operador."
      },
      "motivo_count_running": {
        "label": "Ya hay una confirmación en curso. Espera a que termine.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-14. Solo corre una confirmación a la vez."
      },
      "motivo_daily_cap": {
        "label": "Ya se hicieron las confirmaciones permitidas hoy. Mañana se puede confirmar otra vez.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-14. Tope diario de confirmaciones."
      },
      "motivo_not_configured": {
        "label": "Books no está configurado en este servicio: no hay con qué preguntar. No se gastó ninguna confirmación.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-14. Sin credencial de lectura no se pregunta y no se gasta una confirmación del día."
      },
      "motivo_no_cut": {
        "label": "No hay un corte elegido: no hay lista que confirmar.",
        "tono": "gray",
        "trad": "Vobo del dueño 2026-10-14. Motivo por el que «Confirmar saldos en Books» está apagado sin corte."
      },
      "conf_sin_respuesta_una": {
        "label": "No pude preguntar a Books por 1 cuenta",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-14. Singular de «No pude preguntar a Books por N cuentas»."
      },
      "conf_dialogo_cuenta_una": {
        "label": "Hoy hay 1 cuenta candidata. Se pregunta al menos una vez por ella y puede tardar unos minutos: va a la velocidad que deja libre la lectura en vivo de las demás pantallas.",
        "tono": "info",
        "trad": "Vobo del dueño 2026-10-14. Singular del costo del diálogo."
      },
      "candidata_celda": {
        "label": "Falta confirmar el saldo en Books",
        "tono": "warn",
        "trad": "Vobo del dueño 2026-10-12. Texto de la celda «Motivo» de una candidata."
      }
    }
  },
  "estados_v2": {
    "_nota": "Vocabulario del expediente v2 (docs/ARQUITECTURA_EXPEDIENTE_v2.md, it.386). Vive APARTE de `estados` a proposito: el glosario del Manual recorre `estados` entero y se sirve en vivo al operador, y estos terminos todavia no tienen pantalla. Cuando la ola 3 construya la pestana Historial (6.2) se mueven a `estados`, y ahi hay que decidir con Direccion los tres rotulos que chocan con `fase_comprobante`.",
    "fase_v2": {
      "intake": {
        "label": "Recepción",
        "tono": "info",
        "trad": "Llegó el comprobante y se está leyendo: qué dice, de cuánto es y de qué fecha."
      },
      "assignment": {
        "label": "Asignación",
        "tono": "info",
        "trad": "Ya se leyó; falta saber de qué cliente es el pago."
      },
      "reconciliation": {
        "label": "Conciliación",
        "tono": "info",
        "trad": "Se busca el depósito del banco que corresponde a este comprobante."
      },
      "crediting": {
        "label": "Acreditación",
        "tono": "info",
        "trad": "El pago se aplica a las facturas del cliente en Books."
      }
    },
    "turno_v2": {
      "person": {
        "label": "Nosotros",
        "tono": "warn",
        "trad": "Está detenido esperando que alguien de la oficina haga algo. Es la cola de trabajo."
      },
      "system": {
        "label": "El sistema",
        "tono": "crit",
        "trad": "Está detenido por una falla nuestra, no por falta de información. Avisa a Sistemas."
      },
      "client": {
        "label": "El cliente",
        "tono": "gray",
        "trad": "Se le preguntó algo al cliente y no ha contestado. No cuenta como trabajo pendiente."
      },
      "bank": {
        "label": "El banco",
        "tono": "gray",
        "trad": "Falta que llegue información del banco, como el depósito o el estado de cuenta."
      }
    },
    "actor_v2": {
      "person": {
        "label": "Una persona",
        "tono": "info",
        "trad": "Lo hizo alguien de la oficina, con su sesión iniciada. El historial muestra su nombre."
      },
      "system": {
        "label": "El sistema",
        "tono": "gray",
        "trad": "Lo hizo un proceso automático. El historial dice cuál."
      },
      "client": {
        "label": "El cliente",
        "tono": "gray",
        "trad": "Vino de algo que hizo el cliente, como volver a mandar el comprobante."
      },
      "bank": {
        "label": "El banco",
        "tono": "gray",
        "trad": "Vino del banco: un depósito, un extracto."
      },
      "clock": {
        "label": "El tiempo",
        "tono": "gray",
        "trad": "Nadie lo hizo: se cumplió un plazo. No hay a quién preguntarle."
      }
    },
    "evento_v2": {
      "phase_entered": {
        "label": "Entró a la etapa",
        "tono": "info",
        "trad": "El expediente avanzó a una etapa nueva del recorrido."
      },
      "step_done": {
        "label": "Paso completado",
        "tono": "good",
        "trad": "Un paso de la lectura del comprobante salió bien."
      },
      "step_failed": {
        "label": "Paso sin resultado",
        "tono": "warn",
        "trad": "Un paso de la lectura no pudo; el motivo dice cuál fue el obstáculo."
      },
      "block_raised": {
        "label": "Se detuvo",
        "tono": "warn",
        "trad": "Apareció algo que lo detiene. Tiene dueño y tiene salida."
      },
      "block_cleared": {
        "label": "Se destrabó",
        "tono": "good",
        "trad": "Lo que lo detenía ya no aplica. Si nada más lo frena, sigue solo."
      },
      "final_set": {
        "label": "Terminó",
        "tono": "good",
        "trad": "El expediente llegó a su desenlace. El motivo dice cuál."
      },
      "final_undone": {
        "label": "Se deshizo el cierre",
        "tono": "warn",
        "trad": "Se revirtió un desenlace que ya estaba puesto, y el historial dice cuál."
      },
      "field_changed": {
        "label": "Cambió un dato",
        "tono": "info",
        "trad": "Se corrigió o se llenó un dato. Queda el valor anterior y el nuevo."
      },
      "action_taken": {
        "label": "Alguien hizo algo",
        "tono": "info",
        "trad": "Constancia de una acción de una persona, con su nota. No cambia por sí sola la situación."
      }
    }
  },
  "fase_v2_traduccion": {
    "_nota": "Tabla FASE -> TRAMO del semaforo «Donde va» de la ficha del expediente (Direccion, 2026-10-03, maqueta aprobada). Las claves son las fases que el servidor publica en `v2.fase` (`fase_v2.FASES`): `tests/test_contexto_vocabulario.py` se pone ROJO si el servidor publica una fase que no esta aqui, y el candado e2e (`tests/e2e_ficha_redisenio.py`) lo comprueba contra las filas reales — una fase sin tramo NO se pinta gris por omision, se pinta como error. `tramo` es la clave de `tramos` donde esta el expediente (null = no sigue el camino de cuatro tramos). `variante`: camino (hecho / tramo actual / pendiente), no_acreditable (llego a Acreditacion y no puede acreditarse: ambar), sin_curso (no sigue el camino: gris con borde discontinuo), correccion (el dato esta mal y se corrige: ambar, en pausa). Es solo PRESENTACION: la fase la deriva el servidor y es la misma que lee angelus.",
    "tramos": [
      { "clave": "recepcion", "label": "Recepción" },
      { "clave": "asignacion", "label": "Asignación" },
      { "clave": "conciliacion", "label": "Conciliación" },
      { "clave": "acreditacion", "label": "Acreditación" }
    ],
    "fases": {
      "recepcion_v2": { "tramo": "recepcion", "variante": "camino" },
      "asignacion": { "tramo": "asignacion", "variante": "camino" },
      "conciliacion_v2": { "tramo": "conciliacion", "variante": "camino" },
      "acreditacion_v2": { "tramo": "acreditacion", "variante": "camino" },
      "no_acreditable": { "tramo": "acreditacion", "variante": "no_acreditable" },
      "sin_curso": { "tramo": null, "variante": "sin_curso" },
      "correccion": { "tramo": null, "variante": "correccion" }
    }
  },
  "terminos": {
    "repeticion_en_conversacion": {
      "titulo": "Repetición dentro de una conversación",
      "trad": "El mismo WhatsApp ya trajo otro comprobante por el mismo monto y la misma fecha. NO afirma que sea el mismo pago: ningún identificador del banco los liga.",
      "implica": "Lo resuelve el cruce: si los dos casan contra el mismo depósito es un solo pago; si casan contra depósitos distintos son dos y no se toca nada. Medido, 4 de cada 5 de estas coincidencias resultaron ser pagos buenos, por eso se señala y no se descarta.",
      "cat": "comprobantes"
    },
    "identificador": {
      "titulo": "Identificador (dice CUÁL pago es)",
      "trad": "Un dato que el BANCO imprime y que senala una operación concreta entre todas: clave de rastreo, autorización, folio.",
      "implica": "Sirve para BUSCAR el depósito, así que cruza con confianza alta y casi nunca necesita revisión.",
      "cat": "comprobantes"
    },
    "evidencia_cotejo": {
      "titulo": "Evidencia (ayuda a elegir ENTRE candidatos)",
      "trad": "Un dato que NO identifica la operación pero que viajó con ella y sirve para distinguirla: el concepto que escribió quien pagó, la referencia.",
      "implica": "No sirve para buscar, sirve para decidir: el motor filtra primero por cuenta y monto exacto, y solo entre los que sobreviven mira esto. Cruza con confianza BAJA y lo revisa una persona.",
      "cat": "comprobantes"
    },
    "identity_key": {
      "titulo": "Identidad (huella digital)",
      "trad": "El dato del banco que hace único a un movimiento: clave de rastreo, folio, o una combinación de respaldo.",
      "implica": "Es lo que evita duplicados aunque descargues el extracto 10 veces al día.",
      "cat": "ingesta"
    },
    "tier": {
      "titulo": "Tier de identidad",
      "trad": "Qué tan fuerte es la huella: fuerte (clave única del banco) · folio (bueno) · débil (combinación de datos).",
      "implica": "Fuerte = confiable a ciegas; débil = el sistema lo vigila por conteo de grupo.",
      "cat": "ingesta"
    },
    "dedupe_key": {
      "titulo": "Llave legacy",
      "trad": "El identificador con el formato del sistema anterior; se conserva por compatibilidad histórica.",
      "implica": "Solo trazabilidad — la identidad real es la huella digital.",
      "cat": "ingesta"
    },
    "huella_raw": {
      "titulo": "Huella (texto original)",
      "trad": "El texto crudo, sin formatear, tal como el banco lo entregó.",
      "implica": "Es la evidencia primaria; nunca se modifica.",
      "cat": "ingesta"
    },
    "artifact_sha256": {
      "titulo": "Archivo de origen (hash)",
      "trad": "El sello matemático del archivo del que salió este dato.",
      "implica": "Permite probar exactamente de qué archivo vino cada movimiento.",
      "cat": "ingesta"
    },
    "atraso": {
      "titulo": "Atraso de asentamiento",
      "trad": "El banco registró el movimiento días después de su fecha.",
      "implica": "Es normal; el sistema lo absorbe cuando por fin aparece.",
      "cat": "ingesta"
    },
    "corrida": {
      "titulo": "Corrida",
      "trad": "Una ejecución del proceso de ingesta sobre un archivo o un buzón.",
      "implica": "Cada corrida queda registrada: qué entró, qué era repetido, qué falló.",
      "cat": "ingesta"
    },
    "latido": {
      "titulo": "Latido",
      "trad": "La señal de vida de un flujo automático: la última vez que corrió con éxito.",
      "implica": "Si el latido envejece más allá de su umbral, el panel grita CAÍDO.",
      "cat": "ingesta"
    },
    "operativa": {
      "titulo": "Movimiento operativo",
      "trad": "Dinero que Youcom mueve (envíos, recargas, traspasos), no un pago de cliente.",
      "implica": "Nunca tendrá comprobante; que aparezca sin conciliar es correcto.",
      "cat": "ingesta"
    },
    "piso_crm": {
      "titulo": "Piso de CRM",
      "trad": "La fecha desde la cual core es responsable de escribir movimientos SPIN al CRM.",
      "implica": "Lo anterior al piso lo escribió el sistema anterior (aparece como 'legacy').",
      "cat": "ingesta"
    },
    "core": {
      "titulo": "Core (el sistema)",
      "trad": "Esta plataforma: la base de datos local y sus procesos deterministas.",
      "implica": "Cuando algo dice 'en core', significa 'registrado en este sistema'.",
      "cat": "general"
    },
    "dry_run": {
      "titulo": "Preproducción",
      "trad": "El sistema lee, decide y guarda en core con datos reales; lo que no hace todavía es escribir a Zoho.",
      "implica": "La etapa (PREPRODUCCIÓN) y la capacidad de escritura son cosas distintas: mira el segundo chip de cada pestaña. Hoy la única pantalla que escribe al CRM es Comprobantes · Ingesta manual, y lo dice en rojo.",
      "cat": "general"
    },
    "gate": {
      "titulo": "Gate (llave de escritura)",
      "trad": "El interruptor deliberado que permite escribir a un sistema externo; apagado por default.",
      "implica": "Encenderlo es una decisión de Dirección, no un accidente.",
      "cat": "general"
    },
    "read_model": {
      "titulo": "Read-model (espejo de lectura)",
      "trad": "Una copia local de datos de Zoho, solo para leer y calcular rápido.",
      "implica": "Consultar el espejo nunca modifica Zoho.",
      "cat": "general"
    },
    "cero_llm": {
      "titulo": "Cero-LLM",
      "trad": "En el camino del dinero no interviene inteligencia artificial: solo reglas deterministas.",
      "implica": "El mismo dato produce siempre la misma decisión, auditable paso a paso.",
      "cat": "general"
    },
    "fidelidad": {
      "titulo": "Fidelidad",
      "trad": "De cada 100 decisiones, cuántas coinciden con la referencia contra la que se mide.",
      "implica": "Es el termómetro de confianza antes de encender una escritura.",
      "cat": "general"
    },
    "sombra": {
      "titulo": "Sombra",
      "trad": "Correr el motor en paralelo al sistema viejo, comparando decisiones sin escribir nada.",
      "implica": "Así se midió la fidelidad antes del relevo.",
      "cat": "conciliacion"
    },
    "cuadre": {
      "titulo": "Cuadre",
      "trad": "Comparar renglón por renglón lo que dice el banco contra lo que tiene el sistema.",
      "implica": "Faltante 0 = mes consolidado contra el documento oficial.",
      "cat": "cuadre"
    },
    "ventana": {
      "titulo": "Ventana del periodo",
      "trad": "Las fechas reales de corte del estado de cuenta (no siempre es mes calendario: hay cuentas que cortan del 19 al 18).",
      "implica": "El cuadre agrupa por la ventana real, no por el mes del calendario.",
      "cat": "cuadre"
    },
    "cadena_saldos": {
      "titulo": "Cadena de saldos",
      "trad": "El candado contable: el saldo final de cada mes debe ser el saldo inicial del siguiente.",
      "implica": "INTACTA = no falta ningún estado de cuenta de la serie.",
      "cat": "cuadre"
    },
    "diff_saldo": {
      "titulo": "Diff estado−core",
      "trad": "La suma de movimientos según el banco menos la suma según el sistema, en el periodo.",
      "implica": "Cero = las dos fuentes cuentan el mismo dinero.",
      "cat": "cuadre"
    },
    "serie": {
      "titulo": "Serie",
      "trad": "La colección mensual continua de estados de cuenta de una cuenta bancaria.",
      "implica": "La cadena de saldos se verifica sobre la serie completa.",
      "cat": "cuadre"
    },
    "ledger_saldos": {
      "titulo": "Ledger de saldos",
      "trad": "El registro local de saldos inicial/final de cada estado ingerido.",
      "implica": "De ahí sale la verificación de la cadena de saldos.",
      "cat": "cuadre"
    },
    "asimetria_fuente": {
      "titulo": "Asimetría de fuente",
      "trad": "El mismo depósito descrito con distinto nivel de detalle por el extracto diario y el estado oficial.",
      "implica": "No es un error; el sistema los empareja por monto+fecha+tipo.",
      "cat": "cuadre"
    },
    "cuarentena": {
      "titulo": "Cuarentena",
      "trad": "Movimientos que el estado de cuenta oficial no respalda, apartados de la conciliación.",
      "implica": "Así se atrapó un archivo de prueba con 120 movimientos fantasma.",
      "cat": "cuadre"
    },
    "backfill": {
      "titulo": "Relleno (backfill)",
      "trad": "Completar el sistema con movimientos que una fuente más autoritativa sí tiene.",
      "implica": "El estado oficial manda: lo que el extracto nunca trajo, se rellena de ahí.",
      "cat": "cuadre"
    },
    "escalera": {
      "titulo": "Escalera de atribución",
      "trad": "Los niveles de evidencia (N1→N6) por los que baja cada caso hasta resolverse.",
      "implica": "Cada conciliación declara en qué escalón se decidió y con qué evidencia.",
      "cat": "conciliacion"
    },
    "candidatos": {
      "titulo": "Candidatos",
      "trad": "Los movimientos bancarios que podrían corresponder a un comprobante (mismo monto, fecha cercana, misma cuenta).",
      "implica": "Con un candidato único y evidencia, se concilia; con varios, decide la escalera.",
      "cat": "conciliacion"
    },
    "consumo": {
      "titulo": "Consumo (anti doble-cobro)",
      "trad": "Un movimiento ya casado deja de ser candidato para otros comprobantes.",
      "implica": "Imposible acreditar el mismo depósito a dos clientes.",
      "cat": "conciliacion"
    },
    "evidencia": {
      "titulo": "Evidencia",
      "trad": "El par de valores exactos (del comprobante y del movimiento) que justificó el match.",
      "implica": "Toda conciliación es auditable: se puede ver QUÉ coincidió.",
      "cat": "conciliacion"
    },
    "idempotente": {
      "titulo": "Idempotente",
      "trad": "Repetir la operación no duplica nada: el sistema reconoce lo ya hecho.",
      "implica": "Re-ejecutar por seguridad nunca causa daño.",
      "cat": "general"
    },
    "lookup": {
      "titulo": "Lookup (hilo en CRM)",
      "trad": "El enlace que conecta el comprobante con su movimiento dentro del CRM.",
      "implica": "'Pendiente' = el movimiento aún no está mapeado a su registro CRM; el pago sí está identificado.",
      "cat": "cola"
    },
    "huella_cliente": {
      "titulo": "Huella del cliente",
      "trad": "Las referencias y cuentas desde las que un cliente ha pagado históricamente (aprendidas de conciliaciones confirmadas).",
      "implica": "Permite atribuir con evidencia cuando varios pagos son idénticos.",
      "cat": "conciliacion"
    },
    "grupo_nn": {
      "titulo": "Grupo N↔N",
      "trad": "N clientes pagaron exactamente lo mismo el mismo día y el banco registró N depósitos idénticos.",
      "implica": "Si cuadra en número, se reparte establemente; si no cuadra, va a humano.",
      "cat": "cola"
    },
    "plan_escritura": {
      "titulo": "Plan de escritura",
      "trad": "La lista exacta de lo que core escribiría al CRM, calculada antes de escribir.",
      "implica": "En simulación se revisa el plan; con el gate encendido, se ejecuta.",
      "cat": "cola"
    },
    "plan_books": {
      "titulo": "Plan Books (simulado)",
      "trad": "Cómo se aplicaría el pago a las facturas del cliente (waterfall, anticipos), calculado sin ejecutar.",
      "implica": "La aplicación real a Books es una fase futura, con su propia llave.",
      "cat": "conciliacion"
    },
    "error_75003": {
      "titulo": "Posible 75003",
      "trad": "El código con el que Books rechaza pagos agrupados en ciertas condiciones.",
      "implica": "El plan lo advierte antes de que ocurra.",
      "cat": "conciliacion"
    },
    "anticipo": {
      "titulo": "Anticipo",
      "trad": "La parte del pago que excede las facturas abiertas y queda a favor del cliente.",
      "implica": "No es un error de monto: es saldo a favor.",
      "cat": "conciliacion"
    },
    "cotejo": {
      "titulo": "Cotejo de cuenta destino",
      "trad": "Verificar que la cuenta a la que el cliente dice haber pagado sea realmente de Youcom.",
      "implica": "Un voucher a una cuenta ajena no pasa.",
      "cat": "comprobantes"
    },
    "bank_format": {
      "titulo": "Formato de banco",
      "trad": "La cuenta de Youcom identificada, en el nombre corto interno (p. ej. la recaudadora).",
      "implica": "Determina contra qué movimientos se conciliará.",
      "cat": "comprobantes"
    },
    "extraccion_ia": {
      "titulo": "Extracción del voucher",
      "trad": "La lectura automática de la imagen del comprobante (misma tecnología que el canal de WhatsApp).",
      "implica": "Es el ÚNICO punto con IA, y está fuera del camino del dinero: un humano confirma antes de escribir.",
      "cat": "comprobantes"
    },
    "vigilada": {
      "titulo": "Carpeta vigilada",
      "trad": "La carpeta compartida que el sistema LEE sin mover ni tocar archivos.",
      "implica": "El flujo actual de subir extractos no cambia en nada.",
      "cat": "ingesta"
    },
    "incoming": {
      "titulo": "Bandeja de archivos (incoming)",
      "trad": "La carpeta local donde sueltas archivos para ingerirlos con el botón.",
      "implica": "Solo el nombre y tamaño se muestran; el contenido nunca sale del equipo.",
      "cat": "ingesta"
    },
    "adapter": {
      "titulo": "Adapter",
      "trad": "La pieza que sabe leer el formato específico de cada banco.",
      "implica": "El banco se detecta por el CONTENIDO del archivo, no por la carpeta.",
      "cat": "ingesta"
    },
    "reconciliacion_diaria": {
      "titulo": "Reconciliación diaria (07:00)",
      "trad": "La corrida que ingiere estados nuevos, verifica la cadena de saldos, cuadra, rellena y cuarentena.",
      "implica": "Tu única tarea: subir el estado de cuenta del mes cuando el banco lo emita.",
      "cat": "cuadre"
    },
    "triage": {
      "titulo": "Triage",
      "trad": "Tu decisión sobre un caso: aprobar, escalar o marcar revisado, con nota.",
      "implica": "Se guarda solo en el sistema (trazabilidad interna); no modifica Zoho.",
      "cat": "conciliacion"
    },
    "identificar_deposito": {
      "titulo": "Identificar el depósito",
      "trad": "Encontrar en el estado de cuenta el depósito que corresponde a un comprobante, y poder decir POR QUÉ es ése: una clave de rastreo, un folio, una autorización.",
      "implica": "Se dice «se identificó por <llave>», nunca «casó» ni «cruzó»: el operador no tiene por qué saber cómo se llama la operación por dentro.",
      "cuidado": "Coincidir en importe NO es identificar. Un depósito del mismo monto sin llave propia es un candidato, no una identificación.",
      "cat": "conciliacion"
    },
    "pagos_iguales_del_dia": {
      "titulo": "Varios pagos iguales el mismo día",
      "trad": "Varios clientes pagaron exactamente lo mismo el mismo día, así que sus comprobantes compiten por los mismos depósitos del banco.",
      "implica": "Se resuelven ENTEROS: si el número de comprobantes y el de depósitos cuadra, se reparten de forma estable; si no cuadra, lo ve una persona. Repartirlos de uno en uno es adivinar.",
      "cuidado": "Antes se decía «grupo N↔N» y «sueltos». Ninguna de las dos dice nada a quien no conoce el motor: se dice «compite con N del mismo importe» y «pago único de ese importe ese día».",
      "cat": "conciliacion"
    },
    "corte_de_la_logica": {
      "titulo": "El corte de la lógica",
      "cat": "conciliacion",
      "trad": "El 24 de agosto de 2026 a las 15:13 se apagó la automatización vieja (Make + Zoho Flow) y acore tomó el relevo. Es la frontera entre el dato que gobernamos y el que heredamos.",
      "implica": "Toda pantalla del flujo arranca mostrando lo POSTERIOR al corte —la operación de hoy— y dice en voz alta cuántos casos de la era anterior quedan fuera de esa vista. Nada se esconde en silencio.",
      "cuidado": "No es una fecha cualquiera ni se elige por pantalla: es la MISMA constante que ya gobierna la proyección al CRM, el rescate de perdidos, la merma y el write-back de conciliación (`proyeccion_crm.CORTE_LOGICA_STALE`). Si algún día se mueve, se mueve en un solo sitio."
    },
    "renglon_duplicado": {
      "titulo": "Duplicado (Dup)",
      "trad": "Renglones del archivo que YA existían en core con la misma identidad. Se reconfirman y no insertan fila nueva.",
      "implica": "Es el deduplicado funcionando, no un problema. Un archivo entero en «Dup» suele significar que ya se había ingerido: no hace falta hacer nada.",
      "cat": "ingesta"
    },
    "renglon_inconsistente": {
      "titulo": "Inconsistente",
      "trad": "Renglones con la misma identidad que uno ya conocido pero con distinto monto o fecha. El sistema no elige cuál es el bueno.",
      "implica": "Quedan FUERA de la conciliación hasta que una persona los decida en la bandeja de Movimientos. Medido: 3 corridas de 7,113 han tenido alguno.",
      "cat": "ingesta"
    },
    "renglon_probable": {
      "titulo": "Probable duplicado",
      "trad": "Renglones que se PARECEN a otro ya existente sin ser idénticos. No es un duplicado confirmado: nadie ha dicho que sean el mismo dinero.",
      "implica": "Hay que compararlos antes de aceptar o bloquear. Medido: ninguna de las 7,113 corridas ha tenido uno todavía; la columna existe para el día que aparezca.",
      "cat": "ingesta"
    },
    "renglon_error": {
      "titulo": "Renglón con error",
      "trad": "Renglones que la corrida no pudo procesar. A diferencia de los tres anteriores, éstos no llegaron a core de ninguna forma.",
      "implica": "La ingesta es idempotente: volver a lanzar el mismo archivo recupera lo que faltó sin duplicar lo que ya entró.",
      "cat": "ingesta"
    }
  }
}
