/* GenLAB — mesa.css
   "Mesa de trabajo": vista ajustada al alto de la pantalla + panel fijo a la derecha.
   Lo usan la identificación (labeling) y la lámina con tareas (_partials/mesa.php). */

.nl-mesa-head {
    display: flex; flex-wrap: wrap; align-items: center; gap: .4rem 1rem;
    max-width: 1500px; padding-top: .8rem; padding-bottom: .6rem;
}
.nl-mesa-head h1 { margin: 0; font-size: clamp(1.05rem, 2vw, 1.35rem); flex: 1 1 auto; }
.nl-mesa-head .nl-act-back { font-size: .85rem; }
.nl-mesa-head .nl-lab__niveles { padding: 0; }

.nl-mesa {
    --alto: calc(100vh - 84px);
    display: grid;
    grid-template-columns: minmax(0, 1fr) 360px;
    gap: 1rem;
    align-items: start;
    max-width: 1500px;
    padding-top: .6rem;
    padding-bottom: 1rem;
}
.nl-mesa--lamina { grid-template-columns: minmax(0, 1fr) 400px; }
.nl-mesa__vista {
    position: sticky; top: .5rem;
    display: flex; flex-direction: column; align-items: center;
    min-width: 0;
}
.nl-mesa__panel {
    position: sticky; top: .5rem;
    max-height: var(--alto);
    overflow-y: auto;
    display: flex; flex-direction: column; gap: .8rem;
    padding: 1rem;
    border: 1px solid var(--gray-700);
    border-radius: 14px;
    background: var(--navy-mid);
    scrollbar-width: thin;
}
.nl-mesa.is-bloqueada > :not(.nl-lab__candado) { display: none; }
.nl-mesa .nl-lab__candado { grid-column: 1 / -1; }

/* --- Identificación: la imagen nunca supera el alto disponible --- */
.nl-mesa .nl-lab__canvas {
    width: min(100%, calc(var(--alto) * var(--ar, 1.5)));
    aspect-ratio: var(--ar, 1.5);
}
.nl-mesa .nl-lab__img { width: 100%; height: 100%; object-fit: contain; }
.nl-lab__img-prev {
    position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain;
    background: #fff; z-index: 3; opacity: 1; transform: scale(1);
    transition: opacity 1.4s ease, transform 1.4s ease;
}
.nl-lab__img-prev.is-fuera { opacity: 0; transform: scale(1.12); }
.nl-lab__canvas.is-transicion .nl-lab__img { animation: nlZoomIn 1.6s ease; }
@keyframes nlZoomIn { from { transform: scale(.92); opacity: .4; } to { transform: none; opacity: 1; } }

/* Números sobre la imagen (botones) */
.nl-mesa .nl-lab__punto {
    cursor: pointer; padding: 0; font-family: inherit; line-height: 1;
    width: 2.1em; height: 2.1em; font-size: .95em;
    transition: transform .15s, box-shadow .15s, background .15s;
}
.nl-mesa .nl-lab__punto:hover { transform: translate(-50%, -50%) scale(1.15); }
.nl-mesa .nl-lab__punto.is-sel {
    transform: translate(-50%, -50%) scale(1.2);
    box-shadow: 0 0 0 .3em rgba(245,158,11,.75), 0 2px 8px rgba(0,0,0,.4);
    z-index: 2;
}
.nl-lab__punto.is-repasar { background: #D97706; }
.nl-lab__punto.is-activa { background: #F59E0B; }
.nl-lab__forma.is-sel { stroke: #F59E0B; stroke-dasharray: none; fill: rgba(245,158,11,.12); }
.nl-lab__corchete.is-sel { fill: none; }

/* Panel: estado, chips, trabajo */
.nl-mesa .nl-lab__estado { justify-content: space-between; }
.nl-lab__chips { display: flex; flex-wrap: wrap; gap: .35rem; }
.nl-lab__chip {
    width: 2rem; height: 2rem; border-radius: 50%;
    font: inherit; font-size: .8rem; font-weight: 800;
    color: var(--violet-light); background: rgba(6,182,212,.14);
    border: 1.5px solid transparent; cursor: pointer;
}
.nl-lab__chip.is-ok { background: rgba(22,163,74,.25); color: #4ADE80; }
.nl-lab__chip.is-repasar { background: rgba(217,119,6,.25); color: #FCD34D; }
.nl-lab__chip.is-activa { background: #F59E0B; color: #071A24; }
.nl-lab__chip.is-sel { border-color: #F59E0B; box-shadow: 0 0 0 2px rgba(245,158,11,.35); }

.nl-lab__trabajo {
    display: flex; flex-direction: column; gap: .55rem;
    padding: .9rem; border-radius: 12px;
    background: rgba(255,255,255,.04); border: 1.5px solid var(--gray-700);
    font-size: .9rem; line-height: 1.5; color: var(--gray-100);
}
.nl-lab__trabajo.is-pregunta { border-color: #F59E0B; }
.nl-lab__trabajo.is-ok { border-color: rgba(34,197,94,.6); background: rgba(34,197,94,.07); }
.nl-lab__trabajo.is-repasar { border-color: rgba(217,119,6,.6); background: rgba(217,119,6,.07); }
.nl-lab__trabajo.is-esperando { opacity: .6; }
.nl-lab__trabajo p { margin: 0; }
.nl-lab__paso { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; font-weight: 800; font-size: 1rem; color: var(--white, #fff); }
.nl-lab__badge {
    display: inline-grid; place-items: center; width: 1.8rem; height: 1.8rem; border-radius: 50%;
    background: #F59E0B; color: #071A24; font-size: .85rem; font-weight: 800;
}
.nl-lab__ayuda { font-size: .82rem; color: var(--gray-300); }
.nl-lab__resp-fila { display: flex; gap: .4rem; }
.nl-mesa .nl-lab__input {
    flex: 1; min-width: 0; width: auto;
    padding: .55rem .7rem; font-size: .95rem; font-weight: 600;
    color: #071A24; background: #fff; border: 2px solid #67E8F9; border-radius: 10px;
}
.nl-mesa .nl-lab__input:focus { outline: none; border-color: #F59E0B; box-shadow: 0 0 0 3px rgba(245,158,11,.3); }
.nl-mesa .nl-lab__nose {
    align-self: flex-start; width: auto; height: auto; padding: .2rem 0;
    background: none; border: 0; border-radius: 0; color: var(--gray-300);
    font: inherit; font-size: .82rem; text-decoration: underline; cursor: pointer;
}
.nl-mesa .nl-lab__nose:hover { color: var(--violet-light); background: none; }
.nl-lab__estado-nombre { font-size: .72rem; font-weight: 800; padding: .1rem .5rem; border-radius: 99px; }
.nl-lab__estado-nombre.ok { background: rgba(34,197,94,.2); color: #86EFAC; }
.nl-lab__estado-nombre.rep { background: rgba(217,119,6,.25); color: #FCD34D; }
.nl-mesa .nl-lab__alts { grid-template-columns: 1fr; }
.nl-lab__alts.is-sacude { animation: nlLabMal 320ms ease; }
.nl-mesa .nl-lab__comp { display: grid; grid-template-columns: 1fr; gap: .5rem; }
.nl-mesa .nl-lab__etq { display: block; font-size: .7rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--gray-500); }
.nl-mesa .nl-lab__decision { display: flex; flex-wrap: wrap; gap: .4rem; }
.nl-lab__bien { color: #86EFAC; font-weight: 800; }
.nl-lab__aviso-act { color: #FCD34D; font-size: .82rem; font-weight: 700; }
.nl-lab__resumen { padding: .7rem; border-radius: 10px; background: rgba(34,197,94,.12); color: #BBF7D0; }
.nl-lab__resumen .nl-lab__alt { display: block; margin-top: .25rem; }
.nl-lab__sig, .nl-lab__sig-nivel { align-self: flex-start; }
.nl-mesa #nl-lab-guia .nl-guia-cta { margin-top: 0; }
.nl-mesa #nl-lab-guia { display: flex; flex-direction: column; gap: .6rem; }
.nl-mesa #nl-lab-guia[hidden] { display: none; }

.nl-mesa__info { font-size: .82rem; color: var(--gray-300); border-top: 1px solid var(--gray-700); padding-top: .6rem; }
.nl-mesa__info summary { cursor: pointer; font-weight: 700; color: var(--gray-300); }
.nl-mesa__info p { margin: .5rem 0 0; line-height: 1.5; }
.nl-mesa__carrera strong { color: var(--violet-light); }

/* --- Lámina: iframe al alto disponible + pestañas en el panel --- */
.nl-mesa__iframe { width: 100%; height: calc(var(--alto) - 1.6rem); border: 0; border-radius: 12px; background: #000; }
.nl-mesa__caption { margin: .3rem 0 0; font-size: .75rem; color: var(--gray-500); align-self: flex-start; }
.nl-mesa__tabs { display: flex; gap: .3rem; border-bottom: 1px solid var(--gray-700); }
.nl-mesa__tab {
    font: inherit; font-size: .85rem; font-weight: 700; padding: .45rem .8rem;
    color: var(--gray-300); background: none; border: 0; border-bottom: 2px solid transparent; cursor: pointer;
}
.nl-mesa__tab.active { color: var(--violet-light); border-bottom-color: var(--violet); }
.nl-mesa__pane.nl-act-html { padding: 0; }
.nl-mesa__pane .nl-guia__tareas li { font-size: .88rem; }
.nl-mesa__ir { margin-top: .8rem; }
.nl-mesa .nl-tar__caps { grid-template-columns: 1fr; margin-top: .6rem; }
.nl-mesa .nl-tar__zona { min-height: 120px; }
.nl-mesa .nl-tar__zona.tiene img { max-height: 200px; }
.nl-mesa .nl-tar__ops { grid-template-columns: 1fr; }
.nl-mesa .nl-tar__intro { font-size: .85rem; margin: 0; }
.nl-mesa .nl-tar__final { position: sticky; bottom: -1rem; z-index: 2; box-shadow: 0 -6px 14px rgba(7,26,36,.5); background: #0F2C3A; }
.nl-mesa .nl-tar__final.is-ok { background: #1E3A2A; }

/* --- Pantallas angostas: una columna; el panel sigue a la imagen --- */
@media (max-width: 900px) {
    .nl-mesa, .nl-mesa--lamina { grid-template-columns: 1fr; --alto: 70vh; }
    .nl-mesa__vista, .nl-mesa__panel { position: static; max-height: none; }
    .nl-mesa .nl-lab__canvas { width: 100%; }
    .nl-mesa__iframe { height: 60vh; }
    .nl-mesa .nl-lab__capa { font-size: clamp(9px, 2.6cqw, 14px); }
}
.nl-mesa .nl-lab__capa { font-size: clamp(10px, 1.45cqw, 17px); }
.nl-lab__fin { display: flex; flex-direction: column; gap: .6rem; }
.nl-lab__fin[hidden] { display: none; }
.nl-lab__fin .nl-guia-cta { margin-top: 0; }
.nl-lab__sig-nivel[hidden] { display: none; }
.nl-mesa .nl-tar { margin-top: 0; }

/* Instrucciones arriba del panel y conexión con la carrera al completar */
.nl-mesa__instr {
    font-size: .84rem; line-height: 1.5; color: var(--gray-100);
    padding: .55rem .75rem; border-radius: 10px;
    background: rgba(6,182,212,.1); border: 1px solid rgba(6,182,212,.35);
}
.nl-mesa__instr summary { cursor: pointer; font-weight: 800; color: var(--violet-light); }
.nl-mesa__instr p { margin: .45rem 0 0; }
.nl-mesa__instr strong { color: #fff; }
.nl-mesa__instr strong.nl-c-verde { color: #86EFAC; }
.nl-mesa__instr strong.nl-c-rojo { color: #FFB4AE; }
.nl-mesa__instr strong.nl-c-naranjo { color: #FCD34D; }
.nl-mesa__desc { color: var(--gray-300); font-size: .8rem; }
.nl-mesa__aviso {
    font-size: .84rem; line-height: 1.5; color: var(--gray-100);
    padding: .55rem .75rem; border-radius: 10px;
    background: rgba(245,158,11,.1); border: 1px solid rgba(245,158,11,.45);
}
.nl-mesa__aviso summary { cursor: pointer; font-weight: 800; color: #FCD34D; }
.nl-mesa__aviso p { margin: .45rem 0 0; font-size: .84rem; line-height: 1.5; }
.nl-mesa__aviso strong { color: #FDE68A; }
.nl-mesa__conexion {
    padding: .7rem .85rem; border-radius: 10px; font-size: .84rem; line-height: 1.5;
    background: rgba(245,158,11,.1); border: 1px solid rgba(245,158,11,.45); color: var(--gray-100);
}
.nl-mesa__conexion[hidden] { display: none; }
.nl-mesa__conexion p { margin: .3rem 0 0; }
.nl-mesa__conexion-tit { margin: 0 !important; font-weight: 800; color: #FCD34D; }
.nl-mesa__conexion strong { color: #FDE68A; }
.nl-tar .nl-mesa__conexion { margin-top: .8rem; }
.nl-mesa__instr p, .nl-mesa__conexion p { font-size: .84rem; line-height: 1.5; }

/* Cierre del nivel: una sola tarjeta ordenada */
.nl-lab__trabajo.is-cierre { border-color: rgba(34,197,94,.6); background: rgba(34,197,94,.08); gap: .6rem; }
.nl-lab__cierre-tit { font-size: 1.15rem; font-weight: 800; color: #BBF7D0; }
.nl-lab__trabajo.is-cierre .nl-lab__sig-nivel { align-self: stretch; text-align: center; }
.nl-lab__conexion { font-size: .82rem; line-height: 1.5; color: var(--gray-300); }
.nl-lab__conexion summary { cursor: pointer; font-weight: 700; color: #FCD34D; }
.nl-lab__conexion p { margin: .35rem 0 0; font-size: .82rem; }
.nl-lab__conexion strong { color: #FDE68A; }
.nl-lab__trabajo .nl-guia-ok { margin-top: .2rem; }
.nl-tar__final .nl-lab__conexion { margin-top: .4rem; font-weight: 400; }
.nl-tar__final .nl-guia-ok { display: block; margin-top: .3rem; font-weight: 400; }
.nl-tar__ruta { margin-left: .4rem; color: #86EFAC; font-weight: 700; }

/* Línea guía gris del número a la estructura (naranja en la activa) */
.nl-lab__guia-linea { stroke: rgba(70,95,105, .55); stroke-width: 1.2; }
.nl-lab__guia-linea.is-ok { stroke: rgba(22, 163, 74, .55); }
.nl-lab__guia-linea.is-repasar { stroke: rgba(217, 119, 6, .6); }
.nl-lab__guia-linea.is-sel { stroke: #F59E0B; stroke-width: 2.2; }
.nl-lab__diana {
    position: absolute; transform: translate(-50%, -50%);
    width: .55em; height: .55em; border-radius: 50%;
    background: rgba(70,95,105, .75); border: .1em solid #fff;
    pointer-events: none;
}
.nl-lab__diana.is-ok { background: #16A34A; }
.nl-lab__diana.is-repasar { background: #D97706; }
.nl-lab__diana.is-sel { background: #F59E0B; width: .8em; height: .8em; box-shadow: 0 0 0 .25em rgba(245,158,11,.35); }

/* Ficha de una estructura: bloques separados para leer con calma */
.nl-ficha__tambien { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem; font-size: .78rem; color: var(--gray-500); }
.nl-ficha__tambien span {
    padding: .1rem .55rem; border-radius: 99px; font-size: .78rem;
    background: rgba(255,255,255,.07); color: var(--gray-100);
}
.nl-ficha__bloque {
    padding: .6rem .75rem; border-radius: 10px;
    background: rgba(255,255,255,.05); border-left: 3px solid var(--violet);
}
.nl-ficha__bloque--extra { background: transparent; border-left-color: var(--gray-700); }
.nl-ficha__bloque p { margin: .2rem 0 0; font-size: .88rem; line-height: 1.55; }
.nl-ficha__bloque--extra p { color: var(--gray-300); font-size: .84rem; }
.nl-ficha__etq { font-size: .68rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; color: var(--violet-light); }
.nl-ficha__bloque--extra .nl-ficha__etq { color: var(--gray-500); }
.nl-lab__trabajo.is-ok .nl-ficha__bloque { border-left-color: #22C55E; }
.nl-lab__trabajo.is-repasar .nl-ficha__bloque { border-left-color: #D97706; }
.nl-ficha__acciones { display: flex; flex-wrap: wrap; gap: .4rem; padding-top: .2rem; }
.nl-ficha__acciones:empty { display: none; }

/* "Por repasar": salmón suave (distinto del naranjo de la estructura activa) */
.nl-mesa { --repasar: #E0524A; --repasar-claro: #FFB4AE; }
.nl-mesa .nl-lab__punto.is-repasar,
.nl-mesa .nl-lab__diana.is-repasar { background: var(--repasar); }
.nl-mesa .nl-lab__chip.is-repasar { background: rgba(224,82,74,.24); color: var(--repasar-claro); }
.nl-mesa .nl-lab__guia-linea.is-repasar { stroke: rgba(224,82,74,.7); }
.nl-mesa .nl-lab__forma.is-repasar { stroke: var(--repasar); fill: rgba(224,82,74,.1); }
.nl-mesa .nl-lab__trabajo.is-repasar { border-color: rgba(224,82,74,.65); background: rgba(224,82,74,.08); }
.nl-mesa .nl-lab__trabajo.is-repasar .nl-ficha__bloque { border-left-color: var(--repasar); }
.nl-lab__repasar { color: var(--repasar-claro); }

/* Aparición progresiva de cada estructura sobre la imagen */
.nl-lab__punto.is-aparece { animation: nlAparece .45s cubic-bezier(.3,1.5,.5,1); }
.nl-lab__diana.is-aparece { animation: nlFade .45s ease; }
.nl-lab__guia-linea.is-aparece { animation: nlFade .6s ease; }
@keyframes nlAparece { from { opacity: 0; transform: translate(-50%, -50%) scale(.3); } to { opacity: 1; } }
@keyframes nlFade { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
    .nl-lab__punto.is-aparece, .nl-lab__diana.is-aparece, .nl-lab__guia-linea.is-aparece { animation: none; }
}

/* Identificación: la imagen toma su ancho real y el panel ocupa el resto (sin espacio muerto) */
.nl-mesa:not(.nl-mesa--lamina) {
    grid-template-columns: minmax(0, auto) minmax(360px, 1fr);
    justify-content: center;
}
.nl-mesa:not(.nl-mesa--lamina) .nl-mesa__vista { align-items: stretch; }
.nl-mesa:not(.nl-mesa--lamina) .nl-mesa__panel { max-width: 620px; }
.nl-mesa:not(.nl-mesa--lamina) .nl-lab__canvas { width: calc(var(--alto) * var(--ar, 1.5)); max-width: 100%; }
@media (max-width: 900px) {
    .nl-mesa:not(.nl-mesa--lamina) { grid-template-columns: 1fr; }
    .nl-mesa:not(.nl-mesa--lamina) .nl-lab__canvas { width: 100%; }
}

/* --- Tipos de neurona (js/tipos.js): misma mesa; vista = lienzo o frase + tarjetas --- */
.nl-mesa--tipos .nl-tip__vista { width: var(--alto); max-width: 100%; animation: nlFade .5s ease; }
.nl-mesa--tipos[data-tipo="elegir"] .nl-tip__vista { width: calc(var(--alto) * 1.3); }
.nl-tip__lienzo-caja {
    position: relative; display: flex; flex-direction: column; align-items: center; gap: .4rem;
    height: var(--alto); padding: .7rem; border-radius: var(--radius, 16px);
    background: radial-gradient(circle at 50% 55%, #fff 0 45%, #F0FBFD 100%); border: 2px solid transparent;
    box-shadow: inset 0 0 0 1px #CFFAFE;
    transition: border-color .3s;
}
.nl-tip__lienzo-caja.is-ok { border-color: #22C55E; }
.nl-tip__lienzo-caja.is-repasar { border-color: var(--repasar); }
.nl-tip__lienzo-caja.is-sacude { animation: nlLabMal 320ms ease; border-color: var(--repasar); }
.nl-tip__paleta { grid-template-columns: repeat(4, auto); justify-content: center; }
.nl-tip__paleta { display: flex; flex-wrap: wrap; gap: .4rem; }
.nl-tip__paleta .nl-arm__pieza { color: #1F3B48; background: #fff; border: 1.5px solid #A5F3FC; cursor: pointer; box-shadow: 0 1px 2px rgba(8,51,68,.08); }
.nl-tip__paleta .nl-arm__pieza:hover { color: #083344; border-color: #22D3EE; }
.nl-tip__pz { display: inline-flex; align-items: stretch; }
.nl-tip__pz .nl-arm__pieza { border-radius: 10px 0 0 10px; border-right: 0; }
.nl-tip__pz--dendrita { --pz: #0D9488; } .nl-tip__pz--axon { --pz: #F43F5E; } .nl-tip__pz--t { --pz: #2563EB; }
.nl-tip__pz .nl-arm__pieza.active { color: #fff; background: var(--pz); border-color: var(--pz); }
.nl-tip__pz .nl-arm__pieza.active svg path, .nl-tip__pz .nl-arm__pieza.active svg rect { stroke: #fff; }
.nl-tip__que {
    font: 800 .78rem/1 inherit; width: 1.9rem; cursor: pointer; color: var(--pz); background: #fff;
    border: 1.5px solid #A5F3FC; border-left: 1px dashed #A5F3FC; border-radius: 0 10px 10px 0;
}
.nl-tip__que:hover, .nl-tip__que.is-on { color: #fff; background: var(--pz); border-color: var(--pz); }
.nl-tip__def {
    margin: 0; max-width: 34rem; padding: .45rem .7rem; border-radius: 10px; font-size: .84rem; line-height: 1.45;
    color: #083344; background: #fff; border: 1.5px solid #A5F3FC; border-left: 4px solid var(--pz, #0891B2);
}
.nl-tip__def--dendrita { --pz: #0D9488; } .nl-tip__def--axon { --pz: #F43F5E; } .nl-tip__def--t { --pz: #2563EB; }
.nl-tip__def strong { color: var(--pz); }
.nl-tip__lienzo { flex: 1 1 auto; min-height: 0; width: 100%; touch-action: manipulation; }
.nl-tip__sello { margin: 0; font-weight: 800; color: #15803D; }
.nl-tip__lienzo-caja.is-repasar .nl-tip__sello { color: #B42318; }
/* Paso 2: sentido de la información (zonas que se tocan, etiquetas y ruta del impulso) */
.nl-tip__sello.is-flecha { color: #B45309; }
.nl-tip__zonas .zona { fill: none; stroke: rgba(245,158,11,.001); stroke-width: 28; stroke-linecap: round; cursor: pointer; pointer-events: stroke; }
.nl-tip__zonas .zona:hover, .nl-tip__zonas .zona:focus-visible { stroke: rgba(245,158,11,.25); outline: none; }
.nl-tip__zonas .zona.is-entra { stroke: rgba(13,148,136,.25); }
.nl-tip__lienzo .pieza.is-entra, .nl-tip__mini .pieza.is-entra { filter: drop-shadow(0 0 4px rgba(13,148,136,.9)); }
.nl-tip__lienzo .pieza.is-sale { filter: drop-shadow(0 0 4px rgba(244,63,94,.8)); }
.p-flecha-halo { fill: none; stroke: rgba(245,158,11,.28); stroke-width: 12; stroke-linecap: round; stroke-linejoin: round; }
.p-flecha { fill: none; stroke: #F59E0B; stroke-width: 4; stroke-linecap: round; stroke-linejoin: round; }
.p-flecha-punta { fill: #F59E0B; stroke: #fff; stroke-width: 1.2; }
.p-flecha-flujo { fill: none; stroke: #FEF3C7; stroke-width: 2.2; stroke-linecap: round; stroke-dasharray: 3 12; animation: nlFlujo .9s linear infinite; }
.p-impulso { fill: #FDE047; stroke: #B45309; stroke-width: 1.5; filter: drop-shadow(0 0 5px rgba(253,224,71,.95)); }
.p-etq rect { stroke: #fff; stroke-width: 1.5; }
.p-etq text { font: 800 10px/1 'Plus Jakarta Sans', Arial, sans-serif; letter-spacing: .06em; fill: #fff; }
.p-etq--entra rect { fill: #0D9488; }
.p-etq--sale rect { fill: #F43F5E; }
@keyframes nlFlujo { to { stroke-dashoffset: -15; } }
@media (prefers-reduced-motion: reduce) { .p-flecha-flujo { animation: none; } .p-impulso { display: none; } }
/* piezas sobre fondo blanco (mismos colores que en la guía) */
.nl-mesa--tipos .p-dend  { stroke: #0D9488; }
.nl-mesa--tipos .p-axon  { stroke: #F43F5E; }
.nl-mesa--tipos .p-t     { stroke: #2563EB; }
.nl-mesa--tipos .p-mielina { fill: #E0E7FF; stroke: #818CF8; stroke-width: 1; opacity: 1; }
.nl-mesa--tipos .p-boton { fill: #F43F5E; }
.nl-mesa--tipos .p-t ~ .p-boton { fill: #2563EB; }
.nl-mesa--tipos .p-soma  { fill: #06B6D4; stroke: #155E75; }
.nl-mesa--tipos .p-nucleo { fill: #083344; stroke: #A5F3FC; }
.nl-tip__lienzo .punto__aro { fill: #ECFEFF; stroke: #22D3EE; }
.nl-tip__lienzo .punto__mas { stroke: #0891B2; }
.nl-tip__lienzo .punto.is-lleno .punto__aro { fill: rgba(236,254,255,.85); stroke: #67E8F9; }
.nl-tip__lienzo .punto:hover .punto__aro,
.nl-tip__lienzo .punto:focus-visible .punto__aro { fill: #F59E0B; stroke: #B45309; stroke-dasharray: none; }
.nl-tip__lienzo .punto:hover .punto__mas, .nl-tip__lienzo .punto:focus-visible .punto__mas { stroke: #fff; }
.nl-tip__resumen { font-size: .85rem; color: var(--gray-300); }
/* Al cerrar: las neuronas armadas lado a lado */
.nl-tip__lienzo-caja.is-galeria { flex-direction: row; flex-wrap: wrap; justify-content: center; align-content: center; height: auto; min-height: 40vh; }
.nl-tip__mini { margin: 0; width: calc(33% - .4rem); min-width: 150px; text-align: center; border-radius: 12px; border: 2px solid #A5F3FC; padding: .3rem; }
.nl-tip__mini.is-ok { border-color: #86EFAC; }
.nl-tip__mini.is-repasar { border-color: #FFB4AE; }
.nl-tip__mini svg { width: 100%; height: auto; display: block; }
.nl-tip__mini figcaption { font-size: .85rem; font-weight: 700; color: #083344; }

@media (max-width: 900px) {
    .nl-mesa--tipos .nl-tip__vista, .nl-mesa--tipos[data-tipo="elegir"] .nl-tip__vista { width: 100%; }
    .nl-tip__lienzo-caja { height: auto; }
    .nl-tip__lienzo { width: min(100%, 52vh); }
    .nl-tip__paleta { grid-template-columns: repeat(2, 1fr); width: 100%; }
}
.nl-mesa.nl-mesa--tipos { grid-template-columns: auto minmax(360px, 620px); }
@media (max-width: 900px) { .nl-mesa.nl-mesa--tipos { grid-template-columns: 1fr; } }

/* Nivel "elegir": frase grande + 3 tarjetas que se dan vuelta */
.nl-tip__frase-caja {
    display: flex; flex-direction: column; justify-content: center; gap: 1.1rem;
    min-height: var(--alto); padding: 1.4rem 1.6rem; border-radius: var(--radius, 16px);
    background: #fff; color: #071A24;
}
.nl-tip__frase-caja.is-cierre { justify-content: flex-start; min-height: 0; }
.nl-tip__fila-etq { margin: 0; font-size: .75rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; color: #0891B2; }
.nl-tip__frase { margin: 0; font-size: clamp(1.1rem, 2.1vw, 1.45rem); font-weight: 700; line-height: 1.4; color: #071A24; min-height: 3.6em; }
.nl-tip__hueco { color: #D97706; letter-spacing: .05em; }
.nl-tip__cartas { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.nl-tip__carta {
    padding: 0; border: 0; background: none; font: inherit; cursor: pointer;
    perspective: 900px; aspect-ratio: 3 / 3.6; min-height: 0;
}
.nl-tip__carta-in {
    position: relative; display: block; width: 100%; height: 100%;
    transform-style: preserve-3d; transition: transform .55s cubic-bezier(.3,1.3,.5,1);
}
.nl-tip__carta:not([disabled]):hover .nl-tip__carta-in { transform: translateY(-6px); }
.nl-tip__carta.is-vuelta .nl-tip__carta-in { transform: rotateY(180deg); }
.nl-tip__cara, .nl-tip__dorso {
    position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: .5rem; padding: .7rem; border-radius: 14px; backface-visibility: hidden; -webkit-backface-visibility: hidden;
    border: 2px solid #A5F3FC; background: #ECFEFF; box-shadow: 0 4px 12px rgba(8,51,68,.12);
}
.nl-tip__carta:not([disabled]):hover .nl-tip__cara { border-color: #F59E0B; box-shadow: 0 8px 18px rgba(245,158,11,.25); }
.nl-tip__cara .nl-ico { width: 78%; max-width: 150px; height: auto; aspect-ratio: 1; object-fit: contain; }
.nl-tip__carta-nom { font-weight: 800; font-size: clamp(.78rem, 1.2vw, .98rem); color: #083344; }
.nl-tip__dorso { transform: rotateY(180deg); text-align: center; font-size: .9rem; line-height: 1.4; }
.nl-tip__dorso strong { font-size: 1rem; }
.nl-tip__dorso small { font-size: .82rem; color: #244B5A; }
.nl-tip__carta.is-ok .nl-tip__dorso { background: #DCFCE7; border-color: #22C55E; color: #15803D; }
.nl-tip__carta.is-mal .nl-tip__dorso { background: #FFF1F0; border-color: var(--repasar); color: #B42318; cursor: default; }
.nl-tip__carta.is-apagada { opacity: .35; cursor: default; }
.nl-tip__carta.is-esperando { opacity: .6; }
.nl-tip__carta[disabled] { cursor: default; }
@media (prefers-reduced-motion: reduce) { .nl-tip__carta-in { transition: none; } }

/* Cuadro comparativo (panel; y grande en la vista al cerrar) */
.nl-tip__cuadro { width: 100%; border-collapse: separate; border-spacing: 3px; table-layout: fixed; font-size: .74rem; line-height: 1.35; }
.nl-tip__cuadro th { font-weight: 800; color: var(--violet-light); text-align: center; vertical-align: bottom; font-size: .72rem; }
.nl-tip__cuadro thead th { padding: 0 .1rem .15rem; hyphens: manual; }
.nl-tip__cuadro thead th:first-child { width: 22%; }
.nl-tip__cuadro thead .nl-ico { display: block; width: 34px; height: 34px; margin: 0 auto .15rem; border-radius: 8px; background: #fff; padding: 1px; object-fit: contain; }
.nl-tip__cuadro tbody th { text-align: left; vertical-align: middle; color: var(--gray-300); padding: .3rem; }
.nl-tip__cuadro td { vertical-align: top; padding: .3rem .35rem; border-radius: 7px; background: rgba(255,255,255,.05); color: var(--gray-100); }
.nl-tip__cuadro tr.is-actual td, .nl-tip__cuadro tr.is-actual th { background: rgba(245,158,11,.12); }
.nl-tip__cuadro tr.is-actual th { color: #FCD34D; border-radius: 7px; }
.nl-tip__celda { display: block; }
.nl-tip__celda + .nl-tip__celda { margin-top: .25rem; padding-top: .25rem; border-top: 1px dashed rgba(255,255,255,.15); }
.nl-tip__celda.is-nueva { animation: nlCelda 1.6s ease; color: #BBF7D0; }
@keyframes nlCelda { 0% { background: rgba(34,197,94,.45); } 100% { background: transparent; } }
.nl-tip__vacia { color: var(--gray-500); }
.nl-tip__cuadro.is-grande { font-size: .9rem; border-spacing: 4px; }
.nl-tip__cuadro.is-grande th { color: #155E75; font-size: .85rem; }
.nl-tip__cuadro.is-grande td { background: #ECFEFF; color: #071A24; padding: .5rem .6rem; }
.nl-tip__cuadro.is-grande .nl-tip__celda + .nl-tip__celda { border-top-color: #A5F3FC; }

@media (max-width: 900px) {
    .nl-tip__frase-caja { min-height: 0; padding: 1rem; gap: .8rem; }
    .nl-tip__frase { min-height: 0; font-size: 1.05rem; }
    .nl-tip__cartas { gap: .5rem; }
    .nl-tip__cara, .nl-tip__dorso { padding: .4rem; }
    .nl-tip__dorso { font-size: .75rem; }
    .nl-tip__dorso small { font-size: .7rem; }
    .nl-tip__cuadro.is-grande { font-size: .74rem; }
}
.nl-tip__logro { margin-left: auto; font-size: .75rem; font-weight: 800; padding: .15rem .55rem; border-radius: 99px; background: rgba(34,197,94,.2); color: #86EFAC; }
.nl-lab__trabajo.is-repasar .nl-tip__logro { background: rgba(224,82,74,.22); color: var(--repasar-claro); }
.nl-tip__carta.is-ok .nl-tip__dorso .nl-ico { width: 55%; max-width: 110px; height: auto; }

/* --- Lámina por niveles (js/lamina.js): lámina o captura en la vista; pasos en el panel --- */
.nl-lam__barra { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .4rem; width: 100%; margin-bottom: .4rem; }
.nl-lam__tinciones, .nl-lam__ver { display: inline-flex; padding: 3px; gap: 3px; border-radius: 99px; background: rgba(255,255,255,.06); border: 1px solid var(--gray-700); }
.nl-lam__tinciones[hidden] { display: none; }
.nl-lam__tincion, .nl-lam__ver-btn {
    font: inherit; font-size: .8rem; font-weight: 700; padding: .3rem .8rem; border-radius: 99px; border: 0;
    color: var(--gray-300); background: none; cursor: pointer;
}
.nl-lam__tincion.active, .nl-lam__ver-btn.active { background: var(--violet); color: #fff; }
.nl-lam__ver-btn:disabled { opacity: .4; cursor: default; }
.nl-lam__nombre { font-size: .8rem; font-weight: 700; color: var(--gray-300); }
.nl-mesa--capturas .nl-mesa__iframe { height: calc(var(--alto) - 2.9rem); }
.nl-lam__editor {
    width: 100%; height: calc(var(--alto) - 2.9rem); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .4rem;
    border-radius: 12px; background: #04111A; border: 1px solid var(--gray-700); overflow: auto;
}
.nl-lam__editor[hidden] { display: none; }
.nl-lam__lienzo { position: relative; display: inline-block; line-height: 0; max-width: 100%; }
.nl-lam__lienzo img { display: block; max-width: 100%; max-height: calc(var(--alto) - 6rem); user-select: none; -webkit-user-drag: none; }
.nl-lam__lienzo.is-recorte { cursor: crosshair; touch-action: none; overflow: hidden; }
.nl-lam__lienzo.is-poner { cursor: crosshair; }
.nl-lam__sel { position: absolute; border: 2px dashed #F59E0B; box-shadow: 0 0 0 9999px rgba(4,17,26,.55); pointer-events: none; }
.nl-lam__ayuda-vista { margin: 0; font-size: .85rem; color: var(--gray-300); line-height: 1.4; }
.nl-lam__ayuda-vista strong { color: #FCD34D; }

/* Etiquetas sobre la captura: punto + rótulo con línea */
.nl-lam__pin { position: absolute; width: 0; height: 0; pointer-events: none; line-height: 1.2; animation: nlFade .3s ease; }
.nl-lam__pin i { position: absolute; left: -6px; top: -6px; width: 12px; height: 12px; border-radius: 50%; background: #F59E0B; border: 2px solid #fff; box-shadow: 0 1px 4px rgba(0,0,0,.5); }
.nl-lam__pin b {
    position: absolute; left: 28px; top: 0; transform: translateY(-50%); white-space: nowrap;
    font-size: .78rem; font-weight: 800; color: #fff; padding: .15rem .5rem; border-radius: 99px; background: rgba(7,26,36,.85);
}
.nl-lam__pin b::before { content: ''; position: absolute; right: 100%; top: 50%; width: 22px; height: 2px; background: #F59E0B; }
.nl-lam__pin.is-izq b { left: auto; right: 28px; }
.nl-lam__pin.is-izq b::before { right: auto; left: 100%; }
.nl-lam__pin.is-sel i { background: #FCD34D; box-shadow: 0 0 0 4px rgba(245,158,11,.45); }

/* Al cerrar: las capturas etiquetadas */
.nl-lam__galeria { display: flex; flex-wrap: wrap; justify-content: center; gap: .8rem; padding: .8rem; }
.nl-lam__mini { margin: 0; flex: 1 1 260px; max-width: 48%; text-align: center; }
.nl-lam__mini .nl-lam__lienzo img { max-height: 40vh; border-radius: 8px; border: 2px solid #86EFAC; }
.nl-lam__mini.is-repasar .nl-lam__lienzo img { border-color: var(--repasar-claro); }
.nl-lam__mini figcaption { margin-top: .3rem; font-size: .85rem; font-weight: 700; color: var(--gray-100); line-height: 1.3; }

/* Panel: capturas, pasos, pegar, etiquetas */
.nl-lam__cap {
    display: inline-flex; align-items: center; gap: .4rem; padding: .25rem .7rem .25rem .25rem; border-radius: 99px;
    font: inherit; font-size: .8rem; font-weight: 700; color: var(--violet-light); background: rgba(6,182,212,.14);
    border: 1.5px solid transparent; cursor: pointer;
}
.nl-lam__cap span { display: inline-grid; place-items: center; width: 1.5rem; height: 1.5rem; border-radius: 50%; background: rgba(6,182,212,.3); font-size: .75rem; }
.nl-lam__cap.is-activa span { background: #F59E0B; color: #071A24; }
.nl-lam__cap.is-ok { background: rgba(22,163,74,.22); color: #86EFAC; }
.nl-lam__cap.is-ok span { background: #16A34A; color: #fff; }
.nl-lam__cap.is-repasar { background: rgba(224,82,74,.22); color: var(--repasar-claro); }
.nl-lam__cap.is-repasar span { background: var(--repasar); color: #fff; }
.nl-lam__cap.is-sel { border-color: #F59E0B; }
.nl-lam__pasos { display: flex; gap: .25rem; margin: 0; padding: 0; list-style: none; counter-reset: paso; }
.nl-lam__pasos li {
    flex: 1; text-align: center; font-size: .7rem; font-weight: 700; padding: .25rem .2rem; border-radius: 6px;
    color: var(--gray-500); background: rgba(255,255,255,.04); counter-increment: paso;
}
.nl-lam__pasos li::before { content: counter(paso) '. '; }
.nl-lam__pasos li.is-ok { color: #86EFAC; background: rgba(22,163,74,.15); }
.nl-lam__pasos li.is-actual { color: #071A24; background: #F59E0B; }
.nl-lam__pegar {
    display: flex; flex-direction: column; align-items: center; gap: .45rem; text-align: center;
    padding: 1rem .8rem; border-radius: 12px; border: 2px dashed rgba(245,158,11,.6); background: rgba(245,158,11,.06);
    font-size: .82rem; color: var(--gray-300); line-height: 1.5;
}
.nl-lam__pegar strong { color: #FCD34D; font-size: .95rem; }
.nl-lam__pegar kbd { font-size: .72rem; padding: .05rem .3rem; border-radius: 4px; background: rgba(255,255,255,.12); color: #fff; }
.nl-lam__subir { cursor: pointer; }
.nl-lam__capt {
    display: flex; flex-direction: column; align-items: flex-start; gap: .45rem;
    padding: .8rem .85rem; border-radius: 12px; border: 2px solid rgba(245,158,11,.7); background: rgba(245,158,11,.1);
    font-size: .84rem; color: var(--gray-100); line-height: 1.5;
}
.nl-lam__capt strong { color: #FDE68A; }
.nl-lam__pegar.is-respaldo { padding: .6rem .8rem; border-width: 1.5px; border-color: rgba(255,255,255,.18); background: transparent; }
.nl-lam__pegar.is-respaldo strong { color: var(--gray-100); font-size: .84rem; }
.nl-lam__etqs { display: flex; flex-wrap: wrap; gap: .35rem; }
.nl-lam__etq {
    font: inherit; font-size: .82rem; font-weight: 700; padding: .35rem .75rem; border-radius: 99px; cursor: pointer;
    color: var(--violet-light); background: rgba(6,182,212,.14); border: 1.5px solid transparent;
}
.nl-lam__etq.is-ok { color: #86EFAC; background: rgba(22,163,74,.2); }
.nl-lam__etq.is-sel { color: #071A24; background: #F59E0B; }

@media (max-width: 900px) {
    .nl-mesa--capturas .nl-mesa__iframe { height: 60vh; }
    .nl-lam__editor { height: auto; min-height: 40vh; padding: .5rem 0; }
    .nl-lam__lienzo img { max-height: 65vh; }
    .nl-lam__mini { max-width: 100%; }
}

/* --- Quiz en mesa (js/quiz-mesa.js) --- */
.nl-quiz__caja { justify-content: flex-start; padding-top: 2rem; }
.nl-quiz__pool { margin-left: .5rem; padding: .1rem .5rem; border-radius: 99px; font-size: .68rem; letter-spacing: .04em; background: #CFFAFE; color: #155E75; }
.nl-quiz__pool.is-terapia-ocupacional, .nl-quiz__pool.is-fonoaudiologia { background: linear-gradient(135deg, #06B6D4, #FB7185); color: #fff; }
.nl-quiz__ops { display: flex; flex-direction: column; gap: .55rem; }
.nl-quiz__op {
    display: flex; align-items: center; gap: .7rem; text-align: left; width: 100%;
    padding: .7rem .9rem; border-radius: 12px; border: 2px solid #A5F3FC; background: #ECFEFF;
    font: inherit; font-size: .98rem; font-weight: 600; line-height: 1.4; color: #071A24; cursor: pointer;
    transition: border-color .15s, transform .15s;
}
.nl-quiz__op:not([disabled]):hover { border-color: #F59E0B; transform: translateX(3px); }
.nl-quiz__op .nl-lab__alt-letra { flex: none; }
.nl-quiz__op.is-ok { border-color: #22C55E; background: #DCFCE7; color: #14532D; }
.nl-quiz__op.is-mal { border-color: var(--repasar); background: #FFF1F0; color: #7F1D1D; }
.nl-quiz__op.is-apagada { opacity: .45; }
.nl-quiz__op[disabled] { cursor: default; }
.nl-quiz__chip { width: 1.75rem; height: 1.75rem; font-size: .72rem; }
.nl-quiz__chip[disabled] { opacity: .45; cursor: default; }
.nl-quiz__puntos { font-size: .8rem; font-weight: 700; color: #86EFAC; }
.nl-quiz__res { align-items: center; text-align: center; justify-content: center; }
.nl-quiz__nota { margin: 0; font-size: clamp(3rem, 8vw, 5.5rem); font-weight: 800; line-height: 1; color: #155E75; }
.nl-quiz__nota span { font-size: .4em; color: #7A9DAA; }
.nl-quiz__barra { width: min(420px, 90%); height: 12px; border-radius: 99px; background: #CFFAFE; overflow: hidden; }
.nl-quiz__barra i { display: block; height: 100%; background: linear-gradient(90deg, #06B6D4, #22C55E); }
.nl-quiz__msj { margin: 0; font-size: 1.05rem; font-weight: 700; color: #083344; }
@media (max-width: 900px) { .nl-quiz__caja { padding-top: 1rem; } .nl-quiz__op { font-size: .9rem; } }
.nl-quiz__op .nl-lab__alt-letra {
    display: inline-grid; place-items: center; width: 1.7rem; height: 1.7rem; border-radius: 50%;
    background: #A5F3FC; color: #164E63; font-size: .8rem; font-weight: 800; opacity: 1;
}
.nl-quiz__op.is-ok .nl-lab__alt-letra { background: #22C55E; color: #fff; }
.nl-quiz__op.is-mal .nl-lab__alt-letra { background: var(--repasar); color: #fff; }
.nl-tip__dorso strong, .nl-tip__carta-nom { hyphens: manual; overflow-wrap: anywhere; }

/* ============================================================
   GenLAB — práctica en mesa (js/mesa-practica.js) y mesa genérica
   ============================================================ */
#gl-prac .nl-tip__vista { width: calc(var(--alto) * 1.25); }
.gl-cartas { grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); }
.nl-tip__hueco.is-lleno { color: #4ADE80; letter-spacing: 0; border-bottom: 2px solid rgba(74,222,128,.5); }
.gl-prac__fig { margin: 0 auto; display: flex; flex-direction: column; align-items: center; gap: .3rem; }
.gl-prac__fig img { max-height: calc(var(--alto) * .38); width: auto; border-radius: 12px; background: #fff; }
.gl-prac__fig figcaption { font-size: .8rem; color: #5B7782; }
.gl-prac__resumen td:first-child { width: 2.2rem; text-align: center; }

/* Tablero de Punnett */
.gl-pun__caja { gap: 1rem; }
.gl-pun__caso { font-size: clamp(1rem, 1.6vw, 1.25rem) !important; }
.gl-pun__padres { display: flex; justify-content: center; gap: 1rem; font-size: 1.25rem; font-weight: 800; color: #0E7490; }
.gl-pun { display: grid; grid-template-columns: repeat(3, minmax(70px, 120px)); gap: .5rem; justify-content: center; margin: 0 auto; }
.gl-pun__esq { display: grid; place-items: center; font-weight: 800; color: #5B7782; font-size: .95rem; }
.gl-pun__c {
    aspect-ratio: 1; border-radius: 14px; border: 2px solid #A5D8E3; background: #F0FBFD; color: #0B2230;
    font: 800 clamp(1.1rem, 2.2vw, 1.6rem)/1 'Plus Jakarta Sans', sans-serif; cursor: pointer;
    display: grid; place-items: center; transition: transform .12s ease, border-color .12s ease;
}
.gl-pun__c.gl-pun__g { background: #E0F2FE; border-style: dashed; }
.gl-pun__c:not([disabled]):hover { transform: translateY(-2px); border-color: #0891B2; }
.gl-pun__c.is-sel { border-color: #F59E0B; box-shadow: 0 0 0 3px rgba(245,158,11,.35); }
.gl-pun__c.is-lleno { border-color: #94A3B8; }
.gl-pun__c.is-ok { border-color: #16A34A; background: #DCFCE7; border-style: solid; }
.gl-pun__c.is-mal { border-color: #DC2626; background: #FEE2E2; }
.gl-pun__c[disabled] { cursor: default; }
.gl-pun__vacia { color: #A5B4BC; font-weight: 600; }
.gl-pun__sel { font-size: .9rem; }
.gl-pun__sel strong { font-size: 1.1rem; color: #FCD34D; }
.gl-pun__fichas { display: flex; flex-wrap: wrap; gap: .5rem; }
.gl-pun__ficha {
    min-width: 3.2rem; padding: .55rem .8rem; border-radius: 12px; border: 1px solid rgba(6,182,212,.5);
    background: rgba(6,182,212,.12); color: #fff; font: 800 1.15rem/1 'Plus Jakarta Sans', sans-serif; cursor: pointer;
}
.gl-pun__ficha:hover { background: rgba(6,182,212,.3); }
.gl-pun__borrar { border-color: var(--gray-700); background: transparent; color: var(--gray-300); }
.gl-pun__galeria { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 1rem; }
.gl-pun__mini { display: flex; flex-direction: column; gap: .4rem; font-size: .82rem; color: #0B2230; }
.gl-pun__mini .gl-pun { grid-template-columns: repeat(3, 48px); gap: .25rem; }
.gl-pun__mini .gl-pun__c { font-size: .9rem; border-radius: 8px; border-width: 1px; }
.gl-pun__resp { font-weight: 800; color: #0E7490; }

/* Mesa genérica: recursos en la vista */
.gl-gen__vista { align-items: stretch; }
.gl-gen__recursos { width: 100%; }
.gl-gen__pane { display: none; }
.gl-gen__pane.active { display: block; }
.gl-gen__pane .nl-act-iframe { height: calc(var(--alto) - 3.5rem); min-height: 420px; border-radius: 12px; }
.gl-gen__pane .nl-act-img { border-radius: 12px; background: #fff; max-height: calc(var(--alto) - 3rem); object-fit: contain; }
.gl-gen__pane--texto_html { background: var(--navy-mid); border: 1px solid var(--gray-700); border-radius: 14px; }
.gl-gen__vista .nl-act-tabs { margin-bottom: .5rem; }
@media (max-width: 900px) {
    #gl-prac .nl-tip__vista { width: 100%; }
    .gl-gen__pane .nl-act-iframe { height: 65vh; }
}

.gl-cartas .nl-tip__carta-nom { font-size: clamp(.78rem, 1.15vw, .95rem); overflow-wrap: anywhere; hyphens: auto; }
.gl-pun__mini p { color: #0B2230; }
