/* --- ESTILOS GENERALES --- */
@import url('https://fonts.googleapis.com/css2?family=Lato:wght@400;700&display=swap');

:root {
    --color-guinda: #6a0f29;
    --color-dorado: #c5a560;
    --color-texto: #333;
    --color-fondo: #f4f4f4;
    --color-blanco: #ffffff;
    --color-exito: #d4edda;
    --color-error: #f8d7da;
}

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

body {
    font-family: 'Lato', sans-serif;
    background-color: var(--color-fondo);
    color: var(--color-texto);
    line-height: 1.6;
}

.container {
    max-width: 1200px;
    margin: 2rem auto;
    padding: 2rem;
    background-color: var(--color-blanco);
    border-radius: 8px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
}

/* --- ENCABEZADO --- */
header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-bottom: 1.5rem;
    margin-bottom: 2rem;
    border-bottom: 3px solid var(--color-dorado);
}

header img {
    height: 80px;
}

header h1 {
    color: var(--color-guinda);
    font-size: 2rem;
    font-weight: 700;
}

/* --- NAVEGACIÓN Y ENLACES --- */
nav {
    margin-bottom: 2rem;
    text-align: center;
}

nav a, .enlace-volver {
    display: inline-block;
    background-color: var(--color-guinda);
    color: var(--color-blanco);
    padding: 10px 20px;
    text-decoration: none;
    border-radius: 5px;
    margin: 0 10px;
    transition: background-color 0.3s ease;
}

nav a:hover, .enlace-volver:hover {
    background-color: #8c1436; /* Un guinda más claro */
}


/* --- FORMULARIOS --- */
h2 {
    color: var(--color-guinda);
    margin-bottom: 1rem;
    border-bottom: 1px solid #eee;
    padding-bottom: 0.5rem;
}

.form-group {
    margin-bottom: 1rem;
}

label {
    display: block;
    margin-bottom: 5px;
    font-weight: bold;
}

input[type="text"],
input[type="email"],
select {
    width: 100%;
    padding: 12px;
    border: 1px solid #ccc;
    border-radius: 5px;
    font-size: 1rem;
}

button {
    display: inline-block;
    background-color: var(--color-guinda);
    color: var(--color-blanco);
    border: none;
    padding: 12px 25px;
    font-size: 1rem;
    border-radius: 5px;
    cursor: pointer;
    transition: background-color 0.3s ease;
}

button:hover {
    background-color: #8c1436;
}


/* --- TABLAS --- */
table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 1rem;
}

th, td {
    padding: 12px;
    text-align: left;
    border-bottom: 1px solid #ddd;
}

thead th {
    background-color: var(--color-guinda);
    color: var(--color-blanco);
    font-weight: bold;
}

tbody tr:nth-child(even) {
    background-color: var(--color-fondo);
}

tbody tr:hover {
    background-color: #e9e9e9;
}


/* --- CLASES ESPECÍFICAS PARA REPORTE --- */
.asistencia-presente {
    background-color: var(--color-exito) !important;
    border-left: 5px solid #155724;
}

.asistencia-ausente {
    background-color: var(--color-error) !important;
     border-left: 5px solid #721c24;
}


/* --- FOOTER --- */
footer {
    text-align: center;
    margin-top: 2rem;
    padding-top: 1.5rem;
    border-top: 3px solid var(--color-dorado);
    color: var(--color-guinda);
    font-weight: bold;
}

/* --- CONTADOR DE RESUMEN --- */
.contador-resumen {
    display: flex;
    justify-content: space-around;
    gap: 1rem;
    background-color: var(--color-fondo);
    padding: 1.5rem;
    border-radius: 8px;
    margin-bottom: 2rem;
    text-align: center;
}

.contador-item {
    flex-basis: 30%; /* Cada item ocupa aprox un tercio */
}

.contador-item .numero {
    display: block;
    font-size: 2.5rem;
    font-weight: 700;
}

.contador-item .label {
    font-size: 1rem;
    color: #666;
}

/* Colores específicos para los contadores */
.contador-item.presentes .numero {
    color: #155724; /* Verde oscuro */
}

.contador-item.ausentes .numero {
    color: #721c24; /* Rojo oscuro */
}

.contador-item.total .numero {
    color: var(--color-guinda); /* Color institucional */
}

/* --- ESTILOS PARA LA PÁGINA DE REGISTRO CON CONSULTA --- */
.registro-container {
    display: flex;
    gap: 2rem; /* Espacio entre el formulario y la ventana de consulta */
}

.formulario-principal {
    flex: 2; /* El formulario ocupará 2/3 del espacio */
}

.consulta-externa {
    flex: 1; /* La consulta ocupará 1/3 del espacio */
    background-color: var(--color-fondo);
    padding: 1rem;
    border-radius: 8px;
    border: 1px solid #ddd;
}

.consulta-externa h2 {
    margin-top: 0;
}

.consulta-externa iframe {
    width: 100%;
    height: 600px; /* Altura inicial, se puede ajustar */
    border: none;
    border-radius: 5px;
}

/* --- ESTILOS PARA LA PÁGINA DE SORTEO --- */
.sorteo-container {
    display: flex;
    gap: 2rem;
}

.sorteo-principal {
    flex: 3;
}

.ganadores-anteriores {
    flex: 1;
    background-color: var(--color-fondo);
    padding: 1.5rem;
    border-radius: 8px;
    height: fit-content; /* Para que la altura se ajuste al contenido */
}

.iniciar-sorteo, .resultados-sorteo {
    background-color: var(--color-blanco);
    padding: 2rem;
    border-radius: 8px;
    margin-bottom: 2rem;
    border: 1px solid #ddd;
}

.resultados-sorteo h2 {
    color: var(--color-guinda);
}

.resultados-sorteo ol, .ganadores-anteriores ul {
    list-style-position: inside;
    padding-left: 10px;
}
.resultados-sorteo ol li, .ganadores-anteriores ul li {
    font-size: 1.1rem;
    padding: 5px 0;
    border-bottom: 1px solid #eee;
}

.administracion {
    margin-top: 2rem;
    padding-top: 1.5rem;
    border-top: 1px solid #ccc;
}
.administracion p {
    font-size: 0.9rem;
    color: #666;
    margin-bottom: 1rem;
}

.btn-reset {
    display: block;
    width: 100%;
    text-align: center;
    background-color: #721c24;
    color: var(--color-blanco);
    padding: 10px;
    text-decoration: none;
    border-radius: 5px;
    transition: background-color 0.3s ease;
}
.btn-reset:hover {
    background-color: #a02833;
}
/* --- ESTILOS PARA EL CUADRO DE DIAGNÓSTICO --- */
.diagnostico-box {
    background-color: #fffbe6;
    border: 1px solid #ffe58f;
    border-left: 5px solid #ffc107;
    padding: 1rem;
    margin-bottom: 2rem;
    border-radius: 8px;
    font-size: 1.1rem;
    text-align: center;
}

.diagnostico-numero {
    font-weight: bold;
    font-size: 1.5rem;
    color: var(--color-guinda);
}

/* --- ESTILO PARA EL BOTÓN DE DESCARGA PDF --- */
.enlace-pdf {
    background-color: #17a2b8; /* Un color cian o azul claro */
}

.enlace-pdf:hover {
    background-color: #138496;
}

/* --- ESTILOS PARA GESTIÓN DE CEREMONIAS --- */
.gestion-container {
    display: flex;
    gap: 2rem;
}
.crear-ceremonia {
    flex: 1;
}
.lista-ceremonias {
    flex: 2;
}
.btn-gestionar {
    display: inline-block;
    background-color: var(--color-dorado);
    color: var(--color-guinda);
    padding: 8px 15px;
    text-decoration: none;
    border-radius: 5px;
    font-weight: bold;
    transition: opacity 0.3s ease;
}
.btn-gestionar:hover {
    opacity: 0.8;
}