:root {
    --bg: #0b1220;
    --panel: #111a2e;
    --panel-2: #1b2540;
    --text: #e6edf7;
    --muted: #8b97ad;
    --primary: #f59e0b;
    --primary-2: #d97706;
    --success: #10b981;
    --danger: #ef4444;
    --border: #243049;
    /* semantic surfaces ใช้ร่วมในหน้า admin (ปรับตามธีมได้) */
    --admin-sidebar-bg: #0a1020;
    --input-bg: var(--panel-2);
    --input-border: var(--border);
    --hover-overlay: rgba(255, 255, 255, .04);
    --soft-success-bg: rgba(16, 185, 129, .15);
    --soft-success-text: #6ee7b7;
    --soft-danger-bg: rgba(239, 68, 68, .15);
    --soft-danger-text: #fca5a5;
    --soft-warning-bg: rgba(251, 191, 36, .15);
    --soft-warning-text: #fbbf24;
    --soft-info-bg: rgba(96, 165, 250, .15);
    --soft-info-text: #93c5fd;
    --link-color: #93c5fd;
}

/* ============================================================
   Admin Light Theme — เปิดใช้เมื่อ <html data-admin-theme="light">
   (toggle อยู่ใน admin sidebar เท่านั้น จึงไม่กระทบหน้าฝั่ง user)
   ============================================================ */
html[data-admin-theme="light"] {
    --bg: #eef1f6;
    --panel: #ffffff;
    --panel-2: #f3f5f9;
    --text: #11203a;
    --muted: #475063;
    --border: #b9c3d4;
    --admin-sidebar-bg: #ffffff;
    --input-bg: #ffffff;
    --input-border: #a3afc2;
    --hover-overlay: rgba(15, 23, 42, .07);
    --soft-success-bg: rgba(16, 185, 129, .14);
    --soft-success-text: #047857;
    --soft-danger-bg: rgba(239, 68, 68, .12);
    --soft-danger-text: #b91c1c;
    --soft-warning-bg: rgba(245, 158, 11, .16);
    --soft-warning-text: #b45309;
    --soft-info-bg: rgba(37, 99, 235, .12);
    --soft-info-text: #1d4ed8;
    --link-color: #2563eb;
}
html[data-admin-theme="light"] body {
    background: linear-gradient(180deg, #f6f8fb 0%, #e9edf4 100%);
}
html[data-admin-theme="light"] .admin-sidebar {
    box-shadow: 1px 0 0 rgba(15, 23, 42, .04);
}
html[data-admin-theme="light"] .btn-secondary:hover { background: #e2e8f0; }
html[data-admin-theme="light"] .mono { color: #475569; }
html[data-admin-theme="light"] .seg-btn:hover { background: var(--hover-overlay); }
html[data-admin-theme="light"] .seg-group {
    background: linear-gradient(135deg, rgba(15, 23, 42, .04), rgba(15, 23, 42, .01));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .6);
}
/* light mode: เพิ่มความเข้มของขอบ + เงา ให้การ์ด/ตาราง ดูคมขึ้น (เดิมจางเกินไป) */
html[data-admin-theme="light"] .kpi-card,
html[data-admin-theme="light"] .panel,
html[data-admin-theme="light"] .table-wrap {
    box-shadow: 0 1px 2px rgba(15, 23, 42, .06), 0 1px 3px rgba(15, 23, 42, .08);
}
html[data-admin-theme="light"] .kpi-card:hover {
    box-shadow: 0 10px 24px rgba(15, 23, 42, .16);
}
html[data-admin-theme="light"] .kpi-accent-blue   { border-color: rgba(37, 99, 235, .5); }
html[data-admin-theme="light"] .kpi-accent-purple { border-color: rgba(124, 58, 237, .5); }
html[data-admin-theme="light"] .kpi-accent-cyan   { border-color: rgba(8, 145, 178, .5); }
html[data-admin-theme="light"] .kpi-accent-slate  { border-color: rgba(71, 85, 105, .45); }
html[data-admin-theme="light"] .kpi-card.kpi-success { border-color: rgba(5, 150, 105, .55); }
html[data-admin-theme="light"] .kpi-card.kpi-danger  { border-color: rgba(220, 38, 38, .55); }
html[data-admin-theme="light"] .kpi-card.kpi-highlight {
    background: linear-gradient(135deg, rgba(245, 158, 11, .18), rgba(217, 119, 6, .08));
    border-color: rgba(217, 119, 6, .6);
}
html[data-admin-theme="light"] .kpi-icon { opacity: .5; }
/* เส้นขอบ/หัวตารางให้เข้มขึ้น */
html[data-admin-theme="light"] .data-table th {
    border-bottom-color: #aab6c7;
    color: #3a4456;
}
html[data-admin-theme="light"] .badge {
    border-color: #c2cbd9;
}

* { box-sizing: border-box; }
html, body { height: 100%; }
body {
    margin: 0;
    font-family: "Sarabun", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
    font-weight: 400;
    background: linear-gradient(180deg, var(--bg) 0%, color-mix(in srgb, var(--bg) 72%, #000) 100%);
    color: var(--text);
    line-height: 1.55;
}

/* บังคับใช้ Sarabun กับ element ที่มี font ตัวเอง (input/button/select/textarea) */
input, button, select, textarea {
    font-family: inherit;
}

a { color: var(--link-color); text-decoration: none; }
a:hover { text-decoration: underline; }

.navbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 24px;
    background: color-mix(in srgb, var(--member-navbar-bg, var(--panel)) 88%, transparent);
    backdrop-filter: blur(8px);
    border-bottom: 1px solid var(--border);
    position: sticky;
    top: 0;
    z-index: 10;
}
.navbar .brand {
    font-size: 20px;
    font-weight: 700;
    color: var(--member-navbar-active, var(--primary));
    text-decoration: none;
}
.nav-links {
    display: flex;
    align-items: center;
    gap: 18px;
}
.nav-links a { color: var(--member-navbar-text, var(--text)); }
.nav-user {
    display: flex;
    flex-direction: column;
    text-align: right;
    line-height: 1.2;
    font-size: 13px;
}
.nav-user .balance {
    color: var(--success);
    font-weight: 700;
    font-size: 14px;
}
.nav-user .diamonds {
    color: #c4b5fd;
    font-weight: 600;
    font-size: 12px;
}
.logout-form { margin: 0; }
.btn-link {
    background: none;
    border: none;
    color: var(--link-color);
    cursor: pointer;
    padding: 0;
    font: inherit;
}
.btn-link:hover { text-decoration: underline; }

.btn-primary, .btn-secondary {
    display: inline-block;
    padding: 10px 18px;
    border-radius: 8px;
    border: none;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
    transition: transform .05s, opacity .15s;
}
.btn-primary {
    background: linear-gradient(135deg, var(--primary), var(--primary-2));
    color: #1a1a1a;
}
.btn-primary:hover { opacity: .92; text-decoration: none; }
.btn-secondary {
    background: var(--panel-2);
    color: var(--text);
    border: 1px solid var(--border);
}
.btn-secondary:hover { background: #243049; text-decoration: none; }
.btn-secondary.active {
    background: color-mix(in srgb, var(--primary) 18%, var(--panel-2));
    border-color: color-mix(in srgb, var(--primary) 45%, var(--border));
    color: var(--text);
}
html[data-admin-theme="light"] .btn-secondary.active {
    background: color-mix(in srgb, var(--primary) 14%, #ffffff);
    border-color: color-mix(in srgb, var(--primary) 40%, var(--border));
}
.btn-block { display: block; width: 100%; text-align: center; }

.landing { padding: 60px 24px; }
.hero {
    max-width: 720px;
    margin: 0 auto;
    text-align: center;
}
.hero h1 { font-size: clamp(28px, 5vw, 44px); margin: 0 0 14px; }
.hero p { color: var(--muted); margin: 0 0 28px; }
.cta { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }

.auth-page {
    min-height: calc(100vh - 70px);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
}
.auth-card {
    width: 100%;
    max-width: 420px;
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: 32px 28px;
    box-shadow: 0 20px 50px rgba(0,0,0,.35);
}
.auth-card h1 {
    margin: 0 0 18px;
    font-size: 22px;
}
.auth-form {
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.auth-form label {
    display: flex;
    flex-direction: column;
    gap: 6px;
    font-size: 13px;
    color: var(--muted);
}
.auth-form label span small { color: #5d6b85; font-weight: 400; }
.auth-form input {
    background: var(--panel-2);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 11px 14px;
    color: var(--text);
    font-size: 15px;
    transition: border-color .15s, box-shadow .15s;
}
.auth-form input:focus {
    outline: none;
    border-color: var(--primary);
    box-shadow: 0 0 0 3px rgba(245, 158, 11, .15);
}
.auth-form button { margin-top: 6px; padding: 12px; }

.auth-foot {
    margin: 18px 0 0;
    text-align: center;
    color: var(--muted);
    font-size: 14px;
}

.alert {
    padding: 10px 14px;
    border-radius: 8px;
    margin-bottom: 14px;
    font-size: 14px;
}
.alert-error {
    background: var(--soft-danger-bg);
    border: 1px solid rgba(239, 68, 68, .35);
    color: var(--soft-danger-text);
}

.admin-page, .lobby-page, .content-page {
    padding: 32px 24px;
    max-width: 1100px;
    margin: 0 auto;
}
.admin-card, .lobby-card {
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: 28px;
}
.muted { color: var(--muted); }

.alert-success {
    background: var(--soft-success-bg);
    border: 1px solid rgba(16, 185, 129, .35);
    color: var(--soft-success-text);
}

.page-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 24px;
    flex-wrap: wrap;
    gap: 12px;
}
.page-header h1 {
    margin: 0;
    font-size: 24px;
}

/* Wallet */
.wallet-summary {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 16px;
    margin-bottom: 24px;
}
@media (max-width: 800px) {
    .wallet-summary { grid-template-columns: 1fr; }
}

.wallet-card {
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: 24px;
}
.wallet-card-main {
    background: linear-gradient(135deg, color-mix(in srgb, var(--primary) 14%, var(--panel)) 0%, var(--panel) 100%);
    border-color: var(--primary);
}
.wallet-card-label {
    color: var(--muted);
    font-size: 13px;
    margin-bottom: 8px;
}
.wallet-card-value {
    font-size: 32px;
    font-weight: 800;
    color: var(--success);
    letter-spacing: -0.5px;
}
.wallet-card-meta {
    color: var(--muted);
    font-size: 12px;
    margin-top: 8px;
}
.wallet-stats {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
}
@media (max-width: 480px) {
    .wallet-stats { grid-template-columns: 1fr; }
}
.stat-card {
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 14px 18px;
}
.stat-label {
    color: var(--muted);
    font-size: 12px;
    margin-bottom: 4px;
}
.stat-value {
    font-size: 18px;
    font-weight: 700;
}

.wallet-info-banner {
    background: rgba(245, 158, 11, .08);
    border: 1px solid rgba(245, 158, 11, .25);
    border-radius: 10px;
    padding: 12px 16px;
    margin-bottom: 24px;
}
.wallet-info-banner p { margin: 0; font-size: 14px; color: #fcd34d; }

/* Tables */
.history-section { margin-top: 8px; }
.history-section h2 { margin: 0 0 14px; font-size: 18px; }
.table-wrap {
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: 12px;
    overflow: hidden;
    overflow-x: auto;
}
.data-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
}
.data-table th, .data-table td {
    padding: 12px 16px;
    text-align: left;
    border-bottom: 1px solid var(--border);
    white-space: nowrap;
}
.data-table th {
    background: var(--panel-2);
    color: var(--muted);
    font-weight: 600;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.data-table th .sort-link {
    color: inherit;
    text-decoration: none;
}
.data-table th .sort-link:hover {
    color: var(--text);
}
.data-table tbody tr:last-child td { border-bottom: none; }
.data-table tbody tr:hover { background: var(--hover-overlay); }
.admin-user-actions {
    display: flex;
    align-items: center;
    gap: 8px;
}
.admin-user-actions .btn-sm {
    white-space: nowrap;
}
.row-actions {
    display: flex;
    align-items: center;
    gap: 8px;
}
.row-actions .btn-sm {
    white-space: nowrap;
}
.text-right { text-align: right !important; }
.text-success { color: var(--success); font-weight: 600; }
.text-danger { color: var(--danger); font-weight: 600; }

.badge {
    display: inline-block;
    padding: 3px 8px;
    border-radius: 6px;
    font-size: 11px;
    font-weight: 600;
    background: var(--panel-2);
    border: 1px solid var(--border);
    color: var(--text);
    white-space: nowrap;
}
.badge-credit { background: var(--soft-success-bg); border-color: rgba(16,185,129,.35); color: var(--soft-success-text); }
.badge-debit  { background: var(--soft-danger-bg);  border-color: rgba(239,68,68,.35);  color: var(--soft-danger-text); }
.badge-status { background: var(--soft-info-bg); border-color: rgba(96,165,250,.35); color: var(--soft-info-text); }

/* Profile */
.profile-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 20px;
}
.profile-card {
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: 24px;
}
.profile-card h2 {
    margin: 0 0 16px;
    font-size: 17px;
}
.profile-card-info { background: var(--panel-2); }
.info-list {
    display: grid;
    grid-template-columns: 130px 1fr;
    gap: 8px 12px;
    margin: 0;
    font-size: 14px;
}
.info-list dt {
    color: var(--muted);
}
.info-list dd { margin: 0; }

/* ============================
   Admin Layout
   ============================ */
.admin-shell {
    display: grid;
    grid-template-columns: 240px 1fr;
    min-height: calc(100vh - 0px);
}
.admin-sidebar {
    background: var(--admin-sidebar-bg);
    border-right: 1px solid var(--border);
    padding: 18px;
    display: flex;
    flex-direction: column;
    gap: 18px;
    position: sticky;
    top: 0;
    height: 100vh;
    overflow-y: auto;
}
.admin-sidebar-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}
.admin-sidebar-close {
    display: none;
    background: transparent;
    border: 1px solid var(--border);
    color: var(--text);
    width: 34px;
    height: 34px;
    border-radius: 8px;
    cursor: pointer;
    font-size: 16px;
    line-height: 1;
}
.admin-sidebar-close:hover { background: var(--panel-2); }
.admin-head-actions {
    display: flex;
    align-items: center;
    gap: 8px;
}
.admin-theme-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    background: transparent;
    border: 1px solid var(--border);
    color: var(--text);
    border-radius: 8px;
    cursor: pointer;
    font-size: 16px;
    line-height: 1;
    transition: background-color .12s ease;
}
.admin-theme-toggle:hover { background: var(--panel-2); }
.admin-brand a {
    font-size: 18px;
    font-weight: 800;
    color: var(--primary);
    text-decoration: none;
    letter-spacing: .04em;
}
.admin-nav { display: flex; flex-direction: column; gap: 2px; }
.admin-nav a,
.admin-nav__toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    color: var(--text);
    text-decoration: none;
    padding: 10px 12px;
    border-radius: 8px;
    font-size: 14px;
    transition: background-color .12s, color .12s;
}
.admin-nav__toggle {
    width: 100%;
    background: transparent;
    border: 0;
    font-family: inherit;
    cursor: pointer;
    text-align: left;
}
.admin-nav a:hover,
.admin-nav__toggle:hover { background: var(--panel-2); }
.admin-nav a.active,
.admin-nav__toggle.active { background: linear-gradient(90deg, rgba(245,158,11,.18), rgba(245,158,11,.02)); color: var(--primary); }
.admin-nav__group {
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.admin-nav__toggle-meta {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.admin-nav__chevron {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    color: var(--muted);
    transition: transform .16s ease, color .12s ease;
}
.admin-nav__toggle.active .admin-nav__chevron,
.admin-nav__toggle:hover .admin-nav__chevron { color: currentColor; }
.admin-nav__group.is-open .admin-nav__chevron { transform: rotate(180deg); }
.admin-nav__children {
    display: none;
    flex-direction: column;
    gap: 2px;
    margin: 2px 0 4px 12px;
    padding-left: 8px;
    border-left: 1px solid rgba(148, 163, 184, .18);
}
.admin-nav__group.is-open .admin-nav__children { display: flex; }
.admin-nav a.admin-nav__sub {
    padding: 8px 10px;
    font-size: 13px;
    color: var(--muted);
}
.admin-nav a.admin-nav__sub:hover,
.admin-nav a.admin-nav__sub.active { color: var(--primary); }
.admin-nav__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 22px;
    padding: 0 7px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
    line-height: 1;
    flex: 0 0 auto;
    background: rgba(96, 165, 250, .25);
    color: #93c5fd;
    border: 1px solid rgba(96, 165, 250, .4);
}
.admin-nav__badge--alert {
    background: linear-gradient(135deg, #ef4444, #dc2626);
    color: #fff;
    border-color: rgba(248, 113, 113, .6);
    box-shadow: 0 0 0 0 rgba(239, 68, 68, .55);
    animation: admin-badge-pulse 1.6s ease-in-out infinite;
}
.admin-nav__badge--info {
    background: rgba(245, 158, 11, .25);
    color: #fcd34d;
    border-color: rgba(245, 158, 11, .45);
}
@keyframes admin-badge-pulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(239, 68, 68, .55); }
    50%      { box-shadow: 0 0 0 6px rgba(239, 68, 68, 0); }
}
@media (prefers-reduced-motion: reduce) {
    .admin-nav__badge--alert { animation: none; }
}
.admin-sidebar-foot {
    margin-top: auto;
    border-top: 1px solid var(--border);
    padding-top: 14px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    font-size: 13px;
}

/* Mobile menu toggle (hamburger) + backdrop — hidden on desktop */
.admin-menu-toggle {
    display: none;
    position: fixed;
    top: 12px;
    left: 12px;
    z-index: 65;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    background: var(--panel);
    color: var(--text);
    border: 1px solid var(--border);
    border-radius: 10px;
    font-family: inherit;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    box-shadow: 0 4px 14px rgba(0, 0, 0, .35);
}
.admin-menu-toggle:hover { background: var(--panel-2); }
.admin-menu-toggle__icon {
    display: inline-flex;
    flex-direction: column;
    justify-content: space-between;
    width: 18px;
    height: 14px;
}
.admin-menu-toggle__icon span {
    display: block;
    height: 2px;
    width: 100%;
    background: currentColor;
    border-radius: 2px;
}
.admin-sidebar-backdrop {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, .55);
    z-index: 60;
    opacity: 0;
    transition: opacity .2s ease;
}
.admin-sidebar-backdrop.is-open { opacity: 1; }
/* hidden attribute ต้องชนะ display:block ใน media query ด้านล่าง
   ไม่งั้น backdrop (inset:0) จะคลุมทั้งจอบนมือถือและดักคลิกเนื้อหา */
.admin-sidebar-backdrop[hidden] { display: none; }

.admin-main { padding: 28px; min-width: 0; }

@media (max-width: 900px) {
    .admin-shell { grid-template-columns: 1fr; }
    .admin-sidebar {
        position: fixed;
        top: 0;
        left: 0;
        height: 100vh;
        width: min(280px, 84vw);
        z-index: 70;
        transform: translateX(-100%);
        transition: transform .22s ease;
        box-shadow: 0 10px 40px rgba(0, 0, 0, .55);
    }
    .admin-sidebar.is-open { transform: translateX(0); }
    .admin-sidebar-close { display: inline-flex; align-items: center; justify-content: center; }
    .admin-menu-toggle { display: inline-flex; }
    .admin-sidebar-backdrop { display: block; }
    .admin-main { padding: 64px 16px 24px; }
    body.admin-menu-open { overflow: hidden; }
}
.admin-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 22px;
    flex-wrap: wrap;
    gap: 12px;
}
.admin-header h1 { margin: 0; font-size: 22px; }

/* KPI cards */
.kpi-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 14px;
    margin-bottom: 24px;
}
.kpi-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 14px;
    margin: 14px 0 22px;
}
.kpi-card {
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 18px;
}
.kpi-card.kpi-success { border-color: rgba(16,185,129,.4); }
.kpi-card.kpi-danger  { border-color: rgba(239,68,68,.4); }
.kpi-card.kpi-highlight {
    background: linear-gradient(135deg, rgba(245,158,11,.16), rgba(217,119,6,.06));
    border-color: rgba(245,158,11,.5);
}
.kpi-label { color: var(--muted); font-size: 12px; margin-bottom: 6px; text-transform: uppercase; letter-spacing: .04em; }
.kpi-value { font-size: 22px; font-weight: 800; }
.kpi-sub   { color: var(--muted); font-size: 12px; margin-top: 4px; }
.kpi-card.has-sparkline {
    padding-right: 126px;
    min-height: 102px;
}
.kpi-card.has-sparkline .kpi-icon {
    display: none;
}
.dash-detail-card {
    cursor: pointer;
}
.dash-detail-card:focus-visible {
    outline: 2px solid var(--kpi-accent, var(--primary));
    outline-offset: 3px;
}
.dash-detail-card::after {
    content: "ดูรายละเอียด";
    position: absolute;
    right: 14px;
    bottom: 10px;
    color: var(--kpi-accent, var(--primary));
    font-size: 11px;
    font-weight: 700;
    opacity: 0;
    transform: translateY(4px);
    transition: opacity .16s ease, transform .16s ease;
}
.dash-detail-card:hover::after,
.dash-detail-card:focus-visible::after {
    opacity: .9;
    transform: translateY(0);
}
.kpi-sparkline {
    position: absolute;
    top: 14px;
    right: 16px;
    width: 92px;
    height: 34px;
    margin-top: 0;
    color: var(--kpi-accent, var(--primary));
    opacity: .9;
    pointer-events: none;
}
.kpi-sparkline svg {
    display: block;
    width: 100%;
    height: 100%;
    overflow: visible;
}
.kpi-sparkline polyline {
    fill: none;
    stroke: currentColor;
    stroke-width: 2.4;
    stroke-linecap: round;
    stroke-linejoin: round;
    filter: drop-shadow(0 0 5px color-mix(in srgb, currentColor 38%, transparent));
}
.dash-live-status {
    margin: -4px 0 10px;
    font-size: 12px;
}

/* Panels */
.panel {
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 20px;
}
.panel h2 { margin: 0 0 12px; font-size: 16px; }
.panel h3 { margin: 12px 0 8px; font-size: 14px; color: var(--muted); }

.dashboard-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(380px, 1fr));
    gap: 16px;
}

/* Filter bar */
.filter-bar {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 16px;
    padding: 12px;
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: 10px;
}
.filter-bar input, .filter-bar select {
    background: var(--panel-2);
    border: 1px solid var(--border);
    color: var(--text);
    border-radius: 6px;
    padding: 7px 10px;
    font-size: 13px;
    min-width: 120px;
}
.filter-bar input[type="text"] { flex: 1 1 200px; min-width: 200px; }

select {
    background: var(--panel-2);
    border: 1px solid var(--border);
    color: var(--text);
    border-radius: 8px;
    padding: 11px 14px;
    font-size: 15px;
}

/* Pagination */
.pagination {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 14px 0;
    padding: 6px;
    flex-wrap: wrap;
    gap: 10px;
}
.pagination-info { color: var(--muted); font-size: 13px; }
.pagination-buttons { display: flex; gap: 8px; }
.btn-sm { padding: 6px 12px; font-size: 13px; }

/* Detail grid (user detail page) */
.detail-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}
@media (max-width: 1100px) {
    .detail-grid { grid-template-columns: 1fr; }
}

.divider {
    border: none;
    border-top: 1px solid var(--border);
    margin: 18px 0;
}
.action-row { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 6px; }

/* utility */
.mono {
    font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
    font-size: 12px;
    color: #cbd5e1;
    word-break: break-all;
}
.text-center { text-align: center !important; }

/* button variants ที่ใช้ในหน้า admin tables */
.btn-success {
    background: linear-gradient(135deg, #10b981, #059669);
    color: #fff;
    border: 1px solid rgba(16, 185, 129, .55);
    border-radius: 8px;
    padding: 6px 12px;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    transition: filter .12s ease, transform .05s ease;
}
.btn-success:hover { filter: brightness(1.08); }
.btn-success:active { transform: translateY(1px); }
.btn-success[disabled] { opacity: .5; cursor: not-allowed; }
.btn-small { padding: 4px 10px; font-size: 12px; border-radius: 6px; }

/* ────────────────── Responsive admin tables (mobile card mode) ──────────────────
   ใช้ data-label ใน <td> แต่ละช่อง — บนจอเล็กจะเปลี่ยนเป็นรูปแบบการ์ด มี label ซ้ายค่าขวา
   ต้องการ: <table class="data-table"> ที่อยู่ใน <div class="table-wrap">
*/
@media (max-width: 720px) {
    .data-table.responsive-cards,
    .data-table.withdraw-table,
    .data-table.deposit-table {
        display: block;
        font-size: 13px;
    }
    .data-table.responsive-cards thead,
    .data-table.withdraw-table thead,
    .data-table.deposit-table thead {
        display: none;
    }
    .data-table.responsive-cards tbody,
    .data-table.withdraw-table tbody,
    .data-table.deposit-table tbody { display: block; }
    .data-table.responsive-cards tbody tr,
    .data-table.withdraw-table tbody tr,
    .data-table.deposit-table tbody tr {
        display: block;
        margin-bottom: 12px;
        border: 1px solid var(--border);
        border-radius: 10px;
        background: var(--panel-2);
        padding: 4px 0;
    }
    .data-table.responsive-cards tbody tr:hover,
    .data-table.withdraw-table tbody tr:hover,
    .data-table.deposit-table tbody tr:hover {
        background: var(--panel-2);
    }
    .data-table.responsive-cards tbody td,
    .data-table.withdraw-table tbody td,
    .data-table.deposit-table tbody td {
        display: flex;
        justify-content: space-between;
        align-items: flex-start;
        gap: 12px;
        padding: 8px 14px;
        border-bottom: 1px dashed rgba(148, 163, 184, .12);
        white-space: normal;
        text-align: right;
    }
    .data-table.responsive-cards tbody td:last-child,
    .data-table.withdraw-table tbody td:last-child,
    .data-table.deposit-table tbody td:last-child {
        border-bottom: none;
    }
    .data-table.responsive-cards tbody td::before,
    .data-table.withdraw-table tbody td::before,
    .data-table.deposit-table tbody td::before {
        content: attr(data-label);
        font-weight: 600;
        color: var(--muted);
        font-size: 11px;
        text-transform: uppercase;
        letter-spacing: .04em;
        text-align: left;
        flex: 0 0 auto;
        min-width: 92px;
    }
    .data-table.responsive-cards tbody td.text-right,
    .data-table.withdraw-table tbody td.text-right,
    .data-table.deposit-table tbody td.text-right {
        text-align: right;
    }
}

.collapsible {
    margin-top: 8px;
    border-top: 1px solid var(--border);
    padding-top: 8px;
}
.collapsible summary {
    cursor: pointer;
    padding: 8px 0;
    font-weight: 600;
    user-select: none;
}
.collapsible[open] summary { color: var(--primary); }

.adjustment-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-top: 10px;
}
.adjustment-card {
    background: rgba(15, 23, 42, .42);
    border: 2px solid rgba(148, 163, 184, .28);
    border-radius: 14px;
    padding: 14px;
    box-shadow: 0 12px 28px rgba(2, 6, 23, .22);
}
.adjustment-card h4 {
    margin: 0 0 4px;
    font-size: 14px;
    color: var(--text);
}
.adjustment-card-credit {
    border-color: rgba(34, 197, 94, .58);
    box-shadow: 0 0 0 1px rgba(34, 197, 94, .12), 0 12px 28px rgba(2, 6, 23, .22);
}
.adjustment-card-debit {
    border-color: rgba(248, 113, 113, .62);
    box-shadow: 0 0 0 1px rgba(248, 113, 113, .12), 0 12px 28px rgba(2, 6, 23, .22);
}
.btn-adjust-credit,
.btn-adjust-debit {
    display: inline-block;
    width: 100%;
    padding: 12px 18px;
    border: 1px solid transparent;
    border-radius: 10px;
    color: #fff;
    font-family: inherit;
    font-weight: 800;
    cursor: pointer;
    transition: transform .12s ease, box-shadow .12s ease, filter .12s ease;
}
.btn-adjust-credit {
    background: linear-gradient(135deg, #16a34a, #22c55e);
    border-color: rgba(134, 239, 172, .65);
    box-shadow: 0 10px 22px rgba(34, 197, 94, .24);
}
.btn-adjust-debit {
    background: linear-gradient(135deg, #dc2626, #ef4444);
    border-color: rgba(252, 165, 165, .65);
    box-shadow: 0 10px 22px rgba(239, 68, 68, .24);
}
.btn-adjust-credit:hover,
.btn-adjust-debit:hover {
    filter: brightness(1.06);
    text-decoration: none;
    transform: translateY(-1px);
}

.audit-details {
    background: var(--panel-2);
    padding: 8px 12px;
    border-radius: 6px;
    font-size: 12px;
    margin: 4px 0 0;
    white-space: pre-wrap;
    max-width: 360px;
    max-height: 200px;
    overflow: auto;
}

/* Collapsible callback / log cards (lotto, payment callbacks, etc.) */
.callback-card {
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 10px 12px;
    margin: 8px 0;
    color: var(--text);
}
.callback-card > summary {
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    gap: 8px;
    align-items: center;
    color: var(--text);
    list-style: none;
}
.callback-card > summary::-webkit-details-marker { display: none; }
.callback-card__time {
    font-size: 12px;
    color: var(--muted);
    flex-shrink: 0;
}
.callback-card__meta {
    margin-top: 10px;
    font-size: 12px;
    color: var(--muted);
}
.callback-card .audit-details {
    max-width: none;
    max-height: 250px;
    margin-top: 8px;
}

/* Compact table variant */
.data-table.compact th, .data-table.compact td {
    padding: 8px 10px;
    font-size: 13px;
}

/* Status badges variants */
.badge-success-soft {
    background: rgba(16,185,129,.15);
    border-color: rgba(16,185,129,.35);
    color: #6ee7b7;
}
.badge-warning-soft {
    background: rgba(239,68,68,.12);
    border-color: rgba(239,68,68,.35);
    color: #fca5a5;
}
.badge-info-soft {
    background: rgba(59,130,246,.15);
    border-color: rgba(59,130,246,.35);
    color: #93c5fd;
}
.badge-danger-soft {
    background: rgba(220,38,38,.18);
    border-color: rgba(220,38,38,.45);
    color: #fca5a5;
}

.text-center { text-align: center; }
.link-arrow {
    display: inline-block;
    margin-top: 12px;
    font-size: 13px;
    color: var(--primary);
    text-decoration: none;
}
.link-arrow:hover { text-decoration: underline; }

/* Hide global navbar inside admin shell (admin sidebar has its own brand+logout) */
.admin-shell .navbar { display: none; }

/* ============================
   Game Lobby + Game Cards
   ============================ */
.lobby-section { margin-bottom: 28px; }
.lobby-tabs {
    margin-top: 18px;
}
.lobby-tab-list {
    display: flex;
    gap: 10px;
    margin-bottom: 18px;
    padding: 6px;
    overflow-x: auto;
    border: 1px solid var(--border);
    border-radius: 16px;
    background: rgba(15,23,42,.62);
}
.lobby-tab {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex: 0 0 auto;
    padding: 10px 14px;
    border: 1px solid transparent;
    border-radius: 12px;
    background: transparent;
    color: var(--muted);
    font: inherit;
    font-weight: 700;
    cursor: pointer;
    transition: background .14s ease, border-color .14s ease, color .14s ease, box-shadow .14s ease;
}
.lobby-tab:hover,
.lobby-tab:focus-visible {
    color: var(--text);
    border-color: rgba(245,158,11,.35);
}
.lobby-tab:focus-visible {
    outline: 2px solid rgba(245,158,11,.45);
    outline-offset: 2px;
}
.lobby-tab.is-active {
    color: var(--text);
    border-color: rgba(245,158,11,.55);
    background: linear-gradient(135deg, rgba(245,158,11,.24), rgba(251,191,36,.10));
    box-shadow: 0 10px 28px -16px rgba(245,158,11,.65);
}
.lobby-tab small {
    min-width: 24px;
    padding: 2px 7px;
    border-radius: 999px;
    background: rgba(148,163,184,.14);
    color: inherit;
    font-size: 12px;
    text-align: center;
}
.lobby-tab-panel:not(.is-active) {
    display: none;
}
.section-title {
    font-size: 18px;
    margin: 0 0 14px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--border);
    color: var(--text);
}

.product-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 14px;
}
.product-card {
    position: relative;
    aspect-ratio: 1 / 1;
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: 12px;
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    transition: transform .12s ease, border-color .12s ease, box-shadow .12s;
    display: block;
}
.product-card::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, rgba(3,7,18,.68), rgba(3,7,18,.08) 42%, rgba(3,7,18,.18)),
        radial-gradient(circle at 50% 45%, rgba(255,255,255,.08), transparent 58%);
    pointer-events: none;
    z-index: 1;
}
.product-card:hover {
    transform: translateY(-3px);
    border-color: var(--primary);
    text-decoration: none;
    box-shadow: 0 12px 28px -8px rgba(245,158,11,.18);
}
.product-card-img {
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, #1a2540, #0f1830);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
.product-card-img img {
    width: 100%;
    height: 100%;
    padding: 12px;
    object-fit: contain;
}
.product-placeholder {
    font-size: 56px;
    color: var(--muted);
}
.product-card-body {
    position: absolute;
    top: 10px;
    left: 10px;
    right: 10px;
    z-index: 2;
    padding: 0;
    pointer-events: none;
}
.product-card-title {
    font-weight: 800;
    font-size: 12px;
    margin-bottom: 3px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    color: #fff;
    text-transform: uppercase;
    letter-spacing: .02em;
    text-shadow: 0 2px 8px rgba(0,0,0,.9);
}
.product-card-meta {
    font-size: 11px;
    color: rgba(255,255,255,.72);
    text-shadow: 0 2px 8px rgba(0,0,0,.9);
}

.game-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 16px;
}
.game-card {
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: 12px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}
.game-card-img {
    aspect-ratio: 4 / 3;
    background: linear-gradient(135deg, #1a2540, #0f1830);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    position: relative;
}
.game-card-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.game-badge-new, .game-badge-type {
    position: absolute;
    top: 8px;
    font-size: 10px;
    font-weight: 700;
    padding: 3px 7px;
    border-radius: 4px;
    letter-spacing: .04em;
}
.game-badge-new {
    left: 8px;
    background: var(--primary);
    color: #1a1a1a;
}
.game-badge-type {
    right: 8px;
    background: rgba(0,0,0,.55);
    color: #fff;
    backdrop-filter: blur(6px);
}
.game-card-title-row {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}
.game-favorite-btn {
    flex: 0 0 auto;
    width: 30px;
    height: 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(245,158,11,.45);
    border-radius: 999px;
    background: rgba(245,158,11,.06);
    color: #facc15;
    cursor: pointer;
    line-height: 1;
    transition: transform .14s ease, background .14s ease, border-color .14s ease, color .14s ease;
}
.game-favorite-icon {
    width: 16px;
    height: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.game-favorite-icon::before {
    content: "";
    color: currentColor;
    font-size: 19px;
    font-weight: 900;
    line-height: 1;
}
.game-favorite-btn:hover,
.game-favorite-btn:focus-visible {
    transform: translateY(-1px) scale(1.05);
    border-color: rgba(250,204,21,.85);
    background: rgba(250,204,21,.12);
    color: #fde047;
}
.game-favorite-btn:focus-visible {
    outline: 2px solid rgba(245,158,11,.45);
    outline-offset: 2px;
}
.game-favorite-btn.is-favorite {
    border-color: rgba(250,204,21,.90);
    background: rgba(250,204,21,.16);
    color: #facc15;
    box-shadow: 0 8px 20px -12px rgba(250,204,21,.95);
}
.game-favorite-btn .game-favorite-icon::before {
    content: "\2661";
}
.game-favorite-btn.is-favorite .game-favorite-icon::before {
    content: "\2665";
}
.game-favorite-btn:disabled {
    opacity: .65;
    cursor: progress;
}
.game-card-body {
    padding: 14px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex: 1;
}
.game-card-title {
    min-width: 0;
    flex: 1;
    font-weight: 700;
    font-size: 14px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.game-card-meta { font-size: 12px; }
.btn-launch { margin-top: auto; padding: 9px; font-size: 14px; }

/* ============================
   Lucky Spin
   ============================ */
.spin-page { max-width: 1100px; }

.spin-layout {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 28px;
    align-items: start;
}
@media (max-width: 860px) {
    .spin-layout { grid-template-columns: 1fr; }
}

.spin-wheel-wrap {
    position: relative;
    background: linear-gradient(180deg, #0e1729, #0a1124);
    border: 1px solid var(--border);
    border-radius: 18px;
    padding: 28px 28px 18px;
    text-align: center;
}
.spin-wheel {
    position: relative;
    width: min(440px, 90vw);
    aspect-ratio: 1 / 1;
    margin: 0 auto;
    transform-origin: 50% 50%;
    transform: rotate(0deg);
    filter: drop-shadow(0 18px 30px rgba(0, 0, 0, .4));
}
.spin-pointer {
    position: absolute;
    top: 14px;
    left: 50%;
    transform: translateX(-50%);
    width: 0;
    height: 0;
    border-left: 14px solid transparent;
    border-right: 14px solid transparent;
    border-top: 28px solid #fbbf24;
    z-index: 4;
    filter: drop-shadow(0 4px 6px rgba(0,0,0,.4));
}
.spin-result {
    margin-top: 18px;
    min-height: 28px;
    font-size: 18px;
    font-weight: 700;
    letter-spacing: .02em;
}
.spin-result.win  { color: #6ee7b7; text-shadow: 0 0 18px rgba(110,231,183,.45); }
.spin-result.lose { color: #fca5a5; }

.spin-panel {
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: 18px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.spin-balance {
    background: linear-gradient(135deg, rgba(245,158,11,.08), rgba(245,158,11,.02));
    border: 1px solid rgba(245,158,11,.25);
    border-radius: 10px;
    padding: 12px 14px;
}
.spin-balance .balance-num {
    font-size: 26px;
    font-weight: 800;
    color: var(--primary);
    margin-top: 4px;
}
.bet-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 6px;
}
.bet-chip {
    background: #1a2540;
    border: 1px solid var(--border);
    color: var(--text);
    padding: 9px 0;
    border-radius: 8px;
    cursor: pointer;
    font-weight: 700;
    font-size: 13px;
    transition: transform .08s ease, border-color .15s, background .15s;
}
.bet-chip:hover { border-color: var(--primary); }
.bet-chip.active {
    background: var(--primary);
    color: #1a1a1a;
    border-color: var(--primary);
    transform: translateY(-1px);
}
.bet-chip--free {
    background: linear-gradient(135deg, #10b981, #059669);
    color: #fff;
    border-color: #10b981;
    letter-spacing: .12em;
}
.bet-chip--free:hover { border-color: #34d399; box-shadow: 0 4px 12px -4px rgba(16,185,129,.6); }
.bet-chip--free.active {
    background: linear-gradient(135deg, #34d399, #10b981);
    color: #fff;
    border-color: #fff;
}
.btn-spin {
    padding: 14px;
    font-size: 18px;
    font-weight: 800;
    letter-spacing: .12em;
    background: linear-gradient(135deg, #f59e0b, #d97706);
    border: none;
    color: #1b1300;
    border-radius: 10px;
    cursor: pointer;
    box-shadow: 0 12px 28px -8px rgba(245,158,11,.55);
}
.btn-spin:hover:not(:disabled) { transform: translateY(-1px); }
.btn-spin:disabled { opacity: .55; cursor: not-allowed; }

.spin-table { margin-top: 4px; }
.spin-table summary {
    cursor: pointer;
    color: var(--muted);
    font-size: 13px;
    padding: 6px 0;
}
.color-dot {
    display: inline-block;
    width: 12px; height: 12px;
    border-radius: 50%;
    border: 1px solid #0006;
    vertical-align: middle;
}
.win { color: #6ee7b7; font-weight: 700; }
.lose { color: #fca5a5; font-weight: 700; }

/* highlight Lucky Spin link in navbar */
.nav-spin {
    background: linear-gradient(135deg, rgba(245,158,11,.18), rgba(245,158,11,.04));
    border: 1px solid rgba(245,158,11,.35);
    padding: 4px 10px !important;
    border-radius: 6px;
}

/* =========================================
   HOMEPAGE — CASINO ARENA
   ========================================= */

:root {
    --home-bg: #0a0d2e;
    --home-bg-2: #110a3a;
    --home-card: #161b46;
    --home-card-2: #1c2356;
    --home-border: rgba(122, 132, 255, 0.18);
    --home-pink: #ec4899;
    --home-purple: #8b5cf6;
    --home-blue: #3b82f6;
    --home-cyan: #06b6d4;
    --home-gold: #fbbf24;
    --home-gold-2: #f59e0b;
}

.home {
    background:
        radial-gradient(1200px 700px at 0% 0%, color-mix(in srgb, var(--home-purple) 25%, transparent), transparent 60%),
        radial-gradient(1100px 800px at 100% 10%, color-mix(in srgb, var(--home-blue) 25%, transparent), transparent 60%),
        radial-gradient(900px 600px at 50% 100%, color-mix(in srgb, var(--home-pink) 12%, transparent), transparent 60%),
        linear-gradient(180deg, var(--home-bg) 0%, var(--home-bg-2) 100%);
    color: var(--text);
    padding: 0 0 40px;
    overflow: hidden;
}

/* =========================================
   HERO
   ========================================= */
.hero-section {
    position: relative;
    padding: 32px 24px 24px;
    max-width: 1280px;
    margin: 0 auto;
}
.hero-bg {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: hidden;
    z-index: 0;
}
.hero-blob {
    position: absolute;
    border-radius: 50%;
    filter: blur(80px);
    opacity: .55;
    animation: float 14s ease-in-out infinite;
}
.hero-blob--purple { width: 380px; height: 380px; background: var(--home-purple); top: -120px; left: -80px; }
.hero-blob--blue   { width: 420px; height: 420px; background: var(--home-blue); top: 60px;  right: -120px; animation-delay: -4s; }
.hero-blob--pink   { width: 320px; height: 320px; background: var(--home-pink); bottom: -120px; left: 30%; animation-delay: -8s; }
@keyframes float {
    0%, 100% { transform: translate(0,0) scale(1); }
    50%      { transform: translate(20px,-30px) scale(1.08); }
}

.hero-grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 20px;
}
@media (max-width: 1024px) {
    .hero-grid { grid-template-columns: 1fr; }
}

/* ---- Hero Carousel (slideshow รูปภาพ) ---- */
.hero-carousel {
    position: relative;
    z-index: 1;
    border-radius: 24px;
    overflow: hidden;
    box-shadow: 0 24px 60px rgba(0,0,0,.45);
    background: rgba(15,23,42,.5);
}
.hero-carousel__track {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 6;
}
@media (max-width: 768px) {
    .hero-carousel__track { aspect-ratio: 16 / 9; }
}
.hero-carousel__slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity .6s ease;
    pointer-events: none;
}
.hero-carousel__slide.is-active {
    opacity: 1;
    pointer-events: auto;
}
.hero-carousel__slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.hero-carousel__nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 3;
    width: 44px;
    height: 44px;
    border: none;
    border-radius: 50%;
    background: rgba(8,11,30,.55);
    color: #fff;
    font-size: 26px;
    line-height: 1;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    backdrop-filter: blur(4px);
    transition: background .2s ease;
}
.hero-carousel__nav:hover { background: rgba(8,11,30,.85); }
.hero-carousel__nav--prev { left: 14px; }
.hero-carousel__nav--next { right: 14px; }
.hero-carousel__dots {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 14px;
    z-index: 3;
    display: flex;
    justify-content: center;
    gap: 8px;
}
.hero-carousel__dot {
    width: 10px;
    height: 10px;
    padding: 0;
    border: none;
    border-radius: 50%;
    background: rgba(255,255,255,.45);
    cursor: pointer;
    transition: background .2s ease, transform .2s ease;
}
.hero-carousel__dot.is-active {
    background: #fbbf24;
    transform: scale(1.25);
}
@media (max-width: 768px) {
    .hero-carousel__nav { width: 36px; height: 36px; font-size: 20px; }
}

.hero-card {
    position: relative;
    border-radius: 24px;
    padding: 40px 36px;
    background:
        linear-gradient(135deg, color-mix(in srgb, var(--home-purple) 35%, transparent), color-mix(in srgb, var(--home-blue) 25%, transparent) 50%, color-mix(in srgb, var(--home-pink) 25%, transparent));
    border: 1px solid rgba(255,255,255,.08);
    box-shadow: 0 30px 60px -20px color-mix(in srgb, var(--home-purple) 48%, black);
    overflow: hidden;
    min-height: 360px;
}
.hero-card::before {
    content: "";
    position: absolute;
    inset: 1px;
    border-radius: 23px;
    background:
        radial-gradient(600px 240px at 80% 110%, color-mix(in srgb, var(--home-pink) 30%, transparent), transparent 60%),
        radial-gradient(500px 240px at 10% -20%, color-mix(in srgb, var(--home-blue) 35%, transparent), transparent 60%),
        linear-gradient(160deg, color-mix(in srgb, var(--home-card-2) 85%, transparent), color-mix(in srgb, var(--home-card) 95%, black));
    z-index: 0;
}
.hero-main > * { position: relative; z-index: 1; }

.hero-eyebrow {
    display: inline-block;
    padding: 6px 14px;
    border-radius: 999px;
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.15);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .25em;
    color: #fde68a;
}
.hero-title {
    margin: 14px 0 12px;
    font-size: clamp(34px, 5.5vw, 56px);
    font-weight: 900;
    line-height: 1.05;
    background: linear-gradient(120deg, #fff, var(--home-gold) 40%, var(--home-gold-2) 60%, #fff);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    text-shadow: 0 0 60px rgba(251, 191, 36, .25);
    letter-spacing: -0.02em;
}
.hero-title span { display: block; }
.hero-sub {
    color: #d8def0;
    font-size: 17px;
    margin: 0 0 22px;
    line-height: 1.6;
}
.hero-sub strong { color: var(--home-gold); }

.hero-cta {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 28px;
}
.btn-glow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 13px 28px;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--home-gold-2), var(--home-pink) 60%, var(--home-purple));
    color: #fff;
    font-weight: 800;
    text-decoration: none;
    border: none;
    cursor: pointer;
    letter-spacing: .03em;
    box-shadow: 0 12px 30px -8px color-mix(in srgb, var(--home-pink) 55%, transparent), inset 0 1px 0 rgba(255,255,255,.25);
    transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
}
.btn-glow:hover {
    transform: translateY(-2px);
    box-shadow: 0 18px 40px -8px color-mix(in srgb, var(--home-pink) 65%, transparent), inset 0 1px 0 rgba(255,255,255,.3);
    text-decoration: none;
    filter: brightness(1.08);
}
.btn-glow--lg {
    padding: 16px 38px;
    font-size: 16px;
    margin-top: 14px;
}
.btn-ghost {
    display: inline-flex;
    align-items: center;
    padding: 13px 26px;
    border-radius: 999px;
    background: rgba(255,255,255,.08);
    color: #fff;
    border: 1px solid rgba(255,255,255,.18);
    font-weight: 700;
    text-decoration: none;
    backdrop-filter: blur(6px);
    transition: background .15s ease, border-color .15s ease;
}
.btn-ghost:hover { background: rgba(255,255,255,.14); border-color: rgba(255,255,255,.35); text-decoration: none; }

.hero-jackpot {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    padding: 12px 22px;
    border-radius: 14px;
    background: linear-gradient(135deg, rgba(251, 191, 36, .14), rgba(251, 191, 36, .04));
    border: 1px solid rgba(251, 191, 36, .35);
}
.hero-jackpot__label {
    font-size: 11px;
    letter-spacing: .25em;
    font-weight: 800;
    color: #fde68a;
}
.hero-jackpot__amount {
    font-size: 22px;
    font-weight: 900;
    color: #fbbf24;
    text-shadow: 0 0 16px rgba(251, 191, 36, .4);
    letter-spacing: -0.02em;
    font-variant-numeric: tabular-nums;
}

/* Hero side / live winners */
.hero-side {
    border-radius: 20px;
    background: linear-gradient(180deg, rgba(28, 35, 86, .85), rgba(20, 25, 65, .9));
    border: 1px solid var(--home-border);
    overflow: hidden;
    backdrop-filter: blur(6px);
}
.live-card { display: flex; flex-direction: column; height: 100%; }
.live-card__head {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px 18px;
    font-size: 12px;
    letter-spacing: .22em;
    font-weight: 800;
    color: #fff;
    border-bottom: 1px solid var(--home-border);
    background: rgba(0,0,0,.18);
}
.live-dot {
    width: 8px; height: 8px;
    background: #ef4444;
    border-radius: 50%;
    box-shadow: 0 0 0 0 rgba(239, 68, 68, .7);
    animation: pulse 1.6s infinite;
}
@keyframes pulse {
    0%   { box-shadow: 0 0 0 0   rgba(239, 68, 68, .7); }
    70%  { box-shadow: 0 0 0 10px rgba(239, 68, 68, 0); }
    100% { box-shadow: 0 0 0 0   rgba(239, 68, 68, 0); }
}
.live-feed {
    list-style: none;
    margin: 0;
    padding: 8px 10px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    max-height: 320px;
    overflow: hidden;
}
.live-feed li {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 10px;
    border-radius: 10px;
    background: rgba(255,255,255,.03);
    border: 1px solid rgba(255,255,255,.04);
    font-size: 13px;
    animation: slideIn .4s ease;
}
@keyframes slideIn {
    from { opacity: 0; transform: translateX(10px); }
    to   { opacity: 1; transform: translateX(0); }
}
.live-feed .avatar {
    width: 28px; height: 28px;
    border-radius: 50%;
    background: linear-gradient(135deg, #f97316, #ec4899);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: 12px;
}
.live-feed .lf-name { font-weight: 700; }
.live-feed .lf-game { color: #94a3b8; font-size: 11px; }
.live-feed .lf-win  { margin-left: auto; color: #6ee7b7; font-weight: 800; font-variant-numeric: tabular-nums; }

/* =========================================
   QUICK PROMO BANNERS
   ========================================= */
.quick-banner-zone {
    max-width: 1280px;
    margin: 0 auto;
    padding: 12px 24px 4px;
}
.quick-banner-zone--lobby {
    padding: 0 0 18px;
}
.quick-banner-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}
.quick-banner-grid--single {
    grid-template-columns: minmax(0, 1fr);
}
.quick-banner {
    position: relative;
    min-height: 96px;
    display: flex;
    align-items: center;
    gap: 16px;
    width: 100%;
    padding: 18px 52px 18px 22px;
    border: 1px solid rgba(255,255,255,.10);
    border-radius: 16px;
    overflow: hidden;
    color: #fff;
    text-align: left;
    text-decoration: none;
    cursor: pointer;
    box-shadow: 0 20px 42px -28px rgba(0,0,0,.75), inset 0 1px 0 rgba(255,255,255,.08);
    transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}
button.quick-banner {
    font: inherit;
}
.quick-banner::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 12% 20%, rgba(255,255,255,.18), transparent 22%),
        linear-gradient(90deg, rgba(255,255,255,.06), transparent 62%);
    pointer-events: none;
}
.quick-banner:hover {
    transform: translateY(-2px);
    border-color: rgba(255,255,255,.18);
    box-shadow: 0 24px 48px -26px rgba(0,0,0,.85), inset 0 1px 0 rgba(255,255,255,.12);
    text-decoration: none;
}
.quick-banner--spin {
    background:
        radial-gradient(circle at 8% 50%, rgba(139,92,246,.52), transparent 28%),
        linear-gradient(135deg, #241047, #471083 55%, #2d0b4d);
}
.quick-banner--coupon {
    background:
        radial-gradient(circle at 8% 50%, rgba(245,158,11,.44), transparent 28%),
        linear-gradient(135deg, #351200, #78350f 55%, #3a1600);
}
.quick-banner__icon {
    position: relative;
    z-index: 1;
    flex: 0 0 auto;
    width: 58px;
    height: 58px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 16px;
    font-size: 28px;
    background: linear-gradient(135deg, rgba(255,255,255,.16), rgba(255,255,255,.05));
    box-shadow: 0 0 26px rgba(139,92,246,.45), inset 0 1px 0 rgba(255,255,255,.2);
}
.quick-banner--coupon .quick-banner__icon {
    box-shadow: 0 0 26px rgba(245,158,11,.45), inset 0 1px 0 rgba(255,255,255,.2);
}
.quick-banner__body {
    position: relative;
    z-index: 1;
    min-width: 0;
}
.quick-banner__body strong {
    display: block;
    margin-bottom: 5px;
    font-size: 18px;
    line-height: 1.2;
}
.quick-banner__body small {
    display: block;
    max-width: 360px;
    color: rgba(255,255,255,.72);
    font-size: 12px;
    line-height: 1.45;
}
.quick-banner__badge {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 1;
    padding: 3px 8px;
    border-radius: 999px;
    background: #ef4444;
    color: #fff;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .03em;
    box-shadow: 0 8px 18px -8px rgba(239,68,68,.8);
}
.quick-banner__badge--hot {
    background: #fbbf24;
    color: #3b1700;
    box-shadow: 0 8px 18px -8px rgba(251,191,36,.8);
}
.quick-banner__arrow {
    position: absolute;
    right: 20px;
    top: 50%;
    z-index: 1;
    transform: translateY(-50%);
    color: rgba(255,255,255,.35);
    font-size: 34px;
    line-height: 1;
}
@media (max-width: 820px) {
    .quick-banner-grid { grid-template-columns: 1fr; gap: 12px; }
    .quick-banner { min-height: 86px; padding: 16px 46px 16px 16px; border-radius: 14px; }
    .quick-banner__icon { width: 50px; height: 50px; border-radius: 14px; font-size: 24px; }
}

/* =========================================
   CATEGORY CHIPS
   ========================================= */
.chips-section {
    max-width: 1280px;
    margin: 8px auto 0;
    padding: 6px 24px 18px;
}
.chips-row {
    display: flex;
    gap: 10px;
    overflow-x: auto;
    padding-bottom: 6px;
    scrollbar-width: thin;
}
.chips-row::-webkit-scrollbar { height: 6px; }
.chips-row::-webkit-scrollbar-thumb { background: rgba(255,255,255,.12); border-radius: 4px; }

.chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 18px;
    border-radius: 999px;
    background: rgba(255,255,255,.04);
    border: 1px solid var(--home-border);
    color: #cbd5e1;
    font-weight: 600;
    font-size: 14px;
    white-space: nowrap;
    cursor: pointer;
    transition: all .15s ease;
}
.chip:hover { color: #fff; border-color: rgba(255,255,255,.3); background: rgba(255,255,255,.08); }
.chip--active {
    background: linear-gradient(135deg, #8b5cf6, #ec4899);
    color: #fff;
    border-color: transparent;
    box-shadow: 0 8px 22px -8px rgba(236, 72, 153, .55);
}
.chip-ico { font-size: 16px; }

/* =========================================
   ZONE / SECTION HEADERS
   ========================================= */
.zone {
    max-width: 1280px;
    margin: 0 auto;
    padding: 18px 24px;
}
.zone-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 16px;
    gap: 12px;
    flex-wrap: wrap;
}
.zone-title {
    margin: 0;
    font-size: 20px;
    font-weight: 800;
    color: #fff;
    display: flex;
    align-items: center;
    gap: 12px;
}
.zone-bar {
    display: inline-block;
    width: 4px;
    height: 22px;
    border-radius: 4px;
    background: linear-gradient(180deg, #fbbf24, #ec4899);
    box-shadow: 0 0 14px rgba(251, 191, 36, .5);
}
.zone-sub { color: #94a3b8; font-weight: 500; font-size: 13px; margin-left: 8px; }
.zone-link {
    color: #fde68a;
    background: rgba(251, 191, 36, .1);
    border: 1px solid rgba(251, 191, 36, .25);
    padding: 6px 14px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
    transition: all .15s ease;
}
.zone-link:hover { background: rgba(251, 191, 36, .18); text-decoration: none; }

/* ---- LOTTO RESULTS ---- */
.lotto-results-zone .zone-head { align-items: center; }
.lotto-results-head-actions {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.lotto-open-zone .zone-head { align-items: center; }
.lotto-open-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}
@media (max-width: 900px) { .lotto-open-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .lotto-open-grid { grid-template-columns: 1fr; } }
.lotto-open-card {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 14px;
    border-radius: 14px;
    border: 1px solid rgba(34, 197, 94, .28);
    background: linear-gradient(145deg, rgba(34, 197, 94, .18), rgba(21, 128, 61, .12));
    color: inherit;
    text-decoration: none;
    transition: transform .18s ease, border-color .18s ease;
}
.lotto-open-card:hover {
    transform: translateY(-2px);
    border-color: rgba(74, 222, 128, .45);
}
.lotto-open-card__flag {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    display: grid;
    place-items: center;
    background: rgba(255, 255, 255, .08);
    font-size: 18px;
    flex: 0 0 auto;
}
.lotto-open-card__body {
    min-width: 0;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.lotto-open-card__body strong {
    font-size: 14px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.lotto-open-card__body small {
    font-size: 12px;
    opacity: .78;
}
.lotto-open-card__cta {
    font-size: 12px;
    font-weight: 700;
    color: #86efac;
    flex: 0 0 auto;
}
.lotto-results-count {
    color: #fde68a;
    background: rgba(251, 191, 36, .1);
    border: 1px solid rgba(251, 191, 36, .28);
    border-radius: 999px;
    padding: 5px 14px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .03em;
}
.lotto-results-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
}
@media (max-width: 1024px) { .lotto-results-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px)  { .lotto-results-grid { grid-template-columns: 1fr; } }

.lotto-result-card {
    position: relative;
    overflow: hidden;
    background: linear-gradient(180deg, rgba(28, 35, 86, .82), rgba(15, 10, 50, .92));
    border: 1px solid var(--home-border, rgba(148, 163, 184, .18));
    border-radius: 16px;
    padding: 14px 16px 16px;
    transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.lotto-result-card::before {
    content: '';
    position: absolute;
    inset: 0 auto 0 0;
    width: 3px;
    border-radius: 16px 0 0 16px;
    background: linear-gradient(180deg, #fbbf24, #ec4899);
    opacity: .85;
}
.lotto-result-card--gold::before {
    background: linear-gradient(180deg, #fbbf24, #f59e0b);
}
.lotto-result-card--emerald::before {
    background: linear-gradient(180deg, #34d399, #10b981);
}
.lotto-result-card--violet::before {
    background: linear-gradient(180deg, #a78bfa, #8b5cf6);
}
.lotto-result-card:hover {
    transform: translateY(-3px);
    border-color: rgba(251, 191, 36, .42);
    box-shadow: 0 16px 32px -18px rgba(251, 191, 36, .45);
}
.lotto-result-card--emerald:hover {
    border-color: rgba(16, 185, 129, .45);
    box-shadow: 0 16px 32px -18px rgba(16, 185, 129, .4);
}
.lotto-result-card--violet:hover {
    border-color: rgba(139, 92, 246, .45);
    box-shadow: 0 16px 32px -18px rgba(139, 92, 246, .4);
}

.lotto-result-card__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 10px;
}
.lotto-result-card__name {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 15px;
    font-weight: 800;
    color: #fff;
    line-height: 1.35;
}
.lotto-result-card__icon {
    flex-shrink: 0;
    width: 30px;
    height: 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    background: rgba(251, 191, 36, .12);
    border: 1px solid rgba(251, 191, 36, .25);
    font-size: 15px;
}
.lotto-result-card--emerald .lotto-result-card__icon {
    background: rgba(16, 185, 129, .12);
    border-color: rgba(16, 185, 129, .28);
}
.lotto-result-card--violet .lotto-result-card__icon {
    background: rgba(139, 92, 246, .12);
    border-color: rgba(139, 92, 246, .28);
}
.lotto-result-card__period {
    flex-shrink: 0;
    font-size: 11px;
    font-weight: 700;
    color: #c4b5fd;
    background: rgba(139, 92, 246, .14);
    border: 1px solid rgba(139, 92, 246, .28);
    border-radius: 999px;
    padding: 3px 10px;
    letter-spacing: .03em;
}
.lotto-result-card__meta { margin-bottom: 12px; }
.lotto-result-card__time {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 11px;
    font-weight: 700;
    color: #6ee7b7;
    background: rgba(16, 185, 129, .14);
    border: 1px solid rgba(16, 185, 129, .3);
    border-radius: 999px;
    padding: 3px 10px;
    letter-spacing: .03em;
}
.lotto-result-card__nums {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}
.lotto-num-box {
    text-align: center;
    border-radius: 12px;
    padding: 10px 8px 8px;
    background: rgba(15, 23, 42, .55);
    border: 1px solid rgba(148, 163, 184, .14);
    transition: border-color .15s ease, background .15s ease;
}
.lotto-result-card:hover .lotto-num-box {
    background: rgba(15, 23, 42, .72);
}
.lotto-num-box small {
    display: block;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: #94a3b8;
    margin-bottom: 4px;
}
.lotto-num-box strong {
    display: block;
    font-size: 22px;
    font-weight: 900;
    letter-spacing: .12em;
    line-height: 1.1;
    background: linear-gradient(180deg, #fff 0%, #fde68a 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    text-shadow: none;
}
.lotto-num-box--bottom strong {
    background: linear-gradient(180deg, #fff 0%, #6ee7b7 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}
.lotto-result-card--emerald .lotto-num-box--top strong {
    background: linear-gradient(180deg, #fff 0%, #6ee7b7 100%);
    -webkit-background-clip: text;
    background-clip: text;
}
.lotto-result-card--violet .lotto-num-box--top strong {
    background: linear-gradient(180deg, #fff 0%, #c4b5fd 100%);
    -webkit-background-clip: text;
    background-clip: text;
}

/* =========================================
   GAME ROW / TILE
   ========================================= */
.game-row {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 14px;
}
@media (max-width: 1200px) { .game-row { grid-template-columns: repeat(6, 1fr); } }
@media (max-width: 1024px) { .game-row { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 720px)  { .game-row { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 480px)  { .game-row { grid-template-columns: repeat(2, 1fr); } }

.game-tile {
    --tile-c: #3b82f6;
    position: relative;
    display: flex;
    flex-direction: column;
    background: var(--home-card);
    border: 1px solid var(--home-border);
    border-radius: 14px;
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.game-tile:hover {
    transform: translateY(-4px);
    border-color: rgba(255,255,255,.25);
    box-shadow: 0 18px 36px -16px var(--tile-c);
    text-decoration: none;
}
.game-tile__img {
    aspect-ratio: 3 / 4;
    background: linear-gradient(160deg, color-mix(in oklab, var(--tile-c) 95%, white 5%), color-mix(in oklab, var(--tile-c) 50%, black 50%));
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
.game-tile__img::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 30% 25%, rgba(255,255,255,.25), transparent 50%),
        radial-gradient(circle at 70% 80%, rgba(0,0,0,.35), transparent 60%);
    pointer-events: none;
}
.game-tile__emoji {
    position: relative;
    z-index: 1;
    font-size: 54px;
    filter: drop-shadow(0 4px 12px rgba(0,0,0,.4));
}
.game-tile__tag {
    position: absolute;
    top: 8px;
    left: 8px;
    padding: 3px 9px;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .1em;
    border-radius: 999px;
    color: #fff;
    z-index: 2;
}
.tag-new  { background: linear-gradient(135deg, #06b6d4, #3b82f6); }
.tag-hot  { background: linear-gradient(135deg, #ef4444, #f97316); }
.tag-top  { background: linear-gradient(135deg, #fbbf24, #f59e0b); color: #1a1a1a; }
.tag-live { background: linear-gradient(135deg, #ec4899, #8b5cf6); }
.game-tile__body { padding: 10px 12px 12px; }
.game-tile__name {
    font-weight: 700;
    font-size: 14px;
    color: #fff;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.game-tile__meta { font-size: 12px; color: #94a3b8; }

/* =========================================
   JACKPOT BANNER
   ========================================= */
.jackpot-banner {
    position: relative;
    border-radius: 24px;
    overflow: hidden;
    padding: 32px;
    background:
        radial-gradient(800px 400px at 50% -10%, rgba(251, 191, 36, .35), transparent 60%),
        linear-gradient(135deg, #1e1b4b, #4c1d95 50%, #7c2d12);
    border: 1px solid rgba(251, 191, 36, .35);
    box-shadow: 0 30px 60px -20px rgba(124, 58, 237, .5);
}
.jackpot-banner__bg {
    position: absolute;
    inset: 0;
    background:
        repeating-linear-gradient(45deg, rgba(255,255,255,.02) 0 12px, transparent 12px 24px);
    pointer-events: none;
}
.jackpot-banner__inner {
    position: relative;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 24px;
    align-items: center;
}
@media (max-width: 900px) {
    .jackpot-banner__inner { grid-template-columns: 1fr; text-align: center; }
}

.jackpot-banner__side {
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.jackpot-banner__side--right { align-items: flex-end; }
@media (max-width: 900px) {
    .jackpot-banner__side, .jackpot-banner__side--right { align-items: center; }
}
.mini-jackpot {
    background: rgba(0,0,0,.28);
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 12px;
    padding: 10px 16px;
    min-width: 200px;
}
.mini-jackpot__label {
    font-size: 11px;
    letter-spacing: .15em;
    text-transform: uppercase;
    color: #cbd5e1;
}
.mini-jackpot__amount {
    font-size: 20px;
    font-weight: 800;
    color: #fbbf24;
    font-variant-numeric: tabular-nums;
    text-shadow: 0 0 14px rgba(251, 191, 36, .35);
}

.jackpot-banner__center {
    text-align: center;
    padding: 16px 28px;
    background: rgba(0,0,0,.35);
    border: 1px solid rgba(251, 191, 36, .45);
    border-radius: 18px;
}
.jackpot-banner__title {
    font-size: 13px;
    letter-spacing: .3em;
    font-weight: 800;
    color: #fde68a;
}
.jackpot-banner__amount {
    margin: 6px 0 4px;
    font-size: clamp(36px, 6vw, 56px);
    font-weight: 900;
    background: linear-gradient(135deg, #fde68a, #fbbf24 30%, #fff 60%, #fbbf24);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    text-shadow: 0 0 40px rgba(251, 191, 36, .4);
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.02em;
}

/* =========================================
   LIVE WINS TABLE
   ========================================= */
.wins-table {
    background: linear-gradient(180deg, var(--home-card), var(--home-card-2));
    border: 1px solid var(--home-border);
    border-radius: 16px;
    overflow: hidden;
}
.win-row {
    display: grid;
    grid-template-columns: 1.4fr 1fr 1fr 1fr auto;
    gap: 14px;
    align-items: center;
    padding: 14px 18px;
    border-bottom: 1px solid rgba(255,255,255,.05);
    transition: background .15s ease;
}
.win-row:hover { background: rgba(255,255,255,.03); }
.win-row:last-child { border-bottom: none; }
@media (max-width: 768px) {
    .win-row {
        grid-template-columns: 1.4fr 1fr 1fr;
        gap: 10px;
    }
    .win-col--bet, .win-col--cta { display: none; }
}

.win-col { display: flex; align-items: center; gap: 10px; font-size: 14px; }
.win-col strong { color: #fff; }
.win-icon {
    width: 38px; height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #6366f1, #8b5cf6);
    border-radius: 10px;
    font-size: 18px;
}
.win-game { color: #fff; font-weight: 700; }
.avatar {
    width: 30px; height: 30px;
    border-radius: 50%;
    background: linear-gradient(135deg, #06b6d4, #3b82f6);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: 13px;
}
.win-col--bet, .win-col--win { flex-direction: column; align-items: flex-start; gap: 0; font-size: 12px; }
.win-col--bet .muted, .win-col--win .muted { font-size: 11px; }
.win-amount { color: #6ee7b7; font-variant-numeric: tabular-nums; }

.btn-mini {
    padding: 6px 16px;
    border-radius: 999px;
    background: linear-gradient(135deg, #10b981, #059669);
    color: #fff;
    font-weight: 700;
    font-size: 12px;
    text-decoration: none;
    transition: filter .15s ease, transform .15s ease;
}
.btn-mini:hover { filter: brightness(1.1); transform: translateY(-1px); text-decoration: none; }

/* =========================================
   PROMOTIONS
   ========================================= */
.promo-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
}
@media (max-width: 900px) { .promo-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .promo-grid { grid-template-columns: 1fr; } }

.promo-card {
    position: relative;
    display: block;
    padding: 22px;
    border-radius: 16px;
    text-decoration: none;
    color: #fff;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.1);
    min-height: 160px;
    transition: transform .15s ease, box-shadow .15s ease;
}
.promo-card:hover { transform: translateY(-3px); text-decoration: none; box-shadow: 0 18px 40px -16px rgba(0,0,0,.45); }
.promo-card--blue   { background: linear-gradient(135deg, #1e40af, #3b82f6, #06b6d4); }
.promo-card--purple { background: linear-gradient(135deg, #581c87, #7c3aed, #ec4899); }
.promo-card--pink   { background: linear-gradient(135deg, #831843, #ec4899, #f97316); }
.promo-card--gold   { background: linear-gradient(135deg, #78350f, #f59e0b, #fbbf24); color: #1a1a1a; }
.promo-card--gold .promo-card__sub { color: #1f2937; }

.promo-card__icon {
    font-size: 36px;
    margin-bottom: 10px;
    filter: drop-shadow(0 4px 12px rgba(0,0,0,.35));
}
.promo-card__title {
    font-size: 18px;
    font-weight: 800;
    margin-bottom: 6px;
}
.promo-card__sub {
    font-size: 13px;
    color: rgba(255,255,255,.85);
    line-height: 1.5;
}

/* =========================================
   PROVIDERS STRIP
   ========================================= */
.providers-zone { margin-top: 8px; }
.providers-strip {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: center;
    padding: 22px;
    background: linear-gradient(180deg, rgba(28, 35, 86, .6), rgba(15, 18, 60, .8));
    border: 1px solid var(--home-border);
    border-radius: 16px;
}
.provider-pill {
    width: 110px;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255,255,255,.04);
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 10px;
    padding: 8px;
    transition: transform .15s ease, border-color .15s ease, background .15s ease;
}
.provider-pill:hover {
    transform: translateY(-2px);
    border-color: rgba(255,255,255,.25);
    background: rgba(255,255,255,.08);
}
.provider-pill img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    filter: brightness(1.1);
}

/* =========================================
   FOOTER
   ========================================= */
.site-footer {
    margin-top: 40px;
    background: linear-gradient(180deg, rgba(10, 13, 46, .8), #05071a);
    border-top: 1px solid var(--home-border);
}
.footer-inner {
    max-width: 1280px;
    margin: 0 auto;
    padding: 40px 24px 24px;
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1fr;
    gap: 28px;
}
@media (max-width: 768px) { .footer-inner { grid-template-columns: 1fr 1fr; } }
@media (max-width: 480px) { .footer-inner { grid-template-columns: 1fr; } }

.footer-logo {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 22px;
    font-weight: 900;
    margin-bottom: 8px;
}
.footer-logo-text {
    background: linear-gradient(135deg, #fbbf24, #ec4899);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}
.footer-logo-icon {
    line-height: 1;
}
.footer-logo-img {
    width: 36px;
    height: 36px;
    padding: 4px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    background: rgba(255, 255, 255, .07);
    border: 1px solid rgba(255, 255, 255, .09);
}
.footer-logo-img img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}
.footer-col { display: flex; flex-direction: column; gap: 8px; }
.footer-col h4 { margin: 0 0 8px; font-size: 14px; color: #fff; }
.footer-col a {
    color: #94a3b8;
    font-size: 13px;
    text-decoration: none;
    transition: color .15s ease;
}
.footer-col a:hover { color: #fde68a; text-decoration: none; }

.footer-base {
    max-width: 1280px;
    margin: 0 auto;
    padding: 16px 24px 24px;
    border-top: 1px solid var(--home-border);
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    color: #64748b;
    font-size: 12px;
}
.footer-social { display: flex; gap: 8px; }
.footer-social a {
    width: 32px; height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255,255,255,.05);
    border: 1px solid var(--home-border);
    border-radius: 50%;
    font-weight: 800;
    font-size: 12px;
    color: #cbd5e1;
    text-decoration: none;
    transition: all .15s ease;
}
.footer-social a:hover {
    background: linear-gradient(135deg, #ec4899, #8b5cf6);
    color: #fff;
    border-color: transparent;
    text-decoration: none;
}

/* Hide global navbar on home (we use a richer transparent variant inline) */
.home .navbar { /* keep but make it transparent on home */ }

/* =========================================
   NAVBAR — HOME VARIANT
   ========================================= */
.navbar--home {
    background: color-mix(in srgb, var(--member-navbar-bg, var(--home-bg)) 72%, transparent);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--home-border);
}
.brand--home {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: 20px;
    font-weight: 900;
    color: var(--member-navbar-text, #fff);
    text-decoration: none;
    letter-spacing: .04em;
}
.brand--home:hover { text-decoration: none; }
.brand-icon {
    display: inline-flex;
    width: 36px; height: 36px;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--member-navbar-active, var(--home-gold)), var(--home-pink));
    border-radius: 10px;
    box-shadow: 0 8px 22px -8px color-mix(in srgb, var(--home-pink) 55%, transparent);
    font-size: 18px;
}
.brand-logo-wrap {
    display: inline-flex;
    width: 42px;
    height: 42px;
    align-items: center;
    justify-content: center;
    padding: 4px;
    border-radius: 12px;
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.12);
    box-shadow: 0 10px 24px -14px rgba(0,0,0,.75);
}
.brand-logo-img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    display: block;
    filter: drop-shadow(0 6px 10px rgba(0,0,0,.32));
}
.brand-text {
    background: linear-gradient(120deg, var(--member-navbar-text, #fff) 0%, var(--home-gold) 50%, var(--member-navbar-active, var(--home-gold-2)) 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}
.brand-text small {
    display: inline-block;
    font-size: 12px;
    margin-left: 4px;
    letter-spacing: .28em;
    -webkit-text-fill-color: transparent;
    color: transparent;
}
.nav-login {
    color: color-mix(in srgb, var(--member-navbar-text, #fff) 82%, transparent) !important;
    font-weight: 600;
}
.nav-login:hover { color: var(--member-navbar-text, #fff) !important; text-decoration: none; }

.btn-glow--sm {
    padding: 9px 18px;
    font-size: 13px;
    border-radius: 999px;
}

/* =========================================
   ADMIN — HOMEPAGE MANAGEMENT
   ========================================= */

/* Sub-nav (tabs ใต้หัวข้อ) */
.home-subnav {
    display: flex;
    gap: 6px;
    margin-bottom: 18px;
    padding: 6px;
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: 12px;
    flex-wrap: wrap;
    overflow-x: auto;
}
.home-subnav a {
    padding: 8px 14px;
    border-radius: 8px;
    text-decoration: none;
    color: var(--muted);
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
    transition: background .12s, color .12s;
}
.home-subnav a:hover { background: var(--panel-2); color: var(--text); text-decoration: none; }
.home-subnav a.active {
    background: linear-gradient(135deg, rgba(245,158,11,.2), rgba(217,119,6,.05));
    color: var(--primary);
}
.home-subnav-preview {
    margin-left: auto;
    background: rgba(16,185,129,.12) !important;
    border: 1px solid rgba(16,185,129,.3);
    color: #6ee7b7 !important;
}

/* Overview cards */
.home-overview-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 14px;
    margin-top: 14px;
}
.home-overview-card {
    display: block;
    padding: 22px;
    border-radius: 14px;
    background: var(--panel);
    border: 1px solid var(--border);
    text-decoration: none;
    color: var(--text);
    transition: transform .12s, border-color .12s, box-shadow .12s;
    position: relative;
    overflow: hidden;
}
.home-overview-card:hover {
    transform: translateY(-3px);
    border-color: var(--primary);
    text-decoration: none;
    box-shadow: 0 14px 30px -12px rgba(0,0,0,.4);
}
.home-overview-card h3   { margin: 6px 0 4px; font-size: 16px; }
.home-overview-card p    { margin: 0 0 10px; font-size: 13px; color: var(--muted); }
.home-overview-card small{ display: block; font-size: 12px; color: #cbd5e1; }
.home-overview-icon { font-size: 32px; filter: drop-shadow(0 6px 12px rgba(0,0,0,.4)); }
.home-overview-card--theme     { background: linear-gradient(135deg, rgba(34,211,238,.18), var(--panel) 70%); }
.home-overview-card--hero      { background: linear-gradient(135deg, rgba(139,92,246,.18), var(--panel) 70%); }
.home-overview-card--jackpot   { background: linear-gradient(135deg, rgba(251,191,36,.18), var(--panel) 70%); }
.home-overview-card--topcat    { background: linear-gradient(135deg, rgba(168,85,247,.18), var(--panel) 70%); }
.home-overview-card--games     { background: linear-gradient(135deg, rgba(59,130,246,.18), var(--panel) 70%); }
.home-overview-card--promo     { background: linear-gradient(135deg, rgba(236,72,153,.18), var(--panel) 70%); }
.home-overview-card--providers { background: linear-gradient(135deg, rgba(16,185,129,.18), var(--panel) 70%); }
.home-overview-card--footer    { background: linear-gradient(135deg, rgba(148,163,184,.18), var(--panel) 70%); }

/* Forms */
.home-form .panel { margin-bottom: 14px; }
.form-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 12px;
}
.form-grid label, .home-form label {
    display: flex;
    flex-direction: column;
    gap: 6px;
    font-size: 13px;
    color: var(--muted);
}
.form-grid-full { grid-column: 1 / -1; }
.form-grid input, .form-grid textarea, .form-grid select,
.home-form input[type=text], .home-form input[type=number], .home-form textarea, .home-form select {
    background: var(--panel-2);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 9px 12px;
    color: var(--text);
    font-size: 14px;
    font-family: inherit;
}
.home-form input:focus, .home-form textarea:focus, .home-form select:focus {
    outline: none;
    border-color: var(--primary);
    box-shadow: 0 0 0 3px rgba(245,158,11,.15);
}

/* Promotion admin form */
.promo-form {
    display: flex;
    flex-direction: column;
    gap: 18px;
}
.promo-form-hero {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    padding: 22px;
    margin-bottom: 18px;
    border: 1px solid rgba(245,158,11,.28);
    border-radius: 18px;
    background:
        radial-gradient(circle at top left, rgba(245,158,11,.18), transparent 34%),
        linear-gradient(135deg, rgba(30,41,70,.92), rgba(15,23,42,.9));
    box-shadow: 0 18px 48px rgba(0,0,0,.22);
}
.promo-form-hero h1 { margin: 0 0 6px; font-size: clamp(22px, 3vw, 30px); }
.promo-form-hero p { margin: 0; color: #cbd5e1; max-width: 720px; }
.promo-form-hero__actions { display: flex; align-items: flex-start; gap: 10px; flex-wrap: wrap; }
.promo-form-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(360px, .95fr);
    gap: 18px;
    align-items: start;
}
.promo-form-card {
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(148,163,184,.18);
    border-radius: 18px;
    padding: 20px;
    background: linear-gradient(180deg, rgba(17,26,46,.98), rgba(11,18,32,.98));
    box-shadow: 0 14px 34px rgba(0,0,0,.18);
}
.promo-form-card::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 3px;
    background: linear-gradient(90deg, var(--primary), #8b5cf6, #06b6d4);
    opacity: .8;
}
.promo-form-card__head {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 16px;
}
.promo-form-card__icon {
    display: grid;
    place-items: center;
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    border-radius: 14px;
    background: rgba(245,158,11,.13);
    border: 1px solid rgba(245,158,11,.28);
    font-size: 20px;
}
.promo-form-card__head h2 { margin: 0; font-size: 18px; }
.promo-form-card__head p { margin: 2px 0 0; color: var(--muted); font-size: 13px; }
.promo-field {
    display: flex;
    flex-direction: column;
    gap: 7px;
    color: var(--muted);
    font-size: 13px;
}
.promo-form .form-grid label {
    display: flex;
    flex-direction: column;
    gap: 7px;
    color: var(--muted);
    font-size: 13px;
}
.promo-form .form-grid label > span:first-child,
.promo-field > span:first-child {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    color: #cbd5e1;
    font-weight: 600;
}
.promo-field small { color: var(--muted); line-height: 1.4; }
.promo-form .form-grid input,
.promo-form .form-grid textarea,
.promo-form .form-grid select,
.promo-field input,
.promo-field textarea,
.promo-field select {
    width: 100%;
    min-height: 44px;
    background: rgba(27,37,64,.88);
    border: 1px solid rgba(148,163,184,.18);
    border-radius: 12px;
    padding: 10px 13px;
    color: var(--text);
    font-size: 14px;
    transition: border-color .15s, box-shadow .15s, background .15s;
}
.promo-form .form-grid textarea,
.promo-field textarea { resize: vertical; min-height: 84px; }
.promo-form .form-grid input:focus,
.promo-form .form-grid textarea:focus,
.promo-form .form-grid select:focus,
.promo-field input:focus,
.promo-field textarea:focus,
.promo-field select:focus {
    outline: none;
    border-color: rgba(245,158,11,.7);
    background: rgba(30,41,70,.96);
    box-shadow: 0 0 0 3px rgba(245,158,11,.14);
}
.promo-code-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
}
.promo-code-row input { text-transform: uppercase; font-weight: 800; letter-spacing: .04em; }
.promo-generate-btn {
    min-height: 44px;
    padding: 0 14px;
    border-radius: 12px;
    border: 1px solid rgba(245,158,11,.35);
    background: rgba(245,158,11,.11);
    color: #fbbf24;
    cursor: pointer;
    font-weight: 700;
}
.promo-generate-btn:hover { background: rgba(245,158,11,.18); }
.promo-switch {
    flex-direction: row;
    align-items: center;
    gap: 10px;
    min-height: 44px;
    padding: 10px 12px;
    border: 1px solid rgba(148,163,184,.18);
    border-radius: 12px;
    background: rgba(27,37,64,.5);
}
.promo-form .form-grid label.promo-switch {
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
}
.promo-switch input,
.promo-form .form-grid .promo-switch input {
    width: 18px;
    height: 18px;
    min-height: auto;
    accent-color: var(--primary);
}
.promo-chip-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 8px;
}
.promo-chip {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 8px 11px;
    border: 1px solid rgba(148,163,184,.18);
    border-radius: 999px;
    background: rgba(27,37,64,.65);
    color: #cbd5e1;
    cursor: pointer;
    user-select: none;
}
.promo-form .form-grid label.promo-chip {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
}
.promo-chip input,
.promo-form .form-grid .promo-chip input {
    width: 15px;
    height: 15px;
    min-height: auto;
    accent-color: var(--primary);
}
.promo-mini-note {
    padding: 10px 12px;
    border: 1px solid rgba(59,130,246,.24);
    border-radius: 12px;
    background: rgba(59,130,246,.08);
    color: #bfdbfe;
    font-size: 13px;
}
.promo-action-bar {
    position: sticky;
    bottom: 0;
    z-index: 4;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 14px 16px;
    border: 1px solid rgba(148,163,184,.18);
    border-radius: 16px;
    background: rgba(11,18,32,.88);
    backdrop-filter: blur(10px);
    box-shadow: 0 -12px 36px rgba(0,0,0,.24);
}
.promo-action-bar__text { color: var(--muted); font-size: 13px; }
.promo-action-bar__buttons { display: flex; gap: 10px; flex-wrap: wrap; }
@media (max-width: 1180px) {
    .promo-form-grid { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
    .promo-form-hero,
    .promo-action-bar { flex-direction: column; align-items: stretch; }
    .promo-code-row { grid-template-columns: 1fr; }
    .promo-action-bar__buttons .btn-primary,
    .promo-action-bar__buttons .btn-secondary { width: 100%; text-align: center; }
}
.home-form input[type=color] {
    height: 36px;
    width: 100%;
    padding: 2px;
    cursor: pointer;
    border: 1px solid var(--border);
    border-radius: 8px;
    background: var(--panel-2);
}
.home-form input[type=file] {
    width: 100%;
    min-height: 40px;
    padding: 8px 10px;
    background: var(--panel-2);
    border: 1px solid var(--border);
    border-radius: 8px;
    color: var(--text);
    cursor: pointer;
}
.home-form input[type=file]::file-selector-button {
    margin-right: 12px;
    padding: 7px 12px;
    border: 0;
    border-radius: 7px;
    background: linear-gradient(135deg, var(--primary), var(--primary-2));
    color: #1a1a1a;
    font-weight: 700;
    cursor: pointer;
}

/* Theme admin */
.theme-preset-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 10px;
}
.theme-preset-card {
    position: relative;
    padding: 14px;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: var(--panel-2);
    cursor: pointer;
    transition: border-color .15s, box-shadow .15s, transform .15s;
}
.theme-preset-card:hover,
.theme-preset-card.is-active {
    border-color: var(--primary);
    box-shadow: 0 12px 28px -18px rgba(245,158,11,.65);
    transform: translateY(-1px);
}
.theme-preset-card input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}
.theme-preset-card__swatches {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 6px;
    margin-bottom: 10px;
}
.theme-preset-card__swatches i {
    display: block;
    height: 34px;
    border-radius: 10px;
    border: 1px solid rgba(255,255,255,.14);
}
.theme-preset-card strong {
    color: var(--text);
    font-size: 14px;
}
.theme-editor {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
    gap: 18px;
    align-items: stretch;
}
.theme-preview {
    --preview-backgroundFrom: #0a0d2e;
    --preview-backgroundTo: #07091f;
    --preview-card: #161b46;
    --preview-cardAlt: #1c2356;
    --preview-primary: #fbbf24;
    --preview-secondary: #8b5cf6;
    --preview-accent: #ec4899;
    --preview-info: #3b82f6;
    --preview-text: #e6edf7;
    --preview-muted: #8b97ad;
    --preview-border: #243049;
    --preview-navbarBg: #08091a;
    --preview-navbarText: #ffffff;
    --preview-navbarActive: #fbbf24;
    --preview-sidebarBg: #0c0e20;
    --preview-sidebarText: #8892a4;
    --preview-sidebarActive: #6c3de8;
    --preview-sidebarBorder: #1f2740;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 18px;
    padding: 18px;
    background:
        radial-gradient(circle at 0% 0%, color-mix(in srgb, var(--preview-secondary) 32%, transparent), transparent 46%),
        radial-gradient(circle at 100% 30%, color-mix(in srgb, var(--preview-info) 28%, transparent), transparent 42%),
        linear-gradient(180deg, var(--preview-backgroundFrom), var(--preview-backgroundTo));
}
.theme-preview__navbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
    padding: 10px 12px;
    border-radius: 14px;
    background: var(--preview-navbarBg);
    border: 1px solid var(--preview-sidebarBorder);
    color: var(--preview-navbarText);
}
.theme-preview__navbar strong {
    font-size: 12px;
    letter-spacing: .14em;
}
.theme-preview__navbar span {
    padding: 6px 10px;
    border-radius: 999px;
    background: var(--preview-navbarActive);
    color: #111827;
    font-size: 11px;
    font-weight: 900;
}
.theme-preview__hero {
    min-height: 230px;
    padding: 22px;
    border-radius: 18px;
    border: 1px solid color-mix(in srgb, var(--preview-primary) 36%, transparent);
    background:
        radial-gradient(circle at 90% 10%, color-mix(in srgb, var(--preview-accent) 28%, transparent), transparent 46%),
        linear-gradient(145deg, var(--preview-cardAlt), var(--preview-card));
    box-shadow: 0 24px 52px -28px color-mix(in srgb, var(--preview-secondary) 72%, black);
}
.theme-preview__hero::before {
    content: "SIDEBAR";
    display: block;
    width: 84px;
    margin: -8px 0 14px;
    padding: 7px 10px;
    border-radius: 10px;
    background: var(--preview-sidebarBg);
    border-left: 3px solid var(--preview-sidebarActive);
    color: var(--preview-sidebarText);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .1em;
}
.theme-preview__eyebrow {
    display: inline-flex;
    padding: 5px 10px;
    border-radius: 999px;
    background: rgba(255,255,255,.08);
    color: var(--preview-primary);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .14em;
}
.theme-preview h3 {
    margin: 18px 0 8px;
    font-size: 30px;
    color: var(--preview-text);
}
.theme-preview p {
    margin: 0 0 18px;
    color: var(--preview-muted);
}
.theme-preview__actions {
    display: flex;
    gap: 10px;
    align-items: center;
}
.theme-preview__actions span,
.theme-preview__actions small {
    display: inline-flex;
    border-radius: 999px;
    font-weight: 800;
}
.theme-preview__actions span {
    padding: 10px 16px;
    background: linear-gradient(135deg, var(--preview-primary), var(--preview-accent), var(--preview-secondary));
    color: #fff;
}
.theme-preview__actions small {
    padding: 9px 14px;
    border: 1px solid rgba(255,255,255,.2);
    color: #fff;
}
.theme-preview__cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    margin-top: 12px;
}
.theme-preview__cards span {
    height: 58px;
    border-radius: 14px;
    background: linear-gradient(145deg, var(--preview-cardAlt), var(--preview-card));
    border: 1px solid rgba(255,255,255,.1);
}
@media (max-width: 980px) {
    .theme-editor { grid-template-columns: 1fr; }
}

/* Payment mode cards */
.payment-mode-form {
    margin-top: 18px;
}
.payment-mode-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
    align-items: stretch;
}
.payment-mode-card {
    display: flex;
    flex-direction: column;
    gap: 14px;
    min-height: 280px;
    padding: 22px;
    background:
        linear-gradient(180deg, rgba(27, 37, 64, .96), rgba(13, 22, 40, .96)),
        var(--panel-2);
    border: 2px solid rgba(147, 197, 253, .24);
    border-radius: 18px;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.04), 0 12px 28px rgba(0,0,0,.18);
    transition: border-color .15s, box-shadow .15s, transform .15s;
}
.payment-mode-card.is-active {
    border-color: rgba(245, 158, 11, .95);
    background:
        linear-gradient(145deg, rgba(245, 158, 11, .18), rgba(27, 37, 64, .96) 56%),
        var(--panel-2);
    box-shadow: 0 0 0 2px rgba(245, 158, 11, .18), 0 18px 42px rgba(0,0,0,.28);
}
.payment-mode-card__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-height: 28px;
}
.payment-mode-card__eyebrow {
    color: #93c5fd;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .02em;
}
.payment-mode-card__badge {
    display: inline-flex;
    align-items: center;
    padding: 4px 9px;
    border-radius: 999px;
    background: rgba(16, 185, 129, .14);
    border: 1px solid rgba(16, 185, 129, .38);
    color: #a7f3d0;
    font-size: 12px;
    font-weight: 700;
    white-space: nowrap;
}
.payment-mode-card h2 {
    margin: 0;
    font-size: 24px;
}
.payment-mode-card p {
    margin: 0;
    color: var(--muted);
    font-size: 15px;
    line-height: 1.7;
}
.payment-mode-card__url {
    display: block;
    word-break: break-all;
    padding: 10px 12px;
    background: rgba(11, 18, 32, .48);
    border: 1px solid rgba(148, 163, 184, .14);
    border-radius: 10px;
}
.payment-mode-card__button {
    width: 100%;
    margin-top: auto;
    text-align: center;
    padding: 12px 18px;
}
.payment-mode-card__button[disabled] {
    opacity: 1;
    cursor: default;
    background: rgba(16, 185, 129, .16);
    border: 1px solid rgba(16, 185, 129, .42);
    color: #a7f3d0;
}
.payment-mode-current {
    margin-top: 16px;
    display: flex;
    align-items: center;
    gap: 12px;
}
@media (max-width: 760px) {
    .payment-mode-grid {
        grid-template-columns: 1fr;
    }
}

.brand-logo-preview {
    display: flex;
    flex-direction: column;
    gap: 8px;
    color: var(--muted);
    font-size: 13px;
}
.brand-logo-preview__box {
    min-height: 92px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 18px;
    background:
        linear-gradient(135deg, rgba(59,130,246,.12), rgba(245,158,11,.08)),
        var(--panel-2);
    border: 1px dashed rgba(148,163,184,.34);
    border-radius: 14px;
}
.brand-logo-preview__box img {
    max-width: min(240px, 100%);
    max-height: 72px;
    object-fit: contain;
    filter: drop-shadow(0 10px 18px rgba(0,0,0,.35));
}
.brand-logo-preview__empty {
    color: #94a3b8;
    font-size: 13px;
}
.brand-logo-preview small {
    color: #94a3b8;
}

/* Hero Carousel slots (admin) */
.hero-carousel-hint {
    display: block;
    color: #94a3b8;
    font-size: 13px;
    margin: 4px 0 14px;
    line-height: 1.5;
}
.hero-slides-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 14px;
    margin-top: 14px;
}
.hero-slide-slot {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 14px;
    background: var(--panel-2);
    border: 1px solid rgba(148,163,184,.22);
    border-radius: 14px;
}
.hero-slide-slot__head {
    font-weight: 600;
    font-size: 13px;
    color: var(--muted);
}
.hero-slide-preview {
    position: relative;
    aspect-ratio: 16 / 6;
    display: flex;
    align-items: center;
    justify-content: center;
    background:
        linear-gradient(135deg, rgba(59,130,246,.12), rgba(245,158,11,.08)),
        rgba(15,23,42,.4);
    border: 1px dashed rgba(148,163,184,.34);
    border-radius: 10px;
    overflow: hidden;
}
.hero-slide-preview img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.hero-slide-preview__empty {
    color: #94a3b8;
    font-size: 12px;
}
.hero-slide-slot label {
    display: flex;
    flex-direction: column;
    gap: 4px;
    font-size: 12px;
    color: var(--muted);
}

.inline-check { flex-direction: row !important; align-items: center; }
.inline-check input { width: auto; }
.form-actions {
    display: flex;
    gap: 10px;
    padding: 16px 0;
    flex-wrap: wrap;
}

/* Repeater (Jackpot minis, Footer links) */
.repeater { display: flex; flex-direction: column; gap: 8px; }
.repeater-row {
    display: grid;
    grid-template-columns: 2fr 1fr auto;
    gap: 8px;
    align-items: center;
}
.repeater-row input {
    background: var(--panel-2);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 9px 12px;
    color: var(--text);
    font-size: 14px;
}
.repeater-remove {
    background: rgba(239,68,68,.12) !important;
    color: #fca5a5 !important;
    border: 1px solid rgba(239,68,68,.35);
    border-radius: 8px;
    padding: 6px 12px !important;
    font-weight: 700;
}

/* Featured Sections (games admin) */
.home-section-block {
    padding: 20px;
    margin-bottom: 18px;
    background:
        radial-gradient(circle at top left, rgba(59,130,246,.12), transparent 34%),
        var(--panel);
}
.home-section-head {
    margin-bottom: 18px;
    padding-bottom: 14px;
    border-bottom: 1px solid rgba(148,163,184,.14);
}
.home-section-meta {
    display: grid;
    grid-template-columns: minmax(180px, 1.2fr) minmax(180px, 1fr) 96px auto auto;
    gap: 10px;
    align-items: center;
}
.home-section-meta input[type=text],
.home-section-meta input[type=number],
.home-game-card input[type=text],
.home-game-card input[type=number],
.home-game-card input[type=file],
.home-game-card select,
.home-add-form input[type=text],
.home-add-form input[type=file],
.home-add-form select {
    width: 100%;
    min-height: 40px;
    background: rgba(11,18,32,.76);
    border: 1px solid rgba(148,163,184,.22);
    border-radius: 10px;
    padding: 9px 12px;
    color: var(--text);
    font-size: 14px;
    transition: border-color .15s, box-shadow .15s, background .15s;
}
.home-game-card input[type=file],
.home-add-form input[type=file] {
    cursor: pointer;
}
.home-section-meta input:focus,
.home-game-card input:focus,
.home-game-card select:focus,
.home-add-form input:focus,
.home-add-form select:focus {
    outline: none;
    background: rgba(15,23,42,.96);
    border-color: rgba(96,165,250,.75);
    box-shadow: 0 0 0 3px rgba(59,130,246,.18);
}
.home-section-meta .inline-check {
    min-height: 40px;
    padding: 0 10px;
    justify-content: center;
    color: #cbd5e1;
}

.home-games-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(360px, 1fr));
    gap: 18px;
    margin: 8px 0 18px;
}
.home-game-card {
    --card-c: #3b82f6;
    display: flex;
    flex-direction: column;
    gap: 14px;
    position: relative;
    overflow: hidden;
    padding: 14px;
    background:
        linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.015)),
        var(--panel-2);
    border: 1px solid rgba(148,163,184,.16);
    border-radius: 18px;
    box-shadow: 0 16px 40px -28px rgba(0,0,0,.85);
    transition: transform .15s, border-color .15s, box-shadow .15s;
}
.home-game-card::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
    background: linear-gradient(180deg, var(--card-c), rgba(255,255,255,.25));
}
.home-game-card:hover {
    transform: translateY(-2px);
    border-color: color-mix(in srgb, var(--card-c) 58%, rgba(148,163,184,.24));
    box-shadow: 0 22px 52px -32px color-mix(in srgb, var(--card-c) 38%, #000 62%);
}
.home-game-preview {
    aspect-ratio: 16 / 7.6;
    background:
        radial-gradient(circle at 50% 12%, rgba(255,255,255,.22), transparent 28%),
        linear-gradient(135deg, var(--card-c), color-mix(in srgb, var(--card-c) 42%, #020617 58%));
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 14px;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
.home-game-preview::after {
    content: "";
    position: absolute;
    inset: auto 18% -34% 18%;
    height: 70%;
    background: rgba(255,255,255,.14);
    filter: blur(30px);
}
.home-game-preview img {
    position: relative;
    z-index: 1;
    max-width: 58%;
    max-height: 76%;
    object-fit: contain;
    filter: drop-shadow(0 10px 16px rgba(0,0,0,.38));
}
.home-game-preview-emoji {
    position: relative;
    z-index: 1;
    font-size: 44px;
    filter: drop-shadow(0 10px 16px rgba(0,0,0,.4));
}
.home-game-preview-tag {
    position: absolute;
    z-index: 2;
    top: 10px;
    left: 10px;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 800;
    color: #fff;
    letter-spacing: .08em;
    box-shadow: 0 8px 20px -12px rgba(0,0,0,.8);
}
.home-game-fields,
.home-add-form {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.home-game-fields label,
.home-add-form label {
    display: flex;
    flex-direction: column;
    gap: 6px;
    color: #cbd5e1;
    font-size: 12px;
    font-weight: 600;
}
.home-game-fields label span,
.home-add-form label span {
    color: #9ca3af;
}
.home-game-card input[type=color],
.home-add-form input[type=color] {
    width: 100%;
    min-height: 40px;
    padding: 4px;
    background: rgba(11,18,32,.76);
    border: 1px solid rgba(148,163,184,.22);
    border-radius: 10px;
    cursor: pointer;
}
.row-2 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}
.home-game-actions {
    display: flex;
    gap: 10px;
    align-items: center;
    justify-content: space-between;
    margin-top: auto;
    border-top: 1px solid rgba(148,163,184,.14);
    padding-top: 12px;
}
.home-game-actions .btn-secondary {
    border-color: rgba(96,165,250,.28);
    background: rgba(37,99,235,.14);
}
.home-game-actions .btn-link {
    color: #fca5a5;
    padding: 6px 10px;
    border-radius: 8px;
}
.home-game-actions .btn-link:hover {
    background: rgba(239,68,68,.12);
    text-decoration: none;
}
.home-add-game { margin-top: 10px; }
.home-add-game summary {
    cursor: pointer;
    padding: 12px 16px;
    background: linear-gradient(135deg, rgba(245,158,11,.14), rgba(59,130,246,.08));
    border: 1px dashed rgba(245,158,11,.36);
    border-radius: 12px;
    color: #fbbf24;
    font-weight: 700;
    font-size: 14px;
    user-select: none;
}
.home-add-game summary:hover {
    border-color: rgba(245,158,11,.7);
    background: linear-gradient(135deg, rgba(245,158,11,.2), rgba(59,130,246,.12));
}
.home-add-form {
    margin-top: 12px;
    padding: 16px;
    background: rgba(15,23,42,.72);
    border: 1px solid rgba(148,163,184,.16);
    border-radius: 14px;
}
.home-add-form .form-grid {
    gap: 10px;
}

@media (max-width: 1100px) {
    .home-section-meta {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .home-section-meta input[type=number],
    .home-section-meta .inline-check,
    .home-section-meta .btn-secondary {
        width: 100%;
    }
}
@media (max-width: 640px) {
    .home-games-grid,
    .home-section-meta,
    .row-2 {
        grid-template-columns: 1fr;
    }
    .home-game-actions {
        align-items: stretch;
        flex-direction: column;
    }
}

/* Promotions admin */
.promo-rows { display: flex; flex-direction: column; gap: 10px; }
.promo-row {
    display: grid;
    grid-template-columns: 90px 1fr auto;
    gap: 12px;
    align-items: start;
    padding: 14px;
    border-radius: 12px;
    border: 1px solid var(--border);
    background: var(--panel-2);
    border-left: 4px solid var(--primary);
}
.promo-row--blue   { border-left-color: #3b82f6; background: linear-gradient(90deg, rgba(59,130,246,.06), var(--panel-2)); }
.promo-row--purple { border-left-color: #8b5cf6; background: linear-gradient(90deg, rgba(139,92,246,.06), var(--panel-2)); }
.promo-row--pink   { border-left-color: #ec4899; background: linear-gradient(90deg, rgba(236,72,153,.06), var(--panel-2)); }
.promo-row--gold   { border-left-color: #f59e0b; background: linear-gradient(90deg, rgba(245,158,11,.06), var(--panel-2)); }
.top-category-preview { --tc: #8b5cf6; }
.promo-row[data-top-category-row] {
    border-left-color: var(--tc);
    background: linear-gradient(90deg, color-mix(in oklab, var(--tc) 12%, transparent), var(--panel-2));
}
.top-category-icon-preview {
    width: 100%;
    height: 60px;
    border-radius: 10px;
    background: var(--panel);
    border: 1px solid var(--border);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
.top-category-icon-preview span {
    font-size: 24px;
    line-height: 1;
}
.top-category-icon-preview img {
    max-width: 54px;
    max-height: 54px;
    width: auto;
    height: auto;
    object-fit: contain;
    display: block;
}
.promo-row-icon input {
    width: 100%;
    height: 60px;
    text-align: center;
    font-size: 24px;
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: 10px;
    color: var(--text);
}
.promo-row-fields { display: flex; flex-direction: column; gap: 8px; }
.promo-remove { align-self: start; }

/* Providers admin */
.provider-admin-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 12px;
}
.provider-admin-row {
    display: grid;
    grid-template-columns: 80px 1fr;
    gap: 10px;
    align-items: center;
    background: var(--panel-2);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 10px;
}
.provider-admin-preview {
    width: 80px;
    height: 50px;
    background: rgba(255,255,255,.05);
    border: 1px solid var(--border);
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 6px;
}
.provider-admin-preview img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}
.provider-admin-fields {
    display: grid;
    grid-template-columns: 1fr;
    gap: 6px;
}
.provider-admin-fields input[type=text],
.provider-admin-fields select {
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 6px 8px;
    color: var(--text);
    font-size: 13px;
}
.provider-admin-fields .inline-check { font-size: 12px; }
.prov-remove { justify-self: end; }


/* ============================
   Register Wizard (3-step)
   ============================ */
.wizard-card {
    max-width: 460px;
}
.wizard-steps {
    list-style: none;
    padding: 0;
    margin: 4px 0 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
    counter-reset: step;
}
.wizard-steps .step {
    flex: 1 1 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    color: var(--muted);
    font-size: 12px;
    position: relative;
}
.wizard-steps .step .step-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--panel-2);
    border: 1px solid var(--border);
    font-weight: 700;
    font-size: 14px;
    color: var(--muted);
    transition: background-color .15s, color .15s, border-color .15s;
}
.wizard-steps .step .step-label {
    font-size: 12px;
    letter-spacing: .02em;
}
.wizard-steps .step.active .step-num {
    background: linear-gradient(135deg, var(--primary), var(--primary-2));
    color: #1a1a1a;
    border-color: var(--primary);
    box-shadow: 0 0 0 4px rgba(245,158,11,.18);
}
.wizard-steps .step.active .step-label {
    color: var(--text);
    font-weight: 600;
}
.wizard-steps .step.done .step-num {
    background: rgba(16,185,129,.18);
    border-color: rgba(16,185,129,.5);
    color: #6ee7b7;
}
.wizard-steps .step + .step::before {
    content: '';
    position: absolute;
    left: -50%;
    top: 16px;
    width: 100%;
    height: 2px;
    background: var(--border);
    z-index: -1;
}
.wizard-steps .step.done + .step::before,
.wizard-steps .step.active::before {
    background: linear-gradient(90deg, rgba(16,185,129,.5), rgba(245,158,11,.55));
}

.wizard-step {
    display: flex;
    flex-direction: column;
    gap: 14px;
    animation: wizardFade .2s ease;
}
@keyframes wizardFade {
    from { opacity: 0; transform: translateY(6px); }
    to   { opacity: 1; transform: translateY(0); }
}
.wizard-step[hidden] { display: none; }

.wizard-hint {
    background: var(--panel-2);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 10px 14px;
    font-size: 13px;
    color: var(--muted);
    margin: 0;
}
.wizard-hint strong { color: var(--text); letter-spacing: .04em; }

.wizard-actions {
    margin-top: 4px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.wizard-actions.row {
    flex-direction: row;
    justify-content: space-between;
    gap: 10px;
}
.wizard-actions.row .btn-secondary,
.wizard-actions.row .btn-primary {
    flex: 1 1 0;
    padding: 12px;
}

.checkbox-row {
    flex-direction: row !important;
    align-items: flex-start !important;
    gap: 10px !important;
    color: var(--text) !important;
    font-size: 14px !important;
    cursor: pointer;
}
.checkbox-row input[type="checkbox"] {
    width: 18px;
    height: 18px;
    margin-top: 2px;
    accent-color: var(--primary);
    flex-shrink: 0;
}
.checkbox-row span { line-height: 1.5; }
.checkbox-row a { color: var(--primary); text-decoration: underline; }

.permission-panel {
    margin: 12px 0;
    padding: 14px;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: rgba(15, 23, 42, .42);
}
.permission-panel h2 {
    margin: 0 0 4px;
    font-size: 16px;
}
.permission-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 10px;
    margin-top: 12px;
}
.permission-check {
    display: flex !important;
    flex-direction: row !important;
    align-items: flex-start !important;
    gap: 10px !important;
    padding: 10px;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: var(--panel-2);
    cursor: pointer;
}
.permission-check input[type="checkbox"] {
    width: 18px;
    height: 18px;
    margin-top: 2px;
    accent-color: var(--primary);
    flex-shrink: 0;
}
.permission-check strong,
.permission-check small {
    display: block;
}
.permission-check small {
    margin-top: 2px;
    color: var(--muted);
}

.auth-form select {
    width: 100%;
}

/* ============================
   Simple modal (terms)
   ============================ */
.modal {
    position: fixed;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 50;
    padding: 16px;
}
.modal[hidden] { display: none; }
.modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(2, 6, 16, .65);
    backdrop-filter: blur(4px);
}
.modal-panel {
    position: relative;
    width: 100%;
    max-width: 480px;
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: 24px;
    box-shadow: 0 30px 60px rgba(0,0,0,.5);
}
.modal-panel h2 { margin: 0 0 10px; font-size: 18px; }
.modal-actions {
    margin-top: 18px;
    display: flex;
    justify-content: flex-end;
}

/* =========================================================
   ===  HOMEPAGE PREMIUM UPGRADE  (2026-05) ================
   ========================================================= */

/* ---- Hero stars background ---- */
.hero-stars {
    position: absolute;
    inset: 0;
    background-image:
        radial-gradient(1.5px 1.5px at 12% 18%, #fff 50%, transparent 60%),
        radial-gradient(1px 1px at 25% 65%, #fde68a 50%, transparent 60%),
        radial-gradient(2px 2px at 48% 22%, #fff 50%, transparent 60%),
        radial-gradient(1px 1px at 67% 85%, #c4b5fd 50%, transparent 60%),
        radial-gradient(1.5px 1.5px at 82% 30%, #fff 50%, transparent 60%),
        radial-gradient(1px 1px at 90% 60%, #fde68a 50%, transparent 60%),
        radial-gradient(1px 1px at 35% 90%, #fff 50%, transparent 60%);
    opacity: .45;
    animation: starTwinkle 4s ease-in-out infinite alternate;
}
@keyframes starTwinkle {
    from { opacity: .25; }
    to   { opacity: .65; }
}

/* ---- Hero side: medal artwork + feed card stacked ---- */
.hero-side {
    display: flex;
    flex-direction: column;
    gap: 14px;
    background: transparent;
    border: none;
    backdrop-filter: none;
    overflow: visible;
}
.hero-medal {
    position: relative;
    height: 240px;
    border-radius: 20px;
    background:
        radial-gradient(circle at 50% 60%, rgba(251, 191, 36, .25), transparent 60%),
        linear-gradient(160deg, rgba(28, 35, 86, .7), rgba(15, 10, 50, .9));
    border: 1px solid rgba(251, 191, 36, .25);
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 20px 50px -20px rgba(251, 191, 36, .35);
}
.hero-medal__rays {
    position: absolute;
    inset: -50%;
    background: conic-gradient(
        from 0deg,
        rgba(251, 191, 36, 0) 0deg,
        rgba(251, 191, 36, .25) 30deg,
        rgba(251, 191, 36, 0) 60deg,
        rgba(251, 191, 36, .2) 120deg,
        rgba(251, 191, 36, 0) 180deg,
        rgba(251, 191, 36, .25) 240deg,
        rgba(251, 191, 36, 0) 300deg,
        rgba(251, 191, 36, 0) 360deg
    );
    animation: medalSpin 18s linear infinite;
    pointer-events: none;
}
@keyframes medalSpin {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}
.hero-medal__coin {
    position: relative;
    width: 180px;
    height: 180px;
    animation: medalFloat 4.5s ease-in-out infinite;
    filter: drop-shadow(0 16px 30px rgba(251, 191, 36, .35));
}
@keyframes medalFloat {
    0%, 100% { transform: translateY(0) rotate(-2deg); }
    50%      { transform: translateY(-10px) rotate(2deg); }
}
.hero-medal__svg { width: 100%; height: 100%; }

/* Floating coins */
.hero-coin {
    position: absolute;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background:
        radial-gradient(circle at 35% 30%, #fff7d6, #fbbf24 45%, #92400e 100%);
    border: 2px solid #b45309;
    box-shadow: 0 6px 14px rgba(0,0,0,.4), inset 0 2px 4px rgba(255,255,255,.4);
    animation: coinFloat 6s ease-in-out infinite;
}
.hero-coin::before {
    content: "₿";
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    font-size: 14px;
    color: #7c2d12;
    text-shadow: 0 1px 0 rgba(255,255,255,.4);
}
.hero-coin--1 { top: 15%; left: 10%; animation-delay: -1s; }
.hero-coin--2 { top: 25%; right: 12%; width: 22px; height: 22px; animation-delay: -3s; }
.hero-coin--3 { bottom: 12%; left: 18%; width: 20px; height: 20px; animation-delay: -2s; }
.hero-coin--4 { bottom: 18%; right: 18%; animation-delay: -4s; }
@keyframes coinFloat {
    0%, 100% { transform: translateY(0) rotate(0); }
    50%      { transform: translateY(-12px) rotate(180deg); }
}

.hero-feed-card {
    border-radius: 20px;
    background: linear-gradient(180deg, rgba(28, 35, 86, .85), rgba(20, 25, 65, .9));
    border: 1px solid var(--home-border);
    overflow: hidden;
    backdrop-filter: blur(6px);
}
.live-card__head {
    position: relative;
}
.live-card__badge {
    margin-left: auto;
    padding: 2px 8px;
    background: rgba(16, 185, 129, .18);
    border: 1px solid rgba(16, 185, 129, .35);
    border-radius: 999px;
    color: #6ee7b7;
    font-size: 10px;
    letter-spacing: .15em;
}

/* ---- Hero marquee strip (rolling perks) ---- */
.hero-marquee {
    list-style: none;
    margin: 18px 0 0;
    padding: 12px 0;
    display: flex;
    gap: 28px;
    overflow: hidden;
    border-top: 1px dashed rgba(255,255,255,.12);
    color: #fde68a;
    font-weight: 700;
    font-size: 13px;
    white-space: nowrap;
    mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}
.hero-marquee li {
    animation: marquee 18s linear infinite;
}
@keyframes marquee {
    from { transform: translateX(0); }
    to   { transform: translateX(-100%); }
}

/* ---- XL CTA button ---- */
.btn-glow--xl {
    padding: 16px 36px;
    font-size: 16px;
    letter-spacing: .04em;
    background: linear-gradient(135deg, #f97316 0%, #fbbf24 50%, #f97316 100%);
    background-size: 200% 100%;
    color: #1a0f00;
    box-shadow:
        0 14px 36px -8px rgba(251, 146, 60, .65),
        inset 0 2px 0 rgba(255, 255, 255, .5),
        inset 0 -3px 0 rgba(0, 0, 0, .15);
    animation: btnGlowShine 3s ease-in-out infinite;
}
.btn-glow--xl:hover {
    transform: translateY(-3px);
    filter: brightness(1.1);
}
.btn-glow__icon {
    font-size: 20px;
    filter: drop-shadow(0 1px 0 rgba(255,255,255,.4));
}
@keyframes btnGlowShine {
    0%, 100% { background-position: 0% 50%; }
    50%      { background-position: 100% 50%; }
}

/* ---- Stats strip ---- */
.stats-strip {
    position: relative;
    z-index: 1;
    margin-top: 20px;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
    padding: 14px;
    border-radius: 18px;
    background: linear-gradient(180deg, rgba(28, 35, 86, .65), rgba(15, 10, 50, .9));
    border: 1px solid var(--home-border);
    backdrop-filter: blur(8px);
}
@media (max-width: 720px) {
    .stats-strip { grid-template-columns: repeat(2, 1fr); }
}
.stat-pill {
    text-align: center;
    padding: 10px;
    border-radius: 12px;
    background: rgba(0,0,0,.18);
    border: 1px solid rgba(255,255,255,.06);
}
.stat-pill__num {
    font-size: clamp(20px, 2.6vw, 28px);
    font-weight: 900;
    background: linear-gradient(135deg, #fde68a, #fbbf24 60%, #f97316);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    letter-spacing: -0.01em;
    font-variant-numeric: tabular-nums;
}
.stat-pill__unit {
    font-size: .55em;
    color: #d8def0;
    margin-left: 2px;
    -webkit-text-fill-color: #d8def0;
}
.stat-pill__lbl {
    margin-top: 2px;
    font-size: 12px;
    color: #cbd5e1;
    font-weight: 600;
}

/* ---- TOP CATEGORIES (4 large cards) ---- */
.topcat-zone { padding-top: 6px; padding-bottom: 6px; }
.topcat-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
}
@media (max-width: 1024px) { .topcat-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px)  { .topcat-grid { grid-template-columns: 1fr; } }

.topcat {
    --tc: #8b5cf6;
    position: relative;
    display: block;
    min-height: 132px;
    padding: 18px 54px 18px 18px;
    border-radius: 18px;
    background:
        linear-gradient(135deg, color-mix(in oklab, var(--tc) 35%, #1e1b4b 65%), color-mix(in oklab, var(--tc) 12%, #0f0a2a 88%));
    border: 1px solid color-mix(in oklab, var(--tc) 50%, rgba(255,255,255,.18));
    color: #fff;
    text-decoration: none;
    overflow: hidden;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.topcat::before {
    content: "";
    position: absolute;
    inset: -2px;
    background: linear-gradient(135deg, transparent 40%, color-mix(in oklab, var(--tc) 70%, white) 50%, transparent 60%);
    opacity: 0;
    transition: opacity .25s ease;
    pointer-events: none;
    border-radius: inherit;
}
.topcat:hover {
    transform: translateY(-4px);
    box-shadow: 0 22px 50px -16px var(--tc);
    border-color: color-mix(in oklab, var(--tc) 80%, white);
    text-decoration: none;
}
.topcat:hover::before { opacity: .25; }
.topcat--casino { --tc: #fbbf24; }
.topcat--live   { --tc: #ef4444; }
.topcat--sport  { --tc: #10b981; }
.topcat--esport { --tc: #a855f7; }

.topcat__art {
    position: absolute;
    z-index: 1;
    left: 12px;
    top: 50%;
    width: 96px;
    height: 96px;
    transform: translateY(-50%);
    border-radius: 14px;
    background:
        radial-gradient(circle at 35% 30%, color-mix(in oklab, var(--tc) 38%, transparent), transparent 58%),
        rgba(0,0,0,.26);
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255,255,255,.08);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 18px 34px -22px #000;
}
.topcat__art img {
    max-width: 92px;
    max-height: 92px;
    width: auto;
    height: auto;
    object-fit: contain;
    display: block;
    filter: drop-shadow(0 4px 8px rgba(0,0,0,.4));
}
.topcat__art svg { width: 76px; height: 76px; filter: drop-shadow(0 4px 8px rgba(0,0,0,.4)); }
.topcat__body {
    position: relative;
    z-index: 2;
    min-height: 96px;
    margin-left: 82px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    text-shadow: 0 2px 10px rgba(0,0,0,.55);
}
.topcat__name {
    font-size: clamp(15px, 1.35vw, 18px);
    line-height: 1.18;
    font-weight: 800;
    color: #fff;
    margin-bottom: 4px;
    word-break: keep-all;
    overflow-wrap: normal;
}
.topcat__sub {
    font-size: 12px;
    color: rgba(255,255,255,.7);
    line-height: 1.4;
}
.topcat__arrow {
    position: absolute;
    z-index: 3;
    right: 14px;
    top: 50%;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: rgba(255,255,255,.12);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    transform: translateY(-50%);
    transition: transform .2s ease, background .2s ease;
}
.topcat:hover .topcat__arrow {
    background: var(--tc);
    transform: translate(4px, -50%);
}

/* ---- Game tile glow & shimmer (premium upgrade) ---- */
.game-tile {
    box-shadow:
        0 4px 14px -8px rgba(0,0,0,.5),
        inset 0 1px 0 rgba(255,255,255,.06);
}
.game-tile::after {
    content: "";
    position: absolute;
    inset: -1px;
    border-radius: inherit;
    padding: 1px;
    background: linear-gradient(135deg, transparent, color-mix(in oklab, var(--tile-c) 80%, white) 50%, transparent);
    -webkit-mask: linear-gradient(#000, #000) content-box, linear-gradient(#000, #000);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    opacity: 0;
    transition: opacity .25s ease;
    pointer-events: none;
}
.game-tile:hover::after { opacity: 1; }

.game-tile__img img {
    max-width: 84%;
    max-height: 84%;
    object-fit: contain;
    position: relative;
    z-index: 1;
    filter: drop-shadow(0 6px 16px rgba(0,0,0,.45));
    transition: transform .3s ease;
}
.game-tile:hover .game-tile__img img { transform: scale(1.05); }

.amb-home-shell .game-tile__img img {
    width: 100%;
    height: 100%;
    max-width: none;
    max-height: none;
    object-fit: cover;
    display: block;
    filter: none;
}

.game-tile__shimmer {
    position: absolute;
    inset: 0;
    background: linear-gradient(120deg, transparent 30%, rgba(255,255,255,.18) 50%, transparent 70%);
    transform: translateX(-100%);
    transition: transform .6s ease;
    z-index: 2;
}
.game-tile:hover .game-tile__shimmer { transform: translateX(100%); }

.game-tile__play {
    position: absolute;
    bottom: 8px;
    right: 8px;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: linear-gradient(135deg, #fff, #fde68a);
    color: #92400e;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    font-size: 12px;
    opacity: 0;
    transform: translateY(8px);
    transition: opacity .2s ease, transform .2s ease;
    box-shadow: 0 6px 14px rgba(0,0,0,.4);
    z-index: 3;
}
.game-tile:hover .game-tile__play { opacity: 1; transform: translateY(0); }

/* ---- TOP EVENTS / SPORTS ODDS ---- */
.events-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
}
@media (max-width: 1024px) { .events-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px)  { .events-grid { grid-template-columns: 1fr; } }

.event-card {
    background: linear-gradient(180deg, rgba(28, 35, 86, .8), rgba(15, 10, 50, .9));
    border: 1px solid var(--home-border);
    border-radius: 16px;
    padding: 14px 16px;
    transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.event-card:hover {
    transform: translateY(-3px);
    border-color: rgba(16, 185, 129, .45);
    box-shadow: 0 16px 30px -16px rgba(16, 185, 129, .45);
}
.event-card__head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 12px;
    color: #cbd5e1;
    margin-bottom: 12px;
}
.event-card__league { color: #fde68a; font-weight: 700; }
.event-card__time {
    background: rgba(16, 185, 129, .14);
    border: 1px solid rgba(16, 185, 129, .3);
    color: #6ee7b7;
    border-radius: 999px;
    padding: 2px 10px;
    font-weight: 700;
    font-size: 11px;
    letter-spacing: .04em;
}
.event-card__teams {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 10px;
    align-items: center;
    margin-bottom: 12px;
}
.event-team {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}
.event-team:nth-child(3) { justify-content: flex-end; flex-direction: row-reverse; }
.event-team__crest {
    width: 36px; height: 36px;
    border-radius: 50%;
    background: linear-gradient(135deg, #1e293b, #475569);
    border: 2px solid rgba(255,255,255,.2);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    font-size: 14px;
    flex-shrink: 0;
}
.event-team__name {
    font-weight: 700;
    font-size: 14px;
    color: #fff;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.event-card__vs {
    font-size: 11px;
    font-weight: 800;
    color: #94a3b8;
    letter-spacing: .15em;
}
.event-odds {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
}
.odd-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    padding: 8px;
    border-radius: 10px;
    background: rgba(0,0,0,.25);
    border: 1px solid rgba(255,255,255,.08);
    color: #fff;
    cursor: pointer;
    transition: all .15s ease;
}
.odd-btn:hover {
    background: linear-gradient(135deg, #f97316, #fbbf24);
    color: #1a0f00;
    border-color: transparent;
    transform: translateY(-2px);
}
.odd-btn small {
    font-size: 11px;
    color: #94a3b8;
    letter-spacing: .1em;
    font-weight: 700;
}
.odd-btn:hover small { color: #1a0f00; }
.odd-btn b {
    font-size: 15px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}
.odd-btn--flash {
    animation: oddFlash .6s ease;
}
@keyframes oddFlash {
    0%   { background: rgba(0,0,0,.25); }
    35%  { background: rgba(251, 191, 36, .35); }
    100% { background: rgba(0,0,0,.25); }
}

/* ---- PROMO CARD upgrade (shine + cta) ---- */
.promo-card {
    display: flex;
    flex-direction: column;
}
.promo-card__shine {
    position: absolute;
    inset: 0;
    background: linear-gradient(120deg, transparent 35%, rgba(255,255,255,.18) 50%, transparent 65%);
    transform: translateX(-100%);
    transition: transform .7s ease;
    pointer-events: none;
}
.promo-card:hover .promo-card__shine { transform: translateX(100%); }
.promo-card__cta {
    margin-top: auto;
    padding-top: 12px;
    font-size: 13px;
    font-weight: 800;
    color: #fff;
    align-self: flex-start;
    border-top: 1px solid rgba(255,255,255,.18);
    width: 100%;
    transition: padding .2s ease;
}
.promo-card:hover .promo-card__cta { padding-left: 4px; }
.promo-card--gold .promo-card__cta { color: #1f2937; border-color: rgba(0,0,0,.18); }

/* ---- TRUST STRIP ---- */
.trust-zone { padding-top: 28px; padding-bottom: 8px; }
.trust-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 12px;
}
@media (max-width: 900px) { .trust-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .trust-grid { grid-template-columns: 1fr; } }
.trust-card {
    text-align: center;
    padding: 18px 14px;
    border-radius: 14px;
    background: linear-gradient(180deg, rgba(28, 35, 86, .55), rgba(15, 10, 50, .8));
    border: 1px solid var(--home-border);
    transition: transform .2s ease, border-color .2s ease;
}
.trust-card:hover {
    transform: translateY(-3px);
    border-color: rgba(251, 191, 36, .35);
}
.trust-card__icon {
    font-size: 32px;
    margin-bottom: 6px;
    filter: drop-shadow(0 4px 10px rgba(0,0,0,.4));
}
.trust-card__title {
    font-size: 14px;
    font-weight: 800;
    color: #fff;
    margin-bottom: 4px;
}
.trust-card__sub {
    font-size: 12px;
    color: #94a3b8;
    line-height: 1.4;
}

/* ---- FAQ ---- */
.faq-zone { padding-top: 28px; padding-bottom: 8px; }
.faq-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.faq-item {
    border-radius: 14px;
    background: linear-gradient(180deg, rgba(28, 35, 86, .6), rgba(15, 10, 50, .85));
    border: 1px solid var(--home-border);
    overflow: hidden;
    transition: border-color .2s ease;
}
.faq-item[open] { border-color: rgba(251, 191, 36, .35); }
.faq-item summary {
    list-style: none;
    cursor: pointer;
    padding: 16px 20px;
    font-weight: 700;
    font-size: 15px;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after {
    content: "+";
    width: 26px; height: 26px;
    border-radius: 50%;
    background: rgba(251, 191, 36, .15);
    border: 1px solid rgba(251, 191, 36, .35);
    color: #fde68a;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: 18px;
    transition: transform .2s ease, background .2s ease;
    flex-shrink: 0;
}
.faq-item[open] summary::after {
    content: "−";
    transform: rotate(180deg);
    background: linear-gradient(135deg, #fbbf24, #f59e0b);
    color: #1a0f00;
    border-color: transparent;
}
.faq-body {
    padding: 0 20px 18px;
    color: #cbd5e1;
    font-size: 14px;
    line-height: 1.65;
    animation: faqOpen .25s ease;
}
@keyframes faqOpen {
    from { opacity: 0; transform: translateY(-4px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ---- SEO COPY block ---- */
.seo-zone { padding-top: 16px; padding-bottom: 28px; }
.seo-card {
    padding: 32px;
    border-radius: 20px;
    background: linear-gradient(180deg, rgba(28, 35, 86, .55), rgba(15, 10, 50, .8));
    border: 1px solid var(--home-border);
}
.seo-card h2 {
    margin: 0 0 12px;
    font-size: clamp(22px, 3vw, 28px);
    font-weight: 900;
    background: linear-gradient(120deg, #fff, #fde68a 60%, #fbbf24);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}
.seo-card h3 {
    margin: 18px 0 10px;
    font-size: 17px;
    color: #fff;
}
.seo-card p {
    color: #cbd5e1;
    line-height: 1.75;
    font-size: 15px;
    margin: 0 0 12px;
}
.seo-card strong { color: #fde68a; }
.seo-list {
    margin: 8px 0 14px;
    padding-left: 20px;
    color: #cbd5e1;
    font-size: 15px;
    line-height: 1.85;
}
.seo-list li::marker { color: #fbbf24; }
.seo-foot {
    padding-top: 8px;
    border-top: 1px dashed rgba(255,255,255,.1);
    margin-top: 12px;
}

/* ---- Footer extras ---- */
.footer-badges {
    display: flex;
    gap: 8px;
    margin-top: 12px;
    flex-wrap: wrap;
}
.footer-badge {
    padding: 4px 10px;
    background: rgba(255,255,255,.04);
    border: 1px solid var(--home-border);
    border-radius: 999px;
    font-size: 11px;
    color: #cbd5e1;
    font-weight: 700;
    letter-spacing: .04em;
}

/* ---- Floating Live Chat button ---- */
.float-chat {
    position: fixed;
    bottom: 22px;
    right: 22px;
    z-index: 30;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 12px 18px 12px 14px;
    border-radius: 999px;
    background: linear-gradient(135deg, #10b981, #059669);
    color: #fff;
    font-weight: 800;
    text-decoration: none;
    box-shadow: 0 16px 40px -10px rgba(16, 185, 129, .5);
    transition: transform .2s ease, box-shadow .2s ease;
}
.float-chat:hover {
    transform: translateY(-3px);
    text-decoration: none;
    box-shadow: 0 22px 50px -10px rgba(16, 185, 129, .65);
}
.float-chat__icon {
    width: 32px; height: 32px;
    border-radius: 50%;
    background: rgba(255,255,255,.18);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
}
.float-chat__text { font-size: 14px; }
.float-chat__pulse {
    position: absolute;
    top: 6px;
    right: 8px;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #fbbf24;
    box-shadow: 0 0 0 0 rgba(251, 191, 36, .8);
    animation: chatPulse 1.6s infinite;
}
@keyframes chatPulse {
    0%   { box-shadow: 0 0 0 0   rgba(251, 191, 36, .8); }
    70%  { box-shadow: 0 0 0 12px rgba(251, 191, 36, 0); }
    100% { box-shadow: 0 0 0 0   rgba(251, 191, 36, 0); }
}
@media (max-width: 600px) {
    .float-chat__text { display: none; }
    .float-chat { padding: 10px; }
}

/* ---- Mobile tweak: hero medal smaller, marquee hide ---- */
@media (max-width: 1024px) {
    .hero-medal { height: 200px; }
    .hero-medal__coin { width: 150px; height: 150px; }
}
@media (max-width: 600px) {
    .hero-medal { height: 180px; }
    .hero-medal__coin { width: 130px; height: 130px; }
    .hero-marquee { font-size: 12px; gap: 18px; }
}

/* ---- Improved hero card CTAs spacing on mobile ---- */
@media (max-width: 480px) {
    .hero-card { padding: 28px 22px; }
    .btn-glow--xl { padding: 14px 24px; font-size: 14px; }
}

/* =========================================
   NAVBAR — MOBILE LAYOUT
   เก็บเฉพาะ: เลือกค่ายเกม / โปรไฟล์ / จำนวนเงิน / ออกจากระบบ
   ========================================= */
@media (max-width: 768px) {
    .navbar {
        padding: 10px 12px;
        gap: 8px;
    }
    .navbar .brand,
    .brand--home {
        font-size: 15px;
        gap: 6px;
    }
    .brand-icon {
        width: 30px;
        height: 30px;
        font-size: 15px;
    }
    .brand-logo-wrap {
        width: 32px;
        height: 32px;
        border-radius: 10px;
    }
    .brand-text small { display: none; }

    .nav-links {
        gap: 8px;
        flex-wrap: wrap;
        justify-content: flex-end;
        flex: 1;
        min-width: 0;
    }
    .nav-links a {
        font-size: 12px;
        white-space: nowrap;
    }

    /* ซ่อนเมนูที่ไม่จำเป็นบนมือถือ */
    .nav-hide-mobile { display: none !important; }

    /* แสดงเฉพาะยอดเงินคงเหลือ ซ่อนชื่อผู้ใช้ */
    .nav-user { text-align: right; font-size: 11px; }
    .nav-user__name { display: none; }
    .nav-user .balance { font-size: 13px; }

    /* ปุ่มออกจากระบบ */
    .logout-form .btn-link { font-size: 12px; }
}

@media (max-width: 480px) {
    .navbar { padding: 8px 10px; }
    .nav-links { gap: 6px; }
    .nav-links a { font-size: 11px; }
    .brand-text { font-size: 13px; }
}

/* ====================================================================
   Admin Responsive Refinements (Mobile / Tablet)
   ──────────────────────────────────────────────────────────────────────
   - ทุก .data-table ใน .table-wrap เปลี่ยนเป็น card mode อัตโนมัติ <720px
     (data-label ถูก inject ด้วย JS auto-labeler ใน admin sidebar partial)
   - opt-out ใส่ class .no-cards บนตัว .data-table
   - ปรับ header, filter-bar, pagination, kpi, action-row, grid ต่าง ๆ
   ==================================================================== */

/* ── Dashboard / Detail grid: ปรับ breakpoint สำหรับ tablet ── */
@media (max-width: 960px) {
    .dashboard-grid {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 900px) {
    .detail-grid { grid-template-columns: 1fr; }
    .kpi-grid { grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); }
}

/* ── Admin header: stack on mobile, smaller h1 ── */
@media (max-width: 720px) {
    .admin-header {
        gap: 8px;
    }
    .admin-header h1 { font-size: 18px; }
    .admin-header .btn-primary,
    .admin-header .btn-secondary,
    .admin-header .btn-link {
        font-size: 13px;
        padding: 6px 10px;
    }
}

/* ── KPI cards: ลด font บนจอเล็ก ── */
@media (max-width: 720px) {
    .kpi-card {
        padding: 14px 14px;
    }
    .kpi-value { font-size: 20px; }
    .kpi-label { font-size: 11px; }
    .kpi-sub { font-size: 11px; }
}

/* ── Filter bar: input ไม่ overflow บนจอจิ๋ว ── */
@media (max-width: 720px) {
    .filter-bar {
        padding: 10px;
        gap: 6px;
    }
    .filter-bar input,
    .filter-bar select,
    .filter-bar button,
    .filter-bar .btn-link,
    .filter-bar .btn-secondary,
    .filter-bar .btn-primary {
        flex: 1 1 100%;
        min-width: 0;
        width: 100%;
    }
    .filter-bar input[type="text"] {
        flex: 1 1 100%;
        min-width: 0;
    }
}

/* ── Pagination: stack ── */
@media (max-width: 540px) {
    .pagination {
        flex-direction: column;
        align-items: stretch;
        text-align: center;
    }
    .pagination-buttons {
        justify-content: center;
        flex-wrap: wrap;
    }
}

/* ── Action row (ปุ่ม actions ในหน้า detail): wrap แต่ละปุ่มเต็มแถวบนมือถือ ── */
@media (max-width: 540px) {
    .action-row {
        flex-direction: column;
        align-items: stretch;
    }
    .action-row form,
    .action-row .btn-primary,
    .action-row .btn-secondary {
        width: 100%;
    }
    .action-row button {
        width: 100%;
    }
}

/* ── Audit details overflow ── */
@media (max-width: 720px) {
    .audit-details {
        max-width: 100%;
        font-size: 11px;
    }
}

/* ── Wallet card values ลดขนาดบนจอเล็ก ── */
@media (max-width: 480px) {
    .wallet-card-value { font-size: 24px; }
    .wallet-card { padding: 18px; }
}

/* =========================================
   WALLET QUICK CARD — แสดงยอดเงิน + ปุ่มฝาก/ถอนด่วน
   ใช้ที่หน้า lobby (และหน้าอื่น ๆ ที่ต้องการ)
   ========================================= */
.wallet-quick {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    background: linear-gradient(135deg, #1f2c4a 0%, #16213e 100%);
    border: 1px solid var(--primary);
    border-radius: 14px;
    padding: 18px 22px;
    margin-bottom: 20px;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25);
}
.wallet-quick__info {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}
.wallet-quick__balances {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 20px 28px;
}
.wallet-quick__balance-item {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.wallet-quick__value--diamonds {
    color: #c4b5fd;
    font-size: 22px;
}
.wallet-quick__label {
    color: var(--muted);
    font-size: 13px;
    font-weight: 500;
}
.wallet-quick__value {
    font-size: 28px;
    font-weight: 800;
    color: var(--success);
    letter-spacing: -0.5px;
    line-height: 1.1;
}
.wallet-quick__actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}
.wallet-quick__btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 10px 18px;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
    transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}
.wallet-quick__btn:hover {
    transform: translateY(-1px);
}
.wallet-quick__btn--withdraw {
    background: rgba(255, 255, 255, 0.06);
    color: #fff;
    border: 1px solid var(--border);
}
.wallet-quick__btn--withdraw:hover {
    background: rgba(255, 255, 255, 0.12);
    border-color: var(--primary);
}
.wallet-quick__btn-icon {
    font-size: 16px;
    line-height: 1;
}

@media (max-width: 600px) {
    .wallet-quick {
        padding: 14px 16px;
        gap: 12px;
    }
    .wallet-quick__value { font-size: 24px; }
    .wallet-quick__label { font-size: 12px; }
    .wallet-quick__actions {
        width: 100%;
    }
    .wallet-quick__btn {
        flex: 1;
        justify-content: center;
        padding: 10px 12px;
        font-size: 13px;
    }
}

/* =========================================
   FLOATING LUCKY SPIN (FAB) + OVERLAY MODAL
   ========================================= */
.float-spin {
    position: fixed;
    bottom: 22px;
    right: 22px;
    z-index: 40;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 12px 18px 12px 12px;
    border-radius: 999px;
    border: none;
    cursor: pointer;
    background: linear-gradient(135deg, #f59e0b, #ef4444 70%, #ec4899);
    color: #fff;
    font-weight: 700;
    box-shadow: 0 18px 38px -10px rgba(239, 68, 68, .55), 0 0 0 1px rgba(255,255,255,.08) inset;
    transition: transform .2s ease, box-shadow .2s ease;
}
.float-spin:hover {
    transform: translateY(-3px);
    box-shadow: 0 24px 48px -10px rgba(239, 68, 68, .7), 0 0 0 1px rgba(255,255,255,.12) inset;
}
.float-spin:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 3px;
}
.float-spin__wheel {
    width: 36px; height: 36px;
    border-radius: 50%;
    background: rgba(255,255,255,.18);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    animation: spinIcon 6s linear infinite;
}
@keyframes spinIcon {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}
.float-spin__text { font-size: 14px; letter-spacing: .2px; }
.float-spin__pulse {
    position: absolute;
    top: 6px;
    right: 8px;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #fde68a;
    box-shadow: 0 0 0 0 rgba(253, 230, 138, .8);
    animation: chatPulse 1.6s infinite;
}
@media (max-width: 600px) {
    .float-spin { padding: 10px; bottom: 16px; right: 16px; }
    .float-spin__text { display: none; }
    .float-spin__wheel { width: 32px; height: 32px; font-size: 18px; }
}

/* ---- Overlay (Backdrop + Panel) ---- */
.spin-overlay {
    position: fixed;
    inset: 0;
    z-index: 100;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    opacity: 0;
    pointer-events: none;
    transition: opacity .22s ease;
}
.spin-overlay.is-open {
    opacity: 1;
    pointer-events: auto;
}
.spin-overlay[hidden] { display: none; }

.spin-overlay__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(7, 12, 24, .72);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
}

.spin-overlay__panel {
    position: relative;
    width: min(960px, 100%);
    max-height: calc(100vh - 48px);
    overflow-y: auto;
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: 16px;
    box-shadow: 0 30px 80px -20px rgba(0,0,0,.7);
    transform: translateY(12px) scale(.98);
    transition: transform .22s ease;
}
.spin-overlay.is-open .spin-overlay__panel {
    transform: translateY(0) scale(1);
}

.spin-overlay__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    border-bottom: 1px solid var(--border);
    background: linear-gradient(180deg, rgba(245, 158, 11, .08), transparent);
    border-radius: 16px 16px 0 0;
}
.spin-overlay__header h2 {
    margin: 0;
    font-size: 20px;
    color: #fff;
}
.spin-overlay__close {
    background: rgba(255,255,255,.06);
    border: 1px solid var(--border);
    color: #fff;
    width: 36px;
    height: 36px;
    border-radius: 10px;
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
    transition: background .15s ease, transform .1s ease;
}
.spin-overlay__close:hover {
    background: rgba(239, 68, 68, .25);
    border-color: #ef4444;
}
.spin-overlay__close:active { transform: scale(.95); }

.spin-overlay__body {
    display: grid;
    grid-template-columns: 1.1fr 1fr;
    gap: 24px;
    padding: 22px;
}
@media (max-width: 760px) {
    .spin-overlay__body { grid-template-columns: 1fr; gap: 18px; padding: 16px; }
    .spin-overlay__panel { max-height: calc(100vh - 24px); }
    .spin-overlay { padding: 12px; }
}

.spin-overlay__more {
    display: inline-block;
    margin-top: 4px;
    font-size: 13px;
    text-decoration: none;
}
.spin-overlay__more:hover { color: var(--primary); }

/* ── ทำให้ทุก .data-table auto-card บนมือถือ
       (ครอบคลุมทั้ง .table-wrap-wrapped และที่อยู่ตรง ๆ ใน .panel/.dashboard-grid)
       opt-out ด้วย .data-table.no-cards
       ── */
@media (max-width: 720px) {
    .table-wrap {
        overflow-x: visible;
        background: transparent;
        border: none;
        border-radius: 0;
    }
    .data-table:not(.no-cards) {
        display: block;
        font-size: 13px;
        width: 100%;
    }
    .data-table:not(.no-cards) thead {
        display: none;
    }
    .data-table:not(.no-cards) tbody { display: block; }
    .data-table:not(.no-cards) tbody tr {
        display: block;
        margin-bottom: 12px;
        border: 1px solid var(--border);
        border-radius: 10px;
        background: var(--panel);
        padding: 4px 0;
    }
    .data-table:not(.no-cards) tbody tr:hover {
        background: var(--panel);
    }
    .data-table:not(.no-cards) tbody td {
        display: flex;
        justify-content: space-between;
        align-items: flex-start;
        gap: 12px;
        padding: 8px 14px;
        border-bottom: 1px dashed rgba(148, 163, 184, .14);
        white-space: normal;
        text-align: right;
        word-break: break-word;
    }
    .data-table:not(.no-cards) tbody td:last-child {
        border-bottom: none;
    }
    .data-table:not(.no-cards) tbody td::before {
        content: attr(data-label);
        font-weight: 600;
        color: var(--muted);
        font-size: 11px;
        text-transform: uppercase;
        letter-spacing: .04em;
        text-align: left;
        flex: 0 0 auto;
        min-width: 92px;
    }
    /* ถ้าไม่มี data-label (เช่น colspan=N สำหรับ empty state) ให้ซ่อน ::before */
    .data-table:not(.no-cards) tbody td:not([data-label])::before {
        content: '';
        min-width: 0;
    }
    .data-table:not(.no-cards) tbody td.text-right {
        text-align: right;
    }
    /* Empty state row (colspan) ให้แสดงข้อความตรงกลาง ไม่ใช่ flex layout */
    .data-table:not(.no-cards) tbody tr td[colspan] {
        display: block;
        text-align: center;
        padding: 16px;
        border-bottom: none;
    }
}

/* ── สำรอง: ถ้ามีตารางที่ตั้งใจให้ scroll แนวนอนแทน card (เช่นตารางตัวเลขล้วน)
       ใส่ class .no-cards บน <table> + คง overflow-x ของ .table-wrap ── */
@media (max-width: 720px) {
    .table-wrap:has(.data-table.no-cards) {
        overflow-x: auto;
        background: var(--panel);
        border: 1px solid var(--border);
        border-radius: 12px;
    }
}

/* ── Admin main: ลด padding ลงอีกบนจอจิ๋ว ── */
@media (max-width: 480px) {
    .admin-main { padding: 60px 12px 20px; }
    .panel { padding: 14px; }
    .panel h2 { font-size: 16px; }
}

/* ── auth-form inputs ใน detail: เต็มความกว้างเสมอ ── */
@media (max-width: 720px) {
    .adjustment-grid {
        grid-template-columns: 1fr;
    }
    .panel .auth-form label {
        display: block;
    }
    .panel .auth-form input,
    .panel .auth-form select,
    .panel .auth-form textarea {
        width: 100%;
        box-sizing: border-box;
    }
    .panel .auth-form button[type="submit"] {
        width: 100%;
    }
}

/* ── Login page (admin) ── */
@media (max-width: 480px) {
    .auth-card {
        padding: 24px 20px;
    }
}

/* =============================================================
   MEMBER HOME — AMB sample shell
   โครงหน้าแรกให้ใกล้กับตัวอย่าง casino_amb: desktop sidebar/topbar + mobile nav
============================================================= */
.amb-sidebar.desktop-only,
.amb-desktop-header.desktop-only,
.amb-mobile-topnav.mobile-only,
.amb-mobile-bottomnav.mobile-only {
    display: none;
}

body:has(.amb-home-shell) {
    background: #08091a;
}

.amb-home-shell {
    min-height: 100vh;
    background:
        radial-gradient(900px 520px at 18% 0%, rgba(108, 61, 232, .22), transparent 62%),
        radial-gradient(780px 520px at 100% 8%, rgba(34, 211, 238, .12), transparent 58%),
        linear-gradient(180deg, #08091a 0%, #0b0d22 52%, #08091a 100%);
}

.amb-logo-icon,
.amb-logo-img {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    background: linear-gradient(135deg, #6c3de8, #4f46e5);
    box-shadow: 0 0 16px rgba(108, 61, 232, .35);
}

.amb-logo-img {
    padding: 4px;
    background: rgba(255, 255, 255, .07);
    border: 1px solid rgba(255, 255, 255, .09);
}

.amb-logo-img img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

@media (min-width: 900px) {
    .amb-sidebar.desktop-only,
    .amb-desktop-header.desktop-only {
        display: flex;
    }

    .amb-sidebar {
        position: fixed;
        inset: 0 auto 0 0;
        z-index: 100;
        width: 240px;
        flex-direction: column;
        background: var(--member-sidebar-bg, #0c0e20);
        border-right: 1px solid var(--member-sidebar-border, rgba(255, 255, 255, .07));
        overflow-y: auto;
    }

    .amb-sidebar-logo {
        display: flex;
        align-items: center;
        gap: 10px;
        padding: 18px 16px;
        color: var(--member-navbar-text, #fff);
        border-bottom: 1px solid var(--member-sidebar-border, rgba(255, 255, 255, .07));
        text-decoration: none;
    }

    .amb-sidebar-logo:hover { text-decoration: none; }

    .amb-logo-text {
        min-width: 0;
        font-size: 16px;
        font-weight: 900;
        letter-spacing: .5px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .amb-user-card {
        display: flex;
        flex-direction: column;
        gap: 0;
        margin: 8px;
        padding: 8px;
        border-radius: 10px;
        background: linear-gradient(135deg, color-mix(in srgb, var(--member-sidebar-active, #6c3de8) 18%, transparent), color-mix(in srgb, var(--member-sidebar-bg, #0c0e20) 80%, transparent));
        border: 1px solid color-mix(in srgb, var(--member-sidebar-active, #6c3de8) 32%, transparent);
    }

    .amb-user-top {
        display: flex;
        align-items: center;
        gap: 6px;
        margin-bottom: 6px;
    }

    .amb-avatar,
    .amb-header-avatar {
        width: 36px;
        height: 36px;
        border-radius: 50%;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        background: linear-gradient(135deg, var(--member-sidebar-active, #6c3de8), var(--member-sidebar-bg, #0c0e20));
        border: 2px solid color-mix(in srgb, var(--member-sidebar-active, #6c3de8) 58%, transparent);
    }

    .amb-username {
        font-size: 13px;
        font-weight: 800;
        color: #fff;
    }

    .amb-user-role {
        font-size: 10px;
        color: var(--member-sidebar-text, #8892a4);
        font-weight: 700;
    }

    .amb-balance-row {
        display: flex;
        justify-content: space-between;
        gap: 6px;
        padding: 4px 8px;
        border-radius: 0;
        background: rgba(0, 0, 0, .25);
        color: #8892a4;
        font-size: 10px;
        font-weight: 700;
    }

    .amb-user-top + .amb-balance-row {
        border-radius: 7px 7px 0 0;
    }

    .amb-balance-row:last-child {
        border-radius: 0 0 7px 7px;
    }

    .amb-balance-row strong {
        color: #10b981;
        font-size: 13px;
    }

    .amb-balance-row--muted strong {
        color: #c4b5fd;
    }

    .amb-sidebar-nav {
        flex: 1;
        padding: 8px 8px 0;
    }

    .amb-nav-label {
        padding: 12px 8px 4px;
        color: color-mix(in srgb, var(--member-sidebar-text, #8892a4) 68%, #000);
        font-size: 9px;
        font-weight: 800;
        letter-spacing: 1.5px;
        text-transform: uppercase;
    }

    .amb-nav-link {
        display: flex;
        align-items: center;
        gap: 10px;
        width: 100%;
        margin-bottom: 2px;
        padding: 9px 10px;
        border-radius: 9px;
        color: var(--member-sidebar-text, #8892a4);
        font-size: 13px;
        font-weight: 700;
        text-decoration: none;
        transition: background .15s, color .15s;
    }

    .amb-nav-link:hover {
        background: color-mix(in srgb, var(--member-sidebar-active, #6c3de8) 14%, transparent);
        color: var(--member-navbar-text, #fff);
        text-decoration: none;
    }

    .amb-nav-link.active {
        padding-left: 7px;
        color: var(--member-navbar-text, #fff);
        background: linear-gradient(90deg, color-mix(in srgb, var(--member-sidebar-active, #6c3de8) 32%, transparent), color-mix(in srgb, var(--member-sidebar-active, #6c3de8) 10%, transparent));
        border-left: 3px solid var(--member-sidebar-active, #6c3de8);
    }

    .amb-logout-form {
        margin: 0;
    }

    .amb-nav-button {
        border: 0;
        background: transparent;
        font: inherit;
        cursor: pointer;
    }

    .amb-sidebar-promo {
        margin: 12px;
        padding: 14px;
        text-align: center;
        border-radius: 12px;
        background: linear-gradient(135deg, var(--member-sidebar-active, #6c3de8), var(--member-sidebar-bg, #0c0e20));
        border: 1px solid color-mix(in srgb, var(--member-sidebar-active, #6c3de8) 38%, transparent);
    }

    .amb-sidebar-promo-title {
        margin-bottom: 4px;
        color: #fff;
        font-size: 14px;
        font-weight: 900;
        line-height: 1.3;
    }

    .amb-sidebar-promo-sub {
        margin-bottom: 10px;
        color: rgba(255, 255, 255, .55);
        font-size: 10px;
    }

    .amb-sidebar-promo a {
        display: block;
        padding: 8px;
        border-radius: 20px;
        background: linear-gradient(90deg, var(--primary), var(--member-navbar-active, var(--primary-2)));
        color: #1a0900;
        font-size: 12px;
        font-weight: 900;
        text-decoration: none;
        box-shadow: 0 3px 12px rgba(245, 158, 11, .4);
    }

    .amb-desktop-header {
        position: fixed;
        top: 0;
        right: 0;
        left: 240px;
        z-index: 90;
        height: 60px;
        align-items: center;
        justify-content: space-between;
        gap: 18px;
        padding: 0 24px;
        background: color-mix(in srgb, var(--member-navbar-bg, #08091a) 92%, transparent);
        border-bottom: 1px solid var(--member-sidebar-border, rgba(255, 255, 255, .07));
        backdrop-filter: blur(20px);
    }

    .amb-breadcrumb {
        color: #8892a4;
        font-size: 13px;
        font-weight: 600;
    }

    .amb-breadcrumb strong {
        color: #fff;
    }

    .amb-header-search {
        position: relative;
        width: min(360px, 34vw);
    }

    .amb-header-search span {
        position: absolute;
        left: 12px;
        top: 50%;
        transform: translateY(-50%);
        color: #5a6175;
        font-size: 13px;
        pointer-events: none;
    }

    .amb-header-search input {
        width: 100%;
        border: 1px solid var(--member-sidebar-border, rgba(255, 255, 255, .07));
        border-radius: 20px;
        outline: none;
        padding: 8px 14px 8px 36px;
        background: color-mix(in srgb, var(--member-navbar-text, #fff) 7%, transparent);
        color: var(--member-navbar-text, #fff);
        font-size: 13px;
    }

    .amb-header-search input:focus {
        border-color: color-mix(in srgb, var(--member-sidebar-active, #6c3de8) 58%, transparent);
        background: color-mix(in srgb, var(--member-sidebar-active, #6c3de8) 12%, transparent);
    }

    .amb-header-actions {
        display: flex;
        align-items: center;
        gap: 10px;
    }

    .amb-header-balance {
        border: 1px solid var(--member-sidebar-border, rgba(255, 255, 255, .07));
        border-radius: 20px;
        padding: 6px 14px;
        background: color-mix(in srgb, var(--member-navbar-text, #fff) 7%, transparent);
        color: #10b981;
        font-size: 13px;
        font-weight: 800;
    }

    .amb-deposit-btn,
    .amb-header-login {
        border-radius: 20px;
        padding: 7px 20px;
        font-size: 13px;
        font-weight: 800;
        text-decoration: none;
    }

    .amb-deposit-btn {
        color: #fff;
        background: linear-gradient(135deg, var(--member-sidebar-active, #6c3de8), var(--primary-2));
        box-shadow: 0 4px 14px color-mix(in srgb, var(--member-sidebar-active, #6c3de8) 38%, transparent);
    }

    .amb-header-login {
        color: color-mix(in srgb, var(--member-navbar-text, #fff) 82%, transparent);
    }

    .amb-deposit-btn:hover,
    .amb-header-login:hover,
    .amb-header-avatar:hover {
        text-decoration: none;
        filter: brightness(1.08);
    }

    .amb-home-shell {
        margin-left: 240px;
        padding-top: 60px;
    }

    .amb-home-shell .hero-section,
    .amb-home-shell .zone,
    .amb-home-shell .stats-strip,
    .amb-home-shell .quick-banner-zone,
    .amb-home-shell .chips-section,
    .amb-home-shell .footer-inner,
    .amb-home-shell .footer-base {
        max-width: 1100px;
    }

    .amb-home-shell .hero-section {
        padding-top: 24px;
    }

    .amb-home-shell .hero-card,
    .amb-home-shell .hero-side,
    .amb-home-shell .wins-table,
    .amb-home-shell .providers-strip,
    .amb-home-shell .seo-card,
    .amb-home-shell .faq-item,
    .amb-home-shell .trust-card {
        background-color: #141729;
        border-color: rgba(255, 255, 255, .07);
    }

    .amb-home-shell .site-footer {
        margin-left: 0;
    }
}

@media (max-width: 899px) {
    .amb-mobile-topnav.mobile-only,
    .amb-mobile-bottomnav.mobile-only {
        display: flex;
    }

    .amb-mobile-topnav {
        position: sticky;
        top: 0;
        z-index: 200;
        height: 58px;
        align-items: center;
        justify-content: space-between;
        gap: 8px;
        padding: 0 12px;
        background: color-mix(in srgb, var(--member-navbar-bg, #08091a) 94%, transparent);
        border-bottom: 1px solid var(--member-sidebar-border, rgba(255, 255, 255, .07));
        backdrop-filter: blur(20px);
    }

    .amb-mobile-logo {
        display: flex;
        align-items: center;
        gap: 8px;
        min-width: 0;
        color: var(--member-navbar-text, #fff);
        font-size: 14px;
        font-weight: 900;
        letter-spacing: .5px;
        text-decoration: none;
    }

    .amb-mobile-logo span:last-child {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .amb-mobile-logo:hover {
        text-decoration: none;
    }

    .amb-mobile-actions {
        display: flex;
        align-items: center;
        gap: 7px;
        flex-shrink: 0;
    }

    .amb-mobile-balance {
        border: 1px solid var(--member-sidebar-border, rgba(255, 255, 255, .07));
        border-radius: 20px;
        padding: 4px 10px;
        background: color-mix(in srgb, var(--member-navbar-text, #fff) 8%, transparent);
        color: #10b981;
        font-size: 12px;
        font-weight: 800;
    }

    .amb-mobile-deposit {
        border-radius: 18px;
        padding: 6px 14px;
        color: #fff;
        background: linear-gradient(135deg, var(--member-sidebar-active, #6c3de8), var(--primary-2));
        box-shadow: 0 3px 12px color-mix(in srgb, var(--member-sidebar-active, #6c3de8) 38%, transparent);
        font-size: 12px;
        font-weight: 800;
        text-decoration: none;
    }

    .amb-mobile-deposit:hover {
        text-decoration: none;
    }

    .amb-home-shell {
        max-width: 480px;
        margin: 0 auto;
        padding-bottom: calc(62px + env(safe-area-inset-bottom, 0px) + 12px);
        box-shadow: 0 0 60px rgba(108, 61, 232, .1);
    }

    .amb-home-shell .hero-section {
        padding: 14px 10px 16px;
    }

    .amb-home-shell .hero-card {
        border-radius: 18px;
        padding: 24px 18px;
        min-height: auto;
    }

    .amb-home-shell .hero-title {
        font-size: clamp(30px, 11vw, 42px);
    }

    .amb-home-shell .hero-side {
        display: none;
    }

    .amb-home-shell .stats-strip,
    .amb-home-shell .quick-banner-zone,
    .amb-home-shell .chips-section,
    .amb-home-shell .zone {
        padding-left: 10px;
        padding-right: 10px;
    }

    .amb-home-shell .quick-banner-grid {
        width: 100%;
    }

    .amb-home-shell .quick-banner {
        min-width: 0;
        max-width: 100%;
    }

    .amb-home-shell .quick-banner__body small {
        max-width: none;
    }

    .amb-home-shell .chips-row {
        flex-wrap: wrap;
        overflow-x: visible;
        padding-bottom: 0;
    }

    .amb-home-shell .chip {
        flex: 1 1 auto;
        justify-content: center;
        padding: 10px 12px;
        font-size: 13px;
    }

    .amb-home-shell .topcat-grid,
    .amb-home-shell .trust-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
    }

    .amb-home-shell .game-row {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 8px;
    }

    .amb-home-shell .game-tile {
        border-radius: 12px;
    }

    .amb-home-shell .game-tile__body {
        padding: 8px;
    }

    .amb-home-shell .game-tile__name {
        font-size: 12px;
    }

    .amb-home-shell .promo-grid {
        grid-template-columns: 1fr;
    }

    .amb-home-shell .site-footer {
        margin-bottom: calc(62px + env(safe-area-inset-bottom, 0px));
    }

    .amb-mobile-bottomnav {
        position: fixed;
        bottom: calc(12px + env(safe-area-inset-bottom, 0px));
        left: 50%;
        transform: translateX(-50%);
        z-index: 220;
        width: min(480px, calc(100% - 32px));
        max-width: 480px;
        height: 64px;
        padding-bottom: 0;
        align-items: stretch;
        background: color-mix(in srgb, var(--member-sidebar-bg, #08091a) 96%, transparent);
        border: 1px solid var(--member-sidebar-border, rgba(255, 255, 255, .07));
        border-radius: 18px;
        box-shadow: 0 18px 44px rgba(0, 0, 0, .42);
        backdrop-filter: blur(20px);
    }

    .amb-bnav-item {
        flex: 1;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 3px;
        color: var(--member-sidebar-text, #8892a4);
        font-size: 9px;
        font-weight: 700;
        text-decoration: none;
    }

    .amb-bnav-item:hover {
        color: color-mix(in srgb, var(--member-navbar-text, #fff) 82%, transparent);
        text-decoration: none;
    }

    .amb-bnav-item.active {
        color: var(--member-navbar-active, #22d3ee);
    }

    .amb-bnav-icon {
        font-size: 18px;
        line-height: 1;
    }

    .amb-bnav-home {
        width: 44px;
        height: 44px;
        margin-top: -18px;
        border-radius: 14px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        background: linear-gradient(135deg, var(--member-sidebar-active, #6c3de8), var(--primary-2));
        box-shadow: 0 0 18px color-mix(in srgb, var(--member-sidebar-active, #6c3de8) 38%, transparent);
        color: #fff;
        font-size: 20px;
    }

    .float-chat {
        bottom: calc(96px + env(safe-area-inset-bottom, 0px));
    }
}

@media (max-width: 420px) {
    .amb-home-shell .game-row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .amb-mobile-balance {
        display: none;
    }
}

/* =============================================================
   MEMBER LOBBY — AMB listgame-inspired shell
============================================================= */
body:has(.amb-lobby-shell) {
    background: var(--bg);
}

.amb-user-shell {
    display: none;
}

body:has(.amb-user-shell) {
    background:
        radial-gradient(900px 520px at 18% 0%, rgba(108, 61, 232, .18), transparent 62%),
        radial-gradient(780px 520px at 100% 8%, rgba(34, 211, 238, .10), transparent 58%),
        linear-gradient(180deg, #08091a 0%, #0b0d22 52%, #08091a 100%);
}

.amb-lobby-shell {
    min-height: 100vh;
    background:
        radial-gradient(900px 520px at 18% 0%, rgba(108, 61, 232, .18), transparent 62%),
        radial-gradient(780px 520px at 100% 8%, rgba(34, 211, 238, .10), transparent 58%),
        linear-gradient(180deg, #08091a 0%, #0b0d22 52%, #08091a 100%);
    color: #fff;
}

.amb-lobby-hero,
.amb-lobby-quick-grid,
.amb-lobby-section {
    width: min(1100px, calc(100% - 56px));
    margin: 0 auto;
}

.amb-lobby-carousel {
    position: relative;
    overflow: hidden;
    border-radius: 20px;
}

.amb-lobby-track {
    display: flex;
    transition: transform .55s cubic-bezier(.77, 0, .18, 1);
    will-change: transform;
}

.amb-lobby-slide {
    position: relative;
    min-width: 100%;
    min-height: 220px;
    display: flex;
    align-items: center;
    gap: 38px;
    padding: 40px 48px;
    overflow: hidden;
    border: 1px solid rgba(108, 61, 232, .30);
    border-radius: 20px;
}

.amb-lobby-slide::before,
.amb-lobby-slide::after {
    content: "";
    position: absolute;
    border-radius: 999px;
    filter: blur(70px);
    pointer-events: none;
}

.amb-lobby-slide::before {
    width: 300px;
    height: 300px;
    top: -80px;
    right: -60px;
    background: rgba(108, 61, 232, .50);
}

.amb-lobby-slide::after {
    width: 200px;
    height: 200px;
    bottom: -80px;
    left: 30%;
    background: rgba(34, 211, 238, .30);
}

.amb-lobby-slide--purple {
    background: linear-gradient(120deg, #1a0a3a 0%, #0f1968 55%, #0a1a40 100%);
}

.amb-lobby-slide--gold {
    border-color: rgba(245, 158, 11, .30);
    background: linear-gradient(120deg, #1a0800 0%, #3d1500 55%, #1a0500 100%);
}

.amb-lobby-slide--green {
    border-color: rgba(16, 185, 129, .30);
    background: linear-gradient(120deg, #001a0a 0%, #003d1a 55%, #001800 100%);
}

.amb-lobby-grid {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(255, 255, 255, .04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, .04) 1px, transparent 1px);
    background-size: 36px 36px;
    pointer-events: none;
}

.amb-lobby-slide-text {
    position: relative;
    z-index: 2;
    flex: 1;
    min-width: 0;
}

.amb-lobby-eyebrow {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 8px;
    color: #22d3ee;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 2px;
    text-transform: uppercase;
}

.amb-lobby-eyebrow::before {
    content: "";
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: currentColor;
    animation: blink 2s ease-in-out infinite;
}

.amb-lobby-slide h1 {
    margin: 0 0 8px;
    font-size: clamp(1.8rem, 3vw, 2.5rem);
    font-weight: 900;
    line-height: 1.2;
}

.amb-lobby-slide h1 em {
    font-style: normal;
    background: linear-gradient(90deg, #f59e0b, #fb923c);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

.amb-lobby-slide p {
    max-width: 430px;
    margin: 0 0 16px;
    color: rgba(255, 255, 255, .56);
    font-size: 14px;
    line-height: 1.55;
}

.amb-lobby-cta {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 11px 28px;
    border-radius: 25px;
    background: linear-gradient(90deg, #f59e0b, #fb923c);
    color: #1a0800;
    font-size: 14px;
    font-weight: 900;
    letter-spacing: .4px;
    text-decoration: none;
    box-shadow: 0 5px 18px rgba(245, 158, 11, .45);
    transition: transform .15s, box-shadow .15s;
}

.amb-lobby-cta:hover {
    transform: translateY(-2px);
    color: #1a0800;
    text-decoration: none;
    box-shadow: 0 8px 26px rgba(245, 158, 11, .60);
}

.amb-lobby-cta--green {
    background: linear-gradient(90deg, #10b981, #22d3ee);
    color: #001a0a;
}

.amb-lobby-stats {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    gap: 12px;
    flex: 0 0 140px;
}

.amb-lobby-stats div {
    min-width: 140px;
    padding: 12px 20px;
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 14px;
    background: rgba(0, 0, 0, .30);
    text-align: center;
    backdrop-filter: blur(10px);
}

.amb-lobby-stats strong {
    display: block;
    font-size: 1.4rem;
    font-weight: 900;
    background: linear-gradient(135deg, #fff, rgba(168, 85, 247, .8));
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

.amb-lobby-stats strong.green { color: #10b981; background: none; -webkit-text-fill-color: currentColor; }
.amb-lobby-stats strong.gold { color: #f59e0b; background: none; -webkit-text-fill-color: currentColor; }
.amb-lobby-stats strong.cyan { color: #22d3ee; background: none; -webkit-text-fill-color: currentColor; }

.amb-lobby-stats span {
    display: block;
    margin-top: 2px;
    color: #8892a4;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .5px;
    text-transform: uppercase;
}

.amb-lobby-mascot {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 42%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 90px;
    filter: drop-shadow(0 0 24px rgba(108, 61, 232, .60));
    pointer-events: none;
}

.amb-lobby-arrow {
    position: absolute;
    top: 50%;
    z-index: 5;
    width: 38px;
    height: 38px;
    border: 0;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, .35);
    color: #fff;
    cursor: pointer;
    font-size: 20px;
    line-height: 1;
    transform: translateY(-50%);
    backdrop-filter: blur(6px);
    transition: background .2s, transform .15s;
}

.amb-lobby-arrow:hover {
    background: rgba(108, 61, 232, .70);
}

.amb-lobby-arrow--prev { left: 12px; }
.amb-lobby-arrow--next { right: 12px; }

.amb-lobby-dots {
    position: absolute;
    bottom: 10px;
    left: 50%;
    z-index: 5;
    display: flex;
    gap: 6px;
    transform: translateX(-50%);
}

.amb-lobby-dots button {
    width: 6px;
    height: 6px;
    padding: 0;
    border: 0;
    border-radius: 3px;
    background: rgba(255, 255, 255, .30);
    cursor: pointer;
    transition: width .3s, background .3s;
}

.amb-lobby-dots button.is-active {
    width: 20px;
    background: #fff;
}

.amb-lobby-quick-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.amb-lobby-quick-card,
.amb-lobby-quick-grid .quick-banner {
    position: relative;
    min-height: 100px;
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 20px 50px 20px 22px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .07);
    border-radius: 16px;
    color: #fff;
    text-align: left;
    text-decoration: none;
    box-shadow: none;
    transition: transform .22s cubic-bezier(.34, 1.56, .64, 1), box-shadow .22s;
}

button.amb-lobby-quick-card {
    width: 100%;
    border: 1px solid rgba(255, 255, 255, .07);
    cursor: pointer;
    font: inherit;
}

.amb-lobby-quick-card:hover,
.amb-lobby-quick-grid .quick-banner:hover {
    transform: translateY(-4px) scale(1.015);
    color: #fff;
    text-decoration: none;
    box-shadow: 0 18px 40px rgba(0, 0, 0, .45);
}

.amb-lobby-quick-card--spin {
    background: linear-gradient(135deg, #1e0a40 0%, #2d1060 50%, #1a0a38 100%);
}

.amb-lobby-quick-card--coupon {
    background: linear-gradient(135deg, #1a0800 0%, #3d1a00 50%, #1a0900 100%);
}

.amb-lobby-quick-icon,
.amb-lobby-quick-grid .quick-banner__icon {
    position: relative;
    z-index: 1;
    width: 56px;
    height: 56px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    background: linear-gradient(135deg, #7c3aed, #4f46e5);
    box-shadow: 0 4px 20px rgba(124, 58, 237, .60);
    font-size: 28px;
}

.amb-lobby-quick-card--coupon .amb-lobby-quick-icon {
    background: linear-gradient(135deg, #f59e0b, #fb923c);
    box-shadow: 0 4px 20px rgba(245, 158, 11, .60);
}

.amb-coupon-open {
    overflow: hidden;
}

.amb-coupon-modal {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: grid;
    place-items: center;
    padding: 20px;
}

.amb-coupon-modal[hidden] {
    display: none;
}

.amb-coupon-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(3, 7, 18, .72);
    backdrop-filter: blur(10px);
}

.amb-coupon-dialog {
    position: relative;
    z-index: 1;
    width: min(440px, 100%);
    padding: 28px;
    border: 1px solid rgba(251, 191, 36, .28);
    border-radius: 24px;
    background:
        radial-gradient(circle at top left, rgba(245, 158, 11, .28), transparent 36%),
        linear-gradient(145deg, rgba(30, 12, 3, .98), rgba(17, 24, 39, .98));
    box-shadow: 0 28px 80px rgba(0, 0, 0, .62);
    color: #fff;
    text-align: center;
}

.amb-coupon-close {
    position: absolute;
    top: 12px;
    right: 12px;
    width: 34px;
    height: 34px;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 999px;
    background: rgba(255, 255, 255, .08);
    color: #f8fafc;
    cursor: pointer;
    font-size: 22px;
    line-height: 1;
}

.amb-coupon-icon {
    width: 64px;
    height: 64px;
    margin: 0 auto 12px;
    display: grid;
    place-items: center;
    border-radius: 20px;
    background: linear-gradient(135deg, #f59e0b, #fb7185);
    box-shadow: 0 18px 44px rgba(245, 158, 11, .35);
    font-size: 32px;
}

.amb-coupon-kicker {
    margin: 0 0 6px;
    color: #fbbf24;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .16em;
}

.amb-coupon-dialog h2 {
    margin: 0;
    color: #fff;
    font-size: 24px;
}

.amb-coupon-desc {
    margin: 10px 0 20px;
    color: #cbd5e1;
    font-size: 14px;
    line-height: 1.6;
}

.amb-coupon-form {
    display: grid;
    gap: 10px;
    text-align: left;
}

.amb-coupon-form label {
    color: #fde68a;
    font-size: 13px;
    font-weight: 800;
}

.amb-coupon-form input {
    width: 100%;
    min-height: 48px;
    padding: 0 14px;
    border: 1px solid rgba(255, 255, 255, .16);
    border-radius: 14px;
    outline: none;
    background: rgba(15, 23, 42, .86);
    color: #fff;
    font-size: 16px;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.amb-coupon-form input:focus {
    border-color: rgba(251, 191, 36, .72);
    box-shadow: 0 0 0 4px rgba(251, 191, 36, .12);
}

.amb-coupon-submit {
    min-height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    border: 0;
    border-radius: 14px;
    background: linear-gradient(135deg, #f59e0b, #fb923c);
    color: #111827;
    cursor: pointer;
    font-weight: 950;
}

.amb-coupon-submit:disabled {
    cursor: wait;
    opacity: .72;
}

.amb-coupon-spinner {
    width: 16px;
    height: 16px;
    border: 2px solid rgba(17, 24, 39, .25);
    border-top-color: #111827;
    border-radius: 999px;
    animation: ambSpin .8s linear infinite;
}

@keyframes ambSpin {
    to {
        transform: rotate(360deg);
    }
}

.amb-coupon-msg {
    margin: 14px 0 0;
    padding: 11px 12px;
    border-radius: 14px;
    font-size: 13px;
    line-height: 1.5;
    text-align: left;
}

.amb-coupon-msg.is-info {
    background: rgba(59, 130, 246, .14);
    color: #bfdbfe;
}

.amb-coupon-msg.is-success {
    background: rgba(34, 197, 94, .14);
    color: #bbf7d0;
}

.amb-coupon-msg.is-error {
    background: rgba(239, 68, 68, .14);
    color: #fecaca;
}

.amb-lobby-quick-body,
.amb-lobby-quick-grid .quick-banner__body {
    position: relative;
    z-index: 1;
    min-width: 0;
    flex: 1;
}

.amb-lobby-quick-body strong,
.amb-lobby-quick-grid .quick-banner__body strong {
    display: block;
    margin-bottom: 4px;
    color: #fff;
    font-size: 16px;
    font-weight: 900;
    line-height: 1.2;
}

.amb-lobby-quick-body small,
.amb-lobby-quick-grid .quick-banner__body small {
    display: block;
    color: rgba(255, 255, 255, .55);
    font-size: 11px;
    font-weight: 500;
    line-height: 1.45;
}

.amb-lobby-quick-badge,
.amb-lobby-quick-grid .quick-banner__badge {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 2;
    padding: 2px 7px;
    border-radius: 8px;
    background: #ef4444;
    color: #fff;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .4px;
}

.amb-lobby-quick-card--coupon .amb-lobby-quick-badge,
.amb-lobby-quick-grid .quick-banner__badge--hot {
    background: #f59e0b;
    color: #1a0800;
}

.amb-lobby-quick-arrow,
.amb-lobby-quick-grid .quick-banner__arrow {
    position: relative;
    z-index: 1;
    color: rgba(255, 255, 255, .35);
    font-size: 22px;
}

.amb-lobby-member-grid {
    width: min(1100px, calc(100% - 56px));
    margin: 0 auto 24px;
    box-sizing: border-box;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    align-items: stretch;
}

.amb-lobby-member-panel {
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .07);
    border-radius: 18px;
    background:
        radial-gradient(circle at top right, rgba(108, 61, 232, .18), transparent 38%),
        #0f1125;
    box-shadow: 0 16px 34px rgba(0, 0, 0, .22);
    min-width: 0;
}

.amb-lobby-member-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 14px 10px;
    border-bottom: 1px solid rgba(255, 255, 255, .06);
}

.amb-lobby-member-head h2 {
    margin: 3px 0 0;
    color: #fff;
    font-size: 15px;
    font-weight: 900;
}

.amb-lobby-member-head > span {
    flex: 0 0 auto;
    padding: 3px 9px;
    border: 1px solid rgba(245, 158, 11, .28);
    border-radius: 999px;
    background: rgba(245, 158, 11, .10);
    color: #fcd34d;
    font-size: 11px;
    font-weight: 800;
}

.amb-lobby-member-kicker {
    color: #8b95a8;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 1px;
}

.amb-lobby-mini-games {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    padding: 12px;
}

.amb-lobby-mini-game {
    display: grid;
    grid-template-columns: 64px minmax(0, 1fr);
    gap: 10px;
    min-width: 0;
    padding: 7px;
    border: 1px solid rgba(255, 255, 255, .06);
    border-radius: 14px;
    background: rgba(255, 255, 255, .04);
    transition: transform .16s ease, border-color .16s ease, background .16s ease;
}

.amb-lobby-mini-game:hover {
    transform: translateY(-2px);
    border-color: rgba(245, 158, 11, .22);
    background: rgba(255, 255, 255, .065);
}

.amb-lobby-mini-img {
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    width: 64px;
    height: 64px;
    border-radius: 12px;
    background: linear-gradient(135deg, #141028, #0d1535);
    color: rgba(255, 255, 255, .42);
    text-decoration: none;
}

.amb-lobby-mini-img img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.amb-lobby-mini-body {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.amb-lobby-mini-body strong,
.amb-lobby-mini-body small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.amb-lobby-mini-body strong {
    color: #fff;
    font-size: 12px;
    font-weight: 900;
}

.amb-lobby-mini-body small {
    color: rgba(255, 255, 255, .54);
    font-size: 10px;
    font-weight: 700;
}

.amb-lobby-mini-play {
    align-self: flex-start;
    margin-top: auto;
    padding: 5px 10px;
    border: 0;
    border-radius: 999px;
    background: linear-gradient(90deg, #f59e0b, #fb923c);
    color: #1a0800;
    cursor: pointer;
    font: inherit;
    font-size: 11px;
    font-weight: 900;
    transition: transform .14s ease, opacity .14s ease;
}

.amb-lobby-mini-play:hover {
    transform: translateY(-1px);
}

.amb-lobby-mini-play:disabled {
    opacity: .7;
    cursor: progress;
}

.amb-lobby-member-empty {
    margin: 14px;
    min-height: 110px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    border: 1px dashed rgba(255, 255, 255, .12);
    border-radius: 14px;
    color: #8b95a8;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.5;
    text-align: center;
}

.amb-lobby-section-head {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 16px;
}

.amb-lobby-section-bar {
    width: 4px;
    height: 20px;
    border-radius: 2px;
    background: linear-gradient(180deg, #f59e0b, #fb923c);
}

.amb-lobby-section-head h2 {
    margin: 0;
    color: #fff;
    font-size: 18px;
    font-weight: 900;
}

.amb-lobby-count {
    margin-left: auto;
    padding: 3px 10px;
    border: 1px solid rgba(255, 255, 255, .07);
    border-radius: 10px;
    background: rgba(255, 255, 255, .05);
    color: #8892a4;
    font-size: 12px;
    font-weight: 700;
}

.amb-lobby-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 18px;
}

.amb-lobby-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 7px 14px;
    border: 1px solid rgba(255, 255, 255, .10);
    border-radius: 999px;
    background: rgba(20, 23, 41, .92);
    color: rgba(255, 255, 255, .78);
    cursor: pointer;
    font: inherit;
    font-size: 12px;
    font-weight: 700;
    white-space: nowrap;
    transition: background .2s, border-color .2s, color .2s, box-shadow .2s, transform .15s;
}

.amb-lobby-pill:hover,
.amb-lobby-pill.is-active {
    border-color: transparent;
    background: linear-gradient(90deg, #6c3de8, #4f46e5);
    color: #fff;
    box-shadow: 0 3px 14px rgba(108, 61, 232, .35);
}

/* ---- LOBBY: หวยรายวัน tab ---- */
.lotto-daily-section {
    padding: 4px 0 8px;
}
.lotto-daily-head {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 16px;
}
.lotto-daily-head__icon {
    font-size: 22px;
    line-height: 1;
}
.lotto-daily-head__title {
    margin: 0;
    font-size: 18px;
    font-weight: 800;
    color: #fff;
}
.lotto-daily-head__count {
    color: #94a3b8;
    font-weight: 600;
    font-size: 15px;
}
.lotto-daily-group {
    margin-bottom: 28px;
}
.lotto-daily-group:last-child {
    margin-bottom: 0;
}
.lotto-daily-group__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
    padding-bottom: 10px;
    border-bottom: 1px solid rgba(148, 163, 184, .16);
}
.lotto-daily-group__title {
    margin: 0;
    font-size: 16px;
    font-weight: 800;
    color: #fff;
    display: flex;
    align-items: center;
    gap: 10px;
}
.lotto-daily-group__title::before {
    content: '';
    display: inline-block;
    width: 4px;
    height: 18px;
    border-radius: 4px;
    background: linear-gradient(180deg, #fbbf24, #ec4899);
    box-shadow: 0 0 12px rgba(251, 191, 36, .45);
}
.lotto-daily-group__count {
    flex-shrink: 0;
    font-size: 11px;
    font-weight: 700;
    color: #6ee7b7;
    background: rgba(16, 185, 129, .12);
    border: 1px solid rgba(16, 185, 129, .28);
    border-radius: 999px;
    padding: 4px 12px;
}
.lotto-daily-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}
@media (max-width: 1200px) { .lotto-daily-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 900px)  { .lotto-daily-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px)  { .lotto-daily-grid { grid-template-columns: 1fr; } }

.lotto-daily-card {
    position: relative;
    height: 118px;
    min-height: 118px;
    max-height: 118px;
    padding: 14px 14px 12px;
    border-radius: 14px;
    border: 1px solid rgba(255, 255, 255, .12);
    background: linear-gradient(145deg, #22c55e 0%, #16a34a 55%, #15803d 100%);
    color: #fff;
    box-shadow: 0 10px 24px -14px rgba(34, 197, 94, .65);
    transition: transform .18s ease, box-shadow .18s ease;
    cursor: default;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
}
.lotto-daily-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 16px 28px -12px rgba(34, 197, 94, .75);
}
.lotto-daily-card.is-closed {
    background: linear-gradient(145deg, #64748b 0%, #475569 55%, #334155 100%);
    box-shadow: 0 8px 20px -14px rgba(15, 23, 42, .55);
    cursor: default;
}
.lotto-daily-card.is-closed:hover {
    transform: none;
    box-shadow: 0 8px 20px -14px rgba(15, 23, 42, .55);
}
.lotto-daily-card.is-clickable {
    cursor: pointer;
}
.lotto-daily-card.is-clickable:hover {
    border-color: rgba(255, 255, 255, .28);
}
.lotto-daily-card.is-launching {
    opacity: .75;
    pointer-events: none;
}

.lotto-daily-banner {
    margin: 0 0 16px;
    padding: 12px 14px;
    border-radius: 14px;
    font-size: 13px;
    line-height: 1.55;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.lotto-daily-banner--warn {
    background: rgba(245, 158, 11, .14);
    border: 1px solid rgba(245, 158, 11, .28);
    color: #fde68a;
}
.lotto-daily-banner code {
    font-size: 12px;
    color: #fef3c7;
}

.amb-lotto-toast-root {
    position: fixed;
    left: 50%;
    bottom: calc(24px + env(safe-area-inset-bottom, 0px));
    transform: translateX(-50%);
    z-index: 12000;
    width: min(92vw, 420px);
    pointer-events: none;
}
.amb-lotto-toast {
    padding: 12px 14px;
    border-radius: 14px;
    font-size: 13px;
    line-height: 1.5;
    text-align: center;
    box-shadow: 0 12px 32px -12px rgba(0, 0, 0, .55);
    pointer-events: auto;
}
.amb-lotto-toast.is-error {
    background: rgba(127, 29, 29, .95);
    color: #fecaca;
    border: 1px solid rgba(248, 113, 113, .35);
}
.amb-lotto-toast.is-info {
    background: rgba(30, 58, 138, .95);
    color: #bfdbfe;
    border: 1px solid rgba(96, 165, 250, .35);
}
.amb-lotto-toast.is-success {
    background: rgba(20, 83, 45, .95);
    color: #bbf7d0;
    border: 1px solid rgba(74, 222, 128, .35);
}
.lotto-daily-card__dot {
    position: absolute;
    top: 12px;
    right: 12px;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .22);
    border: 1px solid rgba(255, 255, 255, .35);
}
.lotto-daily-card:not(.is-closed) .lotto-daily-card__dot {
    background: rgba(255, 255, 255, .95);
    box-shadow: 0 0 0 4px rgba(255, 255, 255, .18);
}
.lotto-daily-card__head {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 6px;
    padding-right: 18px;
    flex-shrink: 0;
}
.lotto-daily-card__flag {
    flex-shrink: 0;
    width: 26px;
    height: 26px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: rgba(255, 255, 255, .18);
    font-size: 14px;
    line-height: 1;
}
.lotto-daily-card__name {
    font-size: 14px;
    font-weight: 800;
    line-height: 1.25;
    text-shadow: 0 1px 2px rgba(0, 0, 0, .12);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}
.lotto-daily-card__close,
.lotto-daily-card__countdown {
    font-size: 11px;
    line-height: 1.35;
    opacity: .96;
    flex-shrink: 0;
}
.lotto-daily-card__countdown {
    margin-top: 2px;
    font-weight: 700;
    letter-spacing: .02em;
}
.lotto-daily-card__countdown.is-ended {
    opacity: .85;
}

.lotto-daily-card__result {
    margin-top: auto;
    padding-top: 2px;
    flex-shrink: 0;
}
.lotto-daily-card__result-badges {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 6px;
}
.lotto-result-badge {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 4px;
    min-height: 0;
    height: 28px;
    padding: 0 8px;
    border-radius: 8px;
    text-align: left;
    border: 1px solid rgba(255, 255, 255, .14);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .12);
}
.lotto-result-badge small {
    display: block;
    font-size: 8px;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
    margin-bottom: 0;
    opacity: .9;
    white-space: nowrap;
}
.lotto-result-badge strong {
    display: block;
    font-size: 14px;
    font-weight: 900;
    letter-spacing: .1em;
    line-height: 1;
    text-shadow: 0 1px 4px rgba(0, 0, 0, .2);
}
.lotto-result-badge--top {
    background: linear-gradient(145deg, rgba(251, 191, 36, .95) 0%, rgba(245, 158, 11, .92) 100%);
    color: #451a03;
    border-color: rgba(253, 224, 71, .55);
    box-shadow: 0 4px 14px -4px rgba(251, 191, 36, .65), inset 0 1px 0 rgba(255, 255, 255, .35);
}
.lotto-result-badge--top strong {
    color: #78350f;
}
.lotto-result-badge--bottom {
    background: linear-gradient(145deg, rgba(52, 211, 153, .95) 0%, rgba(16, 185, 129, .92) 100%);
    color: #064e3b;
    border-color: rgba(110, 231, 183, .55);
    box-shadow: 0 4px 14px -4px rgba(16, 185, 129, .55), inset 0 1px 0 rgba(255, 255, 255, .28);
}
.lotto-result-badge--bottom strong {
    color: #065f46;
}

.lotto-daily-empty {
    padding: 28px 16px;
    text-align: center;
    color: #94a3b8;
    border: 1px dashed rgba(148, 163, 184, .28);
    border-radius: 14px;
    background: rgba(15, 23, 42, .35);
}

.amb-lobby-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 260px;
    gap: 24px;
    align-items: start;
}

.amb-lobby-product-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 12px;
}

.amb-lobby-product {
    position: relative;
    display: block;
    aspect-ratio: 1 / 1.1;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .07);
    border-radius: 12px;
    background: #141729;
    color: #fff;
    text-decoration: none;
    transition: transform .25s cubic-bezier(.34, 1.56, .64, 1), box-shadow .25s, border-color .2s;
}

.amb-lobby-product:hover {
    transform: translateY(-4px) scale(1.03);
    border-color: rgba(108, 61, 232, .45);
    color: #fff;
    text-decoration: none;
    box-shadow: 0 14px 32px rgba(0, 0, 0, .55), 0 0 14px rgba(108, 61, 232, .35);
}

.amb-lobby-product[hidden] {
    display: none;
}

.amb-lobby-product-img {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #141028, #0d1535);
}

.amb-lobby-product-img img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    transition: transform .4s;
}

.amb-lobby-product:hover .amb-lobby-product-img img {
    transform: scale(1.07);
}

.amb-lobby-placeholder {
    font-size: 2rem;
    opacity: .22;
}

.amb-lobby-product-overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(180deg, rgba(0, 0, 0, .50) 0%, rgba(0, 0, 0, .02) 40%, rgba(0, 0, 0, .05) 60%, rgba(0, 0, 0, .85) 100%);
}

.amb-lobby-product-title {
    position: absolute;
    top: 7px;
    left: 7px;
    right: 7px;
    z-index: 2;
    color: #fff;
    font-size: 10px;
    font-weight: 900;
    line-height: 1.2;
    text-shadow: 0 1px 5px rgba(0, 0, 0, .90);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.amb-lobby-product-meta {
    position: absolute;
    right: 7px;
    bottom: 7px;
    z-index: 2;
    padding: 2px 7px;
    border-radius: 999px;
    background: rgba(0, 0, 0, .55);
    color: rgba(255, 255, 255, .78);
    font-size: 9px;
    font-weight: 800;
    backdrop-filter: blur(6px);
}

.amb-lobby-empty {
    padding: 34px 18px;
    border: 1px solid rgba(255, 255, 255, .07);
    border-radius: 16px;
    background: #141729;
    color: #8892a4;
    text-align: center;
    font-weight: 700;
}

.amb-lobby-aside {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.amb-lobby-aside-card {
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .07);
    border-radius: 16px;
    background: #0f1125;
}

.amb-lobby-aside-card h3 {
    margin: 0;
    padding: 14px 16px;
    border-bottom: 1px solid rgba(255, 255, 255, .07);
    color: #fff;
    font-size: 13px;
    font-weight: 800;
}

.amb-lobby-jackpot {
    margin: 0 16px 10px;
    padding: 16px 0 12px;
    border-bottom: 1px solid rgba(255, 255, 255, .04);
    background: linear-gradient(90deg, #f59e0b, #fb923c);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    font-size: 1.6rem;
    font-weight: 900;
    text-align: center;
}

.amb-lobby-rank {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 16px;
    padding: 7px 0;
    border-bottom: 1px solid rgba(255, 255, 255, .04);
    font-size: 12px;
}

.amb-lobby-rank:last-child {
    border-bottom: none;
    padding-bottom: 14px;
}

.amb-lobby-rank span {
    width: 18px;
    color: #5a6175;
    font-weight: 800;
}

.amb-lobby-rank b {
    flex: 1;
    color: rgba(255, 255, 255, .80);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.amb-lobby-rank strong {
    color: #10b981;
}

.amb-lobby-aside-promo {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 18px 16px;
    border: 1px solid rgba(108, 61, 232, .30);
    border-radius: 16px;
    background: linear-gradient(135deg, #2d1b6b, #1e1060);
    text-align: center;
}

.amb-lobby-aside-promo div {
    font-size: 2rem;
}

.amb-lobby-aside-promo strong {
    color: #fff;
    font-size: 15px;
    font-weight: 900;
    line-height: 1.3;
}

.amb-lobby-aside-promo small {
    color: rgba(255, 255, 255, .55);
    font-size: 11px;
}

.amb-lobby-aside-promo a {
    width: 100%;
    padding: 9px;
    border-radius: 20px;
    background: linear-gradient(90deg, #f59e0b, #fb923c);
    color: #1a0800;
    font-size: 13px;
    font-weight: 900;
    text-decoration: none;
    box-shadow: 0 3px 14px rgba(245, 158, 11, .40);
}

.amb-lobby-online {
    padding-bottom: 20px;
    text-align: center;
}

.amb-lobby-online strong {
    display: block;
    margin-top: 16px;
    color: #10b981;
    font-size: 2rem;
    font-weight: 900;
}

.amb-lobby-online span {
    color: #8892a4;
    font-size: 11px;
    font-weight: 700;
}

@media (min-width: 900px) {
    body:has(.amb-user-shell) .content-page,
    body:has(.amb-user-shell) .lobby-page,
    body:has(.amb-user-shell) .auth-page {
        width: auto;
        max-width: none;
        margin: 0 0 0 240px;
        padding: 84px max(28px, calc((100vw - 240px - 1100px) / 2)) 40px;
    }

    body:has(.amb-user-shell) .auth-page {
        min-height: 100vh;
    }

    .amb-lobby-shell {
        margin-left: 240px;
        padding: 84px 0 40px;
    }

    .amb-lobby-hero {
        margin-bottom: 28px;
    }

    .amb-lobby-quick-grid {
        margin-bottom: 28px;
    }
}

@media (max-width: 1180px) and (min-width: 900px) {
    .amb-lobby-product-grid {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }

    .amb-lobby-member-grid {
        width: min(1100px, calc(100% - 56px));
        grid-template-columns: 1fr;
    }

    .amb-lobby-mini-games {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 899px) {
    body:has(.amb-user-shell) .content-page,
    body:has(.amb-user-shell) .lobby-page,
    body:has(.amb-user-shell) .auth-page {
        width: 100%;
        max-width: 480px;
        margin: 0 auto;
        padding: 18px 12px calc(132px + env(safe-area-inset-bottom, 0px));
    }

    body:has(.amb-user-shell) .auth-page {
        min-height: calc(100vh - 58px);
    }

    .amb-lobby-shell {
        max-width: 480px;
        margin: 0 auto;
        padding: 10px 0 calc(132px + env(safe-area-inset-bottom, 0px));
        box-shadow: 0 0 60px rgba(108, 61, 232, .10);
    }

    .amb-lobby-hero,
    .amb-lobby-quick-grid,
    .amb-lobby-section {
        width: 100%;
        padding-left: 10px;
        padding-right: 10px;
    }

    .amb-lobby-hero {
        margin-bottom: 10px;
    }

    .amb-lobby-carousel {
        border-radius: 16px;
    }

    .amb-lobby-slide {
        min-height: 155px;
        gap: 0;
        padding: 18px 16px;
        border-radius: 16px;
    }

    .amb-lobby-slide::before {
        width: 180px;
        height: 180px;
        top: -50px;
        right: -30px;
    }

    .amb-lobby-slide::after {
        width: 120px;
        height: 120px;
        bottom: -40px;
    }

    .amb-lobby-eyebrow {
        margin-bottom: 5px;
        font-size: 9px;
        letter-spacing: 1.6px;
    }

    .amb-lobby-slide h1 {
        font-size: clamp(1rem, 4.5vw, 1.3rem);
    }

    .amb-lobby-slide p {
        margin-bottom: 12px;
        font-size: 10px;
    }

    .amb-lobby-cta {
        padding: 7px 16px;
        font-size: 11px;
    }

    .amb-lobby-stats {
        display: none;
    }

    .amb-lobby-mascot {
        width: 38%;
        font-size: 56px;
        filter: drop-shadow(0 0 14px rgba(108, 61, 232, .60));
    }

    .amb-lobby-arrow {
        width: 28px;
        height: 28px;
        font-size: 15px;
    }

    .amb-lobby-quick-grid {
        gap: 8px;
        margin-bottom: 16px;
    }

    .amb-lobby-member-grid {
        width: 100%;
        grid-template-columns: 1fr;
        gap: 10px;
        margin: 0 auto 16px;
        padding: 0 10px;
    }

    .amb-lobby-member-panel {
        border-radius: 16px;
    }

    .amb-lobby-member-head {
        padding: 12px 12px 9px;
    }

    .amb-lobby-member-head h2 {
        font-size: 13px;
    }

    .amb-lobby-mini-games {
        display: flex;
        grid-template-columns: none;
        gap: 8px;
        overflow-x: auto;
        overflow-y: hidden;
        padding: 10px 12px 12px;
        scroll-snap-type: x proximity;
        -webkit-overflow-scrolling: touch;
    }

    .amb-lobby-mini-game {
        flex: 0 0 190px;
        grid-template-columns: 52px minmax(0, 1fr);
        align-items: center;
        scroll-snap-align: start;
    }

    .amb-lobby-mini-img {
        width: 52px;
        height: 52px;
        border-radius: 10px;
    }

    .amb-lobby-mini-body strong {
        font-size: 11px;
    }

    .amb-lobby-mini-body small {
        font-size: 9px;
    }

    .amb-lobby-mini-play {
        padding: 4px 9px;
        font-size: 10px;
    }

    .amb-lobby-quick-card,
    .amb-lobby-quick-grid .quick-banner {
        min-height: 76px;
        gap: 10px;
        padding: 14px;
        border-radius: 14px;
    }

    .amb-lobby-quick-icon,
    .amb-lobby-quick-grid .quick-banner__icon {
        width: 42px;
        height: 42px;
        border-radius: 12px;
        font-size: 22px;
    }

    .amb-lobby-quick-body strong,
    .amb-lobby-quick-grid .quick-banner__body strong {
        font-size: 12px;
    }

    .amb-lobby-quick-body small,
    .amb-lobby-quick-grid .quick-banner__body small {
        overflow: hidden;
        font-size: 9px;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .amb-lobby-quick-badge,
    .amb-lobby-quick-grid .quick-banner__badge {
        top: 7px;
        right: 7px;
        padding: 1px 5px;
        border-radius: 6px;
        font-size: 8px;
    }

    .amb-lobby-section-head {
        padding: 6px 2px 0;
        margin-bottom: 12px;
        gap: 8px;
    }

    .amb-lobby-section-bar {
        width: 3px;
        height: 16px;
    }

    .amb-lobby-section-head h2 {
        font-size: 14px;
    }

    .amb-lobby-count {
        font-size: 10px;
    }

    .amb-lobby-pills {
        flex-wrap: nowrap;
        gap: 10px;
        margin: 0 -10px 12px;
        padding: 6px 12px 12px;
        overflow-x: auto;
        overflow-y: hidden;
        scroll-snap-type: x proximity;
        -webkit-overflow-scrolling: touch;
    }

    .amb-lobby-pill {
        flex: 0 0 auto;
        min-height: 40px;
        padding: 10px 16px;
        background: rgba(255, 255, 255, .06);
        color: rgba(255, 255, 255, .88);
        scroll-snap-align: start;
    }

    .amb-lobby-pill.is-active {
        background: linear-gradient(135deg, #f59e0b, #fb923c);
        color: #1a0d00;
        box-shadow: 0 4px 18px rgba(245, 158, 11, .40);
    }

    .amb-lobby-layout {
        display: block;
    }

    .amb-lobby-product-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 7px;
    }

    .game-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 8px;
    }

    .game-card {
        border-radius: 10px;
    }

    .game-card-img {
        aspect-ratio: 1 / 1;
    }

    .game-card-img .product-placeholder {
        font-size: 30px;
    }

    .game-badge-new,
    .game-badge-type {
        top: 5px;
        padding: 2px 5px;
        font-size: 8px;
    }

    .game-badge-new { left: 5px; }
    .game-badge-type { right: 5px; }

    .game-card-body {
        padding: 7px;
        gap: 5px;
    }

    .game-card-title {
        display: -webkit-box;
        overflow: hidden;
        min-height: 24px;
        font-size: 10px;
        line-height: 1.2;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
    }

    .game-card-meta {
        display: none;
    }

    .btn-launch {
        padding: 6px 4px;
        border-radius: 8px;
        font-size: 10px;
    }
}

@media (max-width: 420px) {
    .amb-lobby-product-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

/* สี่เหลี่ยมกิจกรรม 7 วัน — หน้ารายชื่อสมาชิก */
.activity-dots {
    display: inline-flex;
    align-items: center;
    gap: 2px;
}

.activity-dot {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 2px;
}

.activity-dot-green {
    background: #10b981;
}

.activity-dot-red {
    background: #ef4444;
}

/* ระดับดาวสมาชิก — หน้ารายชื่อสมาชิก */
.member-stars {
    display: inline-flex;
    align-items: center;
    gap: 2px;
}

.member-star {
    appearance: none;
    border: 0;
    background: transparent;
    color: rgba(148, 163, 184, .55);
    cursor: pointer;
    font-size: 18px;
    line-height: 1;
    padding: 1px;
    transition: color .15s ease, transform .15s ease, opacity .15s ease;
}

.member-star:hover,
.member-star:focus-visible,
.member-star.is-active {
    color: #f59e0b;
}

.member-star:hover,
.member-star:focus-visible {
    transform: translateY(-1px) scale(1.08);
    outline: none;
}

.member-stars.is-saving {
    opacity: .65;
    pointer-events: none;
}

.member-wallet-value {
    font-weight: 700;
}

.member-wallet-value--cash {
    color: #6ee7b7;
}

.member-wallet-value--promotion {
    color: #c084fc;
}

.member-wallet-value--spin {
    color: #93c5fd;
}

.member-wallet-value--diamonds {
    color: #67e8f9;
}

/* ============================================================
   Dashboard — colorful refresh + date-range toolbar + modal
   ============================================================ */
.dash-header { align-items: flex-end; }
.dash-title {
    background: linear-gradient(90deg, #f59e0b, #f43f5e 45%, #8b5cf6 80%, #38bdf8);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    font-weight: 800;
    letter-spacing: .5px;
}
.dash-range-label { color: var(--primary); }

/* Toolbar / segmented group buttons */
.dash-toolbar {
    margin: 4px 0 24px;
}
.seg-group {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 6px;
    padding: 6px;
    background: linear-gradient(135deg, rgba(255,255,255,.04), rgba(255,255,255,.01));
    border: 1px solid var(--border);
    border-radius: 14px;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.04);
}
.seg-btn {
    appearance: none;
    cursor: pointer;
    border: 1px solid transparent;
    background: transparent;
    color: var(--muted);
    font-family: inherit;
    font-size: 14px;
    font-weight: 600;
    padding: 9px 18px;
    border-radius: 10px;
    line-height: 1;
    transition: all .18s ease;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.seg-btn:hover {
    color: var(--text);
    background: rgba(255,255,255,.06);
    text-decoration: none;
    transform: translateY(-1px);
}
.seg-btn.is-active {
    color: #1a1205;
    background: linear-gradient(135deg, #fbbf24, #f59e0b);
    border-color: rgba(245,158,11,.6);
    box-shadow: 0 6px 16px rgba(245,158,11,.35);
}
.seg-btn-custom.is-active {
    color: #fff;
    background: linear-gradient(135deg, #8b5cf6, #6d28d9);
    border-color: rgba(139,92,246,.6);
    box-shadow: 0 6px 16px rgba(139,92,246,.35);
}
.seg-ico { font-size: 14px; }

/* KPI colorful accents */
.kpi-card {
    position: relative;
    overflow: hidden;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.kpi-card::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
    background: var(--kpi-accent, var(--primary));
}
.kpi-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 28px rgba(0,0,0,.35);
}
.kpi-icon {
    position: absolute;
    top: 14px;
    right: 16px;
    font-size: 26px;
    opacity: .35;
    line-height: 1;
}
.kpi-accent-blue   { --kpi-accent: #3b82f6; }
.kpi-accent-green  { --kpi-accent: #10b981; }
.kpi-accent-red    { --kpi-accent: #ef4444; }
.kpi-accent-purple { --kpi-accent: #8b5cf6; }
.kpi-accent-cyan   { --kpi-accent: #06b6d4; }
.kpi-accent-gold   { --kpi-accent: #f59e0b; }
.kpi-accent-slate  { --kpi-accent: #64748b; }
.kpi-accent-blue   { border-color: rgba(59,130,246,.3); }
.kpi-accent-purple { border-color: rgba(139,92,246,.3); }
.kpi-accent-cyan   { border-color: rgba(6,182,212,.3); }
.kpi-accent-blue:hover   { border-color: rgba(59,130,246,.6); }
.kpi-accent-green:hover  { border-color: rgba(16,185,129,.6); }
.kpi-accent-red:hover    { border-color: rgba(239,68,68,.6); }
.kpi-accent-purple:hover { border-color: rgba(139,92,246,.6); }
.kpi-accent-cyan:hover   { border-color: rgba(6,182,212,.6); }
.kpi-accent-gold:hover   { border-color: rgba(245,158,11,.7); }

/* Custom range modal */
.dash-detail-overlay {
    position: fixed;
    inset: 0;
    z-index: 1300;
    display: none;
    padding: 18px;
    background: rgba(4,8,17,.78);
    backdrop-filter: blur(6px);
}
.dash-detail-overlay.is-open {
    display: block;
}
.dash-detail-dialog {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    background: linear-gradient(180deg, var(--panel-2), var(--panel));
    border: 1px solid var(--border);
    border-radius: 18px;
    box-shadow: 0 26px 70px rgba(0,0,0,.6);
    overflow: hidden;
}
.dash-detail-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding: 20px 22px 14px;
    border-bottom: 1px solid var(--border);
}
.dash-detail-head h3 {
    margin: 0 0 4px;
    font-size: 22px;
}
.dash-detail-head p {
    margin: 0;
}
.dash-detail-tools {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 14px 22px;
    border-bottom: 1px solid rgba(148,163,184,.16);
}
.dash-detail-tools .filter-bar {
    flex: 1;
    margin: 0;
}
.dash-detail-meta {
    padding: 0 22px 12px;
}
.dash-detail-body {
    flex: 1;
    min-height: 0;
    padding: 0 22px 22px;
    overflow: hidden;
}
.dash-detail-table-wrap {
    max-height: 100%;
    overflow: auto;
}
.dash-detail-loading {
    padding: 28px;
    color: var(--muted);
    text-align: center;
}
@media (max-width: 720px) {
    .kpi-card.has-sparkline {
        padding-right: 18px;
        padding-top: 58px;
    }
    .kpi-sparkline {
        left: 18px;
        right: auto;
        width: 92px;
    }
    .dash-detail-tools {
        align-items: stretch;
        flex-direction: column;
    }
    .dash-detail-tools .filter-bar {
        width: 100%;
    }
    .dash-detail-tools .btn-primary {
        align-self: flex-start;
    }
}

.dash-modal-overlay {
    position: fixed;
    inset: 0;
    z-index: 1200;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background: rgba(4,8,17,.66);
    backdrop-filter: blur(4px);
}
.dash-modal-overlay.is-open { display: flex; }
.dash-modal {
    width: 100%;
    max-width: 420px;
    background: linear-gradient(180deg, var(--panel-2), var(--panel));
    border: 1px solid var(--border);
    border-radius: 16px;
    box-shadow: 0 24px 60px rgba(0,0,0,.55);
    overflow: hidden;
    animation: dashModalIn .18s ease;
}
@keyframes dashModalIn {
    from { opacity: 0; transform: translateY(12px) scale(.98); }
    to   { opacity: 1; transform: translateY(0) scale(1); }
}
.dash-modal-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    border-bottom: 1px solid var(--border);
}
.dash-modal-head h3 { margin: 0; font-size: 16px; }
.dash-modal-close {
    appearance: none;
    background: transparent;
    border: none;
    color: var(--muted);
    font-size: 26px;
    line-height: 1;
    cursor: pointer;
    padding: 0 4px;
}
.dash-modal-close:hover { color: var(--text); }
.dash-modal-body { padding: 20px; }
.dash-field { display: block; margin-bottom: 16px; }
.dash-field span {
    display: block;
    font-size: 13px;
    color: var(--muted);
    margin-bottom: 6px;
}
.dash-field input[type="date"] {
    width: 100%;
    padding: 11px 12px;
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: 10px;
    color: var(--text);
    font-family: inherit;
    font-size: 14px;
    color-scheme: dark;
}
.dash-field input[type="date"]:focus {
    outline: none;
    border-color: var(--primary);
    box-shadow: 0 0 0 3px rgba(245,158,11,.18);
}
.dash-modal-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 8px;
}
