/* --- Estilos Generales --- */
body {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    background-color: #f4f7f9;
    color: #333;
    margin: 0;
    padding: 20px;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    min-height: 100vh;
}

.container {
    background-color: #ffffff;
    padding: 30px;
    border-radius: 8px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
    width: 100%;
    max-width: 800px;
}

.table_container{
    max-width: unset;
}

h1 {
    color: #2c3e50;
    text-align: center;
    margin-bottom: 10px;
}

h2 {
    color: #34495e;
    text-align: center;
    font-weight: normal;
    margin-top: 0;
    margin-bottom: 25px;
}

/* --- Estilos del Formulario (index.php) --- */
.info-evento {
    text-align: center;
    margin-bottom: 30px;
    padding-bottom: 20px;
    border-bottom: 1px solid #eee;
}

.info-evento p {
    margin: 5px 0;
    font-size: 1.1em;
}

form label {
    display: block;
    margin-top: 15px;
    margin-bottom: 5px;
    font-weight: bold;
    color: #555;
}

form input[type="text"],
form input[type="tel"],
form input[type="number"],
form textarea {
    width: 100%;
    padding: 12px;
    border: 1px solid #ccc;
    border-radius: 5px;
    box-sizing: border-box; /* Importante para que el padding no afecte el ancho */
    font-size: 1em;
}

form textarea {
    resize: vertical;
}

.monto-box {
    background-color: #eaf2f8;
    color: #2874a6;
    padding: 15px;
    border-radius: 5px;
    margin-top: 20px;
    text-align: center;
    font-size: 1.2em;
}

.pregunta-aporte, #campoMedioPago {
    margin-top: 25px;
    padding-top: 20px;
    border-top: 1px solid #eee;
}

.pregunta-aporte p, #campoMedioPago p {
    font-weight: bold;
    margin-bottom: 15px;
}

/* Estilos de los botones de opción */
.btn-aporte, .btn-pago {
    background-color: #fdfefe;
    border: 2px solid #bdc3c7;
    color: #34495e;
    padding: 10px 15px;
    margin: 5px;
    border-radius: 5px;
    cursor: pointer;
    transition: all 0.2s ease-in-out;
}

.btn-aporte:hover, .btn-pago:hover {
    background-color: #ecf0f1;
    border-color: #7f8c8d;
}

/*.btn-aporte.selected, .btn-pago.selected {
    background-color: #2980b9;
    color: #fff;
    border-color: #2980b9;
}*/

/* Botón principal de confirmar */
.btn-confirmar {
    display: block;
    width: 100%;
    background-color: #27ae60;
    color: #fff;
    font-size: 1.2em;
    font-weight: bold;
    padding: 15px;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    margin-top: 30px;
    transition: background-color 0.2s;
}

.btn-confirmar:hover {
    background-color: #229954;
}

/* --- Estilos del Listado (listado.php) --- */
.resumen {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-around;
    background-color: #ecf0f1;
    padding: 20px;
    border-radius: 8px;
    margin-bottom: 30px;
}

.resumen div {
    margin: 5px;
    text-align: center;
    /*font-size: 1.1em;*/
}

table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 20px;
}

th, td {
    padding: 12px 15px;
    text-align: left;
    border-bottom: 1px solid #ddd;
}

thead th {
    background-color: #34495e;
    color: #fff;
    font-weight: bold;
}

tbody tr:nth-child(even) {
    background-color: #f8f9f9;
}

tbody tr:hover {
    background-color: #f1f1f1;
}

/* Estilos para la columna Estado */
.estado {
    padding: 5px 10px;
    border-radius: 15px;
    color: #fff;
    font-size: 0.9em;
    font-weight: bold;
    text-transform: uppercase;
}

.estado.pagado {
    background-color: #27ae60; /* Verde */
}

.estado.pendiente {
    background-color: #f39c12; /* Naranja */
}

.estado.donado {
    background-color: #2980b9; /* Naranja */
}

/* Estilos para la columna Acciones */
.acciones button {
    background-color: #3498db;
    color: white;
    border: none;
    padding: 6px 12px;
    border-radius: 4px;
    cursor: pointer;
    margin: 2px;
    font-size: 0.9em;
}

.acciones button:hover {
    opacity: 0.9;
}
/* Botón para borrar */
.acciones button:last-child {
    background-color: #e74c3c;
}
/* Botón para deshacer pago */
.acciones button[onclick^="deshacerPago"] {
    background-color: #95a5a6;
}

.btn-edit-comment {
    background: none;
    border: none;
    cursor: pointer;
    font-size: 1em;
    padding: 0 5px;
}

/* --- Estilos Responsive --- */
@media (max-width: 768px) {
    body {
        padding: 10px;
    }

    .container {
        padding: 20px;
    }

    h1 {
        font-size: 1.8em;
    }

    h2 {
        font-size: 1.2em;
    }

    /* Ajustar resumen en el listado para que se apile verticalmente */
    .resumen {
        flex-direction: column;
        align-items: center;
    }

    .resumen div {
        margin: 8px 0;
        font-size: 1em;
        width: 100%;
        text-align: left;
        padding-left: 10px;
    }
    
    /* Forzar a la tabla a que no se desborde, permitiendo scroll horizontal si es necesario */
    .table-container {
        overflow-x: auto;
    }

    table {
        min-width: 600px; /* Ancho mínimo para mantener la legibilidad de las columnas */
    }

    th, td {
        padding: 10px 8px;
    }

    /* Hacer botones de aporte y pago más grandes para pantallas táctiles */
    .btn-aporte, .btn-pago {
        display: block;
        width: 100%;
        margin: 8px 0;
        box-sizing: border-box; /* Asegurar que el padding no desborde */
    }
}

/* --- Colores Específicos para Botones de Aporte --- */

/* Estilo por defecto (fondo blanco, borde y texto de color) */
.btn-aporte.btn-si {
    background-color: #fff;
    border-color: #27ae60; /* Verde */
    color: #27ae60;
}

.btn-aporte.btn-otro {
    background-color: #fff;
    border-color: #2980b9; /* Azul */
    color: #2980b9;
}

.btn-aporte.btn-no {
    background-color: #fff;
    border-color: #95a5a6; /* Gris */
    color: #95a5a6;
}

/* --- Estilos para Hover y Selección --- */

/* Al pasar el mouse, se rellena sutilmente */
.btn-aporte.btn-si:hover {
    background-color: #f0fdf5;
}
.btn-aporte.btn-otro:hover {
    background-color: #f1f6fb;
}
.btn-aporte.btn-no:hover {
    background-color: #f5f7f7;
}

/* Al estar SELECCIONADO, se rellena completamente */
.btn-aporte.btn-si.selected {
    background-color: #27ae60; /* Verde */
    color: #fff;
}

.btn-aporte.btn-otro.selected {
    background-color: #2980b9; /* Azul */
    color: #fff;
}

.btn-aporte.btn-no.selected {
    background-color: #95a5a6; /* Gris */
    color: #fff;
}

/* Mantenemos el estilo de selección para los botones de pago */
.btn-pago:hover {
    opacity: 0.85;
}
/*.btn-pago.selected {
    background-color: #2980b9;
    color: #fff;
    border-color: #2471a3;
}*/
/* --- Colores Específicos para Botones de Pago --- */

/* Estilo por defecto (fondo blanco, borde y texto de color) */
.btn-pago.btn-mp {
    background-color: #fff;
    border-color: #c0392b; /* Rojo */
    color: #c0392b;
}

.btn-pago.btn-manual {
    background-color: #fff;
    border-color: #2980b9; /* Azul */
    color: #2980b9;
}

/* --- Estilos para Hover y Selección de Botones de Pago --- */

/* Al pasar el mouse, se rellena sutilmente */
.btn-pago.btn-mp:hover {
    background-color: #f9ebea;
}
.btn-pago.btn-manual:hover {
    background-color: #eaf2f8;
}

/* Al estar SELECCIONADO, se rellena completamente */
.btn-pago.btn-mp.selected {
    background-color: #c0392b; /* Rojo */
    color: #fff;
}

.btn-pago.btn-manual.selected {
    background-color: #2980b9; /* Azul */
    color: #fff;
}


/* --- Estilos para el Input de Monto Personalizado --- */

/* Pone el label en color rojo */
#campoOtroMonto label {
    color: #c0392b; /* Rojo */
}

/* Contenedor para posicionar el signo de pesos */
.input-con-simbolo {
    position: relative;
}

/* Crea el signo de pesos '$' y lo posiciona */
.input-con-simbolo::before {
    content: "$";
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 1.1em;
    color: #c0392b; /* Rojo */
    font-weight: bold;
    font-size: 1.3em;
}

/* Añade un padding a la izquierda del input para que el texto no se superponga con el signo */
#campoOtroMonto input[type="number"] {
    padding-left: 30px;
}

/* Pone en rojo el texto del input de monto */
#campoOtroMonto input[type="text"] {
    color: #c0392b; /* Rojo */
    font-weight: bold;
    padding-left: 35px; /* <--- AQUÍ ESTÁ LA CORRECCIÓN */
    font-size: 1.1em;
}

.input-con-simbolo input[type="text"] {
    color: #c0392b; /* Rojo */
    font-weight: bold;
    padding-left: 35px; /* Espacio para el signo '$' */
}

#filtroTabla {
    width: 100%;
    padding: 12px;
    margin-bottom: 20px;
    border: 1px solid #ccc;
    border-radius: 5px;
    box-sizing: border-box;
    font-size: 1em;
}


/* --- Estilos para Fijar la Primera Columna de la Tabla --- */

/* Seleccionamos la primera celda del encabezado (th) y de cada fila (td) */
thead th:first-child,
tbody td:first-child {
    position: sticky; /* La magia sucede aquí */
    left: 0;          /* La pegamos al borde izquierdo del contenedor */
    z-index: 10;      /* Nos aseguramos de que esté por encima de las otras celdas */
}

/* Es crucial darle un fondo sólido para que el contenido que pasa por debajo no se vea */
thead th:first-child {
    background-color: #34495e; /* Mismo color que el resto del encabezado */
}

tbody td:first-child {
    background-color: #f8f9f9; /* Color de fondo para las filas impares (y por defecto) */
}

/* Para mantener el color de las filas pares, agregamos una regla específica */
tbody tr:nth-child(even) td:first-child {
    background-color: #f1f1f1; /* Un poco más oscuro para que coincida con su fila */
}


/* --- Estilos para el Modal de Edición --- */

.modal-overlay {
    display: none; /* Oculto por defecto */
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.6);
    z-index: 1000;
}

.modal-container {
    display: none; /* Oculto por defecto */
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1001;
    width: 90%;
    max-width: 500px;
}

.modal-content {
    background-color: #fff;
    padding: 25px;
    border-radius: 8px;
    box-shadow: 0 5px 15px rgba(0,0,0,0.3);
}

.modal-content h2 {
    margin-top: 0;
    margin-bottom: 15px;
    text-align: left;
}

.modal-content textarea {
    font-size: 1em;
    padding: 10px;
    border: 1px solid #ccc;
    border-radius: 5px;
    box-sizing: border-box;
}

.modal-actions {
    margin-top: 20px;
    text-align: right;
}

.modal-actions button {
    padding: 10px 20px;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    font-weight: bold;
}

.btn-guardar {
    background-color: #27ae60;
    color: white;
}

.btn-cancelar {
    background-color: #e0e0e0;
    color: #333;
    margin-right: 10px;
}

.btn-whatsapp {
    background-color: #25D366; /* Color de WhatsApp */
    color: white;
    text-decoration: none;
    padding: 5px 12px;
    border-radius: 4px;
    font-size: 0.9em;
    display: inline-block; /* Para que aplique padding correctamente */
    text-align: center;
}


/* --- Estilos para el Modal de Actualizar Pago --- */

.opciones-pago {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    margin-top: 15px;
}

.btn-pago-opcion {
    flex: 1; /* Ocupa el mismo espacio */
    padding: 12px 10px;
    border: 2px solid #bdc3c7;
    background-color: #fff;
    color: #34495e;
    border-radius: 5px;
    cursor: pointer;
    font-weight: bold;
    font-size: 0.9em;
    transition: all 0.2s ease;
}

.btn-pago-opcion:hover {
    background-color: #ecf0f1;
}

.btn-pago-opcion.selected {
    background-color: #2980b9;
    color: #fff;
    border-color: #2980b9;
}

#modalMontoInput {
    font-size: 1.8em; /* Puedes ajustar este valor a tu gusto */
    padding-left: 35px; /* Ajustamos el padding para el texto centrado */
}

/* --- Estilos para Botones de Navegación --- */
.nav-buttons {
    text-align: center;
    margin-bottom: 25px;
}

.btn-nav {
    display: inline-block;
    padding: 12px 25px;
    margin: 0 10px;
    border-radius: 5px;
    text-decoration: none;
    color: white;
    font-weight: bold;
    border: none;
    cursor: pointer;
    font-size: 1em;
    background-color: #3498db; /* Azul */
}

.btn-nav.btn-donacion {
    background-color: #9b59b6; /* Morado */
}

/* --- Estilos para el Contenido del Modal de Donación --- */

/* Estilos para las etiquetas (labels) */
#modalDonacion label {
    display: block;
    margin-top: 15px;
    margin-bottom: 5px;
    font-weight: bold;
    color: #555;
    text-align: left;
}

/* Estilos para los inputs de texto y textareas */
#modalDonacion input[type="text"],
#modalDonacion input[type="tel"],
#modalDonacion textarea {
    width: 100%;
    padding: 12px;
    border: 1px solid #ccc;
    border-radius: 5px;
    box-sizing: border-box; /* Clave para que el padding no afecte el ancho */
    font-size: 1em;
}

/* Estilos para los botones de opción de pago de la donación */
.btn-donacion-opcion {
    flex: 1;
    padding: 12px 10px;
    border: 2px solid #bdc3c7;
    background-color: #fff;
    color: #34495e;
    border-radius: 5px;
    cursor: pointer;
    font-weight: bold;
    font-size: 0.9em;
    transition: all 0.2s ease;
}

.btn-donacion-opcion:hover {
    background-color: #ecf0f1;
}

.btn-donacion-opcion.selected {
    background-color: #9b59b6; /* Morado, a juego con el botón principal */
    color: #fff;
    border-color: #9b59b6;
}

#donacionMonto {
    padding-left: 35px!important;
}

/* Reduce el tamaño de la fuente y el padding en las celdas de la tabla */
tbody th,
tbody td {
    font-size: 0.9em;  /* Reduce la fuente al 90% del tamaño actual. Puedes usar 14px, 13px, etc. */
    padding: 8px 10px; /* Achicamos un poco el espaciado vertical para que la fila sea menos alta */
}

/* Opcional: Achicar también los botones de acciones para que quepan mejor */
.acciones button, .acciones a {
    padding: 5px 10px;
    font-size: 0.85em;
}

/* --- Alineación específica para columnas de la tabla --- */

/* Centrar las columnas "Adultos/Niños" (2), "Medio" (6) y "Estado" (7) */
table th:nth-child(2),
table td:nth-child(2),
table th:nth-child(6),
table td:nth-child(6),
table th:nth-child(7),
table td:nth-child(7),
table th:nth-child(8),
table td:nth-child(8) {
    text-align: center;
}

/* Alinear a la derecha las columnas de montos "A Colaborar" (4) y "Pagado" (5) */
table th:nth-child(4),
table td:nth-child(4),
table th:nth-child(5),
table td:nth-child(5),
table th:nth-child(9),
table td:nth-child(9) {
    text-align: right;
}

table th:nth-child(2),
table td:nth-child(2) {
    max-width: 60px;
}

table th:nth-child(3),
table td:nth-child(3) {
    width: 250px;
}

table th:nth-child(9),
table td:nth-child(9) {
    min-width: 265px;
}


/* --- Estilos para las Etiquetas de Medio de Pago --- */

/* Estilo base para todas las etiquetas */
td .medio-tag {
    display: inline-block;
    padding: 4px 12px;
    border-radius: 15px; /* Bordes redondeados para forma de píldora */
    font-weight: bold;
    font-size: 0.85em;
    border: 2px solid; /* Borde sólido de 2px */
    background-color: #fff; /* Fondo siempre blanco */
    min-width: 40px; /* Ancho mínimo para que se vean bien */
    text-align: center;
}

/* Colores específicos para cada medio de pago */
td .medio-mp {
    border-color: #009EE3; /* Azul de Mercado Pago */
    color: #009EE3;
}

td .medio-trx {
    border-color: #f39c12; /* Naranja */
    color: #f39c12;
}

td .medio-efvo {
    border-color: #27ae60; /* Verde */
    color: #27ae60;
}

td .medio-indefinido {
    border-color: #95a5a6; /* Gris */
    color: #95a5a6;
}

/* --- Estilos para la Columna de Asistencia --- */

.columna-asistencia {
    text-align: center;
}

.btn-asistencia {
    border: none;
    padding: 6px 12px;
    border-radius: 5px;
    cursor: pointer;
    font-weight: bold;
    width: 90px; /* Ancho fijo para que no cambie de tamaño */
    transition: all 0.2s ease;
}

.btn-asistencia.no-asistio {
    background-color: #f0f0f0;
    color: #555;
    border: 1px solid #ccc;
}

.btn-asistencia.asistio {
    background-color: #27ae60; /* Verde */
    color: white;
}

/* Estilo para resaltar la fila de quien asistió */
.fila-asistio {
    background-color: #e8f8ef !important; /* Verde muy claro */
}

td .fecha_inscripcion{
    font-size: xx-small;
    font-weight: bold;
    font-style: italic;
    color: darkgray;
}

/* --- Estilos para el Punto de Estado de Aporte --- */
.aporte-status-dot {
    display: inline-block;
    width: 10px;         /* Tamaño del punto */
    height: 10px;        /* Tamaño del punto */
    border-radius: 50%;  /* Lo hace redondo */
    border: 1px solid rgba(0,0,0,0.1); /* Borde sutil para que resalte del fondo */
}

/* --- Colores --- */
.dot-verde { background-color: #27ae60; }
.dot-rojo { background-color: #e74c3c; }
.dot-amarillo { background-color: #f1c40f; }
.dot-gris { background-color: #bdc3c7; }
.dot-morado { background-color: #9b59b6; } /* Color para donaciones */

/* Estilos para el resumen de porcentajes */
.resumen-item small {
    font-size: 0.7em;
    color: #7f8c8d; /* Gris */
    font-weight: bold;
}

/* Estilo para el nuevo total */
.resumen-item.total-recaudado {
    /*border-top: 1px solid #eee;
    padding-top: 10px;
    margin-top: 5px;*/
}
.resumen-item.total-recaudado span {
    font-weight: bold;
    color: #27ae60; /* Verde */
    font-size: 1.1em;
}