PLANTILLA DE FICHA DINÁMICA IMPORTABLE · EMMDH · v1.2

1. ESTRUCTURA
El ZIP debe incluir manifest.json y el archivo HTML indicado en «entry».
Puedes añadir CSS, JavaScript, imágenes, audio, vídeo, fuentes y PDF mediante rutas relativas.

2. IDENTIFICADOR ESTABLE
«id» identifica la ficha dentro del motor común. No es una URL y no debe cambiar al actualizar el contenido.
Conserva el mismo «id» al publicar una nueva versión y aumenta «version».
El título visible, el slug, el nombre del ZIP y la carpeta pueden cambiar sin romper la navegación.

3. DESTINOS RELACIONADOS
manifest.json puede declarar «relatedDestinations» con dos tipos iniciales:
- "module": módulo registrado por la web. Destinos disponibles: "inicio", "participa", "explora", "matricula" y "admision-matricula".
- "dynamic-sheet": otra ficha identificada por su «id» estable.

Ejemplo:
{
  "type": "module",
  "id": "admision-matricula",
  "label": "Consultar admisión y matrícula"
}

Nunca incluyas URL, route, href ni src dentro de un destino relacionado.
Si el destino todavía no está publicado, la importación puede continuar con una advertencia.

4. BOTONES DENTRO DE LA FICHA
El puente del visor reconoce directamente:
<button type="button" data-emmdh-destination-type="module" data-emmdh-destination-id="admision-matricula">Abrir</button>

También está disponible desde JavaScript:
window.EMMDHViewer.openDestination('module', 'admision-matricula');
window.EMMDHViewer.openDestination('dynamic-sheet', 'danza');
window.EMMDHViewer.openModule('matricula');
window.EMMDHViewer.back();
window.EMMDHViewer.home();
window.EMMDHViewer.close();

Fuera del visor, assets/script.js muestra una simulación explicativa en vez de dejar el botón inactivo.

5. NAVEGACIÓN INTERNA
Un botón con data-ficha-back o data-emmdh-back solicita «Volver» al historial del visor:
<button type="button" data-ficha-back>Volver</button>

6. TEMAS
En el modo integrado puedes usar estas variables CSS:
--emmdh-primary, --emmdh-secondary, --emmdh-accent, --emmdh-background,
--emmdh-surface, --emmdh-text, --emmdh-muted, --emmdh-border,
--emmdh-radius, --emmdh-shadow, --emmdh-font-title y --emmdh-font-body.

7. SEGURIDAD
Incluye todas las dependencias en el ZIP. No se admiten PHP, configuraciones de servidor,
rutas absolutas, enlaces simbólicos ni archivos ejecutables. Formularios, descargas y
conexiones externas comienzan bloqueados. El visor solo acepta identificadores registrados.

8. PRUEBA Y PUBLICACIÓN
Sube el ZIP como borrador, revisa el informe de seguridad y utiliza Previsualizar.
Comprueba Móvil, Tableta, Ordenador y Completa. Solo después cambia el estado a Publicado.

9. DISEÑO RESPONSIVE
No fijes anchos superiores a la pantalla. Usa imágenes adaptables, controles táctiles,
foco visible, textos alternativos y prefers-reduced-motion cuando exista animación.

10. ENFOQUE Y ALTURA
El visor ajusta la altura al contenido real. Para navegar dentro de la ficha usa enlaces a #id o data-emmdh-target="id"; el motor común estabiliza el desplazamiento, respeta la cabecera y evita saltos repetidos.


11. EXPORTACIÓN COMÚN
Para habilitar impresión/PDF y descarga PNG, declara capabilities y export en manifest.json.
Todo el contenido exportable debe estar dentro de #emmdh-sheet-export. Los controles que no deban aparecer llevarán .no-export o data-no-export.
Usa botones data-emmdh-print y data-emmdh-download-image. La ficha no debe incluir jsPDF, html2canvas ni librerías remotas: el visor común realiza la exportación.
