{"id":6282,"date":"2026-05-27T20:03:57","date_gmt":"2026-05-28T02:03:57","guid":{"rendered":"https:\/\/proyectum.com\/mx\/?page_id=6282"},"modified":"2026-05-27T22:23:33","modified_gmt":"2026-05-28T04:23:33","slug":"cep_proyectum","status":"publish","type":"page","link":"https:\/\/proyectum.com\/mx\/cep_proyectum\/","title":{"rendered":"CEP_Proyectum"},"content":{"rendered":"\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>CEP \u2014 Calibrador de \u00c9xito en Proyectos | Proyectum<\/title>\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Montserrat:wght@300;400;500;600&amp;display=swap\" rel=\"stylesheet\">\n<style>\n:root{\n  --navy:#03294C;--navy-dark:#021d38;--navy-mid:#1a4a72;--navy-light:#eef4f9;--navy-tint:#d0e3f0;\n  --gold:#E2A235;--gold-dark:#c4861d;--gold-light:#fdf6e8;--gold-tint:#f5daa0;\n  --gray-900:#1a1a1a;--gray-700:#444;--gray-500:#777;--gray-300:#ccc;--gray-100:#f5f5f5;\n  --success:#1b7f4e;--success-bg:#e8f5ee;--success-bd:#a8d5bc;\n  --danger:#9e0c23;--danger-bg:#fdf0f2;--danger-bd:#f5c6ce;\n  --font:'Montserrat',sans-serif;--radius:10px;--shadow:0 2px 14px rgba(3,41,76,.09);\n}\n*{box-sizing:border-box;margin:0;padding:0}\nhtml{scroll-behavior:smooth}\nbody{font-family:var(--font);font-weight:400;color:var(--gray-900);background:#fff;font-size:19px;line-height:1.75}\nstrong{font-weight:500}\n\n\/* NAV *\/\nnav{background:#fff;border-bottom:2px solid var(--navy-light);padding:0 1.5rem;display:flex;align-items:center;justify-content:space-between;height:56px;position:sticky;top:0;z-index:100;gap:12px}\n.nav-brand{display:flex;align-items:center;gap:12px}\n.nav-logo{width:36px;height:36px;background:var(--navy);border-radius:8px;display:flex;align-items:center;justify-content:center}\n.nav-logo span{color:#fff;font-size:15px;font-weight:600;letter-spacing:-.5px}\n.nav-title{font-size:14px;font-weight:500;color:var(--navy)}\n.nav-sub{font-size:10px;color:var(--gray-500);font-weight:300}\n.nav-steps{display:flex;gap:3px;flex-shrink:0}\n.step-pill{padding:4px 11px;border-radius:20px;font-size:11px;font-weight:400;cursor:pointer;border:1px solid var(--gray-300);background:#fff;color:var(--gray-500);transition:.2s;font-family:var(--font);white-space:nowrap}\n.step-pill.active{background:var(--navy);border-color:var(--navy);color:#fff;font-weight:500}\n.step-pill:hover:not(.active){border-color:var(--navy);color:var(--navy)}\n.step-pill.locked{opacity:.4;cursor:default;pointer-events:none}\n\n\/* HERO *\/\n.hero{background:var(--navy);color:#fff;padding:3.5rem 2rem 3rem;text-align:center;position:relative;overflow:hidden}\n.hero::before{content:'';position:absolute;right:-60px;top:-60px;width:260px;height:260px;border-radius:50%;background:rgba(226,162,53,.07);pointer-events:none}\n.hero::after{content:'';position:absolute;left:-50px;bottom:-80px;width:200px;height:200px;border-radius:50%;background:rgba(226,162,53,.05);pointer-events:none}\n.hero-eyebrow{display:inline-block;background:rgba(226,162,53,.15);color:var(--gold);border:1px solid rgba(226,162,53,.3);border-radius:20px;font-size:11px;font-weight:500;padding:4px 14px;margin-bottom:1.25rem;letter-spacing:.07em;text-transform:uppercase;position:relative}\n.hero h1{font-size:clamp(22px,4.5vw,34px);font-weight:300;letter-spacing:-.3px;margin-bottom:.8rem;position:relative}\n.hero h1 strong{font-weight:600;color:var(--gold)}\n.hero-question{font-size:clamp(16px,2.2vw,20px);font-weight:300;font-style:italic;opacity:.85;max-width:780px;margin:0 auto 1.25rem;position:relative;line-height:1.5}\n.hero-tagline{font-size:15px;font-weight:300;opacity:.65;max-width:680px;margin:0 auto;position:relative;letter-spacing:.02em}\n\n\/* MAIN *\/\nmain{width:100%;padding:2.5rem 3rem 5rem}\n.section{display:none}\n.section.active{display:block;animation:fi .25s ease}\n@keyframes fi{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}\n\n\/* PROBLEMA \/ EVIDENCIA *\/\n.problem-block{margin-bottom:3rem;padding-bottom:2.5rem;border-bottom:2px solid var(--navy-light)}\n.problem-eyebrow{display:inline-block;font-size:11px;font-weight:600;color:var(--gold-dark);text-transform:uppercase;letter-spacing:.12em;margin-bottom:.85rem;padding-bottom:.4rem;border-bottom:2px solid var(--gold)}\n.problem-headline{font-size:clamp(22px,3.2vw,30px);font-weight:300;color:var(--navy);line-height:1.3;margin-bottom:.8rem;letter-spacing:-.3px}\n.problem-headline strong{font-weight:600}\n.problem-lead{font-size:18px;font-weight:300;color:var(--gray-700);line-height:1.7;margin-bottom:2rem;max-width:820px}\n.problem-lead strong{color:var(--navy);font-weight:500}\n\n.evidence-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-bottom:2rem}\n@media(max-width:720px){.evidence-grid{grid-template-columns:1fr}}\n.evidence-card{background:#fff;border:1px solid var(--navy-tint);border-left:4px solid var(--gold);border-radius:0 var(--radius) var(--radius) 0;padding:1.25rem 1.4rem;box-shadow:var(--shadow)}\n.evidence-source{font-size:11px;font-weight:600;color:var(--navy-mid);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.5rem}\n.evidence-stat{font-size:30px;font-weight:300;color:var(--navy);line-height:1.15;margin-bottom:.5rem}\n.evidence-stat strong{color:var(--gold-dark);font-weight:600}\n.evidence-text{font-size:15px;font-weight:300;color:var(--gray-700);line-height:1.55;margin-bottom:.6rem}\n.evidence-cite{font-size:12px;font-weight:300;color:var(--gray-500);font-style:italic}\n\n.evidence-summary{font-size:17px;font-weight:300;color:var(--navy);line-height:1.6;text-align:center;padding:1rem 0;margin-bottom:2rem;letter-spacing:.02em}\n.evidence-summary strong{font-weight:500;color:var(--gold-dark)}\n\n\/* TESIS *\/\n.thesis-block{background:var(--navy);color:#fff;border-radius:var(--radius);padding:2rem 2.25rem;margin-bottom:2rem;position:relative;overflow:hidden}\n.thesis-block::before{content:'';position:absolute;top:0;left:0;width:5px;height:100%;background:var(--gold)}\n.thesis-eyebrow{font-size:11px;font-weight:600;color:var(--gold);text-transform:uppercase;letter-spacing:.12em;margin-bottom:.85rem}\n.thesis-question{font-size:clamp(20px,2.8vw,26px);font-weight:300;line-height:1.4;margin-bottom:1rem;letter-spacing:-.2px}\n.thesis-question strong{color:var(--gold);font-weight:500}\n.thesis-followup{font-size:16px;font-weight:300;opacity:.82;line-height:1.65;max-width:780px}\n.thesis-followup em{color:var(--gold);font-style:normal;font-weight:400}\n\n.bridge-text{font-size:17px;font-weight:300;color:var(--gray-700);line-height:1.7;margin-bottom:1rem;max-width:820px}\n.bridge-text strong{color:var(--navy);font-weight:500}\n.bridge-text em{font-style:italic;color:var(--navy-mid)}\n\n.bibliography{margin-top:1.5rem;padding-top:1.25rem;border-top:1px dashed var(--navy-tint)}\n.bibliography summary{font-size:13px;font-weight:500;color:var(--navy-mid);cursor:pointer;text-transform:uppercase;letter-spacing:.08em;padding:.4rem 0;list-style:none}\n.bibliography summary::-webkit-details-marker{display:none}\n.bibliography summary::before{content:'+';display:inline-block;margin-right:.5rem;color:var(--gold);font-weight:600}\n.bibliography[open] summary::before{content:'\u2212'}\n.bibliography-list{margin-top:.75rem;padding-left:1rem}\n.bibliography-list li{font-size:13px;font-weight:300;color:var(--gray-700);line-height:1.6;margin-bottom:.6rem;padding-left:.5rem;text-indent:-1rem;list-style:none}\n.bibliography-list li::before{content:'\u00b7';color:var(--gold);margin-right:.5rem;font-weight:600}\n\n\/* STEP HEADER *\/\n.step-header{display:flex;align-items:center;gap:12px;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid var(--navy-light)}\n.step-num{width:36px;height:36px;border-radius:50%;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:500;flex-shrink:0}\n.step-header h2{font-size:18px;font-weight:500;color:var(--navy)}\n.step-header p{font-size:19px;color:var(--gray-500);font-weight:300;margin-top:2px}\n\n\/* FIELDS *\/\n.field-group{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:1.5rem}\n@media(max-width:520px){.field-group{grid-template-columns:1fr}}\n.field{display:flex;flex-direction:column;gap:5px}\n.field.full{grid-column:1\/-1}\nlabel{font-size:11px;font-weight:500;color:var(--navy-mid);text-transform:uppercase;letter-spacing:.07em}\ninput[type=text],textarea{border:1px solid var(--gray-300);border-radius:var(--radius);padding:.55rem .85rem;font-family:var(--font);font-weight:300;font-size:14px;color:var(--gray-900);background:#fff;transition:.2s;outline:none;width:100%}\ninput[type=text]:focus,textarea:focus{border-color:var(--navy);box-shadow:0 0 0 3px rgba(3,41,76,.08)}\ntextarea{resize:vertical;min-height:72px}\n\n\/* INFO BOX *\/\n.info-box{background:var(--navy-light);border-left:3px solid var(--gold);border-radius:0 var(--radius) var(--radius) 0;padding:.9rem 1.1rem;font-size:19px;color:var(--gray-700);font-weight:300;margin-bottom:1.5rem;line-height:1.6}\n.info-box strong{color:var(--navy);font-weight:500}\n\n\/* CASO DE MUESTRA CTA *\/\n.sample-case{background:#fff;border:1px solid var(--navy-tint);border-left:4px solid var(--gold);border-radius:0 var(--radius) var(--radius) 0;padding:1.25rem 1.5rem;margin:1.5rem 0;display:flex;align-items:center;gap:1.5rem;box-shadow:var(--shadow)}\n.sample-case-body{flex:1;min-width:0}\n.sample-case-eyebrow{display:inline-block;font-size:11px;font-weight:600;color:var(--gold-dark);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.4rem;padding-bottom:.2rem;border-bottom:2px solid var(--gold)}\n.sample-case-title{font-size:19px;font-weight:500;color:var(--navy);margin-bottom:.45rem;line-height:1.35}\n.sample-case-desc{font-size:16px;color:var(--gray-700);font-weight:300;line-height:1.6}\n.sample-case-cta{flex-shrink:0;display:inline-flex;align-items:center;gap:.4rem;background:var(--navy);color:#fff;padding:.7rem 1.4rem;border-radius:var(--radius);font-size:15px;font-weight:500;text-decoration:none;transition:.2s;white-space:nowrap}\n.sample-case-cta:hover{background:var(--navy-mid);color:#fff}\n@media(max-width:640px){\n  .sample-case{flex-direction:column;align-items:flex-start;gap:1rem}\n  .sample-case-cta{width:100%;justify-content:center}\n}\n\n\/* SECTION DIVIDER *\/\n.section-divider{font-size:12px;font-weight:500;color:var(--navy-mid);text-transform:uppercase;letter-spacing:.08em;margin:2rem 0 1.25rem;padding-bottom:.6rem;border-bottom:2px solid var(--navy-light)}\n\n\/* PURPOSE CARD *\/\n.purpose-lead{font-size:20px;font-weight:300;color:var(--navy);line-height:1.75;margin-bottom:1.5rem;border-left:3px solid var(--gold);padding-left:1rem}\n.feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:.85rem;margin-bottom:1.5rem}\n@media(max-width:500px){.feature-grid{grid-template-columns:1fr}}\n.feature-card{background:var(--navy-light);border-radius:var(--radius);padding:1rem 1.1rem;border:1px solid var(--navy-tint)}\n.feature-card-num{font-size:22px;font-weight:600;color:var(--gold);margin-bottom:.25rem}\n.feature-card-title{font-size:19px;font-weight:500;color:var(--navy);margin-bottom:.3rem}\n.feature-card-desc{font-size:17px;color:var(--gray-500);font-weight:300;line-height:1.5}\n\n\/* GUIDE STEPS *\/\n.guide-step{display:flex;gap:14px;align-items:flex-start;margin-bottom:1.1rem}\n.guide-dot{width:28px;height:28px;border-radius:50%;background:var(--navy);color:#fff;font-size:12px;font-weight:500;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:2px}\n.guide-body h4{font-size:20px;font-weight:500;color:var(--navy);margin-bottom:.2rem}\n.guide-body p{font-size:19px;color:var(--gray-500);font-weight:300;line-height:1.55}\n.guide-connector{width:1px;height:16px;background:var(--navy-tint);margin-left:13px}\n\n\/* FAQ *\/\n.faq-item{border:1px solid var(--navy-tint);border-radius:var(--radius);margin-bottom:.6rem;overflow:hidden}\n.faq-q{display:flex;align-items:center;justify-content:space-between;padding:.9rem 1.1rem;cursor:pointer;font-size:19px;font-weight:500;color:var(--navy);background:#fff;border:none;width:100%;text-align:left;font-family:var(--font)}\n.faq-q:hover{background:var(--navy-light)}\n.faq-icon{font-size:18px;color:var(--gold);flex-shrink:0;transition:transform .2s;font-weight:300}\n.faq-a{display:none;padding:.1rem 1.1rem 1rem;font-size:19px;color:var(--gray-700);font-weight:300;line-height:1.6;background:var(--navy-light)}\n.faq-item.open .faq-icon{transform:rotate(45deg)}\n.faq-item.open .faq-a{display:block}\n\n\/* PRIVACY *\/\n.privacy-box{background:var(--navy-light);border:1px solid var(--navy-tint);border-radius:var(--radius);padding:1.25rem;margin-bottom:1.25rem}\n.privacy-box h3{font-size:20px;font-weight:500;color:var(--navy);margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:1px solid var(--navy-tint)}\n.privacy-box p{font-size:19px;color:var(--gray-700);font-weight:300;line-height:1.65;margin-bottom:.6rem}\n.privacy-box p:last-child{margin-bottom:0}\n.privacy-box a{color:var(--navy);text-decoration:underline;font-size:16px}\n\n.check-row{display:flex;align-items:flex-start;gap:12px;padding:1rem 1.1rem;border:1px solid var(--navy-tint);border-radius:var(--radius);margin-bottom:.6rem;background:#fff;cursor:pointer;transition:.2s}\n.check-row:hover{background:var(--navy-light)}\n.check-row input[type=checkbox]{width:18px;height:18px;accent-color:var(--navy);cursor:pointer;flex-shrink:0;margin-top:2px}\n.check-row-text{font-size:19px;color:var(--gray-700);font-weight:300;line-height:1.5}\n.check-row-text strong{color:var(--navy);font-weight:500}\n\n.consent-error{display:none;font-size:17px;color:var(--danger);font-weight:300;padding:.4rem .6rem;background:var(--danger-bg);border-radius:6px;margin-top:.5rem}\n.mode-toggle-row{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.1rem;border-radius:var(--radius);background:var(--navy-light);border:1px solid var(--navy-tint);margin-bottom:1.25rem}\n.mode-toggle-info strong{font-size:19px;font-weight:500;color:var(--navy);display:block;margin-bottom:.2rem}\n.mode-toggle-info p{font-size:17px;font-weight:300;color:var(--gray-500);line-height:1.5}\n.toggle-switch{position:relative;width:44px;height:24px;flex-shrink:0}\n.toggle-switch input{opacity:0;width:0;height:0}\n.toggle-slider{position:absolute;inset:0;background:var(--gray-300);border-radius:12px;cursor:pointer;transition:.3s}\n.toggle-slider:before{content:'';position:absolute;width:18px;height:18px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:.3s}\n.toggle-switch input:checked + .toggle-slider{background:var(--navy)}\n.toggle-switch input:checked + .toggle-slider:before{transform:translateX(20px)}\n.confidential-badge{display:none;align-items:center;gap:6px;background:var(--navy);color:var(--gold);font-size:12px;font-weight:500;padding:4px 12px;border-radius:20px;margin-left:10px}\n.confidential-badge.active{display:inline-flex}\n\n\/* EJEMPLO COLAPSABLE (CALIBRAR) *\/\n.calibrate-help{background:var(--navy-light);border-left:3px solid var(--gold);border-radius:0 var(--radius) var(--radius) 0;padding:.9rem 1.1rem;margin-bottom:1.5rem;font-size:19px;color:var(--gray-700);font-weight:300;line-height:1.6}\n.calibrate-help strong{color:var(--navy);font-weight:500}\n.calibrate-help p{margin-bottom:.6rem}\n.calibrate-help p:last-of-type{margin-bottom:0}\n.calibrate-example{margin-top:.9rem;padding-top:.9rem;border-top:1px dashed var(--navy-tint)}\n.calibrate-example summary{font-size:14px;font-weight:500;color:var(--navy-mid);cursor:pointer;text-transform:uppercase;letter-spacing:.06em;padding:.3rem 0;list-style:none;display:flex;align-items:center;gap:.4rem}\n.calibrate-example summary::-webkit-details-marker{display:none}\n.calibrate-example summary::before{content:'+';color:var(--gold);font-weight:600;font-size:16px;width:14px;display:inline-block;text-align:center}\n.calibrate-example[open] summary::before{content:'\u2212'}\n.calibrate-example summary:hover{color:var(--navy)}\n.calibrate-example-body{margin-top:.85rem;font-size:17px;color:var(--gray-700);font-weight:300;line-height:1.65}\n.calibrate-example-body p{margin-bottom:.7rem}\n.calibrate-example-body strong{color:var(--navy);font-weight:500}\n.example-table{width:100%;border-collapse:collapse;font-size:15px;margin:.6rem 0 .9rem;background:#fff;border-radius:6px;overflow:hidden;box-shadow:0 1px 3px rgba(3,41,76,.06)}\n.example-table th{font-weight:500;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--navy-mid);padding:.55rem .75rem;text-align:left;border-bottom:1px solid var(--navy-tint);background:var(--navy-light)}\n.example-table td{padding:.55rem .75rem;border-bottom:1px solid #eef3f8;font-weight:300;color:var(--gray-700)}\n.example-table td:last-child{color:var(--gray-500);font-style:italic;font-size:14px}\n.example-table tr:last-child td{border-bottom:none}\n.example-table .num{font-weight:500;color:var(--navy);font-style:normal;text-align:center}\n.example-veto{background:var(--danger-bg);border:1px solid var(--danger-bd);border-left:3px solid var(--danger);border-radius:0 6px 6px 0;padding:.7rem .9rem;font-size:16px;color:var(--gray-700);font-weight:300;line-height:1.55;margin-top:.5rem}\n.example-veto strong{color:var(--danger);font-weight:600}\n\n\/* WEIGHT BAR *\/\n.weight-bar-wrap{background:var(--gray-100);border-radius:var(--radius);padding:.9rem 1.25rem;margin-bottom:1.5rem;display:flex;align-items:center;gap:16px}\n.weight-bar-track{flex:1;height:8px;background:#ddd;border-radius:4px;overflow:hidden}\n.weight-bar-fill{height:100%;border-radius:4px;transition:width .3s,background .3s}\n.weight-bar-label{font-size:19px;font-weight:500;min-width:48px;text-align:right}\n\n\/* DIM CARD *\/\n.dim-card{background:#fff;border:1px solid #e4edf4;border-radius:var(--radius);padding:1.25rem;margin-bottom:.85rem;box-shadow:var(--shadow)}\n.dim-card-header{display:flex;align-items:center;gap:10px;margin-bottom:.7rem}\n.dim-badge{background:var(--navy-light);color:var(--navy);border-radius:20px;font-size:11px;font-weight:500;padding:3px 10px;flex-shrink:0;border:1px solid var(--navy-tint)}\n.dim-name{font-size:19px;font-weight:500;color:var(--navy)}\n.dim-desc{font-size:19px;color:var(--gray-500);font-weight:300;margin-bottom:1rem;line-height:1.6}\n.slider-row{display:flex;align-items:center;gap:10px;margin-bottom:.5rem}\n.slider-label{font-size:17px;color:var(--gray-500);width:115px;flex-shrink:0;font-weight:300}\ninput[type=range]{flex:1;min-width:0;accent-color:var(--navy);cursor:pointer}\n.slider-val{font-size:19px;font-weight:500;color:var(--navy);width:40px;text-align:right;flex-shrink:0}\n.threshold-note{font-size:17px;margin-top:.3rem;font-weight:300}\n.ai-spinner{width:18px;height:18px;border:2px solid var(--navy-tint);border-top-color:var(--navy);border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}\n@keyframes spin{to{transform:rotate(360deg)}}\n.rec-card{background:#fff;border:1px solid #e4edf4;border-radius:var(--radius);padding:1.1rem 1.25rem;margin-bottom:.75rem;box-shadow:var(--shadow)}\n.rec-card-header{display:flex;align-items:center;gap:10px;margin-bottom:.6rem}\n.rec-dim-tag{background:var(--navy-light);color:var(--navy);border-radius:20px;font-size:11px;font-weight:500;padding:3px 10px;border:1px solid var(--navy-tint);flex-shrink:0}\n.rec-risk-tag{border-radius:20px;font-size:11px;font-weight:600;padding:3px 10px;flex-shrink:0}\n.rec-risk-high{background:#fdf0f2;color:#9e0c23;border:1px solid #f5c6ce}\n.rec-risk-mid{background:#fdf6e8;color:#854f0b;border:1px solid #f5daa0}\n.rec-risk-ok{background:#e8f5ee;color:#1b7f4e;border:1px solid #a8d5bc}\n.rec-text{font-size:19px;color:var(--gray-700);font-weight:300;line-height:1.65;margin-bottom:.5rem}\n.rec-refs{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.5rem}\n.rec-ref{background:var(--navy-light);color:var(--navy-mid);font-size:11px;font-weight:400;padding:2px 9px;border-radius:10px;border:1px solid var(--navy-tint)}\n.risk-alert{display:flex;gap:10px;align-items:flex-start;padding:.9rem 1.1rem;border-radius:var(--radius);margin-bottom:.75rem;font-size:19px;font-weight:300}\n.risk-alert.high{background:#fdf0f2;color:#9e0c23;border:1px solid #f5c6ce}\n.risk-alert.mid{background:#fdf6e8;color:#854f0b;border:1px solid #f5daa0}\n\n\/* AN\u00c1LISIS PROYECTUM *\/\n.analisis-box{background:var(--navy-light);border:1px solid var(--navy-tint);border-left:4px solid var(--gold);border-radius:0 var(--radius) var(--radius) 0;padding:1.25rem 1.4rem;margin:1.5rem 0}\n.analisis-box-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.85rem}\n.analisis-box-title{font-size:19px;font-weight:500;color:var(--navy);margin-bottom:.3rem}\n.analisis-box-sub{font-size:17px;color:var(--gray-700);font-weight:300;line-height:1.55}\n.analisis-badge{background:var(--gold);color:var(--navy);font-size:11px;font-weight:600;padding:4px 12px;border-radius:20px;flex-shrink:0;text-transform:uppercase;letter-spacing:.05em}\n.analisis-deliverable{font-size:17px;color:var(--gray-700);font-weight:300;line-height:1.6;padding:.25rem 0;display:flex;gap:.5rem;align-items:flex-start}\n.analisis-deliverable-icon{color:var(--gold-dark);font-weight:600;flex-shrink:0}\n.analisis-check{display:flex;align-items:flex-start;gap:12px;padding:1rem 1.1rem;border:1px solid var(--navy-tint);border-radius:var(--radius);margin-top:.85rem;background:#fff;cursor:pointer;transition:.2s}\n.analisis-check:hover{background:var(--navy-light)}\n.analisis-check input[type=checkbox]{width:18px;height:18px;accent-color:var(--navy);cursor:pointer;flex-shrink:0;margin-top:2px}\n.analisis-check-text{font-size:17px;color:var(--gray-700);font-weight:300;line-height:1.55}\n.analisis-check-text strong{color:var(--navy);font-weight:500}\n\n\/* SCORE *\/\n.score-hero{background:var(--navy);color:#fff;border-radius:var(--radius);padding:1.75rem;margin-bottom:1.25rem;display:flex;align-items:center;gap:1.5rem}\n.score-big{font-size:64px;font-weight:300;line-height:1;flex-shrink:0;color:var(--gold)}\n.score-big span{font-size:22px;opacity:.45;color:#fff}\n.score-info h3{font-size:22px;font-weight:500;margin-bottom:.3rem}\n.score-info p{font-size:19px;opacity:.72;font-weight:300}\n.verdict-badge{display:inline-block;padding:.3rem 1rem;border-radius:20px;font-size:15px;font-weight:600;margin-top:.6rem;background:var(--gold);color:var(--navy)}\n.score-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:1.25rem}\n@media(max-width:500px){.score-grid{grid-template-columns:1fr}}\n.score-dim{background:#fff;border:1px solid #e4edf4;border-radius:var(--radius);padding:1rem;box-shadow:var(--shadow)}\n.score-dim-name{font-size:13px;font-weight:500;color:var(--navy-mid);margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.05em}\n.score-dim-bar{height:6px;background:var(--gray-100);border-radius:3px;overflow:hidden;margin-bottom:.4rem}\n.score-dim-fill{height:100%;border-radius:3px;transition:width .4s}\n.score-dim-nums{display:flex;justify-content:space-between;font-size:14px;color:var(--gray-500);font-weight:300}\n\n\/* ALERTS *\/\n.alerts-section{margin-bottom:1.25rem}\n.alert{display:flex;gap:8px;align-items:flex-start;padding:.7rem 1rem;border-radius:var(--radius);margin-bottom:.5rem;font-size:19px;font-weight:300}\n.alert.danger{background:var(--danger-bg);color:var(--danger);border:1px solid var(--danger-bd)}\n.alert.success{background:var(--success-bg);color:var(--success);border:1px solid var(--success-bd)}\n.alert-icon{width:16px;height:16px;flex-shrink:0;margin-top:2px}\n\n\/* TABLE *\/\n.compare-table{width:100%;border-collapse:collapse;font-size:16px;margin-bottom:1.5rem}\n.compare-table th{font-weight:500;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--navy-mid);padding:.65rem 1rem;text-align:left;border-bottom:2px solid var(--navy-tint);background:var(--navy-light)}\n.compare-table td{padding:.7rem 1rem;border-bottom:1px solid #eef3f8;font-weight:300;color:var(--gray-700);font-size:14px}\n.compare-table tr:last-child td{border-bottom:none;background:var(--navy-light)}\n.compare-table .dim-col{font-weight:500;color:var(--navy)}\n.tag-ok{background:var(--success-bg);color:var(--success);padding:2px 8px;border-radius:10px;font-size:11px;font-weight:500}\n.tag-bad{background:var(--danger-bg);color:var(--danger);padding:2px 8px;border-radius:10px;font-size:11px;font-weight:500}\n\n\/* BUTTONS *\/\n.btn-row{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:1.5rem}\n.btn{display:inline-flex;align-items:center;gap:6px;padding:.65rem 1.5rem;border-radius:var(--radius);font-family:var(--font);font-size:17px;font-weight:500;cursor:pointer;border:none;transition:.2s;text-decoration:none}\n.btn-primary{background:var(--navy);color:#fff}\n.btn-primary:hover{background:var(--navy-mid)}\n.btn-gold{background:var(--gold);color:var(--navy)}\n.btn-gold:hover{background:var(--gold-dark);color:#fff}\n.btn-secondary{background:#fff;color:var(--navy);border:1.5px solid var(--navy)}\n.btn-secondary:hover{background:var(--navy-light)}\n.btn-ghost{background:var(--gray-100);color:var(--gray-700);border:1px solid var(--gray-300)}\n.btn-ghost:hover{background:#eee}\n\n\/* FOOTER *\/\nfooter{background:var(--navy);padding:1.5rem 2rem;text-align:center;font-size:14px;color:rgba(255,255,255,.45);font-weight:300}\nfooter strong{color:var(--gold);font-weight:500}\n@media print{.no-print{display:none!important}}\n<\/style>\n\n\n\n<nav class=\"no-print\">\n  <div class=\"nav-brand\">\n    <div class=\"nav-logo\"><span>P<\/span><\/div>\n    <div>\n      <div class=\"nav-title\">Calibrador de \u00c9xito en Proyectos<\/div>\n      <div class=\"nav-sub\">Proyectum \u00b7 CEP v1.0<\/div>\n    <\/div>\n  <\/div>\n  <div class=\"nav-steps\">\n    <button class=\"step-pill active\" id=\"pill-0\" onclick=\"goTo(0)\">Inicio<\/button>\n    <button class=\"step-pill locked\" id=\"pill-1\" onclick=\"goTo(1)\">1 \u00b7 Proyecto<\/button>\n    <button class=\"step-pill locked\" id=\"pill-2\" onclick=\"goTo(2)\">2 \u00b7 Calibrar<\/button>\n    <button class=\"step-pill locked\" id=\"pill-3\" onclick=\"goTo(3)\">3 \u00b7 Medir<\/button>\n    <button class=\"step-pill locked\" id=\"pill-4\" onclick=\"goTo(4)\">4 \u00b7 Resultado<\/button>\n  <\/div>\n<\/nav>\n\n<div class=\"hero\">\n  <div class=\"hero-eyebrow\">Proyectum \u00b7 CEP v1.0<\/div>\n  <h1>Calibrador de \u00c9xito en Proyectos <strong>(CEP)<\/strong><\/h1>\n  <p class=\"hero-question\">Si los proyectos son \u00fanicos por definici\u00f3n, \u00bfpor qu\u00e9 los seguimos midiendo a todos con la misma vara?<\/p>\n  <p class=\"hero-tagline\">Un instrumento para acordar qu\u00e9 significa el \u00e9xito antes de empezar y medirlo con los mismos criterios al cierre.<\/p>\n<\/div>\n\n<main>\n\n<!-- \u2550\u2550 PASO 0: BIENVENIDA \u2550\u2550 -->\n<section class=\"section active\" id=\"s0\">\n\n  <!-- \u2591\u2591\u2591 NUEVO: PROBLEMA + EVIDENCIA + TESIS \u2591\u2591\u2591 -->\n  <div class=\"problem-block\">\n    <div class=\"problem-eyebrow\">El problema que nadie quiere nombrar<\/div>\n    <h2 class=\"problem-headline\">Treinta a\u00f1os midiendo lo mismo. Treinta a\u00f1os obteniendo resultados parecidos.<\/h2>\n    <p class=\"problem-lead\">Desde que el Standish Group public\u00f3 el primer <em>CHAOS Report<\/em> en 1994, la industria de proyectos ha acumulado evidencia consistente sobre una realidad inc\u00f3moda. Cinco estudios independientes, conclusiones convergentes:<\/p>\n\n    <div class=\"evidence-grid\">\n      <div class=\"evidence-card\">\n        <div class=\"evidence-source\">Standish Group \u00b7 CHAOS 2020<\/div>\n        <div class=\"evidence-stat\">S\u00f3lo <strong>31%<\/strong> exitosos<\/div>\n        <div class=\"evidence-text\">De los proyectos analizados, 50% resultaron <em>challenged<\/em> (sobrecosto, retraso o alcance recortado) y 19% fueron cancelados antes de completarse.<\/div>\n        <div class=\"evidence-cite\">The Standish Group (2020). CHAOS Report: Beyond Infinity.<\/div>\n      <\/div>\n\n      <div class=\"evidence-card\">\n        <div class=\"evidence-source\">McKinsey \u00b7 Universidad de Oxford<\/div>\n        <div class=\"evidence-stat\"><strong>56%<\/strong> menos valor entregado<\/div>\n        <div class=\"evidence-text\">Sobre 5,400 proyectos grandes de TI: rebasan presupuesto en 45% y plazos en 7% en promedio. Uno de cada seis se convierte en <em>black swan<\/em> con sobrecostos superiores al 200%.<\/div>\n        <div class=\"evidence-cite\">Bloch, Blumberg &amp; Laartz (2012). McKinsey &amp; Company.<\/div>\n      <\/div>\n\n      <div class=\"evidence-card\">\n        <div class=\"evidence-source\">Oxford \u00b7 Flyvbjerg (16,000 proyectos)<\/div>\n        <div class=\"evidence-stat\">S\u00f3lo <strong>0.5%<\/strong> cumplen todo<\/div>\n        <div class=\"evidence-text\">La <em>Ley de Hierro de los Megaproyectos<\/em>: 8.5% terminan en tiempo y presupuesto. Apenas 0.5% cumplen los tres criterios: tiempo, presupuesto y beneficios prometidos.<\/div>\n        <div class=\"evidence-cite\">Flyvbjerg &amp; Gardner (2023). How Big Things Get Done.<\/div>\n      <\/div>\n\n      <div class=\"evidence-card\">\n        <div class=\"evidence-source\">PMI \u00b7 Pulse of the Profession<\/div>\n        <div class=\"evidence-stat\"><strong>31%<\/strong> no entregan beneficios<\/div>\n        <div class=\"evidence-text\">Apenas la mitad de los proyectos a nivel global se consideran exitosos. En proyectos complejos, 31% no logra entregar los beneficios originalmente previstos.<\/div>\n        <div class=\"evidence-cite\">Project Management Institute (2025, 2026).<\/div>\n      <\/div>\n    <\/div>\n\n    <p class=\"evidence-summary\">Treinta a\u00f1os. Cinco estudios independientes. <strong>Conclusiones convergentes.<\/strong><\/p>\n\n    <!-- TESIS -->\n    <div class=\"thesis-block\">\n      <div class=\"thesis-eyebrow\">La pregunta que nadie hace<\/div>\n      <p class=\"thesis-question\">Si los proyectos son, por definici\u00f3n, esfuerzos \u00fanicos \u2014con contexto, stakeholders y restricciones propios\u2014 <strong>\u00bfpor qu\u00e9 seguimos midi\u00e9ndolos a todos con la misma vara?<\/strong><\/p>\n      <p class=\"thesis-followup\">\u00bfPor qu\u00e9 un proyecto de transformaci\u00f3n cultural se eval\u00faa con los mismos KPIs que una implementaci\u00f3n de ERP? \u00bfPor qu\u00e9 un piloto exploratorio se juzga con la rigidez de un proyecto de cumplimiento regulatorio?<br><br>Tal vez el problema no es que los proyectos fallen tanto. Tal vez el problema es que <em>estamos midiendo lo que no deb\u00edamos medir, y dejamos sin medir lo que realmente importa.<\/em><\/p>\n    <\/div>\n\n    <p class=\"bridge-text\"><strong>El CEP no promete que tus proyectos dejen de fallar.<\/strong> Promete algo m\u00e1s \u00fatil: que la pr\u00f3xima vez que cierres un proyecto, la conversaci\u00f3n con tus stakeholders clave parta de <em>un acuerdo previo<\/em> y no de una negociaci\u00f3n retrospectiva sobre qu\u00e9 contaba como \u00e9xito.<\/p>\n\n    <details class=\"bibliography\">\n      <summary>Referencias bibliogr\u00e1ficas (APA)<\/summary>\n      <ul class=\"bibliography-list\">\n        <li>Bloch, M., Blumberg, S., &amp; Laartz, J. (2012). <em>Delivering large-scale IT projects on time, on budget, and on value<\/em>. McKinsey &amp; Company.<\/li>\n        <li>Cooke-Davies, T. (2002). The \u00abreal\u00bb success factors on projects. <em>International Journal of Project Management<\/em>, 20(3), 185\u2013190.<\/li>\n        <li>Flyvbjerg, B., &amp; Gardner, D. (2023). <em>How big things get done: The surprising factors that determine the fate of every project<\/em>. Currency.<\/li>\n        <li>KPMG, AIPM &amp; IPMA. (2019). <em>The future of project management: Global outlook 2019<\/em>.<\/li>\n        <li>Project Management Institute. (2025). <em>Pulse of the Profession 2025: Boosting business acumen<\/em>. PMI.<\/li>\n        <li>Project Management Institute. (2026). <em>Pulse of the Profession 2026: Driving success in complex projects<\/em>. PMI.<\/li>\n        <li>The Standish Group. (2020). <em>CHAOS Report 2020: Beyond infinity<\/em>. The Standish Group International.<\/li>\n      <\/ul>\n    <\/details>\n  <\/div>\n  <!-- \u2591\u2591\u2591 FIN BLOQUE NUEVO \u2591\u2591\u2591 -->\n\n  <div class=\"step-header\">\n    <div class=\"step-num\" style=\"background:var(--gold);color:var(--navy)\">\u25cf<\/div>\n    <div><h2>Qu\u00e9 es el CEP y c\u00f3mo funciona<\/h2><p>Lee las instrucciones y acepta los t\u00e9rminos antes de continuar.<\/p><\/div>\n  <\/div>\n\n  <!-- QU\u00c9 ES EL CEP -->\n  <p class=\"purpose-lead\">El CEP es un instrumento que permite acordar, antes de iniciar un proyecto, qu\u00e9 significa el \u00e9xito en su contexto particular \u2014 y medirlo con los mismos criterios al cierre. Sustituye la discusi\u00f3n retrospectiva por un acuerdo previo, documentado y firmado.<\/p>\n  <div class=\"feature-grid\">\n    <div class=\"feature-card\">\n      <div class=\"feature-card-num\">01<\/div>\n      <div class=\"feature-card-title\">Acuerdo previo, no juicio final<\/div>\n      <div class=\"feature-card-desc\">El \u00e9xito se define antes de empezar, no se interpreta al cierre. Cambia la conversaci\u00f3n con el patrocinador durante toda la ejecuci\u00f3n.<\/div>\n    <\/div>\n    <div class=\"feature-card\">\n      <div class=\"feature-card-num\">02<\/div>\n      <div class=\"feature-card-title\">Cinco dimensiones, no una<\/div>\n      <div class=\"feature-card-desc\">Par\u00e1metros de entrega, realizaci\u00f3n de beneficios, satisfacci\u00f3n de stakeholders, calidad del entregable y aprendizaje organizacional.<\/div>\n    <\/div>\n    <div class=\"feature-card\">\n      <div class=\"feature-card-num\">03<\/div>\n      <div class=\"feature-card-title\">Una vara distinta por proyecto<\/div>\n      <div class=\"feature-card-desc\">Cada equipo asigna pesos y umbrales seg\u00fan la prioridad estrat\u00e9gica real de su proyecto. La unicidad del proyecto se refleja en c\u00f3mo se mide.<\/div>\n    <\/div>\n    <div class=\"feature-card\">\n      <div class=\"feature-card-num\">04<\/div>\n      <div class=\"feature-card-title\">Veto contra el promedio enga\u00f1oso<\/div>\n      <div class=\"feature-card-desc\">Una dimensi\u00f3n cr\u00edtica por debajo de su umbral bloquea el \u00e9xito global. Evita que un score alto encubra una falla estructural.<\/div>\n    <\/div>\n  <\/div>\n  <div class=\"info-box\">\n    <strong>Base acad\u00e9mica:<\/strong> El CEP integra los marcos de Cooke-Davies (2002), la gesti\u00f3n de realizaci\u00f3n de beneficios del PMI, la evidencia emp\u00edrica de Flyvbjerg (Oxford, 2023) y los hallazgos del KPMG-IPMA Global Outlook 2019 sobre factores de \u00e9xito en proyectos.\n  <\/div>\n\n  <!-- CASO DE MUESTRA -->\n  <div class=\"sample-case\">\n    <div class=\"sample-case-body\">\n      <span class=\"sample-case-eyebrow\">Caso ilustrativo<\/span>\n      <div class=\"sample-case-title\">\u00bfC\u00f3mo se ve un reporte CEP en la pr\u00e1ctica?<\/div>\n      <div class=\"sample-case-desc\">Revisa un caso de implementaci\u00f3n PLD en banca mediana: un proyecto que cumpli\u00f3 tiempo, costo y alcance, y a\u00fan as\u00ed recibi\u00f3 veto m\u00faltiple.<\/div>\n    <\/div>\n    <a href=\"https:\/\/proyectum.com\/mx\/cep_caso_pld\/\" class=\"sample-case-cta\">Ver caso de muestra \u2192<\/a>\n  <\/div>\n\n  <!-- SEPARADOR -->\n  <div class=\"section-divider\">C\u00f3mo usarlo<\/div>\n\n  <!-- GU\u00cdA PASO A PASO -->\n  <div class=\"guide-step\">\n    <div class=\"guide-dot\">1<\/div>\n    <div class=\"guide-body\">\n      <h4>Captura los datos del proyecto<\/h4>\n      <p>Nombre, organizaci\u00f3n, patrocinador ejecutivo, director de proyecto, fechas y objetivo estrat\u00e9gico. Esta informaci\u00f3n forma parte del acta de constituci\u00f3n.<\/p>\n    <\/div>\n  <\/div>\n  <div class=\"guide-connector\"><\/div>\n  <div class=\"guide-step\">\n    <div class=\"guide-dot\">2<\/div>\n    <div class=\"guide-body\">\n      <h4>Calibra las cinco dimensiones<\/h4>\n      <p>Asigna un <strong>peso relativo<\/strong> a cada dimensi\u00f3n (los pesos deben sumar 100%) y define el <strong>umbral m\u00ednimo aceptable<\/strong> para cada una. Este acuerdo debe documentarse y firmarse junto con el acta de constituci\u00f3n.<\/p>\n    <\/div>\n  <\/div>\n  <div class=\"guide-connector\"><\/div>\n  <div class=\"guide-step\">\n    <div class=\"guide-dot\">3<\/div>\n    <div class=\"guide-body\">\n      <h4>Ejecuta el proyecto<\/h4>\n      <p>Durante la ejecuci\u00f3n, el calibrador puede renegociarse formalmente si las condiciones estrat\u00e9gicas cambian. Cualquier ajuste debe registrarse con fecha y firma del patrocinador.<\/p>\n    <\/div>\n  <\/div>\n  <div class=\"guide-connector\"><\/div>\n  <div class=\"guide-step\">\n    <div class=\"guide-dot\">4<\/div>\n    <div class=\"guide-body\">\n      <h4>Mide al cierre<\/h4>\n      <p>Captura el score real de cada dimensi\u00f3n con base en evidencia documentada \u2014 no en percepci\u00f3n subjetiva. El sistema calcula el score ponderado y detecta vetos autom\u00e1ticamente.<\/p>\n    <\/div>\n  <\/div>\n  <div class=\"guide-connector\"><\/div>\n  <div class=\"guide-step\">\n    <div class=\"guide-dot\">5<\/div>\n    <div class=\"guide-body\">\n      <h4>Exporta el reporte<\/h4>\n      <p>Genera un PDF del acuerdo inicial (para firmar al arranque) y un PDF del reporte de cierre (con el comparativo, el veredicto y las alertas de veto).<\/p>\n    <\/div>\n  <\/div>\n  <div class=\"info-box\" style=\"margin-top:1.25rem\">\n    <strong>Escala de referencia para el score:<\/strong> 0\u201349 = no alcanzado \u00b7 50\u201364 = parcialmente alcanzado \u00b7 65\u201379 = alcanzado \u00b7 80\u2013100 = superado. El veredicto final es: Exitoso (\u226580, sin vetos) \u00b7 Aceptable (65\u201379) \u00b7 Desafiado (50\u201364) \u00b7 Fallido (&lt;50) \u00b7 Veto por umbral (cualquier dimensi\u00f3n bajo su m\u00ednimo).\n  <\/div>\n\n  <!-- SEPARADOR -->\n  <div class=\"section-divider\">Preguntas frecuentes<\/div>\n\n  <!-- FAQ -->\n  <div class=\"faq-item\">\n    <button class=\"faq-q\" onclick=\"toggleFaq(this)\">\u00bfPuedo modificar las dimensiones del CEP? <span class=\"faq-icon\">+<\/span><\/button>\n    <div class=\"faq-a\">La versi\u00f3n actual utiliza las cinco dimensiones validadas por la literatura. Los pesos y umbrales son completamente personalizables por proyecto. Si necesitas dimensiones adicionales o ajustadas a tu sector, contacta a Proyectum para una versi\u00f3n personalizada del instrumento.<\/div>\n  <\/div>\n  <div class=\"faq-item\">\n    <button class=\"faq-q\" onclick=\"toggleFaq(this)\">\u00bfMis datos se almacenan en alg\u00fan servidor? <span class=\"faq-icon\">+<\/span><\/button>\n    <div class=\"faq-a\">No. Todo el instrumento corre directamente en tu navegador. Ning\u00fan dato capturado en el CEP se env\u00eda a servidores externos ni a Proyectum. La \u00fanica forma de conservar tu trabajo es exportando el PDF o guardando una copia del archivo.<\/div>\n  <\/div>\n  <div class=\"faq-item\">\n    <button class=\"faq-q\" onclick=\"toggleFaq(this)\">\u00bfQu\u00e9 pasa si los pesos no suman 100%? <span class=\"faq-icon\">+<\/span><\/button>\n    <div class=\"faq-a\">El sistema lo indica con un indicador visual en rojo. Mientras los pesos no sumen exactamente 100%, el score ponderado al cierre no ser\u00e1 matem\u00e1ticamente correcto. Es un requisito obligatorio para cerrar el acuerdo.<\/div>\n  <\/div>\n  <div class=\"faq-item\">\n    <button class=\"faq-q\" onclick=\"toggleFaq(this)\">\u00bfQu\u00e9 significa el \u00abveto por umbral\u00bb? <span class=\"faq-icon\">+<\/span><\/button>\n    <div class=\"faq-a\">Si al cierre una dimensi\u00f3n obtiene un score real por debajo del umbral m\u00ednimo acordado al inicio, el proyecto no puede declararse exitoso \u2014 independientemente de cu\u00e1ntos puntos obtenga en el resto de las dimensiones. Es un mecanismo que protege contra el efecto de promediar y ocultar dimensiones cr\u00edticas fallidas.<\/div>\n  <\/div>\n  <div class=\"faq-item\">\n    <button class=\"faq-q\" onclick=\"toggleFaq(this)\">\u00bfCu\u00e1ndo se debe usar el CEP en el ciclo de vida del proyecto? <span class=\"faq-icon\">+<\/span><\/button>\n    <div class=\"faq-a\">La calibraci\u00f3n (paso 2) debe completarse antes de la aprobaci\u00f3n formal del proyecto y firmarse junto con el acta de constituci\u00f3n. La medici\u00f3n (paso 3) se realiza al cierre del proyecto, una vez que los entregables han sido aceptados y los beneficios son verificables. El instrumento tambi\u00e9n puede usarse a mitad del proyecto como revisi\u00f3n de estado.<\/div>\n  <\/div>\n  <div class=\"faq-item\">\n    <button class=\"faq-q\" onclick=\"toggleFaq(this)\">\u00bfPuedo usar el CEP para un portafolio de proyectos? <span class=\"faq-icon\">+<\/span><\/button>\n    <div class=\"faq-a\">El CEP en su versi\u00f3n actual est\u00e1 dise\u00f1ado para un proyecto a la vez. Para an\u00e1lisis de portafolio \u2014 comparar m\u00faltiples proyectos o agregar resultados \u2014 Proyectum ofrece una versi\u00f3n en Excel con dashboard de portafolio. Solic\u00edtala en proyectum.com\/mx.<\/div>\n  <\/div>\n\n  <!-- PRIVACIDAD Y CONSENTIMIENTO -->\n  <div style=\"margin-top:2rem\">\n    <div class=\"step-header\" style=\"margin-bottom:1rem\">\n      <div class=\"step-num\" style=\"background:var(--gold);color:var(--navy);font-size:12px\">\u2713<\/div>\n      <div><h2>T\u00e9rminos y privacidad<\/h2><p>Debes aceptar ambos puntos para acceder al calibrador.<\/p><\/div>\n    <\/div>\n\n    <div class=\"privacy-box\">\n      <h3>Aviso de privacidad y t\u00e9rminos de uso<\/h3>\n      <p><strong>Tu informaci\u00f3n no sale de tu navegador.<\/strong> Todo lo que capturas en el CEP se procesa localmente en tu dispositivo. Proyectum no tiene acceso, no almacena y no puede ver ning\u00fan dato que ingreses. Cuando cierras la pesta\u00f1a, la informaci\u00f3n desaparece por completo.<\/p>\n      <p><strong>Compromiso de Proyectum:<\/strong> este instrumento no transmite datos a ning\u00fan servidor externo, excepto cuando t\u00fa eliges enviar el reporte por correo \u2014 acci\u00f3n que realizas expl\u00edcitamente y en la que t\u00fa controlas a qui\u00e9n se env\u00eda. Proyectum se compromete a no usar esa informaci\u00f3n para ning\u00fan prop\u00f3sito distinto al env\u00edo que solicitas.<\/p>\n      <p><strong>Para proyectos confidenciales:<\/strong> activa el <strong>Modo Confidencial<\/strong> en el paso 1. Podr\u00e1s trabajar con c\u00f3digos en lugar de nombres reales. El instrumento funciona igual y la informaci\u00f3n sensible nunca aparece en ning\u00fan documento exportado.<\/p>\n      <p><strong>Propiedad intelectual:<\/strong> el CEP, su metodolog\u00eda y materiales son propiedad de Proyectum. Uso interno en organizaciones: permitido. Reproducci\u00f3n comercial: requiere autorizaci\u00f3n expresa. <a href=\"https:\/\/proyectum.com\/mx\" target=\"_blank\">proyectum.com\/mx<\/a><\/p>\n    <\/div>\n\n    <label class=\"check-row\" for=\"ck1\">\n      <input type=\"checkbox\" id=\"ck1\" onchange=\"checkConsent()\">\n      <div class=\"check-row-text\"><strong>Acepto los t\u00e9rminos de uso del instrumento CEP.<\/strong> He le\u00eddo y entendido las condiciones de uso, alcance y limitaciones del Calibrador de \u00c9xito en Proyectos de Proyectum.<\/div>\n    <\/label>\n\n    <label class=\"check-row\" for=\"ck2\">\n      <input type=\"checkbox\" id=\"ck2\" onchange=\"checkConsent()\">\n      <div class=\"check-row-text\"><strong>Acepto el compromiso bilateral de privacidad.<\/strong> Entiendo que Proyectum no accede ni almacena mis datos, que todo corre en mi navegador, y que para proyectos confidenciales puedo activar el Modo Confidencial para trabajar con informaci\u00f3n anonimizada.<\/div>\n    <\/label>\n\n    <div class=\"consent-error\" id=\"consent-error\">Debes aceptar ambos puntos para continuar.<\/div>\n\n    <div class=\"btn-row\">\n      <button class=\"btn btn-primary\" onclick=\"tryEnter()\">Acceder al calibrador \u2192<\/button>\n    <\/div>\n  <\/div>\n<\/section>\n\n<!-- \u2550\u2550 PASO 1: PROYECTO \u2550\u2550 -->\n<section class=\"section\" id=\"s1\">\n  <div class=\"step-header\">\n    <div class=\"step-num\">1<\/div>\n    <div><h2>Datos del proyecto<\/h2><p>Esta informaci\u00f3n forma parte del acta de constituci\u00f3n y del acuerdo formal de \u00e9xito.<\/p><\/div>\n  <\/div>\n  <div class=\"info-box\"><strong>\u00bfC\u00f3mo funciona el CEP?<\/strong> En el paso 2 defines los pesos relativos y umbrales m\u00ednimos de cada dimensi\u00f3n de \u00e9xito. En el paso 3 capturas los scores reales al cierre. En el paso 4 obtienes el veredicto, el comparativo y puedes exportar el reporte como PDF.<\/div>\n\n  <div class=\"mode-toggle-row\">\n    <div class=\"mode-toggle-info\">\n      <strong>Modo Confidencial <span class=\"confidential-badge\" id=\"conf-badge\">Activo<\/span><\/strong>\n      <p>Act\u00edvalo para trabajar con c\u00f3digos en lugar de nombres reales. Los campos de organizaci\u00f3n, patrocinador y director se vuelven opcionales. El instrumento funciona igual y ning\u00fan dato sensible aparece en los documentos exportados.<\/p>\n    <\/div>\n    <label class=\"toggle-switch\" style=\"margin-left:1.5rem\">\n      <input type=\"checkbox\" id=\"conf-toggle\" onchange=\"toggleConfidential(this.checked)\">\n      <span class=\"toggle-slider\"><\/span>\n    <\/label>\n  <\/div>\n\n  <div class=\"field-group\">\n    <div class=\"field\"><label>Nombre del proyecto<\/label><input type=\"text\" id=\"f-name\" placeholder=\"Ej. Transformaci\u00f3n digital \u00e1rea comercial\"><\/div>\n    <div class=\"field\" id=\"field-org\"><label>Organizaci\u00f3n <span id=\"opt-org\" style=\"font-weight:300;color:var(--gray-500);display:none\">(opcional en modo confidencial)<\/span><\/label><input type=\"text\" id=\"f-org\" placeholder=\"Ej. Proyectum M\u00e9xico o C\u00f3digo A\"><\/div>\n    <div class=\"field\" id=\"field-sponsor\"><label>Patrocinador ejecutivo <span id=\"opt-sponsor\" style=\"font-weight:300;color:var(--gray-500);display:none\">(opcional)<\/span><\/label><input type=\"text\" id=\"f-sponsor\" placeholder=\"Nombre y cargo o Rol A\"><\/div>\n    <div class=\"field\" id=\"field-pm\"><label>Director de proyecto <span id=\"opt-pm\" style=\"font-weight:300;color:var(--gray-500);display:none\">(opcional)<\/span><\/label><input type=\"text\" id=\"f-pm\" placeholder=\"Nombre y cargo o Rol B\"><\/div>\n    <div class=\"field\"><label>Fecha de acuerdo (inicio)<\/label><input type=\"text\" id=\"f-date-start\" placeholder=\"dd\/mm\/aaaa\"><\/div>\n    <div class=\"field\"><label>Fecha estimada de cierre<\/label><input type=\"text\" id=\"f-date-end\" placeholder=\"dd\/mm\/aaaa\"><\/div>\n    <div class=\"field full\"><label>Objetivo estrat\u00e9gico del proyecto<\/label><textarea id=\"f-objective\" placeholder=\"Describe en una o dos oraciones el valor de negocio que justifica este proyecto\u2026\"><\/textarea><\/div>\n    <div class=\"field\"><label>Correo del cliente \/ destinatario<\/label><input type=\"text\" id=\"f-email-client\" placeholder=\"correo@empresa.com\"><\/div>\n    <div class=\"field\"><label>Nombre del contacto principal<\/label><input type=\"text\" id=\"f-contact\" placeholder=\"Nombre completo\"><\/div>\n  <\/div>\n  <div class=\"btn-row\">\n    <button class=\"btn btn-ghost\" onclick=\"goTo(0)\">\u2190 Instrucciones<\/button>\n    <button class=\"btn btn-primary\" onclick=\"goTo(2)\">Siguiente: Calibrar dimensiones \u2192<\/button>\n  <\/div>\n<\/section>\n\n<!-- \u2550\u2550 PASO 2: CALIBRAR \u2550\u2550 -->\n<section class=\"section\" id=\"s2\">\n  <div class=\"step-header\">\n    <div class=\"step-num\">2<\/div>\n    <div><h2>Calibraci\u00f3n de dimensiones<\/h2><p>Asigna el peso relativo y el umbral m\u00ednimo aceptable para este proyecto. Los pesos deben sumar 100%.<\/p><\/div>\n  <\/div>\n  <div class=\"calibrate-help\">\n    <p><strong>Peso relativo:<\/strong> qu\u00e9 tan importante es esta dimensi\u00f3n para el \u00e9xito de tu proyecto, comparada con las dem\u00e1s. Los cinco pesos deben sumar 100%.<\/p>\n    <p><strong>Umbral m\u00ednimo:<\/strong> la calificaci\u00f3n m\u00e1s baja que est\u00e1s dispuesto a aceptar en esta dimensi\u00f3n. Es el \u00abpiso\u00bb debajo del cual el proyecto no puede declararse exitoso, aunque el resto haya salido bien. Si al cierre una dimensi\u00f3n queda por debajo de su umbral, se activa el <strong>veto<\/strong> y el proyecto no aprueba, independientemente del score global.<\/p>\n\n    <details class=\"calibrate-example\">\n      <summary>Ver ejemplo: implementaci\u00f3n de CRM en \u00e1rea comercial<\/summary>\n      <div class=\"calibrate-example-body\">\n        <p>Un equipo est\u00e1 por arrancar un proyecto de CRM. Antes de empezar, calibran as\u00ed su definici\u00f3n de \u00e9xito:<\/p>\n\n        <table class=\"example-table\">\n          <thead>\n            <tr><th>Dimensi\u00f3n<\/th><th>Peso<\/th><th>Umbral<\/th><th>Significado del umbral<\/th><\/tr>\n          <\/thead>\n          <tbody>\n            <tr><td>Realizaci\u00f3n de beneficios<\/td><td class=\"num\">40%<\/td><td class=\"num\">75<\/td><td>Si el CRM no genera valor de negocio real, no importa lo dem\u00e1s.<\/td><\/tr>\n            <tr><td>Satisfacci\u00f3n de stakeholders<\/td><td class=\"num\">20%<\/td><td class=\"num\">70<\/td><td>Si el \u00e1rea comercial rechaza la herramienta, fracasamos.<\/td><\/tr>\n            <tr><td>Par\u00e1metros de entrega<\/td><td class=\"num\">20%<\/td><td class=\"num\">50<\/td><td>Tolera retraso o sobrecosto moderado.<\/td><\/tr>\n            <tr><td>Calidad del entregable<\/td><td class=\"num\">10%<\/td><td class=\"num\">60<\/td><td>Bugs menores aceptables, no cr\u00edticos.<\/td><\/tr>\n            <tr><td>Aprendizaje organizacional<\/td><td class=\"num\">10%<\/td><td class=\"num\">40<\/td><td>Deseable, no cr\u00edtico.<\/td><\/tr>\n          <\/tbody>\n        <\/table>\n\n        <p>Al cierre, el equipo mide as\u00ed: tiempo 80, calidad 75, satisfacci\u00f3n 78, aprendizaje 70, beneficios <strong>70<\/strong>. El score ponderado global da <strong>74<\/strong> \u2014 un resultado aparentemente \u00abaceptable\u00bb.<\/p>\n\n        <div class=\"example-veto\"><strong>Pero se activa el veto.<\/strong> La dimensi\u00f3n m\u00e1s importante (beneficios, peso 40%, umbral 75) qued\u00f3 en 70. El proyecto cumpli\u00f3 en todo lo dem\u00e1s, pero fall\u00f3 justo donde el negocio decidi\u00f3 que no pod\u00eda fallar. <strong>Veredicto final: Veto por umbral<\/strong>, no Aceptable.<p><\/p>\n\n        <p style=\"margin-top:.7rem;margin-bottom:0\">Esto es lo que el CEP protege: que un buen promedio no oculte una falla estructural en lo que realmente importa.<\/p>\n      <\/div>\n    <\/div><\/details>\n  <\/div>\n  <div class=\"weight-bar-wrap no-print\">\n    <span style=\"font-size:15px;color:var(--gray-500);font-weight:300;flex:1\">Suma de pesos<\/span>\n    <div class=\"weight-bar-track\"><div class=\"weight-bar-fill\" id=\"wb-fill\" style=\"width:100%;background:var(--navy)\"><\/div><\/div>\n    <span class=\"weight-bar-label\" id=\"wb-label\" style=\"color:var(--navy)\">100%<\/span>\n  <\/div>\n  <div id=\"dims-container\"><\/div>\n\n\n  <!-- AN\u00c1LISIS PROYECTUM -->\n  <div class=\"analisis-box\" id=\"analisis-box\">\n    <div class=\"analisis-box-header\">\n      <div>\n        <div class=\"analisis-box-title\">Solicitar an\u00e1lisis interpretado de Proyectum<\/div>\n        <div class=\"analisis-box-sub\">Nuestro equipo revisa tu perfil de calibraci\u00f3n y te env\u00eda un informe con interpretaci\u00f3n experta, alertas de riesgo y recomendaciones estrat\u00e9gicas por dimensi\u00f3n.<\/div>\n      <\/div>\n      <span class=\"analisis-badge\">Servicio Proyectum<\/span>\n    <\/div>\n    <div style=\"margin-bottom:.75rem\">\n      <div class=\"analisis-deliverable\"><span class=\"analisis-deliverable-icon\">\u2192<\/span>Lectura cr\u00edtica de la distribuci\u00f3n de pesos y umbrales de tu proyecto espec\u00edfico.<\/div>\n      <div class=\"analisis-deliverable\"><span class=\"analisis-deliverable-icon\">\u2192<\/span>Identificaci\u00f3n de tensiones y riesgos en el perfil de calibraci\u00f3n.<\/div>\n      <div class=\"analisis-deliverable\"><span class=\"analisis-deliverable-icon\">\u2192<\/span>Recomendaciones accionables por dimensi\u00f3n con referencias a marcos PMI, Agile y gesti\u00f3n de beneficios.<\/div>\n      <div class=\"analisis-deliverable\"><span class=\"analisis-deliverable-icon\">\u2192<\/span>Tiempo de respuesta: 48 horas h\u00e1biles.<\/div>\n    <\/div>\n    <label class=\"analisis-check\" for=\"ck-analisis\">\n      <input type=\"checkbox\" id=\"ck-analisis\" onchange=\"toggleAnalisis(this.checked)\">\n      <div class=\"analisis-check-text\">\n        <strong>Solicito el an\u00e1lisis interpretado de Proyectum.<\/strong> Acepto que Proyectum reciba los datos de calibraci\u00f3n de este proyecto para generar el an\u00e1lisis. Entiendo que esta informaci\u00f3n ser\u00e1 tratada con estricta confidencialidad y usada exclusivamente para este prop\u00f3sito. No ser\u00e1 compartida con terceros ni usada para ning\u00fan otro fin.\n      <\/div>\n    <\/label>\n    <div id=\"analisis-btn-wrap\" style=\"display:none;margin-top:1rem\">\n      <button class=\"btn btn-primary\" id=\"btn-mail-analisis\" onclick=\"sendEmail('analisis')\">Enviar perfil a Proyectum para an\u00e1lisis \u2192<\/button>\n      <div id=\"mail-status-analisis\" style=\"display:none;margin-top:.75rem;font-size:16px;font-weight:300;padding:.6rem 1rem;border-radius:var(--radius)\"><\/div>\n    <\/div>\n  <\/div>\n\n  <div class=\"btn-row\">\n    <button class=\"btn btn-ghost\" onclick=\"goTo(1)\">\u2190 Atr\u00e1s<\/button>\n    <button class=\"btn btn-primary\" onclick=\"goTo(3)\">Siguiente: Medir al cierre \u2192<\/button>\n    <button class=\"btn btn-secondary\" id=\"btn-mail-calibracion\" onclick=\"sendEmail('calibracion')\">Enviar acuerdo por correo<\/button>\n  <\/div>\n  <div id=\"mail-status-calibracion\" style=\"display:none;margin-top:.75rem;font-size:16px;font-weight:300;padding:.6rem 1rem;border-radius:var(--radius)\"><\/div>\n<\/section>\n\n<!-- \u2550\u2550 PASO 3: MEDIR \u2550\u2550 -->\n<section class=\"section\" id=\"s3\">\n  <div class=\"step-header\">\n    <div class=\"step-num\">3<\/div>\n    <div><h2>Medici\u00f3n al cierre<\/h2><p>Captura el score real de cada dimensi\u00f3n seg\u00fan la evidencia disponible al momento del cierre.<\/p><\/div>\n  <\/div>\n  <div class=\"info-box\"><strong>Referencia:<\/strong> 0\u201349 = no alcanzado \u00b7 50\u201364 = parcialmente alcanzado \u00b7 65\u201379 = alcanzado \u00b7 80\u2013100 = superado. El score debe basarse en evidencia documentada.<\/div>\n  <div id=\"score-dims-container\"><\/div>\n  <div class=\"btn-row\">\n    <button class=\"btn btn-ghost\" onclick=\"goTo(2)\">\u2190 Atr\u00e1s<\/button>\n    <button class=\"btn btn-primary\" onclick=\"goTo(4)\">Ver resultado \u2192<\/button>\n  <\/div>\n<\/section>\n\n<!-- \u2550\u2550 PASO 4: RESULTADO \u2550\u2550 -->\n<section class=\"section\" id=\"s4\">\n  <div class=\"step-header\">\n    <div class=\"step-num\">4<\/div>\n    <div><h2>Resultado del proyecto<\/h2><p>Veredicto ponderado, comparativo por dimensi\u00f3n y reporte exportable.<\/p><\/div>\n  <\/div>\n  <div id=\"result-container\"><\/div>\n  <div class=\"btn-row no-print\">\n    <button class=\"btn btn-ghost\" onclick=\"goTo(3)\">\u2190 Ajustar scores<\/button>\n    <button class=\"btn btn-secondary\" id=\"btn-mail-cierre\" onclick=\"sendEmail('cierre')\">Enviar reporte por correo<\/button>\n    <button class=\"btn btn-ghost\" onclick=\"resetAll()\">Nuevo proyecto<\/button>\n  <\/div>\n  <div id=\"mail-status-cierre\" style=\"display:none;margin-top:.75rem;font-size:14px;font-weight:300;padding:.6rem 1rem;border-radius:var(--radius)\"><\/div>\n<\/section>\n\n<\/main>\n\n<footer class=\"no-print\">\n  <strong>Proyectum<\/strong> \u00b7 Calibrador de \u00c9xito en Proyectos v1.0 \u00b7\n  Basado en: Cooke-Davies (2002) \u00b7 PMI BRM \u00b7 Flyvbjerg (2023) \u00b7 KPMG-IPMA (2019) \u00b7 Standish CHAOS (2020)\n<\/footer>\n\n<script>\nconst DIMS=[\n  {id:'params',   name:'Par\u00e1metros de entrega',        desc:'El proyecto se entrega dentro de los rangos acordados de tiempo, costo y alcance, con las tolerancias negociadas al inicio.',  dw:20,dt:60},\n  {id:'benefits', name:'Realizaci\u00f3n de beneficios',    desc:'El valor de negocio que justific\u00f3 la inversi\u00f3n se materializa y es medible en el plazo definido.',                             dw:30,dt:70},\n  {id:'satisf',   name:'Satisfacci\u00f3n de stakeholders', desc:'Patrocinador, usuarios finales y equipo eval\u00faan el resultado como aceptable o superior a sus expectativas.',                   dw:20,dt:60},\n  {id:'quality',  name:'Calidad del entregable',       desc:'Lo producido funciona como se esperaba, cumple los criterios de aceptaci\u00f3n y es sostenible operativamente.',                   dw:15,dt:65},\n  {id:'learning', name:'Aprendizaje organizacional',   desc:'El proyecto dej\u00f3 capacidad instalada, conocimiento documentado o madurez que la organizaci\u00f3n no ten\u00eda antes.',                 dw:15,dt:50},\n];\nconst W={},T={},S={};\nDIMS.forEach(d=>{W[d.id]=d.dw;T[d.id]=d.dt;S[d.id]=0;});\n\nlet accepted=false;\n\nfunction tryEnter(){\n  const c1=document.getElementById('ck1').checked;\n  const c2=document.getElementById('ck2').checked;\n  const err=document.getElementById('consent-error');\n  if(!c1||!c2){err.style.display='block';return;}\n  err.style.display='none';\n  accepted=true;\n  document.querySelectorAll('.step-pill.locked').forEach(p=>p.classList.remove('locked'));\n  goTo(1);\n}\n\nfunction checkConsent(){\n  const c1=document.getElementById('ck1').checked;\n  const c2=document.getElementById('ck2').checked;\n  if(c1&&c2) document.getElementById('consent-error').style.display='none';\n}\n\nfunction toggleFaq(btn){\n  const item=btn.closest('.faq-item');\n  item.classList.toggle('open');\n}\n\nfunction goTo(n){\n  if(n>0&&!accepted){tryEnter();return;}\n  document.querySelectorAll('.section').forEach((s,i)=>s.classList.toggle('active',i===n));\n  document.querySelectorAll('.step-pill').forEach((p,i)=>p.classList.toggle('active',i===n));\n  if(n===2)buildCalibrate();\n  if(n===3)buildMeasure();\n  if(n===4)buildResult();\n  window.scrollTo({top:0,behavior:'smooth'});\n}\n\nfunction toggleAnalisis(on){\n  document.getElementById('analisis-btn-wrap').style.display = on ? 'block' : 'none';\n}\n\nfunction toggleConfidential(on){\n  const badge=document.getElementById('conf-badge');\n  const opts=['opt-org','opt-sponsor','opt-pm'];\n  const placeholders={\n    'f-org':     on?'C\u00f3digo de organizaci\u00f3n (ej. Org-Alpha)':'Ej. Proyectum M\u00e9xico',\n    'f-sponsor': on?'Rol A (ej. Patrocinador Principal)':'Nombre y cargo',\n    'f-pm':      on?'Rol B (ej. Director de Proyecto)':'Nombre y cargo',\n    'f-name':    on?'C\u00f3digo de proyecto (ej. Proyecto-Alfa)':'Ej. Transformaci\u00f3n digital \u00e1rea comercial',\n    'f-contact': on?'Contacto-1':'Nombre completo',\n    'f-email-client': on?'correo-anonimizado@empresa.com':'correo@empresa.com'\n  };\n  badge.classList.toggle('active', on);\n  opts.forEach(id=>{ const el=document.getElementById(id); if(el) el.style.display=on?'inline':'none'; });\n  Object.entries(placeholders).forEach(([id,ph])=>{\n    const el=document.getElementById(id); if(el) el.placeholder=ph;\n  });\n  const bg=on?'var(--gold-light)':'var(--white)';\n  ['field-org','field-sponsor','field-pm'].forEach(id=>{\n    const el=document.getElementById(id);\n    if(el) el.style.background=bg;\n  });\n}\n\nfunction buildCalibrate(){\n  const c=document.getElementById('dims-container');c.innerHTML='';\n  DIMS.forEach((d,i)=>{\n    const el=document.createElement('div');el.className='dim-card';\n    el.innerHTML=`<div class=\"dim-card-header\"><span class=\"dim-badge\">D${i+1}<\/span><span class=\"dim-name\">${d.name}<\/span><\/div>\n    <div class=\"dim-desc\">${d.desc}<\/div>\n    <div class=\"slider-row\"><span class=\"slider-label\">Peso relativo<\/span><input type=\"range\" min=\"0\" max=\"50\" step=\"1\" value=\"${W[d.id]}\" oninput=\"setW('${d.id}',+this.value)\"><span class=\"slider-val\" id=\"wv-${d.id}\">${W[d.id]}%<\/span><\/div>\n    <div class=\"slider-row\"><span class=\"slider-label\">Umbral m\u00ednimo<\/span><input type=\"range\" min=\"0\" max=\"100\" step=\"5\" value=\"${T[d.id]}\" oninput=\"setT('${d.id}',+this.value)\"><span class=\"slider-val\" id=\"tv-${d.id}\">${T[d.id]}<\/span><\/div>`;\n    c.appendChild(el);\n  });\n  refreshWBar();\n}\n\nfunction buildMeasure(){\n  const c=document.getElementById('score-dims-container');c.innerHTML='';\n  DIMS.forEach((d,i)=>{\n    const el=document.createElement('div');el.className='dim-card';\n    el.innerHTML=`<div class=\"dim-card-header\"><span class=\"dim-badge\">D${i+1}<\/span><span class=\"dim-name\">${d.name}<\/span><span style=\"margin-left:auto;font-size:14px;color:var(--gray-500);font-weight:300\">Peso: ${W[d.id]}% \u00b7 Umbral: ${T[d.id]}<\/span><\/div>\n    <div class=\"dim-desc\">${d.desc}<\/div>\n    <div class=\"slider-row\"><span class=\"slider-label\">Score real<\/span><input type=\"range\" min=\"0\" max=\"100\" step=\"5\" value=\"${S[d.id]}\" oninput=\"setS('${d.id}',+this.value)\"><span class=\"slider-val\" id=\"sv-${d.id}\">${S[d.id]}<\/span><\/div>\n    <div class=\"threshold-note\" id=\"stn-${d.id}\"><\/div>`;\n    c.appendChild(el);refreshSTN(d.id);\n  });\n}\n\nfunction buildResult(){\n  let total=0;const alerts=[];\n  DIMS.forEach(d=>{total+=(W[d.id]\/100)*S[d.id];if(S[d.id]<T[d.id])alerts.push({name:d.name,score:S[d.id],threshold:T[d.id]});});\n  const score=Math.round(total);const hasVeto=alerts.length>0;\n  const verdict=hasVeto?'Veto por umbral':score>=80?'Exitoso':score>=65?'Aceptable':score>=50?'Desafiado':'Fallido';\n  const meta={name:v('f-name')||'\u2014',org:v('f-org')||'\u2014',sponsor:v('f-sponsor')||'\u2014',pm:v('f-pm')||'\u2014',ds:v('f-date-start')||'\u2014',de:v('f-date-end')||'\u2014',obj:v('f-objective')||'\u2014'};\n  let dimsHTML='';\n  DIMS.forEach((d,i)=>{\n    const contrib=Math.round((W[d.id]\/100)*S[d.id]);const ok=S[d.id]>=T[d.id];\n    dimsHTML+=`<div class=\"score-dim\"><div class=\"score-dim-name\">D${i+1} \u00b7 ${d.name}<\/div><div class=\"score-dim-bar\"><div class=\"score-dim-fill\" style=\"width:${S[d.id]}%;background:${ok?'#1b7f4e':'#9e0c23'}\"><\/div><\/div><div class=\"score-dim-nums\"><span>Score: <strong>${S[d.id]}<\/strong> \u00b7 Umbral: ${T[d.id]} \u00b7 Peso: ${W[d.id]}%<\/span><span>${ok?'<span class=\"tag-ok\">OK<\/span>':'<span class=\"tag-bad\">Veto \u25b2<\/span>'} <strong>${contrib}<\/strong>pts<\/span><\/div><\/div>`;\n  });\n  let rows='';\n  DIMS.forEach((d,i)=>{\n    const diff=S[d.id]-T[d.id];\n    rows+=`<tr><td class=\"dim-col\">D${i+1} \u00b7 ${d.name}<\/td><td>${W[d.id]}%<\/td><td>${T[d.id]}<\/td><td><strong>${S[d.id]}<\/strong><\/td><td>${diff>=0?`<span class=\"tag-ok\">+${diff}<\/span>`:`<span class=\"tag-bad\">${diff}<\/span>`}<\/td><td><strong>${Math.round((W[d.id]\/100)*S[d.id])}<\/strong><\/td><\/tr>`;\n  });\n  const alertsHTML=hasVeto\n    ?alerts.map(a=>`<div class=\"alert danger\"><svg class=\"alert-icon\" viewBox=\"0 0 16 16\" fill=\"none\"><path d=\"M8 2L14 13H2L8 2Z\" stroke=\"currentColor\" stroke-width=\"1.5\"\/><path d=\"M8 6v3.5M8 11v.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/><\/svg><span><strong>${a.name}:<\/strong> score ${a.score} por debajo del umbral m\u00ednimo (${a.threshold}).<\/span><\/div>`).join('')\n    :`<div class=\"alert success\"><svg class=\"alert-icon\" viewBox=\"0 0 16 16\" fill=\"none\"><path d=\"M3 8l3.5 3.5L13 5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><span>Todas las dimensiones superaron sus umbrales m\u00ednimos acordados.<\/span><\/div>`;\n  document.getElementById('result-container').innerHTML=`\n    <div style=\"font-size:17px;color:var(--gray-500);font-weight:300;margin-bottom:1rem;line-height:1.8\"><strong style=\"color:var(--navy)\">${meta.name}<\/strong> \u00b7 ${meta.org}<br>Patrocinador: ${meta.sponsor} \u00b7 Director: ${meta.pm}<br>Acuerdo: ${meta.ds} \u00b7 Cierre estimado: ${meta.de}<\/div>\n    <div class=\"score-hero\"><div class=\"score-big\">${score}<span>\/100<\/span><\/div><div class=\"score-info\"><h3>Score de \u00e9xito ponderado<\/h3><p>${meta.obj}<\/p><span class=\"verdict-badge\">${verdict}<\/span><\/div><\/div>\n    <div class=\"alerts-section\">${alertsHTML}<\/div>\n    <div class=\"score-grid\">${dimsHTML}<\/div>\n    <p style=\"font-size:19px;font-weight:500;color:var(--navy);margin-bottom:.75rem;margin-top:1rem\">Comparativo por dimensi\u00f3n<\/p>\n    <table class=\"compare-table\"><thead><tr><th>Dimensi\u00f3n<\/th><th>Peso<\/th><th>Umbral<\/th><th>Score real<\/th><th>Diferencia<\/th><th>Contribuci\u00f3n<\/th><\/tr><\/thead>\n    <tbody>${rows}<tr><td colspan=\"5\" style=\"font-weight:500;text-align:right;color:var(--navy)\">Score total ponderado<\/td><td><strong style=\"font-size:15px;color:var(--navy)\">${score}<\/strong><\/td><\/tr><\/tbody><\/table>\n    <div style=\"margin-top:1.25rem;padding:1rem 1.25rem;background:var(--navy-light);border-radius:var(--radius);font-size:14px;color:var(--gray-500);line-height:1.8;border-left:3px solid var(--gold)\">\n      <strong style=\"color:var(--navy)\">Escala:<\/strong> 80\u2013100 = Exitoso \u00b7 65\u201379 = Aceptable \u00b7 50\u201364 = Desafiado \u00b7 0\u201349 = Fallido. Veto por umbral anula el score global.<br>\n      <strong style=\"color:var(--navy)\">CEP v1.0 \u00b7 Proyectum<\/strong> \u00b7 Cooke-Davies (2002) \u00b7 PMI BRM \u00b7 Flyvbjerg (2023) \u00b7 KPMG-IPMA (2019)\n    <\/div>`;\n}\n\nfunction setW(id,val){W[id]=val;document.getElementById('wv-'+id).textContent=val+'%';refreshWBar();}\nfunction setT(id,val){T[id]=val;document.getElementById('tv-'+id).textContent=val;}\nfunction setS(id,val){S[id]=val;document.getElementById('sv-'+id).textContent=val;refreshSTN(id);}\nfunction refreshSTN(id){\n  const el=document.getElementById('stn-'+id);if(!el)return;\n  const ok=S[id]>=T[id];\n  el.textContent=ok?`Umbral alcanzado: ${S[id]} \u2265 ${T[id]}`:`Umbral no alcanzado: ${S[id]} < ${T[id]}`;\n  el.style.color=ok?'var(--success)':'var(--danger)';\n}\nasync function sendEmail(tipo){\n  const PROYECTUM_EMAIL='contacto@mx.proyectum.com';\n  const WP_ENDPOINT='https:\/\/proyectum.com\/mx\/wp-json\/cep\/v1\/send-email';\n\n  const clientEmail=v('f-email-client')||'';\n  const statusId='mail-status-'+tipo;\n  const btnId='btn-mail-'+tipo;\n  const statusEl=document.getElementById(statusId);\n  const btnEl=document.getElementById(btnId);\n\n  if(!clientEmail){\n    if(statusEl) showMailStatus(statusEl,'error','Agrega el correo del cliente en el paso 1 antes de enviar.');\n    else alert('Agrega el correo del cliente en el paso 1 antes de enviar.');\n    return;\n  }\n\n  if(btnEl){ btnEl.disabled=true; btnEl.textContent='Enviando\u2026'; }\n  if(statusEl) showMailStatus(statusEl,'loading','Enviando correo\u2026');\n\n  const meta={\n    proyecto:v('f-name')||'\u2014',\n    organizacion:v('f-org')||'\u2014',\n    patrocinador:v('f-sponsor')||'\u2014',\n    director:v('f-pm')||'\u2014',\n    contacto:v('f-contact')||'\u2014',\n    fecha_inicio:v('f-date-start')||'\u2014',\n    fecha_cierre:v('f-date-end')||'\u2014',\n    objetivo:v('f-objective')||'\u2014',\n    email_cliente:clientEmail\n  };\n\n  let payload={tipo, meta, proyectum_email:PROYECTUM_EMAIL};\n\n  if(tipo==='calibracion'||tipo==='analisis'){\n    payload.dimensiones=DIMS.map(d=>({\n      nombre:d.name,\n      peso:W[d.id],\n      umbral:T[d.id]\n    }));\n  }\n\n  if(tipo==='cierre'){\n    let total=0;const alertas=[];\n    DIMS.forEach(d=>{\n      total+=(W[d.id]\/100)*S[d.id];\n      if(S[d.id]<T[d.id]) alertas.push(d.name);\n    });\n    payload.dimensiones=DIMS.map(d=>({\n      nombre:d.name,\n      peso:W[d.id],\n      umbral:T[d.id],\n      score:S[d.id],\n      contribucion:Math.round((W[d.id]\/100)*S[d.id]),\n      ok:S[d.id]>=T[d.id]\n    }));\n    payload.score_total=Math.round(total);\n    payload.veto=alertas.length>0;\n    payload.veto_dims=alertas;\n    const score=Math.round(total);\n    payload.veredicto=alertas.length>0?'Veto por umbral':score>=80?'Exitoso':score>=65?'Aceptable':score>=50?'Desafiado':'Fallido';\n  }\n\n  try{\n    const res=await fetch(WP_ENDPOINT,{\n      method:'POST',\n      headers:{'Content-Type':'application\/json'},\n      body:JSON.stringify(payload)\n    });\n    const data=await res.json();\n    if(data.success){\n      if(tipo==='analisis'){\n      showMailStatus(statusEl,'success','Perfil enviado a Proyectum. Recibir\u00e1s el an\u00e1lisis interpretado en 48 horas h\u00e1biles en '+clientEmail+'.');\n      btnEl.textContent='Perfil enviado \u2713';\n    } else {\n      showMailStatus(statusEl,'success','Correo enviado correctamente a '+clientEmail+' y a Proyectum.');\n      btnEl.textContent='Correo enviado \u2713';\n    }\n      btnEl.textContent='Correo enviado \u2713';\n    } else {\n      throw new Error(data.message||'Error desconocido');\n    }\n  } catch(e){\n    showMailStatus(statusEl,'error','No se pudo enviar el correo. Verifica la conexi\u00f3n o contacta a soporte.');\n    btnEl.disabled=false;\n    btnEl.textContent=tipo==='calibracion'?'Enviar acuerdo por correo':tipo==='analisis'?'Enviar perfil a Proyectum para an\u00e1lisis \u2192':'Enviar reporte por correo';\n  }\n}\n\nfunction showMailStatus(el,type,msg){\n  el.style.display='block';\n  const styles={\n    loading:'background:var(--navy-light);color:var(--navy)',\n    success:'background:var(--success-bg);color:var(--success)',\n    error:'background:var(--danger-bg);color:var(--danger)'\n  };\n  el.style.cssText='display:block;margin-top:.75rem;font-size:14px;font-weight:300;padding:.6rem 1rem;border-radius:var(--radius);'+styles[type];\n  el.textContent=msg;\n}\n\nfunction refreshWBar(){\n  const total=Object.values(W).reduce((a,b)=>a+b,0);\n  const label=document.getElementById('wb-label');const fill=document.getElementById('wb-fill');if(!label)return;\n  label.textContent=total+'%';label.style.color=total===100?'var(--success)':'var(--danger)';\n  fill.style.width=Math.min(total,100)+'%';fill.style.background=total===100?'#1b7f4e':'var(--navy)';\n}\nfunction v(id){return document.getElementById(id)?.value?.trim();}\n\nfunction resetAll(){\n  DIMS.forEach(d=>{W[d.id]=d.dw;T[d.id]=d.dt;S[d.id]=0;});\n  document.querySelectorAll('input[type=text],textarea').forEach(el=>el.value='');\n  document.getElementById('ck1').checked=false;\n  document.getElementById('ck2').checked=false;\n  accepted=false;\n  document.querySelectorAll('.step-pill').forEach(p=>p.classList.add('locked'));\n  document.getElementById('pill-0').classList.remove('locked');\n  goTo(0);\n}\nbuildCalibrate();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>CEP \u2014 Calibrador de \u00c9xito en Proyectos | Proyectum P Calibrador de \u00c9xito en Proyectos Proyectum \u00b7 CEP v1.0 Inicio 1 \u00b7 Proyecto 2 \u00b7 Calibrar 3 \u00b7 Medir 4 \u00b7 Resultado Proyectum \u00b7 CEP v1.0 Calibrador de \u00c9xito en Proyectos (CEP) Si los proyectos son \u00fanicos por definici\u00f3n, \u00bfpor qu\u00e9 los seguimos midiendo a [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-6282","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/proyectum.com\/mx\/wp-json\/wp\/v2\/pages\/6282","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/proyectum.com\/mx\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/proyectum.com\/mx\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/proyectum.com\/mx\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/proyectum.com\/mx\/wp-json\/wp\/v2\/comments?post=6282"}],"version-history":[{"count":16,"href":"https:\/\/proyectum.com\/mx\/wp-json\/wp\/v2\/pages\/6282\/revisions"}],"predecessor-version":[{"id":7440,"href":"https:\/\/proyectum.com\/mx\/wp-json\/wp\/v2\/pages\/6282\/revisions\/7440"}],"wp:attachment":[{"href":"https:\/\/proyectum.com\/mx\/wp-json\/wp\/v2\/media?parent=6282"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}