/* ============================================================
   mmb-oposiciones.css — Sección "Preparación de Oposiciones"
   ------------------------------------------------------------
   Construido sobre los tokens de mmb-tokens.css (colores, espacios,
   radios, tipografía) → theme-aware y coherente con el resto de la
   plataforma. Solo añade lo específico de oposiciones: chrome de la
   sección (topnav/sidebar), portadas, tarjetas de tema, navegación de
   tema y los BLOQUES VISUALES reutilizables (normativa, importante,
   muy preguntado, actualización legislativa, etc.).
   Enlazar DESPUÉS de mmb-tokens.css + mmb-components.css.
   ============================================================ */

:root{
  /* Acento propio de la sección (institucional, sobrio) — no pisa los
     acentos por curso; se usa solo dentro de las páginas de oposiciones. */
  --opo-accent:#3B82F6;          /* azul institucional */
  --opo-accent-2:#22D3EE;        /* cian de apoyo */
  --opo-accent-soft:rgba(59,130,246,0.14);
}

.opo-body{
  font-family:'Inter',system-ui,sans-serif;
  background:
    radial-gradient(circle at 12% 0%, rgba(59,130,246,0.16) 0%, transparent 45%),
    radial-gradient(circle at 95% 100%, rgba(34,211,238,0.10) 0%, transparent 45%),
    var(--mmb-bg,#070B14);
  color:var(--mmb-ink,#F4F7FC);
  line-height:var(--mmb-lh-normal,1.6);
  min-height:100vh; margin:0;
}
.opo-body h1,.opo-body h2,.opo-body h3,.opo-body h4{ font-family:'Space Grotesk',sans-serif; line-height:1.2; margin:0; }

/* ---------- Topnav ---------- */
.opo-topnav{ position:sticky; top:0; z-index:100; display:flex; align-items:center; gap:var(--mmb-space-sm,16px);
  height:56px; padding:0 var(--mmb-space-md,24px); background:var(--mmb-bg-soft,#0D1320);
  border-bottom:1px solid var(--mmb-line,rgba(244,247,252,.12)); }
.opo-logo{ font-family:'Space Grotesk',sans-serif; font-weight:800; font-size:1.1rem; text-decoration:none; white-space:nowrap;
  background:linear-gradient(135deg,#fff,var(--opo-accent-2)); -webkit-background-clip:text; background-clip:text; color:transparent; }
.opo-topnav-right{ margin-left:auto; display:flex; align-items:center; gap:10px; }

.opo-btn{ display:inline-flex; align-items:center; gap:8px; padding:7px 16px; border-radius:8px; font-size:.85rem; font-weight:600;
  cursor:pointer; text-decoration:none; border:1px solid var(--mmb-line,rgba(244,247,252,.12)); color:var(--mmb-ink,#F4F7FC); background:transparent; transition:.15s; }
.opo-btn:hover{ background:var(--mmb-glass-bg,rgba(244,247,252,.05)); }
.opo-btn-primary{ border:none; color:#fff; background:linear-gradient(135deg,var(--opo-accent),var(--opo-accent-2)); }
.opo-btn-primary:hover{ opacity:.9; transform:translateY(-1px); }
.opo-btn-primary:disabled{ opacity:.5; cursor:not-allowed; transform:none; }

/* ---------- Breadcrumbs ---------- */
.opo-breadcrumbs{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; font-size:.82rem; color:var(--mmb-ink-dim,#9FB0C8); margin-bottom:var(--mmb-space-md,24px); }
.opo-breadcrumbs a{ color:var(--mmb-ink-dim,#9FB0C8); text-decoration:none; }
.opo-breadcrumbs a:hover{ color:var(--opo-accent-2); }
.opo-breadcrumbs .sep{ opacity:.5; }
.opo-breadcrumbs .cur{ color:var(--mmb-ink,#F4F7FC); font-weight:600; }

/* ---------- Layout con sidebar (página de tema) ---------- */
.opo-layout{ display:flex; min-height:calc(100vh - 56px); }
.opo-sidebar{ width:290px; flex-shrink:0; background:var(--mmb-bg-soft,#0D1320); border-right:1px solid var(--mmb-line,rgba(244,247,252,.12));
  position:sticky; top:56px; height:calc(100vh - 56px); overflow-y:auto; padding:var(--mmb-space-sm,16px); }
.opo-sidebar-label{ font-size:.7rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--mmb-ink-dim,#9FB0C8); margin:6px 8px 10px; }
.opo-main{ flex:1; min-width:0; padding:var(--mmb-space-lg,32px); }
@media (max-width:960px){ .opo-sidebar{ display:none; } .opo-main{ padding:var(--mmb-space-md,24px) var(--mmb-space-sm,16px); } }

/* ---------- Portada / cabecera de curso (CourseHeader) ---------- */
.opo-header{ position:relative; overflow:hidden; border-radius:var(--mmb-radius-md,18px); padding:var(--mmb-space-lg,32px);
  color:#fff; margin-bottom:var(--mmb-space-md,24px);
  background:linear-gradient(135deg,var(--opo-accent) 0%,#1E3A8A 55%,#0f172a 130%); }
.opo-header::after{ content:'\2696'; position:absolute; right:24px; bottom:-16px; font-size:7rem; opacity:.12; line-height:1; }
.opo-eyebrow{ font-size:.72rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:rgba(255,255,255,.75); margin-bottom:8px; }
.opo-title{ font-size:1.9rem; font-weight:800; margin-bottom:6px; }
.opo-subtitle{ color:rgba(255,255,255,.9); font-size:.98rem; max-width:70ch; }
.opo-header-meta{ display:flex; flex-wrap:wrap; gap:18px; margin-top:16px; }
.opo-header-meta span{ display:inline-flex; align-items:center; gap:6px; font-size:.82rem; color:rgba(255,255,255,.85); }

/* ---------- Ficha de datos (meta grid de la portada de oposición) ---------- */
.opo-meta-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:var(--mmb-space-sm,16px); margin-bottom:var(--mmb-space-md,24px); }
.opo-meta-item{ background:var(--mmb-bg-soft,#0D1320); border:1px solid var(--mmb-line,rgba(244,247,252,.12)); border-radius:var(--mmb-radius-sm,12px); padding:14px 16px; }
.opo-meta-item .k{ font-size:.7rem; text-transform:uppercase; letter-spacing:.06em; color:var(--mmb-ink-faint,#5E6F8C); margin-bottom:4px; }
.opo-meta-item .v{ font-weight:600; color:var(--mmb-ink,#F4F7FC); font-size:.95rem; }
.opo-meta-item .v.pend{ color:var(--mmb-ink-dim,#9FB0C8); font-weight:500; font-style:italic; }

/* ---------- Índice de bloques de la portada ---------- */
.opo-bloques{ display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:12px; margin:var(--mmb-space-md,24px) 0; }
.opo-bloque-link{ display:flex; align-items:center; gap:10px; padding:14px; border-radius:var(--mmb-radius-sm,12px); text-decoration:none;
  background:var(--mmb-bg-soft,#0D1320); border:1px solid var(--mmb-line,rgba(244,247,252,.12)); color:var(--mmb-ink,#F4F7FC); transition:.15s; }
.opo-bloque-link:hover{ border-color:var(--opo-accent); transform:translateY(-2px); }
.opo-bloque-link i{ width:34px; height:34px; border-radius:9px; display:grid; place-items:center; background:var(--opo-accent-soft); color:var(--opo-accent-2); flex-shrink:0; }
.opo-bloque-link .lbl{ font-size:.9rem; font-weight:600; }
.opo-bloque-link .tag{ margin-left:auto; font-size:.62rem; padding:2px 7px; border-radius:99px; background:rgba(255,255,255,.06); color:var(--mmb-ink-dim,#9FB0C8); }

/* ---------- Tarjetas (oposición / tema) ---------- */
.opo-cards{ display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:var(--mmb-space-sm,16px); }
.opo-card{ display:flex; flex-direction:column; gap:10px; padding:var(--mmb-space-md,24px); border-radius:var(--mmb-radius-md,18px); text-decoration:none;
  background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.02)); border:1px solid var(--mmb-line,rgba(244,247,252,.12)); color:var(--mmb-ink,#F4F7FC); transition:.15s; }
.opo-card:hover{ transform:translateY(-4px); border-color:var(--opo-accent); }
.opo-card-icon{ width:48px; height:48px; border-radius:13px; display:grid; place-items:center; font-size:1.3rem; color:#fff; background:linear-gradient(135deg,var(--opo-accent),var(--opo-accent-2)); }
.opo-card-title{ font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:1.05rem; }
.opo-card-sub{ font-size:.82rem; color:var(--mmb-ink-dim,#9FB0C8); }

.opo-tema-card{ display:flex; align-items:center; gap:14px; padding:14px 16px; border-radius:var(--mmb-radius-sm,12px); text-decoration:none;
  background:var(--mmb-bg-soft,#0D1320); border:1px solid var(--mmb-line,rgba(244,247,252,.12)); color:var(--mmb-ink,#F4F7FC); transition:.15s; margin-bottom:10px; }
.opo-tema-card:hover{ border-color:var(--opo-accent); background:var(--opo-accent-soft); }
.opo-tema-num{ width:40px; height:40px; border-radius:11px; flex-shrink:0; display:grid; place-items:center; font-weight:800; font-family:'Space Grotesk',sans-serif;
  color:#fff; background:linear-gradient(135deg,var(--opo-accent),var(--opo-accent-2)); }
.opo-tema-card .t{ flex:1; font-weight:600; font-size:.92rem; }

/* ---------- Estado de tema (TopicStatus) ---------- */
.opo-status{ display:inline-flex; align-items:center; gap:6px; font-size:.72rem; font-weight:700; padding:4px 10px; border-radius:99px; }
.opo-status.pendiente{ background:rgba(159,176,200,.14); color:var(--mmb-ink-dim,#9FB0C8); }
.opo-status.completado{ background:rgba(34,197,94,.16); color:#4ADE80; }
.opo-status.borrador{ background:rgba(251,191,36,.16); color:#FBBF24; }
.opo-status.activo{ background:rgba(34,197,94,.16); color:#4ADE80; }

/* ---------- Progreso (reutiliza patrón .progress-track/fill) ---------- */
.opo-progress{ background:var(--mmb-bg-soft,#0D1320); border:1px solid var(--mmb-line,rgba(244,247,252,.12)); border-radius:var(--mmb-radius-sm,12px); padding:16px 20px; margin-bottom:var(--mmb-space-md,24px); }
.opo-progress-head{ display:flex; justify-content:space-between; align-items:center; margin-bottom:10px; }
.opo-progress-head .pct{ font-family:'Space Grotesk',sans-serif; font-weight:800; font-size:1.3rem; color:var(--opo-accent-2); }
.opo-track{ height:8px; border-radius:99px; background:var(--mmb-bg-elevated,#121A2C); overflow:hidden; }
.opo-fill{ height:100%; border-radius:99px; background:linear-gradient(90deg,var(--opo-accent),var(--opo-accent-2)); transition:width .6s ease; }

/* ---------- Página de tema: pestañas ---------- */
.opo-tema-tabs{ display:flex; flex-wrap:wrap; gap:6px; border-bottom:1px solid var(--mmb-line,rgba(244,247,252,.12)); margin-bottom:var(--mmb-space-md,24px); }
.opo-tab{ display:inline-flex; align-items:center; gap:7px; padding:10px 14px; font-size:.85rem; font-weight:500; color:var(--mmb-ink-dim,#9FB0C8);
  background:none; border:none; border-bottom:2px solid transparent; cursor:pointer; white-space:nowrap; transition:.15s; }
.opo-tab:hover{ color:var(--mmb-ink,#F4F7FC); }
.opo-tab.active{ color:var(--opo-accent-2); border-bottom-color:var(--opo-accent-2); font-weight:600; }
.opo-tab .mini{ font-size:.55rem; padding:1px 6px; border-radius:99px; background:rgba(255,255,255,.07); color:var(--mmb-ink-dim,#9FB0C8); }
.opo-panel{ display:none; }
.opo-panel.active{ display:block; animation:opoFade .2s ease; }
@keyframes opoFade{ from{opacity:0; transform:translateY(6px);} to{opacity:1; transform:translateY(0);} }

/* ---------- Navegación anterior/siguiente ---------- */
.opo-tema-nav{ display:flex; justify-content:space-between; gap:12px; margin-top:var(--mmb-space-lg,32px); padding-top:var(--mmb-space-md,24px); border-top:1px solid var(--mmb-line,rgba(244,247,252,.12)); flex-wrap:wrap; }

/* ---------- BLOQUES VISUALES reutilizables ---------- */
.opo-block{ display:flex; gap:12px; padding:16px 18px; border-radius:var(--mmb-radius-sm,12px); margin:16px 0;
  background:var(--mmb-bg-soft,#0D1320); border:1px solid var(--mmb-line,rgba(244,247,252,.12)); border-left-width:3px; }
.opo-block .ico{ flex-shrink:0; font-size:1.05rem; margin-top:2px; }
.opo-block .body{ min-width:0; }
.opo-block .head{ font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:.9rem; margin-bottom:4px; }
.opo-block .content{ font-size:.9rem; color:var(--mmb-ink-dim,#9FB0C8); }
/* variantes por tipo (borde + icono) */
.opo-block.ley{ border-left-color:#3B82F6; } .opo-block.ley .ico,.opo-block.ley .head{ color:#60A5FA; }
.opo-block.explica{ border-left-color:#22D3EE; } .opo-block.explica .ico,.opo-block.explica .head{ color:#22D3EE; }
.opo-block.resumen{ border-left-color:#A78BFA; } .opo-block.resumen .ico,.opo-block.resumen .head{ color:#A78BFA; }
.opo-block.importante{ border-left-color:#F87171; } .opo-block.importante .ico,.opo-block.importante .head{ color:#F87171; }
.opo-block.preguntado{ border-left-color:#FB923C; } .opo-block.preguntado .ico,.opo-block.preguntado .head{ color:#FB923C; }
.opo-block.consejo{ border-left-color:#22C55E; } .opo-block.consejo .ico,.opo-block.consejo .head{ color:#4ADE80; }
.opo-block.error{ border-left-color:#EF4444; } .opo-block.error .ico,.opo-block.error .head{ color:#F87171; }
.opo-block.update{ border-left-color:#FBBF24; } .opo-block.update .ico,.opo-block.update .head{ color:#FBBF24; }
.opo-block.ejemplo{ border-left-color:#2DD4BF; } .opo-block.ejemplo .ico,.opo-block.ejemplo .head{ color:#2DD4BF; }
.opo-block.recurso{ border-left-color:#94A3B8; } .opo-block.recurso .ico,.opo-block.recurso .head{ color:#CBD5E1; }

/* ---------- Placeholders (vídeo / test / flashcards / contenido pendiente) ---------- */
.opo-placeholder{ display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; gap:8px;
  padding:var(--mmb-space-xl,48px) var(--mmb-space-md,24px); border-radius:var(--mmb-radius-md,18px);
  background:var(--mmb-bg-soft,#0D1320); border:1px dashed var(--mmb-line-strong,rgba(244,247,252,.2)); color:var(--mmb-ink-dim,#9FB0C8); }
.opo-placeholder i{ font-size:2rem; color:var(--opo-accent-2); }
.opo-placeholder .ph-title{ font-family:'Space Grotesk',sans-serif; font-weight:700; color:var(--mmb-ink,#F4F7FC); }
.opo-placeholder .ph-sub{ font-size:.85rem; max-width:44ch; }

/* ---------- Aviso "sección en preparación" ---------- */
.opo-soon{ display:flex; gap:12px; align-items:flex-start; padding:16px 18px; border-radius:var(--mmb-radius-sm,12px); margin-bottom:var(--mmb-space-md,24px);
  background:rgba(251,191,36,0.08); border:1px solid rgba(251,191,36,0.3); color:var(--mmb-ink-dim,#9FB0C8); font-size:.9rem; }
.opo-soon i{ color:#FBBF24; margin-top:2px; }

.opo-section-title{ font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:1.15rem; margin:var(--mmb-space-lg,32px) 0 var(--mmb-space-sm,16px); color:var(--mmb-ink,#F4F7FC); }

/* ---------- Footer ---------- */
.opo-footer{ border-top:1px solid var(--mmb-line,rgba(244,247,252,.12)); padding:var(--mmb-space-lg,32px) var(--mmb-space-md,24px); text-align:center; color:var(--mmb-ink-dim,#9FB0C8); font-size:.85rem; }

@media (max-width:600px){ .opo-title{ font-size:1.5rem; } .opo-header{ padding:var(--mmb-space-md,24px); } }

/* ── Test / Examen del tema (banco de preguntas, corrección en servidor) ── */
.opo-test-quiz{ display:block; }
.opo-test-intro{ display:flex; gap:10px; align-items:flex-start; padding:14px 16px; border-radius:var(--mmb-radius-sm,12px);
  background:var(--opo-accent-soft); border:1px solid var(--opo-accent); color:var(--mmb-ink,#F4F7FC); font-size:.9rem; margin-bottom:var(--mmb-space-md,20px); }
.opo-test-intro i{ color:var(--opo-accent-2); margin-top:2px; }
.opo-test-resumen{ font-size:.85rem; color:var(--mmb-ink-dim,#9FB0C8); margin-bottom:12px; }
.opo-test-aviso{ display:flex; gap:8px; align-items:center; padding:12px 14px; border-radius:var(--mmb-radius-sm,12px); font-size:.88rem;
  background:var(--mmb-glass-bg,rgba(244,247,252,.05)); border:1px solid var(--mmb-line,rgba(244,247,252,.12)); color:var(--mmb-ink-dim,#9FB0C8); margin-top:12px; }
.opo-test-aviso.is-error{ background:rgba(239,68,68,.10); border-color:rgba(239,68,68,.45); color:#FCA5A5; }
.opo-test-aviso i{ margin-top:0; }
.opo-test-list{ display:flex; flex-direction:column; gap:14px; margin-bottom:var(--mmb-space-md,20px); }
.opo-test-item{ padding:16px 18px; border-radius:var(--mmb-radius-sm,12px);
  background:var(--mmb-glass-bg,rgba(244,247,252,.04)); border:1px solid var(--mmb-line,rgba(244,247,252,.12)); }
.opo-test-item .q{ font-size:.95rem; color:var(--mmb-ink,#F4F7FC); margin-bottom:12px; line-height:1.45; }
.opo-test-item .opts{ display:flex; flex-direction:column; gap:8px; }
.opo-test-item .opt{ display:flex; gap:10px; align-items:flex-start; padding:9px 12px; border-radius:9px; cursor:pointer;
  border:1px solid var(--mmb-line,rgba(244,247,252,.12)); background:transparent; transition:background .15s,border-color .15s; font-size:.9rem; color:var(--mmb-ink,#F4F7FC); }
.opo-test-item .opt:hover{ background:var(--mmb-glass-bg,rgba(244,247,252,.05)); }
.opo-test-item .opt input{ margin-top:3px; accent-color:var(--opo-accent); }
.opo-test-item .opt.correct{ border-color:#22C55E; background:rgba(34,197,94,.12); }
.opo-test-item .opt.correct span::after{ content:" ✓"; color:#4ADE80; font-weight:700; }
.opo-test-item .opt.incorrect{ border-color:#EF4444; background:rgba(239,68,68,.12); }
.opo-test-item .opt.incorrect span::after{ content:" ✗"; color:#F87171; font-weight:700; }
.opo-test-item .exp{ margin-top:12px; padding:10px 12px; border-radius:9px; font-size:.85rem; line-height:1.5;
  background:rgba(251,191,36,.08); border-left:3px solid #FBBF24; color:var(--mmb-ink-dim,#CBD5E1); }
.opo-test-item .exp i{ color:#FBBF24; margin-right:4px; }
.opo-test-actions{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.opo-test-score{ font-size:.92rem; padding:8px 14px; border-radius:9px; font-weight:600;
  background:var(--mmb-glass-bg,rgba(244,247,252,.05)); border:1px solid var(--mmb-line,rgba(244,247,252,.12)); color:var(--mmb-ink,#F4F7FC); }
.opo-test-score.is-aprobado{ border-color:#22C55E; background:rgba(34,197,94,.12); }
.opo-test-score.is-suspenso{ border-color:#EF4444; background:rgba(239,68,68,.12); }
.opo-test-score i{ color:var(--opo-accent-2); margin-right:4px; }
.opo-aprobado-tag{ color:#4ADE80; font-weight:700; }
.opo-suspenso-tag{ color:#F87171; font-weight:700; }
