body { font-family: 'Segoe UI', sans-serif; background: #eef2f3; text-align: center; color: #333; }
.container { max-width: 500px; margin: 30px auto; background: white; padding: 25px; border-radius: 15px; box-shadow: 0 10px 25px rgba(0,0,0,0.1); border: 4px solid transparent; }

/* Animación de alerta */
.pulse-border { border-color: #28a745; animation: pulse 1.5s infinite; }
@keyframes pulse { 0% { box-shadow: 0 0 0 0 rgba(40, 167, 69, 0.7); } 70% { box-shadow: 0 0 0 15px rgba(40, 167, 69, 0); } 100% { box-shadow: 0 0 0 0 rgba(40, 167, 69, 0); } }

.hidden { display: none !important; }

/* Wrapper para password con ojo */
.password-wrapper { position: relative; width: 60%; margin: 0 auto; }
.password-wrapper input { width: 100%; box-sizing: border-box; }
.toggle-password { position: absolute; right: 10px; top: 15px; cursor: pointer; color: #666; }

input { padding: 12px; font-size: 18px; border-radius: 8px; border: 2px solid #ddd; text-align: center; outline: none; transition: border 0.3s; }
input:focus { border-color: #007bff; }

button { padding: 10px 20px; font-size: 16px; cursor: pointer; background: #007bff; color: white; border: none; border-radius: 8px; margin: 10px 5px; font-weight: bold; }
button:disabled { background: #ccc; cursor: not-allowed; }
.btn-secondary { background: #6c757d; }

/* Botón pequeño para mostrar código en juego */
.btn-mini { padding: 5px 10px; font-size: 12px; margin-left: 10px; background: #6c757d; }

/* Banner Turno */
.turn-banner { background: #28a745; color: white; padding: 10px; margin-bottom: 15px; border-radius: 5px; font-weight: bold; animation: slideDown 0.5s ease-out; }
@keyframes slideDown { from { opacity: 0; transform: translateY(-20px); } to { opacity: 1; transform: translateY(0); } }

/* Cabecera VERSUS */
.versus-header { display: flex; justify-content: center; align-items: center; margin-bottom: 15px; background: #f1f3f5; padding: 10px; border-radius: 10px; }
.player-badge { font-weight: bold; padding: 5px 15px; border-radius: 20px; color: white; }
.player-badge.me { background-color: #007bff; }
.player-badge.opp { background-color: #dc3545; }
.vs-text { margin: 0 15px; font-weight: 900; color: #333; font-style: italic; }

.my-code-display { background: #fff3cd; padding: 8px; border-radius: 5px; margin-bottom: 10px; border: 1px solid #ffeeba; display: inline-block; }
.blur-code { letter-spacing: 3px; font-weight: bold; }

.status-bar { margin: 10px 0; padding: 10px; font-weight: bold; background: #f8f9fa; border-radius: 8px; border: 1px solid #e9ecef; }
.small-note { font-size: 0.8em; color: #888; margin-top: -5px; }

/* Tabla */
.history-log { margin-top: 20px; max-height: 250px; overflow-y: auto; }
table { width: 100%; border-collapse: collapse; font-size: 0.9em; }
th { background-color: #f1f1f1; padding: 8px; font-size: 0.85em; }
td { border-bottom: 1px solid #eee; padding: 8px; }
.mono { font-family: monospace; font-weight: bold; font-size: 1.1em; letter-spacing: 2px; }
.bulls { color: #28a745; font-weight: bold; }
.cows { color: #fd7e14; font-weight: bold; }

/* Fin del Juego */
.revealed-code { font-size: 2em; font-weight: bold; color: #dc3545; letter-spacing: 5px; font-family: monospace; }
.loader { border: 4px solid #f3f3f3; border-top: 4px solid #007bff; border-radius: 50%; width: 30px; height: 30px; animation: spin 1s linear infinite; margin: 20px auto; }
@keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }