{"id":1900,"date":"2026-08-30T13:03:47","date_gmt":"2026-08-30T18:03:47","guid":{"rendered":"https:\/\/nucleo.miespaciodigital.net\/?page_id=1900"},"modified":"2026-08-30T13:09:45","modified_gmt":"2026-08-30T18:09:45","slug":"hoja-de-ruta-operativa-nucleo-supabase-%e2%86%92-seguimiento-de-resultados","status":"publish","type":"page","link":"https:\/\/miespaciodigital.net\/auditoria\/hoja-de-ruta-operativa-nucleo-supabase-%e2%86%92-seguimiento-de-resultados\/","title":{"rendered":"Hoja de Ruta Operativa N\u00daCLEO \u2014 Supabase \u2192 Seguimiento de Resultados"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"1900\" class=\"elementor elementor-1900\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1a9b675 e-con e-atomic-element e-flexbox-base e-92580e8 \" data-id=\"1a9b675\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"1a9b675\" data-e-type=\"e-flexbox\" data-id=\"1a9b675\">\n    \t\t<div class=\"elementor-element elementor-element-afa159b elementor-widget elementor-widget-text-editor\" data-id=\"afa159b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Hoja de Ruta Operativa N\u00daCLEO \u2014 Supabase \u2192 Seguimiento de Resultados<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\n<\/div>\n<div class=\"elementor-element elementor-element-2d9eae3 e-con e-atomic-element e-flexbox-base e-bbd4096 \" data-id=\"2d9eae3\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"2d9eae3\" data-e-type=\"e-flexbox\" data-id=\"2d9eae3\">\n    <div class=\"elementor-element elementor-element-0030279 e-con e-atomic-element e-flexbox-base \" data-id=\"0030279\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"0030279\" data-e-type=\"e-flexbox\" data-id=\"0030279\">\n    \t\t<div class=\"elementor-element elementor-element-71171f5 elementor-widget elementor-widget-html\" data-id=\"71171f5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!DOCTYPE html>\n<html lang=\"es\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>N\u00daCLEO \u2014 Hoja de Ruta Operativa<\/title>\n<style>\n:root{--ink:#132029;--ink-soft:#52616a;--paper:#F4F2EC;--card:#fff;--line:#DDD8CB;--navy:#12303D;--navy-soft:#1C3E4E;--gold:#C98A3B;--green:#3A7D57;--green-bg:#E4EEE6;--amber:#B8862F;--amber-bg:#F2E9D6;--shadow:0 1px 2px rgba(19,32,41,.06),0 8px 24px -12px rgba(19,32,41,.18)}\n*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--paper);color:var(--ink);font-family:Arial,sans-serif}.app{display:grid;grid-template-columns:260px 1fr;min-height:100vh}.sidebar{background:var(--navy);color:#fff;padding:28px 20px;display:flex;flex-direction:column;gap:24px}.brand img{width:100%;max-width:190px;height:auto;display:block}nav{display:flex;flex-direction:column;gap:2px}.nav-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;color:#C7D3D8;text-decoration:none;font-size:14px}.nav-item:hover{background:rgba(255,255,255,.06);color:#fff}.nav-item .num{width:18px;color:#7C929B;font-size:12px}.nav-sub{margin-left:26px;display:flex;flex-direction:column}.nav-sub .nav-item{font-size:13px;padding:7px 12px;color:#9FB2BC}.nav-util{margin-top:8px;padding-top:12px;border-top:1px solid rgba(255,255,255,.12)}.nav-item.active{background:var(--navy-soft);color:#fff;box-shadow:inset 3px 0 0 var(--gold)}.main{padding:34px 40px 60px;max-width:1450px}.eyebrow{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);font-weight:700;margin-bottom:6px}h1{font-family:Georgia,serif;font-size:34px;margin:0 0 6px;color:var(--navy)}.subtitle{font-size:16px;color:var(--ink-soft);margin-bottom:24px}.hero{display:grid;grid-template-columns:1.4fr .8fr;gap:20px;margin-bottom:22px}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:22px}.deliverable{border-left:5px solid var(--gold)}.card h2{font-family:Georgia,serif;font-size:20px;margin:0 0 10px;color:var(--navy)}.card p{font-size:15px;line-height:1.65;color:var(--ink-soft);margin:0}.flow{margin-top:14px;padding:14px;border-radius:10px;background:#FAF9F5;border:1px dashed var(--line);font-weight:700;color:var(--navy);line-height:1.6}.progress-card{background:var(--navy);color:#fff}.progress-card h2{color:#fff}.progress-number{font-family:Georgia,serif;font-size:48px;font-weight:700;margin:8px 0}.progress-track{height:12px;background:rgba(255,255,255,.14);border-radius:999px;overflow:hidden}.progress-fill{height:100%;width:0;background:var(--gold);transition:width .25s}.progress-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px}.stat{background:rgba(255,255,255,.08);border-radius:8px;padding:10px;text-align:center}.stat strong{display:block;font-size:22px}.stat span{font-size:11px;color:#B7C4CA;text-transform:uppercase}.section-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:22px}.info-list{display:grid;gap:10px}.info-row,.resource{padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#FAF9F5}.resources{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.roadmap-head{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:12px}.badge{display:inline-flex;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:700}.badge.active{background:var(--amber-bg);color:var(--amber)}.badge.done{background:var(--green-bg);color:var(--green)}.roadmap{display:grid;gap:8px}.step{display:grid;grid-template-columns:46px 30px 1.3fr 1.7fr 120px;gap:12px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:11px 14px}.step.done{background:#F8FBF8}.step .n{font-family:monospace;color:var(--gold);font-weight:700}.step input{width:20px;height:20px;accent-color:var(--green)}.step .task{font-weight:700;color:var(--navy)}.step .result{font-size:13px;color:var(--ink-soft)}.step .state{text-align:center;font-size:11px;font-weight:700;padding:5px 8px;border-radius:999px;background:var(--amber-bg);color:var(--amber)}.step.done .state{background:var(--green-bg);color:var(--green)}.approval{margin-top:20px}.approval-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.test{padding:14px;border-radius:10px;border:1px solid var(--line);background:#FAF9F5;text-align:center;font-size:13px}.test b{display:block;margin-bottom:4px;color:var(--navy)}.note{margin-top:20px;padding:14px;border:1px dashed var(--line);border-radius:10px;background:rgba(201,138,59,.05);font-size:13px;color:var(--ink-soft)}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.btn{border:none;border-radius:9px;padding:10px 16px;font-weight:700;cursor:pointer}.btn-primary{background:var(--navy);color:#fff}.btn-secondary{background:#fff;color:var(--navy);border:1px solid var(--navy)}.return{display:inline-block;margin-top:28px;padding:12px 22px;background:#123746;color:#fff;text-decoration:none;border-radius:8px;font-weight:700}@media(max-width:1050px){.app{grid-template-columns:1fr}.sidebar{display:none}.hero,.section-grid{grid-template-columns:1fr}.step{grid-template-columns:38px 28px 1fr}.step .result,.step .state{grid-column:3}.approval-grid{grid-template-columns:1fr 1fr}}\n<\/style>\n<\/head>\n<body>\n<div class=\"app\">\n<aside class=\"sidebar\">\n<div class=\"brand\"><img decoding=\"async\" src=\"https:\/\/miespaciodigital.net\/auditoria\/wp-content\/uploads\/2026\/08\/LOGO-NUCLEO.jpg\" alt=\"N\u00daCLEO\"><\/div>\n<nav>\n<a class=\"nav-item\" href=\"https:\/\/miespaciodigital.net\/auditoria\/plataforma-saas-de-gestion-digital\/tablero-general\/\"><span class=\"num\">01<\/span>Tablero General<\/a>\n<a class=\"nav-item\" href=\"https:\/\/miespaciodigital.net\/auditoria\/plataforma-saas-de-gestion-digital\/atencion-ciudadana-tupa\/\"><span class=\"num\">02<\/span>Atenci\u00f3n Ciudadana<\/a>\n<a class=\"nav-item\" href=\"https:\/\/miespaciodigital.net\/auditoria\/plataforma-saas-de-gestion-digital\/asistente-interno-ia\/\"><span class=\"num\">03<\/span>Asistente Interno (IA)<\/a>\n<a class=\"nav-item\" href=\"https:\/\/miespaciodigital.net\/auditoria\/plataforma-saas-de-gestion-digital\/4-gestion-por-resultados\/\"><span class=\"num\">04<\/span>Gesti\u00f3n por Resultados<\/a>\n<div class=\"nav-sub\">\n<a class=\"nav-item\" href=\"https:\/\/miespaciodigital.net\/auditoria\/plataforma-saas-de-gestion-digital\/4-gestion-por-resultados\/acciones-correctivas-2\/\">Acciones Correctivas<\/a>\n<a class=\"nav-item\" href=\"https:\/\/miespaciodigital.net\/auditoria\/plataforma-saas-de-gestion-digital\/4-gestion-por-resultados\/indicadores-kpi-2\/\">Indicadores KPI<\/a>\n<a class=\"nav-item\" href=\"https:\/\/miespaciodigital.net\/auditoria\/plataforma-saas-de-gestion-digital\/4-gestion-por-resultados\/matriz-raci-v2\/\">Matriz RACI<\/a>\n<a class=\"nav-item\" href=\"https:\/\/miespaciodigital.net\/auditoria\/plataforma-saas-de-gestion-digital\/4-gestion-por-resultados\/metas-y-linea-base-2\/\">Metas y L\u00ednea Base<\/a>\n<a class=\"nav-item\" href=\"https:\/\/miespaciodigital.net\/auditoria\/plataforma-saas-de-gestion-digital\/4-gestion-por-resultados\/seguimiento-de-resultados-v2\/\">Seguimiento de Resultados-v2<\/a>\n<\/div>\n<a class=\"nav-item\" href=\"https:\/\/miespaciodigital.net\/auditoria\/plataforma-saas-de-gestion-digital\/5-planeamiento-y-presupuesto\/\"><span class=\"num\">05<\/span>Planeamiento y Presupuesto<\/a>\n<a class=\"nav-item\" href=\"https:\/\/miespaciodigital.net\/auditoria\/plataforma-saas-de-gestion-digital\/auditoria-y-control\/\"><span class=\"num\">06<\/span>Auditor\u00eda y Control<\/a>\n<a class=\"nav-item\" href=\"https:\/\/miespaciodigital.net\/auditoria\/plataforma-saas-de-gestion-digital\/informes-y-rendicion-sistema\/\"><span class=\"num\">07<\/span>Informes y Rendici\u00f3n<\/a>\n<a class=\"nav-item\" href=\"https:\/\/miespaciodigital.net\/auditoria\/plataforma-organismos-de-gobierno\/\"><span class=\"num\">08<\/span>Configuraci\u00f3n<\/a>\n<a class=\"nav-item\" href=\"https:\/\/miespaciodigital.net\/auditoria\/plataforma-saas-de-gestion-digital\/ayuda-y-soporte-2\/\"><span class=\"num\">09<\/span>Ayuda y Soporte<\/a>\n<div class=\"nav-util\"><a class=\"nav-item active\" href=\"#\"><span class=\"num\">\u2713<\/span>Hoja de Ruta<\/a><\/div>\n<\/nav>\n<\/aside>\n\n<main class=\"main\">\n<div class=\"eyebrow\">HOJA DE RUTA OPERATIVA N\u00daCLEO<\/div>\n<h1>Supabase \u2192 Seguimiento de Resultados<\/h1>\n<div class=\"subtitle\">De prototipo a funci\u00f3n real del SaaS<\/div>\n\n<section class=\"hero\">\n<div class=\"card deliverable\">\n<h2>1. Entregable<\/h2>\n<p><b>M\u00f3dulo \u201cSeguimiento de Resultados\u201d conectado realmente a Supabase<\/b>, capaz de consultar, registrar y conservar seguimientos institucionales, actualizando autom\u00e1ticamente la informaci\u00f3n presentada al usuario.<\/p>\n<div class=\"flow\">Usuario \u2192 selecciona una meta \u2192 registra avance \u2192 Guardar \u2192 Supabase almacena \u2192 N\u00daCLEO consulta \u2192 bit\u00e1cora \u2192 indicadores<\/div>\n<\/div>\n<div class=\"card progress-card\">\n<h2>Avance general<\/h2>\n<div class=\"progress-number\"><span id=\"progressPct\">0<\/span>%<\/div>\n<div class=\"progress-track\"><div class=\"progress-fill\" id=\"progressFill\"><\/div><\/div>\n<div class=\"progress-meta\">\n<div class=\"stat\"><strong id=\"doneCount\">0<\/strong><span>Completados<\/span><\/div>\n<div class=\"stat\"><strong id=\"pendingCount\">18<\/strong><span>Pendientes<\/span><\/div>\n<div class=\"stat\"><strong id=\"currentStep\">01<\/strong><span>Paso actual<\/span><\/div>\n<\/div>\n<\/div>\n<\/section>\n\n<section class=\"section-grid\">\n<div class=\"card\"><h2>2. \u00bfC\u00f3mo lo hacemos?<\/h2><div class=\"info-list\">\n<div class=\"info-row\"><b>Entrada:<\/b> el usuario registra una actualizaci\u00f3n de una meta.<\/div>\n<div class=\"info-row\"><b>Proceso:<\/b> N\u00daCLEO identifica meta, organismo, usuario, fecha, estado y observaci\u00f3n.<\/div>\n<div class=\"info-row\"><b>Almacenamiento:<\/b> Supabase conserva el registro.<\/div>\n<div class=\"info-row\"><b>Consulta:<\/b> N\u00daCLEO recupera el historial al abrir el m\u00f3dulo.<\/div>\n<div class=\"info-row\"><b>Presentaci\u00f3n:<\/b> bit\u00e1cora e indicadores se actualizan con datos reales.<\/div>\n<div class=\"info-row\"><b>Integraci\u00f3n:<\/b> KPI, alertas, IA, informes y Tablero General.<\/div>\n<\/div><\/div>\n<div class=\"card\"><h2>3. Recursos que utiliza<\/h2><div class=\"resources\">\n<div class=\"resource\"><b>WordPress + Elementor<\/b><br>Interfaz<\/div>\n<div class=\"resource\"><b>HTML \/ CSS \/ JavaScript<\/b><br>Comportamiento<\/div>\n<div class=\"resource\"><b>Supabase Database<\/b><br>Persistencia<\/div>\n<div class=\"resource\"><b>Supabase Auth<\/b><br>Identidad<\/div>\n<div class=\"resource\"><b>Supabase RLS<\/b><br>Seguridad<\/div>\n<div class=\"resource\"><b>Tabla de Metas<\/b><br>Origen<\/div>\n<div class=\"resource\"><b>Tabla Seguimientos<\/b><br>Historial<\/div>\n<div class=\"resource\"><b>ID organismo + usuario<\/b><br>Trazabilidad<\/div>\n<\/div><\/div>\n<\/section>\n\n<section class=\"card\">\n<div class=\"roadmap-head\"><div><h2>4. Hoja de Ruta chequeable<\/h2><p>Marca cada actividad cuando quede realmente comprobada.<\/p><\/div><span class=\"badge active\" id=\"overallStatus\">EN PROCESO<\/span><\/div>\n<div class=\"roadmap\" id=\"roadmap\">\n<div class=\"step\" data-step=\"1\"><div class=\"n\">01<\/div><input type=\"checkbox\"><div class=\"task\">Revisar estructura actual de Supabase<\/div><div class=\"result\">Saber qu\u00e9 tablas ya existen<\/div><div class=\"state\">PENDIENTE<\/div><\/div>\n<div class=\"step\" data-step=\"2\"><div class=\"n\">02<\/div><input type=\"checkbox\"><div class=\"task\">Identificar tabla de Metas<\/div><div class=\"result\">Confirmar d\u00f3nde viven las metas<\/div><div class=\"state\">PENDIENTE<\/div><\/div>\n<div class=\"step\" data-step=\"3\"><div class=\"n\">03<\/div><input type=\"checkbox\"><div class=\"task\">Identificar \/ crear tabla de Seguimientos<\/div><div class=\"result\">Definir almacenamiento hist\u00f3rico<\/div><div class=\"state\">PENDIENTE<\/div><\/div>\n<div class=\"step\" data-step=\"4\"><div class=\"n\">04<\/div><input type=\"checkbox\"><div class=\"task\">Definir campos necesarios<\/div><div class=\"result\">IDs, fecha, estado, observaci\u00f3n y usuario<\/div><div class=\"state\">PENDIENTE<\/div><\/div>\n<div class=\"step\" data-step=\"5\"><div class=\"n\">05<\/div><input type=\"checkbox\"><div class=\"task\">Definir relaci\u00f3n Meta \u2192 Seguimientos<\/div><div class=\"result\">Una meta puede tener muchos registros<\/div><div class=\"state\">PENDIENTE<\/div><\/div>\n<div class=\"step\" data-step=\"6\"><div class=\"n\">06<\/div><input type=\"checkbox\"><div class=\"task\">Incorporar organismo \/ tenant<\/div><div class=\"result\">Separar datos de cada instituci\u00f3n<\/div><div class=\"state\">PENDIENTE<\/div><\/div>\n<div class=\"step\" data-step=\"7\"><div class=\"n\">07<\/div><input type=\"checkbox\"><div class=\"task\">Revisar RLS<\/div><div class=\"result\">Evitar acceso a informaci\u00f3n ajena<\/div><div class=\"state\">PENDIENTE<\/div><\/div>\n<div class=\"step\" data-step=\"8\"><div class=\"n\">08<\/div><input type=\"checkbox\"><div class=\"task\">Conectar formulario de WordPress<\/div><div class=\"result\">Bot\u00f3n Guardar env\u00eda datos reales<\/div><div class=\"state\">PENDIENTE<\/div><\/div>\n<div class=\"step\" data-step=\"9\"><div class=\"n\">09<\/div><input type=\"checkbox\"><div class=\"task\">Probar INSERT<\/div><div class=\"result\">Registro aparece en Supabase<\/div><div class=\"state\">PENDIENTE<\/div><\/div>\n<div class=\"step\" data-step=\"10\"><div class=\"n\">10<\/div><input type=\"checkbox\"><div class=\"task\">Implementar SELECT<\/div><div class=\"result\">P\u00e1gina recupera registros guardados<\/div><div class=\"state\">PENDIENTE<\/div><\/div>\n<div class=\"step\" data-step=\"11\"><div class=\"n\">11<\/div><input type=\"checkbox\"><div class=\"task\">Sustituir datos DEMO<\/div><div class=\"result\">Bit\u00e1cora usa informaci\u00f3n real<\/div><div class=\"state\">PENDIENTE<\/div><\/div>\n<div class=\"step\" data-step=\"12\"><div class=\"n\">12<\/div><input type=\"checkbox\"><div class=\"task\">Actualizar contadores<\/div><div class=\"result\">KPIs calculados desde Supabase<\/div><div class=\"state\">PENDIENTE<\/div><\/div>\n<div class=\"step\" data-step=\"13\"><div class=\"n\">13<\/div><input type=\"checkbox\"><div class=\"task\">Registrar usuario creador<\/div><div class=\"result\">Trazabilidad real<\/div><div class=\"state\">PENDIENTE<\/div><\/div>\n<div class=\"step\" data-step=\"14\"><div class=\"n\">14<\/div><input type=\"checkbox\"><div class=\"task\">Probar cerrar \/ reabrir p\u00e1gina<\/div><div class=\"result\">El dato permanece guardado<\/div><div class=\"state\">PENDIENTE<\/div><\/div>\n<div class=\"step\" data-step=\"15\"><div class=\"n\">15<\/div><input type=\"checkbox\"><div class=\"task\">Probar segundo registro<\/div><div class=\"result\">Construir historial de la misma meta<\/div><div class=\"state\">PENDIENTE<\/div><\/div>\n<div class=\"step\" data-step=\"16\"><div class=\"n\">16<\/div><input type=\"checkbox\"><div class=\"task\">Probar seguridad<\/div><div class=\"result\">Usuario solo accede a su organismo<\/div><div class=\"state\">PENDIENTE<\/div><\/div>\n<div class=\"step\" data-step=\"17\"><div class=\"n\">17<\/div><input type=\"checkbox\"><div class=\"task\">Prueba integral<\/div><div class=\"result\">Meta \u2192 Seguimiento \u2192 Supabase \u2192 pantalla<\/div><div class=\"state\">PENDIENTE<\/div><\/div>\n<div class=\"step\" data-step=\"18\"><div class=\"n\">18<\/div><input type=\"checkbox\"><div class=\"task\">Declarar m\u00f3dulo operativo<\/div><div class=\"result\">SEGUIMIENTO DE RESULTADOS \u2014 APROBADO<\/div><div class=\"state\">PENDIENTE<\/div><\/div>\n\n<\/div>\n<div class=\"actions\"><button class=\"btn btn-primary\" onclick=\"saveProgress()\">Guardar avance<\/button><button class=\"btn btn-secondary\" onclick=\"resetProgress()\">Reiniciar hoja<\/button><\/div>\n<\/section>\n\n<section class=\"card approval\">\n<h2>5. Criterios de aprobaci\u00f3n<\/h2>\n<div class=\"approval-grid\">\n<div class=\"test\"><b>\u2610 Guarda<\/b>El registro llega a Supabase<\/div>\n<div class=\"test\"><b>\u2610 Persiste<\/b>Permanece despu\u00e9s de cerrar<\/div>\n<div class=\"test\"><b>\u2610 Consulta<\/b>N\u00daCLEO recupera los registros<\/div>\n<div class=\"test\"><b>\u2610 Calcula<\/b>Actualiza indicadores reales<\/div>\n<div class=\"test\"><b>\u2610 Protege<\/b>Separa datos por organismo<\/div>\n<\/div>\n<div class=\"note\"><b>Ayuda memoria:<\/b> Seguimiento de Resultados es la bit\u00e1cora hist\u00f3rica de una meta. Cada registro conserva qui\u00e9n lo cre\u00f3, cu\u00e1ndo, su estado, observaci\u00f3n y relaci\u00f3n con la meta. Esta informaci\u00f3n alimentar\u00e1 posteriormente KPI, alertas, informes, Asistente IA y Tablero General.<\/div>\n<\/section>\n\n<a class=\"return\" href=\"https:\/\/miespaciodigital.net\/auditoria\/plataforma-saas-de-gestion-digital\/tablero-general\/\">\u2190 REGRESAR AL \u00cdNDICE<\/a>\n<\/main><\/div>\n\n<script>\nconst STORAGE_KEY=\"nucleo_roadmap_supabase_seguimiento_v1\";\nconst steps=[...document.querySelectorAll(\".step\")];\nfunction updateDashboard(){\n const done=steps.filter(s=>s.querySelector(\"input\").checked).length,total=steps.length,pct=Math.round(done\/total*100);\n doneCount.textContent=done;pendingCount.textContent=total-done;progressPct.textContent=pct;progressFill.style.width=pct+\"%\";\n steps.forEach(s=>{const c=s.querySelector(\"input\").checked;s.classList.toggle(\"done\",c);s.querySelector(\".state\").textContent=c?\"COMPLETADO\":\"PENDIENTE\";});\n const next=steps.find(s=>!s.querySelector(\"input\").checked);currentStep.textContent=next?String(next.dataset.step).padStart(2,\"0\"):\"OK\";\n overallStatus.textContent=done===total?\"APROBADO\":\"EN PROCESO\";overallStatus.className=done===total?\"badge done\":\"badge active\";\n}\nfunction saveProgress(){localStorage.setItem(STORAGE_KEY,JSON.stringify(steps.map(s=>s.querySelector(\"input\").checked)));updateDashboard();}\nfunction loadProgress(){try{const raw=localStorage.getItem(STORAGE_KEY);if(raw){const data=JSON.parse(raw);steps.forEach((s,i)=>s.querySelector(\"input\").checked=!!data[i]);}}catch(e){}updateDashboard();}\nfunction resetProgress(){if(!confirm(\"\u00bfReiniciar todos los avances de esta hoja de ruta?\"))return;localStorage.removeItem(STORAGE_KEY);steps.forEach(s=>s.querySelector(\"input\").checked=false);updateDashboard();}\nsteps.forEach(s=>s.querySelector(\"input\").addEventListener(\"change\",saveProgress));\nloadProgress();\n<\/script>\n<\/body><\/html>\n\t\t\t\t<\/div>\n\t\t\n<\/div>\n\n<\/div>\n\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Hoja de Ruta Operativa N\u00daCLEO \u2014 Supabase \u2192 Seguimiento de Resultados N\u00daCLEO \u2014 Hoja de Ruta Operativa 01Tablero General 02Atenci\u00f3n Ciudadana 03Asistente Interno (IA) 04Gesti\u00f3n por Resultados Acciones Correctivas Indicadores KPI Matriz RACI Metas y L\u00ednea Base Seguimiento de Resultados-v2 05Planeamiento y Presupuesto 06Auditor\u00eda y Control 07Informes y Rendici\u00f3n 08Configuraci\u00f3n 09Ayuda y Soporte \u2713Hoja de [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-1900","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/miespaciodigital.net\/auditoria\/wp-json\/wp\/v2\/pages\/1900","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/miespaciodigital.net\/auditoria\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/miespaciodigital.net\/auditoria\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/miespaciodigital.net\/auditoria\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/miespaciodigital.net\/auditoria\/wp-json\/wp\/v2\/comments?post=1900"}],"version-history":[{"count":4,"href":"https:\/\/miespaciodigital.net\/auditoria\/wp-json\/wp\/v2\/pages\/1900\/revisions"}],"predecessor-version":[{"id":1905,"href":"https:\/\/miespaciodigital.net\/auditoria\/wp-json\/wp\/v2\/pages\/1900\/revisions\/1905"}],"wp:attachment":[{"href":"https:\/\/miespaciodigital.net\/auditoria\/wp-json\/wp\/v2\/media?parent=1900"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}