/* global React */ window.LiveStatusBar = function LiveStatusBar() { return (
EN VIVO · Oriente Medio · 2026‑04‑20 14:32 UTC 47 eventos activos · 312 fuentes · últ. actualización hace 43s
); }; window.ObsHeader = function ObsHeader() { return (
/ · oriente‑medio / en‑vivo
); }; const btnGhost = { fontFamily: 'var(--font-ui)', fontSize: 12, fontWeight: 600, padding: '7px 12px', borderRadius: 4, border: '1px solid var(--border-hairline)', background: 'transparent', color: 'var(--fg-primary)', cursor: 'pointer' }; const btnPrimary = { ...btnGhost, background: 'var(--fg-primary)', color: '#050505', borderColor: 'var(--fg-primary)' }; window.ObsHeadline = function ObsHeadline() { return (
OBSERVATORIO · JORNADA 412

Escalada de tensión en el sur del Líbano mientras Doha reabre el canal diplomático.

Resumen ejecutivo.{' '} Dos líneas activas hoy: actividad cinética sobre infraestructura energética en la costa sur, y reanudación de contactos indirectos en Doha tras 72 horas de silencio. Cifras de bajas divergen según la fuente — disputa abierta.

); }; // ——— Event card with triangulation ——— window.EventCard = function EventCard({ event }) { return (
{event.ts} · {event.id} {event.region}

{event.title}

{event.actors.map((a, i) => ( {i > 0 && ·} {a} ))}

{event.summary}

{event.context && (
CONTEXTO

{event.context}

)}
{event.tags.map(t => ( #{t} ))}
); }; function Badge({ tone }) { const cfg = { high: ['#22c55e', 'Veracidad alta'], mid: ['#eab308', 'Veracidad media'], low: ['#ef4444', 'Veracidad baja'], disputed: ['#ef4444', 'Disputada'], }[tone] || ['#22c55e', 'Veracidad']; return ( {cfg[1]} ); } function Triangulation({ voices }) { const map = { direct: ['#dc2626', 'Directa'], state: ['#3b82f6', 'Estatal'], western: ['#22c55e', 'Occidental'], osint: ['#fbbf24', 'OSINT'], counter: ['#a855f7', 'Contraria'] }; return (
TRIANGULACIÓN DE VOCES · {voices.length} REGISTRADAS
{voices.map((v, i) => { const [c, label] = map[v.kind]; return (
{label} "{v.quote}" {v.source}
); })}
); } window.ObsSidebar = function ObsSidebar() { return (