.zmc-inline-evaluar5{align-items:center;gap:.3rem;height:32px;padding:.3rem .7rem;border:1px solid #38e7ff;border-radius:20px;background:linear-gradient(135deg,#0b1e56,#12406b);color:#eafcff;font-size:.68rem;font-weight:800;cursor:pointer;box-shadow:0 0 15px rgba(56,231,255,.3)}
.zmc-eval5-modal{--e4-cyan:#38e7ff;--e4-magenta:#ff43d7;--e4-violet:#7655ff;background:radial-gradient(circle at 32% 22%,rgba(21,120,196,.28),transparent 38%),rgba(0,2,12,.86);backdrop-filter:blur(14px)}
.zmc-eval5-shell{width:min(1460px,96vw);height:min(900px,94vh);max-width:none;max-height:none;padding:0;overflow:hidden;border:1px solid rgba(72,226,255,.46);background:linear-gradient(145deg,rgba(3,8,30,.98),rgba(5,26,49,.97));box-shadow:0 0 70px rgba(47,160,255,.38),inset 0 0 50px rgba(31,222,255,.05)}
.zmc-eval5-header{display:grid;grid-template-columns:auto 1fr auto auto auto;gap:14px;align-items:center;padding:12px 18px;border-bottom:1px solid rgba(69,224,255,.24);background:linear-gradient(90deg,rgba(14,31,78,.9),rgba(10,52,87,.72))}
.zmc-eval5-paper{padding:6px 12px;border:1px solid rgba(83,214,255,.45);border-radius:999px;background:rgba(6,12,42,.85);color:#bff0ff;font-size:.66rem;font-weight:800;text-decoration:none;white-space:nowrap;box-shadow:0 0 10px rgba(56,231,255,.2)}.zmc-eval5-paper:hover{border-color:var(--e4-magenta);color:#fff;box-shadow:0 0 14px rgba(255,67,215,.4)}.zmc-eval5-paper[hidden]{display:none}
.zmc-eval5-logo{width:112px;height:38px;object-fit:contain;filter:drop-shadow(0 0 8px rgba(58,232,255,.65))}.zmc-eval5-header p{margin:0;color:var(--e4-cyan);font-size:.62rem;font-weight:900;letter-spacing:.16em}.zmc-eval5-header h3{margin:2px 0 0;color:#effdff;font-size:1rem}.zmc-eval5-header>span{color:#91ecff;font-size:.72rem;font-weight:700}
.zmc-eval5-status{margin:18px;color:#b8d5ee}.zmc-eval5-content{display:grid;grid-template-columns:minmax(300px,360px) 1fr;height:calc(100% - 64px)}
.zmc-eval5-controls{overflow:auto;padding:14px;border-right:1px solid rgba(73,218,255,.18);background:rgba(2,9,29,.82)}
.zmc-eval5-mode-row{display:grid;grid-template-columns:1fr auto auto auto;gap:6px;align-items:center;margin-bottom:9px;color:#9ddff1;font-size:.68rem}.zmc-eval5-mode-row button{padding:5px 8px;border:1px solid rgba(83,214,255,.3);border-radius:8px;background:#101941;color:#bbecff;font-size:.63rem;cursor:pointer}.zmc-eval5-mode-row button.is-on{border-color:var(--e4-magenta);background:#421057;color:#fff;box-shadow:0 0 12px rgba(255,67,215,.32)}
.zmc-eval5-slider{display:grid;grid-template-columns:1fr 42px 22px;gap:5px 8px;align-items:center;margin:8px 0;color:#ccedfa;font-size:.68rem}.zmc-eval5-slider input{grid-column:1/-1;width:100%;accent-color:var(--slider-color,var(--e4-cyan))}.zmc-eval5-slider output{text-align:right;color:#fff;font-weight:800}
.zmc-eval5-help{width:20px;height:20px;padding:0;border:1px solid rgba(83,214,255,.45);border-radius:50%;background:rgba(9,20,58,.9);color:#8fe6ff;font-size:.62rem;font-weight:900;cursor:pointer;line-height:1}.zmc-eval5-help:hover,.zmc-eval5-help:focus{border-color:var(--e4-magenta);color:#fff;box-shadow:0 0 9px rgba(255,67,215,.45)}
#zmc-eval5-tip{margin:10px 0;padding:10px 11px;border:1px solid rgba(56,231,255,.35);border-left:3px solid var(--e4-cyan);border-radius:10px;background:rgba(6,20,52,.78);color:#c6e9fa;font-size:.63rem;line-height:1.45}#zmc-eval5-tip strong{display:block;margin-bottom:4px;color:#fff;font-size:.66rem}#zmc-eval5-tip p{margin:3px 0}
#zmc-eval5-ahp,#zmc-eval5-manual{margin:12px 0;padding:9px;border:1px solid rgba(122,84,255,.25);border-radius:10px;background:rgba(13,16,54,.62)}
#zmc-eval5-ahp:not([hidden]){border-color:var(--e4-magenta);box-shadow:0 0 14px rgba(255,67,215,.22)}
.zmc-eval5-derived-note{margin:6px 0;color:#9fc4dd;font-size:.6rem;line-height:1.45}#zmc-eval5-sliders .zmc-eval5-derived-note{padding:6px 8px;border-left:3px solid rgba(83,214,255,.5);background:rgba(9,20,58,.55);border-radius:6px}#zmc-eval5-ahp>b{color:#cfe9ff;font-size:.66rem;margin-right:6px}.zmc-eval5-pair{display:grid;grid-template-columns:1fr auto;gap:4px 8px;align-items:center;margin:8px 0;color:#b9dced;font-size:.62rem}.zmc-eval5-pair output{color:#8fe6ff;font-weight:800;text-align:right}.zmc-eval5-pair input{grid-column:1/-1;width:100%}.zmc-eval5-manual-row{display:grid;grid-template-columns:1fr 95px;gap:8px;align-items:center;margin:7px 0;color:#b9dced;font-size:.62rem}.zmc-eval5-manual-row input{width:100%}
#zmc-eval5-ranking{display:grid;gap:7px;margin-top:12px}.zmc-eval5-rank{display:grid;grid-template-columns:28px 1fr auto;gap:7px;align-items:center;width:100%;padding:8px;border:1px solid rgba(67,215,255,.18);border-radius:10px;background:rgba(10,18,52,.72);color:#dff9ff;text-align:left;cursor:pointer}.zmc-eval5-rank.is-selected{border-color:var(--rank-color,var(--e4-cyan));box-shadow:0 0 17px color-mix(in srgb,var(--rank-color,var(--e4-cyan)) 55%,transparent)}.zmc-eval5-rank.is-hover{filter:brightness(1.35);transform:translateX(2px)}.zmc-eval5-rank small{color:#9bc6dc}.zmc-eval5-rank b{color:var(--rank-color,var(--e4-cyan))}
.zmc-eval5-scene{position:relative;min-width:0;overflow:hidden;background:radial-gradient(circle at 50% 44%,#0e2a52 0,#050720 46%,#01020a 100%)}#zmc-evaluar5-canvas{display:block;width:100%;height:100%;min-height:620px}
.zmc-eval5-delphi3d{position:absolute;inset:0;min-height:620px}.zmc-eval5-delphi3d[hidden]{display:none}.zmc-eval5-delphi3d canvas{display:block;width:100%;height:100%}
.zmc-eval5-view-toggle{position:absolute;right:16px;top:14px;z-index:6;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px;max-width:min(46vw,360px)}
.zmc-eval5-view-toggle button{padding:6px 11px;border:1px solid rgba(83,214,255,.35);border-radius:999px;background:rgba(6,12,42,.82);color:#9de2ff;font-size:.6rem;font-weight:800;letter-spacing:.06em;cursor:pointer;backdrop-filter:blur(6px)}
.zmc-eval5-view-toggle button.is-on{border-color:var(--e4-magenta);color:#fff;background:linear-gradient(135deg,#221457,#55107a);box-shadow:0 0 14px rgba(255,67,215,.4)}
#zmc-eval5-states,#zmc-eval5-axes{position:absolute;inset:0;pointer-events:none}
.zmc-eval5-axis-label{position:absolute;padding:5px 8px;border:1px solid rgba(57,227,255,.55);border-radius:999px;background:rgba(3,9,31,.82);color:#dffcff;font-size:.58rem;font-weight:900;letter-spacing:.07em;box-shadow:0 0 13px rgba(50,221,255,.24);white-space:nowrap}
.zmc-eval5-axis-label.is-face{padding:0;border:0;border-radius:0;background:none;box-shadow:none;writing-mode:vertical-rl;text-orientation:mixed;color:var(--axis-color,#dffcff);font-size:.6rem;letter-spacing:.14em;text-shadow:0 0 9px color-mix(in srgb,var(--axis-color,#38e7ff) 75%,transparent),0 1px 2px rgba(0,0,0,.85)}
.zmc-eval5-state-chip{position:absolute;padding:3px 9px;border:0;border-radius:999px;background:radial-gradient(ellipse at center,rgba(3,9,31,.92) 0%,rgba(3,9,31,.72) 55%,rgba(3,9,31,0) 100%);color:#eafcff;font-size:.57rem;font-weight:800;white-space:nowrap;text-shadow:0 0 6px color-mix(in srgb,var(--chip-color,#38e7ff) 85%,transparent),0 0 14px color-mix(in srgb,var(--chip-color,#38e7ff) 55%,transparent),0 1px 2px #000;transform-origin:50% 50%;pointer-events:none}
.zmc-eval5-state-chip.is-active{color:#fff;font-size:.62rem;text-shadow:0 0 8px var(--chip-color,#38e7ff),0 0 20px color-mix(in srgb,var(--chip-color,#38e7ff) 70%,transparent),0 1px 2px #000}
#zmc-eval5-top{position:absolute;z-index:5;padding:0;border:0;background:none;color:#fff;font-size:.8rem;font-weight:900;letter-spacing:.04em;text-shadow:0 0 12px color-mix(in srgb,var(--label-color,var(--e4-cyan)) 85%,transparent),0 1px 2px rgba(0,0,0,.85);pointer-events:none;white-space:nowrap}
#zmc-eval5-base{position:absolute;z-index:5;max-width:260px;padding:7px 10px;border:1px solid var(--label-color,var(--e4-cyan));border-left:3px solid var(--label-color,var(--e4-cyan));border-radius:10px;background:rgba(4,7,28,.92);color:#cdeeff;font-size:.63rem;line-height:1.4;box-shadow:0 0 14px color-mix(in srgb,var(--label-color,var(--e4-cyan)) 45%,transparent);pointer-events:none;white-space:nowrap}#zmc-eval5-base strong{color:#fff;font-size:.66rem}
#zmc-eval5-active{position:absolute;z-index:5;max-width:250px;padding:7px 10px;border:1px solid var(--e4-magenta);border-radius:10px;background:rgba(4,7,28,.9);color:#fff;font-size:.67rem;font-weight:800;box-shadow:0 0 13px rgba(55,226,255,.42),0 0 25px rgba(255,48,220,.36);pointer-events:none}
#zmc-eval5-detail{position:absolute;left:16px;right:16px;bottom:14px;z-index:4;padding:9px 12px;border:1px solid rgba(85,224,255,.25);border-radius:12px;background:rgba(3,8,28,.8);color:#ccecff;font-size:.67rem;backdrop-filter:blur(9px)}#zmc-eval5-detail strong{color:#fff}.zmc-eval5-hint{position:absolute;left:16px;top:14px;padding:6px 9px;border-radius:999px;background:rgba(3,8,28,.72);color:#8edff2;font-size:.58rem;pointer-events:none}
@media (max-width:850px){.zmc-eval5-view-toggle{right:10px;top:10px}.zmc-eval5-shell{width:100vw;height:100vh;max-height:none;border-radius:0}.zmc-eval5-content{grid-template-columns:1fr;grid-template-rows:minmax(230px,39vh) 1fr}.zmc-eval5-controls{border-right:0;border-bottom:1px solid rgba(73,218,255,.18)}#zmc-evaluar5-canvas{min-height:430px}.zmc-eval5-logo{width:76px}.zmc-eval5-header{grid-template-columns:auto 1fr auto auto}.zmc-eval5-header>span{display:none}}
@media (prefers-reduced-motion:reduce){.zmc-eval5-rank,.zmc-eval5-axis-label{transition:none}}

/* ── Tabla crudo→normalizado + tooltips (vista Radar 2D) ──────────────────── */
/* Panel lateral derecho: no se superpone con el radar (este ocupa el espacio
   que deja). El detail de abajo se acorta en modo radar para no chocar. */
.zmc-eval5-datatable{position:absolute;top:58px;right:14px;bottom:64px;width:300px;z-index:5;display:flex;flex-direction:column;gap:8px;padding:11px;border:1px solid rgba(83,214,255,.3);border-radius:12px;background:rgba(3,8,28,.9);backdrop-filter:blur(10px);box-shadow:0 0 22px rgba(31,222,255,.12)}
.zmc-eval5-datatable[hidden]{display:none}
.zmc-eval5-dt-head{display:grid;grid-template-columns:1fr auto;align-items:center;gap:1px 6px}
.zmc-eval5-dt-head strong,.zmc-eval5-dt-head .zmc-eval5-dt-sub{grid-column:1}
.zmc-eval5-dt-min{grid-column:2;grid-row:1/3;align-self:center;background:transparent;border:1px solid rgba(148,163,184,.35);border-radius:6px;color:#cbd5e1;cursor:pointer;font-family:inherit;font-size:.7rem;line-height:1;padding:2px 7px}
.zmc-eval5-dt-min:hover{border-color:#38e7ff;color:#eafcff}
/* Minimizado: queda solo el encabezado con el botón para desplegar. El panel
   se estira con top+bottom, así que hay que soltar el bottom. El elemento
   lleva la clase de Evaluar4, por eso se lo apunta por id. */
#zmc-eval5-datatable.is-min>*:not(.zmc-eval5-dt-head){display:none}
#zmc-eval5-datatable.is-min{bottom:auto;height:auto;min-height:0;gap:0}
.zmc-eval5-dt-head strong{color:#eafcff;font-size:.72rem}
.zmc-eval5-dt-sub{color:#7fa9c4;font-size:.58rem}
.zmc-eval5-formula{padding:7px 9px;border-left:3px solid var(--e4-cyan);border-radius:8px;background:rgba(9,20,58,.55);cursor:help}
.zmc-eval5-formula-eq{display:block;color:#dffcff;font-size:.58rem;font-weight:700;letter-spacing:.02em}
.zmc-eval5-formula-note{display:block;margin-top:2px;color:#9fc4dd;font-size:.56rem;line-height:1.4}
.zmc-eval5-formula-note b{color:var(--e4-magenta)}
.zmc-eval5-formula-note u{text-decoration-color:var(--e4-magenta);text-underline-offset:2px}
/* Bloque de pesos efectivos por categoría (sliders o AHP). */
.zmc-eval5-weights{display:flex;flex-direction:column;gap:4px}
.zmc-eval5-wmode{color:#9fc4dd;font-size:.56rem;font-weight:700;cursor:help;letter-spacing:.02em}
.zmc-eval5-wchips{display:flex;flex-wrap:wrap;gap:4px}
.zmc-eval5-wchip{display:inline-flex;align-items:center;gap:3px;padding:2px 6px;border:1px solid var(--w-color,var(--e4-cyan));border-radius:99px;background:color-mix(in srgb,var(--w-color,var(--e4-cyan)) 12%,transparent);color:var(--w-color,var(--e4-cyan));font-size:.54rem;font-weight:700;cursor:help;position:relative}
.zmc-eval5-wchip b{color:#fff;font-size:.56rem}
.zmc-eval5-wchip::after{content:"";position:absolute;left:3px;bottom:-3px;height:2px;border-radius:2px;width:var(--w,0%);max-width:calc(100% - 6px);background:var(--w-color,var(--e4-cyan));opacity:.6}
.zmc-eval5-dt-scroll{flex:1 1 auto;overflow:auto;min-height:0}
.zmc-eval5-datatable table{width:100%;border-collapse:collapse;font-size:.58rem}
.zmc-eval5-datatable th{text-align:left;padding:4px 5px;color:#8fd6ef;font-weight:800;letter-spacing:.04em;border-bottom:1px solid rgba(73,218,255,.22);position:sticky;top:0;background:rgba(6,14,40,.97)}
.zmc-eval5-datatable td{padding:4px 5px;border-bottom:1px solid rgba(73,218,255,.1);color:#cdeeff;vertical-align:top}
.zmc-eval5-datatable tr:hover td{background:rgba(56,231,255,.07)}
.zmc-eval5-vname{color:#bfe9ff;cursor:help}
.zmc-eval5-raw{white-space:nowrap;color:#eafcff}
.zmc-eval5-unit{color:#6f93ac;font-size:.52rem}
.zmc-eval5-na{color:#5d6f80;font-style:italic}
.zmc-eval5-norm{position:relative;color:#fff;font-weight:800;min-width:42px}
.zmc-eval5-bar{display:block;margin-top:2px;height:3px;border-radius:2px;background:linear-gradient(90deg,var(--e4-magenta),var(--e4-cyan));width:var(--norm,0%);max-width:100%}
.zmc-eval5-feeds{display:flex;flex-wrap:wrap;gap:3px}
.zmc-eval5-feed{display:inline-block;padding:1px 5px;border:1px solid var(--feed-color,var(--e4-cyan));border-radius:99px;color:var(--feed-color,var(--e4-cyan));font-size:.52rem;font-weight:700;cursor:help;background:color-mix(in srgb,var(--feed-color,var(--e4-cyan)) 10%,transparent)}
.zmc-eval5-dt-foot{margin-top:auto;color:#6f93ac;font-size:.55rem;line-height:1.5;display:flex;flex-wrap:wrap;gap:5px;align-items:center}
.zmc-eval5-manual-tag{padding:2px 6px;border-radius:99px;border:1px solid var(--tag-color,var(--e4-cyan));color:var(--tag-color,var(--e4-cyan));font-weight:700;cursor:help;background:color-mix(in srgb,var(--tag-color,var(--e4-cyan)) 12%,transparent)}

/* En modo radar, el detail inferior se acorta para no chocar con la tabla. */
.zmc-eval5-scene:has(.zmc-eval5-datatable:not([hidden])) #zmc-eval5-detail{right:328px}

/* Tooltip flotante didáctico. */
.zmc-eval5-tooltip{position:absolute;top:0;left:0;z-index:30;max-width:260px;padding:9px 11px;border:1px solid rgba(56,231,255,.55);border-radius:10px;background:rgba(2,6,22,.96);color:#dffcff;font-size:.62rem;line-height:1.5;box-shadow:0 8px 28px rgba(0,0,0,.6),0 0 14px rgba(56,231,255,.2);pointer-events:none}
.zmc-eval5-tooltip[hidden]{display:none}

/* Ajuste manual: subtítulo + marca de valor pisado a mano. */
.zmc-eval5-manual-sub{margin:4px 0 6px;color:#9fc4dd;font-size:.58rem;line-height:1.4}
.zmc-eval5-manual-row input.is-manual{border-color:var(--e4-magenta);box-shadow:0 0 9px rgba(255,67,215,.35)}

/* ── Panel de ranking flotante (Evaluar5): mismo formato que la leyenda del
   Orbe 3D, pero presente en las TRES vistas y minimizable. ─────────────── */
.zmc-eval5-rankpanel{position:absolute;left:10px;top:10px;z-index:5;max-width:min(22rem,calc(100% - 20px));backdrop-filter:blur(6px);background:rgba(7,11,20,.72);border:1px solid rgba(148,163,184,.16);border-radius:8px;padding:.45rem .6rem;font-size:.62rem;line-height:1.4}
.zmc-eval5-rankpanel[hidden]{display:none}
.zmc-eval5-rp-head{display:flex;align-items:center;gap:.5rem}
.zmc-eval5-rp-head .delphi-3d-legend-title{flex:1 1 auto;margin:0}
.zmc-eval5-rp-min{flex:0 0 auto;background:transparent;border:1px solid rgba(148,163,184,.3);border-radius:5px;color:#cbd5e1;cursor:pointer;font-family:inherit;font-size:.62rem;line-height:1;padding:1px 6px}
.zmc-eval5-rp-min:hover{border-color:#38e7ff;color:#eafcff}
.zmc-eval5-rp-body{margin-top:.28rem}
/* Minimizado: solo el encabezado con el botón para desplegar. */
.zmc-eval5-rankpanel.is-min .zmc-eval5-rp-body{display:none}
.zmc-eval5-rankpanel.is-min .zmc-eval5-rp-head .delphi-3d-legend-title{margin-bottom:0}
/* La leyenda nativa del Orbe 3D se oculta SOLO en Evaluar5 (Evaluar4 usa su
   propio holder), para no duplicar el panel de ranking. */
#zmc-evaluar5-delphi3d .delphi-3d-legend{display:none !important}

/* ── Barra de vistas de Evaluar5 en UNA sola fila ────────────────────────────
   La clase base (.zmc-eval4-view-toggle, compartida con Evaluar4) usa
   flex-wrap:wrap + max-width, y con los cuatro botones caía en dos renglones.
   Se acota al modal de Evaluar5 para no tocar el layout de Evaluar4. */
#zmc-evaluar5-modal .zmc-eval4-view-toggle{flex-wrap:nowrap;max-width:none}
#zmc-evaluar5-modal .zmc-eval4-view-toggle button{padding:5px 9px;font-size:.55rem;white-space:nowrap}

/* ── Indicador de carga al abrir Evaluar5 ────────────────────────────────────
   Reusa la caja del overlay del visor (.viewer-loading-overlay*, style.css) y
   le suma el contador de segundos y la línea de avance: abrir el evaluador
   puede tardar porque cada iteración sin resultados en memoria se pide al
   backend de cálculo, y sin señal de progreso parecía colgado. */
#zmc-evaluar5-modal .zmc-eval5-loading{position:absolute;border-radius:inherit}
.zmc-eval5-loading__timer{color:#38e7ff;font-size:1.15rem;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:.04em;line-height:1}
.zmc-eval5-loading__hint{color:#94a3b8;font-size:.66rem;line-height:1.4;max-width:19rem;text-align:center}
/* `.zmc-eval4-content` declara display:grid, que gana sobre el atributo
   [hidden] (display:none de la hoja del navegador): mientras cargaba se veía
   el esqueleto vacío de los controles detrás del indicador. */
#zmc-evaluar5-modal .zmc-eval4-content[hidden]{display:none !important}

/* ══ Evaluar5 en pantallas chicas ═══════════════════════════════════════════
   El modal se diseñó para escritorio (columna de controles + escena al lado).
   En un móvil de 390px eso dejaba el gráfico debajo del pliegue, la barra de
   vistas se salía (medía 407px) y los paneles flotantes se superponían entre
   sí. Acá se reordena: gráfico arriba a media pantalla, controles debajo con
   scroll propio, y los flotantes pasan a ocupar el ancho completo.
   Todo acotado a #zmc-evaluar5-modal para no alterar Evaluar4.  */
.zmc-eval5-btxt{display:inline}
.zmc-eval4-view-toggle .e5-sm{display:none}

@media (max-width:850px){
  /* El alto del contenido se reparte con flex en vez de restarle al header un
     valor fijo (64px), que dejó de ser cierto al compactarlo. */
  #zmc-evaluar5-modal .zmc-eval4-shell{display:flex;flex-direction:column}
  #zmc-evaluar5-modal .zmc-eval4-header{flex:0 0 auto;grid-template-columns:auto 1fr auto auto auto auto;gap:6px;padding:7px 9px}
  #zmc-evaluar5-modal .zmc-eval4-logo{width:50px;height:24px}
  #zmc-evaluar5-modal .zmc-eval4-header p{display:none}
  #zmc-evaluar5-modal .zmc-eval4-header h3{font-size:.7rem;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  #zmc-evaluar5-modal .zmc-eval4-header>span{display:none}
  /* Los botones de documentos e informe quedan como íconos: con sus rótulos
     completos el encabezado se comía un cuarto de la pantalla. */
  #zmc-evaluar5-modal .zmc-eval4-paper{padding:7px 9px;font-size:.9rem;line-height:1}
  #zmc-evaluar5-modal .modal-close{width:32px;height:32px;font-size:1.1rem}

  /* Gráfico arriba (lo que se quiere ver al abrir), controles debajo. */
  #zmc-evaluar5-modal .zmc-eval4-content{display:flex;flex-direction:column;height:auto;flex:1 1 auto;min-height:0}
  #zmc-evaluar5-modal .zmc-eval4-scene{order:1;flex:0 0 auto;height:min(54vh,460px);min-height:270px}
  #zmc-evaluar5-modal .zmc-eval4-controls{order:2;flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;border-right:0;border-top:1px solid rgba(73,218,255,.18);padding:10px 11px 18px}
  /* El contenedor 3D pedía 620px de alto mínimo: en móvil desbordaba la escena. */
  #zmc-evaluar5-modal .zmc-eval4-delphi3d,#zmc-evaluar5-canvas{min-height:0}

  /* Barra de vistas: cuatro botones repartidos a lo ancho, con rótulo corto. */
  #zmc-evaluar5-modal .zmc-eval4-view-toggle{left:6px;right:6px;top:6px;display:grid;grid-template-columns:repeat(4,1fr);gap:4px}
  #zmc-evaluar5-modal .zmc-eval4-view-toggle button{padding:7px 2px;font-size:.56rem;letter-spacing:.02em;text-align:center}

  /* El ranking flotante se oculta: el mismo listado ya está en los controles,
     justo debajo, y sobre 390px de ancho tapaba medio gráfico. */
  /* Datos crudos: hoja inferior a ancho completo en vez de panel lateral. */
  /* Pistas pensadas para mouse (apuntar/arrastrar/rueda). */
  #zmc-evaluar5-modal #zmc-eval5-detail,#zmc-evaluar5-modal .zmc-eval4-hint{display:none}
  /* Etiquetas flotantes de la escena, acotadas al ancho del teléfono. */
  #zmc-eval5-base,#zmc-eval5-active{max-width:min(70vw,230px);white-space:normal;font-size:.6rem}

  /* Controles: más aire vertical para el pulgar, sin agrandar el bloque. */
  #zmc-evaluar5-modal .zmc-eval4-slider{margin:11px 0;font-size:.72rem}
  #zmc-evaluar5-modal .zmc-eval4-slider input{height:26px}
  #zmc-evaluar5-modal .zmc-eval4-help{width:24px;height:24px}
  #zmc-evaluar5-modal .zmc-eval4-mode-row{font-size:.72rem}
  #zmc-evaluar5-modal .zmc-eval4-mode-row button{padding:7px 10px;font-size:.66rem}
}

/* Teléfono acostado (poca altura, ancho de sobra): apilar dejaría el gráfico
   en una franja de 210px. Ahí conviene volver a las dos columnas, con la de
   controles angosta y con scroll. */
@media (max-width:850px) and (max-height:520px) and (min-width:640px){
  #zmc-evaluar5-modal .zmc-eval4-content{display:grid;grid-template-columns:minmax(200px,32%) 1fr;grid-template-rows:1fr}
  #zmc-evaluar5-modal .zmc-eval4-scene,#zmc-evaluar5-modal .zmc-eval4-controls{order:0}
  #zmc-evaluar5-modal .zmc-eval4-scene{height:auto;min-height:0}
  #zmc-evaluar5-modal .zmc-eval4-controls{border-top:0;border-right:1px solid rgba(73,218,255,.18);padding:8px 9px 14px}
  #zmc-evaluar5-modal .zmc-eval4-slider{margin:7px 0}
  /* Sobre 210-260px de alto útil, los flotantes tapan el gráfico entero. */
  #zmc-evaluar5-modal .zmc-eval5-rankpanel{display:none}
  #zmc-eval5-datatable{top:auto;left:6px;right:6px;bottom:6px;width:auto;max-height:58%;font-size:.6rem}
}

/* Teléfono: rótulos abreviados y paneles a ancho completo. Arriba de este
   corte (tablets) entran los textos largos y el panel lateral de datos. */
@media (max-width:620px){
  #zmc-evaluar5-modal .zmc-eval5-btxt{display:none}
  #zmc-evaluar5-modal .zmc-eval4-paper{padding:7px 9px;font-size:.9rem;line-height:1}
  #zmc-evaluar5-modal .zmc-eval4-view-toggle .e5-lg{display:none}
  #zmc-evaluar5-modal .zmc-eval4-view-toggle .e5-sm{display:inline}
  #zmc-evaluar5-modal .zmc-eval5-rankpanel{display:none}
  #zmc-eval5-datatable{top:auto;left:6px;right:6px;bottom:6px;width:auto;max-height:56%;font-size:.62rem}
  #zmc-eval5-datatable.is-min{max-height:none}
}

/* Teléfonos angostos: el rótulo corto de la barra de vistas sigue apretando. */
@media (max-width:400px){
  #zmc-evaluar5-modal .zmc-eval4-view-toggle button{font-size:.52rem;padding:7px 1px}
  #zmc-evaluar5-modal .zmc-eval4-header h3{font-size:.64rem}
}

/* La pista de navegación del Orbe 3D describe gestos de mouse (apuntar,
   arrastrar, rueda): en un teléfono no aplica y se cruzaba con el gráfico. */
@media (max-width:850px){
  #zmc-evaluar5-delphi3d .delphi-3d-hint{display:none}
}

/* ── Ventana de resultados (instancia de demostración) ──────────────────────
   El informe del evaluador se muestra acá en vez de enviarse por correo. */
.eval5-informe{position:fixed;inset:0;z-index:10020;display:none;align-items:center;justify-content:center;padding:16px;background:rgba(3,7,20,.82);backdrop-filter:blur(6px)}
.eval5-informe.is-open{display:flex}
.eval5-informe__caja{display:flex;flex-direction:column;width:min(920px,100%);height:min(88vh,1000px);border:1px solid rgba(83,214,255,.35);border-radius:14px;background:#fff;overflow:hidden;box-shadow:0 26px 80px rgba(0,0,0,.55)}
.eval5-informe__barra{display:flex;align-items:center;gap:10px;padding:9px 12px;background:linear-gradient(90deg,#0b3a5b,#12406b);color:#eafcff;font-size:.82rem}
.eval5-informe__barra strong{letter-spacing:.04em}
.eval5-informe__nota{flex:1 1 auto;color:#9fd8f5;font-size:.68rem;font-style:italic}
.eval5-informe__cerrar{border:1px solid rgba(147,224,255,.5);border-radius:999px;background:rgba(6,12,42,.6);color:#cdeeff;font-family:inherit;font-size:.75rem;font-weight:700;cursor:pointer;padding:5px 12px}
.eval5-informe__cerrar{padding:2px 10px;font-size:1.1rem;line-height:1.2}
.eval5-informe__cerrar:hover{border-color:#ff43d7;color:#fff}
.eval5-informe__cuerpo{flex:1 1 auto;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:18px 20px;background:#fff;color:#0f172a}
@media (max-width:620px){
  .eval5-informe{padding:0}
  .eval5-informe__caja{width:100%;height:100%;border-radius:0}
  .eval5-informe__cuerpo{padding:12px 13px}
}

/* El encabezado es una grilla con columnas fijas; al sumar los botones de los
   dos documentos, la × se caía a un segundo renglón y quedaba en el medio.
   Se la fija a la esquina y se reserva ese espacio en el encabezado. */
#zmc-evaluar5-modal .zmc-eval4-shell{position:relative}
#zmc-evaluar5-modal .modal-close{position:absolute;top:9px;right:12px;z-index:12;margin:0}
#zmc-evaluar5-modal .zmc-eval4-header{padding-right:58px;grid-template-columns:auto 1fr auto auto auto auto}
@media (max-width:850px){
  #zmc-evaluar5-modal .zmc-eval4-header{padding-right:46px}
  #zmc-evaluar5-modal .modal-close{top:7px;right:8px}
}

/* ── Jerarquía de los modos ──────────────────────────────────────────────────
   Los cuatro botones median lo mismo, así que las dos vías —la simple y la
   avanzada— pesaban igual y el alumno no tenía por dónde empezar. Sliders y
   Suma son el camino recomendado: van grandes. AHP y TOPSIS quedan chicos y
   callados, disponibles para quien los busque.

   Se apunta por el ATRIBUTO, no por .is-on: si dependiera del estado, elegir
   AHP lo agrandaría y el tamaño dejaría de decir cuál conviene. El id va en el
   selector para ganarle a la regla de móvil, que iguala a los cuatro. */
#zmc-evaluar5-modal .zmc-eval4-mode-row button[data-eval5-weight-mode="sliders"],
#zmc-evaluar5-modal .zmc-eval4-mode-row button[data-eval5-rank-mode="suma"]{
  padding:9px 18px;
  font-size:.85rem;
  font-weight:700;
  letter-spacing:.01em;
  border-radius:10px;
}
#zmc-evaluar5-modal .zmc-eval4-mode-row button[data-eval5-weight-mode="ahp"],
#zmc-evaluar5-modal .zmc-eval4-mode-row button[data-eval5-rank-mode="topsis"]{
  padding:4px 9px;
  font-size:.58rem;
  font-weight:500;
  opacity:.72;
  align-self:center;
}
#zmc-evaluar5-modal .zmc-eval4-mode-row button[data-eval5-weight-mode="ahp"]:hover,
#zmc-evaluar5-modal .zmc-eval4-mode-row button[data-eval5-rank-mode="topsis"]:hover,
#zmc-evaluar5-modal .zmc-eval4-mode-row button[data-eval5-weight-mode="ahp"].is-on,
#zmc-evaluar5-modal .zmc-eval4-mode-row button[data-eval5-rank-mode="topsis"].is-on{
  opacity:1;
}

/* ── Encabezado y botón de cerrar ────────────────────────────────────────────
   La grilla tenía cinco columnas fijas y el encabezado llegó a ocho hijos —el
   logo, el título, el método y ya tres botones de documento—, así que los
   últimos se iban a una segunda fila invisible. Con dos columnas fijas y el
   resto automáticas, entra la cantidad que sea: los botones de documento
   aparecen y desaparecen según haya archivo publicado. */
#zmc-evaluar5-modal .zmc-eval4-header{
  grid-template-columns:auto 1fr;
  grid-auto-flow:column;
  grid-auto-columns:auto;
  padding-right:56px;            /* el espacio de la × , que va absoluta */
}

/* La × heredaba un color casi negro sobre un encabezado oscuro: estaba, pero no
   se veía. Es la única salida de una ventana a pantalla completa, así que tiene
   que leerse sin buscarla. */
#zmc-evaluar5-modal .modal-close{
  position:absolute;
  top:10px;
  right:12px;
  z-index:14;
  display:flex;
  align-items:center;
  justify-content:center;
  width:34px;
  height:34px;
  padding:0;
  margin:0;
  border:1px solid rgba(83,214,255,.45);
  border-radius:9px;
  background:rgba(10,25,60,.9);
  color:#bbecff;
  font-size:1.35rem;
  line-height:1;
  cursor:pointer;
  transition:background .15s ease,border-color .15s ease,color .15s ease;
}
#zmc-evaluar5-modal .modal-close:hover{
  background:#5a1030;
  border-color:#ff6b9d;
  color:#fff;
}
#zmc-evaluar5-modal .modal-close:focus-visible{
  outline:2px solid #7cc4ff;
  outline-offset:2px;
}
@media (prefers-reduced-motion: reduce){
  #zmc-evaluar5-modal .modal-close{transition:none}
}
