/* ========================================
   ULTRA-PREMIUM KENO DESIGN
   Web3 Glassmorphism + Neon Effects
   ======================================== */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700;800&family=Poppins:wght@600;700;800;900&family=Space+Grotesk:wght@600;700&display=swap');

/* Premium Color Variables */
:root {
    --bg-dark: #0B0A15;
    --bg-darker: #1A103D;
    --accent-gold: #FFD700;
    --accent-orange: #FFA500;
    --accent-purple: #9D4EDD;
    --accent-pink: #FF006E;
    --glass-bg: rgba(255, 255, 255, 0.05);
    --glass-border: rgba(255, 255, 255, 0.1);
    --neon-gold: 0 0 20px rgba(255, 215, 0, 0.5), 0 0 40px rgba(255, 215, 0, 0.3);
}

/* OVERRIDE Body */
body {
    background: linear-gradient(180deg, #0B0A15 0%, #1A103D 100%) !important;
    font-family: 'Inter', 'Poppins', sans-serif !important;
}

body::before {
    background: 
        radial-gradient(circle at 20% 30%, rgba(157, 78, 221, 0.15), transparent 50%),
        radial-gradient(circle at 80% 70%, rgba(255, 215, 0, 0.1), transparent 50%),
        radial-gradient(circle at 50% 50%, rgba(0, 102, 255, 0.05), transparent 50%) !important;
}

/* Premium Numbers */
.number-btn {
    background: var(--glass-bg) !important;
    backdrop-filter: blur(10px) saturate(180%) !important;
    -webkit-backdrop-filter: blur(10px) saturate(180%) !important;
    border: 1.5px solid var(--glass-border) !important;
    box-shadow: 
        0 4px 20px rgba(0, 0, 0, 0.3),
        0 0 15px rgba(157, 78, 221, 0.2),
        inset 0 1px 0 rgba(255, 255, 255, 0.1) !important;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

.number-btn:hover {
    border-color: var(--accent-gold) !important;
    transform: translateY(-4px) scale(1.05) !important;
    box-shadow: 
        0 8px 30px rgba(255, 215, 0, 0.3),
        var(--neon-gold) !important;
}

.number-btn.selected {
    background: linear-gradient(135deg, var(--accent-gold) 0%, var(--accent-orange) 100%) !important;
    border-color: var(--accent-gold) !important;
    transform: scale(1.08) !important;
    box-shadow: 
        0 8px 40px rgba(255, 215, 0, 0.6),
        var(--neon-gold) !important;
    color: #000 !important;
    animation: pulseGlow 2s ease-in-out infinite !important;
}

@keyframes pulseGlow {
    0%, 100% { box-shadow: 0 8px 40px rgba(255, 215, 0, 0.6), var(--neon-gold); }
    50% { box-shadow: 0 8px 60px rgba(255, 215, 0, 0.8), 0 0 80px rgba(255, 215, 0, 0.4); }
}

.number-btn.selected::after {
    content: '✓' !important;
    position: absolute !important;
    top: -8px !important;
    right: -8px !important;
    width: 28px !important;
    height: 28px !important;
    background: linear-gradient(135deg, #00ff00, #00cc00) !important;
    border-radius: 50% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 16px !important;
    font-weight: 900 !important;
    color: #fff !important;
    box-shadow: 0 4px 12px rgba(0, 255, 0, 0.5) !important;
    animation: popIn 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55) !important;
}

@keyframes popIn {
    0% { transform: scale(0) rotate(180deg); opacity: 0; }
    100% { transform: scale(1) rotate(0deg); opacity: 1; }
}

/* Premium Header */
.game-header {
    background: var(--glass-bg) !important;
    backdrop-filter: blur(20px) saturate(180%) !important;
    -webkit-backdrop-filter: blur(20px) saturate(180%) !important;
    border: 1px solid var(--glass-border) !important;
    box-shadow: 
        0 8px 32px rgba(0, 0, 0, 0.4),
        inset 0 1px 0 rgba(255, 255, 255, 0.1) !important;
}

.balance-value {
    font-size: 24px !important;
    font-weight: 800 !important;
    background: linear-gradient(135deg, 
        #FF0080, 
        #FF00FF, 
        #8000FF, 
        #0080FF, 
        #00FFFF, 
        #00FF80, 
        #80FF00, 
        #FFFF00, 
        #FF8000, 
        #FF0080
    ) !important;
    background-size: 300% 300% !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    animation: rainbowShift 3s ease-in-out infinite !important;
}

@keyframes rainbowShift {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}

/* Smaller headers with rainbow effect */
.section-title {
    font-size: 20px !important;
    font-weight: 700 !important;
    background: linear-gradient(135deg, 
        #FF0080, 
        #FF00FF, 
        #8000FF, 
        #0080FF, 
        #00FFFF, 
        #00FF80, 
        #80FF00, 
        #FFFF00, 
        #FF8000, 
        #FF0080
    ) !important;
    background-size: 300% 300% !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    animation: rainbowShift 4s ease-in-out infinite !important;
}

@keyframes shimmer {
    0%, 100% { filter: brightness(1); }
    50% { filter: brightness(1.2); }
}

/* Premium Bet Buttons */
.bet-btn {
    background: var(--glass-bg) !important;
    backdrop-filter: blur(10px) !important;
    -webkit-backdrop-filter: blur(10px) !important;
    border: 1.5px solid var(--glass-border) !important;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

.bet-btn:hover {
    border-color: var(--accent-purple) !important;
    transform: translateY(-3px) !important;
    box-shadow: 0 8px 30px rgba(157, 78, 221, 0.4) !important;
}

.bet-btn.active {
    background: linear-gradient(135deg, var(--accent-gold) 0%, var(--accent-orange) 100%) !important;
    border-color: var(--accent-gold) !important;
    color: #000 !important;
    box-shadow: 0 8px 40px rgba(255, 215, 0, 0.6), var(--neon-gold) !important;
    transform: scale(1.05) !important;
}

.bet-btn.active::after {
    content: '✓' !important;
    position: absolute !important;
    top: -8px !important;
    right: -8px !important;
    width: 28px !important;
    height: 28px !important;
    background: linear-gradient(135deg, #00ff00, #00cc00) !important;
    border-radius: 50% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 16px !important;
    font-weight: 900 !important;
    color: #fff !important;
    box-shadow: 0 4px 12px rgba(0, 255, 0, 0.5) !important;
    animation: popIn 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55) !important;
}

/* Premium Play Button */
.play-btn {
    background: linear-gradient(135deg, var(--accent-gold) 0%, var(--accent-orange) 100%) !important;
    border: none !important;
    box-shadow: 0 8px 40px rgba(255, 215, 0, 0.5), var(--neon-gold) !important;
    color: #000 !important;
    font-weight: 900 !important;
    animation: playPulse 2.5s ease-in-out infinite !important;
    position: relative !important;
    overflow: hidden !important;
}

.play-btn::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: -100% !important;
    width: 100% !important;
    height: 100% !important;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent) !important;
    transition: left 0.6s ease !important;
}

.play-btn:hover::before {
    left: 100% !important;
}

@keyframes playPulse {
    0%, 100% {
        box-shadow: 0 8px 40px rgba(255, 215, 0, 0.5), var(--neon-gold);
        transform: scale(1);
    }
    50% {
        box-shadow: 0 12px 60px rgba(255, 215, 0, 0.8), 0 0 100px rgba(255, 215, 0, 0.3);
        transform: scale(1.02);
    }
}

.play-btn:hover:not(:disabled) {
    transform: translateY(-4px) scale(1.05) !important;
    box-shadow: 0 12px 60px rgba(255, 215, 0, 0.8), 0 0 120px rgba(255, 215, 0, 0.4) !important;
}

/* Premium Game Main */
.game-main {
    background: var(--glass-bg) !important;
    backdrop-filter: blur(20px) saturate(180%) !important;
    -webkit-backdrop-filter: blur(20px) saturate(180%) !important;
    border: 1px solid var(--glass-border) !important;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4) !important;
}

/* Money Icon Rainbow Effect */
.money-icon {
    fill: url(#rainbowGradient) !important;
    animation: rainbowShift 3s ease-in-out infinite !important;
    filter: drop-shadow(0 0 10px rgba(255, 215, 0, 0.5)) !important;
}

/* SVG Gradient Definition */
.money-icon svg {
    fill: url(#rainbowGradient) !important;
}

/* Add SVG definition to page */
body::after {
    content: '';
    position: fixed;
    opacity: 0;
    pointer-events: none;
}

/* Rainbow Gradient Definition */
@supports (background: linear-gradient(90deg, red, blue)) {
    .money-icon svg {
        fill: none !important;
        stroke: url(#rainbowGradient) !important;
    }
}

/* Mobile Optimizations - COMPACT SIZES */
@media (max-width: 600px) {
    /* Number buttons - COMPACT */
    .number-btn {
        min-height: clamp(32px, 7vw, 40px) !important;
        max-height: clamp(32px, 7vw, 40px) !important;
        min-width: clamp(32px, 7vw, 40px) !important;
        max-width: clamp(32px, 7vw, 40px) !important;
        font-size: clamp(10px, 2.2vw, 14px) !important;
        border-radius: clamp(6px, 1.5vw, 10px) !important;
    }
    
    /* Play button - COMPACT */
    .play-btn {
        font-size: clamp(0.95rem, 2.8vw, 1.4rem) !important;
        padding: clamp(0.8rem, 2.5vw, 1.3rem) clamp(1.5rem, 4vw, 2.2rem) !important;
        min-height: auto !important;
        border-radius: clamp(0.7rem, 2vw, 1.1rem) !important;
    }
    
    .play-btn:hover:not(:disabled) {
        transform: translateY(-2px) scale(1.03) !important;
    }
    
    /* Bet buttons - COMPACT */
    .bet-btn {
        min-height: auto !important;
        min-width: auto !important;
        padding: clamp(0.5rem, 1.5vw, 0.8rem) clamp(0.8rem, 2vw, 1.2rem) !important;
        font-size: clamp(0.75rem, 1.8vw, 0.95rem) !important;
        border-radius: clamp(0.5rem, 1.2vw, 0.8rem) !important;
    }
    
    /* Action buttons - COMPACT */
    .action-btn {
        min-height: auto !important;
        padding: clamp(0.7rem, 1.8vw, 1rem) clamp(1rem, 2.5vw, 1.5rem) !important;
        font-size: clamp(0.85rem, 2vw, 1.05rem) !important;
    }
    
    /* Typography - COMPACT */
    .balance-value {
        font-size: clamp(1rem, 3.5vw, 1.6rem) !important;
    }
    
    .section-title {
        font-size: clamp(0.9rem, 2.5vw, 1.3rem) !important;
    }
    
    /* Containers - COMPACT */
    .game-container {
        padding: clamp(0.5rem, 1.5vw, 1rem) !important;
    }
    
    .game-header {
        padding: clamp(0.85rem, 2.2vw, 1.2rem) !important;
    }
    
    .game-main {
        padding: clamp(0.85rem, 2.2vw, 1.2rem) !important;
    }
}
