// Ejecutora — La Rutina que Vende™ — Los 3 Pilares const RutinaScreen = () => { const [activePilar, setActivePilar] = React.useState('pilar1'); const [mesActual, setMesActual] = React.useState('mayo'); const [okrForm, setOkrForm] = React.useState({ objetivo: '', kr1: '', kr2: '', kr3: '' }); // Pilar 1 — Planificación const [planMes, setPlanMes] = React.useState({ campana: 'adquisicion', productoProtagonista: 'Pack Bienvenida', metaFacturacion: '8000', metaClientes: '15', inversion: '200', fechaClave: 'Día de la Madre — 11 may', }); const [areas, setAreas] = React.useState([ { id: 'producto', label: 'Producto', icon: '📦', pregunta: '¿Hay coherencia entre lo que ofreces y la transformación prometida?', semaforo: 'verde', notas: '' }, { id: 'marketing', label: 'Marketing', icon: '📢', pregunta: '¿Qué canal genera más pedidos reales? ¿Tu contenido atrae al cliente ideal?', semaforo: 'amarillo', notas: '' }, { id: 'ventas', label: 'Ventas', icon: '💰', pregunta: '¿Tienes rutina de ventas o dependes de que lleguen solas? ¿Haces upsell?', semaforo: 'amarillo', notas: '' }, { id: 'operaciones',label: 'Operaciones', icon: '⚙️', pregunta: '¿Tu operación te libera o te consume? ¿Qué necesitas delegar?', semaforo: 'rojo', notas: '' }, ]); const [tiposProducto, setTiposProducto] = React.useState([ { tipo: 'A', nombre: 'Generador de lead', descripcion: 'Atracción gratuita (PDF, clase gratis, muestra)', ejemplo: '', color: EJ.cyan }, { tipo: 'B', nombre: 'Generador de cliente', descripcion: 'Primera compra fácil y accesible', ejemplo: '', color: EJ.violet }, { tipo: 'C', nombre: 'Generador de caja', descripcion: 'Inyección rápida (workshops, ediciones limitadas)', ejemplo: '', color: EJ.pink }, { tipo: 'D', nombre: 'Generador de lucro', descripcion: 'Producto principal de mayor margen', ejemplo: '', color: EJ.navy }, ]); // Pilar 2 — Campañas checklist const [campCheck, setCampCheck] = React.useState({ producto: false, oferta: false, urgencia: false, prueba: false, cta: false, objetivo: false, inicio: false, imagenes: false, copy: false, canales: false, }); // Pilar 3 — Semana const [semanal, setSemanal] = React.useState([ { dia: 'Lunes', foco: 'Planificación semanal (90 min) + arranque', done: true }, { dia: 'Martes', foco: 'Contenido de atracción + comunidad', done: true }, { dia: 'Miércoles', foco: 'Conversión directa + publicar oferta', done: true }, { dia: 'Jueves', foco: 'Relaciones + prueba social + contacto VIP', done: false }, { dia: 'Viernes', foco: 'Revisión de métricas + cierre fuerte', done: false }, ]); const [indicadores, setIndicadores] = React.useState([ { id: 1, label: 'Ventas del día', frecuencia: 'Diario', valor: '$250', meta: '$300', color: EJ.cyan }, { id: 2, label: 'Nuevos contactos', frecuencia: 'Semanal', valor: '8', meta: '10', color: EJ.violet }, { id: 3, label: 'Tasa de cierre', frecuencia: 'Semanal', valor: '38%', meta: '30%', color: EJ.green }, { id: 4, label: 'Ticket promedio', frecuencia: 'Mensual', valor: '$185', meta: '$200', color: EJ.cyan }, { id: 5, label: 'Clientes reactivadas', frecuencia: 'Mensual', valor: '5', meta: '8', color: EJ.pink }, { id: 6, label: 'Canal más efectivo', frecuencia: 'Mensual', valor: 'WhatsApp', meta: '—', color: EJ.navy }, ]); const semColors = { rojo: EJ.pink, amarillo: '#F59E0B', verde: EJ.green }; const semBg = { rojo: EJ.pinkLight, amarillo: '#FEF9EC', verde: EJ.greenLight }; const updateArea = (id, field, val) => { setAreas(prev => prev.map(a => a.id === id ? { ...a, [field]: val } : a)); }; const pilares = [ { id: 'pilar1', num: '1', label: 'Planificación', sublabel: 'Mensual · último viernes · 45 min', color: EJ.cyan, bg: EJ.cyanLight }, { id: 'pilar2', num: '2', label: 'Campañas', sublabel: 'Semanal · Lunes · 60-90 min', color: EJ.violet, bg: EJ.violetLight }, { id: 'pilar3', num: '3', label: 'Rutina Diaria', sublabel: 'Todos los días · 60-75 min máx.', color: EJ.pink, bg: EJ.pinkLight }, ]; return (
{/* Header */}

La Rutina que Vende™

Sistema completo de ventas — 3 Pilares conectados

{/* Selector de pilar */}
{pilares.map(p => (
setActivePilar(p.id)} style={{ padding: '18px 20px', borderRadius: 20, cursor: 'pointer', transition: 'all 0.2s', background: activePilar === p.id ? p.color : EJ.white, boxShadow: activePilar === p.id ? `0 8px 30px ${p.color}44` : '0 4px 20px rgba(26,31,110,0.08)', border: `2px solid ${activePilar === p.id ? p.color : 'transparent'}`, display: 'flex', alignItems: 'center', gap: 14, }} >
{p.num}
Pilar {p.num}: {p.label}
{p.sublabel}
))}
{/* PILAR 1 */} {activePilar === 'pilar1' && (
{/* Plan del mes */}
setPlanMes(p => ({...p, productoProtagonista: e.target.value}))} placeholder="ej. Pack Bienvenida" /> setPlanMes(p => ({...p, fechaClave: e.target.value}))} placeholder="ej. Día de la Madre" /> setPlanMes(p => ({...p, metaFacturacion: e.target.value}))} type="number" /> setPlanMes(p => ({...p, metaClientes: e.target.value}))} type="number" /> setPlanMes(p => ({...p, inversion: e.target.value}))} type="number" />
{/* Tipos de producto */}
{tiposProducto.map((tp, i) => (
{tp.tipo}
{tp.nombre}
{tp.descripcion}
setTiposProducto(prev => prev.map((t, j) => j === i ? {...t, ejemplo: e.target.value} : t))} />
))}
{/* Análisis 4 áreas */}
{areas.map(area => (
{area.icon}
{area.label}
{area.pregunta}
{['verde', 'amarillo', 'rojo'].map(s => ( ))}