/* Estilos generales */


/* Controles superiores */
.controles-superiores {
    padding: 10px;
    background-color: #eee;
    border-bottom: 1px solid #ccc;
    display: flex;
    flex-wrap: wrap; /* Para que se ajusten en pantallas pequeñas */
    gap: 15px; /* Espacio entre grupos */
    align-items: center;
}

.grupo-botones button,
.grupo-busqueda button,
.grupo-filas select,
.grupo-busqueda input {
    padding: 8px 12px;
    cursor: pointer;
    border: 1px solid #ccc;
    border-radius: 4px;
}

.grupo-botones button:hover,
.grupo-busqueda button:hover {
    background-color: #ddd;
}

.grupo-busqueda input {
    padding: 8px;
}

/* Contenedor de la tabla para posible scroll SÓLO si es estrictamente necesario en pantallas MUY pequeñas */
.tabla-contenedor {
    width: 100%;
    overflow-x: auto; /* Mostrar scroll horizontal SÓLO si el contenido desborda */
    /* Evitar que este contenedor tenga scroll vertical, el body lo maneja */
}


/* Estilo de la tabla */
table#tabla-hebrea {
    width: 100%;                /* Ocupa todo el ancho disponible */
    border-collapse: collapse;  /* Bordes de celda unidos */
    table-layout: fixed;        /* Importante: El ancho de las columnas lo define el header o la primera fila, ayuda a controlar el desbordamiento */
    margin-top: 10px;
}

/* Estilo de celdas (header y datos) */
#tabla-hebrea th,
#tabla-hebrea td {
    border: 1px solid #ccc;
    padding: 8px;
    text-align: left;           /* Alineación izquierda */
    vertical-align: top;        /* Alineación superior */

    /* Mantiene el salto de línea para evitar scroll H, pero prioriza saltar palabras enteras */
    overflow-wrap: break-word;  /* Permite romper palabras EXTREMADAMENTE largas como último recurso */
    word-wrap: break-word;      /* Alias para compatibilidad */

    /* CLAVE: Desactivar la división automática de palabras con guiones */
    -webkit-hyphens: none;      /* Prefijo para navegadores WebKit (Safari, Chrome antiguo) */
    -moz-hyphens: none;         /* Prefijo para Firefox */
    -ms-hyphens: none;          /* Prefijo para IE/Edge antiguo */
    hyphens: none;              /* Estándar */

    /* Opcional: Asegurar el comportamiento normal de 'word-break' */
    word-break: normal;         /* Evita 'break-all' o 'keep-all' que pueden ser problemáticos */

    /* white-space: normal; es el valor por defecto y permite el salto de línea */
}

/* Estilo específico para la cabecera */
#tabla-hebrea thead th {
    background-color: #f2f2f2;  /* Color de fondo gris claro (Req 3.1) */
    font-weight: bold;         /* Texto en negrita */
    position: sticky;          /* Cabecera pegajosa */
    top: 0;                    /* Se pega en la parte superior */
    z-index: 10;               /* Asegura que esté sobre el contenido al hacer scroll */
}

/* Botón dentro de la celda 'Palabra Hebrea' */
.btn-palabra-hebrea {
    background: none;
    border: none;
    padding: 0;
    margin: 0;
    color: blue;
    text-decoration: underline;
    cursor: pointer;
    font-size: inherit; /* Hereda el tamaño de fuente de la celda */
    font-family: inherit; /* Hereda la fuente */
    text-align: left;
}

/* Clase para ocultar columnas */
.oculto {
    display: none;
}

/* Estilo para la fila seleccionada (para eliminar) */
.fila-seleccionada {
    background-color: #add8e6 !important; /* Azul claro */
}

/* Textarea dentro de celdas editables */
td textarea.editor-celda {
    width: 100%;                /* Ocupa todo el ancho de la celda */
    height: auto;               /* Altura automática inicial */
    min-height: 30px;           /* Una altura mínima razonable */
    border: 1px solid #999;     /* Borde visible para edición */
    padding: 6px;               /* Padding similar al de la celda */
    margin: -7px -7px;          /* Compensar el padding de la celda para alinear */
    box-sizing: border-box;     /* El padding y borde se incluyen en el width/height */
    font-family: inherit;       /* Misma fuente que la tabla */
    font-size: inherit;         /* Mismo tamaño de fuente */
    line-height: inherit;       /* Misma altura de línea */
    resize: none;               /* No permitir redimensionar manualmente */
    overflow-y: hidden;         /* Ocultar scroll vertical, JS ajustará la altura */
    display: block;             /* Asegura que ocupe el bloque */
}


/* Resaltado para búsqueda */
.highlight {
    background-color: yellow;
    font-weight: bold;
    padding: 0 2px; /* Pequeño padding para que se note mejor */
}

/* Botón para ir arriba */
#btn-ir-arriba {
    display: none; /* Oculto por defecto */
    position: fixed;
    bottom: 20px;
    right: 30px;
    z-index: 99;
    border: none;
    outline: none;
    background-color: #555;
    color: white;
    cursor: pointer;
    padding: 10px 15px;
    border-radius: 50%;
    font-size: 18px;
    opacity: 0.7;
}

#btn-ir-arriba:hover {
    background-color: #333;
    opacity: 1;
}

/* Estilos del Modal de Confirmación */
.modal {
    position: fixed; /* Se queda fijo en la pantalla */
    z-index: 1000; /* Encima de todo */
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto; /* Permite scroll si el contenido es muy grande */
    background-color: rgba(0,0,0,0.5); /* Fondo semitransparente */
    display: flex; /* Usar flexbox para centrar */
    justify-content: center;
    align-items: center;
}

.modal-contenido {
    background-color: #fefefe;
    margin: auto;
    padding: 30px;
    border: 1px solid #888;
    width: 80%;
    max-width: 400px; /* Ancho máximo */
    border-radius: 5px;
    text-align: center;
}

.modal-contenido p {
    margin-bottom: 20px;
}

.modal-contenido button {
    padding: 10px 20px;
    margin: 0 10px;
    cursor: pointer;
    border-radius: 4px;
}

#btn-confirmar-eliminar {
    background-color: #dc3545; /* Rojo */
    color: white;
    border: 1px solid #dc3545;
}
#btn-confirmar-eliminar:hover {
    background-color: #c82333;
    border-color: #bd2130;
}

#btn-cancelar-eliminar {
    background-color: #6c757d; /* Gris */
    color: white;
    border: 1px solid #6c757d;
}
#btn-cancelar-eliminar:hover {
    background-color: #5a6268;
    border-color: #545b62;
}


/* --- Media Queries para Responsividad (Req 3) --- */

/* Tablets y pantallas pequeñas */
@media (max-width: 768px) {
    .controles-superiores {
        flex-direction: column; /* Apila los controles */
        align-items: stretch;  /* Ocupan todo el ancho */
    }
    .grupo-busqueda, .grupo-filas {
        width: 100%;
        display: flex;
    }
    .grupo-busqueda input {
        flex-grow: 1; /* El input ocupa el espacio sobrante */
    }
    /* Puede que necesites ajustar tamaños de fuente */
    body {
        font-size: 14px;
    }
    #tabla-hebrea th,
    #tabla-hebrea td {
        padding: 6px;
    }
}

/* Teléfonos móviles */
@media (max-width: 480px) {
    body {
        font-size: 12px; /* Aún más pequeño */
    }
    #tabla-hebrea th,
    #tabla-hebrea td {
        padding: 4px;
    }
     /* En pantallas muy pequeñas, si table-layout:fixed y word-wrap no son suficientes
       podrías considerar cambiar el display de la tabla, pero es complejo
       y rompe la estructura visual. `overflow-x: auto` en `.tabla-contenedor`
       es el mal menor si el contenido no cabe de ninguna manera. */
}

.oculto {
    display: none;
}