/* Componentes pedagógicos de las guías de daños (gallardia.lat).
   Usa las variables de /assets/guia.css; no lo sustituye. Todo se adapta a 360 px sin scroll horizontal. */

/* Recorrido del clúster: dónde estás en la serie */
.ruta{list-style:none;margin:20px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:8px;counter-reset:r}
.ruta li{position:relative;background:var(--bg-2);border:1px solid var(--line);border-radius:12px;padding:10px 10px 10px 42px;font-size:13px;line-height:1.3;min-height:52px}
.ruta li::before{counter-increment:r;content:counter(r);position:absolute;left:10px;top:11px;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:12px;background:var(--elev);color:var(--muted)}
.ruta li b{display:block;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);font-weight:600}
.ruta li a{color:var(--ink);text-decoration:underline;text-underline-offset:2px}
.ruta li.on{border-color:rgba(242,100,25,.6);background:rgba(242,100,25,.10)}
.ruta li.on::before{background:var(--fire-2);color:#0C0C0E}
.ruta li.on b{color:var(--fire-ink)}
@media (max-width:720px){.ruta{grid-template-columns:1fr 1fr}}

/* Semáforo: resumen visual de una matriz */
.semaforo{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}
.semaforo > div{border-radius:var(--radius);padding:14px 14px 12px;border:1px solid var(--line);background:var(--surface)}
.semaforo h4{margin:0 0 8px;font-size:15px;display:flex;align-items:center;gap:8px}
.semaforo h4::before{content:"";width:14px;height:14px;border-radius:50%;flex:none;box-shadow:0 0 0 4px rgba(255,255,255,.04)}
.semaforo ul{margin:0;padding-left:18px;font-size:13.5px;line-height:1.45}
.semaforo li{margin:3px 0}
.semaforo .s-bad{border-color:rgba(229,72,77,.45);background:var(--bad-bg)}
.semaforo .s-bad h4{color:#FF8A8D} .semaforo .s-bad h4::before{background:var(--bad)}
.semaforo .s-warn{border-color:rgba(232,163,61,.45);background:var(--warn-bg)}
.semaforo .s-warn h4{color:var(--warn)} .semaforo .s-warn h4::before{background:var(--warn)}
.semaforo .s-ok{border-color:rgba(67,181,129,.4);background:var(--ok-bg)}
.semaforo .s-ok h4{color:var(--ok)} .semaforo .s-ok h4::before{background:var(--ok)}
.semaforo p.pie{grid-column:1/-1;margin:0;font-size:12px;color:var(--muted);font-style:italic}
@media (max-width:720px){.semaforo{grid-template-columns:1fr}}

/* Árbol de decisión vertical: una respuesta de peligro detiene la secuencia */
.vis ol.arbol,.arbol{list-style:none;margin:6px 0 4px;padding:0;counter-reset:q}
.vis ol.arbol > li,.arbol > li{margin:0;position:relative;display:grid;grid-template-columns:1fr minmax(120px,38%);gap:10px;align-items:stretch;padding:0 0 22px 0}
.arbol > li::after{content:"↓ no";position:absolute;left:18px;bottom:2px;font-size:11px;color:var(--faint);letter-spacing:.08em}
.arbol > li:last-child{padding-bottom:0} .arbol > li:last-child::after{display:none}
.arbol .q{counter-increment:q;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 12px 12px 46px;position:relative;font-size:14px;line-height:1.35}
.arbol .q::before{content:counter(q);position:absolute;left:12px;top:12px;width:24px;height:24px;border-radius:50%;background:var(--elev);color:var(--ink);display:grid;place-items:center;font-size:12px;font-weight:700}
.arbol .r{border-radius:12px;padding:10px 12px;font-size:13.5px;line-height:1.35;display:flex;flex-direction:column;justify-content:center;border:1px solid}
.arbol .r b{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;display:block;margin-bottom:2px}
.arbol .r.bad{background:var(--bad-bg);border-color:rgba(229,72,77,.45);color:var(--ink)} .arbol .r.bad b{color:#FF8A8D}
.arbol .r.warn{background:var(--warn-bg);border-color:rgba(232,163,61,.45);color:var(--ink)} .arbol .r.warn b{color:var(--warn)}
.arbol .r.info{background:var(--info-bg);border-color:rgba(91,155,213,.4);color:var(--ink)} .arbol .r.info b{color:var(--info)}
@media (max-width:560px){.vis ol.arbol > li,.arbol > li{margin:0;grid-template-columns:1fr;gap:6px}.arbol .r{margin-left:24px}}

/* Cadena de pasos horizontal que se pliega en móvil */
.vis ol.cadena,.cadena{list-style:none;margin:4px 0;padding:0;display:flex;flex-wrap:wrap;gap:8px;align-items:stretch}
.vis ol.cadena li,.cadena li{margin:0;flex:1 1 130px;background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--fire-2);border-radius:10px;padding:10px 12px;font-size:13.5px;line-height:1.35;position:relative}
.cadena li b{display:block;font-size:14px;color:var(--ink);margin-bottom:2px}
.cadena li span{color:var(--muted)}

/* Figuras SVG con leyenda numerada (el texto vive en HTML, no dentro del dibujo) */
.vis{margin:20px 0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px}
.vis .lam{display:grid;gap:12px}
.vis .lam.c2{grid-template-columns:1fr 1fr}
.vis .lam.c3{grid-template-columns:repeat(3,1fr)}
.vis .lam.c4{grid-template-columns:repeat(4,1fr)}
.vis .pan{background:var(--bg-2);border:1px solid var(--line-soft);border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:6px}
.vis .pan svg{display:block;width:100%;height:auto}
.vis .pan .t{font-size:13px;font-weight:600;color:var(--ink);line-height:1.3}
.vis .pan .t i{font-style:normal;color:var(--fire-ink);margin-right:4px}
.vis .pan .d{font-size:12.5px;color:var(--muted);line-height:1.4}
.vis .pan.bad{border-color:rgba(229,72,77,.45)} .vis .pan.ok{border-color:rgba(67,181,129,.4)} .vis .pan.warn{border-color:rgba(232,163,61,.45)}
.vis > svg{display:block;width:100%;height:auto;max-width:760px;margin:0 auto}
.vis ol.ley{margin:12px 0 0;padding-left:0;list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:6px 16px;font-size:13px;line-height:1.4;counter-reset:l}
.vis ol.ley li{counter-increment:l;position:relative;padding-left:30px}
.vis ol.ley li::before{content:counter(l);position:absolute;left:0;top:0;width:21px;height:21px;border-radius:50%;background:var(--fire-2);color:#0C0C0E;font-weight:700;font-size:11.5px;display:grid;place-items:center}
.vis figcaption{font-size:12px;color:var(--muted);font-style:italic;margin-top:10px;line-height:1.45}
.vis figcaption a{color:var(--muted);text-decoration:underline}
@media (max-width:720px){.vis .lam.c4{grid-template-columns:1fr 1fr}.vis .lam.c3{grid-template-columns:1fr}.vis ol.ley{grid-template-columns:1fr}}
@media (max-width:420px){.vis .lam.c2{grid-template-columns:1fr}}
