<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Clave informática</title>
	<atom:link href="https://claveinformatica.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://claveinformatica.com/</link>
	<description></description>
	<lastBuildDate>Tue, 13 Oct 2026 18:29:25 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.3</generator>

<image>
	<url>https://claveinformatica.com/wp-content/uploads/icono-1-150x150.png</url>
	<title>Clave informática</title>
	<link>https://claveinformatica.com/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Guía DeCA: ¿tu almacén está cubierto?</title>
		<link>https://claveinformatica.com/guia-deca-tu-almacen-esta-cubierto/</link>
		
		<dc:creator><![CDATA[Clave Informática]]></dc:creator>
		<pubDate>Tue, 13 Oct 2026 18:24:37 +0000</pubDate>
				<category><![CDATA[Documentos estratégicos]]></category>
		<category><![CDATA[ERPClave]]></category>
		<category><![CDATA[ERP última generación]]></category>
		<category><![CDATA[Normativa]]></category>
		<guid isPermaLink="false">https://claveinformatica.com/?p=1245</guid>

					<description><![CDATA[<p>Qué tiene que llevar tu furgoneta con la nueva normativa DeCA, caso por caso. Desde el pasado día 5 de octubre, cada transporte público de mercancías por carretera en España tiene que llevar el DeCA, el nuevo documento electrónico de control. Estos días muchos distribuidores, fabricantes con logística, o empresas de servicios técnicos con transporte [&#8230;]</p>
<p>La entrada <a rel="nofollow" href="https://claveinformatica.com/guia-deca-tu-almacen-esta-cubierto/">Guía DeCA: ¿tu almacén está cubierto?</a> se publicó primero en <a rel="nofollow" href="https://claveinformatica.com">Clave informática</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><strong>Qué tiene que llevar tu furgoneta con la nueva normativa DeCA, caso por caso</strong>.</p>



<p class="wp-block-paragraph">Desde el pasado día 5 de octubre, cada transporte público de mercancías por carretera en España tiene que llevar el DeCA, el nuevo documento electrónico de control. Estos días muchos distribuidores, fabricantes con logística, o empresas de servicios técnicos con transporte nos preguntan lo mismo: ¿me afecta?</p>



<p class="wp-block-paragraph">En un almacén con transporte conviven casi todas las situaciones que contempla la norma: el cliente que recoge, el reparto con tu furgoneta, el técnico que lleva piezas, el transportista al que llamas directamente para una carga grande. Cada una tiene una respuesta distinta, y en alguna la obligación es tuya aunque el camión no lo sea.</p>



<p class="wp-block-paragraph">Y si mueves producto sujeto a ADR, el DeCA no sustituye a la documentación que ya llevabas.</p>



<p class="wp-block-paragraph">Lo hemos ordenado en una guía práctica que puedes descargar gratis: un esquema de decisión, lo que debe viajar a bordo en cada caso y una lista de comprobación para repasarlo con tu equipo.</p>



<p class="wp-block-paragraph">  <strong><a href="https://www.erpclave.es/wp-content/uploads/DeCA_Guia_practica_Clave.pdf" target="_blank" rel="noreferrer noopener">Descarga la guía práctica del DeCA aquí</a></strong>.</p>



<p class="wp-block-paragraph"></p>
<p>La entrada <a rel="nofollow" href="https://claveinformatica.com/guia-deca-tu-almacen-esta-cubierto/">Guía DeCA: ¿tu almacén está cubierto?</a> se publicó primero en <a rel="nofollow" href="https://claveinformatica.com">Clave informática</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Cómo saber el estado de un pedido sin llamar a fábrica</title>
		<link>https://claveinformatica.com/como-saber-el-estado-de-un-pedido-sin-llamar-a-fabrica/</link>
		
		<dc:creator><![CDATA[Clave Informática]]></dc:creator>
		<pubDate>Tue, 06 Oct 2026 09:33:20 +0000</pubDate>
				<category><![CDATA[Sin categoría]]></category>
		<guid isPermaLink="false">https://claveinformatica.com/?p=1242</guid>

					<description><![CDATA[<p>A ver si te suena: un cliente pregunta cuándo le llega su pedido. El comercial llama a producción. Producción abre el Excel, no lo tiene claro y pregunta al encargado. El encargado está en la línea y contesta a la hora de comer. El comercial devuelve la llamada a media tarde, con una fecha que [&#8230;]</p>
<p>La entrada <a rel="nofollow" href="https://claveinformatica.com/como-saber-el-estado-de-un-pedido-sin-llamar-a-fabrica/">Cómo saber el estado de un pedido sin llamar a fábrica</a> se publicó primero en <a rel="nofollow" href="https://claveinformatica.com">Clave informática</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">A ver si te suena: un cliente pregunta cuándo le llega su pedido. El comercial llama a producción. Producción abre el Excel, no lo tiene claro y pregunta al encargado. El encargado está en la línea y contesta a la hora de comer. El comercial devuelve la llamada a media tarde, con una fecha que ya ha cambiado dos veces.</p>



<p class="wp-block-paragraph">Tres llamadas para una fecha. Y la semana que viene, otras tres. El problema es que el pedido y la fábrica van por circuitos y espacios distintos.</p>



<p class="wp-block-paragraph">El pedido está en administración. La planificación, en un Excel. La receta, en una carpeta. El consumo real, en un parte de papel que alguien teclea al día siguiente. Cada vez que alguien necesita saber algo, recorre esa cadena a mano, y cada tramo es una llamada, una espera o una fecha dicha de memoria.</p>



<p class="wp-block-paragraph">Y todo eso puede cambiar sin trazabilidad ni avisos a tiempo.</p>



<p class="wp-block-paragraph">Hemos dibujado ese recorrido en una página: las ocho paradas por las que pasa un pedido desde que entra hasta que sale, qué se pierde en cada una —tiempo, margen o información— y una pregunta para hacerle a tu equipo en cada parada. Sirve para localizar en cuál se te atasca a ti.</p>



<p class="wp-block-paragraph"><a href="https://claveinformatica.com/wp-content/uploads/Infografia_Recorrido_de_un_Pedido_por_Fabrica_ERP_Clave.pdf"><strong>DESCARGAR EL MAPA: EL RECORRIDO DE UN PEDIDO POR FÁBRICA</strong></a></p>



<p class="wp-block-paragraph">Es una página. Imprímela y repásala con producción y con el comercial que más llama.</p>



<p class="wp-block-paragraph">P. D. Con ERP Clave, el pedido, la orden de fabricación y lo que consumió están en el mismo sistema, y el estado de cada orden se ve en el panel de producción sin llamar a nadie. Si quieres verlo con tu operativa, pide una demostración personalizada.</p>
<p>La entrada <a rel="nofollow" href="https://claveinformatica.com/como-saber-el-estado-de-un-pedido-sin-llamar-a-fabrica/">Cómo saber el estado de un pedido sin llamar a fábrica</a> se publicó primero en <a rel="nofollow" href="https://claveinformatica.com">Clave informática</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Cómo tener a mano el historial de cada equipo del cliente</title>
		<link>https://claveinformatica.com/como-tener-a-mano-el-historial-de-cada-equipo-del-cliente/</link>
		
		<dc:creator><![CDATA[Clave Informática]]></dc:creator>
		<pubDate>Tue, 06 Oct 2026 09:25:31 +0000</pubDate>
				<category><![CDATA[Sin categoría]]></category>
		<guid isPermaLink="false">https://claveinformatica.com/?p=1235</guid>

					<description><![CDATA[<p>El técnico llega a la avería. El cliente le dice que «esto ya lo arreglasteis en primavera». El técnico no lo sabe: ni qué se cambió, ni quién fue, ni si el equipo sigue en garantía. Llama a la oficina. En la oficina lo buscan en el correo, en un Excel y en la memoria [&#8230;]</p>
<p>La entrada <a rel="nofollow" href="https://claveinformatica.com/como-tener-a-mano-el-historial-de-cada-equipo-del-cliente/">Cómo tener a mano el historial de cada equipo del cliente</a> se publicó primero en <a rel="nofollow" href="https://claveinformatica.com">Clave informática</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">El técnico llega a la avería. El cliente le dice que «esto ya lo arreglasteis en primavera». El técnico no lo sabe: ni qué se cambió, ni quién fue, ni si el equipo sigue en garantía. Llama a la oficina. En la oficina lo buscan en el correo, en un Excel y en la memoria de quien fue aquel día. Mientras tanto, él diagnostica desde cero.</p>



<p class="wp-block-paragraph">Si acierta, pierde media hora. Si no acierta, hay segunda visita. Y si la pieza estaba en garantía y se cobra, o no lo estaba y se regala, nadie se entera hasta que el cliente llama para discutir la factura.</p>



<p class="wp-block-paragraph">Lo que se sabe de un equipo lo tienes repartido entre tres sitios y las cabezas de dos personas, si acaso se acuerdan de los detalles, y ninguno va en la furgoneta.</p>



<p class="wp-block-paragraph">Pasa todos los días, y es solo la tercera parada de un recorrido que hace cada aviso desde que entra por teléfono hasta que se factura. Lo hemos dibujado en una página: las ocho paradas por las que pasa un aviso, qué información se pierde en cada una y una pregunta para hacerle a tu equipo.</p>



<p class="wp-block-paragraph"><a href="https://claveinformatica.com/wp-content/uploads/Infografia_El_Viaje_de_un_Aviso_ERP_Clave.pdf"><strong>DESCARGAR EL MAPA: EL VIAJE DE UN AVISO, DEL TELÉFONO A LA FACTURA</strong></a></p>



<p class="wp-block-paragraph">Una página. Repásala con el responsable de servicio y con administración: verán el mismo aviso desde dos lados.</p>



<p class="wp-block-paragraph">P. D. Con ERP Clave, cada equipo tiene su ficha —garantía, contrato, intervenciones y piezas— y el técnico la lleva en el móvil. Es el mismo módulo con el que gestionamos nuestro propio servicio técnico. Si quieres verlo con tus contratos, pide una demostración personalizada.</p>
<p>La entrada <a rel="nofollow" href="https://claveinformatica.com/como-tener-a-mano-el-historial-de-cada-equipo-del-cliente/">Cómo tener a mano el historial de cada equipo del cliente</a> se publicó primero en <a rel="nofollow" href="https://claveinformatica.com">Clave informática</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Le has servido y aún te debe lo de julio</title>
		<link>https://claveinformatica.com/le-has-servido-y-aun-te-debe-lo-de-julio/</link>
		
		<dc:creator><![CDATA[Clave Informática]]></dc:creator>
		<pubDate>Sat, 03 Oct 2026 17:11:54 +0000</pubDate>
				<category><![CDATA[ERPClave]]></category>
		<category><![CDATA[ERP última generación]]></category>
		<category><![CDATA[Gestión de caja]]></category>
		<guid isPermaLink="false">https://claveinformatica.com/?p=1231</guid>

					<description><![CDATA[<p>Imagina que es un lunes de campaña. Un agricultor cliente habitual llama a primera hora: necesita abono y un par de productos para tratar esta semana. Se le prepara el pedido y se le sirve. El viernes, repasando cuentas, alguien ve que todavía debe lo de agosto. Y parte de lo de julio. No es [&#8230;]</p>
<p>La entrada <a rel="nofollow" href="https://claveinformatica.com/le-has-servido-y-aun-te-debe-lo-de-julio/">Le has servido y aún te debe lo de julio</a> se publicó primero en <a rel="nofollow" href="https://claveinformatica.com">Clave informática</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Imagina que es un lunes de campaña. Un agricultor cliente habitual llama a primera hora: necesita abono y un par de productos para tratar esta semana. Se le prepara el pedido y se le sirve.</p>



<p class="wp-block-paragraph">El viernes, repasando cuentas, alguien ve que todavía debe lo de agosto. Y parte de lo de julio.</p>



<p class="wp-block-paragraph">No es que nadie haya hecho nada mal. El aviso de que tenía pagos pendientes estaba en su ficha, que es lo que ven en la oficina, pero el pedido lo atendió quien estaba en el mostrador, un poco apurado con tres personas esperando.</p>



<p class="wp-block-paragraph"><strong>En campaña el problema suele ser que quien sirve no sabe, en ese momento, cuánto debe ya ese cliente. Y a lo mejor resulta más cómodo imprimirle el estado de cuenta mientras está delante, como recordatorio suave, que tener que llamarle.</strong></p>



<p class="wp-block-paragraph">Hemos reunido en dos páginas diez reglas sencillas para vender a crédito sin perder la cuenta de lo que te deben: desde ponerle un límite a cada cliente antes de la campaña hasta decidir quién puede autorizar que se sirva a quien tiene facturas pendientes.</p>



<p class="wp-block-paragraph">Se pueden aplicar desde mañana, con el programa que uses hoy a poco que sea mínimamente moderno y funcional.</p>



<p class="wp-block-paragraph"><strong><a href="https://www.erpclave.es/wp-content/uploads/Decalogo-cobros-en-campana-·-ERP-Clave.pdf" target="_blank" rel="noreferrer noopener">D</a><a href="https://www.erpclave.es/wp-content/uploads/Decalogo-cobros-en-campana-·-ERP-Clave.pdf">ESCARGA LAS 10 REGLAS</a></strong></p>



<p class="wp-block-paragraph">P. D. Si quieres ver cómo se lleva todo esto con ERP Clave, con el pedido, el albarán, la factura y el cobro en el mismo sitio, te lo enseñamos en una demostración con uno de nuestros consultores, preparada con tu forma de trabajar: <a href="https://claveinformatica.com/contacto/"><strong>https://claveinformatica.com/contacto/</strong></a></p>
<p>La entrada <a rel="nofollow" href="https://claveinformatica.com/le-has-servido-y-aun-te-debe-lo-de-julio/">Le has servido y aún te debe lo de julio</a> se publicó primero en <a rel="nofollow" href="https://claveinformatica.com">Clave informática</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Dinero parado en tu almacén</title>
		<link>https://claveinformatica.com/dinero-parado-en-tu-almacen/</link>
		
		<dc:creator><![CDATA[Clave Informática]]></dc:creator>
		<pubDate>Mon, 28 Sep 2026 07:25:29 +0000</pubDate>
				<category><![CDATA[Documentos estratégicos]]></category>
		<category><![CDATA[ERP última generación]]></category>
		<category><![CDATA[Gestión de inventario]]></category>
		<category><![CDATA[Gestión empresarial]]></category>
		<guid isPermaLink="false">https://claveinformatica.com/?p=1219</guid>

					<description><![CDATA[<p>Los estudios internacionales muestran que las empresas que modernizan su ERP reducen entre un 11 % y un 22 % sus costes de inventario y mejoran sus plazos y servicio al cliente. Te compartimos un documento breve que resume los datos y casos reales de impacto económico: 👉 [Descarga directa, sin formulario, “Dinero en tu [&#8230;]</p>
<p>La entrada <a rel="nofollow" href="https://claveinformatica.com/dinero-parado-en-tu-almacen/">Dinero parado en tu almacén</a> se publicó primero en <a rel="nofollow" href="https://claveinformatica.com">Clave informática</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Los estudios internacionales muestran que las empresas que modernizan su ERP reducen entre un <strong>11 % y un 22 % sus costes de inventario</strong> y mejoran sus plazos y servicio al cliente.</p>



<p class="wp-block-paragraph">Te compartimos un documento breve que resume los datos y casos reales de impacto económico:</p>



<p class="wp-block-paragraph"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f449.png" alt="👉" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>[<a href="https://1drv.ms/b/c/cf33d3b825f740c6/IQBZmYsKQks_TJDTlvvtgE18AYk2sgfJpJOL0aaFqQI-Olg?e=WBNOgF" target="_blank" rel="noreferrer noopener">Descarga directa, sin formulario, “Dinero en tu almacén”</a>]</strong></p>



<p class="wp-block-paragraph">ERPClave mejora la rentabilidad del stock y la satisfacción de los clientes, integrando ventas, compras, almacén y finanzas con control total de stock, trazabilidad y cumplimiento normativo, incluso con acceso móvil.Una inversión con retorno medible y rápido.</p>



<p class="wp-block-paragraph"><strong>Si le interesa una demo sin compromiso, estamos a su disposición para agendarla.</strong></p>



<p class="wp-block-paragraph"></p>
<p>La entrada <a rel="nofollow" href="https://claveinformatica.com/dinero-parado-en-tu-almacen/">Dinero parado en tu almacén</a> se publicó primero en <a rel="nofollow" href="https://claveinformatica.com">Clave informática</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Autoevaluación de Cumplimiento Normativo RETO/ROPO, ADR y Carta de Porte 2025-2026</title>
		<link>https://claveinformatica.com/autoevaluacion-de-cumplimiento-normativo-reto-ropo-adr-y-carta-de-porte-2025-2026/</link>
		
		<dc:creator><![CDATA[Clave Informática]]></dc:creator>
		<pubDate>Sun, 29 Mar 2026 11:48:10 +0000</pubDate>
				<category><![CDATA[Sin categoría]]></category>
		<guid isPermaLink="false">https://claveinformatica.com/?p=1142</guid>

					<description><![CDATA[<p>Herramienta INTERACTIVA PERSONALIZADA de autoevaluación para empresas del sector fitosanitario y agrícola ante la entrada en vigor escalonada de las nuevas normativas 2025 y 2026, cuyos últimos requisites serán exigibles desde el 7 de abril de 2026. Haga click en las preguntas de cada bloque normativo, y obtenga su situación y recomendaciones personalizadas. Checklist de [&#8230;]</p>
<p>La entrada <a rel="nofollow" href="https://claveinformatica.com/autoevaluacion-de-cumplimiento-normativo-reto-ropo-adr-y-carta-de-porte-2025-2026/">Autoevaluación de Cumplimiento Normativo RETO/ROPO, ADR y Carta de Porte 2025-2026</a> se publicó primero en <a rel="nofollow" href="https://claveinformatica.com">Clave informática</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="1142" class="elementor elementor-1142" data-elementor-post-type="post">
							<div class="elementor-element elementor-element-19673791 e-flex e-con-boxed e-con e-parent" data-id="19673791" data-element_type="container" data-settings="{&quot;content_width&quot;:&quot;boxed&quot;}" data-core-v316-plus="true">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-30a60424 elementor-widget elementor-widget-text-editor" data-id="30a60424" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
			<style>/*! elementor - v3.16.0 - 20-09-2023 */
.elementor-widget-text-editor.elementor-drop-cap-view-stacked .elementor-drop-cap{background-color:#69727d;color:#fff}.elementor-widget-text-editor.elementor-drop-cap-view-framed .elementor-drop-cap{color:#69727d;border:3px solid;background-color:transparent}.elementor-widget-text-editor:not(.elementor-drop-cap-view-default) .elementor-drop-cap{margin-top:8px}.elementor-widget-text-editor:not(.elementor-drop-cap-view-default) .elementor-drop-cap-letter{width:1em;height:1em}.elementor-widget-text-editor .elementor-drop-cap{float:left;text-align:center;line-height:1;font-size:50px}.elementor-widget-text-editor .elementor-drop-cap-letter{display:inline-block}</style>				
<p class="wp-block-paragraph">Herramienta <strong>INTERACTIVA PERSONALIZADA</strong> de autoevaluación para empresas del sector fitosanitario y agrícola ante la entrada en vigor escalonada de las nuevas normativas 2025 y 2026, cuyos últimos requisites serán exigibles desde el 7 de abril de 2026. <strong>Haga click en las preguntas de cada bloque normativo, y obtenga su situación y recomendaciones personalizadas.</strong></p>
						</div>
				</div>
				<div class="elementor-element elementor-element-9ef4cb6 elementor-widget elementor-widget-html" data-id="9ef4cb6" data-element_type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
			<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Checklist de Cumplimiento Normativo 2026 — ERPClave</title>
<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700;800&family=Open+Sans:wght@400;500;600;700&display=swap" rel="stylesheet">
<style>
  *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

  /* ── WordPress isolation: prevent theme overrides ── */
  .checklist-app h1,
  .checklist-app h2,
  .checklist-app h3,
  .checklist-app h4 {
    margin: 0;
    padding: 0;
    border: none;
    letter-spacing: normal;
  }
  .checklist-app a {
    text-decoration: none;
  }
  .checklist-app p {
    margin: 0;
    padding: 0;
  }
  .checklist-app ul, .checklist-app li {
    margin: 0;
    padding: 0;
  }
  .hero h1,
  .hero h2,
  .hero h3,
  .hero p,
  .hero a,
  .hero span,
  .results-header h2,
  .results-header p,
  .cta-block h3,
  .cta-block p {
    color: #ffffff !important;
  }
  .hero h1 span {
    color: var(--brand-mid) !important;
  }
  .hero-subtitle {
    color: rgba(255,255,255,0.7) !important;
  }
  .hero-badge {
    color: var(--brand-mid) !important;
  }
  .results-header p {
    color: rgba(255,255,255,0.75) !important;
  }
  .cta-block p {
    color: rgba(255,255,255,0.7) !important;
  }

  :root {
    /* ── ERPClave Brand Blues ── */
    --brand-dark: #2b5a87;        /* "erp" text navy */
    --brand-mid: #5ca0d6;         /* cloud arch blue */
    --brand-light: #8db8da;       /* "Clave" gray-blue */
    --brand-pale: #e8f1f8;        /* tinted background */
    --brand-wash: #f3f8fc;        /* lightest wash */

    /* ── Surfaces ── */
    --color-bg: #f5f8fb;
    --color-surface: #ffffff;
    --color-border: #dce5ee;
    --color-border-light: #e8eff5;

    /* ── Text ── */
    --color-text: #1e3a54;
    --color-text-muted: #6a8299;

    /* ── Section Accents ── */
    --color-section-reto: #2b5a87;
    --color-section-ropo: #3a7cb8;
    --color-section-adr: #b8652a;
    --color-section-carta: #5b7a3e;

    /* ── Status Colors ── */
    --color-green: #2d8a4e;
    --color-green-bg: #e6f5ec;
    --color-green-border: #b8dfc8;
    --color-yellow: #b8860b;
    --color-yellow-bg: #fef8e8;
    --color-yellow-border: #eed9a0;
    --color-red: #c0392b;
    --color-red-bg: #fce8e6;
    --color-red-border: #f0b8b2;

    /* ── Misc ── */
    --shadow-sm: 0 1px 3px rgba(43,90,135,0.06);
    --shadow-md: 0 4px 16px rgba(43,90,135,0.08);
    --shadow-lg: 0 8px 32px rgba(43,90,135,0.10);
    --radius: 12px;
    --radius-sm: 8px;
  }

  body {
    font-family: 'Open Sans', -apple-system, BlinkMacSystemFont, sans-serif;
    background: var(--color-bg);
    color: var(--color-text);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
  }

  .checklist-app {
    max-width: 960px;
    margin: 0 auto;
    padding: 24px 16px 60px;
  }

  /* ══════════════════════════════════
     HERO HEADER
  ══════════════════════════════════ */
  .hero {
    background: linear-gradient(135deg, var(--brand-dark) 0%, #1c3d5e 55%, #253d56 100%);
    border-radius: var(--radius);
    padding: 48px 40px 40px;
    color: #fff;
    position: relative;
    overflow: hidden;
    margin-bottom: 32px;
  }
  .hero::before {
    content: '';
    position: absolute;
    top: -60%;
    right: -15%;
    width: 520px;
    height: 520px;
    background: radial-gradient(circle, rgba(92,160,214,0.15) 0%, transparent 70%);
    pointer-events: none;
  }
  .hero::after {
    content: '';
    position: absolute;
    bottom: -40%;
    left: -10%;
    width: 400px;
    height: 400px;
    background: radial-gradient(circle, rgba(141,184,218,0.08) 0%, transparent 70%);
    pointer-events: none;
  }
  .hero-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
  }
  .hero-badge {
    display: inline-block;
    background: rgba(92,160,214,0.18);
    color: var(--brand-mid);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    padding: 5px 14px;
    border-radius: 20px;
    border: 1px solid rgba(92,160,214,0.25);
  }
  .hero-logo {
    height: 42px;
    opacity: 0.92;
  }
  .hero h1 {
    font-family: 'Poppins', Georgia, serif;
    font-size: clamp(26px, 4vw, 38px);
    font-weight: 700;
    line-height: 1.2;
    margin-bottom: 10px;
    color: #ffffff !important;
  }
  .hero h1 span {
    color: var(--brand-mid) !important;
  }
  .hero-subtitle {
    font-size: 15px;
    color: rgba(255,255,255,0.7);
    max-width: 640px;
    line-height: 1.55;
  }
  .hero-tags {
    display: flex;
    gap: 10px;
    margin-top: 20px;
    flex-wrap: wrap;
  }
  .hero-tag {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: rgba(255,255,255,0.07);
    border: 1px solid rgba(255,255,255,0.12);
    border-radius: 6px;
    padding: 6px 14px;
    font-size: 13px;
    color: rgba(255,255,255,0.85);
    font-weight: 500;
  }
  .hero-tag .dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
  }
  .hero-cta-btn {
    display: inline-block;
    margin-top: 24px;
    background: var(--brand-mid);
    color: #fff;
    font-family: 'Open Sans', sans-serif;
    font-size: 14px;
    font-weight: 700;
    padding: 14px 28px;
    border-radius: 8px;
    text-decoration: none;
    transition: transform 0.15s, box-shadow 0.15s, background 0.15s;
    position: relative;
  }
  .hero-cta-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 24px rgba(92,160,214,0.35);
    background: #6db3e0;
  }

  /* ══════════════════════════════════
     EXPORT BAR
  ══════════════════════════════════ */
  .export-bar {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-bottom: 20px;
  }
  .export-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 10px 20px;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: 8px;
    font-family: 'Open Sans', sans-serif;
    font-size: 13px;
    font-weight: 600;
    color: var(--color-text);
    cursor: pointer;
    transition: all 0.15s;
  }
  .export-btn:hover {
    background: var(--brand-dark);
    color: #fff;
    border-color: var(--brand-dark);
  }

  /* ══════════════════════════════════
     SCORING DASHBOARD
  ══════════════════════════════════ */
  .dashboard {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
    gap: 12px;
    margin-bottom: 28px;
  }
  .score-card {
    background: var(--color-surface);
    border-radius: var(--radius-sm);
    padding: 18px 16px;
    text-align: center;
    box-shadow: var(--shadow-sm);
    border: 1px solid var(--color-border);
    transition: box-shadow 0.2s;
  }
  .score-card:hover { box-shadow: var(--shadow-md); }
  .score-card.total {
    border-color: var(--brand-mid);
    background: linear-gradient(to bottom, var(--brand-wash), #fff);
  }
  .score-label {
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    color: var(--color-text-muted);
    margin-bottom: 6px;
  }
  .score-value {
    font-family: 'Poppins', Georgia, serif;
    font-size: 28px;
    font-weight: 700;
    color: var(--brand-dark);
  }
  .score-card.total .score-value { color: var(--brand-dark); }
  .score-percent {
    font-size: 12px;
    font-weight: 600;
    margin-top: 2px;
  }
  .score-bar-track {
    height: 4px;
    background: var(--color-border-light);
    border-radius: 4px;
    margin-top: 8px;
    overflow: hidden;
  }
  .score-bar-fill {
    height: 100%;
    border-radius: 4px;
    transition: width 0.5s ease;
    width: 0%;
  }

  /* ══════════════════════════════════
     LEVEL INDICATOR
  ══════════════════════════════════ */
  .level-strip {
    background: var(--color-surface);
    border-radius: var(--radius-sm);
    padding: 18px 24px;
    margin-bottom: 28px;
    display: flex;
    align-items: center;
    gap: 20px;
    box-shadow: var(--shadow-sm);
    border: 1px solid var(--color-border);
    flex-wrap: wrap;
  }
  .level-indicator {
    display: flex;
    align-items: center;
    gap: 10px;
  }
  .level-dot {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    animation: pulse 2s infinite;
  }
  @keyframes pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.5; }
  }
  .level-text { font-weight: 700; font-size: 15px; }
  .level-recommendation {
    font-size: 13px;
    color: var(--color-text-muted);
    flex: 1;
    min-width: 200px;
  }

  /* ══════════════════════════════════
     SECTION NAVIGATION
  ══════════════════════════════════ */
  .section-nav {
    display: flex;
    gap: 8px;
    margin-bottom: 24px;
    flex-wrap: wrap;
  }
  .section-nav-btn {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 10px 18px;
    border: 2px solid var(--color-border);
    border-radius: 8px;
    background: var(--color-surface);
    font-family: 'Open Sans', sans-serif;
    font-size: 13px;
    font-weight: 600;
    color: var(--color-text-muted);
    cursor: pointer;
    transition: all 0.2s;
  }
  .section-nav-btn:hover {
    border-color: var(--brand-mid);
    color: var(--brand-dark);
  }
  .section-nav-btn.active {
    background: var(--brand-dark);
    border-color: var(--brand-dark);
    color: #fff;
  }
  .section-nav-btn .nav-count {
    font-size: 11px;
    background: rgba(0,0,0,0.08);
    padding: 2px 7px;
    border-radius: 10px;
  }
  .section-nav-btn.active .nav-count {
    background: rgba(255,255,255,0.2);
  }

  /* ══════════════════════════════════
     CHECKLIST SECTIONS
  ══════════════════════════════════ */
  .checklist-section {
    background: var(--color-surface);
    border-radius: var(--radius);
    box-shadow: var(--shadow-sm);
    border: 1px solid var(--color-border);
    margin-bottom: 20px;
    overflow: hidden;
    transition: opacity 0.3s, transform 0.3s;
  }
  .checklist-section.hidden { display: none; }
  .section-header {
    padding: 24px 28px 20px;
    border-bottom: 1px solid var(--color-border);
    position: relative;
  }
  .section-header::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 4px;
  }
  .section-header h2 {
    font-family: 'Poppins', Georgia, serif;
    font-size: 22px;
    font-weight: 700;
    margin-bottom: 4px;
  }
  .section-header p {
    font-size: 14px;
    color: var(--color-text-muted);
  }

  /* Section colors */
  .section-reto .section-header::before  { background: var(--color-section-reto); }
  .section-reto .section-header h2       { color: var(--color-section-reto); }
  .section-ropo .section-header::before  { background: var(--color-section-ropo); }
  .section-ropo .section-header h2       { color: var(--color-section-ropo); }
  .section-adr .section-header::before   { background: var(--color-section-adr); }
  .section-adr .section-header h2        { color: var(--color-section-adr); }
  .section-carta .section-header::before { background: var(--color-section-carta); }
  .section-carta .section-header h2      { color: var(--color-section-carta); }

  /* ══════════════════════════════════
     CHECKLIST ITEMS
  ══════════════════════════════════ */
  .check-item {
    padding: 20px 28px;
    border-bottom: 1px solid var(--color-border-light);
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 16px;
    align-items: center;
    transition: background 0.15s;
  }
  .check-item:last-child { border-bottom: none; }
  .check-item:hover { background: var(--brand-wash); }
  .check-item-info { min-width: 0; }
  .check-item-badge {
    display: inline-block;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    padding: 3px 10px;
    border-radius: 4px;
    margin-bottom: 6px;
  }
  .badge-obligatorio {
    background: var(--brand-pale);
    color: var(--brand-dark);
  }
  .badge-obligatorio-warn {
    background: #fce8e6;
    color: #c0392b;
  }
  .check-item-title {
    font-size: 15px;
    font-weight: 600;
    color: var(--color-text);
    margin-bottom: 3px;
  }
  .check-item-desc {
    font-size: 13px;
    color: var(--color-text-muted);
    line-height: 1.45;
  }
  .check-options {
    display: flex;
    gap: 6px;
    flex-shrink: 0;
  }
  .check-option {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 7px 12px;
    border: 2px solid var(--color-border);
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.15s;
    font-size: 12px;
    font-weight: 600;
    color: var(--color-text-muted);
    background: #fff;
    user-select: none;
    white-space: nowrap;
  }
  .check-option:hover { border-color: var(--brand-light); }
  .check-option.selected-si {
    background: var(--color-green-bg);
    border-color: var(--color-green-border);
    color: var(--color-green);
  }
  .check-option.selected-proceso {
    background: var(--color-yellow-bg);
    border-color: var(--color-yellow-border);
    color: var(--color-yellow);
  }
  .check-option.selected-no {
    background: var(--color-red-bg);
    border-color: var(--color-red-border);
    color: var(--color-red);
  }

  /* ══════════════════════════════════
     RESULTS PANEL (appears inline after completing)
  ══════════════════════════════════ */
  .results-panel {
    display: none;
    margin-bottom: 28px;
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: var(--shadow-lg);
    animation: resultsSlideIn 0.5s ease;
  }
  .results-panel.visible {
    display: block;
  }
  @keyframes resultsSlideIn {
    from { opacity: 0; transform: translateY(20px); }
    to   { opacity: 1; transform: translateY(0); }
  }
  .results-header {
    padding: 28px 32px 20px;
    color: #fff;
    position: relative;
    overflow: hidden;
  }
  .results-header::before {
    content: '';
    position: absolute;
    top: -50%; right: -15%;
    width: 300px; height: 300px;
    background: radial-gradient(circle, rgba(255,255,255,0.08) 0%, transparent 70%);
    pointer-events: none;
  }
  .results-header h2 {
    font-family: 'Poppins', sans-serif;
    font-size: 20px;
    font-weight: 700;
    color: #ffffff !important;
    margin-bottom: 4px;
    position: relative;
  }
  .results-header p {
    font-size: 14px;
    color: rgba(255,255,255,0.75);
    position: relative;
  }
  .results-body {
    background: var(--color-surface);
    padding: 24px 32px 28px;
  }
  .results-scores {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    margin-bottom: 20px;
  }
  .results-score-item {
    text-align: center;
    padding: 14px 8px;
    border-radius: var(--radius-sm);
    background: var(--brand-wash);
    border: 1px solid var(--color-border-light);
  }
  .results-score-item .rsi-label {
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    color: var(--color-text-muted);
    margin-bottom: 4px;
  }
  .results-score-item .rsi-value {
    font-family: 'Poppins', sans-serif;
    font-size: 22px;
    font-weight: 700;
  }
  .results-total-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 18px 20px;
    border-radius: var(--radius-sm);
    margin-bottom: 16px;
  }
  .results-total-left {
    display: flex;
    align-items: center;
    gap: 12px;
  }
  .results-total-dot {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    animation: pulse 2s infinite;
  }
  .results-total-label {
    font-weight: 700;
    font-size: 17px;
  }
  .results-total-pct {
    font-family: 'Poppins', sans-serif;
    font-size: 32px;
    font-weight: 800;
  }
  .results-recommendation {
    padding: 16px 20px;
    border-radius: var(--radius-sm);
    background: var(--brand-wash);
    border-left: 4px solid var(--brand-mid);
    font-size: 14px;
    color: var(--color-text);
    line-height: 1.55;
    margin-bottom: 16px;
  }
  .results-recommendation strong {
    display: block;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    color: var(--color-text-muted);
    margin-bottom: 4px;
  }
  .results-cta {
    text-align: center;
    padding-top: 8px;
  }
  .results-cta .cta-btn {
    display: inline-block;
    background: var(--brand-mid);
    color: #fff !important;
    font-family: 'Open Sans', sans-serif;
    font-size: 14px;
    font-weight: 700;
    padding: 14px 28px;
    border-radius: 8px;
    text-decoration: none;
    transition: transform 0.15s, box-shadow 0.15s, background 0.15s;
  }
  .results-cta .cta-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 24px rgba(92,160,214,0.35);
    background: #6db3e0;
  }
  @media (max-width: 768px) {
    .results-scores { grid-template-columns: 1fr 1fr; }
    .results-body { padding: 20px 20px 24px; }
    .results-header { padding: 24px 20px 16px; }
    .results-total-row { flex-direction: column; gap: 8px; text-align: center; }
  }

  /* ══════════════════════════════════
     BENEFITS
  ══════════════════════════════════ */
  .benefits-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 16px;
    margin-bottom: 24px;
  }
  .benefit-card {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    padding: 24px 20px;
    box-shadow: var(--shadow-sm);
  }
  .benefit-card h3 {
    font-size: 14px;
    font-weight: 700;
    margin-bottom: 12px;
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--brand-dark);
  }
  .benefit-icon {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    flex-shrink: 0;
  }
  .benefit-list {
    list-style: none;
    font-size: 13px;
    color: var(--color-text-muted);
  }
  .benefit-list li {
    padding: 5px 0;
    padding-left: 16px;
    position: relative;
  }
  .benefit-list li::before {
    content: '→';
    position: absolute;
    left: 0;
    color: var(--brand-mid);
    font-weight: 700;
  }

  /* ══════════════════════════════════
     TIMELINE
  ══════════════════════════════════ */
  .timeline-section {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    padding: 28px;
    margin-bottom: 24px;
    box-shadow: var(--shadow-sm);
  }
  .timeline-section h2 {
    font-family: 'Poppins', Georgia, serif;
    font-size: 22px;
    font-weight: 700;
    color: var(--brand-dark);
    margin-bottom: 20px;
  }
  .timeline {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
  }
  .timeline-step {
    padding: 20px;
    border-radius: var(--radius-sm);
    border-left: 4px solid;
    background: var(--brand-wash);
  }
  .timeline-step-num {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    margin-bottom: 4px;
  }
  .timeline-step h4 {
    font-size: 15px;
    font-weight: 700;
    margin-bottom: 6px;
    color: var(--color-text);
  }
  .timeline-step p {
    font-size: 13px;
    color: var(--color-text-muted);
    margin-bottom: 8px;
  }
  .timeline-tasks {
    list-style: none;
    font-size: 12px;
  }
  .timeline-tasks li {
    padding: 3px 0;
    color: var(--color-text-muted);
  }
  .timeline-tasks li::before {
    content: '✓ ';
    font-weight: 700;
    color: var(--brand-mid);
  }

  /* ══════════════════════════════════
     CTA
  ══════════════════════════════════ */
  .cta-block {
    background: linear-gradient(135deg, var(--brand-dark) 0%, #1c3d5e 100%);
    border-radius: var(--radius);
    padding: 36px 32px;
    color: #fff;
    text-align: center;
    margin-top: 8px;
    position: relative;
    overflow: hidden;
  }
  .cta-block::before {
    content: '';
    position: absolute;
    top: -40%;
    right: -10%;
    width: 300px;
    height: 300px;
    background: radial-gradient(circle, rgba(92,160,214,0.12) 0%, transparent 70%);
    pointer-events: none;
  }
  .cta-block h3 {
    font-family: 'Poppins', Georgia, serif;
    font-size: 22px;
    margin-bottom: 10px;
    position: relative;
  }
  .cta-block p {
    font-size: 14px;
    color: rgba(255,255,255,0.7);
    max-width: 560px;
    margin: 0 auto 20px;
    position: relative;
  }
  .cta-btn {
    display: inline-block;
    background: var(--brand-mid);
    color: #fff;
    font-family: 'Open Sans', sans-serif;
    font-size: 14px;
    font-weight: 700;
    padding: 14px 32px;
    border-radius: 8px;
    text-decoration: none;
    transition: transform 0.15s, box-shadow 0.15s, background 0.15s;
    position: relative;
  }
  .cta-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(92,160,214,0.35);
    background: #6db3e0;
  }

  /* ══════════════════════════════════
     RESPONSIVE
  ══════════════════════════════════ */
  @media (max-width: 768px) {
    .checklist-app { padding: 16px 12px 40px; }
    .hero { padding: 32px 24px; }
    .hero-logo { height: 34px; }
    .dashboard { grid-template-columns: 1fr 1fr; }
    .score-card:last-child { grid-column: 1 / -1; }
    .check-item { grid-template-columns: 1fr; }
    .check-options { flex-wrap: wrap; }
    .benefits-grid { grid-template-columns: 1fr; }
    .timeline { grid-template-columns: 1fr; }
    .level-strip { flex-direction: column; align-items: flex-start; }
  }
  @media (max-width: 480px) {
    .dashboard { grid-template-columns: 1fr; }
    .section-nav { flex-direction: column; }
    .hero h1 { font-size: 24px; }
    .hero-top { flex-direction: column; align-items: flex-start; gap: 12px; }
  }

  /* ── PRINT ── */
  @media print {
    .checklist-section.hidden { display: block !important; }
    .export-bar, .section-nav { display: none; }
    .checklist-app { max-width: 100%; }
  }
</style>
</head>
<body>
<div class="checklist-app" id="checklistApp">

  <!-- ══ HERO ══ -->
  <div class="hero">
    <div class="hero-top">
      <div class="hero-badge">Abril 2026 · Autoevaluación</div>
      <img decoding="async" src="https://www.erpclave.es/wp-content/uploads/thegem-logos/logo_6ccaab6e2f3c7b1c7c93a3ec21ee4c66_1x.png" alt="ERPClave" class="hero-logo" onerror="this.style.display='none'">
    </div>
    <h1>Checklist de Cumplimiento <span>Normativo</span></h1>
    <p class="hero-subtitle">Herramienta de autoevaluación para empresas del sector fitosanitario y agrícola ante la entrada en vigor escalonada de las normativas 2025-2026, cuyos últimos requisitos serán exigibles desde el 7 de abril de 2026.</p>
    <div class="hero-tags">
      <span class="hero-tag"><span class="dot" style="background:var(--brand-mid)"></span>RETO / ROPO</span>
      <span class="hero-tag"><span class="dot" style="background:#d4862a"></span>ADR</span>
      <span class="hero-tag"><span class="dot" style="background:#7ca356"></span>Carta de Porte</span>
    </div>
    <a class="hero-cta-btn" href="https://claveinformatica.com/contacto/" target="_blank" rel="noopener">¿Necesitas ayuda para cumplir? Contacta con nosotros →</a>
  </div>

  <!-- EXPORT -->
  <div class="export-bar">
    <button class="export-btn" onclick="resetAll()">⟲ Reiniciar</button>
    <button class="export-btn" onclick="window.print()">⎙ Imprimir / PDF</button>
  </div>

  <!-- ══ DASHBOARD ══ -->
  <div class="dashboard">
    <div class="score-card" id="card-reto">
      <div class="score-label">RETO</div>
      <div class="score-value" id="score-reto">0</div>
      <div class="score-percent" id="pct-reto" style="color:var(--color-text-muted)">0%</div>
      <div class="score-bar-track"><div class="score-bar-fill" id="bar-reto" style="background:var(--color-section-reto)"></div></div>
    </div>
    <div class="score-card" id="card-ropo">
      <div class="score-label">ROPO</div>
      <div class="score-value" id="score-ropo">0</div>
      <div class="score-percent" id="pct-ropo" style="color:var(--color-text-muted)">0%</div>
      <div class="score-bar-track"><div class="score-bar-fill" id="bar-ropo" style="background:var(--color-section-ropo)"></div></div>
    </div>
    <div class="score-card" id="card-adr">
      <div class="score-label">ADR</div>
      <div class="score-value" id="score-adr">0</div>
      <div class="score-percent" id="pct-adr" style="color:var(--color-text-muted)">0%</div>
      <div class="score-bar-track"><div class="score-bar-fill" id="bar-adr" style="background:var(--color-section-adr)"></div></div>
    </div>
    <div class="score-card" id="card-carta">
      <div class="score-label">Carta Porte</div>
      <div class="score-value" id="score-carta">0</div>
      <div class="score-percent" id="pct-carta" style="color:var(--color-text-muted)">0%</div>
      <div class="score-bar-track"><div class="score-bar-fill" id="bar-carta" style="background:var(--color-section-carta)"></div></div>
    </div>
    <div class="score-card total">
      <div class="score-label">Total</div>
      <div class="score-value" id="score-total">0%</div>
      <div class="score-percent" id="pct-total-label" style="color:var(--color-text-muted)">—</div>
      <div class="score-bar-track"><div class="score-bar-fill" id="bar-total" style="background:var(--brand-mid)"></div></div>
    </div>
  </div>

  <!-- ══ LEVEL ══ -->
  <div class="level-strip" id="levelStrip">
    <div class="level-indicator">
      <div class="level-dot" id="levelDot" style="background:var(--brand-light)"></div>
      <span class="level-text" id="levelText">Complete la evaluación</span>
    </div>
    <span class="level-recommendation" id="levelRec">Marque el estado de cada requisito para obtener su puntuación global de cumplimiento.</span>
  </div>

  <!-- ══ NAV ══ -->
  <div class="section-nav">
    <button class="section-nav-btn active" data-section="all" onclick="filterSection('all', this)">Todas <span class="nav-count">23</span></button>
    <button class="section-nav-btn" data-section="reto" onclick="filterSection('reto', this)">RETO <span class="nav-count">6</span></button>
    <button class="section-nav-btn" data-section="ropo" onclick="filterSection('ropo', this)">ROPO <span class="nav-count">6</span></button>
    <button class="section-nav-btn" data-section="adr" onclick="filterSection('adr', this)">ADR <span class="nav-count">6</span></button>
    <button class="section-nav-btn" data-section="carta" onclick="filterSection('carta', this)">Carta de Porte <span class="nav-count">5</span></button>
  </div>

  <!-- ═══════════════════════════════
       RETO
  ═══════════════════════════════ -->
  <div class="checklist-section section-reto" data-group="reto">
    <div class="section-header">
      <h2>RETO 2025-2026</h2>
      <p>Registro Electrónico de Transacciones — 6 requisitos obligatorios</p>
    </div>
    <div class="check-item" data-section="reto">
      <div class="check-item-info">
        <span class="check-item-badge badge-obligatorio">Obligatorio</span>
        <div class="check-item-title">Presentación por CSV / Webservice</div>
        <div class="check-item-desc">Sistema de presentación mediante archivos CSV o servicios web automáticos para el registro de transacciones.</div>
      </div>
      <div class="check-options">
        <div class="check-option" data-value="2" onclick="selectOption(this)">✓ Sí</div>
        <div class="check-option" data-value="1" onclick="selectOption(this)">◐ Proceso</div>
        <div class="check-option" data-value="0" onclick="selectOption(this)">✗ No</div>
      </div>
    </div>
    <div class="check-item" data-section="reto">
      <div class="check-item-info">
        <span class="check-item-badge badge-obligatorio">Obligatorio</span>
        <div class="check-item-title">Eliminación de plazos estrictos</div>
        <div class="check-item-desc">Registro permitido pasado el mes de plazo, con marca «fuera de plazo». Su sistema gestiona esta casuística correctamente.</div>
      </div>
      <div class="check-options">
        <div class="check-option" data-value="2" onclick="selectOption(this)">✓ Sí</div>
        <div class="check-option" data-value="1" onclick="selectOption(this)">◐ Proceso</div>
        <div class="check-option" data-value="0" onclick="selectOption(this)">✗ No</div>
      </div>
    </div>
    <div class="check-item" data-section="reto">
      <div class="check-item-info">
        <span class="check-item-badge badge-obligatorio">Obligatorio</span>
        <div class="check-item-title">Identificación del comprador</div>
        <div class="check-item-desc">Identificación obligatoria del comprador real por DNI/NIF en cada transacción registrada.</div>
      </div>
      <div class="check-options">
        <div class="check-option" data-value="2" onclick="selectOption(this)">✓ Sí</div>
        <div class="check-option" data-value="1" onclick="selectOption(this)">◐ Proceso</div>
        <div class="check-option" data-value="0" onclick="selectOption(this)">✗ No</div>
      </div>
    </div>
    <div class="check-item" data-section="reto">
      <div class="check-item-info">
        <span class="check-item-badge badge-obligatorio">Obligatorio</span>
        <div class="check-item-title">Control de validación</div>
        <div class="check-item-desc">Mayor control en validación de nombres DC e IP con catálogo actualizado conforme a la normativa vigente.</div>
      </div>
      <div class="check-options">
        <div class="check-option" data-value="2" onclick="selectOption(this)">✓ Sí</div>
        <div class="check-option" data-value="1" onclick="selectOption(this)">◐ Proceso</div>
        <div class="check-option" data-value="0" onclick="selectOption(this)">✗ No</div>
      </div>
    </div>
    <div class="check-item" data-section="reto">
      <div class="check-item-info">
        <span class="check-item-badge badge-obligatorio">Obligatorio</span>
        <div class="check-item-title">Datos de envases</div>
        <div class="check-item-desc">Número de envase, capacidad y volumen total registrados correctamente (antes opcional, ahora obligatorio).</div>
      </div>
      <div class="check-options">
        <div class="check-option" data-value="2" onclick="selectOption(this)">✓ Sí</div>
        <div class="check-option" data-value="1" onclick="selectOption(this)">◐ Proceso</div>
        <div class="check-option" data-value="0" onclick="selectOption(this)">✗ No</div>
      </div>
    </div>
    <div class="check-item" data-section="reto">
      <div class="check-item-info">
        <span class="check-item-badge badge-obligatorio">Obligatorio</span>
        <div class="check-item-title">Datos de tratamientos</div>
        <div class="check-item-desc">Uso agrario, localización SIGPAC, superficie tratada y tipo de cultivo correctamente registrados.</div>
      </div>
      <div class="check-options">
        <div class="check-option" data-value="2" onclick="selectOption(this)">✓ Sí</div>
        <div class="check-option" data-value="1" onclick="selectOption(this)">◐ Proceso</div>
        <div class="check-option" data-value="0" onclick="selectOption(this)">✗ No</div>
      </div>
    </div>
  </div>

  <!-- ═══════════════════════════════
       ROPO
  ═══════════════════════════════ -->
  <div class="checklist-section section-ropo" data-group="ropo">
    <div class="section-header">
      <h2>ROPO 2025-2026</h2>
      <p>Registro Oficial de Productores y Operadores — Obligaciones para aplicadores profesionales (RGTO 564/2023)</p>
    </div>
    <div class="check-item" data-section="ropo">
      <div class="check-item-info">
        <span class="check-item-badge badge-obligatorio">Obligatorio</span>
        <div class="check-item-title">Integración RETO-ROPO</div>
        <div class="check-item-desc">Su sistema permite la sincronización entre ambos registros para una gestión unificada de datos.</div>
      </div>
      <div class="check-options">
        <div class="check-option" data-value="2" onclick="selectOption(this)">✓ Sí</div>
        <div class="check-option" data-value="1" onclick="selectOption(this)">◐ Proceso</div>
        <div class="check-option" data-value="0" onclick="selectOption(this)">✗ No</div>
      </div>
    </div>
    <div class="check-item" data-section="ropo">
      <div class="check-item-info">
        <span class="check-item-badge badge-obligatorio">Obligatorio</span>
        <div class="check-item-title">Distinción Uso Agrario / No Agrario</div>
        <div class="check-item-desc">Su sistema registra correctamente la diferenciación entre aplicaciones de uso agrario y no agrario.</div>
      </div>
      <div class="check-options">
        <div class="check-option" data-value="2" onclick="selectOption(this)">✓ Sí</div>
        <div class="check-option" data-value="1" onclick="selectOption(this)">◐ Proceso</div>
        <div class="check-option" data-value="0" onclick="selectOption(this)">✗ No</div>
      </div>
    </div>
    <div class="check-item" data-section="ropo">
      <div class="check-item-info">
        <span class="check-item-badge badge-obligatorio">Obligatorio</span>
        <div class="check-item-title">Localización SIGPAC o Coordenadas</div>
        <div class="check-item-desc">Registra datos de localización mediante SIGPAC (agrario) o coordenadas geográficas (no agrario).</div>
      </div>
      <div class="check-options">
        <div class="check-option" data-value="2" onclick="selectOption(this)">✓ Sí</div>
        <div class="check-option" data-value="1" onclick="selectOption(this)">◐ Proceso</div>
        <div class="check-option" data-value="0" onclick="selectOption(this)">✗ No</div>
      </div>
    </div>
    <div class="check-item" data-section="ropo">
      <div class="check-item-info">
        <span class="check-item-badge badge-obligatorio">Obligatorio</span>
        <div class="check-item-title">Superficie en Hectáreas (Ha)</div>
        <div class="check-item-desc">Incluye datos precisos de superficie tratada para cada aplicación fitosanitaria registrada.</div>
      </div>
      <div class="check-options">
        <div class="check-option" data-value="2" onclick="selectOption(this)">✓ Sí</div>
        <div class="check-option" data-value="1" onclick="selectOption(this)">◐ Proceso</div>
        <div class="check-option" data-value="0" onclick="selectOption(this)">✗ No</div>
      </div>
    </div>
    <div class="check-item" data-section="ropo">
      <div class="check-item-info">
        <span class="check-item-badge badge-obligatorio">Obligatorio</span>
        <div class="check-item-title">Registro de Cultivo Según Jerarquía</div>
        <div class="check-item-desc">Registra el tipo de cultivo conforme a la tabla de jerarquía oficial establecida por la normativa.</div>
      </div>
      <div class="check-options">
        <div class="check-option" data-value="2" onclick="selectOption(this)">✓ Sí</div>
        <div class="check-option" data-value="1" onclick="selectOption(this)">◐ Proceso</div>
        <div class="check-option" data-value="0" onclick="selectOption(this)">✗ No</div>
      </div>
    </div>
    <div class="check-item" data-section="ropo">
      <div class="check-item-info">
        <span class="check-item-badge badge-obligatorio">Obligatorio</span>
        <div class="check-item-title">Registro completo de aplicaciones</div>
        <div class="check-item-desc">Registro detallado de cada aplicación profesional, incluyendo producto, dosis, fecha y responsable.</div>
      </div>
      <div class="check-options">
        <div class="check-option" data-value="2" onclick="selectOption(this)">✓ Sí</div>
        <div class="check-option" data-value="1" onclick="selectOption(this)">◐ Proceso</div>
        <div class="check-option" data-value="0" onclick="selectOption(this)">✗ No</div>
      </div>
    </div>
  </div>

  <!-- ═══════════════════════════════
       ADR
  ═══════════════════════════════ -->
  <div class="checklist-section section-adr" data-group="adr">
    <div class="section-header">
      <h2>ADR 2025-2026</h2>
      <p>Transporte de mercancías peligrosas — Requisitos más estrictos para productos fitosanitarios y químicos agrícolas</p>
    </div>
    <div class="check-item" data-section="adr">
      <div class="check-item-info">
        <span class="check-item-badge badge-obligatorio-warn">Obligatorio</span>
        <div class="check-item-title">Fichas de Seguridad Actualizadas</div>
        <div class="check-item-desc">Fichas de seguridad con nuevos requisitos de contenido y formato unificado para productos peligrosos.</div>
      </div>
      <div class="check-options">
        <div class="check-option" data-value="2" onclick="selectOption(this)">✓ Sí</div>
        <div class="check-option" data-value="1" onclick="selectOption(this)">◐ Proceso</div>
        <div class="check-option" data-value="0" onclick="selectOption(this)">✗ No</div>
      </div>
    </div>
    <div class="check-item" data-section="adr">
      <div class="check-item-info">
        <span class="check-item-badge badge-obligatorio-warn">Obligatorio</span>
        <div class="check-item-title">Nuevo Etiquetado ADR</div>
        <div class="check-item-desc">Implementación de cambios en pictogramas e información obligatoria según ADR 2025.</div>
      </div>
      <div class="check-options">
        <div class="check-option" data-value="2" onclick="selectOption(this)">✓ Sí</div>
        <div class="check-option" data-value="1" onclick="selectOption(this)">◐ Proceso</div>
        <div class="check-option" data-value="0" onclick="selectOption(this)">✗ No</div>
      </div>
    </div>
    <div class="check-item" data-section="adr">
      <div class="check-item-info">
        <span class="check-item-badge badge-obligatorio-warn">Obligatorio</span>
        <div class="check-item-title">Vehículos Certificados</div>
        <div class="check-item-desc">Flota con equipamiento específico y homologación actualizada para el transporte de mercancías peligrosas.</div>
      </div>
      <div class="check-options">
        <div class="check-option" data-value="2" onclick="selectOption(this)">✓ Sí</div>
        <div class="check-option" data-value="1" onclick="selectOption(this)">◐ Proceso</div>
        <div class="check-option" data-value="0" onclick="selectOption(this)">✗ No</div>
      </div>
    </div>
    <div class="check-item" data-section="adr">
      <div class="check-item-info">
        <span class="check-item-badge badge-obligatorio-warn">Obligatorio</span>
        <div class="check-item-title">Formación del Personal</div>
        <div class="check-item-desc">Certificación específica para manejo de productos peligrosos actualizada a ADR 2025.</div>
      </div>
      <div class="check-options">
        <div class="check-option" data-value="2" onclick="selectOption(this)">✓ Sí</div>
        <div class="check-option" data-value="1" onclick="selectOption(this)">◐ Proceso</div>
        <div class="check-option" data-value="0" onclick="selectOption(this)">✗ No</div>
      </div>
    </div>
    <div class="check-item" data-section="adr">
      <div class="check-item-info">
        <span class="check-item-badge badge-obligatorio-warn">Obligatorio</span>
        <div class="check-item-title">Embalaje Homologado</div>
        <div class="check-item-desc">Uso de embalajes que cumplen con las especificaciones técnicas requeridas según ADR 2025.</div>
      </div>
      <div class="check-options">
        <div class="check-option" data-value="2" onclick="selectOption(this)">✓ Sí</div>
        <div class="check-option" data-value="1" onclick="selectOption(this)">◐ Proceso</div>
        <div class="check-option" data-value="0" onclick="selectOption(this)">✗ No</div>
      </div>
    </div>
    <div class="check-item" data-section="adr">
      <div class="check-item-info">
        <span class="check-item-badge badge-obligatorio-warn">Obligatorio</span>
        <div class="check-item-title">Digitalización documental ADR</div>
        <div class="check-item-desc">Digitalización obligatoria de documentos para reducir errores y facilitar las inspecciones.</div>
      </div>
      <div class="check-options">
        <div class="check-option" data-value="2" onclick="selectOption(this)">✓ Sí</div>
        <div class="check-option" data-value="1" onclick="selectOption(this)">◐ Proceso</div>
        <div class="check-option" data-value="0" onclick="selectOption(this)">✗ No</div>
      </div>
    </div>
  </div>

  <!-- ═══════════════════════════════
       CARTA DE PORTE
  ═══════════════════════════════ -->
  <div class="checklist-section section-carta" data-group="carta">
    <div class="section-header">
      <h2>Carta de Porte 2025-2026</h2>
      <p>Documento obligatorio de transporte — Obligatorio en TODOS los transportes agrícolas</p>
    </div>
    <div class="check-item" data-section="carta">
      <div class="check-item-info">
        <span class="check-item-badge badge-obligatorio">Obligatorio</span>
        <div class="check-item-title">Documento en todos los transportes</div>
        <div class="check-item-desc">Documento obligatorio para todo transporte agrícola: entre almacenes, almacén a fincas, a clientes finales y devoluciones.</div>
      </div>
      <div class="check-options">
        <div class="check-option" data-value="2" onclick="selectOption(this)">✓ Sí</div>
        <div class="check-option" data-value="1" onclick="selectOption(this)">◐ Proceso</div>
        <div class="check-option" data-value="0" onclick="selectOption(this)">✗ No</div>
      </div>
    </div>
    <div class="check-item" data-section="carta">
      <div class="check-item-info">
        <span class="check-item-badge badge-obligatorio">Obligatorio</span>
        <div class="check-item-title">Información completa de origen y destino</div>
        <div class="check-item-desc">Direcciones completas de salida y llegada de la mercancía registradas en el documento.</div>
      </div>
      <div class="check-options">
        <div class="check-option" data-value="2" onclick="selectOption(this)">✓ Sí</div>
        <div class="check-option" data-value="1" onclick="selectOption(this)">◐ Proceso</div>
        <div class="check-option" data-value="0" onclick="selectOption(this)">✗ No</div>
      </div>
    </div>
    <div class="check-item" data-section="carta">
      <div class="check-item-info">
        <span class="check-item-badge badge-obligatorio">Obligatorio</span>
        <div class="check-item-title">Descripción detallada de mercancía</div>
        <div class="check-item-desc">Tipo, volumen y descripción detallada de la mercancía transportada correctamente documentada.</div>
      </div>
      <div class="check-options">
        <div class="check-option" data-value="2" onclick="selectOption(this)">✓ Sí</div>
        <div class="check-option" data-value="1" onclick="selectOption(this)">◐ Proceso</div>
        <div class="check-option" data-value="0" onclick="selectOption(this)">✗ No</div>
      </div>
    </div>
    <div class="check-item" data-section="carta">
      <div class="check-item-info">
        <span class="check-item-badge badge-obligatorio">Obligatorio</span>
        <div class="check-item-title">Información del transportista</div>
        <div class="check-item-desc">Datos completos del transportista y del contratante del servicio de transporte.</div>
      </div>
      <div class="check-options">
        <div class="check-option" data-value="2" onclick="selectOption(this)">✓ Sí</div>
        <div class="check-option" data-value="1" onclick="selectOption(this)">◐ Proceso</div>
        <div class="check-option" data-value="0" onclick="selectOption(this)">✗ No</div>
      </div>
    </div>
    <div class="check-item" data-section="carta">
      <div class="check-item-info">
        <span class="check-item-badge badge-obligatorio">Obligatorio</span>
        <div class="check-item-title">Generación automática desde sistema</div>
        <div class="check-item-desc">Su sistema genera la carta de porte automáticamente a partir de albaranes o expediciones, sin errores manuales.</div>
      </div>
      <div class="check-options">
        <div class="check-option" data-value="2" onclick="selectOption(this)">✓ Sí</div>
        <div class="check-option" data-value="1" onclick="selectOption(this)">◐ Proceso</div>
        <div class="check-option" data-value="0" onclick="selectOption(this)">✗ No</div>
      </div>
    </div>
  </div>

  <!-- ══ RESULTS PANEL (appears after completing all items) ══ -->
  <div class="results-panel" id="resultsPanel">
    <div class="results-header" id="resultsHeader" style="background:linear-gradient(135deg, var(--brand-dark), #1c3d5e)">
      <h2>✓ Evaluación completada</h2>
      <p>Ha evaluado los 23 requisitos normativos. Estos son sus resultados:</p>
    </div>
    <div class="results-body">
      <div class="results-scores">
        <div class="results-score-item">
          <div class="rsi-label">RETO</div>
          <div class="rsi-value" id="res-reto" style="color:var(--color-section-reto)">—</div>
        </div>
        <div class="results-score-item">
          <div class="rsi-label">ROPO</div>
          <div class="rsi-value" id="res-ropo" style="color:var(--color-section-ropo)">—</div>
        </div>
        <div class="results-score-item">
          <div class="rsi-label">ADR</div>
          <div class="rsi-value" id="res-adr" style="color:var(--color-section-adr)">—</div>
        </div>
        <div class="results-score-item">
          <div class="rsi-label">Carta Porte</div>
          <div class="rsi-value" id="res-carta" style="color:var(--color-section-carta)">—</div>
        </div>
      </div>
      <div class="results-total-row" id="resultsTotalRow" style="background:var(--color-green-bg);border:1px solid var(--color-green-border)">
        <div class="results-total-left">
          <div class="results-total-dot" id="resTotalDot" style="background:var(--brand-mid)"></div>
          <span class="results-total-label" id="resTotalLabel">—</span>
        </div>
        <span class="results-total-pct" id="resTotalPct">0%</span>
      </div>
      <div class="results-recommendation" id="resRecommendation">
        <strong>Recomendación</strong>
        <span id="resRecText">—</span>
      </div>
      <div class="results-cta">
        <a class="cta-btn" href="https://claveinformatica.com/contacto/" target="_blank" rel="noopener">¿Gaps en tu cumplimiento? Contacta con ERP Clave →</a>
      </div>
    </div>
  </div>

  <!-- ══ BENEFITS ══ -->
  <div class="benefits-grid" id="benefitsSection">
    <div class="benefit-card">
      <h3><span class="benefit-icon" style="background:var(--brand-pale);color:var(--brand-dark)"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2699.png" alt="⚙" class="wp-smiley" style="height: 1em; max-height: 1em;" /></span> Mejoras Operativas</h3>
      <ul class="benefit-list">
        <li>Automatización completa de procesos (65% ahorro en tiempo)</li>
        <li>Integración RETO-ROPO elimina duplicidades (85% menos errores)</li>
        <li>Trazabilidad total desde fabricante hasta aplicación final</li>
        <li>Alertas automáticas para productos no conformes</li>
      </ul>
    </div>
    <div class="benefit-card">
      <h3><span class="benefit-icon" style="background:#e8f5e9;color:var(--color-section-carta)"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4c8.png" alt="📈" class="wp-smiley" style="height: 1em; max-height: 1em;" /></span> Ventajas Comerciales</h3>
      <ul class="benefit-list">
        <li>Acceso preferente a licitaciones que exigen ADR</li>
        <li>Diferenciación frente a competidores no adaptados</li>
        <li>Mayor fidelización con documentación actualizada</li>
        <li>Expansión a mercados internacionales</li>
      </ul>
    </div>
    <div class="benefit-card">
      <h3><span class="benefit-icon" style="background:#fef3e2;color:var(--color-section-adr)"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4b0.png" alt="💰" class="wp-smiley" style="height: 1em; max-height: 1em;" /></span> Retorno Económico</h3>
      <ul class="benefit-list">
        <li>Ahorro de hasta 15.000 € anuales en sanciones</li>
        <li>Reducción del 40% en primas de seguros (ADR)</li>
        <li>Optimización logística: 25% menos costes de transporte</li>
        <li>ROI promedio de 2,3x en el primer año</li>
      </ul>
    </div>
  </div>

  <!-- ══ TIMELINE ══ -->
  <div class="timeline-section">
    <h2>Cronograma de Implementación</h2>
    <div class="timeline">
      <div class="timeline-step" style="border-color:var(--color-section-reto)">
        <div class="timeline-step-num" style="color:var(--color-section-reto)">Fase 1 · Sept 2025</div>
        <h4>Auto-Evaluación</h4>
        <p>Diagnóstico inicial con esta checklist para determinar nivel de cumplimiento.</p>
        <ul class="timeline-tasks">
          <li>Completar auto-evaluación</li>
          <li>Formar equipo responsable</li>
        </ul>
      </div>
      <div class="timeline-step" style="border-color:var(--color-section-ropo)">
        <div class="timeline-step-num" style="color:var(--color-section-ropo)">Fase 2 · Oct 2025</div>
        <h4>Planificación</h4>
        <p>Priorizar adaptación RETO/ROPO. Plan con hitos y responsables.</p>
        <ul class="timeline-tasks">
          <li>Adaptar CSV/Webservice</li>
          <li>Formación del personal</li>
        </ul>
      </div>
      <div class="timeline-step" style="border-color:var(--color-section-adr)">
        <div class="timeline-step-num" style="color:var(--color-section-adr)">Fase 3 · Nov 2025</div>
        <h4>Implementación</h4>
        <p>Integración RETO-ROPO y SIGPAC. Fichas ADR y carta de porte digital.</p>
        <ul class="timeline-tasks">
          <li>Configurar firma digital</li>
          <li>Pruebas de integración</li>
        </ul>
      </div>
      <div class="timeline-step" style="border-color:var(--color-red)">
        <div class="timeline-step-num" style="color:var(--color-red)">Límite · 7 Abril 2026</div>
        <h4>Fecha Límite</h4>
        <p>Cumplimiento total obligatorio de todas las normativas.</p>
        <ul class="timeline-tasks">
          <li>Auditoría final de cumplimiento</li>
          <li>Entrada en vigor definitiva</li>
        </ul>
      </div>
    </div>
  </div>

  <!-- ══ CTA ══ -->
  <div class="cta-block">
    <h3>¿Gaps en tu cumplimiento?</h3>
    <p>Si has detectado puntos críticos o cumplimiento manual, en ERP Clave somos expertos en tu negocio y podemos ayudarte a automatizar con rapidez y cero sobresaltos.</p>
    <a class="cta-btn" href="https://claveinformatica.com/contacto/" target="_blank" rel="noopener">Contactar con ERP Clave →</a>
  </div>

</div>

<script>
(function() {
  'use strict';

  const SECTIONS = {
    reto: { max: 12, items: 6 },
    ropo: { max: 12, items: 6 },
    adr:  { max: 12, items: 6 },
    carta: { max: 10, items: 5 }
  };
  const TOTAL_MAX = 46;

  const LEVELS = [
    { min: 90, label: 'Nivel Óptimo',   color: '#2d8a4e', rec: 'Mantenga documentación actualizada. Auditorías internas trimestrales. Comparta mejores prácticas.' },
    { min: 70, label: 'Nivel Adecuado', color: '#b8860b', rec: 'Priorice puntos pendientes. Cronograma a 3 meses. Actualice sistema si necesario.' },
    { min: 40, label: 'Nivel En Riesgo', color: '#d4862a', rec: 'Plan urgente (máx. 2 meses). Asigne recursos específicos. Considere asesoría externa.' },
    { min: 0,  label: 'Nivel Crítico',  color: '#c0392b', rec: 'Soluciones inmediatas (1 mes). Asesoría especializada obligatoria. Equipo exclusivo de cumplimiento.' }
  ];

  function selectOption(el) {
    const parent = el.closest('.check-options');
    const siblings = parent.querySelectorAll('.check-option');
    const wasSelected = el.classList.contains('selected-si') || el.classList.contains('selected-proceso') || el.classList.contains('selected-no');

    siblings.forEach(s => {
      s.classList.remove('selected-si', 'selected-proceso', 'selected-no');
      s.removeAttribute('data-selected');
    });

    if (!wasSelected) {
      const val = parseInt(el.getAttribute('data-value'));
      if (val === 2) el.classList.add('selected-si');
      else if (val === 1) el.classList.add('selected-proceso');
      else el.classList.add('selected-no');
      el.setAttribute('data-selected', 'true');
    }

    recalculate();
  }

  function recalculate() {
    const scores = { reto: 0, ropo: 0, adr: 0, carta: 0 };
    const answered = { reto: 0, ropo: 0, adr: 0, carta: 0 };

    document.querySelectorAll('.check-item').forEach(item => {
      const section = item.getAttribute('data-section');
      const selected = item.querySelector('.check-option[data-selected]');
      if (selected) {
        scores[section] += parseInt(selected.getAttribute('data-value'));
        answered[section]++;
      }
    });

    let totalScore = 0;

    Object.keys(SECTIONS).forEach(key => {
      const score = scores[key];
      const max = SECTIONS[key].max;
      const pct = max > 0 ? Math.round((score / max) * 100) : 0;

      document.getElementById('score-' + key).textContent = score;
      document.getElementById('pct-' + key).textContent = pct + '%';
      document.getElementById('bar-' + key).style.width = pct + '%';

      const pctEl = document.getElementById('pct-' + key);
      if (pct >= 90) pctEl.style.color = '#2d8a4e';
      else if (pct >= 70) pctEl.style.color = '#b8860b';
      else if (pct >= 40) pctEl.style.color = '#d4862a';
      else if (answered[key] > 0) pctEl.style.color = '#c0392b';
      else pctEl.style.color = 'var(--color-text-muted)';

      totalScore += score;
    });

    const totalPct = TOTAL_MAX > 0 ? Math.round((totalScore / TOTAL_MAX) * 100) : 0;
    document.getElementById('score-total').textContent = totalPct + '%';
    document.getElementById('bar-total').style.width = totalPct + '%';

    const totalAnswered = Object.values(answered).reduce((a, b) => a + b, 0);
    document.getElementById('pct-total-label').textContent = totalScore + ' / ' + TOTAL_MAX + ' pts';

    const levelDot = document.getElementById('levelDot');
    const levelText = document.getElementById('levelText');
    const levelRec = document.getElementById('levelRec');

    if (totalAnswered === 0) {
      levelDot.style.background = 'var(--brand-light)';
      levelText.textContent = 'Complete la evaluación';
      levelText.style.color = 'var(--color-text)';
      levelRec.textContent = 'Marque el estado de cada requisito para obtener su puntuación global de cumplimiento.';
      document.getElementById('resultsPanel').classList.remove('visible');
      return;
    }

    let currentLevel = LEVELS[LEVELS.length - 1];
    for (const level of LEVELS) {
      if (totalPct >= level.min) {
        currentLevel = level;
        levelDot.style.background = level.color;
        levelText.textContent = level.label + ' (' + totalPct + '%)';
        levelText.style.color = level.color;
        levelRec.textContent = level.rec;
        break;
      }
    }

    // ── Results panel: show when ALL items answered ──
    const TOTAL_ITEMS = 23;
    const panel = document.getElementById('resultsPanel');
    const wasVisible = panel.classList.contains('visible');

    if (totalAnswered >= TOTAL_ITEMS) {
      // Populate per-section percentages
      Object.keys(SECTIONS).forEach(key => {
        const pct = Math.round((scores[key] / SECTIONS[key].max) * 100);
        document.getElementById('res-' + key).textContent = pct + '%';
      });

      // Total row
      document.getElementById('resTotalPct').textContent = totalPct + '%';
      document.getElementById('resTotalLabel').textContent = currentLevel.label;
      document.getElementById('resTotalLabel').style.color = currentLevel.color;
      document.getElementById('resTotalPct').style.color = currentLevel.color;
      document.getElementById('resTotalDot').style.background = currentLevel.color;

      // Style the total row background based on level
      const row = document.getElementById('resultsTotalRow');
      if (totalPct >= 90)      { row.style.background = 'var(--color-green-bg)'; row.style.borderColor = 'var(--color-green-border)'; }
      else if (totalPct >= 70) { row.style.background = 'var(--color-yellow-bg)'; row.style.borderColor = 'var(--color-yellow-border)'; }
      else if (totalPct >= 40) { row.style.background = '#fef0e6'; row.style.borderColor = '#f0c8a8'; }
      else                     { row.style.background = 'var(--color-red-bg)'; row.style.borderColor = 'var(--color-red-border)'; }

      // Header gradient matches level
      const header = document.getElementById('resultsHeader');
      if (totalPct >= 70) {
        header.style.background = 'linear-gradient(135deg, var(--brand-dark), #1c3d5e)';
      } else if (totalPct >= 40) {
        header.style.background = 'linear-gradient(135deg, #7a4a15, #b8652a)';
      } else {
        header.style.background = 'linear-gradient(135deg, #7a1a1a, #c0392b)';
      }

      // Recommendation
      document.getElementById('resRecText').textContent = currentLevel.rec;
      const recBox = document.getElementById('resRecommendation');
      recBox.style.borderLeftColor = currentLevel.color;

      // Show and scroll (only on first reveal)
      panel.classList.add('visible');
      if (!wasVisible) {
        setTimeout(() => {
          panel.scrollIntoView({ behavior: 'smooth', block: 'center' });
        }, 100);
      }
    } else {
      panel.classList.remove('visible');
    }
  }

  function filterSection(section, btn) {
    document.querySelectorAll('.section-nav-btn').forEach(b => b.classList.remove('active'));
    btn.classList.add('active');
    document.querySelectorAll('.checklist-section').forEach(el => {
      if (section === 'all' || el.getAttribute('data-group') === section) {
        el.classList.remove('hidden');
      } else {
        el.classList.add('hidden');
      }
    });
  }

  function resetAll() {
    document.querySelectorAll('.check-option').forEach(el => {
      el.classList.remove('selected-si', 'selected-proceso', 'selected-no');
      el.removeAttribute('data-selected');
    });
    document.getElementById('resultsPanel').classList.remove('visible');
    recalculate();
    document.querySelectorAll('.section-nav-btn').forEach(b => b.classList.remove('active'));
    document.querySelector('.section-nav-btn[data-section="all"]').classList.add('active');
    document.querySelectorAll('.checklist-section').forEach(el => el.classList.remove('hidden'));
    window.scrollTo({ top: 0, behavior: 'smooth' });
  }

  window.selectOption = selectOption;
  window.filterSection = filterSection;
  window.resetAll = resetAll;
})();
</script>
</body>
</html>		</div>
				</div>
					</div>
				</div>
							</div>
		<p>La entrada <a rel="nofollow" href="https://claveinformatica.com/autoevaluacion-de-cumplimiento-normativo-reto-ropo-adr-y-carta-de-porte-2025-2026/">Autoevaluación de Cumplimiento Normativo RETO/ROPO, ADR y Carta de Porte 2025-2026</a> se publicó primero en <a rel="nofollow" href="https://claveinformatica.com">Clave informática</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Efectivamente: el RETO es un reto</title>
		<link>https://claveinformatica.com/efectivamente-el-reto-es-un-reto/</link>
		
		<dc:creator><![CDATA[Clave Informática]]></dc:creator>
		<pubDate>Sun, 30 Mar 2025 16:19:00 +0000</pubDate>
				<category><![CDATA[Sin categoría]]></category>
		<guid isPermaLink="false">https://claveinformatica.com/?p=1155</guid>

					<description><![CDATA[<p>Parece como que el Registro estuviera predestinado a tener RETO como siglas: Algo a lo que se enfrentan con VENTAJA tantos Usuarios de ERP&#160;Clave&#160;satisfechos, que evitan PROBLEMAS, ganan en PRODUCTIVIDAD de sus RECURSOS, y no pierden DINERO y TIEMPO cumpliendo las normativas.</p>
<p>La entrada <a rel="nofollow" href="https://claveinformatica.com/efectivamente-el-reto-es-un-reto/">Efectivamente: el RETO es un reto</a> se publicó primero en <a rel="nofollow" href="https://claveinformatica.com">Clave informática</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="1155" class="elementor elementor-1155" data-elementor-post-type="post">
							<div class="elementor-element elementor-element-1d4927ca e-flex e-con-boxed e-con e-parent" data-id="1d4927ca" data-element_type="container" data-settings="{&quot;content_width&quot;:&quot;boxed&quot;}" data-core-v316-plus="true">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-30fc845b elementor-widget elementor-widget-text-editor" data-id="30fc845b" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							
<p class="wp-block-paragraph">Parece como que el Registro estuviera predestinado a tener RETO como siglas:</p>



<ul class="wp-block-list">
<li>cumplir con una normativa cambiante, compleja y exigente que obliga a REPORTAR con agilidad y precisión.</li>
</ul>



<ul class="wp-block-list">
<li>a INFORMAR a sus clientes con atención a muchos detalles cambiantes.</li>
</ul>



<ul class="wp-block-list">
<li>perdiendo por ello PRODUCTIVIDAD de sus recursos.</li>
</ul>



<ul class="wp-block-list">
<li>y teniendo que evitar ERRORES que deriven en sanciones, devoluciones y costes.</li>
</ul>



<ul class="wp-block-list">
<li>En suma: un VERDADERO RETO PARA LOS ALMACENES DE PRODUCTOS AGRÍCOLAS.</li>
</ul>



<p class="wp-block-paragraph">Algo a lo que se enfrentan con VENTAJA tantos Usuarios de ERP&nbsp;Clave&nbsp;satisfechos, que evitan PROBLEMAS, ganan en PRODUCTIVIDAD de sus RECURSOS, y no pierden DINERO y TIEMPO cumpliendo las normativas.</p>
						</div>
				</div>
				<div class="elementor-element elementor-element-33301f6 elementor-widget elementor-widget-video" data-id="33301f6" data-element_type="widget" data-settings="{&quot;youtube_url&quot;:&quot;https:\/\/youtu.be\/RBWm9iY3qmQ?si=9XT4gIkZ6TfXekj0&quot;,&quot;autoplay&quot;:&quot;yes&quot;,&quot;play_on_mobile&quot;:&quot;yes&quot;,&quot;video_type&quot;:&quot;youtube&quot;}" data-widget_type="video.default">
				<div class="elementor-widget-container">
			<style>/*! elementor - v3.16.0 - 20-09-2023 */
.elementor-widget-video .elementor-widget-container{overflow:hidden;transform:translateZ(0)}.elementor-widget-video .elementor-wrapper{aspect-ratio:var(--video-aspect-ratio)}.elementor-widget-video .elementor-wrapper iframe,.elementor-widget-video .elementor-wrapper video{height:100%;width:100%;display:flex;border:none;background-color:#000}@supports not (aspect-ratio:1/1){.elementor-widget-video .elementor-wrapper{position:relative;overflow:hidden;height:0;padding-bottom:calc(100% / var(--video-aspect-ratio))}.elementor-widget-video .elementor-wrapper iframe,.elementor-widget-video .elementor-wrapper video{position:absolute;top:0;right:0;bottom:0;left:0}}.elementor-widget-video .elementor-open-inline .elementor-custom-embed-image-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background-size:cover;background-position:50%}.elementor-widget-video .elementor-custom-embed-image-overlay{cursor:pointer;text-align:center}.elementor-widget-video .elementor-custom-embed-image-overlay:hover .elementor-custom-embed-play i{opacity:1}.elementor-widget-video .elementor-custom-embed-image-overlay img{display:block;width:100%;aspect-ratio:var(--video-aspect-ratio);-o-object-fit:cover;object-fit:cover;-o-object-position:center center;object-position:center center}@supports not (aspect-ratio:1/1){.elementor-widget-video .elementor-custom-embed-image-overlay{position:relative;overflow:hidden;height:0;padding-bottom:calc(100% / var(--video-aspect-ratio))}.elementor-widget-video .elementor-custom-embed-image-overlay img{position:absolute;top:0;right:0;bottom:0;left:0}}.elementor-widget-video .e-hosted-video .elementor-video{-o-object-fit:cover;object-fit:cover}.e-con-inner>.elementor-widget-video,.e-con>.elementor-widget-video{width:var(--container-widget-width);--flex-grow:var(--container-widget-flex-grow)}</style>		<div class="elementor-wrapper elementor-open-inline">
			<div class="elementor-video"></div>		</div>
				</div>
				</div>
					</div>
				</div>
							</div>
		<p>La entrada <a rel="nofollow" href="https://claveinformatica.com/efectivamente-el-reto-es-un-reto/">Efectivamente: el RETO es un reto</a> se publicó primero en <a rel="nofollow" href="https://claveinformatica.com">Clave informática</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>NivelSQL y la Ley Antifraude</title>
		<link>https://claveinformatica.com/nivelsql-y-la-ley-antifraude/</link>
		
		<dc:creator><![CDATA[Clave Informática]]></dc:creator>
		<pubDate>Wed, 31 Jan 2024 17:56:28 +0000</pubDate>
				<category><![CDATA[NivelSQL]]></category>
		<guid isPermaLink="false">https://claveinformatica.com/?p=1003</guid>

					<description><![CDATA[<p>Le recordamos a todos los usuarios de nuestro ERP Nivel SQL, que deben estar actualizados a la versión 11.0.0. Esta versión, cumple con toda la normativa de la ley 11/2021 de 9 de julio, conocida como “Ley Antifraude”, que está en vigor desde 11 de octubre de 2021. Se garantiza la imposibilidad de hacer operaciones [&#8230;]</p>
<p>La entrada <a rel="nofollow" href="https://claveinformatica.com/nivelsql-y-la-ley-antifraude/">NivelSQL y la Ley Antifraude</a> se publicó primero en <a rel="nofollow" href="https://claveinformatica.com">Clave informática</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="1003" class="elementor elementor-1003" data-elementor-post-type="post">
							<div class="elementor-element elementor-element-9532b58 e-flex e-con-boxed e-con e-parent" data-id="9532b58" data-element_type="container" data-settings="{&quot;content_width&quot;:&quot;boxed&quot;}" data-core-v316-plus="true">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-4b1b310 elementor-widget elementor-widget-text-editor" data-id="4b1b310" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p class="MsoNormal"><span style="font-size: 14.0pt; line-height: 107%;">Le recordamos a todos los usuarios de nuestro <b>ERP Nivel SQL</b>, que deben estar actualizados a la <b>versión 11.0.0</b>. Esta versión, cumple con toda la normativa de la </span><a href="https://www.boe.es/boe/dias/2021/07/10/pdfs/BOE-A-2021-11473.pdf"><span style="font-size: 14.0pt; line-height: 107%;">ley 11/2021</span></a><span style="font-size: 14.0pt; line-height: 107%;"> de 9 de julio, conocida como “</span><a href="https://www.boe.es/boe/dias/2021/07/10/pdfs/BOE-A-2021-11473.pdf"><b><span style="font-size: 14.0pt; line-height: 107%;">Ley Antifraude</span></b></a><span style="font-size: 14.0pt; line-height: 107%;">”, que está en vigor desde 11 de octubre de 2021. Se garantiza la imposibilidad de hacer operaciones fraudulentas o la modificación de facturas emitidas.</span></p>
<p class="MsoNormal"><span style="font-size: 14.0pt; line-height: 107%;">Antes del próximo 31 de Julio de 2024, también estará implementado el sistema que garantiza la integridad, secuencialidad, trazabilidad e inalterabilidad de los registros de facturas emitidas, según indica el </span><a href="https://www.boe.es/eli/es/rd/2023/12/05/1007/dof/spa/pdf"><span style="font-size: 14.0pt; line-height: 107%;">Reglamento 1007/2023</span></a><span style="font-size: 14.0pt; line-height: 107%;"> de fecha 6 de diciembre de 2023.</span></p>
<p class="MsoNormal"><span style="font-size: 14.0pt; line-height: 107%;">Las sanciones por no cumplir la ley son muy importantes, hasta 50.000€ por ejercicio para el usuario y hasta 150.000€ para los productores o implementadores del software.</span></p>
<p class="MsoNormal"><b><span style="font-size: 14.0pt; line-height: 107%;">Clave Informática Soft, S.L., no se hace responsable</span></b><span style="font-size: 14.0pt; line-height: 107%;"> ante cualquier inspección o sanción si la versión del software que está usando es anterior a la señalada. Sirva este como comunicado oficial y todos los que de manera personal ya les hemos hecho anteriormente.</span></p>
<p class="MsoNormal"><span style="font-size: 14.0pt; line-height: 107%;">Si usted tiene duda de la versión que está utilizando, póngase en contacto con nuestro departamento de soporte.</span></p>
<p class="MsoNormal"><span style="font-size: 14.0pt; line-height: 107%;">Consulte nuestra&nbsp;<a href="https://claveinformatica.com/wp-content/uploads/Novedades_NivelSQL_Ley_Antifraude.pdf" target="_blank">guía sobre las novedades de NivelSQL y la Ley Antifraude</a>.</span></p>						</div>
				</div>
					</div>
				</div>
							</div>
		<p>La entrada <a rel="nofollow" href="https://claveinformatica.com/nivelsql-y-la-ley-antifraude/">NivelSQL y la Ley Antifraude</a> se publicó primero en <a rel="nofollow" href="https://claveinformatica.com">Clave informática</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
