/* Slide «mcp»: nodo DalIA MCP, filtro de seguridad, rechazos y capas del repositorio. */

/* El diagrama es lo que más importa de esta slide: columnas 0,75 / 1,5 (como la de fuentes) y un contenedor algo más ancho
   que el resto de las slides, para que el dibujo se vea casi a tamaño natural en lugar de a 0,7. */
@media (min-width: 861px) {
  .slide--mcp .wrap { max-width: 1280px; grid-template-columns: minmax(0, 0.75fr) minmax(0, 1.5fr); }
}

.diagram .mcp-label { fill: var(--accent); font-size: 16px; font-weight: 800; }
.diagram .mcp-box { fill: var(--accent); }
/* «protocolo abierto» en dos líneas dentro de la caja (que mide 100 de ancho): en una sola tocaba los bordes */
.diagram .mcp-proto { fill: var(--accent-ink); font-size: 10.5px; font-weight: 700; opacity: 0.92; }
.diagram .plug {
  fill: none;
  stroke: var(--accent-ink);
  stroke-width: 2.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* Filtro de seguridad: cápsula ámbar OPACA (las flechas pasan por detrás) con escudo */
.diagram .gate {
  fill: var(--amber);
  stroke: var(--amber);
  stroke-opacity: 0.35;
  animation: gate-glow 2.4s ease-in-out infinite;
}
.diagram .shield { fill: none; stroke: #fff; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
@keyframes gate-glow { 0%, 100% { stroke-width: 0; } 50% { stroke-width: 6; } }

/* Rechazos: línea roja hasta el filtro, marca roja y globo con la causa */
.diagram .reject-line { stroke: var(--reject); opacity: 0.9; }
.diagram .reject-dot { fill: var(--reject); }
.diagram .reject-mark circle { fill: var(--reject); }
.diagram .reject-mark path { fill: none; stroke: #fff; stroke-width: 2; stroke-linecap: round; }

.diagram .note-box,
.diagram .note-tail { fill: var(--bg2); stroke: var(--reject); stroke-width: 1.5; }
.diagram .note-seam { stroke: var(--bg2); stroke-width: 3; }
.diagram .note-icon { fill: var(--reject); }
.diagram .note-x { fill: none; stroke: #fff; stroke-width: 2; stroke-linecap: round; }
.diagram .note-title {
  fill: var(--reject);
  text-anchor: start;
  font-size: 9.5px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.diagram .note-reason { text-anchor: start; font-size: 11.5px; }

/* Repositorio */
.diagram .repo { fill: var(--accent-soft); stroke: var(--accent); stroke-width: 2; }
.diagram .repo-title { fill: var(--accent); font-size: 17px; font-weight: 800; }
.diagram .layer-card { fill: var(--bg); stroke: var(--line); stroke-width: 1.5; }
.diagram .layer-label { text-anchor: start; font-size: 13px; }
.diagram .layer-badge-text { fill: #0b1020; font-size: 11px; font-weight: 800; }

.diagram .layer--content   { --c: #6f95ff; }
.diagram .layer--relations { --c: #3ccfbd; }
.diagram .layer--data      { --c: #8b5cf6; }
.diagram .layer--services  { --c: #f0b54a; }
.diagram .layer-bar, .diagram .layer-badge { fill: var(--c); }

/* Búsqueda, poda y entrega de fragmentos dentro de DalIA (views/components/mcp-diagram.php). Un barrido de luz recorre los almacenes y cada uno se enciende al pasarle; los que
   no sirven para la consulta se apagan (poda) y de los demás salen fragmentos dibujados como iconos: una, dos o tres páginas de un documento, un trozo de audio, celdas de un Excel
   o la respuesta de un servicio. */
.diagram .scan-stop { stop-color: var(--accent); stop-opacity: 0.5; }
.diagram .scan-stop--edge { stop-opacity: 0; }
.diagram .layer-glow { pointer-events: none; }
.diagram .frag { filter: drop-shadow(0 1px 2px rgba(15, 23, 42, 0.35)); }
.diagram .frag-page { fill: var(--bg); stroke: var(--accent); stroke-width: 1.4; }
.diagram .frag-mark { fill: #ffe066; }
.diagram .frag-line { fill: none; stroke: var(--muted); stroke-width: 1.4; stroke-linecap: round; }
.diagram .frag-audio { fill: #e0568a; }
.diagram .frag-wave { fill: none; stroke: #fff; stroke-width: 2; stroke-linecap: round; }
.diagram .frag-sheet { fill: #1f9d55; }
.diagram .frag-grid { fill: none; stroke: #fff; stroke-opacity: 0.8; stroke-width: 1.2; }
.diagram .frag-cell { fill: #ffe066; }
.diagram .frag-json { fill: #f0b54a; }
.diagram .frag-json-text { fill: #0b1020; font-size: 10px; font-weight: 800; }
