.layout {
    min-height: 100vh;
}

.sidebar {
    width: 55px;
    height: 100vh;
    height: 100dvh;

    background: rgba(6, 24, 38, 0.45);
    backdrop-filter: blur(6px) saturate(1.1);
    -webkit-backdrop-filter: blur(6px) saturate(1.1);
    border-right: 1px solid var(--borde_form);

    position: fixed;
    top: 0;
    left: 0;

    display: flex;
    flex-direction: column;

    z-index: 1000;
}

.sidebar-progress {
    position: absolute;
    top: 0;
    left: 0;
    width: 3px;
    height: 0;
    background: linear-gradient(to bottom, #66140D 0%, #F1584B 100%);
    z-index: 3;
    transform-origin: top;
    transition: height 0.05s linear;
}

.sidebar-progress::after {
    content: '';
    position: absolute;
    bottom: -4px;
    left: 50%;
    transform: translateX(-50%);
    width: 12px;
    height: 12px;
    background: radial-gradient(circle, #F1584B 0%, rgba(241, 88, 75, 0) 70%);
    border-radius: 50%;
    filter: blur(3px);
    pointer-events: none;
}

.sidebar a {
    flex: 1;
    min-height: 0;

    color: var(--gris);

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

    writing-mode: vertical-rl;
    text-transform: uppercase;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 1px;

    border-bottom: 2px solid var(--borde_form);

    transition: color 0.2s ease;
}

.sidebar a:last-child {
    border-bottom: none;
}

.sidebar a:hover,
.sidebar a.active {
    color: var(--amarillo);
}

.sidebar .sidebar-attention {
    position: relative;
    color: var(--amarillo);
    text-shadow:
        0 0 8px rgba(255, 200, 87, 0.85),
        0 0 18px rgba(255, 200, 87, 0.52);
    animation: sidebar-chat-pulse 1.65s ease-in-out infinite;
}

.sidebar .sidebar-attention::before {
    content: "";
    position: absolute;
    inset: 8px 9px;
    border-radius: 999px;
    background: radial-gradient(circle, rgba(255, 200, 87, 0.28) 0%, rgba(255, 200, 87, 0.10) 42%, rgba(255, 200, 87, 0) 72%);
    filter: blur(8px);
    opacity: 0.85;
    pointer-events: none;
    animation: sidebar-chat-halo 1.65s ease-in-out infinite;
}

.sidebar .sidebar-albion-link {
    flex: 1;
    min-height: 0;
    color: var(--gris);
    border-top: 2px solid var(--borde_form);
    border-bottom: none;
    font-size: 12px;
    letter-spacing: 1.4px;
    font-weight: 800;
}

.sidebar .sidebar-albion-link:hover {
    color: var(--amarillo);
}

.sidebar .sidebar-logout-link {
    flex: 1;
    background: var(--rojo_claro);
    color: var(--fondo);
    border-bottom: none;
    font-weight: 900;
}

.sidebar .sidebar-logout-link:hover {
    color: var(--fondo);
    background: #ff6659;
}

.sidebar-num {
    margin-bottom: 4px;
}

@keyframes sidebar-chat-pulse {
    0%, 100% {
        text-shadow:
            0 0 6px rgba(255, 200, 87, 0.62),
            0 0 14px rgba(255, 200, 87, 0.34);
    }

    50% {
        text-shadow:
            0 0 12px rgba(255, 200, 87, 1),
            0 0 28px rgba(255, 200, 87, 0.72),
            0 0 42px rgba(255, 200, 87, 0.42);
    }
}

@keyframes sidebar-chat-halo {
    0%, 100% {
        opacity: 0.42;
        transform: scale(0.92);
    }

    50% {
        opacity: 1;
        transform: scale(1.08);
    }
}

.content {
    min-width: 0;
    padding-left: 40px;
}

/* En el index los paneles tienen que extenderse full-width
   (de izquierda a derecha) para que las imagenes se vean a traves
   del sidebar transparente. Anulamos el padding del .content. */
.content > .index-page {
    margin-left: -40px;
}
