/* Diplomatura en Blockchain: encabezado con la diplomatura como cadena de bloques (js/bc-cadena.js).
   Misma familia tipográfica que el laboratorio (Space Grotesk, Montserrat, DM Mono) y el violeta de la diplomatura
   (el de la campaña): lila para lo confirmado y ámbar solo para el minado en curso. Va con html body.blockchain-theme porque style2.css se carga después. */

html body.blockchain-theme {
    --bc-noche: #0d0820;
    --bc-ambar: #f5b942;
    --bc-lila: #c4a5ff;
    --bc-tinta: #efe9fb;
    --bc-tenue: rgba(226, 216, 247, .64);
    --bc-mono: "DM Mono", ui-monospace, Menlo, Consolas, monospace;
}

html body.blockchain-theme header.fondoBlockchain {
    position: relative;
    height: auto;
    min-height: 92vh;
    padding: 9.5rem 0 3.2rem;
    overflow: hidden;
    background:
        radial-gradient(900px 560px at 50% 28%, rgba(124, 58, 237, .32), transparent 64%),
        radial-gradient(800px 500px at 85% 100%, rgba(76, 28, 127, .55), transparent 62%),
        radial-gradient(600px 400px at 8% 90%, rgba(245, 185, 66, .07), transparent 60%),
        var(--bc-noche) !important;
}
html body.blockchain-theme header.fondoBlockchain::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(196, 165, 255, .07) 1px, transparent 1px),
        linear-gradient(90deg, rgba(196, 165, 255, .07) 1px, transparent 1px);
    background-size: 48px 48px;
    -webkit-mask-image: radial-gradient(ellipse at 50% 45%, #000 15%, transparent 72%);
    mask-image: radial-gradient(ellipse at 50% 45%, #000 15%, transparent 72%);
    pointer-events: none;
}
.bc-fondo { position: absolute; inset: 0; pointer-events: none; }
.bc-fondo canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
html body.blockchain-theme header.fondoBlockchain > .container { position: relative; z-index: 1; }

.bc-rotulo {
    margin: 0 0 1rem;
    color: rgba(196, 165, 255, .85) !important;
    font-family: var(--bc-mono) !important;
    font-size: .78rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    text-align: center;
}
html body.blockchain-theme header#masthead h1.masthead-heading {
    max-width: 1000px;
    margin: 0 auto 2.2rem;
    font-family: "Space Grotesk", Montserrat, sans-serif !important;
    font-weight: 600 !important;
    font-size: clamp(1.8rem, 4vw, 3.1rem) !important;
    line-height: 1.12 !important;
    letter-spacing: -.01em !important;
    text-transform: none !important;
    background: linear-gradient(90deg, #fff, #e6d9ff 40%, var(--bc-lila) 72%, #9d6bff);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent !important;
    text-shadow: none !important;
}

/* Subpáginas: el mismo fondo en un encabezado más bajo (el rótulo lo agrega js/bc-cadena.js) */
html body.blockchain-theme header.backgroundAr.fondoBlockchain {
    height: auto;
    min-height: 0;
    padding: 9.8rem 0 3.4rem;
    text-align: center !important;
    box-shadow: none !important;      /* aranceles, beca e inscripción traen sombra y foto propias (style2.css, por id) */
}
html body.blockchain-theme header.backgroundAr.fondoBlockchain::before {
    background-image:
        linear-gradient(rgba(196, 165, 255, .07) 1px, transparent 1px),
        linear-gradient(90deg, rgba(196, 165, 255, .07) 1px, transparent 1px) !important;
    background-color: transparent !important;
    background-repeat: repeat !important;
    background-position: 0 0 !important;
    background-size: 48px 48px !important;
    animation: none !important;
    z-index: 0 !important;
}
html body.blockchain-theme header.backgroundAr.fondoBlockchain .masthead-heading {
    display: inline-block;
    max-width: 920px;
    margin: 0 auto;
    font-family: "Space Grotesk", Montserrat, sans-serif !important;
    font-weight: 600 !important;
    font-size: clamp(1.45rem, 3vw, 2.35rem) !important;
    line-height: 1.18 !important;
    letter-spacing: -.01em;
    text-transform: none !important;
    background: linear-gradient(90deg, #fff, #e6d9ff 40%, var(--bc-lila) 72%, #9d6bff);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent !important;
}
html body.blockchain-theme .section-title-line h2 { font-family: "Space Grotesk", Montserrat, sans-serif; letter-spacing: -.01em; }

/* La cadena */
.bc-cadena {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 2.2rem;
    max-width: 1180px;
    margin: 0 auto;
}
.bc-bloque {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: .42rem;
    padding: .95rem 1rem 1rem;
    border: 1px solid rgba(196, 165, 255, .24);
    border-radius: 12px;
    background: rgba(20, 11, 42, .78);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    color: var(--bc-tinta);
    text-align: left;
    font: 400 .82rem Montserrat, -apple-system, "Segoe UI", sans-serif;
    cursor: pointer;
    opacity: .55;
    transition: opacity .4s ease, border-color .4s ease, box-shadow .4s ease, transform .25s ease;
}
.bc-bloque:hover { transform: translateY(-3px); }
.bc-bloque.minando { opacity: 1; border-color: rgba(245, 185, 66, .7); box-shadow: 0 0 26px rgba(245, 185, 66, .25); }
.bc-bloque.minado { opacity: 1; border-color: rgba(196, 165, 255, .55); box-shadow: 0 0 22px rgba(196, 165, 255, .16); }
/* enlace al bloque siguiente: el hash anterior que guarda cada bloque */
.bc-bloque:not(:last-child)::after {
    content: "";
    position: absolute;
    top: 50%;
    right: -2.2rem;
    width: 2.2rem;
    height: 2px;
    background: rgba(196, 165, 255, .16);
    transition: background .5s ease, box-shadow .5s ease;
}
.bc-bloque.minado:not(:last-child)::after {
    background: linear-gradient(90deg, var(--bc-lila), rgba(196, 165, 255, .4));
    box-shadow: 0 0 10px rgba(196, 165, 255, .6);
}
.bc-bloque-cab {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font: 600 .7rem var(--bc-mono);
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--bc-ambar);
}
.bc-bloque.minado .bc-bloque-cab { color: var(--bc-lila); }
.bc-bloque-estado { font-weight: 500; letter-spacing: .04em; color: var(--bc-tenue); }
.bc-bloque.minando .bc-bloque-estado { color: var(--bc-ambar); animation: bc-latido 1s ease-in-out infinite; }
.bc-bloque.minado .bc-bloque-estado { color: var(--bc-lila); }
.bc-bloque-titulo {
    margin-bottom: .2rem;
    font: 600 1rem/1.3 "Space Grotesk", Montserrat, sans-serif;
    color: #fff;
}
.bc-campo { display: flex; justify-content: space-between; gap: .6rem; font-size: .7rem; color: var(--bc-tenue); }
.bc-campo > span { font-family: var(--bc-mono); text-transform: uppercase; letter-spacing: .06em; }
.bc-campo code {
    overflow: hidden;
    color: #ddd0f7;
    background: none;
    font: 400 .72rem var(--bc-mono);
    white-space: nowrap;
    text-overflow: ellipsis;
}
.bc-campo-hash code b { color: var(--bc-lila); font-weight: 600; }
.bc-bloque.minando .bc-hash, .bc-bloque.minando .bc-nonce { color: var(--bc-ambar); }

.bc-estado {
    min-height: 1.4em;
    margin: 1.6rem auto 1.5rem;
    color: var(--bc-tenue) !important;
    font: 400 .76rem var(--bc-mono) !important;
    letter-spacing: .03em;
    text-align: center;
}
.bc-acciones { display: flex; flex-wrap: wrap; justify-content: center; gap: .8rem; }
html body.blockchain-theme header#masthead #buttonPreinscripcion {
    border: 0;
    border-radius: 999px;
    padding: .8rem 1.4rem;
    background: linear-gradient(135deg, var(--bc-ambar), #ffd77e);
    color: #1a1204;
    font: 700 .92rem Montserrat, sans-serif;
    letter-spacing: .02em;
    text-transform: none !important;
    box-shadow: 0 0 26px rgba(245, 185, 66, .35);
}
html body.blockchain-theme header#masthead a.bc-boton-borde { color: var(--bc-tinta) !important; }
.bc-boton-borde {
    display: inline-flex;
    align-items: center;
    padding: .78rem 1.35rem;
    border: 1px solid rgba(196, 165, 255, .45);
    border-radius: 999px;
    background: rgba(20, 11, 42, .5);
    color: var(--bc-tinta) !important;
    font: 600 .92rem Montserrat, sans-serif;
    text-decoration: none !important;
}
.bc-boton-borde:hover { border-color: var(--bc-lila); background: rgba(196, 165, 255, .08); }

@keyframes bc-latido { 50% { opacity: .45; } }

@media (max-width: 767.98px) {
    html body.blockchain-theme header.backgroundAr.fondoBlockchain { padding: 7rem 0 2.4rem; }
}
@media (max-width: 991.98px) {
    html body.blockchain-theme header#masthead.fondoBlockchain { padding-top: 8rem; min-height: 0; }
    .bc-cadena { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.4rem 2rem; max-width: 640px; }
    .bc-bloque:nth-child(2n)::after { display: none; }
    .bc-bloque:not(:last-child)::after { right: -2rem; width: 2rem; }
}
@media (max-width: 575.98px) {
    .bc-cadena { grid-template-columns: 1fr; gap: 1.4rem; max-width: 380px; }
    .bc-bloque::after { display: block !important; top: auto; bottom: -1.4rem; right: auto; left: 50%; width: 2px !important; height: 1.4rem; }
    .bc-bloque:last-child::after { display: none !important; }
    .bc-bloque.minado:not(:last-child)::after { background: linear-gradient(180deg, var(--bc-lila), rgba(196, 165, 255, .4)); }
    .bc-rotulo { font-size: .66rem; letter-spacing: .1em; }
}
@media (prefers-reduced-motion: reduce) {
    .bc-bloque, .bc-bloque::after { transition: none; }
    .bc-bloque.minando .bc-bloque-estado { animation: none; }
}

/* ---------- Resto de la portada: la estética del encabezado hacia abajo ----------
   Colores: el violeta del sitio (style2.css y estilos en línea) queda como está. Desde acá van la tipografía, la
   franja oscura de información, los rótulos con hash y el ritmo vertical, sin tocar el HTML ni las subpáginas. */
html body.blockchain-theme {
    --bc-violeta: #4C1C7F;
    --bc-violeta-osc: #261951;
    font-family: Montserrat, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
}
html body.blockchain-theme p,
html body.blockchain-theme li,
html body.blockchain-theme td,
html body.blockchain-theme th,
html body.blockchain-theme .section-subheading,
html body.blockchain-theme .accordion-body,
html body.blockchain-theme .accordion-button,
html body.blockchain-theme .card,
html body.blockchain-theme .lead {
    font-family: Montserrat, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
    font-style: normal;
}
html body.blockchain-theme h2.section-heading,
html body.blockchain-theme h2.card-t,
html body.blockchain-theme #cta-inscripcion h2 {
    font-family: "Space Grotesk", Montserrat, sans-serif !important;
    font-weight: 600 !important;
    text-transform: none !important;
    letter-spacing: -.01em !important;
}
html body.blockchain-theme h3, html body.blockchain-theme h4, html body.blockchain-theme h5 {
    font-family: "Space Grotesk", Montserrat, sans-serif;
}
html body.blockchain-theme .accordion-button:not(.collapsed) { box-shadow: inset 3px 0 0 var(--bc-violeta); }

/* La franja de información continúa el encabezado: datos del bloque sobre fondo oscuro */
html body.blockchain-theme #containerInfo {
    border: 0 !important;
    background: linear-gradient(180deg, #110a26, #170d33) !important;
    color: #e6def6;
}
html body.blockchain-theme #containerInfo p { color: #d4c9ea; }
html body.blockchain-theme #containerInfo .fw-semibold,
html body.blockchain-theme #containerInfo strong {
    color: var(--bc-lila) !important;
    font-family: var(--bc-mono);
    font-weight: 500 !important;
    letter-spacing: .06em;
}
html body.blockchain-theme #containerInfo a:not(.btn) { color: var(--bc-lila) !important; }

/* Rótulo de cada sección: su hash, encadenado con el de la anterior (js/bc-cadena.js) */
.bc-eslabon {
    margin: 0 0 .5rem;
    color: var(--bc-violeta);
    font: 500 .72rem var(--bc-mono);
    letter-spacing: .08em;
    text-align: center;
    text-transform: lowercase;
    white-space: nowrap;
    opacity: .85;
}
.bc-eslabon b { font-weight: 500; opacity: .5; }
.bc-eslabon.bc-eslabon-izq { margin-bottom: .3rem; text-align: left; }
section.bg-dark .bc-eslabon, [style*="#261951"] .bc-eslabon { color: var(--bc-lila); }

/* Ritmo vertical: todos los bloques con el mismo aire (antes había huecos de 270 a 510 px) */
html body.blockchain-theme > section:not(#contact),
html body.blockchain-theme > article#cta-inscripcion,
html body.blockchain-theme > article#informacionPlan {
    padding-top: 4rem !important;
    padding-bottom: 4rem !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}
html body.blockchain-theme > div.container { margin-top: 2.5rem !important; margin-bottom: 2.5rem !important; }
@media (max-width: 767.98px) {
    html body.blockchain-theme > section:not(#contact),
    html body.blockchain-theme > article#cta-inscripcion,
    html body.blockchain-theme > article#informacionPlan { padding-top: 3rem !important; padding-bottom: 3rem !important; }
    .bc-eslabon { font-size: .66rem; letter-spacing: .04em; }
}

/* Menú en una línea entre 992 y 1399 px, como en dev-ia */
@media (min-width: 992px) and (max-width: 1399.98px) {
    html body.blockchain-theme #mainNav .navbar-brand { margin-right: .35rem; }
    html body.blockchain-theme #mainNav .navbar-brand img { height: 40px !important; width: auto; }
    html body.blockchain-theme #mainNav .navbar-nav .nav-item { margin: 0 !important; }
    html body.blockchain-theme #mainNav .navbar-nav .nav-item .nav-link { padding: .4rem .42rem !important; font-size: .74rem !important; letter-spacing: .02em; white-space: nowrap; }
}
@media (min-width: 992px) and (max-width: 1099.98px) {
    html body.blockchain-theme #mainNav .navbar-brand img { height: 34px !important; }
    html body.blockchain-theme #mainNav .navbar-nav .nav-item .nav-link { padding: .4rem .3rem !important; font-size: .7rem !important; }
}
/* desde 1400 px el menú partía cada ítem en dos renglones */
@media (min-width: 1400px) {
    html body.blockchain-theme #mainNav .navbar-nav .nav-item { margin: 0 !important; }
    html body.blockchain-theme #mainNav .navbar-nav .nav-item .nav-link { padding: .4rem .55rem !important; font-size: .8rem !important; letter-spacing: .03em; white-space: nowrap; }
}
/* en modo oscuro los rótulos con hash van en lila (el violeta no se lee sobre fondo oscuro) */
html[data-theme="dark"] body.blockchain-theme .bc-eslabon { color: var(--bc-lila) !important; }

/* ---------- Secciones oscuras (.bc-oscuro) y plan de estudios como la cadena del encabezado ----------
   .bc-oscuro: fondo oscuro con la grilla del encabezado, en los dos temas, para las secciones que son parte de la
   cadena. En el plan, js/bc-cadena.js llena anterior, nonce y hash con la misma minería y al abrir un curso lo
   vuelve a verificar. */
html body.blockchain-theme .bc-oscuro {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(700px 420px at 12% 8%, rgba(124, 58, 237, .22), transparent 62%),
        radial-gradient(700px 480px at 90% 92%, rgba(76, 28, 127, .45), transparent 62%),
        linear-gradient(180deg, #170d33, var(--bc-noche)) !important;
    color: var(--bc-tinta);
}
html body.blockchain-theme .bc-oscuro::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(196, 165, 255, .05) 1px, transparent 1px),
        linear-gradient(90deg, rgba(196, 165, 255, .05) 1px, transparent 1px);
    background-size: 48px 48px;
    -webkit-mask-image: linear-gradient(180deg, transparent, #000 18%, #000 82%, transparent);
    mask-image: linear-gradient(180deg, transparent, #000 18%, #000 82%, transparent);
    pointer-events: none;
}
/* style2.css le da 100 px de relleno a los costados en todos los anchos (antes lo salteaba .full-bleed): el margen lo pone el container */
html body.blockchain-theme > article#informacionPlan { padding-left: 0 !important; padding-right: 0 !important; }
html body.blockchain-theme .bc-oscuro > .container { position: relative; z-index: 1; }
html body.blockchain-theme .bc-oscuro h2.card-t,
html body.blockchain-theme .bc-oscuro h2.section-heading {
    color: #fff !important;
    background: linear-gradient(90deg, #fff, #e6d9ff 50%, var(--bc-lila));
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}
html body.blockchain-theme .bc-oscuro > .container > hr {
    height: 1px;
    border: 0;
    background: linear-gradient(90deg, transparent, rgba(196, 165, 255, .5), transparent);
    opacity: 1;
}
/* style2.css pinta en violeta con !important todo link dentro de un article, section o .container, con selectores de
   hasta siete clases: :not(#_) suma el peso de un id (no hay ningún elemento con id "_") para ganarles sin atar la
   regla a una sección */
html body.blockchain-theme .bc-oscuro a.bc-plan-programa:not(#_),
html body.blockchain-theme .bc-oscuro a.bc-boton-borde:not(#_) { color: var(--bc-tinta) !important; }
html body.blockchain-theme .bc-oscuro .bc-eslabon { color: var(--bc-lila) !important; }

.bc-plan { max-width: 1040px; margin: 0 auto; }
.bc-plan-intro {
    max-width: 680px;
    margin: 0 auto 2rem;
    color: var(--bc-tenue) !important;
    font-size: .95rem;
    line-height: 1.6;
    text-align: center;
}
.bc-plan-cadena { position: relative; }

/* génesis y enlaces: la línea que une cada bloque con el siguiente lleva el hash que este guarda como "anterior" */
.bc-plan-genesis, .bc-plan-enlace {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .25rem;
    font: 500 .66rem var(--bc-mono);
    letter-spacing: .06em;
    text-transform: lowercase;
    color: var(--bc-tenue);
}
.bc-plan-genesis { margin-bottom: 0; padding-bottom: 1.6rem; }
.bc-plan-genesis code, .bc-plan-enlace code {
    position: relative;
    z-index: 1;
    padding: .2rem .65rem;
    border: 1px solid rgba(196, 165, 255, .22);
    border-radius: 999px;
    background: #140b2a;
    color: #ddd0f7;
    font: 400 .7rem var(--bc-mono);
    transition: border-color .5s ease, color .5s ease, box-shadow .5s ease;
}
.bc-plan-genesis span, .bc-plan-enlace span { position: relative; z-index: 1; padding: 0 .5rem; border-radius: 4px; background: #120a29; }
.bc-plan-genesis::after, .bc-plan-enlace::before {
    content: "";
    position: absolute;
    left: 50%;
    width: 2px;
    margin-left: -1px;
    background: rgba(196, 165, 255, .16);
    transition: background .5s ease, box-shadow .5s ease;
}
.bc-plan-genesis::after { top: 2.2rem; bottom: 0; }
.bc-plan-enlace { padding: 1.1rem 0; }
.bc-plan-enlace::before { top: 0; bottom: 0; }
.bc-plan-enlace.minado::before {
    background: linear-gradient(180deg, var(--bc-lila), rgba(196, 165, 255, .45));
    box-shadow: 0 0 10px rgba(196, 165, 255, .55);
}
.bc-plan-enlace.minado code { border-color: rgba(196, 165, 255, .6); color: var(--bc-lila); box-shadow: 0 0 14px rgba(196, 165, 255, .2); }

/* el bloque */
.bc-plan-bloque {
    position: relative;
    border: 1px solid rgba(196, 165, 255, .24);
    border-radius: 14px;
    background: rgba(20, 11, 42, .82);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    color: var(--bc-tinta);
    transition: border-color .4s ease, box-shadow .4s ease;
}
.bc-plan-bloque.minando { border-color: rgba(245, 185, 66, .7); box-shadow: 0 0 26px rgba(245, 185, 66, .2); }
.bc-plan-bloque.minado { border-color: rgba(196, 165, 255, .5); box-shadow: 0 0 22px rgba(196, 165, 255, .12); }
.bc-plan-bloque.verificado { animation: bc-verificado 1.2s ease-out; }
@keyframes bc-verificado {
    0% { box-shadow: 0 0 0 0 rgba(196, 165, 255, .7), 0 0 22px rgba(196, 165, 255, .12); }
    100% { box-shadow: 0 0 0 14px rgba(196, 165, 255, 0), 0 0 22px rgba(196, 165, 255, .12); }
}
.bc-plan-h { margin: 0; font-size: inherit; }
.bc-plan-cab {
    display: flex;
    align-items: center;
    gap: 1.1rem;
    width: 100%;
    padding: 1.15rem 1.3rem;
    border: 0;
    border-radius: 14px 14px 0 0;
    background: none;
    color: inherit;
    text-align: left;
    cursor: pointer;
}
.bc-plan-cab:focus-visible { outline: 2px solid var(--bc-ambar); outline-offset: 2px; }
.bc-plan-num {
    display: flex;
    flex: 0 0 auto;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 4.2rem;
    height: 4.2rem;
    border: 1px solid rgba(196, 165, 255, .45);
    border-radius: 12px;
    background: linear-gradient(145deg, rgba(124, 58, 237, .45), rgba(38, 25, 81, .9));
    color: #fff;
    font: 600 1.45rem/1 "Space Grotesk", Montserrat, sans-serif;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .12);
}
.bc-plan-num small {
    margin-bottom: .2rem;
    color: var(--bc-lila);
    font: 500 .56rem var(--bc-mono);
    letter-spacing: .1em;
    text-transform: uppercase;
}
.bc-plan-bloque.minando .bc-plan-num small { color: var(--bc-ambar); }
.bc-plan-info { display: flex; flex: 1 1 auto; flex-direction: column; gap: .45rem; min-width: 0; }
.bc-plan-titulo { color: #fff; font: 600 1.14rem/1.3 "Space Grotesk", Montserrat, sans-serif; letter-spacing: -.005em; }
.bc-plan-meta { display: flex; flex-wrap: wrap; gap: .3rem 1.1rem; color: var(--bc-tenue); font-size: .8rem; }
.bc-plan-meta > span { display: inline-flex; align-items: center; gap: .4rem; }
.bc-plan-meta svg, .bc-plan-meta i { color: var(--bc-lila); font-size: .75rem; }
.bc-plan-flecha {
    flex: 0 0 auto;
    width: 2rem;
    height: 2rem;
    border: 1px solid rgba(196, 165, 255, .35);
    border-radius: 50%;
    background: center / .8rem no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23c4a5ff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M2 5l6 6 6-6'/%3E%3C/svg%3E");
    transition: transform .3s ease, background-color .3s ease;
}
.bc-plan-cab:not(.collapsed) .bc-plan-flecha { transform: rotate(180deg); background-color: rgba(196, 165, 255, .14); }
.bc-plan-cab:hover .bc-plan-flecha { background-color: rgba(196, 165, 255, .14); }

/* encabezado del bloque: anterior, datos, nonce, hash y estado */
.bc-plan-hashes {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr)) auto;
    align-items: center;
    gap: .4rem 1.2rem;
    margin: 0 1.3rem;
    padding: .7rem 0 .95rem;
    border-top: 1px dashed rgba(196, 165, 255, .2);
}
.bc-plan-campo { display: flex; flex-direction: column; gap: .1rem; min-width: 0; }
.bc-plan-campo > span { color: var(--bc-tenue); font: 500 .6rem var(--bc-mono); letter-spacing: .1em; text-transform: uppercase; }
.bc-plan-campo code {
    overflow: hidden;
    color: #ddd0f7;
    background: none;
    font: 400 .76rem var(--bc-mono);
    white-space: nowrap;
    text-overflow: ellipsis;
}
.bc-plan-campo-hash code b { color: var(--bc-lila); font-weight: 600; }
.bc-plan-bloque.minando .bc-plan-campo code[data-bc="nonce"],
.bc-plan-bloque.minando .bc-plan-campo code[data-bc="hash"] { color: var(--bc-ambar); }
.bc-plan-estado {
    justify-self: end;
    padding: .22rem .65rem;
    border: 1px solid rgba(196, 165, 255, .25);
    border-radius: 999px;
    color: var(--bc-tenue);
    font: 500 .66rem var(--bc-mono);
    letter-spacing: .06em;
    text-transform: uppercase;
    white-space: nowrap;
}
.bc-plan-bloque.minando .bc-plan-estado { border-color: rgba(245, 185, 66, .6); color: var(--bc-ambar); animation: bc-latido 1s ease-in-out infinite; }
.bc-plan-bloque.minado .bc-plan-estado { border-color: rgba(196, 165, 255, .55); color: var(--bc-lila); }
.bc-plan-bloque.verificado .bc-plan-estado { border-color: transparent; background: var(--bc-lila); color: #1a0f33; }
/* el contenido cambió después de minar (por ejemplo, una traducción automática): el bloque ya no verifica */
.bc-plan-bloque.alterado { border-color: rgba(255, 120, 120, .7); box-shadow: 0 0 22px rgba(255, 120, 120, .15); }
.bc-plan-bloque.alterado .bc-plan-estado { border-color: rgba(255, 120, 120, .7); color: #ff9a9a; }

/* los datos del bloque: contenidos a la izquierda; resultado, lente y programa a la derecha */
.bc-plan-cuerpo {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
    gap: 1.6rem;
    margin: 0 1.3rem;
    padding: 1.2rem 0 1.4rem;
    border-top: 1px solid rgba(196, 165, 255, .14);
}
.bc-plan-etq {
    margin: 0 0 .5rem !important;
    color: var(--bc-lila) !important;
    font: 500 .66rem var(--bc-mono) !important;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.bc-plan-datos p:not(.bc-plan-etq) { margin: 0; color: #d4c9ea !important; font-size: .92rem; line-height: 1.7; }
.bc-plan-datos .bc-plan-nota {
    margin-top: .9rem !important;
    padding: .6rem .85rem;
    border: 1px dashed rgba(196, 165, 255, .3);
    border-radius: 10px;
    font-size: .85rem !important;
}
.bc-plan-nota strong, .bc-plan-tp strong { color: #fff; }
.bc-plan-lado { display: flex; flex-direction: column; gap: .9rem; }
.bc-plan-tp, .bc-plan-lente { padding: .85rem 1rem; border-radius: 10px; font-size: .88rem; line-height: 1.6; }
.bc-plan-tp { border: 1px solid rgba(245, 185, 66, .35); background: rgba(245, 185, 66, .06); }
.bc-plan-tp .bc-plan-etq { color: var(--bc-ambar) !important; }
.bc-plan-tp p:not(.bc-plan-etq) { margin: 0; color: #efe4c9 !important; }
.bc-plan-lente { border-left: 3px solid var(--bc-lila); background: rgba(196, 165, 255, .08); color: #d4c9ea; }
.bc-plan-lente .pin { margin-right: .35rem; }
.bc-plan-lente strong { color: var(--bc-lila); }
.bc-plan-lente em { color: #fff; }
.bc-plan-programa {
    align-self: flex-start;
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    padding: .55rem 1.05rem;
    border: 1px solid rgba(196, 165, 255, .45);
    border-radius: 999px;
    color: var(--bc-tinta) !important;
    font: 600 .85rem Montserrat, sans-serif;
    text-decoration: none !important;
}
.bc-plan-programa:hover { border-color: var(--bc-lila); background: rgba(196, 165, 255, .1); }
.bc-plan-programa:focus-visible, .bc-boton-borde:focus-visible { outline: 2px solid var(--bc-ambar); outline-offset: 2px; }
.bc-plan-programa svg, .bc-plan-programa i { font-size: .72rem; color: var(--bc-lila); }

/* ¿Y la estrategia? y el cronograma, al pie de la cadena */
.bc-plan-estrategia {
    margin-top: 2.2rem;
    padding: 1.3rem 1.5rem;
    border: 1px solid rgba(196, 165, 255, .22);
    border-left: 3px solid var(--bc-ambar);
    border-radius: 12px;
    background: rgba(20, 11, 42, .6);
}
.bc-plan-estrategia h3 { margin-bottom: .55rem; color: #fff; font-weight: 600; }
.bc-plan-estrategia p { margin: 0; color: #d4c9ea !important; font-size: .95rem; line-height: 1.7; }
.bc-plan-estrategia strong { color: var(--bc-lila); }

/* enhancements.css tiñe en modo oscuro todo p, span y code con !important: acá van los mismos colores que en el tema claro */
html[data-theme="dark"] body.blockchain-theme .bc-oscuro code {
    border: 0;
    background: none !important;
    color: #ddd0f7 !important;
}
html[data-theme="dark"] body.blockchain-theme .bc-oscuro .bc-plan-genesis code,
html[data-theme="dark"] body.blockchain-theme .bc-oscuro .bc-plan-enlace code { border: 1px solid rgba(196, 165, 255, .22); background: #140b2a !important; }
html[data-theme="dark"] body.blockchain-theme .bc-oscuro .bc-plan-enlace.minado code { border-color: rgba(196, 165, 255, .6); color: var(--bc-lila) !important; }
html[data-theme="dark"] body.blockchain-theme .bc-oscuro .bc-plan-bloque.minando code[data-bc="nonce"],
html[data-theme="dark"] body.blockchain-theme .bc-oscuro .bc-plan-bloque.minando code[data-bc="hash"] { color: var(--bc-ambar) !important; }
html[data-theme="dark"] body.blockchain-theme .bc-oscuro .bc-plan-titulo { color: #fff !important; }
html[data-theme="dark"] body.blockchain-theme .bc-oscuro .bc-plan-num small,
html[data-theme="dark"] body.blockchain-theme .bc-oscuro .bc-plan-etq,
html[data-theme="dark"] body.blockchain-theme .bc-oscuro .bc-plan-bloque.minado .bc-plan-estado { color: var(--bc-lila) !important; }
html[data-theme="dark"] body.blockchain-theme .bc-oscuro .bc-plan-tp .bc-plan-etq,
html[data-theme="dark"] body.blockchain-theme .bc-oscuro .bc-plan-bloque.minando .bc-plan-num small,
html[data-theme="dark"] body.blockchain-theme .bc-oscuro .bc-plan-bloque.minando .bc-plan-estado { color: var(--bc-ambar) !important; }
html[data-theme="dark"] body.blockchain-theme .bc-oscuro .bc-plan-bloque.verificado .bc-plan-estado { color: #1a0f33 !important; }
html[data-theme="dark"] body.blockchain-theme .bc-oscuro .bc-plan-bloque.alterado .bc-plan-estado { color: #ff9a9a !important; }
html[data-theme="dark"] body.blockchain-theme .bc-oscuro .bc-plan-intro,
html[data-theme="dark"] body.blockchain-theme .bc-oscuro .bc-plan-meta span,
html[data-theme="dark"] body.blockchain-theme .bc-oscuro .bc-plan-campo > span,
html[data-theme="dark"] body.blockchain-theme .bc-oscuro .bc-plan-estado,
html[data-theme="dark"] body.blockchain-theme .bc-oscuro .bc-plan-genesis span,
html[data-theme="dark"] body.blockchain-theme .bc-oscuro .bc-plan-enlace span { color: var(--bc-tenue) !important; }
html[data-theme="dark"] body.blockchain-theme .bc-oscuro .bc-plan-datos p:not(.bc-plan-etq),
html[data-theme="dark"] body.blockchain-theme .bc-oscuro .bc-plan-lente,
html[data-theme="dark"] body.blockchain-theme .bc-oscuro .bc-plan-estrategia p { color: #d4c9ea !important; }
html[data-theme="dark"] body.blockchain-theme .bc-oscuro .bc-plan-tp p:not(.bc-plan-etq) { color: #efe4c9 !important; }

@media (max-width: 767.98px) {
    .bc-plan-cab { align-items: flex-start; gap: .8rem; padding: 1rem; }
    .bc-plan-num { width: 3.2rem; height: 3.2rem; font-size: 1.15rem; }
    .bc-plan-num small { font-size: .5rem; }
    .bc-plan-titulo { font-size: 1rem; }
    .bc-plan-meta { font-size: .74rem; gap: .25rem .8rem; }
    .bc-plan-flecha { width: 1.7rem; height: 1.7rem; }
    .bc-plan-hashes { grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0 1rem; }
    .bc-plan-estado { grid-column: 1 / -1; justify-self: start; }
    .bc-plan-cuerpo { grid-template-columns: 1fr; gap: 1.1rem; margin: 0 1rem; }
    .bc-plan-estrategia { padding: 1.1rem 1.15rem; }
    html body.blockchain-theme .bc-oscuro > .container { padding-left: 1rem; padding-right: 1rem; }
    .bc-plan-intro { font-size: .9rem; }
}
@media (prefers-reduced-motion: reduce) {
    .bc-plan-bloque, .bc-plan-enlace::before, .bc-plan-enlace code, .bc-plan-flecha { transition: none; }
    .bc-plan-bloque.verificado, .bc-plan-bloque.minando .bc-plan-estado { animation: none; }
}

/* ---------- Cierre: bloque pendiente de la cohorte 2027 (#contact) ----------
   Último bloque de la cadena: el #5 todavía no se minó, así que va en ámbar (pendiente) con borde punteado.
   El eslabón de arriba se enciende en lila cuando el encabezado mina el bloque #4 (code[data-bc-hash="4"].minado).
   La lista de espera sigue siendo la acción principal. */
html body.blockchain-theme section#contact.bc-oscuro { padding: 4rem 0 !important; margin: 0 !important; }
.bc-cierre { max-width: 860px; margin: 0 auto; }
.bc-cierre-enlace:has(code.minado)::before {
    background: linear-gradient(180deg, var(--bc-lila), rgba(245, 185, 66, .55));
    box-shadow: 0 0 10px rgba(196, 165, 255, .45);
}
.bc-cierre-enlace code.minado { border-color: rgba(196, 165, 255, .6); color: var(--bc-lila); box-shadow: 0 0 14px rgba(196, 165, 255, .2); }
.bc-cierre-bloque {
    padding-top: 1.1rem;
    border-style: dashed;
    border-color: rgba(245, 185, 66, .55);
    box-shadow: 0 0 26px rgba(245, 185, 66, .1);
}
.bc-cierre-cab { display: flex; align-items: center; gap: .9rem; margin: 0 1.3rem; padding-bottom: .4rem; }
.bc-cierre-cab .bc-plan-num { width: 3.4rem; height: 3.4rem; font-size: 1.2rem; border-color: rgba(245, 185, 66, .55); }
.bc-cierre-cab .bc-plan-num small { color: var(--bc-ambar); font-size: .5rem; }
.bc-cierre-titulo { flex: 1 1 auto; min-width: 0; color: #fff; font: 600 1.05rem/1.3 "Space Grotesk", Montserrat, sans-serif; }
.bc-cierre-cab .bc-plan-estado { border-color: rgba(245, 185, 66, .6); color: var(--bc-ambar); animation: bc-latido 2s ease-in-out infinite; }
.bc-cierre-bloque .bc-plan-campo code[data-bc-hash="4"].minado { color: var(--bc-lila); }
.bc-cierre-hashes { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.bc-cierre-hashes .bc-plan-campo:nth-child(n+2) code { color: var(--bc-ambar); }
.bc-cierre .btn-primary:focus-visible { outline: 2px solid var(--bc-ambar); outline-offset: 3px; }
html body.blockchain-theme .bc-oscuro .bc-cierre a:not(.btn):not(#_) { color: #fff !important; text-decoration: underline; }
html body.blockchain-theme .bc-oscuro .bc-cierre a:not(.btn):not(#_):hover { color: var(--bc-lila) !important; }
html body.blockchain-theme .bc-oscuro .bc-cierre a:not(.btn):not(#_):focus-visible { outline: 2px solid var(--bc-ambar); outline-offset: 2px; border-radius: 3px; }
/* enhancements.css tiñe p, span y code en modo oscuro con !important: acá los mismos colores que en el tema claro */
html[data-theme="dark"] body.blockchain-theme .bc-oscuro .bc-cierre p { color: #d4c9ea !important; }
html[data-theme="dark"] body.blockchain-theme .bc-oscuro .bc-cierre .bc-cierre-titulo { color: #fff !important; }
html[data-theme="dark"] body.blockchain-theme .bc-oscuro .bc-cierre .bc-cierre-cab .bc-plan-num small,
html[data-theme="dark"] body.blockchain-theme .bc-oscuro .bc-cierre .bc-cierre-cab .bc-plan-estado,
html[data-theme="dark"] body.blockchain-theme .bc-oscuro .bc-cierre .bc-cierre-hashes .bc-plan-campo:nth-child(n+2) code { color: var(--bc-ambar) !important; }
html[data-theme="dark"] body.blockchain-theme .bc-oscuro .bc-cierre .bc-cierre-bloque .bc-plan-campo code[data-bc-hash="4"].minado,
html[data-theme="dark"] body.blockchain-theme .bc-oscuro .bc-cierre .bc-cierre-enlace code.minado { color: var(--bc-lila) !important; }
@media (max-width: 767.98px) {
    html body.blockchain-theme section#contact.bc-oscuro { padding: 3rem 0 !important; }
    html body.blockchain-theme section#contact.bc-oscuro > .container { padding-left: 1rem; padding-right: 1rem; }
    .bc-cierre-cab, .bc-cierre-hashes { margin: 0 1rem; }
    .bc-cierre-hashes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .bc-cierre-hashes .bc-plan-campo-hash { grid-column: 1 / -1; }
    .bc-cierre-bloque .btn-lg { width: 100%; padding-left: 1rem !important; padding-right: 1rem !important; }
}
@media (prefers-reduced-motion: reduce) {
    .bc-cierre-cab .bc-plan-estado { animation: none; }
}

/* ---------- Lo que vas a construir (#proyectos) ----------
   Son proyectos integradores alternativos, no una secuencia: cada uno corre sobre la cadena completa de los cuatro
   cursos y el chip muestra el hash de su punta (bloque #4, lo llena js/bc-cadena.js). Sección clara: el chip es lo
   único que lleva el lenguaje de la cadena. Los colores de enhancements.css (modo oscuro) y style2.css (links) se pisan con el id. */
#proyectos .row > [class*="col-"] { position: relative; }
#proyectos .proyecto-card { height: 100%; display: flex; flex-direction: column; }
#proyectos .proyecto-card > .bc-pr-chip { margin-top: auto; }
#proyectos .proyecto-card > div:not(.bc-icon-wrap) { margin-bottom: 1rem; }

html body.blockchain-theme #proyectos a.bc-pr-chip {
    align-self: center;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: .1rem;
    max-width: 100%;
    padding: .4rem .85rem;
    border: 1px solid rgba(76, 28, 127, .3);
    border-radius: 12px;
    background: #f4eefb;
    color: var(--bc-violeta) !important;
    text-decoration: none !important;
    transition: border-color .3s ease, background-color .3s ease;
}
html body.blockchain-theme #proyectos a.bc-pr-chip:hover { border-color: var(--bc-violeta); background: #ebe0f8; }
html body.blockchain-theme #proyectos a.bc-pr-chip:focus-visible { outline: 2px solid var(--bc-ambar); outline-offset: 2px; }
html body.blockchain-theme #proyectos .bc-pr-bloque {
    color: var(--bc-violeta) !important;
    font: 500 .68rem var(--bc-mono);
    letter-spacing: .04em;
    white-space: nowrap;
}
html body.blockchain-theme #proyectos .bc-pr-bloque > span { color: var(--bc-violeta) !important; font: inherit; opacity: .6; transition: opacity .5s ease; }
html body.blockchain-theme #proyectos .bc-pr-bloque > span.minado { opacity: 1; }
html body.blockchain-theme #proyectos .bc-pr-curso {
    color: #4a4a4a !important;
    font: 600 .74rem Montserrat, sans-serif;
    line-height: 1.3;
}

/* modo oscuro: las tarjetas son oscuras, el chip va en lila */
html[data-theme="dark"] body.blockchain-theme #proyectos a.bc-pr-chip { border-color: rgba(196, 165, 255, .35); background: rgba(196, 165, 255, .08); }
html[data-theme="dark"] body.blockchain-theme #proyectos a.bc-pr-chip:hover { border-color: var(--bc-lila); background: rgba(196, 165, 255, .16); }
html[data-theme="dark"] body.blockchain-theme #proyectos .bc-pr-bloque,
html[data-theme="dark"] body.blockchain-theme #proyectos .bc-pr-bloque > span { color: var(--bc-lila) !important; }
html[data-theme="dark"] body.blockchain-theme #proyectos .bc-pr-curso { color: #c9d1d9 !important; }
@media (prefers-reduced-motion: reduce) {
    #proyectos a.bc-pr-chip, #proyectos .bc-pr-bloque > span { transition: none !important; }
}

/* ---------- Subpágina plan-de-estudios ----------
   El plan usa el mismo marcado que la portada (.bc-oscuro + .bc-plan). El cronograma sigue la cadena: cada curso es
   un bloque (cabecera oscura como las tarjetas del encabezado, con el hash que se mina arriba en [data-bc-hash]) y
   cada clase es una transacción. La sección queda clara: entre el plan y el cronograma va "El camino del alumno". */

html body.blockchain-theme #informacionPlan .breadcrumb { max-width: 1040px; margin: 0 auto 1.6rem; font-size: .85rem; }
html body.blockchain-theme #informacionPlan .breadcrumb-item a { color: var(--bc-lila) !important; }
html body.blockchain-theme #informacionPlan .breadcrumb-item.active { color: var(--bc-tenue) !important; }
html body.blockchain-theme #informacionPlan .breadcrumb-item a:focus-visible { outline: 2px solid var(--bc-ambar); outline-offset: 2px; }

.bc-crono-intro, .bc-crono-aviso { max-width: 720px; margin: 0 auto; color: #5f5873; }
.bc-crono-aviso { margin-top: .5rem; font-size: .85rem; }
.bc-crono-aviso svg, .bc-crono-aviso i { color: #4C1C7F; }
.bc-crono { max-width: 1040px; margin: 0 auto; }

/* el bloque: cabecera oscura con número, título, fechas y docentes, y el hash minado */
.bc-crono-bloque {
    overflow: hidden;
    border: 1px solid rgba(76, 28, 127, .16);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 10px 30px rgba(38, 25, 81, .08);
}
.bc-crono-cab {
    display: flex;
    align-items: center;
    gap: 1.1rem;
    padding: 1.15rem 1.3rem;
    background: linear-gradient(135deg, #261951, #170d33);
    color: var(--bc-tinta);
}
.bc-crono-info { flex: 1 1 auto; min-width: 0; }
.bc-crono-titulo { margin: 0; color: #fff; font: 600 1.14rem/1.3 "Space Grotesk", Montserrat, sans-serif; letter-spacing: -.005em; }
.bc-crono-meta { margin: .4rem 0 0; color: var(--bc-tenue) !important; font-size: .8rem; line-height: 1.5; }
html body.blockchain-theme #cronograma .bc-crono-meta a { color: var(--bc-lila) !important; text-decoration: underline; text-underline-offset: 2px; }
.bc-crono-hashes {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .3rem .8rem;
    margin: 0;
    padding: .55rem 1.3rem .8rem;
    border-top: 1px dashed rgba(196, 165, 255, .2);
    background: #170d33;
    color: var(--bc-tenue);
    font: 500 .62rem var(--bc-mono);
    letter-spacing: .1em;
    text-transform: uppercase;
}
.bc-crono-hashes span:last-child { margin-left: auto; }
.bc-crono-hashes code {
    padding: 0;
    background: none;
    color: #ddd0f7;
    font: 400 .76rem var(--bc-mono);
    letter-spacing: 0;
    text-transform: none;
}
.bc-crono-hashes code.minado { color: var(--bc-lila); }
.bc-crono-cuerpo { padding: 1.2rem 1.3rem 1.4rem; }

/* resultado del TP, cursada conjunta y lente: las mismas cajas que en el plan, en versión clara */
.bc-crono-tp, .bc-crono-nota, .bc-crono-lente { margin: 0 0 .9rem; padding: .85rem 1rem; border-radius: 10px; font-size: .9rem; line-height: 1.6; }
.bc-crono-tp { border: 1px solid rgba(245, 185, 66, .6); background: #fff8e8; color: #4a3712; }
.bc-crono-tp strong { color: #8a5a00; }
.bc-crono-nota { border: 1px dashed rgba(76, 28, 127, .35); color: #3a2a5a; }
.bc-crono-nota strong { color: #261951; }
.bc-crono-lente { margin: 1.1rem 0 0; border-left: 3px solid #4C1C7F; background: #f3ebfb; color: #261951; }
.bc-crono-lente strong { color: #4C1C7F; }
.bc-crono-lente em { color: #261951; }
.bc-crono-tp .pin, .bc-crono-nota .pin, .bc-crono-lente .pin { margin-right: .35rem; }

/* cada clase, una transacción: id a la izquierda, tema y actividad práctica en dos columnas */
.bc-tx-lista { margin: 1.1rem 0 0; padding: 0; border-top: 1px solid rgba(76, 28, 127, .14); list-style: none; }
.bc-tx {
    display: grid;
    grid-template-columns: 5.4rem minmax(0, 1fr);
    gap: 1rem;
    padding: .95rem 0;
    border-bottom: 1px dashed rgba(76, 28, 127, .2);
}
.bc-tx-id { display: flex; flex-direction: column; align-items: flex-start; gap: .3rem; margin: 0; }
.bc-tx-id b {
    padding: .15rem .6rem;
    border: 1px solid rgba(76, 28, 127, .25);
    border-radius: 999px;
    background: rgba(76, 28, 127, .07);
    color: #4C1C7F;
    font: 500 .78rem var(--bc-mono);
    white-space: nowrap;
}
.bc-tx-id span { color: #6b5d85; font: 500 .62rem var(--bc-mono); letter-spacing: .1em; text-transform: uppercase; }
.bc-tx-datos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.4rem; margin: 0; }
.bc-tx-datos dt { margin: 0 0 .25rem; color: #4C1C7F; font: 500 .62rem var(--bc-mono); letter-spacing: .1em; text-transform: uppercase; }
.bc-tx-datos dd { margin: 0; color: #2d2440; font-size: .9rem; line-height: 1.6; }
.bc-tx-datos dd strong { color: #261951; }

/* enlace entre bloques: el hash del bloque anterior, cuando se mina arriba */
.bc-crono-enlace::before { background: rgba(76, 28, 127, .25); }
.bc-crono-enlace span { background: #fff; color: #6b5d85; }
.bc-crono-enlace code { border-color: rgba(76, 28, 127, .25); background: #fff; color: #4C1C7F; }
.bc-crono-enlace code.minado { border-color: rgba(76, 28, 127, .55); box-shadow: 0 0 12px rgba(76, 28, 127, .15); }

.bc-crono-estrategia {
    margin-top: 2.2rem;
    padding: 1.3rem 1.5rem;
    border: 1px solid rgba(76, 28, 127, .16);
    border-left: 3px solid var(--bc-ambar);
    border-radius: 12px;
    background: #fff;
}
.bc-crono-estrategia h3 { margin-bottom: .55rem; color: #261951; font-weight: 600; }
.bc-crono-estrategia p { margin: 0; color: #3a3a3a; font-size: .95rem; line-height: 1.7; }
.bc-crono-estrategia strong { color: #4C1C7F; }

/* modo oscuro: enhancements.css tiñe p, span, dd, dt y code con !important; los bloques van como los del plan */
html[data-theme="dark"] body.blockchain-theme #cronograma .bc-crono-intro,
html[data-theme="dark"] body.blockchain-theme #cronograma .bc-crono-aviso { color: #a9a1bd !important; }
html[data-theme="dark"] body.blockchain-theme #cronograma .bc-crono-aviso svg { color: var(--bc-lila); }
html[data-theme="dark"] body.blockchain-theme #cronograma .bc-crono-bloque,
html[data-theme="dark"] body.blockchain-theme #cronograma .bc-crono-estrategia { border-color: rgba(196, 165, 255, .24); background: #140b2a; box-shadow: none; }
html[data-theme="dark"] body.blockchain-theme #cronograma .bc-crono-titulo { color: #fff !important; }
html[data-theme="dark"] body.blockchain-theme #cronograma .bc-crono-meta,
html[data-theme="dark"] body.blockchain-theme #cronograma .bc-crono-hashes span,
html[data-theme="dark"] body.blockchain-theme #cronograma .bc-tx-id span,
html[data-theme="dark"] body.blockchain-theme #cronograma .bc-crono-enlace span { color: var(--bc-tenue) !important; }
html[data-theme="dark"] body.blockchain-theme #cronograma .bc-plan-num small { color: var(--bc-lila) !important; }
html[data-theme="dark"] body.blockchain-theme #cronograma code { border: 0; background: none !important; color: #ddd0f7 !important; }
html[data-theme="dark"] body.blockchain-theme #cronograma code.minado { color: var(--bc-lila) !important; }
html[data-theme="dark"] body.blockchain-theme #cronograma .bc-crono-enlace::before { background: rgba(196, 165, 255, .2); }
html[data-theme="dark"] body.blockchain-theme #cronograma .bc-crono-enlace span { background: #0d1117; }
html[data-theme="dark"] body.blockchain-theme #cronograma .bc-crono-enlace code { border: 1px solid rgba(196, 165, 255, .25); background: #140b2a !important; }
html[data-theme="dark"] body.blockchain-theme #cronograma .bc-crono-tp { border-color: rgba(245, 185, 66, .35); background: rgba(245, 185, 66, .06); }
html[data-theme="dark"] body.blockchain-theme #cronograma .bc-crono-tp { color: #efe4c9 !important; }
html[data-theme="dark"] body.blockchain-theme #cronograma .bc-crono-tp strong { color: var(--bc-ambar); }
html[data-theme="dark"] body.blockchain-theme #cronograma .bc-crono-nota { border-color: rgba(196, 165, 255, .3); }
html[data-theme="dark"] body.blockchain-theme #cronograma .bc-crono-nota,
html[data-theme="dark"] body.blockchain-theme #cronograma .bc-crono-lente,
html[data-theme="dark"] body.blockchain-theme #cronograma .bc-tx-datos dd,
html[data-theme="dark"] body.blockchain-theme #cronograma .bc-crono-estrategia p { color: #d4c9ea !important; }
html[data-theme="dark"] body.blockchain-theme #cronograma .bc-crono-lente { border-left-color: var(--bc-lila); background: rgba(196, 165, 255, .08); }
html[data-theme="dark"] body.blockchain-theme #cronograma .bc-crono-nota strong,
html[data-theme="dark"] body.blockchain-theme #cronograma .bc-crono-lente em,
html[data-theme="dark"] body.blockchain-theme #cronograma .bc-tx-datos dd strong,
html[data-theme="dark"] body.blockchain-theme #cronograma .bc-crono-estrategia h3 { color: #fff !important; }
html[data-theme="dark"] body.blockchain-theme #cronograma .bc-crono-lente strong,
html[data-theme="dark"] body.blockchain-theme #cronograma .bc-crono-estrategia strong,
html[data-theme="dark"] body.blockchain-theme #cronograma .bc-tx-datos dt { color: var(--bc-lila) !important; }
html[data-theme="dark"] body.blockchain-theme #cronograma .bc-tx-lista { border-top-color: rgba(196, 165, 255, .16); }
html[data-theme="dark"] body.blockchain-theme #cronograma .bc-tx { border-bottom-color: rgba(196, 165, 255, .16); }
html[data-theme="dark"] body.blockchain-theme #cronograma .bc-tx-id b { border-color: rgba(196, 165, 255, .35); background: rgba(196, 165, 255, .1); color: var(--bc-lila); }

@media (max-width: 767.98px) {
    .bc-crono-cab { align-items: flex-start; gap: .8rem; padding: 1rem; }
    .bc-crono-titulo { font-size: 1rem; }
    .bc-crono-meta { font-size: .74rem; }
    .bc-crono-hashes { padding: .5rem 1rem .7rem; }
    .bc-crono-hashes span:last-child { flex-basis: 100%; margin-left: 0; }
    .bc-crono-cuerpo { padding: 1rem; }
    .bc-crono-tp, .bc-crono-nota, .bc-crono-lente { font-size: .86rem; }
    .bc-tx { grid-template-columns: 1fr; gap: .55rem; padding: .85rem 0; }
    .bc-tx-id { flex-direction: row; align-items: center; gap: .6rem; }
    .bc-tx-datos { grid-template-columns: 1fr; gap: .6rem; }
    .bc-tx-datos dd { font-size: .86rem; }
    .bc-crono-estrategia { padding: 1.1rem 1.15rem; }
}
@media (prefers-reduced-motion: reduce) {
    .bc-crono-enlace code { transition: none; }
}

/* ---------- Puentes al juego: botones [data-bcw-nivel] y contratos en vivo ----------
   js/blockchain-juego/main.js abre el nivel al hacer click; red.js llena [data-bcw-contratos]. */
.bc-plan-jugar {
    align-self: flex-start;
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    padding: .55rem 1.05rem;
    border: 0;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--bc-ambar), #ffd77e);
    color: #1a1033;
    font: 700 .85rem Montserrat, sans-serif;
    text-align: left;
    cursor: pointer;
}
.bc-plan-jugar:hover { box-shadow: 0 0 18px rgba(245, 185, 66, .4); }
.bc-plan-jugar:focus-visible { outline: 2px solid var(--bc-lila); outline-offset: 2px; }
button.bc-boton-borde { cursor: pointer; }

.bc-evidencia {
    max-width: 880px;
    margin: 2.5rem auto 0;
    padding: 1.6rem 1.75rem;
    border: 1px solid rgba(196, 165, 255, .3);
    border-radius: 14px;
    background: linear-gradient(160deg, #1a1033, var(--bc-noche));
    color: var(--bc-tinta);
}
html body.blockchain-theme .bc-evidencia p { color: #d4c9ea; }
html body.blockchain-theme .bc-evidencia p.bc-evidencia-k {
    margin-bottom: .35rem;
    color: var(--bc-ambar);
    font: 600 .72rem var(--bc-mono);
    letter-spacing: .08em;
    text-transform: uppercase;
}
html body.blockchain-theme .bc-evidencia h3.bc-evidencia-t {
    margin-bottom: .75rem;
    color: #fff;
    font: 600 1.25rem "Space Grotesk", Montserrat, sans-serif;
}
.bc-evidencia-lista { margin: 1rem 0 0; padding: 0; list-style: none; display: grid; gap: .5rem; }
.bc-evidencia-lista li {
    display: grid;
    grid-template-columns: minmax(9rem, auto) 1fr auto;
    align-items: baseline;
    gap: .75rem;
    padding: .55rem .8rem;
    border-radius: 8px;
    background: rgba(196, 165, 255, .07);
    font-size: .86rem;
}
.bc-evidencia-lista b { color: var(--bc-lila); font-family: var(--bc-mono); font-weight: 600; }
.bc-evidencia-lista span { color: var(--bc-tenue); }
html body.blockchain-theme .bc-evidencia-lista a { color: var(--bc-tinta) !important; text-decoration: none; white-space: nowrap; }
html body.blockchain-theme .bc-evidencia-lista a:hover code { color: var(--bc-ambar); }
.bc-evidencia-lista code { color: var(--bc-tinta); font: 400 .78rem var(--bc-mono); }
.bc-evidencia-acciones { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.25rem; }
.bc-evidencia-acciones .bc-boton-borde { padding: .55rem 1.05rem; font-size: .85rem; }

.bc-cert-juego {
    margin-top: 1.5rem;
    padding: 1rem 1.15rem;
    border-left: 3px solid var(--bc-violeta, #4C1C7F);
    border-radius: 0 10px 10px 0;
    background: rgba(76, 28, 127, .06);
}
html[data-theme="dark"] body.blockchain-theme .bc-cert-juego { border-left-color: var(--bc-lila); background: rgba(196, 165, 255, .08); }

@media (max-width: 767.98px) {
    .bc-evidencia { padding: 1.25rem 1.1rem; }
    .bc-evidencia-lista li { grid-template-columns: 1fr; gap: .2rem; }
    .bc-plan-jugar { white-space: normal; }
}

/* Cuerpo docente: los cursos (bloques) que dicta cada docente */
.bc-doc-bloques { display: flex; justify-content: center; flex-wrap: wrap; gap: .35rem; margin: -.25rem 0 .75rem; }
.bc-doc-bloques span {
    padding: .15rem .6rem;
    border: 1px solid rgba(76, 28, 127, .3);
    border-radius: 999px;
    background: rgba(76, 28, 127, .06);
    color: var(--bc-violeta, #4C1C7F);
    font: 500 .72rem var(--bc-mono);
}
html[data-theme="dark"] body.blockchain-theme .bc-doc-bloques span { border-color: rgba(196, 165, 255, .35); background: rgba(196, 165, 255, .08); color: var(--bc-lila); }

/* Resultados de aprendizaje: una tarjeta por curso, con el hash de su bloque al pie */
.bc-resultado {
    height: 100%;
    display: flex;
    flex-direction: column;
    gap: .55rem;
    padding: 1.25rem 1.35rem;
    border: 1px solid rgba(76, 28, 127, .18);
    border-radius: 12px;
    background: #fff;
}
html body.blockchain-theme .bc-resultado p { margin: 0; }
html body.blockchain-theme .bc-resultado .bc-resultado-k { color: var(--bc-violeta, #4C1C7F); font: 600 .74rem var(--bc-mono); letter-spacing: .06em; text-transform: uppercase; }
html body.blockchain-theme .bc-resultado .bc-resultado-t { font-weight: 600; line-height: 1.5; }
html body.blockchain-theme .bc-resultado .bc-resultado-ev { color: #5b5470; font-size: .88rem; line-height: 1.55; }
html body.blockchain-theme .bc-resultado .bc-resultado-hash { margin-top: auto; padding-top: .5rem; color: #8a80a3; font: 400 .72rem var(--bc-mono); }
html[data-theme="dark"] body.blockchain-theme .bc-resultado { border-color: rgba(196, 165, 255, .2); background: rgba(20, 11, 42, .6); }
html[data-theme="dark"] body.blockchain-theme .bc-resultado .bc-resultado-k { color: var(--bc-lila); }
html[data-theme="dark"] body.blockchain-theme .bc-resultado .bc-resultado-ev,
html[data-theme="dark"] body.blockchain-theme .bc-resultado .bc-resultado-hash { color: var(--bc-tenue); }
