:root {
    --bg-header: #cd122d; 
    --bg-nav: #b5122a; 
    --bg-action: #2b2b36; 
    --accent-red: #cd122d; 
    --accent-yellow: #facc15; 
    --accent-green: #4ade80; 
    --modal-bg: #cd122d;
    
    --font-condensed: "Roboto Condensed", -apple-system, sans-serif;
    --font-regular: "Roboto", -apple-system, sans-serif;
}

* { 
    box-sizing: border-box; 
    margin: 0; 
    padding: 0; 
    -webkit-tap-highlight-color: transparent; 
}

body { 
    font-family: var(--font-regular); 
    background-color: #f4f4f4; 
    color: #333; 
    font-size: 13px; 
    overflow-x: hidden; 
}

/* --- Mobile Header --- */
.mobile-header { 
    background-color: var(--bg-header); 
    display: flex; 
    justify-content: space-between; 
    align-items: center; 
    padding: 0 15px; 
    height: 60px; 
    position: sticky; 
    top: 0; 
    z-index: 100; 
}

.hamburger-btn, .icon-btn { 
    background: none; 
    border: none; 
    cursor: pointer; 
    padding: 0; 
    display: flex; 
    align-items: center; 
    justify-content: center; 
    color: white;
}

.logo-area img { 
    height: 38px; 
}

.top-actions { 
    display: flex; 
    align-items: center; 
}

.profile-dots-container { 
    background: none; 
    border: none; 
    display: flex; 
    align-items: center; 
    gap: 7px; 
    cursor: pointer; 
}

.user-icon { 
    color: white; 
    font-size: 20px; 
}

.profile-initial { 
    width: 24px; 
    height: 24px; 
    background-color: #f7931e; 
    color: white; 
    border-radius: 50%; 
    display: flex; 
    align-items: center; 
    justify-content: center; 
    font-weight: bold; 
    font-size: 13px; 
}

.dots-icon-vertical { 
    color: white; 
    font-size: 20px; 
}

/* --- Red Top Navigation --- */
.main-nav { 
    background-color: var(--bg-nav); 
    padding: 12px 15px; 
    position: sticky; 
    top: 60px; 
    z-index: 99; 
}

.main-nav ul { 
    list-style: none; 
    display: flex; 
    align-items: center; 
    gap: 20px; 
    overflow-x: auto; 
    scrollbar-width: none; 
}

.main-nav ul::-webkit-scrollbar { 
    display: none; 
}

.main-nav a { 
    color: white; 
    text-decoration: none; 
    font-size: 15px; 
    text-transform: uppercase; 
    white-space: nowrap; 
    font-family: var(--font-condensed); 
    font-weight: 700; 
}

.nav-item-active { 
    background-color: var(--accent-yellow); 
    color: #000 !important; 
    border-radius: 2px; 
    padding: 5px 10px; 
}

.badge-new { 
    background-color: var(--accent-green); 
    color: #000; 
    font-size: 9px; 
    padding: 2px 4px; 
    border-radius: 2px; 
    font-family: var(--font-regular); 
    font-weight: bold; 
    text-transform: none; 
    position: relative; 
    top: -8px; 
}

/* --- Action Bar --- */
.action-bar { 
    background-color: var(--bg-action); 
    display: flex; 
    overflow-x: auto; 
    scrollbar-width: none; 
    padding: 8px 5px; 
    position: sticky; 
    top: 104px; 
    z-index: 98; 
    transition: opacity 0.3s; 
}

.action-bar::-webkit-scrollbar { 
    display: none; 
}

.action-btn { 
    flex: 0 0 auto; 
    background: none; 
    border: none; 
    padding: 5px 15px; 
    color: white; 
    display: flex; 
    flex-direction: column; 
    align-items: center; 
    gap: 5px; 
    font-size: 11px; 
    font-family: var(--font-condensed); 
    cursor: pointer; 
    text-transform: uppercase; 
    position: relative; 
}

.action-btn .icon { 
    font-size: 18px; 
    color: #888; 
}

.action-btn.active { 
    color: white; 
    font-weight: bold; 
}

.count-badge { 
    position: absolute; 
    top: 5px; 
    right: 5px; 
    background-color: rgba(255,255,255,0.1); 
    color: #888; 
    font-size: 9px; 
    padding: 2px 4px; 
    border-radius: 10px; 
}

/* --- Main Layout & Sliders --- */
.mobile-main { 
    padding: 0; 
    max-width: 600px; 
    margin: 0 auto; 
}

.promo-slider-container { 
    width: 100%; 
    position: relative;
}

.slider-track { 
    display: flex; 
    overflow-x: auto; 
    scroll-snap-type: x mandatory; 
    scrollbar-width: none; 
    scroll-behavior: smooth; 
    border-radius: 0px; 
}

.slider-track::-webkit-scrollbar { 
    display: none; 
}

.slide { 
    flex: 0 0 100%; 
    scroll-snap-align: start; 
    aspect-ratio: 21/9; 
}

.slide img { 
    width: 100%; 
    height: 100%; 
    object-fit: cover; 
}

.slider-dots { 
    position: absolute; 
    bottom: 10px; 
    left: 0; 
    right: 0; 
    display: flex; 
    justify-content: center; 
    gap: 6px; 
}

.dot { 
    width: 6px; 
    height: 6px; 
    background-color: rgba(255,255,255,0.5); 
    border-radius: 50%; 
}

.dot.active { 
    background-color: white; 
}

/* --- SPORTSBOOK REPLICA --- */
.upcoming-matches-container { 
    background: white; 
    margin-top: 10px; 
}

.date-header { 
    background: #e6e6e6; 
    padding: 8px 15px; 
    font-weight: bold; 
    font-family: var(--font-condensed); 
    color: #444; 
    border-bottom: 1px solid #ccc; 
}

.upcoming-match-row { 
    display: flex; 
    background: #fff; 
    border-bottom: 1px solid #eee; 
}

.um-time { 
    width: 60px; 
    padding: 15px 10px; 
    color: #666; 
    font-size: 12px; 
    border-right: 1px solid #f0f0f0; 
    display: flex; 
    align-items: center; 
    justify-content: center;
}

.um-teams { 
    flex: 1; 
    padding: 10px 15px; 
    display: flex; 
    flex-direction: column; 
    gap: 5px; 
    font-weight: bold; 
    font-size: 13px; 
    justify-content: center; 
    color: #222;
}

.um-odds { 
    display: flex; 
    background: #e8e8ea; 
}

.um-odd-box { 
    width: 55px; 
    display: flex; 
    align-items: center; 
    justify-content: center; 
    border-left: 1px solid #fff; 
    font-weight: bold; 
    font-family: var(--font-condensed); 
    font-size: 14px; 
    color: #000; 
}

.show-less-bar { 
    text-align: center; 
    padding: 12px; 
    background: #eee; 
    color: #555; 
    font-size: 13px; 
    font-weight: bold; 
    cursor: pointer; 
    border-bottom: 2px solid var(--accent-red); 
}

.game-category-header { 
    background-color: var(--bg-header); 
    color: white; 
    padding: 12px 15px; 
    display: flex; 
    align-items: center; 
    border-radius: 4px; 
    margin-bottom: 10px; 
}

.category-title { 
    display: flex; 
    align-items: center; 
    gap: 10px; 
}

.category-title h2 { 
    font-size: 14px; 
    font-weight: 500; 
    font-family: var(--font-regular); 
}

.dots-icon-horiz { 
    font-weight: bold; 
    letter-spacing: 2px; 
    font-size: 14px; 
}

/* --- VIRTUAL GAMES GRID --- */
.virtual-content { 
    background-color: #2b2b36; 
    padding: 20px 0 50px 0; 
}

.virtual-category-header { 
    display: flex; 
    justify-content: space-between; 
    align-items: center; 
    padding: 10px 15px; 
    color: white; 
}

.virtual-category-header h2 { 
    font-size: 18px; 
    font-weight: 700; 
    font-family: var(--font-condensed); 
    margin: 0; 
}

.btn-circle-red { 
    background-color: var(--accent-red); 
    color: white; 
    width: 26px; 
    height: 26px; 
    border-radius: 50%; 
    display: flex; 
    align-items: center; 
    justify-content: center; 
    border: none; 
    font-size: 14px; 
    cursor: pointer; 
}

.games-grid { 
    display: grid; 
    grid-template-columns: repeat(2, 1fr); 
    gap: 10px; 
    padding: 0 15px; 
    margin-bottom: 25px; 
}

.game-card { 
    background-color: #1a1a24; 
    border-radius: 8px; 
    overflow: hidden; 
    position: relative; 
    cursor: pointer; 
    display: flex; 
    flex-direction: column; 
}

.game-card img { 
    width: 100%; 
    aspect-ratio: 1/1; 
    object-fit: cover; 
    display: block; 
}

.game-info-bar { 
    background-color: var(--accent-red); 
    color: white; 
    padding: 8px 10px; 
    display: flex; 
    justify-content: space-between; 
    align-items: center; 
    font-size: 13px; 
    font-weight: 700; 
    font-family: var(--font-condensed); 
}

.game-badge { 
    position: absolute; 
    top: 6px; 
    left: 6px; 
    background-color: var(--accent-green); 
    color: #000; 
    font-size: 10px; 
    padding: 2px 6px; 
    border-radius: 4px; 
    font-weight: bold; 
    z-index: 2; 
}

.race-ribbon { 
    position: absolute; 
    bottom: 38px; 
    right: -15px; 
    background-color: var(--accent-red); 
    color: white; 
    font-size: 10px; 
    font-weight: bold; 
    padding: 2px 15px; 
    transform: rotate(-45deg); 
    z-index: 2; 
}

/* --- DRAWERS --- */
.side-drawer { 
    display: none; 
    position: fixed; 
    z-index: 99999; 
    top: 0; 
    left: 0; 
    width: 100vw; 
    height: 100vh; 
    background: rgba(0,0,0,0.7); 
}

.drawer-content { 
    position: absolute; 
    top: 0; 
    right: 0; 
    width: 90%; 
    max-width: 400px; 
    height: 100%; 
    background: #fff; 
    box-shadow: -5px 0 15px rgba(0,0,0,0.3); 
    overflow-y: auto; 
}

.left-drawer .drawer-content { 
    left: 0; 
    width: 85%; 
    max-width: 320px;
}

.close-drawer-btn { 
    background: none; 
    border: none; 
    color: #000; 
    font-size: 22px; 
    cursor: pointer; 
}

/* --- MISC UTILS & BUTTONS --- */
.btn-submit-red { 
    background: var(--accent-red); 
    color: #fff; 
    border: none; 
    padding: 14px; 
    font-weight: 700; 
    width: 100%; 
    font-family: var(--font-condensed); 
    cursor: pointer; 
    border-radius: 2px; 
}

/* Updated Login/Register Buttons (Narrower, Sharp Corners) */
.auth-menu-btn { 
    width: 85% !important; 
    margin: 0 auto; 
    display: block; 
    border-radius: 0 !important; 
    padding: 12px !important;
}

.btn-submit-white { 
    background: #fff; 
    color: var(--modal-bg); 
    border: none; 
    padding: 14px; 
    font-weight: 700; 
    width: 100%; 
    font-family: var(--font-condensed); 
    cursor: pointer; 
    border-radius: 2px; 
    text-transform: uppercase; 
}

.btn-submit-dim { 
    background: rgba(255,255,255,0.2); 
    color: #fff; 
    border: none; 
    padding: 14px; 
    font-weight: 700; 
    width: 100%; 
    font-family: var(--font-condensed); 
    cursor: pointer; 
    border-radius: 2px; 
    text-transform: uppercase; 
}

.app-links-row { 
    display: flex; 
    gap: 10px; 
    padding: 0 15px; 
}

.app-links-row a { 
    flex: 1; 
    background: #fff; 
    border: 1px solid #eee; 
    padding: 10px; 
    text-align: center; 
    color: #000; 
    text-decoration: none; 
    font-size: 11px; 
}

.border-b { 
    border-bottom: 1px solid #eee; 
}

.gray-bg { 
    background-color: #f4f4f6; 
    padding: 20px 0; 
}

.center { 
    display: flex; 
    justify-content: center; 
    align-items: center; 
}

/* --- MODALS (Login/Register & Low Balance) --- */
.modal { 
    display: none; 
    position: fixed; 
    z-index: 100000; 
    left: 0; 
    top: 0; 
    width: 100%; 
    height: 100%; 
    background: rgba(0,0,0,0.85); 
}

.modal-content { 
    background-color: var(--modal-bg); 
    margin: 15vh auto; 
    width: 90%; 
    max-width: 340px; 
    border-radius: 4px; 
    position: relative; 
    box-shadow: 0 15px 35px rgba(0,0,0,0.5); 
}

.close-modal-btn { 
    position: absolute; 
    top: 10px; 
    right: 12px; 
    color: white; 
    font-size: 20px; 
    cursor: pointer; 
    background: none; 
    border: none; 
}

.modal-header-area { 
    text-align: center; 
    padding: 25px 15px 10px 15px; 
}

.modal-logo { 
    height: 35px; 
    margin-bottom: 5px; 
}

.modal-title { 
    color: white; 
    font-size: 18px; 
    font-weight: 700; 
    font-family: var(--font-condensed); 
    margin: 0; 
    text-transform: uppercase;
}

.modal-body { 
    padding: 20px; 
}

.modal-input { 
    width: 100%; 
    padding: 12px; 
    border: none; 
    background: #fff; 
    color: #000; 
    font-size: 14px; 
    border-radius: 2px; 
    font-family: var(--font-regular); 
    font-weight: bold; 
    outline: none; 
}

.form-group { 
    margin-bottom: 14px; 
}

.form-group label { 
    display: block; 
    color: white; 
    font-size: 12px; 
    font-weight: bold; 
    margin-bottom: 6px; 
}

.phone-input-group { 
    display: flex; 
    background-color: #ffffff; 
    border-radius: 2px; 
    overflow: hidden; 
}

.phone-prefix { 
    padding: 12px; 
    background: #fff; 
    color: #000; 
    border-right: 1px solid #ccc; 
    font-weight: 700; 
    font-family: var(--font-condensed); 
    font-size: 14px; 
}

.password-input-group { 
    position: relative; 
    display: flex; 
    align-items: center; 
}

.password-input-group .modal-input { 
    padding-right: 35px; 
    border-radius: 2px; 
}

.eye-icon { 
    position: absolute; 
    right: 12px; 
    color: #6b7280; 
    cursor: pointer; 
    font-size: 16px; 
}

.checkbox-group { 
    display: flex; 
    align-items: flex-start; 
    gap: 8px; 
    margin-bottom: 12px; 
}

.checkbox-group input { 
    margin-top: 3px; 
    width: 16px; 
    height: 16px; 
}

.checkbox-group label { 
    color: white; 
    font-size: 11px; 
    line-height: 1.4; 
}

.modal-footer-links { 
    display: flex; 
    justify-content: center; 
    gap: 10px; 
    margin-top: 15px; 
    padding-bottom: 5px; 
}

.modal-footer-links a { 
    color: white; 
    text-decoration: none; 
    font-size: 12px; 
    font-weight: 500; 
}

.modal-footer-links span { 
    color: rgba(255,255,255,0.5); 
    font-size: 12px; 
}

/* Animated Low Balance Specifics */
.low-balance-box { 
    background: white !important; 
    text-align: center; 
    padding: 30px 20px 25px 20px; 
    border-radius: 8px !important; 
    margin-top: 30vh;
}

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

.animated-popup { 
    animation: popIn 0.25s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards; 
}

/* ========================================== */
/* CUSTOM NOTIFICATION TOASTS                 */
/* ========================================== */
.success-toast { 
    position: fixed; 
    top: -100px; 
    left: 50%; 
    transform: translateX(-50%); 
    background-color: #15803d; 
    color: white; 
    padding: 15px 20px; 
    border-radius: 4px; 
    font-weight: bold; 
    font-family: var(--font-condensed); 
    font-size: 14px; 
    z-index: 999999; 
    display: flex; 
    align-items: center; 
    gap: 10px; 
    box-shadow: 0 4px 12px rgba(0,0,0,0.3); 
    transition: top 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275); 
}

.success-toast.show { 
    top: 20px; 
}

.error-toast { 
    position: fixed; 
    top: -100px; 
    left: 50%; 
    transform: translateX(-50%); 
    background-color: #cd122d; 
    color: white; 
    padding: 15px 20px; 
    border-radius: 4px; 
    font-weight: bold; 
    font-family: var(--font-condensed); 
    font-size: 14px; 
    z-index: 999999; 
    display: flex; 
    align-items: center; 
    gap: 10px; 
    box-shadow: 0 4px 12px rgba(0,0,0,0.3); 
    transition: top 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275); 
}

.error-toast.show { 
    top: 20px; 
}


/* --- PAYMENTS & ACTION PAGES --- */
#paymentsView { 
    background-color: #f4f4f4; 
    min-height: 100vh; 
    padding-bottom: 50px;
}

.payments-title-bar { 
    background-color: var(--bg-header); 
    color: white; 
    text-align: center; 
    padding: 15px; 
    font-size: 15px; 
    font-weight: 700; 
    font-family: var(--font-condensed); 
}

.payments-tabs-nav { 
    display: flex; 
    background: var(--bg-header); 
    border-top: 1px solid rgba(255,255,255,0.1); 
}

.pay-tab { 
    flex: 1; 
    background: none; 
    border: none; 
    color: white; 
    padding: 15px 5px; 
    font-size: 14px; 
    font-weight: 500; 
    font-family: var(--font-condensed); 
    cursor: pointer; 
    border-bottom: 3px solid transparent; 
}

.pay-tab.active { 
    color: var(--accent-yellow); 
    border-bottom: 3px solid var(--accent-yellow); 
    font-weight: bold; 
}

.pay-content-area { 
    padding: 15px; 
}

.payment-card { 
    background: white; 
    border: 1px solid #ddd; 
    margin-bottom: 15px; 
    text-align: center; 
    box-shadow: 0 2px 4px rgba(0,0,0,0.05); 
    border-radius: 2px; 
}

.pay-logo-area { 
    padding: 25px; 
    border-bottom: 1px solid #eee; 
    display: flex; 
    align-items: center; 
    justify-content: center;
}

.pay-logo-area img { 
    max-height: 40px; 
    width: auto; 
    object-fit: contain; 
}

.pay-detail-row { 
    padding: 12px; 
    border-bottom: 1px solid #eee; 
    font-size: 14px; 
    color: #333; 
    display: flex; 
    flex-direction: column; 
    gap: 5px;
}

.btn-deposit-action { 
    width: 90%; 
    margin: 20px auto; 
    background: white; 
    color: #15803d; 
    border: 2px solid #15803d; 
    padding: 12px; 
    font-size: 15px; 
    font-weight: bold; 
    font-family: var(--font-condensed); 
    border-radius: 2px; 
    cursor: pointer; 
    text-transform: uppercase; 
}

.withdraw-red-btn { 
    color: #cd122d !important; 
    border: 2px solid #cd122d !important; 
}

/* Action Pages Detail */
.action-page { 
    background: white; 
    padding-bottom: 20px; 
}

.action-page-logo { 
    padding: 15px; 
    border-bottom: 1px solid #eee; 
    display: flex; 
    justify-content: center; 
}

.action-detail-row { 
    display:flex; 
    flex-direction:column; 
    align-items:center; 
    padding: 12px; 
    border-bottom: 1px solid #eee; 
}

.action-detail-row span { 
    color:#666; 
    font-size:13px; 
    margin-bottom:5px; 
}

.action-detail-row b { 
    font-size:14px; 
    color: #333; 
}

.deposit-instructions { 
    padding: 20px; 
    text-align: left; 
    background: #fff; 
}

.deposit-instructions p { 
    color: #666; 
    font-size: 13px; 
    line-height: 1.5; 
    margin-bottom: 10px; 
}

.deposit-instructions label { 
    font-weight: bold; 
    font-size: 13px; 
    color: #555; 
    display:block; 
    margin-bottom:5px; 
}

.copy-input-group { 
    display: flex; 
    margin-bottom: 15px; 
}

.copy-input-group input { 
    flex: 1; 
    padding: 12px; 
    background: #f0f0f0; 
    border: 1px solid #ccc; 
    color: #555; 
    font-size: 14px; 
    border-radius: 2px 0 0 2px; 
    outline: none; 
}

.copy-input-group button { 
    padding: 0 15px; 
    background: #f9f9f9; 
    border: 1px solid #ccc; 
    border-left: none; 
    border-radius: 0 2px 2px 0; 
    cursor: pointer; 
    color: #555; 
}

.amount-input { 
    width: 100%; 
    padding: 12px; 
    border: 1px solid #ccc; 
    border-radius: 2px; 
    margin-bottom: 20px; 
    font-size: 14px; 
    outline: none; 
    text-align: right; 
}

.amount-grid { 
    display: grid; 
    grid-template-columns: repeat(3, 1fr); 
    gap: 10px; 
    margin-bottom: 15px; 
}

.amount-btn { 
    background-color: #1ea0d9; 
    color: white; 
    border: none; 
    padding: 12px 0; 
    font-size: 14px; 
    border-radius: 2px; 
    cursor: pointer; 
    font-family: var(--font-regular); 
    transition: background-color 0.2s;
}

.amount-btn:active { 
    background-color: #1580b0; 
}

.btn-back { 
    width: calc(100% - 40px); 
    margin: 0 20px; 
    padding: 15px; 
    background: #fff; 
    border: 1px solid #ddd; 
    color: #555; 
    font-weight: bold; 
    font-family: var(--font-condensed); 
    font-size: 13px; 
    cursor: pointer; 
    border-radius: 2px; 
    text-transform: uppercase; 
}

/* Withdrawal Request Tables */
.filter-group { 
    display: flex; 
    flex-direction: column; 
    gap: 12px; 
    margin-bottom: 15px; 
}

.filter-select { 
    padding: 14px; 
    border: 1px solid #ccc; 
    background: #f9f9f9; 
    font-family: var(--font-regular); 
    color: #333; 
    font-size: 14px; 
    border-radius: 2px; 
    font-weight: bold;
}

.filter-actions { 
    display: flex; 
    gap: 10px; 
    margin-bottom: 20px; 
}

.btn-filter-search { 
    flex: 1; 
    background: var(--accent-red); 
    color: white; 
    border: none; 
    padding: 14px; 
    font-weight: bold; 
    font-family: var(--font-condensed); 
    font-size: 15px; 
    border-radius: 2px; 
    cursor: pointer; 
}

.btn-filter-clear { 
    flex: 1; 
    background: #a30e23; 
    color: white; 
    border: none; 
    padding: 14px; 
    font-weight: bold; 
    font-family: var(--font-condensed); 
    font-size: 15px; 
    border-radius: 2px; 
    cursor: pointer; 
}

.withdrawal-table { 
    width: 100%; 
    border-collapse: collapse; 
    background: white; 
    border: 1px solid #ddd; 
    font-size: 12px; 
    text-align: center; 
}

.withdrawal-table th { 
    background: var(--accent-red); 
    color: white; 
    padding: 12px; 
    border-right: 1px solid #a30e23; 
    font-weight: bold; 
    font-family: var(--font-condensed);
}

.withdrawal-table td { 
    padding: 15px 10px; 
    border-bottom: 1px solid #ddd; 
    font-weight: 500;
}

.empty-state-row { 
    background: #f9f9f9; 
    color: #333; 
    font-size: 14px; 
    font-weight: bold; 
    padding: 15px;
}