Actúa como un desarrollador Full-Stack Senior y arquitecto de software experto en gestión de clínicas veterinarias. Desarrolla en un único archivo autocontenido (index.html) una aplicación web SPA completa, reactiva y persistente para el "Control de Entradas, Conciliación Mensual y Gestión de Tarifas de Proveedores". 

Utiliza Tailwind CSS vía CDN, FontAwesome 6 para iconografía y SheetJS (xlsx.full.min.js) para procesar hojas de cálculo. Todo debe funcionar en el navegador sin backend externo ni bases de datos de pago: la persistencia se gestiona en memoria local sincronizada (localStorage) con utilidades de exportación e importación en JSON para copias en Google Drive.

La aplicación debe estructurarse en 4 pestañas de navegación principales más un indicador global en cabecera:
- Cabecera fija: Título, distintivo de clínica, contador dinámico «Sin resolver: N» (alerta si hay datos ilegibles o productos sin clasificar) y botones de "Copia Drive (.json)" y "Restaurar".
- Pestaña 1: Entradas (Albaranes y Facturas).
- Pestaña 2: El mes (Conciliación y Auditoría).
- Pestaña 3: Vocabulario y precios (Tarifas, Acuerdos y Proveedores).
- Pestaña 4: Dashboard (Métricas ejecutivas de compra y fiabilidad).

A continuación se detallan los requisitos funcionales organizados en 5 bloques:

================================================================================
1. CAPTURA Y PROCESAMIENTO DE DOCUMENTOS (PESTAÑA 1)
================================================================================
a) Modos de Entrada:
   - Modo Archivo / Foto: Subida de fotos de albaranes (con notas manuscritas) y PDFs/fotos de facturas mediante llamada estructurada a Gemini Vision (devolviendo JSON estricto) o fallback reactivo editable.
   - Modo Texto estructurado: Textarea para pegar transcripciones manuales con delimitadores:
     ALBARAN | proveedor | número | fecha
     referencia | descripción | unidad | cantidad albarán | cantidad recibida | lote | caducidad | nota
     NOTA | texto general
     
     FACTURA | proveedor | número | fecha
     albarán | referencia | descripción | unidad | cantidad | precio | % dto | precio neto | % IVA | importe
     TOTAL | base | IVA | total

b) Reglas de Lectura Humano-Contable:
   - Transcripción literal: Copiar lo impreso tal cual sin autocorrecciones. Si una línea está repetida, se registra dos veces.
   - Marcas a mano en líneas: Si hay una nota manuscrita («faltan 2», «solo 4»), registrarla en el campo 'nota' y ajustar 'cantidadRecibida'. Si no hay anotación, la recibida coincide con la del albarán.
   - Lotes y caducidades a mano: Tratar con la misma validez que los impresos.
   - Anotaciones fuera de línea: Registrar en 'notaGeneral' del albarán (p. ej. "Abono pendiente de 2 frascos rotos").
   - Datos dudosos: Si un dato no se lee con nitidez, marcar obligatoriamente con "?" o "ILEGIBLE". No suponer cantidades ni inventar información.

c) Comprobación Visual Previa (Nada se guarda sin revisión):
   - Al procesar cualquier documento, se despliega una tabla editable de revisión donde el usuario puede corregir cada celda.
   - Solo se consolida en la base de datos al pulsar el botón verde «Está bien, guardar».
   - Detección de duplicados en tiempo real: Se evalúa la terna (Proveedor + Número de Documento + Fecha). Si ya existe, se muestra un banner de advertencia y, al intentar guardar, se abre una ventana modal que frena la duplicidad y solicita confirmar si se desea sobrescribir el registro previo.

d) Organizador y Buscador de Documentos Guardados:
   - Tabla histórica con buscador en tiempo real por texto (número, referencia o nota), filtro por tipo (Albarán / Factura) y filtro por proveedor.
   - Cada documento guardado permite reabrirse para edición completa o eliminarse con confirmación.

================================================================================
2. VOCABULARIO, TARIFAS Y CONDICIONES COMERCIALES (PESTAÑA 3)
================================================================================
a) Gestión y Unificación Canónica de Proveedores:
   - Los proveedores se unifican bajo nombres canónicos normalizados para evitar duplicados causados por variantes ortográficas.
   - Tabla con listado de proveedores, estado (Activo / En suspensión), número de tarifas cargadas, albaranes vinculados y estado del acuerdo.
   - Botón modal "Unificar Proveedores Duplicados": permite fusionar un proveedor origen en un proveedor destino en cascada (actualizando albaranes, facturas, tarifas y acuerdos en un clic).
   - Acciones individuales por proveedor: Suspender/Reactivar, Eliminar por completo y Carga directa de tarifa.

b) Acuerdos Comerciales:
   - Carga mediante PDF/imagen (analizado con IA para extraer proveedor, portes gratis desde € base, descuentos por familia y precios especiales fijos) o mediante formulario manual.
   - Modal de revisión del acuerdo antes de guardar.
   - Posibilidad de pausar/suspender acuerdos: si un acuerdo está en suspensión, la auditoría aplica la tarifa general íntegra sin descuentos.

c) Tarifas Generales Anuales (Excel y CSV):
   - Motor de ingesta robusto para ficheros .xlsx, .xls y .csv (detectando delimitadores ';', ',', '\t' y comas decimales europeas).
   - Ventana modal de mapeo de columnas (Referencia, Descripción, Familia, Unidad, Precio Unitario, Precio Caja) con previsualización de filas de muestra.
   - Selector de asignación a proveedor existente o nuevo.
   - Opción para reemplazar referencias previas o acumular.
   - Catálogo de tarifas con buscador en tiempo real por texto (filtra por referencia, producto o familia) y selector de proveedor.
   - Herramienta de reasignación masiva de tarifas completas a otro proveedor.

d) Diccionario de Equivalencias y Detección de Nombres Nuevos:
   - Si al guardar un albarán aparece una descripción desconocida, la aplicación despliega un diálogo: "¿Es el mismo producto?", permitiendo vincularlo a una referencia oficial del proveedor con buscador predictivo o descartarlo como producto nuevo.
   - Cuenta con botón de cierre ("Decidir más tarde") sin forzar la decisión.
   - Las equivalencias confirmadas se memorizan en un diccionario para no volver a preguntar en entregas futuras.

================================================================================
3. CONCILIACIÓN MENSUAL Y AUDITORÍA CONTABLE (PESTAÑA 2)
================================================================================
a) Filtros y Reglas de Precio:
   - Filtro de proveedor y selector de factura dependiente (al elegir proveedor, el desplegable de facturas muestra únicamente las de ese distribuidor).
   - El precio pactado se determina según la regla estricta:
     1. Precio especial pactado para esa referencia (si existe en acuerdo activo).
     2. En su defecto: Precio de tarifa general base menos el descuento de su familia pactado en el acuerdo.
     3. Si el acuerdo está suspendido: Tarifa general base íntegra (0% dto).
   - Todas las comparaciones se realizan sobre la Base Imponible en formato español (€ con dos decimales y coma), nunca con IVA.
   - Cruce inteligente de números de albarán: se comparan normalizando caracteres y extrayendo dígitos significativos.

b) Tres Bloques de Conciliación Estrictos:
   1. NO HE PODIDO COMPROBARLO:
      - Siempre visible en la parte superior. Lista cualquier línea o dato marcado con "?" o "ILEGIBLE", indicando documento, número y motivo. Si está vacío, muestra explícitamente el mensaje de conformidad. Cada incidencia incluye botón para "Resolver".
   2. NO CUADRA:
      - Desglosa discrepancias con detalle de: línea, albarán de origen, facturado, pactado/recibido, detalle y diferencia económica neta en base imponible.
      - Supuestos auditados:
        * Precio neto facturado distinto al pactado (si es menor: advertencia "Revisa la tarifa, puede estar vieja").
        * Cantidad facturada diferente a la recibida.
        * Mercancía en albarán físico no incluida en la factura del mes.
        * Líneas facturadas sin albarán físico registrado.
        * Portes cobrados cuando el total del pedido supera el umbral pactado de portes gratis.
        * Notas marginales pendientes de abono no deducidas en factura.
      - Acciones en cada discrepancia:
        * Botón "Es firma / ignorar nota": descarta apuntes marginales que correspondían a firmas de recepción o sellos (p. ej. "D. Alarcón"), sin valor contable.
        * Botón "Editar origen": reabre directamente el albarán o factura en el revisor de Entradas.
        * Botón "Aceptar diferencia" con tooltip interactivo explicativo: si no hay descuadre de precio, archiva la diferencia. Si hay diferencia de precio, despliega el Asistente Inteligente de Actualización de Tarifas.
   3. CUADRA:
      - Relación de líneas conformes al 100% en unidades y precio neto pactado.

c) Asistente Inteligente de Actualización de Tarifas y Acuerdos:
   - Al aceptar una discrepancia de precio, se abre un modal con cálculos matemáticos automáticos para elegir cómo asimilar el cambio:
     1. Excepción puntual: Archivar solo en este documento sin alterar tarifas ni acuerdos.
     2. Precio especial: Guardar el precio neto facturado en el acuerdo comercial para esa referencia.
     3. Modificar precio base de catálogo: Calcular y sugerir el nuevo precio base de catálogo manteniendo el % de descuento de la familia:
        Precio_Base = Precio_Neto / (1 - (Dto / 100))
     4. Modificar descuento de familia: Mantener el precio de catálogo y calcular el nuevo % de descuento implícito de la familia:
        Nuevo_Dto_% = [1 - (Precio_Neto / Precio_Base)] * 100
     5. Alta en tarifa: Registrar el producto si no existía previamente.

d) Generador de Correo de Reclamación Pormenorizado por Albarán:
   - Formato exacto de 3 bloques sin fórmulas de cortesía redundantes:
     Línea 1: Revisión de la factura frente a los albaranes de entrega físicos y acuerdo.
     Línea 2: Importe total de la diferencia neta (€ Base) y desglose agrupado por albarán físico (concepto, facturado vs recibido/pactado, diferencia individual y motivo).
     Línea 3: Pregunta ejecutiva de cierre: "¿Nos emitís la factura rectificativa con estas correcciones o aplicáis la nota de abono en la siguiente remesa?".
   - Botón directo para copiar al portapapeles.

================================================================================
4. PANEL DE CONTROL Y DASHBOARD DE COMPRAS (PESTAÑA 4)
================================================================================
- Selector de filtrado por proveedor (utilizando la lista canónica deduplicada) o vista global.
- 4 Tarjetas de Métricas KPI:
  1. Gasto Facturado (€ Base) con recuento de facturas auditadas.
  2. Discrepancias Totales Acumuladas (€) con recuento de líneas no conformes.
  3. Tasa de Conformidad Directa (% de líneas que cuadran a la primera).
  4. Incidencias Activas (suma de notas pendientes y lecturas ilegibles sin resolver).
- Tabla de Fiabilidad y Volumen por Distribuidor:
  * Columnas: Proveedor, Albaranes, Facturas, Gasto Facturado (€), Abonos/Notas Pendientes, Diferencia Neta Acumulada (€ con código de color: rojo si se cobró de más, verde si favoreció a la clínica) y Estado del Acuerdo.
  * Reconciliación estricta para que ningún distribuidor aparezca repetido.

================================================================================
5. ARQUITECTURA TÉCNICA, SEGURIDAD Y PERSISTENCIA
================================================================================
- La aplicación se guarda de forma permanente en localStorage bajo una clave estructurada ('vet_clinic_database_state_v1').
- Toda mutación de estado invoca window.saveClinicState() y actualiza reactivamente la interfaz (window.updateUIFromState()).
- Manejo defensivo del DOM: todas las funciones de renderizado verifican la existencia previa de elementos contenedores para prevenir excepciones de tipo TypeError (classList / null).
- Ningún modal ni acción destructiva usa prompt() o confirm() nativos del navegador (bloqueados en iframes), implementando ventanas modales Tailwind integradas.
