/* ═══════════════════════════════════════════════════════════════
 *  mmb-ciber.css — Curso "Ciberseguridad Avanzada" (CTRD0031)
 *  Sobre el sistema de diseño real (mmb-tokens.css). Acento: seguridad.
 * ═══════════════════════════════════════════════════════════════ */
:root{
  --cib-accent:#10B981; --cib-accent-deep:#059669;
  --cib-soft:rgba(16,185,129,.12); --cib-soft2:rgba(16,185,129,.08);
}
.cib-body{
  margin:0; background:var(--mmb-bg,#070B14); color:var(--mmb-ink,#F4F7FC);
  font-family:'Inter',system-ui,sans-serif; line-height:1.6; min-height:100vh;
  -webkit-font-smoothing:antialiased;
}
.cib-body *{ box-sizing:border-box; }
.cib-body a{ color:inherit; text-decoration:none; }

/* Topnav */
.cib-topnav{ display:flex; align-items:center; gap:10px; padding:12px 20px;
  border-bottom:1px solid var(--mmb-line,rgba(244,247,252,.12)); background:var(--mmb-bg-soft,#0D1320);
  position:sticky; top:0; z-index:30; backdrop-filter:blur(8px); }
.cib-logo{ font-family:'Space Grotesk',sans-serif; font-weight:800; color:var(--cib-accent); }
.cib-topnav-sep{ color:var(--mmb-ink-faint,#67748c); }
.cib-topnav-label{ font-size:.85rem; color:var(--mmb-ink-dim,#9FB0C8); }
.cib-topnav-right{ margin-left:auto; display:flex; gap:8px; }
.cib-btn{ display:inline-flex; align-items:center; gap:.5rem; font-weight:600; font-size:.88rem;
  padding:.5rem .9rem; border-radius:10px; border:1px solid var(--mmb-line,rgba(244,247,252,.15));
  color:var(--mmb-ink,#F4F7FC); background:transparent; cursor:pointer; transition:.16s; white-space:nowrap; }
.cib-btn:hover{ border-color:var(--cib-accent); transform:translateY(-1px); }
.cib-btn-primary{ background:linear-gradient(135deg,var(--cib-accent),var(--cib-accent-deep)); color:#04140d; border:none; }
.cib-btn-primary:hover{ box-shadow:0 8px 22px -10px rgba(16,185,129,.6); }
@media(max-width:560px){ .cib-hide-sm{ display:none; } }

.cib-main{ max-width:1060px; margin:0 auto; padding:28px 20px 80px; }
.cib-footer{ text-align:center; padding:22px; color:var(--mmb-ink-dim,#9FB0C8); font-size:.82rem;
  border-top:1px solid var(--mmb-line,rgba(244,247,252,.12)); }
.cib-footer a{ color:var(--cib-accent); }

/* Acceso denegado */
.cib-lock{ display:flex; gap:14px; align-items:flex-start; background:var(--mmb-bg-soft,#0D1320);
  border:1px solid var(--mmb-line,rgba(244,247,252,.12)); border-left:4px solid var(--cib-accent);
  border-radius:14px; padding:18px 20px; margin:30px 0 18px; }
.cib-lock i{ color:var(--cib-accent); font-size:1.4rem; margin-top:2px; }

/* Hero */
.cib-hero{ background:radial-gradient(700px 300px at 80% -20%, var(--cib-soft), transparent 60%),
  var(--mmb-bg-soft,#0D1320); border:1px solid var(--mmb-line,rgba(244,247,252,.12));
  border-radius:20px; padding:26px; margin-bottom:26px; }
.cib-hero-badges{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:12px; }
.cib-badge{ font-size:.72rem; font-weight:700; padding:4px 10px; border-radius:999px;
  background:var(--mmb-bg,#070B14); border:1px solid var(--mmb-line,rgba(244,247,252,.15)); color:var(--mmb-ink-dim,#9FB0C8); }
.cib-badge-code{ background:var(--cib-soft); border-color:var(--cib-accent); color:var(--cib-accent); }
.cib-badge-official{ background:var(--cib-soft); border-color:var(--cib-accent); color:var(--cib-accent); }
.cib-h1{ font-family:'Space Grotesk',sans-serif; font-size:clamp(1.7rem,4.5vw,2.4rem); font-weight:800;
  margin:.2rem 0 .6rem; display:flex; align-items:center; gap:.6rem; }
.cib-h1 i{ color:var(--cib-accent); }
.cib-lead{ color:var(--mmb-ink-dim,#9FB0C8); max-width:720px; }
.cib-mmb-tag{ display:inline-block; font-size:.68rem; font-weight:700; color:var(--cib-accent);
  background:var(--cib-soft); border:1px solid var(--cib-accent); border-radius:999px; padding:2px 8px; margin-left:6px; }
.cib-stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin:18px 0 4px; }
@media(max-width:560px){ .cib-stats{ grid-template-columns:repeat(2,1fr); } }
.cib-stat{ text-align:center; border:1px solid var(--mmb-line,rgba(244,247,252,.15)); border-radius:12px; padding:12px; background:var(--mmb-bg,#070B14); }
.cib-stat .n{ display:block; font-family:'Space Grotesk',sans-serif; font-size:1.5rem; font-weight:800; color:var(--cib-accent); line-height:1.1; }
.cib-stat .l{ font-size:.74rem; color:var(--mmb-ink-dim,#9FB0C8); }
.cib-progress-wrap{ margin-top:18px; }
.cib-progress-head{ display:flex; justify-content:space-between; font-size:.86rem; font-weight:600; margin-bottom:6px; }
.cib-progress-head i{ color:var(--cib-accent); }
.cib-progress{ height:8px; border-radius:99px; background:var(--mmb-line,rgba(244,247,252,.15)); overflow:hidden; }
.cib-progress > i{ display:block; height:100%; background:linear-gradient(90deg,var(--cib-accent),var(--cib-accent-deep)); border-radius:99px; transition:width .4s; }
.cib-adminnote,.cib-modalidad-nota{ margin-top:12px; font-size:.85rem; color:var(--mmb-ink-dim,#9FB0C8); }
.cib-adminnote i,.cib-modalidad-nota i{ color:var(--cib-accent); margin-right:5px; }
.cib-cta{ display:flex; gap:.6rem; flex-wrap:wrap; margin-top:16px; }

/* Secciones */
.cib-section{ margin:26px 0; }
.cib-h2{ font-family:'Space Grotesk',sans-serif; font-size:1.15rem; font-weight:700; margin:0 0 14px; display:flex; align-items:center; gap:.55rem; }
.cib-h2 i{ color:var(--cib-accent); }
.cib-muted{ color:var(--mmb-ink-dim,#9FB0C8); }
.cib-note{ margin-top:12px; font-size:.85rem; color:var(--mmb-ink-dim,#9FB0C8); background:var(--cib-soft2); border-radius:10px; padding:10px 14px; }
.cib-note i{ color:var(--cib-accent); margin-right:5px; }

/* Rejilla de módulos */
.cib-modgrid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:16px; }
.cib-modcard{ display:block; background:var(--mmb-bg-soft,#0D1320); border:1px solid var(--mmb-line,rgba(244,247,252,.12));
  border-radius:16px; padding:18px; transition:.18s; }
.cib-modcard--link{ cursor:pointer; }
.cib-modcard--link:hover{ border-color:var(--cib-accent); transform:translateY(-3px); box-shadow:0 16px 30px -22px rgba(16,185,129,.5); }
.cib-modcard-top{ display:flex; justify-content:space-between; align-items:center; }
.cib-modnum{ width:42px; height:42px; border-radius:12px; display:grid; place-items:center; background:var(--cib-soft); color:var(--cib-accent); font-size:1.1rem; }
.cib-modhoras{ font-size:.74rem; font-weight:700; color:var(--mmb-ink-dim,#9FB0C8); border:1px solid var(--mmb-line,rgba(244,247,252,.15)); border-radius:999px; padding:3px 9px; }
.cib-modtitle{ font-size:.78rem; text-transform:uppercase; letter-spacing:.08em; color:var(--cib-accent); font-weight:700; margin:12px 0 2px; }
.cib-modname{ font-weight:700; font-size:1rem; margin:0 0 8px; }
.cib-modobj{ font-size:.85rem; color:var(--mmb-ink-dim,#9FB0C8); margin:0 0 14px;
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.cib-modcard-foot{ display:flex; justify-content:space-between; align-items:center; gap:8px; border-top:1px solid var(--mmb-line,rgba(244,247,252,.1)); padding-top:12px; }
.cib-open{ font-size:.82rem; font-weight:600; color:var(--cib-accent); }
.cib-estado{ display:inline-flex; align-items:center; gap:5px; font-size:.76rem; font-weight:600; }
.cib-estado--completado{ color:var(--cib-accent); }
.cib-estado--pendiente{ color:var(--mmb-ink-dim,#9FB0C8); }
.cib-estado--locked{ color:var(--mmb-ink-faint,#67748c); }

/* 2 columnas (metodología / evaluación) */
.cib-2col{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media(max-width:720px){ .cib-2col{ grid-template-columns:1fr; } }
.cib-card{ background:var(--mmb-bg-soft,#0D1320); border:1px solid var(--mmb-line,rgba(244,247,252,.12)); border-radius:16px; padding:18px; }
.cib-card--admin{ border-color:var(--cib-accent); background:var(--cib-soft2); }
.cib-tag-admin{ font-size:.62rem; font-weight:700; color:var(--cib-accent); border:1px solid var(--cib-accent); border-radius:999px; padding:2px 8px; margin-left:8px; }
.cib-flow{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:8px; }
.cib-flow-step{ font-size:.8rem; font-weight:600; background:var(--cib-soft); color:var(--cib-accent); border-radius:999px; padding:6px 12px; }
.cib-flow-arrow{ color:var(--mmb-ink-faint,#67748c); font-size:.7rem; }
.cib-aptobox{ display:flex; align-items:center; gap:10px; margin-top:14px; }
.cib-apto{ font-family:'Space Grotesk',sans-serif; font-weight:800; color:var(--cib-accent); font-size:1.3rem; }
.cib-noapto{ font-family:'Space Grotesk',sans-serif; font-weight:800; color:var(--mmb-ink-faint,#67748c); font-size:1.3rem; }
.cib-slash{ color:var(--mmb-ink-faint,#67748c); font-size:1.3rem; }

/* Requisitos */
.cib-reqlist{ list-style:none; padding:0; margin:8px 0 0; display:grid; grid-template-columns:1fr 1fr; gap:8px; }
@media(max-width:640px){ .cib-reqlist{ grid-template-columns:1fr; } }
.cib-reqlist li{ display:flex; gap:10px; align-items:flex-start; font-size:.9rem; color:var(--mmb-ink-dim,#9FB0C8);
  background:var(--mmb-bg-soft,#0D1320); border:1px solid var(--mmb-line,rgba(244,247,252,.12)); border-radius:10px; padding:10px 12px; }
.cib-reqlist li i{ color:var(--cib-accent); margin-top:3px; }
.cib-legal{ margin-top:26px; font-size:.8rem; color:var(--mmb-ink-faint,#67748c); border-top:1px solid var(--mmb-line,rgba(244,247,252,.1)); padding-top:16px; }
.cib-legal i{ color:var(--cib-accent); }

/* ── Página de módulo ── */
.cib-crumbs{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; font-size:.82rem; color:var(--mmb-ink-dim,#9FB0C8); margin-bottom:18px; }
.cib-crumbs a{ color:var(--cib-accent); }
.cib-crumbs i{ font-size:.6rem; color:var(--mmb-ink-faint,#67748c); }
.cib-mod-layout{ display:grid; grid-template-columns:260px 1fr; gap:22px; align-items:start; }
@media(max-width:860px){ .cib-mod-layout{ grid-template-columns:1fr; } }
.cib-side{ background:var(--mmb-bg-soft,#0D1320); border:1px solid var(--mmb-line,rgba(244,247,252,.12));
  border-radius:16px; padding:12px; position:sticky; top:76px; }
@media(max-width:860px){ .cib-side{ position:static; } }
.cib-side-title{ font-size:.72rem; text-transform:uppercase; letter-spacing:.1em; color:var(--mmb-ink-faint,#67748c); font-weight:700; padding:6px 8px 10px; }
.cib-side-item{ display:flex; align-items:center; gap:10px; padding:10px; border-radius:10px; transition:.15s; }
.cib-side-item:hover{ background:var(--cib-soft2); }
.cib-side-item.is-active{ background:var(--cib-soft); }
.cib-side-ic{ color:var(--cib-accent); flex:none; }
.cib-side-txt{ flex:1; min-width:0; display:flex; flex-direction:column; }
.cib-side-txt b{ font-size:.85rem; }
.cib-side-txt small{ font-size:.74rem; color:var(--mmb-ink-dim,#9FB0C8); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cib-side-h{ font-size:.7rem; color:var(--mmb-ink-faint,#67748c); flex:none; }
.cib-mod-main{ min-width:0; }
.cib-modhead{ margin-bottom:6px; }
.cib-modhead-badges{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:10px; }
.cib-block{ background:var(--mmb-bg-soft,#0D1320); border:1px solid var(--mmb-line,rgba(244,247,252,.12)); border-radius:16px; padding:18px 20px; margin:14px 0; }
.cib-official{ color:var(--mmb-ink); line-height:1.7; }
.cib-ol-official{ margin:0; padding-left:22px; color:var(--mmb-ink-dim,#9FB0C8); line-height:1.7; }
.cib-ol-official li{ margin-bottom:8px; }
.cib-ul-official{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.cib-ul-official li{ display:flex; gap:10px; align-items:flex-start; color:var(--mmb-ink-dim,#9FB0C8); }
.cib-ul-official li i{ color:var(--cib-accent); margin-top:4px; }
.cib-mmb-divider{ display:flex; align-items:center; gap:12px; margin:26px 0 6px; }
.cib-mmb-divider::before,.cib-mmb-divider::after{ content:''; height:1px; flex:1; background:var(--mmb-line,rgba(244,247,252,.15)); }
.cib-mmb-divider span{ font-size:.78rem; font-weight:700; color:var(--cib-accent); display:inline-flex; align-items:center; gap:6px; }
.cib-mmb-intro{ font-size:.85rem; color:var(--mmb-ink-dim,#9FB0C8); margin:2px 0 14px; }
.cib-slots{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
@media(max-width:640px){ .cib-slots{ grid-template-columns:1fr; } }
.cib-slot{ border:1px dashed var(--mmb-line,rgba(244,247,252,.2)); border-radius:14px; padding:16px; background:var(--mmb-bg,#070B14); }
.cib-slot-h{ font-weight:700; font-size:.92rem; display:flex; align-items:center; gap:8px; margin-bottom:6px; }
.cib-slot-h i{ color:var(--cib-accent); }
.cib-empty{ font-size:.84rem; color:var(--mmb-ink-faint,#67748c); margin:0; }
.cib-actbox,.cib-testbox{ border-left:4px solid var(--cib-accent); }
.cib-act-actions{ display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin-top:12px; }
.cib-pill-soon{ display:inline-flex; align-items:center; gap:6px; font-size:.78rem; font-weight:600; color:var(--mmb-ink-dim,#9FB0C8);
  background:var(--mmb-bg,#070B14); border:1px solid var(--mmb-line,rgba(244,247,252,.15)); border-radius:999px; padding:6px 12px; }
.cib-pill-soon i{ color:var(--cib-accent); }
.cib-statebox{ display:flex; flex-wrap:wrap; gap:12px; align-items:center; justify-content:space-between; }
.cib-state-form{ margin:0; }
.cib-modnav{ display:flex; justify-content:space-between; align-items:center; gap:10px; margin-top:18px; }

/* ═══════════════════════════════════════════════════════════════
 *  Fase 2 · Material didáctico MMB, test de autoevaluación y actividad
 * ═══════════════════════════════════════════════════════════════ */
.cib-mmb-resumen{ font-size:1.02rem; color:var(--mmb-ink,#F4F7FC); background:var(--cib-soft2);
  border:1px solid var(--cib-soft); border-radius:12px; padding:14px 16px; margin:4px 0 18px; }
.cib-pdfrow{ margin:0 0 20px; }
.cib-h3{ font-family:'Space Grotesk',sans-serif; font-size:1.15rem; margin:0 0 10px; display:flex; align-items:center; gap:.5rem; }
.cib-h3 i{ color:var(--cib-accent); }
.cib-mmb-seccion{ border-left:3px solid var(--cib-soft); }
.cib-prose{ color:var(--mmb-ink,#F4F7FC); }
.cib-prose p{ margin:.5rem 0; }
.cib-prose ul,.cib-prose ol{ margin:.5rem 0 .5rem 1.1rem; padding:0; }
.cib-prose li{ margin:.35rem 0; }
.cib-prose strong,.cib-prose b{ color:#fff; }
.cib-prose em{ color:var(--cib-accent); font-style:italic; }

/* Puntos clave */
.cib-keybox{ background:var(--cib-soft2); border:1px solid var(--cib-soft); }
.cib-keylist{ list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.cib-keylist li{ display:flex; gap:.6rem; align-items:flex-start; }
.cib-keylist i{ color:var(--cib-accent); margin-top:3px; }

/* Ejercicios */
.cib-ejercicio{ background:var(--mmb-bg,#070B14); border:1px solid var(--mmb-line,rgba(244,247,252,.12));
  border-radius:12px; padding:14px 16px; margin:12px 0; }
.cib-ejercicio-t{ font-weight:700; color:var(--cib-accent); margin-bottom:6px; }

/* Caso práctico */
.cib-casobox{ border-left:4px solid var(--cib-accent); background:var(--mmb-bg-soft,#0D1320); }
.cib-caso-esc{ font-style:normal; }
.cib-caso-label{ font-weight:600; margin:10px 0 4px; }
.cib-caso-preg{ margin:0 0 0 1.1rem; }
.cib-caso-preg li{ margin:.35rem 0; }

/* Glosario */
.cib-glosario{ margin:0; display:grid; gap:10px; }
.cib-gl-item{ display:grid; grid-template-columns:170px 1fr; gap:12px;
  padding-bottom:10px; border-bottom:1px solid var(--mmb-line,rgba(244,247,252,.08)); }
.cib-gl-item dt{ font-weight:700; color:var(--cib-accent); }
.cib-gl-item dd{ margin:0; color:var(--mmb-ink-dim,#9FB0C8); }
@media(max-width:560px){ .cib-gl-item{ grid-template-columns:1fr; gap:2px; } }

/* Actividad evaluable */
.cib-act-enunciado{ background:var(--mmb-bg,#070B14); border:1px solid var(--mmb-line,rgba(244,247,252,.12));
  border-radius:12px; padding:14px 16px; margin:8px 0 14px; }
.cib-act-t{ font-weight:700; color:var(--cib-accent); margin-bottom:6px; }
.cib-act-actions{ display:flex; flex-wrap:wrap; gap:12px; align-items:center; }

/* Test de autoevaluación */
.cib-test-ok{ font-size:.8rem; font-weight:700; color:var(--cib-accent); margin-left:8px; }
.cib-test-start{ margin:8px 0; }
.cib-quiz{ margin-top:8px; display:grid; gap:14px; }
.cib-q{ border:1px solid var(--mmb-line,rgba(244,247,252,.14)); border-radius:12px; padding:14px 16px; margin:0;
  background:var(--mmb-bg,#070B14); }
.cib-q legend{ font-weight:600; padding:0 6px; display:flex; gap:.5rem; align-items:baseline; }
.cib-qn{ display:inline-flex; width:24px; height:24px; flex:0 0 24px; align-items:center; justify-content:center;
  background:var(--cib-soft); color:var(--cib-accent); border-radius:50%; font-size:.8rem; font-weight:800; }
.cib-opt{ display:flex; gap:.6rem; align-items:center; padding:9px 12px; margin:6px 0; border-radius:9px;
  border:1px solid var(--mmb-line,rgba(244,247,252,.1)); cursor:pointer; transition:.14s; }
.cib-opt:hover{ border-color:var(--cib-accent); }
.cib-opt input{ accent-color:var(--cib-accent); }
.cib-q.is-ok{ border-color:rgba(16,185,129,.6); box-shadow:inset 0 0 0 1px rgba(16,185,129,.3); }
.cib-q.is-bad{ border-color:rgba(248,113,113,.55); }
.cib-qfeed{ margin-top:8px; padding:10px 12px; border-radius:9px; background:var(--cib-soft2); font-size:.9rem; }
.cib-sol{ color:var(--cib-accent); }
.cib-exp{ color:var(--mmb-ink-dim,#9FB0C8); margin-top:4px; }
.cib-quiz-actions{ margin-top:4px; }
.cib-test-msg{ padding:11px 14px; border-radius:10px; background:var(--mmb-bg-soft,#0D1320);
  border:1px solid var(--mmb-line,rgba(244,247,252,.14)); margin:10px 0; }
.cib-test-msg.err{ border-color:rgba(248,113,113,.5); color:#FCA5A5; }
.cib-test-res{ display:flex; gap:16px; align-items:center; padding:16px 18px; border-radius:14px; margin-bottom:14px;
  border:1px solid var(--cib-soft); background:var(--cib-soft2); }
.cib-test-res.bad{ border-color:rgba(248,113,113,.4); background:rgba(248,113,113,.08); }
.cib-res-nota{ font-family:'Space Grotesk',sans-serif; font-weight:800; font-size:2.2rem; color:var(--cib-accent); line-height:1; }
.cib-test-res.bad .cib-res-nota{ color:#FCA5A5; }
.cib-res-nota small{ font-size:.9rem; color:var(--mmb-ink-dim,#9FB0C8); font-weight:600; }
.cib-res-txt{ display:flex; flex-direction:column; }
.cib-res-txt span{ color:var(--mmb-ink-dim,#9FB0C8); font-size:.88rem; }

/* Resultado / certificado de aprovechamiento */
.cib-resultbox{ border-left:4px solid var(--cib-accent); }
.cib-resultbox--apto{ background:var(--cib-soft2); border-color:var(--cib-accent); }
.cib-result-head{ display:flex; flex-wrap:wrap; gap:10px; align-items:center; justify-content:space-between; }
.cib-result-badge{ font-size:.82rem; font-weight:700; padding:5px 12px; border-radius:999px;
  border:1px solid var(--mmb-line,rgba(244,247,252,.15)); }
.cib-result-badge--apto{ background:rgba(16,185,129,.16); color:var(--cib-accent); border-color:transparent; }
.cib-result-badge--en_progreso{ background:rgba(148,163,184,.14); color:var(--mmb-ink-dim,#9FB0C8); }
.cib-result-metrics{ display:flex; gap:24px; margin:14px 0; flex-wrap:wrap; }
.cib-rm{ display:flex; flex-direction:column; }
.cib-rm .n{ font-family:'Space Grotesk',sans-serif; font-weight:800; font-size:1.7rem; color:var(--cib-accent); line-height:1; }
.cib-rm .l{ font-size:.82rem; color:var(--mmb-ink-dim,#9FB0C8); }

/* Varios casos prácticos */
.cib-casobox + .cib-casobox{ margin-top:14px; }
.cib-caso-t{ font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:1.05rem; color:#fff;
  display:flex; align-items:center; gap:.55rem; margin-bottom:8px; }
.cib-caso-n{ display:inline-flex; width:26px; height:26px; flex:0 0 26px; align-items:center; justify-content:center;
  background:var(--cib-accent); color:#04140d; border-radius:8px; font-size:.85rem; font-weight:800; }

/* Sub-ítems de contenidos oficiales (listas con jerarquía) */
.cib-li-sub{ margin-left:1.4rem; opacity:.9; }
.cib-li-sub i{ color:var(--mmb-ink-dim,#9FB0C8) !important; }
