/* Ejecutivo en tiempo real */
.pm-ejec-fuente { margin-bottom: 12px; }
/* Seguimiento de proyectos (antes el cuerpo del Dashboard), al final de la página. */
.pm-ejec-seguimiento { margin-top: var(--esp-10); padding-top: var(--esp-6); border-top: 1px solid var(--border); }
.ejv-avisos { border-left: 3px solid var(--amber); padding: 10px 14px; margin-bottom: 12px; }
.ejv-filters { flex-wrap: wrap; }
.ejv-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: var(--esp-3); margin-bottom: var(--esp-4); }
/* .ejv-kpi: superficie y tipografía de la receta KPI compartida (pm.css). */
.ejv-kpi .val { margin: 2px 0; }
.ejv-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: var(--esp-4); margin-bottom: var(--esp-4); }
@media (max-width: 900px) { .ejv-grid2 { grid-template-columns: 1fr; } }
.ejv-chart { height: 260px; position: relative; }
.ejv-chart-lg { height: 320px; position: relative; }
.ejv-vacio { color: var(--muted); padding: 18px; text-align: center; }
.ejv-tabla-wrap { overflow-x: auto; }
.ejv-util-bar { height: 8px; border-radius: var(--radius-full); background: var(--panel-3); overflow: hidden; }
.ejv-util-bar > span { display: block; height: 100%; background: var(--viz-2); }
.ejv-util-bar > span.alto { background: var(--rosa); }
.ejv-drill td.sub { padding-left: 28px; color: var(--muted); }

/* Clic para ver detalle: tarjetas KPI, filas de tablas y gráficos */
.ejv-kpi.ejv-clic, tr.ejv-clic { cursor: pointer; }
.ejv-kpi.ejv-clic:hover { border-color: var(--accent); }
tr.ejv-clic:hover td { background: var(--accent-suave); }
.ejv-kpi .lab, .card-title { position: relative; }

/* Botón ⓘ "¿cómo se calcula?" y su popover */
.ejv-info {
  display: inline-flex; align-items: center; justify-content: center;
  width: 16px; height: 16px; margin-left: 6px; padding: 0; vertical-align: middle;
  border: 1px solid var(--border-fuerte); border-radius: 50%; background: transparent;
  color: var(--muted); font: 700 10px/1 var(--fuente); cursor: help;
}
.ejv-info:hover, .ejv-info:focus-visible { color: var(--accent); border-color: var(--accent); outline: none; }
.ejv-pop {
  position: fixed; z-index: var(--z-menu); padding: var(--esp-3) var(--esp-4);
  background: var(--panel); color: var(--text); border: 1px solid var(--border);
  border-radius: var(--radius-sm); box-shadow: var(--shadow);
  font-size: var(--texto-sm); line-height: 1.45;
}
.ejv-pop b { display: block; margin-bottom: var(--esp-1); font-size: var(--texto-xs); color: var(--muted); text-transform: uppercase; letter-spacing: .04em; }
.ejv-pop p { margin: 0; }

/* Diagnóstico de datos (tarjeta + modal) */
.ejv-diag-head { display: flex; align-items: center; justify-content: space-between; gap: var(--esp-3); flex-wrap: wrap; }
.ejv-diag-lista { margin: var(--esp-2) 0 0; padding-left: 20px; color: var(--muted); font-size: var(--texto-sm); }
.ejv-diag-item { padding: var(--esp-3) 0; border-top: 1px solid var(--border-suave); }
.ejv-diag-item:first-child { border-top: none; }
.ejv-diag-item h4 { margin: 0 0 var(--esp-1); font-size: var(--texto-base); display: flex; align-items: center; gap: var(--esp-2); }
.ejv-diag-item p { margin: 0 0 var(--esp-2); color: var(--muted); font-size: var(--texto-sm); }
.ejv-diag-item .pm-tabla { margin-top: var(--esp-2); }
.ejv-nivel { font-size: var(--texto-xs); padding: 1px 8px; border-radius: 999px; border: 1px solid var(--border-fuerte); color: var(--muted); }
.ejv-nivel.alto { color: var(--red); border-color: currentColor; }
.ejv-nivel.medio { color: var(--amber); border-color: currentColor; }

/* Modal de detalle / diagnóstico */
.pm-modal.ejv-modal { width: min(960px, 94vw); max-height: 90vh; display: flex; flex-direction: column; padding: var(--esp-5); }
.pm-modal.ejv-modal:not([open]) { display: none; }
.ejv-modal-head { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--esp-3); }
.ejv-modal-head h3 { margin: 0; }
.ejv-modal-filtros { font-size: var(--texto-xs); margin: var(--esp-1) 0 var(--esp-3); }
.ejv-modal-bar { display: flex; align-items: center; justify-content: space-between; gap: var(--esp-3); flex-wrap: wrap; margin-bottom: var(--esp-2); font-size: var(--texto-sm); }
.ejv-modal-bar select { height: var(--control-h-sm); padding: 0 8px; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--panel-2); color: var(--text); font: inherit; font-size: var(--texto-sm); }
.ejv-modal-scroll { overflow: auto; flex: 1; min-height: 0; }
.ejv-modal-tabs { margin-bottom: var(--esp-3); }
.ejv-kpis-mini { margin-bottom: var(--esp-3); }
.ejv-kpis-mini .ejv-kpi .val { font-size: var(--texto-md); }
.ejv-modal .pm-tabla td.desc { max-width: 380px; white-space: normal; color: var(--muted); }
.ejv-modal .pm-tabla .num, .ejv-modal .pm-tabla td:first-child { text-align: right; white-space: nowrap; }
.ejv-modal .pm-tabla td:first-child { text-align: left; }

/* Atajos de período en fila (el .filter base es columna) */
.ejv-filters .filter-actions { flex-direction: row; flex-wrap: wrap; align-items: flex-end; gap: var(--esp-2); }
