/* =========================================================================
   MOBILE.CSS — CAPA RESPONSIVA EXCLUSIVA (EduMaster Pro / InfoTech Edu)
   Versión: v20260404-0730
   Propósito: Adaptar la interfaz para tablets y móviles SIN tocar el layout
   de escritorio. Se carga al final de la cadena de estilos para tener
   máxima especificidad de anulación.

   Estructura de Breakpoints:
     Tablet  → 481px – 768px  (rejillas de 2 columnas, drawer lateral)
     Mobile  → ≤ 480px         (stack vertical total, 1 columna)
   ========================================================================= */


/* =========================================================================
   SECCIÓN 1 — CONTROL DE DESBORDAMIENTO GLOBAL (todas las pantallas)
   Garantiza que nunca aparezca scroll horizontal accidental.
   ========================================================================= */
html {
    overflow-x: hidden;
}

body,
.quantum-main,
.quantum-layout,
.contenedor-cards-dual,
.app-container-estudiante,
.taller-milton-layout {
    overflow-x: hidden !important;
}


/* =========================================================================
   SECCIÓN 2 — OPTIMIZACIÓN DE TOUCH TARGETS (todas las pantallas)
   Estándar WCAG / Apple HIG: área mínima táctil de 44 × 44 px.
   ========================================================================= */
button,
a,
.nav-item,
.nav-link,
.est-tab,
.pill-filter,
.btn-quantum-s,
.btn-quantum,
.boton-brillante,
.btn-super-admin,
.btn-pro-est,
.btn-pro-doc,
.btn-tool-v75,
.boton-salir-f {
    min-height: 44px !important;
    padding-top: max(10px, 0.6rem);
    padding-bottom: max(10px, 0.6rem);
    box-sizing: border-box !important;
    cursor: pointer;
}

/* Inputs y controles de formulario — 16px evita el zoom automático en iOS */
input,
select,
textarea {
    font-size: 16px !important;
    box-sizing: border-box !important;
    min-height: 44px !important;
    -webkit-appearance: none;
    appearance: none;
}

/* Excepción: checkboxes y radios no necesitan 44px de altura y deben ser visibles */
input[type="checkbox"],
input[type="radio"] {
    min-height: unset !important;
    width: auto !important;
    -webkit-appearance: checkbox !important;
    appearance: checkbox !important;
    display: inline-block !important;
}

input[type="radio"] {
    -webkit-appearance: radio !important;
    appearance: radio !important;
}



/* =========================================================================
   SECCIÓN 3 — TABLET (481px – 768px)
   Ajuste de rejillas/grid, sidebar como drawer lateral.
   ========================================================================= */
@media (min-width: 481px) and (max-width: 768px) {

    /* — Layout principal — */
    .quantum-layout {
        flex-direction: column !important;
    }

    .quantum-main {
        padding: 3% !important;
        width: 100vw !important;
        max-width: 100% !important;
        /* [FIX SIDEBAR FIJO] En tablet el sidebar es drawer oculto, sin margen */
        margin-left: 0 !important;
        box-sizing: border-box;
    }

    /* — Header de pantalla — */
    .quantum-header {
        flex-wrap: wrap !important;
        gap: 1rem !important;
        margin-bottom: 3% !important;
        width: 100%;
    }

    /* — Sidebar como drawer lateral — */
    .quantum-sidebar {
        position: fixed !important;
        top: 0 !important;
        left: -100% !important;
        width: 40vw !important;
        max-width: 300px !important;
        height: 100vh !important;
        z-index: 999999 !important;
        transition: left 0.4s cubic-bezier(0.87, 0, 0.13, 1) !important;
        box-shadow: 10vw 0 40px rgba(0, 0, 0, 0.9);
        padding: 3% !important;
        overflow-y: auto;
    }

    .quantum-sidebar.open {
        left: 0 !important;
    }

    /* Botón hamburguesa */
    #q-sidebar-toggle {
        display: flex !important;
        align-items: center;
        justify-content: center;
        background: var(--gradiente-main) !important;
        border: none !important;
        color: white;
        border-radius: 12px;
        min-width: 44px !important;
    }

    /* Botón cerrar sidebar */
    #q-sidebar-close {
        display: flex !important;
        align-items: center;
        justify-content: center;
        background: rgba(239, 68, 68, 0.2) !important;
        color: #ef4444;
        border: 1px solid rgba(239, 68, 68, 0.4);
        border-radius: 50%;
        min-width: 44px !important;
    }

    /* — Rejillas 2 columnas — */
    .grid-duo,
    .grid-registro-horizontal,
    .evaluacion-grid,
    .dashboard-grid {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 3% !important;
    }

    /* — Cards generales — */
    .q-card {
        padding: 4% !important;
        border-radius: 20px !important;
        margin-bottom: 3% !important;
        width: 100% !important;
        box-sizing: border-box;
    }

    /* — Tablas con scroll horizontal propio — */
    .tabla-moderna,
    .tabla-moderna-v2,
    table {
        display: block !important;
        width: 100% !important;
        overflow-x: auto !important;
        white-space: nowrap !important;
        overscroll-behavior-x: contain;
    }

    /* — Login Dual — */
    .contenedor-cards-dual {
        flex-direction: column !important;
        align-items: center !important;
        gap: 1.5rem !important;
        width: 100% !important;
        max-width: 100% !important;
        padding: 0 1rem !important;
        box-sizing: border-box !important;
    }

    .card-acceso {
        width: 100% !important;
        max-width: 100% !important;
        padding: 2rem !important;
    }

    .logo-premium-fusion {
        max-width: 70% !important;
    }

    /* — Taller sidebar fijo → stack — */
    .taller-milton-layout {
        flex-direction: column !important;
    }

    .taller-sidebar {
        width: 100% !important;
        max-width: 100% !important;
        padding: 2rem 1.5rem !important;
    }

    .taller-main {
        padding: 2rem 1.5rem !important;
        width: 100% !important;
    }

    /* — Splash / logo de carga — */
    #splash-rescate .logo-splash img {
        width: 70% !important;
        max-width: 280px !important;
        height: auto !important;
    }

    /* — Chat sidebar — */
    .chat-quantum-sidebar {
        width: 100% !important;
        max-width: 100% !important;
    }

    .quantum-layout.chat-open {
        padding-right: 0 !important;
    }
}


/* =========================================================================
   SECCIÓN 4 — MOBILE (≤ 480px)
   Stack vertical total, 1 columna, experiencia táctil optimizada.
   ========================================================================= */
@media (max-width: 480px) {

    /* — Layout principal — */
    .quantum-layout {
        flex-direction: column !important;
    }

    .quantum-main {
        padding: 5% !important;
        width: 100vw !important;
        max-width: 100% !important;
        /* [FIX SIDEBAR FIJO] En móvil el sidebar es drawer oculto, sin margen */
        margin-left: 0 !important;
        box-sizing: border-box;
    }

    /* — Header de la pantalla — */
    .quantum-header {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 1rem !important;
        margin-bottom: 5% !important;
        width: 100%;
        flex-wrap: wrap !important;
    }

    .quantum-header > div:first-child {
        display: flex !important;
        width: 100%;
        justify-content: flex-start;
        align-items: center;
        gap: 1rem;
    }

    /* — Sidebar como drawer full-width — */
    .quantum-sidebar {
        position: fixed !important;
        top: 0 !important;
        left: -100% !important;
        width: 85vw !important;
        max-width: 320px !important;
        height: 100vh !important;
        z-index: 999999 !important;
        transition: left 0.4s cubic-bezier(0.87, 0, 0.13, 1) !important;
        box-shadow: 5vw 0 40px rgba(0, 0, 0, 0.9);
        padding: 5% !important;
        overflow-y: auto;
    }

    .quantum-sidebar.open {
        left: 0 !important;
    }

    /* Botón hamburguesa */
    #q-sidebar-toggle {
        display: flex !important;
        align-items: center;
        justify-content: center;
        background: var(--gradiente-main) !important;
        border: none !important;
        color: white;
        border-radius: 12px;
        min-width: 44px !important;
    }

    /* Botón cerrar sidebar */
    #q-sidebar-close {
        display: flex !important;
        align-items: center;
        justify-content: center;
        background: rgba(239, 68, 68, 0.2) !important;
        color: #ef4444;
        border: 1px solid rgba(239, 68, 68, 0.4);
        border-radius: 50%;
        min-width: 44px !important;
    }

    /* — Badge de usuario — */
    .header-user-badge {
        width: 100% !important;
        justify-content: space-between !important;
        box-sizing: border-box;
    }

    /* — Grids → stack vertical — */
    .grid-duo,
    .grid-registro-horizontal,
    .periodos-toggle-grid,
    .evaluacion-grid,
    .dashboard-grid {
        display: flex !important;
        flex-direction: column !important;
        gap: 1rem !important;
        width: 100% !important;
    }

    /* — Cards — */
    .q-card {
        padding: 5% !important;
        border-radius: 20px !important;
        margin-bottom: 5% !important;
        width: 100% !important;
        box-sizing: border-box;
    }

    /* — Banner bienvenida — */
    .banner-pro {
        padding: 5% !important;
        flex-direction: column !important;
        border-radius: 20px !important;
        text-align: center;
        align-items: center !important;
        gap: 1rem;
        width: 100% !important;
        box-sizing: border-box;
    }

    /* — Banner de anuncios institucionales — */
    .banner-anuncio-ie {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 1rem !important;
        padding: 5% !important;
        width: 100% !important;
        box-sizing: border-box;
    }

    /* — Tablas con scroll horizontal propio — */
    .tabla-moderna,
    .tabla-moderna-v2,
    table {
        display: block !important;
        width: 100% !important;
        overflow-x: auto !important;
        white-space: nowrap !important;
        overscroll-behavior-x: contain;
    }

    /* — Inputs y selects full-width — */
    input[type="text"],
    input[type="number"],
    input[type="password"],
    input[type="email"],
    input[type="search"],
    input[type="tel"],
    select,
    textarea {
        width: 100% !important;
        margin-bottom: 0.8rem !important;
        box-sizing: border-box !important;
    }

    /* — Tipografía base — */
    h1 { font-size: 1.8rem !important; }
    h2 { font-size: 1.4rem !important; }
    h3 { font-size: 1.15rem !important; }

    /* ── LOGIN DUAL ── */
    .pantalla-login-dual {
        padding: 1rem !important;
    }

    .contenedor-cards-dual {
        flex-direction: column !important;
        align-items: center !important;
        gap: 1.2rem !important;
        width: 100% !important;
        max-width: 100% !important;
        padding: 0 !important;
        box-sizing: border-box !important;
    }

    .card-acceso {
        width: 100% !important;
        max-width: 100% !important;
        padding: 1.5rem 1.2rem !important;
        border-radius: 24px !important;
        box-sizing: border-box !important;
    }

    .card-acceso h3 {
        font-size: 1.5rem !important;
    }

    .card-acceso p {
        font-size: 0.95rem !important;
        margin-bottom: 1.5rem !important;
    }

    /* Logo del login */
    .logo-premium-fusion {
        max-width: 80% !important;
        margin-bottom: 1rem !important;
    }

    .titulo-fusion-premium {
        font-size: 2rem !important;
        letter-spacing: -1px !important;
    }

    /* — Splash de carga — */
    #splash-rescate .logo-splash img {
        width: 85% !important;
        max-width: 260px !important;
        height: auto !important;
        margin: 0 auto;
        display: block;
    }

    /* — Botón global de actualización (top-left) — */
    #btn-global-refresh {
        min-height: 44px !important;
        min-width: 44px !important;
        width: 44px !important;
        height: 44px !important;
    }

    /* — Taller sidebar fijo → stack vertical — */
    .taller-milton-layout {
        flex-direction: column !important;
        height: auto !important;
        overflow-y: auto !important;
    }

    .taller-sidebar {
        width: 100% !important;
        max-width: 100% !important;
        padding: 1.5rem 1rem !important;
        height: auto !important;
        overflow-y: visible !important;
        order: 2;
    }

    .taller-main {
        padding: 2rem 1rem !important;
        width: 100% !important;
        order: 1;
    }

    /* — Visores de dos paneles (flex inline-styles) — */
    div[style*="min-height: 100vh"],
    div[style*="min-height:100vh"],
    .modal-visor,
    .visor-grid {
        flex-direction: column !important;
        height: auto !important;
        overflow-y: auto !important;
        display: flex !important;
        width: 100% !important;
    }

    /* — Contenedores con ancho fijo en inline style — */
    div[style*="width: 350px"],
    div[style*="width:350px"],
    div[style*="width: 300px"],
    div[style*="width:300px"],
    div[style*="width: 340px"],
    div[style*="width:340px"] {
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        position: relative !important;
    }

    div[style*="flex: 1"],
    div[style*="flex:1"] {
        width: 100% !important;
        max-width: 100% !important;
        padding: 5% !important;
        box-sizing: border-box !important;
    }

    /* — Botón de limpieza profunda — reposicionado para móvil — */
    #btn-limpieza-profunda {
        top: auto !important;
        bottom: 5% !important;
        left: 50% !important;
        transform: translateX(-50%) !important;
        border-radius: 50px !important;
        padding: 5% 10% !important;
        font-size: 0.9rem !important;
        z-index: 9999999 !important;
        box-shadow: 0 2vw 4vw rgba(0, 0, 0, 0.5) !important;
    }

    /* — Chat Sidebar — pantalla completa en móvil — */
    .chat-quantum-sidebar {
        width: 100% !important;
        max-width: 100% !important;
    }

    /* — Modal del selector de contexto global — */
    #selector-contexto-global {
        width: 100% !important;
        justify-content: center !important;
        padding: 0.3rem 0.7rem !important;
        order: 3;
        box-sizing: border-box;
    }

    /* — Pies de tarjeta con botones dobles → columna — */
    .modal-footer-dual {
        flex-direction: column !important;
    }

    .modal-footer-dual button {
        width: 100% !important;
    }

    /* — Contenido de modal en móvil — */
    .modal-content-ie {
        padding: 1.2rem !important;
        border-radius: 20px !important;
        max-height: 95vh !important;
        width: calc(100vw - 2rem) !important;
        box-sizing: border-box !important;
    }
}


/* =========================================================================
   SECCIÓN 5 — MICRO-MOBILE (≤ 360px)
   Ajustes adicionales para pantallas muy estrechas (teléfonos compactos).
   ========================================================================= */
@media (max-width: 360px) {
    .quantum-main {
        padding: 3% !important;
    }

    h1 { font-size: 1.5rem !important; }
    h2 { font-size: 1.2rem !important; }

    .card-acceso {
        padding: 1.2rem 1rem !important;
        border-radius: 18px !important;
    }

    .titulo-fusion-premium {
        font-size: 1.6rem !important;
    }

    .banner-pro {
        padding: 1rem !important;
    }

    .q-card {
        padding: 1rem !important;
    }
}
