/* Galería de proyectos de estudiantes (blockchain-dev/proyectos/). Usa las variables de css/bc-visual.css. */
html body.blockchain-theme .bcp { padding: 3.2rem 0 4rem; min-height: 50vh; }
.bcp-intro { max-width: 760px; margin: 0 auto 2rem; text-align: center; color: var(--bc-tenue); font-size: 1rem; line-height: 1.6; }
.bcp-barra { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: center; gap: .9rem 1.4rem; margin: 0 auto 1.4rem; }
.bcp-barra[hidden], .bcp-vacio[hidden] { display: none; }
.bcp-filtro { display: flex; flex-direction: column; gap: .25rem; color: var(--bc-tenue); font: 500 .68rem var(--bc-mono); letter-spacing: .1em; text-transform: uppercase; }
.bcp-filtro select {
    min-width: 11rem; max-width: 100%; padding: .45rem .6rem; border-radius: 8px;
    border: 1px solid rgba(196, 165, 255, .35); background: #170d33; color: var(--bc-tinta); font: 400 .9rem Montserrat, sans-serif;
}
.bcp-check { display: flex; align-items: center; gap: .5rem; color: var(--bc-tinta); font-size: .85rem; max-width: 100%; }
.bcp-estado { text-align: center; color: var(--bc-tenue); font: 400 .8rem var(--bc-mono); margin: 0 0 1.4rem; }

.bcp-grilla { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); gap: 1.4rem; }
.bcp-card {
    display: flex; flex-direction: column; gap: .8rem; min-width: 0; padding: 1.3rem 1.3rem 1.2rem; border-radius: 14px;
    border: 1px solid rgba(196, 165, 255, .4); background: rgba(23, 13, 51, .85); box-shadow: 0 0 22px rgba(196, 165, 255, .1);
}
.bcp-card-cab { display: flex; flex-wrap: wrap; gap: .3rem .9rem; color: var(--bc-lila); font: 500 .68rem var(--bc-mono); letter-spacing: .08em; text-transform: uppercase; }
.bcp-card h2 { margin: 0; color: #fff; font: 600 1.2rem/1.3 "Space Grotesk", Montserrat, sans-serif; overflow-wrap: anywhere; }
.bcp-card p { margin: 0; color: var(--bc-tinta); font-size: .92rem; line-height: 1.55; overflow-wrap: anywhere; }
.bcp-autores { color: var(--bc-tenue); font-size: .82rem; }
.bcp-tags { display: flex; flex-wrap: wrap; gap: .35rem; margin: 0; padding: 0; list-style: none; }
.bcp-tags li { padding: .1rem .55rem; border-radius: 999px; border: 1px solid rgba(196, 165, 255, .35); color: var(--bc-lila); font: 400 .72rem var(--bc-mono); }
.bcp-contratos { display: flex; flex-direction: column; gap: .55rem; margin: 0; padding: .8rem 0 0; list-style: none; border-top: 1px dashed rgba(196, 165, 255, .25); }
.bcp-contrato { display: flex; flex-direction: column; gap: .2rem; min-width: 0; }
.bcp-contrato-nombre { color: #fff; font-weight: 600; font-size: .85rem; }
.bcp-contrato code { display: block; overflow: hidden; text-overflow: ellipsis; background: none; color: #ddd0f7; font: 400 .74rem var(--bc-mono); }
.bcp-contrato-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem .8rem; font-size: .75rem; }
.bcp-contrato a, .bcp-enlaces a { color: var(--bc-lila); text-decoration: underline; }
.bcp-ins { padding: .05rem .5rem; border-radius: 999px; font: 500 .66rem var(--bc-mono); letter-spacing: .04em; border: 1px solid rgba(196, 165, 255, .35); color: var(--bc-tenue); }
.bcp-ins.ok { border-color: rgba(120, 220, 160, .6); color: #8fe3b0; }
.bcp-ins.warn { border-color: rgba(245, 185, 66, .7); color: var(--bc-ambar); }
.bcp-enlaces { display: flex; flex-wrap: wrap; gap: .4rem 1rem; font-size: .85rem; }

.bcp-vacio { max-width: 760px; margin: 0 auto; }
.bcp-vacio-bloque { padding: 1.6rem 1.6rem 1.4rem; border-radius: 14px; border: 2px dashed rgba(245, 185, 66, .6); background: rgba(23, 13, 51, .7); color: var(--bc-tinta); }
.bcp-vacio-cab { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .3rem 1rem; margin-bottom: .6rem; color: var(--bc-ambar); font: 500 .7rem var(--bc-mono); letter-spacing: .1em; text-transform: uppercase; }
.bcp-vacio-cab code { background: none; color: var(--bc-ambar); font: inherit; }
.bcp-vacio h2 { margin: 0 0 .8rem; color: #fff; font: 600 1.35rem/1.3 "Space Grotesk", Montserrat, sans-serif; }
.bcp-vacio p, .bcp-vacio li { font-size: .95rem; line-height: 1.6; overflow-wrap: anywhere; }
.bcp-vacio a:not(.bc-boton-borde) { color: var(--bc-lila); text-decoration: underline; }
.bcp-vacio .bc-boton-borde { display: inline-block; }
@media (max-width: 575px) {
    .bcp-filtro, .bcp-filtro select { width: 100%; }
    .bcp-vacio-bloque { padding: 1.2rem 1.1rem; }
}
