/* Reporte ejecutivo. Las mismas reglas visten la vista dentro de la app, el archivo descargable y la impresión. */
.xr{
  --xr-ink:#0f2440;--xr-navy:#0d2f55;--xr-blue:#2d6dea;--xr-teal:#12a48f;
  --xr-amber:#c07c14;--xr-red:#cf4238;--xr-green:#0f8f56;
  --xr-line:#e2e9f2;--xr-line2:#eff3f8;--xr-muted:#64778f;--xr-soft:#f7f9fc;
  --xr-l1:#cf4238;--xr-l2:#e08b1e;--xr-l3:#2d6dea;--xr-l4:#12a48f;--xr-l5:#0f8f56;
  color:var(--xr-ink);
}
.xr-standalone{margin:0;padding:26px 20px 60px;background:#eef2f7;font:13px/1.5 Inter,"Segoe UI",Arial,sans-serif;-webkit-print-color-adjust:exact;print-color-adjust:exact}

/* --- Riel de acciones: pertenece a la app, nunca al documento. ---
   Va a la derecha y pegado mientras se recorre el documento. Antes era una barra en el
   encabezado, y decidir enviar obligaba a subir hasta arriba con la lectura a medias: la
   decision se toma leyendo, asi que las acciones tienen que estar donde esta la vista. */
.xr-work{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:20px;align-items:start}
.xr-page{min-width:0}
.xr-rail{position:sticky;top:16px;display:grid;gap:10px;align-content:start;max-height:calc(100dvh - 32px);overflow:auto;scrollbar-width:thin}
.xr-rail .back{display:inline-flex;align-items:center;gap:8px;justify-content:flex-start;border:1px solid #e1e8f1;background:#fff;color:#26559f;padding:0 13px 0 9px;height:38px;border-radius:11px;font-size:11.5px;font-weight:900;box-shadow:0 4px 12px rgba(21,52,88,.06);transition:.18s ease}
.xr-rail .back i{display:grid;place-items:center;width:22px;height:22px;border-radius:7px;background:#edf4ff;color:#2b63d3;font-style:normal;font-size:12px;transition:.18s ease}
.xr-rail .back:hover{border-color:#bcd2ff;background:#f7faff;box-shadow:0 9px 20px rgba(45,109,234,.15)}
.xr-rail .back:hover i{background:#2d6dea;color:#fff}
.xr-rail .back:focus-visible{outline:2px solid #2d6dea;outline-offset:2px}

/* Estado: que se enviaria si se pulsara ahora, y que tiene hoy el cliente. */
.xr-railcard{display:grid;gap:8px;padding:11px;border:1px solid var(--xr-line);background:#fff;border-radius:14px;box-shadow:0 10px 26px rgba(18,45,80,.07)}
.xr-railcard .xr-chip-source{height:auto;min-height:32px;padding:7px 10px;white-space:normal;line-height:1.35;text-align:left;font-size:10px}
.xr-railrow{display:grid;gap:2px;padding:9px 10px;border-radius:11px;background:var(--xr-soft);border:1px solid var(--xr-line2)}
.xr-railrow b{font-size:11.5px;font-weight:900;letter-spacing:-.01em}
.xr-railrow small{font-size:10.5px;line-height:1.35;color:var(--xr-muted)}
.xr-railrow.ok{background:#f1fbf6;border-color:#c9ecdb}.xr-railrow.ok b{color:#0f7a4c}
.xr-railrow.warn{background:#fff7ea;border-color:#f2ddb6}.xr-railrow.warn b{color:#a2600d}
.xr-railrow.off{background:#fff5f4;border-color:#f4d6d2}.xr-railrow.off b{color:#b7382f}
.xr-railrow.partial{background:#fdf1f1;border-color:#f0b4b4}.xr-railrow.partial b{color:#a82121}

.xr-railactions{display:grid;gap:7px}
.xr-railactions button{min-height:38px;border:1px solid var(--xr-line);background:#fff;color:#50678a;padding:8px 12px;border-radius:11px;font-weight:850;font-size:11.5px;display:inline-flex;align-items:center;gap:8px;text-align:left;transition:.18s ease}
.xr-railactions button:hover{color:var(--xr-blue);border-color:#c6d8f6;box-shadow:0 8px 18px rgba(21,52,88,.09)}
.xr-railactions button i{font-style:normal;font-size:13px;flex:0 0 auto}
/* El envio manda sobre el resto del riel: es la unica accion que sale de la casa. */
.xr-railactions button.send{min-height:44px;font-size:12px;border-color:#cddcf6;background:#f6f9ff;color:#26559f}
.xr-railactions button.send.primary{background:var(--xr-blue);border-color:var(--xr-blue);color:#fff;box-shadow:0 10px 22px rgba(45,109,234,.24)}
.xr-railactions button.send.primary:hover{color:#fff;box-shadow:0 12px 26px rgba(45,109,234,.3)}
.xr-railactions button:disabled{opacity:.5;box-shadow:none;cursor:not-allowed}

@media(max-width:1180px){
  /* Sin sitio para la columna, el riel se acuesta arriba y sigue pegado: lo que no puede
     perderse en ningun ancho es saber si lo que se lee es lo que el cliente tiene. */
  .xr-work{grid-template-columns:minmax(0,1fr)}
  .xr-rail{position:sticky;top:0;z-index:20;display:flex;flex-wrap:wrap;align-items:center;gap:8px;max-height:none;overflow:visible;padding:10px;border:1px solid var(--xr-line);border-radius:14px;background:rgba(241,245,250,.94);backdrop-filter:blur(10px)}
  .xr-railcard{flex:1 1 280px;display:flex;flex-wrap:wrap;gap:8px;padding:0;border:0;background:none;box-shadow:none}
  .xr-railcard>div{display:contents}
  .xr-railrow{flex:1 1 170px}
  .xr-railactions{display:flex;flex-wrap:wrap;gap:8px}
}

/* --- Confirmar el envio. Publica el documento en la pantalla del cliente, asi que se
   pregunta antes y se dice que va y que no: una seccion apagada por descuido no puede
   descubrirse alla. Vive fuera de `.xr`, de modo que no hereda sus variables de color. --- */
.xr-confirm{border:0;padding:0;width:min(420px,calc(100vw - 32px));border-radius:16px;color:#0f2440;box-shadow:0 30px 70px rgba(12,32,60,.3)}
.xr-confirm::backdrop{background:rgba(11,28,50,.45)}
.xr-confirm form{display:grid;gap:10px;padding:18px;font:13px/1.5 Inter,"Segoe UI",Arial,sans-serif}
.xr-confirm-title{font-size:15px;font-weight:900;letter-spacing:-.02em}
.xr-confirm p{margin:0;font-size:12px;line-height:1.5;color:#64778f}
.xr-confirm-out{border:1px solid #f2ddb6;background:#fff8ec;border-radius:12px;padding:9px 11px;font-size:11.5px;color:#8a5a12}
.xr-confirm-out.full{border-color:#c9ecdb;background:#f1fbf6;color:#0f7a4c}
.xr-confirm-out ul{margin:5px 0 0;padding-left:17px;display:grid;gap:2px}
.xr-confirm-note{font-size:11px;color:#a2600d}
/* A quien se le envia. La lista de la cuenta con su avance, dentro del propio dialogo: quien
   termino viene marcado, y a quien le faltan preguntas se le puede marcar igual, pero viendo
   que va a medias antes de hacerlo. */
.xr-confirm-people{display:grid;gap:6px}
.xr-confirm-people>b{font-size:12px;font-weight:900}
.xr-confirm-people ul{list-style:none;margin:0;padding:0;display:grid;gap:4px;max-height:200px;overflow:auto}
.xr-confirm-people label{display:flex;align-items:center;gap:9px;padding:7px 9px;border:1px solid #e2e9f2;border-radius:11px;background:#fff;cursor:pointer}
.xr-confirm-people label.partial{background:#fbfcfe;border-style:dashed}
.xr-confirm-people label:has(input:checked){border-color:#bcd3f7;background:#f4f8ff}
.xr-confirm-people input{flex:0 0 auto;width:16px;height:16px;accent-color:#2d6dea}
.xr-confirm-people label>span{display:grid;gap:1px;flex:1 1 auto;min-width:0}
.xr-confirm-people label>span b{font-size:12px;font-weight:850;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.xr-confirm-people label>span small{font-size:10.5px;color:#7d8ea6;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.xr-confirm-people em{display:grid;gap:1px;flex:0 0 auto;max-width:44%;text-align:right;font-style:normal;font-size:11px;font-weight:850;color:#3f5980}
.xr-confirm-people em small{font-size:10px;font-weight:650;line-height:1.3;color:#8b9cb3}
.xr-confirm-hint{font-size:10.5px;color:#8b9cb3}
.xr-confirm menu{display:flex;justify-content:flex-end;gap:8px;margin:2px 0 0;padding:0}
.xr-confirm menu button{min-height:38px;padding:0 14px;border:1px solid #e2e9f2;border-radius:10px;background:#fff;color:#50678a;font-weight:850;font-size:12px}
.xr-confirm menu button.primary{background:#2d6dea;border-color:#2d6dea;color:#fff}
.xr-confirm menu button:focus-visible{outline:2px solid #2d6dea;outline-offset:2px}
/* Procedencia del texto: quien firma el documento tiene que saber quien lo redacto. */
.xr-chip-source{display:inline-flex;align-items:center;gap:6px;height:38px;border:1px solid var(--xr-line);background:#f7f9fc;color:#6c7f97;border-radius:999px;padding:0 12px;font-size:10.5px;font-weight:900}
.xr-chip-source.ia{background:#f3f0fe;border-color:#ded6fb;color:#5a45b6}

/* --- El documento --- */
.xr-doc{max-width:1160px;margin:0 auto;background:#fff;border:1px solid var(--xr-line);border-radius:18px;overflow:hidden;box-shadow:0 18px 46px rgba(18,45,80,.09);counter-reset:xrsec}
.xr-doc *{box-sizing:border-box}

.xr-cover{position:relative;background:radial-gradient(1100px 420px at 88% -30%,rgba(24,173,155,.5),transparent 62%),linear-gradient(128deg,#0b2643,#12406e 58%,#16507f);color:#fff;padding:30px 34px 26px}
.xr-coverhead{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:20px;border-bottom:1px solid rgba(255,255,255,.16)}
.xr-logo{font-size:19px;font-weight:900;letter-spacing:-.7px}
.xr-logo span{color:#54dbc1}
.xr-stamp{display:flex;align-items:center;gap:8px;font-size:9.5px;font-weight:850;letter-spacing:.09em;text-transform:uppercase;color:#a9c6e4}
.xr-stamp b{border:1px solid rgba(121,233,211,.32);background:rgba(38,190,163,.14);color:#8be7d5;border-radius:999px;padding:5px 10px;letter-spacing:.08em}
.xr-covermain{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px;align-items:center;padding:24px 0 22px}
.xr-eyebrow{margin:0 0 9px;font-size:10px;font-weight:900;letter-spacing:.16em;text-transform:uppercase;color:#6fe3cb}
.xr-cover h1{margin:0;font-size:34px;line-height:1.06;letter-spacing:-1.1px;font-weight:850}
.xr-cover .xr-lede{margin:11px 0 0;max-width:640px;color:#c7dcef;font-size:13.5px;line-height:1.5}
.xr-covertags{display:flex;flex-wrap:wrap;gap:7px;margin-top:15px}
.xr-covertags span{border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.08);color:#dcebf8;border-radius:999px;padding:5px 11px;font-size:10.5px;font-weight:700}

.xr-hero{display:grid;justify-items:center;gap:8px;min-width:210px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);border-radius:18px;padding:18px 22px}
.xr-hero-level{font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:#8be7d5;text-align:center}
.xr-hero-caption{color:#c7dcef;font-size:10.5px;text-align:center;max-width:200px}
.xr-gauge{width:158px;height:158px;display:block}
.xr-gauge-value{fill:#fff;font-size:38px;font-weight:850;letter-spacing:-1.5px}
.xr-gauge-unit{fill:#9fc0dd;font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}

.xr-covermeta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.14);border-radius:13px;overflow:hidden}
.xr-covermeta div{background:rgba(9,34,60,.45);padding:11px 13px;min-width:0}
.xr-covermeta small{display:block;font-size:9px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:#8fb0cf;margin-bottom:4px}
.xr-covermeta b{display:block;font-size:12.5px;font-weight:800;color:#fff;overflow-wrap:anywhere}

/* --- Índice --- */
/* La numeración la lleva el CSS, no el HTML: cuando el Supervisor excluye una sección, el orden del
   documento se recompone solo y el PDF no sale con saltos en la numeración. */
.xr-toc{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:18px 34px;background:var(--xr-soft);border-bottom:1px solid var(--xr-line);counter-reset:xrtoc}
.xr-toc p{grid-column:1/-1;margin:0 0 2px;font-size:9.5px;font-weight:900;letter-spacing:.13em;text-transform:uppercase;color:#8496ac}
.xr-toc a{display:flex;gap:8px;align-items:baseline;color:#33507a;text-decoration:none;font-size:11.5px;font-weight:750;padding:5px 0}
.xr-toc a{counter-increment:xrtoc}
.xr-toc a.off{counter-increment:none}
.xr-toc a i{font-style:normal;font-weight:900;color:var(--xr-blue);font-size:10px;min-width:16px}
.xr-toc a i:before{content:counter(xrtoc,decimal-leading-zero)}
.xr-toc a.off i:before{content:"—"}
.xr-toc a:hover{color:var(--xr-blue)}

/* --- Secciones --- */
/* El Supervisor apaga secciones antes de enviar. En pantalla quedan grises para poder devolverlas;
   al imprimir y al exportar simplemente no existen. */
.xr-editnote{max-width:1160px;margin:0 auto 12px;color:#6c7f97;font-size:11px;line-height:1.5;padding:9px 13px;border:1px dashed #d6c9f5;background:#faf8ff;border-radius:11px}
.xr-editnote b{color:#5a45b6}
.xr-chip-source.sections{background:#fff8ec;border-color:#f0dfc0;color:#95610f}
.xr-switch{margin-left:auto;flex:0 0 auto;display:inline-flex;align-items:center;gap:8px;cursor:pointer;user-select:none;border:1px solid var(--xr-line);border-radius:999px;padding:5px 11px 5px 9px;background:#fff}
.xr-switch input{position:absolute;opacity:0;width:0;height:0}
.xr-switch>span{width:30px;height:17px;border-radius:99px;background:#2d6dea;position:relative;transition:.18s ease;flex:0 0 auto}
.xr-switch>span:after{content:"";position:absolute;top:2px;left:15px;width:13px;height:13px;border-radius:50%;background:#fff;transition:.18s ease}
.xr-switch em{font-style:normal;font-size:9.5px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:#2158c9}
.xr-switch.off>span{background:#c3cfdd}
.xr-switch.off>span:after{left:2px}
.xr-switch.off em{color:#8496ac}
.xr-switch input:focus-visible+span{outline:2px solid #2d6dea;outline-offset:2px}
/* La sección apagada se atenúa, pero su interruptor no: hay que poder devolverla de un clic. */
.xr-section.xr-off{background:#fafbfd}
.xr-section.xr-off>*:not(.xr-shead){opacity:.38}
.xr-section.xr-off .xr-shead h2,.xr-section.xr-off .xr-shead p,.xr-section.xr-off .xr-snum{opacity:.45}
.xr-toc a.off{opacity:.45;text-decoration:line-through}
.xr-section{padding:26px 34px;border-bottom:1px solid var(--xr-line2);counter-increment:xrsec}
.xr-section.xr-off{counter-increment:none}
.xr-section:last-child{border-bottom:0}
.xr-snum:before{content:counter(xrsec,decimal-leading-zero)}
.xr-section.xr-off .xr-snum:before{content:"—"}
.xr-shead{display:flex;align-items:flex-start;gap:12px;margin-bottom:16px}
.xr-snum{flex:0 0 auto;width:29px;height:29px;border-radius:9px;display:grid;place-items:center;background:#eaf1ff;color:var(--xr-blue);font-size:11.5px;font-weight:900}
.xr-shead h2{margin:0;font-size:19px;letter-spacing:-.4px;line-height:1.2}
.xr-shead p{margin:4px 0 0;color:var(--xr-muted);font-size:11.5px;line-height:1.45;max-width:820px}

.xr-prose p{margin:0 0 11px;font-size:13.5px;line-height:1.62;color:#22364f}
.xr-prose p:last-child{margin-bottom:0}
.xr-prose .xr-lead{font-size:15px;line-height:1.55;color:#152c48;font-weight:600}

/* --- Hallazgos --- */
.xr-findings{display:grid;gap:8px;margin-top:16px}
.xr-finding{display:grid;grid-template-columns:26px minmax(0,1fr);gap:11px;border:1px solid var(--xr-line);border-left-width:3px;border-radius:11px;padding:11px 13px;background:#fff}
.xr-finding i{font-style:normal;width:24px;height:24px;border-radius:7px;display:grid;place-items:center;font-size:12px;font-weight:900}
.xr-finding b{display:block;font-size:12.5px;line-height:1.35}
.xr-finding span{display:block;margin-top:3px;color:var(--xr-muted);font-size:11.5px;line-height:1.45}
.xr-finding.positive{border-left-color:var(--xr-teal);background:#f4fcfa}
.xr-finding.positive i{background:#dcf5ef;color:#0d8a78}
.xr-finding.warning{border-left-color:var(--xr-amber);background:#fffaf1}
.xr-finding.warning i{background:#fdeed2;color:#a96f11}
.xr-finding.critical{border-left-color:var(--xr-red);background:#fef6f5}
.xr-finding.critical i{background:#fbe0dd;color:#b7382f}
.xr-finding.info{border-left-color:var(--xr-blue);background:#f5f9ff}
.xr-finding.info i{background:#e2ecfd;color:#2158c9}

/* --- Indicadores --- */
.xr-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}
.xr-kpi{border:1px solid var(--xr-line);border-radius:13px;padding:13px;background:linear-gradient(#fff,#fcfdff);min-width:0}
.xr-kpi small{display:block;font-size:9px;font-weight:900;letter-spacing:.09em;text-transform:uppercase;color:#8496ac;margin-bottom:7px;line-height:1.3}
.xr-kpi strong{display:block;font-size:24px;line-height:1;letter-spacing:-.9px;font-weight:850}
.xr-kpi strong u{text-decoration:none;font-size:12px;color:#93a3b6;font-weight:800;margin-left:2px}
.xr-kpi em{display:block;font-style:normal;margin-top:6px;color:var(--xr-muted);font-size:10.5px;line-height:1.35}
.xr-kpi .xr-track{margin-top:9px}

.xr-track{height:5px;border-radius:99px;background:#e8eef6;overflow:hidden}
.xr-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--xr-blue),var(--xr-teal))}

/* --- Escalera de niveles --- */
.xr-ladder{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-bottom:18px}
.xr-rung{border:1px solid var(--xr-line);border-radius:12px;padding:12px;background:#fbfcfe;position:relative;overflow:hidden}
.xr-rung:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--rung,#c3cfdd)}
.xr-rung small{display:block;font-size:9px;font-weight:900;letter-spacing:.09em;text-transform:uppercase;color:#8496ac}
.xr-rung b{display:block;margin:4px 0 5px;font-size:13px}
.xr-rung p{margin:0;color:var(--xr-muted);font-size:10.5px;line-height:1.4}
.xr-rung.current{background:#f2f7ff;border-color:#bfd5fb;box-shadow:0 8px 20px rgba(45,109,234,.1)}
.xr-rung.current b{color:#1c4fb8}
.xr-rung.reached{background:#fff}
.xr-rung.target{border-color:#efd6ac;box-shadow:inset 0 0 0 1px #f6e6c9}
.xr-rung.current.target{border-color:#bfd5fb;box-shadow:0 8px 20px rgba(45,109,234,.1),inset 0 0 0 1px #f6e6c9}
.xr-rungmarks{display:flex;flex-wrap:wrap;gap:5px}
.xr-rung em{display:inline-block;font-style:normal;margin-top:7px;font-size:9px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:#2158c9;background:#e4edfd;border-radius:999px;padding:3px 7px}
.xr-rung em.goal{color:#95610f;background:#fbecd4}

.xr-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.xr-card{border:1px solid var(--xr-line);border-radius:13px;padding:14px;background:#fff}
.xr-card>b{display:block;font-size:11.5px;margin-bottom:9px}
.xr-card ul{margin:0;padding-left:16px}
.xr-card li{margin-bottom:5px;color:#3d5573;font-size:11.5px;line-height:1.45}
.xr-card li:last-child{margin-bottom:0}
.xr-card.warn{border-color:#f2d9c9;background:#fffaf4}
.xr-card.warn li{color:#7e5527}
.xr-card.good{border-color:#cceee6;background:#f6fdfb}
.xr-card.good li{color:#256b5f}

/* --- Radar + tabla de dimensiones --- */
.xr-split{display:grid;grid-template-columns:392px minmax(0,1fr);gap:20px;align-items:start}
.xr-radar-wrap{border:1px solid var(--xr-line);border-radius:14px;padding:12px 8px 6px;background:linear-gradient(#fff,#fbfdff)}
.xr-radar{width:100%;height:auto;display:block}
.xr-radar-legend{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;padding:6px 8px 8px;color:var(--xr-muted);font-size:10px;font-weight:750}
.xr-radar-legend span{display:inline-flex;align-items:center;gap:6px}
.xr-radar-legend i{width:18px;height:3px;border-radius:2px;display:inline-block}
.xr-radar-legend i.dashed{background:none!important;border-top:3px dashed #e08b1e;height:0;border-radius:0}
.xr-radar-legend i.dotted{background:none!important;border-top:3px dotted #7f97bd;height:0;border-radius:0}
.xr-radar-hint{margin:0;padding:0 10px 10px;text-align:center;color:#8496ac;font-size:10px;line-height:1.4}

.xr-table{width:100%;border-collapse:collapse;font-size:11.5px}
.xr-table th{text-align:left;padding:8px 9px;border-bottom:1px solid var(--xr-line);color:#8496ac;font-size:9px;font-weight:900;letter-spacing:.09em;text-transform:uppercase;white-space:nowrap}
.xr-table td{padding:9px;border-bottom:1px solid var(--xr-line2);vertical-align:middle;color:#2b4160}
.xr-table tbody tr:last-child td{border-bottom:0}
.xr-table td.num,.xr-table th.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.xr-table .xr-dimname{font-weight:800;color:#16304f}
.xr-table .xr-dimname small{display:block;font-weight:600;color:#8496ac;font-size:10px;margin-top:2px}
/* La celda necesita ancho propio: en layout automático un hijo vacío no aporta ancho intrínseco y la barra colapsa. */
.xr-table .xr-barcell{width:122px}
.xr-table .xr-barcell .xr-mini{width:104px}
.xr-scorecell{font-weight:900;font-size:13px;color:#16304f}
.xr-scorecell u{text-decoration:none;color:#9aa9bc;font-size:9.5px;font-weight:800}

.xr-chip{display:inline-block;border-radius:999px;padding:3px 8px;font-size:9.5px;font-weight:900;letter-spacing:.02em;white-space:nowrap}
.xr-chip.l1{background:#fbe3e0;color:#a93a31}
.xr-chip.l2{background:#fbecd4;color:#95610f}
.xr-chip.l3{background:#e3ecfd;color:#1f56c4}
.xr-chip.l4{background:#d9f3ee;color:#0c7d6d}
.xr-chip.l5{background:#d8f2e3;color:#0b6f43}
.xr-chip.none{background:#eef2f7;color:#7f8ea1}
.xr-chip.gap{background:#fdece9;color:#b04036}
.xr-chip.ok{background:#dff2e8;color:#0d7346}

.xr-mini{height:6px;border-radius:99px;background:#e8eef6;overflow:hidden;position:relative}
.xr-mini i{display:block;height:100%;border-radius:inherit;background:var(--tone,#2d6dea)}
.xr-mini u{position:absolute;top:-2px;bottom:-2px;width:2px;background:#8fa3bd;border-radius:2px;text-decoration:none}

/* --- Distribución: una tarjeta con las cifras, el reparto por nivel y la distancia a la vara.
   Antes eran columnas sueltas: decían dónde se apilan las prácticas y nada más. --- */
.xr-dist{border:1px solid var(--xr-line);border-radius:16px;overflow:hidden;background:#fff;box-shadow:0 10px 30px rgba(18,45,80,.05)}
.xr-dist-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--xr-line);border-bottom:1px solid var(--xr-line)}
.xr-dist-kpi{background:#fff;padding:14px 16px;min-width:0}
.xr-dist-kpi small{display:block;font-size:9px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:#8496ac;margin-bottom:6px}
.xr-dist-kpi strong{display:block;font-size:23px;line-height:1;letter-spacing:-.7px;font-weight:900;color:var(--xr-navy)}
.xr-dist-kpi strong em{font-style:normal;font-size:11.5px;font-weight:800;letter-spacing:0;color:#8496ac}
.xr-dist-kpi span{display:block;margin-top:6px;color:var(--xr-muted);font-size:10.5px;font-weight:650}
.xr-dist-kpi.gap strong{color:var(--xr-red)}
.xr-dist-kpi.gap strong em{color:#c9908a}
.xr-dist-kpi.ok strong{color:var(--xr-green)}
.xr-dist-kpi.ok strong em{color:#7fb198}

.xr-dist-body{display:grid;grid-template-columns:minmax(0,1fr) 258px}
.xr-dist-main{padding:18px 20px 20px;min-width:0}
.xr-dist-titlerow{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}
.xr-dist-titlerow small{display:block;font-size:9px;font-weight:900;letter-spacing:.11em;text-transform:uppercase;color:#8496ac;margin-bottom:4px}
.xr-dist-titlerow h3{margin:0;font-size:14px;font-weight:850;letter-spacing:-.2px;color:var(--xr-navy)}
.xr-dist-total{flex:0 0 auto;border:1px solid var(--xr-line);background:var(--xr-soft);border-radius:8px;padding:5px 9px;color:var(--xr-muted);font-size:10px;font-weight:850;white-space:nowrap}

/* El reparto va en una sola barra: las proporciones se comparan sin medir alturas. */
.xr-dist-stack{display:flex;height:34px;border-radius:10px;overflow:hidden;background:#eef2f7}
.xr-dist-stack span{display:flex;align-items:center;justify-content:center;height:100%;min-width:3px}
.xr-dist-stack span+span{box-shadow:inset 1px 0 0 rgba(255,255,255,.6)}
.xr-dist-stack i{font-style:normal;color:#fff;font-size:10.5px;font-weight:900;text-shadow:0 1px 1px rgba(9,26,45,.2)}

.xr-dist-levels{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin-top:12px}
.xr-dist-level{display:grid;grid-template-columns:8px minmax(0,1fr) auto;column-gap:7px;align-items:start;border:1px solid transparent;border-radius:9px;padding:8px}
.xr-dist-level.goal{border-color:#d6ecdf;background:#f4faf6}
.xr-dist-level.dim{opacity:.6}
.xr-dist-dot{grid-row:1/3;width:8px;height:8px;border-radius:50%;margin-top:4px}
.xr-dist-level b{display:block;font-size:10.5px;font-weight:900;color:#33506f}
.xr-dist-level small{display:block;margin-top:1px;font-size:9px;color:#8496ac;overflow-wrap:anywhere}
.xr-dist-level strong{font-size:12.5px;font-weight:900;color:var(--xr-ink);text-align:right}
.xr-dist-level em{grid-column:3;font-style:normal;font-size:9px;font-weight:800;color:#8496ac;text-align:right}

/* La escala vive en puntaje: dice de un vistazo cuánto falta para la vara del consultor. */
.xr-dist-scale{margin-top:16px;padding-top:14px;border-top:1px solid var(--xr-line2)}
.xr-dist-scalehead{display:flex;align-items:center;justify-content:space-between;gap:10px}
.xr-dist-scalehead span{color:var(--xr-muted);font-size:10.5px;font-weight:800}
.xr-dist-scalehead strong{color:var(--xr-amber);font-size:10.5px;font-weight:900}
.xr-dist-track{position:relative;height:6px;border-radius:99px;background:#e8edf3;margin:34px 6px 26px}
.xr-dist-track i{position:absolute;left:0;top:0;height:100%;border-radius:99px;background:var(--xr-blue)}
.xr-dist-track u{position:absolute;top:50%;width:2px;height:26px;transform:translate(-50%,-50%);background:var(--xr-amber);text-decoration:none}
.xr-dist-track u::after{content:"";position:absolute;top:-3px;left:50%;width:6px;height:6px;transform:translateX(-50%) rotate(45deg);background:var(--xr-amber)}
.xr-dist-track u span{position:absolute;left:50%;bottom:31px;transform:translateX(-50%);white-space:nowrap;color:#a5720f;font-size:9px;font-weight:900}
.xr-dist-track b{position:absolute;top:50%;width:13px;height:13px;border-radius:50%;transform:translate(-50%,-50%);background:#fff;border:3px solid var(--xr-blue);box-shadow:0 0 0 3px rgba(45,109,234,.14)}
.xr-dist-track b span{position:absolute;left:50%;top:16px;transform:translateX(-50%);white-space:nowrap;color:#2459bc;font-size:9.5px;font-weight:900}
.xr-dist-track .start span{left:0;transform:none}
.xr-dist-track .end span{left:auto;right:0;transform:none}
.xr-dist-ticks{display:flex;justify-content:space-between;margin:0 6px;color:#93a3b6;font-size:9px;font-weight:800}
.xr-dist-scalekey{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin-top:10px;color:var(--xr-muted);font-size:9.5px;font-weight:750}
.xr-dist-scalekey span{display:inline-flex;align-items:center;gap:5px}
.xr-dist-scalekey i{width:7px;height:7px;border-radius:50%}
.xr-dist-scalekey i.avg{background:var(--xr-blue)}
.xr-dist-scalekey i.goal{background:var(--xr-amber)}
.xr-dist-scalekey strong{margin-left:auto;color:#41597a;font-size:9.5px;font-weight:900}

.xr-dist-insight{padding:18px 18px 20px;border-left:1px solid var(--xr-line);background:linear-gradient(150deg,#f7fafd,#fff)}
.xr-dist-insight>small{display:block;font-size:9px;font-weight:900;letter-spacing:.11em;text-transform:uppercase;color:#8496ac}
.xr-dist-big{margin-top:14px}
.xr-dist-big strong{display:block;font-size:34px;line-height:.95;letter-spacing:-1.4px;font-weight:900;color:#173d70}
.xr-dist-big span{display:block;margin-top:5px;color:var(--xr-muted);font-size:10px;font-weight:750}
.xr-dist-insight>p{margin:12px 0 0;color:#526a85;font-size:11.5px;line-height:1.5}
.xr-dist-insight>p b{color:#23415f}
.xr-dist-sep{height:1px;background:var(--xr-line2);margin:16px 0}
.xr-dist-read{display:flex;gap:9px}
.xr-dist-read i{flex:0 0 24px;width:24px;height:24px;display:grid;place-items:center;border-radius:8px;background:#eaf1ff;color:var(--xr-blue);font-style:normal;font-size:12px;font-weight:900}
.xr-dist-read p{margin:0;color:var(--xr-muted);font-size:10.5px;line-height:1.5}
.xr-dist-alert{margin-top:16px;border:1px solid #f2dbd7;background:#fff7f5;border-radius:9px;padding:10px 11px;color:#8a5751;font-size:10px;line-height:1.5}
.xr-dist-alert b{color:#7a3a33;font-weight:900}
.xr-dist-alert.ok{border-color:#d6ecdf;background:#f4faf6;color:#41775f}
.xr-dist-alert.ok b{color:#0d7346}

/* Reparto contra la vara: una sola barra dice cuántas prácticas quedan a cada lado del objetivo. */
.xr-balance{margin-top:12px}
.xr-balancebar{display:flex;height:14px;border-radius:99px;overflow:hidden;background:#eef2f7}
.xr-balancebar span{display:block;height:100%}
.xr-balancekey{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;margin-top:8px;color:var(--xr-muted);font-size:10.5px;font-weight:750}
.xr-balancekey span{display:inline-flex;align-items:center;gap:6px}
.xr-balancekey i{width:10px;height:10px;border-radius:3px;display:inline-block}
.xr-balancekey b{color:#16304f;font-weight:900;font-size:12px}
.xr-balancekey em{font-style:normal;margin-left:auto;color:#8496ac}

/* --- Etapa consolidada: velocimetro + tarjeta de progreso --- */
.xr-stagegrid{display:grid;grid-template-columns:262px minmax(0,1fr);gap:22px;align-items:stretch}
.xr-speedo-card{border:1px solid var(--xr-line);border-radius:14px;background:#fbfcfe;padding:14px 12px 13px;text-align:center;display:flex;flex-direction:column;justify-content:center}
.xr-speedo{display:block;width:100%;max-width:236px;height:auto;margin:0 auto}
.xr-speedo-read small{display:block;margin-top:8px;font-size:9px;font-weight:900;letter-spacing:.11em;text-transform:uppercase;color:#8496ac}
.xr-speedo-read b{display:block;margin-top:4px;font-size:14.5px;font-weight:900;letter-spacing:-.3px;line-height:1.25}
/* La aguja dice donde esta, nunca por que no avanza. En un modelo acumulativo esa es la
   pregunta: puede haber tres etapas al 100% y la aguja quieta porque la primera no tiene
   respuestas. La razon va debajo de la lectura, no en una nota al final de la seccion. */
.xr-speedo-read .xr-speedo-why{display:block;margin-top:9px;padding-top:9px;border-top:1px solid #e6ecf4;
  font-size:10.5px;line-height:1.5;font-weight:500;letter-spacing:0;text-transform:none;color:#6d7f95}
.xr-speedo-read .xr-speedo-why b{display:inline;margin:0;font-size:10.5px;font-weight:800;color:#3d566f}

/* Tarjeta de progreso: encabezado con el conteo de etapas, la escalera compacta y la meta siguiente. */
.xr-progresscard{border:1px solid var(--xr-line);border-radius:14px;background:#fff;padding:18px 20px;min-width:0}
.xr-cardtop{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:14px;border-bottom:1px solid var(--xr-line)}
.xr-eyebrow{display:block;font-size:9px;font-weight:900;letter-spacing:.075em;text-transform:uppercase;color:#7a8ca1;margin-bottom:4px}
.xr-cardtop h3{margin:0;font-size:15.5px;line-height:1.25;color:#173451}
.xr-cardtop p{margin:5px 0 0;color:#6f8196;font-size:10.5px;line-height:1.5}
.xr-currentbadge{flex:0 0 auto;padding:6px 10px;background:#edf8f5;border:1px solid #d8eee7;border-radius:9px;color:#0b8063;font-size:10px;font-weight:900;white-space:nowrap}

/* Escalera compacta: un vistazo a los cinco niveles, sin repetir la barra completa de cada uno. */
.xr-stagelevels{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:16px 0 18px}
.xr-lvl{position:relative;min-width:0;border:1px solid var(--xr-line);border-radius:11px;padding:9px 9px 8px;background:#fbfcfe}
.xr-lvl.done{background:#f8fbff}
.xr-lvl.current{border-color:#a8dfd3;background:#f1fbf8;box-shadow:0 0 0 2px rgba(18,164,143,.07)}
.xr-lvl.next{border-style:dashed;border-color:#e8c58b;background:#fffaf2}
.xr-lvl.none .xr-lvlrate,.xr-lvl.none strong{color:#9aabc0}
.xr-lvlnum{display:flex;align-items:center;gap:6px;font-size:9px;text-transform:uppercase;font-weight:900;color:#7b8da2}
.xr-lvlnum .dot{width:7px;height:7px;border-radius:50%;background:var(--tone);flex:0 0 auto}
.xr-lvl strong{display:block;margin-top:6px;font-size:11.5px;color:#213a55;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.xr-lvlrate{display:block;margin-top:5px;font-size:16px;font-weight:900;color:var(--tone)}
.xr-lvl small{display:block;margin-top:2px;font-size:8.5px;color:#8798aa}
.xr-lvlcheck{position:absolute;top:8px;right:8px;width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#dff3ea;color:#0f8f56;font-size:9px;font-weight:900}

/* Próxima meta: barra grande con el umbral marcado + qué falta para cruzarlo. */
.xr-nextfocus{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:16px;align-items:stretch}
.xr-nextmain{border:1px solid var(--xr-line2);border-radius:12px;padding:14px 15px;background:#fafbfd}
.xr-nexttitle{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:9px}
.xr-nexttitle div b{display:block;font-size:12.5px;color:#203b59}
.xr-nexttitle div span{display:block;margin-top:2px;color:#7f90a4;font-size:9.5px}
.xr-nexttitle>strong{color:var(--xr-green);font-size:21px;letter-spacing:-.5px}
.xr-bigbar{position:relative;height:12px;background:#e9eef4;border-radius:99px;margin-top:13px}
.xr-bigfill{height:100%;border-radius:99px;background:var(--xr-green)}
.xr-threshold{position:absolute;top:-6px;width:2px;height:24px;margin-left:-1px;background:#c78424}
.xr-threshold::before{content:"umbral";position:absolute;top:-15px;left:50%;transform:translateX(-50%);color:#a46612;font-size:8px;font-weight:900;white-space:nowrap}
.xr-nextfoot{margin-top:8px;display:flex;justify-content:space-between;gap:10px;font-size:9px;color:#8393a6}
.xr-nextfoot b{color:#425a74}
.xr-actionbox{border:1px solid #f0dec2;border-radius:12px;padding:14px;background:#fffaf3}
.xr-actionbox small{display:block;color:#9b712f;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.065em;margin-bottom:6px}
.xr-actionbox strong{display:block;color:#714c16;font-size:14.5px;line-height:1.25}
.xr-actionbox p{margin:7px 0 0;color:#866c45;font-size:9.5px;line-height:1.5}
.xr-actionmini{margin-top:10px;padding-top:10px;border-top:1px solid #f0dec2;font-size:9px;color:#8c744f}
.xr-actionmini b{color:#6d4b1b}

.xr-note{margin-top:14px;border:1px dashed #c9d8ee;background:#f6f9ff;border-radius:11px;padding:11px 13px;color:#3b5578;font-size:11.5px;line-height:1.5}
.xr-note b{color:#1c4fb8}
/* Lo que redacta el consultor IA se distingue de lo que calcula la plataforma. */
.xr-note.ai{border-style:solid;border-color:#ded6fb;background:#f8f6ff;color:#463a77;margin-top:0;margin-bottom:12px}
.xr-note.ai b{color:#5a45b6}
.xr-headline{margin:0 0 12px;font-size:17px;line-height:1.4;font-weight:850;letter-spacing:-.3px;color:#0f2440}

/* --- Detalle por dimensión --- */
.xr-dim{border:1px solid var(--xr-line);border-radius:14px;padding:15px;margin-bottom:11px;background:#fff}
.xr-dim:last-child{margin-bottom:0}
.xr-dimhead{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:11px}
.xr-dimhead h3{margin:0;font-size:14.5px;letter-spacing:-.2px}
.xr-dimhead p{margin:5px 0 0;color:var(--xr-muted);font-size:11.5px;line-height:1.5;max-width:660px}
.xr-dimscore{display:flex;align-items:center;gap:10px;flex:0 0 auto}
.xr-dimscore strong{font-size:22px;font-weight:900;letter-spacing:-.8px;line-height:1}
.xr-dimscore strong u{text-decoration:none;font-size:11px;color:#93a3b6}
.xr-subgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:8px;margin-top:11px}
.xr-sub{border:1px solid var(--xr-line2);border-radius:10px;padding:9px 11px;background:#fbfcfe;min-width:0}
.xr-sub b{display:block;font-size:11px;font-weight:800;color:#2b4160;margin-bottom:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.xr-sub div{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:10.5px;color:var(--xr-muted)}
.xr-sub em{font-style:normal;font-weight:900;font-size:13px;color:#16304f}
.xr-extremes{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:11px}
.xr-extreme{border-radius:10px;padding:10px 12px;border:1px solid var(--xr-line2);background:#fbfcfe}
.xr-extreme small{display:block;font-size:9px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;margin-bottom:5px}
.xr-extreme p{margin:0;font-size:11.5px;line-height:1.45;color:#33496a}
.xr-extreme.good{border-color:#d6efe9;background:#f7fdfb}
.xr-extreme.good small{color:#0d8a78}
.xr-extreme.bad{border-color:#f4dcd8;background:#fef8f7}
.xr-extreme.bad small{color:#b7382f}

/* --- Listas de prácticas --- */
.xr-practices{display:grid;gap:8px}
.xr-practice{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:12px;align-items:start;border:1px solid var(--xr-line);border-radius:12px;padding:11px 13px;background:#fff}
.xr-practice>i{font-style:normal;font-size:9.5px;font-weight:900;color:#7d8fa5;background:#f1f5fa;border-radius:7px;padding:5px 0;text-align:center;letter-spacing:.02em}
.xr-practice h4{margin:0;font-size:12.5px;line-height:1.42;font-weight:700;color:#16304f}
.xr-practice .xr-meta{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:6px;color:#8496ac;font-size:10.5px}
.xr-practice .xr-meta b{color:#5a6d86;font-weight:800}
.xr-practice .xr-action{margin:8px 0 0;padding:8px 10px;border-radius:9px;background:#f6f9ff;border:1px solid #e0e9f8;color:#3b5578;font-size:11px;line-height:1.45}
.xr-practice .xr-action b{color:#1c4fb8}
.xr-practice>div:last-child{text-align:right;display:grid;gap:5px;justify-items:end}
.xr-practice.strength{border-left:3px solid var(--xr-teal)}
.xr-practice.gap{border-left:3px solid var(--xr-red)}
.xr-practice .xr-quote{margin:8px 0 0;padding-left:10px;border-left:2px solid #e0e9f8;color:#5a6d86;font-size:11px;line-height:1.45;font-style:italic}
.xr-more{margin:10px 0 0;color:var(--xr-muted);font-size:11px;text-align:center}
/* Celdas de la tabla de prioridades: la cifra arriba y su lectura debajo, sin abreviaturas. */
.xr-countcell{white-space:nowrap;width:132px}
.xr-countcell b{font-size:13px;font-weight:900;color:#16304f}
.xr-mini.slim{height:5px;margin-top:5px}
.xr-cellnote{display:block;margin-top:5px;color:#8496ac;font-size:10px;font-weight:750;white-space:nowrap}

/* --- Hoja de ruta --- */
.xr-horizon{margin-bottom:16px}
.xr-horizon:last-child{margin-bottom:0}
.xr-horizonhead{display:flex;align-items:center;gap:10px;margin-bottom:9px}
.xr-horizonhead span{background:#0d2f55;color:#fff;border-radius:999px;padding:5px 12px;font-size:10.5px;font-weight:900;letter-spacing:.02em}
.xr-horizonhead small{color:var(--xr-muted);font-size:10.5px}
.xr-initiatives{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.xr-init{border:1px solid var(--xr-line);border-radius:12px;padding:12px 13px;background:#fff;min-width:0}
.xr-init.recommended{border-color:#c9dcfb;background:linear-gradient(#f8fbff,#fff)}
.xr-inithead{display:flex;align-items:flex-start;justify-content:space-between;gap:9px}
.xr-init b{font-size:12.5px;line-height:1.35;color:#16304f}
.xr-init p{margin:7px 0 0;color:var(--xr-muted);font-size:11px;line-height:1.45}
.xr-initmeta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 12px;margin-top:9px;padding-top:9px;border-top:1px solid var(--xr-line2);font-size:10.5px;color:#8496ac}
.xr-initmeta b{display:block;color:#41597a;font-size:10.5px;font-weight:800;margin-top:1px}
.xr-tags{display:flex;gap:5px;flex-wrap:wrap;flex:0 0 auto}
.xr-tag{border-radius:999px;padding:3px 8px;font-size:9px;font-weight:900;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}
.xr-tag.alta{background:#fbe3e0;color:#a93a31}
.xr-tag.media{background:#fbecd4;color:#95610f}
.xr-tag.baja{background:#e9eef5;color:#63758c}
.xr-tag.quick{background:#d9f3ee;color:#0c7d6d}
.xr-tag.horizon{background:#eaf1ff;color:#2158c9}
.xr-tag.neutral{background:#eef2f7;color:#63758c}
.xr-tag.info{background:#e3ecfd;color:#1f56c4}
.xr-tag.gap{background:#fdece9;color:#b04036}
/* Ninguna etiqueta del reporte puede quedar sin explicar: la leyenda va pegada a la sección. */
.xr-legend{margin-top:14px;border:1px solid var(--xr-line);border-radius:12px;padding:12px 14px;background:#fbfcfe;display:grid;gap:7px}
.xr-legend>b{font-size:10px;font-weight:900;letter-spacing:.09em;text-transform:uppercase;color:#8496ac}
.xr-legend span{display:grid;grid-template-columns:auto minmax(0,1fr);gap:9px;align-items:baseline;color:#3d5573;font-size:11px;line-height:1.45}
.xr-legend .xr-tag{font-style:normal;display:inline-block}

/* --- Oportunidades desarrolladas: qué hacer, en qué orden y cómo se comprueba --- */
.xr-opps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.xr-opp{border:1px solid var(--xr-line);border-radius:13px;padding:13px 14px;background:#fff;min-width:0}
.xr-opphead{display:flex;align-items:flex-start;gap:10px}
.xr-opphead>i{flex:0 0 auto;width:24px;height:24px;border-radius:8px;display:grid;place-items:center;background:#eaf1ff;color:var(--xr-blue);font-style:normal;font-size:11px;font-weight:900}
.xr-opphead>div{flex:1;min-width:0}
.xr-opphead b{display:block;font-size:12.5px;line-height:1.35;color:#16304f}
.xr-opphead small{display:block;margin-top:2px;color:#8496ac;font-size:10px;font-weight:800}
.xr-opp>p{margin:9px 0 0;color:var(--xr-muted);font-size:11.5px;line-height:1.5}
.xr-steps-list{margin:10px 0 0;padding-left:18px}
.xr-steps-list li{margin-bottom:5px;color:#3d5573;font-size:11px;line-height:1.45}
.xr-steps-list li:last-child{margin-bottom:0}
.xr-oppmeta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 12px;margin-top:10px;padding-top:9px;border-top:1px solid var(--xr-line2);font-size:10.5px;color:#8496ac}
.xr-oppmeta b{display:block;color:#41597a;font-size:10.5px;font-weight:800;margin-top:1px}

/* --- Riesgos: el riesgo, lo que cuesta, cómo se mitiga y qué lo anuncia --- */
.xr-risks{display:grid;gap:9px}
.xr-risk{border:1px solid var(--xr-line);border-left:3px solid var(--xr-red);border-radius:12px;padding:12px 14px;background:#fff}
.xr-riskhead{display:flex;align-items:flex-start;gap:11px}
.xr-riskhead>i{flex:0 0 auto;font-style:normal;width:34px;padding:5px 0;text-align:center;font-size:9.5px;font-weight:900;color:#7d8fa5;background:#f1f5fa;border-radius:7px}
.xr-riskhead>div{flex:1;min-width:0}
.xr-riskhead b{display:block;font-size:12.5px;line-height:1.4;color:#16304f}
.xr-riskhead .xr-meta{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:5px;color:#8496ac;font-size:10.5px}
.xr-riskhead .xr-meta b{display:inline;color:#5a6d86;font-weight:800;font-size:10.5px}
.xr-riskbody{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:11px}
.xr-riskbody>div{border:1px solid var(--xr-line2);border-radius:10px;padding:9px 11px;background:#fbfcfe;min-width:0}
.xr-riskbody small{display:block;font-size:9px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:#8496ac;margin-bottom:4px}
.xr-riskbody p{margin:0;font-size:11px;line-height:1.45;color:#3d5573}
.xr-riskbody .mit{border-color:#d6efe9;background:#f7fdfb}
.xr-riskbody .mit small{color:#0d8a78}
.xr-riskbody .sign{border-color:#f2e2c6;background:#fffaf1}
.xr-riskbody .sign small{color:#a96f11}

/* --- Trazabilidad --- */
.xr-tracegrid{display:grid;grid-template-columns:170px 170px minmax(0,1fr);gap:14px;align-items:start;margin-bottom:14px}
.xr-donut{border:1px solid var(--xr-line);border-radius:13px;padding:12px;background:#fbfcfe;text-align:center}
.xr-donut svg{width:100%;max-width:120px;height:auto;display:block;margin:0 auto}
.xr-donut b{display:block;margin-top:8px;font-size:11.5px;color:#16304f}
.xr-donut small{display:block;margin-top:3px;color:var(--xr-muted);font-size:10.5px;line-height:1.35}
.xr-tracepeople{border:1px solid var(--xr-line);border-radius:13px;padding:13px 14px;background:#fff;min-width:0}
.xr-tracepeople>b{display:block;font-size:10px;font-weight:900;letter-spacing:.09em;text-transform:uppercase;color:#8496ac;margin-bottom:9px}
.xr-tracepeople .xr-people{margin-top:11px}
/* En el reparto cada persona lleva su color: la inicial va en blanco para leerse sobre cualquiera. */
.xr-tracepeople .xr-person i{color:#fff}
.xr-people{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:9px}
.xr-person{display:flex;align-items:center;gap:10px;border:1px solid var(--xr-line);border-radius:12px;padding:10px 12px;background:#fff;min-width:0}
.xr-person i{flex:0 0 auto;width:33px;height:33px;border-radius:50%;display:grid;place-items:center;background:#e8f0fd;color:#2158c9;font-style:normal;font-size:11px;font-weight:900}
.xr-person div{min-width:0;flex:1}
.xr-person b{display:block;font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.xr-person small{display:block;color:var(--xr-muted);font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.xr-person em{flex:0 0 auto;font-style:normal;font-size:12px;font-weight:900;color:#16304f}
.xr-person em u{text-decoration:none;display:block;font-size:9px;font-weight:800;color:#93a3b6;text-align:right}

.xr-defs{display:grid;grid-template-columns:repeat(auto-fit,minmax(196px,1fr));gap:9px}
.xr-def{border:1px solid var(--xr-line);border-radius:12px;padding:12px;background:#fbfcfe}
.xr-def small{display:block;font-size:9px;font-weight:900;letter-spacing:.09em;text-transform:uppercase;color:#8496ac}
.xr-def b{display:block;margin:4px 0 6px;font-size:12.5px}
.xr-def p{margin:0;color:var(--xr-muted);font-size:11px;line-height:1.45}

.xr-foot{padding:18px 34px 24px;background:var(--xr-soft);border-top:1px solid var(--xr-line);color:#7b8ca2;font-size:10.5px;line-height:1.55}
.xr-foot b{color:#41597a}
.xr-footline{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:11px;padding-top:11px;border-top:1px solid var(--xr-line)}
.xr-empty{border:1px dashed #d4dfec;border-radius:12px;padding:22px;text-align:center;color:#8496ac;font-size:11.5px}

@media(max-width:1180px){
  .xr-split{grid-template-columns:1fr}
  .xr-radar-wrap{max-width:420px;margin:0 auto}
}
@media(max-width:980px){
  .xr-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .xr-stagegrid{grid-template-columns:1fr}
  .xr-speedo-card{max-width:320px;margin:0 auto}
  .xr-stagelevels{grid-template-columns:repeat(3,minmax(0,1fr))}
  .xr-nextfocus{grid-template-columns:1fr}
  .xr-ladder,.xr-cols,.xr-initiatives,.xr-opps,.xr-covermeta,.xr-toc{grid-template-columns:repeat(2,minmax(0,1fr))}
  .xr-extremes,.xr-riskbody{grid-template-columns:1fr}
  .xr-tracegrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .xr-dist-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .xr-dist-body{grid-template-columns:1fr}
  .xr-dist-insight{border-left:0;border-top:1px solid var(--xr-line)}
}
@media(max-width:680px){
  .xr-covermain{grid-template-columns:1fr}
  .xr-cover h1{font-size:26px}
  .xr-section,.xr-cover,.xr-toc,.xr-foot{padding-left:18px;padding-right:18px}
  .xr-ladder,.xr-cols,.xr-initiatives,.xr-opps,.xr-covermeta,.xr-toc,.xr-kpis,.xr-tracegrid{grid-template-columns:1fr}
  .xr-balancekey em{margin-left:0;width:100%}
  .xr-dist-kpis,.xr-dist-levels{grid-template-columns:1fr}
  .xr-dist-level{grid-template-columns:8px minmax(0,1fr) auto auto;align-items:center}
  .xr-dist-dot{grid-row:auto}
  .xr-dist-level em{grid-column:auto;margin-left:8px}
  .xr-dist-scalekey strong{margin-left:0;width:100%}
  .xr-stagelevels{grid-template-columns:repeat(2,minmax(0,1fr))}
  .xr-practice{grid-template-columns:minmax(0,1fr)}
  .xr-practice>div:last-child{text-align:left;justify-items:start}
}

/* --- Impresión / exportación a PDF --- */
@page{size:A4;margin:12mm}
@media print{
  html,body{background:#fff!important}
  .app{display:block!important;min-height:0!important}
  .side,.rail-launcher,.rail-scrim,.top,.toast,.xr-rail,.xr-toc{display:none!important}
  .xr-work{display:block!important}
  .main{grid-column:auto!important;grid-row:auto!important;padding:0!important;margin:0!important;max-width:none!important;width:auto!important}
  .xr-standalone{padding:0;background:#fff}
  .xr-doc{max-width:none;border:0;border-radius:0;box-shadow:none}
  .xr-cover{padding:18mm 12mm;border-radius:0}
  .xr-section{padding:9mm 12mm;border-bottom:1px solid #e6ecf4;break-inside:auto}
  .xr-foot{padding:8mm 12mm}
  .xr-shead,.xr-finding,.xr-kpi,.xr-rung,.xr-card,.xr-dim,.xr-practice,.xr-init,.xr-person,.xr-def,.xr-sub,.xr-lvl,.xr-opp,.xr-risk,.xr-donut,.xr-legend,.xr-speedo-card,.xr-nextfocus{break-inside:avoid}
  /* El título de sección viaja con lo que titula. Un encabezado al pie de una hoja anuncia un
     gráfico que está en la siguiente, y la sección se lee partida en dos. Arrastrar el bloque
     entero gasta papel —el hueco que queda arriba—, y ese es el precio aceptado: que la
     sección no se corte importa más que llenar la hoja. */
  .xr-shead{break-after:avoid}
  /* Y el encabezado tampoco se despega de su primer bloque de contenido. */
  .xr-shead+*{break-before:avoid}
  /* El pie no abre hoja propia: una página con solo la nota legal parece que el documento
     siguiera y se hubiera cortado la impresión. */
  .xr-foot{break-before:avoid}
  .xr-section#xr-dimensiones,.xr-section#xr-hoja-de-ruta,.xr-section#xr-brechas{break-before:page}
  .xr-radar-wrap,.xr-stagegrid,.xr-progresscard,.xr-dist,.xr-tracegrid{break-inside:avoid}
  /* Lo que el Supervisor excluyó no viaja al PDF: la casilla es la decisión, no un adorno de pantalla. */
  .xr-section.xr-off,.xr-toc a.off,.xr-switch,.xr-editnote{display:none!important}
  a{color:inherit;text-decoration:none}
}

/* --- Pantallas angostas: las etiquetas de nivel dejan de forzar el ancho de la fila --- */
@media(max-width:700px){
  .xr-chip{white-space:normal}
  .xr-practice>div:last-child{min-width:0}
  .xr-meta{gap:4px 8px}
}

/* La advertencia de diagnostico parcial. Va dentro de cada seccion y no solo en la portada:
   quien entra por el indice o hojea por la mitad no vio la portada, y las cifras de media
   evaluacion se leen como conclusiones si nadie dice que estan a medias.

   En ambar y en cuerpo pequeno se saltaba. Es una alerta sobre la validez de lo que se esta
   leyendo, asi que se viste como tal: rojo, borde grueso y el titulo por encima del texto. */
.xr-partial{display:flex;align-items:flex-start;gap:11px;margin:0 0 16px;padding:12px 15px;border-radius:11px;
  border:1px solid #f0b4b4;border-left:5px solid #d63b3b;background:#fdf1f1;color:#8d3030}
.xr-partial>i{flex:0 0 auto;font-style:normal;font-size:17px;line-height:1.2;color:#d63b3b}
.xr-partial b{display:block;margin-bottom:2px;color:#a82121;font-size:13px;letter-spacing:.01em;text-transform:uppercase}
.xr-partial small{display:block;color:#8d3030;font-size:12px;line-height:1.55}

/* La burbuja sigue el scroll: un documento de treinta pantallas deja la portada muy atras, y
   es abajo -en la hoja de ruta, en los riesgos- donde una cifra a medias mas se parece a una
   conclusion. En el PDF no aparece: no hay scroll que seguir y el papel ya lleva el aviso de
   cada seccion.

   Es del documento suelto y no de la plataforma: dentro de la app el riel de la derecha ocupa
   esa esquina -ahi la burbuja se le montaba encima- y ese riel ya lleva su propia fila diciendo
   que el diagnostico esta parcial. En el archivo descargado no hay riel.

   Fija al viewport y no pegada al documento: el reporte vive dentro de contenedores con
   overflow recortado -la tarjeta redondeada del stand es uno-, y ahi position:sticky no se
   sostiene; se iba con el scroll justo cuando empezaba a hacer falta. */
.xr-partialflag{display:none}
.xr-standalone .xr-partialflag{position:fixed;right:20px;top:20px;z-index:40;display:flex;align-items:center;gap:9px;
  padding:9px 14px;border-radius:999px;border:1px solid #f0b4b4;
  background:#fff;color:#a82121;box-shadow:0 10px 26px rgba(180,40,40,.22)}
.xr-partialflag>i{font-style:normal;font-size:15px;color:#d63b3b}
.xr-partialflag b{display:block;font-size:11.5px;text-transform:uppercase;letter-spacing:.04em}
.xr-partialflag small{display:block;color:#a2564f;font-size:10.5px}
@media (max-width:900px){.xr-standalone .xr-partialflag{display:none}}
@media print{.xr-standalone .xr-partialflag{display:none}}

/* El aviso del dialogo de envio: un reporte preliminar se puede mandar, pero no sin verlo.
   Comparte el rojo del sello del documento para que la advertencia de la pantalla y la del
   papel se lean como la misma cosa. */
.xr-confirm-warn{display:grid;gap:3px;border:1px solid #f0b4b4;border-left:4px solid #d63b3b;
  background:#fdf1f1;border-radius:12px;padding:9px 11px;color:#8d3030}
.xr-confirm-warn b{color:#a82121;font-size:12px}
.xr-confirm-warn span{font-size:11.5px;line-height:1.5}
