/* SportZone — Estilos globales */

/* Animaciones */
@keyframes fadeIn {
    from { opacity: 0; transform: translateY(20px); }
    to   { opacity: 1; transform: translateY(0); }
}
.animate-fade-in { animation: fadeIn 0.8s ease forwards; }

/* Scroll suave */
html { scroll-behavior: smooth; }

/* Scrollbar personalizado */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: #f1f5f9; }
::-webkit-scrollbar-thumb { background: #10b981; border-radius: 3px; }

/* Focus ring */
*:focus-visible { outline: 2px solid #10b981; outline-offset: 2px; }

/* Links de navegación internos */
a[href^="#"] { scroll-behavior: smooth; }

/* Botones estado activo */
.active-deporte { border-color: #10b981 !important; background: rgba(16,185,129,.1) !important; }
.active-fecha   { border-color: #10b981 !important; background: rgba(16,185,129,.1) !important; }
.active-metodo  { border-color: #10b981 !important; background: rgba(16,185,129,.1) !important; }

/* Transición global */
button, a, input, select, textarea {
    transition-property: all;
    transition-timing-function: cubic-bezier(.4,0,.2,1);
    transition-duration: 200ms;
}

/* Imagen hero sin parpadeo */
section img { display: block; }

/* Tabla responsive */
@media (max-width: 640px) {
    table { font-size: 12px; }
    th, td { padding: 8px 12px !important; }
}

/* Modal backdrop */
[id^="modal"] { backdrop-filter: blur(4px); }

/* SweetAlert2 z-index fix */
.swal2-container { z-index: 99999 !important; }

/* Spinner animación */
@keyframes spin { to { transform: rotate(360deg); } }
.fa-spin { animation: spin 1s linear infinite; }
