/* ------------------------------------------------------------- */
/* 1. Reset, Tipografía, y Configuración de Altura (CRÍTICO) */
/* ------------------------------------------------------------- */
* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

/* 🚩 CRÍTICO para el Footer: Asegura que html y body ocupen toda la altura de la ventana */
html, body {
    height: 100%; 
}

body {
    font-family: 'Arial', sans-serif;
    background-color: #f4f7f6;
    color: #333;
    line-height: 1.6;
}

/* ------------------------------------------------------------- */
/* 2. Contenedor de LOGIN (FLEXBOX PARA CENTRADO Y FOOTER) */
/* ------------------------------------------------------------- */
.login-container {
    display: flex;
    flex-direction: column; /* Apila elementos verticalmente */
    align-items: center; /* Centra horizontalmente el contenido */
    
    /* MODIFICACIÓN CLAVE: Cambiado de 'space-between' a 'center'.
       Esto agrupa el header, form y footer en el centro, permitiendo
       un mejor control del espaciado con márgenes fijos. */
    justify-content: center; 
    
    min-height: 100vh; /* Ocupa TODA la altura de la ventana */
    background-color: #ecf0f1;
    padding: 10px;
}

/* ------------------------------------------------------------- */
/* 3. Estilos de la Cabecera y el Logo (Responsivo) */
/* ------------------------------------------------------------- */
.login-header {
    width: 90%; 
    max-width: 400px;
    padding: 0; 
    /* Ajuste para separar mínimamente del formulario */
    margin-bottom: 5px; 
    text-align: center;
}
.logo-image {
    max-height: 50px;
    height: auto;
}

/* ------------------------------------------------------------- */
/* 4. Formulario de Login (Espaciado ajustado) */
/* ------------------------------------------------------------- */
.login-form {
    width: 90%; 
    max-width: 400px;
    
    text-align: center;
    /* MODIFICACIÓN CLAVE: Reemplazo de 'margin-top: auto' y 'margin-bottom: auto'
       por márgenes fijos para acercar el formulario al logo. */
    margin-top: 10px; /* Separación pequeña del header */
    margin-bottom: 20px; /* Separación del footer */
    
    /* Estilos de Card */
    background-color: #ffffff;
    border-radius: 12px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); 
    padding: 30px;
}

.login-form h2 {
    color: #2c3e50;
    margin-bottom: 5px;
}
.login-form p {
    color: #6c757d;
    margin-bottom: 20px;
}

.error-message {
    color: #dc3545 !important;
    background-color: #fbecec;
    border: 1px solid #dc3545;
    padding: 10px;
    border-radius: 5px;
    margin-bottom: 15px;
}

/* ------------------------------------------------------------- */
/* 5. Controles de Formulario */
/* ------------------------------------------------------------- */
.form-group label {
    display: block;
    margin-bottom: 5px;
    font-weight: 600;
    text-align: left;
}

.form-group input {
    width: 100%;
    padding: 10px;
    margin-bottom: 20px;
    border: 1px solid #ccc;
    border-radius: 6px;
    font-size: 16px;
    transition: border-color 0.3s;
}

.form-group input:focus {
    border-color: #3498db;
    outline: none;
    box-shadow: 0 0 0 2px rgba(52, 152, 219, 0.25);
}

/* ------------------------------------------------------------- */
/* 6. Botones Genéricos */
/* ------------------------------------------------------------- */
.btn {
    display: inline-block;
    padding: 10px 20px;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    text-decoration: none;
    font-weight: bold;
    transition: background-color 0.3s ease, transform 0.1s;
}

.btn-primary {
    background-color: #3498db; 
    color: white;
}

.btn-primary:hover {
    background-color: #2980b9;
}

.btn-danger {
    background-color: #e74c3c;
    color: white;
}
.btn-small {
    padding: 5px 10px;
    font-size: 0.85rem;
    margin-right: 5px;
}


/* ------------------------------------------------------------- */
/* 7. Footer (Responsivo) */
/* ------------------------------------------------------------- */
.login-footer {
    width: 90%; 
    max-width: 400px; 
    /* Ajuste de margen para que se vea bien debajo del formulario */
    margin-top: 10px; 
    padding: 10px;
    text-align: center;
    color: #6c757d; 
    font-size: 0.8rem;
}

/* ------------------------------------------------------------- */
/* 8. Estilos de Contenido (Cards y Tablas) */
/* ------------------------------------------------------------- */
.container {
    max-width: 1200px;
    margin: 40px auto;
    padding: 20px;
}

/* Tarjetas (Cards) */
.card {
    background-color: #ffffff;
    border-radius: 12px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); 
    padding: 30px;
    margin-bottom: 25px;
}

/* Encabezados */
h1, h2, h3 {
    color: #2c3e50;
    margin-bottom: 15px;
}

/* Tabla */
table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 20px;
}
table th, table td {
    border: 1px solid #ddd;
    padding: 12px;
    text-align: left;
    vertical-align: middle;
}
table th {
    background-color: #004d99;
    color: white;
    font-weight: 600;
}
table tr:nth-child(even) {
    background-color: #f9f9f9;
}
table tr:hover {
    background-color: #f1f1f1;
}
.table-actions {
    white-space: nowrap;
}
.table-actions form {
    margin: 0;
    padding: 0;
}

/* ------------------------------------------------------------- */
/* 9. Navegación Principal (NavBar) - Estructura Mejorada */
/* ------------------------------------------------------------- */
nav {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background-color: #004d99;
    padding: 10px 20px;
    border-radius: 8px; /* Aplicar a toda la barra */
    margin-bottom: 20px; /* Separación de la barra al contenido */
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.logo img {
    height: 40px;
    width: auto;
    display: block;
    filter: invert(1);
}
nav ul {
    list-style: none;
    display: flex;
    margin: 0;
    padding: 0;
}
nav ul li {
    /* Añadir separación clara entre botones */
    margin-left: 10px;
}
nav ul li a {
    color: white;
    text-decoration: none;
    padding: 10px 18px; /* Aumentar padding para un mejor target táctil */
    border-radius: 6px;
    font-weight: 500;
    display: block; /* Asegura que el padding ocupe todo el espacio del <li> */
    transition: background-color 0.3s, box-shadow 0.3s;
}
nav ul li a:hover {
    background-color: #003366;
    /* Añadir una ligera sombra para profundidad */
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
}

/* Estilo para el botón activo/página actual */
nav ul li a.active-link {
    background-color: #3498db; /* Un color de acento diferente */
    font-weight: bold;
    /* Sombra que indica que está 'presionado' o seleccionado */
    box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.3);
}