/* ============================================================
   styles.css — Hoja de estilos UNIFICADA de la aplicación
   ------------------------------------------------------------
   Cada plantilla añade una clase al <body> (ej: page-login,
   page-home, page-daily-results...) y los estilos específicos
   de esa pantalla viven bajo ese selector.
   Así evitamos que una plantilla se "coma" estilos de otra.
   ============================================================ */


/* ------------------------------------------------------------
   1) UTILIDADES GLOBALES (mismo aspecto en todas las páginas)
   ------------------------------------------------------------ */

/* Colores semáforo de la tabla de resultados */
.low-score   { background-color: #f8d7da !important; color: #721c24 !important; font-weight: bold; }
.mid-score   { background-color: #fff3cd !important; color: #856404 !important; font-weight: bold; }
.high-score  { background-color: #d4edda !important; color: #155724 !important; font-weight: bold; }

/* Mini SVG del mapa corporal en tablas de resultados */
.minisvg { display: block; margin: 0 auto; }
.minisvg path { transition: fill 0.2s; }


/* ============================================================
   2) PÁGINAS DE FORMULARIO (page-form)
   ------------------------------------------------------------
   Aplica a: login, home, daily_checkin, post_training, thanks,
            update_guest_status, search_reports.
   Layout centrado con fondo gris y card blanca.
   ============================================================ */

body.page-form {
    font-family: Arial, sans-serif;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    height: 100vh;
    background-color: #f2f2f2;
    margin: 0;
}

body.page-form h1 {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 10px;
    font-size: 30px;
    padding: 0;
    margin-bottom: 20px;
    color: #333;
}

body.page-form label {
    margin-top: 10px;
    display: block;
    color: #555;
    text-align: center;
    font-weight: bold;
    font-size: 20px;
}

body.page-form input[type="range"],
body.page-form select {
    width: 100%;
    margin-bottom: 15px;
    padding: 4px;
    box-sizing: border-box;
}

body.page-form input[type="number"] {
    height: 35px;
    padding: 5px;
    font-size: 16px;
    box-sizing: border-box;
}

body.page-form input[type="text"],
body.page-form input[type="password"] {
    width: 100%;
    max-width: 500px;
    padding: 5px;
    box-sizing: border-box;
}

body.page-form output {
    display: block;
    margin-bottom: 15px;
    font-weight: bold;
}

body.page-form button {
    width: 30%;
    padding: 10px;
    background-color: #4CAF50;
    color: white;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-size: 16px;
    margin-top: 10px;
}
body.page-form button:hover { background-color: #45a049; }

body.page-form .form-container {
    background-color: white;
    padding: 20px;
    border-radius: 8px;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
    width: 100%;
    max-width: 800px;
    text-align: center;
}

/* Escudos en cabeceras de formulario */
body.page-form .escudos {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}
body.page-form .escudo {
    width: 100px;
    height: 100px;
    border-radius: 50%;
    object-fit: cover;
}
body.page-form .escudo2 {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    object-fit: cover;
}
body.page-form .escudo3 {
    width: 300px;
    height: 300px;
    object-fit: cover;
    margin-bottom: 20px;
}

/* Botones de selección 1-10 (button-grid) */
body.page-form .button-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 5px;
    justify-content: center;
    margin-bottom: 10px;
    align-items: center;
}
body.page-form .button-grid2 {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 5px;
    justify-content: center;
    margin-bottom: 10px;
    align-items: center;
}
body.page-form .button-grid button {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 50px;
    width: 100%;
    box-sizing: border-box;
}
body.page-form .button2 {
    width: 100%;
    height: 50px;
    padding: 0;
    background-color: #4CAF50;
    color: white;
    border: 1px solid #ddd;
    border-radius: 8px;
    font-size: 16px;
    cursor: pointer;
    text-align: center;
    font-weight: bold;
}
body.page-form .button2:hover  { background-color: #45a049; }
body.page-form .button2:active {
    background-color: #015204;
    transform: scale(0.85);
}
body.page-form .button2.selected {
    background-color: #2196F3;
    color: white;
    border: 2px solid #1976D2;
}

body.page-form .bold-text { font-weight: bold; text-align: center; }

/* Botones de acción genéricos */
body.page-form .action-button {
    font-size: 16px;
    padding: 10px 20px;
    border: none;
    background-color: #007BFF;
    color: white;
    text-align: center;
    text-decoration: none;
    display: inline-block;
    margin: 10px 2px;
    cursor: pointer;
    border-radius: 4px;
    max-width: 200px;
    width: 100%;
}
body.page-form .center-button { display: block; margin: 10px auto; }
body.page-form .button-container {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin-top: 20px;
    flex-wrap: wrap;
}
body.page-form .button-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
}
body.page-form .bottom-center {
    margin-top: 40px;
    display: flex;
    justify-content: center;
}

/* Variantes de botón Volver */
body.page-form .back-button2        { background-color: #007BFF; }
body.page-form .back-button2:hover  { background-color: #4CAF50; }
body.page-form .back-button3        { background-color: #dc3545; }
body.page-form .back-button3:hover  { background-color: #b52a37; }

/* Lista de invitados (update_guest_status) */
body.page-form .guest-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 10px;
    margin-bottom: 20px;
}
body.page-form .guest-item {
    display: flex;
    align-items: center;
    justify-content: center;
}
body.page-form .guest-item input[type="checkbox"] { margin-right: 10px; }

/* Selector de número de sesión en search_reports */
body.page-form #session_number.form-control {
    max-width: 120px;
    min-width: 100px;
    width: 100%;
    display: inline-block;
}


/* ============================================================
   2-bis) PÁGINA: BUSCAR INFORMES HISTÓRICOS (page-search-reports)
   ------------------------------------------------------------
   Mismo lenguaje visual que page-lesiones-lista.
   ============================================================ */

body.page-search-reports {
    background-color: #f6f8fa;
}

body.page-search-reports .search-container {
    max-width: 720px;
    margin-top: 40px;
    margin-bottom: 40px;
}

body.page-search-reports .search-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 20px;
    padding-bottom: 12px;
    border-bottom: 2px solid #e3e6ea;
}

body.page-search-reports .search-title {
    font-size: 1.5rem;
    font-weight: 600;
    color: #2c3e50;
    margin: 0;
}

body.page-search-reports .search-card {
    background: #fff;
    border: 1px solid #e3e6ea;
    border-radius: 8px;
    padding: 28px;
}

body.page-search-reports .search-label {
    display: block;
    font-weight: 500;
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    color: #495057;
    margin-bottom: 6px;
}

body.page-search-reports .search-select {
    min-width: 120px;
}


/* ============================================================
   3) PÁGINA: HOME (page-home)
   ============================================================ */

body.page-home .player-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin: 0 auto;
    padding: 5px;
    box-sizing: border-box;
    max-width: 100%;
}
body.page-home .player-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(115px, 1fr));
    gap: 20px;
    width: 100%;
    max-width: 1000px;
}
body.page-home .player-card {
    text-align: center;
    padding: 5px;
    border: 1px solid #ddd;
    border-radius: 8px;
    transition: transform 0.2s ease-in-out;
}
body.page-home .player-card:hover { transform: scale(1.05); }
body.page-home .player-image {
    width: 90%;
    max-width: 100px;
    height: auto;
    border-radius: 50%;
    margin-bottom: 5px;
}
body.page-home .red-border   { border: 5px solid red; }
body.page-home .amber-border { border: 5px solid orange; }
body.page-home .green-border { border: 5px solid green; }


/* ============================================================
   4) PÁGINA: GRACIAS (page-thanks)
   ============================================================ */

body.page-thanks .container { text-align: center; }
body.page-thanks .thank-you-message {
    font-size: 1.8em;
    color: #333;
    margin: 20px 0;
}
body.page-thanks .back-button {
    font-size: 1.5em;
    padding: 10px 20px;
    background-color: #4Caf50;
    color: #fff;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    margin-top: 40px;
    transition: background-color 0.3s ease;
    height: 120px;
    width: 300px;
}
body.page-thanks .back-button:hover { background-color: #227425; }


/* ============================================================
   5) PÁGINA: LESIONADO (page-lesionado)
   ============================================================ */

body.page-lesionado { background-color: #f8f9fa; }
body.page-lesionado .card-lesion {
    max-width: 480px;
    margin: 80px auto;
    border-top: 5px solid #dc3545;
}


/* ============================================================
   6) PÁGINA: PANEL DE LESIONES (page-lesiones-lista)
   ------------------------------------------------------------
   Mismo lenguaje visual que page-lesiones-historial:
   cards de stats arriba, tablas con anchos fijos, notas anchas.
   ============================================================ */

body.page-lesiones-lista {
    background-color: #f6f8fa;
}

body.page-lesiones-lista .lista-container {
    max-width: 1400px;
    margin-top: 30px;
    margin-bottom: 30px;
}

/* Cabecera */
body.page-lesiones-lista .lista-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 20px;
    padding-bottom: 12px;
    border-bottom: 2px solid #e3e6ea;
}
body.page-lesiones-lista .lista-title {
    font-size: 1.5rem;
    font-weight: 600;
    color: #2c3e50;
    margin: 0;
}
body.page-lesiones-lista .lista-actions {
    display: flex;
    gap: 8px;
}

/* Tarjetas resumen */
body.page-lesiones-lista .stats-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    margin-bottom: 24px;
}
body.page-lesiones-lista .stat-card {
    background: #fff;
    border: 1px solid #e3e6ea;
    border-radius: 8px;
    padding: 14px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
}
body.page-lesiones-lista .stat-number {
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1;
}
body.page-lesiones-lista .stat-label {
    font-size: 0.8rem;
    color: #6c757d;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* Títulos de sección */
body.page-lesiones-lista .section-title {
    font-size: 1.1rem;
    font-weight: 600;
    color: #2c3e50;
    border-left: 4px solid #dc3545;
    padding-left: 10px;
    margin: 1.8rem 0 0.8rem;
}
body.page-lesiones-lista .seccion-ayuda {
    color: #6c757d;
    font-size: 0.85rem;
    margin: -4px 0 12px 14px;
}

/* Wrapper de tabla */
body.page-lesiones-lista .lista-tabla-wrap {
    background: #fff;
    border: 1px solid #e3e6ea;
    border-radius: 8px;
    overflow: hidden;
    margin-bottom: 16px;
}
body.page-lesiones-lista .lista-tabla-wrap.tabla-estrecha {
    max-width: 700px;
}

/* Tabla base */
body.page-lesiones-lista .lista-tabla {
    width: 100%;
    table-layout: fixed;
    border-collapse: collapse;
    font-size: 0.9rem;
    margin: 0;
}
body.page-lesiones-lista .lista-tabla thead {
    background: #2c3e50;
    color: #fff;
}
body.page-lesiones-lista .lista-tabla th {
    font-weight: 600;
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    padding: 10px 8px;
    text-align: left;
    white-space: nowrap;
}
body.page-lesiones-lista .lista-tabla td {
    padding: 10px 8px;
    border-top: 1px solid #eef0f3;
    vertical-align: middle;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
body.page-lesiones-lista .lista-tabla tbody tr:hover {
    background: #f9fafb;
}
body.page-lesiones-lista .lista-tabla .fila-activa {
    background: #fff8e1;
}
body.page-lesiones-lista .lista-tabla .fila-activa:hover {
    background: #fff3c4;
}

/* Anchos por columna */
body.page-lesiones-lista .tabla-activas .col-jugador  { width: 13%; }
body.page-lesiones-lista .tabla-activas .col-zona     { width: 11%; }
body.page-lesiones-lista .tabla-activas .col-tipo     { width: 10%; }
body.page-lesiones-lista .tabla-activas .col-fecha    { width: 8%;  }
body.page-lesiones-lista .tabla-activas .col-dias     { width: 7%;  text-align: center; }
body.page-lesiones-lista .tabla-activas .col-notas    { width: 25%; }
body.page-lesiones-lista .tabla-activas .col-acciones { width: 9%; text-align: center; }

body.page-lesiones-lista .tabla-historial .col-jugador { width: 12%; }
body.page-lesiones-lista .tabla-historial .col-zona    { width: 11%; }
body.page-lesiones-lista .tabla-historial .col-tipo    { width: 10%; }
body.page-lesiones-lista .tabla-historial .col-fecha   { width: 9%;  }
body.page-lesiones-lista .tabla-historial .col-dias    { width: 6%;  text-align: center; }
body.page-lesiones-lista .tabla-historial .col-estado  { width: 9%;  text-align: center; }
body.page-lesiones-lista .tabla-historial .col-notas   { width: 28%; }

body.page-lesiones-lista .tabla-stats .col-jugador  { width: 40%; }
body.page-lesiones-lista .tabla-stats .col-dias     { width: 20%; text-align: center; }
body.page-lesiones-lista .tabla-stats .col-acciones { width: 20%; text-align: center; }

/* Celdas específicas */
body.page-lesiones-lista .celda-jugador {
    font-weight: 600;
    color: #2c3e50;
}
body.page-lesiones-lista .celda-fecha {
    font-variant-numeric: tabular-nums;
    color: #495057;
}
body.page-lesiones-lista .celda-dias {
    text-align: center;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}
body.page-lesiones-lista .celda-estado    { text-align: center; }
body.page-lesiones-lista .celda-acciones  { text-align: center; }
body.page-lesiones-lista .celda-notas {
    white-space: normal;
    color: #6c757d;
    font-size: 0.85rem;
    line-height: 1.35;
}

/* Indicadores de días */
body.page-lesiones-lista .dias-alerta { color: #dc3545; }
body.page-lesiones-lista .dias-ok     { color: #198754; }

/* Badges */
body.page-lesiones-lista .lista-tabla .badge {
    font-weight: 500;
    font-size: 0.75rem;
    padding: 4px 8px;
}
body.page-lesiones-lista .badge-zona { font-size: 0.75rem; }
body.page-lesiones-lista .badge-mini {
    font-size: 0.65rem;
    padding: 2px 6px;
    margin-left: 4px;
}

/* Responsive */
@media (max-width: 992px) {
    body.page-lesiones-lista .stats-grid {
        grid-template-columns: 1fr;
    }
    body.page-lesiones-lista .lista-tabla-wrap {
        overflow-x: auto;
    }
    body.page-lesiones-lista .lista-tabla {
        min-width: 900px;
    }
}


/* ============================================================
   7) PÁGINA: HISTÓRICO DE INFORMES (page-historical-results)
   ============================================================ */

body.page-historical-results .compact-table { font-size: 0.9em; }
body.page-historical-results .compact-table th {
    background-color: #f8f9fa;
    white-space: nowrap;
    vertical-align: middle;
}
body.page-historical-results .compact-table td { vertical-align: middle; }
body.page-historical-results .table-responsive { max-height: 80vh; }
body.page-historical-results .fixed-header {
    position: sticky;
    top: 0;
    z-index: 1;
    background-color: white;
}
body.page-historical-results .low-score,
body.page-historical-results .mid-score,
body.page-historical-results .high-score { text-align: center; }

body.page-historical-results .compact-table th:nth-child(1)  { width: 120px; }
body.page-historical-results .compact-table th:nth-child(2)  { width: 200px; }
body.page-historical-results .compact-table th:nth-child(3)  { width: 80px;  }
body.page-historical-results .compact-table th:nth-child(4)  { width: 50px;  }
body.page-historical-results .compact-table th:nth-child(5)  { width: 80px;  }
body.page-historical-results .compact-table th:nth-child(6)  { width: 80px;  }
body.page-historical-results .compact-table th:nth-child(7)  { width: 60px;  }
body.page-historical-results .compact-table th:nth-child(8)  { width: 60px;  }
body.page-historical-results .compact-table th:nth-child(9)  { width: 350px; }
body.page-historical-results .compact-table th:nth-child(10) { width: 110px; }
body.page-historical-results .compact-table th:nth-child(11) { width: 80px;  }
body.page-historical-results .compact-table th:nth-child(12) { width: 50px;  }
body.page-historical-results .compact-table th:nth-child(13) { width: 50px;  }
body.page-historical-results .compact-table th:nth-child(14) { width: 350px; }


/* ============================================================
   7-bis) PÁGINA: HISTORIAL DE LESIONES (page-lesiones-historial)
   ------------------------------------------------------------
   Estilo limpio: tabla compacta, anchos fijos, notas anchas.
   ============================================================ */

body.page-lesiones-historial {
    background-color: #f6f8fa;
}

body.page-lesiones-historial .historial-container {
    max-width: 1200px;
    margin-top: 30px;
    margin-bottom: 30px;
}

/* Cabecera */
body.page-lesiones-historial .historial-header {
    display: flex;
    align-items: baseline;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 20px;
    padding-bottom: 12px;
    border-bottom: 2px solid #e3e6ea;
}
body.page-lesiones-historial .historial-title {
    font-size: 1.5rem;
    font-weight: 600;
    color: #2c3e50;
    margin: 0;
}
body.page-lesiones-historial .historial-jugador {
    font-size: 1rem;
    color: #6c757d;
    background: #fff;
    border: 1px solid #dee2e6;
    border-radius: 20px;
    padding: 2px 12px;
}

/* Tarjetas resumen */
body.page-lesiones-historial .stats-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    margin-bottom: 20px;
}
body.page-lesiones-historial .stat-card {
    background: #fff;
    border: 1px solid #e3e6ea;
    border-radius: 8px;
    padding: 14px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
}
body.page-lesiones-historial .stat-number {
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1;
}
body.page-lesiones-historial .stat-label {
    font-size: 0.8rem;
    color: #6c757d;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* Tabla */
body.page-lesiones-historial .historial-tabla-wrap {
    background: #fff;
    border: 1px solid #e3e6ea;
    border-radius: 8px;
    overflow: hidden;
    margin-bottom: 20px;
}
body.page-lesiones-historial .historial-tabla {
    width: 100%;
    table-layout: fixed;          /* respeta los anchos de las columnas */
    border-collapse: collapse;
    font-size: 0.9rem;
    margin: 0;
}
body.page-lesiones-historial .historial-tabla thead {
    background: #2c3e50;
    color: #fff;
}
body.page-lesiones-historial .historial-tabla th {
    font-weight: 600;
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    padding: 10px 8px;
    text-align: left;
    white-space: nowrap;
}
body.page-lesiones-historial .historial-tabla td {
    padding: 10px 8px;
    border-top: 1px solid #eef0f3;
    vertical-align: middle;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
body.page-lesiones-historial .historial-tabla tbody tr:hover {
    background: #f9fafb;
}

/* Anchos de columna (suman 100%) */
body.page-lesiones-historial .historial-tabla .col-zona   { width: 14%; }
body.page-lesiones-historial .historial-tabla .col-tipo   { width: 14%; }
body.page-lesiones-historial .historial-tabla .col-fecha  { width: 11%; }
body.page-lesiones-historial .historial-tabla .col-dias   { width: 6%; text-align: center; }
body.page-lesiones-historial .historial-tabla .col-estado { width: 10%; }
body.page-lesiones-historial .historial-tabla .col-notas  { width: 34%; }

/* Celdas específicas */
body.page-lesiones-historial .celda-fecha {
    font-variant-numeric: tabular-nums;
    color: #495057;
}
body.page-lesiones-historial .celda-dias {
    text-align: center;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}
body.page-lesiones-historial .celda-notas {
    white-space: normal;          /* las notas SÍ pueden hacer wrap */
    color: #6c757d;
    font-size: 0.85rem;
    line-height: 1.35;
}

/* Badges un poco más sobrios */
body.page-lesiones-historial .historial-tabla .badge {
    font-weight: 500;
    font-size: 0.75rem;
    padding: 4px 8px;
}

/* Footer / botón volver */
body.page-lesiones-historial .historial-footer {
    margin-top: 10px;
}

/* Responsive: en móvil dejamos que la tabla scrollee horizontal */
@media (max-width: 768px) {
    body.page-lesiones-historial .stats-grid {
        grid-template-columns: 1fr;
    }
    body.page-lesiones-historial .historial-tabla-wrap {
        overflow-x: auto;
    }
    body.page-lesiones-historial .historial-tabla {
        min-width: 800px;
    }
}


/* ============================================================
   8) PÁGINA: CONTROL DE SESIONES (page-session-control)
   ============================================================ */

body.page-session-control .container {
    max-width: 700px;
    margin-top: 40px;
    min-height: 80vh;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}
body.page-session-control .header-section {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 25px;
}
body.page-session-control .escudo { width: 60px; height: 60px; }
body.page-session-control .session-info {
    font-size: 1.2em;
    margin-bottom: 20px;
    font-weight: bold;
}
body.page-session-control .btn-warning { font-weight: bold; }
body.page-session-control .inline-form {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 20px;
}
body.page-session-control .inline-form select {
    width: 90px;
    min-width: 70px;
    max-width: 120px;
    padding: 2px 8px;
    font-size: 1em;
}
body.page-session-control .bottom-center {
    display: flex;
    justify-content: center;
}
body.page-session-control .btn-red {
    background-color: #dc3545;
    color: white;
    border: none;
}
body.page-session-control .btn-red:hover {
    background-color: #b52a37;
    color: white;
}
body.page-session-control .btn-session {
    width: 180px;
    min-width: 120px;
    max-width: 220px;
    font-size: 1.25rem;
    font-weight: bold;
    padding: 5px;
    text-align: center;
    margin-top: 5px;
}


/* ============================================================
   9) PÁGINA: GESTIÓN DE JUGADORES (page-manage-players)
   ============================================================ */

body.page-manage-players .container {
    max-width: 900px;
    margin-top: 40px;
}
body.page-manage-players .header-section {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 25px;
}
body.page-manage-players .escudo { width: 60px; height: 60px; }
body.page-manage-players .players-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    margin-bottom: 20px;
}
body.page-manage-players .player-card {
    flex: 1 1 45%;
    min-width: 300px;
    max-width: 48%;
    background: #f8f9fa;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.07);
    padding: 15px 10px;
    display: flex;
    align-items: center;
    gap: 15px;
}
body.page-manage-players .player-img {
    width: 60px;
    height: 60px;
    object-fit: cover;
    border-radius: 50%;
    border: 2px solid #1e695a;
}
body.page-manage-players .player-info { flex-grow: 1; }
body.page-manage-players .btn-red {
    background-color: #dc3545;
    color: white;
    border: none;
}
body.page-manage-players .btn-red:hover {
    background-color: #b52a37;
    color: white;
}
body.page-manage-players .bottom-center {
    margin-top: 40px;
    display: flex;
    justify-content: center;
}
body.page-manage-players .form-section {
    background: #f1f1f1;
    border-radius: 10px;
    padding: 20px;
    margin-bottom: 30px;
}


/* ============================================================
   10) PÁGINA: RESULTADOS DIARIOS (page-daily-results)
   ============================================================ */

body.page-daily-results .container {
    flex-wrap: wrap;
    align-items: center;
    display: flex;
}
body.page-daily-results .header-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: nowrap;
    gap: 10px;
}
body.page-daily-results .title-section {
    text-align: center;
    flex-wrap: wrap;
    align-items: center;
    display: flex;
}
body.page-daily-results .title-section h1 {
    font-size: 1.8rem;
    margin: 0;
    white-space: nowrap;
}
body.page-daily-results .escudo {
    width: 65px;
    height: 65px;
    margin: 0 5px;
}
body.page-daily-results .button-section {
    display: flex;
    align-items: center;
    gap: 10px;
}
body.page-daily-results .button-section .btn {
    font-size: 0.875rem;
    padding: 5px 10px;
    white-space: nowrap;
}
body.page-daily-results #clock {
    font-size: 2em;
    font-weight: bold;
    color: #1e695a;
    margin-top: 0;
    text-align: center;
    margin-left: 15px;
}
body.page-daily-results .fixed-header {
    position: sticky;
    top: 0;
    background-color: #cfc9c9;
    z-index: 1;
}
body.page-daily-results .table-responsive {
    margin: 10px auto;
    max-width: 95%;
}
body.page-daily-results .compact-table th,
body.page-daily-results .compact-table td {
    padding: 4px;
    font-size: 16px;
    text-align: center;
    vertical-align: middle;
}
body.page-daily-results .compact-table tr {
    background-color: #f8f9fa;
    font-weight: bold;
    height: 100px;
}
body.page-daily-results .molestias-img {
    max-width: 90px;
    max-height: 90px;
}
body.page-daily-results .col-jugador      { width: 150px; font-weight: bold; }
body.page-daily-results .col-hora         { width: 80px;  }
body.page-daily-results .col-peso         { width: 70px;  }
body.page-daily-results .col-sueno        { width: 80px;  }
body.page-daily-results .col-calidad      { width: 90px;  }
body.page-daily-results .col-animo        { width: 70px;  }
body.page-daily-results .col-fatiga       { width: 70px;  }
body.page-daily-results .col-molestias    { width: 250px; }
body.page-daily-results .col-imagen       { width: 140px; vertical-align: middle; }
body.page-daily-results .col-hora-p       { width: 80px;  }
body.page-daily-results .col-peso-p       { width: 70px;  }
body.page-daily-results .col-rpe          { width: 70px;  }
body.page-daily-results .col-observaciones{ width: 250px; }
body.page-daily-results .col-molestias td { font-weight: lighter; font-size: 10px; }


/* ============================================================
   11) PÁGINA: RESULTADOS DIARIOS - VARIANTE ANTIGUA
        (page-daily-results-2)  → daily_results_final2.html
   ============================================================ */

body.page-daily-results-2 .container {
    flex-wrap: wrap;
    align-items: center;
    display: flex;
}
body.page-daily-results-2 .header-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 15px;
}
body.page-daily-results-2 .title-section {
    text-align: center;
    flex-wrap: wrap;
    align-items: center;
    display: flex;
}
body.page-daily-results-2 .title-section h1 {
    font-size: 2rem;
    margin: 0;
    white-space: nowrap;
}
body.page-daily-results-2 .escudo {
    width: 70px;
    height: 70px;
    margin: 0 10px;
}
body.page-daily-results-2 .button-section {
    display: flex;
    align-items: center;
    gap: 10px;
}
body.page-daily-results-2 .button-section .btn {
    font-size: 0.875rem;
    padding: 5px 10px;
    white-space: nowrap;
}
body.page-daily-results-2 #clock {
    font-size: 2em;
    font-weight: bold;
    color: #1e695a;
    margin-top: 0;
    text-align: center;
    margin-left: 20px;
}
body.page-daily-results-2 .fixed-header {
    position: sticky;
    top: 0;
    background-color: #cfc9c9;
    z-index: 1;
}
body.page-daily-results-2 .table-responsive {
    margin: 10px auto;
    max-width: 95%;
}
body.page-daily-results-2 .compact-table th,
body.page-daily-results-2 .compact-table td {
    padding: 4px;
    font-size: 16px;
    text-align: center;
    vertical-align: middle;
}
body.page-daily-results-2 .molestias-img {
    max-width: 100px;
    max-height: 100px;
}
body.page-daily-results-2 .col-jugador      { width: 150px; font-weight: bold; }
body.page-daily-results-2 .col-hora         { width: 80px;  }
body.page-daily-results-2 .col-peso         { width: 70px;  }
body.page-daily-results-2 .col-sueno        { width: 80px;  }
body.page-daily-results-2 .col-calidad      { width: 90px;  }
body.page-daily-results-2 .col-animo        { width: 70px;  }
body.page-daily-results-2 .col-fatiga       { width: 70px;  }
body.page-daily-results-2 .col-molestias    { width: 250px; }
body.page-daily-results-2 .col-imagen       { width: 100px; }
body.page-daily-results-2 .col-hora-p       { width: 80px;  }
body.page-daily-results-2 .col-peso-p       { width: 70px;  }
body.page-daily-results-2 .col-rpe          { width: 70px;  }
body.page-daily-results-2 .col-observaciones{ width: 250px; }


/* ============================================================
   NAVBAR DEL ENTRENADOR (compartido entre todas sus pantallas)
   ------------------------------------------------------------
   Estilo moderno tipo "panel de control deportivo": fondo oscuro
   slate, acento verde esmeralda, tipografia Inter, submenus con
   sombra suave y hover desplazado.

   Como cambiar los colores: tocar las variables de :root,
   asi se actualiza todo el navbar y los dropdowns en cascada.
   ============================================================ */
:root {
    /* Paleta del navbar */
    --coach-nav-bg:        #0f172a;  /* slate-900: fondo navbar */
    --coach-nav-bg-soft:   #1e293b;  /* slate-800: fondo dropdowns */
    --coach-nav-border:    rgba(255,255,255,0.08);

    /* Tipografia / texto */
    --coach-nav-text:      #cbd5e1;  /* slate-300: enlaces en reposo */
    --coach-nav-text-on:   #ffffff;  /* blanco: enlaces hover/activos */
    --coach-nav-text-mute: #94a3b8;  /* slate-400: textos secundarios */

    /* Acento (verde "tipo terminal"); cambia esta variable
       si quieres que sea, por ejemplo, el verde original del club */
    --coach-nav-accent:        #10b981;  /* emerald-500 */
    --coach-nav-accent-soft:   rgba(16,185,129,0.15);
    --coach-nav-accent-border: rgba(16,185,129,0.25);

    /* Tipografias */
    --coach-font-sans: 'Inter', -apple-system, BlinkMacSystemFont,
                       'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, sans-serif;
    --coach-font-mono: 'JetBrains Mono', 'SFMono-Regular', Menlo, Consolas, monospace;
}

.coach-navbar {
    background: var(--coach-nav-bg);
    padding: 0.65rem 1rem;
    border-bottom: 1px solid var(--coach-nav-border);
    box-shadow: 0 1px 2px rgba(0,0,0,0.06), 0 4px 12px rgba(0,0,0,0.08);
    font-family: var(--coach-font-sans);
}

/* ── Marca: logo + texto ─────────────────────────────────────── */
.coach-navbar-logo {
    width: 36px;
    height: 36px;
    /* Cuadrado redondeado en vez de circulo: mas moderno */
    border-radius: 8px;
    object-fit: cover;
    background-color: #ffffff;
    padding: 2px;
}
.coach-navbar .navbar-brand {
    color: var(--coach-nav-text-on);
    font-weight: 700;
    font-size: 0.95rem;
    letter-spacing: -0.01em;
    display: flex;
    align-items: center;
    gap: 10px;
}
.coach-navbar .navbar-brand:hover,
.coach-navbar .navbar-brand:focus {
    color: var(--coach-nav-text-on);
}

/* ── Enlaces principales (pill-shape) ─────────────────────────── */
.coach-navbar .nav-link {
    color: var(--coach-nav-text);
    font-weight: 500;
    font-size: 0.875rem;
    letter-spacing: 0.005em;
    padding: 0.45rem 0.85rem !important;
    border-radius: 7px;
    margin: 0 2px;
    transition: color 0.15s ease, background-color 0.15s ease;
}
.coach-navbar .nav-link:hover,
.coach-navbar .nav-link:focus {
    color: var(--coach-nav-text-on);
    background-color: rgba(255,255,255,0.06);
}
/* Estado abierto del dropdown */
.coach-navbar .nav-link.show {
    color: var(--coach-nav-text-on);
    background-color: rgba(255,255,255,0.08);
}
/* Enlace de la pantalla actual (cuando lo marquemos con .active) */
.coach-navbar .nav-link.active {
    color: var(--coach-nav-text-on);
    background-color: var(--coach-nav-accent-soft);
}

/* Chevron del dropdown: animacion al abrirse */
.coach-navbar .dropdown-toggle::after {
    margin-left: 6px;
    vertical-align: middle;
    transition: transform 0.2s ease;
}
.coach-navbar .nav-link.show.dropdown-toggle::after {
    transform: rotate(180deg);
}

/* ── Submenus modernos ────────────────────────────────────────── */
.coach-navbar .dropdown-menu {
    background: var(--coach-nav-bg-soft);
    border: 1px solid var(--coach-nav-border);
    border-radius: 10px;
    padding: 6px;
    margin-top: 8px !important;
    min-width: 220px;
    box-shadow:
        0 12px 28px -8px rgba(0,0,0,0.45),
        0 4px 10px -4px rgba(0,0,0,0.20);
}
.coach-navbar .dropdown-item {
    color: var(--coach-nav-text);
    font-family: var(--coach-font-sans);
    font-size: 0.875rem;
    font-weight: 500;
    padding: 0.55rem 0.8rem;
    border-radius: 6px;
    margin-bottom: 2px;
    /* Hover desplaza levemente el item a la derecha: sensacion tactil */
    transition: background-color 0.15s ease,
                color 0.15s ease,
                transform 0.15s ease;
}
.coach-navbar .dropdown-item:last-child { margin-bottom: 0; }
.coach-navbar .dropdown-item:hover,
.coach-navbar .dropdown-item:focus {
    background-color: rgba(255,255,255,0.06);
    color: var(--coach-nav-text-on);
    transform: translateX(2px);
}
.coach-navbar .dropdown-item:active {
    background-color: var(--coach-nav-accent-soft);
    color: var(--coach-nav-text-on);
}

/* ── Hamburguesa (movil) ──────────────────────────────────────── */
.coach-navbar .navbar-toggler {
    border: 1px solid var(--coach-nav-border);
    padding: 4px 8px;
    border-radius: 6px;
}
.coach-navbar .navbar-toggler:focus {
    box-shadow: 0 0 0 2px var(--coach-nav-accent-border);
}
.coach-navbar .navbar-toggler-icon {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.85%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

/* ── Reloj (badge monospace verde) ────────────────────────────── */
.coach-navbar-clock {
    font-family: var(--coach-font-mono);
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--coach-nav-accent);
    background: var(--coach-nav-accent-soft);
    border: 1px solid var(--coach-nav-accent-border);
    border-radius: 6px;
    padding: 4px 10px;
    /* tabular-nums hace que los digitos ocupen el mismo ancho:
       asi el reloj no "baila" cuando cambia el segundo */
    font-variant-numeric: tabular-nums;
    min-width: 85px;
    text-align: center;
}

/* ── Logout ───────────────────────────────────────────────────── */
.coach-navbar-logout {
    display: inline-flex;
    align-items: center;
    padding: 6px;
    border-radius: 6px;
    transition: background-color 0.15s ease;
}
.coach-navbar-logout:hover {
    /* Se pone rojizo en hover para reforzar que es accion destructiva */
    background-color: rgba(239,68,68,0.18);
}
.coach-navbar-logout-icon {
    width: 22px;
    height: 22px;
    /*filter: brightness(0) invert(1);*/
    /*opacity: 0.85;
    transition: opacity 0.15s ease;*/
}
.coach-navbar-logout:hover .coach-navbar-logout-icon {
    opacity: 1;
}


/* ============================================================
   CABECERA DE PAGINA (subtitulo bajo el navbar)
   ------------------------------------------------------------
   Para mostrar el titulo concreto de cada pantalla
   (ej: "2026-05-11 - Sesion 1" en daily_results)
   ============================================================ */
.page-subtitle {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    padding: 22px 10px 14px 10px;
    margin: 0;
    font-family: var(--coach-font-sans);
    font-size: 1.5rem;
    font-weight: 700;
    /* letter-spacing negativo aprieta un poco la palabra:
       efecto tipico de titulares modernos */
    /*letter-spacing: -0.02em;*/
    color: #0f172a;
    /* width 100% para que ocupe toda la fila cuando el contenedor padre es flex
       (page-daily-results .container tiene display:flex y necesitamos que el
       subtitulo no comparta linea con la tabla que viene debajo). */
    width: 100%;
}
.page-subtitle .escudo-small {
    width: 50px;
    height: 50px;
    border-radius: 8px;
    object-fit: cover;
}
