<title>Manzanar — Prototipo</title>
<style>
:root{
--corteza:#1E2B1F; --hoja:#3A7D44; --hoja-claro:#E4EFE1;
--manzana:#B8332A; --manzana-claro:#FBE7E4;
--ambar:#C97B10; --ambar-claro:#FCEFD6;
--helada:#2F6F96; --helada-claro:#E1EDF4;
--tierra:#8A8271; --papel:#F5F6F1; --linea:#DCDED4; --blanco:#FFF;
}
*{box-sizing:border-box;margin:0;padding:0}
body{
font-family:'Archivo',system-ui,-apple-system,sans-serif;
background:#1E2B1F;
background-image:radial-gradient(circle at 20% 0%,#2c3d2d 0%,#1E2B1F 60%);
min-height:100vh;display:flex;flex-direction:column;align-items:center;
padding:32px 16px 64px;color:var(--corteza);
}
.intro{max-width:390px;width:100%;margin-bottom:22px}
.intro h1{font-size:26px;font-weight:700;letter-spacing:-.02em;color:#fff;font-stretch:112%}
.intro p{font-size:13.5px;line-height:1.5;color:#A8B5A2;margin-top:6px}
.telefono{
width:390px;height:800px;background:var(--papel);border-radius:38px;overflow:hidden;
position:relative;display:flex;flex-direction:column;
box-shadow:0 0 0 10px #10170F,0 30px 60px rgba(0,0,0,.55);
}
.barra-sistema{
background:var(--corteza);color:#fff;font-size:12px;font-weight:600;
padding:12px 24px 4px;display:flex;justify-content:space-between;
font-variant-numeric:tabular-nums;flex:none;
}
header.app{background:var(--corteza);color:#fff;padding:6px 20px 16px;flex:none}
header.app b{font-size:21px;font-weight:700;letter-spacing:-.02em;font-stretch:115%}
header.app em{font-style:normal;font-size:11px;color:#8FA98A;font-weight:500;margin-left:9px}
header.app .sitio{font-size:12.5px;color:#A8B5A2;margin-top:3px}
main{flex:1;overflow-y:auto;overscroll-behavior:contain;padding-bottom:20px}
main::-webkit-scrollbar{width:0}
.vista{display:none}
.vista.activa{display:block}
.bloque{padding:18px 20px 0}
h2.titulo{font-size:12.5px;font-weight:700;color:var(--tierra)}
h3{font-size:17px;font-weight:700;letter-spacing:-.015em}
.ayuda{font-size:12.5px;color:var(--tierra);line-height:1.45;margin-top:3px}
.tarjeta{background:var(--blanco);border:1px solid var(--linea);border-radius:14px;padding:16px;margin-top:12px}
label{display:block;font-size:12.5px;font-weight:700;margin-bottom:6px}
input[type=text],textarea,select{
width:100%;font-family:inherit;font-size:15px;color:var(--corteza);
border:1.5px solid var(--linea);border-radius:9px;padding:11px 12px;background:#FBFCF9;
}
textarea{resize:vertical;min-height:84px;line-height:1.45}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--hoja);background:#fff}
.fila{display:flex;gap:10px}
.campo+.campo{margin-top:14px}
.fichas{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}
.fichas button{
font-family:inherit;font-size:12.5px;font-weight:600;cursor:pointer;
border:1.5px solid var(--linea);background:#fff;color:#4A5347;
border-radius:20px;padding:7px 11px;
}
.fichas button[aria-pressed=true]{background:var(--hoja);border-color:var(--hoja);color:#fff}
.fichas button:focus-visible{outline:2px solid var(--ambar);outline-offset:2px}
.boton{
display:block;width:100%;margin-top:14px;padding:14px;border:none;cursor:pointer;
background:var(--hoja);color:#fff;font-family:inherit;font-size:15px;font-weight:700;border-radius:10px;
}
.boton:hover{background:#316B3A}
.boton:focus-visible{outline:3px solid var(--ambar);outline-offset:2px}
.boton.secundario{background:#fff;color:var(--corteza);border:1.5px solid var(--linea);font-weight:600}
.boton.secundario:hover{background:#EDEFE8}
.boton.chico{width:auto;padding:9px 14px;font-size:13px;margin-top:0}
.respuesta{border:1px solid var(--linea);border-left:5px solid var(--hoja);border-radius:2px 12px 12px 2px;
background:#fff;padding:15px;margin-top:12px}
.respuesta.alta{border-left-color:var(--manzana);background:var(--manzana-claro)}
.respuesta.media{border-left-color:var(--ambar);background:var(--ambar-claro)}
.respuesta.baja{border-left-color:var(--hoja)}
.respuesta .causa{font-size:16px;font-weight:700;letter-spacing:-.01em;margin-bottom:3px}
.respuesta .latin{font-style:italic;font-size:12px;color:var(--tierra);font-weight:500}
.respuesta h5{font-size:12.5px;font-weight:700;margin:13px 0 5px;color:#4A5347}
.respuesta ul{list-style:none;font-size:13px;line-height:1.5;color:#3C443B}
.respuesta li{padding-left:15px;position:relative;margin-bottom:5px}
.respuesta li::before{content:'';position:absolute;left:0;top:7px;width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.35}
.sello{font-size:10.5px;font-weight:700;padding:4px 9px;border-radius:20px;white-space:nowrap}
.sello.alta{background:var(--manzana);color:#fff}
.sello.media{background:#fff;color:#8B5507;border:1px solid #E8C48A}
.sello.baja{background:var(--hoja-claro);color:#2A5E31;border:1px solid #BCD9B6}
.arbol{background:#fff;border:1px solid var(--linea);border-radius:12px;margin-top:10px;overflow:hidden}
.arbol>summary{list-style:none;cursor:pointer;padding:13px 15px;display:flex;gap:12px;align-items:center}
.arbol>summary::-webkit-details-marker{display:none}
.arbol .num{
flex:none;width:46px;height:46px;border-radius:11px;background:var(--corteza);color:#fff;
display:grid;place-items:center;font-weight:800;font-size:17px;letter-spacing:-.03em;
font-variant-numeric:tabular-nums;line-height:1;
}
.arbol .num small{display:block;font-size:7.5px;font-weight:600;opacity:.6;letter-spacing:.05em;margin-bottom:1px}
.arbol .med{flex:1;min-width:0}
.arbol .med b{display:block;font-size:14.5px;letter-spacing:-.01em}
.arbol .med span{font-size:11.5px;color:var(--tierra)}
.arbol .detalle{padding:12px 15px 15px;border-top:1px solid var(--linea)}
.arbol .sintomas{font-size:13px;line-height:1.45;color:#4A5347;background:#F5F6F1;border-radius:8px;padding:10px 12px}
.vacio{text-align:center;padding:38px 24px;color:var(--tierra);font-size:13.5px;line-height:1.55}
.vacio b{display:block;color:var(--corteza);font-size:15px;margin-bottom:5px}
.ahora{background:var(--blanco);border-bottom:1px solid var(--linea);padding:20px;text-align:center}
.ahora .grados{font-size:56px;font-weight:800;letter-spacing:-.05em;line-height:1;font-variant-numeric:tabular-nums}
.ahora .cielo{font-size:14px;color:#4A5347;font-weight:600;margin-top:2px}
.ahora .mm{font-size:12.5px;color:var(--tierra);margin-top:4px}
.rejilla{display:flex;gap:1px;background:var(--linea);border-radius:10px;overflow:hidden;margin-top:14px}
.rejilla div{flex:1;background:#fff;padding:11px 8px;text-align:center}
.rejilla strong{display:block;font-size:18px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.rejilla span{font-size:10.5px;color:var(--tierra);display:block;margin-top:1px;line-height:1.25}
.semana{display:flex;gap:5px;margin-top:12px}
.dia{flex:1;text-align:center}
.dia .letra{font-size:10.5px;color:var(--tierra);font-weight:700;margin-bottom:5px}
.dia .barra{height:36px;border-radius:3px}
.dia .t{font-size:10px;color:var(--tierra);margin-top:4px;font-variant-numeric:tabular-nums}
.aviso{border:1px solid var(--linea);border-left-width:5px;border-radius:2px 10px 10px 2px;
padding:12px 14px;margin-top:10px;display:flex;gap:11px;background:#fff}
.aviso.alto{border-left-color:var(--manzana);background:var(--manzana-claro)}
.aviso.medio{border-left-color:var(--ambar);background:var(--ambar-claro)}
.aviso.frio{border-left-color:var(--helada);background:var(--helada-claro)}
.aviso .ico{font-size:17px}
.aviso h4{font-size:14px;font-weight:700;letter-spacing:-.01em}
.aviso .cuando{font-size:11px;color:var(--tierra);font-weight:600}
.aviso p{font-size:12.5px;line-height:1.45;color:#4A5347;margin-top:3px}
.guia{background:#fff;border:1px solid var(--linea);border-radius:12px;margin-top:9px;overflow:hidden}
.guia>summary{list-style:none;cursor:pointer;padding:14px 15px;display:flex;gap:11px;align-items:center;font-weight:700;font-size:14.5px;letter-spacing:-.01em}
.guia>summary::-webkit-details-marker{display:none}
.guia>summary .ico{font-size:18px}
.guia>summary .mas{margin-left:auto;color:var(--tierra);font-weight:700;font-size:18px;line-height:1}
.guia[open]>summary .mas{transform:rotate(45deg)}
.guia .cuerpo{padding:0 15px 15px;font-size:13px;line-height:1.55;color:#3C443B}
.guia .cuerpo p{border-top:1px solid var(--linea);padding-top:11px}
.guia .cuerpo ul{list-style:none;margin-top:9px}
.guia .cuerpo li{padding-left:16px;position:relative;margin-bottom:6px}
.guia .cuerpo li::before{content:'';position:absolute;left:0;top:7px;width:6px;height:6px;border-radius:50%;background:var(--hoja)}
.cuando-hacerlo{font-size:11.5px;color:var(--tierra);font-weight:600;margin-top:11px;border-top:1px dashed var(--linea);padding-top:9px}
nav{display:flex;background:#fff;border-top:1px solid var(--linea);padding:7px 4px 18px;flex:none}
nav button{flex:1;background:none;border:none;cursor:pointer;font-family:inherit;position:relative;
display:flex;flex-direction:column;align-items:center;gap:3px;padding:5px 2px;
color:var(--tierra);font-size:10.5px;font-weight:600;border-radius:8px}
nav button svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
nav button[aria-selected=true]{color:var(--hoja)}
nav button:focus-visible{outline:2px solid var(--hoja);outline-offset:-2px}
.cargando{text-align:center;padding:22px;color:var(--tierra);font-size:13px}
.pie{max-width:390px;width:100%;color:#7E8F79;font-size:12px;line-height:1.6;margin-top:22px}
.pie b{color:#C7D3C2;font-weight:600}
</style>
Manzanar
Prototipo navegable · Solve for Tomorrow 2026. Reporta un árbol y el reporte se queda guardado en la lista.
9:4178 %
ManzanarHuerta La Esperanza
Cuauhtémoc, Chihuahua · 14 sep
<!-- ============ ÁRBOLES ============ -->
<section class="vista activa" id="v-arboles">
<div class="bloque">
<h3>Reportar un árbol</h3>
<p class="ayuda">Anota el número del árbol y qué le estás viendo. Te decimos qué puede ser y qué hacer.</p>
<div class="tarjeta">
<div class="fila">
<div class="campo" style="flex:0 0 108px">
<label for="numero">Núm. de árbol</label>
<input type="text" id="numero" inputmode="numeric" placeholder="127">
</div>
<div class="campo" style="flex:1">
<label for="cuadro">Cuadro</label>
<select id="cuadro">
<option>Cuadro 1 — entrada</option>
<option>Cuadro 2 — centro</option>
<option>Cuadro 3 — arroyo</option>
<option>Cuadro 4 — cerro</option>
</select>
</div>
</div>
<div class="campo">
<label>¿Qué le ves? Toca lo que aplique</label>
<div class="fichas" id="fichas"></div>
</div>
<div class="campo">
<label for="notas">Cuéntanos con tus palabras</label>
<textarea id="notas" placeholder="Ej.: las manzanas de abajo traen un agujerito con polvillo café y por dentro vienen picadas."></textarea>
</div>
<button class="boton" id="enviar">Enviar reporte</button>
</div>
<div id="salida"></div>
</div>
<div class="bloque">
<h2 class="titulo">Árboles reportados</h2>
<div id="lista"></div>
</div>
</section>
<!-- ============ CLIMA ============ -->
<section class="vista" id="v-clima">
<div class="ahora">
<div class="grados">24°</div>
<div class="cielo">Despejado, viento del suroeste</div>
<div class="mm">Máxima 27° · mínima 11° · sin lluvia en 9 días</div>
<div class="rejilla">
<div><strong>38 %</strong><span>Humedad</span></div>
<div><strong>412</strong><span>Horas frío</span></div>
<div><strong>1 142</strong><span>Grados día</span></div>
</div>
</div>
<div class="bloque">
<h2 class="titulo">Los próximos 7 días</h2>
<div class="semana">
<div class="dia"><div class="letra">L</div><div class="barra" style="background:#3A7D44"></div><div class="t">26°</div></div>
<div class="dia"><div class="letra">M</div><div class="barra" style="background:#C97B10"></div><div class="t">28°</div></div>
<div class="dia"><div class="letra">M</div><div class="barra" style="background:#B8332A"></div><div class="t">29°</div></div>
<div class="dia"><div class="letra">J</div><div class="barra" style="background:#C97B10"></div><div class="t">25°</div></div>
<div class="dia"><div class="letra">V</div><div class="barra" style="background:#3A7D44"></div><div class="t">22°</div></div>
<div class="dia"><div class="letra">S</div><div class="barra" style="background:#3A7D44"></div><div class="t">21°</div></div>
<div class="dia"><div class="letra">D</div><div class="barra" style="background:#2F6F96"></div><div class="t">18°</div></div>
</div>
<p class="ayuda" style="margin-top:8px">El color marca el riesgo para la huerta, no si hace calor.</p>
</div>
<div class="bloque">
<h2 class="titulo">Lo que te conviene saber</h2>
<div class="aviso medio">
<div class="ico">⛈️</div>
<div>
<div class="cuando">Miércoles 16 de septiembre</div>
<h4>Probabilidad de granizo del 40 %</h4>
<p>Tormenta entre 4 y 7 de la tarde. Si tienes malla antigranizo pendiente, ciérrala el martes.</p>
</div>
</div>
<div class="aviso frio">
<div class="ico">❄️</div>
<div>
<div class="cuando">Temporada 2025–2026</div>
<h4>Llevas 412 horas frío</h4>
<p>Vas 9 % abajo del promedio de la región para esta fecha. Si el rezago crece, el brote de primavera sale disparejo.</p>
</div>
</div>
<div class="aviso alto">
<div class="ico">🐛</div>
<div>
<div class="cuando">Esta semana</div>
<h4>El calor acelera a la palomilla</h4>
<p>Con 28° el miércoles se cumplen los grados día para que nazca la tercera generación. Revisa tus trampas el martes.</p>
</div>
</div>
</div>
</section>
<!-- ============ CUIDADOS ============ -->
<section class="vista" id="v-cuidados">
<div class="bloque">
<h3>Cuidados preventivos</h3>
<p class="ayuda">Lo básico para que el árbol no llegue a enfermarse. Toca cada tema para abrirlo.</p>
<details class="guia" open>
<summary><span class="ico">🔎</span>Recorrer la huerta<span class="mas">+</span></summary>
<div class="cuerpo">
<p>Caminar la huerta una vez por semana es lo que más problemas evita. Casi todo se controla barato si lo ves temprano.</p>
<ul>
<li>Revisa 10 árboles al azar por cuadro, no siempre los mismos.</li>
<li>Voltea hojas: casi todo empieza por debajo.</li>
<li>Mira el tronco a la altura del suelo buscando aserrín.</li>
<li>Reporta aquí lo que veas aunque parezca poca cosa. Así se arma el historial.</li>
</ul>
<div class="cuando-hacerlo">Cada semana, de marzo a octubre</div>
</div>
</details>
<details class="guia">
<summary><span class="ico">💧</span>Riego<span class="mas">+</span></summary>
<div class="cuerpo">
<p>El manzano sufre más por riego desparejo que por poca agua. Los cambios bruscos de humedad parten el fruto.</p>
<ul>
<li>Mantén el suelo entre 25 y 35 % de humedad; abajo de 20 % el árbol ya se está estresando.</li>
<li>Riega temprano o al atardecer para perder menos por evaporación.</li>
<li>En llenado de fruto, de julio a septiembre, es cuando más agua pide.</li>
<li>Baja el riego tres semanas antes de cortar para que la manzana aguante más en bodega.</li>
</ul>
<div class="cuando-hacerlo">Todo el ciclo, ajustando por etapa</div>
</div>
</details>
<details class="guia">
<summary><span class="ico">🐛</span>Palomilla de la manzana<span class="mas">+</span></summary>
<div class="cuerpo">
<p>Es la plaga que más fruta pierde en la región. Una vez que la larva entró al fruto ya no hay aplicación que la alcance, por eso todo es cuestión de tiempo.</p>
<ul>
<li>Cuelga trampas de feromona desde la floración, una por hectárea.</li>
<li>Cuenta las palomillas cada semana y anótalo. Arriba de 2 por trampa toca actuar.</li>
<li>Levanta y saca la fruta caída: ahí se completa el ciclo de la plaga.</li>
<li>Raspa la corteza suelta en invierno, ahí es donde pasan el frío.</li>
</ul>
<div class="cuando-hacerlo">Trampas de abril a octubre</div>
</div>
</details>
<details class="guia">
<summary><span class="ico">✂️</span>Poda y limpieza<span class="mas">+</span></summary>
<div class="cuerpo">
<p>Una copa abierta seca más rápido después de la lluvia, y un árbol que seca rápido no agarra hongos.</p>
<ul>
<li>Poda en invierno con el árbol dormido, nunca con humedad.</li>
<li>Quita ramas cruzadas, chupones y todo lo que esté seco o con costra.</li>
<li>Desinfecta la tijera con cloro al pasar de un árbol enfermo a otro.</li>
<li>Saca del predio lo que podas. Si lo dejas tirado, la plaga se queda ahí.</li>
</ul>
<div class="cuando-hacerlo">Diciembre a febrero</div>
</div>
</details>
<details class="guia">
<summary><span class="ico">❄️</span>Heladas y granizo<span class="mas">+</span></summary>
<div class="cuerpo">
<p>Son los dos golpes que en una tarde te quitan la cosecha del año. No se evitan, pero sí se amortiguan.</p>
<ul>
<li>La flor abierta se quema a −2 °C. Ten listos calentadores o riego por aspersión desde marzo.</li>
<li>La malla antigranizo es la única protección que de verdad funciona contra el granizo.</li>
<li>Después de un granizazo, atiende las heridas: por ahí entran los hongos.</li>
<li>Toma fotos y repórtalo el mismo día, te sirve para el seguro.</li>
</ul>
<div class="cuando-hacerlo">Heladas en marzo y abril · granizo de junio a septiembre</div>
</div>
</details>
<details class="guia" style="margin-bottom:6px">
<summary><span class="ico">🍃</span>Nutrición del suelo<span class="mas">+</span></summary>
<div class="cuerpo">
<p>Antes de comprar fertilizante, haz análisis de suelo. Sale más barato que echarle de más.</p>
<ul>
<li>Análisis de suelo cada dos años, al final del ciclo.</li>
<li>El nitrógeno va repartido, no todo de un jalón, o se va a hoja y no a fruto.</li>
<li>Calcio en el llenado del fruto para evitar el corazón amargo.</li>
<li>La materia orgánica retiene agua: es riego que te ahorras.</li>
</ul>
<div class="cuando-hacerlo">Análisis en otoño · aplicaciones en primavera</div>
</div>
</details>
</div>
</section>
Árboles
Clima
Cuidados
Para tu cuadernillo: toma captura de cada pestaña y pégalas en «Material adicional». Los reportes que envíes se guardan y siguen ahí si cierras y vuelves a abrir la app.
<script>
/* ---------------- síntomas rápidos ---------------- */
var SINTOMAS = ['Agujeros en el fruto','Aserrín en el tronco','Hojas amarillas','Polvo blanco en hojas',
'Manchas negras','Ramas secas','Fruto partido','Pulgón o pegajoso','Golpe de granizo','Fruto quemado por el sol'];
var elegidos = new Set();
var cajaFichas = document.getElementById('fichas');
SINTOMAS.forEach(function(s){
var b = document.createElement('button');
b.type = 'button'; b.textContent = s; b.setAttribute('aria-pressed','false');
b.onclick = function(){
if(elegidos.has(s)){ elegidos.delete(s); b.setAttribute('aria-pressed','false'); }
else { elegidos.add(s); b.setAttribute('aria-pressed','true'); }
};
cajaFichas.appendChild(b);
});
/* ---------------- base de diagnóstico ---------------- */
var BASE = [
{ clave:['agujero','agujerito','perfor','gusano','picad','polvillo','palomilla','agujeros en el fruto'],
causa:'Palomilla de la manzana', latin:'Cydia pomonella', urgencia:'alta',
ahora:['Corta y saca del predio la fruta picada; no la dejes tirada.','Revisa la trampa de feromona más cercana y cuenta las palomillas.','Si pasan de 2 por trampa, la ventana para aplicar es ahora, antes de que la larva entre al fruto.'],
prevenir:['Mantén trampas de feromona de abril a octubre.','Levanta la fruta caída cada semana.','Raspa la corteza suelta en invierno.'] },
{ clave:['aserrín','aserrin','serrín','tronco','barren','goma en la rama'],
causa:'Barrenador de rama o tronco', latin:'Complejo de barrenadores', urgencia:'alta',
ahora:['Marca el árbol y busca el agujero exacto de donde sale el aserrín.','Corta y quema la rama si el daño está solo ahí.','Si el agujero está en el tronco principal, avisa al técnico: el árbol se puede perder.'],
prevenir:['Pinta el tronco con cal para que no desoven.','No dejes heridas de poda sin cicatrizar.','Un árbol bien regado es mucho menos atacado.'] },
{ clave:['polvo blanco','blanquec','ceniza','cenicilla','harina','hoja enrollada','rizada'],
causa:'Cenicilla polvorienta', latin:'Podosphaera leucotricha', urgencia:'media',
ahora:['Corta los brotes con polvo blanco y sácalos del predio.','Revisa si los árboles de alrededor ya lo tienen.','No riegues por aspersión mientras dure, empeora.'],
prevenir:['Abre la copa con la poda para que circule el aire.','Vigila cuando la humedad pase de 70 %.','Cuida el exceso de nitrógeno: el brote tierno es lo que más se infecta.'] },
{ clave:['mancha negra','manchas negras','mancha café','costra','roña','rona','sarna','mancha en la hoja'],
causa:'Roña del manzano', latin:'Venturia inaequalis', urgencia:'media',
ahora:['Junta y saca las hojas caídas: ahí pasa el invierno el hongo.','Cuenta cuántos árboles tienen manchas para saber qué tanto avanzó.','Evita mojar el follaje en los siguientes riegos.'],
prevenir:['Es un hongo de humedad: se dispara después de lluvias largas.','Barre la hojarasca al terminar el ciclo.','Poda para que el follaje seque rápido.'] },
{ clave:['amarill','clorosis','hoja pálida','pálida','decolor','descolorid','hojas amarillas'],
causa:'Falta de nutrición o problema de riego', latin:'', urgencia:'media',
ahora:['Fíjate si amarillean las hojas viejas o las nuevas: las viejas apuntan a nitrógeno, las nuevas a hierro.','Escarba 20 cm y revisa si el suelo está encharcado o seco.','Compara con los árboles vecinos para ver si es solo este.'],
prevenir:['Haz análisis de suelo cada dos años.','Reparte el nitrógeno en varias aplicaciones.','Cuida el drenaje: la raíz ahogada también amarillea.'] },
{ clave:['pulg','pegajos','melaza','hormiga','algodon','algodón','lanígero','lanudo'],
causa:'Pulgón lanígero', latin:'Eriosoma lanigerum', urgencia:'media',
ahora:['Busca las motitas blancas de algodón en heridas y axilas de rama.','Sigue el rastro de hormigas: ellas los protegen y los mueven de árbol en árbol.','Corta y saca los chupones de la base, ahí se esconden.'],
prevenir:['Controla las hormigas con bandas pegajosas en el tronco.','Conserva la mariquita y la avispa parásita, te lo controlan solas.','Evita el exceso de nitrógeno.'] },
{ clave:['rama seca','ramas secas','se secó','marchit','punta negra','muerte de rama','tizón','tizon'],
causa:'Posible tizón de fuego', latin:'Erwinia amylovora', urgencia:'alta',
ahora:['Revisa si la punta de la rama se dobló como bastón y está negra.','Corta 30 cm abajo de donde termina el daño.','Desinfecta la tijera con cloro entre cada corte o lo riegas tú mismo.','Quema o saca lo cortado, no lo dejes en la huerta.'],
prevenir:['No podes en húmedo ni en floración.','Baja el nitrógeno: el brote tierno es la puerta de entrada.','Vigila fuerte después de granizo, las heridas son la entrada.'] },
{ clave:['granizo','abolla','marca en el fruto','picotead','golpe de granizo'],
causa:'Daño por granizo', latin:'', urgencia:'media',
ahora:['Toma fotos hoy mismo, te sirven para el seguro.','Cuenta cuántos frutos por árbol traen golpe para estimar la pérdida.','Atiende las heridas pronto: por ahí entran los hongos.'],
prevenir:['La malla antigranizo es la única protección real.','Revisa el aviso de clima en esta app antes de las tormentas de tarde.','Ten la malla lista desde junio.'] },
{ clave:['quemad','sol','asolea','mancha clara','bronce','quemado por el sol'],
causa:'Golpe de sol en el fruto', latin:'', urgencia:'baja',
ahora:['Marca el lado del árbol que está expuesto, casi siempre es el poniente.','No quites hoja de ese lado, es la sombra del fruto.','Riega temprano los días arriba de 30°.'],
prevenir:['Malla de sombra en los cuadros más expuestos.','Deja follaje de cobertura al podar.','Riego constante en los picos de calor.'] },
{ clave:['partid','raj','agriet','abierto','fruto partido'],
causa:'Rajado del fruto por riego desparejo', latin:'', urgencia:'media',
ahora:['Revisa el historial de riego de este cuadro: casi siempre es un periodo seco seguido de mucha agua.','Corta la fruta rajada, ya no es comercial y atrae plaga.'],
prevenir:['Riegos más seguidos y más chicos, no uno grande de vez en cuando.','Mantén el suelo parejo entre 25 y 35 %.','La materia orgánica en el suelo amortigua los cambios.'] }
];
function diagnosticar(texto){
var t = texto.toLowerCase();
var mejor = null, puntos = 0;
BASE.forEach(function(d){
var p = 0;
d.clave.forEach(function(k){ if(t.indexOf(k) !== -1) p++; });
if(p > puntos){ puntos = p; mejor = d; }
});
if(mejor) return mejor;
return { causa:'Necesitamos ver un poco más', latin:'', urgencia:'baja',
ahora:['Toma fotos de la hoja, del fruto y del tronco del mismo árbol.','Revisa si los árboles de al lado tienen lo mismo o es solo este.','Vuelve a reportarlo en 3 días para ver si avanzó.'],
prevenir:['Recorre la huerta una vez por semana.','Anota todo aquí aunque parezca poca cosa: el historial es lo que te permite comparar.'] };
}
var NIVEL = { alta:'Urgente', media:'Atender', baja:'Vigilar' };
/* ---------------- guardado ---------------- */
var CLAVE = 'manzanar:arboles';
var arboles = [];
function cargar(){
if(!window.storage){ pintarLista(); return; }
window.storage.get(CLAVE).then(function(r){
try { arboles = r && r.value ? JSON.parse(r.value) : []; } catch(e){ arboles = []; }
pintarLista();
}).catch(function(){ arboles = []; pintarLista(); });
}
function guardar(){
if(!window.storage) return;
window.storage.set(CLAVE, JSON.stringify(arboles)).catch(function(e){
console.error('No se pudo guardar', e);
});
}
function listaHTML(items){
return items.map(function(l){ return '
' + l + ''; }).join('');
}
function pintarLista(){
var caja = document.getElementById('lista');
if(!arboles.length){
caja.innerHTML = '
Todavía no hay árbolesEl primer reporte que envíes se queda guardado aquí con su fecha y su recomendación.
';
return;
}
caja.innerHTML = arboles.map(function(a, i){
return '
' +
'' +
'ÁRBOL' + a.numero + '
' +
'' + a.causa + '' + a.cuadro + ' · ' + a.fecha + '
' +
'' + NIVEL[a.urgencia] + '' +
'
' +
'' +
'
' + a.reporte + '
' +
'
' +
'
' + a.causa + '
' +
(a.latin ? '
' + a.latin + '
' : '') +
'
Qué hacer ahora
' + listaHTML(a.ahora) + '
' +
'
Para que no vuelva
' + listaHTML(a.prevenir) + '
' +
'
' +
'Quitar de la lista' +
'
' +
' ';
}).join('');
}
function borrar(i){
arboles.splice(i, 1);
guardar();
pintarLista();
}
/* ---------------- enviar ---------------- */
document.getElementById('enviar').onclick = function(){
var numero = document.getElementById('numero').value.trim();
var cuadro = document.getElementById('cuadro').value;
var notas = document.getElementById('notas').value.trim();
var salida = document.getElementById('salida');
if(!numero){
salida.innerHTML = '
Falta el número del árbol
' +
'
Sin el número no podemos guardar el reporte en la lista.
';
document.getElementById('numero').focus();
return;
}
if(!elegidos.size && !notas){
salida.innerHTML = '
Cuéntanos qué le ves
' +
'
Toca al menos un síntoma o escríbelo con tus palabras.
';
return;
}
var partes = [];
elegidos.forEach(function(s){ partes.push(s); });
if(notas) partes.push(notas);
var reporte = partes.join('. ');
salida.innerHTML = '
Revisando el reporte del árbol ' + numero + '…
';
setTimeout(function(){
var d = diagnosticar(reporte);
var hoy = new Date().toLocaleDateString('es-MX', { day:'numeric', month:'short', year:'numeric' });
salida.innerHTML =
'
' +
'
' +
'
' + d.causa + '
' +
(d.latin ? '
' + d.latin + '
' : '') + '
' +
'
' + NIVEL[d.urgencia] + '' +
'
' +
'
Qué hacer ahora
' + listaHTML(d.ahora) + '
' +
'
Para que no vuelva
' + listaHTML(d.prevenir) + '
' +
'
Guardado en tu lista como árbol ' + numero + '.
' +
'
';
arboles.unshift({
numero:numero, cuadro:cuadro, fecha:hoy, reporte:reporte,
causa:d.causa, latin:d.latin, urgencia:d.urgencia, ahora:d.ahora, prevenir:d.prevenir
});
guardar();
pintarLista();
document.getElementById('numero').value = '';
document.getElementById('notas').value = '';
elegidos.clear();
document.querySelectorAll('#fichas button').forEach(function(b){ b.setAttribute('aria-pressed','false'); });
}, 600);
};
/* ---------------- navegación ---------------- */
function ir(v){
document.querySelectorAll('.vista').forEach(function(s){ s.classList.toggle('activa', s.id === 'v-' + v); });
document.querySelectorAll('nav button').forEach(function(b){ b.setAttribute('aria-selected', b.dataset.v === v); });
document.getElementById('main').scrollTop = 0;
}
cargar();
</script>
.telefono{
width:390px;height:800px;background:var(--papel);border-radius:38px;overflow:hidden;
position:relative;display:flex;flex-direction:column;
box-shadow:0 0 0 10px #10170F,0 30px 60px rgba(0,0,0,.55);
}
.barra-sistema{
background:var(--corteza);color:#fff;font-size:12px;font-weight:600;
padding:12px 24px 4px;display:flex;justify-content:space-between;
font-variant-numeric:tabular-nums;flex:none;
}
header.app{background:var(--corteza);color:#fff;padding:6px 20px 16px;flex:none}
header.app b{font-size:21px;font-weight:700;letter-spacing:-.02em;font-stretch:115%}
header.app em{font-style:normal;font-size:11px;color:#8FA98A;font-weight:500;margin-left:9px}
header.app .sitio{font-size:12.5px;color:#A8B5A2;margin-top:3px}
main{flex:1;overflow-y:auto;overscroll-behavior:contain;padding-bottom:20px}
main::-webkit-scrollbar{width:0}
.vista{display:none}
.vista.activa{display:block}
.bloque{padding:18px 20px 0}
h2.titulo{font-size:12.5px;font-weight:700;color:var(--tierra)}
h3{font-size:17px;font-weight:700;letter-spacing:-.015em}
.ayuda{font-size:12.5px;color:var(--tierra);line-height:1.45;margin-top:3px}
.tarjeta{background:var(--blanco);border:1px solid var(--linea);border-radius:14px;padding:16px;margin-top:12px}
label{display:block;font-size:12.5px;font-weight:700;margin-bottom:6px}
input[type=text],textarea,select{
width:100%;font-family:inherit;font-size:15px;color:var(--corteza);
border:1.5px solid var(--linea);border-radius:9px;padding:11px 12px;background:#FBFCF9;
}
textarea{resize:vertical;min-height:84px;line-height:1.45}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--hoja);background:#fff}
.fila{display:flex;gap:10px}
.campo+.campo{margin-top:14px}
.fichas{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}
.fichas button{
font-family:inherit;font-size:12.5px;font-weight:600;cursor:pointer;
border:1.5px solid var(--linea);background:#fff;color:#4A5347;
border-radius:20px;padding:7px 11px;
}
.fichas button[aria-pressed=true]{background:var(--hoja);border-color:var(--hoja);color:#fff}
.fichas button:focus-visible{outline:2px solid var(--ambar);outline-offset:2px}
.boton{
display:block;width:100%;margin-top:14px;padding:14px;border:none;cursor:pointer;
background:var(--hoja);color:#fff;font-family:inherit;font-size:15px;font-weight:700;border-radius:10px;
}
.boton:hover{background:#316B3A}
.boton:focus-visible{outline:3px solid var(--ambar);outline-offset:2px}
.boton.secundario{background:#fff;color:var(--corteza);border:1.5px solid var(--linea);font-weight:600}
.boton.secundario:hover{background:#EDEFE8}
.boton.chico{width:auto;padding:9px 14px;font-size:13px;margin-top:0}
.respuesta{border:1px solid var(--linea);border-left:5px solid var(--hoja);border-radius:2px 12px 12px 2px;
background:#fff;padding:15px;margin-top:12px}
.respuesta.alta{border-left-color:var(--manzana);background:var(--manzana-claro)}
.respuesta.media{border-left-color:var(--ambar);background:var(--ambar-claro)}
.respuesta.baja{border-left-color:var(--hoja)}
.respuesta .causa{font-size:16px;font-weight:700;letter-spacing:-.01em;margin-bottom:3px}
.respuesta .latin{font-style:italic;font-size:12px;color:var(--tierra);font-weight:500}
.respuesta h5{font-size:12.5px;font-weight:700;margin:13px 0 5px;color:#4A5347}
.respuesta ul{list-style:none;font-size:13px;line-height:1.5;color:#3C443B}
.respuesta li{padding-left:15px;position:relative;margin-bottom:5px}
.respuesta li::before{content:'';position:absolute;left:0;top:7px;width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.35}
.sello{font-size:10.5px;font-weight:700;padding:4px 9px;border-radius:20px;white-space:nowrap}
.sello.alta{background:var(--manzana);color:#fff}
.sello.media{background:#fff;color:#8B5507;border:1px solid #E8C48A}
.sello.baja{background:var(--hoja-claro);color:#2A5E31;border:1px solid #BCD9B6}
.arbol{background:#fff;border:1px solid var(--linea);border-radius:12px;margin-top:10px;overflow:hidden}
.arbol>summary{list-style:none;cursor:pointer;padding:13px 15px;display:flex;gap:12px;align-items:center}
.arbol>summary::-webkit-details-marker{display:none}
.arbol .num{
flex:none;width:46px;height:46px;border-radius:11px;background:var(--corteza);color:#fff;
display:grid;place-items:center;font-weight:800;font-size:17px;letter-spacing:-.03em;
font-variant-numeric:tabular-nums;line-height:1;
}
.arbol .num small{display:block;font-size:7.5px;font-weight:600;opacity:.6;letter-spacing:.05em;margin-bottom:1px}
.arbol .med{flex:1;min-width:0}
.arbol .med b{display:block;font-size:14.5px;letter-spacing:-.01em}
.arbol .med span{font-size:11.5px;color:var(--tierra)}
.arbol .detalle{padding:12px 15px 15px;border-top:1px solid var(--linea)}
.arbol .sintomas{font-size:13px;line-height:1.45;color:#4A5347;background:#F5F6F1;border-radius:8px;padding:10px 12px}
.vacio{text-align:center;padding:38px 24px;color:var(--tierra);font-size:13.5px;line-height:1.55}
.vacio b{display:block;color:var(--corteza);font-size:15px;margin-bottom:5px}
.ahora{background:var(--blanco);border-bottom:1px solid var(--linea);padding:20px;text-align:center}
.ahora .grados{font-size:56px;font-weight:800;letter-spacing:-.05em;line-height:1;font-variant-numeric:tabular-nums}
.ahora .cielo{font-size:14px;color:#4A5347;font-weight:600;margin-top:2px}
.ahora .mm{font-size:12.5px;color:var(--tierra);margin-top:4px}
.rejilla{display:flex;gap:1px;background:var(--linea);border-radius:10px;overflow:hidden;margin-top:14px}
.rejilla div{flex:1;background:#fff;padding:11px 8px;text-align:center}
.rejilla strong{display:block;font-size:18px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.rejilla span{font-size:10.5px;color:var(--tierra);display:block;margin-top:1px;line-height:1.25}
.semana{display:flex;gap:5px;margin-top:12px}
.dia{flex:1;text-align:center}
.dia .letra{font-size:10.5px;color:var(--tierra);font-weight:700;margin-bottom:5px}
.dia .barra{height:36px;border-radius:3px}
.dia .t{font-size:10px;color:var(--tierra);margin-top:4px;font-variant-numeric:tabular-nums}
.aviso{border:1px solid var(--linea);border-left-width:5px;border-radius:2px 10px 10px 2px;
padding:12px 14px;margin-top:10px;display:flex;gap:11px;background:#fff}
.aviso.alto{border-left-color:var(--manzana);background:var(--manzana-claro)}
.aviso.medio{border-left-color:var(--ambar);background:var(--ambar-claro)}
.aviso.frio{border-left-color:var(--helada);background:var(--helada-claro)}
.aviso .ico{font-size:17px}
.aviso h4{font-size:14px;font-weight:700;letter-spacing:-.01em}
.aviso .cuando{font-size:11px;color:var(--tierra);font-weight:600}
.aviso p{font-size:12.5px;line-height:1.45;color:#4A5347;margin-top:3px}
.guia{background:#fff;border:1px solid var(--linea);border-radius:12px;margin-top:9px;overflow:hidden}
.guia>summary{list-style:none;cursor:pointer;padding:14px 15px;display:flex;gap:11px;align-items:center;font-weight:700;font-size:14.5px;letter-spacing:-.01em}
.guia>summary::-webkit-details-marker{display:none}
.guia>summary .ico{font-size:18px}
.guia>summary .mas{margin-left:auto;color:var(--tierra);font-weight:700;font-size:18px;line-height:1}
.guia[open]>summary .mas{transform:rotate(45deg)}
.guia .cuerpo{padding:0 15px 15px;font-size:13px;line-height:1.55;color:#3C443B}
.guia .cuerpo p{border-top:1px solid var(--linea);padding-top:11px}
.guia .cuerpo ul{list-style:none;margin-top:9px}
.guia .cuerpo li{padding-left:16px;position:relative;margin-bottom:6px}
.guia .cuerpo li::before{content:'';position:absolute;left:0;top:7px;width:6px;height:6px;border-radius:50%;background:var(--hoja)}
.cuando-hacerlo{font-size:11.5px;color:var(--tierra);font-weight:600;margin-top:11px;border-top:1px dashed var(--linea);padding-top:9px}
nav{display:flex;background:#fff;border-top:1px solid var(--linea);padding:7px 4px 18px;flex:none}
nav button{flex:1;background:none;border:none;cursor:pointer;font-family:inherit;position:relative;
display:flex;flex-direction:column;align-items:center;gap:3px;padding:5px 2px;
color:var(--tierra);font-size:10.5px;font-weight:600;border-radius:8px}
nav button svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
nav button[aria-selected=true]{color:var(--hoja)}
nav button:focus-visible{outline:2px solid var(--hoja);outline-offset:-2px}
.cargando{text-align:center;padding:22px;color:var(--tierra);font-size:13px}
.pie{max-width:390px;width:100%;color:#7E8F79;font-size:12px;line-height:1.6;margin-top:22px}
.pie b{color:#C7D3C2;font-weight:600}
</style>
Manzanar
Prototipo navegable · Solve for Tomorrow 2026. Reporta un árbol y el reporte se queda guardado en la lista.
Para tu cuadernillo: toma captura de cada pestaña y pégalas en «Material adicional». Los reportes que envíes se guardan y siguen ahí si cierras y vuelves a abrir la app.
<script> /* ---------------- síntomas rápidos ---------------- */ var SINTOMAS = ['Agujeros en el fruto','Aserrín en el tronco','Hojas amarillas','Polvo blanco en hojas', 'Manchas negras','Ramas secas','Fruto partido','Pulgón o pegajoso','Golpe de granizo','Fruto quemado por el sol']; var elegidos = new Set(); var cajaFichas = document.getElementById('fichas'); SINTOMAS.forEach(function(s){ var b = document.createElement('button'); b.type = 'button'; b.textContent = s; b.setAttribute('aria-pressed','false'); b.onclick = function(){ if(elegidos.has(s)){ elegidos.delete(s); b.setAttribute('aria-pressed','false'); } else { elegidos.add(s); b.setAttribute('aria-pressed','true'); } }; cajaFichas.appendChild(b); }); /* ---------------- base de diagnóstico ---------------- */ var BASE = [ { clave:['agujero','agujerito','perfor','gusano','picad','polvillo','palomilla','agujeros en el fruto'], causa:'Palomilla de la manzana', latin:'Cydia pomonella', urgencia:'alta', ahora:['Corta y saca del predio la fruta picada; no la dejes tirada.','Revisa la trampa de feromona más cercana y cuenta las palomillas.','Si pasan de 2 por trampa, la ventana para aplicar es ahora, antes de que la larva entre al fruto.'], prevenir:['Mantén trampas de feromona de abril a octubre.','Levanta la fruta caída cada semana.','Raspa la corteza suelta en invierno.'] }, { clave:['aserrín','aserrin','serrín','tronco','barren','goma en la rama'], causa:'Barrenador de rama o tronco', latin:'Complejo de barrenadores', urgencia:'alta', ahora:['Marca el árbol y busca el agujero exacto de donde sale el aserrín.','Corta y quema la rama si el daño está solo ahí.','Si el agujero está en el tronco principal, avisa al técnico: el árbol se puede perder.'], prevenir:['Pinta el tronco con cal para que no desoven.','No dejes heridas de poda sin cicatrizar.','Un árbol bien regado es mucho menos atacado.'] }, { clave:['polvo blanco','blanquec','ceniza','cenicilla','harina','hoja enrollada','rizada'], causa:'Cenicilla polvorienta', latin:'Podosphaera leucotricha', urgencia:'media', ahora:['Corta los brotes con polvo blanco y sácalos del predio.','Revisa si los árboles de alrededor ya lo tienen.','No riegues por aspersión mientras dure, empeora.'], prevenir:['Abre la copa con la poda para que circule el aire.','Vigila cuando la humedad pase de 70 %.','Cuida el exceso de nitrógeno: el brote tierno es lo que más se infecta.'] }, { clave:['mancha negra','manchas negras','mancha café','costra','roña','rona','sarna','mancha en la hoja'], causa:'Roña del manzano', latin:'Venturia inaequalis', urgencia:'media', ahora:['Junta y saca las hojas caídas: ahí pasa el invierno el hongo.','Cuenta cuántos árboles tienen manchas para saber qué tanto avanzó.','Evita mojar el follaje en los siguientes riegos.'], prevenir:['Es un hongo de humedad: se dispara después de lluvias largas.','Barre la hojarasca al terminar el ciclo.','Poda para que el follaje seque rápido.'] }, { clave:['amarill','clorosis','hoja pálida','pálida','decolor','descolorid','hojas amarillas'], causa:'Falta de nutrición o problema de riego', latin:'', urgencia:'media', ahora:['Fíjate si amarillean las hojas viejas o las nuevas: las viejas apuntan a nitrógeno, las nuevas a hierro.','Escarba 20 cm y revisa si el suelo está encharcado o seco.','Compara con los árboles vecinos para ver si es solo este.'], prevenir:['Haz análisis de suelo cada dos años.','Reparte el nitrógeno en varias aplicaciones.','Cuida el drenaje: la raíz ahogada también amarillea.'] }, { clave:['pulg','pegajos','melaza','hormiga','algodon','algodón','lanígero','lanudo'], causa:'Pulgón lanígero', latin:'Eriosoma lanigerum', urgencia:'media', ahora:['Busca las motitas blancas de algodón en heridas y axilas de rama.','Sigue el rastro de hormigas: ellas los protegen y los mueven de árbol en árbol.','Corta y saca los chupones de la base, ahí se esconden.'], prevenir:['Controla las hormigas con bandas pegajosas en el tronco.','Conserva la mariquita y la avispa parásita, te lo controlan solas.','Evita el exceso de nitrógeno.'] }, { clave:['rama seca','ramas secas','se secó','marchit','punta negra','muerte de rama','tizón','tizon'], causa:'Posible tizón de fuego', latin:'Erwinia amylovora', urgencia:'alta', ahora:['Revisa si la punta de la rama se dobló como bastón y está negra.','Corta 30 cm abajo de donde termina el daño.','Desinfecta la tijera con cloro entre cada corte o lo riegas tú mismo.','Quema o saca lo cortado, no lo dejes en la huerta.'], prevenir:['No podes en húmedo ni en floración.','Baja el nitrógeno: el brote tierno es la puerta de entrada.','Vigila fuerte después de granizo, las heridas son la entrada.'] }, { clave:['granizo','abolla','marca en el fruto','picotead','golpe de granizo'], causa:'Daño por granizo', latin:'', urgencia:'media', ahora:['Toma fotos hoy mismo, te sirven para el seguro.','Cuenta cuántos frutos por árbol traen golpe para estimar la pérdida.','Atiende las heridas pronto: por ahí entran los hongos.'], prevenir:['La malla antigranizo es la única protección real.','Revisa el aviso de clima en esta app antes de las tormentas de tarde.','Ten la malla lista desde junio.'] }, { clave:['quemad','sol','asolea','mancha clara','bronce','quemado por el sol'], causa:'Golpe de sol en el fruto', latin:'', urgencia:'baja', ahora:['Marca el lado del árbol que está expuesto, casi siempre es el poniente.','No quites hoja de ese lado, es la sombra del fruto.','Riega temprano los días arriba de 30°.'], prevenir:['Malla de sombra en los cuadros más expuestos.','Deja follaje de cobertura al podar.','Riego constante en los picos de calor.'] }, { clave:['partid','raj','agriet','abierto','fruto partido'], causa:'Rajado del fruto por riego desparejo', latin:'', urgencia:'media', ahora:['Revisa el historial de riego de este cuadro: casi siempre es un periodo seco seguido de mucha agua.','Corta la fruta rajada, ya no es comercial y atrae plaga.'], prevenir:['Riegos más seguidos y más chicos, no uno grande de vez en cuando.','Mantén el suelo parejo entre 25 y 35 %.','La materia orgánica en el suelo amortigua los cambios.'] } ]; function diagnosticar(texto){ var t = texto.toLowerCase(); var mejor = null, puntos = 0; BASE.forEach(function(d){ var p = 0; d.clave.forEach(function(k){ if(t.indexOf(k) !== -1) p++; }); if(p > puntos){ puntos = p; mejor = d; } }); if(mejor) return mejor; return { causa:'Necesitamos ver un poco más', latin:'', urgencia:'baja', ahora:['Toma fotos de la hoja, del fruto y del tronco del mismo árbol.','Revisa si los árboles de al lado tienen lo mismo o es solo este.','Vuelve a reportarlo en 3 días para ver si avanzó.'], prevenir:['Recorre la huerta una vez por semana.','Anota todo aquí aunque parezca poca cosa: el historial es lo que te permite comparar.'] }; } var NIVEL = { alta:'Urgente', media:'Atender', baja:'Vigilar' }; /* ---------------- guardado ---------------- */ var CLAVE = 'manzanar:arboles'; var arboles = []; function cargar(){ if(!window.storage){ pintarLista(); return; } window.storage.get(CLAVE).then(function(r){ try { arboles = r && r.value ? JSON.parse(r.value) : []; } catch(e){ arboles = []; } pintarLista(); }).catch(function(){ arboles = []; pintarLista(); }); } function guardar(){ if(!window.storage) return; window.storage.set(CLAVE, JSON.stringify(arboles)).catch(function(e){ console.error('No se pudo guardar', e); }); } function listaHTML(items){ return items.map(function(l){ return '' + 'ÁRBOL' + a.numero + ' ' +
'' + a.causa + '' + a.cuadro + ' · ' + a.fecha + ' ' +
'' + NIVEL[a.urgencia] + '' +
'
' + 'Qué hacer ahora
' + listaHTML(a.ahora) + '
' + 'Para que no vuelva
' + listaHTML(a.prevenir) + '
' + 'Sin el número no podemos guardar el reporte en la lista.
Toca al menos un síntoma o escríbelo con tus palabras.
Qué hacer ahora
' + listaHTML(d.ahora) + '
' + 'Para que no vuelva
' + listaHTML(d.prevenir) + '
' + 'Guardado en tu lista como árbol ' + numero + '.
' + '