Bovintel - Dashboard de cobertura sin base de datos v6

Archivo principal:
  dashboard_cobertura_sin_db.php

Requisitos del servidor:
  - PHP 7.4 o superior.
  - No requiere MySQL.
  - No requiere SQLite.
  - Requiere acceso del navegador a internet para cargar Leaflet, OpenStreetMap y leaflet-heat desde CDN.
  - La carpeta informes debe tener permiso de escritura si se desea guardar informes en servidor.

Instalación:
  1) Subir la carpeta completa al servidor, por ejemplo:
     /public_html/bovintel/cobertura/

  2) Verificar permisos de escritura en:
     /public_html/bovintel/cobertura/informes/

  3) Abrir en el navegador:
     https://TU-DOMINIO/cobertura/dashboard_cobertura_sin_db.php

Uso:
  1) Completar nombre del campo, propietario y operador/chip medido.
  2) Importar CSV exportado en formato Pro desde Network Cell Info.
  3) Importar archivo real del campo en GeoJSON o KML.
  4) Presionar "Procesar e importar".
  5) Visualizar con:
     - Mapa de calor: visualización suave por intensidad.
     - Superficie IDW: interpolación visual para una vista profesional continua.
     - Zonas por cobertura: círculos de menor radio por categoría.
     - Puntos: mediciones individuales.
     - Campo: muestra/oculta el perímetro.
     - Marcas: muestra/oculta bebederos, comederos, aguadas, etc.

Mejoras v6:
  - Se redujo el tamaño de los círculos para evitar manchas grandes superpuestas.
  - Se agregó modo "Superficie IDW" para interpolación visual.
  - Se agregaron ajustes visuales: radio, suavizado, radio de zonas, resolución y opacidad.
  - El perímetro del campo queda en una capa superior para no perderse debajo del mapa de calor.
  - Se agregaron tarjetas de resumen sobre el mapa.
  - Se mejoró la lista de marcas con opción de eliminación.
  - Se profesionalizó CSS e interfaz.

Guardado sin base de datos:
  - Botón "Guardar informe en servidor": crea dos archivos en /informes:
      * .html: informe imprimible.
      * .json: proyecto completo con datos, campo, marcas y ajustes visuales.
  - Botón "Exportar proyecto JSON": descarga el proyecto completo al equipo.
  - Campo "Importar proyecto JSON": permite reabrir un trabajo guardado, incluyendo marcas manuales.
  - Botón "Imprimir / guardar PDF": usa la impresión del navegador para guardar PDF.

Campos CSV esperados:
  - lat / lon
  - signal
  - rsrq
  - rssnr
  - carrier
  - radiotype
  - cellid
  - area o tac
  - unit o pci
  - band
  - time

Limitación real:
  - Este dashboard no guarda en base de datos.
  - El HTML guardado no incluye una captura estática del mapa; el proyecto JSON sí conserva datos, marcas y campo para reabrir el trabajo.
  - KMZ no está soportado directamente porque es un ZIP; exportar/descomprimir a KML.
