/* ============================================================
   RESPONSIVE GLOBAL - Sistema de Becas UEA
   Correcciones para móvil, tablet y cualquier dispositivo
   Breakpoints Bootstrap 3:
     xs: < 768px (smartphones portrait)
     sm: 768–991px (tablets / smartphones landscape)
     md: 992–1199px (desktops)
   ============================================================ */

/* ============================================================
   1. TABLAS GRIDVIEW — scroll horizontal en pantallas pequeñas
   ============================================================ */

/* Envuelve toda tabla GridView para scroll horizontal */
.grid-view,
.kv-grid-container {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.grid-view .table,
.kv-grid-container .table {
    min-width: 600px; /* evita colapso de columnas */
}

/* En pantallas medianas hacia abajo, las tablas del panel hacen scroll */
@media (max-width: 991px) {
    .panel-body .table-responsive,
    .panel-body .grid-view {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    /* Botones de acción en filas de tabla — separación táctil */
    .grid-view td .btn-xs,
    .grid-view td .btn-sm,
    .grid-view td .btn {
        margin-bottom: 2px;
        white-space: nowrap;
    }
}

/* ============================================================
   2. TOOLBAR DEL GRIDVIEW — botones y filtros en móvil
   ============================================================ */

@media (max-width: 767px) {
    /* Toolbar: apila botones y búsqueda */
    .kv-grid-toolbar {
        display: flex;
        flex-wrap: wrap;
        gap: 6px;
        align-items: center;
        margin-bottom: 10px;
    }

    .kv-grid-toolbar .btn {
        flex: 0 0 auto;
        font-size: 12px;
        padding: 6px 10px;
    }

    /* Búsqueda del toolbar ocupa todo el ancho */
    .kv-search-container {
        width: 100% !important;
        flex: 1 1 100%;
    }

    .kv-search-container .input-group {
        width: 100%;
    }

    /* Paginación centrada y compacta */
    .kv-panel-pager {
        text-align: center;
        overflow-x: auto;
    }

    .kv-panel-pager .pagination {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
    }

    /* Resumen de la paginación debajo */
    .kv-panel-after {
        text-align: center;
        font-size: 12px;
    }
}

/* ============================================================
   3. PANELES (panel-heading, panel-body) — móvil
   ============================================================ */

@media (max-width: 767px) {
    .panel-heading {
        padding: 10px 12px !important;
    }

    .panel-heading h3,
    .panel-heading .panel-title {
        font-size: 14px;
    }

    .panel-body {
        padding: 10px;
    }

    /* Título del panel con botón alineados */
    .panel-heading .pull-right {
        margin-top: 2px;
    }
}

/* ============================================================
   4. FORMULARIOS — columnas en móvil apiladas
   ============================================================ */

@media (max-width: 767px) {
    /* Columnas Bootstrap del formulario se apilan a ancho completo */
    .form-horizontal .col-sm-1,
    .form-horizontal .col-sm-2,
    .form-horizontal .col-sm-3,
    .form-horizontal .col-sm-4,
    .form-horizontal .col-sm-5,
    .form-horizontal .col-sm-6,
    .form-horizontal .col-sm-7,
    .form-horizontal .col-sm-8,
    .form-horizontal .col-sm-9,
    .form-horizontal .col-sm-10,
    .form-horizontal .col-sm-11,
    .form-horizontal .col-sm-12 {
        width: 100%;
        float: none;
    }

    /* Reducir padding de formularios en modales */
    .modal-body {
        padding: 12px;
    }

    .modal-footer {
        padding: 10px 12px;
        text-align: center;
    }

    .modal-footer .btn {
        width: 100%;
        margin-bottom: 6px;
    }

    .modal-footer .btn:last-child {
        margin-bottom: 0;
    }

    /* Labels de formulario horizontal en móvil */
    .form-horizontal .control-label {
        text-align: left;
        padding-top: 0;
        margin-bottom: 4px;
    }
}

/* ============================================================
   5. MODALES — full-screen en smartphones
   ============================================================ */

@media (max-width: 767px) {
    .modal-dialog {
        margin: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        height: 100%;
    }

    .modal-content {
        height: 100%;
        min-height: 100vh;
        border-radius: 0;
        display: flex;
        flex-direction: column;
    }

    .modal-body {
        flex: 1;
        overflow-y: auto;
    }

    /* Excepto modales pequeños explícitamente definidos */
    .modal-sm .modal-dialog {
        width: 90% !important;
        margin: 30px auto !important;
        height: auto;
        min-height: unset;
    }
}

@media (min-width: 768px) and (max-width: 991px) {
    /* Tablet: modales más amplios */
    .modal-lg {
        width: 95% !important;
    }
}

/* ============================================================
   6. NOVEDADES — resumen de estudiante flex en móvil
   ============================================================ */

@media (max-width: 767px) {
    .novedades-resumen-estudiante {
        flex-direction: column;
        gap: 12px;
        padding: 16px;
    }

    .novedades-resumen-estudiante .info-item {
        min-width: unset;
        width: 100%;
        border-bottom: 1px solid rgba(255,255,255,0.15);
        padding-bottom: 8px;
    }

    .novedades-resumen-estudiante .info-item:last-child {
        border-bottom: none;
        padding-bottom: 0;
    }

    .novedades-resumen-estudiante .info-value {
        font-size: 14px;
    }

    /* Pagos pendientes */
    .novedades-pagos-pendientes .pago-item {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
    }

    .novedades-pagos-pendientes .pago-valor {
        align-self: flex-end;
        font-size: 14px;
    }

    /* Tabla de validación */
    .table-validacion > tbody > tr {
        display: block;
    }

    .table-validacion > tbody > tr > th,
    .table-validacion > tbody > tr > td {
        display: block;
        width: 100% !important;
    }

    .th-validacion-label {
        width: 100% !important;
        border-bottom: none !important;
        padding-bottom: 4px !important;
    }
}

/* ============================================================
   7. CONTENT-WRAPPER y SIDEBAR — AdminLTE en móvil
   ============================================================ */

@media (max-width: 767px) {
    /* Contenido no queda debajo o cortado por el sidebar */
    .content-wrapper {
        padding: 0 !important;
        margin-left: 0 !important;
    }

    .content-wrapper > .content {
        padding: 10px 10px 20px 10px;
    }

    /* Footer adaptado */
    .main-footer {
        font-size: 12px;
        padding: 10px 15px;
        line-height: 1.6;
        text-align: center;
    }

    .main-footer .pull-right {
        float: none !important;
        display: block;
        text-align: center;
        margin-bottom: 4px;
    }
}

/* ============================================================
   8. HEADER AdminLTE — logo y usuario
   ============================================================ */

@media (max-width: 767px) {
    /* Logo más compacto */
    .main-header .logo {
        width: 50px !important;
        padding: 0 !important;
    }

    .main-header .logo .logo-lg {
        display: none !important;
    }

    .main-header .logo .logo-mini {
        display: inline-block !important;
        font-size: 14px;
    }

    /* El menú de usuario en navbar */
    .navbar-custom-menu > .nav > li > a {
        padding: 15px 10px;
    }

    /* Dropdown del usuario */
    .user-menu .dropdown-menu {
        width: 200px !important;
        right: 0;
        left: auto;
    }
}

/* ============================================================
   9. BOTONES DE ACCIÓN GLOBAL — táctiles en móvil
   ============================================================ */

@media (max-width: 767px) {
    .btn-crear,
    .btn-reset,
    .btn-modal-guardar,
    .btn-modal-cerrar,
    .btn-modal-editar {
        font-size: 13px;
        padding: 9px 14px;
    }

    /* Grupo de botones en formularios */
    .form-group .btn + .btn {
        margin-top: 4px;
    }
}

/* ============================================================
   10. GRIDS BOOTSTRAP — columnas en tablet y smartphone
   ============================================================ */

@media (max-width: 767px) {
    /* col-sm-* se comportan como col-xs-12 si no hay col-xs-* definido */
    [class*="col-sm-"]:not([class*="col-xs-"]) {
        width: 100%;
        float: none;
    }
}

/* ============================================================
   11. BREADCRUMBS — ocultar en móvil muy pequeño
   ============================================================ */

@media (max-width: 480px) {
    .breadcrumb-container {
        display: none;
    }
}

/* ============================================================
   12. IMÁGENES Y MEDIA — responsivos
   ============================================================ */

img {
    max-width: 100%;
    height: auto;
}

/* ============================================================
   13. TIPOGRAFÍA — ajuste de tamaño en móvil
   ============================================================ */

@media (max-width: 767px) {
    h1 { font-size: 22px; }
    h2 { font-size: 18px; }
    h3 { font-size: 16px; }

    .panel-heading h3 { font-size: 14px; }
}

/* ============================================================
   14. UTILIDADES RESPONSIVE
   ============================================================ */

/* Visibilidad responsive */
.visible-mobile  { display: none !important; }
.hidden-mobile   { display: block !important; }

@media (max-width: 767px) {
    .visible-mobile  { display: block !important; }
    .hidden-mobile   { display: none !important; }
}

/* Texto centrado en móvil */
@media (max-width: 767px) {
    .text-center-xs { text-align: center !important; }
    .mt-xs-10      { margin-top: 10px !important; }
    .mb-xs-10      { margin-bottom: 10px !important; }
}

