/* Archivo: css/main.css */
/* ——————————————————————————————————————————
   Variables globales
—————————————————————————————————————————— */
:root {
  /* Colores básicos */
  --color-bg:       #000000;
  --color-text:     #333333;
  --color-header-bg:   rgba(0, 0, 0, 1);
  --color-footer-bg:   rgba(0, 0, 0, 0.6);
  --color-overlay-bg:  rgba(0, 0, 0, 0.7);
  --color-link:     #ffffff;
  --color-link-hover: #dddddd;
  --color-error:    #cc0000;
  --color-primary-blue: #007BFF;
  --color-primary-gray: #6C757D;
  --color-azul_intenso: #3498db;   

  /* colores para la tabla */
  --color-header-row: #7dabd8;  /* gris más oscuro para el header */
  --color-row-par:   #f9f9f9;  /* gris claro para filas pares */
  --color-row-impar: #ffffff;  /* blanco (o el tono que prefieras) para filas impares */

  /* NUEVAS variables de gris */
  --color-gris-pagina: #8a8383;  /* fondo de la página #f5f5f5  */
  /* --color-gris-tabla:   #eeeeee; /* filas alternas de la tabla #eeeeee  */

  /* Tipografías */
  --font-base:      'Open Sans', sans-serif;
  --font-heading:   'Open Sans', sans-serif;
  --font-size-base: 1rem; /* 1rem*/
  --font-size-small: 0.9rem; /* 0.9rem */
  --font-size-lg:   1.25rem; /* 1.25rem */
}

/* Reset */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

/* ======================================================================
   Carrusel de imágenes (usuarios logueados)
   ====================================================================== */
.carousel-background {
  position: relative;
  width: 100%;
  height: 300px;
  overflow: hidden;
}
.carousel-background img {
  position: absolute;
  top: 0; left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity 1s ease;
}
.carousel-background img.active {
  opacity: 1;
}



/* ——————————————————————————————————————————
   Layout general
—————————————————————————————————————————— */
body {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  font-family: var(--font-base);
  font-size: var(--font-size-base);
  line-height: 1; /* 1.6; */
  color: var(--color-text);
  background-color: var(--color-bg);
}

/* Aplica el gris de página cuando añadas esta clase al <body> */
.bg-gris-pagina {
  background-color: var(--color-gris-pagina);
}

/* Para centrar el contenido de formatos de corazones:
   añade también la clase `page-formatos` al <body> en subi…php */
.page-formatos main {
  padding: 2rem 1rem;
  text-align: center;
}
.page-formatos main h1 {
  font-size: var(--font-size-lg);
  margin-bottom: 0.5rem;
}
.page-formatos main .btn-add,
.page-formatos main .btn-back {
  display: inline-block;
  margin: 0.5rem 0.5rem 1.5rem;
}

/* Contenedor de contenido */
main {
  flex: 1;
  position: relative;
  overflow: hidden;
}

/* ——————————————————————————————————————————
   Cabecera y menú (navbar)
—————————————————————————————————————————— */
.site-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1rem 2rem;
  background-color:  var(--color-header-bg); 
}
.logo-container img {
  max-height: 60px;
}
nav.main-nav ul {
  list-style: none;
  display: flex;
  gap: 1.5rem;
}
nav.main-nav a {
  color: var(--color-link);
  text-decoration: none;
  font-weight: 600;
  font-size: var(--font-size-base);
  transition: color 0.3s ease;
}
nav.main-nav a:hover {
  color: var(--color-link-hover);
}
.site-header p {
  margin-top: 0.5rem;
  font-size: var(--font-size-small);
  color: var(--color-link); 
}

/* ——————————————————————————————————————————
   Carrusel de fondo (solo en index.php)
—————————————————————————————————————————— */
.carousel-background {
  position: fixed;
  top: 0; left: 0;
  width: 100%; height: 100%;
  overflow: hidden;
  z-index: -1;
}
.carousel-background img {
  position: absolute;
  width: 100%; height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity 1s ease-in-out;
}
.carousel-background img.active {
  opacity: 1;
}

/* ——————————————————————————————————————————
   Overlay de login
—————————————————————————————————————————— */
.login-overlay {
  position: fixed;
  top: 0; left: 0;
  width: 100%; height: 100%;
  background: var(--color-overlay-bg);
  display: none;
  justify-content: center;
  align-items: center;
  z-index: 1000;
}
#login-form {
  background: var(--color-link);
  padding: 1.7rem;
  border-radius: 8px;
  box-shadow: 0 2px 10px rgba(0,0,0,0.3);
  width: 320px;
  max-width: 90%;
}
#login-form h2 {
  margin-bottom: 2rem;
  /* color: var(--color-text); */
  color: var(--color-azul_intenso);
  font-size: var(--font-size-lg);
  font-family: var(--font-heading);
}
#login-form label {
  display: block;
  margin-bottom: 1rem;
  color: var(--color-text);
}
#login-form input {
  width: 100%;
  padding: 0.5rem;
  margin-top: 0.25rem;
  border: 1px solid #ccc;
  border-radius: 4px;
  font-family: var(--font-base);
}
#login-form .buttons {
  display: flex;
  justify-content: space-between;
  margin-top: 1rem;
}
#login-form button {
  padding: 0.5rem 1rem;
  border: none;
  border-radius: 4px;
  background-color: var(--color-text);
  color: var(--color-link);
  cursor: pointer;
  transition: background-color 0.3s ease;
  font-family: var(--font-base);
}
#login-form button:hover {
  background-color: #555;
}
.error {
  color: var(--color-error);
  margin-bottom: 1rem;
}

/* ——————————————————————————————————————————
   Pie de página
—————————————————————————————————————————— */
.site-footer {
  margin-top: auto;
  text-align: center;
  padding: 1rem;
  background-color: var(--color-footer-bg);
  color: var(--color-link);
}


/*-----------------------------*/
/* Botones globales */
.btn-add,
.btn-back,
.btn-download,
.btn-delete {
  display: inline-block;
  margin-bottom: 1rem;
  padding: 0.5rem 1rem;
  font-size: var(--font-size-base);   /* tamaño de letra unificado */
  background-color: var(--color-primary-blue);
  color: var(--color-link);
  text-decoration: none;
  border-radius: 4px;
  border: none;
  cursor: pointer;
}
.btn-back {
  background-color: var(--color-primary-gray);
}
.btn-back {
  background-color: var(--color-primary-gray);
}

.btn-back { background-color:var(--color-primary-gray); }


/* Responsive general */
@media (max-width: 768px) {
  .site-header {
    flex-direction: column;
    align-items: flex-start;
  }
  nav.main-nav ul {
    flex-direction: column;
    gap: 1rem;
    margin-top: 1rem;
  }
  .logo-container img {
    max-height: 40px;
  }
}

/* ——————————————————————————————————————————
   Tabla responsive con fondo de tabla distinto
—————————————————————————————————————————— */

/* Contenedor scroll horizontal */
.table-container {
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  width: 100vw;              /* ocupa todo el ancho de la ventana */
  padding: 1rem 1.5rem 0.5rem 1.5rem;             /* pequeño margen interior 1rem*/
  box-sizing: border-box;    /* incluye el padding en el ancho */
  overflow-x: auto;          /* scroll horizontal si hace falta */
  -webkit-overflow-scrolling: touch;
  background-color: transparent; /* sin fondo extra transparent */
  border: none;              /* sin borde */
}


/* Tabla full-width, ya sin centrado automático */
.table-formats {
  width: 100%;
  border-collapse: collapse;
  margin: 0;               /* eliminamos margin: auto */
  background-color: #ffffff;  /* #ffffff; */
}

/* Celdas */
.table-formats th,
.table-formats td {
  border: 1px solid  var(--color-primary-gray); 
  padding: 0.5rem;  /* 0.75rem */
  text-align: center;
  word-wrap: break-word;
  font-size: 0.9rem;
}

/* Encabezado */
.table-formats thead th {
  background-color: var(--color-header-row);
  color: var(--color-link);
  font-size: 1.2rem;
}

/* Zebra clásico */
.table-formats tbody tr:nth-child(odd) {
  background-color: var(--color-row-impar);
}
.table-formats tbody tr:nth-child(even) {
  background-color: var(--color-row-par);
}

/* Checkboxes escalados */
.table-formats input[type="checkbox"] {
  transform: scale(1.5);
  margin: 0 0.5rem;
}




/* Ajustes en móviles */
@media (max-width: 600px) {
  .table-formats th,
  .table-formats td {
    padding: 0.5rem;
    font-size: 0.9rem;
  }
}


/* ==========================================================================
   FORMULARIO DE ALTA DE FORMATOS DE CORAZONES
   ========================================================================== */

/**
 * Selector: .page-formatos form
 * --------------------------------------------------
 * Aplica sobre el <form> de la página de “Alta de Formato…”
 * para centrarlo horizontalmente y darle un contenedor claro.
 */
.page-formatos form {
  /* Limita el ancho máximo para legibilidad en pantallas grandes */
  max-width: 500px;
  /* En móviles, ocupa 90% del ancho del contenedor padre */
  width: 90%;
  /* Márgenes: 2rem arriba y abajo; auto en ejes izquierdo/derecho = centrado */
  margin: 2rem auto;
    /* Espacio interior para que no se peguen los inputs al borde */
  padding: 1rem;
    /* Fondo blanco para aislar visualmente el formulario */
  background: #fff;
  /* Bordes ligeramente redondeados para suavizar la forma */
  border-radius: 8px;
  /* Sombra sutil para levantar el formulario sobre el fondo */
  box-shadow: 0 1px 4px rgba(0,0,0,0.1);
  /* Asegura que el texto y elementos internos se alineen centrados si hay inline */
  text-align: center;
}

/**
 * Selector: .page-formatos form label
 * --------------------------------------------------
 * Hace que cada etiqueta (<label>) ocupe toda la línea
 * y se asocie claramente con su campo de input.
 */
.page-formatos form label {
  display: block;         /* bloque completo para controlar márgenes */
  margin-bottom: 0.25rem; /* pequeño espacio entre label y su input */
  font-weight: 600;       /* destacar el texto de la etiqueta */
  text-align: left;       /* asegurar alineación a la izquierda */
}

/**
 * Selector: .page-formatos form input
 * --------------------------------------------------
 * Estiliza todos los campos de entrada para que sean
 * consistentes en tamaño, padding y bordes.
 */
.page-formatos form input {
  display: block;         /* bloque completo para usar 100% de ancho */
  width: 100%;            /* ocupa todo el ancho del formulario */
  padding: 0.5rem;        /* espacio interno para comodidad de escritura */
  margin-bottom: 1rem;    /* espacio por debajo antes del siguiente campo */
  border: 1px solid #ccc; /* borde gris suave */
  border-radius: 4px;     /* esquinas ligeramente redondeadas */
  font-family: var(--font-base); /* usa la fuente global del sitio */
}

/**
 * Selector: .page-formatos form .btn-add,
 *           .page-formatos form .btn-back
 * --------------------------------------------------
 * Estiliza y espacia los botones “Grabar” y “Cancelar”
 * para que se muestren uno al lado del otro y centrados.
 */
.page-formatos form .btn-add,
.page-formatos form .btn-back {
  display: inline-block;  /* inline-block para poder ajustar márgenes */
  margin: 0.5rem;         /* espacio alrededor de cada botón */
  text-decoration: none;  /* elimina subrayado si fueran <a> */
}

/**
 * Centrar el título de la página de alta
 */
.page-formatos h1 {
  text-align: center;
  margin-bottom: 1.5rem; /* si quieres algo más de separación sobre el form */
}

/* Error dentro del form en page-formatos */
.page-formatos form .error {
  color: var(--color-error);
  text-align: left;
  margin-bottom: 1rem;
}
.page-formatos form .error ul {
  list-style: disc inside;
}

.table-formats {
  max-width: none !important;   /* quita el límite de 800px */
  width: 90%;                   /* ocupa el 90% del contenedor */
  margin: 0 auto 2rem;          /* centra horizontal */
}


/* -------------------------------------------------------------------
   FIN DEL BLOQUE: Centrado y estilo de formulario
   ------------------------------------------------------------------- */


 /* ===========================
   Ajustes para subir_plantilla_corazon.php
   =========================== */

/* Escalar checkboxes para visibilidad */
.table-formats input[type="checkbox"] {
  transform: scale(1.5);
  margin: 0 0.5rem;
}

/* Botonera en dos líneas */
.button-group {
  text-align: center;
  /*margin-bottom: 1rem;*/
  margin-bottom: 0.5rem;
}

.button-group .group-top,
.button-group .group-bottom {
  /* margin: 0.5rem 0; */
  margin: 0;
}

.button-group a,
.button-group button {
  margin: 0 0.5rem
}


/* Tabla full-width */
.table-formats {
  max-width: none;
  width: 100%;
  margin: 0 auto 2rem;
}

/* Tabla full-width, ya sin centrado automático 
.table-formats {
  width: 100%;
  border-collapse: collapse;
  margin: 0;              
  background-color: #ffffff; 
}
*/

/* ======================================================================
   Hacer que el footer siempre baje al fondo en la página de construcción
   ====================================================================== */
body.page-index {
  display: flex;
  flex-direction: column;
  min-height: 100vh;     /* ocupa toda la ventana */
}

body.page-index main {
  flex: 1;               /* ocupa todo el espacio sobrante */
  color: red;
}

/* Restaurar estilo del botón de Zona Privada */
#login-btn {
  display: inline-block;
  margin: 0 0.5rem;
  padding: 0.5rem 1rem;
  background-color: var(--color-primary-blue);
  color: var(--color-link);
  text-decoration: none;
  border-radius: 4px;
  border: none;
  cursor: pointer;
  font-size: var(--font-size-base);
}

#login-btn:hover {
  background-color: #0056b3; /* un tono más oscuro al pasar */
}

#formatosForm {
  background-color: transparent ;
  /*background-color: red ;*/
  margin-top: -2.5rem;
 }


 #coladasForm {
  background-color: transparent ;
  /*background-color: red ;*/
  margin-top: -2.5rem;
 }

 #carrilesForm {
  background-color: transparent ;
  /*background-color: red ;*/
  margin-top: -2.5rem;
 }



/* ======================================================================
   Para textos  h1, h2, h3, h4
   ====================================================================== */

.h2_en_azul {
  color: red; /*#3498db;   /* Azul intenso, por ejemplo */
  font-size: 1.5rem;
  margin-bottom: 1rem;
}


/* ============================================================
   Estilos específicos para el formulario de Consultar Coladas
   ============================================================ */
.form-alta {
  background-color: var(--color-gris-claro); /* gris claro de fondo */
  padding: 1.5rem;                            /* espacio interior */
  border-radius: 0.5rem;                      /* esquinas redondeadas */
  margin-bottom: 2rem;                        /* separarlo de la tabla */
}

/* Etiqueta encima del input */
.form-alta label {
  display: block;
  margin-bottom: 1.0rem;           /* más separación del recuadro */
  padding-bottom: 0.75rem;
  color: var(--color-azul_intenso); /* texto en azul intenso */
  font-weight: 600;                 /* opcional, para resaltarlo */
}

/* Si quieres centrar el input en pantallas grandes */
@media (min-width: 600px) {
  .form-alta {
    max-width: 500px;
    margin: 0 auto 2rem;
  }
}


/* ============================================================
   Estilos para botones de zona privada y zona certificaciones
   ============================================================ */
/* Restaurar estilo del botón de Zona Privada */

.botones_zonas {
  display: inline-block;
  margin: 0 0.5rem;
  padding: 0.5rem 1rem;
  background-color: var(--color-primary-blue);
  color: var(--color-link);
  text-decoration: none;
  border-radius: 4px;
  border: none;
  cursor: pointer;
  font-size: var(--font-size-base);
}

#botones_zonas:hover {
  background-color: #0056b3; /* un tono más oscuro al pasar */
}
