/* sidebar-mobile-drawer.css — Sidebar como drawer en móvil
   (change `mobile-feed-autohide-chrome`, 2026-09-30).

   En ≤768px (mismo breakpoint que `useIsMobile` de Sidebar.jsx) la barra
   lateral sale del flujo flex de `.app-container`: vive fuera de pantalla y
   `.content-area` ocupa el 100% del ancho. Solo queda el rayo flotante
   (`.mobile-nav-trigger`, portal de MobileSidebarDrawer.jsx). Al abrir,
   `body.sidebar-drawer-open` desliza la barra y `.sidebar.expanded` (reglas
   de base.css) muestra las etiquetas.

   z-index: toolbar feed 50 < rayo 940 < grabador 950 / FAB chat 1000 /
   chat 1001 < backdrop 1150 < drawer 1200. */

@media (max-width: 768px) {
    .sidebar {
        position: fixed;
        top: 0;
        left: 0;
        bottom: 0;
        height: 100dvh;
        width: 260px;
        padding: 10px 20px;
        overflow-y: auto;
        background: var(--sbr-bg);
        z-index: 1200;
        transform: translateX(-100%);
        /* visibility evita que el teclado/lector de pantalla entre a los
           links mientras el drawer está cerrado. */
        visibility: hidden;
        transition: transform 0.25s ease, visibility 0s linear 0.25s;
    }
    body.sidebar-drawer-open .sidebar {
        transform: none;
        visibility: visible;
        transition: transform 0.25s ease;
        box-shadow: 8px 0 32px rgba(0, 0, 0, 0.55);
    }

    .mobile-nav-trigger {
        position: fixed;
        top: 12px;
        left: 12px;
        width: 40px;
        height: 40px;
        display: flex;
        align-items: center;
        justify-content: center;
        border-radius: 12px;
        border: 1px solid rgba(124, 77, 255, 0.45);
        background: rgba(15, 15, 21, 0.85);
        backdrop-filter: blur(8px);
        -webkit-backdrop-filter: blur(8px);
        color: var(--accent);
        filter: drop-shadow(0 0 8px var(--accent-glow));
        /* 940: por DEBAJO de toda pantalla completa (chat 1001, grabador
           móvil 950, modales) para que ninguna quede tapada por el rayo; por
           encima del contenido y del toolbar del feed (50). */
        z-index: 940;
        cursor: pointer;
        transition: transform 0.25s ease, opacity 0.25s ease;
    }
    /* Chat (Analista IA) abierto a pantalla completa: su header lleva el
       avatar arriba-izquierda, justo donde flota el rayo. */
    body.chat-open .mobile-nav-trigger,
    body:has(.chat-sidebar.active) .mobile-nav-trigger {
        display: none;
    }
    .mobile-nav-trigger:focus-visible {
        outline: 2px solid var(--accent);
        outline-offset: 2px;
    }

    .sidebar-drawer-backdrop {
        position: fixed;
        inset: 0;
        background: rgba(5, 5, 10, 0.6);
        z-index: 1150;
        animation: sidebar-drawer-fade 0.2s ease;
    }
}

/* Aviso legal (LFPDPPP) en móvil: la barra fija `#privacy-footer` (75px en
   ≤480px) se oculta y sus enlaces viven al pie del drawer
   (SidebarLegalLinks.jsx). `!important` le gana al `style.display = ''`
   inline que pone useViewRender al entrar al feed. */
@media (max-width: 768px) {
    #privacy-footer { display: none !important; }

    /* Layout del drawer: columna a alto completo. `.nav-menu` (flex:1 en
       base.css) empuja el footer (créditos/cuenta/salir + legal) al fondo. */
    body.sidebar-drawer-open .sidebar-react-root {
        flex: 1 0 auto;
        display: flex;
        flex-direction: column;
    }
    body.sidebar-drawer-open .sidebar-footer {
        padding-bottom: env(safe-area-inset-bottom, 0px);
    }

    /* Bloque legal compacto (~80px): texto chico y filas bajas — son enlaces
       de consulta ocasional, no navegación principal. */
    .sidebar-legal {
        display: flex;
        flex-direction: column;
        margin-top: 8px;
        padding-top: 8px;
        border-top: 1px solid var(--glass-border);
    }
    /* Anónimo: el footer no tiene más items → evitar doble divisor. */
    .sidebar-footer > .sidebar-legal:first-child {
        margin-top: 0;
        padding-top: 0;
        border-top: 0;
    }
    .sidebar-legal__link {
        display: flex;
        align-items: center;
        gap: 8px;
        justify-content: center;
        min-height: 32px;
        padding: 0 16px;
        border-radius: 6px;
        color: var(--sbr-text-dim);
        font-size: 12px;
        text-decoration: none;
    }
    .sidebar-legal__link:hover,
    .sidebar-legal__link:focus-visible { color: var(--sbr-violet); background: var(--sbr-violet-soft); }
    .sidebar-legal__copy {
        padding: 4px 16px 2px;
        text-align: center;
        color: var(--sbr-text-faint);
        font-size: 10px;
        line-height: 1.4;
    }
}

/* Reserva de espacio para el rayo flotante (~52px arriba-izquierda) en los
   headers que arrancan pegados al borde. Una regla por vista, solo donde el
   rayo taparía un control (auditoría T4). Mismo breakpoint que el rayo. */
@media (max-width: 768px) {
    .feed-top-row { padding-left: 56px; }
    /* Investigar (B2B): el panel lateral arranca en el borde y el rayo tapaba
       el título "B2B Intelligence". Selector con `.hub-layout` para ganarle a
       research.css, que se carga después. */
    .hub-layout .sp-header { padding-left: 56px; }
    .hub-layout .sp-header-sub { margin-left: 0; }
}

@keyframes sidebar-drawer-fade {
    from { opacity: 0; }
    to   { opacity: 1; }
}

@media (max-width: 768px) and (prefers-reduced-motion: reduce) {
    .sidebar,
    body.sidebar-drawer-open .sidebar {
        transition: none;
    }
    .sidebar-drawer-backdrop { animation: none; }
}

/* Vistas que ocultan la barra por completo (landing anónima:
   LandingPage.jsx pone `style="display: none"` inline en el aside): sin barra
   no hay drawer que abrir → tampoco rayo ni backdrop. */
body:has(.sidebar[style*="display: none"]) .mobile-nav-trigger,
body:has(.sidebar[style*="display: none"]) .sidebar-drawer-backdrop {
    display: none;
}

/* Desktop: el rayo y el backdrop nunca se muestran (el componente ya no los
   renderiza fuera de móvil; esto cubre el frame de transición al rotar). */
@media (min-width: 769px) {
    .mobile-nav-trigger,
    .sidebar-drawer-backdrop { display: none; }
}
