body {
    margin: 0;
    min-height: 100vh;

    background: #0d0d0d;

    color: white;

    font-family: Arial, sans-serif;
}

html.restaurando-scroll-feed body {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.tarjeta-restaurada-scroll {
    animation: resaltar-tarjeta-restaurada 0.9s ease;
}

@keyframes resaltar-tarjeta-restaurada {
    0% {
        box-shadow: 0 0 0 1px rgba(0, 217, 255, 0.16), 0 0 0 rgba(0, 217, 255, 0);
    }

    35% {
        box-shadow: 0 0 0 1px rgba(0, 217, 255, 0.52), 0 0 24px rgba(0, 217, 255, 0.22);
    }

    100% {
        box-shadow: 0 0 0 1px rgba(0, 217, 255, 0.16), 0 0 0 rgba(0, 217, 255, 0);
    }
}

.contenedor-login {
    width: 360px;
    margin: 80px auto;
    padding: 30px;
    background: rgba(10, 10, 10, 0.88);
    border: 1px solid #1565c0;
    border-radius: 18px;
    box-shadow: none;
    display: flex;
    flex-direction: column;
    gap: 15px;
}

h1, h2 {
    text-align: center;
    color: #eafcff;
    text-shadow: 0 0 4px #1565c0;
}

input, textarea, select {
    padding: 12px;

    border-radius: 10px;

    border: 1px solid #1565c0;

    background: #171717;

    color: white;

    outline: none;
}

input:focus,
textarea:focus,
select:focus {
    border-color: #42a5f5;

    background: #1f1f1f;
}

textarea {
    min-height: 100px;
    resize: vertical;
}

button {
    padding: 12px;
    border-radius: 12px;
    border: none;
    background: #1976d2;
    color: #001014;
    font-weight: bold;
    cursor: pointer;
    box-shadow: 0 0 10px rgba(21, 101, 192, 0.20);
}

button:hover {
    background: #42a5f5;
}

p, div {
    line-height: 1.4;
}

hr {
    width: 100%;
    border: none;
    border-top: 1px solid rgba(0, 217, 255, 0.4);
}

.comentario strong {
    display: inline-block;

    margin-bottom: 8px;

    color: #42a5f5;
}

.contenido-comentario {
    margin: 0;

    padding: 0;

    color: #eeeeee;

    line-height: 1.5;

    font-size: 15px;
}

.barra-superior {
    position: sticky;
    top: 0;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 16px 24px;

    background: rgba(71, 73, 77, 0.388);

    backdrop-filter: blur(6px);

    border-bottom: 1px solid rgba(129, 133, 139, 0.31);

    z-index: 100;
}

.barra-centro {
    display: flex;

    justify-content: center;

    gap: 16px;
}

.boton-volver-superior,
.boton-volver-panel {
    position: absolute;
    left: 22px;

    width: 34px;
    height: 34px;

    padding: 0 !important;
    border: none !important;
    border-radius: 10px !important;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    font-size: 0 !important;
    line-height: 1;
    background: transparent !important;
    color: transparent !important;
    box-shadow: none !important;
}

.boton-volver-panel {
    position: fixed;
    top: 22px;
    z-index: 50;
}

.boton-volver-superior::before,
.boton-volver-panel::before {
    content: "";
    width: 14px;
    height: 14px;
    border-left: 3px solid rgba(238, 238, 238, 0.92);
    border-bottom: 3px solid rgba(238, 238, 238, 0.92);
    transform: rotate(45deg);
    filter: drop-shadow(0 0 3px rgba(0, 0, 0, 0.72));
    transition: border-color 0.16s ease, transform 0.16s ease, filter 0.16s ease;
}

.boton-volver-superior:hover::before,
.boton-volver-panel:hover::before {
    border-color: rgba(255, 255, 255, 0.98);
    transform: translateX(-2px) rotate(45deg);
    filter: drop-shadow(0 0 6px rgba(0, 217, 255, 0.34));
}

@media (max-width: 760px) {
    .barra-superior {
        padding-left: 80px;
    }

    .boton-volver-superior {
        left: 14px;
        width: 32px;
        height: 32px;
    }

    .barra-centro {
        gap: 8px;
        flex-wrap: wrap;
    }
}

.barra-configuracion {
    position: absolute;

    right: 24px;

    display: flex;

    align-items: center;
}

.boton-configuracion {
    width: 44px;
    height: 44px;

    border-radius: 50%;

    padding: 0;

    font-size: 20px;

    display: flex;
    align-items: center;
    justify-content: center;
}

.menu-configuracion {
    position: absolute;

    top: 56px;
    right: 0;

    min-width: 170px;

    display: none;

    flex-direction: column;
    gap: 8px;

    padding: 10px;

    border-radius: 16px;

    background: rgba(18, 18, 18, 0.96);

    border: 1px solid rgba(180, 180, 180, 0.28);

    box-shadow: 0 14px 35px rgba(0, 0, 0, 0.35);

    z-index: 200;
}

.menu-configuracion.activo {
    display: flex;
}

.menu-configuracion button {
    width: 100%;

    padding: 10px 12px;

    border-radius: 12px;

    text-align: left;

    font-size: 14px;
}

.barra-superior button {
    padding: 13px 22px;

    border-radius: 14px;

    border: 1px solid #c0c0c0;

    background: #2b2b2b;

    color: white;

    font-weight: bold;

    font-size: 15px;

    box-shadow: none;
}

.barra-superior button:hover {
    background: #3a3a3a;

    border-color: #f0f0f0;

    box-shadow: none;
}

.barra-superior .navegacion-activa,
.barra-superior .navegacion-activa:hover {
    border-color: #00d9ff;
    background: linear-gradient(135deg, #00d9ff, #1687e8);
    color: #071019;
    box-shadow: 0 0 18px rgba(0, 217, 255, 0.28);
}

.boton-like {
    width: 42px;
    height: 42px;
    border-radius: 50%;

    border: 2px solid #1565c0;
    background: transparent;

    color: transparent;

    box-shadow: none;

    font-size: 22px;
    line-height: 1;

    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.boton-like:hover {
    background: rgba(21, 101, 192, 0.12);
    box-shadow: none;
}

.boton-like.like-activo {
    background: #00d9ff;
    border-color: #00d9ff;

    color: #020202;

    box-shadow: 0 0 18px rgba(0, 217, 255, 0.75);
}

.acciones-perfil {

    display: flex;

    flex-direction: column;

    gap: 15px;

    margin-top: 15px;

    margin-bottom: 20px;
}

#lista-alumnos {
    display: grid;

    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));

    gap: 20px;

    margin-top: 24px;
}

.tarjeta-alumno {
    min-height: 300px;

    padding: 22px 18px;

    border-radius: 22px;

    border: 1px solid rgba(66, 165, 245, 0.45);

    background:
        linear-gradient(
            145deg,
            rgba(12, 18, 28, 0.96),
            rgba(8, 8, 8, 0.96)
        );

    display: flex;

    flex-direction: column;

    align-items: center;

    justify-content: flex-start;

    gap: 16px;

    cursor: pointer;

    transition:
        transform 0.18s ease,
        border-color 0.18s ease,
        background 0.18s ease;
}

.tarjeta-alumno:hover {
    transform: translateY(-4px);

    border-color: rgba(66, 165, 245, 0.9);

    background:
        linear-gradient(
            145deg,
            rgba(18, 35, 55, 0.96),
            rgba(10, 10, 10, 0.96)
        );
}

.foto-alumno {
    width: 135px;
    height: 135px;

    border-radius: 50%;

    object-fit: cover;

    border: 2px solid rgba(220, 220, 220, 0.48);

    background: #111;
}

.info-alumno {
    text-align: center;

    width: 100%;
}

.info-alumno h3 {
    margin: 4px 0 10px 0;

    color: #42a5f5;

    font-size: 19px;

    line-height: 1.25;
}

.info-alumno p {
    margin: 0 auto 10px auto;

    width: fit-content;

    max-width: 90%;

    padding: 7px 12px;

    border-radius: 12px;

    background: rgba(21, 101, 192, 0.16);

    border: 1px solid rgba(66, 165, 245, 0.25);

    color: #e8f1ff;

    font-size: 14px;
}

.info-alumno small {
    color: #aeb8c7;

    font-size: 12px;

    word-break: break-word;
}

.buscador-alumnos {
    display: flex;

    gap: 12px;

    align-items: center;

    padding: 10px 12px;

    margin-bottom: 20px;

    border-radius: 18px;

    background: rgba(10, 16, 25, 0.9);

    border: 1px solid rgba(66, 165, 245, 0.35);
}

.buscador-alumnos input {
    flex: 1;

    height: 46px;

    border-radius: 14px;

    background: rgba(20, 20, 20, 0.95);

    border: 1px solid rgba(180, 180, 180, 0.28);

    font-size: 15px;
}

.buscador-alumnos input:focus {
    border-color: #42a5f5;

    box-shadow: 0 0 10px rgba(66, 165, 245, 0.22);
}

.buscador-alumnos button {
    height: 46px;

    padding: 0 22px;

    border-radius: 14px;

    white-space: nowrap;
}

.filtros-alumnos {
    display: grid;

    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));

    gap: 10px;

    margin-bottom: 26px;

    padding-bottom: 20px;

    border-bottom: 1px solid rgba(66, 165, 245, 0.35);
}

.filtros-alumnos button {
    font-size: 13px;

    padding: 11px 12px;

    border-radius: 14px;
}

.boton-favorito {
    width: 42px;
    height: 42px;

    border-radius: 50%;
    border: 2px solid #1565c0;

    background: transparent;
    color: #1565c0;

    box-shadow: none;

    font-size: 24px;

    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.boton-favorito:hover {
    background: rgba(21, 101, 192, 0.12);
    box-shadow: none;
}

.boton-favorito.favorito-activo {
    background: #00d9ff;
    border-color: #00d9ff;
    color: #020202;

    box-shadow: 0 0 18px rgba(0, 217, 255, 0.75);
}

.autor-clickeable {

    cursor: pointer;

    transition:
        color 0.2s ease,
        text-shadow 0.2s ease;
}

.autor-clickeable:hover {

    color: #ff66cc;

    text-shadow:
        0 0 6px rgba(255, 102, 204, 0.5);
}

.acciones-publicacion {
    border-left: 1px solid rgba(21, 101, 192, 0.6);
    padding-left: 15px;

    display: flex;
    flex-direction: column;
    gap: 10px;

    align-items: stretch;
}

.acciones-publicacion p {
    min-height: 20px;
    margin: 0;
    text-align: center;
}

@media (max-width: 700px) {

    .tarjeta-feed {
        grid-template-columns: 1fr;
        max-height: none;
    }

    .acciones-publicacion {
        border-left: none;
        border-top: 1px solid rgba(21, 101, 192, 0.6);
        padding-left: 0;
        padding-top: 12px;
    }
}

.autor-publicacion {

    width: fit-content;

    max-width: 70%;

    margin: 0 auto 18px auto;

    padding: 8px 18px;

    border: 1px solid rgba(255,255,255,0.35);

    border-radius: 14px;

    text-align: center;

    background: rgba(255,255,255,0.03);
}

.contador-likes {
    position: absolute;

    top: 4px;
    left: 8px;

    color: #d4af37;

    font-weight: bold;
    font-size: 20px;

    background: transparent;
    border: none;
    box-shadow: none;
}

.contenido-publicacion > p {
    margin-top: 20px;
}

.contenedor-like {
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;

    padding-bottom: 12px;
    margin-bottom: 12px;

    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.contenedor-like .boton-like {
    flex: none;
}

.texto-publicacion,
.texto-comentario,
.texto-carta,
.texto-duda {
    white-space: pre-wrap;
}

.bloque-contenido {
    width: 88%;

    margin: 18px auto;

    padding: 16px 18px;

    background: rgba(15, 15, 15, 0.95);

    border: 1px solid rgba(180, 180, 180, 0.35);

    border-radius: 14px;

    color: #f2f2f2;

    line-height: 1.55;
}

.zona-imagen {
    margin-top: 12px;
    padding: 16px;

    border: 1px dashed rgba(180, 180, 180, 0.5);
    border-radius: 12px;

    background: rgba(40, 40, 40, 0.55);

    text-align: center;
    color: #d8d8d8;
}

.zona-imagen:focus {
    outline: none;
    border-color: #42a5f5;
}

.foto-perfil-preview,
.foto-perfil {
    width: 120px;
    height: 120px;

    object-fit: cover;
    border-radius: 50%;

    margin-top: 12px;

    border: 1px solid rgba(220, 220, 220, 0.5);
}

.avatar-perfil-fallback {
    width: 120px;
    height: 120px;

    border-radius: 50%;

    display: flex;
    align-items: center;
    justify-content: center;

    margin: 0 auto 15px auto;

    background: #2a2a2a;
    border: 1px solid rgba(220, 220, 220, 0.5);

    font-size: 36px;
    font-weight: bold;
}

#vista-previa-publicacion,
#vista-previa-duda {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 12px;
}

.miniatura-contenedor {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
}

.miniatura-imagen {
    width: 100px;
    height: 100px;

    object-fit: cover;
    border-radius: 10px;

    border: 1px solid rgba(220, 220, 220, 0.4);
}

.visor-imagen {
    display: none;

    position: fixed;

    top: 0;
    left: 0;

    width: 100vw;
    height: 100vh;

    background: rgba(0, 0, 0, 0.72);

    align-items: center;
    justify-content: center;

    z-index: 1000;
}

.visor-imagen img {
    max-width: 82vw;
    max-height: 82vh;

    object-fit: contain;

    border-radius: 16px;

    border: 1px solid rgba(220, 220, 220, 0.45);

    background: #111;
}

.boton-secundario {
    background: #1f1f1f;

    border: 1px solid rgba(180, 180, 180, 0.35);

    color: #d0d0d0;

    box-shadow: none;

    font-size: 13px;

    padding: 9px 10px;
}

.boton-secundario:hover {
    background: #2a2a2a;

    box-shadow: none;
}

.opciones-publicacion {
    margin-top: 8px;
}

.boton-peligro {
    background: rgba(120, 20, 20, 0.8);

    border: 1px solid rgba(220, 90, 90, 0.5);

    color: white;

    box-shadow: none;

    font-size: 13px;

    padding: 9px 10px;
}

.boton-peligro:hover {
    background: rgba(170, 30, 30, 0.9);

    box-shadow: none;
}

.perfil-contenedor {
    display: flex;
    flex-direction: column;
    align-items: center;

    gap: 24px;

    padding: 38px 28px 30px;

    position: relative;
}

.perfil-contenedor::before {
    content: none;
    display: none;
}

.nombre-perfil {
    position: relative;
    z-index: 1;

    width: fit-content;

    max-width: 92%;

    padding: 0;

    border: none;

    background: none;

    color: transparent;

    background-image: linear-gradient(
        180deg,
        #ffffff 0%,
        #92d4ff 100%
    );

    -webkit-background-clip: text;
    background-clip: text;

    text-shadow: none;

    font-size: 30px;

    font-weight: 700;

    letter-spacing: 0.4px;

    text-align: center;
}

.foto-perfil-grande,
.avatar-perfil-grande {
    position: relative;
    z-index: 1;

    width: 270px;
    height: 270px;

    border-radius: 50%;

    object-fit: cover;

    border: 2px solid rgba(210, 225, 240, 0.34);

    background: #1b1f2a;

    box-shadow: 0 16px 34px rgba(0, 0, 0, 0.52);
}

.avatar-perfil-grande {
    display: flex;
    align-items: center;
    justify-content: center;

    font-size: 96px;

    font-weight: bold;
}

.datos-perfil {
    display: flex;

    flex-wrap: wrap;

    justify-content: center;

    gap: 10px;

    max-width: 760px;

    position: relative;
    z-index: 1;
}

.datos-perfil span {
    padding: 9px 18px;

    border-radius: 999px;

    background: rgba(255, 255, 255, 0.04);

    border: 1px solid rgba(255, 255, 255, 0.14);

    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);

    color: #e3e9f2;

    font-size: 14px;

    letter-spacing: 0.15px;

    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

.perfil-acciones-centradas {
    display: flex;

    flex-direction: row;

    justify-content: center;

    align-items: center;

    gap: 12px;

    margin-top: 8px;

    position: relative;
    z-index: 1;

    padding: 14px 22px;

    background: linear-gradient(
        180deg,
        rgba(15, 20, 30, 0.65) 0%,
        rgba(8, 12, 20, 0.65) 100%
    );

    border: 1px solid rgba(113, 180, 255, 0.24);

    border-radius: 18px;

    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.32);
}

#cartas {
    width: 100%;
}

.carta-recibida {
    width: min(980px, 96%);
    max-width: 980px;

    margin: 22px auto;

    padding: 24px;

    border-radius: 18px;

    background:
        linear-gradient(
            145deg,
            rgba(95, 20, 45, 0.86),
            rgba(45, 12, 32, 0.94)
        );

    border: 1px solid rgba(255, 105, 160, 0.45);
}

.carta-remitente {
    margin-bottom: 12px;

    color: #ff8fbd;

    font-weight: bold;
}

.carta-contenido {
    padding: 16px;

    border-radius: 14px;

    background: rgba(15, 15, 15, 0.45);

    border: 1px solid rgba(255, 180, 210, 0.25);

    color: #fff0f7;

    line-height: 1.6;
}

#formulario-carta {
    width: 100%;
}

.formulario-carta {
    width: min(980px, 96%);
    max-width: 980px;
}

.textarea-carta {
    width: 100%;
    min-height: 150px;

    box-sizing: border-box;

    margin-top: 12px;
    margin-bottom: 14px;

    background: rgba(20, 20, 20, 0.75);

    border: 1px solid rgba(255, 180, 210, 0.35);

    color: #fff0f7;
}

.opcion-carta-anonima {
    display: block;

    margin-bottom: 14px;

    color: #ffd6e8;
}

.formulario-comentario {
    width: 88%;
    margin: 18px auto;

    padding: 18px;

    border-radius: 16px;

    background: rgba(20, 35, 50, 0.85);

    border: 1px solid rgba(66, 165, 245, 0.55);

    box-shadow: 0 0 14px rgba(66, 165, 245, 0.12);
}

.formulario-comentario textarea {
    width: 100%;

    min-height: 66px;

    box-sizing: border-box;

    resize: vertical;

    padding: 10px 12px;

    border-radius: 14px;

    border: 1px solid rgba(180, 210, 255, 0.45);

    background: rgba(10, 10, 10, 0.75);

    color: white;

    font-size: 14px;

    line-height: 1.35;
}

.formulario-comentario textarea:focus {
    border-color: #42a5f5;

    background: rgba(18, 24, 35, 0.95);

    box-shadow: 0 0 10px rgba(66, 165, 245, 0.25);
}

.formulario-comentario button {
    margin-top: 12px;

    width: 100%;
}

#panel-edicion-perfil {
    width: 100%;
}

.panel-edicion-perfil {
    width: min(880px, 96%);

    margin: 22px auto;

    padding: 24px;

    border-radius: 20px;

    background: rgba(15, 25, 38, 0.92);

    border: 1px solid rgba(66, 165, 245, 0.5);

    box-shadow: 0 0 18px rgba(66, 165, 245, 0.12);
}

.panel-edicion-perfil h3 {
    margin-top: 0;

    text-align: center;

    color: #42a5f5;
}

.grupo-edicion-perfil {
    display: grid;

    grid-template-columns: repeat(2, minmax(0, 1fr));

    gap: 12px;

    margin-bottom: 16px;
}

.grupo-edicion-perfil input,
.grupo-edicion-perfil select {
    width: 100%;

    box-sizing: border-box;
}

.zona-imagen-edicion {
    margin-top: 18px;
}

@media (max-width: 700px) {

    .grupo-edicion-perfil {
        grid-template-columns: 1fr;
    }
}

.categoria-duda {
    width: fit-content;
    margin: 0 auto 14px auto;
    padding: 7px 14px;
    border-radius: 12px;
    background: rgba(21, 101, 192, 0.16);
    border: 1px solid rgba(66, 165, 245, 0.25);
    color: #e8f1ff;
}

.body-login {
    min-height: 100vh;

    display: flex;
    align-items: center;
    justify-content: center;

    background:
        radial-gradient(
            circle at top,
            rgba(21, 101, 192, 0.28),
            transparent 34%
        ),
        #0d0d0d;

    color: white;
}

.login-contenedor {
    width: min(460px, 92vw);
}

.login-card {
    padding: 42px 34px;

    border-radius: 26px;

    background:
        linear-gradient(
            145deg,
            rgba(18, 28, 42, 0.96),
            rgba(8, 8, 8, 0.96)
        );

    border: 1px solid rgba(66, 165, 245, 0.42);

    box-shadow:
        0 0 28px rgba(21, 101, 192, 0.18);

    display: flex;
    flex-direction: column;
    gap: 16px;

    text-align: center;
}

.login-card h1 {
    margin: 0;

    color: #42a5f5;

    font-size: 38px;

    letter-spacing: 0.5px;
}

.login-subtitulo {
    margin: 0 0 14px 0;

    color: #c9d7e8;

    font-size: 15px;
}

.login-card input {
    height: 48px;

    font-size: 15px;

    text-align: center;

    border-radius: 15px;

    background: rgba(15, 15, 15, 0.95);

    border: 1px solid rgba(180, 180, 180, 0.35);
}

.login-card input:focus {
    border-color: #42a5f5;

    box-shadow: 0 0 12px rgba(66, 165, 245, 0.25);
}

.login-card button {
    height: 48px;

    border-radius: 15px;

    font-size: 15px;

    font-weight: bold;
}

.login-texto-secundario {
    margin: 12px 0 0 0;

    color: #9fb8d8;

    font-size: 14px;
}

.boton-secundario-login {
    background: #242424;

    border: 1px solid rgba(220, 220, 220, 0.35);

    color: white;

    box-shadow: none;
}

.boton-secundario-login:hover {
    background: #303030;

    border-color: rgba(255, 255, 255, 0.55);

    box-shadow: none;
}

.registro-contenedor {
    width: min(820px, 94vw);
    margin: 40px auto;
}

.registro-card {
    padding: 38px 34px;

    border-radius: 28px;

    background:
        linear-gradient(
            145deg,
            rgba(18, 28, 42, 0.96),
            rgba(8, 8, 8, 0.96)
        );

    border: 1px solid rgba(66, 165, 245, 0.42);

    box-shadow:
        0 0 30px rgba(21, 101, 192, 0.18);

    display: flex;
    flex-direction: column;
    gap: 18px;

    text-align: center;
}

.registro-card h1 {
    margin: 0;

    color: #42a5f5;

    font-size: 38px;

    letter-spacing: 0.5px;
}

.registro-grid {
    display: grid;

    grid-template-columns: repeat(2, minmax(0, 1fr));

    gap: 14px;
}

.registro-grid input,
.registro-grid select {
    width: 100%;

    height: 48px;

    box-sizing: border-box;

    border-radius: 15px;

    background: rgba(15, 15, 15, 0.95);

    border: 1px solid rgba(180, 180, 180, 0.35);

    color: white;

    font-size: 15px;
}

.registro-grid input:focus,
.registro-grid select:focus {
    border-color: #42a5f5;

    box-shadow: 0 0 12px rgba(66, 165, 245, 0.25);
}

.registro-foto-seccion {
    margin-top: 8px;

    padding: 22px;

    border-radius: 22px;

    background: rgba(10, 16, 25, 0.82);

    border: 1px solid rgba(66, 165, 245, 0.32);
}

.registro-foto-seccion h3 {
    margin: 0 0 6px 0;

    color: #42a5f5;

    font-size: 22px;
}

.registro-foto-seccion p {
    margin: 0 0 14px 0;

    color: #b9cbe0;

    font-size: 14px;
}

.zona-imagen-registro {
    margin: 12px auto;

    max-width: 520px;
}

#archivo-foto-perfil {
    display: block;

    width: min(520px, 100%);

    margin: 14px auto 0 auto;
}

#vista-previa-perfil {
    display: flex;

    justify-content: center;

    margin-top: 14px;
}

.foto-perfil-preview {
    width: 170px;
    height: 170px;

    object-fit: cover;

    border-radius: 50%;

    border: 2px solid rgba(220, 220, 220, 0.5);

    background: #111;
}

.boton-crear-cuenta {
    height: 50px;

    border-radius: 16px;

    font-size: 16px;

    font-weight: bold;

    margin-top: 4px;
}

@media (max-width: 720px) {

    .registro-card {
        padding: 30px 22px;
    }

    .registro-grid {
        grid-template-columns: 1fr;
    }

    .registro-card h1 {
        font-size: 32px;
    }
}

.body-panel {
    min-height: 100vh;

    display: flex;
    align-items: center;
    justify-content: center;

    background:
        radial-gradient(
            circle at top left,
            rgba(21, 101, 192, 0.22),
            transparent 32%
        ),
        radial-gradient(
            circle at bottom right,
            rgba(66, 165, 245, 0.12),
            transparent 30%
        ),
        #0d0d0d;

    color: white;
}

.seleccion-contenedor {
    width: min(680px, 92vw);
}

.seleccion-card {
    padding: 42px 38px;

    border-radius: 26px;

    background:
        linear-gradient(
            145deg,
            rgba(20, 28, 40, 0.96),
            rgba(12, 12, 12, 0.97)
        );

    border: 1px solid rgba(66, 165, 245, 0.32);

    box-shadow:
        0 18px 45px rgba(0, 0, 0, 0.35);

    text-align: center;

    display: flex;
    flex-direction: column;
    gap: 18px;
}

.seleccion-card h1 {
    margin: 0;

    color: #f2f2f2;

    font-size: 36px;

    font-weight: bold;
}

.seleccion-card .login-subtitulo {
    color: #b9cbe0;
}

.opciones-feed {
    display: flex;
    flex-direction: column;

    gap: 16px;

    margin-top: 12px;
}

.opciones-feed button {
    padding: 20px 22px;

    border-radius: 18px;

    background:
        linear-gradient(
            145deg,
            rgba(24, 38, 56, 0.92),
            rgba(20, 20, 20, 0.96)
        );

    border: 1px solid rgba(66, 165, 245, 0.38);

    color: white;

    box-shadow: none;

    display: flex;
    flex-direction: column;

    align-items: flex-start;

    gap: 7px;

    text-align: left;

    transition:
        transform 0.16s ease,
        border-color 0.16s ease,
        background 0.16s ease;
}

.opciones-feed button:hover {
    transform: translateY(-3px);

    border-color: rgba(66, 165, 245, 0.85);

    background:
        linear-gradient(
            145deg,
            rgba(30, 52, 76, 0.96),
            rgba(25, 25, 25, 0.98)
        );

    box-shadow: none;
}

.opciones-feed span {
    color: #42a5f5;

    font-size: 20px;

    font-weight: bold;
}

.opciones-feed small {
    color: #d7e3f1;

    font-size: 14px;

    line-height: 1.4;
}

.principal-contenedor {
    width: min(920px, 94vw);
}

.principal-card {
    padding: 42px 38px;

    border-radius: 28px;

    background:
        linear-gradient(
            145deg,
            rgba(20, 28, 40, 0.96),
            rgba(12, 12, 12, 0.97)
        );

    border: 1px solid rgba(66, 165, 245, 0.32);

    box-shadow:
        0 18px 45px rgba(0, 0, 0, 0.35);

    text-align: center;
}

.principal-card h1 {
    margin: 0;

    color: #f2f2f2;

    font-size: 38px;

    font-weight: bold;
}

.principal-card .login-subtitulo {
    color: #b9cbe0;
}

.menu-principal {
    display: grid;

    grid-template-columns: repeat(2, minmax(0, 1fr));

    gap: 16px;

    margin-top: 28px;
}

.menu-principal button {
    min-height: 128px;

    padding: 22px;

    border-radius: 20px;

    background:
        linear-gradient(
            145deg,
            rgba(24, 38, 56, 0.92),
            rgba(20, 20, 20, 0.96)
        );

    border: 1px solid rgba(66, 165, 245, 0.38);

    color: white;

    box-shadow: none;

    display: flex;
    flex-direction: column;

    align-items: flex-start;
    justify-content: center;

    gap: 8px;

    text-align: left;

    transition:
        transform 0.16s ease,
        border-color 0.16s ease,
        background 0.16s ease;
}

.menu-principal button:hover {
    transform: translateY(-3px);

    border-color: rgba(66, 165, 245, 0.85);

    background:
        linear-gradient(
            145deg,
            rgba(30, 52, 76, 0.96),
            rgba(25, 25, 25, 0.98)
        );

    box-shadow: none;
}

.menu-principal span {
    color: #42a5f5;

    font-size: 22px;

    font-weight: bold;
}

.menu-principal small {
    color: #d7e3f1;

    font-size: 14px;

    line-height: 1.4;

    max-width: 300px;
}

@media (max-width: 720px) {

    .menu-principal {
        grid-template-columns: 1fr;
    }

    .menu-principal button {
        min-height: 112px;
    }

    .principal-card h1,
    .seleccion-card h1 {
        font-size: 31px;
    }

    .principal-card,
    .seleccion-card {
        padding: 34px 24px;
    }
}

.filtros-dudas {
    display: flex;

    flex-wrap: wrap;

    justify-content: center;

    gap: 10px;

    margin: 22px 0 28px 0;

    padding: 16px;

    border-radius: 18px;

    background: rgba(10, 16, 25, 0.75);

    border: 1px solid rgba(66, 165, 245, 0.28);
}

.boton-filtro-duda {
    padding: 10px 14px;

    border-radius: 14px;

    border: 1px solid rgba(180, 180, 180, 0.28);

    background: rgba(30, 30, 30, 0.88);

    color: #d8d8d8;

    font-size: 13px;

    box-shadow: none;

    transition:
        background 0.15s ease,
        border-color 0.15s ease,
        color 0.15s ease,
        transform 0.15s ease;
}

.boton-filtro-duda:hover {
    transform: translateY(-2px);

    background: rgba(38, 48, 62, 0.92);

    border-color: rgba(66, 165, 245, 0.55);

    color: white;

    box-shadow: none;
}

.boton-filtro-duda.filtro-duda-activo {
    background: rgba(21, 101, 192, 0.35);

    border-color: rgba(66, 165, 245, 0.9);

    color: white;

    font-weight: bold;
}

.mensaje-vacio {
    width: fit-content;

    margin: 28px auto;

    padding: 16px 22px;

    border-radius: 16px;

    background: rgba(18, 24, 34, 0.78);

    border: 1px solid rgba(180, 180, 180, 0.25);

    color: #c9d7e8;

    text-align: center;
}

.fecha-discreta {
    width: fit-content;

    margin: -8px auto 14px auto;

    color: rgba(210, 210, 210, 0.58);

    font-size: 12px;

    font-weight: normal;
}

.fecha-discreta-comentario {
    display: inline-block;

    margin-left: 8px;

    color: rgba(210, 210, 210, 0.55);

    font-size: 12px;

    font-weight: normal;
}

.fecha-carta {
    margin-bottom: 12px;

    color: rgba(255, 210, 230, 0.65);

    font-size: 12px;
}

.modal-privacidad {
    display: none;

    position: fixed;

    top: 0;
    left: 0;

    width: 100vw;
    height: 100vh;

    background: rgba(0, 0, 0, 0.72);

    align-items: center;
    justify-content: center;

    z-index: 1000;
}

.privacidad-card {
    position: relative;

    width: min(520px, 92vw);

    padding: 34px 30px;

    border-radius: 24px;

    background:
        linear-gradient(
            145deg,
            rgba(20, 28, 40, 0.98),
            rgba(12, 12, 12, 0.98)
        );

    border: 1px solid rgba(66, 165, 245, 0.36);

    box-shadow: 0 18px 45px rgba(0, 0, 0, 0.45);

    display: flex;
    flex-direction: column;
    gap: 18px;
}

.privacidad-card h2 {
    margin: 0;

    text-align: center;

    color: #42a5f5;

    font-size: 30px;
}

.texto-privacidad {
    margin: -8px 0 4px 0;

    text-align: center;

    color: #c9d7e8;
}

.boton-cerrar-modal {
    position: absolute;

    top: 14px;
    right: 14px;

    width: 34px;
    height: 34px;

    border-radius: 50%;

    padding: 0;

    font-size: 22px;

    background: rgba(40, 40, 40, 0.8);

    border: 1px solid rgba(180, 180, 180, 0.28);

    box-shadow: none;
}

.bloque-privacidad {
    padding: 20px;

    border-radius: 18px;

    background: rgba(10, 16, 25, 0.82);

    border: 1px solid rgba(66, 165, 245, 0.26);

    display: flex;
    flex-direction: column;
    gap: 12px;
}

.bloque-privacidad h3 {
    margin: 0;

    color: #e8e8e8;

    font-size: 20px;
}

.bloque-privacidad input {
    width: 100%;

    box-sizing: border-box;
}

.bloque-proximamente {
    opacity: 0.72;
}

.bloque-proximamente p {
    margin: 0;

    color: #c9d7e8;
}

.panel-emojis {
    display: none;

    position: absolute;

    grid-template-columns: repeat(8, 34px);

    gap: 6px;

    padding: 12px;

    border-radius: 16px;

    background: rgba(18, 18, 18, 0.98);

    border: 1px solid rgba(180, 180, 180, 0.28);

    box-shadow: 0 14px 35px rgba(0, 0, 0, 0.45);

    z-index: 1500;
}

.panel-emojis button {
    width: 34px;
    height: 34px;

    padding: 0;

    border-radius: 10px;

    border: 1px solid rgba(180, 180, 180, 0.18);

    background: rgba(35, 35, 35, 0.9);

    font-size: 18px;

    box-shadow: none;
}

.panel-emojis button:hover {
    background: rgba(66, 165, 245, 0.22);

    border-color: rgba(66, 165, 245, 0.55);

    box-shadow: none;
}

.boton-emoji {
    width: 42px;
    height: 42px;

    padding: 0;

    border-radius: 50%;

    font-size: 20px;

    box-shadow: none;
}

.acciones-formulario-texto {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 12px;
}

.acciones-formulario-texto .boton-emoji {
    width: 42px;
    height: 42px;
    min-width: 42px;
    max-width: 42px;

    flex: 0 0 42px;

    padding: 0;

    border-radius: 50%;

    font-size: 20px;

    display: flex;
    align-items: center;
    justify-content: center;
}

.acciones-formulario-texto .boton-enviar-texto {
    flex: 1;
}

.acciones-formulario-texto button:last-child {
    flex: 1;
}

.aviso-admin-anonimo {
    width: fit-content;
    margin: -6px auto 12px auto;
    padding: 6px 10px;

    border-radius: 12px;

    background: rgba(255, 193, 7, 0.12);
    border: 1px solid rgba(255, 193, 7, 0.35);

    color: rgba(255, 225, 150, 0.9);

    font-size: 12px;
}

.menu-opciones-publicacion {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 12px;
}

.formulario-edicion-publicacion {
    width: 94%;
    max-width: 780px;
    margin: 22px auto;
}

.formulario-edicion-publicacion textarea.textarea-edicion-publicacion {
    min-height: 50px;
    font-size: 16px;
}

.vista-previa-edicion-publicacion {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 14px;
    justify-content: center;
}

.zona-edicion-publicacion {
    margin-top: 14px;
}

.imagen-previa-contenedor {
    position: relative;
    width: 92px;
    height: 92px;
}

.boton-quitar-imagen {
    position: absolute;
    top: -6px;
    right: -6px;

    width: 20px;
    height: 20px;
    min-width: 20px;
    max-width: 20px;

    padding: 0;

    border-radius: 50%;

    background: rgba(180, 30, 45, 0.95);
    color: white;

    font-size: 14px;
    line-height: 18px;

    display: flex;
    align-items: center;
    justify-content: center;

    box-shadow: none;
}

.boton-quitar-imagen:hover {
    box-shadow: none;
}

.video-previo-contenedor {
    position: relative;
    width: 170px;
}

.video-previo {
    width: 170px;
    height: 110px;
    object-fit: cover;
    border-radius: 14px;
    background: black;
    border: 1px solid rgba(180, 180, 180, 0.25);
}

.vista-previa-comentario {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 12px;
}

.imagen-previa-comentario .imagen-previa {
    width: 76px;
    height: 76px;
}

.galeria-comentario {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 12px;
    align-items: center;
}

.imagen-comentario {
    max-width: 180px;
    max-height: 180px;

    width: auto;
    height: auto;

    object-fit: contain;

    border-radius: 14px;
    border: 1px solid rgba(180, 180, 180, 0.24);
    cursor: pointer;
    background: rgba(0, 0, 0, 0.35);
}

.comentario-con-opciones {
    position: relative;
}

.cabecera-comentario {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 8px;
}

.info-comentario {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.contenedor-opciones-comentario {
    position: relative;
    flex-shrink: 0;
}

.opciones-comentario {
    position: absolute;
    top: 42px;
    right: 0;
    z-index: 40;
}

.boton-tres-puntos {
    width: 30px;
    height: 30px;
    min-width: 30px;
    max-width: 30px;

    padding: 0;

    border-radius: 50%;

    display: flex;
    align-items: center;
    justify-content: center;

    font-size: 18px;
    line-height: 1;

    border: 1px solid rgba(180, 180, 180, 0.22);
    background: rgba(20, 20, 20, 0.55);
    color: rgba(230, 230, 230, 0.75);

    cursor: pointer;

    box-shadow: none;
}

.boton-tres-puntos:hover {
    background: rgba(40, 40, 40, 0.75);
    color: white;
    box-shadow: none;
}

.menu-opciones-comentario {
    display: flex;
    flex-direction: column;
    gap: 5px;

    min-width: 82px;
    padding: 7px;

    border-radius: 12px;

    background: rgba(24, 24, 24, 0.96);
    border: 1px solid rgba(180, 180, 180, 0.22);

    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.32);
}

.menu-opciones-comentario button {
    width: 100%;
    min-height: 0;

    padding: 6px 8px;

    border-radius: 9px;

    font-size: 12px;
    font-weight: bold;

    box-shadow: none;
}

.boton-peligro-pequeno {
    background: rgba(120, 20, 20, 0.8);

    border: 1px solid rgba(220, 90, 90, 0.5);

    color: white;

    box-shadow: none;
}

.boton-peligro-pequeno:hover {
    background: rgba(145, 25, 25, 0.9);

    border: 1px solid rgba(230, 110, 110, 0.65);

    color: white;

    box-shadow: none;
}

.menu-opciones-comentario .boton-secundario {
    background: rgba(35, 35, 35, 0.72);
    border: 1px solid rgba(180, 180, 180, 0.24);
    color: white;
    box-shadow: none;
}

.menu-opciones-comentario .boton-secundario:hover {
    background: rgba(50, 50, 50, 0.82);
    border-color: rgba(210, 210, 210, 0.36);
    box-shadow: none;
}

/* =========================================================
   AJUSTES FINALES LIMPIOS
   - Tarjetas sin límite de altura.
   - Imágenes y videos proporcionales, sin recorte.
   - Límite máximo aplicado al media, no a la tarjeta.
   - Comentarios compactos con menú de opciones corregido.
   ========================================================= */

:root {
    --limite-ancho-media: 100%;
    --limite-alto-media: 540px;
}

.contenedor-feed {
    width: min(1180px, 96vw);
    margin: 0 auto;
    padding: 28px;

    background: rgba(10, 10, 10, 0.88);

    border: 1px solid #1565c0;
    border-radius: 18px;

    box-shadow: none;

    display: flex;
    flex-direction: column;
    gap: 18px;
}

.tarjeta-publicacion {
    width: 100%;
    max-width: 1100px;

    min-height: 240px;

    box-sizing: border-box;

    padding: 22px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 22px;

    border: 1px solid #1565c0;
    border-radius: 15px;
    box-shadow: 0 0 10px rgba(21, 101, 192, 0.20);

    height: auto;
    max-height: none;
    overflow: visible;
}

.tarjeta-feed {
    display: grid;

    grid-template-columns: minmax(0, 1fr) 210px;

    gap: 24px;

    height: auto;
    max-height: none;
    overflow: visible;
}

.tarjeta-feed.expandida,
.tarjeta-duda.expandida {
    height: auto;
    max-height: none;
    overflow: visible;
}

.contenido-publicacion {
    min-height: 180px;

    display: flex;
    flex-direction: column;

    position: relative;

    height: auto;
    max-height: none;
    overflow: visible;

    padding-right: 0;
}

.tarjeta-feed.expandida .contenido-publicacion {
    height: auto;
    max-height: none;
    overflow: visible;
}

.comentarios-publicacion {
    margin-top: 14px;
    padding-left: 0;
    border-left: none;
}

.comentario {
    position: relative;

    margin-top: 12px;

    padding: 14px 16px;

    border: 1px solid rgba(66, 165, 245, 0.35);
    border-radius: 14px;

    background: rgba(18, 24, 34, 0.72);
}

.galeria-publicacion {
    display: grid;

    grid-template-columns: repeat(
        auto-fit,
        minmax(280px, 1fr)
    );

    gap: 14px;
    margin-top: 16px;

    align-items: start;
    justify-items: center;

    width: 100%;

    height: auto;
    max-height: none;
    overflow: visible;
}

.imagen-publicacion {
    display: block;

    width: auto;
    height: auto;

    max-width: 100%;
    max-height: var(--limite-alto-media);

    object-fit: contain;

    border-radius: 18px;
    background: rgba(0, 0, 0, 0.35);
    border: 1px solid rgba(180, 180, 180, 0.24);

    cursor: pointer;
}

.galeria-videos-publicacion {
    display: flex;
    flex-direction: column;
    gap: 14px;

    margin-top: 16px;

    align-items: center;

    height: auto;
    max-height: none;
    overflow: visible;
}

.video-publicacion {
    display: block;

    width: auto;
    height: auto;

    max-width: 100%;
    max-height: var(--limite-alto-media);

    object-fit: contain;

    border-radius: 18px;
    background: black;
    border: 1px solid rgba(180, 180, 180, 0.24);
}

.imagen-previa {
    width: 92px;
    height: 92px;

    object-fit: contain;

    border-radius: 14px;
    border: 1px solid rgba(180, 180, 180, 0.25);
    background: rgba(0, 0, 0, 0.35);
}

@media (max-width: 700px) {

    .tarjeta-feed {
        grid-template-columns: 1fr;
        max-height: none;
    }

    .acciones-publicacion {
        border-left: none;
        border-top: 1px solid rgba(21, 101, 192, 0.6);
        padding-left: 0;
        padding-top: 12px;
    }
}

.galeria-publicacion {
    max-height: var(--alto-primera-fila-media, var(--limite-alto-media));
    overflow-y: auto;
    overflow-x: hidden;

    padding-right: 6px;

    scrollbar-width: thin;
}

.galeria-videos-publicacion {
    max-height: var(--alto-primera-fila-media, var(--limite-alto-media));
    overflow-y: auto;
    overflow-x: hidden;

    padding-right: 6px;

    scrollbar-width: thin;
}

.imagen-publicacion,
.video-publicacion {
    max-width: 100%;
    max-height: var(--limite-alto-media);

    width: auto;
    height: auto;

    object-fit: contain;
}

.lista-comentarios-limitada {
    max-height: 460px;

    overflow-y: auto;
    overflow-x: hidden;

    padding-right: 8px;

    scrollbar-width: thin;
}

.lista-comentarios-limitada .comentario:last-child {
    margin-bottom: 10px;
}

.lista-corazones-limitada {
    max-height: 280px;

    overflow-y: auto;
    overflow-x: hidden;

    padding-right: 8px;

    scrollbar-width: thin;
}

.estado-carga-panel {
    margin: 12px auto;
    color: rgba(255, 255, 255, 0.72);
    text-align: center;
    animation: pulso-carga-panel 0.75s ease-in-out infinite alternate;
}

@keyframes pulso-carga-panel {
    from {
        opacity: 0.46;
    }

    to {
        opacity: 1;
    }
}

.acciones-media-formulario {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;

    justify-content: center;
    align-items: center;

    margin-top: 14px;
    margin-bottom: 12px;
}

.input-archivo-oculto {
    display: none;
}

.boton-archivo-media {
    min-width: 135px;

    padding: 11px 16px;

    border-radius: 14px;

    background:
        linear-gradient(
            145deg,
            rgba(24, 38, 56, 0.92),
            rgba(20, 20, 20, 0.96)
        );

    border: 1px solid rgba(66, 165, 245, 0.45);

    color: white;

    font-size: 14px;
    font-weight: bold;

    text-align: center;

    cursor: pointer;

    box-shadow: none;

    transition:
        transform 0.15s ease,
        border-color 0.15s ease,
        background 0.15s ease;
}

.boton-archivo-media:hover {
    transform: translateY(-2px);

    border-color: rgba(66, 165, 245, 0.9);

    background:
        linear-gradient(
            145deg,
            rgba(30, 52, 76, 0.96),
            rgba(25, 25, 25, 0.98)
        );
}

.panel-opciones-nueva-publicacion {
    margin-top: 14px;
    padding: 16px;

    border-radius: 18px;

    background: rgba(10, 16, 25, 0.82);

    border: 1px solid rgba(66, 165, 245, 0.3);
}

.botones-privacidad-publicacion {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;

    justify-content: center;

    margin: 14px 0;
}

.selector-privacidad-publicacion {
    margin-top: 14px;
    padding-top: 14px;

    border-top: 1px solid rgba(180, 180, 180, 0.18);
}

.selector-privacidad-publicacion h4 {
    margin: 0 0 12px 0;

    text-align: center;

    color: #d7e3f1;
}

.barra-busqueda-privacidad {
    display: flex;
    gap: 10px;

    margin-bottom: 12px;
}

.barra-busqueda-privacidad input {
    flex: 1;
}

.barra-busqueda-privacidad button {
    white-space: nowrap;
}

.lista-privacidad-publicacion {
    max-height: 560px;

    overflow-y: auto;
    overflow-x: hidden;

    padding-right: 8px;

    scrollbar-width: thin;
}

.alumno-privacidad-publicacion {
    display: grid;

    grid-template-columns: 54px minmax(0, 1fr) 30px;

    gap: 12px;

    align-items: center;

    padding: 10px;

    margin-bottom: 8px;

    border-radius: 14px;

    background: rgba(18, 24, 34, 0.72);

    border: 1px solid rgba(180, 180, 180, 0.18);

    cursor: pointer;
}

.alumno-privacidad-publicacion:hover {
    border-color: rgba(66, 165, 245, 0.55);

    background: rgba(25, 35, 50, 0.86);
}

.alumno-privacidad-publicacion img {
    width: 54px;
    height: 54px;

    object-fit: cover;

    border-radius: 50%;

    border: 1px solid rgba(220, 220, 220, 0.35);
}

.alumno-privacidad-publicacion strong {
    display: block;

    color: #42a5f5;
}

.alumno-privacidad-publicacion span,
.alumno-privacidad-publicacion small {
    display: block;

    color: rgba(230, 230, 230, 0.72);

    font-size: 12px;

    overflow-wrap: break-word;
}

.alumno-privacidad-publicacion.alumno-seleccionado {
    border-color: rgba(66, 165, 245, 0.9);

    background: rgba(21, 101, 192, 0.22);
}

.marca-seleccion {
    width: 26px;
    height: 26px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 50%;

    background: rgba(66, 165, 245, 0.18);

    color: #42a5f5;

    font-weight: bold;
}

.aviso-comentarios-desactivados {
    padding: 10px 12px;

    border-radius: 12px;

    background: rgba(120, 120, 120, 0.14);

    border: 1px solid rgba(180, 180, 180, 0.22);

    color: rgba(230, 230, 230, 0.72);

    text-align: center;

    font-size: 13px;
}

.panel-oculto {
    display: none;
}

.galeria-carta-imagenes {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;

    margin-top: 14px;

    max-height: 320px;
    overflow-y: auto;
    overflow-x: hidden;

    padding-right: 6px;
    scrollbar-width: thin;
}

.imagen-carta {
    max-width: 260px;
    max-height: 260px;

    width: auto;
    height: auto;

    object-fit: contain;

    border-radius: 14px;
    border: 1px solid rgba(255, 255, 255, 0.18);
}

#vista-previa-carta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;

    margin-top: 12px;
    margin-bottom: 12px;

    justify-content: center;
}

#vista-previa-carta .imagen-previa-contenedor {
    position: relative;

    width: 92px;
    height: 92px;
}

#vista-previa-carta .imagen-previa {
    width: 92px;
    height: 92px;

    object-fit: contain;

    border-radius: 14px;
    border: 1px solid rgba(180, 180, 180, 0.25);
    background: rgba(0, 0, 0, 0.35);
}

/* Foto de perfil en registro y edición */

.bloque-foto-perfil-edicion {
    margin-top: 22px;
}

.subtexto-foto-perfil {
    text-align: center;
    color: rgba(255, 255, 255, 0.82);
    margin-bottom: 14px;
    line-height: 1.5;
}

.zona-foto-perfil-mejorada {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;

    width: 100%;
    padding: 22px 20px;

    border: 1px dashed rgba(255, 255, 255, 0.16);
    border-radius: 18px;

    background: rgba(255, 255, 255, 0.02);
    box-sizing: border-box;
}

.texto-pegar-foto-perfil {
    width: 100%;
    text-align: center;

    padding: 6px 0;

    font-size: 15px;
    color: rgba(255, 255, 255, 0.78);

    border: none;
    background: transparent;
}

.texto-pegar-foto-perfil strong {
    color: white;
}

.boton-subir-foto-perfil {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    padding: 12px 22px;
    border-radius: 999px;

    background: rgba(255, 255, 255, 0.12);
    color: white;

    cursor: pointer;
    font-weight: 600;

    transition: transform 0.2s ease, background 0.2s ease;
}

.boton-subir-foto-perfil:hover {
    background: rgba(255, 255, 255, 0.18);
    transform: translateY(-1px);
}

.input-foto-perfil-oculto {
    display: none;
}

#vista-previa-perfil-edicion {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    min-height: 150px;
}

.foto-perfil-edicion-preview {
    width: 150px;
    height: 150px;
    object-fit: cover;

    border-radius: 50%;
    border: 2px solid rgba(255, 255, 255, 0.22);
}

.preview-sin-foto {
    color: rgba(255, 255, 255, 0.55);
    font-size: 14px;
}

.zona-foto-perfil {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;

    width: 100%;
    margin-top: 14px;
    margin-bottom: 18px;

    padding: 18px;

    border: 1px dashed rgba(255, 255, 255, 0.22);
    border-radius: 18px;

    background: rgba(255, 255, 255, 0.04);
}

.zona-foto-perfil:hover {
    border-color: rgba(255, 255, 255, 0.38);
    background: rgba(255, 255, 255, 0.06);
}

.zona-pegar-foto-perfil {
    width: 100%;
    min-height: 72px;

    display: flex;
    align-items: center;
    justify-content: center;

    text-align: center;
    font-size: 14px;

    opacity: 0.85;
}

.acciones-foto-perfil {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
}

.boton-subir-foto-perfil {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    padding: 10px 18px;

    border-radius: 999px;
    border: none;

    cursor: pointer;

    font-weight: 600;
    font-size: 14px;

    background: rgba(255, 255, 255, 0.14);
    color: white;

    transition:
        transform 0.15s ease,
        background 0.15s ease;
}

.boton-subir-foto-perfil:hover {
    transform: translateY(-1px);
    background: rgba(255, 255, 255, 0.22);
}

.input-foto-perfil-oculto {
    display: none;
}

.texto-ayuda-foto-perfil {
    max-width: 280px;

    text-align: center;
    font-size: 13px;
    line-height: 1.4;

    opacity: 0.75;
}

.texto-ayuda-foto-perfil strong {
    opacity: 1;
}

#vista-previa-perfil {
    display: flex;
    justify-content: center;
    align-items: center;

    margin-top: 4px;
    margin-bottom: 4px;
}

#vista-previa-perfil img,
.imagen-preview-perfil {
    width: 132px;
    height: 132px;

    border-radius: 50%;
    object-fit: cover;

    border: 2px solid rgba(255, 255, 255, 0.24);
    background: rgba(0, 0, 0, 0.25);
}

/* Foto de perfil mejorada */

.zona-foto-perfil-mejorada:hover {
    border-color: rgba(55, 150, 255, 0.65);
    background: rgba(255, 255, 255, 0.06);
}

#vista-previa-perfil {
    display: flex;
    justify-content: center;
    align-items: center;

    min-height: 190px;
}

#vista-previa-perfil img,
.imagen-preview-perfil {
    width: 180px;
    height: 180px;

    border-radius: 50%;
    object-fit: cover;

    border: 3px solid rgba(55, 150, 255, 0.55);
    background: rgba(0, 0, 0, 0.25);

    box-shadow: 0 12px 26px rgba(0, 0, 0, 0.35);
}

.texto-ayuda-foto-perfil {
    max-width: 360px;

    margin: 0;

    text-align: center;
    font-size: 13px;
    line-height: 1.4;

    color: rgba(255, 255, 255, 0.68);
}

#archivo-foto-perfil,
#archivo-foto-perfil-edicion,
.input-foto-perfil-oculto {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;

    width: 0 !important;
    height: 0 !important;

    position: absolute !important;
    pointer-events: none !important;
}

.boton-cancelar-edicion-perfil {
    width: 100%;
    max-width: 560px;

    margin: 18px auto 0 auto;
    padding: 13px 20px;

    display: block;

    font-size: 15px;
    font-weight: 700;

    border-radius: 16px;
}

/* Controles tipo switch */

.opcion-publicacion,
.opcion-carta-anonima {
    width: 100%;

    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;

    box-sizing: border-box;

    margin: 10px 0;
    padding: 13px 16px;

    border-radius: 16px;

    background: rgba(255, 255, 255, 0.055);
    border: 1px solid rgba(255, 255, 255, 0.11);

    color: rgba(255, 255, 255, 0.86);

    cursor: pointer;
    user-select: none;

    font-size: 14px;
    font-weight: 600;

    transition:
        background 0.16s ease,
        border-color 0.16s ease,
        transform 0.16s ease;
}

.opcion-publicacion:hover,
.opcion-carta-anonima:hover {
    background: rgba(255, 255, 255, 0.085);
    border-color: rgba(55, 150, 255, 0.35);
    transform: translateY(-1px);
}

.opcion-publicacion input[type="checkbox"],
.opcion-carta-anonima input[type="checkbox"] {
    appearance: none;
    -webkit-appearance: none;

    width: 48px;
    height: 26px;

    flex-shrink: 0;

    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.18);

    background: rgba(0, 0, 0, 0.28);

    cursor: pointer;

    position: relative;

    transition:
        background 0.18s ease,
        border-color 0.18s ease;
}

.opcion-publicacion input[type="checkbox"]::before,
.opcion-carta-anonima input[type="checkbox"]::before {
    content: "";

    position: absolute;
    top: 3px;
    left: 3px;

    width: 18px;
    height: 18px;

    border-radius: 50%;

    background: rgba(255, 255, 255, 0.84);

    transition:
        transform 0.18s ease,
        background 0.18s ease;
}

.opcion-publicacion input[type="checkbox"]:checked,
.opcion-carta-anonima input[type="checkbox"]:checked {
    background: rgba(55, 150, 255, 0.92);
    border-color: rgba(55, 150, 255, 1);
}

.opcion-publicacion input[type="checkbox"]:checked::before,
.opcion-carta-anonima input[type="checkbox"]:checked::before {
    transform: translateX(22px);
    background: white;
}

/* Selects elegantes */

.registro-grid select,
#editar-carrera,
.select-elegante {
    width: 100%;

    box-sizing: border-box;

    padding: 13px 42px 13px 15px;

    border-radius: 16px;

    border: 1px solid rgba(255, 255, 255, 0.13);
    outline: none;

    background:
        linear-gradient(
            45deg,
            transparent 50%,
            rgba(255, 255, 255, 0.75) 50%
        ),
        linear-gradient(
            135deg,
            rgba(255, 255, 255, 0.75) 50%,
            transparent 50%
        ),
        rgba(255, 255, 255, 0.075);

    background-position:
        calc(100% - 22px) 50%,
        calc(100% - 15px) 50%,
        0 0;

    background-size:
        7px 7px,
        7px 7px,
        100% 100%;

    background-repeat: no-repeat;

    color: white;

    font-size: 14px;
    font-weight: 600;

    appearance: none;
    -webkit-appearance: none;

    cursor: pointer;

    transition:
        border-color 0.16s ease,
        background-color 0.16s ease,
        box-shadow 0.16s ease;
}

.registro-grid select:hover,
#editar-carrera:hover,
.select-elegante:hover {
    border-color: rgba(55, 150, 255, 0.45);
}

.registro-grid select:focus,
#editar-carrera:focus,
.select-elegante:focus {
    border-color: rgba(55, 150, 255, 0.85);

    box-shadow:
        0 0 0 3px rgba(55, 150, 255, 0.18);
}

.registro-grid select option,
#editar-carrera option,
.select-elegante option {
    color: black;
    background: white;
}

/* Switches compactos */

.opcion-publicacion,
.opcion-carta-anonima {
    width: 100%;

    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;

    box-sizing: border-box;

    margin: 7px 0;
    padding: 9px 12px;

    border-radius: 13px;

    background: rgba(255, 255, 255, 0.045);
    border: 1px solid rgba(255, 255, 255, 0.09);

    color: rgba(255, 255, 255, 0.82);

    cursor: pointer;
    user-select: none;

    font-size: 13px;
    font-weight: 600;

    transition:
        background 0.16s ease,
        border-color 0.16s ease,
        transform 0.16s ease,
        color 0.16s ease;
}

.opcion-publicacion:hover,
.opcion-carta-anonima:hover {
    background: rgba(255, 255, 255, 0.075);
    border-color: rgba(55, 150, 255, 0.32);
}

/* Color de toda la opción cuando está activa */
.opcion-publicacion:has(input[type="checkbox"]:checked),
.opcion-carta-anonima:has(input[type="checkbox"]:checked) {
    background: rgba(55, 150, 255, 0.16);
    border-color: rgba(55, 150, 255, 0.58);
    color: white;
}

.opcion-publicacion input[type="checkbox"],
.opcion-carta-anonima input[type="checkbox"] {
    appearance: none;
    -webkit-appearance: none;

    width: 38px;
    height: 21px;

    flex-shrink: 0;

    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.16);

    background: rgba(0, 0, 0, 0.3);

    cursor: pointer;

    position: relative;

    transition:
        background 0.18s ease,
        border-color 0.18s ease;
}

.opcion-publicacion input[type="checkbox"]::before,
.opcion-carta-anonima input[type="checkbox"]::before {
    content: "";

    position: absolute;
    top: 2px;
    left: 2px;

    width: 15px;
    height: 15px;

    border-radius: 50%;

    background: rgba(255, 255, 255, 0.82);

    transition:
        transform 0.18s ease,
        background 0.18s ease;
}

.opcion-publicacion input[type="checkbox"]:checked,
.opcion-carta-anonima input[type="checkbox"]:checked {
    background: rgba(55, 150, 255, 0.95);
    border-color: rgba(55, 150, 255, 1);
}

.opcion-publicacion input[type="checkbox"]:checked::before,
.opcion-carta-anonima input[type="checkbox"]:checked::before {
    transform: translateX(17px);
    background: white;
}

/* Selects oscuros compactos */

.registro-grid select,
#editar-carrera,
.select-elegante {
    width: 100%;

    box-sizing: border-box;

    padding: 11px 40px 11px 13px;

    border-radius: 14px;

    border: 1px solid rgba(255, 255, 255, 0.13) !important;
    outline: none;

    background-color: rgba(15, 18, 28, 0.92) !important;

    background-image:
        linear-gradient(
            45deg,
            transparent 50%,
            rgba(255, 255, 255, 0.82) 50%
        ),
        linear-gradient(
            135deg,
            rgba(255, 255, 255, 0.82) 50%,
            transparent 50%
        );

    background-position:
        calc(100% - 20px) 50%,
        calc(100% - 14px) 50%;

    background-size:
        6px 6px,
        6px 6px;

    background-repeat: no-repeat;

    color: white !important;

    font-size: 13px;
    font-weight: 600;

    appearance: none;
    -webkit-appearance: none;

    cursor: pointer;

    transition:
        border-color 0.16s ease,
        box-shadow 0.16s ease,
        background-color 0.16s ease;
}

.registro-grid select:hover,
#editar-carrera:hover,
.select-elegante:hover {
    border-color: rgba(55, 150, 255, 0.45) !important;
    background-color: rgba(20, 25, 38, 0.96) !important;
}

.registro-grid select:focus,
#editar-carrera:focus,
.select-elegante:focus {
    border-color: rgba(55, 150, 255, 0.85) !important;

    box-shadow:
        0 0 0 3px rgba(55, 150, 255, 0.16);
}

.registro-grid select option,
#editar-carrera option,
.select-elegante option {
    color: white;
    background: #151a26;
}

/* Buscador discreto de feed */

.contenedor-buscador-feed {
    width: 100%;

    display: flex;
    justify-content: center;

    margin: 10px 0 18px 0;
}

.input-buscador-feed {
    width: 100%;
    max-width: 620px;

    box-sizing: border-box;

    padding: 11px 15px;

    border-radius: 999px;

    border: 1px solid rgba(255, 255, 255, 0.12);
    outline: none;

    background: rgba(255, 255, 255, 0.055);
    color: white;

    font-size: 14px;

    transition:
        border-color 0.16s ease,
        background 0.16s ease,
        box-shadow 0.16s ease;
}

.input-buscador-feed::placeholder {
    color: rgba(255, 255, 255, 0.46);
}

.input-buscador-feed:hover {
    background: rgba(255, 255, 255, 0.075);
    border-color: rgba(55, 150, 255, 0.35);
}

.input-buscador-feed:focus {
    background: rgba(255, 255, 255, 0.09);
    border-color: rgba(55, 150, 255, 0.75);

    box-shadow:
        0 0 0 3px rgba(55, 150, 255, 0.14);
}

/* Corazones de perfil */
.boton-corazon-perfil {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    border: 2px solid #df3f58;
    background: transparent;
    color: #df3f58;
    font-size: 27px;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.18s ease, background 0.18s ease, box-shadow 0.18s ease;
}

.boton-corazon-perfil:hover {
    transform: translateY(-1px) scale(1.04);
    background: rgba(223, 63, 88, 0.13);
    box-shadow: 0 0 14px rgba(223, 63, 88, 0.32);
}

.boton-corazon-perfil.corazon-perfil-activo {
    background: #df3f58;
    border-color: transparent;
    box-shadow: 0 0 18px rgba(223, 63, 88, 0.76);
}

.boton-corazon-perfil.corazon-perfil-activo .icono-corazon-perfil {
    font-size: 0;
}

.boton-corazon-perfil.corazon-perfil-activo .icono-corazon-perfil::before {
    content: "♥";
    color: #101010;
    font-size: 24px;
}

.metrica-perfil {
    padding: 12px 20px;
    border-radius: 14px;
    border: 1px solid rgba(180, 180, 180, 0.35);
    background: rgba(14, 20, 28, 0.88);
    font-weight: bold;
    font-size: 15px;
    letter-spacing: 0.2px;
    text-align: center;
}

.metrica-estrellas {
    color: #4ebcff !important;
    border-color: rgba(78, 188, 255, 0.55) !important;
    background: rgba(78, 188, 255, 0.12) !important;
    box-shadow: 0 0 22px rgba(78, 188, 255, 0.22);
}

.metrica-corazones {
    color: #e66679 !important;
    border-color: rgba(230, 102, 121, 0.56) !important;
    background: rgba(230, 102, 121, 0.12) !important;
    box-shadow: 0 0 22px rgba(230, 102, 121, 0.22);
}

button.metrica-perfil {
    font: inherit;
    color: inherit;
    cursor: pointer;
    box-shadow: none;
}

button.metrica-perfil:hover {
    text-decoration: underline;
    text-underline-offset: 4px;
}

.metricas-perfil {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 14px;
    max-width: 800px;
    margin-top: -6px;
    position: relative;
    z-index: 1;
}

.opciones-visibilidad-perfil {
    display: grid;
    gap: 12px;
    margin-top: 18px;
}

.opcion-interruptor-perfil {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 12px 14px;
    border: 1px solid rgba(185, 185, 185, 0.26);
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.035);
    color: rgba(255, 255, 255, 0.9);
    cursor: pointer;
}

.opcion-interruptor-perfil input {
    position: absolute;
    opacity: 0;
}

.interruptor-perfil {
    width: 42px;
    height: 23px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.18);
    position: relative;
    flex: 0 0 auto;
    transition: background 0.2s ease;
}

.interruptor-perfil::after {
    content: "";
    width: 17px;
    height: 17px;
    border-radius: 50%;
    background: #ececec;
    position: absolute;
    top: 3px;
    left: 3px;
    transition: transform 0.2s ease;
}

.opcion-interruptor-perfil input:checked + .interruptor-perfil {
    background: #00a8e8;
}

.opcion-interruptor-perfil input:checked + .interruptor-perfil::after {
    transform: translateX(19px);
}

.fondo-modal-corazon,
.fondo-lista-corazones {
    position: fixed;
    inset: 0;
    z-index: 1300;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background: rgba(4, 5, 12, 0.64);
    backdrop-filter: blur(4px);
}

.confirmacion-corazon,
.notificacion-corazon-mutuo,
.lista-corazones-perfil {
    width: min(330px, 100%);
    box-sizing: border-box;
    padding: 24px;
    border: 1px solid rgba(255, 111, 163, 0.62);
    border-radius: 22px;
    background: linear-gradient(145deg, #24121f, #121622);
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.52), 0 0 25px rgba(255, 79, 145, 0.2);
    color: #fff;
    text-align: center;
}

.confirmacion-corazon h3,
.notificacion-corazon-mutuo h2,
.lista-corazones-perfil h3 {
    margin: 6px 0 8px;
    color: #ff79af;
}

.confirmacion-corazon p,
.notificacion-corazon-mutuo p {
    margin: 0;
    color: rgba(255, 255, 255, 0.8);
    line-height: 1.45;
}

.icono-confirmacion-corazon,
.icono-mutuo {
    color: #ff70aa;
    font-size: 46px;
    line-height: 1;
}

.acciones-confirmacion-corazon {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin-top: 20px;
}

.acciones-confirmacion-corazon button,
.boton-aceptar-mutuo {
    min-width: 92px;
    border-radius: 11px;
    padding: 9px 15px;
}

.boton-corazon-anonimo {
    border-color: #ff6fa7;
    background: #ff5a99;
    color: white;
}

.boton-corazon-visible,
.boton-aceptar-mutuo {
    border-color: rgba(255, 255, 255, 0.45);
    background: rgba(255, 255, 255, 0.08);
    color: white;
}

.boton-aceptar-mutuo {
    margin-top: 20px;
}

.personas-corazon-lista {
    display: grid;
    gap: 9px;
    margin-top: 16px;
}

.persona-corazon {
    display: block;
    width: 100%;
    box-sizing: border-box;
    padding: 10px 12px;
    border: 1px solid rgba(255, 116, 168, 0.38);
    border-radius: 11px;
    background: rgba(255, 255, 255, 0.055);
    color: #ffd5e5;
    font: inherit;
    text-align: left;
}

button.persona-corazon:hover {
    background: rgba(255, 79, 145, 0.18);
}

.persona-corazon.anonima,
.sin-corazones-perfil {
    color: rgba(255, 255, 255, 0.64);
    font-style: italic;
}

.mesa-blackjack {
    max-width: 1180px;
    padding-top: 24px;
}

.cabecera-blackjack {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 14px;
    margin-bottom: 18px;
}

.cabecera-blackjack > :first-child {
    justify-self: start;
}

.cabecera-blackjack > div {
    text-align: center;
}

.mesa-blackjack h1 {
    margin: 3px 0 0;
    color: #ffd166;
}

.temporizador-blackjack {
    min-width: 52px;
    justify-self: end;
    color: #ffd166;
    font-size: 26px;
    font-weight: bold;
    text-align: right;
}

.resumen-blackjack {
    margin: 0 0 22px;
    padding: 15px 18px;
    border: 1px solid rgba(217, 164, 65, 0.36);
    border-radius: 16px;
    background: rgba(24, 33, 24, 0.9);
    text-align: center;
}

.resumen-blackjack p {
    margin: 0;
}

#estado-blackjack {
    color: #fff4cf;
    font-size: 17px;
    font-weight: bold;
}

#detalle-blackjack {
    margin-top: 5px;
    color: rgba(255, 255, 255, 0.62);
    font-size: 13px;
}

.jugadores-blackjack {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(245px, 1fr));
    gap: 16px;
}

.jugador-blackjack {
    padding: 18px;
    border: 1px solid rgba(217, 164, 65, 0.48);
    border-radius: 18px;
    background: linear-gradient(155deg, rgba(217, 164, 65, 0.1), transparent 54%), #182118;
}

.jugador-actual-blackjack {
    border-color: #ffd166;
    box-shadow: 0 0 22px rgba(255, 209, 102, 0.14);
}

.cabecera-jugador-blackjack {
    display: flex;
    align-items: center;
    gap: 10px;
}

.cabecera-jugador-blackjack img {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    object-fit: cover;
}

.cabecera-jugador-blackjack h2 {
    margin: 0;
    color: #fff;
    font-size: 17px;
}

.cabecera-jugador-blackjack span {
    color: #ffd166;
    font-size: 13px;
    font-weight: bold;
}

.cabecera-jugador-blackjack em {
    margin-left: auto;
    color: #b7f7ff;
    font-size: 12px;
    font-style: normal;
}

.mano-blackjack {
    margin-top: 16px;
}

.cabecera-mano-blackjack {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    color: rgba(255, 255, 255, 0.68);
    font-size: 12px;
}

.cartas-blackjack {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-top: 8px;
}

.carta {
    display: inline-flex;
    flex-direction: column;
    justify-content: space-between;
    width: 48px;
    height: 68px;
    box-sizing: border-box;
    padding: 6px;
    border-radius: 8px;
    background: #f7f1df;
    color: #191919;
    font-weight: bold;
}

.carta small {
    overflow: hidden;
    color: #4b453c;
    font-size: 8px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.carta-corazones,
.carta-diamantes {
    color: #b5273d;
}

.carta-oculta {
    align-items: center;
    justify-content: center;
    background: repeating-linear-gradient(45deg, #243a66, #243a66 5px, #1c2f56 5px, #1c2f56 10px);
    color: #d6e7ff;
    font-size: 24px;
}

.jugador-inactivo-blackjack {
    margin: 17px 0 0;
    color: rgba(255, 255, 255, 0.45);
    font-size: 13px;
    font-style: italic;
}

.acciones-blackjack {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    margin: 26px 0;
}

.acciones-blackjack button,
.resultado-final-blackjack button {
    border-color: #d9a441;
    background: #d9a441;
    color: #16110a;
    font-weight: bold;
}

.acciones-blackjack button:disabled {
    cursor: not-allowed;
    opacity: 0.35;
}

.resultado-final-blackjack {
    margin: 0 0 22px;
    padding: 24px;
    border: 1px solid #ffd166;
    border-radius: 20px;
    background: radial-gradient(circle at 50% 0%, rgba(255, 209, 102, 0.22), transparent 60%), #1a2119;
    text-align: center;
}

.resultado-final-blackjack h2 {
    margin: 8px 0;
    color: #fff4cf;
}

.resultado-final-blackjack p:not(.etiqueta-minijuegos) {
    color: rgba(255, 255, 255, 0.7);
}

@media (max-width: 650px) {
    .cabecera-blackjack {
        grid-template-columns: 1fr auto;
    }

    .cabecera-blackjack > div:nth-child(2) {
        grid-column: 1 / -1;
        grid-row: 1;
    }

    .cabecera-blackjack > :first-child,
    .temporizador-blackjack {
        grid-row: 2;
    }
}

/* Minijuegos */
.navegacion-activa {
    border-color: rgba(0, 217, 255, 0.78) !important;
    color: #00d9ff !important;
}

.contenedor-minijuegos {
    max-width: 1040px;
}

/* Portadas de TODO y Dudas */
.portada-feed {
    max-width: 1040px;
    padding-top: 34px;
}

.cabecera-portada-feed {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 22px;
    padding: clamp(24px, 4vw, 40px);
    overflow: hidden;
    border: 1px solid rgba(0, 217, 255, 0.28);
    border-radius: 24px;
    background:
        radial-gradient(circle at 92% 10%, rgba(0, 217, 255, 0.25), transparent 31%),
        radial-gradient(circle at 12% 100%, rgba(38, 119, 255, 0.18), transparent 42%),
        linear-gradient(135deg, rgba(16, 29, 46, 0.96), rgba(12, 15, 25, 0.96));
    box-shadow: 0 18px 48px rgba(0, 0, 0, 0.24);
}

.portada-dudas .cabecera-portada-feed {
    border-color: rgba(173, 121, 255, 0.36);
    background:
        radial-gradient(circle at 92% 10%, rgba(173, 121, 255, 0.25), transparent 31%),
        radial-gradient(circle at 12% 100%, rgba(0, 217, 255, 0.12), transparent 42%),
        linear-gradient(135deg, rgba(31, 20, 48, 0.96), rgba(12, 15, 25, 0.96));
}

.etiqueta-portada-feed {
    margin: 0;
    color: #92efff;
    font-size: 12px;
    font-weight: bold;
    letter-spacing: 0.13em;
}

.portada-dudas .etiqueta-portada-feed {
    color: #d6b8ff;
}

.cabecera-portada-feed h1 {
    margin: 7px 0 9px;
    color: #effbff;
    font-size: clamp(34px, 6vw, 50px);
    letter-spacing: -0.04em;
}

.cabecera-portada-feed p:not(.etiqueta-portada-feed) {
    max-width: 570px;
    margin: 0;
    color: rgba(239, 251, 255, 0.72);
    font-size: 16px;
    line-height: 1.55;
}

.insignia-portada-feed {
    flex: 0 0 auto;
    padding: 11px 15px;
    border: 1px solid rgba(0, 217, 255, 0.58);
    border-radius: 999px;
    background: rgba(0, 217, 255, 0.1);
    color: #bdf7ff;
    font-size: 13px;
    font-weight: bold;
}

.portada-dudas .insignia-portada-feed {
    border-color: rgba(190, 145, 255, 0.66);
    background: rgba(173, 121, 255, 0.12);
    color: #e0ccff;
}

.panel-creador-feed,
.explorar-feed {
    margin-bottom: 24px;
    padding: clamp(20px, 3vw, 30px);
    border: 1px solid rgba(113, 180, 255, 0.22);
    border-radius: 21px;
    background: rgba(14, 19, 29, 0.74);
    box-shadow: 0 14px 38px rgba(0, 0, 0, 0.16);
}

.panel-creador-dudas {
    border-color: rgba(173, 121, 255, 0.25);
}

.titulo-creador-feed,
.titulo-explorar-feed {
    display: flex;
    align-items: center;
    gap: 13px;
    margin-bottom: 18px;
}

.titulo-creador-feed > span {
    display: inline-flex;
    width: 38px;
    height: 38px;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    background: rgba(0, 217, 255, 0.13);
    color: #a7f8ff;
    font-size: 20px;
    font-weight: bold;
}

.panel-creador-dudas .titulo-creador-feed > span {
    background: rgba(173, 121, 255, 0.14);
    color: #dfc7ff;
}

.titulo-creador-feed h2,
.titulo-explorar-feed h2 {
    margin: 0;
    color: #f2fbff;
    font-size: 20px;
}

.titulo-creador-feed p {
    margin: 3px 0 0;
    color: rgba(255, 255, 255, 0.58);
    font-size: 14px;
}

.titulo-explorar-feed {
    justify-content: space-between;
}

.titulo-explorar-feed span {
    color: rgba(141, 207, 255, 0.75);
    font-size: 13px;
}

.portada-feed textarea {
    min-height: 138px;
    box-sizing: border-box;
    border-color: rgba(141, 207, 255, 0.3);
    background: rgba(3, 8, 15, 0.54);
}

.portada-dudas #categoria-duda {
    width: min(340px, 100%);
    margin-bottom: 12px;
}

.explorar-feed .contenedor-buscador-feed {
    margin: 0 0 18px;
}

.explorar-dudas .filtros-dudas {
    margin: 0 0 18px;
}

/* TODO adopta la identidad violeta de Dudas y Dudas la azul de TODO. */
.portada-todo .cabecera-portada-feed {
    border-color: rgba(173, 121, 255, 0.36);
    background:
        radial-gradient(circle at 92% 10%, rgba(173, 121, 255, 0.25), transparent 31%),
        radial-gradient(circle at 12% 100%, rgba(0, 217, 255, 0.12), transparent 42%),
        linear-gradient(135deg, rgba(31, 20, 48, 0.96), rgba(12, 15, 25, 0.96));
}

.portada-dudas .cabecera-portada-feed {
    border-color: rgba(0, 217, 255, 0.28);
    background:
        radial-gradient(circle at 92% 10%, rgba(0, 217, 255, 0.25), transparent 31%),
        radial-gradient(circle at 12% 100%, rgba(38, 119, 255, 0.18), transparent 42%),
        linear-gradient(135deg, rgba(16, 29, 46, 0.96), rgba(12, 15, 25, 0.96));
}

.portada-todo .etiqueta-portada-feed,
.portada-todo .titulo-explorar-feed span {
    color: #d6b8ff;
}

.portada-dudas .etiqueta-portada-feed,
.portada-dudas .titulo-explorar-feed span {
    color: #92efff;
}

.portada-todo .panel-creador-feed {
    border-color: rgba(173, 121, 255, 0.25);
}

.portada-dudas .panel-creador-feed {
    border-color: rgba(113, 180, 255, 0.22);
}

.portada-todo .titulo-creador-feed > span {
    background: rgba(173, 121, 255, 0.14);
    color: #dfc7ff;
}

.portada-dudas .titulo-creador-feed > span {
    background: rgba(0, 217, 255, 0.13);
    color: #a7f8ff;
}

.portada-feed textarea {
    min-height: 225px;
}


.portada-feed .formulario-comentario textarea,
.portada-todo .formulario-comentario textarea,
.portada-dudas .formulario-comentario textarea {
    min-height: 72px;
    height: 82px;
    max-height: 120px;
    padding: 12px 14px;
    font-size: 15px;
    line-height: 1.32;
}

.portada-feed .formulario-comentario {
    padding: 16px 18px 14px;
}

#contenido-publicacion,
#pregunta-duda {
    width: 100%;
    max-width: 1020px;
    box-sizing: border-box;
    min-height: 100px;
}

.portada-todo textarea {
    border-color: rgba(190, 145, 255, 0.38);
}

.portada-dudas textarea {
    border-color: rgba(141, 207, 255, 0.3);
}

.portada-todo #boton-opciones-nueva-publicacion {
    margin: 14px 14px 0 0;
}

.portada-todo #opciones-nueva-publicacion + button {
    margin-top: 14px;
}

@media (max-width: 650px) {
    .cabecera-portada-feed {
        align-items: flex-start;
        flex-direction: column;
    }

    .titulo-explorar-feed {
        align-items: flex-start;
        flex-direction: column;
        gap: 5px;
    }
}

.encabezado-minijuegos {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin: 18px 0 26px;
    padding: 26px;
    border: 1px solid rgba(0, 217, 255, 0.24);
    border-radius: 24px;
    background:
        radial-gradient(circle at 100% 0%, rgba(0, 217, 255, 0.14), transparent 42%),
        rgba(14, 17, 27, 0.88);
}

.encabezado-minijuegos h1 {
    margin: 4px 0 8px;
    color: #eafaff;
    font-size: clamp(30px, 5vw, 44px);
}

.encabezado-minijuegos p {
    margin: 0;
    color: rgba(255, 255, 255, 0.68);
}

.titulo-encabezado-minijuegos {
    display: flex;
    align-items: center;
    gap: 14px;
    min-width: 0;
}

.acciones-encabezado-minijuegos {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    flex-wrap: wrap;
}

.boton-info-minijuegos {
    width: 42px;
    height: 42px;
    min-width: 42px;
    padding: 0;
    border-radius: 50%;
    border: 1px solid rgba(0, 217, 255, 0.62);
    background:
        radial-gradient(circle at 35% 25%, rgba(255, 255, 255, 0.28), transparent 34%),
        rgba(0, 217, 255, 0.12);
    color: #bff8ff;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 24px;
    font-style: italic;
    font-weight: 700;
    line-height: 1;
    box-shadow:
        0 0 18px rgba(0, 217, 255, 0.18),
        inset 0 0 16px rgba(255, 255, 255, 0.05);
}

.boton-info-minijuegos:hover {
    background: rgba(0, 217, 255, 0.22);
    box-shadow:
        0 0 24px rgba(0, 217, 255, 0.30),
        inset 0 0 16px rgba(255, 255, 255, 0.08);
    transform: translateY(-1px);
}

.etiqueta-minijuegos {
    margin: 0;
    color: #00d9ff !important;
    font-size: 12px;
    font-weight: bold;
    letter-spacing: 0.14em;
}

.boton-crear-partida,
.boton-confirmar-partida {
    border-color: #00d9ff;
    background: #00bddd;
    color: #061014;
    font-weight: bold;
    box-shadow: 0 0 20px rgba(0, 217, 255, 0.25);
}

.boton-crear-partida:hover,
.boton-confirmar-partida:hover {
    background: #00d9ff;
}

.panel-crear-partida {
    margin-bottom: 24px;
    padding: 24px;
    border: 1px solid rgba(0, 217, 255, 0.32);
    border-radius: 22px;
    background: rgba(17, 21, 33, 0.96);
}

.oculto {
    display: none !important;
}

.cabecera-panel-partida {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: flex-start;
}

.cabecera-panel-partida h2 {
    margin: 0;
    color: #eafaff;
}

.cabecera-panel-partida p {
    margin: 7px 0 20px;
    color: rgba(255, 255, 255, 0.62);
}

.boton-cerrar-panel {
    min-width: 38px;
    padding: 4px 10px;
    color: rgba(255, 255, 255, 0.75);
    font-size: 25px;
}

.formulario-partida {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.formulario-partida label {
    display: grid;
    gap: 7px;
    color: rgba(255, 255, 255, 0.84);
    font-size: 14px;
}

.formulario-partida input,
.formulario-partida select {
    width: 100%;
    box-sizing: border-box;
}

.opcion-partida-publica {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 20px 0;
    padding: 14px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 14px;
    cursor: pointer;
}

.opcion-partida-publica input {
    position: absolute;
    opacity: 0;
}

.opcion-partida-publica small {
    display: block;
    margin-top: 3px;
    color: rgba(255, 255, 255, 0.58);
}

.interruptor-partida {
    width: 42px;
    height: 23px;
    flex: 0 0 auto;
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.17);
    position: relative;
}

.interruptor-partida::after {
    content: "";
    width: 17px;
    height: 17px;
    position: absolute;
    top: 3px;
    left: 3px;
    border-radius: 50%;
    background: #eee;
    transition: transform 0.2s ease;
}

.opcion-partida-publica input:checked + .interruptor-partida {
    background: #00a8d4;
}

.opcion-partida-publica input:checked + .interruptor-partida::after {
    transform: translateX(19px);
}

.herramientas-minijuegos {
    display: grid;
    gap: 14px;
    margin-bottom: 22px;
}

.filtros-minijuegos {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
}

.filtros-minijuegos button {
    border-color: rgba(0, 217, 255, 0.32);
    background: rgba(0, 217, 255, 0.05);
    color: rgba(235, 251, 255, 0.78);
}

.filtros-minijuegos button.filtro-minijuego-activo {
    border-color: #00d9ff;
    background: rgba(0, 217, 255, 0.19);
    color: #bff7ff;
}

.lista-minijuegos {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(285px, 1fr));
    gap: 18px;
}

.tarjeta-minijuego {
    min-height: 290px;
    padding: 21px;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    border: 1px solid rgba(0, 217, 255, 0.25);
    border-radius: 22px;
    background:
        linear-gradient(160deg, rgba(0, 217, 255, 0.08), transparent 46%),
        rgba(19, 21, 31, 0.96);
}

.tarjeta-minijuego.tarjeta-estado-en_curso {
    opacity: 0.76;
    border-color: rgba(255, 193, 7, 0.34);
    background:
        linear-gradient(160deg, rgba(255, 193, 7, 0.07), transparent 46%),
        rgba(19, 21, 31, 0.96);
}

.cabecera-tarjeta-minijuego,
.pie-tarjeta-minijuego {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    color: rgba(255, 255, 255, 0.65);
    font-size: 13px;
}

.estado-minijuego {
    color: #77ebfb;
    font-weight: bold;
}

.tarjeta-estado-en_curso .estado-minijuego {
    color: #ffcf57;
}

.espectadores-minijuego {
    white-space: nowrap;
}

.tarjeta-minijuego h2 {
    margin: 20px 0 3px;
    color: #fff;
    font-size: 31px;
    letter-spacing: -0.03em;
}

.nombre-mesa-minijuego {
    min-height: 20px;
    margin: 0;
    color: rgba(255, 255, 255, 0.62);
    font-style: italic;
}

.participantes-minijuego {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin: 24px 0 auto;
}

.participante-minijuego {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 5px 8px 5px 5px;
    border-color: rgba(255, 255, 255, 0.16);
    background: rgba(255, 255, 255, 0.045);
    color: rgba(255, 255, 255, 0.86);
    font-size: 13px;
}

.participante-minijuego:hover {
    background: rgba(0, 217, 255, 0.13);
}

.participante-minijuego img {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    object-fit: cover;
}

.participante-retirando {
    opacity: 0.45;
    pointer-events: none;
    transition: opacity 0.12s ease;
}

.pie-tarjeta-minijuego {
    margin-top: 22px;
}

.boton-sala-proximamente {
    width: 100%;
    margin-top: 14px;
    border-color: rgba(255, 255, 255, 0.14);
    background: rgba(255, 255, 255, 0.055);
    color: rgba(255, 255, 255, 0.48);
    cursor: default;
}

.sin-partidas-minijuego {
    grid-column: 1 / -1;
    padding: 45px 22px;
    border: 1px dashed rgba(0, 217, 255, 0.32);
    border-radius: 20px;
    color: rgba(255, 255, 255, 0.7);
    text-align: center;
}

.sin-partidas-minijuego h2 {
    margin: 0 0 8px;
    color: #eafaff;
}

.centinela-carga {
    height: 2px;
}

.fondo-info-minijuegos {
    position: fixed;
    inset: 0;
    z-index: 1300;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 22px;
    background: rgba(2, 5, 11, 0.78);
    backdrop-filter: blur(8px);
}

.panel-info-minijuegos {
    width: min(860px, 100%);
    max-height: min(760px, 90vh);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    border: 1px solid rgba(0, 217, 255, 0.45);
    border-radius: 26px;
    background:
        radial-gradient(circle at 50% 0%, rgba(0, 217, 255, 0.15), transparent 42%),
        linear-gradient(145deg, rgba(255, 255, 255, 0.07), rgba(13, 18, 30, 0.96));
    color: white;
    box-shadow:
        0 28px 80px rgba(0, 0, 0, 0.74),
        0 0 34px rgba(0, 217, 255, 0.12);
}

.barra-info-minijuegos {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 16px 12px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.10);
    background: rgba(5, 12, 22, 0.68);
}

.pestanas-info-minijuegos {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.pestanas-info-minijuegos button {
    padding: 8px 14px;
    border-radius: 999px;
    border-color: rgba(141, 207, 255, 0.25);
    background: rgba(255, 255, 255, 0.055);
    color: rgba(232, 246, 255, 0.72);
    font-size: 13px;
    font-weight: 700;
}

.pestanas-info-minijuegos button.pestana-info-activa {
    border-color: #00d9ff;
    background: rgba(0, 217, 255, 0.18);
    color: #dffbff;
    box-shadow: 0 0 18px rgba(0, 217, 255, 0.16);
}

.boton-cerrar-info-minijuegos {
    min-width: 38px;
    height: 38px;
    padding: 0;
    border-radius: 50%;
    color: rgba(255, 255, 255, 0.80);
    font-size: 25px;
    line-height: 1;
}

.contenido-info-minijuegos {
    overflow-y: auto;
    padding: 26px;
}

.cabecera-reglas-minijuego {
    text-align: center;
    margin-bottom: 24px;
}

.cabecera-reglas-minijuego h2 {
    margin: 8px 0;
    color: #eefcff;
    font-size: clamp(28px, 5vw, 42px);
}

.cabecera-reglas-minijuego p:not(.etiqueta-minijuegos) {
    max-width: 640px;
    margin: 0 auto;
    color: rgba(235, 247, 255, 0.72);
}

.bloques-reglas-minijuego {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.bloque-reglas-minijuego {
    padding: 18px;
    border: 1px solid rgba(141, 207, 255, 0.22);
    border-radius: 18px;
    background:
        linear-gradient(145deg, rgba(255, 255, 255, 0.055), rgba(255, 255, 255, 0.02)),
        rgba(9, 15, 25, 0.58);
}

.bloque-reglas-minijuego h3 {
    margin: 0 0 12px;
    color: #bff8ff;
    font-size: 17px;
}

.bloque-reglas-minijuego ul {
    margin: 0;
    padding-left: 18px;
    color: rgba(239, 247, 255, 0.78);
}

.bloque-reglas-minijuego li {
    margin: 8px 0;
    line-height: 1.45;
}

.fondo-modal-partida {
    position: fixed;
    inset: 0;
    z-index: 1200;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background: rgba(3, 5, 11, 0.7);
    backdrop-filter: blur(5px);
}

.modal-codigo-partida {
    width: min(360px, 100%);
    box-sizing: border-box;
    padding: 28px;
    border: 1px solid rgba(0, 217, 255, 0.52);
    border-radius: 23px;
    background: #151b29;
    color: white;
    text-align: center;
    box-shadow: 0 22px 60px rgba(0, 0, 0, 0.6);
}

.modal-codigo-partida h2 {
    margin: 8px 0 18px;
}

.modal-codigo-partida strong {
    display: block;
    margin: 12px 0;
    color: #a7f8ff;
    font-size: 29px;
    letter-spacing: 0.13em;
}

.fondo-jugadores-partida {
    position: fixed;
    inset: 0;
    z-index: 1250;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 22px;
    background: rgba(2, 5, 11, 0.82);
    backdrop-filter: blur(7px);
}

.panel-jugadores-partida {
    width: min(780px, 100%);
    max-height: min(760px, 90vh);
    overflow-y: auto;
    box-sizing: border-box;
    padding: 28px;
    border: 1px solid rgba(0, 217, 255, 0.54);
    border-radius: 24px;
    background:
        radial-gradient(circle at 50% 0%, rgba(0, 217, 255, 0.12), transparent 46%),
        #111823;
    text-align: center;
    box-shadow: 0 25px 70px rgba(0, 0, 0, 0.72);
}

.panel-jugadores-partida h2 {
    margin: 7px 0;
    color: #eafaff;
}

.panel-jugadores-partida > p:not(.etiqueta-minijuegos) {
    margin: 0 0 20px;
    color: rgba(255, 255, 255, 0.7);
}

.lista-jugadores-partida {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(155px, 1fr));
    gap: 16px;
    margin-bottom: 24px;
}

.tarjeta-jugador-partida {
    display: flex;
    min-height: 220px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 18px 12px;
    border: 1px solid rgba(141, 207, 255, 0.35);
    border-radius: 18px;
    background: rgba(12, 19, 31, 0.82);
}

.tarjeta-jugador-partida img {
    width: 104px;
    height: 104px;
    border: 2px solid #8dcfff;
    border-radius: 50%;
    object-fit: cover;
    box-shadow: 0 0 18px rgba(141, 207, 255, 0.3);
}

.tarjeta-jugador-partida h3 {
    margin: 13px 0 10px;
    color: #f4fbff;
    font-size: 17px;
}

.acciones-jugador-partida {
    display: flex;
    gap: 10px;
}


.nombre-jugador-partida {
    color: inherit;
    cursor: pointer;
    text-decoration: none;
    outline: none;
    transition:
        color 0.2s ease,
        text-shadow 0.2s ease;
}

.nombre-jugador-partida:hover,
.nombre-jugador-partida:focus-visible {
    color: #ff66cc;
    text-shadow:
        0 0 6px rgba(255, 102, 204, 0.5);
}

.jugador-partida-propio {
    color: #8dcfff;
    font-size: 13px;
    font-weight: bold;
}

.texto-codigo-partida {
    color: rgba(255, 255, 255, 0.65);
    line-height: 1.45;
}

.input-codigo-partida {
    width: 100%;
    box-sizing: border-box;
    margin: 2px 0 6px;
    color: #a7f8ff;
    font-size: 21px;
    font-weight: bold;
    letter-spacing: 0.12em;
    text-align: center;
    text-transform: uppercase;
}

.acciones-modal-partida {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin-top: 18px;
}

.codigo-compartir-partida {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin: 18px 0;
}

.codigo-compartir-partida p {
    margin: 0;
}

.acciones-sala-minijuego {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    margin-top: 22px;
}

.modal-invitaciones-partida {
    width: min(520px, 100%);
    max-height: min(690px, calc(100vh - 40px));
    overflow-y: auto;
    text-align: left;
}

.cabecera-modal-invitaciones {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 16px;
}

.cabecera-modal-invitaciones h2 {
    margin: 5px 0 0;
}

.modal-invitaciones-partida .input-buscador-feed {
    width: 100%;
    box-sizing: border-box;
    margin: 0 0 14px;
}

.lista-invitables-sala,
.lista-invitaciones-minijuego {
    display: grid;
    gap: 10px;
}

.fila-invitable-sala,
.tarjeta-invitacion-minijuego {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 11px;
    border: 1px solid rgba(0, 217, 255, 0.2);
    border-radius: 15px;
    background: rgba(255, 255, 255, 0.035);
}

.fila-invitable-sala img,
.tarjeta-invitacion-minijuego img {
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    border-radius: 50%;
    object-fit: cover;
}

.fila-invitable-sala > button:first-of-type {
    flex: 1;
    padding: 0;
    background: transparent;
    box-shadow: none;
    color: rgba(255, 255, 255, 0.9);
    font-weight: bold;
    text-align: left;
}

.fila-invitable-sala > button:last-child {
    padding: 7px 10px;
    font-size: 12px;
}

.tarjeta-invitacion-minijuego {
    display: grid;
    grid-template-columns: 38px 1fr;
}

.tarjeta-invitacion-minijuego p {
    margin: 0;
    line-height: 1.4;
}

.tarjeta-invitacion-minijuego p button {
    padding: 0;
    background: transparent;
    box-shadow: none;
    color: #a7f8ff;
    font-weight: bold;
}

.tarjeta-invitacion-minijuego small,
.tarjeta-invitacion-minijuego .acciones-modal-partida {
    grid-column: 2;
}

.tarjeta-invitacion-minijuego small {
    color: rgba(255, 255, 255, 0.58);
}

.tarjeta-invitacion-minijuego .acciones-modal-partida {
    justify-content: flex-start;
    margin-top: 2px;
}

.codigo-qr-partida {
    display: block;
    width: min(235px, 100%);
    margin: 18px auto;
    padding: 10px;
    border-radius: 14px;
    background: white;
}

.modal-invitaciones-partida > #cargar-mas-invitables {
    display: block;
    margin: 14px auto 0;
}

/* Mesa de Blackjack: estilo casino rojo */
.mesa-blackjack {
    --casino-rojo: #9c1d36;
    --casino-rojo-claro: #e04461;
    --casino-dorado: #d7ad54;
    --casino-azul: #8dcfff;
}

.mesa-blackjack h1,
.temporizador-blackjack {
    color: var(--casino-dorado);
}

.resumen-blackjack {
    border-color: rgba(224, 68, 97, 0.5);
    background:
        radial-gradient(circle at 50% 0%, rgba(156, 29, 54, 0.42), transparent 76%),
        #1d1016;
}

#estado-blackjack {
    color: #ffe7ed;
}

.jugador-blackjack {
    border-color: rgba(224, 68, 97, 0.5);
    background:
        linear-gradient(155deg, rgba(156, 29, 54, 0.34), transparent 58%),
        #1b1015;
}

.jugador-actual-blackjack {
    border-color: var(--casino-dorado);
    box-shadow: 0 0 24px rgba(215, 173, 84, 0.18);
}

.jugador-ganador-blackjack {
    border-color: #f6d67a;
    box-shadow: 0 0 32px rgba(246, 214, 122, 0.34);
    animation: resaltar-ganador-blackjack 1s ease-in-out infinite alternate;
}

.cabecera-jugador-blackjack span {
    color: var(--casino-dorado);
}

.marcador-ronda-blackjack {
    margin-left: auto;
    padding: 4px 8px;
    border-radius: 10px;
    font-size: 16px;
    font-weight: bold;
}

.marcador-ronda-blackjack b {
    margin-left: 4px;
    font-size: 23px;
}

.marcador-ganador-esperando {
    opacity: 0;
    transform: translateY(7px) scale(0.84);
}

.marcador-ganador-visible {
    opacity: 1;
    transform: translateY(0) scale(1);
    transition: opacity 0.35s ease, transform 0.35s ease;
}

.marcador-positivo {
    color: #fff3c9;
    background: rgba(215, 173, 84, 0.2);
    border: 1px solid rgba(215, 173, 84, 0.55);
}

.marcador-negativo {
    color: #ffc0cc;
    background: rgba(224, 68, 97, 0.15);
    border: 1px solid rgba(224, 68, 97, 0.52);
}

.marcador-empate {
    color: #d9f3ff;
    background: rgba(86, 148, 206, 0.18);
    border: 1px solid rgba(141, 207, 255, 0.58);
}

.mano-blackjack {
    padding: 10px;
    border: 1px solid transparent;
    border-radius: 13px;
}

.mano-activa-blackjack {
    border-color: rgba(141, 207, 255, 0.75);
    background: rgba(86, 148, 206, 0.12);
    box-shadow: inset 0 0 18px rgba(86, 148, 206, 0.12);
}

.carta {
    position: relative;
    align-items: center;
    justify-content: center;
    width: 58px;
    height: 82px;
    overflow: hidden;
    border: 1px solid rgba(20, 20, 20, 0.35);
    border-radius: 10px;
    padding: 0;
    background: linear-gradient(145deg, #fffdf5, #e9e1ca);
    color: #171719;
    font-family: Georgia, serif;
}

.carta-palo-superior,
.carta-palo-inferior {
    position: absolute;
    right: 7px;
    font-size: 16px;
    line-height: 1;
}

.carta-palo-superior {
    top: 6px;
}

.carta-palo-inferior {
    bottom: 6px;
}

.carta-valor-central {
    font-size: 29px;
    line-height: 1;
}

.carta-corazones,
.carta-diamantes {
    color: #c62845;
}

.carta-treboles,
.carta-picas {
    color: #1d263a;
}

.carta-as {
    border-color: rgba(186, 137, 33, 0.9);
    background: radial-gradient(circle at 50% 42%, #fff5bd, #d8a83e 84%);
    color: #6b3d00;
    box-shadow: inset 0 0 12px rgba(255, 255, 255, 0.7);
}

.carta-diez {
    border-color: rgba(92, 181, 255, 0.85);
    background: linear-gradient(145deg, #e6f5ff, #9ed7ff);
    color: #07558a;
    box-shadow: 0 0 8px rgba(92, 181, 255, 0.28);
}

.suma-mano-blackjack {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 11px;
    padding: 6px 10px;
    border: 1px solid rgba(215, 173, 84, 0.36);
    border-radius: 11px;
    background: rgba(0, 0, 0, 0.22);
    color: rgba(255, 255, 255, 0.7);
    font-size: 12px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.suma-mano-blackjack strong {
    min-width: 29px;
    color: #fff0bd;
    font-size: 25px;
    line-height: 1;
    text-align: center;
    text-shadow: 0 0 10px rgba(215, 173, 84, 0.42);
}

.mano-activa-blackjack .suma-mano-blackjack {
    border-color: rgba(141, 207, 255, 0.82);
    background: rgba(36, 101, 158, 0.25);
}

.mano-activa-blackjack .suma-mano-blackjack strong {
    color: #d9f3ff;
    font-size: 31px;
    text-shadow: 0 0 13px rgba(141, 207, 255, 0.62);
}

.suma-actualizandose {
    animation: actualizar-suma-blackjack 0.34s ease-out;
}

.carta-oculta {
    background: repeating-linear-gradient(45deg, #791a31, #791a31 5px, #3b0e1c 5px, #3b0e1c 10px);
    color: #f2cf76;
}

.carta-revelandose {
    opacity: 0;
    transform: translateY(10px) rotateY(90deg);
    animation: revelar-carta-blackjack 0.28s ease-out forwards;
}

.carta-revelandose.carta-revelacion-rapida {
    animation-duration: 0.075s;
}

.acciones-mano-blackjack {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-top: 12px;
}

.acciones-mano-blackjack button {
    padding: 7px 10px;
    border-color: rgba(141, 207, 255, 0.7);
    background: rgba(31, 92, 142, 0.82);
    color: #effaff;
    font-size: 12px;
    font-weight: bold;
}

.acciones-mano-blackjack button:disabled {
    opacity: 0.35;
}

.mesa-blackjack > #acciones-blackjack {
    display: none;
}

.resultado-final-blackjack {
    border-color: var(--casino-dorado);
    background:
        radial-gradient(circle at 50% 0%, rgba(215, 173, 84, 0.27), transparent 60%),
        #2c1119;
}

.resultado-final-blackjack h2 {
    color: #fff0bd;
}

.resultado-final-esperando {
    visibility: hidden;
    opacity: 0;
}

.resultado-final-visible {
    visibility: visible;
    opacity: 1;
    animation: revelar-resultado-final-blackjack 0.45s ease-out;
}

.resultado-final-blackjack button {
    border-color: var(--casino-dorado);
    background: var(--casino-dorado);
}

@keyframes revelar-carta-blackjack {
    to {
        opacity: 1;
        transform: translateY(0) rotateY(0);
    }
}

@keyframes actualizar-suma-blackjack {
    50% {
        color: white;
        transform: scale(1.24);
    }
}

@keyframes resaltar-ganador-blackjack {
    to {
        transform: translateY(-3px);
        box-shadow: 0 0 42px rgba(246, 214, 122, 0.56);
    }
}

@keyframes revelar-resultado-final-blackjack {
    from {
        opacity: 0;
        transform: translateY(10px) scale(0.96);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@media (max-width: 650px) {
    .encabezado-minijuegos {
        align-items: flex-start;
        flex-direction: column;
    }

    .formulario-partida {
        grid-template-columns: 1fr;
    }

    .boton-crear-partida {
        width: 100%;
    }
}


/* ---- Sala de espera: inicio suave de partida ---- */
.pantalla-iniciando-partida {
    position: relative;
    max-width: 560px;
    margin: 48px auto;
    padding: 40px 30px 34px;
    border-radius: 30px;
    text-align: center;
    border: 1px solid rgba(255, 124, 233, 0.34);
    background:
        radial-gradient(circle at 50% 0%, rgba(255, 102, 228, 0.22), transparent 34%),
        radial-gradient(circle at 50% 100%, rgba(85, 225, 255, 0.12), transparent 44%),
        linear-gradient(145deg, rgba(255, 255, 255, 0.10), rgba(18, 8, 31, 0.88));
    box-shadow:
        0 34px 90px rgba(0, 0, 0, 0.52),
        0 0 44px rgba(255, 102, 228, 0.16),
        inset 0 0 30px rgba(255, 255, 255, 0.06);
    backdrop-filter: blur(16px);
    overflow: hidden;
}

.pantalla-iniciando-partida::before {
    content: "";
    position: absolute;
    inset: -40% auto auto 50%;
    width: 260px;
    height: 260px;
    transform: translateX(-50%);
    background: radial-gradient(circle, rgba(255, 90, 225, 0.34), rgba(255, 90, 225, 0) 72%);
    pointer-events: none;
}

.pantalla-iniciando-partida h1 {
    position: relative;
    margin: 10px 0 8px;
    color: #fff1ff;
    font-size: clamp(1.9rem, 4vw, 2.5rem);
    text-shadow: 0 0 22px rgba(255, 112, 232, 0.60);
}

.pantalla-iniciando-partida p {
    position: relative;
    color: rgba(233, 243, 255, 0.82);
}

.loader-iniciando-partida {
    width: 56px;
    height: 56px;
    margin: 26px auto 0;
    border-radius: 50%;
    border: 3px solid rgba(255, 255, 255, 0.16);
    border-top-color: rgba(255, 103, 230, 0.98);
    border-right-color: rgba(86, 242, 255, 0.92);
    box-shadow:
        0 0 18px rgba(255, 103, 230, 0.22),
        0 0 26px rgba(86, 242, 255, 0.18);
    animation: giro-iniciando-partida 0.75s linear infinite;
}

@keyframes giro-iniciando-partida {
    to { transform: rotate(360deg); }
}

/* ---- Mesa de Ajedrez ---- */
body:has(.mesa-ajedrez) {
    background:
        radial-gradient(circle at 50% 52%, rgba(255, 66, 208, 0.44), transparent 18%),
        radial-gradient(circle at 50% 50%, rgba(255, 123, 224, 0.28), transparent 26%),
        radial-gradient(circle at 50% 50%, rgba(161, 98, 255, 0.24), transparent 34%),
        radial-gradient(circle at 22% 18%, rgba(83, 28, 124, 0.42), transparent 28%),
        radial-gradient(circle at 78% 20%, rgba(95, 35, 138, 0.38), transparent 26%),
        linear-gradient(180deg, #04050a 0%, #060812 44%, #030409 100%);
    background-attachment: fixed;
}

.mesa-ajedrez {
    --aj-marco: rgba(224, 243, 255, 0.42);
    --aj-brillo: rgba(255, 123, 226, 0.36);
    --aj-brillo-sec: rgba(104, 211, 255, 0.30);
    --aj-casilla-clara: rgba(241, 248, 255, 0.34);
    --aj-casilla-oscura: rgba(76, 100, 122, 0.42);
    --aj-legal: rgba(0, 255, 255, 0.62);
    --aj-legal-borde: rgba(80, 255, 255, 0.98);
    --aj-seleccion: rgba(255, 223, 115, 0.92);
    --aj-jaque: rgba(255, 95, 133, 0.82);
    position: relative;
    max-width: 1160px;
    min-height: 100vh;
    padding: 22px 18px 42px;
    overflow: visible;
}

.mesa-ajedrez::before,
.mesa-ajedrez::after {
    content: "";
    position: fixed;
    inset: auto;
    pointer-events: none;
    z-index: -1;
    filter: blur(18px);
}

.mesa-ajedrez::before {
    width: min(78vw, 740px);
    height: min(78vw, 740px);
    left: 50%;
    top: 48%;
    transform: translate(-50%, -50%);
    background:
        radial-gradient(circle, rgba(255, 77, 213, 0.46) 0%, rgba(151, 88, 255, 0.26) 38%, rgba(0, 0, 0, 0) 72%);
}

.mesa-ajedrez::after {
    width: min(54vw, 520px);
    height: min(54vw, 520px);
    left: 50%;
    top: 49%;
    transform: translate(-50%, -50%);
    background:
        radial-gradient(circle, rgba(86, 242, 255, 0.22) 0%, rgba(0, 0, 0, 0) 72%);
}

.cabecera-ajedrez {
    display: grid;
    grid-template-columns: 130px minmax(0, 1fr) 130px;
    align-items: center;
    gap: 16px;
    margin-bottom: 26px;
}

.cabecera-ajedrez > div {
    justify-self: center;
    text-align: center;
}

.cabecera-ajedrez .etiqueta-minijuegos {
    display: block;
    margin: 0 0 8px;
    text-align: center;
}

.cabecera-ajedrez h1 {
    margin: 0;
    color: #eef8ff;
    letter-spacing: 0.03em;
    text-align: center;
}

.cabecera-ajedrez > span {
    width: 130px;
}

.cabecera-ajedrez .boton-secundario {
    border-color: rgba(255, 117, 232, 0.42);
    background: rgba(17, 18, 34, 0.72);
    color: #ffd9fb;
    box-shadow: 0 0 22px rgba(255, 117, 232, 0.10);
}

.tarjeta-jugador-ajedrez {
    position: relative;
    display: grid;
    grid-template-columns: 78px minmax(0, 1fr);
    align-items: center;
    gap: 14px;
    width: fit-content;
    min-width: min(360px, 90vw);
    max-width: min(600px, 90vw);
    margin: 0 auto 18px;
    padding: 14px 22px 14px 14px;
    border-radius: 24px;
    border: 1px solid rgba(255, 255, 255, 0.16);
    background:
        linear-gradient(145deg, rgba(255, 255, 255, 0.08), rgba(28, 14, 43, 0.84)),
        rgba(8, 13, 24, 0.88);
    backdrop-filter: blur(18px);
    box-shadow:
        0 18px 44px rgba(0, 0, 0, 0.42),
        inset 0 1px 0 rgba(255, 255, 255, 0.10);
}

.tarjeta-jugador-ajedrez.tarjeta-color-blanco {
    border-color: rgba(183, 222, 255, 0.28);
    box-shadow:
        0 18px 44px rgba(0, 0, 0, 0.42),
        0 0 24px rgba(121, 203, 255, 0.09),
        inset 0 1px 0 rgba(255, 255, 255, 0.10);
}

.tarjeta-jugador-ajedrez.tarjeta-color-negro {
    border-color: rgba(255, 132, 239, 0.24);
    box-shadow:
        0 18px 44px rgba(0, 0, 0, 0.42),
        0 0 24px rgba(255, 90, 224, 0.08),
        inset 0 1px 0 rgba(255, 255, 255, 0.10);
}

.tarjeta-propia-ajedrez {
    background:
        radial-gradient(circle at 15% 18%, rgba(90, 195, 255, 0.24), transparent 30%),
        linear-gradient(145deg, rgba(255, 255, 255, 0.10), rgba(17, 18, 38, 0.90));
}

.tarjeta-turno-ajedrez {
    border-color: rgba(84, 255, 245, 0.48);
    box-shadow:
        0 0 0 1px rgba(84, 255, 245, 0.16),
        0 20px 52px rgba(0, 0, 0, 0.46),
        0 0 34px rgba(84, 255, 245, 0.22);
}

.tarjeta-ganadora-ajedrez {
    border-color: rgba(255, 104, 237, 0.56);
    box-shadow:
        0 0 0 1px rgba(255, 104, 237, 0.18),
        0 24px 64px rgba(0, 0, 0, 0.50),
        0 0 34px rgba(255, 104, 237, 0.26);
}

.tarjeta-empate-ajedrez {
    border-color: rgba(166, 230, 255, 0.42);
}

.foto-jugador-ajedrez {
    width: 72px;
    height: 72px;
    border-radius: 20px;
    object-fit: cover;
    border: 1px solid rgba(255, 255, 255, 0.22);
    background: linear-gradient(145deg, rgba(255, 255, 255, 0.24), rgba(46, 61, 86, 0.58));
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.35);
}

.datos-jugador-ajedrez {
    min-width: 0;
}

.datos-jugador-ajedrez h2 {
    margin: 0;
    color: #eff7ff;
    font-size: 1.08rem;
    line-height: 1.1;
}

.color-asignado-jugador-ajedrez {
    display: inline-flex;
    width: fit-content;
    margin-top: 8px;
    padding: 5px 11px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.color-blancas {
    color: #edfbff;
    background: rgba(115, 195, 255, 0.16);
    border: 1px solid rgba(165, 226, 255, 0.36);
}

.color-negras {
    color: #ffd8fb;
    background: rgba(255, 97, 219, 0.14);
    border: 1px solid rgba(255, 133, 229, 0.30);
}

.estado-jugador-extra-ajedrez {
    position: absolute;
    top: 50%;
    right: -118px;
    transform: translateY(-50%);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 112px;
    padding: 10px 14px;
    border-radius: 16px;
    border: 1px solid rgba(255, 255, 255, 0.16);
    background: rgba(9, 10, 20, 0.88);
    box-shadow: 0 10px 26px rgba(0, 0, 0, 0.34);
    color: rgba(228, 242, 255, 0.92);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    text-align: center;
}

.estado-tu-turno {
    color: #070d14;
    background: linear-gradient(145deg, rgba(101, 255, 246, 0.98), rgba(119, 215, 255, 0.90));
    text-shadow: none;
}

.estado-esperando {
    color: #dcecff;
    background: rgba(16, 22, 36, 0.92);
    border-color: rgba(139, 198, 255, 0.24);
}

.estado-jaque {
    color: #ffe0ea;
    background: rgba(105, 15, 41, 0.92);
    border-color: rgba(255, 110, 148, 0.36);
    box-shadow: 0 0 22px rgba(255, 110, 148, 0.18);
}

.estado-ganaste {
    color: #ff77ea;
    background: rgba(38, 8, 38, 0.94);
    border-color: rgba(255, 103, 232, 0.46);
    font-size: 18px;
    letter-spacing: 0.10em;
    text-shadow: 0 0 18px rgba(255, 103, 232, 0.64);
    box-shadow: 0 0 26px rgba(255, 103, 232, 0.20);
}

.estado-empate {
    color: #dff8ff;
    background: rgba(11, 30, 49, 0.94);
    border-color: rgba(142, 223, 255, 0.40);
    font-size: 15px;
}

.tablero-ajedrez {
    position: relative;
    display: grid;
    grid-template-columns: repeat(8, minmax(0, 1fr));
    width: min(88vw, 682px);
    aspect-ratio: 1 / 1;
    margin: 22px auto 26px;
    padding: 38px;
    border-radius: 52px;
    background:
        linear-gradient(145deg, rgba(250, 252, 255, 0.18), rgba(160, 169, 181, 0.10)) padding-box,
        linear-gradient(135deg, #fefefe 0%, #cdd3db 16%, #f7f8fb 38%, #aeb7c4 58%, #fdfefe 78%, #98a3b3 100%) border-box;
    border: 5px solid transparent;
    box-shadow:
        0 44px 110px rgba(0, 0, 0, 0.64),
        0 0 0 1px rgba(255, 255, 255, 0.32),
        inset 0 1px 0 rgba(255, 255, 255, 0.62),
        inset 0 -10px 16px rgba(90, 96, 108, 0.12);
    overflow: visible;
}

.tablero-ajedrez::before {
    content: "";
    position: absolute;
    inset: 9px;
    border-radius: 42px;
    border: 2px solid rgba(248, 250, 253, 0.96);
    background:
        radial-gradient(18px 11px at 39% 18px, transparent 56%, rgba(236, 239, 244, 0.98) 57%, rgba(236, 239, 244, 0.98) 66%, transparent 67%),
        radial-gradient(18px 11px at 61% 18px, transparent 56%, rgba(236, 239, 244, 0.98) 57%, rgba(236, 239, 244, 0.98) 66%, transparent 67%),
        radial-gradient(13px 11px at 50% 18px, transparent 54%, rgba(236, 239, 244, 0.98) 55%, rgba(236, 239, 244, 0.98) 65%, transparent 66%),
        radial-gradient(18px 11px at 39% calc(100% - 18px), transparent 56%, rgba(236, 239, 244, 0.98) 57%, rgba(236, 239, 244, 0.98) 66%, transparent 67%),
        radial-gradient(18px 11px at 61% calc(100% - 18px), transparent 56%, rgba(236, 239, 244, 0.98) 57%, rgba(236, 239, 244, 0.98) 66%, transparent 67%),
        radial-gradient(13px 11px at 50% calc(100% - 18px), transparent 54%, rgba(236, 239, 244, 0.98) 55%, rgba(236, 239, 244, 0.98) 65%, transparent 66%);
    box-shadow:
        inset 0 0 0 1px rgba(255, 255, 255, 0.26),
        inset 0 0 26px rgba(255, 255, 255, 0.06),
        0 0 16px rgba(255, 255, 255, 0.10);
    pointer-events: none;
    z-index: 1;
}

.tablero-ajedrez::after {
    content: "";
    position: absolute;
    inset: 22px;
    border-radius: 32px;
    border: 3px solid rgba(229, 234, 241, 0.86);
    box-shadow:
        inset 0 0 0 1px rgba(255, 255, 255, 0.18),
        inset 0 0 20px rgba(60, 64, 72, 0.06),
        0 0 14px rgba(231, 237, 246, 0.10);
    pointer-events: none;
    z-index: 1;
}

.cuadricula-ajedrez {
    position: relative;
    display: grid;
    place-items: center;
    aspect-ratio: 1 / 1;
    border: none;
    border-radius: 0;
    background: transparent;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.055);
    cursor: pointer;
    overflow: hidden;
    z-index: 4;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
    transition: transform 0.15s ease, filter 0.15s ease, box-shadow 0.15s ease;
}

.cuadricula-ajedrez:hover {
    filter: brightness(1.12) saturate(1.08);
}

.cuadricula-clara,
button.cuadricula-clara:hover {
    background:
        linear-gradient(145deg, rgba(86, 94, 106, 0.96), rgba(58, 66, 78, 0.92)),
        rgba(67, 75, 88, 0.94);
}

.cuadricula-oscura,
button.cuadricula-oscura:hover {
    background:
        linear-gradient(145deg, rgba(10, 10, 12, 0.99), rgba(0, 0, 0, 0.96)),
        rgba(0, 0, 0, 0.98);
}

.cuadricula-seleccionada {
    z-index: 8;
    box-shadow:
        inset 0 0 0 4px var(--aj-seleccion),
        inset 0 0 28px rgba(255, 223, 115, 0.30);
}

.cuadricula-legal::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, rgba(68, 255, 250, 0.26), rgba(0, 255, 255, 0.58));
    box-shadow:
        inset 0 0 0 2px rgba(176, 255, 255, 0.72),
        inset 0 0 34px rgba(0, 255, 255, 0.58),
        0 0 32px rgba(0, 255, 255, 0.54);
    pointer-events: none;
    z-index: 6;
}

.cuadricula-legal-captura::after {
    inset: 6px;
    background: transparent;
    border: 4px solid var(--aj-legal-borde);
    border-radius: 18px;
    box-shadow:
        inset 0 0 18px rgba(0, 255, 255, 0.24),
        0 0 28px rgba(0, 255, 255, 0.64);
}

.pieza-ajedrez {
    position: relative;
    z-index: 7;
    width: 106%;
    height: 106%;
    display: inline-grid;
    place-items: center;
    user-select: none;
    pointer-events: none;
    transform: translateZ(0);
    filter:
        drop-shadow(0 8px 8px rgba(0, 0, 0, 0.48))
        drop-shadow(0 0 10px rgba(255, 255, 255, 0.10));
}

.pieza-ajedrez-svg {
    width: 100%;
    height: 100%;
    overflow: visible;
    pointer-events: none;
    shape-rendering: geometricPrecision;
    text-rendering: geometricPrecision;
}

.pieza-ajedrez-svg * {
    pointer-events: none;
}

.pieza-animada-ajedrez {
    position: fixed;
    z-index: 2500;
    display: grid;
    place-items: center;
    pointer-events: none;
    transform: translate3d(0, 0, 0);
    transform-origin: center;
    transition:
        transform var(--duracion-movimiento-ajedrez, 360ms)
        cubic-bezier(.22, .68, .24, 1);
    will-change: transform;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    contain: layout paint style;
}

.pieza-animada-ajedrez .pieza-ajedrez-svg {
    width: 106%;
    height: 106%;
    filter: drop-shadow(0 14px 22px rgba(0, 0, 0, 0.42));
}

.pieza-oculta-animacion-ajedrez,
.pieza-destino-animacion-ajedrez {
    opacity: 0;
}

.cuadricula-pieza-propia .pieza-ajedrez {
    filter:
        drop-shadow(0 8px 8px rgba(0, 0, 0, 0.48))
        drop-shadow(0 0 10px rgba(255, 225, 112, 0.48));
}

.cuadricula-ultimo-movimiento {
    box-shadow:
        inset 0 0 0 3px rgba(255, 233, 150, 0.54),
        inset 0 0 24px rgba(255, 233, 150, 0.18);
}

.cuadricula-jaque {
    box-shadow:
        inset 0 0 0 4px var(--aj-jaque),
        inset 0 0 32px rgba(255, 95, 133, 0.26);
    animation: pulso-jaque-cuadro-ajedrez 0.85s ease-in-out infinite alternate;
    z-index: 5;
}

.estado-linea-ajedrez {
    width: fit-content;
    margin: 12px auto 0;
    padding: 10px 16px;
    border-radius: 999px;
    background: rgba(10, 13, 25, 0.78);
    border: 1px solid rgba(255, 255, 255, 0.10);
    color: rgba(235, 244, 255, 0.88);
    font-size: 13px;
    min-height: 20px;
    text-align: center;
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.26);
}

.linea-jaque {
    color: #ffd8e6;
    border-color: rgba(255, 112, 150, 0.22);
}

.linea-error {
    color: #ffd7d7;
}


.capturadas-ajedrez {
    width: fit-content;
    min-width: min(360px, 90vw);
    max-width: min(600px, 90vw);
    margin: -4px auto 10px;
    padding: 10px 14px 12px;
    border-radius: 18px;
    border: 1px solid rgba(255, 255, 255, 0.12);
    background: rgba(11, 14, 24, 0.72);
    backdrop-filter: blur(10px);
    box-shadow: 0 10px 26px rgba(0, 0, 0, 0.24);
}

.capturadas-ajedrez-etiqueta {
    margin-bottom: 8px;
    color: rgba(226, 237, 255, 0.60);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.capturadas-ajedrez-lista {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.capturada-pieza-ajedrez {
    width: 28px;
    height: 28px;
    display: inline-grid;
    place-items: center;
    padding: 2px;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.04);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05);
}

.capturada-pieza-ajedrez .pieza-ajedrez-svg {
    width: 100%;
    height: 100%;
}


#capturadas-actual-ajedrez {
    margin-top: -10px;
    margin-bottom: 12px;
}

.resultado-final-ajedrez {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1400;
    width: min(92vw, 560px);
}

.resultado-final-ajedrez-panel {
    padding: 28px 28px 24px;
    border-radius: 30px;
    border: 1px solid rgba(255, 120, 232, 0.40);
    background:
        radial-gradient(circle at 50% 0%, rgba(255, 118, 230, 0.22), transparent 50%),
        linear-gradient(145deg, rgba(255, 255, 255, 0.10), rgba(13, 12, 27, 0.95));
    text-align: center;
    box-shadow:
        0 36px 100px rgba(0, 0, 0, 0.70),
        0 0 52px rgba(255, 86, 222, 0.20);
    backdrop-filter: blur(18px);
}

.resultado-final-ajedrez h2 {
    margin: 8px 0 12px;
    font-size: clamp(2rem, 6vw, 3rem);
    line-height: 1.03;
    letter-spacing: 0.02em;
}

.resultado-final-ajedrez.resultado-ganaste h2 {
    color: #ff77ea;
    text-shadow: 0 0 22px rgba(255, 119, 234, 0.72);
}

.resultado-final-ajedrez.resultado-perdiste h2 {
    color: #ffd6eb;
    text-shadow: 0 0 18px rgba(255, 131, 206, 0.38);
}

.resultado-final-ajedrez.resultado-empate h2 {
    color: #dff8ff;
    text-shadow: 0 0 18px rgba(137, 228, 255, 0.34);
}

.motivo-resultado-ajedrez {
    margin: 0 0 20px;
    color: rgba(238, 245, 255, 0.76);
}

.acciones-resultado-ajedrez {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
}

.descripcion-ver-jugadores-ajedrez {
    margin: 14px 0 0;
    color: rgba(229, 237, 255, 0.62);
    font-size: 13px;
}

#visor-cuadrado-ajedrez {
    position: fixed;
    top: 24px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 1500;
    padding: 12px 24px;
    border-radius: 18px;
    border: 1px solid rgba(255, 110, 218, 0.40);
    background:
        linear-gradient(145deg, rgba(255, 255, 255, 0.10), rgba(27, 10, 39, 0.94));
    color: #ffdbf8;
    font-weight: 700;
    box-shadow:
        0 14px 36px rgba(0, 0, 0, 0.48),
        0 0 28px rgba(255, 110, 218, 0.18);
    backdrop-filter: blur(14px);
}

#visor-cuadrado-ajedrez.oculto {
    display: none !important;
}

.mensaje-cuadrado-ajedrez {
    white-space: nowrap;
}

.reloj-jugador-ajedrez {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    margin-top: 10px;
    padding: 6px 12px;
    border-radius: 999px;
    border: 1px solid rgba(176, 218, 255, 0.34);
    background: rgba(8, 15, 28, 0.62);
    color: #eef9ff;
    font-size: 13px;
    letter-spacing: 0.10em;
    font-variant-numeric: tabular-nums;
}

.reloj-sin-limite-ajedrez {
    color: rgba(220, 233, 255, 0.70);
}

.reloj-activo-ajedrez {
    border-color: rgba(86, 255, 246, 0.72);
    background: rgba(0, 255, 255, 0.15);
    box-shadow: 0 0 22px rgba(86, 255, 246, 0.22);
}

.reloj-urgente-ajedrez {
    border-color: rgba(255, 121, 161, 0.72);
    background: rgba(89, 18, 45, 0.46);
    color: #ffe7ef;
    animation: pulso-reloj-ajedrez 0.9s ease-in-out infinite alternate;
}

@keyframes pulso-reloj-ajedrez {
    from { box-shadow: 0 0 8px rgba(255, 110, 110, 0.24); }
    to { box-shadow: 0 0 24px rgba(255, 110, 110, 0.58); }
}

@keyframes pulso-jaque-cuadro-ajedrez {
    from { filter: brightness(1); }
    to { filter: brightness(1.18); }
}

@media (max-width: 960px) {
    .estado-jugador-extra-ajedrez {
        right: -100px;
        min-width: 96px;
        padding: 8px 10px;
    }
}

@media (max-width: 780px) {
    .mesa-ajedrez {
        padding-top: 16px;
    }

    .cabecera-ajedrez {
        grid-template-columns: auto 1fr;
        gap: 10px;
    }

    .cabecera-ajedrez > span {
        display: none;
    }

    .tarjeta-jugador-ajedrez {
        grid-template-columns: 70px minmax(0, 1fr);
        min-width: min(94vw, 410px);
        padding-right: 14px;
    }

    .estado-jugador-extra-ajedrez {
        position: static;
        transform: none;
        grid-column: 1 / -1;
        justify-self: start;
        margin-top: 6px;
    }

    .tablero-ajedrez {
        width: min(96vw, 560px);
        padding: 22px;
        border-radius: 38px;
    }

    .tablero-ajedrez::before {
        inset: 6px;
        border-radius: 29px;
    }

    .tablero-ajedrez::after {
        inset: 15px;
        border-radius: 22px;
    }

    .cuadricula-legal-captura::after {
        inset: 4px;
        border-radius: 14px;
    }
}

@media (max-width: 560px) {
    .foto-jugador-ajedrez {
        width: 64px;
        height: 64px;
    }

    .datos-jugador-ajedrez h2 {
        font-size: 0.98rem;
    }

    .tablero-ajedrez {
        width: min(98vw, 480px);
        padding: 15px;
    }

    .resultado-final-ajedrez-panel {
        padding: 22px 18px 18px;
        border-radius: 24px;
    }

    .acciones-resultado-ajedrez {
        flex-direction: column;
    }
}

.estado-jugador-extra-ajedrez.oculto {
    display: none !important;
}

/* ---- Pulido Blackjack: desenlace, empate y transición de ronda ---- */
.puntos-jugador-blackjack {
    display: inline-flex;
    width: fit-content;
    transition: transform 0.28s ease, color 0.28s ease, text-shadow 0.28s ease;
}

.puntos-actualizando-blackjack {
    color: #fff7cf !important;
    transform: scale(1.12);
    text-shadow: 0 0 14px rgba(246, 214, 122, 0.52);
}

.jugador-empate-blackjack {
    border-color: rgba(141, 207, 255, 0.96) !important;
    background:
        radial-gradient(circle at 50% 0%, rgba(141, 207, 255, 0.22), transparent 62%),
        linear-gradient(155deg, rgba(44, 102, 163, 0.32), transparent 58%),
        #101724 !important;
    box-shadow:
        0 0 0 1px rgba(141, 207, 255, 0.35),
        0 0 38px rgba(141, 207, 255, 0.44) !important;
    animation: resaltar-empate-blackjack 1s ease-in-out infinite alternate;
}

.marcador-empate {
    color: #e3f7ff;
    background:
        radial-gradient(circle at 50% 0%, rgba(141, 207, 255, 0.26), transparent 70%),
        rgba(42, 105, 164, 0.30);
    border: 1px solid rgba(141, 207, 255, 0.84);
    box-shadow: 0 0 22px rgba(141, 207, 255, 0.32);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.marcador-empate b {
    color: #ffffff;
    font-size: 14px;
    margin-left: 8px;
}

.marcador-saliendo-blackjack {
    opacity: 0 !important;
    transform: translateY(-8px) scale(0.90) !important;
    transition: opacity 0.65s ease, transform 0.65s ease !important;
}

.ronda-saliendo-blackjack {
    opacity: 0.72;
    transform: translateY(8px) scale(0.985);
    filter: saturate(0.86) brightness(0.92);
    transition: opacity 0.75s ease, transform 0.75s ease, filter 0.75s ease;
}

.ronda-saliendo-blackjack.jugador-ganador-blackjack,
.ronda-saliendo-blackjack.jugador-empate-blackjack {
    animation: none;
}

@keyframes resaltar-empate-blackjack {
    to {
        transform: translateY(-3px);
        box-shadow:
            0 0 0 1px rgba(141, 207, 255, 0.44),
            0 0 46px rgba(141, 207, 255, 0.62);
    }
}

.estado-mano-blackjack {
    display: none !important;
}

@media (max-width: 720px) {
    .encabezado-minijuegos {
        align-items: stretch;
        flex-direction: column;
    }

    .titulo-encabezado-minijuegos {
        justify-content: space-between;
    }

    .acciones-encabezado-minijuegos {
        justify-content: flex-start;
    }

    .bloques-reglas-minijuego {
        grid-template-columns: 1fr;
    }

    .contenido-info-minijuegos {
        padding: 20px;
    }
}

@media (max-width: 560px) {
    .foto-perfil-grande,
    .avatar-perfil-grande {
        width: 220px;
        height: 220px;
    }

    .avatar-perfil-grande {
        font-size: 78px;
    }
}

/* Chat */
.contenedor-chat {
    max-width: 1120px;
}

.cabecera-chat {
    margin-bottom: 18px;
}

.panel-chat-usuarios,
.chat-panel-conversacion,
.chat-vacio {
    border: 1px solid rgba(0, 217, 255, 0.26);
    border-radius: 24px;
    background:
        linear-gradient(135deg, rgba(12, 19, 31, 0.92), rgba(13, 9, 25, 0.94));
    box-shadow:
        0 24px 70px rgba(0, 0, 0, 0.34),
        inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

.panel-chat-usuarios {
    padding: 18px;
    margin-bottom: 20px;
}

.chat-buscador {
    display: flex;
    gap: 12px;
    margin-bottom: 16px;
}

.chat-buscador input {
    width: 100%;
    padding: 13px 16px;
    border-radius: 16px;
    border: 1px solid rgba(141, 207, 255, 0.32);
    background: rgba(3, 8, 16, 0.86);
    color: #f5fbff;
    outline: none;
}

.chat-buscador input:focus {
    border-color: rgba(255, 102, 204, 0.72);
    box-shadow: 0 0 16px rgba(255, 102, 204, 0.18);
}

.lista-usuarios-chat {
    display: grid;
    grid-auto-flow: column;
    grid-template-rows: repeat(2, minmax(118px, auto));
    grid-auto-columns: minmax(142px, 164px);
    gap: 14px;
    overflow-x: auto;
    padding: 4px 4px 12px;
    scrollbar-width: thin;
}

.tarjeta-usuario-chat {
    position: relative;
    width: 100%;
    min-height: 118px;
    padding: 12px 10px;
    border: 1px solid rgba(141, 207, 255, 0.24);
    border-radius: 18px;
    background: rgba(8, 12, 22, 0.78);
    color: #f7fbff;
    box-shadow: none;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 6px;
    text-align: center;
    transition:
        border-color 0.18s ease,
        background 0.18s ease,
        transform 0.18s ease,
        box-shadow 0.18s ease;
}

.tarjeta-usuario-chat:hover,
.tarjeta-usuario-chat:focus-visible {
    background: rgba(16, 20, 34, 0.92);
    border-color: rgba(255, 102, 204, 0.68);
    transform: translateY(-1px);
    box-shadow: 0 0 16px rgba(255, 102, 204, 0.15);
}

.tarjeta-usuario-chat-activa,
.tarjeta-usuario-chat-activa:hover {
    border-color: rgba(0, 217, 255, 0.82);
    background: rgba(5, 31, 48, 0.78);
    box-shadow: 0 0 18px rgba(0, 217, 255, 0.16);
}

.tarjeta-usuario-chat img {
    width: 46px;
    height: 46px;
    border-radius: 50%;
    object-fit: cover;
    border: 1px solid rgba(141, 207, 255, 0.46);
    background: rgba(0, 0, 0, 0.42);
}

.tarjeta-usuario-chat strong {
    max-width: 100%;
    color: #f4fbff;
    font-size: 14px;
    line-height: 1.15;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.tarjeta-usuario-chat small {
    max-width: 100%;
    color: #9fb1c2;
    font-size: 11px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.tarjeta-usuario-chat span:not(.badge-chat-no-leidos) {
    color: #8dcfff;
    font-size: 10px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.badge-chat-no-leidos {
    position: absolute;
    top: 8px;
    right: 8px;
    min-width: 28px;
    padding: 3px 7px;
    border-radius: 999px;
    background: linear-gradient(135deg, #ff4fca, #ff80df);
    color: #120716;
    font-size: 12px;
    font-weight: 900;
    box-shadow: 0 0 14px rgba(255, 102, 204, 0.52);
}

.chat-sin-usuarios,
.chat-sin-mensajes,
.chat-vacio {
    color: #b7c5d5;
    text-align: center;
}

.chat-sin-usuarios {
    grid-row: 1 / span 2;
    padding: 30px;
}

.chat-vacio {
    padding: 44px 22px;
}

.chat-vacio h2 {
    color: #f7fbff;
    margin-bottom: 8px;
}

.chat-panel-conversacion {
    overflow: hidden;
}

.chat-cabecera-conversacion {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 16px 18px;
    border-bottom: 1px solid rgba(141, 207, 255, 0.16);
    background: rgba(5, 10, 18, 0.68);
}

.chat-cabecera-conversacion img {
    width: 58px;
    height: 58px;
    border-radius: 50%;
    object-fit: cover;
    border: 1px solid rgba(141, 207, 255, 0.42);
}

.chat-cabecera-conversacion h2 {
    margin: 0;
    color: #f7fbff;
    font-size: 20px;
}

.chat-cabecera-conversacion p {
    margin: 3px 0 0;
    color: #9fb1c2;
    font-size: 13px;
}

.boton-perfil-chat {
    margin-left: auto;
    padding: 10px 14px;
}

.mensajes-chat {
    height: min(54vh, 480px);
    min-height: 300px;
    overflow-y: auto;
    padding: 20px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    background:
        radial-gradient(circle at 18% 20%, rgba(255, 102, 204, 0.08), transparent 24%),
        rgba(2, 5, 10, 0.62);
}

.mensaje-chat {
    max-width: min(68%, 540px);
    padding: 10px 13px;
    border-radius: 17px;
    border: 1px solid rgba(255, 255, 255, 0.08);
    box-shadow: 0 10px 26px rgba(0, 0, 0, 0.18);
}

.mensaje-chat p {
    margin: 0;
    color: #f7fbff;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.mensaje-chat small {
    display: block;
    margin-top: 6px;
    color: rgba(230, 238, 247, 0.58);
    font-size: 11px;
}

.mensaje-chat-propio {
    align-self: flex-end;
    background: linear-gradient(135deg, rgba(20, 119, 211, 0.88), rgba(0, 217, 255, 0.44));
    border-bottom-right-radius: 6px;
}

.mensaje-chat-ajeno {
    align-self: flex-start;
    background: rgba(21, 25, 38, 0.92);
    border-bottom-left-radius: 6px;
}

.formulario-chat {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 12px;
    padding: 16px;
    border-top: 1px solid rgba(141, 207, 255, 0.16);
    background: rgba(5, 10, 18, 0.74);
}

.formulario-chat textarea {
    min-height: 52px;
    max-height: 120px;
    resize: vertical;
    border-radius: 16px;
    padding: 13px 15px;
    border: 1px solid rgba(141, 207, 255, 0.32);
    background: rgba(3, 8, 16, 0.86);
    color: #f7fbff;
    outline: none;
}

.formulario-chat textarea:focus {
    border-color: rgba(255, 102, 204, 0.72);
    box-shadow: 0 0 16px rgba(255, 102, 204, 0.16);
}

.formulario-chat button {
    align-self: stretch;
    min-width: 112px;
}

@media (max-width: 760px) {
    .lista-usuarios-chat {
        grid-template-rows: repeat(2, minmax(108px, auto));
        grid-auto-columns: minmax(126px, 140px);
    }

    .chat-cabecera-conversacion {
        flex-wrap: wrap;
    }

    .boton-perfil-chat {
        width: 100%;
        margin-left: 0;
    }

    .mensajes-chat {
        height: 52vh;
        min-height: 260px;
        padding: 14px;
    }

    .mensaje-chat {
        max-width: 86%;
    }

    .formulario-chat {
        grid-template-columns: 1fr;
    }
}


/* Chat v2 - pulido */
.contenedor-chat {
    max-width: 1120px;
}

.cabecera-chat {
    margin-bottom: 14px;
    padding: 18px 24px;
    min-height: 0;
}

.cabecera-chat h1 {
    margin: 3px 0 4px;
    font-size: clamp(28px, 4vw, 38px);
}

.cabecera-chat p:not(.etiqueta-portada-feed) {
    font-size: 14px;
    line-height: 1.35;
}

.panel-chat-usuarios {
    padding: 16px 16px 12px;
}

.lista-usuarios-chat {
    display: grid;
    grid-auto-flow: column;
    grid-template-rows: repeat(2, minmax(94px, auto));
    grid-auto-columns: minmax(112px, 132px);
    gap: 12px;
    overflow-x: auto;
    overflow-y: hidden;
    padding: 4px 4px 12px;
    scroll-snap-type: x proximity;
    scrollbar-width: thin;
    scrollbar-color: rgba(255, 102, 204, 0.48) rgba(8, 12, 22, 0.70);
}

.lista-usuarios-chat::-webkit-scrollbar {
    height: 8px;
}

.lista-usuarios-chat::-webkit-scrollbar-track {
    background: rgba(8, 12, 22, 0.70);
    border-radius: 999px;
}

.lista-usuarios-chat::-webkit-scrollbar-thumb {
    background: linear-gradient(90deg, rgba(255, 102, 204, 0.72), rgba(0, 217, 255, 0.54));
    border-radius: 999px;
}

.tarjeta-usuario-chat {
    min-height: 94px;
    padding: 10px 9px;
    gap: 7px;
    scroll-snap-align: start;
}

.tarjeta-usuario-chat img,
.avatar-chat-fallback {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    object-fit: cover;
    border: 1px solid rgba(141, 207, 255, 0.34);
    background: rgba(0, 0, 0, 0.42);
}

.avatar-chat-fallback {
    display: grid;
    place-items: center;
    color: #f5fbff;
    font-size: 18px;
    font-weight: 500;
}

.tarjeta-usuario-chat strong {
    max-width: 100%;
    color: #f4fbff;
    font-size: 13px;
    font-weight: 400;
    line-height: 1.16;
    text-shadow: 0 0 8px rgba(255, 255, 255, 0.10);
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.tarjeta-usuario-chat small,
.tarjeta-usuario-chat span:not(.badge-chat-no-leidos) {
    display: none;
}

.tarjeta-usuario-chat:hover strong,
.tarjeta-usuario-chat:focus-visible strong {
    color: #ff66cc;
    text-shadow: 0 0 10px rgba(255, 102, 204, 0.58);
}

.badge-chat-no-leidos {
    top: 7px;
    right: 7px;
}

.avatar-chat-cabecera {
    width: 58px;
    height: 58px;
    flex: 0 0 58px;
}

.formulario-chat {
    display: block;
    padding: 14px;
    border-top: 1px solid rgba(141, 207, 255, 0.16);
    background:
        radial-gradient(circle at 10% 10%, rgba(255, 102, 204, 0.08), transparent 28%),
        rgba(5, 10, 18, 0.78);
}

.barra-escritura-chat {
    display: grid;
    grid-template-columns: auto auto minmax(0, 1fr) auto;
    align-items: end;
    gap: 10px;
    padding: 10px;
    border: 1px solid rgba(141, 207, 255, 0.26);
    border-radius: 22px;
    background: rgba(3, 8, 16, 0.88);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.04),
        0 12px 28px rgba(0, 0, 0, 0.20);
}

.boton-chat-redondo {
    width: 42px;
    height: 42px;
    min-width: 42px;
    padding: 0;
    border-radius: 50%;
    border: 1px solid rgba(141, 207, 255, 0.32);
    background: rgba(12, 21, 35, 0.92);
    color: #f5fbff;
    font-size: 18px;
    box-shadow: none;
}

.boton-chat-redondo:hover,
.boton-chat-redondo:focus-visible {
    border-color: rgba(255, 102, 204, 0.74);
    background: rgba(40, 16, 39, 0.92);
    box-shadow: 0 0 14px rgba(255, 102, 204, 0.18);
}

.formulario-chat textarea {
    min-height: 44px;
    max-height: 104px;
    resize: vertical;
    border-radius: 16px;
    padding: 11px 13px;
    border: 1px solid rgba(141, 207, 255, 0.24);
    background: rgba(0, 0, 0, 0.22);
    color: #f7fbff;
    outline: none;
    font-size: 14px;
    line-height: 1.35;
}

.formulario-chat textarea:focus {
    border-color: rgba(255, 102, 204, 0.72);
    box-shadow: 0 0 14px rgba(255, 102, 204, 0.14);
}

.boton-enviar-chat {
    min-width: 94px;
    align-self: stretch;
    border-radius: 16px;
}

.preview-archivo-chat {
    display: none;
    margin-bottom: 10px;
}

.preview-archivo-chat-activa {
    display: block;
}

.archivo-chat-preview,
.archivo-chat-preview-subiendo {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    max-width: 100%;
    padding: 8px 10px;
    border: 1px solid rgba(141, 207, 255, 0.26);
    border-radius: 16px;
    background: rgba(8, 13, 23, 0.92);
    color: #dbeaff;
}

.archivo-chat-preview img,
.archivo-chat-preview video {
    width: 58px;
    height: 46px;
    border-radius: 10px;
    object-fit: cover;
    background: rgba(0, 0, 0, 0.45);
}

.archivo-chat-preview span {
    max-width: min(320px, 54vw);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 13px;
}

.archivo-chat-preview button {
    width: 28px;
    height: 28px;
    min-width: 28px;
    padding: 0;
    border-radius: 50%;
    box-shadow: none;
}

.adjunto-chat {
    display: block;
    margin-bottom: 8px;
}

.adjunto-chat-imagen img {
    display: block;
    max-width: min(300px, 100%);
    max-height: 260px;
    border-radius: 14px;
    object-fit: cover;
}

.adjunto-chat-video video {
    display: block;
    max-width: min(340px, 100%);
    max-height: 280px;
    border-radius: 14px;
    background: rgba(0, 0, 0, 0.50);
}

.adjunto-chat-video span {
    display: block;
    margin-top: 5px;
    color: rgba(230, 238, 247, 0.64);
    font-size: 11px;
}

@media (max-width: 760px) {
    .lista-usuarios-chat {
        grid-template-rows: repeat(2, minmax(88px, auto));
        grid-auto-columns: minmax(102px, 118px);
    }

    .barra-escritura-chat {
        grid-template-columns: auto auto 1fr;
    }

    .boton-enviar-chat {
        grid-column: 1 / -1;
        min-height: 42px;
    }
}

/* Chat v3 - diseño pulido */
.contenedor-chat,
.contenedor-chat button,
.contenedor-chat input,
.contenedor-chat textarea {
    font-family: "Segoe UI Variable", "Inter", "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
}

.cabecera-chat {
    padding: 12px 22px;
    margin-bottom: 12px;
    border-radius: 22px;
}

.cabecera-chat h1 {
    margin: 1px 0 2px;
    font-size: clamp(24px, 3.4vw, 32px);
    letter-spacing: 0.03em;
}

.cabecera-chat p:not(.etiqueta-portada-feed) {
    margin: 0;
    font-size: 13px;
}

.panel-chat-usuarios,
.chat-panel-conversacion,
.chat-vacio {
    border-color: rgba(120, 180, 225, 0.22);
    background:
        linear-gradient(145deg, rgba(15, 20, 29, 0.96), rgba(8, 10, 16, 0.98));
    box-shadow:
        0 26px 70px rgba(0, 0, 0, 0.42),
        inset 0 1px 0 rgba(255, 255, 255, 0.055);
}

.lista-usuarios-chat {
    grid-template-rows: repeat(2, minmax(126px, auto));
    grid-auto-columns: minmax(154px, 178px);
    gap: 14px;
    padding: 5px 5px 14px;
}

.tarjeta-usuario-chat {
    min-height: 126px;
    padding: 13px 11px;
    gap: 9px;
    border-radius: 21px;
    background:
        linear-gradient(145deg, rgba(17, 22, 33, 0.94), rgba(7, 9, 16, 0.96));
    border-color: rgba(152, 194, 229, 0.20);
}

.tarjeta-usuario-chat:hover,
.tarjeta-usuario-chat:focus-visible {
    background:
        linear-gradient(145deg, rgba(26, 28, 42, 0.98), rgba(16, 11, 24, 0.98));
    border-color: rgba(255, 102, 204, 0.64);
    box-shadow:
        0 0 0 1px rgba(255, 102, 204, 0.12),
        0 14px 28px rgba(0, 0, 0, 0.25),
        0 0 16px rgba(255, 102, 204, 0.12);
}

.tarjeta-usuario-chat-activa,
.tarjeta-usuario-chat-activa:hover {
    background:
        linear-gradient(145deg, rgba(17, 30, 42, 0.98), rgba(8, 13, 22, 0.98));
    border-color: rgba(0, 217, 255, 0.58);
    box-shadow:
        0 0 0 1px rgba(0, 217, 255, 0.10),
        0 14px 28px rgba(0, 0, 0, 0.22);
}

.tarjeta-usuario-chat img,
.avatar-chat-fallback {
    width: 58px;
    height: 58px;
    flex: 0 0 58px;
    border-color: rgba(170, 205, 236, 0.28);
}

.tarjeta-usuario-chat strong {
    font-size: 14.5px;
    font-weight: 350;
    letter-spacing: 0.01em;
    color: rgba(246, 250, 255, 0.96);
    text-shadow: none;
}

.badge-chat-no-leidos {
    top: 9px;
    right: 9px;
    padding: 4px 8px;
    background: linear-gradient(135deg, #ff5bd1, #ff97e6);
    color: #130814;
}

.mensajes-chat {
    height: min(57vh, 520px);
    min-height: 340px;
    padding: 24px;
    gap: 15px;
    background:
        radial-gradient(circle at 14% 10%, rgba(255, 102, 204, 0.055), transparent 28%),
        radial-gradient(circle at 85% 22%, rgba(0, 217, 255, 0.045), transparent 26%),
        linear-gradient(180deg, rgba(4, 6, 11, 0.96), rgba(1, 3, 7, 0.98));
}

.mensaje-chat {
    max-width: min(76%, 630px);
    padding: 14px 17px;
    border-radius: 22px;
    border: 1px solid rgba(255, 255, 255, 0.075);
    box-shadow:
        0 12px 28px rgba(0, 0, 0, 0.24),
        inset 0 1px 0 rgba(255, 255, 255, 0.045);
}

.mensaje-chat p {
    font-size: 15.5px;
    line-height: 1.45;
    letter-spacing: 0.005em;
}

.mensaje-chat small {
    margin-top: 8px;
    font-size: 11px;
    letter-spacing: 0.01em;
}

.mensaje-chat-propio {
    background:
        linear-gradient(145deg, rgba(88, 96, 110, 0.96), rgba(45, 51, 62, 0.98));
    border-color: rgba(203, 211, 222, 0.15);
    border-bottom-right-radius: 7px;
}

.mensaje-chat-ajeno {
    background:
        linear-gradient(145deg, rgba(12, 14, 19, 0.98), rgba(0, 0, 0, 0.98));
    border-color: rgba(120, 150, 180, 0.12);
    border-bottom-left-radius: 7px;
}

.formulario-chat {
    padding: 17px;
    background:
        linear-gradient(145deg, rgba(25, 31, 42, 0.96), rgba(11, 13, 20, 0.98));
    border-top-color: rgba(150, 185, 220, 0.14);
}

.barra-escritura-chat {
    grid-template-columns: 46px 46px minmax(0, 1fr) auto;
    gap: 11px;
    align-items: center;
    padding: 12px;
    border-radius: 28px;
    border-color: rgba(170, 203, 232, 0.21);
    background:
        linear-gradient(145deg, rgba(35, 42, 55, 0.92), rgba(17, 20, 29, 0.96));
    box-shadow:
        0 14px 32px rgba(0, 0, 0, 0.34),
        inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

.formulario-chat .boton-chat-redondo {
    width: 46px;
    min-width: 46px;
    max-width: 46px;
    height: 46px;
    min-height: 46px;
    max-height: 46px;
    align-self: center;
    display: grid;
    place-items: center;
    padding: 0;
    border-radius: 50%;
    border-color: rgba(170, 203, 232, 0.24);
    background:
        linear-gradient(145deg, rgba(21, 27, 39, 0.98), rgba(8, 10, 17, 0.98));
    color: #f8fbff;
}

.formulario-chat .boton-chat-redondo:hover,
.formulario-chat .boton-chat-redondo:focus-visible {
    transform: translateY(-1px);
    border-color: rgba(255, 102, 204, 0.68);
    box-shadow: 0 0 16px rgba(255, 102, 204, 0.16);
}

.boton-archivo-chat svg {
    width: 25px;
    height: 25px;
    stroke: currentColor;
    fill: none;
    stroke-width: 1.75;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.boton-archivo-chat svg rect {
    fill: rgba(255, 255, 255, 0.035);
}

.formulario-chat textarea {
    min-height: 48px;
    max-height: 116px;
    border-radius: 20px;
    padding: 13px 15px;
    resize: vertical;
    border-color: rgba(180, 207, 232, 0.18);
    background: rgba(4, 6, 11, 0.64);
    color: #f7fbff;
    font-size: 15px;
}

.formulario-chat textarea:focus {
    border-color: rgba(255, 102, 204, 0.72);
    background: rgba(4, 6, 11, 0.84);
    box-shadow:
        0 0 0 1px rgba(255, 102, 204, 0.14),
        0 0 18px rgba(255, 102, 204, 0.10);
}

.boton-enviar-chat {
    min-width: 104px;
    min-height: 46px;
    align-self: center;
    border-radius: 20px;
    background: linear-gradient(135deg, #2c8df0, #2371c7);
    letter-spacing: 0.01em;
}

.panel-emojis-chat {
    border-color: rgba(255, 102, 204, 0.32);
    background:
        linear-gradient(145deg, rgba(24, 26, 35, 0.98), rgba(7, 8, 13, 0.98));
    box-shadow:
        0 18px 42px rgba(0, 0, 0, 0.52),
        0 0 18px rgba(255, 102, 204, 0.13);
}

@media (max-width: 760px) {
    .lista-usuarios-chat {
        grid-template-rows: repeat(2, minmax(112px, auto));
        grid-auto-columns: minmax(132px, 148px);
    }

    .barra-escritura-chat {
        grid-template-columns: 44px 44px 1fr;
    }

    .boton-enviar-chat {
        grid-column: 1 / -1;
    }

    .mensaje-chat {
        max-width: 90%;
    }
}

/* Chat v4 - aurora, scroll discreto y tipografía global */
body,
button,
input,
textarea,
select {
    font-family: "Segoe UI Variable", "Inter", "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, sans-serif !important;
}

body {
    font-size: 16px;
    letter-spacing: 0.003em;
}

.contenedor-chat {
    font-size: 16px;
}

.cabecera-chat {
    padding: 10px 22px;
    margin-bottom: 12px;
}

.cabecera-chat h1 {
    font-size: clamp(25px, 3.2vw, 34px);
    font-weight: 520;
}

.lista-usuarios-chat {
    grid-template-rows: repeat(2, minmax(138px, auto));
    grid-auto-columns: minmax(170px, 196px);
    gap: 16px;
    scrollbar-width: thin;
    scrollbar-color: rgba(72, 78, 88, 0.85) transparent;
}

.lista-usuarios-chat::-webkit-scrollbar,
.mensajes-chat::-webkit-scrollbar {
    height: 7px;
    width: 7px;
}

.lista-usuarios-chat::-webkit-scrollbar-track,
.mensajes-chat::-webkit-scrollbar-track {
    background: transparent;
}

.lista-usuarios-chat::-webkit-scrollbar-thumb,
.mensajes-chat::-webkit-scrollbar-thumb {
    background: rgba(72, 78, 88, 0.82);
    border-radius: 999px;
}

.tarjeta-usuario-chat {
    min-height: 138px;
    padding: 15px 12px;
    gap: 10px;
}

.tarjeta-usuario-chat img,
.avatar-chat-fallback {
    width: 66px;
    height: 66px;
    flex-basis: 66px;
}

.tarjeta-usuario-chat strong {
    font-size: 15.5px;
    font-weight: 320;
    line-height: 1.18;
}

.envoltura-mensajes-chat {
    position: relative;
}

.mensajes-chat {
    height: min(59vh, 560px);
    min-height: 370px;
    padding: 26px;
    gap: 17px;
    scrollbar-width: thin;
    scrollbar-color: rgba(72, 78, 88, 0.85) transparent;
}

.boton-bajar-chat {
    position: absolute;
    right: 20px;
    bottom: 18px;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    border: 1px solid rgba(160, 175, 190, 0.28);
    background:
        linear-gradient(145deg, rgba(36, 42, 52, 0.95), rgba(10, 12, 18, 0.98));
    color: #f1f7ff;
    display: grid;
    place-items: center;
    font-size: 22px;
    line-height: 1;
    opacity: 0;
    pointer-events: none;
    transform: translateY(8px) scale(0.94);
    transition: opacity 0.18s ease, transform 0.18s ease, border-color 0.18s ease;
    z-index: 5;
}

.boton-bajar-chat-visible {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0) scale(1);
}

.boton-bajar-chat:hover,
.boton-bajar-chat:focus-visible {
    border-color: rgba(255, 102, 204, 0.62);
    box-shadow: 0 0 16px rgba(255, 102, 204, 0.14);
}

.mensaje-chat {
    max-width: min(80%, 700px);
    padding: 17px 20px;
    border-radius: 25px;
}

.mensaje-chat p {
    font-size: 17.5px;
    line-height: 1.5;
    font-weight: 380;
}

.mensaje-chat small {
    font-size: 12px;
    margin-top: 9px;
}

.mensaje-chat-propio {
    background:
        radial-gradient(circle at 16% 10%, rgba(64, 255, 169, 0.72), transparent 30%),
        radial-gradient(circle at 82% 22%, rgba(0, 232, 255, 0.54), transparent 32%),
        radial-gradient(circle at 54% 84%, rgba(31, 185, 116, 0.46), transparent 32%),
        linear-gradient(145deg, rgba(31, 55, 50, 0.98), rgba(10, 18, 22, 0.99));
    border-color: rgba(117, 255, 206, 0.23);
    box-shadow:
        0 14px 32px rgba(0, 0, 0, 0.30),
        inset 0 1px 0 rgba(226, 255, 246, 0.14),
        0 0 22px rgba(22, 210, 139, 0.08);
}

.mensaje-chat-ajeno {
    background:
        linear-gradient(145deg, rgba(16, 17, 22, 0.99), rgba(0, 0, 0, 0.99));
    border-color: rgba(130, 143, 155, 0.16);
}

.mensaje-chat-solo-adjunto {
    padding: 0;
    border: none;
    background: transparent;
    box-shadow: none;
    max-width: min(84%, 700px);
}

.mensaje-chat-solo-adjunto small {
    margin: 6px 8px 0;
    color: rgba(225, 235, 245, 0.56);
}

.adjunto-chat {
    border: none;
    padding: 0;
    background: transparent;
    cursor: pointer;
    display: block;
    text-align: inherit;
    margin-bottom: 10px;
}

.adjunto-chat-solo {
    margin-bottom: 0;
}

.adjunto-chat-imagen img,
.adjunto-chat-video video {
    display: block;
    max-width: min(430px, 100%);
    max-height: 360px;
    border-radius: 20px;
    object-fit: cover;
    border: 1px solid rgba(150, 166, 180, 0.18);
    box-shadow: 0 14px 34px rgba(0, 0, 0, 0.28);
}

.adjunto-chat-video span {
    display: none;
}

.formulario-chat {
    padding: 18px;
    background:
        radial-gradient(circle at 14% 0%, rgba(0, 230, 170, 0.09), transparent 28%),
        linear-gradient(145deg, rgba(31, 36, 45, 0.98), rgba(16, 18, 25, 0.99));
}

.barra-escritura-chat {
    grid-template-columns: 48px 48px minmax(0, 1fr) auto;
    gap: 12px;
    padding: 13px;
    border-radius: 30px;
    border: 1px solid rgba(151, 167, 184, 0.25);
    background:
        linear-gradient(145deg, rgba(43, 48, 58, 0.96), rgba(22, 25, 33, 0.98));
    box-shadow:
        0 16px 38px rgba(0, 0, 0, 0.36),
        inset 0 1px 0 rgba(255, 255, 255, 0.07);
}

.formulario-chat .boton-chat-redondo {
    width: 48px !important;
    min-width: 48px !important;
    max-width: 48px !important;
    height: 48px !important;
    min-height: 48px !important;
    max-height: 48px !important;
    flex: 0 0 48px !important;
    aspect-ratio: 1 / 1;
    border-radius: 50% !important;
    padding: 0 !important;
}

.boton-archivo-chat svg {
    width: 28px;
    height: 28px;
    stroke-width: 1.7;
}

.boton-archivo-chat svg .foto-apilada {
    fill: transparent !important;
    stroke: currentColor;
}

.boton-archivo-chat svg .foto-apilada-atras {
    opacity: 0.44;
}

.boton-archivo-chat svg .foto-apilada-medio {
    opacity: 0.68;
}

.boton-archivo-chat svg .foto-apilada-frente {
    opacity: 1;
}

.formulario-chat textarea {
    min-height: 52px;
    max-height: 128px;
    font-size: 16.5px;
    line-height: 1.42;
    font-weight: 360;
    background: rgba(4, 6, 11, 0.42);
}

.boton-enviar-chat {
    min-height: 48px;
    padding: 0 22px;
    background:
        linear-gradient(135deg, rgba(64, 255, 169, 0.90), rgba(0, 174, 255, 0.88));
    color: #061014;
    font-weight: 760;
}

.visor-chat-media {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 1200;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.78);
    padding: 24px;
}

.visor-chat-media-contenido img,
.visor-chat-media-contenido video {
    max-width: 88vw;
    max-height: 86vh;
    border-radius: 20px;
    border: 1px solid rgba(220, 230, 240, 0.32);
    box-shadow: 0 24px 80px rgba(0, 0, 0, 0.56);
    background: #000;
}

@media (max-width: 760px) {
    .lista-usuarios-chat {
        grid-template-rows: repeat(2, minmax(124px, auto));
        grid-auto-columns: minmax(150px, 164px);
    }

    .barra-escritura-chat {
        grid-template-columns: 46px 46px 1fr;
    }

    .formulario-chat .boton-chat-redondo {
        width: 46px !important;
        min-width: 46px !important;
        height: 46px !important;
        min-height: 46px !important;
    }

    .mensaje-chat,
    .mensaje-chat-solo-adjunto {
        max-width: 92%;
    }
}

/* Chat v5 - cabecera transparente, navegación más suave y scrollbars globales */
html.restaurando-scroll-feed,
html.restaurando-scroll-feed body {
    background: #0d0d0d !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

* {
    scrollbar-width: thin;
    scrollbar-color: rgba(72, 78, 88, 0.82) transparent;
}

*::-webkit-scrollbar {
    width: 7px;
    height: 7px;
}

*::-webkit-scrollbar-track {
    background: transparent;
}

*::-webkit-scrollbar-thumb {
    background: rgba(72, 78, 88, 0.82);
    border-radius: 999px;
}

*::-webkit-scrollbar-thumb:hover {
    background: rgba(92, 99, 111, 0.92);
}

.chat-cabecera-conversacion {
    background: transparent !important;
    border-bottom-color: rgba(141, 207, 255, 0.08) !important;
    box-shadow: none !important;
}

.chat-cabecera-conversacion img,
.avatar-chat-cabecera {
    background: transparent !important;
    border-color: rgba(160, 175, 190, 0.18) !important;
    box-shadow: none !important;
}

.chat-cabecera-conversacion h2 {
    font-weight: 480;
}


/* Optimización v2 - feeds más ligeros sin romper scroll interno del chat */
html.navegando-salida-rapida *,
html.restaurando-scroll-feed * {
    animation-duration: 0.001ms !important;
    animation-delay: 0s !important;
    transition-duration: 0.001ms !important;
    transition-delay: 0s !important;
    scroll-behavior: auto !important;
}

@supports (content-visibility: auto) {
    .tarjeta-publicacion.tarjeta-feed,
    .tarjeta-duda,
    .tarjeta-alumno,
    .tarjeta-minijuego,
    .tarjeta-carta,
    .comentario,
    .respuesta {
        content-visibility: auto;
        contain-intrinsic-size: auto 540px;
    }

    .comentario,
    .respuesta {
        contain-intrinsic-size: auto 130px;
    }
}

img,
video {
    max-width: 100%;
}


body.visor-video-publicacion-abierto {
    overflow: hidden;
}

.visor-video-publicacion {
    position: fixed;
    inset: 0;
    z-index: 5000;
    display: none;
    align-items: center;
    justify-content: center;
    padding: max(18px, env(safe-area-inset-top))
        max(18px, env(safe-area-inset-right))
        max(18px, env(safe-area-inset-bottom))
        max(18px, env(safe-area-inset-left));
    box-sizing: border-box;
    background: rgba(0, 0, 0, 0.90);
    backdrop-filter: blur(8px);
}

.visor-video-publicacion-activo {
    display: flex;
}

.visor-video-publicacion-contenido {
    position: relative;
    display: grid;
    place-items: center;
    width: min(1100px, 94vw);
    max-height: 92vh;
}

.video-publicacion-grande {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: 88vh;
    border: 1px solid rgba(170, 205, 235, 0.34);
    border-radius: 16px;
    background: #000;
    box-shadow: 0 24px 70px rgba(0, 0, 0, 0.68);
}

.boton-cerrar-video-publicacion {
    position: absolute;
    top: -14px;
    right: -14px;
    z-index: 2;
    display: grid;
    place-items: center;
    width: 44px;
    min-width: 44px;
    height: 44px;
    padding: 0;
    border: 1px solid rgba(204, 226, 245, 0.42);
    border-radius: 50%;
    background: rgba(10, 14, 20, 0.94);
    color: #fff;
    font-size: 28px;
    line-height: 1;
}

@media (max-width: 900px) {
    .video-publicacion.video-feed-movil-auto {
        cursor: zoom-in;
        touch-action: manipulation;
    }

    .visor-video-publicacion {
        padding: max(12px, env(safe-area-inset-top))
            max(10px, env(safe-area-inset-right))
            max(12px, env(safe-area-inset-bottom))
            max(10px, env(safe-area-inset-left));
    }

    .visor-video-publicacion-contenido {
        width: 100%;
        max-height: 100%;
    }

    .video-publicacion-grande {
        width: 100%;
        max-height: calc(100dvh - 44px);
        border-radius: 12px;
    }

    .boton-cerrar-video-publicacion {
        top: 8px;
        right: 8px;
    }
}

/* =========================================================
   Navegación y mensaje directo de perfil v43
   ========================================================= */
body:not(.barra-movil-oculta):not(.chat-movil-conversacion-activa)
    .barra-superior,
body:not(.barra-movil-oculta):not(.chat-movil-conversacion-activa)
    .barra-superior
    button {
    pointer-events: auto !important;
}

.boton-mensaje-directo-perfil {
    position: relative !important;
    display: inline-grid !important;
    place-items: center !important;
    width: 43px !important;
    min-width: 43px !important;
    max-width: 43px !important;
    height: 43px !important;
    min-height: 43px !important;
    max-height: 43px !important;
    flex: 0 0 43px !important;
    padding: 0 !important;
    border: 1.8px solid rgba(91, 184, 246, 0.70) !important;
    border-radius: 50% !important;
    background: rgba(7, 20, 32, 0.72) !important;
    color: rgba(169, 224, 255, 0.94) !important;
    box-shadow:
        inset 0 0 0 1px rgba(255, 255, 255, 0.025),
        0 0 15px rgba(42, 154, 238, 0.11) !important;
    transition:
        transform 130ms ease,
        border-color 130ms ease,
        background-color 130ms ease,
        box-shadow 130ms ease !important;
}

.boton-mensaje-directo-perfil svg {
    width: 22px;
    height: 22px;
    overflow: visible;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
    pointer-events: none;
}

.boton-mensaje-directo-perfil:hover,
.boton-mensaje-directo-perfil:focus-visible {
    transform: translateY(-1px);
    border-color: rgba(94, 218, 255, 0.92) !important;
    background: rgba(10, 40, 58, 0.88) !important;
    color: #dbf7ff !important;
    box-shadow:
        0 0 0 3px rgba(44, 182, 255, 0.08),
        0 0 20px rgba(44, 182, 255, 0.22) !important;
    outline: none;
}

.boton-mensaje-directo-perfil:active {
    transform: scale(0.96);
}

@media (max-width: 900px) {
    .boton-mensaje-directo-perfil {
        width: 43px !important;
        min-width: 43px !important;
        max-width: 43px !important;
        height: 43px !important;
        min-height: 43px !important;
        max-height: 43px !important;
    }
}

/* Chat movil v20: apertura anclada, recarga por gesto y visor moderno. */
body.visor-chat-media-abierto {
    overflow: hidden !important;
}

.visor-chat-media {
    z-index: 5000;
    padding:
        max(18px, env(safe-area-inset-top))
        max(14px, env(safe-area-inset-right))
        max(18px, env(safe-area-inset-bottom))
        max(14px, env(safe-area-inset-left));
    opacity: 0;
    visibility: hidden;
    background:
        radial-gradient(circle at 50% 42%, rgba(54, 96, 156, 0.14), transparent 45%),
        rgba(1, 3, 8, 0.74);
    backdrop-filter: blur(4px) saturate(1.04);
    -webkit-backdrop-filter: blur(4px) saturate(1.04);
    transition:
        opacity 180ms ease,
        visibility 180ms ease,
        backdrop-filter 180ms ease;
}

.visor-chat-media.visor-chat-media-activo {
    opacity: 1;
    visibility: visible;
    backdrop-filter: blur(15px) saturate(1.08);
    -webkit-backdrop-filter: blur(15px) saturate(1.08);
}

.visor-chat-media.visor-chat-media-cerrando {
    pointer-events: none;
}

.visor-chat-media-contenido {
    position: relative;
    display: grid;
    place-items: center;
    max-width: 94vw;
    max-height: 92dvh;
    opacity: 0;
    transform: translateY(10px) scale(0.97);
    transform-origin: center center;
    transition:
        opacity 170ms ease,
        transform 210ms cubic-bezier(0.22, 0.8, 0.24, 1);
    will-change: opacity, transform;
}

.visor-chat-media-activo .visor-chat-media-contenido {
    opacity: 1;
    transform: translateY(0) scale(1);
}

.visor-chat-media-marco {
    position: relative;
    display: grid;
    place-items: center;
    min-width: 92px;
    min-height: 92px;
    max-width: 94vw;
    max-height: 92dvh;
}

.visor-chat-media-contenido .media-chat-ampliado {
    display: block;
    max-width: min(94vw, 1180px);
    max-height: 90dvh;
    object-fit: contain;
    opacity: 0;
    border: 1px solid rgba(220, 232, 246, 0.20);
    border-radius: 18px;
    background: #02050a;
    box-shadow:
        0 28px 90px rgba(0, 0, 0, 0.62),
        0 0 0 1px rgba(255, 255, 255, 0.03);
    transition: opacity 130ms ease;
}

.visor-chat-media-listo .media-chat-ampliado {
    opacity: 1;
}

.cargador-visor-chat {
    position: absolute;
    width: 34px;
    height: 34px;
    border: 3px solid rgba(201, 221, 244, 0.16);
    border-top-color: rgba(126, 197, 255, 0.92);
    border-radius: 50%;
    animation: girar-visor-chat 720ms linear infinite;
    transition: opacity 100ms ease;
}

.visor-chat-media-listo .cargador-visor-chat {
    opacity: 0;
}

.boton-cerrar-visor-chat {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 2;
    display: grid;
    place-items: center;
    width: 42px;
    min-width: 42px;
    height: 42px;
    min-height: 42px;
    padding: 0;
    border: 1px solid rgba(225, 235, 246, 0.22);
    border-radius: 50%;
    background: rgba(4, 8, 14, 0.68);
    color: #f8fbff;
    font-size: 28px;
    font-weight: 300;
    line-height: 1;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.30);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    cursor: pointer;
    transition:
        background 140ms ease,
        border-color 140ms ease,
        transform 140ms ease;
}

.boton-cerrar-visor-chat:hover {
    border-color: rgba(225, 235, 246, 0.38);
    background: rgba(14, 22, 34, 0.84);
}

.boton-cerrar-visor-chat:active {
    transform: scale(0.94);
}

.boton-cerrar-visor-chat:focus-visible {
    outline: 2px solid rgba(117, 201, 255, 0.94);
    outline-offset: 3px;
}

@keyframes girar-visor-chat {
    to {
        transform: rotate(360deg);
    }
}

@media (max-width: 900px) {
    body.chat-movil-conversacion-activa .mensajes-chat {
        touch-action: pan-y;
        transition: opacity 120ms ease;
    }

    body.chat-movil-conversacion-activa .mensajes-chat-preparando {
        opacity: 0;
    }

    .indicador-recarga-chat {
        --avance-recarga-chat: 0px;
        position: absolute;
        top: calc(var(--alto-cabecera-chat) + 4px);
        left: 50%;
        z-index: 16;
        display: flex;
        align-items: center;
        gap: 7px;
        min-height: 34px;
        padding: 6px 12px;
        border: 1px solid rgba(151, 204, 255, 0.20);
        border-radius: 999px;
        opacity: 0;
        background: rgba(5, 12, 23, 0.78);
        color: rgba(224, 237, 250, 0.80);
        box-shadow: 0 10px 28px rgba(0, 0, 0, 0.28);
        backdrop-filter: blur(13px) saturate(1.08);
        -webkit-backdrop-filter: blur(13px) saturate(1.08);
        transform:
            translate(-50%, calc(-52px + var(--avance-recarga-chat)));
        transition:
            opacity 100ms ease,
            color 100ms ease,
            border-color 100ms ease,
            transform 130ms ease;
        pointer-events: none;
        white-space: nowrap;
    }

    .indicador-recarga-chat-visible {
        opacity: 1;
    }

    .indicador-recarga-chat span {
        display: block;
        font-size: 20px;
        line-height: 1;
        transition: transform 120ms ease;
    }

    .indicador-recarga-chat small {
        font-size: 11px;
        font-weight: 650;
        letter-spacing: 0.01em;
    }

    .indicador-recarga-chat-listo {
        border-color: rgba(100, 195, 255, 0.48);
        color: #c9ecff;
    }

    .indicador-recarga-chat-listo span {
        transform: rotate(145deg);
    }

    .indicador-recarga-chat-recargando span {
        animation: girar-visor-chat 680ms linear infinite;
    }

    .visor-chat-media-contenido,
    .visor-chat-media-marco {
        max-width: calc(100vw - 20px);
        max-height: calc(100dvh - 28px);
    }

    .visor-chat-media-contenido .media-chat-ampliado {
        max-width: calc(100vw - 20px);
        max-height: calc(100dvh - 28px);
        border-radius: 15px;
    }

    .boton-cerrar-visor-chat {
        top: 8px;
        right: 8px;
        width: 40px;
        min-width: 40px;
        height: 40px;
        min-height: 40px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .visor-chat-media,
    .visor-chat-media-contenido,
    .visor-chat-media-contenido .media-chat-ampliado,
    .boton-cerrar-visor-chat,
    .indicador-recarga-chat,
    body.chat-movil-conversacion-activa .mensajes-chat {
        transition-duration: 1ms !important;
    }
}


.tarjeta-render-optimizada {
    contain: layout paint style;
}

/* Notificaciones v1 */
.indicador-notificaciones-activo {
    border-color: rgba(255, 25, 74, 0.98) !important;
    background:
        radial-gradient(circle at 18% 12%, rgba(255, 42, 91, 0.62), transparent 34%),
        linear-gradient(145deg, rgba(80, 0, 18, 0.98), rgba(32, 0, 10, 0.98)) !important;
    color: #fff5f8 !important;
    box-shadow:
        0 0 18px rgba(255, 25, 74, 0.70),
        0 0 38px rgba(255, 25, 74, 0.28) !important;
}

.indicador-chat-activo {
    border-color: rgba(116, 255, 210, 0.82) !important;
    background:
        radial-gradient(circle at 16% 10%, rgba(64, 255, 169, 0.78), transparent 30%),
        radial-gradient(circle at 82% 22%, rgba(0, 232, 255, 0.56), transparent 32%),
        radial-gradient(circle at 54% 84%, rgba(31, 185, 116, 0.48), transparent 32%),
        linear-gradient(145deg, rgba(31, 55, 50, 0.98), rgba(10, 18, 22, 0.99)) !important;
    color: #effff9 !important;
    box-shadow:
        0 0 18px rgba(56, 255, 183, 0.38),
        0 0 30px rgba(0, 232, 255, 0.16) !important;
}

.indicador-minijuegos-activo,
.indicador-invitaciones-activo {
    border-color: rgba(84, 255, 240, 0.94) !important;
    background:
        radial-gradient(circle at 22% 12%, rgba(84, 255, 240, 0.40), transparent 32%),
        linear-gradient(145deg, rgba(10, 54, 58, 0.98), rgba(4, 24, 30, 0.98)) !important;
    color: #ecfffd !important;
    box-shadow:
        0 0 16px rgba(84, 255, 240, 0.42),
        0 0 30px rgba(84, 255, 240, 0.15) !important;
}

.contenedor-notificaciones {
    max-width: 900px;
}

.cabecera-notificaciones {
    margin: 24px auto 20px;
    padding: 26px 28px;
    border-radius: 28px;
    border: 1px solid rgba(92, 132, 180, 0.30);
    background:
        radial-gradient(circle at 20% 0%, rgba(0, 217, 255, 0.14), transparent 32%),
        linear-gradient(145deg, rgba(18, 25, 38, 0.94), rgba(8, 10, 15, 0.98));
    box-shadow: 0 18px 44px rgba(0, 0, 0, 0.28);
}

.cabecera-notificaciones h1 {
    margin: 0;
    font-size: clamp(30px, 5vw, 52px);
    font-weight: 560;
    letter-spacing: -0.04em;
}

.cabecera-notificaciones p:last-child {
    margin: 8px 0 0;
    color: rgba(222, 234, 248, 0.76);
}

.lista-notificaciones {
    display: grid;
    gap: 14px;
    padding-bottom: 42px;
}

.tarjeta-notificacion {
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr);
    gap: 16px;
    align-items: center;
    padding: 18px 20px;
    border-radius: 24px;
    border: 1px solid rgba(118, 137, 162, 0.22);
    background:
        linear-gradient(145deg, rgba(24, 29, 39, 0.95), rgba(10, 12, 18, 0.98));
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.22);
    cursor: pointer;
    transition: transform 0.16s ease, border-color 0.16s ease, box-shadow 0.16s ease;
}

.tarjeta-notificacion:hover {
    transform: translateY(-2px);
    border-color: rgba(0, 217, 255, 0.45);
    box-shadow:
        0 18px 38px rgba(0, 0, 0, 0.26),
        0 0 18px rgba(0, 217, 255, 0.10);
}

.tarjeta-notificacion.notificacion-sin-abrir {
    border-color: rgba(121, 212, 255, 0.50);
    background:
        radial-gradient(circle at 10% 8%, rgba(0, 217, 255, 0.32), transparent 32%),
        radial-gradient(circle at 88% 12%, rgba(106, 124, 255, 0.24), transparent 36%),
        linear-gradient(145deg, rgba(20, 35, 52, 0.98), rgba(8, 12, 22, 0.99));
    box-shadow:
        0 14px 36px rgba(0, 0, 0, 0.26),
        0 0 24px rgba(0, 217, 255, 0.14);
}

.icono-tarjeta-notificacion {
    width: 52px;
    height: 52px;
    border-radius: 18px;
    display: grid;
    place-items: center;
    color: #f5fbff;
    font-size: 26px;
    background:
        linear-gradient(145deg, rgba(50, 60, 76, 0.88), rgba(13, 16, 24, 0.98));
    border: 1px solid rgba(178, 202, 230, 0.18);
}

.contenido-tarjeta-notificacion {
    min-width: 0;
}

.titulo-notificacion {
    color: #f5f8ff;
    font-size: 18px;
    font-weight: 540;
    margin-bottom: 4px;
}

.contenido-tarjeta-notificacion p {
    margin: 0;
    color: rgba(224, 234, 246, 0.82);
    font-size: 16px;
    line-height: 1.42;
}

.fecha-notificacion {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 8px;
    color: rgba(190, 204, 220, 0.58);
    font-size: 12px;
}

.fecha-notificacion strong {
    color: #a5e9ff;
    font-weight: 540;
    text-shadow: 0 0 10px rgba(0, 217, 255, 0.40);
}

/* Scrollbar discreta global */
* {
    scrollbar-width: thin;
    scrollbar-color: rgba(72, 78, 88, 0.82) transparent;
}

*::-webkit-scrollbar {
    width: 7px;
    height: 7px;
}

*::-webkit-scrollbar-track {
    background: transparent;
}

*::-webkit-scrollbar-thumb {
    background: rgba(72, 78, 88, 0.82);
    border-radius: 999px;
}

*::-webkit-scrollbar-thumb:hover {
    background: rgba(100, 108, 120, 0.90);
}

/* Notificaciones v2 - barra compacta, aurora roja y seguridad visual */
.barra-superior {
    padding: 10px 18px;
}

.barra-centro-iconos {
    gap: 10px;
    align-items: center;
}

.boton-nav-superior {
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    padding: 0 !important;
    border-radius: 14px !important;
    display: inline-grid !important;
    place-items: center !important;
    color: rgba(230, 238, 246, 0.88) !important;
    background: rgba(18, 21, 28, 0.72) !important;
    border: 1px solid rgba(180, 194, 210, 0.22) !important;
    box-shadow: none !important;
    overflow: visible;
    position: relative;
}

.boton-nav-superior.nav-todo {
    width: auto !important;
    min-width: 54px !important;
    padding: 0 12px !important;
}

.texto-nav-todo {
    font-size: 12px;
    font-weight: 720;
    letter-spacing: 0.08em;
}

.texto-accesible {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.icono-nav,
.icono-nav svg {
    width: 25px;
    height: 25px;
    display: block;
}

.icono-nav svg,
.icono-nav svg * {
    fill: none;
    stroke: currentColor;
    stroke-width: 2.15;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.icono-nav-cartas svg text {
    fill: currentColor;
    stroke: none;
    font-size: 10px;
    font-weight: 700;
    font-family: inherit;
    text-anchor: middle;
    dominant-baseline: middle;
}

.boton-nav-superior:hover {
    color: rgba(255, 255, 255, 0.98) !important;
    border-color: rgba(255, 255, 255, 0.44) !important;
    background: rgba(31, 35, 45, 0.82) !important;
    transform: translateY(-1px);
}

.barra-superior .boton-nav-superior.navegacion-activa,
.barra-superior .boton-nav-superior.navegacion-activa:hover {
    color: rgba(244, 252, 255, 0.98) !important;
    border-color: rgba(0, 217, 255, 0.58) !important;
    background: rgba(16, 26, 36, 0.80) !important;
    box-shadow: 0 0 16px rgba(0, 217, 255, 0.22) !important;
}

.boton-nav-superior.indicador-notificaciones-activo,
.menu-principal button.indicador-notificaciones-activo {
    border-color: rgba(255, 50, 92, 0.96) !important;
    background:
        radial-gradient(circle at 16% 12%, rgba(255, 48, 94, 0.44), transparent 30%),
        radial-gradient(circle at 82% 20%, rgba(255, 117, 170, 0.28), transparent 34%),
        radial-gradient(circle at 48% 88%, rgba(143, 0, 42, 0.42), transparent 36%),
        linear-gradient(145deg, rgba(52, 0, 20, 0.98), rgba(12, 4, 12, 0.98)) !important;
    color: rgba(255, 245, 250, 0.98) !important;
    box-shadow:
        0 0 0 1px rgba(255, 76, 118, 0.22),
        0 0 20px rgba(255, 38, 87, 0.52),
        0 0 42px rgba(255, 38, 87, 0.22) !important;
}

.boton-nav-superior.indicador-notificaciones-activo .icono-nav svg,
.boton-nav-superior.indicador-notificaciones-activo .icono-nav svg * {
    stroke: rgba(255, 220, 232, 0.18);
    filter:
        drop-shadow(0 0 5px rgba(255, 38, 87, 0.95))
        drop-shadow(0 0 12px rgba(255, 38, 87, 0.72));
}

.boton-nav-superior.indicador-chat-activo,
.menu-principal button.indicador-chat-activo {
    border-color: rgba(116, 255, 210, 0.78) !important;
    background:
        radial-gradient(circle at 16% 10%, rgba(64, 255, 169, 0.62), transparent 30%),
        radial-gradient(circle at 82% 22%, rgba(0, 232, 255, 0.46), transparent 32%),
        radial-gradient(circle at 54% 84%, rgba(31, 185, 116, 0.38), transparent 32%),
        linear-gradient(145deg, rgba(31, 55, 50, 0.98), rgba(10, 18, 22, 0.99)) !important;
    color: #effff9 !important;
    box-shadow:
        0 0 18px rgba(56, 255, 183, 0.38),
        0 0 30px rgba(0, 232, 255, 0.16) !important;
}

.boton-nav-superior.indicador-minijuegos-activo,
.menu-principal button.indicador-minijuegos-activo,
.indicador-invitaciones-activo {
    border-color: rgba(84, 255, 240, 0.88) !important;
    background:
        radial-gradient(circle at 22% 12%, rgba(84, 255, 240, 0.34), transparent 32%),
        linear-gradient(145deg, rgba(10, 54, 58, 0.98), rgba(4, 24, 30, 0.98)) !important;
    color: #ecfffd !important;
    box-shadow:
        0 0 16px rgba(84, 255, 240, 0.42),
        0 0 30px rgba(84, 255, 240, 0.15) !important;
}

.boton-nav-superior.indicador-minijuegos-activo .icono-nav svg,
.boton-nav-superior.indicador-minijuegos-activo .icono-nav svg * {
    stroke: rgba(220, 255, 253, 0.16);
    filter:
        drop-shadow(0 0 5px rgba(84, 255, 240, 0.90))
        drop-shadow(0 0 12px rgba(84, 255, 240, 0.64));
}

.contenedor-notificaciones {
    max-width: 930px;
}

.cabecera-notificaciones {
    border-color: rgba(255, 58, 100, 0.46);
    background:
        radial-gradient(circle at 18% 4%, rgba(255, 45, 91, 0.44), transparent 30%),
        radial-gradient(circle at 82% 16%, rgba(255, 117, 169, 0.23), transparent 34%),
        radial-gradient(circle at 50% 92%, rgba(100, 0, 34, 0.46), transparent 42%),
        linear-gradient(145deg, rgba(32, 6, 20, 0.96), rgba(7, 8, 14, 0.98));
    box-shadow:
        0 20px 48px rgba(0, 0, 0, 0.30),
        0 0 30px rgba(255, 38, 87, 0.12);
}

.tarjeta-notificacion.notificacion-sin-abrir {
    border-color: rgba(255, 76, 118, 0.58);
    background:
        radial-gradient(circle at 10% 8%, rgba(255, 48, 94, 0.34), transparent 34%),
        radial-gradient(circle at 88% 12%, rgba(255, 116, 178, 0.22), transparent 36%),
        radial-gradient(circle at 52% 100%, rgba(120, 0, 36, 0.36), transparent 42%),
        linear-gradient(145deg, rgba(36, 9, 22, 0.98), rgba(8, 10, 17, 0.99));
    box-shadow:
        0 14px 36px rgba(0, 0, 0, 0.26),
        0 0 24px rgba(255, 38, 87, 0.16);
}

.avatar-actor-notificacion {
    width: 56px;
    height: 56px;
    border-radius: 20px;
    padding: 0;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.14);
    background: rgba(18, 20, 28, 0.72);
    cursor: pointer;
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.24);
}

.avatar-actor-notificacion img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.avatar-actor-notificacion:hover {
    border-color: rgba(255, 102, 204, 0.78);
    box-shadow:
        0 10px 24px rgba(0, 0, 0, 0.30),
        0 0 18px rgba(255, 102, 204, 0.25);
}

.fecha-notificacion strong {
    color: #ffd7e5;
    text-shadow: 0 0 10px rgba(255, 38, 87, 0.48);
}

@media (max-width: 820px) {
    .barra-superior {
        padding-left: 62px;
        padding-right: 62px;
    }

    .barra-centro-iconos {
        overflow-x: auto;
        justify-content: flex-start;
        max-width: 100%;
        padding-bottom: 2px;
    }

    .boton-nav-superior {
        flex: 0 0 auto;
    }
}


/* Notificaciones v3 - chat aurora azul, sala y pulido de indicadores */
body:has(.contenedor-chat) {
    background:
        radial-gradient(circle at 18% 12%, rgba(0, 81, 255, 0.20), transparent 24%),
        radial-gradient(circle at 78% 16%, rgba(0, 204, 255, 0.14), transparent 23%),
        radial-gradient(circle at 54% 88%, rgba(11, 44, 132, 0.18), transparent 32%),
        linear-gradient(180deg, #020308 0%, #05070d 52%, #010205 100%) !important;
}

.contenedor-chat {
    position: relative;
}

.contenedor-chat::before {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: -1;
    opacity: 0.44;
    background-image:
        radial-gradient(circle at 12% 18%, rgba(255, 255, 255, 0.82) 0 1px, transparent 1.5px),
        radial-gradient(circle at 24% 72%, rgba(210, 235, 255, 0.60) 0 1px, transparent 1.7px),
        radial-gradient(circle at 62% 26%, rgba(255, 255, 255, 0.66) 0 1px, transparent 1.6px),
        radial-gradient(circle at 82% 62%, rgba(183, 222, 255, 0.55) 0 1px, transparent 1.7px),
        radial-gradient(circle at 44% 44%, rgba(255, 255, 255, 0.42) 0 1px, transparent 1.8px);
    background-size: 260px 220px, 320px 280px, 360px 260px, 300px 300px, 420px 380px;
}

.cabecera-chat,
.panel-chat-usuarios,
.chat-panel-conversacion,
.chat-vacio {
    border-color: rgba(64, 142, 255, 0.30) !important;
    background:
        radial-gradient(circle at 18% 0%, rgba(0, 88, 255, 0.26), transparent 30%),
        radial-gradient(circle at 84% 12%, rgba(0, 208, 255, 0.13), transparent 34%),
        radial-gradient(circle at 52% 100%, rgba(18, 58, 160, 0.18), transparent 44%),
        linear-gradient(145deg, rgba(5, 9, 20, 0.92), rgba(1, 2, 8, 0.97)) !important;
    box-shadow:
        0 24px 70px rgba(0, 0, 0, 0.38),
        inset 0 1px 0 rgba(255, 255, 255, 0.05),
        0 0 30px rgba(0, 92, 255, 0.08) !important;
}

.cabecera-chat h1,
.chat-cabecera-conversacion h2 {
    color: #eef7ff;
    text-shadow: 0 0 18px rgba(0, 149, 255, 0.28);
}

.chat-cabecera-conversacion {
    background:
        radial-gradient(circle at 14% 0%, rgba(0, 92, 255, 0.12), transparent 34%),
        linear-gradient(145deg, rgba(5, 8, 16, 0.46), rgba(0, 0, 0, 0.22)) !important;
    border-bottom-color: rgba(88, 150, 255, 0.10) !important;
}

.chat-cabecera-conversacion img,
.avatar-chat-cabecera {
    border-color: rgba(91, 152, 255, 0.18) !important;
}

.mensaje-chat-propio {
    background:
        radial-gradient(circle at 15% 8%, rgba(0, 73, 255, 0.88), transparent 30%),
        radial-gradient(circle at 78% 18%, rgba(0, 213, 255, 0.62), transparent 34%),
        radial-gradient(circle at 50% 92%, rgba(38, 71, 255, 0.42), transparent 38%),
        linear-gradient(145deg, rgba(3, 19, 54, 0.99), rgba(1, 3, 10, 0.99)) !important;
    border-color: rgba(103, 168, 255, 0.30) !important;
    box-shadow:
        0 15px 34px rgba(0, 0, 0, 0.34),
        inset 0 1px 0 rgba(218, 238, 255, 0.12),
        0 0 24px rgba(0, 97, 255, 0.12) !important;
}

.formulario-chat,
.barra-escritura-chat {
    border-color: rgba(73, 134, 255, 0.28) !important;
    background:
        radial-gradient(circle at 12% 0%, rgba(0, 93, 255, 0.16), transparent 30%),
        radial-gradient(circle at 92% 16%, rgba(0, 196, 255, 0.08), transparent 35%),
        linear-gradient(145deg, rgba(9, 13, 25, 0.98), rgba(1, 2, 8, 0.99)) !important;
}

.formulario-chat .boton-chat-redondo:hover,
.boton-enviar-chat:hover {
    box-shadow: 0 0 18px rgba(0, 120, 255, 0.24) !important;
}

.boton-nav-superior.indicador-chat-activo,
.menu-principal button.indicador-chat-activo {
    border-color: rgba(62, 143, 255, 0.95) !important;
    background:
        radial-gradient(circle at 12% 8%, rgba(0, 72, 255, 0.42), transparent 30%),
        radial-gradient(circle at 78% 18%, rgba(0, 208, 255, 0.28), transparent 34%),
        radial-gradient(circle at 55% 92%, rgba(25, 58, 180, 0.34), transparent 42%),
        linear-gradient(145deg, rgba(5, 9, 25, 0.98), rgba(0, 0, 6, 0.99)) !important;
    color: #eef7ff !important;
    box-shadow:
        0 0 0 1px rgba(105, 166, 255, 0.14),
        0 0 20px rgba(0, 103, 255, 0.48),
        0 0 42px rgba(0, 204, 255, 0.16) !important;
}

.boton-nav-superior.indicador-chat-activo .icono-nav svg,
.boton-nav-superior.indicador-chat-activo .icono-nav svg * {
    stroke: rgba(216, 236, 255, 0.18);
    filter:
        drop-shadow(0 0 5px rgba(0, 111, 255, 0.95))
        drop-shadow(0 0 13px rgba(0, 204, 255, 0.62));
}

.boton-nav-superior.indicador-minijuegos-activo,
.menu-principal button.indicador-minijuegos-activo {
    animation: none !important;
}

.indicador-invitaciones-activo {
    animation: none !important;
}

.boton-archivo-chat .foto-apilada-frente {
    fill: transparent !important;
}

/* Notificaciones v4 - corrección de indicadores y diseño simple */
.boton-nav-superior.indicador-minijuegos-activo,
.menu-principal button.indicador-minijuegos-activo,
.indicador-invitaciones-activo {
    border-color: #00d9ff !important;
    background: #00bddd !important;
    color: #061014 !important;
    box-shadow:
        0 0 0 1px rgba(0, 217, 255, 0.18),
        0 0 16px rgba(0, 217, 255, 0.34) !important;
    animation: none !important;
}

.boton-nav-superior.indicador-minijuegos-activo .icono-nav svg,
.boton-nav-superior.indicador-minijuegos-activo .icono-nav svg * {
    stroke: rgba(6, 16, 20, 0.92) !important;
    filter: none !important;
}

.boton-nav-superior.indicador-chat-activo,
.menu-principal button.indicador-chat-activo {
    border-color: #1e5cff !important;
    background: #071f4a !important;
    color: #eef6ff !important;
    box-shadow:
        0 0 0 1px rgba(30, 92, 255, 0.20),
        0 0 16px rgba(30, 92, 255, 0.42) !important;
}

.boton-nav-superior.indicador-chat-activo .icono-nav svg,
.boton-nav-superior.indicador-chat-activo .icono-nav svg * {
    stroke: rgba(238, 246, 255, 0.92) !important;
    filter: none !important;
}

/* Pulido v5 - autores, barra superior y alumnos */
.opciones-comentario {
    top: 0 !important;
    right: calc(100% + 8px) !important;
    left: auto !important;
    z-index: 80 !important;
}

.boton-tres-puntos {
    width: 24px !important;
    height: 24px !important;
    min-width: 24px !important;
    max-width: 24px !important;
    font-size: 14px !important;
    border-radius: 9px !important;
    background: rgba(14, 16, 21, 0.74) !important;
    border-color: rgba(190, 202, 218, 0.18) !important;
    color: rgba(235, 241, 248, 0.70) !important;
}

.boton-tres-puntos:hover {
    background: rgba(25, 29, 38, 0.88) !important;
    border-color: rgba(255, 102, 204, 0.42) !important;
    color: rgba(255, 238, 249, 0.98) !important;
}

.menu-opciones-comentario {
    min-width: 66px !important;
    width: max-content !important;
    padding: 5px !important;
    gap: 4px !important;
    border-radius: 10px !important;
    background: rgba(12, 14, 19, 0.96) !important;
    border-color: rgba(190, 202, 218, 0.18) !important;
    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.36) !important;
}

.menu-opciones-comentario button {
    padding: 5px 7px !important;
    min-height: 24px !important;
    font-size: 11px !important;
    line-height: 1.05 !important;
    border-radius: 8px !important;
}

.barra-superior {
    padding-top: 11px !important;
    padding-bottom: 11px !important;
}

.barra-centro-iconos {
    gap: 11px !important;
}

.boton-nav-superior {
    width: 46px !important;
    height: 46px !important;
    min-width: 46px !important;
    border-radius: 15px !important;
}

.boton-nav-superior.nav-todo {
    min-width: 64px !important;
    height: 46px !important;
    padding: 0 15px !important;
}

.texto-nav-todo {
    font-size: 13px !important;
    letter-spacing: 0.09em !important;
}

.icono-nav,
.icono-nav svg {
    width: 28px !important;
    height: 28px !important;
}

.icono-nav svg,
.icono-nav svg * {
    stroke-width: 2.25 !important;
}

.icono-nav-cartas svg text {
    fill: currentColor !important;
    stroke: none !important;
    font-size: 14px !important;
    font-weight: 820 !important;
    letter-spacing: 0 !important;
}

.icono-nav-dudas svg path:first-child {
    stroke-width: 2.55 !important;
}

.icono-nav-chat svg path {
    stroke-width: 2.35 !important;
}

.contenedor-alumnos {
    max-width: 1120px !important;
}

.contenedor-alumnos .buscador-alumnos {
    position: relative;
    margin-top: 10px;
    margin-bottom: 18px;
    padding: 12px;
    border-radius: 22px;
    background:
        radial-gradient(circle at 12% 0%, rgba(0, 217, 255, 0.12), transparent 34%),
        linear-gradient(145deg, rgba(12, 17, 27, 0.94), rgba(5, 7, 12, 0.96));
    border: 1px solid rgba(104, 166, 220, 0.30);
    box-shadow:
        0 18px 44px rgba(0, 0, 0, 0.24),
        inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

.contenedor-alumnos .buscador-alumnos input {
    height: 48px;
    border-radius: 17px;
    padding-left: 17px;
    background: rgba(6, 9, 15, 0.78);
    border-color: rgba(130, 156, 184, 0.28);
    color: rgba(245, 248, 252, 0.96);
}

.contenedor-alumnos .buscador-alumnos button,
.contenedor-alumnos .filtros-alumnos button {
    border-radius: 16px;
    font-weight: 760;
    letter-spacing: 0.02em;
}

.contenedor-alumnos .filtros-alumnos {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    border-bottom: none;
    padding-bottom: 12px;
    margin-bottom: 22px;
}

.contenedor-alumnos .filtros-alumnos button {
    flex: 1 1 160px;
    min-height: 43px;
    background: rgba(12, 17, 27, 0.78);
    border: 1px solid rgba(104, 166, 220, 0.28);
    box-shadow: none;
}

.contenedor-alumnos .filtros-alumnos button:hover {
    border-color: rgba(255, 102, 204, 0.48);
    color: rgba(255, 232, 248, 0.98);
    box-shadow: 0 0 18px rgba(255, 102, 204, 0.12);
}

#lista-alumnos {
    grid-template-columns: repeat(auto-fit, minmax(245px, 1fr));
    gap: 18px;
}

.tarjeta-alumno {
    min-height: 260px !important;
    padding: 20px 16px !important;
    border-radius: 26px !important;
    border-color: rgba(114, 173, 224, 0.26) !important;
    background:
        radial-gradient(circle at 50% 0%, rgba(0, 217, 255, 0.10), transparent 36%),
        linear-gradient(155deg, rgba(13, 18, 29, 0.96), rgba(4, 6, 11, 0.98)) !important;
    box-shadow:
        0 18px 46px rgba(0, 0, 0, 0.24),
        inset 0 1px 0 rgba(255, 255, 255, 0.04);
}

.tarjeta-alumno:hover {
    transform: translateY(-3px) !important;
    border-color: rgba(255, 102, 204, 0.44) !important;
    background:
        radial-gradient(circle at 50% 0%, rgba(255, 102, 204, 0.12), transparent 38%),
        linear-gradient(155deg, rgba(17, 23, 36, 0.98), rgba(6, 7, 13, 0.99)) !important;
    box-shadow:
        0 22px 54px rgba(0, 0, 0, 0.30),
        0 0 24px rgba(255, 102, 204, 0.10);
}

.foto-alumno {
    width: 124px !important;
    height: 124px !important;
    border: 1px solid rgba(236, 244, 255, 0.28) !important;
    box-shadow:
        0 12px 28px rgba(0, 0, 0, 0.26),
        0 0 0 5px rgba(255, 255, 255, 0.025);
}

.info-alumno h3 {
    color: rgba(248, 251, 255, 0.98) !important;
    font-size: 18px !important;
    font-weight: 780 !important;
    text-shadow: 0 0 10px rgba(66, 165, 245, 0.28);
}

.info-alumno p {
    padding: 6px 11px !important;
    border-radius: 999px !important;
    background: rgba(0, 217, 255, 0.08) !important;
    border-color: rgba(0, 217, 255, 0.18) !important;
    font-size: 13px !important;
}

.info-alumno small {
    color: rgba(185, 196, 210, 0.80) !important;
}

/* Pulido v6 - navegación contextual, iconos y alumnos */
.boton-volver-superior-oculto,
.boton-volver-superior[hidden] {
    display: none !important;
}

.boton-nav-superior {
    width: 48px !important;
    height: 48px !important;
    min-width: 48px !important;
    border-radius: 16px !important;
}

.boton-nav-superior.nav-todo {
    min-width: 68px !important;
    height: 48px !important;
}

.icono-nav,
.icono-nav svg {
    width: 30px !important;
    height: 30px !important;
}

.icono-nav svg,
.icono-nav svg * {
    stroke-width: 2.18 !important;
}

.icono-nav-minijuegos svg path,
.icono-nav-minijuegos svg circle {
    stroke-width: 2.05 !important;
}

.icono-nav-dudas,
.icono-nav-dudas svg {
    width: 32px !important;
    height: 32px !important;
}

.icono-nav-dudas svg path:first-child {
    stroke-width: 2.75 !important;
}

.icono-nav-chat svg path:first-child {
    stroke-width: 2.25 !important;
}

.boton-nav-superior.indicador-notificaciones-activo .icono-nav-notificaciones svg,
.boton-nav-superior.indicador-notificaciones-activo .icono-nav-notificaciones svg * {
    stroke: rgba(255, 242, 248, 0.98) !important;
    stroke-width: 2.45 !important;
    filter:
        drop-shadow(0 0 5px rgba(0, 0, 0, 0.88))
        drop-shadow(0 0 8px rgba(255, 255, 255, 0.34)) !important;
}

.contenedor-alumnos .filtros-alumnos button {
    color: rgba(239, 246, 255, 0.96) !important;
    text-shadow: none !important;
    background:
        linear-gradient(145deg, rgba(17, 23, 34, 0.92), rgba(7, 10, 17, 0.96)) !important;
    border-color: rgba(113, 160, 202, 0.34) !important;
}

.contenedor-alumnos .filtros-alumnos button:hover {
    color: rgba(255, 232, 248, 0.98) !important;
    background:
        radial-gradient(circle at 18% 0%, rgba(255, 102, 204, 0.12), transparent 38%),
        linear-gradient(145deg, rgba(22, 28, 40, 0.98), rgba(8, 10, 17, 0.99)) !important;
}

.menu-configuracion button {
    color: rgba(242, 247, 255, 0.96) !important;
}

.boton-volver-superior {
    display: none !important;
}

body.mostrar-volver-superior .boton-volver-superior:not([hidden]) {
    display: inline-flex !important;
}


/* Pulido v7 - icono de Minijuegos y navegación a perfiles */
.icono-nav-minijuegos svg rect,
.icono-nav-minijuegos svg path,
.icono-nav-minijuegos svg circle {
    fill: none !important;
    stroke: currentColor !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
}

.icono-nav-minijuegos svg rect {
    stroke-width: 2.05 !important;
}

.icono-nav-minijuegos svg path,
.icono-nav-minijuegos svg circle {
    stroke-width: 1.9 !important;
}

.boton-nav-superior.nav-minijuegos .icono-nav-minijuegos {
    transform: translateY(0.5px);
}


/* =========================================================
   Responsive móvil v1
   Ajustes visuales para teléfono sin cambiar lógica.
   ========================================================= */
html {
    box-sizing: border-box;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

*,
*::before,
*::after {
    box-sizing: inherit;
}

body {
    overflow-x: hidden;
}

img,
video,
canvas,
svg {
    max-width: 100%;
}

@media (max-width: 900px) {
    body {
        font-size: 15.5px;
    }

    .barra-superior {
        position: sticky;
        top: 0;
        justify-content: flex-start;
        gap: 8px;
        padding: calc(8px + env(safe-area-inset-top, 0px)) 9px 8px !important;
        min-height: 58px;
        overflow: visible;
        background: rgba(9, 12, 18, 0.82) !important;
        backdrop-filter: blur(12px);
        -webkit-backdrop-filter: blur(12px);
    }

    .barra-centro,
    .barra-centro-iconos {
        flex: 1 1 auto;
        justify-content: flex-start !important;
        flex-wrap: nowrap !important;
        gap: 8px !important;
        max-width: calc(100vw - 68px);
        overflow-x: auto;
        overflow-y: hidden;
        padding: 2px 4px 7px;
        scrollbar-width: none;
        scroll-snap-type: x proximity;
        -webkit-overflow-scrolling: touch;
    }

    .barra-centro::-webkit-scrollbar,
    .barra-centro-iconos::-webkit-scrollbar {
        display: none;
    }

    .boton-volver-superior {
        position: static !important;
        flex: 0 0 36px;
        width: 36px !important;
        height: 36px !important;
        margin: 0 1px 0 0;
    }

    .boton-volver-panel {
        top: calc(12px + env(safe-area-inset-top, 0px));
        left: 12px;
        width: 36px !important;
        height: 36px !important;
    }

    .boton-nav-superior {
        flex: 0 0 auto;
        width: 44px !important;
        height: 44px !important;
        min-width: 44px !important;
        border-radius: 15px !important;
        scroll-snap-align: start;
    }

    .boton-nav-superior.nav-todo {
        min-width: 60px !important;
        height: 44px !important;
        padding: 0 11px !important;
    }

    .icono-nav,
    .icono-nav svg {
        width: 24px;
        height: 24px;
    }

    .barra-configuracion {
        position: static !important;
        flex: 0 0 auto;
        right: auto;
        margin-left: auto;
    }

    .boton-configuracion {
        width: 42px !important;
        height: 42px !important;
        min-width: 42px !important;
        border-radius: 14px !important;
        font-size: 18px !important;
    }

    .menu-configuracion {
        position: fixed !important;
        top: calc(62px + env(safe-area-inset-top, 0px)) !important;
        right: 10px !important;
        width: min(230px, calc(100vw - 20px));
        z-index: 500;
    }

    .contenedor-login,
    .registro-card,
    .seleccion-contenedor,
    .principal-contenedor,
    .contenedor-feed,
    .contenedor-minijuegos,
    .contenedor-chat,
    .contenedor-notificaciones,
    .contenedor-alumnos,
    .perfil-contenedor {
        width: calc(100vw - 18px) !important;
        max-width: none !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }

    .contenedor-login,
    .registro-card,
    .seleccion-card,
    .principal-card,
    .contenedor-feed,
    .contenedor-minijuegos,
    .contenedor-chat,
    .contenedor-notificaciones,
    .contenedor-alumnos,
    .perfil-contenedor {
        padding: 16px !important;
        border-radius: 20px !important;
    }

    .contenedor-login {
        margin-top: 28px !important;
    }

    .body-panel {
        align-items: flex-start;
        padding: calc(60px + env(safe-area-inset-top, 0px)) 9px 28px;
    }

    .principal-card,
    .seleccion-card {
        padding: 24px 18px !important;
    }

    .principal-card h1,
    .seleccion-card h1,
    .cabecera-portada-feed h1,
    .cabecera-chat h1,
    .cabecera-notificaciones h1 {
        font-size: clamp(28px, 9vw, 36px) !important;
        line-height: 1.05;
    }

    .menu-principal {
        grid-template-columns: 1fr !important;
        gap: 12px;
        margin-top: 20px;
    }

    .menu-principal button {
        min-height: 94px !important;
        padding: 16px !important;
        border-radius: 18px !important;
    }

    .menu-principal span {
        font-size: 20px !important;
    }

    .portada-feed {
        padding-top: 14px !important;
    }

    .cabecera-portada-feed,
    .cabecera-chat,
    .cabecera-notificaciones,
    .encabezado-minijuegos {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 12px !important;
        padding: 18px 16px !important;
        border-radius: 20px !important;
    }

    .cabecera-portada-feed p:not(.etiqueta-portada-feed),
    .cabecera-chat p:not(.etiqueta-portada-feed),
    .cabecera-notificaciones p,
    .login-subtitulo {
        font-size: 14px !important;
        line-height: 1.45;
    }

    .panel-creador-feed,
    .explorar-feed,
    .panel-chat-usuarios,
    .chat-panel-conversacion,
    .chat-vacio,
    .tarjeta-notificacion {
        padding: 15px !important;
        border-radius: 18px !important;
    }

    .titulo-creador-feed,
    .titulo-explorar-feed {
        align-items: flex-start !important;
        flex-direction: column !important;
        gap: 8px !important;
    }

    #contenido-publicacion,
    #pregunta-duda,
    .portada-feed textarea {
        min-height: 118px !important;
        font-size: 15.5px;
    }

    input,
    textarea,
    select,
    button {
        font-size: 16px;
    }

    .contenedor-buscador-feed,
    .buscador-alumnos,
    .chat-buscador {
        flex-direction: column !important;
        gap: 10px !important;
    }

    .contenedor-buscador-feed input,
    .buscador-alumnos input,
    .chat-buscador input,
    .contenedor-buscador-feed button,
    .buscador-alumnos button,
    .chat-buscador button {
        width: 100% !important;
    }

    .tarjeta-feed {
        display: block !important;
        grid-template-columns: 1fr !important;
    }

    .tarjeta-publicacion,
    .tarjeta-duda,
    .comentario,
    .respuesta,
    .carta-recibida,
    .tarjeta-notificacion,
    .tarjeta-minijuego {
        width: 100% !important;
        max-width: 100% !important;
        padding: 14px !important;
        border-radius: 17px !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        min-height: 0 !important;
    }

    .contenido-publicacion {
        min-height: 0 !important;
    }

    .autor-publicacion,
    .autor-duda,
    .autor-comentario,
    .autor-respuesta {
        max-width: 100% !important;
        margin-left: 0 !important;
        margin-right: auto !important;
    }

    .acciones-publicacion {
        border-left: none !important;
        border-top: 1px solid rgba(21, 101, 192, 0.45) !important;
        padding-left: 0 !important;
        padding-top: 12px !important;
        margin-top: 14px !important;
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px !important;
    }

    .acciones-publicacion button,
    .acciones-publicacion .boton-like,
    .acciones-publicacion .boton-favorito {
        width: 100% !important;
        min-height: 42px;
    }

    .galeria-publicacion {
        grid-template-columns: 1fr !important;
        max-height: none !important;
        overflow: visible !important;
        padding-right: 0 !important;
        gap: 10px !important;
    }

    .imagen-publicacion,
    .video-publicacion,
    .galeria-publicacion video {
        width: 100% !important;
        max-height: 72vh !important;
        object-fit: contain !important;
    }

    .formulario-comentario,
    .formulario-respuesta {
        padding: 12px !important;
        border-radius: 16px !important;
    }

    .portada-feed .formulario-comentario textarea,
    .portada-todo .formulario-comentario textarea,
    .portada-dudas .formulario-comentario textarea,
    .formulario-respuesta textarea {
        height: 72px !important;
        min-height: 64px !important;
        max-height: 110px !important;
    }

    .filtros-dudas,
    .filtros-minijuegos,
    .contenedor-alumnos .filtros-alumnos {
        display: flex !important;
        flex-wrap: nowrap !important;
        justify-content: flex-start !important;
        gap: 8px !important;
        overflow-x: auto;
        padding-bottom: 8px;
        -webkit-overflow-scrolling: touch;
    }

    .filtros-dudas button,
    .filtros-minijuegos button,
    .contenedor-alumnos .filtros-alumnos button {
        flex: 0 0 auto !important;
        min-width: max-content !important;
        padding: 10px 13px !important;
        white-space: nowrap;
    }

    #lista-alumnos,
    .lista-minijuegos {
        grid-template-columns: 1fr !important;
        gap: 13px !important;
    }

    .tarjeta-alumno {
        min-height: 0 !important;
        padding: 16px !important;
        border-radius: 20px !important;
    }

    .foto-alumno {
        width: 104px !important;
        height: 104px !important;
    }

    .perfil-contenedor {
        gap: 16px !important;
        padding-top: 20px !important;
    }

    .nombre-perfil {
        max-width: 100% !important;
        font-size: clamp(24px, 8vw, 32px) !important;
    }

    .foto-perfil-grande,
    .avatar-perfil-grande {
        width: min(62vw, 230px) !important;
        height: min(62vw, 230px) !important;
    }

    .avatar-perfil-grande {
        font-size: clamp(64px, 20vw, 86px) !important;
    }

    .datos-perfil {
        width: 100%;
        gap: 8px !important;
    }

    .datos-perfil span {
        flex: 1 1 auto;
        text-align: center;
        padding: 8px 11px !important;
        font-size: 13px !important;
    }

    .perfil-acciones-centradas {
        width: 100%;
        flex-wrap: wrap;
        padding: 12px !important;
    }

    .lista-usuarios-chat {
        grid-template-rows: repeat(2, minmax(116px, auto)) !important;
        grid-auto-columns: minmax(136px, 150px) !important;
        gap: 10px !important;
        padding-bottom: 10px !important;
    }

    .tarjeta-usuario-chat {
        min-height: 116px !important;
        padding: 10px !important;
    }

    .tarjeta-usuario-chat img,
    .avatar-chat-fallback {
        width: 56px !important;
        height: 56px !important;
    }

    .chat-cabecera-conversacion {
        padding: 12px !important;
        gap: 10px !important;
        align-items: center;
    }

    .chat-cabecera-conversacion img,
    .avatar-chat-cabecera {
        width: 44px !important;
        height: 44px !important;
    }

    .chat-cabecera-conversacion h2 {
        font-size: 17px !important;
    }

    .chat-cabecera-conversacion p {
        display: none;
    }

    .boton-perfil-chat {
        margin-left: auto !important;
        width: auto !important;
        min-width: 0 !important;
        padding: 8px 10px !important;
        font-size: 12px !important;
    }

    .mensajes-chat {
        height: min(62vh, 520px) !important;
        min-height: 340px !important;
        padding: 12px !important;
    }

    .mensaje-chat,
    .mensaje-chat-solo-adjunto {
        max-width: 90% !important;
        padding: 12px 13px !important;
        font-size: 15.8px !important;
    }

    .formulario-chat {
        padding: 10px !important;
    }

    .barra-escritura-chat {
        grid-template-columns: 42px 42px minmax(0, 1fr) auto !important;
        gap: 8px !important;
        padding: 9px !important;
        border-radius: 22px !important;
    }

    .formulario-chat .boton-chat-redondo {
        width: 42px !important;
        min-width: 42px !important;
        max-width: 42px !important;
        height: 42px !important;
        min-height: 42px !important;
        max-height: 42px !important;
        flex-basis: 42px !important;
    }

    .formulario-chat textarea {
        min-height: 44px !important;
        max-height: 104px !important;
        padding: 11px 12px !important;
        border-radius: 16px !important;
        font-size: 16px !important;
    }

    .boton-enviar-chat {
        min-width: 74px !important;
        min-height: 42px !important;
        padding: 0 13px !important;
        border-radius: 16px !important;
    }

    .tarjeta-notificacion {
        display: grid;
        grid-template-columns: auto 1fr;
        gap: 10px;
        align-items: start;
    }

    .avatar-actor-notificacion {
        width: 46px !important;
        height: 46px !important;
        border-radius: 16px !important;
    }

    .mesa-blackjack {
        width: calc(100vw - 18px) !important;
        padding: 14px !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }

    .cabecera-blackjack,
    .resumen-blackjack,
    .jugadores-blackjack,
    .acciones-blackjack {
        grid-template-columns: 1fr !important;
        flex-direction: column !important;
        align-items: stretch !important;
    }

    .jugador-blackjack {
        padding: 14px !important;
        border-radius: 18px !important;
    }

    .cartas-blackjack {
        gap: 8px !important;
        overflow-x: auto;
        padding-bottom: 8px;
    }

    .mesa-ajedrez {
        padding: 10px 8px 28px !important;
    }

    .tablero-ajedrez {
        width: min(96vw, 430px) !important;
        padding: 18px !important;
        border-radius: 34px !important;
        margin-top: 12px !important;
    }
}

@media (max-width: 520px) {
    body {
        font-size: 15px;
    }

    .barra-superior {
        gap: 5px;
        padding-left: 6px !important;
        padding-right: 6px !important;
    }

    .barra-centro-iconos,
    .barra-centro {
        max-width: calc(100vw - 58px);
        gap: 6px !important;
    }

    .boton-nav-superior {
        width: 40px !important;
        height: 40px !important;
        min-width: 40px !important;
        border-radius: 13px !important;
    }

    .boton-nav-superior.nav-todo {
        min-width: 54px !important;
        height: 40px !important;
    }

    .icono-nav,
    .icono-nav svg {
        width: 22px;
        height: 22px;
    }

    .boton-configuracion {
        width: 40px !important;
        height: 40px !important;
        min-width: 40px !important;
    }

    .contenedor-login,
    .registro-card,
    .seleccion-contenedor,
    .principal-contenedor,
    .contenedor-feed,
    .contenedor-minijuegos,
    .contenedor-chat,
    .contenedor-notificaciones,
    .contenedor-alumnos,
    .perfil-contenedor {
        width: calc(100vw - 12px) !important;
        padding: 12px !important;
    }

    .principal-card,
    .seleccion-card {
        padding: 20px 14px !important;
    }

    .menu-principal button {
        min-height: 86px !important;
        padding: 14px !important;
    }

    .panel-creador-feed,
    .explorar-feed,
    .panel-chat-usuarios,
    .chat-panel-conversacion,
    .chat-vacio,
    .cabecera-portada-feed,
    .cabecera-chat,
    .cabecera-notificaciones,
    .encabezado-minijuegos {
        padding: 13px !important;
        border-radius: 17px !important;
    }

    .acciones-publicacion {
        grid-template-columns: 1fr !important;
    }

    .lista-usuarios-chat {
        grid-auto-columns: minmax(118px, 130px) !important;
        grid-template-rows: repeat(2, minmax(106px, auto)) !important;
    }

    .tarjeta-usuario-chat {
        min-height: 106px !important;
    }

    .tarjeta-usuario-chat img,
    .avatar-chat-fallback {
        width: 48px !important;
        height: 48px !important;
    }

    .barra-escritura-chat {
        grid-template-columns: 40px 40px minmax(0, 1fr) !important;
    }

    .boton-enviar-chat {
        grid-column: 1 / -1;
        width: 100%;
    }

    .mensajes-chat {
        height: 58vh !important;
        min-height: 300px !important;
    }

    .mensaje-chat,
    .mensaje-chat-solo-adjunto {
        max-width: 94% !important;
        font-size: 15.5px !important;
    }

    .datos-perfil span {
        flex: 1 1 100%;
    }

    .foto-perfil-grande,
    .avatar-perfil-grande {
        width: min(70vw, 210px) !important;
        height: min(70vw, 210px) !important;
    }

    .tablero-ajedrez {
        width: min(98vw, 390px) !important;
        padding: 12px !important;
        border-radius: 28px !important;
    }
}


/* =========================================================
   Responsive móvil v2 - TODO/Dudas primero
   Solo afecta pantallas pequeñas. No cambia el diseño desktop.
   ========================================================= */
@media (max-width: 900px) {
    body:has(.contenedor-feed),
    body:has(.contenedor-chat),
    body:has(.contenedor-notificaciones),
    body:has(.contenedor-alumnos),
    body:has(.contenedor-minijuegos),
    body:has(.perfil-contenedor) {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    body:has(.contenedor-feed) .body-panel,
    body:has(.contenedor-chat) .body-panel,
    body:has(.contenedor-notificaciones) .body-panel,
    body:has(.contenedor-alumnos) .body-panel,
    body:has(.contenedor-minijuegos) .body-panel,
    body:has(.perfil-contenedor) .body-panel {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .contenedor-feed,
    .contenedor-chat,
    .contenedor-notificaciones,
    .contenedor-alumnos,
    .contenedor-minijuegos,
    .perfil-contenedor {
        width: 100vw !important;
        max-width: 100vw !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        box-shadow: none !important;
    }

    .contenedor-feed > section,
    .contenedor-chat > section,
    .contenedor-notificaciones > section,
    .contenedor-alumnos > section,
    .contenedor-minijuegos > section,
    .perfil-contenedor > section,
    .cabecera-portada-feed,
    .panel-creador-feed,
    .explorar-feed,
    .panel-chat-usuarios,
    .chat-panel-conversacion,
    .chat-vacio,
    .cabecera-chat,
    .cabecera-notificaciones,
    .encabezado-minijuegos,
    .panel-alumnos,
    .bloque-perfil,
    .tarjeta-perfil {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        border-left: 0 !important;
        border-right: 0 !important;
        border-radius: 0 !important;
    }

    .tarjeta-publicacion,
    .tarjeta-duda {
        border-left: 0 !important;
        border-right: 0 !important;
        border-radius: 0 !important;
        padding-left: 12px !important;
        padding-right: 12px !important;
    }

    .boton-emoji,
    .boton-emoji-chat,
    .panel-emojis,
    .panel-emojis-chat {
        display: none !important;
    }

    .barra-escritura-chat {
        grid-template-columns: 42px minmax(0, 1fr) auto !important;
    }

    .autor-publicacion,
    .autor-duda,
    .autor-comentario,
    .autor-respuesta {
        width: fit-content !important;
        max-width: calc(100% - 24px) !important;
        margin-left: auto !important;
        margin-right: auto !important;
        text-align: center !important;
        align-self: center !important;
    }

    .acciones-publicacion {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        align-items: center !important;
    }

    .contenedor-like {
        padding-bottom: 0 !important;
        margin-bottom: 0 !important;
        border-bottom: 0 !important;
    }

    .acciones-publicacion .boton-like,
    .contenedor-like .boton-like {
        width: 44px !important;
        min-width: 44px !important;
        max-width: 44px !important;
        height: 44px !important;
        min-height: 44px !important;
        max-height: 44px !important;
        padding: 0 !important;
        border-radius: 50% !important;
        justify-self: center !important;
        margin: 0 auto !important;
        flex: 0 0 44px !important;
    }

    .galeria-publicacion,
    .galeria-videos-publicacion {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        align-items: flex-start !important;
        justify-content: flex-start !important;
        gap: 10px !important;
        width: 100% !important;
        max-width: 100% !important;
        max-height: none !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        padding: 2px 4px 10px 0 !important;
        margin-top: 12px !important;
        scroll-snap-type: x proximity;
        -webkit-overflow-scrolling: touch;
    }

    .galeria-publicacion::-webkit-scrollbar,
    .galeria-videos-publicacion::-webkit-scrollbar {
        height: 5px;
    }

    .galeria-publicacion::-webkit-scrollbar-track,
    .galeria-videos-publicacion::-webkit-scrollbar-track {
        background: rgba(255, 255, 255, 0.04);
        border-radius: 999px;
    }

    .galeria-publicacion::-webkit-scrollbar-thumb,
    .galeria-videos-publicacion::-webkit-scrollbar-thumb {
        background: rgba(90, 100, 115, 0.72);
        border-radius: 999px;
    }

    .imagen-publicacion,
    .video-publicacion,
    .galeria-publicacion video,
    .galeria-videos-publicacion video {
        flex: 0 0 min(82vw, 360px) !important;
        width: min(82vw, 360px) !important;
        max-width: min(82vw, 360px) !important;
        height: auto !important;
        max-height: 58vh !important;
        object-fit: contain !important;
        scroll-snap-align: start;
    }

    .video-publicacion.video-feed-movil-auto {
        min-height: 190px;
        background: #05070b;
    }

    .barra-busqueda-privacidad {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 9px !important;
    }

    .barra-busqueda-privacidad input,
    .barra-busqueda-privacidad button {
        width: 100% !important;
    }

    .barra-busqueda-privacidad button {
        justify-self: stretch !important;
        margin-top: 0 !important;
    }
}

@media (max-width: 520px) {
    .acciones-publicacion {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .barra-escritura-chat {
        grid-template-columns: 40px minmax(0, 1fr) !important;
    }

    .boton-enviar-chat {
        grid-column: 1 / -1;
        width: 100%;
    }

    .imagen-publicacion,
    .video-publicacion,
    .galeria-publicacion video,
    .galeria-videos-publicacion video {
        flex-basis: min(84vw, 340px) !important;
        width: min(84vw, 340px) !important;
        max-width: min(84vw, 340px) !important;
    }
}

/* =========================================================
   Responsive móvil v3 - acciones compactas en TODO/Dudas
   Desktop queda intacto salvo el contador azul.
   ========================================================= */
.contador-likes {
    color: #2089ff;
    text-shadow: 0 0 12px rgba(32, 137, 255, 0.34);
}

.icono-enviar-comentario {
    display: none;
}

@media (max-width: 900px) {
    .acciones-publicacion {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: wrap !important;
        justify-content: center !important;
        align-items: center !important;
        gap: 9px !important;
        padding: 12px 8px 8px !important;
        border-left: 0 !important;
        border-top: 1px solid rgba(29, 107, 210, 0.42) !important;
    }

    .acciones-publicacion > button,
    .acciones-publicacion .contenedor-like,
    .acciones-publicacion .boton-comentarios-feed,
    .acciones-publicacion .boton-secundario {
        margin: 0 !important;
    }

    .contenedor-like {
        width: auto !important;
        padding: 0 !important;
        border: 0 !important;
        flex: 0 0 auto !important;
    }

    .acciones-publicacion .boton-like,
    .contenedor-like .boton-like {
        width: 38px !important;
        min-width: 38px !important;
        max-width: 38px !important;
        height: 38px !important;
        min-height: 38px !important;
        max-height: 38px !important;
        font-size: 22px !important;
        line-height: 1 !important;
        box-shadow: 0 0 12px rgba(32, 137, 255, 0.14) !important;
    }

    .boton-abrir-comentario-directo {
        display: none !important;
    }

    .boton-comentarios-feed {
        width: 38px !important;
        min-width: 38px !important;
        max-width: 38px !important;
        height: 38px !important;
        min-height: 38px !important;
        max-height: 38px !important;
        padding: 0 !important;
        border-radius: 50% !important;
        display: inline-grid !important;
        place-items: center !important;
        background: rgba(12, 18, 30, 0.92) !important;
        border: 1px solid rgba(32, 137, 255, 0.78) !important;
        color: transparent !important;
        box-shadow: 0 0 12px rgba(32, 137, 255, 0.14) !important;
        flex: 0 0 auto !important;
    }

    .boton-comentarios-feed:hover,
    .boton-comentarios-feed:focus-visible {
        background: rgba(18, 32, 54, 0.96) !important;
        box-shadow: 0 0 16px rgba(32, 137, 255, 0.24) !important;
    }

    .texto-boton-comentarios {
        display: none !important;
    }

    .icono-boton-comentarios {
        position: relative !important;
        display: block !important;
        width: 20px !important;
        height: 16px !important;
        border: 2px solid #d8ecff !important;
        border-radius: 8px !important;
        color: transparent !important;
        font-size: 0 !important;
        box-shadow: 0 0 8px rgba(96, 177, 255, 0.34) !important;
    }

    .icono-boton-comentarios::after {
        content: "";
        position: absolute;
        right: 2px;
        bottom: -6px;
        width: 7px;
        height: 7px;
        border-left: 2px solid #d8ecff;
        border-bottom: 2px solid #d8ecff;
        border-bottom-left-radius: 6px;
        transform: rotate(-15deg);
        background: transparent;
    }

    .acciones-publicacion > button:not(.boton-comentarios-feed):not(.boton-like),
    .acciones-publicacion .boton-secundario {
        min-height: 36px !important;
        height: 36px !important;
        padding: 0 12px !important;
        border-radius: 18px !important;
        font-size: 12px !important;
        line-height: 1.1 !important;
        flex: 0 0 auto !important;
    }

    .formulario-comentario {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) 42px !important;
        grid-template-rows: auto auto !important;
        gap: 8px !important;
        align-items: stretch !important;
        padding: 12px !important;
    }

    .formulario-comentario textarea,
    .portada-feed .formulario-comentario textarea,
    .portada-todo .formulario-comentario textarea,
    .portada-dudas .formulario-comentario textarea,
    .formulario-respuesta textarea {
        grid-column: 1 / 2 !important;
        grid-row: 1 / 2 !important;
        min-height: 58px !important;
        height: 58px !important;
        max-height: 82px !important;
        padding: 11px 13px !important;
        border-radius: 18px !important;
        font-size: 14px !important;
        resize: vertical !important;
    }

    .formulario-comentario .vista-previa-comentario {
        grid-column: 1 / -1 !important;
        grid-row: 2 / 3 !important;
    }

    .formulario-comentario .acciones-formulario-texto {
        grid-column: 2 / 3 !important;
        grid-row: 1 / 2 !important;
        display: flex !important;
        align-items: stretch !important;
        justify-content: center !important;
        gap: 0 !important;
        margin: 0 !important;
    }

    .texto-enviar-comentario {
        display: none !important;
    }

    .icono-enviar-comentario {
        display: inline-block !important;
        transform: translateX(1px);
        font-size: 18px;
        line-height: 1;
    }

    .boton-enviar-comentario-movil,
    .formulario-comentario .boton-enviar-texto {
        width: 42px !important;
        min-width: 42px !important;
        max-width: 42px !important;
        height: 58px !important;
        min-height: 58px !important;
        padding: 0 !important;
        border-radius: 18px !important;
        display: inline-grid !important;
        place-items: center !important;
        background: linear-gradient(145deg, #2089ff, #16c4ef) !important;
        color: #020713 !important;
        box-shadow: 0 0 18px rgba(32, 137, 255, 0.28) !important;
    }

    .comentarios-publicacion {
        margin-top: 10px !important;
    }
}

/* =========================================================
   Responsive móvil v4 - acciones compactas y barra superior
   Solo afecta teléfono, salvo brillo/contador de like.
   ========================================================= */
.boton-like.like-activo {
    background: #00d9ff;
    border-color: #00d9ff;
    color: #020202;
    box-shadow:
        0 0 18px rgba(0, 217, 255, 0.75),
        0 0 28px rgba(0, 217, 255, 0.34) !important;
}

.contador-likes {
    color: #2089ff !important;
    text-shadow: 0 0 12px rgba(32, 137, 255, 0.38) !important;
}

@media (max-width: 900px) {
    .barra-superior {
        position: sticky !important;
        top: 0 !important;
        min-height: 48px !important;
        padding: calc(6px + env(safe-area-inset-top, 0px)) 7px 6px !important;
        background:
            linear-gradient(180deg, rgba(5, 8, 14, 0.62), rgba(5, 8, 14, 0.36)) !important;
        border-bottom: 1px solid rgba(120, 170, 230, 0.14) !important;
        box-shadow: 0 12px 28px rgba(0, 0, 0, 0.18) !important;
        backdrop-filter: blur(15px) saturate(1.08) !important;
        -webkit-backdrop-filter: blur(15px) saturate(1.08) !important;
        transition: transform 0.22s ease, opacity 0.22s ease !important;
        will-change: transform;
    }

    body.barra-movil-oculta .barra-superior {
        transform: translateY(calc(-100% - 12px)) !important;
        opacity: 0.08 !important;
        pointer-events: none !important;
    }

    .barra-centro,
    .barra-centro-iconos {
        gap: 5px !important;
        max-width: calc(100vw - 58px) !important;
        padding-bottom: 3px !important;
    }

    .boton-nav-superior {
        width: 36px !important;
        min-width: 36px !important;
        height: 36px !important;
        border-radius: 12px !important;
        padding: 0 !important;
        background: rgba(6, 9, 15, 0.44) !important;
        border-color: rgba(155, 181, 212, 0.16) !important;
    }

    .boton-nav-superior.nav-todo {
        width: 36px !important;
        min-width: 36px !important;
        height: 36px !important;
        padding: 0 !important;
    }

    .texto-nav-todo {
        font-size: 0 !important;
        letter-spacing: 0 !important;
    }

    .texto-nav-todo::after {
        content: "T";
        font-size: 14px !important;
        font-weight: 850 !important;
        letter-spacing: 0.02em !important;
    }

    .icono-nav,
    .icono-nav svg {
        width: 21px !important;
        height: 21px !important;
    }

    .icono-nav-dudas,
    .icono-nav-dudas svg {
        width: 22px !important;
        height: 22px !important;
    }

    .icono-nav-dudas svg path:first-child {
        stroke-width: 2.25 !important;
    }

    .boton-configuracion {
        width: 36px !important;
        min-width: 36px !important;
        height: 36px !important;
        border-radius: 12px !important;
        background: rgba(6, 9, 15, 0.48) !important;
        border-color: rgba(155, 181, 212, 0.18) !important;
    }

    .tarjeta-publicacion,
    .tarjeta-duda {
        padding: 11px 8px 12px !important;
    }

    .contenido-publicacion {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .bloque-contenido,
    .texto-publicacion,
    .texto-duda {
        width: calc(100% - 10px) !important;
        margin: 10px auto 12px !important;
        padding: 12px 13px !important;
        border-radius: 14px !important;
    }

    .categoria-duda {
        margin-top: 3px !important;
        margin-bottom: 6px !important;
        padding: 5px 11px !important;
        border-radius: 11px !important;
        font-size: 12px !important;
    }

    .fecha-discreta + .categoria-duda,
    .fecha-discreta-comentario + .categoria-duda {
        margin-top: 4px !important;
    }

    .categoria-duda + .bloque-contenido,
    .categoria-duda + .texto-duda {
        margin-top: 7px !important;
    }

    .acciones-publicacion {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        justify-content: center !important;
        align-items: center !important;
        gap: 7px !important;
        padding: 9px 4px 4px !important;
        margin-top: 10px !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        border-top-color: rgba(30, 92, 255, 0.30) !important;
        scrollbar-width: none !important;
    }

    .acciones-publicacion::-webkit-scrollbar {
        display: none;
    }

    .contenedor-like {
        width: auto !important;
        padding: 0 !important;
        margin: 0 !important;
        border: 0 !important;
        flex: 0 0 auto !important;
    }

    .acciones-publicacion .boton-like,
    .contenedor-like .boton-like,
    .boton-comentarios-feed {
        width: 34px !important;
        min-width: 34px !important;
        max-width: 34px !important;
        height: 34px !important;
        min-height: 34px !important;
        max-height: 34px !important;
        border-radius: 50% !important;
        flex: 0 0 auto !important;
    }

    .acciones-publicacion .boton-like,
    .contenedor-like .boton-like {
        font-size: 19px !important;
    }

    .acciones-publicacion .boton-like.like-activo,
    .contenedor-like .boton-like.like-activo {
        background: #00d9ff !important;
        border-color: #00d9ff !important;
        color: #020202 !important;
        box-shadow:
            0 0 17px rgba(0, 217, 255, 0.78),
            0 0 26px rgba(0, 217, 255, 0.38) !important;
    }

    .icono-boton-comentarios {
        width: 17px !important;
        height: 14px !important;
        border-width: 1.8px !important;
        border-radius: 7px !important;
    }

    .icono-boton-comentarios::after {
        width: 6px !important;
        height: 6px !important;
        bottom: -5px !important;
        border-left-width: 1.8px !important;
        border-bottom-width: 1.8px !important;
    }

    .acciones-publicacion > button:not(.boton-comentarios-feed):not(.boton-like),
    .acciones-publicacion .boton-secundario {
        width: auto !important;
        min-width: 34px !important;
        max-width: 118px !important;
        min-height: 34px !important;
        height: 34px !important;
        padding: 0 9px !important;
        border-radius: 17px !important;
        font-size: 10.5px !important;
        white-space: nowrap !important;
        flex: 0 0 auto !important;
    }

    .formulario-comentario {
        width: 100% !important;
        margin: 7px 0 8px !important;
        padding: 0 !important;
        border: none !important;
        box-shadow: none !important;
        background: transparent !important;
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) 36px !important;
        gap: 8px !important;
        align-items: center !important;
    }

    .formulario-comentario:has(.boton-enviar-oculto) {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .formulario-comentario textarea,
    .portada-feed .formulario-comentario textarea,
    .portada-todo .formulario-comentario textarea,
    .portada-dudas .formulario-comentario textarea,
    .formulario-respuesta textarea {
        min-height: 44px !important;
        height: 44px !important;
        max-height: 74px !important;
        padding: 9px 12px !important;
        border-radius: 15px !important;
        font-size: 14px !important;
        line-height: 1.22 !important;
        resize: none !important;
    }

    .formulario-comentario .acciones-formulario-texto {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        margin: 0 !important;
        padding: 0 !important;
        height: 44px !important;
    }

    .boton-enviar-oculto {
        display: none !important;
    }

    .boton-enviar-comentario-movil,
    .formulario-comentario .boton-enviar-texto {
        width: 36px !important;
        min-width: 36px !important;
        max-width: 36px !important;
        height: 36px !important;
        min-height: 36px !important;
        max-height: 36px !important;
        padding: 0 !important;
        border-radius: 50% !important;
        align-self: center !important;
        margin: 0 !important;
    }

    .icono-enviar-comentario {
        font-size: 15px !important;
        transform: translateX(1px) !important;
    }

    .formulario-comentario .vista-previa-comentario {
        grid-column: 1 / -1 !important;
        margin-top: 2px !important;
    }

    .comentario:not(.formulario-comentario),
    .respuesta:not(.formulario-comentario) {
        padding: 9px 11px !important;
        margin-top: 8px !important;
        border-radius: 12px !important;
        font-size: 13.5px !important;
        line-height: 1.34 !important;
    }

    .lista-comentarios-limitada {
        padding-right: 3px !important;
        max-height: 380px !important;
    }
}

/* =========================================================
   Pulido móvil v5 - comentarios, barra superior y edición
   Solo afecta pantallas de teléfono/tablet angosta.
   ========================================================= */
@media (max-width: 900px) {
    .barra-superior {
        display: grid !important;
        grid-template-columns: 36px minmax(0, 1fr) 36px !important;
        align-items: center !important;
        justify-content: stretch !important;
        column-gap: 4px !important;
        min-height: 48px !important;
        padding: calc(6px + env(safe-area-inset-top, 0px)) 6px 6px !important;
    }

    .boton-volver-superior {
        grid-column: 1 / 2 !important;
        position: static !important;
        width: 36px !important;
        min-width: 36px !important;
        height: 36px !important;
        margin: 0 !important;
        justify-self: start !important;
    }

    .barra-centro,
    .barra-centro-iconos {
        grid-column: 2 / 3 !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;
        gap: 0 !important;
        overflow: visible !important;
        padding: 0 !important;
        scroll-snap-type: none !important;
    }

    .boton-nav-superior,
    .boton-nav-superior.nav-todo {
        width: 36px !important;
        min-width: 36px !important;
        max-width: 36px !important;
        height: 36px !important;
        min-height: 36px !important;
        flex: 0 0 36px !important;
        padding: 0 !important;
        border-radius: 12px !important;
    }

    .barra-configuracion {
        grid-column: 3 / 4 !important;
        position: relative !important;
        right: auto !important;
        width: 36px !important;
        min-width: 36px !important;
        margin: 0 !important;
        justify-self: end !important;
    }

    .boton-configuracion {
        position: relative !important;
        width: 36px !important;
        min-width: 36px !important;
        max-width: 36px !important;
        height: 36px !important;
        min-height: 36px !important;
        padding: 0 !important;
        border-radius: 12px !important;
        font-size: 0 !important;
        color: rgba(220, 241, 255, 0.92) !important;
        background:
            radial-gradient(circle at 18% 16%, rgba(0, 217, 255, 0.20), transparent 32%),
            linear-gradient(145deg, rgba(8, 15, 26, 0.92), rgba(5, 7, 13, 0.92)) !important;
        border: 1px solid rgba(82, 154, 255, 0.34) !important;
        box-shadow: 0 0 14px rgba(32, 137, 255, 0.13) !important;
    }

    .boton-configuracion::before {
        content: "";
        position: absolute;
        left: 9px;
        top: 10px;
        width: 18px;
        height: 16px;
        background:
            linear-gradient(currentColor, currentColor) 0 1px / 18px 2px no-repeat,
            linear-gradient(currentColor, currentColor) 0 7px / 18px 2px no-repeat,
            linear-gradient(currentColor, currentColor) 0 13px / 18px 2px no-repeat;
        opacity: 0.96;
    }

    .boton-configuracion::after {
        content: "";
        position: absolute;
        left: 12px;
        top: 9px;
        width: 4px;
        height: 4px;
        border-radius: 50%;
        background: #00d9ff;
        box-shadow:
            9px 6px 0 #00d9ff,
            3px 12px 0 #00d9ff;
    }

    .menu-configuracion {
        top: calc(52px + env(safe-area-inset-top, 0px)) !important;
        right: 6px !important;
    }

    #contenido-publicacion,
    #pregunta-duda {
        min-height: 72px !important;
        height: 72px !important;
        max-height: 118px !important;
        padding: 10px 12px !important;
        resize: vertical !important;
    }

    .comentario:not(.formulario-comentario),
    .respuesta:not(.formulario-comentario) {
        padding: 7px 9px !important;
        margin-top: 7px !important;
        border-radius: 11px !important;
        font-size: 13px !important;
        line-height: 1.28 !important;
    }

    .cabecera-comentario {
        align-items: center !important;
        gap: 6px !important;
        margin-bottom: 3px !important;
    }

    .info-comentario {
        align-items: center !important;
        gap: 5px !important;
        row-gap: 2px !important;
    }

    .comentario strong {
        margin-bottom: 0 !important;
        font-size: 13px !important;
        line-height: 1.14 !important;
    }

    .fecha-discreta-comentario {
        margin-left: 0 !important;
        font-size: 10.5px !important;
        line-height: 1.1 !important;
    }

    .contenido-comentario {
        margin-top: 2px !important;
        font-size: 13px !important;
        line-height: 1.28 !important;
    }

    .galeria-comentario {
        gap: 6px !important;
        margin-top: 6px !important;
    }

    .imagen-comentario {
        max-width: 132px !important;
        max-height: 132px !important;
        border-radius: 12px !important;
    }

    .opciones-comentario {
        top: 28px !important;
        right: 0 !important;
        left: auto !important;
    }

    .acciones-publicacion > .opciones-publicacion {
        flex: 0 0 100% !important;
        width: 100% !important;
        max-width: 100% !important;
        order: 99 !important;
        margin: 2px 0 0 !important;
    }

    .acciones-publicacion > .opciones-publicacion:empty {
        display: none !important;
    }

    .acciones-publicacion .menu-opciones-publicacion {
        width: 100% !important;
        max-width: 100% !important;
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        justify-content: center !important;
        align-items: center !important;
        gap: 7px !important;
        margin: 0 auto !important;
        padding: 0 !important;
    }

    .acciones-publicacion .menu-opciones-publicacion button {
        flex: 1 1 0 !important;
        width: auto !important;
        min-width: 0 !important;
        max-width: 160px !important;
        height: 32px !important;
        min-height: 32px !important;
        padding: 0 8px !important;
        border-radius: 16px !important;
        font-size: 10.5px !important;
        line-height: 1.05 !important;
        white-space: nowrap !important;
    }

    .formulario-edicion-publicacion {
        width: 100% !important;
        max-width: 100% !important;
        margin: 8px 0 10px !important;
        padding: 12px !important;
        display: flex !important;
        flex-direction: column !important;
        gap: 9px !important;
        align-items: stretch !important;
        background: rgba(9, 15, 24, 0.90) !important;
        border: 1px solid rgba(66, 165, 245, 0.36) !important;
        border-radius: 16px !important;
        box-shadow: 0 0 16px rgba(32, 137, 255, 0.10) !important;
    }

    .formulario-edicion-publicacion textarea.textarea-edicion-publicacion {
        width: 100% !important;
        min-height: 78px !important;
        height: 78px !important;
        max-height: 132px !important;
        grid-column: auto !important;
        grid-row: auto !important;
        font-size: 14px !important;
        resize: vertical !important;
    }

    .formulario-edicion-publicacion select,
    .formulario-edicion-publicacion .opcion-publicacion {
        width: 100% !important;
        box-sizing: border-box !important;
    }

    .formulario-edicion-publicacion .acciones-media-formulario {
        margin: 4px 0 6px !important;
        gap: 8px !important;
        display: flex !important;
        flex-wrap: nowrap !important;
    }

    .formulario-edicion-publicacion .boton-archivo-media {
        flex: 1 1 0 !important;
        min-width: 0 !important;
        padding: 9px 8px !important;
        font-size: 12px !important;
        border-radius: 14px !important;
        text-align: center !important;
    }

    .formulario-edicion-publicacion .vista-previa-edicion-publicacion,
    .formulario-edicion-publicacion .vista-previa-comentario {
        grid-column: auto !important;
        grid-row: auto !important;
        margin-top: 4px !important;
        justify-content: center !important;
    }

    .formulario-edicion-publicacion .panel-opciones-nueva-publicacion {
        margin-top: 2px !important;
        padding: 11px !important;
        border-radius: 14px !important;
    }

    .formulario-edicion-publicacion .botones-privacidad-publicacion {
        gap: 7px !important;
        margin: 8px 0 !important;
    }

    .formulario-edicion-publicacion .botones-privacidad-publicacion button {
        flex: 1 1 0 !important;
        min-width: 0 !important;
        font-size: 11px !important;
        padding: 8px 7px !important;
    }

    .formulario-edicion-publicacion .acciones-formulario-texto {
        display: flex !important;
        grid-column: auto !important;
        grid-row: auto !important;
        height: auto !important;
        gap: 8px !important;
        margin: 0 !important;
        align-items: stretch !important;
        justify-content: stretch !important;
    }

    .formulario-edicion-publicacion .boton-emoji {
        display: none !important;
    }

    .formulario-edicion-publicacion .acciones-formulario-texto .boton-enviar-texto,
    .formulario-edicion-publicacion > .boton-secundario,
    .formulario-edicion-publicacion > button {
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        height: 40px !important;
        min-height: 40px !important;
        max-height: none !important;
        padding: 0 12px !important;
        border-radius: 16px !important;
        font-size: 13px !important;
        line-height: 1.1 !important;
        margin: 0 !important;
    }

    .formulario-edicion-publicacion > #boton-opciones-edicion-publicacion,
    .formulario-edicion-publicacion > [id^="boton-opciones-edicion-publicacion"] {
        height: 36px !important;
        min-height: 36px !important;
    }
}

/* =========================================================
   Ajustes móviles v6 - comentarios sobrepuestos, acciones y zoom
   ========================================================= */
.boton-enviar-oculto,
.formulario-comentario .boton-enviar-texto.boton-enviar-oculto,
.formulario-comentario .boton-enviar-comentario-movil.boton-enviar-oculto {
    display: none !important;
}

.modal-opciones-comentario {
    position: fixed;
    inset: 0;
    z-index: 1400;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 22px;
    background: rgba(0, 0, 0, 0.72);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

.panel-opciones-comentario-sobrepuesto {
    width: min(520px, calc(100vw - 28px));
    max-height: min(82vh, 720px);
    overflow: auto;
    padding: 16px;
    border: 1px solid rgba(98, 160, 255, 0.32);
    border-radius: 22px;
    background:
        radial-gradient(circle at 16% 0%, rgba(0, 127, 255, 0.18), transparent 32%),
        radial-gradient(circle at 88% 14%, rgba(255, 102, 204, 0.10), transparent 36%),
        linear-gradient(145deg, rgba(9, 13, 23, 0.98), rgba(2, 3, 8, 0.99));
    box-shadow:
        0 24px 80px rgba(0, 0, 0, 0.62),
        inset 0 1px 0 rgba(255, 255, 255, 0.06),
        0 0 28px rgba(32, 137, 255, 0.12);
}

.cabecera-modal-opciones-comentario {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.cabecera-modal-opciones-comentario strong {
    color: #eef7ff;
    font-size: 16px;
    letter-spacing: 0.02em;
}

.boton-cerrar-modal-comentario {
    width: 32px;
    min-width: 32px;
    height: 32px;
    padding: 0;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, 0.16);
    background: rgba(255, 255, 255, 0.08);
    color: rgba(255, 255, 255, 0.88);
    box-shadow: none;
    font-size: 20px;
    line-height: 1;
}

.contenido-modal-opciones-comentario {
    padding: 12px;
    border: 1px solid rgba(180, 202, 230, 0.14);
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.035);
}

.contenido-modal-opciones-comentario .cabecera-comentario {
    margin-bottom: 5px;
}

.contenido-modal-opciones-comentario .contenido-comentario {
    margin: 5px 0 0;
}

.comentario-sin-texto {
    color: rgba(230, 238, 247, 0.56);
    font-style: italic;
}

.galeria-modal-comentario {
    margin-top: 10px;
}

.acciones-modal-opciones-comentario {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin-top: 13px;
}

.acciones-modal-opciones-comentario button {
    flex: 1 1 0;
    min-width: 0;
    max-width: 190px;
}

.formulario-edicion-comentario-modal {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    border: none !important;
    background: transparent !important;
    box-shadow: none !important;
}

.formulario-edicion-comentario-modal textarea {
    width: 100% !important;
    min-height: 92px !important;
    height: 92px !important;
    max-height: 180px !important;
    resize: vertical !important;
}

.formulario-edicion-comentario-modal .acciones-formulario-texto,
.formulario-edicion-comentario-modal .acciones-edicion-comentario-modal {
    width: 100% !important;
    display: flex !important;
    gap: 9px !important;
    align-items: stretch !important;
    justify-content: stretch !important;
    margin: 0 !important;
}

.formulario-edicion-comentario-modal .boton-enviar-texto,
.formulario-edicion-comentario-modal > .boton-secundario {
    width: 100% !important;
    min-height: 40px !important;
    border-radius: 16px !important;
}

.formulario-edicion-comentario-modal .boton-emoji {
    flex: 0 0 42px !important;
    width: 42px !important;
    min-width: 42px !important;
}

.cabecera-blackjack > div,
.cabecera-ajedrez > div {
    justify-self: center;
    width: 100%;
    text-align: center;
}

@media (max-width: 900px) {
    input,
    textarea,
    select {
        font-size: 16px !important;
    }

    .acciones-publicacion {
        justify-content: flex-start !important;
        padding-left: 0 !important;
        padding-right: 4px !important;
        scroll-padding-left: 0 !important;
    }

    .acciones-publicacion > .contenedor-like:first-child,
    .acciones-publicacion > button:first-child {
        margin-left: 0 !important;
    }

    .acciones-publicacion > .opciones-publicacion {
        flex: 0 0 min(240px, 70vw) !important;
        width: min(240px, 70vw) !important;
        max-width: min(240px, 70vw) !important;
        margin-left: 6px !important;
        order: 99 !important;
    }

    .acciones-publicacion .menu-opciones-publicacion {
        min-width: min(230px, 68vw) !important;
        width: min(230px, 68vw) !important;
        max-width: min(230px, 68vw) !important;
        justify-content: flex-start !important;
        gap: 6px !important;
    }

    .acciones-publicacion .menu-opciones-publicacion button {
        max-width: none !important;
        min-width: 92px !important;
        height: 32px !important;
        min-height: 32px !important;
        padding: 0 8px !important;
        font-size: 10px !important;
    }

    .modal-opciones-comentario {
        align-items: flex-end;
        padding: 14px 10px calc(14px + env(safe-area-inset-bottom, 0px));
    }

    .panel-opciones-comentario-sobrepuesto {
        width: 100%;
        max-height: min(78vh, 640px);
        padding: 14px;
        border-radius: 20px;
    }

    .acciones-modal-opciones-comentario {
        gap: 8px;
    }

    .acciones-modal-opciones-comentario button {
        min-height: 38px !important;
        padding: 0 10px !important;
        font-size: 12px !important;
        border-radius: 16px !important;
    }

    .formulario-edicion-comentario-modal textarea {
        min-height: 82px !important;
        height: 82px !important;
    }

    .formulario-edicion-comentario-modal .boton-emoji {
        display: none !important;
    }

    .cabecera-blackjack,
    .cabecera-ajedrez {
        grid-template-columns: auto minmax(0, 1fr) auto !important;
        row-gap: 10px !important;
    }

    .cabecera-blackjack > div:nth-child(2),
    .cabecera-ajedrez > div {
        grid-column: 1 / -1 !important;
        grid-row: 1 !important;
        justify-self: center !important;
        width: 100% !important;
        text-align: center !important;
    }

    .cabecera-blackjack > :first-child,
    .cabecera-ajedrez > :first-child {
        grid-column: 1 / 2 !important;
        grid-row: 2 !important;
        justify-self: start !important;
    }

    .temporizador-blackjack,
    .cabecera-ajedrez > span {
        grid-column: 3 / 4 !important;
        grid-row: 2 !important;
        justify-self: end !important;
    }

    .cabecera-ajedrez > span {
        display: block !important;
        width: 36px !important;
        min-width: 36px !important;
    }
}

/* =========================================================
   Ajustes móviles v7 - pulido acciones, alumnos, edición y juegos
   ========================================================= */
.boton-editar-perfil-oculto {
    display: none !important;
}

.acciones-edicion-perfil {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 14px;
}

.acciones-edicion-perfil button {
    width: 100%;
}

body:has(.mesa-ajedrez),
body:has(.mesa-blackjack),
.mesa-ajedrez,
.mesa-ajedrez *,
.mesa-blackjack,
.mesa-blackjack * {
    overflow-anchor: none;
}

html:has(.mesa-ajedrez),
body:has(.mesa-ajedrez) {
    background: #030409;
    overflow-x: hidden;
}

#tablero-ajedrez:not(.tablero-ajedrez-listo) {
    min-height: min(calc(100vw - 20px), 420px);
    border-color: transparent !important;
    background: rgba(4, 7, 13, 0.88) !important;
    box-shadow: none !important;
}

@media (max-width: 900px) {
    input,
    textarea,
    select,
    .formulario-comentario textarea,
    .portada-feed .formulario-comentario textarea,
    .portada-todo .formulario-comentario textarea,
    .portada-dudas .formulario-comentario textarea,
    .formulario-respuesta textarea,
    .formulario-edicion-publicacion textarea.textarea-edicion-publicacion,
    .formulario-edicion-comentario-modal textarea,
    #contenido-publicacion,
    #pregunta-duda {
        font-size: 16px !important;
    }

    .acciones-publicacion.acciones-feed-basicas,
    .acciones-publicacion.acciones-duda-basicas {
        justify-content: center !important;
        padding-left: 8px !important;
        padding-right: 8px !important;
        overflow-x: visible !important;
        scrollbar-width: none !important;
    }

    .acciones-publicacion.acciones-feed-basicas > *,
    .acciones-publicacion.acciones-duda-basicas > * {
        flex: 0 0 auto !important;
    }

    .acciones-publicacion.acciones-feed-basicas .boton-abrir-comentario-directo,
    .acciones-publicacion.acciones-duda-basicas .boton-abrir-comentario-directo {
        max-width: 124px !important;
        min-width: 96px !important;
    }

    .acciones-publicacion.acciones-feed-basicas .aviso-comentarios-desactivados {
        margin: 0 !important;
        min-height: 34px !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        padding: 0 11px !important;
        font-size: 10.5px !important;
        border-radius: 17px !important;
        white-space: nowrap !important;
    }

    .formulario-edicion-comentario-modal {
        display: flex !important;
        grid-template-columns: none !important;
        align-items: stretch !important;
    }

    .formulario-edicion-comentario-modal .acciones-formulario-texto,
    .formulario-edicion-comentario-modal .acciones-edicion-comentario-modal {
        display: flex !important;
        grid-column: auto !important;
        grid-row: auto !important;
        width: 100% !important;
        height: auto !important;
        min-height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .formulario-edicion-comentario-modal .boton-enviar-texto {
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        height: 42px !important;
        min-height: 42px !important;
        max-height: none !important;
        padding: 0 14px !important;
        border-radius: 16px !important;
        font-size: 13px !important;
        line-height: 1.1 !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        white-space: normal !important;
        text-align: center !important;
    }

    .formulario-edicion-comentario-modal > .boton-secundario {
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        height: 42px !important;
        min-height: 42px !important;
        margin: 0 !important;
        padding: 0 14px !important;
        border-radius: 16px !important;
        font-size: 13px !important;
    }

    .panel-edicion-perfil {
        width: calc(100% - 18px) !important;
        box-sizing: border-box !important;
        padding: 16px !important;
    }

    .acciones-edicion-perfil {
        gap: 9px !important;
    }

    .acciones-edicion-perfil button {
        min-height: 42px !important;
        border-radius: 16px !important;
    }

    .contenedor-alumnos {
        overflow-x: hidden !important;
    }

    .contenedor-alumnos .buscador-alumnos {
        width: calc(100% - 16px) !important;
        box-sizing: border-box !important;
        margin: 10px auto 18px !important;
        padding: 12px !important;
        border-radius: 20px !important;
    }

    .contenedor-alumnos .buscador-alumnos input,
    .contenedor-alumnos .buscador-alumnos button {
        width: 100% !important;
        box-sizing: border-box !important;
    }

    .contenedor-alumnos .filtros-alumnos {
        width: 100% !important;
        box-sizing: border-box !important;
        margin: 0 0 18px !important;
        padding: 0 8px 9px !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        scroll-padding-left: 8px !important;
    }

    #lista-alumnos {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
        padding: 0 8px !important;
        overflow: hidden !important;
        grid-template-columns: 1fr !important;
        gap: 12px !important;
    }

    .tarjeta-alumno {
        width: 100% !important;
        max-width: 100% !important;
        min-height: 118px !important;
        box-sizing: border-box !important;
        display: grid !important;
        grid-template-columns: 88px minmax(0, 1fr) !important;
        align-items: center !important;
        justify-items: stretch !important;
        gap: 12px !important;
        padding: 13px 12px !important;
        border-radius: 20px !important;
        overflow: hidden !important;
    }

    .tarjeta-alumno .foto-alumno,
    .foto-alumno {
        width: 82px !important;
        height: 82px !important;
        min-width: 82px !important;
        grid-column: 1 / 2 !important;
        justify-self: center !important;
    }

    .tarjeta-alumno .info-alumno {
        width: 100% !important;
        min-width: 0 !important;
        grid-column: 2 / 3 !important;
        text-align: left !important;
        overflow: hidden !important;
    }

    .tarjeta-alumno .info-alumno h3 {
        margin: 0 0 8px !important;
        font-size: clamp(17px, 5vw, 21px) !important;
        line-height: 1.12 !important;
        overflow-wrap: anywhere !important;
        text-align: left !important;
    }

    .tarjeta-alumno .info-alumno p {
        width: fit-content !important;
        max-width: 100% !important;
        margin: 0 0 7px !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    .tarjeta-alumno .info-alumno small {
        display: block !important;
        max-width: 100% !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
        text-align: left !important;
    }

    .mesa-ajedrez {
        width: 100vw !important;
        max-width: 100vw !important;
        box-sizing: border-box !important;
        padding: 12px 0 30px !important;
        overflow-x: hidden !important;
    }

    .tarjeta-jugador-ajedrez {
        width: calc(100% - 24px) !important;
        min-width: 0 !important;
        max-width: 430px !important;
        box-sizing: border-box !important;
    }

    .tablero-ajedrez {
        width: min(calc(100vw - 16px), 430px) !important;
        max-width: calc(100vw - 16px) !important;
        box-sizing: border-box !important;
        margin: 18px auto 22px !important;
        padding: 7px !important;
        border-radius: 20px !important;
        border: 1px solid rgba(104, 211, 255, 0.24) !important;
        background:
            radial-gradient(circle at 50% 0%, rgba(89, 214, 255, 0.12), transparent 42%),
            linear-gradient(145deg, rgba(14, 18, 27, 0.98), rgba(1, 3, 7, 0.99)) !important;
        box-shadow:
            0 18px 42px rgba(0, 0, 0, 0.52),
            0 0 0 1px rgba(255, 255, 255, 0.045),
            inset 0 1px 0 rgba(255, 255, 255, 0.08) !important;
        overflow: hidden !important;
        touch-action: manipulation !important;
    }

    .tablero-ajedrez::before,
    .tablero-ajedrez::after {
        display: none !important;
    }

    .cuadricula-ajedrez {
        min-width: 0 !important;
        min-height: 0 !important;
        transition: filter 0.08s ease, box-shadow 0.08s ease !important;
    }

    .cuadricula-clara,
    button.cuadricula-clara:hover {
        background:
            linear-gradient(145deg, rgba(70, 82, 96, 0.98), rgba(43, 51, 63, 0.96)),
            rgba(53, 62, 74, 0.98) !important;
    }

    .cuadricula-oscura,
    button.cuadricula-oscura:hover {
        background:
            linear-gradient(145deg, rgba(11, 12, 15, 1), rgba(0, 0, 0, 0.98)),
            #020202 !important;
    }

    .pieza-ajedrez {
        width: 116% !important;
        height: 116% !important;
        filter:
            drop-shadow(0 5px 5px rgba(0, 0, 0, 0.58))
            drop-shadow(0 0 8px rgba(255, 255, 255, 0.14)) !important;
    }

    .pieza-ajedrez-svg text {
        font-size: 86px !important;
    }

    .cuadricula-legal::after {
        inset: 22% !important;
        border-radius: 999px !important;
        background: rgba(73, 250, 255, 0.72) !important;
        border: 2px solid rgba(205, 255, 255, 0.88) !important;
        box-shadow:
            0 0 13px rgba(73, 250, 255, 0.62),
            inset 0 0 7px rgba(255, 255, 255, 0.35) !important;
    }

    .cuadricula-legal-captura::after {
        inset: 7px !important;
        background: transparent !important;
        border: 3px solid rgba(73, 250, 255, 0.92) !important;
        border-radius: 13px !important;
    }

    .cuadricula-legal-pendiente::after {
        opacity: 0.58 !important;
    }
}

/* =========================================================
   Ajustes móviles v8 - edición, perfil, alumnos y juegos
   ========================================================= */
.nombre-perfil {
    color: rgba(228, 234, 244, 0.92) !important;
    background: none !important;
    background-image: none !important;
    -webkit-background-clip: border-box !important;
    background-clip: border-box !important;
    font-size: 25px !important;
    font-weight: 730 !important;
    letter-spacing: 0.12px !important;
    text-shadow: 0 0 12px rgba(120, 190, 255, 0.18) !important;
}

.boton-favorito {
    font-size: 31px !important;
    line-height: 1 !important;
}

.textarea-carta {
    min-height: 112px !important;
}

.capturadas-ajedrez {
    min-height: 74px;
}

.tarjeta-jugador-ajedrez {
    min-height: 132px;
}

.cartas-blackjack {
    min-height: 126px;
}

@media (max-width: 900px) {
    input,
    textarea,
    select {
        font-size: 16px !important;
    }

    .nombre-perfil {
        max-width: min(92vw, 560px) !important;
        font-size: clamp(20px, 6vw, 24px) !important;
        line-height: 1.14 !important;
    }

    .textarea-carta {
        min-height: 82px !important;
        height: 82px !important;
        margin-top: 8px !important;
        margin-bottom: 10px !important;
    }

    .formulario-carta {
        width: calc(100% - 18px) !important;
        padding: 14px !important;
    }

    .acciones-publicacion > .opciones-publicacion {
        flex-basis: min(282px, 78vw) !important;
        width: min(282px, 78vw) !important;
        max-width: min(282px, 78vw) !important;
    }

    .acciones-publicacion .menu-opciones-publicacion {
        min-width: min(272px, 76vw) !important;
        width: min(272px, 76vw) !important;
        max-width: min(272px, 76vw) !important;
    }

    .acciones-publicacion .menu-opciones-publicacion button {
        min-width: 116px !important;
        height: 34px !important;
        min-height: 34px !important;
        padding: 0 10px !important;
        font-size: 10.5px !important;
        white-space: nowrap !important;
    }

    .acciones-publicacion .menu-opciones-publicacion .boton-peligro {
        min-width: 132px !important;
    }

    .contenedor-alumnos .filtros-alumnos {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 9px !important;
        overflow: visible !important;
        padding: 0 8px 4px !important;
        margin: 0 0 7px !important;
        border-bottom: none !important;
    }

    .contenedor-alumnos .filtros-alumnos button {
        flex: 1 1 calc(33.333% - 8px) !important;
        min-width: 0 !important;
        min-height: 40px !important;
        padding: 0 8px !important;
        font-size: 12.5px !important;
        white-space: nowrap !important;
    }

    .contenedor-alumnos .filtros-alumnos button:nth-child(4) {
        flex: 1 1 100% !important;
        width: 100% !important;
    }

    #lista-alumnos {
        margin-top: 4px !important;
        gap: 10px !important;
    }

    .boton-favorito {
        width: 43px !important;
        height: 43px !important;
        font-size: 33px !important;
    }

    .formulario-edicion-comentario-modal .acciones-formulario-texto,
    .formulario-edicion-comentario-modal .acciones-edicion-comentario-modal {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 8px !important;
    }

    .formulario-edicion-comentario-modal .boton-enviar-texto {
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        white-space: nowrap !important;
        font-size: 12.5px !important;
    }

    .formulario-edicion-comentario-modal > .boton-secundario {
        width: 100% !important;
    }

    body:has(.mesa-ajedrez),
    body:has(.mesa-blackjack) {
        overscroll-behavior-y: contain;
    }

    .mesa-ajedrez,
    .mesa-blackjack {
        overflow-anchor: none !important;
    }

    .capturadas-ajedrez {
        min-height: 70px !important;
    }

    .tarjeta-jugador-ajedrez {
        min-height: 128px !important;
    }

    .tablero-ajedrez.tablero-ajedrez-listo {
        width: min(calc(100vw - 18px), 500px) !important;
        max-width: calc(100vw - 18px) !important;
        padding: clamp(15px, 4.7vw, 28px) !important;
        margin: 18px auto 22px !important;
        border-radius: clamp(32px, 9vw, 52px) !important;
        border: 4px solid transparent !important;
        background:
            linear-gradient(145deg, rgba(250, 252, 255, 0.18), rgba(160, 169, 181, 0.10)) padding-box,
            linear-gradient(135deg, #fefefe 0%, #cdd3db 16%, #f7f8fb 38%, #aeb7c4 58%, #fdfefe 78%, #98a3b3 100%) border-box !important;
        box-shadow:
            0 28px 70px rgba(0, 0, 0, 0.58),
            0 0 0 1px rgba(255, 255, 255, 0.32),
            inset 0 1px 0 rgba(255, 255, 255, 0.62),
            inset 0 -8px 14px rgba(90, 96, 108, 0.12) !important;
        overflow: visible !important;
        contain: layout !important;
    }

    .tablero-ajedrez.tablero-ajedrez-listo::before,
    .tablero-ajedrez.tablero-ajedrez-listo::after {
        display: block !important;
    }

    .tablero-ajedrez.tablero-ajedrez-listo::before {
        inset: 7px !important;
        border-radius: clamp(25px, 7vw, 42px) !important;
    }

    .tablero-ajedrez.tablero-ajedrez-listo::after {
        inset: clamp(13px, 3.8vw, 22px) !important;
        border-radius: clamp(20px, 5.6vw, 32px) !important;
    }

    .pieza-ajedrez {
        width: 106% !important;
        height: 106% !important;
        filter:
            drop-shadow(0 8px 8px rgba(0, 0, 0, 0.48))
            drop-shadow(0 0 10px rgba(255, 255, 255, 0.10)) !important;
    }

    .pieza-ajedrez-svg text {
        font-size: 78px !important;
    }

    .cuadricula-pieza-propia .pieza-ajedrez {
        filter:
            drop-shadow(0 8px 8px rgba(0, 0, 0, 0.48))
            drop-shadow(0 0 10px rgba(255, 225, 112, 0.48)) !important;
    }
}

/* =========================================================
   Ajustes móviles v9 - perfil, dudas y ajedrez estable
   ========================================================= */
.boton-favorito,
.boton-corazon-perfil {
    display: inline-grid !important;
    place-items: center !important;
    padding: 0 !important;
    line-height: 1 !important;
    text-align: center !important;
}

.boton-favorito {
    font-size: 0 !important;
}

.boton-favorito::before {
    content: "✦";
    display: block;
    font-size: 40px;
    line-height: 1;
    transform: translateY(-1px);
}

.boton-corazon-perfil .icono-corazon-perfil {
    display: grid !important;
    place-items: center !important;
    width: 100% !important;
    height: 100% !important;
    line-height: 1 !important;
    font-size: 30px !important;
    transform: translateY(-1px);
}

.boton-corazon-perfil.corazon-perfil-activo .icono-corazon-perfil::before {
    display: block !important;
    line-height: 1 !important;
    font-size: 27px !important;
    transform: translateY(-1px);
}

.portada-dudas #categoria-duda {
    display: block !important;
    width: 100% !important;
    max-width: 1020px !important;
    box-sizing: border-box !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

html:has(.mesa-ajedrez),
body:has(.mesa-ajedrez),
.mesa-ajedrez,
.mesa-ajedrez * {
    overflow-anchor: none !important;
    scroll-behavior: auto !important;
}

.mesa-ajedrez {
    --aj-casilla-clara: #e1e1e1;
    --aj-casilla-oscura: #9f9f9f;
    --aj-seleccion: rgba(35, 35, 35, 0.82);
    --aj-legal: rgba(45, 45, 45, 0.46);
    --aj-legal-borde: rgba(30, 30, 30, 0.82);
}

.mesa-ajedrez .estado-jugador-extra-ajedrez.oculto {
    display: inline-flex !important;
    visibility: hidden !important;
    opacity: 0 !important;
}

.mesa-ajedrez .capturadas-ajedrez.oculto {
    display: block !important;
    visibility: hidden !important;
    opacity: 0 !important;
}

.mesa-ajedrez .capturadas-ajedrez {
    min-height: 76px !important;
}

.tablero-ajedrez.tablero-ajedrez-listo,
.tablero-ajedrez {
    background: #cfcfcf !important;
    border: 3px solid #a7a7a7 !important;
    border-radius: 8px !important;
    padding: 0 !important;
    box-shadow:
        0 26px 64px rgba(0, 0, 0, 0.42),
        0 0 0 1px rgba(255, 255, 255, 0.18) !important;
    overflow: hidden !important;
    contain: layout paint !important;
}

.tablero-ajedrez::before,
.tablero-ajedrez::after,
.tablero-ajedrez.tablero-ajedrez-listo::before,
.tablero-ajedrez.tablero-ajedrez-listo::after {
    display: none !important;
}

.cuadricula-ajedrez {
    box-shadow: none !important;
    transition: none !important;
    transform: none !important;
    filter: none !important;
    contain: layout paint !important;
}

.cuadricula-ajedrez:hover {
    filter: none !important;
}

.cuadricula-clara,
button.cuadricula-clara:hover {
    background: var(--aj-casilla-clara) !important;
}

.cuadricula-oscura,
button.cuadricula-oscura:hover {
    background: var(--aj-casilla-oscura) !important;
}

.cuadricula-seleccionada {
    box-shadow: inset 0 0 0 4px rgba(45, 45, 45, 0.74) !important;
}

.cuadricula-ultimo-movimiento {
    box-shadow:
        inset 0 0 0 4px rgba(218, 222, 229, 0.78),
        inset 0 0 18px rgba(236, 239, 244, 0.10) !important;
}

.cuadricula-legal::after {
    content: "";
    position: absolute;
    inset: 22% !important;
    border-radius: 2px !important;
    background: transparent !important;
    border: 4px solid rgba(44, 44, 44, 0.34) !important;
    box-shadow: none !important;
    pointer-events: none;
    z-index: 6;
}

.cuadricula-legal-captura::after {
    inset: 6px !important;
    border: 4px solid rgba(30, 30, 30, 0.72) !important;
    border-radius: 2px !important;
    background: transparent !important;
    box-shadow: none !important;
}

.pieza-ajedrez,
.cuadricula-pieza-propia .pieza-ajedrez {
    width: 100% !important;
    height: 100% !important;
    filter: none !important;
}

.pieza-ajedrez-svg {
    width: 96% !important;
    height: 96% !important;
}

.pieza-ajedrez-svg text,
.pieza-ajedrez-texto {
    font-size: 82px !important;
    paint-order: stroke fill !important;
}

.pieza-animada-ajedrez .pieza-ajedrez-svg {
    width: 96% !important;
    height: 96% !important;
    filter: none !important;
}

@media (max-width: 900px) {
    .boton-favorito::before {
        font-size: 44px;
        transform: translateY(-1px);
    }

    .boton-corazon-perfil .icono-corazon-perfil {
        font-size: 32px !important;
        transform: translateY(-1px);
    }

    .boton-corazon-perfil.corazon-perfil-activo .icono-corazon-perfil::before {
        font-size: 29px !important;
    }

    .tablero-ajedrez.tablero-ajedrez-listo,
    .tablero-ajedrez {
        width: min(calc(100vw - 22px), 430px) !important;
        max-width: calc(100vw - 22px) !important;
        margin: 16px auto 22px !important;
        border-width: 2px !important;
        border-radius: 7px !important;
    }

    .pieza-ajedrez-svg text,
    .pieza-ajedrez-texto {
        font-size: 84px !important;
    }

    .mesa-ajedrez .capturadas-ajedrez {
        min-height: 68px !important;
    }

    .tarjeta-jugador-ajedrez {
        min-height: 132px !important;
    }
}

.tablero-ajedrez,
.tablero-ajedrez *,
.cuadricula-ajedrez {
    touch-action: none !important;
    -webkit-tap-highlight-color: transparent !important;
}

/* =========================================================
   Ajustes móviles v10 - buscadores, alumnos, perfil y ajedrez
   ========================================================= */
.buscador-con-limpiar {
    position: relative !important;
}

.buscador-con-limpiar input {
    padding-right: 52px !important;
}

.boton-limpiar-busqueda {
    position: absolute !important;
    top: 50% !important;
    right: 16px !important;
    width: 34px !important;
    height: 34px !important;
    min-width: 34px !important;
    min-height: 34px !important;
    padding: 0 !important;
    border-radius: 999px !important;
    border: 1px solid rgba(149, 170, 196, 0.32) !important;
    background: rgba(16, 22, 33, 0.92) !important;
    color: rgba(235, 242, 250, 0.88) !important;
    font-size: 25px !important;
    line-height: 30px !important;
    font-weight: 600 !important;
    display: grid !important;
    place-items: center !important;
    transform: translateY(-50%) scale(0.94) !important;
    opacity: 0 !important;
    pointer-events: none !important;
    box-shadow: 0 0 14px rgba(0, 217, 255, 0.10) !important;
    transition: opacity 0.16s ease, transform 0.16s ease, border-color 0.16s ease !important;
    z-index: 8 !important;
}

.boton-limpiar-busqueda.activo {
    opacity: 1 !important;
    pointer-events: auto !important;
    transform: translateY(-50%) scale(1) !important;
}

.boton-limpiar-busqueda:hover {
    border-color: rgba(0, 217, 255, 0.55) !important;
    color: #ffffff !important;
}

.buscador-alumnos > button:not(.boton-limpiar-busqueda),
.chat-buscador > button:not(.boton-limpiar-busqueda) {
    display: none !important;
}

.herramientas-minijuegos.buscador-con-limpiar .boton-limpiar-busqueda {
    top: 24px !important;
    right: 14px !important;
}

.contenedor-buscador-feed.buscador-con-limpiar {
    max-width: 620px;
    margin-left: auto !important;
    margin-right: auto !important;
}

.boton-favorito,
.boton-corazon-perfil {
    position: relative !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    overflow: visible !important;
    line-height: 1 !important;
    text-align: center !important;
}

.boton-favorito {
    font-size: 0 !important;
    color: #0c7df2 !important;
}

.boton-favorito.favorito-activo {
    color: #060809 !important;
}

.boton-favorito::before {
    content: "" !important;
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    width: 76% !important;
    height: 76% !important;
    background: currentColor !important;
    transform: translate(-50%, -50%) !important;
    clip-path: polygon(50% 0%, 61% 34%, 98% 34%, 68% 55%, 79% 91%, 50% 70%, 21% 91%, 32% 55%, 2% 34%, 39% 34%) !important;
}

.boton-corazon-perfil {
    border-width: 1.8px !important;
    border-color: rgba(239, 74, 106, 0.88) !important;
    color: rgba(239, 74, 106, 0.90) !important;
    background: transparent !important;
}

.boton-corazon-perfil.corazon-perfil-activo {
    background: #ef4068 !important;
    border-color: #ef4068 !important;
    color: #050505 !important;
    box-shadow: 0 0 18px rgba(239, 64, 104, 0.62) !important;
}

.boton-corazon-perfil .icono-corazon-perfil,
.boton-corazon-perfil.corazon-perfil-activo .icono-corazon-perfil {
    position: static !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    height: 100% !important;
    font-size: 0 !important;
    line-height: 1 !important;
    transform: none !important;
}

.boton-corazon-perfil .icono-corazon-perfil::before,
.boton-corazon-perfil.corazon-perfil-activo .icono-corazon-perfil::before {
    display: block !important;
    line-height: 1 !important;
    transform: translateY(-1px) !important;
    text-align: center !important;
    font-family: Arial, Helvetica, sans-serif !important;
}

.boton-corazon-perfil .icono-corazon-perfil::before {
    content: "♡" !important;
    color: currentColor !important;
    font-size: 25px !important;
    font-weight: 500 !important;
}

.boton-corazon-perfil.corazon-perfil-activo .icono-corazon-perfil::before {
    content: "♥" !important;
    color: #050505 !important;
    font-size: 23px !important;
    font-weight: 700 !important;
}

.boton-corazon-perfil .icono-corazon-perfil::after,
.boton-corazon-perfil.corazon-perfil-activo .icono-corazon-perfil::after {
    content: none !important;
    display: none !important;
}

.tablero-ajedrez.tablero-ajedrez-listo,
.tablero-ajedrez {
    --aj-casilla-clara: #dedede;
    --aj-casilla-oscura: #9f9f9f;
    background: #c9c9c9 !important;
    border: 4px solid #8f8f8f !important;
    border-radius: 2px !important;
    padding: 0 !important;
    overflow: hidden !important;
    contain: layout paint size !important;
    box-shadow: 0 22px 56px rgba(0, 0, 0, 0.38) !important;
}

.cuadricula-ajedrez {
    contain: layout paint !important;
    transition: none !important;
}

.cuadricula-clara,
button.cuadricula-clara:hover {
    background: var(--aj-casilla-clara) !important;
}

.cuadricula-oscura,
button.cuadricula-oscura:hover {
    background: var(--aj-casilla-oscura) !important;
}

.pieza-ajedrez,
.cuadricula-pieza-propia .pieza-ajedrez {
    width: 100% !important;
    height: 100% !important;
    filter: none !important;
    transform: none !important;
}

.pieza-ajedrez-svg,
.pieza-animada-ajedrez .pieza-ajedrez-svg {
    width: 100% !important;
    height: 100% !important;
    overflow: visible !important;
    filter: none !important;
}

.pieza-ajedrez-figura path,
.pieza-ajedrez-figura circle {
    vector-effect: non-scaling-stroke;
}

@media (max-width: 900px) {
    .contenedor-alumnos .filtros-alumnos {
        display: grid !important;
        grid-template-columns: 0.78fr 1.28fr !important;
        gap: 9px !important;
        padding: 0 8px 4px !important;
        margin: 0 0 7px !important;
        overflow: visible !important;
    }

    .contenedor-alumnos .filtros-alumnos button {
        width: 100% !important;
        min-width: 0 !important;
        min-height: 40px !important;
        padding: 0 10px !important;
        font-size: 12.4px !important;
        white-space: nowrap !important;
    }

    .contenedor-alumnos .filtros-alumnos button:nth-child(2) {
        font-size: 11.9px !important;
        letter-spacing: 0 !important;
    }

    .contenedor-alumnos .filtros-alumnos button:nth-child(3),
    .contenedor-alumnos .filtros-alumnos button:nth-child(4) {
        grid-column: auto !important;
    }

    .contenedor-alumnos .filtros-alumnos button:nth-child(4) {
        width: 100% !important;
    }

    .buscador-alumnos,
    .chat-buscador {
        flex-direction: row !important;
    }

    .buscador-con-limpiar input {
        width: 100% !important;
        padding-right: 50px !important;
    }

    .boton-favorito {
        width: 43px !important;
        height: 43px !important;
    }

    .boton-favorito::before {
        width: 78% !important;
        height: 78% !important;
    }

    .boton-corazon-perfil {
        width: 43px !important;
        height: 43px !important;
    }

    .boton-corazon-perfil .icono-corazon-perfil::before {
        font-size: 25px !important;
    }

    .boton-corazon-perfil.corazon-perfil-activo .icono-corazon-perfil::before {
        font-size: 23px !important;
    }

    .tablero-ajedrez.tablero-ajedrez-listo,
    .tablero-ajedrez {
        width: min(calc(100vw - 18px), 438px) !important;
        max-width: calc(100vw - 18px) !important;
        margin: 16px auto 22px !important;
        border-width: 3px !important;
        border-radius: 2px !important;
    }

    .pieza-ajedrez-svg,
    .pieza-animada-ajedrez .pieza-ajedrez-svg {
        width: 112% !important;
        height: 112% !important;
    }
}

/* =========================================================
   Ajustes móviles v11 - textos móviles, buscadores, perfil y ajedrez
   ========================================================= */

/* El botón de limpiar búsqueda debe ser pequeño y discreto, sin heredar
   reglas móviles que estiran todos los botones al 100% del ancho. */
.buscador-con-limpiar > .boton-limpiar-busqueda {
    position: absolute !important;
    top: 50% !important;
    right: 12px !important;
    width: 28px !important;
    min-width: 28px !important;
    max-width: 28px !important;
    height: 28px !important;
    min-height: 28px !important;
    max-height: 28px !important;
    flex: 0 0 28px !important;
    align-self: center !important;
    padding: 0 !important;
    margin: 0 !important;
    border-radius: 999px !important;
    box-sizing: border-box !important;
    font-size: 19px !important;
    line-height: 1 !important;
    display: inline-grid !important;
    place-items: center !important;
    transform: translateY(-50%) scale(0.92) !important;
}

.buscador-con-limpiar > .boton-limpiar-busqueda.activo {
    transform: translateY(-50%) scale(1) !important;
}

.herramientas-minijuegos.buscador-con-limpiar > .boton-limpiar-busqueda {
    top: 24px !important;
    right: 12px !important;
}

.buscador-con-limpiar input,
.buscador-con-limpiar .input-buscador-feed {
    padding-right: 46px !important;
}

/* Ajustes finos de botones de favorito/corazón de perfil. */
.boton-favorito::before {
    width: 60% !important;
    height: 60% !important;
}

.boton-corazon-perfil .icono-corazon-perfil::before {
    font-size: 23px !important;
    transform: translateY(-1px) !important;
}

/* Preparación del glifo clásico de ajedrez para móvil. En escritorio se queda
   el SVG dibujado que ya se veía mejor. */
.pieza-ajedrez-glifo-movil {
    display: none;
}

@media (max-width: 900px) {
    /* En móvil no mostramos instrucciones de pegar; la lógica de paste sigue viva
       para escritorio porque no se tocan los handlers. */
    .zona-foto-perfil-mejorada .texto-pegar-foto-perfil,
    .zona-foto-perfil-mejorada .texto-ayuda-foto-perfil {
        display: none !important;
    }

    .zona-foto-perfil-mejorada {
        gap: 12px !important;
    }

    .buscador-con-limpiar > .boton-limpiar-busqueda,
    .contenedor-buscador-feed.buscador-con-limpiar > .boton-limpiar-busqueda,
    .buscador-alumnos.buscador-con-limpiar > .boton-limpiar-busqueda,
    .chat-buscador.buscador-con-limpiar > .boton-limpiar-busqueda,
    .herramientas-minijuegos.buscador-con-limpiar > .boton-limpiar-busqueda {
        width: 28px !important;
        min-width: 28px !important;
        max-width: 28px !important;
        height: 28px !important;
        min-height: 28px !important;
        max-height: 28px !important;
        flex-basis: 28px !important;
        padding: 0 !important;
        margin: 0 !important;
        font-size: 18px !important;
        align-self: center !important;
    }

    .buscador-alumnos,
    .chat-buscador,
    .contenedor-buscador-feed,
    .herramientas-minijuegos {
        position: relative !important;
    }

    .boton-favorito::before {
        width: 58% !important;
        height: 58% !important;
    }

    .boton-corazon-perfil .icono-corazon-perfil::before {
        font-size: 23px !important;
    }

    .boton-corazon-perfil.corazon-perfil-activo .icono-corazon-perfil::before {
        font-size: 23px !important;
    }

    /* Solo en teléfono usamos glifos clásicos grandes, gruesos y legibles. */
    .tablero-ajedrez .pieza-ajedrez-figura {
        display: none !important;
    }

    .tablero-ajedrez .pieza-ajedrez-glifo-movil {
        display: block !important;
        font-family: "Times New Roman", "DejaVu Serif", "Segoe UI Symbol", "Noto Sans Symbols", serif !important;
        font-size: 94px !important;
        font-weight: 900 !important;
        line-height: 1 !important;
        dominant-baseline: middle !important;
        text-anchor: middle !important;
        paint-order: stroke fill !important;
        transform-box: fill-box !important;
        transform-origin: center !important;
    }

    .tablero-ajedrez .pieza-ajedrez-glifo-movil-blanco {
        fill: #fbfbfb !important;
        stroke: rgba(14, 14, 14, 0.92) !important;
        stroke-width: 1.45px !important;
    }

    .tablero-ajedrez .pieza-ajedrez-glifo-movil-negro {
        fill: #070707 !important;
        stroke: rgba(246, 246, 246, 0.58) !important;
        stroke-width: 0.85px !important;
    }

    .tablero-ajedrez .pieza-ajedrez-svg,
    .tablero-ajedrez .pieza-animada-ajedrez .pieza-ajedrez-svg {
        width: 124% !important;
        height: 124% !important;
        overflow: visible !important;
    }

    .tablero-ajedrez .pieza-ajedrez {
        overflow: visible !important;
    }
}

/* =========================================================
   Ajustes móviles v12 - perfil sin recarga y ajedrez más legible
   ========================================================= */
.boton-favorito:disabled,
.boton-corazon-perfil:disabled {
    cursor: wait !important;
}

.boton-corazon-perfil:not(.corazon-perfil-activo) .icono-corazon-perfil::before {
    font-size: 19px !important;
    font-weight: 500 !important;
    transform: translateY(3px) !important;
}

.boton-corazon-perfil.corazon-perfil-activo .icono-corazon-perfil::before {
    transform: translateY(-1px) !important;
}

@media (max-width: 900px) {
    .boton-corazon-perfil:not(.corazon-perfil-activo) .icono-corazon-perfil::before {
        font-size: 19px !important;
        transform: translateY(3px) !important;
    }

    .tablero-ajedrez .pieza-ajedrez,
    .tablero-ajedrez .cuadricula-pieza-propia .pieza-ajedrez {
        width: 150% !important;
        height: 150% !important;
        max-width: none !important;
        max-height: none !important;
        transform: translateZ(0) !important;
    }

    .tablero-ajedrez .pieza-ajedrez-svg,
    .tablero-ajedrez .pieza-animada-ajedrez .pieza-ajedrez-svg {
        width: 150% !important;
        height: 150% !important;
        max-width: none !important;
        max-height: none !important;
        overflow: visible !important;
    }

    .tablero-ajedrez .pieza-ajedrez-glifo-movil {
        font-family: "Arial Unicode MS", "Times New Roman", "DejaVu Serif", "Segoe UI Symbol", "Noto Sans Symbols", serif !important;
        font-size: 112px !important;
        font-weight: 900 !important;
        transform: translateY(1px) scaleX(1.04) !important;
        stroke-linejoin: round !important;
    }

    .tablero-ajedrez .pieza-ajedrez-glifo-movil-blanco {
        fill: #ffffff !important;
        stroke: rgba(0, 0, 0, 0.98) !important;
        stroke-width: 1.85px !important;
        filter: drop-shadow(0 2px 1px rgba(0, 0, 0, 0.42)) !important;
    }

    .tablero-ajedrez .pieza-ajedrez-glifo-movil-negro {
        fill: #050505 !important;
        stroke: rgba(255, 255, 255, 0.62) !important;
        stroke-width: 1.25px !important;
        filter: drop-shadow(0 1px 1px rgba(255, 255, 255, 0.18)) !important;
    }

    .tablero-ajedrez .pieza-ajedrez-glifo-movil-negro:last-child {
        paint-order: stroke fill !important;
    }
}

/* =========================================================
   Piezas de ajedrez v13 - estilo Staunton pulido
   ========================================================= */
.pieza-ajedrez-svg[data-color="blanco"],
.pieza-animada-ajedrez .pieza-ajedrez-svg[data-color="blanco"] {
    filter:
        drop-shadow(0 2px 0 rgba(255, 255, 255, 0.48))
        drop-shadow(0 5px 4px rgba(0, 0, 0, 0.48)) !important;
}

.pieza-ajedrez-svg[data-color="negro"],
.pieza-animada-ajedrez .pieza-ajedrez-svg[data-color="negro"] {
    filter:
        drop-shadow(0 1px 0 rgba(217, 231, 242, 0.34))
        drop-shadow(0 5px 4px rgba(0, 0, 0, 0.62)) !important;
}

.pieza-ajedrez-figura {
    paint-order: stroke fill;
}

.pieza-ajedrez-figura .pieza-ajedrez-collar {
    stroke-width: 2.35px;
}

.pieza-ajedrez-figura .pieza-ajedrez-base {
    stroke-width: 2.7px;
}

.pieza-ajedrez-brillo {
    opacity: 0.72;
    mix-blend-mode: screen;
}

.pieza-ajedrez-figura-negro .pieza-ajedrez-brillo {
    opacity: 0.58;
}

.cuadricula-pieza-propia .pieza-ajedrez-svg[data-color="blanco"] {
    filter:
        drop-shadow(0 2px 0 rgba(255, 255, 255, 0.52))
        drop-shadow(0 5px 4px rgba(0, 0, 0, 0.46))
        drop-shadow(0 0 7px rgba(255, 224, 117, 0.42)) !important;
}

.cuadricula-pieza-propia .pieza-ajedrez-svg[data-color="negro"] {
    filter:
        drop-shadow(0 1px 0 rgba(217, 231, 242, 0.38))
        drop-shadow(0 5px 4px rgba(0, 0, 0, 0.62))
        drop-shadow(0 0 7px rgba(255, 224, 117, 0.38)) !important;
}

@media (max-width: 900px) {
    .tablero-ajedrez .pieza-ajedrez-glifo-movil-blanco {
        fill: #fff2d0 !important;
        stroke: #3c291c !important;
        stroke-width: 1.65px !important;
        filter:
            drop-shadow(0 1px 0 rgba(255, 255, 255, 0.62))
            drop-shadow(0 3px 2px rgba(0, 0, 0, 0.48)) !important;
    }

    .tablero-ajedrez .pieza-ajedrez-glifo-movil-negro {
        fill: #111a24 !important;
        stroke: #d9e7f2 !important;
        stroke-width: 1.12px !important;
        filter:
            drop-shadow(0 1px 0 rgba(255, 255, 255, 0.22))
            drop-shadow(0 3px 2px rgba(0, 0, 0, 0.68)) !important;
    }
}

/* =========================================================
   Piezas y tablero v14 - móvil oscuro con azul neón
   ========================================================= */
.mesa-ajedrez {
    --aj-casilla-clara: #343b46;
    --aj-casilla-oscura: #050608;
}

.tablero-ajedrez.tablero-ajedrez-listo,
.tablero-ajedrez {
    border-color: #313945 !important;
    background: #0d1015 !important;
    box-shadow:
        0 26px 64px rgba(0, 0, 0, 0.68),
        0 0 0 1px rgba(111, 128, 148, 0.22) !important;
}

.pieza-ajedrez-svg[data-color="negro"],
.pieza-animada-ajedrez .pieza-ajedrez-svg[data-color="negro"] {
    filter:
        drop-shadow(0 0 2px rgba(115, 245, 255, 0.98))
        drop-shadow(0 0 7px rgba(0, 105, 255, 0.88))
        drop-shadow(0 5px 4px rgba(0, 0, 0, 0.62)) !important;
}

.cuadricula-pieza-propia .pieza-ajedrez-svg[data-color="negro"] {
    filter:
        drop-shadow(0 0 3px rgba(154, 250, 255, 1))
        drop-shadow(0 0 10px rgba(0, 111, 255, 0.96))
        drop-shadow(0 5px 4px rgba(0, 0, 0, 0.62)) !important;
}

@media (max-width: 900px) {
    .tablero-ajedrez .pieza-ajedrez,
    .tablero-ajedrez .cuadricula-pieza-propia .pieza-ajedrez {
        width: 110% !important;
        height: 110% !important;
        max-width: none !important;
        max-height: none !important;
        transform: translateZ(0) !important;
    }

    .tablero-ajedrez .pieza-ajedrez-svg,
    .tablero-ajedrez .pieza-animada-ajedrez .pieza-ajedrez-svg {
        width: 110% !important;
        height: 110% !important;
        max-width: none !important;
        max-height: none !important;
        overflow: visible !important;
    }

    .tablero-ajedrez .pieza-ajedrez-glifo-movil {
        font-size: 88px !important;
        transform: translateY(1px) scaleX(1.01) !important;
    }

    .tablero-ajedrez .pieza-ajedrez-glifo-movil-blanco {
        fill: #fff2d0 !important;
        stroke: #24180f !important;
        stroke-width: 1.7px !important;
        filter:
            drop-shadow(0 1px 0 rgba(255, 255, 255, 0.66))
            drop-shadow(0 3px 2px rgba(0, 0, 0, 0.58)) !important;
    }

    .tablero-ajedrez .pieza-ajedrez-glifo-movil-negro {
        fill: #0868ff !important;
        stroke: #8af8ff !important;
        stroke-width: 1.25px !important;
        filter:
            drop-shadow(0 0 2px rgba(138, 248, 255, 1))
            drop-shadow(0 0 7px rgba(0, 105, 255, 0.96))
            drop-shadow(0 3px 2px rgba(0, 0, 0, 0.72)) !important;
    }
}

/* Corrección v15: colores directos para impedir que reglas antiguas del
   tablero recuperen los tonos claros. */
.mesa-ajedrez #tablero-ajedrez .cuadricula-clara,
.mesa-ajedrez #tablero-ajedrez button.cuadricula-clara:hover {
    background: #343941 !important;
    background-image: linear-gradient(145deg, #3b414a, #2d3138) !important;
}

.mesa-ajedrez #tablero-ajedrez .cuadricula-oscura,
.mesa-ajedrez #tablero-ajedrez button.cuadricula-oscura:hover {
    background: #020305 !important;
    background-image: linear-gradient(145deg, #090a0d, #000000) !important;
}

@media (max-width: 900px) {
    .tablero-ajedrez .pieza-ajedrez,
    .tablero-ajedrez .cuadricula-pieza-propia .pieza-ajedrez {
        width: 135% !important;
        height: 135% !important;
    }

    .tablero-ajedrez .pieza-ajedrez-svg,
    .tablero-ajedrez .pieza-animada-ajedrez .pieza-ajedrez-svg {
        width: 135% !important;
        height: 135% !important;
    }

    .tablero-ajedrez .pieza-ajedrez-glifo-movil {
        font-size: 104px !important;
        transform: translateY(-14px) scaleX(1.03) !important;
    }
}

/* Animación v18: el clon conserva exactamente el lenguaje visual móvil. */
@media (max-width: 900px) {
    .pieza-animada-ajedrez .pieza-ajedrez-figura {
        display: none !important;
    }

    .pieza-animada-ajedrez .pieza-ajedrez-glifo-movil {
        display: block !important;
        font-family: "Arial Unicode MS", "Times New Roman", "DejaVu Serif", "Segoe UI Symbol", "Noto Sans Symbols", serif !important;
        font-size: 104px !important;
        font-weight: 900 !important;
        line-height: 1 !important;
        dominant-baseline: middle !important;
        text-anchor: middle !important;
        paint-order: stroke fill !important;
        transform: translateY(-14px) scaleX(1.03) !important;
        transform-box: fill-box !important;
        transform-origin: center !important;
    }

    .pieza-animada-ajedrez .pieza-ajedrez-glifo-movil-blanco {
        fill: #fff2d0 !important;
        stroke: #24180f !important;
        stroke-width: 1.7px !important;
        filter:
            drop-shadow(0 1px 0 rgba(255, 255, 255, 0.66))
            drop-shadow(0 3px 2px rgba(0, 0, 0, 0.58)) !important;
    }

    .pieza-animada-ajedrez .pieza-ajedrez-glifo-movil-negro {
        fill: #0868ff !important;
        stroke: #8af8ff !important;
        stroke-width: 1.25px !important;
        filter:
            drop-shadow(0 0 2px rgba(138, 248, 255, 1))
            drop-shadow(0 0 7px rgba(0, 105, 255, 0.96))
            drop-shadow(0 3px 2px rgba(0, 0, 0, 0.72)) !important;
    }

    .pieza-animada-ajedrez .pieza-ajedrez-svg {
        width: 135% !important;
        height: 135% !important;
        max-width: none !important;
        max-height: none !important;
        overflow: visible !important;
    }
}

/* Movimientos válidos v16: iluminación azul en la casilla completa. */
/* En móvil se traslada la pieza ya renderizada. Así conserva exactamente
   el mismo tamaño y aspecto durante todo el recorrido. */
@media (max-width: 900px) {
    #tablero-ajedrez .pieza-traslado-movil-ajedrez {
        position: absolute !important;
        z-index: 30;
        display: inline-grid;
        place-items: center;
        margin: 0 !important;
        opacity: 1 !important;
        pointer-events: none;
        transform: translateZ(0) !important;
        transition: none !important;
        will-change: translate;
    }
}

.mesa-ajedrez #tablero-ajedrez .cuadricula-legal::after,
.mesa-ajedrez #tablero-ajedrez .cuadricula-legal-captura::after {
    content: "";
    position: absolute;
    inset: 0 !important;
    box-sizing: border-box;
    border: 3px solid rgba(88, 205, 229, 0.68) !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow:
        inset 0 0 4px rgba(86, 213, 238, 0.30),
        0 0 6px rgba(26, 157, 214, 0.24) !important;
    pointer-events: none;
    z-index: 6;
}

.mesa-ajedrez #tablero-ajedrez .cuadricula-legal-captura::after {
    border-width: 4px !important;
    background: transparent !important;
    box-shadow:
        inset 0 0 5px rgba(99, 222, 244, 0.38),
        0 0 7px rgba(22, 143, 215, 0.30) !important;
}

.mesa-ajedrez #tablero-ajedrez .cuadricula-legal-unida-arriba::after {
    border-top-width: 0 !important;
}

.mesa-ajedrez #tablero-ajedrez .cuadricula-legal-unida-izquierda::after {
    border-left-width: 0 !important;
}

/* La fila de cartas no cambia de alto al pedir en pantallas estrechas. */
@media (max-width: 900px) {
    html:has(.mesa-blackjack),
    body:has(.mesa-blackjack) {
        overflow-x: hidden;
        scroll-behavior: auto !important;
    }

    .mesa-blackjack,
    .mesa-blackjack *,
    .jugadores-blackjack,
    .jugador-blackjack {
        overflow-anchor: none !important;
    }

    .cartas-blackjack {
        align-items: flex-start;
        box-sizing: border-box;
        contain: layout paint;
        flex-wrap: nowrap !important;
        height: 126px;
        min-height: 126px;
        max-height: 126px;
        overflow-x: auto;
        overflow-y: hidden;
        overscroll-behavior-inline: contain;
    }

    .cartas-blackjack .carta {
        flex: 0 0 58px;
    }

    .resumen-blackjack {
        box-sizing: border-box;
        display: grid;
        grid-template-rows: minmax(44px, auto) 18px;
        align-content: center;
        height: 108px;
        min-height: 108px;
        max-height: 108px;
    }

    #estado-blackjack {
        display: grid;
        place-items: center;
        min-height: 44px;
        line-height: 1.3;
    }

    #detalle-blackjack {
        min-height: 18px;
        line-height: 18px;
    }
}

/* Navegacion contextual: cuando existe regreso solo permanece la flecha. */
body.mostrar-volver-superior .barra-superior {
    justify-content: flex-start !important;
    min-height: 56px;
    background: transparent !important;
    border-bottom-color: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    pointer-events: none;
}

body.mostrar-volver-superior .barra-centro,
body.mostrar-volver-superior .barra-centro-iconos,
body.mostrar-volver-superior .barra-configuracion {
    display: none !important;
}

body.mostrar-volver-superior .boton-volver-superior:not([hidden]) {
    pointer-events: auto;
}

/* Chat movil v13: lista y conversacion funcionan como vistas separadas. */
html:has(.contenedor-chat),
body:has(.contenedor-chat) {
    min-height: 100%;
    background-color: #020308 !important;
}

.boton-volver-lista-chat {
    display: none;
}

.boton-enviar-chat svg {
    display: block;
    width: 22px;
    height: 22px;
    fill: currentColor;
}

.boton-enviar-chat-oculto {
    display: none !important;
}

@media (max-width: 900px) {
    html:has(.contenedor-chat),
    body:has(.contenedor-chat) {
        min-height: 100dvh;
        background:
            radial-gradient(circle at 20% 8%, rgba(0, 81, 255, 0.18), transparent 28%),
            linear-gradient(180deg, #020308, #010205) !important;
        overscroll-behavior-y: none;
    }

    .contenedor-chat {
        min-height: calc(100dvh - 58px);
        padding-bottom: max(12px, env(safe-area-inset-bottom)) !important;
        background: transparent !important;
    }

    .lista-usuarios-chat {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        grid-template-rows: none !important;
        grid-auto-flow: row !important;
        grid-auto-columns: auto !important;
        gap: 10px !important;
        width: 100% !important;
        max-height: none !important;
        padding: 4px 0 14px !important;
        overflow: visible !important;
    }

    .tarjeta-usuario-chat {
        display: grid !important;
        grid-template-columns: 62px minmax(0, 1fr) auto !important;
        align-items: center !important;
        justify-items: start !important;
        gap: 13px !important;
        width: 100% !important;
        min-height: 82px !important;
        padding: 10px 14px !important;
        text-align: left !important;
        border-radius: 18px !important;
    }

    .tarjeta-usuario-chat img,
    .tarjeta-usuario-chat .avatar-chat-fallback {
        grid-column: 1;
        width: 60px !important;
        height: 60px !important;
        margin: 0 !important;
    }

    .tarjeta-usuario-chat strong {
        grid-column: 2;
        max-width: 100%;
        font-size: 16px !important;
        text-align: left !important;
        overflow-wrap: anywhere;
    }

    .tarjeta-usuario-chat .badge-chat-no-leidos {
        position: static !important;
        grid-column: 3;
        grid-row: 1;
        align-self: center;
        margin: 0 !important;
    }

    #chat-conversacion {
        display: none;
    }

    body.chat-movil-conversacion-activa .barra-superior,
    body.chat-movil-conversacion-activa .cabecera-chat,
    body.chat-movil-conversacion-activa .panel-chat-usuarios {
        display: none !important;
    }

    body.chat-movil-conversacion-activa #chat-conversacion {
        display: block !important;
        min-height: 100dvh;
    }

    body.chat-movil-conversacion-activa .contenedor-chat {
        min-height: 100dvh;
        padding: 0 !important;
    }

    .chat-panel-conversacion {
        display: grid !important;
        grid-template-rows: auto minmax(0, 1fr) auto;
        width: 100% !important;
        min-height: 100dvh;
        padding: max(8px, env(safe-area-inset-top)) 0
            max(8px, env(safe-area-inset-bottom)) !important;
        border: 0 !important;
        border-radius: 0 !important;
    }

    .chat-cabecera-conversacion {
        display: grid !important;
        grid-template-columns: 38px 44px minmax(0, 1fr) auto;
        min-height: 62px;
        padding: 8px 10px !important;
    }

    .boton-volver-lista-chat {
        display: grid !important;
        place-items: center;
        width: 36px !important;
        min-width: 36px !important;
        height: 36px !important;
        padding: 0 !important;
        border: 1px solid rgba(119, 169, 230, 0.28) !important;
        border-radius: 12px !important;
        background: rgba(8, 14, 27, 0.92) !important;
        color: #eef7ff !important;
        font-size: 22px !important;
    }

    .chat-cabecera-conversacion img,
    .chat-cabecera-conversacion .avatar-chat-cabecera {
        grid-column: 2;
    }

    .chat-cabecera-conversacion > div {
        grid-column: 3;
        min-width: 0;
    }

    .chat-cabecera-conversacion .boton-perfil-chat {
        grid-column: 4;
    }

    .envoltura-mensajes-chat {
        min-height: 0;
    }

    .mensajes-chat {
        height: 100% !important;
        min-height: 0 !important;
        max-height: none !important;
        padding: 14px 12px !important;
    }

    .formulario-chat {
        padding: 8px 10px max(8px, env(safe-area-inset-bottom)) !important;
    }

    .barra-escritura-chat {
        grid-template-columns: 42px minmax(0, 1fr) 42px !important;
        align-items: end !important;
        gap: 8px !important;
        width: 100% !important;
        padding: 8px !important;
        border-radius: 24px !important;
    }

    .barra-escritura-chat:has(.boton-enviar-chat-oculto) {
        grid-template-columns: 42px minmax(0, 1fr) !important;
    }

    .formulario-chat textarea {
        width: 100% !important;
        min-height: 42px !important;
        margin: 0 !important;
        resize: none;
    }

    .boton-enviar-chat {
        display: grid;
        place-items: center;
        grid-column: auto !important;
        width: 42px !important;
        min-width: 42px !important;
        max-width: 42px !important;
        height: 42px !important;
        min-height: 42px !important;
        padding: 0 !important;
        border-radius: 50% !important;
        background: linear-gradient(145deg, #1684f3, #0759bc) !important;
        color: #fff !important;
        box-shadow: 0 0 16px rgba(30, 134, 255, 0.34) !important;
    }

    .boton-enviar-chat-oculto {
        display: none !important;
    }
}

/* =========================================================
   Ajustes v13 - video en feed, chat móvil y cartas centradas
   ========================================================= */

.video-feed-contenedor {
    position: relative;
    display: inline-block;
    width: fit-content;
    max-width: 100%;
    border-radius: 18px;
    overflow: hidden;
    background: #000;
}

.video-feed-contenedor .video-publicacion {
    display: block;
    width: 100%;
    height: auto;
    margin: 0;
}

.boton-toggle-video-feed {
    position: absolute;
    left: 50%;
    top: 50%;
    z-index: 5;
    display: grid;
    place-items: center;
    width: 54px;
    min-width: 54px;
    height: 54px;
    padding: 0;
    border: 1px solid rgba(230, 244, 255, 0.46);
    border-radius: 50%;
    background: rgba(0, 0, 0, 0.58);
    color: #f8fbff;
    font-size: 22px;
    line-height: 1;
    transform: translate(-50%, -50%) scale(0.96);
    opacity: 0;
    pointer-events: none;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.45);
    transition: opacity 0.16s ease, transform 0.16s ease;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

.boton-toggle-video-feed span {
    display: block;
    transform: translateX(1px);
}

.video-feed-contenedor.video-controles-visibles .boton-toggle-video-feed,
.video-feed-contenedor.video-pausado .boton-toggle-video-feed,
.video-feed-contenedor:hover .boton-toggle-video-feed,
.video-feed-contenedor:focus-within .boton-toggle-video-feed {
    opacity: 1;
    pointer-events: auto;
    transform: translate(-50%, -50%) scale(1);
}

.barra-progreso-video-feed {
    position: absolute;
    left: 10px;
    right: 10px;
    bottom: 8px;
    z-index: 6;
    display: flex;
    align-items: center;
    min-height: 22px;
    padding: 0 2px;
    border-radius: 999px;
    opacity: 0;
    transform: translateY(5px);
    pointer-events: none;
    transition: opacity 0.16s ease, transform 0.16s ease;
}

.video-feed-contenedor.video-controles-visibles .barra-progreso-video-feed,
.video-feed-contenedor.video-pausado .barra-progreso-video-feed,
.video-feed-contenedor:hover .barra-progreso-video-feed,
.video-feed-contenedor:focus-within .barra-progreso-video-feed {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
}

.progreso-video-feed {
    width: 100%;
    height: 4px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    accent-color: #34c9ff;
    background: rgba(255, 255, 255, 0.28);
    cursor: pointer;
}

@media (max-width: 900px) {
    .galeria-videos-publicacion .video-feed-contenedor {
        flex: 0 0 min(84vw, 340px) !important;
        width: min(84vw, 340px) !important;
        max-width: min(84vw, 340px) !important;
        scroll-snap-align: start;
        border-radius: 17px;
        touch-action: manipulation;
    }

    .galeria-videos-publicacion .video-feed-contenedor .video-publicacion {
        flex: none !important;
        width: 100% !important;
        max-width: 100% !important;
        min-height: 190px;
        max-height: 58vh !important;
        object-fit: contain !important;
        cursor: pointer !important;
    }

    .video-publicacion.video-feed-movil-auto {
        cursor: pointer !important;
        touch-action: manipulation;
    }

    .boton-toggle-video-feed {
        width: 50px;
        min-width: 50px;
        height: 50px;
        font-size: 20px;
    }

    .barra-progreso-video-feed {
        left: 9px;
        right: 9px;
        bottom: 7px;
    }
}

/* Chat: evitar parpadeos blancos y pulir la vista de mensajes en teléfono. */
html:has(.contenedor-chat),
body:has(.contenedor-chat),
body.chat-movil-conversacion-activa {
    background: #020308 !important;
    background-color: #020308 !important;
}

@media (max-width: 900px) {
    body.chat-movil-conversacion-activa {
        min-height: 100dvh;
        overflow: hidden;
    }

    body.chat-movil-conversacion-activa #chat-conversacion {
        min-height: 100dvh;
        background:
            radial-gradient(circle at 18% 4%, rgba(0, 144, 255, 0.13), transparent 28%),
            linear-gradient(180deg, #020308, #010205 60%, #020308) !important;
    }

    .chat-panel-conversacion {
        min-height: 100dvh !important;
        max-height: 100dvh !important;
        overflow: hidden !important;
        background: transparent !important;
        box-shadow: none !important;
    }

    .chat-cabecera-conversacion {
        position: sticky !important;
        top: 0 !important;
        z-index: 20 !important;
        grid-template-columns: 42px minmax(0, 1fr) !important;
        gap: 8px !important;
        min-height: 58px !important;
        margin: 0 !important;
        padding: max(8px, env(safe-area-inset-top)) 10px 8px !important;
        border-bottom: 1px solid rgba(114, 170, 230, 0.20) !important;
        background: rgba(4, 8, 15, 0.58) !important;
        box-shadow: 0 12px 30px rgba(0, 0, 0, 0.20) !important;
        backdrop-filter: blur(16px) saturate(1.12) !important;
        -webkit-backdrop-filter: blur(16px) saturate(1.12) !important;
    }

    .boton-volver-lista-chat {
        width: 38px !important;
        min-width: 38px !important;
        height: 38px !important;
        border-radius: 13px !important;
        border: 1px solid rgba(233, 167, 255, 0.58) !important;
        background: rgba(13, 8, 20, 0.62) !important;
        color: #f8d9ff !important;
        font-size: 0 !important;
        box-shadow: 0 0 16px rgba(212, 82, 255, 0.18) !important;
    }

    .boton-volver-lista-chat span {
        font-size: 22px !important;
        line-height: 1 !important;
        transform: translateX(-1px);
    }

    .chat-identidad-cabecera {
        display: grid !important;
        grid-template-columns: 42px minmax(0, 1fr) !important;
        align-items: center !important;
        gap: 10px !important;
        width: 100% !important;
        min-width: 0 !important;
        min-height: 42px !important;
        padding: 5px 8px !important;
        border: 1px solid rgba(126, 183, 236, 0.18) !important;
        border-radius: 18px !important;
        background: rgba(8, 13, 23, 0.34) !important;
        color: inherit !important;
        text-align: left !important;
    }

    .chat-identidad-cabecera img,
    .chat-identidad-cabecera .avatar-chat-cabecera {
        grid-column: 1 !important;
        width: 38px !important;
        height: 38px !important;
        border-radius: 50% !important;
        object-fit: cover !important;
        margin: 0 !important;
    }

    .chat-identidad-texto {
        display: grid;
        gap: 1px;
        min-width: 0;
    }

    .chat-identidad-texto strong {
        color: #eef7ff;
        font-size: 15px;
        line-height: 1.05;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .chat-identidad-texto small {
        color: rgba(215, 228, 242, 0.56);
        font-size: 11px;
        line-height: 1.05;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .chat-cabecera-conversacion .boton-perfil-chat {
        display: none !important;
    }

    .envoltura-mensajes-chat {
        min-height: 0 !important;
        height: 100% !important;
        overflow: hidden !important;
    }

    .mensajes-chat {
        height: 100% !important;
        min-height: 0 !important;
        max-height: none !important;
        gap: 7px !important;
        padding: 10px 10px 12px !important;
        background:
            radial-gradient(circle at 85% 15%, rgba(255, 102, 204, 0.08), transparent 22%),
            rgba(2, 5, 10, 0.36) !important;
    }

    .mensaje-chat,
    .mensaje-chat-solo-adjunto {
        max-width: 82% !important;
        padding: 7px 10px !important;
        border-radius: 14px !important;
        font-size: 13.5px !important;
        line-height: 1.22 !important;
        box-shadow: 0 7px 18px rgba(0, 0, 0, 0.16) !important;
    }

    .mensaje-chat p {
        line-height: 1.22 !important;
    }

    .mensaje-chat small {
        margin-top: 3px !important;
        font-size: 9.5px !important;
        line-height: 1 !important;
        color: rgba(230, 238, 247, 0.42) !important;
    }

    .mensaje-chat-propio {
        border-bottom-right-radius: 5px !important;
    }

    .mensaje-chat-ajeno {
        border-bottom-left-radius: 5px !important;
    }

    .formulario-chat {
        padding: 7px 9px max(7px, env(safe-area-inset-bottom)) !important;
        background: rgba(3, 7, 13, 0.88) !important;
        border-top: 1px solid rgba(141, 207, 255, 0.12) !important;
    }

    .barra-escritura-chat {
        grid-template-columns: 36px minmax(0, 1fr) 36px !important;
        gap: 7px !important;
        padding: 6px !important;
        border-radius: 19px !important;
        background: rgba(7, 12, 22, 0.78) !important;
    }

    .barra-escritura-chat:has(.boton-enviar-chat-oculto) {
        grid-template-columns: 36px minmax(0, 1fr) !important;
    }

    .formulario-chat .boton-chat-redondo,
    .boton-enviar-chat {
        width: 36px !important;
        min-width: 36px !important;
        max-width: 36px !important;
        height: 36px !important;
        min-height: 36px !important;
        max-height: 36px !important;
    }

    .formulario-chat textarea {
        min-height: 36px !important;
        height: 36px !important;
        max-height: 82px !important;
        padding: 8px 10px !important;
        border-radius: 14px !important;
        font-size: 16px !important;
        line-height: 1.2 !important;
        resize: none !important;
    }
}

/* Base para que el nombre clickeable del chat no rompa escritorio. */
.chat-identidad-cabecera {
    display: flex;
    align-items: center;
    gap: 14px;
    min-width: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    text-align: left;
    cursor: pointer;
}

.chat-identidad-cabecera img {
    flex: 0 0 auto;
}

.chat-identidad-texto {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.chat-identidad-texto strong {
    margin: 0;
    color: #f7fbff;
    font-size: 20px;
    line-height: 1.1;
}

.chat-identidad-texto small {
    color: #9fb1c2;
    font-size: 13px;
    line-height: 1.1;
}

@media (max-width: 900px) {
    .chat-identidad-texto strong {
        font-size: 15px !important;
        line-height: 1.05 !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
    }

    .chat-identidad-texto small {
        font-size: 11px !important;
        line-height: 1.05 !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
    }
}


/* =========================================================
   Ajustes v14 - chat móvil: flecha, transparencia y mensajes
   ========================================================= */

.mensaje-chat p {
    white-space: pre-wrap;
}

.mensaje-chat-propio {
    background:
        radial-gradient(circle at 18% 8%, rgba(255, 119, 170, 0.18), transparent 30%),
        linear-gradient(145deg, rgba(94, 22, 45, 0.98), rgba(53, 12, 31, 0.99)) !important;
    border-color: rgba(255, 146, 188, 0.24) !important;
    color: #fff3f7 !important;
    box-shadow:
        0 12px 28px rgba(0, 0, 0, 0.28),
        inset 0 1px 0 rgba(255, 220, 234, 0.12),
        0 0 18px rgba(130, 26, 65, 0.13) !important;
}

.mensaje-chat-propio small {
    color: rgba(255, 228, 238, 0.54) !important;
}

.mensaje-chat-solo-adjunto {
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

.mensaje-chat-solo-adjunto small {
    display: block;
    width: fit-content;
    margin: 5px 8px 0 auto !important;
    padding: 2px 7px;
    border-radius: 999px;
    background: rgba(0, 0, 0, 0.22);
    color: rgba(230, 238, 247, 0.42) !important;
}

.mensaje-chat-solo-adjunto.mensaje-chat-ajeno small {
    margin-left: 8px !important;
    margin-right: auto !important;
}

.adjunto-chat-solo img,
.adjunto-chat-solo video {
    border-radius: 17px !important;
    border: 1px solid rgba(220, 230, 240, 0.16) !important;
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.24) !important;
}

@media (max-width: 900px) {
    .chat-cabecera-conversacion {
        background: rgba(4, 8, 15, 0.24) !important;
        border-bottom-color: rgba(255, 255, 255, 0.07) !important;
        box-shadow: 0 10px 26px rgba(0, 0, 0, 0.12) !important;
        backdrop-filter: blur(18px) saturate(1.08) !important;
        -webkit-backdrop-filter: blur(18px) saturate(1.08) !important;
    }

    .chat-identidad-cabecera {
        background: rgba(8, 13, 23, 0.14) !important;
        border-color: rgba(230, 238, 247, 0.10) !important;
        box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.035) !important;
    }

    .boton-volver-lista-chat {
        width: 42px !important;
        min-width: 42px !important;
        height: 42px !important;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
        display: grid !important;
        place-items: center !important;
    }

    .boton-volver-lista-chat span {
        display: block !important;
        width: 20px !important;
        height: 20px !important;
        border-left: 7px solid rgba(238, 242, 247, 0.96) !important;
        border-bottom: 7px solid rgba(238, 242, 247, 0.96) !important;
        transform: rotate(45deg) translate(3px, -1px) !important;
        filter: drop-shadow(0 0 8px rgba(255, 255, 255, 0.16));
    }

    .mensajes-chat {
        gap: 6px !important;
        padding: 10px 9px 12px !important;
    }

    .mensaje-chat {
        max-width: 78% !important;
        padding: 6px 9px !important;
        border-radius: 13px !important;
        font-size: 13px !important;
        line-height: 1.18 !important;
    }

    .mensaje-chat p {
        margin: 0 !important;
        font-size: 13px !important;
        line-height: 1.2 !important;
        white-space: pre-wrap !important;
    }

    .mensaje-chat small {
        margin-top: 2px !important;
        font-size: 9px !important;
        line-height: 1 !important;
    }

    .mensaje-chat-propio {
        background:
            radial-gradient(circle at 18% 8%, rgba(255, 129, 178, 0.16), transparent 32%),
            linear-gradient(145deg, rgba(92, 19, 43, 0.94), rgba(47, 9, 27, 0.96)) !important;
        border-color: rgba(255, 154, 195, 0.18) !important;
    }

    .mensaje-chat-solo-adjunto {
        max-width: 82% !important;
        padding: 0 !important;
        border-radius: 0 !important;
        background: transparent !important;
        border: 0 !important;
        box-shadow: none !important;
    }

    .adjunto-chat-solo img,
    .adjunto-chat-solo video {
        max-width: min(64vw, 250px) !important;
        max-height: 230px !important;
        border-radius: 16px !important;
    }

    .formulario-chat {
        background: rgba(3, 7, 13, 0.24) !important;
        border-top-color: rgba(255, 255, 255, 0.07) !important;
        backdrop-filter: blur(18px) saturate(1.08) !important;
        -webkit-backdrop-filter: blur(18px) saturate(1.08) !important;
    }

    .barra-escritura-chat {
        background: rgba(7, 12, 22, 0.20) !important;
        border-color: rgba(230, 238, 247, 0.10) !important;
        box-shadow:
            inset 0 1px 0 rgba(255, 255, 255, 0.035),
            0 10px 24px rgba(0, 0, 0, 0.12) !important;
    }

    .formulario-chat textarea {
        background: rgba(0, 0, 0, 0.12) !important;
        border-color: rgba(230, 238, 247, 0.12) !important;
        color: #f6fbff !important;
    }

    .formulario-chat textarea:focus {
        background: rgba(0, 0, 0, 0.22) !important;
    }
}


/* =========================================================
   Ajustes v15 - chat móvil y controles de video
   ========================================================= */

.boton-toggle-video-feed span,
.boton-toggle-video-feed svg {
    display: block;
    width: 27px;
    height: 27px;
}

.boton-toggle-video-feed svg {
    fill: currentColor;
    filter: drop-shadow(0 0 7px rgba(255, 255, 255, 0.18));
}

.boton-toggle-video-feed {
    border-color: rgba(205, 216, 228, 0.42) !important;
    background: rgba(12, 14, 18, 0.58) !important;
    color: rgba(248, 251, 255, 0.94) !important;
}

.barra-progreso-video-feed {
    padding: 7px 8px !important;
    background: rgba(8, 9, 12, 0.46) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.06), 0 8px 22px rgba(0,0,0,0.22) !important;
    backdrop-filter: blur(9px);
    -webkit-backdrop-filter: blur(9px);
}

.progreso-video-feed {
    height: 6px !important;
    appearance: none;
    -webkit-appearance: none;
    background: rgba(58, 61, 68, 0.94) !important;
    accent-color: #8d929b !important;
}

.progreso-video-feed::-webkit-slider-runnable-track {
    height: 6px;
    border-radius: 999px;
    background: rgba(58, 61, 68, 0.94);
}

.progreso-video-feed::-webkit-slider-thumb {
    appearance: none;
    -webkit-appearance: none;
    width: 15px;
    height: 15px;
    margin-top: -4.5px;
    border: 2px solid rgba(235, 238, 242, 0.88);
    border-radius: 50%;
    background: #767b84;
    box-shadow: 0 3px 10px rgba(0, 0, 0, 0.36);
}

.progreso-video-feed::-moz-range-track {
    height: 6px;
    border-radius: 999px;
    background: rgba(58, 61, 68, 0.94);
}

.progreso-video-feed::-moz-range-thumb {
    width: 13px;
    height: 13px;
    border: 2px solid rgba(235, 238, 242, 0.88);
    border-radius: 50%;
    background: #767b84;
    box-shadow: 0 3px 10px rgba(0, 0, 0, 0.36);
}

.mensaje-chat-propio {
    background:
        radial-gradient(circle at 18% 8%, rgba(185, 190, 255, 0.22), transparent 34%),
        linear-gradient(145deg, rgba(91, 104, 255, 0.94), rgba(119, 72, 232, 0.96)) !important;
    border-color: rgba(173, 181, 255, 0.36) !important;
    color: #f8f9ff !important;
    box-shadow:
        0 12px 28px rgba(0, 0, 0, 0.28),
        inset 0 1px 0 rgba(255, 255, 255, 0.14),
        0 0 20px rgba(102, 112, 255, 0.20) !important;
}

.mensaje-chat-propio small {
    color: rgba(241, 244, 255, 0.58) !important;
}

@media (max-width: 900px) {
    body.chat-movil-conversacion-activa .chat-cabecera-conversacion {
        background:
            linear-gradient(180deg, rgba(4, 7, 12, 0.22), rgba(4, 7, 12, 0.10)) !important;
        border-bottom-color: rgba(255, 255, 255, 0.045) !important;
        box-shadow: none !important;
        backdrop-filter: blur(24px) saturate(1.02) !important;
        -webkit-backdrop-filter: blur(24px) saturate(1.02) !important;
    }

    body.chat-movil-conversacion-activa .chat-identidad-cabecera {
        background: rgba(6, 10, 18, 0.10) !important;
        border-color: rgba(230, 238, 247, 0.075) !important;
        box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.025) !important;
    }

    body.chat-movil-conversacion-activa .formulario-chat {
        background:
            linear-gradient(0deg, rgba(3, 7, 13, 0.24), rgba(3, 7, 13, 0.08)) !important;
        border-top-color: rgba(255, 255, 255, 0.045) !important;
        box-shadow: none !important;
        backdrop-filter: blur(24px) saturate(1.02) !important;
        -webkit-backdrop-filter: blur(24px) saturate(1.02) !important;
    }

    body.chat-movil-conversacion-activa .barra-escritura-chat {
        background: rgba(6, 10, 18, 0.20) !important;
        border-color: rgba(230, 238, 247, 0.095) !important;
        box-shadow:
            inset 0 1px 0 rgba(255, 255, 255, 0.025),
            0 8px 20px rgba(0, 0, 0, 0.10) !important;
    }

    body.chat-movil-conversacion-activa .formulario-chat textarea {
        background: rgba(0, 0, 0, 0.10) !important;
        border-color: rgba(230, 238, 247, 0.10) !important;
    }

    .boton-volver-lista-chat {
        width: 38px !important;
        min-width: 38px !important;
        height: 38px !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
    }

    .boton-volver-lista-chat span {
        display: block !important;
        width: 16px !important;
        height: 16px !important;
        border-left: 3px solid rgba(238, 238, 238, 0.93) !important;
        border-bottom: 3px solid rgba(238, 238, 238, 0.93) !important;
        transform: rotate(45deg) translate(2px, -1px) !important;
        filter: drop-shadow(0 0 3px rgba(0, 0, 0, 0.72)) !important;
    }

    .mensajes-chat {
        gap: 8px !important;
        padding: 11px 10px 12px !important;
    }

    .mensaje-chat {
        max-width: 84% !important;
        padding: 8px 11px !important;
        border-radius: 15px !important;
        font-size: 14.5px !important;
        line-height: 1.25 !important;
    }

    .mensaje-chat p {
        font-size: 14.5px !important;
        line-height: 1.26 !important;
    }

    .mensaje-chat small {
        margin-top: 3px !important;
        font-size: 9.5px !important;
        opacity: 0.78;
    }

    .mensaje-chat-propio {
        background:
            radial-gradient(circle at 18% 8%, rgba(190, 195, 255, 0.24), transparent 34%),
            linear-gradient(145deg, rgba(91, 104, 255, 0.94), rgba(118, 70, 234, 0.97)) !important;
        border-color: rgba(173, 181, 255, 0.34) !important;
        box-shadow:
            0 9px 22px rgba(0, 0, 0, 0.25),
            inset 0 1px 0 rgba(255, 255, 255, 0.13),
            0 0 18px rgba(103, 113, 255, 0.20) !important;
    }

    .mensaje-chat-solo-adjunto {
        padding: 0 !important;
        border: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
    }

    .boton-toggle-video-feed {
        width: 52px !important;
        min-width: 52px !important;
        height: 52px !important;
    }

    .boton-toggle-video-feed span,
    .boton-toggle-video-feed svg {
        width: 25px !important;
        height: 25px !important;
    }

    .barra-progreso-video-feed {
        left: 9px !important;
        right: 9px !important;
        bottom: 7px !important;
        padding: 6px 7px !important;
    }
}

/* =========================================================
   Ajustes v16 - chat móvil transparente, textarea 4 líneas y video con sonido
   ========================================================= */
@media (max-width: 900px) {
    body.chat-movil-conversacion-activa .chat-cabecera-conversacion {
        background: rgba(2, 5, 12, 0.035) !important;
        border-bottom: 1px solid rgba(240, 247, 255, 0.025) !important;
        box-shadow: none !important;
        backdrop-filter: blur(12px) saturate(1.02) !important;
        -webkit-backdrop-filter: blur(12px) saturate(1.02) !important;
    }

    body.chat-movil-conversacion-activa .chat-identidad-cabecera {
        background: rgba(5, 10, 20, 0.055) !important;
        border-color: rgba(235, 242, 255, 0.055) !important;
        box-shadow: none !important;
    }

    body.chat-movil-conversacion-activa .formulario-chat {
        background: rgba(2, 5, 12, 0.035) !important;
        border-top: 1px solid rgba(240, 247, 255, 0.025) !important;
        box-shadow: none !important;
        backdrop-filter: blur(12px) saturate(1.02) !important;
        -webkit-backdrop-filter: blur(12px) saturate(1.02) !important;
    }

    body.chat-movil-conversacion-activa .barra-escritura-chat {
        background: rgba(5, 10, 20, 0.055) !important;
        border-color: rgba(235, 242, 255, 0.06) !important;
        box-shadow: none !important;
    }

    body.chat-movil-conversacion-activa .formulario-chat textarea {
        min-height: 38px !important;
        max-height: 104px !important;
        height: 38px;
        overflow-y: hidden;
        background: rgba(0, 0, 0, 0.09) !important;
        border-color: rgba(235, 242, 255, 0.08) !important;
        line-height: 1.3 !important;
    }

    body.chat-movil-conversacion-activa .formulario-chat textarea:focus {
        background: rgba(0, 0, 0, 0.14) !important;
    }

    body.chat-movil-conversacion-activa .mensaje-chat {
        font-size: 15px !important;
    }

    body.chat-movil-conversacion-activa .mensaje-chat p {
        font-size: 15px !important;
    }

    body.chat-movil-conversacion-activa .mensaje-chat-propio {
        background:
            radial-gradient(circle at 18% 8%, rgba(178, 232, 255, 0.20), transparent 34%),
            linear-gradient(145deg, rgba(38, 144, 255, 0.96), rgba(98, 82, 246, 0.98)) !important;
        border-color: rgba(133, 206, 255, 0.38) !important;
        box-shadow:
            0 10px 24px rgba(0, 0, 0, 0.24),
            inset 0 1px 0 rgba(255, 255, 255, 0.14),
            0 0 20px rgba(55, 151, 255, 0.22) !important;
    }

    body.chat-movil-conversacion-activa .mensaje-chat-propio small {
        color: rgba(240, 249, 255, 0.62) !important;
    }
}

.video-feed-contenedor.video-audio-bloqueado .boton-toggle-video-feed {
    opacity: 1;
    pointer-events: auto;
}

/* =========================================================
   Ajustes v17 - chat móvil, adjuntos múltiples y categoría General
   ========================================================= */
@media (max-width: 900px) {
    body.chat-movil-conversacion-activa #chat-conversacion,
    body.chat-movil-conversacion-activa .chat-panel-conversacion {
        background: transparent !important;
        box-shadow: none !important;
    }

    body.chat-movil-conversacion-activa .chat-cabecera-conversacion {
        background: rgba(2, 5, 12, 0.005) !important;
        border-bottom-color: rgba(240, 247, 255, 0.012) !important;
        box-shadow: none !important;
        backdrop-filter: blur(5px) saturate(1.01) !important;
        -webkit-backdrop-filter: blur(5px) saturate(1.01) !important;
    }

    body.chat-movil-conversacion-activa .chat-identidad-cabecera {
        background: rgba(5, 10, 20, 0.018) !important;
        border-color: rgba(235, 242, 255, 0.035) !important;
        box-shadow: none !important;
    }

    body.chat-movil-conversacion-activa .formulario-chat {
        background: rgba(2, 5, 12, 0.005) !important;
        border-top-color: rgba(240, 247, 255, 0.012) !important;
        box-shadow: none !important;
        backdrop-filter: blur(5px) saturate(1.01) !important;
        -webkit-backdrop-filter: blur(5px) saturate(1.01) !important;
    }

    body.chat-movil-conversacion-activa .barra-escritura-chat {
        background: rgba(5, 10, 20, 0.018) !important;
        border-color: rgba(235, 242, 255, 0.045) !important;
        box-shadow: none !important;
    }

    body.chat-movil-conversacion-activa .formulario-chat textarea#input-mensaje-chat {
        min-height: 36px !important;
        max-height: 92px !important;
        resize: none !important;
        overflow-y: hidden;
        background: rgba(0, 0, 0, 0.045) !important;
        border-color: rgba(235, 242, 255, 0.065) !important;
    }

    body.chat-movil-conversacion-activa .formulario-chat textarea#input-mensaje-chat:focus {
        background: rgba(0, 0, 0, 0.075) !important;
    }

    body.chat-movil-conversacion-activa .mensaje-chat.mensaje-chat-solo-adjunto,
    body.chat-movil-conversacion-activa .mensaje-chat.mensaje-chat-solo-adjunto.mensaje-chat-propio,
    body.chat-movil-conversacion-activa .mensaje-chat.mensaje-chat-solo-adjunto.mensaje-chat-ajeno {
        padding: 0 !important;
        border: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
        border-radius: 0 !important;
    }

    body.chat-movil-conversacion-activa .mensaje-chat.mensaje-chat-solo-adjunto .adjunto-chat,
    body.chat-movil-conversacion-activa .mensaje-chat.mensaje-chat-solo-adjunto .adjunto-chat-solo {
        margin: 0 !important;
        padding: 0 !important;
        border: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
    }

    body.chat-movil-conversacion-activa .mensaje-chat.mensaje-chat-solo-adjunto small {
        width: fit-content !important;
        margin: 4px 8px 0 auto !important;
        padding: 0 !important;
        background: transparent !important;
        border: 0 !important;
        box-shadow: none !important;
    }

    body.chat-movil-conversacion-activa .mensaje-chat.mensaje-chat-solo-adjunto.mensaje-chat-ajeno small {
        margin-left: 8px !important;
        margin-right: auto !important;
    }
}

.archivo-chat-preview-lista {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

.archivo-chat-preview-lista .archivo-chat-preview {
    position: relative;
    width: 64px;
    height: 58px;
    padding: 0 !important;
    overflow: visible;
    border-radius: 14px;
}

.archivo-chat-preview-lista .archivo-chat-preview img,
.archivo-chat-preview-lista .archivo-chat-preview video {
    width: 64px !important;
    height: 58px !important;
    border-radius: 14px !important;
    object-fit: cover;
}

.archivo-chat-preview-lista .archivo-chat-preview button {
    position: absolute;
    top: -7px;
    right: -7px;
    width: 24px !important;
    min-width: 24px !important;
    height: 24px !important;
    min-height: 24px !important;
    border-radius: 50% !important;
    padding: 0 !important;
    background: rgba(255, 70, 116, 0.94) !important;
    color: #fff !important;
    border: 1px solid rgba(255, 220, 230, 0.72) !important;
    box-shadow: 0 5px 14px rgba(0, 0, 0, 0.28) !important;
    font-size: 16px !important;
    line-height: 1 !important;
}

.archivo-chat-preview-cargando {
    display: grid !important;
    place-items: center;
    background: rgba(8, 13, 23, 0.42) !important;
}

.archivo-chat-preview-spinner {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    border: 2px solid rgba(230, 240, 255, 0.22);
    border-top-color: rgba(110, 190, 255, 0.92);
    animation: girar-preview-chat 0.8s linear infinite;
}

@keyframes girar-preview-chat {
    to {
        transform: rotate(360deg);
    }
}

/* Chat movil v18: vista estable, superficies transparentes y video directo. */
.video-chat-pantalla-completa {
    width: 100vw;
    height: 100vh;
    background: #000;
    object-fit: contain;
}

.adjunto-chat-video {
    position: relative;
    overflow: hidden;
    background: #03070d !important;
}

.adjunto-chat-video::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0;
    height: 0;
    border-top: 14px solid transparent;
    border-bottom: 14px solid transparent;
    border-left: 22px solid rgba(255, 255, 255, 0.94);
    transform: translate(-42%, -50%);
    filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.72));
    pointer-events: none;
}

.adjunto-chat-video video[data-portada-video-chat] {
    min-width: 190px;
    min-height: 120px;
    background:
        radial-gradient(circle at 50% 45%, rgba(56, 120, 190, 0.18), transparent 44%),
        #03070d;
}

@media (max-width: 900px) {
    html:has(body.chat-movil-conversacion-activa),
    body.chat-movil-conversacion-activa {
        width: 100%;
        height: 100dvh;
        overflow: hidden !important;
        overscroll-behavior: none;
        scroll-behavior: auto !important;
    }

    body.chat-movil-conversacion-activa {
        position: fixed;
        inset: 0;
    }

    body.chat-movil-conversacion-activa .contenedor-chat,
    body.chat-movil-conversacion-activa #chat-conversacion,
    body.chat-movil-conversacion-activa .chat-panel-conversacion {
        transition: none !important;
        animation: none !important;
        transform: none !important;
        overflow-anchor: none;
    }

    body.chat-movil-conversacion-activa .chat-cabecera-conversacion,
    body.chat-movil-conversacion-activa .chat-identidad-cabecera,
    body.chat-movil-conversacion-activa .formulario-chat,
    body.chat-movil-conversacion-activa .barra-escritura-chat,
    body.chat-movil-conversacion-activa .boton-volver-lista-chat {
        background: transparent !important;
        background-image: none !important;
        border-color: transparent !important;
        box-shadow: none !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
    }

    body.chat-movil-conversacion-activa .chat-cabecera-conversacion,
    body.chat-movil-conversacion-activa .formulario-chat,
    body.chat-movil-conversacion-activa .chat-identidad-cabecera {
        border: 0 !important;
    }

    .adjunto-chat-video video[data-portada-video-chat] {
        min-width: min(64vw, 250px);
        min-height: 150px;
    }
}

/* Chat movil v19: mensajes continuos detrás de capas de vidrio. */
@media (max-width: 900px) {
    body.chat-movil-conversacion-activa .chat-panel-conversacion {
        position: relative !important;
        display: block !important;
        height: 100dvh !important;
        min-height: 100dvh !important;
        max-height: 100dvh !important;
        overflow: hidden !important;
        --alto-cabecera-chat: 64px;
        --alto-formulario-chat: 64px;
    }

    body.chat-movil-conversacion-activa .envoltura-mensajes-chat {
        position: absolute !important;
        inset: 0 !important;
        z-index: 1;
        width: 100%;
        height: 100% !important;
        min-height: 0 !important;
        overflow: hidden !important;
    }

    body.chat-movil-conversacion-activa .mensajes-chat {
        width: 100%;
        height: 100% !important;
        padding-top: calc(var(--alto-cabecera-chat) + 10px) !important;
        padding-bottom: calc(var(--alto-formulario-chat) + 12px) !important;
        overflow-y: auto !important;
        overscroll-behavior-y: contain;
        scroll-padding-top: calc(var(--alto-cabecera-chat) + 10px);
        scroll-padding-bottom: calc(var(--alto-formulario-chat) + 12px);
    }

    body.chat-movil-conversacion-activa .chat-cabecera-conversacion,
    body.chat-movil-conversacion-activa .formulario-chat {
        position: absolute !important;
        left: 0;
        right: 0;
        z-index: 20 !important;
        width: 100%;
        margin: 0 !important;
        border: 0 !important;
        background: rgba(3, 7, 15, 0.30) !important;
        background-image: none !important;
        box-shadow: none !important;
        backdrop-filter: blur(16px) saturate(1.08) !important;
        -webkit-backdrop-filter: blur(16px) saturate(1.08) !important;
    }

    body.chat-movil-conversacion-activa .chat-cabecera-conversacion {
        top: 0 !important;
    }

    body.chat-movil-conversacion-activa .formulario-chat {
        bottom: 0 !important;
    }

    body.chat-movil-conversacion-activa .chat-identidad-cabecera,
    body.chat-movil-conversacion-activa .barra-escritura-chat,
    body.chat-movil-conversacion-activa .boton-volver-lista-chat {
        background: transparent !important;
        background-image: none !important;
        border: 0 !important;
        box-shadow: none !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
    }
}

/* Ajustes moviles v21: portadas compactas y navegacion lateral. */
@media (max-width: 900px) {
    .contenedor-chat > .cabecera-chat,
    .contenedor-notificaciones > .cabecera-notificaciones {
        min-height: 0 !important;
        margin-top: 6px !important;
        margin-bottom: 9px !important;
        padding: 10px 14px !important;
        gap: 2px !important;
    }

    .contenedor-chat > .cabecera-chat .etiqueta-portada-feed,
    .contenedor-notificaciones > .cabecera-notificaciones .etiqueta-portada-feed {
        margin: 0 0 2px !important;
        font-size: 9px !important;
        line-height: 1.1 !important;
        letter-spacing: 0.12em !important;
    }

    .contenedor-chat > .cabecera-chat h1,
    .contenedor-notificaciones > .cabecera-notificaciones h1 {
        margin: 0 !important;
        font-size: 23px !important;
        line-height: 1 !important;
        letter-spacing: -0.025em !important;
    }

    .contenedor-chat > .cabecera-chat p:not(.etiqueta-portada-feed),
    .contenedor-notificaciones > .cabecera-notificaciones p:not(.etiqueta-portada-feed) {
        margin: 4px 0 0 !important;
        font-size: 12px !important;
        line-height: 1.25 !important;
    }

    .imagen-publicacion {
        -webkit-tap-highlight-color: transparent;
    }

    html.navegacion-gesto-movil-activa,
    html.navegacion-gesto-movil-activa body {
        overflow-x: hidden !important;
        overscroll-behavior-x: none;
    }

    .indicador-navegacion-movil {
        position: fixed;
        top: 50%;
        z-index: 4900;
        display: flex;
        align-items: center;
        gap: 7px;
        min-height: 38px;
        max-width: min(170px, 48vw);
        padding: 7px 11px;
        opacity: 0;
        border: 1px solid rgba(143, 199, 255, 0.24);
        border-radius: 999px;
        background: rgba(5, 11, 22, 0.80);
        color: rgba(235, 245, 255, 0.94);
        box-shadow:
            0 12px 30px rgba(0, 0, 0, 0.34),
            0 0 18px rgba(80, 164, 255, 0.10);
        backdrop-filter: blur(14px) saturate(1.08);
        -webkit-backdrop-filter: blur(14px) saturate(1.08);
        pointer-events: none;
        transition:
            opacity 90ms ease,
            transform 110ms ease;
    }

    .indicador-navegacion-movil-izquierda {
        left: 8px;
        transform: translate(-10px, -50%);
    }

    .indicador-navegacion-movil-derecha {
        right: 8px;
        transform: translate(10px, -50%);
    }

    .indicador-navegacion-movil-visible {
        opacity: 0.96;
        transform: translate(0, -50%);
    }

    .indicador-navegacion-movil span {
        flex: 0 0 auto;
        font-size: 20px;
        line-height: 1;
    }

    .indicador-navegacion-movil small {
        min-width: 0;
        overflow: hidden;
        font-size: 11px;
        font-weight: 680;
        line-height: 1.1;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
}

@media (prefers-reduced-motion: reduce) {
    .indicador-navegacion-movil {
        transition-duration: 1ms !important;
    }
}

/* Ajustes moviles v22: medios fluidos, vista previa lateral y acciones de chat. */
@media (max-width: 900px) {
    html.restaurando-todo-movil .contenedor-feed {
        opacity: 0;
    }

    html:not(.restaurando-todo-movil) .contenedor-feed {
        transition: opacity 110ms ease;
    }

    button,
    [role="button"] {
        touch-action: manipulation;
    }

    .tarjeta-publicacion,
    .tarjeta-duda {
        overflow-x: clip;
    }

    .tarjeta-publicacion .galeria-publicacion,
    .tarjeta-publicacion .galeria-videos-publicacion,
    .tarjeta-duda .galeria-publicacion,
    .tarjeta-duda .galeria-videos-publicacion {
        width: calc(100% + 24px) !important;
        max-width: calc(100% + 24px) !important;
        margin-right: -12px !important;
        margin-left: -12px !important;
        padding-right: 0 !important;
        padding-left: 0 !important;
        gap: 8px !important;
        scroll-padding-inline: 0;
    }

    .tarjeta-publicacion .imagen-publicacion,
    .tarjeta-duda .imagen-publicacion,
    .tarjeta-publicacion .galeria-videos-publicacion > .video-feed-contenedor,
    .tarjeta-duda .galeria-videos-publicacion > .video-feed-contenedor,
    .tarjeta-publicacion .video-publicacion,
    .tarjeta-duda .video-publicacion {
        flex: 0 0 100% !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        border-radius: 0 !important;
        scroll-snap-align: start;
    }

    .tarjeta-publicacion .imagen-publicacion,
    .tarjeta-duda .imagen-publicacion,
    .tarjeta-publicacion .video-publicacion,
    .tarjeta-duda .video-publicacion {
        height: auto !important;
        max-height: 72vh !important;
        object-fit: contain !important;
        background: #02050a;
    }

    .video-feed-contenedor.video-reproduciendo .boton-toggle-video-feed,
    .video-feed-contenedor.video-reproduciendo:hover .boton-toggle-video-feed,
    .video-feed-contenedor.video-reproduciendo:focus-within .boton-toggle-video-feed {
        opacity: 0 !important;
        pointer-events: none !important;
        transform: translate(-50%, -50%) scale(0.92) !important;
    }

    .video-feed-contenedor.video-pausado .boton-toggle-video-feed {
        opacity: 1 !important;
        pointer-events: auto !important;
        transform: translate(-50%, -50%) scale(1) !important;
    }

    .barra-progreso-video-feed {
        display: none !important;
    }

    .superficie-navegacion-movil {
        position: relative;
        z-index: 2;
        min-height: 100dvh;
        background: #02050a;
        box-shadow: 0 0 34px rgba(0, 0, 0, 0.38);
    }

    .vista-previa-navegacion-movil {
        position: fixed;
        inset: 0;
        z-index: 1;
        display: block;
        overflow: hidden;
        opacity: 0;
        background:
            radial-gradient(circle at 18% 12%, rgba(59, 145, 255, 0.16), transparent 34%),
            linear-gradient(150deg, #09111d, #02050a 64%);
        pointer-events: none;
        transition: opacity 80ms linear;
    }

    .vista-previa-navegacion-contenido {
        width: 100%;
        min-height: 100%;
        padding:
            calc(68px + env(safe-area-inset-top, 0px))
            12px
            24px;
        transform: translateX(0);
        transition: transform 90ms ease-out;
    }

    .vista-previa-navegacion-izquierda .vista-previa-navegacion-contenido {
        transform: translateX(-18px);
    }

    .vista-previa-navegacion-derecha .vista-previa-navegacion-contenido {
        transform: translateX(18px);
    }

    .vista-previa-navegacion-visible .vista-previa-navegacion-contenido {
        transform: translateX(0);
    }

    .vista-previa-navegacion-portada {
        display: grid;
        gap: 4px;
        width: 100%;
        padding: 14px 16px;
        border: 1px solid rgba(134, 192, 255, 0.20);
        border-radius: 18px;
        background:
            radial-gradient(circle at 16% 0%, rgba(50, 159, 255, 0.22), transparent 34%),
            rgba(10, 18, 30, 0.92);
        box-shadow: 0 14px 34px rgba(0, 0, 0, 0.26);
    }

    .vista-previa-navegacion-portada small {
        color: rgba(145, 207, 255, 0.78);
        font-size: 9px;
        font-weight: 750;
        letter-spacing: 0.13em;
    }

    .vista-previa-navegacion-portada strong {
        color: #f2f8ff;
        font-size: 25px;
        line-height: 1.05;
    }

    .vista-previa-navegacion-tarjetas {
        display: grid;
        gap: 10px;
        margin-top: 12px;
    }

    .vista-previa-navegacion-tarjetas span {
        display: block;
        min-height: 94px;
        border: 1px solid rgba(152, 179, 210, 0.11);
        border-radius: 18px;
        background:
            linear-gradient(
                105deg,
                rgba(19, 29, 43, 0.88) 16%,
                rgba(29, 43, 61, 0.92) 34%,
                rgba(19, 29, 43, 0.88) 52%
        );
        background-size: 220% 100%;
        animation: none;
    }

    .vista-previa-navegacion-visible
    .vista-previa-navegacion-tarjetas span {
        animation: brillo-vista-previa-movil 1.15s linear infinite;
    }

    .vista-previa-navegacion-movil[data-destino="minijuegos"] {
        background:
            radial-gradient(circle at 22% 10%, rgba(255, 62, 78, 0.18), transparent 36%),
            linear-gradient(150deg, #1b0a0d, #040507 64%);
    }

    .vista-previa-navegacion-movil[data-destino="dudas"] {
        background:
            radial-gradient(circle at 20% 10%, rgba(186, 83, 255, 0.18), transparent 36%),
            linear-gradient(150deg, #14091d, #040507 64%);
    }

    .vista-previa-navegacion-movil[data-destino="notificaciones"] {
        background:
            radial-gradient(circle at 20% 10%, rgba(255, 48, 92, 0.20), transparent 36%),
            linear-gradient(150deg, #1c0710, #040507 64%);
    }

    body.chat-movil-conversacion-activa .boton-bajar-chat {
        right: 12px !important;
        bottom: calc(var(--alto-formulario-chat) + 12px) !important;
        z-index: 18;
        width: 42px;
        height: 42px;
        border-color: rgba(129, 193, 255, 0.34);
        background: rgba(6, 13, 25, 0.82);
        box-shadow:
            0 10px 24px rgba(0, 0, 0, 0.32),
            0 0 16px rgba(67, 158, 255, 0.12);
        backdrop-filter: blur(12px);
        -webkit-backdrop-filter: blur(12px);
    }

    .mensaje-chat[data-mensaje-id] {
        -webkit-touch-callout: none;
        user-select: none;
    }

    .estado-edicion-chat {
        display: none;
    }

    .estado-edicion-chat-activo {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 10px;
        padding: 5px 8px 7px;
        color: rgba(224, 239, 255, 0.86);
        font-size: 12px;
    }

    .estado-edicion-chat-activo span {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .estado-edicion-chat-activo button {
        min-height: 30px !important;
        padding: 4px 10px !important;
        border: 1px solid rgba(128, 194, 255, 0.30) !important;
        border-radius: 999px !important;
        background: rgba(17, 34, 56, 0.62) !important;
        color: #d9efff !important;
        font-size: 11px !important;
    }

    .formulario-chat-editando .boton-archivo-chat,
    .formulario-chat-editando .preview-archivo-chat {
        display: none !important;
    }

    .formulario-chat-editando .barra-escritura-chat {
        grid-template-columns: 36px minmax(0, 1fr) 36px !important;
    }
}

@keyframes brillo-vista-previa-movil {
    to {
        background-position: -120% 0;
    }
}

.acciones-mensaje-chat-fondo {
    position: fixed;
    inset: 0;
    z-index: 6200;
    opacity: 0;
    background: rgba(1, 3, 8, 0.34);
    backdrop-filter: blur(12px) saturate(0.88);
    -webkit-backdrop-filter: blur(12px) saturate(0.88);
    transition: opacity 130ms ease;
}

.acciones-mensaje-chat-visibles {
    opacity: 1;
}

.acciones-mensaje-chat-contenido {
    position: fixed;
    display: grid;
    gap: 8px;
    opacity: 0;
    transform: scale(0.975);
    transform-origin: center;
    transition:
        opacity 130ms ease,
        transform 150ms cubic-bezier(0.22, 0.8, 0.24, 1);
}

.acciones-mensaje-chat-visibles .acciones-mensaje-chat-contenido {
    opacity: 1;
    transform: scale(1);
}

.mensaje-chat-seleccionado {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    pointer-events: none !important;
    box-shadow:
        0 16px 38px rgba(0, 0, 0, 0.42),
        0 0 0 1px rgba(185, 218, 255, 0.18) !important;
}

.mensaje-chat-seleccionado .adjunto-chat {
    pointer-events: none !important;
}

.acciones-mensaje-chat-menu {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(0, 1fr);
    gap: 7px;
    padding: 7px;
    border: 1px solid rgba(157, 188, 222, 0.20);
    border-radius: 16px;
    background: rgba(7, 13, 23, 0.88);
    box-shadow: 0 18px 44px rgba(0, 0, 0, 0.42);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
}

.boton-accion-mensaje-chat {
    min-width: 0 !important;
    min-height: 40px !important;
    padding: 8px 9px !important;
    border: 1px solid rgba(137, 176, 218, 0.18) !important;
    border-radius: 11px !important;
    background: rgba(24, 39, 59, 0.68) !important;
    color: #edf7ff !important;
    font-size: 12px !important;
    font-weight: 680 !important;
    white-space: normal;
}

.boton-accion-mensaje-chat:focus-visible {
    outline: 2px solid rgba(112, 195, 255, 0.94);
    outline-offset: 2px;
}

.accion-mensaje-eliminar {
    border-color: rgba(255, 92, 124, 0.28) !important;
    background: rgba(85, 19, 37, 0.72) !important;
    color: #ffdce5 !important;
}

.aviso-temporal-chat {
    position: fixed;
    left: 50%;
    bottom: max(24px, env(safe-area-inset-bottom));
    z-index: 6400;
    max-width: min(88vw, 360px);
    padding: 10px 15px;
    opacity: 0;
    border: 1px solid rgba(126, 194, 255, 0.28);
    border-radius: 999px;
    background: rgba(7, 16, 29, 0.92);
    color: #e7f5ff;
    font-size: 12px;
    font-weight: 650;
    text-align: center;
    box-shadow: 0 14px 34px rgba(0, 0, 0, 0.36);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    transform: translate(-50%, 8px);
    transition:
        opacity 150ms ease,
        transform 150ms ease;
    pointer-events: none;
}

.aviso-temporal-chat-visible {
    opacity: 1;
    transform: translate(-50%, 0);
}

.aviso-temporal-chat-error {
    border-color: rgba(255, 95, 126, 0.34);
    background: rgba(65, 15, 30, 0.94);
    color: #ffe3e9;
}

@media (prefers-reduced-motion: reduce) {
    .vista-previa-navegacion-movil,
    .vista-previa-navegacion-contenido,
    .acciones-mensaje-chat-fondo,
    .acciones-mensaje-chat-contenido,
    .aviso-temporal-chat {
        transition-duration: 1ms !important;
    }

    .vista-previa-navegacion-tarjetas span {
        animation: none !important;
    }
}

/* Ajustes moviles v23: acciones legibles, recarga de lista e indicador de galerias. */
@media (max-width: 900px) {
    .mensaje-chat[data-mensaje-id],
    .mensaje-chat[data-mensaje-id] * {
        -webkit-user-select: none !important;
        user-select: none !important;
        -webkit-touch-callout: none !important;
    }

    .acciones-mensaje-chat-contenido {
        max-width: calc(100vw - 24px);
    }

    .acciones-mensaje-chat-menu {
        grid-auto-flow: row;
        grid-template-columns: minmax(0, 1fr);
        grid-auto-columns: auto;
        gap: 6px;
        width: 100%;
    }

    .boton-accion-mensaje-chat {
        width: 100% !important;
        min-height: 42px !important;
        padding: 9px 12px !important;
        text-align: center;
        white-space: normal !important;
    }

    body.chat-movil-conversacion-activa
    .formulario-chat-editando,
    body.chat-movil-conversacion-activa
    .formulario-chat-editando
    .barra-escritura-chat {
        width: 100% !important;
        max-width: 100% !important;
    }

    body.chat-movil-conversacion-activa
    .formulario-chat-editando
    textarea#input-mensaje-chat {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    .contenedor-chat {
        position: relative;
    }

    .indicador-recarga-lista-chat {
        --avance-recarga-lista-chat: 0px;
        position: fixed;
        top: calc(58px + env(safe-area-inset-top, 0px));
        left: 50%;
        z-index: 900;
        display: flex;
        align-items: center;
        gap: 7px;
        min-height: 34px;
        padding: 6px 12px;
        opacity: 0;
        border: 1px solid rgba(139, 199, 255, 0.24);
        border-radius: 999px;
        background: rgba(5, 12, 23, 0.84);
        color: rgba(226, 239, 252, 0.88);
        box-shadow: 0 10px 28px rgba(0, 0, 0, 0.30);
        backdrop-filter: blur(13px);
        -webkit-backdrop-filter: blur(13px);
        transform:
            translate(-50%, calc(-52px + var(--avance-recarga-lista-chat)));
        transition:
            opacity 90ms ease,
            transform 110ms ease,
            border-color 90ms ease;
        pointer-events: none;
        white-space: nowrap;
    }

    .indicador-recarga-lista-chat-visible {
        opacity: 1;
    }

    .indicador-recarga-lista-chat span {
        display: block;
        font-size: 20px;
        line-height: 1;
    }

    .indicador-recarga-lista-chat small {
        font-size: 11px;
        font-weight: 680;
    }

    .indicador-recarga-lista-chat-listo {
        border-color: rgba(92, 192, 255, 0.52);
        color: #d8f2ff;
    }

    .indicador-recarga-lista-chat-recargando span {
        animation: girar-visor-chat 680ms linear infinite;
    }

    body.chat-movil-conversacion-activa
    .indicador-recarga-lista-chat {
        display: none !important;
    }

    .galeria-publicacion,
    .galeria-videos-publicacion {
        scrollbar-width: none !important;
    }

    .galeria-publicacion::-webkit-scrollbar,
    .galeria-videos-publicacion::-webkit-scrollbar {
        display: none !important;
    }

    .indicador-galeria-medios {
        position: relative;
        width: 58px;
        height: 3px;
        margin: 7px auto 2px;
        overflow: hidden;
        border-radius: 999px;
        background: rgba(166, 187, 211, 0.18);
        pointer-events: none;
    }

    .indicador-galeria-medios-progreso {
        position: absolute;
        top: 0;
        bottom: 0;
        left: 0;
        min-width: 12px;
        border-radius: inherit;
        background: rgba(151, 211, 255, 0.70);
        box-shadow: 0 0 7px rgba(78, 168, 255, 0.20);
        transition: left 70ms linear;
    }
}

@media (prefers-reduced-motion: reduce) {
    .indicador-recarga-lista-chat,
    .indicador-galeria-medios-progreso {
        transition-duration: 1ms !important;
    }
}


/* =========================================================
   Ajustes v18 - notificaciones móviles y edición de chat
   ========================================================= */
@media (max-width: 900px) {
    body.chat-movil-conversacion-activa .chat-cabecera-conversacion,
    body.chat-movil-conversacion-activa .formulario-chat {
        background: rgba(2, 5, 12, 0.001) !important;
        background-image: none !important;
        border-color: rgba(255, 255, 255, 0.006) !important;
        box-shadow: none !important;
        backdrop-filter: blur(2px) saturate(1.01) !important;
        -webkit-backdrop-filter: blur(2px) saturate(1.01) !important;
    }

    body.chat-movil-conversacion-activa .chat-identidad-cabecera,
    body.chat-movil-conversacion-activa .barra-escritura-chat {
        background: rgba(5, 10, 20, 0.006) !important;
        background-image: none !important;
        border-color: rgba(235, 242, 255, 0.018) !important;
        box-shadow: none !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
    }

    body.chat-movil-conversacion-activa .formulario-chat textarea#input-mensaje-chat {
        display: block !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        min-height: 38px !important;
        max-height: 104px !important;
        box-sizing: border-box !important;
        overflow-y: hidden;
        background: rgba(0, 0, 0, 0.035) !important;
        border-color: rgba(235, 242, 255, 0.045) !important;
    }

    body.chat-movil-conversacion-activa .formulario-chat-editando,
    body.chat-movil-conversacion-activa .formulario-chat-editando .barra-escritura-chat {
        width: 100% !important;
        max-width: 100% !important;
    }

    body.chat-movil-conversacion-activa .formulario-chat-editando .barra-escritura-chat {
        grid-template-columns: 36px minmax(0, 1fr) 36px !important;
    }

    body.chat-movil-conversacion-activa .formulario-chat-editando textarea#input-mensaje-chat {
        grid-column: 2 !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        justify-self: stretch !important;
    }

    body.chat-movil-conversacion-activa .mensajes-chat .mensaje-chat.mensaje-chat-solo-adjunto,
    body.chat-movil-conversacion-activa .mensajes-chat .mensaje-chat.mensaje-chat-solo-adjunto.mensaje-chat-propio,
    body.chat-movil-conversacion-activa .mensajes-chat .mensaje-chat.mensaje-chat-solo-adjunto.mensaje-chat-ajeno,
    .mensajes-chat .mensaje-chat.mensaje-chat-solo-adjunto,
    .mensajes-chat .mensaje-chat.mensaje-chat-solo-adjunto.mensaje-chat-propio,
    .mensajes-chat .mensaje-chat.mensaje-chat-solo-adjunto.mensaje-chat-ajeno {
        padding: 0 !important;
        border: 0 !important;
        background: transparent !important;
        background-image: none !important;
        box-shadow: none !important;
        border-radius: 0 !important;
        overflow: visible !important;
    }

    body.chat-movil-conversacion-activa .mensajes-chat .mensaje-chat.mensaje-chat-solo-adjunto p,
    .mensajes-chat .mensaje-chat.mensaje-chat-solo-adjunto p {
        display: none !important;
    }

    body.chat-movil-conversacion-activa .mensajes-chat .mensaje-chat.mensaje-chat-solo-adjunto .adjunto-chat,
    body.chat-movil-conversacion-activa .mensajes-chat .mensaje-chat.mensaje-chat-solo-adjunto .adjunto-chat-solo,
    .mensajes-chat .mensaje-chat.mensaje-chat-solo-adjunto .adjunto-chat,
    .mensajes-chat .mensaje-chat.mensaje-chat-solo-adjunto .adjunto-chat-solo {
        background: transparent !important;
        border: 0 !important;
        box-shadow: none !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    body.chat-movil-conversacion-activa .mensajes-chat .mensaje-chat.mensaje-chat-solo-adjunto small,
    .mensajes-chat .mensaje-chat.mensaje-chat-solo-adjunto small {
        display: block !important;
        width: fit-content !important;
        margin-top: 4px !important;
        padding: 0 !important;
        background: transparent !important;
        border: 0 !important;
        box-shadow: none !important;
    }
}

.acciones-mensaje-chat-fondo,
.acciones-mensaje-chat-fondo *,
.acciones-mensaje-chat-contenido,
.acciones-mensaje-chat-contenido *,
.boton-accion-mensaje-chat {
    -webkit-user-select: none !important;
    user-select: none !important;
    -webkit-touch-callout: none !important;
    -webkit-tap-highlight-color: transparent;
}

.boton-accion-mensaje-chat::selection,
.acciones-mensaje-chat-contenido ::selection {
    background: transparent !important;
}

/* =========================================================
   Ajustes v19 - correcciones finales chat/notificaciones
   ========================================================= */
.acciones-mensaje-chat-abiertas,
.acciones-mensaje-chat-abiertas * {
    -webkit-user-select: none !important;
    user-select: none !important;
    -webkit-touch-callout: none !important;
    -webkit-tap-highlight-color: transparent !important;
}

.acciones-mensaje-chat-fondo,
.acciones-mensaje-chat-fondo *,
.acciones-mensaje-chat-contenido,
.acciones-mensaje-chat-contenido *,
.boton-accion-mensaje-chat,
.boton-accion-mensaje-chat * {
    -webkit-user-select: none !important;
    user-select: none !important;
    -webkit-touch-callout: none !important;
    -webkit-tap-highlight-color: transparent !important;
}

.acciones-mensaje-chat-fondo ::selection,
.acciones-mensaje-chat-contenido ::selection,
.boton-accion-mensaje-chat::selection,
.boton-accion-mensaje-chat *::selection {
    background: transparent !important;
    color: inherit !important;
}

.mensajes-chat .mensaje-chat.mensaje-chat-solo-adjunto,
.mensajes-chat .mensaje-chat.mensaje-chat-solo-adjunto.mensaje-chat-propio,
.mensajes-chat .mensaje-chat.mensaje-chat-solo-adjunto.mensaje-chat-ajeno,
body.chat-movil-conversacion-activa .mensajes-chat .mensaje-chat.mensaje-chat-solo-adjunto,
body.chat-movil-conversacion-activa .mensajes-chat .mensaje-chat.mensaje-chat-solo-adjunto.mensaje-chat-propio,
body.chat-movil-conversacion-activa .mensajes-chat .mensaje-chat.mensaje-chat-solo-adjunto.mensaje-chat-ajeno {
    display: grid !important;
    width: fit-content !important;
    max-width: min(76vw, 300px) !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    box-shadow: none !important;
    overflow: visible !important;
}

.mensajes-chat .mensaje-chat.mensaje-chat-solo-adjunto.mensaje-chat-propio,
body.chat-movil-conversacion-activa .mensajes-chat .mensaje-chat.mensaje-chat-solo-adjunto.mensaje-chat-propio {
    justify-self: end !important;
    margin-left: auto !important;
}

.mensajes-chat .mensaje-chat.mensaje-chat-solo-adjunto.mensaje-chat-ajeno,
body.chat-movil-conversacion-activa .mensajes-chat .mensaje-chat.mensaje-chat-solo-adjunto.mensaje-chat-ajeno {
    justify-self: start !important;
    margin-right: auto !important;
}

.mensajes-chat .mensaje-chat.mensaje-chat-solo-adjunto .adjunto-chat,
.mensajes-chat .mensaje-chat.mensaje-chat-solo-adjunto .adjunto-chat-solo,
body.chat-movil-conversacion-activa .mensajes-chat .mensaje-chat.mensaje-chat-solo-adjunto .adjunto-chat,
body.chat-movil-conversacion-activa .mensajes-chat .mensaje-chat.mensaje-chat-solo-adjunto .adjunto-chat-solo {
    display: block !important;
    width: fit-content !important;
    max-width: min(76vw, 300px) !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 18px !important;
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    box-shadow: none !important;
    overflow: hidden !important;
}

.mensajes-chat .mensaje-chat.mensaje-chat-solo-adjunto .adjunto-chat img,
.mensajes-chat .mensaje-chat.mensaje-chat-solo-adjunto .adjunto-chat video,
body.chat-movil-conversacion-activa .mensajes-chat .mensaje-chat.mensaje-chat-solo-adjunto .adjunto-chat img,
body.chat-movil-conversacion-activa .mensajes-chat .mensaje-chat.mensaje-chat-solo-adjunto .adjunto-chat video {
    display: block !important;
    max-width: min(76vw, 300px) !important;
    max-height: 310px !important;
    border-radius: 18px !important;
    object-fit: cover !important;
}

@media (max-width: 900px) {
    body.chat-movil-conversacion-activa .formulario-chat-editando .boton-emoji-chat,
    body.chat-movil-conversacion-activa .formulario-chat-editando .boton-archivo-chat,
    body.chat-movil-conversacion-activa .formulario-chat-editando .preview-archivo-chat {
        display: none !important;
    }

    body.chat-movil-conversacion-activa .formulario-chat-editando .barra-escritura-chat {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) 40px !important;
        gap: 8px !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    body.chat-movil-conversacion-activa .formulario-chat-editando textarea#input-mensaje-chat {
        grid-column: 1 !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        justify-self: stretch !important;
        box-sizing: border-box !important;
    }

    body.chat-movil-conversacion-activa .formulario-chat-editando #boton-enviar-chat {
        grid-column: 2 !important;
        display: grid !important;
    }

    body.chat-movil-conversacion-activa .formulario-chat:not(.formulario-chat-editando) .barra-escritura-chat {
        grid-template-columns: 36px minmax(0, 1fr) 36px !important;
    }

    body.chat-movil-conversacion-activa .formulario-chat:not(.formulario-chat-editando) .barra-escritura-chat:has(.boton-enviar-chat-oculto) {
        grid-template-columns: 36px minmax(0, 1fr) !important;
    }

    body.chat-movil-conversacion-activa .formulario-chat:not(.formulario-chat-editando) textarea#input-mensaje-chat:placeholder-shown {
        height: 38px !important;
        min-height: 38px !important;
        max-height: 104px !important;
        overflow-y: hidden !important;
    }
}

/* =========================================================
   Ajustes v20 - chat acciones/notificaciones móviles
   ========================================================= */
@media (max-width: 900px), (hover: none) {
    .tarjeta-usuario-chat,
    .tarjeta-usuario-chat:hover,
    .tarjeta-usuario-chat:focus,
    .tarjeta-usuario-chat:focus-visible,
    .tarjeta-usuario-chat:active {
        transform: none !important;
        filter: none !important;
        -webkit-tap-highlight-color: transparent !important;
    }

    .tarjeta-usuario-chat:not(.tarjeta-usuario-chat-activa):hover,
    .tarjeta-usuario-chat:not(.tarjeta-usuario-chat-activa):focus,
    .tarjeta-usuario-chat:not(.tarjeta-usuario-chat-activa):focus-visible,
    .tarjeta-usuario-chat:not(.tarjeta-usuario-chat-activa):active {
        background: rgba(9, 16, 28, 0.72) !important;
        border-color: rgba(83, 121, 163, 0.22) !important;
        box-shadow: none !important;
    }

    .tarjeta-usuario-chat:not(.tarjeta-usuario-chat-activa):hover strong,
    .tarjeta-usuario-chat:not(.tarjeta-usuario-chat-activa):focus-visible strong {
        color: inherit !important;
        text-shadow: none !important;
    }
}

.acciones-mensaje-chat-fondo {
    cursor: default;
    touch-action: manipulation;
}

.acciones-mensaje-chat-contenido,
.acciones-mensaje-chat-menu,
.boton-accion-mensaje-chat,
.boton-accion-mensaje-chat * {
    -webkit-user-select: none !important;
    user-select: none !important;
    -webkit-touch-callout: none !important;
    -webkit-tap-highlight-color: transparent !important;
}

.boton-accion-mensaje-chat::selection,
.boton-accion-mensaje-chat *::selection {
    background: transparent !important;
    color: inherit !important;
}

/* =========================================================
   Ajustes v21 - acciones chat/notificaciones y rendimiento
   ========================================================= */
.acciones-mensaje-chat-contenido {
    max-height: calc(100dvh - 32px);
    overscroll-behavior: contain;
}

.acciones-mensaje-chat-contenido .mensaje-chat-seleccionado .adjunto-chat,
.acciones-mensaje-chat-contenido .mensaje-chat-seleccionado .adjunto-chat-solo {
    max-height: var(--max-alto-media-acciones-chat, 50vh) !important;
}

.acciones-mensaje-chat-contenido .mensaje-chat-seleccionado .adjunto-chat img,
.acciones-mensaje-chat-contenido .mensaje-chat-seleccionado .adjunto-chat video {
    max-height: var(--max-alto-media-acciones-chat, 50vh) !important;
    object-fit: contain !important;
}

@media (max-width: 900px) {
    .acciones-mensaje-chat-fondo {
        padding-bottom: max(96px, env(safe-area-inset-bottom));
    }

    .acciones-mensaje-chat-contenido {
        overflow: visible;
    }

    .acciones-mensaje-chat-menu {
        box-shadow: 0 16px 42px rgba(0, 0, 0, 0.56);
    }

    .corazon-notificacion-destacado {
        border-color: rgba(28, 214, 255, 0.58) !important;
        background: rgba(13, 64, 91, 0.42) !important;
        box-shadow: 0 0 0 1px rgba(28, 214, 255, 0.22), 0 0 22px rgba(28, 214, 255, 0.16) !important;
    }
}

/* =========================================================
   Ajustes v22 - destino directo desde notificaciones y chat
   ========================================================= */
html.feed-destino-notificacion,
html.feed-destino-notificacion body {
    background: #05070d !important;
}

html.feed-destino-notificacion .contenedor-feed {
    padding-top: max(88px, calc(72px + env(safe-area-inset-top, 0px))) !important;
}

html.feed-destino-notificacion .cabecera-portada-feed,
html.feed-destino-notificacion .panel-creador-feed,
html.feed-destino-notificacion .titulo-explorar-feed,
html.feed-destino-notificacion .contenedor-buscador-feed,
html.feed-destino-notificacion #filtros-dudas,
html.feed-destino-notificacion #boton-cargar-mas-publicaciones,
html.feed-destino-notificacion #boton-cargar-mas-dudas {
    display: none !important;
}

html.feed-destino-notificacion #publicaciones,
html.feed-destino-notificacion #lista-dudas {
    margin-top: 0 !important;
}

@media (max-width: 900px) {
    html.feed-destino-notificacion .contenedor-feed {
        width: 100% !important;
        max-width: 100% !important;
        padding-left: 12px !important;
        padding-right: 12px !important;
    }

    .boton-accion-mensaje-chat {
        font-size: 13.5px !important;
        line-height: 1.12 !important;
        letter-spacing: -0.01em !important;
    }

    .acciones-mensaje-chat-contenido {
        max-height: calc(100dvh - 188px) !important;
    }

    .acciones-mensaje-chat-contenido .mensaje-chat-seleccionado .adjunto-chat,
    .acciones-mensaje-chat-contenido .mensaje-chat-seleccionado .adjunto-chat-solo,
    .acciones-mensaje-chat-contenido .mensaje-chat-seleccionado .adjunto-chat img,
    .acciones-mensaje-chat-contenido .mensaje-chat-seleccionado .adjunto-chat video {
        max-height: var(--max-alto-media-acciones-chat, 42vh) !important;
    }
}

html.feed-destino-notificacion .explorar-feed {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* Ajustes v24: medios ordenados en publicaciones/dudas y previews en fila móvil. */
.galeria-medios-publicacion {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 14px;
    align-items: start;
    justify-items: center;
    width: 100%;
    margin-top: 16px;
    max-height: var(--alto-primera-fila-media, var(--limite-alto-media));
    overflow-y: auto;
    overflow-x: hidden;
    padding-right: 6px;
    scrollbar-width: thin;
}

.galeria-medios-publicacion .video-feed-contenedor,
.galeria-medios-publicacion .imagen-publicacion,
.galeria-medios-publicacion .video-publicacion {
    max-width: 100%;
    max-height: var(--limite-alto-media);
}

.vista-previa-media-ordenada,
#vista-previa-publicacion,
#vista-previa-videos-publicacion,
#vista-previa-duda,
#vista-previa-videos-duda,
.vista-previa-edicion-publicacion {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
}

.miniatura-video {
    object-fit: cover;
}

@media (max-width: 900px) {
    .tarjeta-publicacion .galeria-medios-publicacion,
    .tarjeta-duda .galeria-medios-publicacion {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        width: calc(100% + 24px) !important;
        max-width: calc(100% + 24px) !important;
        margin-right: -12px !important;
        margin-left: -12px !important;
        padding-right: 0 !important;
        padding-left: 0 !important;
        gap: 8px !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        scroll-snap-type: x mandatory;
        scroll-padding-inline: 0;
        scrollbar-width: none !important;
    }

    .tarjeta-publicacion .galeria-medios-publicacion::-webkit-scrollbar,
    .tarjeta-duda .galeria-medios-publicacion::-webkit-scrollbar {
        display: none !important;
    }

    .tarjeta-publicacion .galeria-medios-publicacion > .video-feed-contenedor,
    .tarjeta-duda .galeria-medios-publicacion > .video-feed-contenedor,
    .tarjeta-publicacion .galeria-medios-publicacion > .imagen-publicacion,
    .tarjeta-duda .galeria-medios-publicacion > .imagen-publicacion,
    .tarjeta-publicacion .galeria-medios-publicacion > .video-publicacion,
    .tarjeta-duda .galeria-medios-publicacion > .video-publicacion {
        flex: 0 0 100% !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        border-radius: 0 !important;
        scroll-snap-align: start;
    }

    .tarjeta-publicacion .galeria-medios-publicacion .imagen-publicacion,
    .tarjeta-duda .galeria-medios-publicacion .imagen-publicacion,
    .tarjeta-publicacion .galeria-medios-publicacion .video-publicacion,
    .tarjeta-duda .galeria-medios-publicacion .video-publicacion {
        height: auto !important;
        max-height: 72vh !important;
        object-fit: contain !important;
        background: #02050a;
    }

    #vista-previa-publicacion,
    #vista-previa-videos-publicacion,
    #vista-previa-duda,
    #vista-previa-videos-duda,
    .vista-previa-edicion-publicacion,
    .vista-previa-media-ordenada {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        gap: 10px !important;
        max-width: 100%;
        overflow-x: auto;
        overflow-y: hidden;
        padding-bottom: 4px;
        scrollbar-width: none;
    }

    #vista-previa-publicacion::-webkit-scrollbar,
    #vista-previa-videos-publicacion::-webkit-scrollbar,
    #vista-previa-duda::-webkit-scrollbar,
    #vista-previa-videos-duda::-webkit-scrollbar,
    .vista-previa-edicion-publicacion::-webkit-scrollbar,
    .vista-previa-media-ordenada::-webkit-scrollbar {
        display: none;
    }

    .vista-previa-media-ordenada .miniatura-contenedor,
    #vista-previa-publicacion .miniatura-contenedor,
    #vista-previa-duda .miniatura-contenedor,
    .vista-previa-edicion-publicacion .miniatura-contenedor {
        flex: 0 0 auto;
    }
}

/* Ajuste v25: vista previa ordenada con tache discreto y botón único de medios */
.miniatura-contenedor,
.miniatura-contenedor-media-ordenada {
    position: relative;
}

.miniatura-contenedor .boton-quitar-imagen,
.miniatura-contenedor-media-ordenada .boton-quitar-imagen {
    top: 5px;
    right: 5px;
    width: 22px;
    height: 22px;
    min-width: 22px;
    max-width: 22px;
    border: 1px solid rgba(255, 255, 255, 0.28);
    background: rgba(7, 10, 16, 0.62);
    color: rgba(255, 255, 255, 0.92);
    font-size: 16px;
    line-height: 18px;
    font-weight: 800;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.28);
    z-index: 3;
}

.miniatura-contenedor .boton-quitar-imagen:hover,
.miniatura-contenedor-media-ordenada .boton-quitar-imagen:hover {
    background: rgba(210, 40, 58, 0.74);
    border-color: rgba(255, 255, 255, 0.36);
}

.boton-archivo-media-unico {
    min-width: min(260px, 100%);
}

.acciones-media-formulario:has(.boton-archivo-media-unico) {
    justify-content: center;
}

@media (max-width: 900px) {
    .boton-archivo-media-unico {
        flex: 0 1 min(280px, 100%) !important;
        min-width: min(250px, 100%) !important;
        width: auto !important;
    }

    .formulario-edicion-publicacion .boton-archivo-media-unico {
        flex: 0 1 min(260px, 100%) !important;
        min-width: min(230px, 100%) !important;
        font-size: 13px !important;
    }
}

/* v28 - opciones, reportes y bloqueos de perfil */
.boton-opciones-perfil-ajeno {
    position: absolute;
    top: 14px;
    right: 14px;
    z-index: 5;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255, 255, 255, 0.13);
    background: rgba(10, 14, 22, 0.46);
    color: rgba(235, 244, 255, 0.72);
    font-size: 20px;
    line-height: 1;
    box-shadow: none;
}

.boton-opciones-perfil-ajeno:hover {
    background: rgba(16, 23, 34, 0.72);
    color: #ffffff;
    box-shadow: 0 0 14px rgba(70, 170, 255, 0.18);
}

.menu-perfil-ajeno {
    position: absolute;
    top: 52px;
    right: 14px;
    z-index: 6;
    display: none;
    width: min(230px, calc(100% - 28px));
    padding: 8px;
    border-radius: 16px;
    border: 1px solid rgba(120, 190, 255, 0.26);
    background: rgba(6, 10, 18, 0.92);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    box-shadow: 0 18px 42px rgba(0, 0, 0, 0.42);
}

.menu-perfil-ajeno.activo {
    display: grid;
    gap: 7px;
}

.menu-perfil-ajeno button {
    width: 100%;
    padding: 9px 11px;
    border-radius: 11px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    background: rgba(255, 255, 255, 0.055);
    color: rgba(245, 250, 255, 0.92);
    font-size: 13px;
    text-align: left;
    box-shadow: none;
}

.menu-perfil-ajeno button:hover {
    background: rgba(74, 165, 255, 0.16);
}

.modal-perfil-ajeno {
    position: fixed;
    inset: 0;
    z-index: 1700;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 18px;
    background: rgba(0, 0, 0, 0.58);
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
}

.tarjeta-modal-perfil-ajeno {
    width: min(520px, 100%);
    max-height: min(680px, calc(100dvh - 40px));
    overflow: auto;
    box-sizing: border-box;
    position: relative;
    padding: 22px;
    border-radius: 22px;
    border: 1px solid rgba(110, 190, 255, 0.3);
    background: linear-gradient(145deg, rgba(13, 19, 31, 0.96), rgba(13, 10, 24, 0.97));
    color: #f4f8ff;
    box-shadow: 0 22px 60px rgba(0, 0, 0, 0.55);
}

.tarjeta-modal-perfil-ajeno h3 {
    margin: 0 36px 12px 0;
    color: #dcecff;
}

.boton-cerrar-modal-perfil {
    position: absolute;
    top: 12px;
    right: 12px;
    width: 32px;
    height: 32px;
    padding: 0;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.texto-modal-perfil-ajeno {
    margin: 0 0 14px;
    color: rgba(245, 250, 255, 0.72);
    line-height: 1.45;
}

.textarea-reporte-usuario {
    width: 100%;
    min-height: 120px;
    box-sizing: border-box;
    resize: vertical;
    border-radius: 14px;
    border: 1px solid rgba(120, 190, 255, 0.24);
    background: rgba(3, 8, 16, 0.84);
    color: #f8fbff;
    padding: 12px;
    font: inherit;
    outline: none;
}

.acciones-modal-perfil-ajeno,
.acciones-admin-usuario {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 14px;
}

.reporte-usuario-admin {
    padding: 11px 12px;
    border-radius: 14px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    background: rgba(255, 255, 255, 0.045);
}

.reporte-usuario-admin + .reporte-usuario-admin {
    margin-top: 10px;
}

.reporte-usuario-admin span,
.reporte-usuario-admin small {
    display: block;
    margin-top: 3px;
    color: rgba(255, 255, 255, 0.58);
    font-size: 12px;
}

.reporte-usuario-admin p {
    margin: 8px 0 0;
    color: rgba(255, 255, 255, 0.86);
    line-height: 1.4;
}

.cabecera-reporte-perfil-admin {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    align-items: flex-start;
}

.reporte-contenido-en-perfil {
    border-color: rgba(99, 179, 237, 0.22);
    background: rgba(56, 139, 253, 0.065);
}

.boton-ver-contenido-reportado {
    margin-top: 9px;
}

@media (max-width: 560px) {
    .boton-opciones-perfil-ajeno {
        top: 10px;
        right: 10px;
        width: 32px;
        height: 32px;
        font-size: 19px;
    }

    .menu-perfil-ajeno {
        top: 48px;
        right: 10px;
    }

    .tarjeta-modal-perfil-ajeno {
        padding: 20px;
        max-height: calc(100dvh - 28px);
    }
}

/* v28b: ajustes sobrepuestos, bloqueos y reportes con evidencia */
.modal-configuracion {
    position: fixed;
    inset: 0;
    z-index: 1900;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 18px;
    background: rgba(0, 0, 0, 0.64);
    backdrop-filter: blur(7px);
    -webkit-backdrop-filter: blur(7px);
}

.modal-configuracion-card {
    position: relative;
    width: min(420px, 92vw);
    box-sizing: border-box;
    padding: 26px 22px 22px;
    border-radius: 26px;
    border: 1px solid rgba(90, 180, 255, 0.28);
    background: linear-gradient(145deg, rgba(14, 20, 31, 0.92), rgba(10, 10, 16, 0.94));
    box-shadow: 0 26px 70px rgba(0, 0, 0, 0.55);
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.modal-configuracion-card h2 {
    margin: 0 34px 8px 0;
    text-align: left;
    font-size: 28px;
    color: rgba(235, 248, 255, 0.96);
    text-shadow: none;
}

.etiqueta-modal-configuracion {
    margin: 0;
    color: rgba(80, 190, 255, 0.76);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.16em;
}

.modal-configuracion-card button:not(.boton-cerrar-modal-configuracion) {
    width: 100%;
    padding: 13px 15px;
    border-radius: 16px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    background: rgba(255, 255, 255, 0.07);
    color: rgba(245, 250, 255, 0.94);
    text-align: left;
    box-shadow: none;
}

.modal-configuracion-card button:not(.boton-cerrar-modal-configuracion):hover {
    background: rgba(66, 165, 245, 0.16);
}

.modal-configuracion-card .boton-configuracion-salir {
    color: rgba(255, 190, 205, 0.96) !important;
}

.boton-cerrar-modal-configuracion {
    position: absolute;
    top: 12px;
    right: 12px;
    width: 34px;
    height: 34px;
    padding: 0;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: none;
}

.bloque-cuentas-bloqueadas-privacidad p {
    margin: 0 0 10px;
    color: rgba(255, 255, 255, 0.66);
    font-size: 13px;
}

.lista-cuentas-bloqueadas {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 12px;
    max-height: 330px;
    overflow: auto;
    padding-right: 4px;
}

.lista-cuentas-bloqueadas.oculto {
    display: none;
}

.texto-cuentas-bloqueadas {
    margin: 0;
    padding: 12px;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.045);
}

.tarjeta-cuenta-bloqueada {
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    padding: 10px;
    border-radius: 16px;
    border: 1px solid rgba(255, 255, 255, 0.09);
    background: rgba(255, 255, 255, 0.045);
}

.tarjeta-cuenta-bloqueada img {
    width: 46px;
    height: 46px;
    border-radius: 50%;
    object-fit: cover;
    background: rgba(255, 255, 255, 0.08);
}

.tarjeta-cuenta-bloqueada strong,
.tarjeta-cuenta-bloqueada span {
    display: block;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tarjeta-cuenta-bloqueada span {
    margin-top: 2px;
    color: rgba(255, 255, 255, 0.58);
    font-size: 12px;
}

.tarjeta-cuenta-bloqueada button {
    padding: 8px 10px;
    border-radius: 12px;
    font-size: 12px;
    box-shadow: none;
}

.bloque-imagenes-reporte-usuario {
    margin-top: 12px;
    padding: 12px;
    border-radius: 16px;
    border: 1px dashed rgba(120, 190, 255, 0.25);
    background: rgba(255, 255, 255, 0.035);
}

.boton-adjuntar-reporte-usuario {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 10px 13px;
    border-radius: 999px;
    background: rgba(66, 165, 245, 0.16);
    border: 1px solid rgba(66, 165, 245, 0.28);
    color: rgba(235, 248, 255, 0.92);
    font-weight: 700;
    cursor: pointer;
}

.input-reporte-usuario-oculto {
    display: none !important;
}

.bloque-imagenes-reporte-usuario small {
    display: block;
    margin-top: 8px;
    color: rgba(255, 255, 255, 0.55);
}

.vista-previa-reporte-usuario,
.imagenes-reporte-admin {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    margin-top: 10px;
    padding-bottom: 4px;
}

.preview-imagen-reporte-usuario {
    position: relative;
    flex: 0 0 auto;
}

.preview-imagen-reporte-usuario img,
.imagenes-reporte-admin img {
    width: 82px;
    height: 82px;
    object-fit: cover;
    border-radius: 13px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    background: rgba(0, 0, 0, 0.38);
}

.preview-imagen-reporte-usuario button {
    position: absolute;
    top: -6px;
    right: -6px;
    width: 22px;
    height: 22px;
    min-width: 22px;
    padding: 0;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    line-height: 1;
    color: white;
    background: rgba(20, 20, 20, 0.86);
    border: 1px solid rgba(255, 255, 255, 0.14);
    box-shadow: none;
}

.bloque-advertencia-admin-usuario {
    margin-top: 14px;
    padding: 13px;
    border-radius: 16px;
    border: 1px solid rgba(255, 210, 90, 0.2);
    background: rgba(255, 210, 90, 0.055);
}

.bloque-advertencia-admin-usuario h4 {
    margin: 0 0 9px;
    color: rgba(255, 231, 160, 0.95);
}

.bloque-advertencia-admin-usuario button {
    margin-top: 10px;
}

@media (max-width: 560px) {
    .modal-configuracion {
        align-items: flex-end;
        padding: 14px;
    }

    .modal-configuracion-card {
        width: 100%;
        border-radius: 26px 26px 20px 20px;
    }

    .tarjeta-cuenta-bloqueada {
        grid-template-columns: 42px minmax(0, 1fr);
    }

    .tarjeta-cuenta-bloqueada button {
        grid-column: 1 / -1;
        width: 100%;
    }
}

/* v28c: privacidad como pantallas completas con regreso contextual */
body.privacidad-completa-activa {
    overflow: hidden;
}

.pantalla-privacidad-completa {
    position: fixed;
    inset: 0;
    z-index: 2300;
    display: flex;
    flex-direction: column;
    min-height: 100dvh;
    box-sizing: border-box;
    color: rgba(245, 250, 255, 0.96);
    background:
        radial-gradient(circle at 16% 0%, rgba(75, 149, 255, 0.12), transparent 34%),
        radial-gradient(circle at 92% 12%, rgba(172, 70, 255, 0.10), transparent 30%),
        linear-gradient(180deg, rgba(6, 10, 18, 0.99), rgba(10, 12, 19, 0.995));
    transform: translate3d(102vw, 0, 0);
    opacity: 0.98;
    transition: transform 135ms cubic-bezier(0.22, 0.8, 0.24, 1), opacity 135ms ease;
    overflow: hidden;
}

.pantalla-privacidad-completa.pantalla-privacidad-visible {
    transform: translate3d(0, 0, 0);
    opacity: 1;
}

.pantalla-privacidad-completa.pantalla-privacidad-saliendo {
    transform: translate3d(102vw, 0, 0);
    opacity: 0;
}

.barra-pantalla-privacidad {
    flex: 0 0 auto;
    position: sticky;
    top: 0;
    z-index: 2;
    min-height: 76px;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    gap: 14px;
    padding: calc(14px + env(safe-area-inset-top)) 18px 14px 62px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.075);
    background: rgba(9, 14, 24, 0.66);
    backdrop-filter: blur(13px);
    -webkit-backdrop-filter: blur(13px);
}

.barra-pantalla-privacidad .boton-volver-privacidad {
    top: calc(23px + env(safe-area-inset-top));
    left: 18px;
    z-index: 3;
}

.barra-pantalla-privacidad small {
    display: block;
    margin: 0 0 2px;
    color: rgba(111, 199, 255, 0.76);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.17em;
}

.barra-pantalla-privacidad h2 {
    margin: 0;
    color: rgba(246, 250, 255, 0.97);
    font-size: clamp(22px, 6vw, 30px);
    line-height: 1.05;
    text-align: left;
    text-shadow: none;
}

.contenido-pantalla-privacidad {
    flex: 1 1 auto;
    width: min(720px, 100%);
    margin: 0 auto;
    box-sizing: border-box;
    padding: 22px 18px calc(32px + env(safe-area-inset-bottom));
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

.texto-pantalla-privacidad {
    margin: 0 0 18px;
    color: rgba(220, 231, 245, 0.74);
    font-size: 14px;
    line-height: 1.45;
}

.grid-opciones-privacidad {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
}

.boton-opcion-privacidad {
    width: 100%;
    min-height: 78px;
    box-sizing: border-box;
    padding: 16px 17px;
    border-radius: 20px;
    border: 1px solid rgba(130, 190, 255, 0.18);
    background:
        linear-gradient(145deg, rgba(22, 31, 47, 0.74), rgba(12, 16, 27, 0.86));
    box-shadow: none;
    text-align: left;
    color: rgba(247, 250, 255, 0.96);
}

.boton-opcion-privacidad span {
    display: block;
    font-size: 16px;
    font-weight: 850;
}

.boton-opcion-privacidad small {
    display: block;
    margin-top: 5px;
    color: rgba(216, 228, 245, 0.62);
    font-size: 12px;
    line-height: 1.35;
}

.bloque-pantalla-privacidad {
    margin-bottom: 14px;
    padding: 16px;
    border-radius: 22px;
    border: 1px solid rgba(255, 255, 255, 0.09);
    background: rgba(255, 255, 255, 0.045);
}

.bloque-pantalla-privacidad h3 {
    margin: 0 0 8px;
    color: rgba(250, 252, 255, 0.96);
    font-size: 18px;
    text-align: left;
}

.bloque-pantalla-privacidad p {
    margin: 0 0 12px;
    color: rgba(220, 231, 245, 0.65);
    font-size: 13px;
    line-height: 1.42;
}

.bloque-pantalla-privacidad input {
    width: 100%;
    box-sizing: border-box;
    margin: 8px 0;
    font-size: 16px;
}

.boton-principal-privacidad {
    width: 100%;
    margin-top: 10px;
    border-radius: 16px;
}

.bloque-privacidad-deshabilitado {
    opacity: 0.72;
}

.bloque-privacidad-deshabilitado button[disabled] {
    width: 100%;
    opacity: 0.55;
    cursor: not-allowed;
    box-shadow: none;
}

.lista-cuentas-bloqueadas-pantalla {
    display: flex;
    flex-direction: column;
    gap: 11px;
    padding-bottom: 14px;
}

.tarjeta-cuenta-bloqueada-pantalla {
    grid-template-columns: 50px minmax(0, 1fr) auto;
    padding: 12px;
    background: rgba(255, 255, 255, 0.055);
}

.tarjeta-cuenta-bloqueada-pantalla img {
    width: 50px;
    height: 50px;
}

@media (max-width: 560px) {
    .barra-pantalla-privacidad {
        min-height: 70px;
        padding-left: 58px;
        padding-right: 14px;
    }

    .barra-pantalla-privacidad .boton-volver-privacidad {
        left: 13px;
    }

    .contenido-pantalla-privacidad {
        padding: 18px 14px calc(28px + env(safe-area-inset-bottom));
    }

    .boton-opcion-privacidad {
        min-height: 74px;
        border-radius: 18px;
    }

    .tarjeta-cuenta-bloqueada-pantalla {
        grid-template-columns: 46px minmax(0, 1fr);
    }

    .tarjeta-cuenta-bloqueada-pantalla button {
        grid-column: 1 / -1;
        width: 100%;
        margin-top: 2px;
    }
}

/* v28d: visor de pruebas de reportes siempre por encima del modal de moderación. */
.visor-imagen {
    z-index: 3200;
}

.visor-imagen-activo {
    display: flex;
}

.boton-cerrar-visor-imagen {
    position: fixed;
    top: max(18px, env(safe-area-inset-top));
    right: max(18px, env(safe-area-inset-right));
    width: 42px;
    height: 42px;
    padding: 0;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.24);
    background: rgba(5, 9, 18, 0.78);
    color: #f6fbff;
    font-size: 26px;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    z-index: 3202;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.48);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

.boton-cerrar-visor-imagen:active {
    transform: scale(0.96);
}

.estado-moderacion-usuario strong {
    color: #f4f8ff;
}

.estado-moderacion-usuario span {
    color: rgba(245, 250, 255, 0.62);
    font-size: 12px;
}

/* v29 - reportes de contenido */
.modal-reporte-contenido {
    z-index: 2450;
}

.tarjeta-reporte-contenido {
    max-width: 540px;
}

.reporte-contenido-admin {
    padding: 14px;
    border-radius: 18px;
    border: 1px solid rgba(120, 190, 255, 0.16);
    background: rgba(255, 255, 255, 0.045);
}

.reporte-contenido-admin + .reporte-contenido-admin {
    margin-top: 12px;
}

.cabecera-reporte-contenido-admin {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    align-items: flex-start;
    margin-bottom: 8px;
}

.cabecera-reporte-contenido-admin strong {
    color: rgba(245, 250, 255, 0.96);
}

.cabecera-reporte-contenido-admin span,
.reporte-contenido-admin p {
    color: rgba(225, 235, 248, 0.72);
}

.reporte-contenido-admin p {
    margin: 7px 0;
    line-height: 1.4;
}

.textarea-resolucion-contenido {
    min-height: 78px;
    margin-top: 10px;
}

.acciones-admin-contenido {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 10px;
}

.boton-reportar-carta,
.boton-reportar-minijuego {
    margin-top: 10px;
    padding: 8px 11px;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.11);
    background: rgba(255, 255, 255, 0.055);
    color: rgba(235, 244, 255, 0.76);
    font-size: 12px;
    box-shadow: none;
}

.boton-reportar-carta:hover,
.boton-reportar-minijuego:hover {
    background: rgba(255, 120, 150, 0.12);
    color: rgba(255, 230, 236, 0.95);
}

.acciones-tarjeta-minijuego {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-top: 12px;
}

.acciones-tarjeta-minijuego .boton-sala-proximamente {
    margin-top: 0;
    flex: 1 1 190px;
}

.acciones-tarjeta-minijuego .boton-reportar-minijuego {
    margin-top: 0;
    flex: 0 0 auto;
}

@media (max-width: 560px) {
    .acciones-admin-contenido {
        flex-direction: column;
    }

    .acciones-admin-contenido button {
        width: 100%;
    }

    .cabecera-reporte-contenido-admin {
        flex-direction: column;
        gap: 3px;
    }
}


/* v29c - centrar acciones visibles para visitantes sin cambiar la lógica de botones */
.acciones-publicacion.acciones-publicacion-visitante {
    align-items: center;
    justify-content: center;
}

.acciones-publicacion.acciones-publicacion-visitante > .contenedor-like,
.acciones-publicacion.acciones-publicacion-visitante > button,
.acciones-publicacion.acciones-publicacion-visitante > .boton-comentarios-feed,
.acciones-publicacion.acciones-publicacion-visitante > .boton-secundario {
    align-self: center;
}

@media (max-width: 900px) {
    .acciones-publicacion.acciones-publicacion-visitante {
        justify-content: center !important;
    }

    .acciones-publicacion.acciones-publicacion-visitante > .contenedor-like:first-child,
    .acciones-publicacion.acciones-publicacion-visitante > button:first-child {
        margin-left: 0 !important;
    }
}


/* v29d - evita que el contenedor vacío de opciones ocupe espacio al primer render */
.acciones-publicacion.acciones-publicacion-visitante > .opciones-publicacion:not(:has(.menu-opciones-publicacion)) {
    display: none !important;
    flex: 0 0 0 !important;
    width: 0 !important;
    max-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
}

@media (max-width: 900px) {
    .acciones-publicacion.acciones-publicacion-visitante {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
        overflow-x: visible !important;
        justify-content: center !important;
        padding-left: 8px !important;
        padding-right: 8px !important;
    }

    .acciones-publicacion.acciones-publicacion-visitante > .contenedor-like,
    .acciones-publicacion.acciones-publicacion-visitante > .boton-comentarios-feed,
    .acciones-publicacion.acciones-publicacion-visitante > .boton-secundario {
        flex: 0 0 auto !important;
        transform: none !important;
    }
}

/* v32 - Correos, verificación y recuperación */
.bloque-correo-cuenta {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.bloque-correo-cuenta input {
    width: 100%;
    box-sizing: border-box;
}

.boton-secundario-privacidad {
    width: 100%;
    margin-top: 8px;
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.045);
    border: 1px solid rgba(255, 255, 255, 0.09);
}

/* v32d - Recuperación desde privacidad y separación de formulario */
.mensaje-recuperacion-privacidad {
    min-height: 18px;
    margin-top: 10px !important;
    margin-bottom: 0 !important;
    color: rgba(220, 236, 255, 0.78) !important;
}

.aviso-recuperacion-privacidad {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 4px 0;
}

.aviso-recuperacion-privacidad h3 {
    margin-bottom: 2px;
}

.aviso-recuperacion-privacidad p {
    margin-bottom: 0;
    color: rgba(232, 241, 255, 0.78);
}

.aviso-recuperacion-privacidad small {
    color: rgba(210, 225, 245, 0.6);
    line-height: 1.35;
}

#formulario-restablecer-password {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

#formulario-restablecer-password input {
    width: 100%;
    box-sizing: border-box;
    margin: 0 0 2px 0;
}

#formulario-restablecer-password button {
    width: 100%;
    margin-top: 12px;
}

#formulario-restablecer-password .boton-secundario-login {
    margin-top: 14px;
}

@media (max-width: 700px) {
    #formulario-restablecer-password {
        gap: 20px;
    }

    #formulario-restablecer-password button {
        margin-top: 14px;
    }
}

/* v32f: navegación móvil con transición tipo Privacidad para pantallas internas/contextuales. */
@media (max-width: 900px) {
    body.chat-movil-conversacion-activa {
        background:
            radial-gradient(circle at 16% 0%, rgba(75, 149, 255, 0.12), transparent 34%),
            radial-gradient(circle at 92% 12%, rgba(172, 70, 255, 0.10), transparent 30%),
            linear-gradient(180deg, rgba(6, 10, 18, 0.99), rgba(10, 12, 19, 0.995)) !important;
    }

    #chat-conversacion {
        position: fixed !important;
        inset: 0 !important;
        z-index: 2300 !important;
        display: block !important;
        width: 100% !important;
        min-height: 100dvh !important;
        box-sizing: border-box !important;
        color: rgba(245, 250, 255, 0.96) !important;
        background:
            radial-gradient(circle at 16% 0%, rgba(75, 149, 255, 0.12), transparent 34%),
            radial-gradient(circle at 92% 12%, rgba(172, 70, 255, 0.10), transparent 30%),
            linear-gradient(180deg, rgba(6, 10, 18, 0.99), rgba(10, 12, 19, 0.995)) !important;
        transform: translate3d(102vw, 0, 0) !important;
        opacity: 0.98 !important;
        pointer-events: none !important;
        overflow: hidden !important;
        transition:
            transform 135ms cubic-bezier(0.22, 0.8, 0.24, 1),
            opacity 135ms ease !important;
        will-change: transform;
    }

    body.chat-movil-conversacion-activa #chat-conversacion,
    #chat-conversacion.chat-conversacion-movil-visible {
        transform: translate3d(0, 0, 0) !important;
        opacity: 1 !important;
        pointer-events: auto !important;
    }

    body.chat-movil-conversacion-activa #chat-conversacion.chat-conversacion-movil-saliendo,
    #chat-conversacion.chat-conversacion-movil-saliendo {
        transform: translate3d(102vw, 0, 0) !important;
        opacity: 0 !important;
        pointer-events: none !important;
    }

    body.chat-movil-conversacion-activa #chat-conversacion.superficie-navegacion-movil,
    body.chat-movil-conversacion-activa #chat-conversacion[style] {
        transition: none;
    }

    body.chat-movil-conversacion-activa #chat-conversacion .chat-panel-conversacion {
        background: transparent !important;
        color: inherit !important;
    }

    body.chat-movil-conversacion-activa .chat-cabecera-conversacion {
        min-height: 76px !important;
        box-sizing: border-box !important;
        padding: calc(14px + env(safe-area-inset-top)) 18px 14px 62px !important;
        border-bottom: 1px solid rgba(255, 255, 255, 0.075) !important;
        background: rgba(9, 14, 24, 0.66) !important;
        backdrop-filter: blur(13px) !important;
        -webkit-backdrop-filter: blur(13px) !important;
    }

    body.chat-movil-conversacion-activa .boton-volver-lista-chat {
        position: absolute !important;
        top: calc(23px + env(safe-area-inset-top)) !important;
        left: 18px !important;
        z-index: 3 !important;
        width: 36px !important;
        min-width: 36px !important;
        height: 36px !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
    }

    body.chat-movil-conversacion-activa .boton-volver-lista-chat span {
        display: block !important;
        width: 16px !important;
        height: 16px !important;
        border-left: 3px solid rgba(238, 238, 238, 0.93) !important;
        border-bottom: 3px solid rgba(238, 238, 238, 0.93) !important;
        transform: rotate(45deg) translate(2px, -1px) !important;
        filter: drop-shadow(0 0 3px rgba(0, 0, 0, 0.72)) !important;
    }

    html.navegacion-gesto-movil-activa .superficie-navegacion-movil {
        touch-action: none;
    }
}

/* =========================================================
   Corrección v32g - navegación móvil real tipo Privacidad
   ========================================================= */
@media (max-width: 900px) {
    .marco-vista-previa-navegacion-movil {
        position: fixed;
        inset: 0;
        z-index: 0;
        width: 100vw;
        height: 100dvh;
        border: 0;
        margin: 0;
        padding: 0;
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        background: #02050a;
        transform: translate3d(0, 0, 0) scale(1);
        transition: opacity 70ms linear;
    }

    .marco-vista-previa-navegacion-movil.marco-vista-previa-navegacion-visible {
        opacity: 1;
        visibility: visible;
    }

    html.navegacion-gesto-movil-activa,
    html.navegacion-gesto-movil-activa body {
        background: #02050a !important;
        overflow: hidden !important;
    }

    html.navegacion-gesto-movil-activa .superficie-navegacion-movil {
        position: relative !important;
        z-index: 2 !important;
        min-height: 100dvh !important;
        background: #02050a !important;
        box-shadow: -18px 0 40px rgba(0, 0, 0, 0.34) !important;
    }

    /* La vista previa de destino no usa iframe; v32h usa instantaneas locales. */
    .vista-previa-navegacion-movil {
        display: none !important;
    }

    body.chat-movil-conversacion-activa.chat-movil-regreso-lista-visible .barra-superior {
        display: flex !important;
    }

    body.chat-movil-conversacion-activa.chat-movil-regreso-lista-visible .cabecera-chat,
    body.chat-movil-conversacion-activa.chat-movil-regreso-lista-visible .panel-chat-usuarios {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        pointer-events: none !important;
    }

    body.chat-movil-conversacion-activa.chat-movil-regreso-lista-visible .contenedor-chat {
        min-height: calc(100dvh - 58px) !important;
        padding: 86px 12px max(12px, env(safe-area-inset-bottom)) !important;
        position: relative !important;
        z-index: 1 !important;
        background:
            radial-gradient(circle at 20% 8%, rgba(0, 81, 255, 0.18), transparent 28%),
            linear-gradient(180deg, #020308, #010205) !important;
    }

    body.chat-movil-conversacion-activa.chat-movil-regreso-lista-visible #chat-conversacion {
        z-index: 2300 !important;
        pointer-events: auto !important;
    }

    body.chat-movil-conversacion-activa .chat-cabecera-conversacion {
        display: grid !important;
        grid-template-columns: 36px minmax(0, 1fr) !important;
        align-items: center !important;
        gap: 8px !important;
        min-height: 76px !important;
        padding: calc(14px + env(safe-area-inset-top)) 14px 14px 14px !important;
    }

    body.chat-movil-conversacion-activa .boton-volver-lista-chat {
        grid-column: 1 !important;
        position: relative !important;
        top: auto !important;
        left: auto !important;
        display: grid !important;
        place-items: center !important;
        z-index: 3 !important;
        width: 36px !important;
        min-width: 36px !important;
        height: 36px !important;
        min-height: 36px !important;
    }

    body.chat-movil-conversacion-activa .chat-identidad-cabecera {
        grid-column: 2 !important;
        display: grid !important;
        grid-template-columns: 42px minmax(0, 1fr) !important;
        align-items: center !important;
        justify-content: stretch !important;
        gap: 10px !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        min-height: 42px !important;
        padding: 4px 6px !important;
        overflow: hidden !important;
        color: rgba(245, 250, 255, 0.96) !important;
    }

    body.chat-movil-conversacion-activa .chat-identidad-cabecera img,
    body.chat-movil-conversacion-activa .chat-identidad-cabecera .avatar-chat-cabecera {
        grid-column: 1 !important;
        width: 38px !important;
        height: 38px !important;
        min-width: 38px !important;
        margin: 0 !important;
        opacity: 1 !important;
        visibility: visible !important;
    }

    body.chat-movil-conversacion-activa .chat-identidad-texto {
        grid-column: 2 !important;
        display: grid !important;
        gap: 2px !important;
        min-width: 0 !important;
        opacity: 1 !important;
        visibility: visible !important;
        transform: none !important;
    }

    body.chat-movil-conversacion-activa .chat-identidad-texto strong,
    body.chat-movil-conversacion-activa .chat-identidad-texto small {
        display: block !important;
        max-width: 100% !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        opacity: 1 !important;
        visibility: visible !important;
    }

    body.chat-movil-conversacion-activa .chat-identidad-texto strong {
        font-size: 15px !important;
        color: rgba(247, 251, 255, 0.98) !important;
    }

    body.chat-movil-conversacion-activa .chat-identidad-texto small {
        font-size: 11px !important;
        color: rgba(215, 228, 242, 0.62) !important;
    }
}


/* =========================================================
   Correccion v32h - navegacion movil sin peticiones extra
   ========================================================= */
@media (max-width: 900px) {
    .marco-vista-previa-navegacion-movil {
        display: none !important;
    }

    .instantanea-vista-previa-navegacion-movil {
        position: fixed;
        inset: 0;
        z-index: 1;
        display: block;
        overflow: hidden;
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        background: #02050a;
        transition: opacity 70ms linear;
    }

    .instantanea-vista-previa-navegacion-movil.instantanea-vista-previa-navegacion-visible {
        opacity: 1;
        visibility: visible;
    }

    .instantanea-vista-previa-navegacion-contenido {
        width: 100%;
        min-height: 100dvh;
        max-height: 100dvh;
        overflow: hidden;
        background: #02050a;
        transform: translate3d(0, 0, 0) scale(0.992);
        filter: saturate(0.96) brightness(0.92);
    }

    .instantanea-vista-previa-navegacion-visible .instantanea-vista-previa-navegacion-contenido {
        transform: translate3d(0, 0, 0) scale(1);
    }

    html.navegacion-gesto-movil-activa .superficie-navegacion-movil {
        border-radius: 0 !important;
        overflow: hidden !important;
        box-shadow:
            -18px 0 40px rgba(0, 0, 0, 0.34),
            0 0 0 1px rgba(125, 189, 255, 0.08) !important;
    }

    body.chat-movil-conversacion-activa.chat-movil-regreso-lista-visible .cabecera-chat,
    body.chat-movil-conversacion-activa.chat-movil-regreso-lista-visible .panel-chat-usuarios {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        pointer-events: none !important;
    }

    body.chat-movil-conversacion-activa .chat-cabecera-conversacion {
        background:
            linear-gradient(180deg, rgba(5, 10, 20, 0.96), rgba(5, 10, 20, 0.72)) !important;
        border-bottom: 1px solid rgba(116, 176, 238, 0.16) !important;
        box-shadow: 0 14px 32px rgba(0, 0, 0, 0.26) !important;
        backdrop-filter: blur(16px) saturate(1.12) !important;
        -webkit-backdrop-filter: blur(16px) saturate(1.12) !important;
    }

    body.chat-movil-conversacion-activa .chat-identidad-cabecera {
        min-width: 0 !important;
        max-width: 100% !important;
        background: rgba(9, 17, 30, 0.58) !important;
        border: 1px solid rgba(126, 183, 236, 0.18) !important;
        border-radius: 18px !important;
        box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.025) !important;
    }

    body.chat-movil-conversacion-activa .chat-identidad-texto {
        display: grid !important;
        gap: 2px !important;
        min-width: 0 !important;
        max-width: 100% !important;
        opacity: 1 !important;
        visibility: visible !important;
    }

    body.chat-movil-conversacion-activa .chat-identidad-texto strong,
    body.chat-movil-conversacion-activa .chat-identidad-texto small {
        display: block !important;
        min-width: 0 !important;
        max-width: 100% !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
        opacity: 1 !important;
        visibility: visible !important;
    }
}

/* =========================================================
   Corrección v32i - navegación móvil con estado persistente
   ========================================================= */
@media (max-width: 900px) {
    .instantanea-vista-previa-navegacion-movil {
        z-index: 1 !important;
        background:
            radial-gradient(circle at 18% 0%, rgba(0, 132, 255, 0.10), transparent 34%),
            linear-gradient(180deg, #02050a, #010207) !important;
    }

    .instantanea-vista-previa-navegacion-contenido {
        position: relative !important;
        width: 100vw !important;
        height: 100dvh !important;
        min-height: 100dvh !important;
        max-height: 100dvh !important;
        overflow: hidden !important;
        transform: none !important;
        filter: none !important;
        background: transparent !important;
    }

    .instantanea-vista-previa-navegacion-contenido > * {
        width: 100% !important;
        max-width: 100% !important;
        pointer-events: none !important;
    }

    .instantanea-vista-previa-navegacion-visible .instantanea-vista-previa-navegacion-contenido {
        transform: none !important;
    }

    html.navegacion-gesto-movil-activa .superficie-navegacion-movil {
        background: #02050a !important;
        backface-visibility: hidden !important;
        transform-style: preserve-3d !important;
    }

    html.restaurando-scroll-feed,
    html.restaurando-scroll-feed body {
        background: #02050a !important;
    }
}

/* =========================================================
   Corrección v32j - pantallas móviles persistentes tipo Privacidad
   ========================================================= */
@media (max-width: 900px) {
    html.navegacion-movil-persistente-fondo-activo,
    html.navegacion-movil-persistente-fondo-activo body {
        overflow: hidden !important;
        background: #02050a !important;
    }

    .capa-pantalla-movil-persistente {
        position: fixed;
        inset: 0;
        z-index: 1;
        width: 100vw;
        height: 100dvh;
        overflow: hidden;
        background: #02050a;
        opacity: 1;
        pointer-events: none;
        backface-visibility: hidden;
        transform: translate3d(0, 0, 0);
        will-change: transform, opacity;
    }

    .capa-pantalla-movil-persistente-entrada {
        z-index: 2147483200;
        opacity: 0.995;
        box-shadow:
            -18px 0 42px rgba(0, 0, 0, 0.38),
            0 0 0 1px rgba(118, 190, 255, 0.08);
    }

    .capa-pantalla-movil-persistente-fondo {
        z-index: 1;
        opacity: 1;
        visibility: visible;
    }

    .capa-pantalla-movil-persistente-contenido {
        width: 100%;
        min-height: 100dvh;
        background: #02050a;
        transform: translate3d(0, var(--scroll-pantalla-movil-persistente, 0px), 0);
        backface-visibility: hidden;
    }

    html.navegacion-gesto-movil-activa .superficie-navegacion-movil {
        position: relative !important;
        z-index: 2147483300 !important;
        min-height: 100dvh !important;
        background: #02050a !important;
        box-shadow:
            -18px 0 42px rgba(0, 0, 0, 0.38),
            0 0 0 1px rgba(118, 190, 255, 0.08) !important;
        backface-visibility: hidden !important;
        will-change: transform, opacity !important;
    }

    .capa-pantalla-movil-persistente .barra-superior {
        position: sticky;
        top: 0;
    }

    .capa-pantalla-movil-persistente img,
    .capa-pantalla-movil-persistente video {
        pointer-events: none !important;
    }
}

/* =========================================================
   Corrección v32k - navegación móvil unificada y conversación fluida
   ========================================================= */
@media (max-width: 900px) {
    .capa-pantalla-movil-persistente-entrada .capa-pantalla-movil-persistente-contenido,
    .capa-pantalla-movil-persistente-fondo .capa-pantalla-movil-persistente-contenido {
        min-height: max(100dvh, 100%);
        will-change: transform;
    }

    .capa-pantalla-movil-persistente-entrada {
        background:
            radial-gradient(circle at 18% 0%, rgba(0, 132, 255, 0.10), transparent 34%),
            linear-gradient(180deg, #02050a, #010207) !important;
    }

    body.chat-movil-conversacion-activa .panel-chat-usuarios,
    body.chat-movil-conversacion-activa .cabecera-chat {
        transform: translate3d(0, 0, 0);
        backface-visibility: hidden;
    }

    #chat-conversacion.chat-conversacion-preparando .mensajes-chat {
        position: relative;
        min-height: calc(100dvh - 168px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    }

    #chat-conversacion.chat-conversacion-preparando .mensajes-chat::before {
        content: "Cargando conversación...";
        position: absolute;
        left: 50%;
        top: 50%;
        transform: translate(-50%, -50%);
        color: rgba(224, 236, 250, 0.58);
        font-weight: 700;
        letter-spacing: 0.01em;
        white-space: nowrap;
    }

    body.chat-movil-conversacion-activa #chat-conversacion {
        box-shadow:
            -20px 0 46px rgba(0, 0, 0, 0.42),
            0 0 0 1px rgba(118, 190, 255, 0.08) !important;
    }

    body.chat-movil-conversacion-activa.chat-movil-regreso-lista-visible .contenedor-chat {
        transform: translate3d(0, 0, 0) !important;
        filter: none !important;
    }
}

/* =========================================================
   Corrección v32l - navegación móvil interior más parecida a Privacidad
   ========================================================= */
@media (max-width: 900px) {
    html.navegacion-movil-persistente-transicion-v32l,
    html.navegacion-movil-persistente-transicion-v32l body,
    html.navegacion-movil-persistente-montando,
    html.navegacion-movil-persistente-montando body {
        overscroll-behavior: none !important;
        background: #02050a !important;
    }

    html.navegacion-movil-persistente-transicion-v32l .capa-pantalla-movil-persistente-entrada {
        border-left: 1px solid rgba(125, 194, 255, 0.10);
        box-shadow:
            -22px 0 48px rgba(0, 0, 0, 0.48),
            0 0 0 1px rgba(118, 190, 255, 0.08) !important;
    }

    .capa-pantalla-movil-persistente {
        contain: layout paint style;
    }

    .capa-pantalla-movil-persistente-contenido {
        min-height: max(100dvh, 100%) !important;
    }

    body.mostrar-volver-superior .boton-volver-superior {
        z-index: 2147483000;
    }

    body[data-pagina="perfil"],
    body.pagina-perfil {
        scroll-behavior: auto !important;
    }
}

/* =========================================================
   Corrección v33 - contexto móvil estable y chat transparente
   ========================================================= */
@media (max-width: 900px) {
    .capa-pantalla-movil-persistente-contenido.detalle-contenido-movil-v33
        .cabecera-portada-feed,
    .capa-pantalla-movil-persistente-contenido.detalle-contenido-movil-v33
        .panel-creador-feed,
    .capa-pantalla-movil-persistente-contenido.detalle-contenido-movil-v33
        .titulo-explorar-feed,
    .capa-pantalla-movil-persistente-contenido.detalle-contenido-movil-v33
        .contenedor-buscador-feed,
    .capa-pantalla-movil-persistente-contenido.detalle-contenido-movil-v33
        #filtros-dudas,
    .capa-pantalla-movil-persistente-contenido.detalle-contenido-movil-v33
        #boton-cargar-mas-publicaciones,
    .capa-pantalla-movil-persistente-contenido.detalle-contenido-movil-v33
        #boton-cargar-mas-dudas,
    .capa-pantalla-movil-persistente-contenido.detalle-contenido-movil-v33
        .barra-centro,
    .capa-pantalla-movil-persistente-contenido.detalle-contenido-movil-v33
        .barra-configuracion {
        display: none !important;
    }

    .capa-pantalla-movil-persistente-contenido.detalle-contenido-movil-v33
        .boton-volver-superior {
        display: grid !important;
    }

    .capa-pantalla-movil-persistente-contenido.detalle-contenido-movil-v33
        .contenedor-feed {
        width: 100% !important;
        max-width: 100% !important;
        padding:
            max(82px, calc(68px + env(safe-area-inset-top)))
            12px
            max(18px, env(safe-area-inset-bottom)) !important;
    }

    html.feed-destino-notificacion .portada-feed,
    html.feed-destino-notificacion .explorar-feed,
    .capa-pantalla-movil-persistente-contenido.detalle-contenido-movil-v33
        .portada-feed,
    .capa-pantalla-movil-persistente-contenido.detalle-contenido-movil-v33
        .explorar-feed {
        border: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
    }

    body.chat-movil-conversacion-activa .chat-cabecera-conversacion {
        background: rgba(3, 7, 14, 0.24) !important;
        border-bottom-color: rgba(155, 198, 238, 0.09) !important;
        box-shadow: 0 10px 28px rgba(0, 0, 0, 0.14) !important;
        backdrop-filter: blur(18px) saturate(1.08) !important;
        -webkit-backdrop-filter: blur(18px) saturate(1.08) !important;
    }

    body.chat-movil-conversacion-activa .chat-identidad-cabecera {
        background: rgba(10, 18, 31, 0.10) !important;
        border-color: rgba(190, 219, 247, 0.08) !important;
        box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.012) !important;
        backdrop-filter: blur(5px) !important;
        -webkit-backdrop-filter: blur(5px) !important;
    }
}

/* =========================================================
   Corrección v35 - conversación como pantalla de Privacidad
   ========================================================= */
@media (max-width: 900px) {
    #chat-conversacion {
        transform: translate3d(102vw, 0, 0) !important;
        opacity: 0.98 !important;
        pointer-events: none !important;
        transition:
            transform 135ms cubic-bezier(0.22, 0.8, 0.24, 1),
            opacity 135ms ease !important;
    }

    body.chat-movil-conversacion-activa
        #chat-conversacion:not(.chat-conversacion-movil-visible):not(.chat-conversacion-movil-saliendo) {
        transform: translate3d(102vw, 0, 0) !important;
        opacity: 0.98 !important;
        pointer-events: none !important;
    }

    body.chat-movil-conversacion-activa
        #chat-conversacion.chat-conversacion-movil-visible:not(.superficie-navegacion-movil) {
        transform: translate3d(0, 0, 0) !important;
        opacity: 1 !important;
        pointer-events: auto !important;
        transition:
            transform 135ms cubic-bezier(0.22, 0.8, 0.24, 1),
            opacity 135ms ease !important;
    }

    body.chat-movil-conversacion-activa
        #chat-conversacion.chat-conversacion-movil-saliendo {
        transform: translate3d(102vw, 0, 0) !important;
        opacity: 0 !important;
        pointer-events: none !important;
        transition:
            transform 120ms cubic-bezier(0.3, 0.75, 0.35, 1),
            opacity 120ms ease !important;
    }

    body.chat-movil-conversacion-activa
        #chat-conversacion.superficie-navegacion-movil {
        transition: none !important;
    }

    body.chat-movil-conversacion-activa .cabecera-chat,
    body.chat-movil-conversacion-activa .panel-chat-usuarios,
    body.chat-movil-conversacion-activa .lista-usuarios-chat {
        transform: none !important;
        transition: none !important;
        backface-visibility: hidden;
    }
}

/* =========================================================
   Corrección v36 - teclado móvil sin bloquear el chat
   ========================================================= */
@media (max-width: 900px) {
    html.chat-movil-conversacion-activa-html,
    html:has(body.chat-movil-conversacion-activa) {
        width: 100% !important;
        height: auto !important;
        overflow: hidden !important;
    }

    body.chat-movil-conversacion-activa {
        position: static !important;
        inset: auto !important;
        width: 100% !important;
        height: auto !important;
        min-height: 100dvh !important;
        overflow: hidden !important;
    }

    body.chat-movil-conversacion-activa #chat-conversacion {
        top: var(--offset-viewport-chat, 0px) !important;
        right: 0 !important;
        bottom: auto !important;
        left: 0 !important;
        width: 100% !important;
        height: var(--alto-viewport-chat, 100dvh) !important;
        min-height: var(--alto-viewport-chat, 100dvh) !important;
        max-height: var(--alto-viewport-chat, 100dvh) !important;
        overflow: hidden !important;
    }

    body.chat-movil-conversacion-activa .chat-panel-conversacion {
        width: 100% !important;
        height: 100% !important;
        min-height: 100% !important;
        max-height: 100% !important;
        overflow: hidden !important;
        pointer-events: auto !important;
    }

    body.chat-movil-conversacion-activa .mensajes-chat {
        touch-action: pan-y !important;
        pointer-events: auto !important;
    }

    body.chat-movil-conversacion-activa .chat-cabecera-conversacion,
    body.chat-movil-conversacion-activa .chat-identidad-cabecera,
    body.chat-movil-conversacion-activa .boton-volver-lista-chat,
    body.chat-movil-conversacion-activa .formulario-chat,
    body.chat-movil-conversacion-activa .formulario-chat button,
    body.chat-movil-conversacion-activa .formulario-chat textarea,
    body.chat-movil-conversacion-activa .boton-bajar-chat {
        pointer-events: auto !important;
        touch-action: manipulation;
    }
}

/* =========================================================
   Chat v39 - conversaciones como pantallas completas
   ========================================================= */
body.chat-movil-conversacion-activa {
    overflow: hidden !important;
}

#chat-conversacion {
    position: fixed !important;
    inset: 0 !important;
    z-index: 2300 !important;
    display: block !important;
    width: 100% !important;
    height: 100dvh !important;
    min-height: 100dvh !important;
    max-height: 100dvh !important;
    overflow: hidden !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    transform: translate3d(100%, 0, 0) !important;
    transition:
        transform 150ms cubic-bezier(0.22, 0.8, 0.24, 1),
        opacity 130ms ease,
        visibility 0s linear 150ms !important;
    background:
        radial-gradient(circle at 16% 0%, rgba(75, 149, 255, 0.12), transparent 34%),
        radial-gradient(circle at 92% 12%, rgba(172, 70, 255, 0.10), transparent 30%),
        linear-gradient(180deg, #060a12, #080a10) !important;
    box-shadow: -24px 0 52px rgba(0, 0, 0, 0.42) !important;
    will-change: transform;
}

body.chat-movil-conversacion-activa
    #chat-conversacion.chat-conversacion-movil-visible,
#chat-conversacion.chat-conversacion-movil-visible {
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    transform: translate3d(0, 0, 0) !important;
    transition:
        transform 150ms cubic-bezier(0.22, 0.8, 0.24, 1),
        opacity 130ms ease,
        visibility 0s linear 0s !important;
}

body.chat-movil-conversacion-activa
    #chat-conversacion.chat-conversacion-movil-saliendo,
#chat-conversacion.chat-conversacion-movil-saliendo {
    visibility: visible !important;
    opacity: 0 !important;
    pointer-events: none !important;
    transform: translate3d(100%, 0, 0) !important;
    transition:
        transform 140ms cubic-bezier(0.3, 0.75, 0.35, 1),
        opacity 120ms ease !important;
}

#chat-conversacion.superficie-navegacion-movil {
    visibility: visible !important;
    pointer-events: auto !important;
    transition: none !important;
}

#chat-conversacion .chat-panel-conversacion {
    width: 100% !important;
    height: 100% !important;
    min-height: 100% !important;
    max-height: 100% !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    overflow: hidden !important;
}

.boton-volver-lista-chat {
    display: grid !important;
    place-items: center;
}

.boton-volver-lista-chat:focus-visible,
.chat-identidad-cabecera:focus-visible {
    outline: 2px solid rgba(117, 196, 255, 0.92) !important;
    outline-offset: 2px;
}

@media (min-width: 901px) {
    #chat-conversacion .chat-panel-conversacion {
        display: grid !important;
        grid-template-rows: auto minmax(0, 1fr) auto !important;
        padding: 0 !important;
        background:
            radial-gradient(circle at 50% 0%, rgba(36, 113, 210, 0.09), transparent 38%),
            rgba(3, 6, 11, 0.98) !important;
    }

    #chat-conversacion .chat-cabecera-conversacion {
        display: grid !important;
        grid-template-columns: 44px minmax(0, 1fr) !important;
        align-items: center !important;
        gap: 12px !important;
        width: 100% !important;
        min-height: 72px !important;
        padding: 12px max(24px, calc((100vw - 1040px) / 2)) !important;
        border: 0 !important;
        border-bottom: 1px solid rgba(139, 188, 235, 0.12) !important;
        border-radius: 0 !important;
        background: rgba(4, 9, 17, 0.72) !important;
        backdrop-filter: blur(18px) saturate(1.08) !important;
        -webkit-backdrop-filter: blur(18px) saturate(1.08) !important;
    }

    #chat-conversacion .boton-volver-lista-chat {
        width: 40px !important;
        min-width: 40px !important;
        height: 40px !important;
        padding: 0 !important;
        border: 1px solid rgba(129, 184, 239, 0.22) !important;
        border-radius: 13px !important;
        background: rgba(9, 17, 29, 0.72) !important;
    }

    #chat-conversacion .boton-volver-lista-chat span {
        display: block !important;
        width: 13px !important;
        height: 13px !important;
        border-bottom: 2px solid rgba(238, 247, 255, 0.94) !important;
        border-left: 2px solid rgba(238, 247, 255, 0.94) !important;
        transform: rotate(45deg) translate(2px, -1px) !important;
    }

    #chat-conversacion .chat-identidad-cabecera {
        display: grid !important;
        grid-template-columns: 46px minmax(0, 1fr) !important;
        align-items: center !important;
        gap: 12px !important;
        width: fit-content !important;
        min-width: min(420px, calc(100vw - 120px)) !important;
        padding: 6px 12px !important;
        border: 1px solid rgba(138, 191, 239, 0.10) !important;
        border-radius: 17px !important;
        background: rgba(10, 17, 28, 0.28) !important;
        text-align: left !important;
    }

    #chat-conversacion .chat-identidad-cabecera img,
    #chat-conversacion .chat-identidad-cabecera .avatar-chat-cabecera {
        width: 42px !important;
        height: 42px !important;
        margin: 0 !important;
        border-radius: 50% !important;
        object-fit: cover !important;
    }

    #chat-conversacion .envoltura-mensajes-chat {
        width: min(1040px, 100%) !important;
        min-height: 0 !important;
        margin: 0 auto !important;
        overflow: hidden !important;
    }

    #chat-conversacion .mensajes-chat {
        width: 100% !important;
        height: 100% !important;
        min-height: 0 !important;
        max-height: none !important;
        padding: 24px 28px !important;
        overflow-y: auto !important;
    }

    #chat-conversacion .formulario-chat {
        width: 100% !important;
        padding: 12px max(24px, calc((100vw - 1040px) / 2)) 18px !important;
        border: 0 !important;
        border-top: 1px solid rgba(139, 188, 235, 0.10) !important;
        border-radius: 0 !important;
        background: rgba(4, 9, 17, 0.74) !important;
        backdrop-filter: blur(18px) saturate(1.08) !important;
        -webkit-backdrop-filter: blur(18px) saturate(1.08) !important;
    }
}

@media (max-width: 900px) {
    body.chat-movil-conversacion-activa .cabecera-chat,
    body.chat-movil-conversacion-activa .panel-chat-usuarios {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
    }

    body.chat-movil-conversacion-activa .contenedor-chat {
        min-height: calc(100dvh - 58px) !important;
        padding:
            86px
            12px
            max(12px, env(safe-area-inset-bottom)) !important;
        background:
            radial-gradient(circle at 20% 8%, rgba(0, 81, 255, 0.18), transparent 28%),
            linear-gradient(180deg, #020308, #010205) !important;
    }

    body.chat-movil-conversacion-activa #chat-conversacion {
        top: var(--offset-viewport-chat, 0px) !important;
        height: var(--alto-viewport-chat, 100dvh) !important;
        min-height: var(--alto-viewport-chat, 100dvh) !important;
        max-height: var(--alto-viewport-chat, 100dvh) !important;
    }

    body.chat-movil-conversacion-activa .mensajes-chat {
        overflow-anchor: none;
        scroll-padding-bottom:
            calc(var(--alto-formulario-chat) + 14px) !important;
    }
}

/* =========================================================
   Chat v40 - lista aurora y conversación sin fondo visible
   ========================================================= */
body:has(.contenedor-chat) {
    background:
        radial-gradient(circle at 12% 8%, rgba(137, 62, 255, 0.15), transparent 30%),
        radial-gradient(circle at 88% 18%, rgba(0, 210, 255, 0.10), transparent 27%),
        linear-gradient(180deg, #05040a, #020307 58%, #05040a) !important;
}

.contenedor-chat > .cabecera-chat {
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(186, 113, 255, 0.30) !important;
    background:
        linear-gradient(125deg, rgba(113, 42, 183, 0.28), rgba(9, 29, 49, 0.74)),
        rgba(7, 6, 13, 0.88) !important;
    box-shadow:
        0 20px 48px rgba(0, 0, 0, 0.28),
        inset 0 1px 0 rgba(255, 255, 255, 0.05),
        0 0 30px rgba(135, 65, 255, 0.08) !important;
}

.contenedor-chat > .cabecera-chat::after {
    content: "";
    position: absolute;
    top: -55%;
    right: -8%;
    width: 230px;
    height: 230px;
    border-radius: 50%;
    background: radial-gradient(
        circle,
        rgba(0, 217, 255, 0.16),
        transparent 67%
    );
    pointer-events: none;
}

.contenedor-chat > .cabecera-chat .etiqueta-portada-feed {
    color: rgba(202, 151, 255, 0.86) !important;
}

.contenedor-chat > .cabecera-chat h1 {
    color: #f5edff !important;
    text-shadow: 0 0 20px rgba(164, 91, 255, 0.22);
}

.contenedor-chat > .cabecera-chat p:not(.etiqueta-portada-feed) {
    color: rgba(222, 229, 243, 0.72) !important;
}

.panel-chat-usuarios {
    border: 1px solid rgba(164, 104, 226, 0.22) !important;
    background:
        linear-gradient(145deg, rgba(16, 10, 25, 0.90), rgba(5, 14, 23, 0.92)) !important;
    box-shadow:
        0 22px 54px rgba(0, 0, 0, 0.28),
        inset 0 1px 0 rgba(255, 255, 255, 0.035) !important;
}

.chat-buscador {
    position: relative;
}

.chat-buscador input {
    min-height: 48px !important;
    border: 1px solid rgba(168, 114, 224, 0.26) !important;
    border-radius: 16px !important;
    background: rgba(3, 7, 14, 0.78) !important;
    color: rgba(244, 248, 255, 0.96) !important;
    box-shadow:
        inset 0 0 0 1px rgba(255, 255, 255, 0.018),
        0 9px 24px rgba(0, 0, 0, 0.18) !important;
    transition:
        border-color 130ms ease,
        box-shadow 130ms ease,
        background-color 130ms ease !important;
}

.chat-buscador input::placeholder {
    color: rgba(193, 190, 211, 0.52) !important;
}

.chat-buscador input:focus {
    border-color: rgba(70, 217, 255, 0.72) !important;
    background: rgba(4, 10, 19, 0.94) !important;
    box-shadow:
        0 0 0 3px rgba(31, 194, 255, 0.10),
        0 0 24px rgba(96, 93, 255, 0.12) !important;
    outline: none;
}

.lista-usuarios-chat {
    gap: 10px !important;
}

.tarjeta-usuario-chat {
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(166, 111, 221, 0.18) !important;
    background:
        linear-gradient(120deg, rgba(34, 18, 48, 0.86), rgba(7, 20, 31, 0.92)) !important;
    box-shadow:
        0 12px 26px rgba(0, 0, 0, 0.22),
        inset 0 1px 0 rgba(255, 255, 255, 0.035) !important;
    transition:
        transform 135ms ease,
        border-color 135ms ease,
        box-shadow 135ms ease,
        background-color 135ms ease !important;
}

.tarjeta-usuario-chat::after {
    content: "";
    position: absolute;
    top: 16%;
    bottom: 16%;
    left: 0;
    width: 2px;
    border-radius: 999px;
    background: linear-gradient(
        180deg,
        rgba(191, 105, 255, 0.88),
        rgba(35, 214, 255, 0.82)
    );
    opacity: 0.52;
}

.tarjeta-usuario-chat:hover,
.tarjeta-usuario-chat:focus-visible {
    transform: translateY(-1px);
    border-color: rgba(79, 213, 255, 0.46) !important;
    background:
        linear-gradient(120deg, rgba(47, 22, 67, 0.94), rgba(8, 29, 43, 0.96)) !important;
    box-shadow:
        0 15px 32px rgba(0, 0, 0, 0.28),
        0 0 25px rgba(77, 130, 255, 0.09) !important;
    outline: 2px solid transparent;
}

.tarjeta-usuario-chat-activa,
.tarjeta-usuario-chat-activa:hover {
    border-color: rgba(193, 105, 255, 0.54) !important;
    background:
        linear-gradient(120deg, rgba(68, 27, 91, 0.94), rgba(8, 38, 51, 0.96)) !important;
}

.tarjeta-usuario-chat img,
.tarjeta-usuario-chat .avatar-chat-fallback {
    border: 2px solid rgba(98, 216, 255, 0.60) !important;
    box-shadow:
        0 0 0 3px rgba(152, 83, 255, 0.12),
        0 0 18px rgba(35, 205, 255, 0.13) !important;
}

.tarjeta-usuario-chat strong {
    color: rgba(248, 245, 255, 0.96) !important;
}

.badge-chat-no-leidos {
    border: 1px solid rgba(239, 164, 255, 0.38) !important;
    background: linear-gradient(145deg, #9c48e5, #4c68d9) !important;
    color: #fff !important;
    box-shadow: 0 0 17px rgba(157, 69, 231, 0.25) !important;
}

@media (max-width: 900px) {
    body.chat-movil-conversacion-activa .barra-superior,
    body.chat-movil-conversacion-activa .cabecera-chat,
    body.chat-movil-conversacion-activa .panel-chat-usuarios,
    body.chat-movil-conversacion-activa.chat-movil-regreso-lista-visible
        .barra-superior,
    body.chat-movil-conversacion-activa.chat-movil-regreso-lista-visible
        .cabecera-chat,
    body.chat-movil-conversacion-activa.chat-movil-regreso-lista-visible
        .panel-chat-usuarios {
        display: none !important;
        visibility: hidden !important;
    }

    body.chat-movil-conversacion-activa .contenedor-chat,
    body.chat-movil-conversacion-activa.chat-movil-regreso-lista-visible
        .contenedor-chat {
        min-height: 100dvh !important;
        padding: 0 !important;
        background: #03050a !important;
    }

    body.chat-movil-conversacion-activa #chat-conversacion {
        background:
            radial-gradient(circle at 16% 0%, rgba(75, 149, 255, 0.12), transparent 34%),
            radial-gradient(circle at 92% 12%, rgba(172, 70, 255, 0.10), transparent 30%),
            linear-gradient(180deg, #060a12, #080a10) !important;
    }

    body.chat-movil-conversacion-activa
        #chat-conversacion.chat-conversacion-movil-visible:not(.superficie-navegacion-movil) {
        transition:
            transform 150ms cubic-bezier(0.22, 0.8, 0.24, 1),
            opacity 130ms ease,
            top 90ms ease-out,
            height 110ms ease-out !important;
    }

    .contenedor-chat > .cabecera-chat {
        border-color: rgba(179, 105, 246, 0.24) !important;
    }

    .panel-chat-usuarios {
        padding: 12px !important;
    }

    .chat-buscador input {
        min-height: 46px !important;
    }

    .tarjeta-usuario-chat {
        min-height: 78px !important;
        border-radius: 17px !important;
    }
}

/* Chat v41 - interacción táctil y teclado estables. */
body.chat-movil-conversacion-activa #chat-conversacion,
body.chat-movil-conversacion-activa
    #chat-conversacion.chat-conversacion-movil-visible {
    pointer-events: auto !important;
}

body.chat-movil-conversacion-activa
    #chat-conversacion
    .chat-panel-conversacion {
    pointer-events: auto !important;
}

body.chat-movil-conversacion-activa .chat-cabecera-conversacion,
body.chat-movil-conversacion-activa .formulario-chat {
    z-index: 30 !important;
    pointer-events: auto !important;
}

body.chat-movil-conversacion-activa .envoltura-mensajes-chat {
    z-index: 1 !important;
    pointer-events: none !important;
}

body.chat-movil-conversacion-activa .mensajes-chat,
body.chat-movil-conversacion-activa .chat-cabecera-conversacion button,
body.chat-movil-conversacion-activa .formulario-chat button,
body.chat-movil-conversacion-activa .formulario-chat input,
body.chat-movil-conversacion-activa .formulario-chat textarea,
body.chat-movil-conversacion-activa .boton-bajar-chat {
    pointer-events: auto !important;
}

@media (max-width: 900px) {
    body.chat-movil-conversacion-activa
        #chat-conversacion.chat-conversacion-movil-visible:not(.superficie-navegacion-movil) {
        top: var(--offset-viewport-chat, 0px) !important;
        transition:
            transform 150ms cubic-bezier(0.22, 0.8, 0.24, 1),
            opacity 130ms ease !important;
    }
}

/* v35e - ajustes de UX post-deploy */
.barra-superior {
    padding: 12px 20px !important;
}

.barra-centro-iconos {
    gap: 12px !important;
}

.barra-superior .barra-configuracion {
    display: none !important;
}

.boton-nav-superior {
    width: 48px !important;
    min-width: 48px !important;
    height: 48px !important;
    border-radius: 16px !important;
}

.boton-nav-superior.nav-todo {
    min-width: 68px !important;
    height: 48px !important;
    padding: 0 14px !important;
}

.texto-nav-todo {
    font-size: 13px !important;
}

.icono-nav,
.icono-nav svg {
    width: 27px !important;
    height: 27px !important;
}

.boton-ajustes-perfil {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 42px;
}

.icono-ajustes-perfil {
    font-size: 16px;
    line-height: 1;
}

.panel-corazones-publicacion {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 14px;
    border: 1px solid rgba(0, 217, 255, 0.20);
    border-radius: 20px;
    background:
        linear-gradient(145deg, rgba(7, 23, 32, 0.94), rgba(8, 12, 18, 0.94));
}

.encabezado-corazones-publicacion {
    display: flex;
    align-items: center;
    gap: 12px;
    padding-bottom: 10px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.icono-panel-corazones {
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: #d9f8ff;
    font-size: 26px;
    background:
        rgba(0, 217, 255, 0.12);
    border: 1px solid rgba(0, 217, 255, 0.24);
}

.encabezado-corazones-publicacion strong {
    display: block;
    color: #f5fdff;
    font-size: 16px;
}

.encabezado-corazones-publicacion small,
.datos-corazon-publicacion small {
    color: rgba(255, 255, 255, 0.58);
}

.lista-corazones-publicacion {
    display: grid;
    gap: 9px;
}

.fila-corazon-publicacion {
    width: 100%;
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    padding: 10px 12px !important;
    border-radius: 16px !important;
    border: 1px solid rgba(255, 255, 255, 0.10) !important;
    background: rgba(255, 255, 255, 0.045) !important;
    color: #f7f7f7 !important;
    text-align: left;
    box-shadow: none !important;
    cursor: pointer;
}

.fila-corazon-publicacion:hover {
    border-color: rgba(0, 217, 255, 0.34) !important;
    background: rgba(255, 255, 255, 0.075) !important;
    transform: translateY(-1px);
}

.avatar-corazon-publicacion {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    overflow: hidden;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-weight: 800;
    background: rgba(0, 217, 255, 0.16);
    border: 1px solid rgba(255, 255, 255, 0.22);
}

.avatar-corazon-publicacion img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.datos-corazon-publicacion {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.datos-corazon-publicacion strong,
.datos-corazon-publicacion small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.marca-corazon-publicacion {
    color: #00d9ff;
    font-size: 22px;
    filter: none;
}

.panel-corazones-publicacion-vacio {
    align-items: stretch;
}

@media (max-width: 760px) {
    .barra-superior {
        padding: calc(8px + env(safe-area-inset-top, 0px)) 8px 8px !important;
    }

    .barra-centro,
    .barra-centro-iconos {
        max-width: calc(100vw - 50px) !important;
        gap: 7px !important;
    }

    .boton-nav-superior {
        width: 42px !important;
        min-width: 42px !important;
        height: 42px !important;
        border-radius: 14px !important;
    }

    .boton-nav-superior.nav-todo {
        min-width: 50px !important;
        width: 50px !important;
        height: 42px !important;
    }

    .texto-nav-todo::after {
        font-size: 15px !important;
    }

    .icono-nav,
    .icono-nav svg {
        width: 23px !important;
        height: 23px !important;
    }

    .panel-corazones-publicacion {
        padding: 12px;
        border-radius: 18px;
    }

    .fila-corazon-publicacion {
        grid-template-columns: 38px minmax(0, 1fr) auto;
        gap: 10px;
        padding: 9px 10px !important;
    }

    .avatar-corazon-publicacion {
        width: 38px;
        height: 38px;
    }
}

/* v35e ux3 - correcciones móviles, scroll y panel de corazones */
.panel-corazones-publicacion {
    gap: 8px !important;
    padding: 10px !important;
    border-radius: 16px !important;
    border-color: rgba(32, 137, 255, 0.26) !important;
    background:
        linear-gradient(180deg, rgba(9, 21, 36, 0.92), rgba(6, 12, 22, 0.92)) !important;
}

.encabezado-corazones-publicacion {
    gap: 9px !important;
    padding-bottom: 8px !important;
    border-bottom-color: rgba(32, 137, 255, 0.16) !important;
}

.icono-panel-corazones {
    width: 32px !important;
    height: 32px !important;
    flex-basis: 32px !important;
    font-size: 18px !important;
    color: #9fd1ff !important;
    background: rgba(32, 137, 255, 0.13) !important;
    border-color: rgba(32, 137, 255, 0.26) !important;
}

.encabezado-corazones-publicacion strong {
    font-size: 14px !important;
    color: #dcefff !important;
}

.encabezado-corazones-publicacion small {
    font-size: 12px !important;
    color: rgba(202, 226, 255, 0.68) !important;
}

.lista-corazones-publicacion {
    gap: 7px !important;
}

.fila-corazon-publicacion {
    grid-template-columns: 32px minmax(0, 1fr) 22px !important;
    gap: 9px !important;
    padding: 7px 9px !important;
    border-radius: 13px !important;
    border-color: rgba(32, 137, 255, 0.18) !important;
    background: rgba(22, 84, 145, 0.12) !important;
}

.fila-corazon-publicacion:hover,
.fila-corazon-publicacion:focus-visible {
    border-color: rgba(32, 137, 255, 0.34) !important;
    background: rgba(32, 137, 255, 0.16) !important;
    transform: none !important;
}

.avatar-corazon-publicacion {
    width: 32px !important;
    height: 32px !important;
    font-size: 13px !important;
    background: rgba(32, 137, 255, 0.18) !important;
    border-color: rgba(151, 202, 255, 0.22) !important;
}

.datos-corazon-publicacion {
    gap: 0 !important;
}

.datos-corazon-publicacion strong {
    font-size: 13px !important;
    color: #eef7ff !important;
    font-weight: 750 !important;
}

.marca-corazon-publicacion {
    color: #5ab6ff !important;
    font-size: 17px !important;
    filter: none !important;
}


@media (max-width: 760px) {
    .barra-superior {
        justify-content: center !important;
        padding-left: 8px !important;
        padding-right: 8px !important;
    }

    .barra-centro,
    .barra-centro-iconos {
        width: auto !important;
        max-width: calc(100vw - 18px) !important;
        margin-left: auto !important;
        margin-right: auto !important;
        justify-content: center !important;
        gap: 6px !important;
        overflow-x: visible !important;
    }

    .boton-nav-superior {
        width: 38px !important;
        min-width: 38px !important;
        height: 38px !important;
        border-radius: 12px !important;
    }

    .boton-nav-superior.nav-todo {
        width: 38px !important;
        min-width: 38px !important;
        height: 38px !important;
        padding: 0 !important;
    }

    .texto-nav-todo {
        font-size: 0 !important;
        letter-spacing: 0 !important;
    }

    .texto-nav-todo::after {
        content: "T" !important;
        font-size: 14px !important;
        font-weight: 850 !important;
        letter-spacing: 0 !important;
    }

    .icono-nav,
    .icono-nav svg {
        width: 22px !important;
        height: 22px !important;
    }

    .boton-ajustes-perfil {
        width: 100% !important;
    }

    .panel-corazones-publicacion {
        padding: 9px !important;
        border-radius: 15px !important;
    }

    .encabezado-corazones-publicacion {
        gap: 8px !important;
    }

    .fila-corazon-publicacion {
        grid-template-columns: 30px minmax(0, 1fr) 20px !important;
        padding: 7px 8px !important;
    }

    .avatar-corazon-publicacion {
        width: 30px !important;
        height: 30px !important;
    }
}

/* v35e ux4 - restaurar botones de perfil, arreglar chat y ampliar corazones móvil */
.boton-ajustes-perfil {
    position: relative !important;
    flex: 0 0 44px !important;
    width: 44px !important;
    min-width: 44px !important;
    max-width: 44px !important;
    height: 44px !important;
    min-height: 44px !important;
    padding: 0 !important;
    margin: 0 !important;
    border-radius: 50% !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important;
    pointer-events: auto !important;
}

.icono-ajustes-perfil {
    display: none !important;
}

.panel-corazones-publicacion {
    border-color: rgba(42, 151, 255, 0.42) !important;
    background:
        linear-gradient(180deg, rgba(9, 31, 56, 0.97), rgba(5, 17, 32, 0.97)) !important;
}

.fila-corazon-publicacion {
    border-color: rgba(42, 151, 255, 0.26) !important;
    background: rgba(24, 103, 182, 0.16) !important;
}

.fila-corazon-publicacion:hover,
.fila-corazon-publicacion:focus-visible {
    border-color: rgba(83, 174, 255, 0.45) !important;
    background: rgba(42, 151, 255, 0.20) !important;
}

@media (max-width: 760px) {
    .boton-ajustes-perfil {
        flex-basis: 36px !important;
        width: 36px !important;
        min-width: 36px !important;
        max-width: 36px !important;
        height: 36px !important;
        min-height: 36px !important;
        border-radius: 12px !important;
        font-size: 0 !important;
    }

    .lista-corazones-limitada {
        overflow: visible !important;
    }

    .lista-corazones-limitada .panel-corazones-publicacion {
        width: calc(100vw - 16px) !important;
        max-width: calc(100vw - 16px) !important;
        box-sizing: border-box !important;
        margin-left: 50% !important;
        transform: translateX(-50%) !important;
    }
}



/* v35e ux5 - scroll mínimo y corazones a ancho completo en móvil */
@media (max-width: 760px) {
    .lista-corazones-limitada {
        width: 100vw !important;
        max-width: 100vw !important;
        margin-left: calc(50% - 50vw) !important;
        margin-right: calc(50% - 50vw) !important;
        padding-left: 8px !important;
        padding-right: 8px !important;
        box-sizing: border-box !important;
        overflow: visible !important;
    }

    .lista-corazones-limitada .panel-corazones-publicacion {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        transform: none !important;
        box-sizing: border-box !important;
    }
}


/* v35e ux6 - ajustes post-deploy: notificaciones, scroll y corazones móvil */
@media (max-width: 900px) {
    html.feed-destino-notificacion .contenedor-feed {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
}

@media (max-width: 760px) {
    .lista-corazones-limitada {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        box-sizing: border-box !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
    }

    .lista-corazones-limitada .panel-corazones-publicacion {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        transform: none !important;
        box-sizing: border-box !important;
    }
}

/* =========================================================
   Ajustes v35e-ux7 - chat móvil, navegación y ajedrez
   ========================================================= */
@media (max-width: 900px) {
    html.chat-movil-conversacion-activa-html,
    html:has(body.chat-movil-conversacion-activa) {
        width: 100% !important;
        height: 100% !important;
        overflow: hidden !important;
        overscroll-behavior: none !important;
        scroll-behavior: auto !important;
    }

    body.chat-movil-conversacion-activa {
        position: fixed !important;
        inset: 0 !important;
        width: 100% !important;
        height: 100dvh !important;
        min-height: 100dvh !important;
        max-height: 100dvh !important;
        overflow: hidden !important;
        overscroll-behavior: none !important;
    }

    body.chat-movil-conversacion-activa #chat-conversacion {
        position: fixed !important;
        top: var(--offset-viewport-chat, 0px) !important;
        right: 0 !important;
        bottom: auto !important;
        left: 0 !important;
        width: 100% !important;
        height: var(--alto-viewport-chat, 100dvh) !important;
        min-height: var(--alto-viewport-chat, 100dvh) !important;
        max-height: var(--alto-viewport-chat, 100dvh) !important;
        overflow: hidden !important;
        transform: translate3d(0, 0, 0) !important;
    }

    body.chat-movil-conversacion-activa .chat-panel-conversacion,
    body.chat-movil-conversacion-activa .envoltura-mensajes-chat,
    body.chat-movil-conversacion-activa .mensajes-chat {
        overflow-anchor: none !important;
        scroll-behavior: auto !important;
    }

    body.chat-movil-conversacion-activa .formulario-chat textarea#input-mensaje-chat {
        scroll-margin: 0 !important;
        transform: translateZ(0);
    }

    html.navegacion-movil-persistente-transicion-v32l .barra-superior,
    .barra-superior {
        pointer-events: auto !important;
    }

    body:not(.chat-movil-conversacion-activa) .capa-pantalla-movil-persistente:not(.capa-pantalla-movil-persistente-entrada):not(.capa-pantalla-movil-persistente-fondo) {
        pointer-events: none !important;
    }
}

.mesa-ajedrez #tablero-ajedrez .cuadricula-legal::after,
.mesa-ajedrez #tablero-ajedrez .cuadricula-legal-captura::after {
    content: "";
    position: absolute;
    left: 50% !important;
    top: 50% !important;
    right: auto !important;
    bottom: auto !important;
    box-sizing: border-box;
    pointer-events: none;
    z-index: 6;
    transform: translate(-50%, -50%) !important;
}

.mesa-ajedrez #tablero-ajedrez .cuadricula-legal::after {
    width: clamp(12px, 24%, 22px) !important;
    height: clamp(12px, 24%, 22px) !important;
    border: 0 !important;
    border-radius: 999px !important;
    background:
        radial-gradient(circle, rgba(175, 250, 255, 0.95) 0%, rgba(68, 219, 244, 0.82) 58%, rgba(23, 128, 175, 0.58) 100%) !important;
    box-shadow:
        0 0 0 1px rgba(218, 255, 255, 0.34),
        0 0 12px rgba(49, 210, 244, 0.42) !important;
}

.mesa-ajedrez #tablero-ajedrez .cuadricula-legal-captura::after {
    width: 72% !important;
    height: 72% !important;
    border: clamp(3px, 0.7vw, 5px) solid rgba(135, 236, 255, 0.88) !important;
    border-radius: 999px !important;
    background: transparent !important;
    box-shadow:
        inset 0 0 12px rgba(82, 218, 246, 0.18),
        0 0 12px rgba(43, 194, 240, 0.42) !important;
}

.mesa-ajedrez #tablero-ajedrez .cuadricula-legal-captura .pieza-ajedrez {
    z-index: 8;
}

.mesa-ajedrez #tablero-ajedrez .cuadricula-legal-unida-arriba::after,
.mesa-ajedrez #tablero-ajedrez .cuadricula-legal-unida-izquierda::after {
    border-width: clamp(3px, 0.7vw, 5px) !important;
}

.mesa-ajedrez #tablero-ajedrez .cuadricula-ultimo-movimiento {
    box-shadow: none !important;
}

.mesa-ajedrez #tablero-ajedrez .cuadricula-ultimo-movimiento::before {
    content: "";
    position: absolute;
    inset: 5px;
    z-index: 2;
    border-radius: 7px;
    background:
        linear-gradient(135deg, rgba(255, 226, 128, 0.34), rgba(66, 210, 255, 0.18));
    box-shadow:
        inset 0 0 0 2px rgba(255, 236, 169, 0.52),
        inset 0 0 22px rgba(255, 213, 89, 0.20),
        0 0 12px rgba(255, 218, 92, 0.16);
    pointer-events: none;
}

.mesa-ajedrez #tablero-ajedrez .cuadricula-ultimo-movimiento .pieza-ajedrez {
    z-index: 8;
}

.mesa-ajedrez #tablero-ajedrez .cuadricula-seleccionada {
    box-shadow:
        inset 0 0 0 3px rgba(255, 236, 155, 0.76),
        inset 0 0 20px rgba(255, 221, 111, 0.24) !important;
}

/* =========================================================
   v35e-ux8 - Ajustes finos navegación móvil y ajedrez
   ========================================================= */
@media (max-width: 900px) {
    html.navegacion-movil-persistente-montando,
    html.navegacion-movil-persistente-montando body {
        scroll-behavior: auto !important;
        overflow-anchor: none !important;
        overscroll-behavior: none !important;
    }

    .capa-pantalla-movil-persistente-entrada,
    .capa-pantalla-movil-persistente-fondo {
        touch-action: pan-y !important;
    }
}

.mesa-ajedrez #tablero-ajedrez .cuadricula-legal::after {
    width: clamp(16px, 31%, 30px) !important;
    height: clamp(16px, 31%, 30px) !important;
    background:
        radial-gradient(circle,
            rgba(222, 248, 255, 0.98) 0%,
            rgba(99, 225, 255, 0.92) 50%,
            rgba(54, 150, 255, 0.68) 100%) !important;
    box-shadow:
        0 0 0 1px rgba(232, 250, 255, 0.48),
        0 0 16px rgba(72, 205, 255, 0.48),
        0 0 26px rgba(78, 132, 255, 0.20) !important;
}

.mesa-ajedrez #tablero-ajedrez .cuadricula-legal-captura::after {
    width: 80% !important;
    height: 80% !important;
    border: clamp(4px, 0.82vw, 6px) solid rgba(126, 226, 255, 0.94) !important;
    background: transparent !important;
    box-shadow:
        inset 0 0 14px rgba(90, 215, 255, 0.18),
        0 0 16px rgba(66, 205, 255, 0.48),
        0 0 26px rgba(99, 139, 255, 0.20) !important;
}

.mesa-ajedrez #tablero-ajedrez .cuadricula-legal-captura .pieza-ajedrez {
    z-index: 9 !important;
}

/* =========================================================
   v35e-ux9 - secciones móviles en pausa y temporizador limpio
   ========================================================= */
@media (max-width: 720px) {
    html.navegacion-movil-salida-congelada-v35f,
    html.navegacion-movil-salida-congelada-v35f body {
        overscroll-behavior: none !important;
        scroll-behavior: auto !important;
    }

    html.navegacion-movil-salida-congelada-v35f body {
        overflow: hidden !important;
    }

    html.navegacion-movil-salida-congelada-v35f .capa-pantalla-movil-persistente {
        touch-action: none !important;
    }
}

.temporizador-blackjack {
    min-width: 64px;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.02em;
}


/* v36f hotfix: estado visible mientras un archivo termina de subirse. */
.miniatura-media-subiendo {
    width: 100px;
    height: 100px;
    flex: 0 0 100px;
    justify-content: center;
    align-items: center;
    gap: 9px;
    padding: 10px;
    box-sizing: border-box;
    border-radius: 10px;
    border: 1px solid rgba(220, 220, 220, 0.34);
    background: rgba(12, 16, 24, 0.78);
    text-align: center;
}

.indicador-media-subiendo {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    border: 3px solid rgba(255, 255, 255, 0.22);
    border-top-color: rgba(255, 255, 255, 0.88);
    animation: girar-indicador-media 0.85s linear infinite;
}

.texto-media-subiendo {
    font-size: 12px;
    line-height: 1.2;
    font-weight: 700;
    color: rgba(255, 255, 255, 0.9);
}

@keyframes girar-indicador-media {
    to {
        transform: rotate(360deg);
    }
}

/* v36f hotfix 2: texto visible durante subida de adjuntos de chat. */
.archivo-chat-preview-cargando {
    gap: 5px;
    padding: 5px;
    box-sizing: border-box;
}

.archivo-chat-preview-subiendo {
    max-width: 58px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 9px;
    line-height: 1;
    font-weight: 700;
    color: rgba(236, 244, 255, 0.9);
}
