@import url('https://fonts.googleapis.com/css2?family=Source+Sans+3:wght@400;600;700;800;900&display=swap');
:root{--blue:#002D4A;--cyan:#00C4FF;--mid:#007EA7;--paper:#fff;--ink:#16313d;--muted:#667e88;--line:#dce7ec}
*{box-sizing:border-box}html,body{margin:0;background:#e8eef1;color:var(--ink);font-family:"Source Sans 3","Source Sans Pro",Arial,sans-serif}
.report-toolbar{position:sticky;top:0;z-index:50;height:64px;background:#fff;border-bottom:1px solid #d7e1e6;display:flex;justify-content:space-between;align-items:center;padding:0 28px;box-shadow:0 3px 16px rgba(0,45,74,.08)}
.report-toolbar>div{display:flex;align-items:center;gap:18px}.report-toolbar a{color:var(--blue);text-decoration:none}.report-toolbar button{border:0;background:var(--blue);color:#fff;padding:10px 16px;border-radius:9px;font-weight:800;cursor:pointer}.report-toolbar button.secondary{background:#edf3f6;color:var(--blue)}
.pdf-status{position:fixed;z-index:80;inset:0;background:rgba(0,45,74,.8);color:#fff;display:grid;place-items:center;font-size:1.4rem;font-weight:800}
#reportDocument{padding:32px 0 70px}.pdf-page{position:relative;width:216mm;height:279mm;margin:0 auto 28px;background:#fff;overflow:hidden;box-shadow:0 14px 45px rgba(0,45,74,.16);padding:18mm 17mm 15mm;display:flex;flex-direction:column}
.cover-page{padding:18mm;background:linear-gradient(145deg,#002D4A 0%,#003f5d 66%,#007ea7 100%);color:#fff}.cover-top{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgba(255,255,255,.28);padding-bottom:7mm;font-size:10pt;color:#d7e9f0}.buap-word{font-size:19pt;font-weight:900;color:#fff}.cover-content{margin:auto 0}.report-kicker,.page-eyebrow{font-size:9pt;font-weight:900;letter-spacing:.13em;color:var(--mid)}.cover-page .report-kicker{color:#8de9ff}.cover-content h1{font-size:61pt;line-height:.82;letter-spacing:-.065em;margin:6mm 0 8mm}.cover-content h1 em{font-style:normal;color:var(--cyan)}.cover-sub{font-size:20pt;max-width:120mm;line-height:1.18;color:#dcecf2}.cover-period{margin-top:13mm;display:inline-block;border:1px solid rgba(255,255,255,.35);padding:4mm 6mm;border-radius:4mm;font-size:16pt;font-weight:800}.cover-bottom{display:flex;justify-content:space-between;align-items:end;border-top:1px solid rgba(255,255,255,.28);padding-top:7mm;color:#dcecf2}.cover-bottom strong,.cover-bottom span{display:block}.cover-bottom .right{text-align:right}.demo-watermark{position:absolute;right:-32mm;top:30mm;transform:rotate(34deg);background:#ffd84c;color:#3b3100;font-weight:900;letter-spacing:.1em;padding:4mm 38mm;font-size:11pt}
.page-header{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:6mm;margin-bottom:8mm}.page-header h2{font-size:27pt;line-height:1;letter-spacing:-.035em;color:var(--blue);margin:2mm 0 0;max-width:135mm}.page-period{font-size:10pt;color:var(--muted);font-weight:800}.page-lead{font-size:12pt;line-height:1.45;color:var(--muted);margin:0 0 7mm;max-width:150mm}.page-footer{margin-top:auto;border-top:1px solid var(--line);padding-top:4mm;display:flex;justify-content:space-between;color:#7a9099;font-size:8pt}
.summary-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:4mm}.summary-kpi{border-radius:5mm;background:#f3f8fa;padding:6mm;min-height:43mm}.summary-kpi:nth-child(odd){background:var(--blue);color:#fff}.summary-kpi:nth-child(even){background:#eef7fa;color:var(--blue)}.summary-kpi>span{font-size:7pt;text-transform:uppercase;letter-spacing:.1em;font-weight:900;color:var(--mid)}.summary-kpi:nth-child(odd)>span{color:#8de9ff}.summary-kpi strong{display:block;font-size:27pt;letter-spacing:-.05em;color:var(--blue);margin:2mm 0}.summary-kpi:nth-child(odd) strong{color:var(--cyan)}.summary-kpi h3{font-size:11pt;line-height:1.1;margin:0}.summary-kpi small{font-size:8pt;color:#778d96}.summary-kpi:nth-child(odd) small{color:#c7dce4}.executive-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:3mm;margin-top:7mm}.executive-strip div{border-left:3px solid var(--cyan);padding-left:4mm}.executive-strip span,.executive-strip small{display:block;color:#718892;font-size:7.5pt}.executive-strip strong{font-size:17pt;color:var(--blue);display:block;margin:1mm 0}
.report-chart{width:100%}.report-chart.large{height:125mm}.report-chart.donut{height:135mm}.report-chart.area-bars{height:100mm}.growth-list{display:grid;grid-template-columns:repeat(5,1fr);gap:2mm;margin-top:5mm}.growth-list div{background:#f3f8fa;border-radius:3mm;padding:3mm}.growth-list strong{display:block;color:var(--mid);font-size:14pt}.growth-list span{display:block;font-size:7pt;line-height:1.15}.area-distribution{display:grid;grid-template-columns:1.2fr .8fr;gap:8mm;align-items:center}.area-rank{display:grid;gap:2mm}.area-rank div{display:grid;grid-template-columns:10mm 1fr auto;gap:3mm;align-items:center;border-bottom:1px solid var(--line);padding:3mm 0}.area-rank b{color:var(--cyan);background:var(--blue);width:8mm;height:8mm;border-radius:50%;display:grid;place-items:center;font-size:7pt}.area-rank span{font-size:9pt}.area-rank strong{font-size:11pt;color:var(--blue)}
.area-report-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:3mm;margin-bottom:5mm}.area-report-summary div{background:#f2f7f9;border-radius:3mm;padding:4mm}.area-report-summary strong{display:block;color:var(--blue);font-size:20pt}.area-report-summary span{font-size:8pt;color:var(--muted)}.area-top-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:3mm;margin-top:5mm}.area-top-grid article{border:1px solid var(--line);border-radius:3mm;padding:4mm}.area-top-grid span{font-size:7pt;color:var(--mid);font-weight:900;text-transform:uppercase}.area-top-grid strong{display:block;font-size:16pt;color:var(--blue)}.area-top-grid h3{font-size:9pt;margin:1mm 0}.area-top-grid small{color:var(--muted);font-size:7.5pt}.no-data{margin:auto;text-align:center;color:var(--muted)}
.closing-page{background:var(--blue);color:#fff;justify-content:center}.closing-mark{position:absolute;top:18mm;left:17mm;font-weight:900;font-size:15pt}.closing-content p{color:#83dff6;font-size:10pt;text-transform:uppercase;letter-spacing:.12em;font-weight:800}.closing-content h2{font-size:43pt;line-height:.95;letter-spacing:-.05em;max-width:160mm;margin:7mm 0;color:#fff}.closing-content span{font-size:18pt;color:var(--cyan);font-weight:800}.closing-footer{position:absolute;bottom:16mm;left:17mm;color:#bbd4de;font-size:10pt}
@media(max-width:900px){.report-toolbar{position:relative}.pdf-page{width:100%;height:auto;min-height:279mm;margin-bottom:12px}.executive-strip{grid-template-columns:repeat(2,1fr)}}
@media print{body{background:#fff}.report-toolbar,.pdf-status{display:none!important}#reportDocument{padding:0}.pdf-page{box-shadow:none;margin:0;page-break-after:always;break-after:page}@page{size:Letter portrait;margin:0}}

.pdf-status[hidden]{display:none!important}

.report-period-form{display:flex;align-items:end;gap:8px;margin-left:auto}
.report-period-form label{display:flex;flex-direction:column;gap:3px;font-size:11px;font-weight:800;color:#47606c}
.report-period-form select{border:1px solid #ccd9df;background:#fff;border-radius:7px;padding:7px 9px;font:inherit;color:#002D4A}
.report-period-form button{white-space:nowrap}
@media(max-width:1100px){.report-toolbar{height:auto;min-height:64px;padding:10px 18px;flex-wrap:wrap}.report-period-form{order:3;width:100%;margin-left:0}}
@media print{.report-period-form{display:none!important}}
.report-narrative-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:4mm;margin-top:4mm}.report-narrative-grid article{background:#f3f8fa;border-radius:4mm;padding:5mm;border-top:1.5mm solid #00C4FF}.report-narrative-grid span{font-size:7.5pt;text-transform:uppercase;letter-spacing:.08em;font-weight:900;color:#007EA7}.report-narrative-grid p{font-size:11pt;line-height:1.35;color:#16313d;margin:2mm 0 0}.report-narrative-list{margin-top:7mm;border-top:1px solid #dce7ec}.report-narrative-list div{display:grid;grid-template-columns:5mm 1fr;gap:2mm;border-bottom:1px solid #e5edf0;padding:3.5mm 0}.report-narrative-list b{color:#00C4FF;font-size:15pt}.report-narrative-list p{margin:0;font-size:9.5pt;line-height:1.35;color:#4f6872}
.pdf-page-count{max-width:216mm;margin:0 auto 8px;text-align:right;color:#607983;font-size:12px;font-weight:700}.narrative-report-page{display:flex!important;visibility:visible!important;opacity:1!important}.narrative-report-page .page-header{border-bottom-color:#00C4FF}.narrative-report-page .page-eyebrow{color:#007EA7}@media print{.pdf-page-count{display:none!important}}

.narrative-report-page{outline:1px solid rgba(0,196,255,.12)}

.public-report-view{background:#f4f7f8}
.public-report-view #reportDocument{opacity:0;pointer-events:none;position:absolute;left:-100000px;top:0}
.public-pdf-status{display:flex!important;position:fixed;inset:0;z-index:9999;align-items:center;justify-content:center;background:#f4f7f8;color:#002d4a;font-weight:900;font-size:1rem}

/* Sprint 10.6.1 — PDF independiente del dispositivo */
.public-report-view #reportDocument{
  width:216mm!important;
  min-width:216mm!important;
  max-width:216mm!important;
}

.public-report-view #reportDocument > .pdf-page{
  width:216mm!important;
  min-width:216mm!important;
  max-width:216mm!important;
  height:279mm!important;
  min-height:279mm!important;
  max-height:279mm!important;
  box-sizing:border-box!important;
  flex:none!important;
  transform:none!important;
}

/* Neutraliza layouts móviles dentro del documento fuente del PDF. */
.public-report-view #reportDocument .report-narrative-grid{
  grid-template-columns:repeat(2,1fr)!important;
}
.public-report-view #reportDocument .kpi-grid,
.public-report-view #reportDocument .area-kpi-grid{
  grid-template-columns:repeat(3,1fr)!important;
}
.public-report-view #reportDocument .two-col,
.public-report-view #reportDocument .chart-grid{
  grid-template-columns:repeat(2,1fr)!important;
}
.public-report-view #reportDocument .page-header{
  flex-direction:row!important;
  align-items:flex-start!important;
}
.public-report-view #reportDocument *{
  -webkit-text-size-adjust:100%!important;
  text-size-adjust:100%!important;
}

/* Sprint 10.6.4 — participación, barras por área y alternancia ejecutiva */
.area-rank span small{display:block;margin-top:1mm;color:#7b9099;font-size:7pt}
.area-rank strong{min-width:15mm;text-align:right}
.summary-kpi:nth-child(even)>span{color:var(--mid)}
.summary-kpi:nth-child(even) strong{color:var(--blue)}
.summary-kpi:nth-child(even) small{color:#6f8791}

/* Sprint 10.6.4.1 — identificadores consistentes de área */
.area-rank b{background:#002D4A!important;color:#00C4FF!important}

/* Sprint 10.6.4.3 — patrón ajedrez en Resumen Ejecutivo */
.summary-kpi:nth-child(1),
.summary-kpi:nth-child(4),
.summary-kpi:nth-child(5),
.summary-kpi:nth-child(8),
.summary-kpi:nth-child(9),
.summary-kpi:nth-child(12){
  background:var(--blue)!important;
  color:#fff!important;
}
.summary-kpi:nth-child(2),
.summary-kpi:nth-child(3),
.summary-kpi:nth-child(6),
.summary-kpi:nth-child(7),
.summary-kpi:nth-child(10),
.summary-kpi:nth-child(11){
  background:#eef7fa!important;
  color:var(--blue)!important;
}
.summary-kpi:nth-child(1)>span,
.summary-kpi:nth-child(4)>span,
.summary-kpi:nth-child(5)>span,
.summary-kpi:nth-child(8)>span,
.summary-kpi:nth-child(9)>span,
.summary-kpi:nth-child(12)>span{color:#8de9ff!important}
.summary-kpi:nth-child(1) strong,
.summary-kpi:nth-child(4) strong,
.summary-kpi:nth-child(5) strong,
.summary-kpi:nth-child(8) strong,
.summary-kpi:nth-child(9) strong,
.summary-kpi:nth-child(12) strong{color:var(--cyan)!important}
.summary-kpi:nth-child(1) small,
.summary-kpi:nth-child(4) small,
.summary-kpi:nth-child(5) small,
.summary-kpi:nth-child(8) small,
.summary-kpi:nth-child(9) small,
.summary-kpi:nth-child(12) small{color:#c7dce4!important}

.summary-kpi:nth-child(2)>span,
.summary-kpi:nth-child(3)>span,
.summary-kpi:nth-child(6)>span,
.summary-kpi:nth-child(7)>span,
.summary-kpi:nth-child(10)>span,
.summary-kpi:nth-child(11)>span{color:var(--mid)!important}
.summary-kpi:nth-child(2) strong,
.summary-kpi:nth-child(3) strong,
.summary-kpi:nth-child(6) strong,
.summary-kpi:nth-child(7) strong,
.summary-kpi:nth-child(10) strong,
.summary-kpi:nth-child(11) strong{color:var(--blue)!important}
.summary-kpi:nth-child(2) small,
.summary-kpi:nth-child(3) small,
.summary-kpi:nth-child(6) small,
.summary-kpi:nth-child(7) small,
.summary-kpi:nth-child(10) small,
.summary-kpi:nth-child(11) small{color:#6f8791!important}

/* Sprint 10.6.4.5.2 — franja de crecimiento alineada con los 3 KPI estratégicos */
.growth-list--strategic{grid-template-columns:repeat(3,1fr)!important}

/* Sprint 10.6.4.7 — visor PDF estable en Safari/iOS */
.pdf-viewer-shell{
  position:fixed;
  inset:0;
  z-index:9000;
  background:#fff;
}
.pdf-viewer-frame{
  display:block;
  width:100%;
  height:100%;
  border:0;
  background:#fff;
}
.public-report-view.pdf-generating #reportDocument{
  position:absolute!important;
  left:0!important;
  top:0!important;
  opacity:1!important;
  visibility:visible!important;
  pointer-events:none!important;
  z-index:1!important;
  background:#fff!important;
}
.public-report-view.pdf-ready #reportDocument{
  display:none!important;
}
.public-report-view.pdf-ready .public-pdf-status{
  display:none!important;
}

/* Sprint 10.7 — PDFs completos y nombres legibles */
.growth-list--strategic{grid-template-columns:repeat(3,1fr)!important}
.chart-key{display:grid;grid-template-columns:repeat(3,1fr);gap:2mm;margin-top:4mm}
.chart-key div{display:grid;grid-template-columns:auto 1fr;gap:2mm;align-items:start;background:#f3f8fa;border-radius:2.5mm;padding:2.5mm}
.chart-key b{display:inline-grid;place-items:center;min-width:9mm;height:7mm;border-radius:999px;background:var(--blue);color:var(--cyan);font-size:7pt}
.chart-key span{font-size:7.5pt;line-height:1.2;color:#365764;font-weight:700}
.area-chart-key{grid-template-columns:repeat(2,1fr)}
.institutional-detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:4mm}
.institutional-detail-card{min-height:67mm;border:1px solid var(--line);border-radius:4mm;padding:5mm;background:#fff}
.institutional-detail-card:nth-child(4n+1),.institutional-detail-card:nth-child(4n+4){background:#eef7fa}
.institutional-detail-card>span{display:block;color:var(--mid);font-size:7pt;text-transform:uppercase;font-weight:900;letter-spacing:.08em}
.institutional-detail-card>strong{display:block;color:var(--blue);font-size:24pt;line-height:1;margin:2mm 0}
.institutional-detail-card h3{font-size:10pt;line-height:1.15;color:var(--blue);margin:0;min-height:22px}
.institutional-detail-card small{display:block;color:var(--muted);font-size:7.5pt;margin-top:1mm}
.mini-year-bars{height:42px;display:flex;align-items:flex-end;gap:2px;margin-top:4mm;border-bottom:1px solid var(--line)}
.mini-year-bars div{flex:1;height:42px;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:1px}
.mini-year-bars i{display:block;width:65%;min-height:0;background:var(--mid);border-radius:2px 2px 0 0}
.mini-year-bars b{font-size:5.5pt;color:#718892;font-weight:700}
.area-report-page .area-top-grid{grid-template-columns:repeat(2,1fr)}
.area-report-page .area-top-grid article{min-height:29mm}
.report-chart.area-bars{height:86mm}

/* Sprint 10.7.2 — vista pública estable, igual al patrón de Rectoría */
.public-report-view #reportDocument{
  position:static!important;
  left:auto!important;
  top:auto!important;
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
  width:auto!important;
  min-width:0!important;
  max-width:none!important;
  padding:18px 0 40px!important;
}
.public-report-view #reportDocument > .pdf-page{
  margin:0 auto 18px!important;
}
.public-report-toolbar{
  position:sticky;
  top:0;
  z-index:9990;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:12px 18px;
  background:#fff;
  border-bottom:1px solid #dce7ec;
  box-shadow:0 3px 12px rgba(0,45,74,.08);
}
.public-report-toolbar strong,.public-report-toolbar span{display:block}
.public-report-toolbar strong{color:#002d4a}
.public-report-toolbar span{margin-top:2px;color:#728790;font-size:.76rem}
.public-report-toolbar button{
  border:0;border-radius:9px;padding:10px 15px;background:#002d4a;
  color:#fff;font-weight:900;cursor:pointer
}
@media(max-width:700px){
  .public-report-toolbar{align-items:flex-start}
  .public-report-toolbar span{display:none}
  .public-report-toolbar button{font-size:.78rem;padding:9px 11px}
}
@media print{.public-report-toolbar{display:none!important}}

/* Sprint 10.11.6 — seis KPI y narrativa estratégica */
.summary-grid{grid-template-columns:repeat(3,1fr)!important;gap:3.5mm!important}
.summary-kpi{min-height:45mm!important;padding:4.5mm!important}
.summary-kpi:nth-child(4){background:#fff!important}
.summary-kpi:nth-child(5){background:#002d4a!important;color:#fff!important}
.summary-kpi:nth-child(5) span,.summary-kpi:nth-child(5) h3,.summary-kpi:nth-child(5) small{color:#d5e7ee!important}
.summary-kpi:nth-child(5) strong{color:#fff!important}
.summary-kpi:nth-child(6){background:#eaf6f9!important}
.strategic-narrative-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:3mm;margin-top:4mm}
.strategic-narrative-card{border:1px solid var(--line);border-radius:3mm;padding:3.5mm;background:#fff;min-height:43mm}
.strategic-narrative-card:nth-child(4n+1),
.strategic-narrative-card:nth-child(4n+4){background:#eef7fa}
.strategic-narrative-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:2mm}
.strategic-narrative-head b{display:inline-grid;place-items:center;min-width:13mm;height:6.5mm;border-radius:999px;background:var(--blue);color:var(--cyan);font-size:6.6pt}
.strategic-narrative-head span{font-size:6pt;letter-spacing:.08em;font-weight:900;color:#007b9e}
.strategic-narrative-card h3{margin:0 0 1.5mm;color:var(--blue);font-size:9pt;line-height:1.15}
.strategic-narrative-card p{margin:0;color:#4c6671;font-size:7.1pt;line-height:1.35}

/* Sprint 10.11.7 — patrón cromático definitivo del Resumen Ejecutivo
   Fila 1: oscuro / claro / oscuro
   Fila 2: claro / oscuro / claro */
.summary-grid .summary-kpi:nth-child(1),
.summary-grid .summary-kpi:nth-child(3),
.summary-grid .summary-kpi:nth-child(5){
  background:#002d4a!important;
  border-color:#002d4a!important;
  color:#fff!important;
}
.summary-grid .summary-kpi:nth-child(1) span,
.summary-grid .summary-kpi:nth-child(1) h3,
.summary-grid .summary-kpi:nth-child(1) small,
.summary-grid .summary-kpi:nth-child(3) span,
.summary-grid .summary-kpi:nth-child(3) h3,
.summary-grid .summary-kpi:nth-child(3) small,
.summary-grid .summary-kpi:nth-child(5) span,
.summary-grid .summary-kpi:nth-child(5) h3,
.summary-grid .summary-kpi:nth-child(5) small{
  color:#d5e7ee!important;
}
.summary-grid .summary-kpi:nth-child(1) strong,
.summary-grid .summary-kpi:nth-child(3) strong,
.summary-grid .summary-kpi:nth-child(5) strong{
  color:#fff!important;
}

.summary-grid .summary-kpi:nth-child(2),
.summary-grid .summary-kpi:nth-child(4),
.summary-grid .summary-kpi:nth-child(6){
  background:#eaf6f9!important;
  border-color:#c9e3ea!important;
  color:#002d4a!important;
}
.summary-grid .summary-kpi:nth-child(2) span,
.summary-grid .summary-kpi:nth-child(2) h3,
.summary-grid .summary-kpi:nth-child(2) small,
.summary-grid .summary-kpi:nth-child(4) span,
.summary-grid .summary-kpi:nth-child(4) h3,
.summary-grid .summary-kpi:nth-child(4) small,
.summary-grid .summary-kpi:nth-child(6) span,
.summary-grid .summary-kpi:nth-child(6) h3,
.summary-grid .summary-kpi:nth-child(6) small{
  color:#496c7a!important;
}
.summary-grid .summary-kpi:nth-child(2) strong,
.summary-grid .summary-kpi:nth-child(4) strong,
.summary-grid .summary-kpi:nth-child(6) strong{
  color:#006d8f!important;
}

/* Sprint 10.11.8 — contribución institucional por área */
.contribution-legend{display:grid;grid-template-columns:repeat(4,1fr);gap:2mm;margin-top:3mm}
.contribution-legend div{background:#eef7fa;border-radius:2.5mm;padding:2.5mm;text-align:center}
.contribution-legend b{display:block;color:#002d4a;font-size:10pt}
.contribution-legend span{display:block;color:#5b7682;font-size:6.8pt;margin-top:.5mm}
.contribution-detail{display:grid;grid-template-columns:repeat(2,1fr);gap:2.5mm;margin-top:3mm}
.contribution-detail article{border:1px solid var(--line);border-radius:2.5mm;padding:2.5mm;background:#fff}
.contribution-detail article>strong{display:block;color:#002d4a;font-size:7.5pt;margin-bottom:1.5mm}
.dimension-bars{display:grid;gap:1.1mm}
.dimension-bars>span{display:grid;grid-template-columns:21mm 1fr;gap:2mm;align-items:center}
.dimension-bars b{font-size:5.8pt;color:#607985}
.dimension-bars i{display:block;height:2mm;background:#e7eef1;border-radius:99px;overflow:hidden}
.dimension-bars em{display:block;height:100%;background:#007ea7;border-radius:99px}

/* Sprint 10.11.8.2 — compactación de la lista de áreas en sección 04 */
.area-distribution{
  align-items:start!important;
}
.area-rank{
  gap:1.2mm!important;
}
.area-rank>div{
  min-height:0!important;
  padding:1.8mm 0!important;
  gap:2mm!important;
  align-items:center!important;
}
.area-rank>div>b{
  width:7mm!important;
  height:7mm!important;
  min-width:7mm!important;
  font-size:6.4pt!important;
}
.area-rank>div>span{
  font-size:7.1pt!important;
  line-height:1.12!important;
}
.area-rank>div>span small{
  margin-top:.5mm!important;
  font-size:5.8pt!important;
  line-height:1.05!important;
}
.area-rank>div>strong{
  font-size:7.2pt!important;
  white-space:nowrap!important;
}
.contribution-legend{
  margin-top:2.2mm!important;
}
.contribution-detail{
  margin-top:2.2mm!important;
}

/* Sprint 10.11.8.3 — compactación adicional de sección 04 */
.area-distribution{
  margin-top:1.5mm!important;
  margin-bottom:0!important;
}
.area-rank{
  margin-bottom:0!important;
}
.contribution-legend{
  margin-top:1mm!important;
}
.contribution-detail{
  margin-top:1.2mm!important;
  gap:1.8mm!important;
}
.contribution-detail article{
  padding:2mm!important;
}
.contribution-detail article>strong{
  margin-bottom:1mm!important;
}
.dimension-bars{
  gap:.8mm!important;
}
.chart-page .page-footer{
  margin-top:2mm!important;
}

/* Sprint 10.11.8.4 — sección 04 aún más compacta */
.area-distribution{
  margin-top:.6mm!important;
  margin-bottom:-1.5mm!important;
}
.contribution-legend{
  margin-top:0!important;
  transform:translateY(-1mm);
}
.contribution-detail{
  margin-top:.4mm!important;
}

/* Sprint 10.11.8.5 — aprovechamiento vertical máximo en sección 04 */
.chart-page .area-distribution{
  margin-top:0!important;
  margin-bottom:-7mm!important;
}
.chart-page .area-rank{
  gap:.55mm!important;
}
.chart-page .area-rank>div{
  padding:1.15mm 0!important;
}
.chart-page .area-rank>div>b{
  width:6.2mm!important;
  height:6.2mm!important;
  min-width:6.2mm!important;
  font-size:6pt!important;
}
.chart-page .area-rank>div>span{
  font-size:6.8pt!important;
  line-height:1.05!important;
}
.chart-page .area-rank>div>span small{
  margin-top:.2mm!important;
  font-size:5.3pt!important;
  line-height:1!important;
}
.chart-page .area-rank>div>strong{
  font-size:6.8pt!important;
}
.chart-page .contribution-legend{
  margin-top:0!important;
  transform:translateY(-6mm)!important;
  gap:1.5mm!important;
}
.chart-page .contribution-legend div{
  padding:1.6mm 2mm!important;
}
.chart-page .contribution-legend b{
  font-size:8.5pt!important;
}
.chart-page .contribution-legend span{
  font-size:6.1pt!important;
  margin-top:.2mm!important;
}
.chart-page .contribution-detail{
  margin-top:-5mm!important;
  gap:1.2mm!important;
}
.chart-page .contribution-detail article{
  padding:1.5mm 2mm!important;
}
.chart-page .contribution-detail article>strong{
  font-size:6.9pt!important;
  margin-bottom:.6mm!important;
}
.chart-page .dimension-bars{
  gap:.45mm!important;
}
.chart-page .dimension-bars>span{
  grid-template-columns:18mm 1fr!important;
  gap:1.2mm!important;
}
.chart-page .dimension-bars b{
  font-size:5.2pt!important;
}
.chart-page .dimension-bars i{
  height:1.6mm!important;
}

/* Sprint 10.11.8.6 — alinear dona con inicio del listado derecho */
.chart-page .area-distribution{
  align-items:start!important;
}
.chart-page .report-chart.donut{
  margin-top:-6mm!important;
  transform:translateY(-3mm)!important;
}
.chart-page .area-rank{
  margin-top:0!important;
}

/* Sprint 10.11.8.7 — sección 04: dona arriba + todas las áreas */
.chart-page .area-distribution{
  position:relative!important;
  align-items:start!important;
  margin-top:-3mm!important;
  margin-bottom:-10mm!important;
}

/* La dona se sube de forma independiente del listado derecho */
.chart-page .report-chart.donut{
  position:relative!important;
  top:-13mm!important;
  margin-top:0!important;
  transform:none!important;
}

/* El listado comienza en su posición natural, arriba */
.chart-page .area-rank{
  margin-top:0!important;
  align-self:start!important;
}

/* Ponderaciones inmediatamente después del bloque principal */
.chart-page .contribution-legend{
  margin-top:0!important;
  transform:translateY(-9mm)!important;
}

/* Las 8 áreas deben caber; detalle inferior más compacto */
.chart-page .contribution-detail{
  grid-template-columns:repeat(2,1fr)!important;
  margin-top:-8mm!important;
  gap:.8mm 1.2mm!important;
}
.chart-page .contribution-detail article{
  padding:1.2mm 1.7mm!important;
  min-height:0!important;
}
.chart-page .contribution-detail article>strong{
  font-size:6.4pt!important;
  line-height:1.05!important;
  margin-bottom:.35mm!important;
}
.chart-page .dimension-bars{
  gap:.3mm!important;
}
.chart-page .dimension-bars>span{
  grid-template-columns:16.5mm 1fr!important;
  gap:1mm!important;
}
.chart-page .dimension-bars b{
  font-size:4.9pt!important;
  line-height:1!important;
}
.chart-page .dimension-bars i{
  height:1.35mm!important;
}

/* El pie se mantiene al fondo de la página, no antes */
.chart-page .page-footer{
  margin-top:auto!important;
  padding-top:2mm!important;
}

/* Sprint 10.11.8.8 — mayor legibilidad sin perder las 8 áreas */
.chart-page .area-rank>div>span{
  font-size:7.8pt!important;
  line-height:1.08!important;
  font-weight:700!important;
}
.chart-page .area-rank>div>span small{
  margin-top:.25mm!important;
  font-size:6.2pt!important;
  line-height:1.05!important;
  font-weight:500!important;
}
.chart-page .area-rank>div>strong{
  font-size:7.8pt!important;
  font-weight:900!important;
}
.chart-page .area-rank>div>b{
  font-size:6.5pt!important;
}

/* Ponderaciones */
.chart-page .contribution-legend b{
  font-size:9.5pt!important;
}
.chart-page .contribution-legend span{
  font-size:6.8pt!important;
  line-height:1.05!important;
}

/* Detalle inferior de las ocho áreas */
.chart-page .contribution-detail article>strong{
  font-size:7.3pt!important;
  line-height:1.08!important;
  margin-bottom:.45mm!important;
}
.chart-page .dimension-bars b{
  font-size:5.8pt!important;
  line-height:1.05!important;
}
.chart-page .dimension-bars>span{
  grid-template-columns:18mm 1fr!important;
  gap:1mm!important;
}

/* Sprint 10.11.8.9 — notas metodológicas */
.index-method-note{
  margin-top:.8mm;
  padding:1.5mm 2mm;
  border-left:1.2mm solid #00a8c8;
  background:#f2f8fa;
  color:#506c78;
  font-size:5.8pt;
  line-height:1.18;
}
.index-method-note strong{
  color:#002d4a;
  margin-right:1mm;
}
.methodology-note{
  break-before:page;
  page-break-before:always;
  box-sizing:border-box;
  min-height:250mm;
  padding:24mm 18mm 18mm;
  background:#f7fafb;
  color:#4f6873;
  font-size:9pt;
  line-height:1.55;
}
.methodology-note:before{
  content:"NOTA METODOLÓGICA";
  display:block;
  color:#00a8c8;
  font-size:8pt;
  font-weight:900;
  letter-spacing:.12em;
  margin-bottom:4mm;
}
.methodology-note strong{
  display:block;
  color:#002d4a;
  font-size:16pt;
  line-height:1.15;
  margin-bottom:4mm;
}
.methodology-note p{
  max-width:155mm;
  margin:0 0 8mm;
}
.methodology-note small{
  display:block;
  padding-top:4mm;
  border-top:1px solid #d8e4e9;
  color:#6a8089;
  font-size:7.5pt;
}

/* Sprint 10.11.8.10 — nota metodológica dentro de la última página */
.pdf-page .methodology-note{
  break-before:auto!important;
  page-break-before:auto!important;
  min-height:0!important;
  padding:3.5mm 4mm!important;
  margin-top:auto!important;
  margin-bottom:3mm!important;
  border:1px solid rgba(255,255,255,.20)!important;
  border-radius:3mm!important;
  background:rgba(255,255,255,.08)!important;
  color:#dbeaf0!important;
  font-size:7pt!important;
  line-height:1.35!important;
}
.pdf-page .methodology-note:before{
  content:"NOTA METODOLÓGICA"!important;
  display:block!important;
  color:#7fd9ee!important;
  font-size:6.5pt!important;
  font-weight:900!important;
  letter-spacing:.12em!important;
  margin-bottom:1.5mm!important;
}
.pdf-page .methodology-note strong{
  display:block!important;
  color:#ffffff!important;
  font-size:9pt!important;
  line-height:1.15!important;
  margin-bottom:1.5mm!important;
}
.pdf-page .methodology-note p{
  max-width:none!important;
  margin:0 0 2mm!important;
  color:#dbeaf0!important;
}
.pdf-page .methodology-note small{
  display:block!important;
  padding-top:1.5mm!important;
  border-top:1px solid rgba(255,255,255,.16)!important;
  color:#b9d6e0!important;
  font-size:6.2pt!important;
}

/* Sprint 10.11.8.11 — corrección de posiciones en la última página */

/* Separar el lema institucional de la palabra DITCo */
.pdf-page:last-of-type .closing-tagline,
.pdf-page:last-of-type .final-tagline,
.pdf-page:last-of-type .closing-subtitle{
  transform:translateY(4mm)!important;
}

/* Subir claramente la nota para evitar que choque con el nombre de la BUAP */
.pdf-page:last-of-type .methodology-note{
  margin-top:0!important;
  margin-bottom:0!important;
  transform:translateY(-18mm)!important;
}

/* Mantener el pie institucional libre de la nota */
.pdf-page:last-of-type .page-footer{
  position:relative!important;
  z-index:3!important;
}

.pdf-page:last-of-type .final-institutional-tagline{
  display:inline-block!important;
  transform:translateY(4mm)!important;
}

/* Sprint 10.11.8.12 — equilibrio vertical de la última página */

/* El bloque completo queda apenas debajo de DITCo */
.pdf-page.closing-page .closing-content{
  transform:translateY(-10mm)!important;
}

/* Anular el desplazamiento adicional del lema introducido antes */
.pdf-page.closing-page .final-institutional-tagline{
  transform:none!important;
}

/* La nota baja respecto de 10.11.8.11 para dejar aire entre ambos bloques */
.pdf-page.closing-page .methodology-note{
  margin-top:0!important;
  margin-bottom:0!important;
  transform:translateY(-9mm)!important;
}

/* Sprint 10.11.8.13 — mayor separación en la última página */

/* Subir más el bloque institucional, manteniéndolo debajo de DITCo */
.pdf-page.closing-page .closing-content{
  transform:translateY(-16mm)!important;
}

/* Mantener el lema dentro del bloque, sin desplazamiento independiente */
.pdf-page.closing-page .final-institutional-tagline{
  transform:none!important;
}

/* Bajar la nota metodológica para ampliar claramente la separación */
.pdf-page.closing-page .methodology-note{
  margin-top:0!important;
  margin-bottom:0!important;
  transform:translateY(-2mm)!important;
}

/* Sprint 10.11.8.14 — PDF Letter estable e independiente del dispositivo */
.pdf-export-desktop #reportDocument > .pdf-page,
#reportDocument > .pdf-page.pdf-export-letter{
  box-sizing:border-box!important;
  width:816px!important;
  height:1054px!important;
  min-height:1054px!important;
  max-width:816px!important;
  margin:0!important;
  padding:68px 64px 57px!important;
  overflow:hidden!important;
  display:flex!important;
  flex-direction:column!important;
  transform:none!important;
  zoom:1!important;
}

/* Durante la captura se restaura explícitamente la maqueta de escritorio. */
.pdf-export-desktop .summary-grid,
.pdf-export-letter .summary-grid{grid-template-columns:repeat(3,1fr)!important}
.pdf-export-desktop .executive-strip,
.pdf-export-letter .executive-strip{grid-template-columns:repeat(3,1fr)!important}
.pdf-export-desktop .strategic-narrative-grid,
.pdf-export-letter .strategic-narrative-grid{grid-template-columns:repeat(2,1fr)!important}
.pdf-export-desktop .institutional-detail-grid,
.pdf-export-letter .institutional-detail-grid{grid-template-columns:repeat(2,1fr)!important}
.pdf-export-desktop .area-report-page .area-top-grid,
.pdf-export-letter.area-report-page .area-top-grid{grid-template-columns:repeat(2,1fr)!important}
.pdf-export-desktop .area-distribution,
.pdf-export-letter .area-distribution{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr)!important}

/* Evita que reglas responsive reduzcan tipografía al exportar desde móvil. */
.pdf-export-desktop .pdf-page,
.pdf-export-desktop .pdf-page *,
.pdf-export-letter,
.pdf-export-letter *{
  -webkit-text-size-adjust:100%!important;
  text-size-adjust:100%!important;
}

/* Sprint 10.11.8.18 — impresión fiel a la vista previa */
.print-snapshot-container{
  display:none;
}

@media print{
  @page{
    size:Letter portrait;
    margin:0;
  }

  html,
  body.printing-snapshots{
    margin:0!important;
    padding:0!important;
    background:#fff!important;
  }

  body.printing-snapshots .report-toolbar,
  body.printing-snapshots #pdfStatus,
  body.printing-snapshots #pdfPageCount,
  body.printing-snapshots #pdfViewerShell,
  body.printing-snapshots #reportDocument{
    display:none!important;
  }

  body.printing-snapshots .print-snapshot-container{
    display:block!important;
    margin:0!important;
    padding:0!important;
    background:#fff!important;
  }

  body.printing-snapshots .print-snapshot-page{
    display:block!important;
    width:215.9mm!important;
    height:279.4mm!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
    page-break-after:always!important;
    break-after:page!important;
    background:#fff!important;
  }

  body.printing-snapshots .print-snapshot-page:last-child{
    page-break-after:auto!important;
    break-after:auto!important;
  }

  body.printing-snapshots .print-snapshot-page img{
    display:block!important;
    width:215.9mm!important;
    height:279.4mm!important;
    max-width:none!important;
    max-height:none!important;
    object-fit:fill!important;
    margin:0!important;
    padding:0!important;
  }
}

/* Sprint 10.11.8.21 — dimensión económica visible aun sin montos reportados */
.dimension-bars .dimension-na i{
  background:#e3eaed!important;
}
.dimension-bars .dimension-na em{
  width:100%!important;
  background:repeating-linear-gradient(
    135deg,
    #c7d5db 0,
    #c7d5db 2mm,
    #dbe5e9 2mm,
    #dbe5e9 4mm
  )!important;
}
.dimension-bars .dimension-na b{
  color:#71858e!important;
}

/* Sprint 10.11.8.22 — Económico siempre visible como dimensión de participación */
.dimension-bars .dimension-economic i{
  display:block!important;
  height:1.6mm!important;
  background:#b9dce7!important;
  border-radius:99px!important;
  overflow:hidden!important;
  box-shadow:inset 0 0 0 .25mm rgba(0,126,167,.12)!important;
}
.dimension-bars .dimension-economic em{
  display:block!important;
  height:100%!important;
  background:#007ea7!important;
  border-radius:99px!important;
}
.dimension-bars .dimension-economic b{
  color:#607985!important;
}
