/* ==========================================================================
   Componentes propios de la plataforma académica (multi-curso)
   ========================================================================== */

.banda-papel2{background:var(--papel-2);padding-block:clamp(36px,5vw,64px)}
.rejilla-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(18px,3vw,28px)}
.rejilla-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2.5vw,24px)}
.rejilla-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(14px,2vw,20px)}
@media (max-width:960px){.rejilla-3,.rejilla-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){.rejilla-2,.rejilla-3,.rejilla-4{grid-template-columns:1fr}}

.insignia{display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border-radius:999px;
          font-size:.76rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
          background:var(--papel-2);color:var(--texto-medio);border:1px solid var(--borde)}
.insignia-oro{background:var(--dorado-lav);color:var(--dorado-osc);border-color:rgba(168,125,28,.3)}
.insignia-marino{background:var(--marino);color:var(--dorado-claro);border-color:var(--marino)}
.insignia-exito{background:var(--exito-lav);color:var(--exito);border-color:rgba(18,122,82,.25)}
.insignia-alto{background:var(--alto-lav);color:var(--alto);border-color:rgba(140,47,29,.25)}

/* ---------- Tarjeta de pregunta y entrada de respuestas ---------- */
.pregunta-card{background:#fff;border:1px solid var(--borde);border-radius:var(--r-md);
               padding:clamp(20px,3vw,28px);display:grid;gap:18px}
.pregunta-cab{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
              border-bottom:1px solid var(--borde);padding-bottom:12px}
.pregunta-enunciado{font-size:1.06rem;line-height:1.7;color:var(--texto)}
.pregunta-enunciado .katex-display{margin:12px 0;overflow-x:auto}

.entrada-fila{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.entrada-fila input[type="text"],
.entrada-fila input[type="number"]{max-width:260px;font-variant-numeric:tabular-nums}
.unidad-etq{font-weight:600;color:var(--texto-medio);font-size:.96rem}

/* ---------- Cuadrícula de matriz (Álgebra Lineal / Multivariable) ---------- */
.matriz-wrap{display:inline-flex;align-items:stretch;gap:8px;padding:12px 14px;
             background:var(--papel);border-radius:var(--r-sm);border:1px solid var(--borde)}
.matriz-corchete{width:10px;border:2.5px solid var(--marino)}
.matriz-corchete.izq{border-right:0;border-radius:4px 0 0 4px}
.matriz-corchete.der{border-left:0;border-radius:0 4px 4px 0}
.matriz-grid{display:grid;gap:8px}
.matriz-grid input{width:82px;text-align:center;padding:8px 6px;border:2px solid var(--borde);
                   border-radius:8px;background:#fff;font-variant-numeric:tabular-nums;font-size:.96rem}
.matriz-grid input:focus{outline:none;border-color:var(--dorado)}

/* ---------- Opciones múltiples / V-F ---------- */
.opciones-lista{display:grid;gap:10px}
.opcion-item{display:flex;align-items:center;gap:12px;padding:12px 15px;border:2px solid var(--borde);
             border-radius:var(--r-sm);background:#fff;cursor:pointer;transition:border-color .15s,background-color .15s}
.opcion-item:hover{border-color:var(--dorado);background:var(--papel)}
.opcion-item input{width:18px;height:18px;accent-color:var(--dorado);flex:none}

/* ---------- Panel plegable de constantes / formulario ---------- */
details.plegable{background:var(--papel-2);border:1px solid var(--borde);border-radius:var(--r-sm);padding:12px 16px}
details.plegable summary{cursor:pointer;font-weight:600;color:var(--marino);list-style:none;display:flex;justify-content:space-between;align-items:center}
details.plegable summary::after{content:'+';font-size:1.2rem;color:var(--dorado-osc);font-weight:700}
details.plegable[open] summary::after{content:'−'}
details.plegable .plegable-cuerpo{margin-top:12px;padding-top:12px;border-top:1px solid var(--borde);font-size:.92rem}

/* ---------- Editor y vista previa lado a lado ---------- */
.editor-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;align-items:start}
@media (max-width:960px){.editor-grid{grid-template-columns:1fr}}

.codigo-json{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.86rem;
             line-height:1.5;tab-size:2;background:#fff}

.lista-vacia{padding:28px;text-align:center;background:var(--papel-2);border-radius:var(--r-md);color:var(--texto-medio)}
.espaciado-arriba{margin-top:18px}
.barra-acciones{display:flex;gap:12px;flex-wrap:wrap;align-items:center}

/* ---------- Panel docente / KPIs / filtros ---------- */
.nav-links{gap:clamp(14px,1.5vw,22px)}
.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
@media (max-width:900px){.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){.kpi-grid{grid-template-columns:1fr}}
.kpi-card{background:#fff;border:1px solid var(--borde);border-left:4px solid var(--dorado);
          border-radius:var(--r-sm);padding:16px 18px;display:grid;gap:4px}
.kpi-card b{font:700 1.8rem/1.05 var(--display);color:var(--marino);font-variant-numeric:tabular-nums}
.kpi-card span{font-size:.86rem;color:var(--texto-medio)}

.filtros-fila{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;align-items:end}
.grupo-checks{display:flex;flex-wrap:wrap;gap:10px}
.grupo-check{display:inline-flex;align-items:center;gap:8px;padding:8px 13px;border:2px solid var(--borde);
             border-radius:999px;background:#fff;cursor:pointer;font-size:.9rem;font-weight:500}
.grupo-check input{accent-color:var(--dorado);width:16px;height:16px}
.bloque-regla{display:grid;grid-template-columns:1.4fr 1fr 1fr 90px auto;gap:10px;align-items:end;
              padding:14px;background:var(--papel);border:1px solid var(--borde);border-radius:var(--r-sm)}
@media (max-width:760px){.bloque-regla{grid-template-columns:1fr}}
.subbarra-sesion{background:var(--papel-2);border-bottom:1px solid var(--borde);padding-block:8px}
.subbarra-sesion .caja{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;font-size:.88rem}
.cronometro-alerta{background:var(--alto-lav);border-color:rgba(140,47,29,.35);color:var(--alto)}
.cronometro-alerta b{color:var(--alto)}
