/*
  ========================================================================
  1. Estilos Generales
  ========================================================================
*/
body {
    background-color: #121212;
    color: #e0e0e0;
    font-family: sans-serif;
    margin: 0;
    padding: 0;
    overflow-x: hidden; /* Evita el scroll horizontal en caso de desbordamiento */
}

/* ========================================================================
  2. Encabezado (Header) y Barra de Navegación
  ========================================================================
*/
.modern-header {
    width: 100%;
    background-color: #1a1a1a;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.5);
    /* No definimos un height fijo aquí. La altura será determinada por el padding y el contenido. */
}

.modern-header .container {
    padding: 1vh 2vw; /* Padding superior/inferior relativo para la altura, y horizontal para el ancho */
    max-width: 1440px; /* Ancho máximo para que no se estire demasiado en pantallas grandes */
    margin: 0 auto; /* Centra el contenedor del header */
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.modern-header a {
    text-decoration: none;
    color: #e0e0e0;
}

.logo-bcm {
    height: 4vh; /* La altura del logo será el 4% del alto del viewport. Ajusta este valor si es necesario. */
    width: auto; /* Mantener la proporción original de la imagen */
}

.nav-link {
    font-size: 0.9vw; /* Tamaño de fuente relativo. Ajusta si es demasiado pequeño o grande. */
    padding: 0.8vw 1.2vw;
    white-space: nowrap; /* Evita que los enlaces se rompan en varias líneas */
}

/* ========================================================================
  3. Contenido Principal y Secciones
  ========================================================================
*/
.main-container {
    max-width: 1440px;
    width: 90%;
    margin: 0 auto;
    padding: 2vw 0;
}

/* Títulos de secciones */
h1.main-title {
    font-size: 3vw;
    text-align: center;
    margin: 2vw 0 0.5vw 0;
}

h2.section-title {
    font-size: 2vw;
    text-align: center;
    margin: 3vw 0 1.5vw 0;
}

/* Subtítulo */
.main-subtitle {
    font-size: 1vw;
    text-align: center;
    color: #b0b0b0;
    margin-bottom: 2vw;
}

/* Botones */
.btn-primary, .btn-secondary {
    font-size: 1vw;
    padding: 0.8vw 1.5vw;
    border-radius: 5px;
    transition: all 0.3s ease;
    display: inline-block;
    margin: 0.5vw;
}
.btn-primary {
    background-color: #e0e0e0;
    color: #1a1a1a;
    border: 1px solid #e0e0e0;
}
.btn-secondary {
    background-color: transparent;
    color: #007bff;
    border: 1px solid #007bff;
}

/* ========================================================================
  4. Tarjetas de Estado y Métricas
  ========================================================================
*/
.card-container {
    display: flex;
    justify-content: space-between;
    gap: 1.5vw;
    flex-wrap: wrap;
    margin-top: 2vw;
}

.card {
    flex: 1 1 200px;
    background-color: #1e1e1e;
    border: 1px solid #333;
    border-radius: 8px;
    padding: 1vw;
    text-align: center;
}

.card h3 {
    font-size: 1.2vw;
}

.metric-number {
    font-size: 3vw;
}

.metric-label {
    font-size: 0.8vw;
    color: #b0b0b0;
}

/* ========================================================================
  5. Media Queries para Adaptación Móvil
  ========================================================================
*/
@media (max-width: 768px) {
    .modern-header .container,
    .main-container {
        width: 95%; /* Ocupa más ancho en pantallas pequeñas */
    }

    .modern-header .container {
        flex-direction: column; /* Apila el logo y los enlaces verticalmente */
    }

    .nav-link {
        font-size: 3vw; /* Ajusta el tamaño de la fuente para que sea legible en móviles */
        padding: 1.5vw 2vw;
    }

    .logo-bcm {
        height: 6vh; /* El logo se puede ver un poco más grande en móvil */
    }

    h1.main-title {
        font-size: 6vw;
    }

    h2.section-title {
        font-size: 5vw;
    }

    .main-subtitle {
        font-size: 2.5vw;
    }
    
    .btn-primary, .btn-secondary {
        font-size: 3vw;
        padding: 2vw 4vw;
        display: block; /* Los botones se apilan en móvil */
        margin: 1vw auto;
    }

    .card-container {
        flex-direction: column;
        gap: 2vh;
    }
}

.button-section {
    margin: 3vw 0; /* Espaciado superior e inferior para separar de otras secciones */
}

.btn-primary {
    font-size: 1vw;
    padding: 0.8vw 1.5vw;
    border-radius: 5px;
    background-color: #007bff; /* Un color azul para el botón */
    color: white;
    border: none;
    cursor: pointer;
    transition: background-color 0.3s ease;
}

.btn-primary:hover {
    background-color: #0056b3; /* Color un poco más oscuro al pasar el ratón */
}

/*
  ========================================================================
  7. Estilos para el Modal y el Formulario
  ========================================================================
*/
/* Estilos para el fondo del modal */
.modal {
    display: none; /* Oculto por defecto */
    position: fixed;
    z-index: 1000; /* Asegura que el modal esté por encima de otros elementos */
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: rgba(0, 0, 0, 0.7); /* Fondo oscuro y semi-transparente */
    backdrop-filter: blur(5px); /* Efecto de desenfoque opcional */
}

/* Contenedor principal del modal */
.modal-content {
    background-color: #1a1a1a;
    color: #e0e0e0;
    margin: 10% auto; /* Centrado en la pantalla, con más espacio arriba */
    padding: 2vw;
    border: 1px solid #333;
    width: 80%;
    max-width: 500px;
    border-radius: 10px;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
    position: relative;
}

/* Botón de cierre */
.close-button {
    color: #e0e0e0;
    float: right;
    font-size: 2.5vw; /* Tamaño relativo */
    font-weight: bold;
    line-height: 1;
    position: absolute;
    top: 10px;
    right: 20px;
}

.close-button:hover,
.close-button:focus {
    color: white;
    text-decoration: none;
    cursor: pointer;
}

/* Estilos para el formulario y sus elementos */
#ticket-form label {
    display: block;
    font-size: 1vw;
    margin-top: 1.5vw;
    margin-bottom: 0.5vw;
}

#ticket-form input[type="text"],
#ticket-form textarea {
    width: 100%;
    padding: 1vw;
    font-size: 1vw;
    border-radius: 5px;
    border: 1px solid #555;
    background-color: #2a2a2a;
    color: #e0e0e0;
    box-sizing: border-box; /* Asegura que padding no aumente el ancho */
}

#ticket-form textarea {
    resize: vertical; /* Permite redimensionar verticalmente */
    min-height: 8vw;
}

#ticket-form button[type="submit"] {
    margin-top: 2vw;
    width: 100%;
}