/**
 * DIBA 2025 - MOBILE OPTIMIZADO
 * 
 * Arquitectura CSS: Selectores específicos sin !important
 * Patrón: body.diba + contexto (#top_cerca, #menu_large, footer)
 * Solo estilos mobile (<768px) y hamburguesa (<992px)
 */

/* ========================================
   1. TOP HEADER - Arriba izquierda sin espacios
   ======================================== */

@media (max-width: 767px) {
    body.diba #top_cerca {
        padding: 0;
        margin: 0;
    }
    
    body.diba #top_cerca .row {
        margin: 0;
    }
    
    body.diba #top_cerca .top-header-links {
        text-align: left;
        padding: 0.5rem 15px;
    }
    
    body.diba #top_cerca .top-link {
        margin-right: 8px;
        min-height: 44px;
        padding: 8px 4px;
        display: inline-flex;
        align-items: center;
    }
    
    body.diba #top_cerca .separator {
        margin: 0 4px;
    }
}

@media (max-width: 768px) {
    #DRESampliada12 {
        padding: 0;
    }
    
    #DRESampliada12 .panel.panel-default {
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
}

/* ========================================
   2. MENÚ HAMBURGUESA (<992px) - BOOTSTRAP 3 ONLY
   ======================================== */

@media (max-width: 991px) {
    /* Contenedor alineado a la izquierda */
    body.diba #menu_large .navbar-header {
        width: 100%;
        text-align: left;
        padding: 12px 15px;
    }
    
    /* Botón hamburguesa Bootstrap 3 */
    body.diba #menu_large .navbar-toggle {
        float: left;
        margin: 0;
        padding: 8px 12px;
        min-width: 44px;
        min-height: 44px;
        background-color: transparent;
        background-image: none;
        border: none;
        border-radius: 4px;
    }
    
    body.diba #menu_large .navbar-toggle:hover,
    body.diba #menu_large .navbar-toggle:focus,
    body.diba #menu_large .navbar-toggle:active {
        background-color: transparent;
        border: none;
        outline: none;
    }
    
    /* Barras del icono Bootstrap 3 - SOLO GRISES */
    body.diba #menu_large .navbar-toggle .icon-bar {
        display: block;
        width: 22px;
        height: 2px;
        border-radius: 1px;
        background-color: #888;
    }
    
    body.diba #menu_large .navbar-toggle .icon-bar + .icon-bar {
        margin-top: 4px;
    }
    
    /* Asegurar que no haya borde */
    body.diba #menu_large .navbar-default .navbar-toggle {
        border: none;
    }
    
    body.diba #menu_large .navbar-default .navbar-toggle .icon-bar,
    body.diba #menu_large .navbar-default .navbar-toggle:hover .icon-bar,
    body.diba #menu_large .navbar-default .navbar-toggle:focus .icon-bar {
        background-color: #888;
    }
    
    /* Área de colapso Bootstrap 3 */
    body.diba #menu_large .navbar-collapse,
    body.diba #menu_large #menu-principal {
        border: none;
        box-shadow: none;
        margin-top: 8px;
        padding: 0;
    }
    
    /* Estados collapse Bootstrap 3 - CRÍTICO */
    /* IMPORTANTE: Estos estilos sobrescriben cualquier interferencia de Angular UI Bootstrap */
    body.diba #menu_large .navbar-collapse.collapse {
        display: none;
        height: 0;
        overflow: hidden;
        visibility: hidden;
    }
    
    body.diba #menu_large .navbar-collapse.collapse.in {
        display: block;
        height: auto;
        overflow-y: auto;
        max-height: 80vh;
        visibility: visible;
    }
    
    body.diba #menu_large .navbar-collapse.collapsing {
        height: 0;
        overflow: hidden;
        transition: height 0.35s ease;
        visibility: visible;
    }
    
    /* Prevenir cierre al hacer click dentro del menú */
    body.diba #menu_large .navbar-collapse {
        pointer-events: auto;
    }
    
    /* Lista vertical Bootstrap 3 */
    body.diba #menu_large #ul_menuprin {
        width: 100%;
        margin: 0;
        padding: 0;
    }
    
    body.diba #menu_large #ul_menuprin > li {
        width: 100%;
        float: none;
        display: block;
        border: none;
    }
    
    /* Enlaces del menú Bootstrap 3 */
    body.diba #menu_large #ul_menuprin > li > a {
        display: block;
        padding: 12px 16px;
        border: none;
        min-height: 44px;
        line-height: 1.4;
        white-space: normal;
        word-wrap: break-word;
        color: #333;
        text-decoration: none;
        text-align: center;
    }
    
    body.diba #menu_large #ul_menuprin > li > a:hover,
    body.diba #menu_large #ul_menuprin > li > a:focus {
        background-color: #f8f8f8;
        color: #9D2235;
        text-decoration: none;
    }
    
    body.diba #menu_large #ul_menuprin > li:last-child > a {
        border-bottom: none;
    }
}

/* Desktop: menú horizontal Bootstrap 3 */
@media (min-width: 992px) {
    body.diba #menu_large .navbar-header {
        display: none;
    }
    
    body.diba #menu_large .navbar-collapse {
        display: block;
        height: auto;
        overflow: visible;
        border-top: 0;
    }
    
    /* Distribución horizontal de items */
    body.diba #menu_large #ul_menuprin {
        display: table;
        width: 100%;
        table-layout: fixed;
    }
    
    body.diba #menu_large #ul_menuprin > li {
        display: table-cell;
        float: none;
        text-align: center;
    }
    
    body.diba #menu_large #ul_menuprin > li > a {
        padding: 15px 10px;
        font-weight: 700;
        text-align: center;
    }
}

/* ========================================
   3. FOOTER
   ======================================== */

/* Footer centralizado en diba2025-08-footer.css */

/* ========================================
   4. BANNER - Mobile
   ======================================== */

@media (max-width: 767px) {
    body.diba #banner {
        padding: 32px 16px;
        text-align: center;
    }
    
    body.diba #banner h1 {
        font-size: 28px;
        line-height: 1.3;
        max-width: 100%;
    }
    
    body.diba #banner.banner-ciutadania {
        background-position: right top;
        background-size: 400%;
        background-repeat: no-repeat;
    }
}

/* Media query >= 768px eliminado para evitar sobrescribir diba2025-06-banner.css */
/* El font-size del h1 debe mantenerse en 32px según especificaciones */
/* @media (min-width: 768px) {
    body.diba #banner {
        padding: 40px 20px;
    }
    
    body.diba #banner h1 {
        font-size: 36px;
    }
} */

/* ========================================
   5. UTILITIES GENERALES
   ======================================== */

/* Fuente base */
body.diba {
    /* Fuente DiBa oficial desde CDN + fallbacks */
    font-family: "DiBa", Helvetica, Arial, sans-serif !important;
    font-size: 16px;
    line-height: 1.5;
    color: #333;
}

/* Transiciones */
body.diba a,
body.diba button,
body.diba .navbar-toggle {
    transition: background-color 0.15s ease-in-out, 
                color 0.15s ease-in-out, 
                border-color 0.15s ease-in-out;
}

/* Focus accesibilidad */
/* NOTA: Estilos de focus comentados para no interferir con Bootstrap 3 en formularios.
   Los elementos marco (header, breadcrumbs, footer) no requieren estos estilos.

body.diba a:focus,
body.diba .navbar-toggle:focus {
    outline: 2px solid #9D2235;
    outline-offset: 2px;
}
*/

/* Comentado para evitar interferencia con formularios Bootstrap 3:
body.diba button:focus,
body.diba input:focus,
body.diba select:focus,
body.diba textarea:focus {
    outline: 2px solid #9D2235;
    outline-offset: 2px;
}
*/

/* ========================================
   6. CLEARFIX Bootstrap 3
   ======================================== */

body.diba .clearfix:before,
body.diba .clearfix:after,
body.diba .row:before,
body.diba .row:after {
    content: " ";
    display: table;
}

body.diba .clearfix:after,
body.diba .row:after {
    clear: both;
}

/* ========================================
   7. DROPDOWN USUARIO
   ======================================== */

body.diba #top_cerca .dropdown {
    position: relative;
    display: inline-block;
}

body.diba #top_cerca .dropdown-toggle .caret {
    display: inline-block;
    width: 0;
    height: 0;
    margin-left: 4px;
    vertical-align: middle;
    border-top: 4px solid;
    border-right: 4px solid transparent;
    border-left: 4px solid transparent;
}

body.diba #top_cerca .dropdown-menu {
    position: absolute;
    top: 100%;
    right: 0;
    left: auto;
    z-index: 1000;
    display: none;
    min-width: 160px;
    padding: 5px 0;
    margin: 2px 0 0;
    font-size: 14px;
    background-color: #fff;
    border: 1px solid rgba(0,0,0,.15);
    border-radius: 4px;
    box-shadow: 0 6px 12px rgba(0,0,0,.175);
}

body.diba #top_cerca .dropdown.open .dropdown-menu {
    display: block;
}

/* ========================================
   8. FORMULARIOS - Upload responsive
   ======================================== */

@media (max-width: 767px) {
    body.diba #main-container-form .badger-left table,
    body.diba #campsFormulari .badger-left table,
    #main-container-form .badger-left table,
    #campsFormulari .badger-left table {
        border-collapse: collapse;
        border-spacing: 0;
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
    }

    body.diba #main-container-form .badger-left,
    body.diba #campsFormulari .badger-left,
    #main-container-form .badger-left,
    #campsFormulari .badger-left {
        max-width: 100%;
        overflow-x: hidden;
    }

    body.diba #main-container-form .badger-left .panel-body.diba15-tramites-padding-0,
    body.diba #campsFormulari .badger-left .panel-body.diba15-tramites-padding-0,
    #main-container-form .badger-left .panel-body.diba15-tramites-padding-0,
    #campsFormulari .badger-left .panel-body.diba15-tramites-padding-0 {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    body.diba #main-container-form .badger-left .table,
    body.diba #campsFormulari .badger-left .table,
    #main-container-form .badger-left .table,
    #campsFormulari .badger-left .table {
        width: 100%;
        max-width: 100%;
        table-layout: fixed;
    }

    body.diba #main-container-form .badger-left .container-progress-upload,
    body.diba #main-container-form .badger-left .alert,
    body.diba #campsFormulari .badger-left .container-progress-upload,
    body.diba #campsFormulari .badger-left .alert,
    #main-container-form .badger-left .container-progress-upload,
    #main-container-form .badger-left .alert,
    #campsFormulari .badger-left .container-progress-upload,
    #campsFormulari .badger-left .alert {
        overflow-wrap: anywhere;
        word-break: break-word;
    }

    body.diba #main-container-form .badger-left .table th,
    body.diba #main-container-form .badger-left .table td,
    body.diba #campsFormulari .badger-left .table th,
    body.diba #campsFormulari .badger-left .table td,
    #main-container-form .badger-left .table th,
    #main-container-form .badger-left .table td,
    #campsFormulari .badger-left .table th,
    #campsFormulari .badger-left .table td {
        white-space: normal;
        word-break: break-word;
    }

    body.diba #main-container-form .diba15-upload-table thead,
    body.diba #campsFormulari .diba15-upload-table thead,
    #main-container-form .diba15-upload-table thead,
    #campsFormulari .diba15-upload-table thead {
        display: none;
    }

    body.diba #main-container-form .diba15-upload-table,
    body.diba #main-container-form .diba15-upload-table tbody,
    body.diba #main-container-form .diba15-upload-table tr,
    body.diba #main-container-form .diba15-upload-table td,
    body.diba #campsFormulari .diba15-upload-table,
    body.diba #campsFormulari .diba15-upload-table tbody,
    body.diba #campsFormulari .diba15-upload-table tr,
    body.diba #campsFormulari .diba15-upload-table td,
    #main-container-form .diba15-upload-table,
    #main-container-form .diba15-upload-table tbody,
    #main-container-form .diba15-upload-table tr,
    #main-container-form .diba15-upload-table td,
    #campsFormulari .diba15-upload-table,
    #campsFormulari .diba15-upload-table tbody,
    #campsFormulari .diba15-upload-table tr,
    #campsFormulari .diba15-upload-table td {
        display: block;
        width: 100%;
    }

    body.diba #main-container-form .diba15-upload-table tr,
    body.diba #campsFormulari .diba15-upload-table tr,
    #main-container-form .diba15-upload-table tr,
    #campsFormulari .diba15-upload-table tr {
        margin-bottom: 12px;
        border: 1px solid #ddd;
        border-radius: 4px;
        background: #fff;
        padding: 6px 0;
    }

    body.diba #main-container-form .diba15-upload-table td,
    body.diba #campsFormulari .diba15-upload-table td,
    #main-container-form .diba15-upload-table td,
    #campsFormulari .diba15-upload-table td {
        position: relative;
        padding: 8px 10px 8px 42%;
        text-align: left;
        border: 0;
        min-height: 36px;
    }

    body.diba #main-container-form .diba15-upload-table td:before,
    body.diba #campsFormulari .diba15-upload-table td:before,
    #main-container-form .diba15-upload-table td:before,
    #campsFormulari .diba15-upload-table td:before {
        content: attr(data-label);
        position: absolute;
        left: 10px;
        top: 8px;
        width: 38%;
        font-weight: 700;
        white-space: normal;
    }

    body.diba #main-container-form .diba15-upload-table td[colspan],
    body.diba #campsFormulari .diba15-upload-table td[colspan],
    #main-container-form .diba15-upload-table td[colspan],
    #campsFormulari .diba15-upload-table td[colspan] {
        padding: 10px;
        text-align: center;
    }

    body.diba #main-container-form .diba15-upload-table td[colspan]:before,
    body.diba #campsFormulari .diba15-upload-table td[colspan]:before,
    #main-container-form .diba15-upload-table td[colspan]:before,
    #campsFormulari .diba15-upload-table td[colspan]:before {
        content: none;
    }

    body.diba #main-container-form .diba15-upload-table td .btn,
    body.diba #campsFormulari .diba15-upload-table td .btn,
    #main-container-form .diba15-upload-table td .btn,
    #campsFormulari .diba15-upload-table td .btn {
        margin-right: 6px;
        margin-bottom: 4px;
    }
}

body.diba #top_cerca .dropdown-menu > li > a {
    display: block;
    padding: 8px 20px;
    color: #333;
    text-decoration: none;
}

body.diba #top_cerca .dropdown-menu > li > a:hover {
    background-color: #f5f5f5;
}
