/**
 * DIBA 2025 - Componente 00: Base y Reset
 * 
 * Propósito: Estilos base del body y contenedor raíz
 * Compatible con estructura de maqueta.html sin contenedor único superior
 * 
 * Fecha: 9 de febrero de 2026
 */

/* ========================================
   ROOT - Variables globales
   ======================================== */

:root {
    /* Colores corporativos (sincronizado con diba2025-02-colores-fondo.css) */
    --color-primary: #9D2235;
    --color-primary-dark: #891536;
    --color-primary-light: #A41E34;
    --color-secondary: #707173;
    
    /* Fondos */
    --bg-body: #ffffff;
    --bg-light: #f3f3f4;
    --bg-white: #ffffff;
    
    /* Textos */
    --text-dark: #333333;
    --text-secondary: #707173;
    --text-light: #999999;
    
    /* Bordes */
    --border-color: #dedede;
    --border-radius: 0.25rem;
    
    /* Espaciados Bootstrap (rem basado en 16px) */
    --spacing-0: 0;
    --spacing-1: 0.25rem;  /* 4px */
    --spacing-2: 0.5rem;   /* 8px */
    --spacing-3: 1rem;     /* 16px */
    --spacing-4: 1.5rem;   /* 24px */
    --spacing-5: 3rem;     /* 48px */
    
    /* Transiciones */
    --transition-fast: 0.15s ease-in-out;
    --transition-normal: 0.3s ease;
    --transition-slow: 0.5s ease;
    
    /* Sombras */
    --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
    --shadow-md: 0 2px 4px rgba(0, 0, 0, 0.1);
    --shadow-lg: 0 4px 8px rgba(0, 0, 0, 0.15);
    
    /* Breakpoints Bootstrap 3 (compatibilidad) */
    --breakpoint-xs: 0;
    --breakpoint-sm: 768px;
    --breakpoint-md: 992px;
    --breakpoint-lg: 1200px;
}

/* ========================================
   HTML y BODY
   ======================================== */

html {
    font-size: 16px; /* Base Bootstrap 5 para rem (maqueta usa 16px) */
    height: 100%;
    -webkit-text-size-adjust: 100%;
    -ms-text-size-adjust: 100%;
}

body {
    margin: 0;
    padding: 0;
    font-family: "DiBa", Helvetica, Arial, sans-serif;
    font-size: 14px; /* Unificado: tamaño base del proyecto */
    line-height: 1.5;
    color: var(--text-dark);
    background-color: var(--bg-body);
    min-height: 100vh;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Clase principal del body según maqueta */
body.diba {
    /* Alineado con maqueta.html */
    padding-top: 10px;
    padding-bottom: 15px;
    background-color: #f3f3f4;
    color: #333333;
}

/* ========================================
   LAYOUT PRINCIPAL - Containers en ui-view
   ======================================== */

/**
 * Estructura con .container en cada ui-view:
 * 
 * <body class="diba">
 *   <div ui-view="header" class="container"></div>
 *   <div ui-view="main_content" class="container"></div>
 *   <div ng-include="footer" class="container"></div>
 * </body>
 * 
 * Bootstrap .container ya gestiona el ancho y padding
 */

/* Header: fondo blanco */
[ui-view="header"].container {
    background-color: var(--bg-white);
}

/* Main content: fondo gris, debe crecer */
[ui-view="main_content"].container {
    /*background-color: var(--bg-light);*/
    flex: 1 0 auto;
    margin-bottom: 30px;
}

/* Footer: fondo blanco */
[ng-include*="footer"].container,
footer.container {
    background-color: var(--bg-white);
}

/* Si el contenido interno de ui-view NO necesita container adicional */
[ui-view="header"].container > *:first-child,
[ui-view="main_content"].container > *:first-child {
    /* Los contenidos internos ya no necesitan .container adicional */
}

/* ========================================
   CONTENEDORES .container
   ======================================== */

/**
 * Con la estructura actual, .container está aplicado directamente
 * en los ui-view, por lo que Bootstrap ya gestiona anchos.
 * 
 * Los templates internos ya NO necesitan .container adicional
 */

/* Reset de estilos que puedan interferir */
.container {
    /* Bootstrap ya define todo, solo nos aseguramos */
}

/* Containers internos dentro de ui-view (si existen) */
[ui-view] .container {
    /* Permitir containers anidados si el template los usa */
    width: 100%;
    max-width: 100%;
    padding-left: 0;
    padding-right: 0;
}

/* ========================================
   COMPATIBILIDAD CON VISTAS LEGACY
   ======================================== */

/**
 * Las vistas legacy (consultaseu_14.html, etc.) aún tienen:
 * <div class="container theme-showcase" role="main">
 * 
 * Aplicamos estilos para que funcionen igual que la nueva estructura
 */

.container.theme-showcase {
    /* Resetear estilos que puedan interferir */
    background-color: transparent;
    
    /* Aplicar estructura flexbox similar a body */
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

.container.theme-showcase [ui-view="header"] {
    flex: 0 0 auto;
    background-color: var(--bg-white);
}

.container.theme-showcase [ui-view="main_content"] {
    flex: 1 0 auto;
    background-color: var(--bg-light);
}

.container.theme-showcase [ng-include*="footer"],
.container.theme-showcase footer {
    flex: 0 0 auto;
    background-color: var(--bg-white);
    margin-top: auto;
}

/* ========================================
   RESET Y NORMALIZACIÓN
   ======================================== */

/* Box sizing */
*,
*::before,
*::after {
    box-sizing: border-box;
}

/* Links */
a {
    color: var(--text-dark);
    text-decoration: none;
    transition: color var(--transition-fast);
}

a:hover,
a:focus {
    color: var(--color-primary);
    text-decoration: none;
}

/* Imágenes */
img {
    max-width: 100%;
    height: auto;
    vertical-align: middle;
}

/* Listas */
ul,
ol {
    margin-top: 0;
    margin-bottom: 1rem;
}

/* Tablas */
table {
    border-collapse: collapse;
    width: 100%;
}

/* ========================================
   UTILIDADES DE ESPACIADO
   ======================================== */

/* Margen superior/inferior para secciones */
.section-spacing {
    padding-top: var(--spacing-4);
    padding-bottom: var(--spacing-4);
}

/* Separador visual entre secciones */
.section-divider {
    border-bottom: 1px solid var(--border-color);
    margin-bottom: var(--spacing-4);
}

/* ========================================
   RESPONSIVE
   ======================================== */

/* Tablet y menor */
@media (max-width: 991px) {
    [ui-view="main_content"].container {
        min-height: calc(100vh - 250px);
    }
}

/* Mobile */
@media (max-width: 767px) {
    html {
        font-size: 14px; /* Reduce base en móvil */
    }
    
    body.diba {
        padding-top: 5px;
        padding-bottom: 10px;
        font-size: 0.875rem; /* 14px */
    }
    
    [ui-view="main_content"].container {
        min-height: calc(100vh - 300px);
    }
    
    .section-spacing {
        padding-top: var(--spacing-3);
        padding-bottom: var(--spacing-3);
    }
}

/* ========================================
   PRINT STYLES
   ======================================== */

@media print {
    body {
        background-color: white;
        color: black;
    }
    
    [ui-view="header"],
    [ng-include*="footer"],
    footer {
        page-break-inside: avoid;
    }
    
    [ui-view="main_content"] {
        page-break-inside: auto;
    }
}

/* ========================================
   ACCESIBILIDAD
   ======================================== */

/* Focus visible */
/* NOTA: Estilos de focus comentados para no interferir con Bootstrap 3 
   en formularios de la zona central/principal. */
/*
*:focus {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
}
*/

/* Skip to main content link (oculto hasta focus) */
.skip-to-main {
    position: absolute;
    top: -40px;
    left: 0;
    background-color: var(--color-primary);
    color: white;
    padding: var(--spacing-2) var(--spacing-3);
    z-index: 100;
    text-decoration: none;
}

.skip-to-main:focus {
    top: 0;
}

/* Screen reader only */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
}

.sr-only-focusable:focus {
    position: static;
    width: auto;
    height: auto;
    overflow: visible;
    clip: auto;
    white-space: normal;
}

/* ========================================
   ESTADOS DE CARGA
   ======================================== */

/* Mostrar mientras AngularJS inicializa */
[ng\:cloak],
[ng-cloak],
[data-ng-cloak],
[x-ng-cloak],
.ng-cloak,
.x-ng-cloak {
    display: none !important;
}

/* ========================================
   NOTAS DE DESARROLLO
   ======================================== */

/**
 * Este archivo debe cargarse PRIMERO antes de otros componentes CSS
 * 
 * Orden de carga recomendado:
 * 1. diba2025-00-base.css        (este archivo)
 * 2. diba2025-01-fuentes.css
 * 3. diba2025-02-colores-fondo.css
 * ... resto de componentes
 * 
 * Estructura HTML actual (con .container en ui-view):
 * 
 * <body class="diba">
 *   <div ui-view="header" class="container">
 *     <!-- Header content (sin .container adicional) -->
 *   </div>
 *   
 *   <div ui-view="main_content" class="container">
 *     <!-- Main content (sin .container adicional) -->
 *   </div>
 *   
 *   <div ng-include="'/includes/footer.html'" class="container">
 *     <!-- Footer content (sin .container adicional) -->
 *   </div>
 * </body>
 * 
 * Alineación con maqueta.html:
 * - body.diba con padding-top: 10px y background: #f3f3f4
 * - font-size base: 16px (1rem)
 * - Cada sección con su .container
 * - Bootstrap 3 grid system (container, row, col-*)
 * 
 * Compatibilidad con vistas legacy:
 * Las vistas generadas (consultaseu_14.html, etc.) con estructura
 * <div class="container theme-showcase"> siguen funcionando
 * gracias a los estilos de compatibilidad en este archivo.
 */
