diff --git a/css/index.css b/css/index.css index 3d21ea2..2e43f4c 100644 --- a/css/index.css +++ b/css/index.css @@ -121,6 +121,7 @@ align-items: center; justify-content: center; gap: 15px; + text-decoration: none; } .btn-play-kahoot:hover { diff --git a/css/resultados.css b/css/resultados.css index 006a439..b879c14 100644 --- a/css/resultados.css +++ b/css/resultados.css @@ -1,179 +1,442 @@ /* ========================================================================== - ESTILOS GENERALES Y FONDO + VARIABLES DEL PROYECTO ========================================================================== */ + +:root { + --kahoot-purple: #46178f; + --kahoot-purple-dark: #35116f; + --kahoot-blue: #1368ce; + --kahoot-blue-dark: #0c4891; + --kahoot-red: #e21b3c; + --kahoot-yellow: #ffa602; + --kahoot-yellow-dark: #d88900; + --kahoot-green: #26890c; + --kahoot-green-hover: #1f6f09; + + --background: #f2f2f2; + --text-dark: #333333; + --text-muted: #666666; + --white: #ffffff; +} + + +/* ========================================================================== + ESTILOS GENERALES + ========================================================================== */ + * { margin: 0; padding: 0; - box-shadow: none; box-sizing: border-box; } body { - font-family: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif; - background-color: #f0f4f8; - color: #2c3e50; - display: flex; - justify-content: center; - align-items: center; + font-family: 'Fredoka', sans-serif; + background-color: var(--background); + color: var(--text-dark); min-height: 100vh; - padding: 20px; + padding: 30px 20px; } -/* Contenedor principal estilo tarjeta */ -.contenedor { - width: 100%; - max-width: 900px; - background: #ffffff; - padding: 40px; - border-radius: 16px; - box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08); - text-align: center; - animation: fadeIn 0.5s ease-in-out; -} - -h1 { - font-size: 2.5rem; - color: #1a365d; - margin-bottom: 30px; -} - -h2 { - font-size: 1.6rem; - color: #2b6cb0; - margin-top: 30px; - margin-bottom: 15px; - text-align: left; - border-bottom: 2px solid #e2e8f0; - padding-bottom: 8px; -} - -p { - font-size: 1.1rem; - color: #718096; - margin-bottom: 30px; -} /* ========================================================================== - PANTALLA DE ESPERA Y ANIMACIÓN DE CARGA (LOADER) + CONTENEDOR PRINCIPAL ========================================================================== */ -#pantalla-espera { - padding: 60px 20px; + +.contenedor { + width: 100%; + max-width: 1000px; + margin: 0 auto; + background-color: var(--white); + border-radius: 20px; + box-shadow: 0 8px 25px rgba(0, 0, 0, 0.10); + overflow: hidden; } + +/* ========================================================================== + PANTALLA DE ESPERA + ========================================================================== */ + +#pantalla-espera { + padding: 70px 30px; + text-align: center; +} + +#pantalla-espera h2 { + color: var(--kahoot-purple); + font-size: 2rem; + font-weight: 700; + margin-bottom: 15px; +} + +#pantalla-espera p { + color: var(--text-muted); + font-size: 1.1rem; + margin-bottom: 35px; +} + + +/* ========================================================================== + LOADER + ========================================================================== */ + .loader { - width: 60px; - height: 60px; - border: 6px solid #e2e8f0; - border-top: 6px solid #3182ce; - border-radius: 50%; + width: 65px; + height: 65px; margin: 0 auto; - animation: spin 1.2s linear infinite; + + border: 7px solid #e5e5e5; + border-top-color: var(--kahoot-purple); + + border-radius: 50%; + + animation: spin 1s linear infinite; } @keyframes spin { - 0% { transform: rotate(0deg); } - 100% { transform: rotate(360deg); } + from { + transform: rotate(0deg); + } + + to { + transform: rotate(360deg); + } } + /* ========================================================================== - TABLAS DE CLASIFICACIÓN (RANKING) + CABECERA DE RESULTADOS ========================================================================== */ -.tabla-ranking { - width: 100%; - border-collapse: collapse; - margin-bottom: 20px; - font-size: 1.05rem; + +#pantalla-resultados { + padding: 40px; } -.tabla-ranking th, -.tabla-ranking td { - padding: 16px 20px; +#pantalla-resultados h1 { + text-align: center; + color: var(--kahoot-yellow); + font-size: 2.6rem; + font-weight: 700; + margin-bottom: 35px; + + text-shadow: 2px 2px 0 rgba(70, 23, 143, 0.10); +} + +#pantalla-resultados h2 { + display: flex; + align-items: center; + gap: 10px; + + font-size: 1.5rem; + font-weight: 700; + + margin-top: 35px; + margin-bottom: 15px; + + padding-bottom: 10px; + border-bottom: 3px solid #eee; +} + + +/* ========================================================================== + TABLAS + ========================================================================== */ + +.tabla-ranking { + width: 100%; + border-collapse: separate; + border-spacing: 0; + + overflow: hidden; + + background-color: #fff; + + border: 2px solid #eeeeee; + border-radius: 15px; + + margin-bottom: 30px; + + box-shadow: 0 5px 15px rgba(0, 0, 0, 0.06); +} + + +/* Cabecera */ + +.tabla-ranking thead th { + background-color: var(--kahoot-purple); + color: white; + + padding: 15px 18px; + + font-size: 0.95rem; + font-weight: 700; + + text-transform: uppercase; + letter-spacing: 0.3px; + text-align: left; } -.tabla-ranking th { - background-color: #2d3748; - color: #ffffff; - font-weight: 600; - text-transform: uppercase; - font-size: 0.9rem; - letter-spacing: 0.5px; +.tabla-ranking thead th:first-child { + border-top-left-radius: 12px; } -/* Alinear los puntos y aciertos a la derecha para mejor lectura numérica */ -.tabla-ranking th:last-child, -.tabla-ranking td:last-child { - text-align: right; +.tabla-ranking thead th:last-child { + border-top-right-radius: 12px; } -.tabla-ranking tr { - border-bottom: 1px solid #e2e8f0; - transition: background-color 0.2s; + +/* Celdas */ + +.tabla-ranking tbody td { + padding: 16px 18px; + + font-size: 1rem; + font-weight: 500; + + border-bottom: 1px solid #eeeeee; + + color: var(--text-dark); +} + + +/* Última fila */ + +.tabla-ranking tbody tr:last-child td { + border-bottom: none; +} + + +/* Hover */ + +.tabla-ranking tbody tr { + transition: + transform 0.15s ease, + background-color 0.15s ease; } .tabla-ranking tbody tr:hover { - background-color: #f7fafc; + background-color: #f7f3ff; } + /* ========================================================================== - RESALTADO DE GANADORES (1º PUESTO) + COLUMNA DE POSICIÓN ========================================================================== */ -/* Fila del Equipo Ganador y Jugador Ganador */ -.tabla-ranking tr.top-team, -.tabla-ranking tr.top-player { - background-color: #fefcbf !important; /* Amarillo suave */ - font-weight: bold; + +.tabla-ranking tbody td:first-child { + font-weight: 700; + color: var(--kahoot-purple); + width: 100px; } -/* Cambiar el color del texto del puesto #1 a dorado/corona */ -.tabla-ranking tr.top-team td:first-child, -.tabla-ranking tr.top-player td:first-child { - color: #b7791f; - font-size: 1.2rem; -} + +/* ========================================================================== + PUNTOS + ========================================================================== */ .tabla-ranking td strong { - color: #2f855a; /* Verde para destacar los aciertos conseguidos */ - font-size: 1.1rem; + color: var(--kahoot-green); + font-size: 1.15rem; + font-weight: 700; } -/* ========================================================================== - EFECTOS VISUALES SUAVES - ========================================================================== */ -@keyframes fadeIn { - from { opacity: 0; transform: translateY(10px); } - to { opacity: 1; transform: translateY(0); } -} /* ========================================================================== - ESTILOS DEL BOTÓN DE RETORNO A INICIO + EQUIPO / JUGADOR GANADOR ========================================================================== */ + +.tabla-ranking tr.top-team, +.tabla-ranking tr.top-player { + background-color: #fff7df !important; + font-weight: 700; +} + + +/* Línea lateral amarilla */ + +.tabla-ranking tr.top-team td:first-child, +.tabla-ranking tr.top-player td:first-child { + color: var(--kahoot-yellow-dark); + font-size: 1.15rem; +} + + +/* Puntos del ganador */ + +.tabla-ranking tr.top-team td strong, +.tabla-ranking tr.top-player td strong { + color: var(--kahoot-green); +} + + +/* ========================================================================== + BOTÓN VOLVER AL INICIO + ========================================================================== */ + .contenedor-boton { + display: flex; + justify-content: center; + align-items: center; + margin-top: 40px; - padding-top: 20px; - text-align: center; + padding-top: 10px; } + +/* Botón */ + .btn-inicio { - display: inline-block; - background-color: #3182ce; /* Azul corporativo */ - color: #ffffff; - padding: 14px 28px; + display: inline-flex; + align-items: center; + justify-content: center; + gap: 10px; + + min-width: 240px; + + padding: 15px 28px; + + background-color: var(--kahoot-blue); + color: white; + + border: none; + border-bottom: 5px solid var(--kahoot-blue-dark); + + border-radius: 12px; + + font-family: 'Fredoka', sans-serif; font-size: 1.1rem; - font-weight: 600; + font-weight: 700; + text-decoration: none; - border-radius: 8px; - box-shadow: 0 4px 6px rgba(49, 130, 206, 0.2); - transition: background-color 0.2s, transform 0.2s, box-shadow 0.2s; + + box-shadow: 0 5px 10px rgba(19, 104, 206, 0.25); + + transition: all 0.15s ease; } + +/* Hover */ + .btn-inicio:hover { - background-color: #2b6cb0; /* Azul ligeramente más oscuro al pasar el cursor */ - box-shadow: 0 6px 12px rgba(43, 108, 176, 0.3); - transform: translateY(-2px); /* Pequeño salto hacia arriba */ + background-color: #0f56ab; + color: white; + + transform: translateY(-3px); + + box-shadow: 0 8px 15px rgba(19, 104, 206, 0.30); } + +/* Click */ + .btn-inicio:active { - transform: translateY(0); /* Vuelve a su posición normal al pulsar */ - box-shadow: 0 2px 4px rgba(43, 108, 176, 0.2); + transform: translateY(3px); + + border-bottom-width: 2px; + + box-shadow: 0 3px 6px rgba(19, 104, 206, 0.20); +} + + +/* ========================================================================== + RESPONSIVE + ========================================================================== */ + +@media (max-width: 768px) { + + body { + padding: 15px 10px; + } + + #pantalla-resultados { + padding: 25px 15px; + } + + #pantalla-resultados h1 { + font-size: 2rem; + margin-bottom: 25px; + } + + #pantalla-resultados h2 { + font-size: 1.3rem; + } + + .tabla-ranking { + font-size: 0.9rem; + } + + .tabla-ranking thead th, + .tabla-ranking tbody td { + padding: 12px 10px; + } + + .tabla-ranking thead th { + font-size: 0.75rem; + } + + .tabla-ranking tbody td { + font-size: 0.9rem; + } + + .tabla-ranking td strong { + font-size: 1rem; + } + + .btn-inicio { + width: 100%; + min-width: 0; + } +} + + +/* ========================================================================== + MÓVILES PEQUEÑOS + ========================================================================== */ + +@media (max-width: 500px) { + + body { + padding: 10px 5px; + } + + #pantalla-espera { + padding: 50px 20px; + } + + #pantalla-espera h2 { + font-size: 1.5rem; + } + + #pantalla-espera p { + font-size: 0.95rem; + } + + #pantalla-resultados { + padding: 20px 10px; + } + + #pantalla-resultados h1 { + font-size: 1.7rem; + } + + #pantalla-resultados h2 { + font-size: 1.15rem; + } + + .tabla-ranking { + display: block; + overflow-x: auto; + white-space: nowrap; + } + + .tabla-ranking thead th, + .tabla-ranking tbody td { + padding: 10px 8px; + } + + .contenedor-boton { + margin-top: 25px; + } } diff --git a/resultados.php b/resultados.php index 6b04e5a..1c82ba8 100644 --- a/resultados.php +++ b/resultados.php @@ -86,19 +86,24 @@ usort($equiposFinales, function($a, $b) { return $b['puntos'] <=> $a['puntos']; Resultados - Trivial + + + + +
-

⌛ Esperando a que todos los jugadores terminen...

+

Esperando a que todos los jugadores terminen...

Calculando estadísticas de velocidad y actualizando perfiles históricos en el servidor.