/* ============================================
   SOCCERZONE.CO.ZA - Custom Styles
   ============================================ */

/* Scrollbar */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: #09090b; }
::-webkit-scrollbar-thumb { background: #27272a; border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: #3f3f46; }

::selection { background: rgba(245,158,11,0.2); color: #fbbf24; }

/* Breaking news marquee */
@keyframes marquee {
    0% { transform: translateX(0%); }
    100% { transform: translateX(-50%); }
}
.animate-marquee {
    animation: marquee 20s linear infinite;
}

/* Glowing live indicator */
@keyframes livePulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.3; }
}
.live-pulse {
    animation: livePulse 1.5s ease-in-out infinite;
}

/* Stadium pattern */
.stadium-pattern {
    background-image: 
        linear-gradient(rgba(245,158,11,0.03) 1px, transparent 1px),
        linear-gradient(90deg, rgba(245,158,11,0.03) 1px, transparent 1px);
    background-size: 40px 40px;
}

/* Table row hover */
.standing-row { transition: background-color 150ms; }
.standing-row:hover { background-color: rgba(255,255,255,0.03); }

/* League tab active */
.league-tab.active {
    color: #f59e0b;
    border-color: #f59e0b;
    background: rgba(245,158,11,0.05);
}

/* Card hover */
.card-hover {
    transition: all 300ms;
}
.card-hover:hover {
    border-color: rgba(255,255,255,0.15);
    transform: translateY(-2px);
    box-shadow: 0 8px 30px rgba(0,0,0,0.5);
}

/* Stat bar animation */
@keyframes growWidth {
    from { width: 0%; }
}
.stat-bar { animation: growWidth 1s cubic-bezier(0.16,1,0.3,1) forwards; }

/* Toast notification */
.toast {
    position: fixed;
    bottom: 2rem;
    right: 2rem;
    padding: 1rem 1.5rem;
    background: #18181b;
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: 0.75rem;
    color: white;
    font-size: 0.875rem;
    z-index: 9999;
    transform: translateY(100px);
    opacity: 0;
    transition: all 300ms cubic-bezier(0.16,1,0.3,1);
}
.toast.show { transform: translateY(0); opacity: 1; }
.toast.success { border-color: rgba(34,197,94,0.3); }

/* Fixture status badges */
.status-upcoming { @apply bg-blue-500/20 text-blue-400; }
.status-live { @apply bg-red-500/20 text-red-400; }
.status-completed { @apply bg-zinc-500/20 text-zinc-400; }
.status-postponed { @apply bg-amber-500/20 text-amber-400; }

/* Admin sidebar */
.admin-link.active {
    background: rgba(245,158,11,0.1);
    color: #f59e0b;
    border-right: 2px solid #f59e0b;
}

/* Smooth page transitions */
main { animation: fadeIn 0.3s ease-out; }
@keyframes fadeIn {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Print styles */
@media print {
    nav, footer, .no-print { display: none !important; }
    body { background: white; color: black; }
}
