:root {
  --bg: #0b0906; --bg-soft: #13100b; --surface: #14100b;
  --surface-2: #1c160f; --surface-3: #261e14;
  --glass: #14100b; --glass-border: rgba(245,197,86,0.18);
  --glass-hover: rgba(255,222,133,0.12); --b-1: rgba(245,197,86,0.14);
  --b-2: rgba(245,197,86,0.28); --b-3: rgba(245,197,86,0.45);
  --primary: #e5b052; --primary-light: #fde08b; --primary-dark: #b88628;
  --primary-soft: rgba(229,176,82,0.15); --primary-glow: rgba(245,185,75,0.45);
  --vip-gold: #f59e0b; --vip-gold-2: #ffd700; --vip-gold-soft: rgba(245,158,11,0.16);
  --vip-orange: #fb923c; --success: #10b981; --green: #10b981;
  --warning: #f59e0b; --amber: #fbbf24; --danger: #ef4444; --pink: #f43f5e;
  --cyan: #e5b052; --blue: #d97706; --neon-purple: rgba(229,176,82,0.6);
  --neon-cyan: rgba(253,224,139,0.5); --neon-pink: rgba(245,158,11,0.5);
  --t-1: #fffdf8; --t-2: #f7eed8; --t-3: #c9b99f; --t-4: #8f806a; --t-5: #655845;
  --r-xs: 8px; --r-sm: 12px; --r-md: 16px; --r-lg: 20px; --r-xl: 28px; --r-pill: 999px;
  --nav-h: 72px; --hd-h: 64px; --pad: 16px; --font: 'Inter', -apple-system, BlinkMacSystemFont, 'SF Pro Display', 'SF Pro Text', 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  --font-mono: 'JetBrains Mono', 'SF Mono', Consolas, monospace;
}

/* ─── PERFORMANCE PURGE: ZERO LAG / 120 FPS BUTTERY SMOOTH ─── */
/* 1. Eliminate 100% of backdrop-filter blur across all elements */
*, *::before, *::after {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* 2. Hide heavy multi-layer 3D perspective DOM nodes */
.cosmic-scene {
  display: none !important;
}

/* 3. Kill heavy continuous background infinite loops that keep mobile GPU constantly active */
.star, .btn-buy-cta, .product-buy::before, .btn-main::before, .btn-vip-primary::before,
.btn-buy::before, .btn-buy-full::before, .product-hot-badge, .hd-balance-vip::before,
.pdetail-float-badge, .cosmic-nebula {
  animation: none !important;
}

/* 4. Containment & scrolling performance */
.page, .vip-card, .pcard, .product, .cat-pill, .cat-tile, .feed-item, .feed-row,
.dep-method-card, .dep-btn, .dep-hist-item, .txn-item, .txn-row, .lb-item,
.info-card, .stat-tile, .prof-stat, .ord-item, .ord-card, .order-card,
.bank-item, .ref-link-box, .ref-row, .ref-stat-box, .cat-pick-item, .pkg-row,
.select-card, .wallet-hero, .dep-grid>*, .card-amount-grid>*, .card-telco-grid>*,
.voucher-input, .card-rates-table, .vip-tab-pills, .dep-input-vip, .dep-input, .card-input,
.card-est-box, .tab-bar, .lb-filter, .modal-sheet .suc-key,
.qr-wrap, .warn-box, .pdetail-desc, .ibox, .page-hero,
.txn-status-dot, .feed-swipe-indicator, .pcard-out, .pcard-type {
  will-change: auto;
  contain: layout style;
}

.page {
  -webkit-overflow-scrolling: touch;
}

/* 5. Mobile animation governor: allow animations to play once, then rest idle */
@media (max-width: 768px) {
  *, *::before, *::after {
    animation-iteration-count: 1 !important;
  }
  /* Preserve infinite spin on loading indicators & neon pulsing storefront main tabs */
  .spin, .loading, .qr-loader i, .fa-spin, .ls-ring, .ls-ring-rev, .ls-ring-outer,
  #sfMainTabs, #sfMainTabs *, #sfMainTabs::before, #sfMainTabs::after,
  .sf-main-tab, .sf-main-tab *, .sf-main-tab::before, .sf-main-tab::after,
  .sf-mt-count::before, .sf-mt-icon-box::after {
    animation-iteration-count: infinite !important;
  }
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html{scroll-behavior:auto;overscroll-behavior-y:contain}
body{
  background:var(--bg);color:var(--t-1);
  font-family:var(--font);font-size:14px;line-height:1.55;
  min-height:100dvh;overflow-x:hidden;-webkit-font-smoothing:antialiased;
  letter-spacing:-0.01em;position:relative;
}

/* ─── ANIMATED GRADIENT MESH ─── */
body::before{
  content:'';position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(800px 600px at 20% -10%, rgba(245, 197, 86, 0.14), transparent 55%),
    radial-gradient(700px 500px at 85% 25%, rgba(217, 119, 6, 0.12), transparent 50%),
    radial-gradient(600px 500px at 50% 90%, rgba(251, 191, 36, 0.08), transparent 55%),
    radial-gradient(500px 400px at 10% 60%, rgba(180, 83, 9, 0.06), transparent 50%);
  animation:none!important;
}
@keyframes mesh-drift{
  0%{background-position:0% 0%,0% 0%,0% 0%,0% 0%}
  25%{background-position:10% 5%,-5% 10%,8% -3%,-8% 5%}
  50%{background-position:-8% 12%,12% -5%,-5% 8%,10% -8%}
  75%{background-position:12% -8%,-8% 12%,10% -5%,-5% 10%}
  100%{background-position:-5% 5%,5% -8%,-8% 10%,8% -5%}
}

/* ─── NOISE TEXTURE ─── */
body::after{
  content:'';position:fixed;inset:0;z-index:0;pointer-events:none;
  opacity:0.025;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:256px 256px;
}

/* ─── STARFIELD ─── */
#starfield{
  position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;
}
.star{
  position:absolute;border-radius:50%;background:#fff;
  animation:star-twinkle var(--dur,4s) ease-in-out infinite alternate;
}
@keyframes star-twinkle{
  0%{opacity:0.2;transform:scale(0.8)}
  100%{opacity:0.9;transform:scale(1.2)}
}

::-webkit-scrollbar{width:0;height:0}
button,input,textarea{font-family:inherit}
button{background:none;border:none;color:inherit;cursor:pointer}
a{color:inherit;text-decoration:none}

/* ─── LOADING SCREEN ENTERPRISE EDITION (INSTITUTIONAL LUXURY) ─── */
#loadingScreen {
  position: fixed !important;
  inset: 0 !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  width: 100% !important;
  height: 100% !important;
  height: 100vh !important;
  height: 100dvh !important;
  z-index: 99999999 !important;
  background-color: #050912 !important;
  background-image:
    radial-gradient(ellipse 85% 50% at 50% -5%, rgba(14, 165, 233, 0.16) 0%, rgba(37, 99, 235, 0.07) 48%, transparent 80%),
    radial-gradient(ellipse 70% 45% at 50% 105%, rgba(16, 185, 129, 0.06) 0%, transparent 70%),
    linear-gradient(180deg, #060b16 0%, #050912 60%, #03060c 100%) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
  pointer-events: auto !important;
  opacity: 1 !important;
  transform: scale(1) !important;
  transition: opacity 0.36s cubic-bezier(0.16, 1, 0.3, 1), transform 0.36s cubic-bezier(0.16, 1, 0.3, 1), visibility 0.36s !important;
  box-sizing: border-box !important;
  padding: 24px !important;
}

/* Architectural subtle grid pattern */
#loadingScreen::before {
  content: '' !important;
  position: absolute !important;
  inset: 0 !important;
  background-image:
    linear-gradient(rgba(148, 163, 184, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(148, 163, 184, 0.035) 1px, transparent 1px) !important;
  background-size: 32px 32px !important;
  -webkit-mask-image: radial-gradient(ellipse 80% 55% at 50% 35%, #000 15%, transparent 80%) !important;
  mask-image: radial-gradient(ellipse 80% 55% at 50% 35%, #000 15%, transparent 80%) !important;
  z-index: 0 !important;
  pointer-events: none !important;
}

#loadingScreen.ls-hidden {
  opacity: 0 !important;
  transform: scale(1.025) !important;
  pointer-events: none !important;
  visibility: hidden !important;
}

/* Main Enterprise Container */
.ls-ent-shell {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 340px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

/* Top Verified Infrastructure Pill */
.ls-ent-top-pill {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 5px 13px;
  border-radius: 999px;
  background: rgba(15, 23, 42, 0.85);
  border: 1px solid rgba(56, 189, 248, 0.22);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.06);
  margin-bottom: 22px;
}

.ls-ent-live-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #10b981;
  box-shadow: 0 0 8px #10b981;
  animation: lsEntPulse 1.6s ease-in-out infinite;
}

@keyframes lsEntPulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.45; transform: scale(0.88); }
}

.ls-ent-top-text {
  font-family: 'JetBrains Mono', var(--font-mono), monospace;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1.4px;
  color: #94a3b8;
  text-transform: uppercase;
}

/* Executive Monogram Crest */
.ls-ent-crest-wrap {
  position: relative;
  width: 88px;
  height: 88px;
  margin: 0 auto 20px;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Precision outer architectural frame */
.ls-ent-crest-ring {
  position: absolute;
  inset: 0;
  border-radius: 26px;
  border: 1px solid rgba(56, 189, 248, 0.24);
  background: linear-gradient(135deg, rgba(56, 189, 248, 0.1) 0%, rgba(15, 23, 42, 0.2) 50%, rgba(37, 99, 235, 0.12) 100%);
  box-shadow: 0 14px 36px rgba(2, 6, 23, 0.75), 0 0 28px rgba(14, 165, 233, 0.14);
}

/* Inner Titanium-Obsidian Plate */
.ls-ent-crest-box {
  position: relative;
  z-index: 2;
  width: 72px;
  height: 72px;
  border-radius: 20px;
  background: linear-gradient(155deg, #111c33 0%, #091020 55%, #060b16 100%);
  border: 1px solid rgba(148, 163, 184, 0.22);
  box-shadow:
    inset 0 1px 1px rgba(255, 255, 255, 0.14),
    inset 0 -8px 16px rgba(14, 165, 233, 0.08),
    0 8px 20px rgba(0, 0, 0, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

/* Subtle light sweep across the monogram plate */
.ls-ent-crest-sheen {
  position: absolute;
  top: -60%;
  left: -90%;
  width: 55%;
  height: 220%;
  background: linear-gradient(90deg, transparent, rgba(56, 189, 248, 0.18), rgba(255, 255, 255, 0.28), transparent);
  transform: rotate(25deg);
  animation: lsEntSheen 2.8s cubic-bezier(0.4, 0, 0.2, 1) infinite;
  pointer-events: none;
}

@keyframes lsEntSheen {
  0% { left: -90%; }
  65%, 100% { left: 150%; }
}

.ls-ent-monogram-svg {
  width: 40px;
  height: 40px;
  position: relative;
  z-index: 3;
  filter: drop-shadow(0 2px 10px rgba(56, 189, 248, 0.35));
}

/* Corner Verified Seal on Crest */
.ls-ent-verified-seal {
  position: absolute;
  bottom: -4px;
  right: -4px;
  z-index: 4;
  width: 24px;
  height: 24px;
  border-radius: 8px;
  background: linear-gradient(135deg, #0ea5e9 0%, #2563eb 100%);
  border: 2px solid #050912;
  box-shadow: 0 4px 10px rgba(14, 165, 233, 0.4);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #ffffff;
}

.ls-ent-verified-seal svg {
  width: 13px;
  height: 13px;
}

/* Brand Identity Typography */
.ls-ent-brand {
  margin-bottom: 22px;
}

.ls-brand-title {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 24px;
  font-weight: 900;
  letter-spacing: 3.2px;
  background: linear-gradient(180deg, #ffffff 0%, #e2e8f0 65%, #94a3b8 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  margin: 0 0 6px;
  text-transform: uppercase;
}

.ls-ent-brand-sub {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 1.3px;
  color: #64748b;
  text-transform: uppercase;
}

/* Enterprise Telemetry & Progress Console */
.ls-ent-console {
  width: 100%;
  background: linear-gradient(180deg, rgba(15, 23, 42, 0.82) 0%, rgba(9, 14, 26, 0.92) 100%);
  border: 1px solid rgba(148, 163, 184, 0.14);
  border-radius: 18px;
  padding: 16px 18px 14px;
  box-shadow:
    0 20px 45px rgba(0, 0, 0, 0.65),
    inset 0 1px 0 rgba(255, 255, 255, 0.06);
  display: flex;
  flex-direction: column;
  gap: 11px;
}

.ls-status-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.ls-status-left {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}

.ls-status-spinner {
  width: 13px;
  height: 13px;
  border-radius: 50%;
  border: 2px solid rgba(56, 189, 248, 0.22);
  border-top-color: #38bdf8;
  animation: lsEntSpin 0.75s linear infinite;
  flex-shrink: 0;
}

@keyframes lsEntSpin {
  to { transform: rotate(360deg); }
}

.ls-status-txt {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: #e2e8f0;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.1px;
}

.ls-percent {
  font-family: 'JetBrains Mono', var(--font-mono), monospace;
  font-weight: 700;
  color: #38bdf8;
  font-size: 11.5px;
  padding: 2px 8px;
  border-radius: 6px;
  background: rgba(14, 165, 233, 0.12);
  border: 1px solid rgba(56, 189, 248, 0.24);
  flex-shrink: 0;
}

/* Precision Progress Bar */
.ls-progress-track {
  width: 100%;
  height: 5px;
  border-radius: 999px;
  background: rgba(30, 41, 59, 0.95);
  overflow: hidden;
  position: relative;
}

.ls-progress-fill {
  height: 100%;
  width: 0%;
  border-radius: 999px;
  background: linear-gradient(90deg, #1d4ed8 0%, #0284c7 50%, #38bdf8 100%);
  box-shadow: 0 0 12px rgba(56, 189, 248, 0.55);
  transition: width 0.1s linear;
  position: relative;
}

.ls-progress-flare {
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 10px;
  height: 5px;
  border-radius: 999px;
  background: #ffffff;
  box-shadow: 0 0 8px #ffffff, 0 0 14px #38bdf8;
}

/* 3-Pillar Enterprise Trust Strip inside Console */
.ls-ent-metrics {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 6px;
  padding-top: 11px;
  margin-top: 2px;
  border-top: 1px solid rgba(148, 163, 184, 0.1);
}

.ls-ent-metric-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  padding: 5px 4px;
  border-radius: 10px;
  background: rgba(15, 23, 42, 0.55);
  border: 1px solid rgba(148, 163, 184, 0.07);
}

.ls-ent-metric-val {
  font-family: 'JetBrains Mono', var(--font-mono), monospace;
  font-size: 10.5px;
  font-weight: 700;
  color: #f8fafc;
  display: flex;
  align-items: center;
  gap: 4px;
}

.ls-ent-metric-lbl {
  font-size: 9.5px;
  font-weight: 500;
  color: #64748b;
}

/* Institutional Footer */
.ls-ent-footer {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin-top: 20px;
  font-size: 10.5px;
  color: #64748b;
  font-weight: 600;
  letter-spacing: 0.4px;
}

/* ─── HEADER DYNAMIC ISLAND ─── */
#appHeader{
  position:sticky;top:0;z-index:100;height:var(--hd-h);
  padding:0 var(--pad);display:flex;align-items:center;justify-content:space-between;
  gap:10px;
  background:rgba(18,14,10,0.82);backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border-bottom:1px solid var(--glass-border);
  transform:translateZ(0);-webkit-transform:translateZ(0);
  will-change:transform;backface-visibility:hidden;-webkit-backface-visibility:hidden;
  transition:background .2s ease,box-shadow .2s ease,border-color .2s ease;
}
#appHeader.scrolled{
  height:var(--hd-h);
  background:rgba(14,11,8,0.95);
  box-shadow:0 6px 20px rgba(0,0,0,0.45);
  border-bottom-color:rgba(245,197,86,0.25);
}
.vip-header-left{display:flex;align-items:center;gap:10px;min-width:0;flex:1}
.vip-header-right{display:flex;align-items:center;gap:8px;flex-shrink:0}
.vip-header-stack{display:flex;flex-direction:column;align-items:flex-end;gap:1px}
.hd-avatar{
  width:40px;height:40px;border-radius:50%;
  background:linear-gradient(135deg,#ffd700,#b88628);
  border:2px solid rgba(245,197,86,0.55);display:flex;align-items:center;
  justify-content:center;color:#160f04;font-weight:800;font-size:15px;
  overflow:hidden;flex-shrink:0;
  box-shadow:0 0 20px rgba(245,197,86,0.45);
}
#appHeader.scrolled .hd-avatar{width:40px;height:40px;font-size:15px}
.hd-avatar img{width:100%;height:100%;object-fit:cover}
.hd-user-info{flex:1;min-width:0;overflow:hidden}
.hd-user-name{
  font-size:14px;font-weight:700;color:var(--t-1);
  white-space:nowrap;overflow:hidden;
  background:linear-gradient(90deg,#fffdf8,#fde08b);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.hd-user-id{font-size:10px;color:var(--t-4);font-family:var(--font-mono)}
.hd-balance-vip{
  font-size:15px;font-weight:800;
  background:linear-gradient(135deg,var(--vip-gold),var(--vip-gold-2));
  -webkit-background-clip:text;background-clip:text;color:transparent;
  padding:6px 14px;border-radius:var(--r-pill);
  background-color:var(--vip-gold-soft);border:1.5px solid rgba(245,158,11,0.2);
  cursor:pointer;position:relative;overflow:hidden;transition:all .3s;
}
.hd-balance-vip::before{
  content:'';position:absolute;inset:0;border-radius:inherit;
  background:conic-gradient(from 0deg,transparent,rgba(245,158,11,0.15),transparent 60%);
  animation:none;
}
@keyframes rotate-glow{to{transform:rotate(360deg)}}
.hd-balance-vip:active{transform:scale(.95)}
.vip-badge{
  display:inline-flex;align-items:center;gap:4px;padding:2px 8px;
  border-radius:var(--r-pill);background:var(--primary-soft);
  border:1px solid rgba(167,139,250,0.25);color:var(--primary-light);
  font-size:9px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;
}
.vip-badge.gold{background:var(--vip-gold-soft);border-color:rgba(245,158,11,0.25);color:var(--vip-gold-2)}
.vip-badge.seller-vip{
  background:linear-gradient(135deg,rgba(245,158,11,0.25),rgba(239,68,68,0.25))!important;
  border-color:rgba(245,158,11,0.7)!important;
  color:#fcd34d!important;
  box-shadow:0 0 10px rgba(245,158,11,0.4)!important;
  text-shadow:0 0 6px rgba(245,158,11,0.6);
}
.vip-badge.seller-regular{
  background:linear-gradient(135deg,rgba(59,130,246,0.2),rgba(139,92,246,0.2))!important;
  border-color:rgba(96,165,250,0.6)!important;
  color:#93c5fd!important;
  box-shadow:0 0 8px rgba(59,130,246,0.3)!important;
}
.vip-badge.admin{
  background:linear-gradient(135deg,rgba(236,72,153,0.25),rgba(168,85,247,0.25))!important;
  border-color:rgba(236,72,153,0.6)!important;
  color:#f472b6!important;
  box-shadow:0 0 10px rgba(236,72,153,0.35)!important;
}

/* Profile VIP Header & Role Badges */
.prof-header-card{
  background:linear-gradient(145deg,rgba(22,19,48,0.92) 0%,rgba(13,11,28,0.96) 100%);
  border:1px solid rgba(245,197,86,0.28);
  box-shadow:0 8px 24px rgba(0,0,0,0.45),inset 0 1px 0 rgba(255,235,175,0.1);
  padding:16px;border-radius:18px;position:relative;overflow:hidden;
}
.prof-header-card::before{
  content:'';position:absolute;top:-30px;right:-30px;width:110px;height:110px;
  background:radial-gradient(circle,rgba(245,197,86,0.25) 0%,transparent 70%);
  pointer-events:none;
}
.prof-header-flex{display:flex;align-items:center;gap:14px}
.prof-avatar-outer{position:relative;flex-shrink:0}
.prof-avatar-box{
  width:52px;height:52px;border-radius:50%;
  background:linear-gradient(135deg,#ffd700,#f59e0b);
  display:flex;align-items:center;justify-content:center;
  color:#160f04;font-size:20px;font-weight:800;
  border:2px solid rgba(245,197,86,0.6);
  box-shadow:0 0 16px rgba(245,197,86,0.45);overflow:hidden;
}
.prof-avatar-box img{width:100%;height:100%;object-fit:cover}
.prof-info-box{flex:1;min-width:0}
.prof-top-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}
.prof-display-name{
  font-size:16px;font-weight:800;color:#fff;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  letter-spacing:-0.2px;
}
.prof-sub-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.prof-username-text{font-size:12px;color:var(--t-3);font-weight:500}
.prof-id-badge{
  display:inline-flex;align-items:center;gap:4px;
  background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.12);
  border-radius:6px;padding:2px 7px;font-size:11px;color:var(--t-2);
  cursor:pointer;transition:all 0.2s ease;
}
.prof-id-badge:active{background:rgba(168,85,247,0.2);border-color:rgba(168,85,247,0.4)}
.prof-id-badge code{font-family:inherit;color:#c084fc;font-weight:600}
.prof-id-badge .copy-ico{width:11px;height:11px;opacity:0.7}

.vip-role-tag{
  display:inline-flex;align-items:center;gap:4px;padding:3px 9px;
  border-radius:20px;font-size:10.5px;font-weight:700;
  letter-spacing:0.3px;white-space:nowrap;flex-shrink:0;
}
.vip-role-tag i,.vip-role-tag svg{width:12px;height:12px}
.vip-role-tag.role-seller-vip{
  background:linear-gradient(135deg,rgba(245,158,11,0.25),rgba(239,68,68,0.25));
  border:1px solid rgba(245,158,11,0.6);color:#fbbf24;
  box-shadow:0 0 12px rgba(245,158,11,0.35);text-shadow:0 0 8px rgba(245,158,11,0.5);
}
.vip-role-tag.role-seller{
  background:linear-gradient(135deg,rgba(59,130,246,0.2),rgba(139,92,246,0.2));
  border:1px solid rgba(96,165,250,0.5);color:#93c5fd;
  box-shadow:0 0 10px rgba(59,130,246,0.25);
}
.vip-role-tag.role-admin{
  background:linear-gradient(135deg,rgba(236,72,153,0.25),rgba(168,85,247,0.25));
  border:1px solid rgba(236,72,153,0.6);color:#f472b6;
  box-shadow:0 0 12px rgba(236,72,153,0.35);
}
.vip-role-tag.role-user{
  background:rgba(148,163,184,0.12);border:1px solid rgba(148,163,184,0.25);
  color:#cbd5e1;
}

/* ─── PAGE ─── */
.page{
  display:none;padding:20px var(--pad) calc(var(--nav-h) + 28px);
  position:relative;z-index:1;
  animation:page-enter .14s ease-out;
}
.page.active{display:block}
.page.exit-left{animation:page-exit-left .35s ease both}
.page.exit-right{animation:page-exit-right .35s ease both}
@keyframes page-enter{from{opacity:.65;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
@keyframes page-exit-left{to{opacity:0;transform:translateX(-30px)}}
@keyframes page-exit-right{to{opacity:0;transform:translateX(30px)}}

.mb-16{margin-bottom:18px}

/* ─── HERO 3D TILT ─── */
.page-hero{
  display:flex;align-items:center;gap:16px;margin-bottom:24px;
  padding:18px;border-radius:var(--r-xl);
  background:rgba(20,24,57,0.88);border:1px solid var(--glass-border);
  box-shadow:0 8px 30px rgba(4,8,33,0.22);
  transition:box-shadow .3s;
}
.page-hero:hover{box-shadow:0 8px 32px rgba(139,92,246,0.2)}
.page-hero-icon{
  width:60px;height:60px;border-radius:18px;
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));
  display:flex;align-items:center;justify-content:center;font-size:28px;
  box-shadow:0 8px 24px rgba(139,92,246,0.35),inset 0 1px 0 rgba(255,255,255,0.15);
  flex-shrink:0;animation:float 3s ease-in-out infinite;
}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.page-hero-text{flex:1;min-width:0}
.page-hero-title{
  font-size:24px;font-weight:800;
  background:linear-gradient(135deg,#fff 30%,var(--primary-light) 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  letter-spacing:-0.5px;margin-bottom:2px;
}
.page-hero-sub{font-size:12px;color:var(--t-3)}

/* ─── VIP CARD GLASSMORPHISM ─── */
.vip-card{
  position:relative;padding:18px;margin-bottom:16px;
  background:var(--glass);backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border:1px solid var(--glass-border);border-radius:var(--r-lg);
  overflow:hidden;transition:all .35s cubic-bezier(0.16,1,0.3,1);
}
.vip-card::before{
  content:'';position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(167,139,250,0.2),transparent);
}
.vip-card:hover{
  border-color:rgba(255,255,255,0.10);
  box-shadow:0 8px 32px rgba(139,92,246,0.10);
}
.vip-card-title{
  display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;
  color:var(--t-1);text-transform:uppercase;letter-spacing:0.8px;margin-bottom:14px;
}
.vip-card-title .ico{
  width:28px;height:28px;border-radius:8px;
  display:flex;align-items:center;justify-content:center;font-size:14px;
}
.vip-card.vip-card-gold{
  background:linear-gradient(135deg,rgba(245,158,11,0.06),rgba(251,146,60,0.03));
  border-color:rgba(245,158,11,0.2);
}
.vip-card.vip-card-gold::before{background:linear-gradient(90deg,transparent,rgba(245,158,11,0.3),transparent)}
.vip-card.vip-card-gold:hover{border-color:rgba(245,158,11,0.35);box-shadow:0 8px 32px rgba(245,158,11,0.12)}

/* ─── SELECT CARD ─── */
.select-card{
  display:flex;align-items:center;gap:12px;padding:14px;
  background:linear-gradient(135deg,rgba(139,92,246,0.04),rgba(139,92,246,0.01));
  border:1px solid rgba(139,92,246,0.15);border-radius:var(--r-md);
  cursor:pointer;transition:all .25s;
}
.select-card:active{transform:scale(.98)}
.select-card:hover{border-color:rgba(139,92,246,0.35);box-shadow:0 6px 24px rgba(139,92,246,0.10)}
.select-card-ico{
  width:48px;height:48px;border-radius:14px;
  display:flex;align-items:center;justify-content:center;font-size:22px;
  flex-shrink:0;overflow:hidden;
}
.select-card-ico img{width:100%;height:100%;object-fit:cover;border-radius:14px}
.select-card-body{flex:1;min-width:0}
.select-card-title{font-size:15px;font-weight:700;color:var(--t-1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.select-card-sub{font-size:12px;color:#34d399;margin-top:2px}
.select-card-arrow{font-size:24px;color:var(--t-4);flex-shrink:0}

/* ─── PKG ROW ─── */
.pkg-row{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:14px;background:var(--glass);border:1px solid var(--glass-border);
  border-radius:var(--r-md);cursor:pointer;transition:all .25s;
  backdrop-filter: none;-webkit-backdrop-filter: none;
}
.pkg-row:hover{border-color:rgba(139,92,246,0.3);background:var(--surface-2)}
.pkg-row.selected{
  border-color:var(--primary);background:rgba(139,92,246,0.06);
  box-shadow:0 0 0 3px rgba(139,92,246,0.12),0 0 20px rgba(139,92,246,0.08);
}
.pkg-info{flex:1;min-width:0}
.pkg-name{font-size:15px;font-weight:700;color:var(--t-1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pkg-stock{font-size:11px;color:var(--t-3);margin-top:3px}
.pkg-stock b{color:#34d399;font-weight:700}
.pkg-price{
  background:rgba(16,185,129,0.08);padding:8px 14px;border-radius:10px;
  font-weight:800;color:#34d399;font-size:14px;flex-shrink:0;
  font-family:var(--font);font-variant-numeric:tabular-nums;
}

/* ─── QTY ─── */
/* Compact two-column package picker with low-cost motion. */
#homeProducts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;contain:layout paint}
#homeProducts > .empty-box,#homeProducts > .skeleton{grid-column:1/-1}
#homeProducts .pkg-row{min-width:0;min-height:108px;padding:12px 10px;display:flex;flex-direction:column;align-items:stretch;justify-content:space-between;gap:10px;border-radius:14px;background:linear-gradient(145deg,rgba(28,33,70,.78),rgba(14,19,48,.72));box-shadow:inset 0 1px 0 rgba(255,255,255,.045);transition:transform .18s ease,background .18s ease,border-color .18s ease,box-shadow .18s ease;will-change:transform;-webkit-user-select:none;user-select:none}
#homeProducts .pkg-row:hover{transform:translateY(-2px);border-color:rgba(138,222,255,.42);background:linear-gradient(145deg,rgba(48,56,108,.82),rgba(19,29,62,.78));box-shadow:0 8px 18px rgba(38,112,170,.14),inset 0 1px 0 rgba(255,255,255,.08)}
#homeProducts .pkg-row:active{transform:scale(.965);transition-duration:.08s}
#homeProducts .pkg-row.selected{transform:translateY(-1px);border-color:rgba(138,222,255,.72);background:linear-gradient(145deg,rgba(121,104,238,.38),rgba(61,169,205,.25));box-shadow:0 0 0 2px rgba(138,222,255,.14),0 9px 20px rgba(39,130,181,.2)}
#homeProducts .pkg-info{width:100%;min-width:0}
#homeProducts .pkg-name{font-size:14px;line-height:1.25;white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}
#homeProducts .pkg-stock{margin-top:5px;font-size:10px}
#homeProducts .pkg-price{align-self:flex-end;padding:7px 10px;border-radius:9px;font-size:13px;line-height:1;box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
@media(max-width:340px){#homeProducts{gap:6px}#homeProducts .pkg-row{min-height:102px;padding:10px 8px}#homeProducts .pkg-price{font-size:12px;padding:7px 8px}}
@media(prefers-reduced-motion:reduce){#homeProducts .pkg-row{transition:none!important;transform:none!important}}
.qty-row{display:flex;align-items:center;justify-content:space-between;gap:12px}
.qty-label{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:var(--t-1);text-transform:uppercase;letter-spacing:0.6px}
.qty-label .ico{width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:14px}
.qty-selector{display:flex;align-items:center;gap:6px;background:var(--surface-2);border:1px solid var(--b-1);border-radius:var(--r-md);padding:4px}
.qty-btn{
  width:36px;height:36px;border-radius:var(--r-sm);background:var(--surface-3);
  color:var(--t-1);border:none;cursor:pointer;font-size:18px;font-weight:700;
  display:flex;align-items:center;justify-content:center;transition:all .15s;
}
.qty-btn:active{transform:scale(.88);background:rgba(139,92,246,0.2);color:var(--primary-light)}
.qty-input{width:46px;height:36px;background:none;border:none;color:var(--t-1);font-size:15px;font-weight:700;text-align:center;outline:none}

/* ─── ACTION ROW ─── */
.action-row{display:flex;gap:8px;margin-bottom:4px}
.btn-buy-cta{
  flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:2px;padding:12px 18px;border-radius:var(--r-md);
  background:var(--surface-2);border:1px solid var(--b-1);color:var(--t-3);
  cursor:not-allowed;transition:all .25s;min-height:54px;position:relative;overflow:hidden;
}
.btn-buy-cta:not(:disabled){
  background:linear-gradient(135deg,#ffd700 0%,#f59e0b 50%,#d97706 100%);color:#160f04;
  border-color:transparent;cursor:pointer;
  box-shadow:0 8px 24px rgba(245,158,11,0.45),inset 0 1px 0 rgba(255,255,255,0.4);
  animation:none;
}
@keyframes cta-pulse{0%,100%{box-shadow:0 8px 24px rgba(245,158,11,0.45)}50%{box-shadow:0 8px 34px rgba(245,158,11,0.7)}}
.btn-buy-cta:not(:disabled)::before{
  content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,0.25),transparent);
  display:none;
}
@keyframes shimmer-sweep{0%{transform:translateX(0)}100%{transform:translateX(200%)}}
.btn-buy-cta:not(:disabled):active{transform:translateY(1px) scale(.99)}
.btn-buy-cta-title{font-size:14px;font-weight:900;letter-spacing:0.3px;position:relative;z-index:1;color:#160f04}
.btn-buy-cta-sub{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:0.8px;opacity:.9;position:relative;z-index:1;color:#281804}
.btn-buy-cta:disabled::before{display:none}

/* ─── ACTION ICON BUTTON (Download) ─── */
.btn-action-icon{
  width:48px;height:48px;min-width:48px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  border-radius:var(--r-md);
  background:var(--surface-2);border:1px solid var(--b-1);
  color:var(--t-2);cursor:pointer;
  transition:all .25s;position:relative;overflow:hidden;
  font-size:18px;
}
.btn-action-icon:active{transform:scale(.92)}
.btn-action-icon:not(:disabled):hover{
  background:var(--surface-3);border-color:var(--b-2);color:var(--primary-light);
}
.btn-action-icon:disabled{opacity:.35;cursor:not-allowed;pointer-events:none}
.btn-action-icon svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* ─── CAT PICKER ─── */
.cat-picker-list{display:flex;flex-direction:column;gap:8px;padding:4px 0 8px}
.cat-pick-item{
  display:flex;align-items:center;gap:14px;padding:14px 16px;
  background:var(--glass);border:1px solid var(--glass-border);
  border-radius:var(--r-lg);cursor:pointer;transition:all .25s;
  backdrop-filter: none;-webkit-backdrop-filter: none;
}
.cat-pick-item:active{transform:scale(.98)}
.cat-pick-item:hover{border-color:rgba(139,92,246,0.3);background:var(--surface-2)}
.cat-pick-item-ico{
  width:48px;height:48px;border-radius:14px;
  display:flex;align-items:center;justify-content:center;font-size:22px;
  flex-shrink:0;overflow:hidden;background:var(--surface-3);
}
.cat-pick-item-ico img{width:100%;height:100%;object-fit:cover;border-radius:14px}
.cat-pick-item-name{flex:1;min-width:0;font-size:15px;font-weight:700;color:var(--t-1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cat-pick-item-arrow{font-size:20px;color:var(--t-4);flex-shrink:0}

/* ─── BOTTOM NAV LIQUID ─── */
#bottomNav{
  position:fixed;bottom:0;left:0;right:0;height:64px;
  padding:4px 8px calc(4px + env(safe-area-inset-bottom));
  z-index:100;display:flex;align-items:stretch;
  background:rgba(8,7,15,0.6);backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border-top:1px solid var(--glass-border);
}
#bottomNav .nav-item{
  flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:3px;padding:4px 2px;cursor:pointer;color:var(--t-4);
  position:relative;z-index:1;transition:color .35s cubic-bezier(0.16,1,0.3,1);
  text-decoration:none;user-select:none;-webkit-tap-highlight-color:transparent;
}
#bottomNav .nav-item i{
  font-size:18px;line-height:1;width:24px;height:24px;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  transition:transform .35s cubic-bezier(0.34,1.56,0.64,1),filter .35s;
}
#bottomNav .nav-item.active i{transform:scale(1.15);filter:drop-shadow(0 0 10px var(--primary-glow))}
#bottomNav .nav-item:not(.active) i{filter:saturate(.6)}
#bottomNav .nav-item span{
  font-size:10px;font-weight:600;letter-spacing:0;line-height:1.2;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;text-align:center;
}
#bottomNav .nav-item.active{color:#ffd700}
#blobIndicator{
  position:absolute;bottom:calc(50% + 2px);left:0;
  width:48px;height:32px;border-radius:16px;
  background:linear-gradient(135deg,rgba(245,197,86,0.22),rgba(217,119,6,0.16));
  border:1px solid rgba(245,197,86,0.35);
  box-shadow:0 0 14px rgba(245,197,86,0.25);
  backdrop-filter: none;-webkit-backdrop-filter: none;
  transform:translateY(50%);pointer-events:none;
  transition:left .45s cubic-bezier(0.34,1.56,0.64,1),width .45s cubic-bezier(0.34,1.56,0.64,1);
  z-index:-1;
}

/* ─── SECTION TITLE ─── */
.sec-title{
  display:flex;align-items:center;gap:8px;font-size:14px;font-weight:700;
  color:var(--t-1);margin:18px 0 12px;letter-spacing:-0.2px;
}
.sec-title .badge{
  font-size:9px;font-weight:700;padding:3px 8px;border-radius:var(--r-pill);
  background:var(--primary-soft);color:var(--primary-light);
  text-transform:uppercase;letter-spacing:0.5px;border:1px solid rgba(99,102,241,0.25);
}
.divider{height:1px;background:var(--b-1);margin:22px 0}

/* ─── CATEGORIES ─── */
.cat-scroll{display:flex;gap:8px;overflow-x:auto;margin:0 calc(-1 * var(--pad));padding:4px var(--pad);scroll-snap-type:x mandatory}
.cat-pill{
  display:inline-flex;align-items:center;gap:8px;padding:10px 16px;
  border-radius:var(--r-pill);background:var(--glass);border:1px solid var(--glass-border);
  font-size:13px;font-weight:600;white-space:nowrap;scroll-snap-align:start;
  transition:all .2s;flex-shrink:0;backdrop-filter: none;-webkit-backdrop-filter: none;
}
.cat-pill .icon{font-size:15px}
.cat-pill:hover,.cat-pill.active{background:var(--primary-soft);border-color:rgba(99,102,241,0.4);color:var(--primary-light)}
.cat-pill:active{transform:scale(.96)}
.cat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:18px}
.cat-grid .cat-pill{width:100%;justify-content:flex-start;padding:14px 16px}

/* ─── PRODUCT CINEMATIC ─── */
.product-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.pcard{
  position:relative;border-radius:var(--r-lg);overflow:hidden;
  background:var(--glass);border:1px solid var(--glass-border);
  backdrop-filter: none;-webkit-backdrop-filter: none;
  transition:all .4s cubic-bezier(0.16,1,0.3,1);cursor:pointer;
}
.pcard:hover{border-color:rgba(255,255,255,0.10);box-shadow:0 12px 40px rgba(139,92,246,0.10);transform:translateY(-4px)}
.pcard:active{transform:scale(.97)}
.pcard-thumb{
  position:relative;width:100%;height:120px;overflow:hidden;
  background:linear-gradient(135deg,var(--surface-2),var(--surface-3));
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.pcard-thumb img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  transition:transform .6s cubic-bezier(0.16,1,0.3,1);
}
.pcard:hover .pcard-thumb img{transform:scale(1.08)}
.pcard-overlay{
  position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 50%,rgba(0,0,0,0.5));
  pointer-events:none;transition:background .4s;
}
.pcard:hover .pcard-overlay{background:linear-gradient(180deg,transparent 40%,rgba(0,0,0,0.6))}
.pcard-type{
  position:absolute;bottom:6px;left:6px;font-size:9px;font-weight:700;
  padding:3px 7px;border-radius:var(--r-pill);
  background:rgba(0,0,0,0.5);color:#fff;letter-spacing:0.3px;
  backdrop-filter: none;-webkit-backdrop-filter: none;
}
.pcard-type.key{background:rgba(99,102,241,0.85)}
.pcard-type.account{background:rgba(16,185,129,0.85)}
.pcard-type.link{background:rgba(6,182,212,0.85)}
.pcard-hot{
  position:absolute;top:6px;right:6px;font-size:9px;font-weight:800;
  padding:3px 8px;border-radius:var(--r-pill);
  background:linear-gradient(135deg,#ef4444,#f97316);color:#fff;
  box-shadow:0 3px 8px rgba(239,68,68,0.4);
  animation:none;
}
@keyframes flame-flicker{0%,100%{opacity:1;transform:scale(1)}30%{opacity:.9;transform:scale(1.05)}60%{opacity:.95;transform:scale(.98)}80%{opacity:.85;transform:scale(1.02)}}
.pcard-out{
  position:absolute;top:8px;left:8px;inset:auto;display:inline-flex;align-items:center;justify-content:center;
  background:rgba(220,38,38,0.92);color:#fff;font-size:10.5px;font-weight:800;letter-spacing:0.5px;
  padding:3px 8px;border-radius:6px;box-shadow:0 2px 8px rgba(220,38,38,0.4);border:1px solid rgba(255,255,255,0.2);
  backdrop-filter:none;-webkit-backdrop-filter:none;z-index:5;
}
.pcard-body{padding:11px 12px 14px}
.pcard-name{
  font-size:13px;font-weight:700;color:var(--t-1);margin-bottom:4px;
  display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;
  overflow:hidden;line-height:1.3;min-height:34px;
}
.pcard-price{
  font-size:15px;font-weight:800;color:var(--primary-light);margin-bottom:4px;
  font-variant-numeric:tabular-nums;
}
.pcard-stock{font-size:10px;margin-bottom:8px}
.pcard-stock.ok{color:var(--success)}.pcard-stock.low{color:var(--warning)}.pcard-stock.out{color:var(--danger)}
.pcard-stock::after{content:'';display:block;width:100%;height:5px;border-radius:999px;background:rgba(255,255,255,0.05);margin-top:4px;overflow:hidden;position:relative}
.pcard-stock.ok::after{background:linear-gradient(90deg,var(--success),rgba(16,185,129,0.3));background-size:70% 100%;background-repeat:no-repeat}
.pcard-stock.low::after{background:linear-gradient(90deg,var(--warning),rgba(245,158,11,0.3));background-size:35% 100%;background-repeat:no-repeat}
.pcard-stock.out::after{background:var(--danger);background-size:5% 100%;background-repeat:no-repeat;opacity:.4}
.pcard-stock-bar{width:100%;height:5px;border-radius:999px;overflow:hidden;background:rgba(255,255,255,0.06);margin-top:2px}
.pcard-stock-bar-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--danger),var(--warning),var(--success));transition:width .6s cubic-bezier(0.16,1,0.3,1)}

/* ─── LEGACY PRODUCT CLASS ─── */
.product{background:var(--glass);border:1px solid var(--glass-border);border-radius:var(--r-lg);overflow:hidden;transition:all .25s;position:relative;backdrop-filter: none;-webkit-backdrop-filter: none;transform:translateY(-2px);box-shadow:0 12px 30px rgba(0,0,0,0.3)}
.product-img{width:100%;height:110px;object-fit:cover;background:var(--surface-2)}
.product-img-empty{height:110px;background:linear-gradient(135deg,var(--surface-2),var(--surface-3));display:flex;align-items:center;justify-content:center;font-size:36px;opacity:0.4}
.product-body{padding:12px 13px 13px}
.product-name{font-size:13px;font-weight:700;color:var(--t-1);margin-bottom:4px;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.35;min-height:35px}
.product-price{font-size:15px;font-weight:800;color:var(--primary-light);letter-spacing:-0.3px;margin-bottom:8px;font-variant-numeric:tabular-nums}
.product-stock{font-size:10px;color:var(--t-4);margin-bottom:8px;display:flex;align-items:center;gap:4px}
.product-buy{width:100%;padding:8px;border-radius:var(--r-sm);background:linear-gradient(135deg,var(--primary),var(--primary-light));color:#fff;font-size:12px;font-weight:700;transition:all .2s;box-shadow:0 4px 14px rgba(99,102,241,0.3);position:relative;overflow:hidden}
.product-buy:active{transform:scale(.96)}
.product-buy::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,0.12),transparent);animation:shimmer-sweep 4s ease-in-out infinite}
.product-buy:disabled{background:var(--surface-2);color:var(--t-4);box-shadow:none}
.product-buy:disabled::before{display:none}
.product-hot-badge{position:absolute;top:8px;left:8px;background:linear-gradient(135deg,#ef4444,#f97316);color:#fff;font-size:9px;font-weight:800;padding:3px 8px;border-radius:var(--r-pill);letter-spacing:0.4px;box-shadow:0 4px 10px rgba(239,68,68,0.4);animation:flame-flicker 1.5s ease-in-out infinite}

/* ─── ACTIVITY FEED ─── */
.feed-list{display:flex;flex-direction:column;gap:8px}
.feed-item{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--glass);border:1px solid var(--glass-border);border-radius:var(--r-md);backdrop-filter: none;-webkit-backdrop-filter: none;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}
.feed-ico.buy{background:rgba(99,102,241,0.14);color:var(--primary-light)}
.feed-ico.dep{background:rgba(16,185,129,0.14);color:#34d399}
.feed-body{flex:1;min-width:0}
.feed-text{font-size:12px;color:var(--t-2);line-height:1.45}
.feed-text b{color:var(--t-1);font-weight:700}
.feed-time{font-size:10px;color:var(--t-5);margin-top:2px}
.feed-row{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--glass);border:1px solid var(--glass-border);border-left:3px solid var(--success);border-radius:var(--r-sm);margin-bottom:6px;backdrop-filter: none;-webkit-backdrop-filter: none;height:32px;border-radius:8px;background:rgba(16,185,129,0.12);display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0}
.feed-row-body{flex:1;min-width:0}
.feed-row-text{font-size:12px;color:var(--t-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.feed-row-text b{color:var(--t-1);font-weight:700}
.feed-row-amt{font-size:13px;font-weight:800;color:#34d399;margin-left:4px}
.feed-row-time{font-size:10px;color:var(--t-5);flex-shrink:0}

/* ─── WALLET ─── */
.wallet-hero{
  position:relative;border-radius:var(--r-xl);padding:26px 22px;overflow:hidden;
  background:linear-gradient(135deg,rgba(99,102,241,0.12),rgba(16,185,129,0.06));
  backdrop-filter: none;-webkit-backdrop-filter: none;
  border:1px solid var(--glass-border);
}
.wallet-hero::before{content:'';position:absolute;top:-80px;right:-50px;width:240px;height:240px;border-radius:50%;background:radial-gradient(circle,rgba(129,140,248,0.2),transparent 65%);pointer-events:none}
.wh-inner{position:relative;z-index:1}
.wh-label{font-size:12px;color:var(--t-3);text-transform:uppercase;letter-spacing:1px;font-weight:600;margin-bottom:6px}
.wh-balance{font-size:36px;font-weight:800;letter-spacing:-1px;background:linear-gradient(135deg,#fff,var(--primary-light));-webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:6px;font-variant-numeric:tabular-nums}
.wh-sub{font-size:12px;color:var(--t-3);margin-bottom:18px}
.wh-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.wh-stat{background:rgba(255,255,255,0.03);border:1px solid var(--glass-border);border-radius:var(--r-md);padding:12px 14px}
.wh-stat-val{font-size:16px;font-weight:800;color:var(--t-1);display:block;font-variant-numeric:tabular-nums}
.wh-stat-label{font-size:10px;color:var(--t-4);text-transform:uppercase;letter-spacing:0.6px;font-weight:600;margin-top:2px;display:block}

/* ─── METHOD CARDS ─── */
.dep-method-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:20px}
.dep-method-card{display:flex;align-items:center;gap:10px;padding:14px;background:var(--glass);border:1.5px solid var(--glass-border);border-radius:var(--r-md);cursor:pointer;transition:all .2s;position:relative;backdrop-filter: none;-webkit-backdrop-filter: none;border-color:var(--primary);box-shadow:0 0 0 4px rgba(99,102,241,0.12)}
.dmc-ico{width:40px;height:40px;border-radius:12px;background:var(--surface-2);display:flex;align-items:center;justify-content:center;font-size:19px;flex-shrink:0}
.dep-method-card.active .dmc-ico{background:linear-gradient(135deg,var(--primary),var(--primary-light));box-shadow:0 4px 12px rgba(99,102,241,0.35)}
.dmc-txt{flex:1;min-width:0}
.dmc-label{font-size:13px;font-weight:700;color:var(--t-1)}
.dmc-sub{font-size:10px;color:var(--t-4);margin-top:1px}
.dmc-check{width:22px;height:22px;border-radius:50%;background:var(--surface-2);color:transparent;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;transition:all .2s}
.dep-method-card.active .dmc-check{background:var(--primary);color:#fff}
.wallet-info-divider{position:relative;text-align:center;margin:22px 0 14px}
.wallet-info-divider::before{content:'';position:absolute;top:50%;left:0;right:0;height:1px;background:var(--b-1)}
.wallet-info-divider span{position:relative;background:var(--bg);padding:0 12px;font-size:11px;color:var(--t-4);text-transform:uppercase;letter-spacing:1px;font-weight:600}

/* ─── TABS ─── */
.tab-bar{display:flex;gap:6px;background:var(--glass);border:1px solid var(--glass-border);padding:4px;border-radius:var(--r-md);margin-bottom:16px;backdrop-filter: none;-webkit-backdrop-filter: none;padding:10px 12px;border-radius:var(--r-sm);font-size:12px;font-weight:600;color:var(--t-3);transition:all .2s}
.tab-btn.active{background:var(--primary-soft);color:var(--primary-light)}
.tab-pane{display:none}
.tab-pane.active{display:block;animation:fade-up .3s ease}

/* ─── DEPOSIT ─── */
.dep-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}
.dep-btn{padding:14px 8px;border-radius:var(--r-md);background:var(--glass);border:1.5px solid var(--glass-border);text-align:center;cursor:pointer;transition:all .2s;backdrop-filter: none;-webkit-backdrop-filter: none;border-color:var(--primary);box-shadow:0 0 0 4px rgba(99,102,241,0.12)}
.dep-btn-val{font-size:16px;font-weight:800;color:var(--t-1);letter-spacing:-0.4px;font-variant-numeric:tabular-nums}
.dep-btn.active .dep-btn-val{color:var(--primary-light)}
.dep-btn-sub{font-size:10px;color:var(--t-4);margin-top:2px}
.dep-input-wrap{position:relative;margin-bottom:4px}
.dep-input-ico{position:absolute;left:14px;top:50%;transform:translateY(-50%);font-size:18px;pointer-events:none;z-index:1}
.dep-input-vip{padding-left:44px!important;background:var(--glass)!important;border:1.5px solid var(--glass-border)!important;border-radius:var(--r-md)!important;font-size:14px;color:var(--t-1);height:50px;width:100%;outline:none;transition:all .25s!important;backdrop-filter: none;-webkit-backdrop-filter: none;box-shadow:0 0 0 4px rgba(245,158,11,0.12),0 0 20px rgba(245,158,11,0.08)!important}
.dep-input-vip::placeholder{color:var(--t-4)}

/* ─── BUTTONS ─── */
.btn-main,.btn-vip-primary,.btn-buy,.btn-buy-full{position:relative;overflow:hidden}
.btn-main::before,.btn-vip-primary::before,.btn-buy::before,.btn-buy-full::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,0.1),transparent);display:none;pointer-events:none}
.btn-main{width:100%;padding:15px;border-radius:var(--r-md);background:linear-gradient(135deg,var(--primary),var(--primary-light));color:#fff;font-size:14px;font-weight:700;cursor:pointer;transition:all .2s;box-shadow:0 8px 24px rgba(99,102,241,0.35);letter-spacing:-0.1px}
.btn-main:active{transform:translateY(1px)}
.btn-main:hover{box-shadow:0 12px 28px rgba(99,102,241,0.45)}
.btn-vip-primary{width:100%;padding:15px;border-radius:var(--r-md);background:linear-gradient(135deg,var(--vip-orange),var(--vip-gold));color:#fff;font-size:14px;font-weight:800;letter-spacing:0.5px;text-transform:uppercase;cursor:pointer;border:none;transition:all .25s;box-shadow:0 8px 24px rgba(245,158,11,0.4),inset 0 1px 0 rgba(255,255,255,0.2)}
.btn-vip-primary:active{transform:translateY(1px) scale(.99)}
.btn-buy,.btn-buy-full{width:100%;padding:9px 12px;border-radius:var(--r-sm);background:linear-gradient(135deg,var(--primary),var(--primary-light));color:#fff;font-size:12px;font-weight:700;border:none;cursor:pointer;transition:all .2s;box-shadow:0 4px 12px rgba(99,102,241,0.3)}
.btn-buy:active,.btn-buy-full:active{transform:scale(.96)}
.btn-buy-full{padding:13px;font-size:14px;border-radius:var(--r-md)}
.btn-buy:disabled,.btn-buy-full:disabled{background:rgba(239,68,68,0.12)!important;color:#f87171!important;border:1px solid rgba(239,68,68,0.3)!important;box-shadow:none;cursor:not-allowed}
.btn-buy:disabled::before,.btn-buy-full:disabled::before{display:none}
.btn-apply-voucher{width:100%;padding:10px;border-radius:var(--r-sm);background:rgba(245,158,11,0.12);border:1px solid rgba(245,158,11,0.35);color:var(--warning);font-size:12px;font-weight:700;cursor:pointer;margin-bottom:8px}
.btn-vip-secondary{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:12px 18px;border-radius:var(--r-md);background:var(--surface-2);border:1.5px solid var(--b-2);color:var(--t-1);font-size:13px;font-weight:700;cursor:pointer;transition:all .2s}
.btn-vip-secondary:active{transform:scale(.97)}
.btn-vip-secondary:hover{background:var(--primary-soft);border-color:var(--primary);color:var(--primary-light)}

/* ─── DEPOSIT HISTORY ─── */
.dep-hist-list{display:flex;flex-direction:column;gap:8px}
.dep-hist-item{display:flex;align-items:center;gap:12px;padding:14px;background:var(--glass);border:1px solid var(--glass-border);border-radius:var(--r-md);backdrop-filter: none;-webkit-backdrop-filter: none;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0}
.dep-hist-ico.success,.dep-hist-icon.success{background:rgba(16,185,129,0.14);color:#34d399}
.dep-hist-ico.pending,.dep-hist-icon.pending{background:rgba(245,158,11,0.14);color:#fbbf24}
.dep-hist-ico.expired,.dep-hist-icon.expired{background:rgba(239,68,68,0.14);color:#f87171}
.dep-hist-body{flex:1;min-width:0}
.dep-hist-amount{font-size:14px;font-weight:800;color:var(--t-1);font-variant-numeric:tabular-nums}
.dep-hist-meta{font-size:11px;color:var(--t-4);margin-top:2px}
.dep-hist-status{font-size:10px;font-weight:700;padding:4px 10px;border-radius:var(--r-pill);text-transform:uppercase;letter-spacing:0.4px}
.dep-hist-status.success{background:rgba(16,185,129,0.14);color:#34d399}
.dep-hist-status.pending{background:rgba(245,158,11,0.14);color:#fbbf24}
.dep-hist-status.expired{background:rgba(239,68,68,0.14);color:#f87171}

/* ─── TRANSACTION TIMELINE ─── */
.txn-list{display:flex;flex-direction:column;gap:0;position:relative}
.txn-list::before{content:'';position:absolute;top:24px;bottom:24px;left:28px;width:2px;background:linear-gradient(180deg,var(--primary),rgba(139,92,246,0.1));border-radius:2px}
.txn-item,.txn-row{
  display:flex;align-items:center;gap:12px;padding:12px 14px;
  background:var(--glass);border:1px solid var(--glass-border);
  border-radius:var(--r-md);margin-bottom:8px;
  backdrop-filter: none;-webkit-backdrop-filter: none;
  transition:all .25s;
}
.txn-item:hover,.txn-row:hover{border-color:rgba(255,255,255,0.10)}
.txn-icon,.txn-ico{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}
.txn-icon.deposit,.txn-ico.dep{background:rgba(16,185,129,0.14);color:#34d399}
.txn-icon.purchase,.txn-ico.buy{background:rgba(99,102,241,0.14);color:var(--primary-light)}
.txn-icon.refund,.txn-ico.refund{background:rgba(245,158,11,0.14);color:var(--warning)}
.txn-icon.bonus,.txn-ico.bonus{background:rgba(6,182,212,0.14);color:var(--cyan)}
.txn-main,.txn-body,.txn-info{flex:1;min-width:0}
.txn-name,.txn-title{font-size:13px;font-weight:700;color:var(--t-1)}
.txn-time,.txn-date{font-size:11px;color:var(--t-4);margin-top:2px}
.txn-amount,.txn-amt{font-size:14px;font-weight:800;flex-shrink:0;font-variant-numeric:tabular-nums}
.txn-amount.plus,.txn-amt.plus{color:var(--success)}
.txn-amount.minus,.txn-amt.minus{color:var(--danger)}

/* ─── TIMELINE DOTS for status ─── */
.txn-status-dot{width:10px;height:10px;border-radius:50%;display:inline-block;flex-shrink:0}
.txn-status-dot.pending{background:var(--warning);animation:dot-pulse 1.6s ease-in-out infinite}
.txn-status-dot.success{background:var(--success);animation:check-bounce .5s cubic-bezier(0.34,1.56,0.64,1)}
@keyframes dot-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.7)}}
@keyframes check-bounce{0%{transform:scale(0)}50%{transform:scale(1.3)}100%{transform:scale(1)}}
.txn-swipe-hint{font-size:9px;color:var(--t-5);text-align:center;margin-top:2px;opacity:0;transition:opacity .3s}
.txn-row:hover .txn-swipe-hint{opacity:1}

/* ─── CARD CHARGE ─── */
.card-telco-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:18px}
.card-telco-btn{padding:16px 8px;border-radius:var(--r-md);background:var(--glass);border:1.5px solid var(--glass-border);text-align:center;cursor:pointer;transition:all .2s;backdrop-filter: none;-webkit-backdrop-filter: none;border-color:var(--primary);box-shadow:0 0 0 4px rgba(99,102,241,0.12)}
.card-telco-name{font-size:12px;font-weight:800;letter-spacing:-0.2px}
.card-amount-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}
.card-amount-btn{padding:14px 8px;border-radius:var(--r-md);background:var(--glass);border:1.5px solid var(--glass-border);text-align:center;cursor:pointer;transition:all .2s;backdrop-filter: none;-webkit-backdrop-filter: none;border-color:var(--primary);box-shadow:0 0 0 4px rgba(99,102,241,0.12)}
.card-amount-val{font-size:14px;font-weight:800;color:var(--t-1)}
.card-amount-btn.active .card-amount-val{color:var(--primary-light)}
.card-amount-recv{font-size:10px;color:var(--success);margin-top:2px;font-weight:600}
.card-est-box{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background:linear-gradient(135deg,rgba(16,185,129,0.1),rgba(16,185,129,0.03));border:1px solid rgba(16,185,129,0.25);border-radius:var(--r-md);margin-bottom:14px;backdrop-filter: none;-webkit-backdrop-filter: none;color:var(--t-3)}
.card-est-val{font-size:18px;font-weight:800;color:#34d399;font-variant-numeric:tabular-nums}
.dep-input,.card-input{width:100%;padding:14px 16px;background:var(--glass);border:1.5px solid var(--glass-border);border-radius:var(--r-md);color:var(--t-1);font-size:14px;margin-bottom:12px;outline:none;transition:all .25s;backdrop-filter: none;-webkit-backdrop-filter: none;box-shadow:0 0 0 4px rgba(99,102,241,0.12),0 0 20px rgba(139,92,246,0.06)}
.dep-input::placeholder,.card-input::placeholder{color:var(--t-5)}

/* ─── SKELETON SHIMMER MESH ─── */
.skeleton{background:linear-gradient(110deg,var(--surface) 25%,rgba(167,139,250,0.06) 40%,var(--surface) 55%);background-size:250% 100%;animation:shimmer 1.6s ease-in-out infinite;border-radius:var(--r-sm)}
@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* ─── TOAST ─── */
#toastWrap{position:fixed;top:70px;left:50%;transform:translateX(-50%);z-index:9000;display:flex;flex-direction:column;gap:8px;pointer-events:none;max-width:92%}
.toast{padding:12px 18px;background:rgba(18,16,34,0.75);backdrop-filter: none;-webkit-backdrop-filter: none;border:1px solid var(--glass-border);border-radius:var(--r-md);color:var(--t-1);font-size:13px;font-weight:600;box-shadow:0 12px 40px rgba(0,0,0,0.5);animation:toast-in .35s cubic-bezier(0.16,1,0.3,1);pointer-events:auto;max-width:360px}
.toast.success{border-color:rgba(16,185,129,0.4);background:rgba(16,185,129,0.08)}
.toast.error{border-color:rgba(239,68,68,0.4);background:rgba(239,68,68,0.08)}
.toast.info{border-color:rgba(99,102,241,0.4);background:rgba(99,102,241,0.08)}
@keyframes toast-in{from{opacity:0;transform:translateY(-12px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}

/* ─── SUCCESS OVERLAY (SUPER PREMIUM RECEIPT MODAL) ─── */
#successOverlay {
  position: fixed;
  inset: 0;
  z-index: 10000;
  background: rgba(8, 7, 18, 0.88);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s cubic-bezier(0.16, 1, 0.3, 1), visibility 0.3s;
}
#successOverlay.show {
  opacity: 1;
  visibility: visible;
}
.suc-receipt-card {
  background: linear-gradient(145deg, #111428 0%, #0d0b1a 100%);
  border: 1px solid rgba(236, 72, 153, 0.5);
  box-shadow: 0 0 30px rgba(236, 72, 153, 0.25), 0 0 60px rgba(6, 182, 212, 0.15);
  border-radius: 24px;
  width: 100%;
  max-width: 380px;
  padding: 24px 20px;
  color: #fff;
  transform: scale(0.85);
  transition: transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);
  box-sizing: border-box;
}
#successOverlay.show .suc-receipt-card {
  transform: scale(1);
}
.suc-receipt-header {
  text-align: left;
  margin-bottom: 18px;
}
.suc-receipt-title {
  font-size: 20px;
  font-weight: 800;
  color: #ffffff;
  margin: 0 0 4px 0;
  letter-spacing: 0.3px;
}
.suc-receipt-sub {
  font-size: 11px;
  font-weight: 700;
  color: #94a3b8;
  letter-spacing: 1px;
  text-transform: uppercase;
}
.suc-receipt-box {
  background: rgba(255, 255, 255, 0.03);
  border: 1px dashed rgba(255, 255, 255, 0.12);
  border-radius: 14px;
  padding: 14px 16px;
  margin-bottom: 18px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.suc-receipt-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 13px;
}
.suc-receipt-label {
  color: #94a3b8;
  font-weight: 500;
}
.suc-receipt-val {
  color: #f8fafc;
  font-weight: 600;
  text-align: right;
}
.suc-receipt-val.green {
  color: #34d399;
  font-weight: 800;
  font-size: 15px;
}
.suc-receipt-val a {
  color: #22d3ee;
  text-decoration: none;
  font-weight: 700;
}
.suc-key-sec {
  margin-bottom: 20px;
}
.suc-key-sec-title {
  font-size: 11px;
  font-weight: 700;
  color: #64748b;
  letter-spacing: 0.8px;
  text-transform: uppercase;
  margin-bottom: 8px;
}
.suc-key-card-item {
  background: rgba(16, 185, 129, 0.08);
  border: 1px solid rgba(16, 185, 129, 0.4);
  border-radius: 12px;
  padding: 10px 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 8px;
}
.suc-key-card-item .key-text {
  font-family: SFMono-Regular, Consolas, monospace;
  font-size: 13px;
  color: #34d399;
  font-weight: 700;
  word-break: break-all;
}
.suc-key-card-item .btn-copy-suc {
  background: rgba(16, 185, 129, 0.2);
  border: 1px solid rgba(16, 185, 129, 0.5);
  color: #34d399;
  border-radius: 8px;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  flex-shrink: 0;
  transition: transform 0.15s ease;
}
.suc-key-card-item .btn-copy-suc:active {
  transform: scale(0.9);
}
.suc-receipt-close-btn {
  width: 100%;
  background: rgba(6, 182, 212, 0.05);
  border: 1px solid #06b6d4;
  color: #06b6d4;
  font-size: 13px;
  font-weight: 800;
  padding: 13px;
  border-radius: 25px;
  cursor: pointer;
  transition: all 0.2s ease;
  text-align: center;
  letter-spacing: 0.8px;
  text-transform: uppercase;
}
.suc-receipt-close-btn:active {
  background: rgba(6, 182, 212, 0.25);
  transform: scale(0.98);
}

/* ─── MODAL SHEET SPRING ─── */
.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,0.6);backdrop-filter: none;-webkit-backdrop-filter: none;z-index:9400;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}
.modal-backdrop.show,.modal-backdrop.open{opacity:1;visibility:visible}
.modal-sheet{
  position:fixed;left:0;right:0;bottom:0;z-index:9500;
  background:rgba(18,16,34,0.85);backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border-top:1px solid var(--glass-border);
  border-radius:var(--r-xl) var(--r-xl) 0 0;
  padding:14px 18px calc(20px + env(safe-area-inset-bottom));
  max-height:88vh;overflow-y:auto;
  transform:translateY(100%);
  transition:transform .45s cubic-bezier(0.34,1.56,0.64,1);
  box-shadow:0 -16px 48px rgba(0,0,0,0.6);
  -webkit-overflow-scrolling:touch;
}
.modal-sheet.dragging{transition:none!important}
.modal-sheet.show,.modal-sheet.open{transform:translateY(0)}
.modal-handle-wrap{display:flex;justify-content:center;padding:4px 0 12px;margin:-4px 0 0;cursor:grab;touch-action:none}
.modal-handle{width:44px;height:5px;background:rgba(255,255,255,0.15);border-radius:999px}
.modal-title{font-size:17px;font-weight:700;color:var(--t-1);margin-bottom:14px;letter-spacing:-0.3px}
.modal-close{position:relative;width:100%;margin-top:16px;padding:13px;border-radius:var(--r-md);background:var(--surface-2);border:1px solid var(--b-1);color:var(--t-2);font-size:13px;font-weight:600;cursor:pointer;transition:all .15s}
.modal-close:active{transform:scale(.98)}
.modal-close:hover{background:var(--surface-3);color:var(--t-1)}
.stagger-item{opacity:1!important;transform:none!important;animation:none!important}
@keyframes stagger-in{to{opacity:1;transform:translateY(0)}}

/* ─── PROFILE ─── */
.prof-top{text-align:center;padding:20px 0 18px}
.prof-ava-wrap{display:inline-block;padding:4px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--primary-light));margin-bottom:12px;box-shadow:0 8px 32px rgba(139,92,246,0.4)}
.prof-ava{width:80px;height:80px;border-radius:50%;background:var(--surface-2);display:flex;align-items:center;justify-content:center;font-size:36px;border:3px solid var(--bg)}
.prof-name{font-size:19px;font-weight:800;color:var(--t-1);letter-spacing:-0.4px;margin-bottom:2px}
.prof-id{font-size:12px;color:var(--t-4)}
.prof-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.prof-stat{padding:14px 8px;background:var(--glass);border:1px solid var(--glass-border);border-radius:var(--r-md);text-align:center;backdrop-filter: none;-webkit-backdrop-filter: none;font-size:16px;font-weight:800;color:var(--primary-light);letter-spacing:-0.3px;font-variant-numeric:tabular-nums}
.prof-stat-label{display:block;font-size:10px;color:var(--t-4);text-transform:uppercase;letter-spacing:0.5px;font-weight:600;margin-top:2px}

/* ─── INFO CARD ─── */
.info-card{background:var(--glass);border:1px solid var(--glass-border);border-radius:var(--r-md);margin-bottom:12px;overflow:hidden;backdrop-filter: none;-webkit-backdrop-filter: none;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid var(--b-1);transition:background .15s}
.info-row:last-child{border-bottom:none}
.info-row:hover{background:var(--surface-2)}
.info-label{font-size:13px;color:var(--t-3)}
.info-val{font-size:13px;font-weight:700;color:var(--t-1);text-align:right;word-break:break-all;max-width:60%}
.info-val.accent{color:var(--primary-light)}

/* ─── EMPTY STATE ─── */
.empty{text-align:center;padding:40px 16px;color:var(--t-4)}
.empty-ico{display:block;font-size:56px;margin-bottom:12px;animation:empty-bounce 2s ease-in-out infinite}
@keyframes empty-bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.empty-title{font-size:14px;font-weight:700;color:var(--t-2);margin-bottom:4px}
.empty-desc{font-size:12px;color:var(--t-4)}
.empty-box{border:1.5px dashed rgba(167,139,250,0.18);border-radius:var(--r-md);padding:28px 16px;text-align:center;color:var(--t-4);background:rgba(167,139,250,0.02)}
.empty-box-ico{width:54px;height:54px;border-radius:14px;background:var(--surface-2);display:inline-flex;align-items:center;justify-content:center;font-size:22px;color:var(--t-4);margin-bottom:10px;animation:float 3s ease-in-out infinite}
.empty-box-text{font-size:13px;color:var(--t-4)}
.empty-state{text-align:center;padding:36px 16px;color:var(--t-4)}
.empty-state .empty-icon{display:block;font-size:48px;margin-bottom:12px;opacity:0.6;animation:empty-bounce 2s ease-in-out infinite}
.empty-state h3{font-size:16px;color:var(--t-2);margin-bottom:4px;font-weight:700}
.empty-state p{font-size:12px;color:var(--t-4)}

/* ─── LEADERBOARD ─── */
.lb-filter{display:flex;gap:6px;margin-bottom:12px;background:var(--glass);border:1px solid var(--glass-border);padding:4px;border-radius:var(--r-md);backdrop-filter: none;-webkit-backdrop-filter: none;padding:8px 12px;border-radius:var(--r-sm);font-size:12px;font-weight:600;color:var(--t-3);transition:all .2s}
.lb-filter-btn.active{background:linear-gradient(135deg,var(--primary),var(--primary-light));color:#fff;box-shadow:0 4px 12px rgba(99,102,241,0.35)}
.lb-list{display:flex;flex-direction:column;gap:8px}
.lb-item{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--glass);border:1px solid var(--glass-border);border-radius:var(--r-md);transition:all .2s;backdrop-filter: none;-webkit-backdrop-filter: none;height:32px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;background:var(--surface-2);color:var(--t-3);flex-shrink:0}
.lb-item[data-rank="1"] .lb-rank,.lb-rank.rank-1{background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#fff;box-shadow:0 4px 12px rgba(245,158,11,0.4)}
.lb-item[data-rank="2"] .lb-rank,.lb-rank.rank-2{background:linear-gradient(135deg,#cbd5e1,#94a3b8);color:#fff}
.lb-item[data-rank="3"] .lb-rank,.lb-rank.rank-3{background:linear-gradient(135deg,#fb923c,#ea580c);color:#fff}
.lb-body{flex:1;min-width:0}
.lb-name{font-size:13px;font-weight:700;color:var(--t-1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lb-sub{font-size:11px;color:var(--t-4);margin-top:1px}
.lb-val{font-size:14px;font-weight:800;color:var(--primary-light);letter-spacing:-0.3px;font-variant-numeric:tabular-nums}
.lb-info{flex:1;min-width:0}
.lb-hint{font-size:11px;color:var(--t-4);margin-top:2px}
.lb-right{text-align:right;flex-shrink:0}
.lb-amount{font-size:14px;font-weight:800;color:var(--primary-light);letter-spacing:-0.3px}
.lb-count{font-size:10px;color:var(--t-4);margin-top:2px}
.lb-rank.gold{background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#fff;box-shadow:0 4px 12px rgba(245,158,11,0.4)}
.lb-rank.silver{background:linear-gradient(135deg,#cbd5e1,#94a3b8);color:#fff}
.lb-rank.bronze{background:linear-gradient(135deg,#fb923c,#ea580c);color:#fff}
.lb-me{border-color:rgba(99,102,241,0.4)!important;background:rgba(99,102,241,0.06)!important}
.lb-list-vip{display:flex;flex-direction:column;gap:10px}
.lb-list-vip .lb-item{padding:14px 16px;border-radius:var(--r-lg)}
.lb-list-vip .lb-item.rank-1{background:linear-gradient(135deg,rgba(245,158,11,0.1),rgba(245,158,11,0.02));border-color:rgba(245,158,11,0.3);box-shadow:0 6px 24px rgba(245,158,11,0.12)}
.lb-list-vip .lb-item.rank-2{background:linear-gradient(135deg,rgba(148,163,184,0.08),rgba(148,163,184,0.02));border-color:rgba(148,163,184,0.25)}
.lb-list-vip .lb-item.rank-3{background:linear-gradient(135deg,rgba(251,146,60,0.08),rgba(251,146,60,0.02));border-color:rgba(251,146,60,0.25)}
.lb-avatar{width:36px;height:36px;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;flex-shrink:0}

/* ─── TIMELINE STYLES ─── */
.ord-card,.order-card{
  background:var(--glass);border:1px solid var(--glass-border);border-radius:var(--r-md);
  padding:14px;margin-bottom:10px;backdrop-filter: none;-webkit-backdrop-filter: none;
  transition:all .25s;
}
.ord-card:hover,.order-card:hover{border-color:rgba(255,255,255,0.10)}
.ord-head,.order-header{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:8px}
.ord-product,.order-product{font-size:14px;font-weight:700;color:var(--t-1);flex:1;min-width:0}
.ord-date,.order-date{font-size:11px;color:var(--t-4);flex-shrink:0}
.ord-meta{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.ord-price,.order-price{font-size:15px;font-weight:800;color:var(--primary-light);font-variant-numeric:tabular-nums}
.ord-code{font-size:10px;color:var(--t-4);font-family:var(--font-mono);margin-bottom:8px}
.ord-key-row{margin-top:8px;background:var(--bg);border:1px solid var(--b-1);border-radius:var(--r-sm);padding:10px 12px}
.ord-key-label{font-size:11px;color:var(--t-3);margin-bottom:6px}
.ord-key-val{font-family:var(--font-mono);font-size:12px;color:transparent;background:var(--surface-2);padding:8px 10px;border-radius:var(--r-sm);cursor:pointer;word-break:break-all;user-select:all;filter:blur(5px);transition:filter .2s}
.ord-key-val.revealed{color:var(--primary-light);filter:blur(0)}

/* ─── MISC ─── */
.ref-link-box{background:var(--glass);border:1px solid var(--glass-border);border-radius:var(--r-sm);padding:12px;font-size:12px;color:var(--primary-light);word-break:break-all;font-family:var(--font-mono);margin-bottom:12px;backdrop-filter: none;-webkit-backdrop-filter: none;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--glass);border:1px solid var(--glass-border);border-radius:var(--r-sm);backdrop-filter: none;-webkit-backdrop-filter: none;color:var(--t-3)}
.ref-row-val{font-size:14px;font-weight:800;background:linear-gradient(135deg,#10b981,#34d399);-webkit-background-clip:text;background-clip:text;color:transparent}
.ref-stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}
.ref-stat-box{background:var(--glass);border:1px solid var(--glass-border);border-radius:var(--r-sm);padding:12px;text-align:center;backdrop-filter: none;-webkit-backdrop-filter: none;font-weight:800;color:var(--primary-light)}
.ref-stat-label{font-size:10px;color:var(--t-4);text-transform:uppercase;letter-spacing:0.5px;font-weight:600;margin-top:2px}
.ref-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.btn-ref-action{padding:11px;border-radius:var(--r-sm);font-size:12px;font-weight:700;cursor:pointer;transition:all .2s;min-height:44px}
.btn-ref-action:active{transform:scale(.96)}
.btn-ref-copy{background:var(--surface-2);border:1px solid var(--b-2);color:var(--t-2)}
.btn-ref-share{background:linear-gradient(135deg,var(--primary),var(--primary-light));color:#fff;box-shadow:0 4px 14px rgba(99,102,241,0.3)}
.lang-toggle{display:inline-flex;background:var(--surface-2);border:1px solid var(--b-1);border-radius:var(--r-pill);padding:2px;font-size:10px;font-weight:700}
.lang-toggle button{border:none;background:none;color:var(--t-4);padding:4px 10px;border-radius:var(--r-pill);cursor:pointer}
.lang-toggle button.active{background:var(--primary);color:#fff}
.pkg-list{display:flex;flex-direction:column;gap:8px}
.bank-item{
  background:var(--glass);border:1px solid var(--glass-border);
  border-radius:var(--r-lg);padding:16px;margin-bottom:10px;
  backdrop-filter: none;-webkit-backdrop-filter: none;
  position:relative;overflow:hidden;transition:all .25s;
}
.bank-item::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(167,139,250,0.15),transparent)}
.bank-item:hover{border-color:rgba(255,255,255,0.10);box-shadow:0 8px 24px rgba(139,92,246,0.06)}
.bank-item-name{font-size:13px;font-weight:700;color:var(--t-1);margin-bottom:10px;letter-spacing:-0.2px}
.bank-item .ibox-row{border-bottom-color:rgba(255,255,255,0.04)}
.bank-item .ibox-row:last-child{border-bottom:none}
.badge-pill{display:inline-flex;align-items:center;font-size:10px;font-weight:700;padding:3px 8px;border-radius:var(--r-pill);background:var(--surface-2);color:var(--t-3)}
.badge-pill.hot{background:linear-gradient(135deg,#ef4444,#f97316);color:#fff;animation:flame-flicker 1.5s ease-in-out infinite}
.badge-pill.new{background:linear-gradient(135deg,var(--primary),var(--primary-light));color:#fff}
.badge-pill.success{background:rgba(16,185,129,0.14);color:#34d399}
.warn-box{background:rgba(245,158,11,0.05);border:1px solid rgba(245,158,11,0.12);border-radius:var(--r-md);padding:14px 16px;font-size:11px;color:var(--t-3);line-height:1.7;margin-top:12px;backdrop-filter: none;-webkit-backdrop-filter: none;font-weight:800}
.copy-chip{font-size:10px;padding:4px 10px;border-radius:var(--r-pill);background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;font-weight:700;margin-left:6px;border:none;cursor:pointer;transition:all .2s;box-shadow:0 2px 8px rgba(139,92,246,0.25);display:inline-flex;align-items:center;gap:4px}
.copy-chip svg{width:12px;height:12px;pointer-events:none}
.copy-chip:active{transform:scale(.9)}
.copy-chip:hover{box-shadow:0 4px 12px rgba(139,92,246,0.35)}
.copy-chip.copied{background:linear-gradient(135deg,#10b981,#059669);box-shadow:0 2px 8px rgba(16,185,129,0.25)}
.qr-wrap{text-align:center;margin:14px 0 4px;padding:18px;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.06);border-radius:var(--r-md);backdrop-filter: none;-webkit-backdrop-filter: none;position:relative;overflow:hidden}
.qr-wrap::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 50% 50%,rgba(255,255,255,0.03),transparent 60%);pointer-events:none}
.qr-wrap img{width:100%;max-width:180px;border-radius:12px;display:block;margin:0 auto;position:relative;z-index:1;box-shadow:0 4px 16px rgba(0,0,0,0.3)}
.qr-hint{font-size:10px;color:var(--t-4);margin-top:8px;font-weight:600;position:relative;z-index:1}

/* ─── IBOX (payment/product detail info card) ─── */
.ibox{background:var(--glass);border:1px solid var(--glass-border);border-radius:var(--r-md);padding:4px 16px;backdrop-filter: none;-webkit-backdrop-filter: none;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid rgba(255,255,255,0.04)}
.ibox-row:last-child{border-bottom:none}
.ibox-l{font-size:12px;color:var(--t-3);flex-shrink:0;display:flex;align-items:center;gap:6px}
.ibox-r{font-size:13px;font-weight:700;color:var(--t-1);text-align:right;word-break:break-all;max-width:60%}
.ibox-r.accent{color:var(--primary-light)}.ibox-r.gold{font-size:17px;font-weight:800;background:linear-gradient(135deg,var(--vip-gold),var(--vip-gold-2));-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 0 20px rgba(245,158,11,0.3)}.ibox-r.purple{font-family:var(--font-mono);font-size:13px;font-weight:700;color:var(--primary-light);letter-spacing:-0.3px;background:rgba(139,92,246,0.06);padding:4px 10px;border-radius:var(--r-sm);border:1px solid rgba(139,92,246,0.1)}.ibox-r.green{color:var(--success);font-weight:700}
.ibox-r .copy-chip{margin-left:8px}

/* ─── STAT TILE (profile overview) ─── */
.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:4px}
.stat-tile{background:var(--glass);border:1px solid var(--glass-border);border-radius:var(--r-md);padding:14px 6px;text-align:center;backdrop-filter: none;-webkit-backdrop-filter: none;position:relative;overflow:hidden;transition:all .25s;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:90px;gap:4px}
.stat-tile::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(167,139,250,0.12),transparent)}
.stat-tile:hover{border-color:rgba(255,255,255,0.10);box-shadow:0 4px 16px rgba(139,92,246,0.06)}
.stat-tile-ico{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:18px;margin-bottom:0;flex-shrink:0}
.stat-tile-ico.purple{background:rgba(139,92,246,0.15);color:var(--primary-light)}
.stat-tile-ico.gold{background:rgba(245,158,11,0.15);color:var(--vip-gold-2)}
.stat-tile-ico.green{background:rgba(16,185,129,0.15);color:#34d399}
.stat-tile-val{font-size:17px;font-weight:800;color:var(--t-1);margin-bottom:2px;font-variant-numeric:tabular-nums;letter-spacing:-0.3px}
.stat-tile-label{font-size:10px;color:var(--t-4);text-transform:uppercase;letter-spacing:0.6px;font-weight:600}

/* ─── ORDER ITEM (profile inventory) ─── */
.ord-item{background:var(--glass);border:1px solid var(--glass-border);border-radius:var(--r-lg);padding:16px;margin-bottom:10px;backdrop-filter: none;-webkit-backdrop-filter: none;transition:all .25s;position:relative;overflow:hidden}
.ord-item::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(167,139,250,0.12),transparent)}
.ord-item:hover{border-color:rgba(255,255,255,0.10);box-shadow:0 8px 24px rgba(139,92,246,0.06)}
.ord-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:10px}
.ord-name{font-size:15px;font-weight:700;color:var(--t-1);flex:1;min-width:0;letter-spacing:-0.2px}
.ord-price{font-size:17px;font-weight:800;color:var(--primary-light);flex-shrink:0;font-variant-numeric:tabular-nums}
.ord-meta{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--t-4);margin-top:6px;padding-top:8px;border-top:1px solid rgba(255,255,255,0.04)}
.ord-key-wrap{margin-top:12px;display:flex;align-items:center;gap:8px}
.ord-key{flex:1;min-width:0;padding:12px 14px;background:rgba(0,0,0,0.2);border:1px solid rgba(139,92,246,0.1);border-radius:var(--r-sm);font-family:var(--font-mono);font-size:12px;color:var(--primary-light);word-break:break-all;cursor:pointer;transition:all .25s;backdrop-filter: none;-webkit-backdrop-filter: none;user-select:all}
.ord-key:hover{border-color:rgba(139,92,246,0.3);background:rgba(139,92,246,0.04)}
.btn-copy-key{width:38px;height:38px;border-radius:var(--r-sm);background:var(--surface-2);border:1px solid var(--b-2);color:var(--primary-light);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;flex-shrink:0}
.btn-copy-key:active{transform:scale(.9)}
.btn-copy-key svg{width:16px;height:16px;pointer-events:none}
.btn-copy-key.copied{background:rgba(16,185,129,.14);border-color:rgba(16,185,129,.3);color:#34d399}
#profileInventory .ord-item:last-child{margin-bottom:0}

/* ─── ORDER CARD (loadOrders) ─── */
.ord-card,.order-card{background:var(--glass);border:1px solid var(--glass-border);border-radius:var(--r-md);padding:16px;margin-bottom:10px;backdrop-filter: none;-webkit-backdrop-filter: none;transition:all .25s;position:relative;overflow:hidden}
.ord-card::before,.order-card::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(167,139,250,0.12),transparent)}
.ord-card:hover,.order-card:hover{border-color:rgba(255,255,255,0.10);box-shadow:0 8px 24px rgba(139,92,246,0.06)}
.ord-head,.order-header{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:8px}
.ord-product,.order-product{font-size:14px;font-weight:700;color:var(--t-1);flex:1;min-width:0}
.ord-date,.order-date{font-size:11px;color:var(--t-4);flex-shrink:0}
.ord-meta{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.ord-price,.order-price{font-size:15px;font-weight:800;color:var(--primary-light);font-variant-numeric:tabular-nums}
.ord-code{font-size:10px;color:var(--t-4);font-family:var(--font-mono);margin-bottom:8px}
.ord-key-row{margin-top:8px;background:var(--bg);border:1px solid var(--b-1);border-radius:var(--r-sm);padding:10px 12px}
.ord-key-label{font-size:11px;color:var(--t-3);margin-bottom:6px}
.ord-key-val{font-family:var(--font-mono);font-size:12px;color:transparent;background:var(--surface-2);padding:8px 10px;border-radius:var(--r-sm);cursor:pointer;word-break:break-all;user-select:all;filter:blur(5px);transition:filter .2s}
.ord-key-val.revealed{color:var(--primary-light);filter:blur(0)}

/* ─── PRODUCT DETAIL ─── */
.pdetail-img{width:100%;border-radius:var(--r-md);margin-bottom:14px;background:var(--surface-2)}
.pdetail-title{font-size:18px;font-weight:800;color:var(--t-1);margin-bottom:6px;letter-spacing:-0.3px}
.pdetail-price{font-size:24px;font-weight:800;color:var(--primary-light);margin-bottom:14px;font-variant-numeric:tabular-nums}
.pdetail-desc{font-size:12px;color:var(--t-3);line-height:1.7;margin-bottom:14px;padding:12px 14px;background:var(--glass);border:1px solid var(--glass-border);border-radius:var(--r-sm);backdrop-filter: none;-webkit-backdrop-filter: none;font-weight:700;padding:3px 8px;border-radius:var(--r-pill);background:var(--surface-2);color:var(--t-3);display:inline-block;margin-right:6px}
.ord-type-badge.key{background:rgba(99,102,241,0.14);color:var(--primary-light)}
.ord-type-badge.account{background:rgba(16,185,129,0.14);color:#34d399}
.ord-type-badge.link{background:rgba(6,182,212,0.14);color:var(--cyan)}
.ord-status-refunded{font-size:10px;font-weight:700;padding:3px 8px;border-radius:var(--r-pill);background:rgba(245,158,11,0.14);color:var(--warning)}
.btn-reopen-deposit{display:inline-block;margin-top:6px;padding:4px 10px;border-radius:var(--r-pill);background:var(--primary-soft);border:1px solid rgba(139,92,246,0.3);color:var(--primary-light);font-size:11px;font-weight:700;cursor:pointer;transition:all .2s}
.btn-reopen-deposit:active{transform:scale(.95)}
.btn-reopen-deposit:hover{background:var(--primary);color:#fff}

/* ─── VIP TAB PILLS (leaderboard period tabs) ─── */
.vip-tab-pills{display:flex;gap:8px;margin-bottom:18px;padding:4px;background:var(--glass);border:1px solid var(--glass-border);border-radius:var(--r-pill);backdrop-filter: none;-webkit-backdrop-filter: none;padding:10px 14px;border-radius:var(--r-pill);font-size:12px;font-weight:700;color:var(--t-3);background:none;border:none;cursor:pointer;transition:all .25s;text-align:center}
.vip-tab-pill.active{background:linear-gradient(135deg,var(--primary),var(--primary-light));color:#fff;box-shadow:0 4px 14px rgba(139,92,246,0.4)}
.vip-tab-pill:active{transform:scale(.96)}

/* ─── CATEGORY TILE (shop grid) ─── */
.cat-tile{background:var(--glass);border:1px solid var(--glass-border);border-radius:var(--r-md);padding:16px 12px;text-align:center;cursor:pointer;transition:all .2s;backdrop-filter: none;-webkit-backdrop-filter: none;border-color:rgba(99,102,241,0.4)}
.cat-tile-icon{font-size:28px;margin-bottom:6px;display:block}
.cat-tile-name{font-size:12px;font-weight:700;color:var(--t-1)}
.cat-tile-count{font-size:10px;color:var(--t-4);margin-top:3px;text-transform:uppercase;letter-spacing:0.4px}

/* ─── FEED ACTION + AMOUNT ─── */
.feed-action{font-size:11px;font-weight:700;padding:3px 8px;border-radius:var(--r-pill);background:var(--surface-2);color:var(--t-3)}
.feed-action.buy{background:rgba(99,102,241,0.14);color:var(--primary-light)}
.feed-action.dep{background:rgba(16,185,129,0.14);color:#34d399}
.feed-amount{font-size:13px;font-weight:800;color:var(--primary-light);margin-left:auto;flex-shrink:0}

/* ─── DEPOSIT HISTORY EXTRA ─── */
.dep-hist-ref{font-family:var(--font-mono);font-size:10px;color:var(--t-4)}
.dep-hist-date{font-size:10px;color:var(--t-5)}
.dep-hist-right{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}

/* ─── CARD RATES TABLE ─── */
.card-rates-table{width:100%;border-collapse:separate;border-spacing:0;background:var(--glass);border-radius:var(--r-md);overflow:hidden;font-size:12px;backdrop-filter: none;-webkit-backdrop-filter: none;color:var(--t-3);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:0.4px;padding:8px 10px;text-align:left}
.card-rates-table td{padding:8px 10px;border-top:1px solid var(--b-1);color:var(--t-2)}
.card-rates-table tr:hover td{background:var(--surface-2)}
.card-rates-recv{font-weight:800;color:var(--success)}
.tc-ico{font-size:18px;margin-bottom:4px;display:block}
.receive{font-weight:700;color:var(--success)}

/* ─── VOUCHER ─── */
.voucher-row{display:flex;gap:8px;margin-bottom:10px}
.voucher-input{flex:1;padding:10px 12px;background:var(--glass);border:1.5px solid var(--glass-border);border-radius:var(--r-sm);color:var(--t-1);font-size:13px;outline:none;transition:all .2s;backdrop-filter: none;-webkit-backdrop-filter: none;box-shadow:0 0 0 4px rgba(99,102,241,0.12)}
.voucher-result{font-size:12px;padding:8px 0 4px;margin-bottom:8px}
.voucher-result.ok{color:#34d399;font-weight:700}
.voucher-result.err{color:var(--danger);font-weight:600}

.text-success{color:var(--success)}.text-danger{color:var(--danger)}.text-warning{color:var(--warning)}.text-muted{color:var(--t-4)}
.fade-out{opacity:0;transition:opacity .3s}
.mt-12{margin-top:12px}.mt-16{margin-top:16px}.mb-12{margin-bottom:12px}

/* ─── RESPONSIVE ─── */
@media(min-width:768px){
  .product-grid{grid-template-columns:repeat(3,1fr)}
  body{max-width:600px;margin:0 auto;box-shadow:0 0 60px rgba(0,0,0,0.4);min-height:100vh;position:relative}
  #appHeader,#bottomNav{max-width:600px!important;margin-left:auto!important;margin-right:auto!important}
  #bottomNav{border-radius:16px 16px 0 0;left:50%!important;right:auto!important;transform:translateX(-50%)}
  body::before{max-width:600px;margin:0 auto;left:50%!important;transform:translateX(-50%)}
}
@media(min-width:1024px){body{box-shadow:0 0 80px rgba(0,0,0,0.5)}}
@media(max-width:379.98px){
  .hero-title{font-size:24px}.wh-balance{font-size:30px}
  .dep-grid{grid-template-columns:repeat(2,1fr)}.card-amount-grid{grid-template-columns:repeat(2,1fr)}.card-telco-grid{grid-template-columns:repeat(2,1fr)}
  .page{padding:16px 12px calc(var(--nav-h) + 24px)}.hero,.wallet-hero{padding:22px 16px 20px}.product-grid{gap:8px}.modal-sheet{padding:12px 14px calc(16px + env(safe-area-inset-bottom))}
}
@media(max-width:339.98px){
  body{font-size:13px}.hero-title{font-size:20px}.wh-balance{font-size:26px}
  .hero-stat-n{font-size:16px}.dep-btn-val,.card-amount-val{font-size:14px}.btn-main{font-size:13px;padding:12px}
  .page{padding:14px 10px calc(var(--nav-h) + 20px)}
}
@media(max-width:480px){
  #appHeader,#bottomNav{backdrop-filter: none;-webkit-backdrop-filter: none;overflow:hidden}
}
.app-picker-trigger{width:100%;min-height:58px;padding:7px 8px 7px 10px;border:0;background:transparent;display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--t-1);font:inherit;text-align:left;cursor:pointer}.app-picker-label{display:flex;align-items:center;gap:8px;min-width:0;font-size:13px;font-weight:750}.app-picker-label-ico{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 24px;border-radius:7px;background:rgba(139,92,246,.16);color:#c4b5fd;font-size:12px}.app-picker-current{max-width:58%;min-width:0;padding:8px 10px;display:flex;align-items:center;gap:8px;border:1px solid rgba(196,181,253,.22);border-radius:18px;background:rgba(255,255,255,.055)}.app-picker-current-ico{width:24px;height:24px;display:flex;align-items:center;justify-content:center;flex:0 0 24px;overflow:hidden;border-radius:7px;background:rgba(139,92,246,.13);font-size:13px}.app-picker-current-ico img{width:100%;height:100%;object-fit:cover}.app-picker-current-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:800}.app-picker-chevron{width:8px;height:8px;flex:0 0 8px;border-right:2px solid #ddd6fe;border-bottom:2px solid #ddd6fe;transform:rotate(45deg) translateY(-2px);transition:transform .2s ease}.app-picker-card.open .app-picker-chevron{transform:rotate(225deg) translate(-1px,-1px)}.app-picker-panel{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .22s ease,opacity .18s ease}.app-picker-panel.open{grid-template-rows:1fr;opacity:1}.app-picker-panel>.cat-picker-list{max-height:420px;overflow-y:auto!important;-webkit-overflow-scrolling:touch!important;overscroll-behavior-y:auto!important;touch-action:pan-y!important;padding-right:4px}.app-picker-card .cat-picker-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:8px 0 0;border-top:1px solid transparent}.app-picker-card.open .cat-picker-list{border-top-color:rgba(139,92,246,.14)}.app-picker-card .cat-pick-item{width:100%;min-width:0;min-height:58px;padding:9px 10px;display:flex;align-items:center;gap:8px;border:1px solid rgba(196,181,253,.18);border-radius:12px;background:rgba(255,255,255,.035);color:var(--t-1);font:inherit;text-align:left;cursor:pointer}.app-picker-card .cat-pick-item.selected{border-color:rgba(216,180,254,.75);background:linear-gradient(135deg,#d467df,#9459ed)}.app-picker-card .cat-pick-item-ico{width:26px;height:26px;flex:0 0 26px;border-radius:7px;background:rgba(255,255,255,.08);font-size:14px}.app-picker-card .cat-pick-item-ico img{width:100%;height:100%;object-fit:cover;border-radius:7px}.app-picker-card .cat-pick-item-name{min-width:0;white-space:normal;overflow-wrap:anywhere;line-height:1.25;font-size:12.5px;font-weight:800;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.app-picker-empty{grid-column:1/-1;padding:16px;text-align:center;color:var(--t-3);font-size:13px}.app-picker-loading{height:58px;border-radius:12px;background:rgba(255,255,255,.05)}

/* ROYAL IMPERIAL COMMERCE V1 (ZERO-LAG STATIC GPU BACKGROUND) */
:root{--bg:#0b0906;--bg-soft:#13100b;--surface: #14100b;--surface-2: #1c160f;--glass: #14100b;--glass-border:rgba(245,197,86,.20);--b-1:rgba(245,197,86,.15);--primary:#e5b052;--primary-light:#fde08b;--primary-dark:#b88628;--primary-soft:rgba(229,176,82,.16);--primary-glow:rgba(245,185,75,.45);--t-1:#fffdf8;--t-2:#f7eed8;--t-3:#c9b99f;--t-4:#8f806a;--t-5:#655845}
body{background:linear-gradient(180deg,#15110c 0%,#0c0906 48%,#060503 100%);letter-spacing:0}
body::before{background:radial-gradient(580px 420px at 82% 7%,rgba(245,197,86,.18),transparent 68%),radial-gradient(620px 520px at 9% 35%,rgba(217,119,6,.14),transparent 70%),radial-gradient(560px 420px at 82% 76%,rgba(251,191,36,.12),transparent 65%);animation:none!important}
body::after{opacity:.04}
#cosmicCanvas,#starfield,.cosmic-scene,.cosmic-planet,.cosmic-orbit{display:none!important;position:fixed!important;inset:0!important;width:0!important;height:0!important;pointer-events:none!important}
#appHeader{background:rgba(18,14,10,.86);border-bottom-color:rgba(245,197,86,.24);box-shadow:0 10px 30px rgba(0,0,0,.45),0 0 15px rgba(245,197,86,.08)}.page{z-index:2}.page-hero{background:linear-gradient(135deg,rgba(36,28,18,.85),rgba(20,16,10,.75));border-color:rgba(245,197,86,.25);box-shadow:0 18px 45px rgba(0,0,0,.35),inset 0 1px rgba(255,235,175,.1)}.vip-card,.ord-card,.order-card,.ord-item,.txn-row,.dep-method-card,.cat-tile{box-shadow:0 14px 35px rgba(0,0,0,.3),inset 0 1px rgba(255,235,175,.08)}.app-picker-card{background:linear-gradient(145deg,rgba(32,25,17,.92),rgba(19,15,10,.85));border-color:rgba(245,197,86,.28)}.app-picker-current{background:rgba(229,176,82,.14);border-color:rgba(245,197,86,.35)}.app-picker-card .cat-pick-item{background:rgba(38,30,20,.72);border-color:rgba(245,197,86,.18)}.app-picker-card .cat-pick-item.selected{background:linear-gradient(135deg,#e5b052,#d97706);border-color:rgba(255,240,185,.85);box-shadow:0 8px 22px rgba(217,119,6,.35)}.pkg-row.selected{background:linear-gradient(135deg,rgba(229,176,82,.28),rgba(217,119,6,.18));border-color:rgba(245,197,86,.7);box-shadow:0 7px 22px rgba(217,119,6,.22)}.btn-buy-cta,.btn-vip-primary,.btn-main{box-shadow:0 10px 28px rgba(217,119,6,.38)}#bottomNav{background:rgba(16,13,9,.94);border-top-color:rgba(245,197,86,.24);box-shadow:0 -12px 34px rgba(0,0,0,.45)}#bottomNav .nav-item.active{color:#ffd700}#bottomNav .nav-item.active i{filter:drop-shadow(0 0 10px rgba(245,197,86,.85))}
.vip-card{background:rgba(22,18,13,.82);border-color:rgba(245,197,86,.20)}
@media(max-width:480px){.vip-card{background:rgba(22,18,13,.86)}}
.page,.vip-card,.pcard,.product,.cat-pill,.cat-tile,.feed-item,.feed-row,.dep-method-card,.dep-btn,.dep-hist-item,.txn-item,.txn-row,.lb-item,.info-card,.stat-tile,.prof-stat,.ord-item,.ord-card,.order-card,.bank-item,.ref-link-box,.ref-row,.ref-stat-box,.cat-pick-item,.pkg-row,.select-card,.wallet-hero,.dep-grid>*,.card-amount-grid>*,.card-telco-grid>*{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
/* PACKAGE GRID V2 - compact centered cards matching the reference style */
#homeProducts{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding-top:2px}
#homeProducts .pkg-row{min-height:84px;height:84px;padding:10px 8px;display:flex;align-items:center;justify-content:center;gap:3px;border-radius:18px;border:1px solid rgba(245,197,86,.22);background:linear-gradient(145deg,rgba(32,25,17,.92),rgba(19,15,10,.88));box-shadow:inset 0 1px 0 rgba(255,235,175,.08),0 8px 18px rgba(0,0,0,.3);transition:transform .16s ease,border-color .16s ease,background .16s ease,box-shadow .16s ease}
#homeProducts .pkg-row:hover{transform:translateY(-2px);border-color:rgba(253,224,139,.55);background:linear-gradient(145deg,rgba(46,36,24,.95),rgba(26,20,13,.92));box-shadow:inset 0 1px 0 rgba(255,235,175,.12),0 10px 22px rgba(217,119,6,.22)}
#homeProducts .pkg-row:active{transform:scale(.96);transition-duration:.07s}
#homeProducts .pkg-row.selected{transform:translateY(-1px);border-color:rgba(255,215,0,.85);background:linear-gradient(145deg,rgba(85,58,20,.65),rgba(38,27,12,.85));box-shadow:0 0 0 2px rgba(245,197,86,.25),0 10px 24px rgba(217,119,6,.28)}
#homeProducts .pkg-info{width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}
#homeProducts .pkg-name{font-size:16px;line-height:1.15;font-weight:800;letter-spacing:0;color:#fffdf8;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
#homeProducts .pkg-row:nth-child(even) .pkg-name{color:#fde08b}
#homeProducts .pkg-stock{display:block;margin-top:3px;font-size:11px;color:var(--t-3);text-align:center}
#homeProducts .pkg-row:disabled,#homeProducts .pkg-row.is-out{opacity:1!important;cursor:not-allowed;border-color:rgba(239,68,68,0.32)!important;background:linear-gradient(145deg,rgba(34,18,22,0.92),rgba(20,12,14,0.88))!important;box-shadow:inset 0 1px 0 rgba(255,255,255,0.04)!important}
#homeProducts .pkg-row:disabled:hover,#homeProducts .pkg-row.is-out:hover{transform:none!important;box-shadow:none!important;border-color:rgba(239,68,68,0.32)!important}
.pkg-out-badge{display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;color:#ff6b6b;background:rgba(239,68,68,0.16);border:1px solid rgba(239,68,68,0.4);padding:5px 9px;border-radius:8px;letter-spacing:0.4px;text-transform:uppercase;box-shadow:0 0 10px rgba(239,68,68,0.18);white-space:nowrap}
#homeProducts .pkg-price{align-self:auto;padding:0;background:none;border:0;border-radius:0;color:#fff;font-size:14px;line-height:1.15;font-weight:700;box-shadow:none}
@media(max-width:340px){#homeProducts{gap:7px}#homeProducts .pkg-row{height:78px;min-height:78px;border-radius:15px}#homeProducts .pkg-name{font-size:14px}#homeProducts .pkg-price{font-size:13px}}
@media(prefers-reduced-motion:reduce){#homeProducts .pkg-row{transition:none!important;transform:none!important}}
/* PACKAGE GRID V3 - royal imperial gold palette */
#homeProducts .pkg-row{border-color:rgba(245,197,86,.22);background:linear-gradient(145deg,rgba(32,25,17,.92),rgba(19,15,10,.88));box-shadow:inset 0 1px 0 rgba(255,235,175,.08),0 8px 18px rgba(0,0,0,.3)}
#homeProducts .pkg-row:hover{border-color:rgba(253,224,139,.55);background:linear-gradient(145deg,rgba(46,36,24,.95),rgba(26,20,13,.92));box-shadow:inset 0 1px 0 rgba(255,235,175,.12),0 10px 22px rgba(217,119,6,.22)}
#homeProducts .pkg-row.selected{border-color:rgba(255,215,0,.85);background:linear-gradient(145deg,rgba(85,58,20,.65),rgba(38,27,12,.85));box-shadow:0 0 0 2px rgba(245,197,86,.25),0 10px 24px rgba(217,119,6,.28)}
#homeProducts .pkg-name{color:#fffdf8}
#homeProducts .pkg-row:nth-child(even) .pkg-name{color:#fde08b}
#homeProducts .pkg-price{color:#f7eed8}
/* SELLER DISCOUNT PRICE DISPLAY */
#homeProducts .pkg-row.has-discount{height:auto;min-height:84px;padding-top:8px;padding-bottom:8px}
.pkg-price-group{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;line-height:1.1}
.pkg-price-current{font-size:14px;font-weight:800;color:#ffd700}
.pkg-price-original{font-size:11px;font-weight:500;color:#94a3b8;text-decoration:line-through;opacity:.85}
.pcard-price-group{display:flex;flex-direction:column;align-items:flex-start;gap:2px;margin-bottom:6px}
.pcard-original-price{font-size:11px;font-weight:500;color:#94a3b8;text-decoration:line-through;opacity:.85}
.pdetail-price-group{display:flex;flex-direction:column;align-items:center;gap:4px}
.pdetail-original-price{font-size:13px;font-weight:500;color:#94a3b8;text-decoration:line-through;opacity:.85}

/* MARKETING BADGE & DISCOUNT STYLES */
#productPickerCard {
  overflow: visible !important;
}
#homeProducts {
  overflow: visible !important;
  padding-top: 6px !important;
}
#homeProducts .pkg-row {
  position: relative !important;
  overflow: visible !important;
}
.pkg-badge-tag {
  position: absolute;
  top: -8px;
  right: -4px;
  font-size: 10px;
  font-weight: 850;
  padding: 2px 7.5px;
  border-radius: 999px;
  letter-spacing: 0.3px;
  white-space: nowrap;
  z-index: 10;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);
  pointer-events: none;
  animation: badgePulse 2.2s ease-in-out infinite;
}
@keyframes badgePulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.05); }
}
.pkg-badge-tag.badge-sale {
  background: linear-gradient(135deg, #ef4444, #f97316);
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.45);
  box-shadow: 0 0 12px rgba(239, 68, 68, 0.55);
}
.pkg-badge-tag.badge-hot {
  background: linear-gradient(135deg, #ef4444, #f97316);
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.35);
  box-shadow: 0 0 10px rgba(239, 68, 68, 0.45);
}
.pkg-badge-tag.badge-rec {
  background: linear-gradient(135deg, #f59e0b, #eab308);
  color: #1e1b4b;
  border: 1px solid rgba(255, 255, 255, 0.45);
  box-shadow: 0 0 10px rgba(245, 158, 11, 0.4);
}
.pkg-badge-tag.badge-save {
  background: linear-gradient(135deg, #10b981, #059669);
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.35);
  box-shadow: 0 0 10px rgba(16, 185, 129, 0.4);
}
.pkg-badge-tag.badge-trial {
  background: linear-gradient(135deg, #06b6d4, #3b82f6);
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.35);
  box-shadow: 0 0 10px rgba(6, 182, 212, 0.4);
}
.pkg-badge-tag.badge-custom {
  background: linear-gradient(135deg, #8b5cf6, #ec4899);
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.35);
  box-shadow: 0 0 10px rgba(139, 92, 246, 0.4);
}
.pkg-disc-pct {
  display: inline-block;
  font-size: 10px;
  font-weight: 800;
  color: #f87171;
  background: rgba(239, 68, 68, 0.16);
  border: 1px solid rgba(239, 68, 68, 0.35);
  padding: 1px 4px;
  border-radius: 4px;
  margin-left: 3px;
  vertical-align: 1px;
}

/* GUIDE MODAL STYLING (1-TOUCH INSTALLATION GUIDE) */
.guide-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 16px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.guide-modal-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 15px;
  font-weight: 700;
  color: #fff;
}
.guide-modal-content {
  padding: 16px;
}
.guide-prod-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  background: rgba(56, 189, 248, 0.1);
  border: 1px solid rgba(56, 189, 248, 0.3);
  border-radius: 999px;
  color: #38bdf8;
  font-size: 12px;
  font-weight: 700;
  margin-bottom: 14px;
}
.guide-steps-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.guide-step-card {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  background: rgba(15, 23, 42, 0.75);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 12px;
  padding: 12px;
}
.guide-step-num {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: linear-gradient(135deg, #a855f7, #6366f1);
  color: #fff;
  font-weight: 800;
  font-size: 13px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 0 10px rgba(168, 85, 247, 0.4);
}
.guide-step-body {
  flex: 1;
}
.guide-step-title {
  font-size: 13px;
  font-weight: 700;
  color: #f8fafc;
  margin-bottom: 3px;
}
.guide-step-desc {
  font-size: 11.5px;
  line-height: 1.45;
  color: #94a3b8;
}
.btn-guide-external {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 14px;
  background: linear-gradient(135deg, rgba(168, 85, 247, 0.2), rgba(99, 102, 241, 0.2));
  border: 1.5px solid #a855f7;
  border-radius: 12px;
  color: #e9d5ff;
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
  box-shadow: 0 4px 14px rgba(168, 85, 247, 0.25);
  transition: all 0.2s ease;
}
.btn-guide-external:active {
  transform: scale(0.98);
}

/* ============================================================ */
/*  SECURITY SHIELD & SELECTION PROTECTION                      */
/* ============================================================ */
body {
  -webkit-user-select: none !important;
  user-select: none !important;
  -webkit-touch-callout: none !important;
}
input, textarea, [contenteditable="true"], .key-mono, .key-item, .bank-val, .order-code, .selectable, [data-selectable="true"], .copy-target, .ord-code, .suc-receipt-key, .suc-kv-v {
  -webkit-user-select: text !important;
  user-select: text !important;
  -webkit-touch-callout: default !important;
}
.security-toast-hud {
  position: fixed !important;
  bottom: 30px !important;
  left: 50% !important;
  transform: translateX(-50%) translateY(30px) !important;
  background: rgba(14, 18, 38, 0.96) !important;
  border: 1px solid rgba(244, 63, 94, 0.5) !important;
  color: #f8fafc !important;
  padding: 12px 22px !important;
  border-radius: 14px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.7), 0 0 20px rgba(244, 63, 94, 0.3) !important;
  z-index: 9999999 !important;
  opacity: 0 !important;
  pointer-events: none !important;
  transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1) !important;
}
.security-toast-hud.active {
  opacity: 1 !important;
  transform: translateX(-50%) translateY(0) !important;
}
.security-toast-hud svg {
  color: #f43f5e !important;
  flex-shrink: 0 !important;
}

/* ============================================================ */
.update-toast {
  position: fixed !important;
  bottom: 80px !important;
  left: 50% !important;
  transform: translateX(-50%) translateY(100px) !important;
  background: linear-gradient(135deg, #7c3aed, #ec4899) !important;
  color: #fff !important;
  padding: 10px 14px 10px 18px !important;
  border-radius: 50px !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.6), 0 0 20px rgba(236, 72, 153, 0.4) !important;
  z-index: 99999999 !important;
  opacity: 0 !important;
  transition: opacity 0.4s cubic-bezier(0.16, 1, 0.3, 1), transform 0.4s cubic-bezier(0.16, 1, 0.3, 1) !important;
  pointer-events: none !important;
}
.update-toast.is-visible {
  opacity: 1 !important;
  transform: translateX(-50%) translateY(0) !important;
  pointer-events: auto !important;
}
.update-toast button {
  background: #fff !important;
  color: #7c3aed !important;
  border: none !important;
  padding: 6px 14px !important;
  border-radius: 30px !important;
  font-weight: 800 !important;
  cursor: pointer !important;
  font-size: 12px !important;
  flex-shrink: 0 !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25) !important;
  transition: transform 0.15s ease !important;
}
.update-toast button:active {
  transform: scale(0.94) !important;
}
@media (max-width: 480px) {
  .update-toast {
    left: 16px !important;
    right: 16px !important;
    transform: translateY(100px) !important;
    width: auto !important;
    justify-content: space-between !important;
  }
  .update-toast.is-visible {
    transform: translateY(0) !important;
  }
}

/* ============================================================ */
/*  LUCIDE VECTOR ICONS STANDARDIZATION                         */
/* ============================================================ */
.lucide, [data-lucide] {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  vertical-align: middle !important;
  stroke-width: 2.2px !important;
  stroke: currentColor !important;
  fill: none !important;
  width: 18px;
  height: 18px;
}
.page-hero-icon svg, .page-hero-icon [data-lucide] {
  width: 26px !important;
  height: 26px !important;
  color: #ffffff !important;
}
.stat-tile-ico svg, .stat-tile-ico [data-lucide] {
  width: 22px !important;
  height: 22px !important;
}
.app-picker-label-ico svg, .app-picker-label-ico [data-lucide] {
  width: 16px !important;
  height: 16px !important;
  color: #a78bfa !important;
}
.app-picker-current-ico svg, .app-picker-current-ico [data-lucide] {
  width: 18px !important;
  height: 18px !important;
}
.vip-card-title .ico svg, .vip-card-title .ico [data-lucide] {
  width: 16px !important;
  height: 16px !important;
}
.dep-input-ico svg, .dep-input-ico [data-lucide] {
  width: 18px !important;
  height: 18px !important;
}
.dmc-ico svg, .dmc-ico [data-lucide] {
  width: 24px !important;
  height: 24px !important;
}
#bottomNav .nav-item svg, #bottomNav .nav-item [data-lucide] {
  width: 20px !important;
  height: 20px !important;
  stroke-width: 2.2px !important;
  transition: transform 0.2s cubic-bezier(0.34, 1.56, 0.64, 1), stroke 0.2s ease !important;
}
#bottomNav .nav-item.active svg, #bottomNav .nav-item.active [data-lucide] {
  transform: translateY(-2px) scale(1.1) !important;
  color: var(--primary-light) !important;
}
/* Additional Lucide icons sizing & alignment */
.empty-ico svg, .empty-box-ico svg {
  width: 36px !important;
  height: 36px !important;
  stroke-width: 1.8px !important;
  opacity: 0.85;
}
.dep-hist-icon svg, .txn-ico svg {
  width: 18px !important;
  height: 18px !important;
}
.feed-ico svg {
  width: 16px !important;
  height: 16px !important;
}
.tab-btn svg {
  width: 15px !important;
  height: 15px !important;
  vertical-align: -2px !important;
  margin-right: 4px !important;
}
.btn-copy-suc svg, .btn-copy-key svg {
  width: 14px !important;
  height: 14px !important;
}
.toast-msg svg {
  width: 16px !important;
  height: 16px !important;
  flex-shrink: 0 !important;
}
.ord-type-badge svg {
  width: 12px !important;
  height: 12px !important;
  vertical-align: -2px !important;
  margin-right: 3px !important;
}
.cat-pick-item-ico svg {
  width: 20px !important;
  height: 20px !important;
}

/* ============================================================ */
/*  ULTRA SMOOTH 60-120 FPS PERFORMANCE OPTIMIZATIONS          */
/* ============================================================ */
html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}

body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overscroll-behavior-y: auto;
}

/* Fast tap response (0ms delay) on all clickable elements */
button, a, .nav-item, .cat-pick-item, .pkg-row, .tab-btn, .game-chip, .qty-btn, .btn-buy-cta, .copy-chip, .btn-copy-suc {
  touch-action: manipulation !important;
  -webkit-tap-highlight-color: transparent !important;
  cursor: pointer;
}

/* Native smooth momentum scrolling */
.game-chips-list, .cat-picker-grid, .dep-hist-list, #txnList, #activityFeed {
  -webkit-overflow-scrolling: touch !important;
  overscroll-behavior: contain !important;
}
.cat-picker-list {
  -webkit-overflow-scrolling: touch !important;
  overscroll-behavior: auto !important;
}

/* Mobile GPU optimization */
@media (max-width: 640px) {
  /* Replace heavy multi-layered backdrop-filters with solid high-performance dark backgrounds */
  .vip-card, .pcard, .cat-pick-item, .dep-hist-item, .txn-item, .feed-item, .empty-box {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    background: rgba(14, 16, 36, 0.95) !important;
  }

  /* Keep backdrop-filter light on fixed top/bottom bars only */
  #appHeader, #bottomNav {
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }

  /* GPU compositing layers */
  #bottomNav, #appHeader {
    transform: translateZ(0);
  }

  /* Contain layout reflows */
  .page {
    contain: layout style;
  }
}

/* ============================================================ */
/*  VIP WALLET & PAYMENT MODAL REDESIGN                         */
/* ============================================================ */
.vip-method-tabs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-bottom: 16px;
}
.vip-method-tab {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  border-radius: var(--r-md);
  background: rgba(255, 255, 255, 0.04);
  border: 1.5px solid rgba(255, 255, 255, 0.08);
  color: var(--t-2);
  cursor: pointer;
  transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  text-align: left;
  position: relative;
}
.vip-method-tab:active {
  transform: scale(0.97);
}
.vip-method-tab.active {
  background: linear-gradient(135deg, rgba(124, 58, 237, 0.18), rgba(6, 182, 212, 0.12)) !important;
  border-color: rgba(167, 139, 250, 0.6) !important;
  color: #ffffff !important;
  box-shadow: 0 4px 20px rgba(124, 58, 237, 0.25), inset 0 1px 0 rgba(255, 255, 255, 0.1) !important;
}
.vip-method-tab.active svg {
  color: #a78bfa !important;
}
.vmt-text {
  flex: 1;
  min-width: 0;
}
.vmt-title {
  display: block;
  font-size: 13px;
  font-weight: 750;
  line-height: 1.3;
}
.vmt-sub {
  display: block;
  font-size: 10.5px;
  color: var(--t-4);
  margin-top: 2px;
}
.vip-method-tab.active .vmt-sub {
  color: #c4b5fd;
}
.vmt-radio {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  border: 1.5px solid rgba(255, 255, 255, 0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: all 0.2s ease;
}
.vip-method-tab.active .vmt-radio {
  border-color: #a78bfa;
  background: #7c3aed;
  box-shadow: 0 0 10px rgba(124, 58, 237, 0.6);
}
.vip-method-tab.active .vmt-radio::after {
  content: '';
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #ffffff;
}

/* Quick Amount Grid */
.dep-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin-bottom: 14px;
}
@media (max-width: 380px) {
  .dep-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
.dep-btn {
  padding: 12px 6px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: var(--t-2);
  cursor: pointer;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
  text-align: center;
}
.dep-btn:hover {
  border-color: rgba(167, 139, 250, 0.4);
  background: rgba(167, 139, 250, 0.08);
}
.dep-btn:active {
  transform: scale(0.96);
}
.dep-btn.sel, .dep-btn.active {
  background: linear-gradient(135deg, rgba(245, 158, 11, 0.18), rgba(124, 58, 237, 0.18)) !important;
  border-color: rgba(245, 158, 11, 0.85) !important;
  color: #fff !important;
  box-shadow: 0 0 16px rgba(245, 158, 11, 0.25), inset 0 1px 0 rgba(255, 255, 255, 0.1) !important;
}
.dep-btn-val {
  font-size: 13.5px;
  font-weight: 800;
  letter-spacing: -0.2px;
  font-variant-numeric: tabular-nums;
}
.dep-btn.sel .dep-btn-val, .dep-btn.active .dep-btn-val {
  color: var(--vip-gold-2);
}

/* Suffix for custom amount input */
.dep-input-wrap {
  position: relative;
  margin-bottom: 6px;
}
.dep-input-suffix {
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--vip-gold-2);
  font-weight: 800;
  font-size: 12px;
  pointer-events: none;
  letter-spacing: 0.5px;
}
.dep-input-vip {
  padding-left: 42px !important;
  padding-right: 56px !important;
  background: rgba(255, 255, 255, 0.04) !important;
  border: 1.5px solid rgba(255, 255, 255, 0.1) !important;
  border-radius: 14px !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  color: #ffffff !important;
  height: 52px !important;
  width: 100% !important;
  outline: none !important;
  transition: all 0.25s ease !important;
}
.dep-input-vip:focus {
  border-color: var(--vip-gold) !important;
  background: rgba(245, 158, 11, 0.04) !important;
  box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.15), 0 0 20px rgba(245, 158, 11, 0.1) !important;
}

.dep-guarantee-note {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 11.5px;
  color: var(--t-3);
  background: rgba(16, 185, 129, 0.06);
  border: 1px solid rgba(16, 185, 129, 0.2);
  border-radius: 12px;
  padding: 10px 14px;
  margin-top: 14px;
  line-height: 1.5;
}

/* Payment Modal (VietQR) Improvements */
.pay-highlight-card {
  background: linear-gradient(145deg, rgba(124, 58, 237, 0.15), rgba(6, 182, 212, 0.1));
  border: 1px solid rgba(167, 139, 250, 0.35);
  border-radius: 18px;
  padding: 16px;
  margin-bottom: 14px;
}
.pay-amount-box {
  text-align: center;
  padding-bottom: 12px;
  border-bottom: 1px dashed rgba(255, 255, 255, 0.1);
  margin-bottom: 12px;
}
.pay-amount-lbl {
  font-size: 10.5px;
  font-weight: 700;
  color: #a78bfa;
  letter-spacing: 1px;
  text-transform: uppercase;
  display: block;
  margin-bottom: 4px;
}
.pay-amount-num {
  font-size: 28px;
  font-weight: 900;
  background: linear-gradient(135deg, #ffd166, #ff9f1c);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.5px;
}
.pay-memo-box {
  background: rgba(10, 8, 24, 0.85);
  border: 1.5px solid rgba(192, 132, 252, 0.5);
  border-radius: 14px;
  padding: 12px 14px;
  box-shadow: 0 0 20px rgba(124, 58, 237, 0.2);
}
.pay-memo-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
  font-size: 11px;
  font-weight: 700;
  color: #c084fc;
}
.pay-memo-req {
  font-size: 9px;
  font-weight: 800;
  background: #ef4444;
  color: #fff;
  padding: 2px 6px;
  border-radius: 6px;
  letter-spacing: 0.5px;
}
.pay-memo-body {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 10px;
  padding: 8px 12px;
}
.pay-memo-code {
  font-family: var(--font-mono, monospace);
  font-size: 18px;
  font-weight: 900;
  color: #38bdf8;
  letter-spacing: 1px;
}
.btn-copy-memo {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 6px 12px;
  border-radius: 8px;
  background: linear-gradient(135deg, #7c3aed, #9333ea);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  border: none;
  cursor: pointer;
  transition: transform 0.15s ease;
}
.btn-copy-memo:active {
  transform: scale(0.95);
}
.pay-memo-warn {
  font-size: 11px;
  color: var(--t-3);
  margin-top: 8px;
  line-height: 1.4;
}
.pay-bank-card {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 16px;
  padding: 14px;
  margin-bottom: 12px;
}
.pay-bank-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
}
.pay-bank-logo-text {
  display: flex;
  align-items: center;
  gap: 8px;
}
.pay-bank-badge {
  background: rgba(56, 189, 248, 0.15);
  border: 1px solid rgba(56, 189, 248, 0.4);
  color: #38bdf8;
  padding: 3px 8px;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 800;
}
.pay-bank-name {
  font-size: 13px;
  font-weight: 750;
  color: var(--t-1);
}
.pay-qr-center {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin: 12px 0;
}
.pay-qr-frame {
  background: #ffffff;
  padding: 12px;
  border-radius: 16px;
  box-shadow: 0 0 25px rgba(56, 189, 248, 0.25);
  display: inline-block;
  position: relative;
  max-width: 210px;
  width: 100%;
}
.pay-qr-img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 8px;
}
.pay-qr-subtext {
  font-size: 11px;
  color: var(--t-3);
  margin-top: 8px;
  text-align: center;
  font-weight: 600;
}
.pay-info-table {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 12px;
  padding: 4px 12px;
  margin-top: 10px;
}
.pay-info-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 8px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
  font-size: 12px;
}
.pay-info-row:last-child {
  border-bottom: none;
}
.pay-info-label {
  color: var(--t-4);
  font-weight: 500;
}
.pay-info-val {
  color: var(--t-1);
  font-weight: 700;
  display: flex;
  align-items: center;
  gap: 6px;
}
.btn-copy-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 8px;
  border-radius: 6px;
  background: rgba(56, 189, 248, 0.15);
  border: 1px solid rgba(56, 189, 248, 0.35);
  color: #38bdf8;
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.15s ease;
}
.btn-copy-chip:active {
  transform: scale(0.95);
}
.pay-status-hud {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px 14px;
  border-radius: 12px;
  background: rgba(16, 185, 129, 0.08);
  border: 1px solid rgba(16, 185, 129, 0.25);
  color: #34d399;
  font-size: 11.5px;
  font-weight: 600;
  margin-top: 10px;
  text-align: center;
}
.pay-status-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #34d399;
  box-shadow: 0 0 8px #34d399;
  animation: live-pulse 1.5s infinite;
  flex-shrink: 0;
}
.btn-check-now {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: rgba(16, 185, 129, 0.2);
  border: 1px solid #10b981;
  color: #10b981;
  padding: 5px 12px;
  border-radius: 8px;
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.2s ease;
  white-space: nowrap;
}
.btn-check-now:hover, .btn-check-now:active {
  background: #10b981;
  color: #fff;
}
.btn-check-now.loading {
  opacity: 0.7;
  pointer-events: none;
}

/* ══════════════════════════════════════════════════
   VIP ACTIVITY HISTORY (LỊCH SỬ NẠP & GIAO DỊCH VIP)
   ══════════════════════════════════════════════════ */
.vip-subtabs {
  display: flex;
  gap: 6px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  padding: 4px;
  border-radius: 14px;
  margin-bottom: 14px;
}
.vip-subtab-btn {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 10px 12px;
  border-radius: 10px;
  font-size: 12.5px;
  font-weight: 700;
  color: var(--t-3);
  background: transparent;
  border: 1px solid transparent;
  cursor: pointer;
  transition: all 0.2s ease;
}
.vip-subtab-btn:active {
  transform: scale(0.97);
}
.vip-subtab-btn.active {
  background: linear-gradient(135deg, rgba(124, 58, 237, 0.35), rgba(167, 139, 250, 0.15));
  border-color: rgba(167, 139, 250, 0.45);
  color: #ffffff;
  box-shadow: 0 2px 10px rgba(124, 58, 237, 0.2);
}

.vip-hist-card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  background: rgba(255, 255, 255, 0.035);
  border: 1px solid rgba(255, 255, 255, 0.07);
  border-radius: 14px;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
}
.vip-hist-card:active {
  transform: scale(0.98);
}
.vip-hist-ico {
  width: 40px;
  height: 40px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.vip-hist-ico.success, .vip-hist-ico.dep, .vip-hist-ico.deposit {
  background: rgba(16, 185, 129, 0.14);
  border: 1px solid rgba(16, 185, 129, 0.3);
  color: #34d399;
}
.vip-hist-ico.pending {
  background: rgba(245, 158, 11, 0.14);
  border: 1px solid rgba(245, 158, 11, 0.3);
  color: #fbbf24;
}
.vip-hist-ico.expired, .vip-hist-ico.failed {
  background: rgba(239, 68, 68, 0.12);
  border: 1px solid rgba(239, 68, 68, 0.25);
  color: #f87171;
}
.vip-hist-ico.buy, .vip-hist-ico.purchase {
  background: rgba(124, 58, 237, 0.16);
  border: 1px solid rgba(124, 58, 237, 0.35);
  color: #c084fc;
}
.vip-hist-ico.bonus {
  background: rgba(6, 182, 212, 0.14);
  border: 1px solid rgba(6, 182, 212, 0.3);
  color: #38bdf8;
}
.vip-hist-ico.refund {
  background: rgba(245, 158, 11, 0.14);
  border: 1px solid rgba(245, 158, 11, 0.3);
  color: #fbbf24;
}
.vip-hist-main {
  flex: 1;
  min-width: 0;
}
.vip-hist-title {
  font-size: 13px;
  font-weight: 750;
  color: var(--t-1);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  margin-bottom: 3px;
}
.vip-hist-sub {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 10.5px;
  color: var(--t-4);
}
.vip-hist-right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
  flex-shrink: 0;
}
.vip-hist-amt {
  font-size: 14px;
  font-weight: 850;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.2px;
}
.vip-hist-amt.plus { color: #34d399; }
.vip-hist-amt.minus { color: #f43f5e; }
.vip-hist-amt.success { color: #34d399; }
.vip-hist-amt.pending { color: #fbbf24; }
.vip-hist-amt.expired, .vip-hist-amt.failed { color: var(--t-4); text-decoration: line-through; }

.vip-badge-pill {
  font-size: 9.5px;
  font-weight: 800;
  padding: 2px 7px;
  border-radius: 999px;
  letter-spacing: 0.3px;
  text-transform: uppercase;
}
.vip-badge-pill.success {
  background: rgba(16, 185, 129, 0.15);
  color: #34d399;
  border: 1px solid rgba(16, 185, 129, 0.3);
}
.vip-badge-pill.pending {
  background: rgba(245, 158, 11, 0.15);
  color: #fbbf24;
  border: 1px solid rgba(245, 158, 11, 0.3);
}
.vip-badge-pill.expired, .vip-badge-pill.failed {
  background: rgba(239, 68, 68, 0.12);
  color: #f87171;
  border: 1px solid rgba(239, 68, 68, 0.25);
}

.vip-hist-bal {
  font-size: 10.5px;
  color: var(--t-4);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

.btn-vip-reopen {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  padding: 3px 8px;
  border-radius: 6px;
  background: rgba(56, 189, 248, 0.12);
  border: 1px solid rgba(56, 189, 248, 0.35);
  color: #38bdf8;
  font-size: 10.5px;
  font-weight: 700;
  cursor: pointer;
  margin-top: 2px;
  transition: all 0.15s;
}
.btn-vip-reopen:active {
  transform: scale(0.95);
}


/* ============================================================ */
/*  VIP ULTRA 120FPS SILKY SMOOTH OPTIMIZATION ENGINE           */
/* ============================================================ */
/* 1. Purge GPU-lagging backdrop-filter from repeating cards and list rows */
.page, .vip-card, .pcard, .product, .cat-pill, .cat-tile, .feed-item, .feed-row,
.dep-method-card, .dep-btn, .dep-hist-item, .txn-item, .txn-row, .lb-item,
.info-card, .stat-tile, .prof-stat, .ord-item, .ord-card, .order-card,
.bank-item, .ref-link-box, .ref-row, .ref-stat-box, .cat-pick-item, .pkg-row,
.select-card, .wallet-hero, .dep-grid>*, .card-amount-grid>*, .card-telco-grid>*,
.voucher-input, .card-rates-table, .vip-tab-pills, .dep-input-vip, .dep-input, .card-input,
.card-est-box, .tab-bar, .lb-filter, .modal-sheet .suc-key,
.qr-wrap, .warn-box, .pdetail-desc, .ibox, .page-hero,
.txn-status-dot, .feed-swipe-indicator, .pcard-out, .pcard-type,
.vip-hist-card, .vip-subtabs, .vip-quick-amt, .game-chip, .step-placeholder-box {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  will-change: auto !important;
}

/* 2. Only keep lightweight backdrop-filter on fixed chrome bars & sheets */
#appHeader, #bottomNav, .modal-sheet, .toast {
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  transform: translateZ(0);
}

/* 3. Smooth Hardware 60-120 FPS Rendering - NO jumpy scroll shifts */
.product, .vip-hist-card, .ord-card, .dep-hist-item, .txn-item, .feed-item, .feed-row, .lb-item, .ord-item {
  content-visibility: visible !important;
  contain-intrinsic-size: none !important;
}

/* 4. Native hardware scrolling momentum & buttery smooth scroll */
html, body {
  -webkit-overflow-scrolling: touch !important;
  overscroll-behavior-y: auto !important;
  overscroll-behavior-x: none !important;
  scroll-behavior: auto !important;
}
.page {
  -webkit-overflow-scrolling: touch !important;
  overscroll-behavior-y: auto !important;
  overscroll-behavior-x: none !important;
  contain: none !important;
}
.app-picker-panel.open > .cat-picker-list {
  max-height: 420px !important;
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch !important;
  overscroll-behavior-y: auto !important;
  touch-action: pan-y !important;
}
.app-picker-card .cat-pick-item {
  touch-action: pan-y !important;
  -webkit-user-select: none;
  user-select: none;
}
.cat-picker-list::-webkit-scrollbar {
  width: 4px;
}
.cat-picker-list::-webkit-scrollbar-thumb {
  background: rgba(167, 139, 250, 0.4);
  border-radius: 4px;
}

/* 5. Force all stagger items to stay immediate */
.stagger-item {
  opacity: 1 !important;
  transform: none !important;
  animation: none !important;
}

/* ══════════════════════════════════════════════════════════
   6. MODAL NẠP TIỀN THÀNH CÔNG VIP (DEPOSIT SUCCESS OVERLAY)
   ══════════════════════════════════════════════════════════ */
.dep-suc-overlay {
  position: fixed !important;
  inset: 0 !important;
  z-index: 9999999 !important;
  display: none !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 16px !important;
  opacity: 0 !important;
  visibility: hidden !important;
  transition: opacity 0.3s cubic-bezier(0.16, 1, 0.3, 1), visibility 0.3s !important;
  box-sizing: border-box !important;
}
.dep-suc-overlay.show {
  display: flex !important;
  opacity: 1 !important;
  visibility: visible !important;
}
.dep-suc-backdrop {
  position: absolute !important;
  inset: 0 !important;
  background: rgba(6, 4, 16, 0.88) !important;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.dep-suc-card {
  position: relative !important;
  z-index: 2 !important;
  width: 100% !important;
  max-width: 375px !important;
  background: linear-gradient(150deg, #10192e 0%, #0c0f1e 50%, #070914 100%) !important;
  border: 1.5px solid rgba(52, 211, 153, 0.5) !important;
  border-radius: 28px !important;
  padding: 26px 20px 22px !important;
  text-align: center !important;
  box-shadow: 0 0 45px rgba(16, 185, 129, 0.28), 0 0 90px rgba(6, 182, 212, 0.15), 0 25px 60px rgba(0,0,0,0.7) !important;
  transform: scale(0.82) translateY(15px) !important;
  transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
}
.dep-suc-overlay.show .dep-suc-card {
  transform: scale(1) translateY(0) !important;
}

/* Ambient glow & Confetti */
.dep-suc-glow {
  position: absolute;
  top: -60px;
  left: 50%;
  transform: translateX(-50%);
  width: 220px;
  height: 160px;
  background: radial-gradient(circle, rgba(16, 185, 129, 0.35) 0%, transparent 70%);
  pointer-events: none;
}
.dep-confetti-container {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
}
.c-dot {
  position: absolute;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  opacity: 0.8;
  animation: floatConfetti 3s ease-in-out infinite alternate;
}
.c-dot.c1 { top: 15%; left: 12%; background: #34d399; animation-delay: 0.2s; }
.c-dot.c2 { top: 22%; right: 14%; background: #fbbf24; animation-delay: 0.5s; width: 8px; height: 8px; }
.c-dot.c3 { top: 60%; left: 8%; background: #a78bfa; animation-delay: 0.9s; }
.c-dot.c4 { top: 75%; right: 10%; background: #38bdf8; animation-delay: 0.4s; width: 7px; height: 7px; }
.c-dot.c5 { top: 38%; left: 85%; background: #f472b6; animation-delay: 0.7s; }
.c-dot.c6 { top: 85%; left: 45%; background: #34d399; animation-delay: 1.1s; }

@keyframes floatConfetti {
  0% { transform: translateY(0) rotate(0deg); opacity: 0.4; }
  100% { transform: translateY(-14px) rotate(180deg); opacity: 0.9; }
}

/* Checkmark pulse */
.dep-suc-icon-wrap {
  position: relative;
  width: 72px;
  height: 72px;
  margin: 0 auto 14px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.dep-suc-icon-pulse {
  position: absolute;
  inset: -6px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(16, 185, 129, 0.4) 0%, transparent 75%);
  animation: depPulse 2s ease-in-out infinite alternate;
}
@keyframes depPulse {
  0% { transform: scale(0.9); opacity: 0.5; }
  100% { transform: scale(1.15); opacity: 1; }
}
.dep-suc-icon-circle {
  position: relative;
  z-index: 1;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: linear-gradient(135deg, #10b981 0%, #059669 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 0 25px rgba(16, 185, 129, 0.55), inset 0 2px 0 rgba(255,255,255,0.3);
  border: 2px solid rgba(255, 255, 255, 0.2);
}
.dep-suc-ico {
  width: 34px;
  height: 34px;
  color: #fff;
}

.dep-suc-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 12px;
  border-radius: 20px;
  background: rgba(245, 158, 11, 0.12);
  border: 1px solid rgba(245, 158, 11, 0.35);
  color: #fbbf24;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  margin-bottom: 8px;
}
.dep-suc-sub {
  font-size: 13px;
  color: var(--t-3);
  font-weight: 500;
}
.dep-suc-amount {
  font-family: 'Space Grotesk', var(--font);
  font-size: 34px;
  font-weight: 900;
  background: linear-gradient(135deg, #34d399, #10b981, #6ee7b7);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 0 16px rgba(16, 185, 129, 0.45));
  margin: 4px 0 16px;
  letter-spacing: -0.5px;
}

/* Receipt box */
.dep-suc-receipt {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.07);
  border-radius: 16px;
  padding: 12px 14px;
  margin-bottom: 20px;
  text-align: left;
}
.dep-rec-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 6px 0;
  font-size: 12.5px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
}
.dep-rec-row:last-child {
  border-bottom: none;
}
.dep-rec-lbl {
  color: var(--t-3);
  display: flex;
  align-items: center;
  gap: 6px;
}
.dep-rec-val {
  font-weight: 700;
  color: #fff;
}
.dep-rec-val.text-gold {
  color: #fbbf24;
}
.dep-rec-val.text-success {
  color: #34d399;
  display: flex;
  align-items: center;
  gap: 5px;
}
.live-dot.green {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #34d399;
  box-shadow: 0 0 6px #34d399;
  display: inline-block;
  animation: live-pulse 1.5s infinite;
}

/* Actions */
.dep-suc-actions {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.btn-dep-primary {
  width: 100%;
  background: linear-gradient(135deg, #10b981 0%, #059669 100%);
  color: #fff;
  border: none;
  padding: 12px 16px;
  border-radius: 14px;
  font-size: 14px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  box-shadow: 0 4px 16px rgba(16, 185, 129, 0.4);
  cursor: pointer;
  transition: all 0.2s ease;
}
.btn-dep-primary:active {
  transform: scale(0.97);
  box-shadow: 0 2px 8px rgba(16, 185, 129, 0.3);
}
.btn-dep-secondary {
  width: 100%;
  background: rgba(255, 255, 255, 0.05);
  color: var(--t-2);
  border: 1px solid rgba(255, 255, 255, 0.1);
  padding: 10px 16px;
  border-radius: 14px;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
}
.btn-dep-secondary:active {
  background: rgba(255, 255, 255, 0.1);
}

/* ══════════════════════════════════════════════════════════
   7. MÀN HÌNH BẢO TRÌ HỆ THỐNG VIP (MAINTENANCE OVERLAY)
   ══════════════════════════════════════════════════════════ */
.maint-overlay {
  position: fixed !important;
  inset: 0 !important;
  z-index: 99999999 !important;
  display: none !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 20px !important;
  background: #080716 !important;
  opacity: 0 !important;
  visibility: hidden !important;
  transition: opacity 0.35s ease, visibility 0.35s !important;
  box-sizing: border-box !important;
}
.maint-overlay.show {
  display: flex !important;
  opacity: 1 !important;
  visibility: visible !important;
}
.maint-card {
  position: relative !important;
  z-index: 2 !important;
  width: 100% !important;
  max-width: 400px !important;
  background: linear-gradient(150deg, #13172e 0%, #0a0c1a 100%) !important;
  border: 1.5px solid rgba(245, 158, 11, 0.45) !important;
  border-radius: 28px !important;
  padding: 32px 24px 24px !important;
  text-align: center !important;
  box-shadow: 0 0 50px rgba(245, 158, 11, 0.25), 0 0 100px rgba(124, 58, 237, 0.15), 0 25px 60px rgba(0,0,0,0.8) !important;
  box-sizing: border-box !important;
}
.maint-ico-wrap {
  position: relative;
  width: 80px;
  height: 80px;
  margin: 0 auto 16px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.maint-cog-glow {
  position: absolute;
  inset: -8px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(245, 158, 11, 0.35) 0%, transparent 75%);
  animation: maintGlow 2.5s ease-in-out infinite alternate;
}
@keyframes maintGlow {
  0% { transform: scale(0.9); opacity: 0.4; }
  100% { transform: scale(1.2); opacity: 0.9; }
}
.maint-icon-circle {
  position: relative;
  z-index: 1;
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 0 25px rgba(245, 158, 11, 0.5), inset 0 2px 0 rgba(255,255,255,0.3);
  border: 2px solid rgba(255, 255, 255, 0.2);
}
.maint-wrench {
  width: 32px;
  height: 32px;
  color: #fff;
  animation: maintWrenchSwing 3s ease-in-out infinite alternate;
}
.maint-cog {
  position: absolute;
  bottom: 2px;
  right: 2px;
  width: 22px;
  height: 22px;
  color: #fef3c7;
  animation: spin 6s linear infinite;
}
@keyframes maintWrenchSwing {
  0% { transform: rotate(-10deg); }
  100% { transform: rotate(20deg); }
}

.maint-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 12px;
  border-radius: 20px;
  background: rgba(239, 68, 68, 0.14);
  border: 1px solid rgba(239, 68, 68, 0.4);
  color: #fca5a5;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  margin-bottom: 12px;
}
.maint-pulse-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #ef4444;
  box-shadow: 0 0 6px #ef4444;
  display: inline-block;
  animation: live-pulse 1.2s infinite;
}
.maint-title {
  font-size: 20px;
  font-weight: 800;
  color: #fff;
  margin: 0 0 10px;
  letter-spacing: -0.3px;
}
.maint-message {
  font-size: 13.5px;
  color: var(--t-2);
  line-height: 1.55;
  margin: 0 0 16px;
  white-space: pre-line;
}
.maint-eta-box {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(245, 158, 11, 0.1);
  border: 1px solid rgba(245, 158, 11, 0.25);
  border-radius: 10px;
  padding: 6px 12px;
  font-size: 12px;
  font-weight: 600;
  color: #fbbf24;
  margin-bottom: 20px;
}
.maint-actions {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.btn-maint-reload {
  width: 100%;
  background: linear-gradient(135deg, #7c3aed 0%, #6d28d9 100%);
  color: #fff;
  border: none;
  padding: 12px;
  border-radius: 14px;
  font-size: 14px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  box-shadow: 0 4px 16px rgba(124, 58, 237, 0.4);
  cursor: pointer;
  transition: all 0.2s ease;
}
.btn-maint-reload.loading .maint-reload-ico {
  animation: spin 0.8s linear infinite;
}
.btn-maint-contact {
  width: 100%;
  background: rgba(255, 255, 255, 0.05);
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.12);
  padding: 11px;
  border-radius: 14px;
  font-size: 13px;
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  text-decoration: none;
  transition: all 0.2s ease;
}
.btn-maint-contact:active {
  background: rgba(255, 255, 255, 0.1);
}
.maint-footer {
  margin-top: 18px;
  font-size: 11.5px;
  color: var(--t-4);
}

/* ══════════════════════════════════════════════════════════
   8. ADMIN MAINTENANCE BANNER (TOP STICKY)
   ══════════════════════════════════════════════════════════ */
.admin-maint-banner {
  position: sticky !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 999999 !important;
  background: linear-gradient(90deg, #b45309, #d97706) !important;
  color: #fff !important;
  padding: 8px 14px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 8px !important;
  font-size: 12px !important;
  box-shadow: 0 2px 10px rgba(0,0,0,0.3) !important;
}
.amb-content {
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
  flex: 1 !important;
}
.amb-close {
  background: transparent !important;
  border: none !important;
  color: #fff !important;
  font-size: 15px !important;
  cursor: pointer !important;
  padding: 2px 6px !important;
}

/* ══════════════════════════════════════════════════════════
   9. KẾT NỐI API CHO SELLER / SHOP INTEGRATION
   ══════════════════════════════════════════════════════════ */
.api-status-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 11px;
  font-weight: 600;
  padding: 3px 9px;
  border-radius: var(--r-pill);
  background: rgba(16, 185, 129, 0.15);
  color: #34d399;
  border: 1px solid rgba(16, 185, 129, 0.35);
}
.api-status-badge.inactive {
  background: rgba(239, 68, 68, 0.15);
  color: #f87171;
  border-color: rgba(239, 68, 68, 0.35);
}
.api-status-badge i, .api-status-badge svg {
  width: 12px;
  height: 12px;
}

.api-token-container {
  background: rgba(11, 15, 30, 0.7);
  border: 1px solid rgba(139, 92, 246, 0.22);
  border-radius: var(--r-md);
  padding: 12px;
  margin-top: 4px;
}
.api-token-label-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
}
.api-token-label {
  font-size: 12px;
  font-weight: 600;
  color: var(--t-2);
  display: flex;
  align-items: center;
  gap: 5px;
}
.api-token-label svg, .api-token-label i {
  width: 13px;
  height: 13px;
  color: var(--primary-light);
}
.api-token-hint {
  font-size: 11px;
  color: var(--t-4);
}

.api-token-input-group {
  display: flex;
  align-items: center;
  gap: 6px;
}
.api-token-input {
  flex: 1;
  background: rgba(20, 24, 45, 0.9) !important;
  border: 1px solid rgba(139, 92, 246, 0.3) !important;
  border-radius: var(--r-sm) !important;
  color: #38bdf8 !important;
  font-family: var(--font-mono) !important;
  font-size: 12.5px !important;
  padding: 8px 12px !important;
  letter-spacing: 0.5px;
  outline: none;
  user-select: all;
  box-sizing: border-box;
}
.api-token-input:focus {
  border-color: var(--primary-light) !important;
  box-shadow: 0 0 10px rgba(139, 92, 246, 0.3);
}

.btn-api-icon {
  background: rgba(255, 255, 255, 0.07);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: var(--r-sm);
  color: var(--t-2);
  width: 38px;
  height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s;
  flex-shrink: 0;
}
.btn-api-icon:active {
  transform: scale(0.92);
  background: rgba(139, 92, 246, 0.2);
  border-color: var(--primary-light);
  color: #fff;
}
.btn-api-icon svg, .btn-api-icon i, .btn-api-icon path {
  width: 15px;
  height: 15px;
  pointer-events: none;
}

.api-btn-row {
  display: flex;
  gap: 8px;
  align-items: center;
}

/* Modal Tài Liệu API */
#apiDocsModal {
  max-height: 88dvh;
  overflow-y: auto;
}
.api-docs-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
}
.api-docs-title {
  font-size: 16px;
  font-weight: 700;
  color: #fff;
  display: flex;
  align-items: center;
  gap: 8px;
}
.api-docs-title svg, .api-docs-title i {
  color: #60a5fa;
  width: 20px;
  height: 20px;
}

.api-endpoint-card {
  background: rgba(18, 22, 45, 0.7);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--r-sm);
  padding: 10px 12px;
  margin-bottom: 10px;
}
.api-ep-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
}
.api-method-pill {
  font-size: 10px;
  font-weight: 700;
  padding: 2px 6px;
  border-radius: 4px;
  letter-spacing: 0.5px;
  text-transform: uppercase;
}
.api-method-pill.get {
  background: rgba(16, 185, 129, 0.2);
  color: #34d399;
  border: 1px solid rgba(16, 185, 129, 0.4);
}
.api-method-pill.post {
  background: rgba(59, 130, 246, 0.2);
  color: #60a5fa;
  border: 1px solid rgba(59, 130, 246, 0.4);
}
.api-ep-path {
  font-family: var(--font-mono);
  font-size: 12px;
  color: #f1f5f9;
  word-break: break-all;
}
.api-ep-desc {
  font-size: 12px;
  color: var(--t-3);
  line-height: 1.45;
}

.api-code-nav {
  display: flex;
  gap: 6px;
  background: rgba(10, 12, 24, 0.8);
  padding: 4px;
  border-radius: var(--r-sm);
  margin-bottom: 10px;
  border: 1px solid rgba(255, 255, 255, 0.06);
}
.api-code-tab-btn {
  flex: 1;
  padding: 6px 4px;
  font-size: 11.5px;
  font-weight: 600;
  border-radius: var(--r-xs);
  color: var(--t-3);
  text-align: center;
  cursor: pointer;
  transition: all 0.2s;
}
.api-code-tab-btn.active {
  background: rgba(139, 92, 246, 0.25);
  color: #fff;
  border: 1px solid rgba(167, 139, 250, 0.4);
  box-shadow: 0 0 10px rgba(139, 92, 246, 0.2);
}

.api-code-box {
  position: relative;
  background: #090d1a;
  border: 1px solid rgba(139, 92, 246, 0.25);
  border-radius: var(--r-sm);
  padding: 12px;
  margin-bottom: 12px;
}
.api-code-pre {
  margin: 0;
  font-family: var(--font-mono);
  font-size: 11.5px;
  line-height: 1.6;
  color: #e2e8f0;
  white-space: pre-wrap;
  word-break: break-word;
  overflow-x: auto;
}
.btn-copy-code {
  position: absolute;
  top: 8px;
  right: 8px;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.15);
  color: var(--t-2);
  padding: 4px 8px;
  font-size: 11px;
  border-radius: 6px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: all 0.2s;
}
.btn-copy-code:active {
  transform: scale(0.92);
  background: rgba(16, 185, 129, 0.2);
  border-color: #34d399;
  color: #34d399;
}

/* ══════════════════════════════════════════════════════════
   VIP LEADERBOARD PODIUM & MODERN RANKING STYLES
   ══════════════════════════════════════════════════════════ */
.lb-podium-wrap {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 8px;
  margin: 16px 0 16px 0;
  padding: 16px 6px 0;
  background: radial-gradient(ellipse at center bottom, rgba(124, 58, 237, 0.22), transparent 72%);
  border-radius: 20px;
}

.lb-podium-col {
  flex: 1;
  max-width: 125px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  position: relative;
}

.lb-podium-col.rank-1 {
  order: 2;
  z-index: 3;
}
.lb-podium-col.rank-2 {
  order: 1;
  z-index: 2;
}
.lb-podium-col.rank-3 {
  order: 3;
  z-index: 1;
}

.lb-podium-crown-halo {
  font-size: 22px;
  line-height: 1;
  margin-bottom: -3px;
  z-index: 4;
  animation: crownHover 2.2s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 10px rgba(251, 191, 36, 0.85));
}
@keyframes crownHover {
  0% { transform: translateY(0) scale(1); }
  100% { transform: translateY(-3px) scale(1.08); }
}

.lb-podium-user {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  margin-bottom: 5px;
  position: relative;
}

/* AVATAR RING WITH REAL PHOTO */
.lb-podium-avatar-ring {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 5px;
  background: #1e1b4b;
  flex-shrink: 0;
}

.lb-podium-col.rank-1 .lb-podium-avatar-ring {
  width: 48px;
  height: 48px;
  border: 2px solid #fbbf24;
  box-shadow: 0 0 16px rgba(251, 191, 36, 0.5), inset 0 0 8px rgba(251, 191, 36, 0.25);
  background: linear-gradient(135deg, #312e81, #1e1b4b);
}

.lb-podium-col.rank-2 .lb-podium-avatar-ring {
  border: 2px solid #cbd5e1;
  box-shadow: 0 0 12px rgba(203, 213, 225, 0.45);
  background: linear-gradient(135deg, #1e293b, #0f172a);
}

.lb-podium-col.rank-3 .lb-podium-avatar-ring {
  border: 2px solid #fb923c;
  box-shadow: 0 0 12px rgba(251, 146, 60, 0.45);
  background: linear-gradient(135deg, #2a1b12, #180d07);
}

.lb-podium-avatar-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
  display: block;
}

.lb-podium-avatar-fallback {
  font-size: 15px;
  font-weight: 800;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  border-radius: 50%;
}
.lb-podium-col.rank-1 .lb-podium-avatar-fallback {
  font-size: 17px;
}

.lb-podium-badge-icon {
  position: absolute;
  bottom: -4px;
  right: -4px;
  font-size: 13px;
  line-height: 1;
  filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.6));
}

.lb-podium-badge-wrap {
  margin-bottom: 2px;
  line-height: 1;
}

.lb-podium-name {
  font-size: 11px;
  font-weight: 700;
  color: #f8fafc;
  width: 100%;
  max-width: 100%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  text-align: center;
  margin-bottom: 2px;
  display: block;
  padding: 0 2px;
  box-sizing: border-box;
}

.lb-podium-king-badge {
  display: inline-block;
  font-size: 8px;
  font-weight: 800;
  padding: 1.5px 5px;
  border-radius: 4px;
  background: linear-gradient(135deg, #f59e0b, #ef4444);
  color: #fff;
  letter-spacing: 0.5px;
  line-height: 1.2;
}

.lb-podium-amt {
  font-size: 11.5px;
  font-weight: 800;
  color: #38bdf8;
  white-space: nowrap;
  text-align: center;
  width: 100%;
}

.lb-podium-col.rank-1 .lb-podium-amt {
  font-size: 12.5px;
  background: linear-gradient(135deg, #fef08a, #f59e0b);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  font-weight: 900;
}

.lb-podium-txns {
  font-size: 9px;
  color: #94a3b8;
  margin-bottom: 4px;
  text-align: center;
  width: 100%;
}

/* ══════════════════════════════════════════════════════════
   PODIUM 3 ANIME CHARACTERS (TOP 1 2 3 ON PODIUM PILLARS)
   ══════════════════════════════════════════════════════════ */
.lb-podium-char-wrap {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  margin-bottom: -3px;
  z-index: 2;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  user-select: none;
}

.lb-podium-char-img {
  display: block;
  object-fit: contain;
  filter: drop-shadow(0 4px 10px rgba(0, 0, 0, 0.45));
  transition: transform 0.2s cubic-bezier(0.34, 1.56, 0.64, 1);
  will-change: transform;
}

/* Top 1 character (Center - Tallest) */
.lb-podium-char-img.rank-1 {
  height: 94px;
  filter: drop-shadow(0 0 12px rgba(251, 191, 36, 0.55)) drop-shadow(0 6px 12px rgba(0, 0, 0, 0.5));
}

/* Top 2 character (Left - Medium) */
.lb-podium-char-img.rank-2 {
  height: 80px;
  filter: drop-shadow(0 0 10px rgba(203, 213, 225, 0.45)) drop-shadow(0 5px 10px rgba(0, 0, 0, 0.45));
}

/* Top 3 character (Right - Cute/Compact) */
.lb-podium-char-img.rank-3 {
  height: 74px;
  filter: drop-shadow(0 0 10px rgba(251, 146, 60, 0.45)) drop-shadow(0 5px 10px rgba(0, 0, 0, 0.45));
}

/* Contact shadow & glow light on top of pillar */
.lb-podium-char-contact {
  width: 58px;
  height: 7px;
  border-radius: 50%;
  margin-top: -3px;
  opacity: 0.85;
}
.lb-podium-char-contact.gold {
  background: radial-gradient(ellipse at center, rgba(251, 191, 36, 0.85), transparent 70%);
  box-shadow: 0 0 10px rgba(251, 191, 36, 0.5);
}
.lb-podium-char-contact.silver {
  background: radial-gradient(ellipse at center, rgba(203, 213, 225, 0.8), transparent 70%);
  box-shadow: 0 0 8px rgba(203, 213, 225, 0.4);
}
.lb-podium-char-contact.bronze {
  background: radial-gradient(ellipse at center, rgba(251, 146, 60, 0.8), transparent 70%);
  box-shadow: 0 0 8px rgba(251, 146, 60, 0.4);
}

/* Empty position placeholder */
.lb-podium-char-empty-placeholder {
  width: 48px;
  height: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1.5px dashed rgba(255, 255, 255, 0.25);
  border-radius: 12px;
  color: rgba(255, 255, 255, 0.3);
  font-size: 18px;
  font-weight: 800;
  margin-bottom: 4px;
}

/* Mini avatar tag */
.lb-podium-mini-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  font-size: 9px;
  font-weight: 800;
  color: #fff;
  vertical-align: middle;
  margin-right: 3px;
  flex-shrink: 0;
}
.lb-podium-mini-avatar.gold {
  background: #312e81;
  border: 1px solid #fbbf24;
}
.lb-podium-mini-avatar.silver {
  background: #1e293b;
  border: 1px solid #cbd5e1;
}
.lb-podium-mini-avatar.bronze {
  background: #2a1b12;
  border: 1px solid #fb923c;
}

/* Speech bubble for tapped character */
.lb-podium-char-speech {
  display: none;
  position: absolute;
  bottom: calc(100% + 4px);
  left: 50%;
  transform: translateX(-50%);
  background: rgba(15, 23, 42, 0.96);
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 9px;
  padding: 4px 7px;
  font-size: 9.5px;
  font-weight: 700;
  color: #f8fafc;
  line-height: 1.3;
  width: max-content;
  max-width: 105px;
  text-align: center;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.6), 0 0 10px rgba(124, 58, 237, 0.3);
  z-index: 10;
  pointer-events: none;
  animation: speechPopIn 0.22s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.lb-podium-char-speech::after {
  content: '';
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  border-width: 4px;
  border-style: solid;
  border-color: rgba(15, 23, 42, 0.96) transparent transparent transparent;
}
@keyframes speechPopIn {
  from { opacity: 0; transform: translateX(-50%) translateY(4px) scale(0.85); }
  to { opacity: 1; transform: translateX(-50%) translateY(0) scale(1); }
}

/* Tap bounce animation */
.lb-char-bounce {
  animation: charBounce 0.45s ease;
}
@keyframes charBounce {
  0% { transform: scale(1); }
  35% { transform: translateY(-8px) scale(1.08); }
  65% { transform: translateY(2px) scale(0.96); }
  100% { transform: translateY(0) scale(1); }
}

.lb-podium-pillar {
  width: 100%;
  border-top-left-radius: 12px;
  border-top-right-radius: 12px;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding-top: 10px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15);
}

.lb-podium-pillar.gold {
  height: 78px;
  background: linear-gradient(180deg, rgba(245, 158, 11, 0.48) 0%, rgba(180, 83, 9, 0.16) 100%);
  border: 1px solid rgba(251, 191, 36, 0.5);
  border-bottom: none;
}

.lb-podium-pillar.silver {
  height: 60px;
  background: linear-gradient(180deg, rgba(148, 163, 184, 0.38) 0%, rgba(51, 65, 85, 0.14) 100%);
  border: 1px solid rgba(203, 213, 225, 0.4);
  border-bottom: none;
}

.lb-podium-pillar.bronze {
  height: 48px;
  background: linear-gradient(180deg, rgba(234, 88, 12, 0.38) 0%, rgba(124, 45, 18, 0.14) 100%);
  border: 1px solid rgba(251, 146, 60, 0.4);
  border-bottom: none;
}

.lb-podium-num {
  font-size: 20px;
  font-weight: 900;
  line-height: 1;
  opacity: 0.85;
}
.lb-podium-pillar.gold .lb-podium-num { color: #fef08a; text-shadow: 0 0 10px rgba(251, 191, 36, 0.6); }
.lb-podium-pillar.silver .lb-podium-num { color: #f1f5f9; text-shadow: 0 0 8px rgba(203, 213, 225, 0.6); }
.lb-podium-pillar.bronze .lb-podium-num { color: #fed7aa; text-shadow: 0 0 8px rgba(251, 146, 60, 0.6); }

/* RANK 4 - 10 ROWS */
.lb-rows-wrap {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 4px;
}

.lb-row-card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 11px 14px;
  background: linear-gradient(145deg, rgba(24, 28, 58, 0.8), rgba(16, 20, 44, 0.75));
  border: 1px solid rgba(139, 92, 246, 0.2);
  border-radius: 14px;
  box-shadow: 0 4px 14px rgba(4, 6, 20, 0.2);
  transition: transform 0.16s ease, border-color 0.16s ease;
}

.lb-row-card.is-me {
  background: linear-gradient(145deg, rgba(124, 58, 237, 0.26), rgba(6, 182, 212, 0.14)) !important;
  border-color: rgba(167, 139, 250, 0.7) !important;
  box-shadow: 0 0 18px rgba(139, 92, 246, 0.3) !important;
}

.lb-row-rank {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.06);
  color: #94a3b8;
  font-size: 12px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.lb-row-avatar {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: linear-gradient(135deg, #4f46e5, #7c3aed);
  color: #fff;
  font-size: 14px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 0 10px rgba(99, 102, 241, 0.3);
  overflow: hidden;
  position: relative;
}

.lb-row-avatar-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
  display: block;
}

.lb-row-meta {
  flex: 1;
  min-width: 0;
}

.lb-row-name {
  font-size: 13px;
  font-weight: 700;
  color: #f1f5f9;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: flex;
  align-items: center;
  gap: 6px;
}

.lb-me-tag {
  font-size: 10px;
  font-weight: 800;
  color: #38bdf8;
  background: rgba(56, 189, 248, 0.16);
  border: 1px solid rgba(56, 189, 248, 0.35);
  padding: 1px 6px;
  border-radius: 6px;
}

.lb-row-sub {
  font-size: 11px;
  color: #64748b;
  margin-top: 1px;
}

.lb-row-right {
  text-align: right;
  flex-shrink: 0;
}

.lb-row-amt {
  font-size: 13.5px;
  font-weight: 800;
  color: #34d399;
}

.lb-row-count {
  font-size: 10px;
  color: #94a3b8;
  margin-top: 1px;
}

/* PERKS / MOTIVATION CARD */
.lb-perks-card {
  margin-top: 20px;
  background: linear-gradient(145deg, rgba(30, 24, 54, 0.85), rgba(16, 14, 34, 0.8));
  border: 1px solid rgba(251, 191, 36, 0.3);
  border-radius: 16px;
  padding: 14px 16px;
  box-shadow: 0 8px 24px rgba(4, 6, 20, 0.25);
}

.lb-perks-head {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
}

.lb-perks-ico {
  font-size: 18px;
  line-height: 1;
}

.lb-perks-title {
  font-size: 12.5px;
  font-weight: 800;
  color: #fbbf24;
  letter-spacing: 0.3px;
  text-transform: uppercase;
}

.lb-perks-body {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.lb-perk-item {
  font-size: 11.5px;
  color: #cbd5e1;
  line-height: 1.4;
}

/* EMPTY STATE */
.lb-empty-state {
  text-align: center;
  padding: 36px 16px;
  background: linear-gradient(145deg, rgba(24, 28, 58, 0.65), rgba(16, 20, 44, 0.55));
  border: 1px dashed rgba(139, 92, 246, 0.3);
  border-radius: 18px;
  margin-top: 12px;
}

.lb-empty-icon {
  font-size: 42px;
  line-height: 1;
  margin-bottom: 10px;
  animation: crownHover 2s ease-in-out infinite alternate;
}

.lb-empty-title {
  font-size: 15px;
  font-weight: 800;
  color: #f8fafc;
  margin-bottom: 4px;
}

.lb-empty-desc {
  font-size: 12px;
  color: #94a3b8;
  max-width: 280px;
  margin: 0 auto 16px;
  line-height: 1.4;
}

.btn-lb-deposit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 10px 20px;
  border-radius: 20px;
  background: linear-gradient(135deg, #8b5cf6, #3b82f6);
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  border: none;
  cursor: pointer;
  box-shadow: 0 4px 14px rgba(139, 92, 246, 0.4);
  transition: transform 0.15s ease;
}
.btn-lb-deposit:active {
  transform: scale(0.96);
}


/* ══════════════════════════════════════════════════
   VÒNG QUAY MAY MẮN (VQMM) STYLES
══════════════════════════════════════════════════ */
#page-vqmm {
  padding-bottom: 96px;
}

.vqmm-hero {
  background: linear-gradient(135deg, rgba(76, 29, 149, 0.85), rgba(30, 27, 75, 0.8)) !important;
  border-color: rgba(167, 139, 250, 0.3) !important;
  box-shadow: 0 12px 36px rgba(124, 58, 237, 0.2) !important;
  margin-bottom: 14px;
}
.vqmm-hero-icon {
  background: linear-gradient(135deg, #ec4899, #8b5cf6) !important;
  box-shadow: 0 0 24px rgba(236, 72, 153, 0.5) !important;
}
.vqmm-hero-title {
  background: linear-gradient(135deg, #f472b6, #c084fc, #38bdf8) !important;
  -webkit-background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  font-weight: 800 !important;
}

/* Status & Spin bar */
.vqmm-status-card {
  background: rgba(18, 16, 38, 0.78);
  border: 1px solid rgba(139, 92, 246, 0.25);
  border-radius: var(--r-md);
  padding: 12px 14px;
  margin-bottom: 14px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
  backdrop-filter: none;
}
.vqmm-status-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  text-align: center;
  margin-bottom: 10px;
}
.vqmm-stat-box {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: var(--r-sm);
  padding: 8px 4px;
}
.vqmm-stat-lbl {
  font-size: 11px;
  color: var(--t-4);
  font-weight: 600;
  margin-bottom: 3px;
}
.vqmm-stat-val {
  font-size: 13px;
  font-weight: 700;
}
.badge-free-spin {
  display: inline-block;
  font-size: 10.5px;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 999px;
}
.badge-free-spin.active {
  background: rgba(16, 185, 129, 0.2);
  color: #34d399;
  border: 1px solid rgba(16, 185, 129, 0.4);
  box-shadow: 0 0 10px rgba(16, 185, 129, 0.3);
  animation: pulseGreen 2s infinite;
}
.badge-free-spin.used {
  background: rgba(148, 163, 184, 0.1);
  color: var(--t-4);
  border: 1px solid rgba(148, 163, 184, 0.2);
}
@keyframes pulseGreen {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.85; transform: scale(1.03); }
}

.vqmm-buy-row {
  display: flex;
  justify-content: center;
}
.btn-vqmm-buy {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, rgba(6, 182, 212, 0.2), rgba(139, 92, 246, 0.25));
  border: 1px solid rgba(6, 182, 212, 0.4);
  color: #38bdf8;
  font-size: 13px;
  font-weight: 600;
  padding: 9px 16px;
  border-radius: var(--r-sm);
  cursor: pointer;
  transition: all 0.2s;
}
.btn-vqmm-buy:active {
  transform: scale(0.98);
  background: linear-gradient(135deg, rgba(6, 182, 212, 0.3), rgba(139, 92, 246, 0.35));
}

/* 2 Ô Vật phẩm chính nổi bật */
.vqmm-featured-container {
  background: linear-gradient(135deg, rgba(245, 158, 11, 0.08), rgba(239, 68, 68, 0.06));
  border: 1px solid rgba(245, 158, 11, 0.3);
  border-radius: var(--r-md);
  padding: 12px;
  margin-bottom: 16px;
  box-shadow: 0 0 25px rgba(245, 158, 11, 0.12);
}
.vqmm-featured-title {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 11.5px;
  font-weight: 700;
  color: #fbbf24;
  letter-spacing: 0.04em;
  margin-bottom: 10px;
}
.vqmm-featured-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.vqmm-feat-card {
  position: relative;
  border-radius: var(--r-sm);
  padding: 10px 8px;
  text-align: center;
  overflow: hidden;
}
.vqmm-feat-card.feat-1 {
  background: linear-gradient(135deg, rgba(245, 158, 11, 0.16), rgba(217, 119, 6, 0.25));
  border: 1.5px solid rgba(251, 191, 36, 0.5);
  box-shadow: 0 0 15px rgba(245, 158, 11, 0.2);
}
.vqmm-feat-card.feat-2 {
  background: linear-gradient(135deg, rgba(239, 68, 68, 0.16), rgba(220, 38, 38, 0.25));
  border: 1.5px solid rgba(248, 113, 113, 0.5);
  box-shadow: 0 0 15px rgba(239, 68, 68, 0.2);
}
.vqmm-feat-badge {
  font-size: 9.5px;
  font-weight: 800;
  color: #fef08a;
  text-transform: uppercase;
  margin-bottom: 4px;
}
.vqmm-feat-icon {
  font-size: 26px;
  margin-bottom: 2px;
  filter: drop-shadow(0 0 8px rgba(251, 191, 36, 0.6));
}
.vqmm-feat-name {
  font-size: 12px;
  font-weight: 700;
  color: #fff;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Vòng quay Canvas Container */
.vqmm-wheel-wrapper {
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  padding: 10px 0 20px;
  user-select: none;
}
.vqmm-wheel-outer {
  position: relative;
  width: 340px;
  height: 340px;
  max-width: 90vw;
  max-height: 90vw;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 0 45px rgba(124, 58, 237, 0.35), inset 0 0 25px rgba(0, 0, 0, 0.6);
  border: 6px solid #1e1b4b;
  background: #09071a;
}
@media (max-width: 375px) {
  .vqmm-wheel-outer {
    width: 300px;
    height: 300px;
  }
}

.vqmm-canvas-box {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
#vqmmCanvas {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  display: block;
}

/* Đèn LED viền tròn */
.vqmm-bulbs-ring {
  position: absolute;
  inset: -2px;
  border-radius: 50%;
  pointer-events: none;
  z-index: 2;
}
.vqmm-bulbs-ring .bulb {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 8px;
  height: 8px;
  margin: -4px 0 0 -4px;
  border-radius: 50%;
  background: #fbbf24;
  box-shadow: 0 0 8px #fbbf24;
  transform: rotate(var(--a)) translateY(-164px);
  animation: bulbBlink 1.2s infinite alternate;
}
@media (max-width: 375px) {
  .vqmm-bulbs-ring .bulb {
    transform: rotate(var(--a)) translateY(-145px);
  }
}
.vqmm-bulbs-ring .bulb:nth-child(even) {
  background: #38bdf8;
  box-shadow: 0 0 8px #38bdf8;
  animation-delay: 0.6s;
}
@keyframes bulbBlink {
  0% { opacity: 0.3; transform: rotate(var(--a)) translateY(-164px) scale(0.8); }
  100% { opacity: 1; transform: rotate(var(--a)) translateY(-164px) scale(1.15); }
}

/* Kim chỉ (Pointer) — Thiết kế 3D Kim Vàng Đỏ Sang Trọng */
.vqmm-pointer {
  position: absolute;
  top: -18px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 12;
  filter: drop-shadow(0 4px 10px rgba(0, 0, 0, 0.85));
}
.vqmm-pointer-arrow {
  width: 0;
  height: 0;
  border-left: 15px solid transparent;
  border-right: 15px solid transparent;
  border-top: 32px solid #dc2626;
  position: relative;
  filter: drop-shadow(0 0 6px rgba(220, 38, 38, 0.7));
}
.vqmm-pointer-arrow::before {
  content: '';
  position: absolute;
  top: -32px;
  left: -9px;
  width: 0;
  height: 0;
  border-left: 9px solid transparent;
  border-right: 9px solid transparent;
  border-top: 20px solid #fde047;
}
.vqmm-pointer-arrow::after {
  content: '';
  position: absolute;
  top: -34px;
  left: -8px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: radial-gradient(circle, #fff, #f59e0b 60%, #b45309 100%);
  border: 2px solid #fff;
  box-shadow: 0 0 10px #fde047;
}

/* Nút quay trung tâm */
.vqmm-spin-btn {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 76px;
  height: 76px;
  border-radius: 50%;
  background: radial-gradient(circle, #ec4899, #8b5cf6 70%, #6d28d9 100%);
  border: 4px solid #fff;
  box-shadow: 0 0 20px rgba(236, 72, 153, 0.7), inset 0 0 10px rgba(255, 255, 255, 0.5);
  color: #fff;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 8;
  outline: none;
  transition: transform 0.15s, box-shadow 0.15s;
}
.vqmm-spin-btn:hover {
  box-shadow: 0 0 28px rgba(236, 72, 153, 0.9), inset 0 0 15px rgba(255, 255, 255, 0.7);
}
.vqmm-spin-btn:active {
  transform: translate(-50%, -50%) scale(0.93);
}
.vqmm-spin-btn.spinning {
  pointer-events: none;
  opacity: 0.85;
}
.spin-btn-text {
  font-size: 16px;
  font-weight: 900;
  letter-spacing: 0.05em;
  line-height: 1.1;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.6);
}
.spin-btn-sub {
  font-size: 8.5px;
  font-weight: 700;
  color: #fef08a;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  margin-top: 1px;
}

/* Bảng tin người trúng thưởng gần đây */
.vqmm-ticker-wrap {
  display: flex;
  align-items: center;
  gap: 8px;
  background: rgba(15, 23, 42, 0.75);
  border: 1px solid rgba(59, 130, 246, 0.25);
  border-radius: var(--r-sm);
  padding: 8px 12px;
  font-size: 12px;
  margin-bottom: 12px;
}
.vqmm-ticker-tag {
  background: linear-gradient(135deg, #ef4444, #f59e0b);
  color: #fff;
  font-size: 10px;
  font-weight: 800;
  padding: 2px 6px;
  border-radius: 4px;
  white-space: nowrap;
}
.vqmm-ticker-content {
  color: var(--t-2);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  flex: 1;
}

/* Voucher Cards in Kho Voucher */
.vqmm-voucher-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: rgba(22, 19, 44, 0.75);
  border: 1px solid rgba(139, 92, 246, 0.25);
  border-radius: var(--r-md);
  padding: 12px 14px;
  margin-bottom: 8px;
  position: relative;
  overflow: hidden;
}
.vqmm-voucher-card::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 4px;
  background: #38bdf8;
}
.vqmm-voucher-card.used {
  opacity: 0.55;
}
.vqmm-voucher-card.used::before {
  background: var(--t-4);
}
.v-val {
  font-size: 14px;
  font-weight: 800;
  color: #38bdf8;
}
.v-code code {
  font-family: var(--font-mono);
  font-size: 13px;
  font-weight: 700;
  color: #fef08a;
}
.v-exp {
  font-size: 11px;
  color: var(--t-4);
  margin-top: 2px;
}
.btn-copy-v {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: rgba(56, 189, 248, 0.15);
  border: 1px solid rgba(56, 189, 248, 0.4);
  color: #38bdf8;
  font-size: 12px;
  font-weight: 600;
  padding: 6px 12px;
  border-radius: var(--r-sm);
  cursor: pointer;
  transition: all 0.15s;
}
.btn-copy-v:active {
  transform: scale(0.95);
}
.badge-v-used {
  font-size: 11.5px;
  color: var(--t-4);
  background: rgba(255, 255, 255, 0.05);
  padding: 4px 10px;
  border-radius: 6px;
}

/* Lịch sử quay cá nhân */
.vqmm-hist-item {
  display: flex;
  align-items: center;
  gap: 12px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: var(--r-sm);
  padding: 10px 12px;
  margin-bottom: 6px;
}
.vqmm-hi-icon {
  font-size: 22px;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.04);
  border-radius: var(--r-xs);
}
.vqmm-hi-body {
  flex: 1;
}
.vqmm-hi-title {
  font-size: 13px;
  font-weight: 700;
  color: #f1f5f9;
}
.vqmm-hi-sub {
  font-size: 11px;
  color: var(--t-4);
}
.vqmm-hi-cost {
  font-size: 12px;
  font-weight: 700;
}

/* Thể lệ card */
.vqmm-rules-card {
  background: rgba(20, 17, 40, 0.7);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--r-md);
  padding: 16px;
  font-size: 13px;
  line-height: 1.6;
}
.vqmm-rules-card h4 {
  font-size: 15px;
  font-weight: 700;
  color: #c084fc;
  margin-bottom: 12px;
}
.vqmm-rules-card ul {
  padding-left: 18px;
}
.vqmm-rules-card li {
  margin-bottom: 8px;
  color: var(--t-2);
}

/* Modal mua lượt quay */
.buy-spins-body {
  padding: 8px 0;
}
.buy-spins-info {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: var(--r-sm);
  padding: 10px 14px;
  margin-bottom: 14px;
}
.bs-info-row {
  display: flex;
  justify-content: space-between;
  font-size: 13px;
  margin-bottom: 4px;
}
.bs-info-row:last-child {
  margin-bottom: 0;
}
.bs-label {
  font-size: 12px;
  color: var(--t-3);
  font-weight: 600;
  margin-bottom: 8px;
}
.bs-options-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-bottom: 16px;
}
.bs-opt-btn {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--r-sm);
  padding: 12px 10px;
  text-align: center;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 3px;
  transition: all 0.15s;
}
.bs-opt-btn.active {
  background: rgba(139, 92, 246, 0.2);
  border-color: #a78bfa;
  box-shadow: 0 0 16px rgba(139, 92, 246, 0.35);
}
.bs-opt-qty {
  font-size: 14px;
  font-weight: 800;
  color: #fff;
}
.bs-opt-price {
  font-size: 11.5px;
  color: #38bdf8;
}
.bs-summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 14px;
  background: rgba(245, 158, 11, 0.1);
  border: 1px solid rgba(245, 158, 11, 0.3);
  border-radius: var(--r-sm);
  font-size: 14px;
}
.bs-summary strong {
  font-size: 16px;
  color: #fbbf24;
}

/* Modal kết quả trúng thưởng */
.vqmm-win-card {
  max-width: 320px !important;
  text-align: center;
}
.vqmm-win-icon-wrap {
  width: 72px;
  height: 72px;
  margin: 0 auto 12px;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}
.vqmm-win-emoji {
  font-size: 42px;
  z-index: 2;
  filter: drop-shadow(0 0 16px rgba(251, 191, 36, 0.8));
  animation: bounceEmoji 1s infinite alternate;
}
@keyframes bounceEmoji {
  0% { transform: translateY(0) scale(1); }
  100% { transform: translateY(-8px) scale(1.1); }
}
.vqmm-win-item-name {
  font-size: 18px;
  font-weight: 800;
  color: #fff;
  margin: 6px 0;
}
.vqmm-win-item-detail {
  font-size: 12.5px;
  color: var(--t-3);
  margin-bottom: 14px;
}
.vqmm-voucher-box {
  background: rgba(15, 23, 42, 0.8);
  border: 1px dashed rgba(56, 189, 248, 0.5);
  border-radius: var(--r-sm);
  padding: 10px 12px;
  margin-bottom: 12px;
}
.vqmm-vb-lbl {
  font-size: 10.5px;
  color: var(--t-4);
  font-weight: 700;
  margin-bottom: 4px;
}
.vqmm-vb-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.vqmm-vb-row code {
  font-family: var(--font-mono);
  font-size: 15px;
  font-weight: 800;
  color: #38bdf8;
}
.empty-vqmm {
  text-align: center;
  padding: 24px 16px;
  color: var(--t-4);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.empty-vqmm svg {
  margin: 0 auto 8px auto;
  display: block;
}
.vqmm-win-emoji svg {
  display: block;
  margin: auto;
  filter: drop-shadow(0 0 16px rgba(251, 191, 36, 0.8));
}
.vqmm-pz-icon-box svg, .vqmm-tile-icon svg, .vqmm-rw-icon svg, .vqmm-hi-icon svg, .vqmm-feat-icon svg {
  display: block;
  margin: auto;
}

/* ─── Ô CÁC PHẦN THƯỞNG TRÊN VÒNG QUAY ─── */
/* ─── Ô CÁC PHẦN THƯỞNG TRÊN VÒNG QUAY (GAMING SHOWCASE 4 CỘT) ─── */
.vqmm-items-card {
  background: rgba(18, 14, 38, 0.72);
  border: 1px solid rgba(139, 92, 246, 0.22);
  border-radius: 14px;
  padding: 12px 10px 10px;
  margin-top: 14px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.35);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.vqmm-sec-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 10px;
  padding: 0 2px;
}
.vqmm-sec-title {
  font-size: 12px;
  font-weight: 800;
  color: #f1f5f9;
  display: flex;
  align-items: center;
  gap: 5px;
  letter-spacing: 0.3px;
  text-transform: uppercase;
}
.vqmm-sec-pill {
  font-size: 9.5px;
  font-weight: 800;
  color: #38bdf8;
  background: rgba(56, 189, 248, 0.12);
  border: 1px solid rgba(56, 189, 248, 0.28);
  border-radius: 20px;
  padding: 2px 7px;
  letter-spacing: 0.2px;
}
.vqmm-all-items-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 6px;
}
.vqmm-tile {
  background: rgba(255, 255, 255, 0.035);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 10px;
  padding: 6px 3px 6px;
  text-align: center;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  min-height: 82px;
  transition: transform 0.15s, border-color 0.15s;
  overflow: hidden;
  box-sizing: border-box;
}
.vqmm-tile:active {
  transform: scale(0.96);
}
.vqmm-tile.featured {
  background: linear-gradient(150deg, rgba(245, 158, 11, 0.22), rgba(180, 83, 9, 0.1));
  border: 1px solid rgba(245, 158, 11, 0.6);
  box-shadow: 0 0 10px rgba(245, 158, 11, 0.2);
}
.vqmm-tile.featured::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2.5px;
  background: linear-gradient(90deg, #fef08a, #f59e0b);
}
.vqmm-tile-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  padding: 0 2px;
}
.vqmm-tile-idx {
  font-size: 8.5px;
  font-weight: 700;
  color: var(--t-4);
  font-family: var(--font-mono);
  opacity: 0.8;
}
.vqmm-tile-badge {
  font-size: 8px;
  font-weight: 800;
  padding: 1px 3px;
  border-radius: 3px;
  line-height: 1.2;
  white-space: nowrap;
}
.vqmm-tile-icon {
  font-size: 24px;
  line-height: 1;
  margin: 3px 0 2px;
  filter: drop-shadow(0 2px 5px rgba(0, 0, 0, 0.6));
}
.vqmm-tile-name {
  font-size: 9.5px;
  font-weight: 700;
  color: #f8fafc;
  line-height: 1.2;
  text-align: center;
  width: 100%;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  text-overflow: ellipsis;
  word-break: break-word;
}

/* Badges phân loại */
.badge-rw-gold {
  color: #78350f;
  background: #fde047;
}
.badge-rw-voucher {
  color: #38bdf8;
  background: rgba(56, 189, 248, 0.18);
}
.badge-rw-balance {
  color: #34d399;
  background: rgba(16, 185, 129, 0.18);
}
.badge-rw-spin {
  color: #c084fc;
  background: rgba(168, 85, 247, 0.18);
}
.badge-rw-none {
  color: #94a3b8;
  background: rgba(148, 163, 184, 0.15);
}
.badge-rw-normal {
  color: #a78bfa;
  background: rgba(167, 139, 250, 0.15);
  padding: 1px 5px;
  border-radius: 4px;
}
.badge-rw-done {
  font-size: 10.5px;
  font-weight: 700;
  color: #34d399;
  background: rgba(16, 185, 129, 0.12);
  border: 1px solid rgba(16, 185, 129, 0.3);
  padding: 3px 8px;
  border-radius: 6px;
}

/* ─── PHẦN THƯỞNG ĐÃ TRÚNG ─── */
.vqmm-rw-card {
  display: flex;
  align-items: center;
  gap: 10px;
  background: rgba(22, 19, 44, 0.75);
  border: 1px solid rgba(139, 92, 246, 0.22);
  border-radius: var(--r-sm);
  padding: 10px 12px;
  margin-bottom: 8px;
}
.vqmm-rw-icon {
  font-size: 24px;
  width: 40px;
  height: 40px;
  border-radius: var(--r-xs);
  background: rgba(255, 255, 255, 0.05);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.vqmm-rw-body {
  flex: 1;
  min-width: 0;
}
.vqmm-rw-name {
  font-size: 13px;
  font-weight: 700;
  color: #f1f5f9;
  white-space: normal;
  word-break: break-word;
  line-height: 1.35;
}
.vqmm-rw-sub {
  font-size: 11px;
  color: var(--t-4);
  margin-top: 2px;
}
.btn-rw-use {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: linear-gradient(135deg, #0284c7, #0369a1);
  border: none;
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  padding: 6px 10px;
  border-radius: 6px;
  cursor: pointer;
  white-space: nowrap;
  transition: transform 0.12s;
}
.btn-rw-use:active {
  transform: scale(0.95);
}

/* Sub-tabs điều hướng VQMM chống tràn chữ trên mọi dòng máy */
.vqmm-tab-pills {
  display: flex;
  gap: 4px;
  margin: 14px 0 10px;
  padding: 4px;
  background: rgba(18, 14, 38, 0.75);
  border: 1px solid rgba(139, 92, 246, 0.25);
  border-radius: 12px;
  box-sizing: border-box;
  width: 100%;
  overflow: hidden;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.vqmm-tab-pill {
  flex: 1 1 0;
  min-width: 0;
  padding: 8px 2px;
  border-radius: 8px;
  font-size: 11px;
  font-weight: 700;
  color: #94a3b8;
  background: transparent;
  border: none;
  cursor: pointer;
  transition: all 0.2s;
  text-align: center;
  white-space: nowrap;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 3px;
  box-sizing: border-box;
}
.vqmm-tab-pill i {
  flex-shrink: 0;
  width: 12px;
  height: 12px;
}
.vqmm-tab-pill span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.vqmm-tab-pill.active {
  background: linear-gradient(135deg, #7c3aed, #9333ea);
  color: #ffffff;
  box-shadow: 0 2px 10px rgba(124, 58, 237, 0.45);
}
.vqmm-tab-pill.active span {
  color: #ffffff;
}
.vqmm-tab-pill:active {
  transform: scale(0.96);
}
.vqmm-subpane {
  animation: fadeInPane 0.2s ease;
}
@keyframes fadeInPane {
  from { opacity: 0; transform: translateY(4px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Fix cuộn trang VQMM không bị thanh bottom bar che khuất */
#page-vqmm {
  padding-bottom: 120px !important;
}

/* ─── VÒNG QUAY MAY MẮN: HEADER & NÚT [?] XEM PHẦN THƯỞNG ─── */
.vqmm-wheel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 6px 0 12px;
  padding: 0 4px;
}
.vqmm-wheel-header-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12.5px;
  font-weight: 800;
  color: #f1f5f9;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.btn-vqmm-help {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: linear-gradient(135deg, rgba(124, 58, 237, 0.3), rgba(245, 158, 11, 0.2));
  border: 1px solid rgba(245, 158, 11, 0.55);
  padding: 5px 10px 5px 8px;
  border-radius: 20px;
  color: #fef08a;
  font-size: 11.5px;
  font-weight: 750;
  cursor: pointer;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: 0 2px 10px rgba(245, 158, 11, 0.15);
  touch-action: manipulation;
}
.btn-vqmm-help:hover {
  background: linear-gradient(135deg, rgba(124, 58, 237, 0.45), rgba(245, 158, 11, 0.32));
  border-color: #fef08a;
  box-shadow: 0 0 14px rgba(245, 158, 11, 0.35);
}
.btn-vqmm-help:active {
  transform: scale(0.95);
}
.vqmm-help-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 17px;
  height: 17px;
  border-radius: 50%;
  background: linear-gradient(135deg, #fbbf24, #f59e0b);
  color: #1e1b4b;
  font-size: 11px;
  font-weight: 900;
  box-shadow: 0 0 8px rgba(245, 158, 11, 0.6);
  line-height: 1;
}

/* ─── MODAL DANH SÁCH PHẦN THƯỞNG VÒNG QUAY (KHI BẤM DẤU ?) ─── */
.vqmm-prize-modal-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-height: 56vh;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding-right: 2px;
  margin-bottom: 12px;
}
.vqmm-pz-card {
  display: flex;
  align-items: center;
  gap: 10px;
  background: rgba(255, 255, 255, 0.035);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 12px;
  padding: 10px 12px;
  transition: transform 0.15s, border-color 0.15s;
  position: relative;
  overflow: hidden;
}
.vqmm-pz-card.featured {
  background: linear-gradient(135deg, rgba(245, 158, 11, 0.18), rgba(124, 58, 237, 0.12));
  border: 1.5px solid rgba(245, 158, 11, 0.6);
  box-shadow: 0 4px 16px rgba(245, 158, 11, 0.16);
}
.vqmm-pz-card.featured::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 3px;
  background: linear-gradient(180deg, #fef08a, #f59e0b);
}
.vqmm-pz-icon-box {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.06);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  flex-shrink: 0;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
}
.vqmm-pz-card.featured .vqmm-pz-icon-box {
  background: rgba(245, 158, 11, 0.22);
  border: 1px solid rgba(245, 158, 11, 0.4);
}
.vqmm-pz-info {
  flex: 1;
  min-width: 0;
}
.vqmm-pz-top {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 2px;
}
.vqmm-pz-idx {
  font-size: 9px;
  font-weight: 700;
  color: var(--t-4);
  font-family: var(--font-mono);
}
.vqmm-pz-name {
  font-size: 13.5px;
  font-weight: 800;
  color: #ffffff;
  line-height: 1.35;
  white-space: normal !important;
  word-break: break-word !important;
  overflow: visible !important;
}
.vqmm-pz-desc {
  font-size: 11px;
  color: var(--t-3);
  line-height: 1.35;
  margin-top: 2px;
  white-space: normal !important;
  word-break: break-word !important;
}
.vqmm-pz-rate {
  font-size: 9.5px;
  font-weight: 800;
  color: #38bdf8;
  background: rgba(56, 189, 248, 0.12);
  border: 1px solid rgba(56, 189, 248, 0.25);
  padding: 2px 6px;
  border-radius: 6px;
  flex-shrink: 0;
  white-space: nowrap;
}
.vqmm-pz-card.featured .vqmm-pz-rate {
  color: #fef08a;
  background: rgba(245, 158, 11, 0.18);
  border-color: rgba(245, 158, 11, 0.45);
}

/* Đảm bảo toàn bộ chữ hiển thị full 100%, không bao giờ bị cắt '...' */
.vqmm-hi-title, .vqmm-hi-name {
  font-size: 12.5px;
  font-weight: 700;
  color: #f1f5f9;
  white-space: normal !important;
  word-break: break-word !important;
  line-height: 1.35;
}
.vqmm-win-item-name {
  white-space: normal !important;
  word-break: break-word !important;
  line-height: 1.35;
  text-align: center;
}

/* Nút X đóng modal bo tròn phong cách hiện đại */
.btn-close-modal-round {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.15);
  color: #cbd5e1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.15s ease;
  touch-action: manipulation;
  flex-shrink: 0;
  padding: 0;
}
.btn-close-modal-round:hover {
  background: rgba(239, 68, 68, 0.2);
  border-color: rgba(239, 68, 68, 0.45);
  color: #fca5a5;
}
.btn-close-modal-round:active {
  transform: scale(0.92);
}
.modal-handle-wrap {
  cursor: pointer;
}

/* ============================================================ */
/*  CHECKOUT & VOUCHER MODAL STYLES                             */
/* ============================================================ */
.checkout-modal-body {
  padding: 4px 0 16px;
}
.checkout-prod-card {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 14px;
  padding: 12px 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}
.checkout-prod-info {
  flex: 1;
  min-width: 0;
}
.checkout-prod-title {
  font-size: 14.5px;
  font-weight: 700;
  color: #f8fafc;
  line-height: 1.35;
  margin-bottom: 4px;
  word-break: break-word;
}
.checkout-prod-meta {
  display: flex;
  align-items: center;
  gap: 8px;
}
.checkout-price-badge {
  font-size: 13.5px;
  font-weight: 700;
  color: #38bdf8;
}
.checkout-stock-badge {
  font-size: 11.5px;
  color: #94a3b8;
  background: rgba(148, 163, 184, 0.12);
  padding: 2px 7px;
  border-radius: 6px;
}
.checkout-qty-control {
  display: flex;
  align-items: center;
  background: rgba(15, 23, 42, 0.8);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 10px;
  padding: 3px;
  gap: 2px;
}
.btn-cqty {
  width: 28px;
  height: 28px;
  border: none;
  background: rgba(255, 255, 255, 0.06);
  color: #f8fafc;
  font-size: 16px;
  font-weight: 700;
  border-radius: 7px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.15s;
}
.btn-cqty:active {
  transform: scale(0.92);
  background: rgba(59, 130, 246, 0.3);
}
.cqty-num {
  min-width: 26px;
  text-align: center;
  font-weight: 700;
  font-size: 14px;
  color: #f8fafc;
}
.checkout-voucher-section {
  background: rgba(15, 23, 42, 0.6);
  border: 1px solid rgba(99, 102, 241, 0.2);
  border-radius: 14px;
  padding: 12px 14px;
  margin-bottom: 14px;
}
.checkout-sec-lbl {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 11.5px;
  font-weight: 700;
  color: #cbd5e1;
  letter-spacing: 0.5px;
  margin-bottom: 8px;
}
.checkout-voucher-input-row {
  display: flex;
  gap: 8px;
}
.checkout-v-input {
  flex: 1;
  height: 40px;
  background: rgba(15, 23, 42, 0.9);
  border: 1px solid rgba(99, 102, 241, 0.3);
  border-radius: 10px;
  padding: 0 12px;
  color: #f8fafc;
  font-size: 13.5px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  outline: none;
  transition: border-color 0.2s;
}
.checkout-v-input:focus {
  border-color: #6366f1;
}
.btn-checkout-v-apply {
  height: 40px;
  padding: 0 16px;
  background: linear-gradient(135deg, #6366f1, #8b5cf6);
  border: none;
  border-radius: 10px;
  color: #fff;
  font-weight: 700;
  font-size: 13px;
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.2s;
}
.btn-checkout-v-apply:active {
  transform: scale(0.96);
}
.checkout-voucher-hint {
  font-size: 11.5px;
  color: #94a3b8;
  margin-top: 6px;
  line-height: 1.4;
}
.checkout-voucher-res {
  margin-top: 8px;
  padding: 8px 12px;
  border-radius: 8px;
  font-size: 12px;
  line-height: 1.4;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.checkout-voucher-res.ok {
  background: rgba(16, 185, 129, 0.12);
  border: 1px solid rgba(16, 185, 129, 0.35);
  color: #34d399;
}
.checkout-voucher-res.err {
  background: rgba(239, 68, 68, 0.12);
  border: 1px solid rgba(239, 68, 68, 0.35);
  color: #f87171;
}
.btn-cancel-vcode {
  background: rgba(255, 255, 255, 0.1);
  border: none;
  color: #f87171;
  font-size: 11px;
  font-weight: 600;
  padding: 3px 8px;
  border-radius: 5px;
  cursor: pointer;
}
.checkout-bal-alert {
  background: rgba(239, 68, 68, 0.12);
  border: 1px solid rgba(239, 68, 68, 0.3);
  color: #f87171;
  font-size: 12.5px;
  padding: 10px 12px;
  border-radius: 10px;
  margin-bottom: 12px;
}
.checkout-receipt {
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 12px;
  padding: 10px 14px;
  margin-bottom: 14px;
}
.checkout-rec-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 12.5px;
  color: #94a3b8;
  padding: 5px 0;
}
.checkout-rec-row.total {
  font-size: 15px;
  font-weight: 700;
  color: #f8fafc;
  border-top: 1px dashed rgba(255, 255, 255, 0.1);
  margin-top: 5px;
  padding-top: 8px;
}
.checkout-rec-row.bal {
  font-size: 12px;
  border-top: 1px solid rgba(255, 255, 255, 0.04);
  margin-top: 4px;
  padding-top: 6px;
}
.btn-checkout-buy {
  width: 100%;
  height: 48px;
  border-radius: 12px;
  border: none;
  background: linear-gradient(135deg, #10b981, #059669);
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  cursor: pointer;
  box-shadow: 0 4px 16px rgba(16, 185, 129, 0.3);
  transition: all 0.2s;
}
.btn-checkout-buy:active {
  transform: scale(0.98);
}
.btn-checkout-buy.btn-dep-redirect {
  background: linear-gradient(135deg, #3b82f6, #2563eb);
  box-shadow: 0 4px 16px rgba(59, 130, 246, 0.3);
}

/* ============================================================ */
/* PRODUCT NOTICE BOX (Lưu ý sản phẩm trên nút Mua)            */
/* ============================================================ */
.prod-notice-box {
  background: linear-gradient(135deg, rgba(245, 158, 11, 0.12) 0%, rgba(217, 119, 6, 0.05) 100%);
  border: 1px solid rgba(245, 158, 11, 0.35);
  border-left: 4px solid #f59e0b;
  border-radius: 12px;
  padding: 12px 14px;
  margin: 12px 0;
  box-shadow: 0 4px 18px rgba(245, 158, 11, 0.08);
  animation: fadeInNotice 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
@keyframes fadeInNotice {
  from { opacity: 0; transform: translateY(-5px); }
  to { opacity: 1; transform: translateY(0); }
}
.prod-notice-header {
  display: flex;
  align-items: center;
  margin-bottom: 6px;
}
.prod-notice-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  color: #fbbf24;
}
.prod-notice-badge svg,
.prod-notice-badge i {
  width: 15px;
  height: 15px;
  color: #f59e0b;
  flex-shrink: 0;
}
.prod-notice-body {
  font-size: 13px;
  line-height: 1.55;
  color: #fef3c7;
  font-weight: 500;
  word-break: break-word;
}
.checkout-notice-box {
  margin: 14px 0 16px 0;
}


/* ═══════════════════════════════════════════════════════
   GENPLAY CLOUD PHONE DEDICATED TAB STYLES
═══════════════════════════════════════════════════════ */

/* Home Page Quick-Access Banner */
.genplay-home-banner {
  position: relative;
  overflow: hidden;
  background: linear-gradient(135deg, rgba(14, 165, 233, 0.15) 0%, rgba(30, 27, 75, 0.8) 100%);
  border: 1px solid rgba(56, 189, 248, 0.4);
  border-radius: var(--r-md, 16px);
  padding: 12px 14px;
  margin-bottom: 14px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  transition: all 0.25s ease;
  box-shadow: 0 4px 20px rgba(14, 165, 233, 0.12);
}
.genplay-home-banner:active {
  transform: scale(0.98);
  border-color: #38bdf8;
  box-shadow: 0 0 25px rgba(56, 189, 248, 0.3);
}
.gp-banner-left {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  flex: 1;
}
.gp-banner-icon {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: linear-gradient(135deg, #0284c7, #3b82f6);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  flex-shrink: 0;
  position: relative;
  box-shadow: 0 0 15px rgba(14, 165, 233, 0.4);
}
.gp-banner-icon i {
  width: 22px;
  height: 22px;
}
.gp-banner-content {
  min-width: 0;
  flex: 1;
}
.gp-banner-tag {
  font-size: 10px;
  font-weight: 800;
  color: #38bdf8;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 2px;
}
.gp-live-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #34d399;
  box-shadow: 0 0 8px #34d399;
  animation: gpPulse 1.5s infinite;
}
.gp-live-dot-tag {
  font-size: 9.5px;
  font-weight: 700;
  color: #34d399;
  display: flex;
  align-items: center;
  gap: 5px;
  background: rgba(16, 185, 129, 0.12);
  border: 1px solid rgba(16, 185, 129, 0.3);
  padding: 3px 8px;
  border-radius: 20px;
}
@keyframes gpPulse {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.4); opacity: 0.7; }
}
.gp-banner-top-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  flex-wrap: wrap;
  width: 100%;
}
.gp-banner-title {
  font-size: 13px;
  font-weight: 800;
  color: #f8fafc;
  line-height: 1.3;
  white-space: normal;
  overflow: visible;
  text-overflow: unset;
  word-break: break-word;
}
.gp-banner-sub {
  font-size: 10.5px;
  color: #94a3b8;
  line-height: 1.35;
  white-space: normal;
  overflow: visible;
  text-overflow: unset;
  word-break: break-word;
  margin-top: 1px;
}
.gp-banner-btn {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  font-size: 10px;
  font-weight: 800;
  color: #38bdf8;
  background: rgba(56, 189, 248, 0.14);
  padding: 3px 8px;
  border-radius: 999px;
  flex-shrink: 0;
  border: 1px solid rgba(56, 189, 248, 0.35);
  white-space: nowrap;
}

/* SELLER VIP DISCOUNT BANNER ON GENPLAY TAB (Max 8%) */
.gp-seller-card {
  margin-top: 14px;
  background: linear-gradient(135deg, rgba(245, 158, 11, 0.16) 0%, rgba(217, 119, 6, 0.08) 50%, rgba(15, 23, 42, 0.9) 100%);
  border: 1.5px solid rgba(245, 158, 11, 0.45);
  border-radius: 16px;
  padding: 12px 14px;
  display: flex;
  align-items: center;
  gap: 12px;
  box-shadow: 0 4px 20px rgba(245, 158, 11, 0.18), inset 0 0 15px rgba(245, 158, 11, 0.05);
  box-sizing: border-box;
}
.gp-seller-badge-icon {
  width: 40px;
  height: 40px;
  border-radius: 12px;
  background: linear-gradient(135deg, #f59e0b, #d97706);
  color: #0f172a;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 0 16px rgba(245, 158, 11, 0.5);
}
.gp-seller-badge-icon i {
  width: 22px;
  height: 22px;
  stroke-width: 2.5;
}
.gp-seller-info {
  flex: 1;
  min-width: 0;
}
.gp-seller-title-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 3px;
}
.gp-seller-title {
  font-size: 11px;
  font-weight: 800;
  color: #fbbf24;
  letter-spacing: 0.5px;
  text-transform: uppercase;
}
.gp-seller-pct-tag {
  background: linear-gradient(135deg, #ef4444, #dc2626);
  color: #ffffff;
  font-size: 11px;
  font-weight: 900;
  padding: 2px 8px;
  border-radius: 20px;
  letter-spacing: 0.2px;
  box-shadow: 0 0 10px rgba(239, 68, 68, 0.4);
  flex-shrink: 0;
}
.gp-seller-desc {
  font-size: 11.5px;
  color: #cbd5e1;
  line-height: 1.45;
  word-break: break-word;
}
.gp-seller-desc b {
  color: #fbbf24;
  font-weight: 800;
}

/* GenPlay Tab Main Page */
.gp-chip-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-top: 10px;
}
.gp-chip-card:last-child:nth-child(odd) {
  grid-column: span 2;
}
.gp-chip-card {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 14px;
  padding: 10px;
  cursor: pointer;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
  display: flex;
  flex-direction: column;
  gap: 5px;
  position: relative;
  user-select: none;
  min-width: 0;
  overflow: hidden;
  box-sizing: border-box;
}
.gp-chip-card:active {
  transform: scale(0.97);
}
.gp-chip-card.active {
  background: linear-gradient(145deg, rgba(14, 165, 233, 0.15), rgba(59, 130, 246, 0.08));
  border: 1px solid #38bdf8;
  box-shadow: 0 0 16px rgba(56, 189, 248, 0.25);
}
.gp-chip-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 4px;
  min-width: 0;
}
.gp-chip-brand {
  font-size: 8.5px;
  font-weight: 700;
  color: #94a3b8;
  text-transform: uppercase;
  letter-spacing: 0.3px;
  flex-shrink: 0;
}
.gp-chip-tag {
  font-size: 8px;
  font-weight: 700;
  padding: 1px 5px;
  border-radius: 5px;
  border: 1px solid currentColor;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 65px;
  text-align: right;
  flex-shrink: 0;
}
.gp-chip-name {
  font-size: 13px;
  font-weight: 800;
  color: #fff;
  letter-spacing: -0.2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.gp-chip-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 3px;
  min-width: 0;
}
.gp-chip-badge {
  background: rgba(255, 255, 255, 0.06);
  padding: 1.5px 5px;
  border-radius: 4px;
  color: #cbd5e1;
  font-weight: 600;
  font-size: 8.5px;
  white-space: nowrap;
}
.gp-chip-adr {
  background: rgba(16, 185, 129, 0.12);
  color: #34d399;
  border: 1px solid rgba(16, 185, 129, 0.3);
  padding: 1.5px 5px;
  border-radius: 4px;
  font-weight: 700;
  font-size: 8.5px;
  white-space: nowrap;
}
.gp-chip-price {
  font-size: 11px;
  font-weight: 700;
  color: #38bdf8;
  margin-top: 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Variant RAM/ROM Pills */
.gp-spec-pills {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-top: 10px;
}
.gp-spec-pill {
  min-width: 0;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 12px;
  padding: 9px 6px;
  color: #cbd5e1;
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  transition: all 0.2s ease;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  box-sizing: border-box;
}
.gp-spec-pill:active {
  transform: scale(0.97);
}
.gp-spec-pill.active {
  background: linear-gradient(145deg, rgba(168, 85, 247, 0.2), rgba(126, 34, 206, 0.1));
  border-color: #c084fc;
  color: #fff;
  box-shadow: 0 0 16px rgba(168, 85, 247, 0.3);
}
.gp-spec-pill i {
  width: 14px;
  height: 14px;
  color: #c084fc;
  flex-shrink: 0;
}
.gp-spec-pill span {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Android & Hardware Specs Box */
.gp-android-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
  gap: 8px;
  margin-top: 10px;
}
.gp-android-card {
  display: flex;
  align-items: center;
  gap: 8px;
  background: rgba(255, 255, 255, 0.04);
  border: 1.5px solid rgba(255, 255, 255, 0.1);
  border-radius: 12px;
  padding: 9px 10px;
  cursor: pointer;
  position: relative;
  transition: all 0.2s ease;
  user-select: none;
  box-sizing: border-box;
}
.gp-android-card:active {
  transform: scale(0.97);
}
.gp-android-card.active {
  border-color: #10b981;
  background: linear-gradient(145deg, rgba(16, 185, 129, 0.2), rgba(5, 150, 105, 0.08));
  box-shadow: 0 0 0 1px #10b981, 0 4px 14px rgba(16, 185, 129, 0.25);
}
.gp-android-icon {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: rgba(16, 185, 129, 0.15);
  color: #10b981;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.gp-android-icon i {
  width: 15px;
  height: 15px;
}
.gp-android-info {
  flex: 1;
  min-width: 0;
}
.gp-android-name {
  font-size: 12.5px;
  font-weight: 800;
  color: #f8fafc;
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.gp-android-tag {
  display: block;
  font-size: 8.5px;
  font-weight: 700;
  color: #34d399;
  margin-top: 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.gp-android-stock {
  font-size: 8px;
  font-weight: 600;
  color: #94a3b8;
  margin-top: 1px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.gp-android-check {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #10b981;
  color: #fff;
  display: none;
  align-items: center;
  justify-content: center;
  font-size: 9.5px;
  font-weight: 900;
  flex-shrink: 0;
}
.gp-android-card.active .gp-android-check {
  display: flex;
}

/* Games Box */
.gp-games-box {
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}
.gp-games-title {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 10px;
  font-weight: 800;
  color: #38bdf8;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  margin-bottom: 8px;
}
.gp-games-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.gp-game-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 9px 3px 4px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  font-size: 10px;
  font-weight: 700;
  color: #e2e8f0;
  transition: all 0.2s ease;
  user-select: none;
}
.gp-game-pill:hover {
  border-color: #38bdf8;
  background: rgba(56, 189, 248, 0.12);
  transform: translateY(-1px);
}
.gp-game-icon {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
}
.gp-game-pill i {
  width: 13px;
  height: 13px;
  color: #38bdf8;
  flex-shrink: 0;
}

.gp-android-box {
  background: rgba(255, 255, 255, 0.025);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 14px;
  padding: 12px 14px;
  margin-top: 12px;
  box-sizing: border-box;
}
.gp-spec-row-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin-bottom: 8px;
  min-width: 0;
}
.gp-os-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: rgba(16, 185, 129, 0.15);
  border: 1px solid rgba(16, 185, 129, 0.4);
  color: #34d399;
  font-size: 10.5px;
  font-weight: 800;
  padding: 3px 8px;
  border-radius: 20px;
  flex-shrink: 0;
}
.gp-os-badge i {
  width: 13px;
  height: 13px;
}
.gp-cpu-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: rgba(56, 189, 248, 0.1);
  border: 1px solid rgba(56, 189, 248, 0.3);
  color: #38bdf8;
  font-size: 10px;
  font-weight: 600;
  padding: 3px 8px;
  border-radius: 20px;
  max-width: 100%;
  box-sizing: border-box;
  word-break: break-word;
  white-space: normal;
  line-height: 1.35;
}
.gp-cpu-badge i {
  width: 13px;
  height: 13px;
  flex-shrink: 0;
}
.gp-desc-text {
  font-size: 11px;
  color: #94a3b8;
  line-height: 1.5;
  margin-bottom: 10px;
  word-break: break-word;
}
.gp-features-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 12px;
  margin-top: 4px;
}
.gp-feat-item {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  font-size: 11px;
  color: #e2e8f0;
  font-weight: 500;
  min-width: 0;
  white-space: normal;
  line-height: 1.35;
}
.gp-feat-item i {
  width: 13px;
  height: 13px;
  color: #34d399;
  flex-shrink: 0;
  margin-top: 2px;
}
.gp-feat-item span {
  white-space: normal;
  word-break: break-word;
  line-height: 1.35;
  flex: 1;
}

/* Durations Grid (Exact 4 durations: 1, 7, 15, 30 days) */
.gp-duration-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 8px;
  margin-top: 14px;
  padding-top: 12px;
}
@media (min-width: 520px) {
  .gp-duration-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    padding-top: 10px;
  }
}
.gp-duration-card {
  background: rgba(255, 255, 255, 0.03);
  border: 1.5px solid rgba(255, 255, 255, 0.08);
  border-radius: 14px;
  padding: 15px 6px 10px;
  text-align: center;
  cursor: pointer;
  transition: all 0.2s ease;
  position: relative;
  user-select: none;
  min-width: 0;
  overflow: visible;
  box-sizing: border-box;
}
.gp-duration-card:active {
  transform: scale(0.96);
}
.gp-duration-card.active {
  background: linear-gradient(145deg, rgba(245, 158, 11, 0.18), rgba(217, 119, 6, 0.09));
  border-color: #fbbf24;
  box-shadow: 0 0 16px rgba(245, 158, 11, 0.3);
}
.gp-plan-badge {
  position: absolute;
  top: -9px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 8.5px;
  font-weight: 800;
  padding: 2.5px 8px;
  border-radius: 99px;
  white-space: nowrap;
  text-transform: uppercase;
  letter-spacing: 0.3px;
  max-width: 95%;
  line-height: 1.2;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.5);
  z-index: 3;
}
.gp-plan-badge.trial {
  background: linear-gradient(135deg, #3b82f6, #1d4ed8);
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.2);
}
.gp-plan-badge.week {
  background: linear-gradient(135deg, #8b5cf6, #6366f1);
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.2);
}
.gp-plan-badge.save {
  background: linear-gradient(135deg, #10b981, #059669);
  color: #fff;
  box-shadow: 0 0 10px rgba(16, 185, 129, 0.5);
  border: 1px solid rgba(255, 255, 255, 0.2);
}
.gp-plan-badge.hot {
  background: linear-gradient(135deg, #ef4444, #ea580c);
  color: #fff;
  box-shadow: 0 0 10px rgba(239, 68, 68, 0.5);
  border: 1px solid rgba(255, 255, 255, 0.2);
}
.gp-plan-badge.vip {
  background: linear-gradient(135deg, #f59e0b, #ec4899);
  color: #fff;
  box-shadow: 0 0 10px rgba(245, 158, 11, 0.6);
  border: 1px solid rgba(255, 255, 255, 0.2);
}
.gp-dur-days {
  font-size: 13px;
  font-weight: 800;
  color: #f8fafc;
  margin-bottom: 3px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.gp-dur-price {
  font-size: 13px;
  font-weight: 800;
  color: #fbbf24;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.gp-dur-ppd {
  font-size: 9.5px;
  font-weight: 700;
  color: #94a3b8;
  text-transform: uppercase;
  margin-top: 3px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Summary Card */
.gp-summary-card {
  background: linear-gradient(145deg, rgba(30, 41, 59, 0.6) 0%, rgba(15, 23, 42, 0.8) 100%);
  border: 1px solid rgba(56, 189, 248, 0.25);
  border-radius: 16px;
  padding: 12px 14px;
  margin-top: 10px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  box-sizing: border-box;
}
.gp-sum-row {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 8px;
  font-size: 12px;
  min-width: 0;
}
.gp-sum-label {
  color: #94a3b8;
  font-weight: 500;
  flex-shrink: 0;
}
.gp-sum-val {
  color: #f1f5f9;
  font-weight: 700;
  text-align: right;
  flex: 1;
  min-width: 0;
  word-break: break-word;
}
.gp-sum-val.price {
  font-size: 17px;
  font-weight: 900;
  color: #38bdf8;
  text-shadow: 0 0 12px rgba(56, 189, 248, 0.4);
}
.gp-sum-divider {
  height: 1px;
  background: rgba(255, 255, 255, 0.08);
  margin: 2px 0;
}

/* Action Buttons */
.gp-action-wrap {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 16px;
}
.btn-gp-buy {
  width: 100%;
  background: linear-gradient(135deg, #0284c7 0%, #2563eb 50%, #7c3aed 100%);
  border: 1px solid rgba(56, 189, 248, 0.5);
  box-shadow: 0 4px 20px rgba(14, 165, 233, 0.35);
  color: #ffffff;
  padding: 14px 18px;
  border-radius: 25px;
  font-size: 15px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  cursor: pointer;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
  letter-spacing: 0.3px;
}
.btn-gp-buy:active {
  transform: scale(0.98);
  box-shadow: 0 2px 10px rgba(14, 165, 233, 0.2);
}
.btn-gp-buy i {
  width: 20px;
  height: 20px;
}
.btn-gp-download {
  width: 100%;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: #cbd5e1;
  padding: 12px 16px;
  border-radius: 25px;
  font-size: 12.5px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  text-decoration: none;
  cursor: pointer;
  transition: all 0.2s ease;
  box-sizing: border-box;
}
.btn-gp-download:active {
  background: rgba(255, 255, 255, 0.08);
}
.btn-gp-download i {
  width: 16px;
  height: 16px;
  color: #38bdf8;
}

/* Usage Guide */
.gp-guide-card {
  background: rgba(255, 255, 255, 0.02);
  border: 1px dashed rgba(255, 255, 255, 0.1);
  border-radius: 14px;
  padding: 12px 14px;
  margin-top: 14px;
  font-size: 11.5px;
  color: #94a3b8;
  line-height: 1.6;
}
.gp-guide-title {
  font-size: 11px;
  font-weight: 800;
  color: #f1f5f9;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 6px;
  display: flex;
  align-items: center;
  gap: 6px;
}

#page-genplay {
  padding-bottom: calc(76px + env(safe-area-inset-bottom)) !important;
}

/* ═══════════════════════════════════════════════════════
   BOTTOM NAVIGATION & CYBER SIDE DRAWER
═══════════════════════════════════════════════════════ */
.page {
  padding-bottom: calc(76px + env(safe-area-inset-bottom)) !important;
}

#bottomNav {
  position: fixed !important;
  bottom: 0 !important;
  left: 0 !important;
  right: 0 !important;
  height: 62px !important;
  padding: 4px 0 calc(4px + env(safe-area-inset-bottom)) !important;
  z-index: 100;
  display: flex !important;
  align-items: stretch;
  gap: 0 !important;
  background: rgba(14, 11, 8, 0.96) !important;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border-top: 1px solid rgba(245, 197, 86, 0.28) !important;
  box-shadow: 0 -8px 32px rgba(0, 0, 0, 0.65), 0 -1px 12px rgba(245, 197, 86, 0.1) !important;
}

@media (min-width: 768px) {
  #bottomNav {
    max-width: 600px !important;
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%);
    border-radius: 16px 16px 0 0;
    border-left: 1px solid rgba(245, 197, 86, 0.28) !important;
    border-right: 1px solid rgba(245, 197, 86, 0.28) !important;
  }
}

#bottomNav .nav-item {
  flex: 1 1 0 !important;
  min-width: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 3px !important;
  padding: 3px 2px !important;
  cursor: pointer;
  color: #c4b59d;
  position: relative;
  transition: color .2s ease;
  text-decoration: none;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
}

#bottomNav .nav-item i {
  font-size: 18px !important;
  line-height: 1 !important;
  width: 22px !important;
  height: 22px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-shrink: 0;
  transition: transform .2s ease, color .2s ease;
}

#bottomNav .nav-item span {
  font-size: 10px !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  line-height: 1.2 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  max-width: 100% !important;
  text-align: center;
}

#bottomNav .nav-item.active {
  color: #ffd700 !important;
}
#bottomNav .nav-item.active i {
  transform: translateY(-2px) scale(1.12);
  color: #ffd700 !important;
  filter: drop-shadow(0 0 10px rgba(245, 197, 86, 0.85));
}

#bottomNav .nav-item .nav-pip {
  position: absolute !important;
  top: 0 !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  width: 22px !important;
  height: 3px !important;
  border-radius: 0 0 999px 999px;
  background: linear-gradient(90deg, #ffd700, #f59e0b);
  opacity: 0;
  transition: opacity .2s ease;
  pointer-events: none;
  box-shadow: 0 0 10px #ffd700;
}
#bottomNav .nav-item.active .nav-pip {
  opacity: 1;
}

@media (max-width: 360px) {
  #bottomNav .nav-item span { font-size: 8.5px !important; }
  #bottomNav .nav-item i { font-size: 16px !important; width: 18px !important; height: 18px !important; }
}

/* Nút 3 gạch trên Header */
.btn-menu-drawer {
  display: inline-flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 4.5px;
  width: 38px;
  height: 38px;
  padding: 0;
  background: rgba(245, 197, 86, 0.14);
  border: 1px solid rgba(245, 197, 86, 0.35);
  border-radius: 11px;
  cursor: pointer;
  outline: none;
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  -webkit-tap-highlight-color: transparent;
  flex-shrink: 0;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.35);
}
.btn-menu-drawer:hover {
  background: rgba(245, 197, 86, 0.25);
  border-color: rgba(245, 197, 86, 0.65);
  box-shadow: 0 0 16px rgba(245, 197, 86, 0.45);
  transform: translateY(-1px);
}
.btn-menu-drawer:active {
  transform: scale(0.94);
}
.btn-menu-drawer .hamburger-bar {
  display: block;
  width: 19px;
  height: 2.2px;
  background: linear-gradient(90deg, #ffd700, #f59e0b);
  border-radius: 2px;
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  transform-origin: center;
}
.btn-menu-drawer.is-open {
  background: rgba(239, 68, 68, 0.18);
  border-color: rgba(248, 113, 113, 0.5);
  box-shadow: 0 0 14px rgba(239, 68, 68, 0.35);
}
.btn-menu-drawer.is-open .hamburger-bar:nth-child(1) {
  transform: translateY(6.7px) rotate(45deg);
  background: #f87171;
}
.btn-menu-drawer.is-open .hamburger-bar:nth-child(2) {
  opacity: 0;
  transform: scaleX(0);
}
.btn-menu-drawer.is-open .hamburger-bar:nth-child(3) {
  transform: translateY(-6.7px) rotate(-45deg);
  background: #f87171;
}

/* Backdrop phủ mờ màn hình */
.nav-drawer-backdrop {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(4, 6, 20, 0.75);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  z-index: 1000;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1), visibility 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.nav-drawer-backdrop.open {
  opacity: 1;
  visibility: visible;
}

/* Drawer khung trượt bên phải */
.nav-drawer {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: min(340px, 86vw);
  background: rgba(18, 14, 10, 0.96);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border-left: 1px solid rgba(245, 197, 86, 0.28);
  box-shadow: -15px 0 45px rgba(0, 0, 0, 0.85), -2px 0 20px rgba(245, 197, 86, 0.1);
  z-index: 1001;
  transform: translateX(100%);
  transition: transform 0.32s cubic-bezier(0.16, 1, 0.3, 1);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.nav-drawer.open {
  transform: translateX(0);
}

.nav-drawer-inner {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: calc(14px + env(safe-area-inset-top)) 15px calc(16px + env(safe-area-inset-bottom));
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  gap: 12px;
}
.nav-drawer-inner::-webkit-scrollbar {
  width: 4px;
}
.nav-drawer-inner::-webkit-scrollbar-thumb {
  background: rgba(245, 197, 86, 0.25);
  border-radius: 4px;
}

/* Header trong Drawer */
.nav-drawer-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(245, 197, 86, 0.15);
  flex-shrink: 0;
}
.drawer-user-card {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}
.drawer-user-avatar {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: linear-gradient(135deg, #ffd700, #b88628);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  color: #160f04;
  font-size: 16px;
  flex-shrink: 0;
  box-shadow: 0 0 16px rgba(245, 197, 86, 0.45);
  border: 2px solid rgba(245, 197, 86, 0.55);
  overflow: hidden;
}
.drawer-user-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.drawer-user-info {
  min-width: 0;
}
.drawer-user-name {
  font-size: 14px;
  font-weight: 700;
  color: #fffdf8;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 155px;
}
.drawer-user-sub {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 2px;
}
.drawer-user-id {
  font-size: 11px;
  color: #c9b99f;
  font-family: monospace;
}
.drawer-close-btn {
  width: 34px;
  height: 34px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(245, 197, 86, 0.18);
  color: #c9b99f;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s;
  flex-shrink: 0;
}
.drawer-close-btn:hover, .drawer-close-btn:active {
  background: rgba(239, 68, 68, 0.2);
  border-color: rgba(248, 113, 113, 0.5);
  color: #f87171;
}

/* Thẻ số dư ví trong Drawer */
.drawer-balance-card {
  background: linear-gradient(135deg, rgba(38, 30, 18, 0.75), rgba(18, 14, 9, 0.9));
  border: 1px solid rgba(245, 197, 86, 0.32);
  border-radius: 14px;
  padding: 11px 13px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-shrink: 0;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.45), inset 0 1px 0 rgba(255, 235, 175, 0.1);
}
.drawer-balance-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.drawer-balance-label {
  font-size: 10.5px;
  color: #c9b99f;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  font-weight: 600;
}
.drawer-balance-val {
  font-size: 17px;
  font-weight: 800;
  color: #ffd700;
  text-shadow: 0 0 12px rgba(245, 197, 86, 0.55);
}
.btn-drawer-deposit {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: linear-gradient(135deg, #ffd700, #f59e0b);
  border: 1px solid rgba(255, 235, 175, 0.6);
  color: #160f04;
  font-size: 11.5px;
  font-weight: 800;
  padding: 7px 11px;
  border-radius: 9px;
  cursor: pointer;
  transition: all 0.2s;
  box-shadow: 0 3px 14px rgba(245, 158, 11, 0.45);
  flex-shrink: 0;
}
.btn-drawer-deposit:hover, .btn-drawer-deposit:active {
  transform: scale(1.03);
  box-shadow: 0 5px 18px rgba(245, 158, 11, 0.65);
}

/* Tiêu đề nhóm chức năng */
.drawer-section-title {
  font-size: 10px;
  font-weight: 800;
  color: #8f806a;
  letter-spacing: 1px;
  text-transform: uppercase;
  margin-top: 2px;
  padding-left: 3px;
  flex-shrink: 0;
}

/* Danh sách tab trong Drawer */
.drawer-nav-list {
  display: flex;
  flex-direction: column;
  gap: 7px;
  flex-shrink: 0;
}
.drawer-nav-item {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  padding: 10px 12px !important;
  border-radius: 13px !important;
  background: rgba(255, 255, 255, 0.03) !important;
  border: 1px solid rgba(245, 197, 86, 0.1) !important;
  cursor: pointer !important;
  transition: all 0.22s ease !important;
  position: relative !important;
  text-decoration: none !important;
  -webkit-tap-highlight-color: transparent !important;
  user-select: none !important;
  color: #fffdf8 !important;
}
.drawer-nav-item:hover, .drawer-nav-item:active {
  background: rgba(245, 197, 86, 0.12) !important;
  border-color: rgba(245, 197, 86, 0.35) !important;
  transform: translateX(3px) !important;
}
.drawer-nav-item.active {
  background: linear-gradient(135deg, rgba(229, 176, 82, 0.22), rgba(217, 119, 6, 0.16)) !important;
  border-color: rgba(245, 197, 86, 0.55) !important;
  box-shadow: 0 4px 18px rgba(217, 119, 6, 0.25), inset 0 1px 0 rgba(255, 235, 175, 0.15) !important;
}
.drawer-nav-item.active::before {
  content: '';
  position: absolute;
  left: 0;
  top: 8px;
  bottom: 8px;
  width: 3.5px;
  border-radius: 0 4px 4px 0;
  background: linear-gradient(180deg, #ffd700, #d97706);
  box-shadow: 0 0 10px #ffd700;
}
.drawer-item-icon {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 17px;
}
.drawer-item-icon.icon-key {
  background: linear-gradient(135deg, rgba(245, 197, 86, 0.25), rgba(217, 119, 6, 0.12));
  color: #fde08b;
  border: 1px solid rgba(245, 197, 86, 0.3);
}
.drawer-item-icon.icon-phone {
  background: linear-gradient(135deg, rgba(217, 119, 6, 0.25), rgba(180, 83, 9, 0.12));
  color: #fbbf24;
  border: 1px solid rgba(217, 119, 6, 0.3);
}
.drawer-item-icon.icon-wallet {
  background: linear-gradient(135deg, rgba(16, 185, 129, 0.25), rgba(5, 150, 105, 0.12));
  color: #34d399;
  border: 1px solid rgba(16, 185, 129, 0.3);
}
.drawer-item-icon.icon-gift {
  background: linear-gradient(135deg, rgba(245, 158, 11, 0.25), rgba(217, 119, 6, 0.12));
  color: #ffd700;
  border: 1px solid rgba(245, 158, 11, 0.3);
}
.drawer-item-icon.icon-farm {
  background: linear-gradient(135deg, rgba(229, 176, 82, 0.25), rgba(245, 158, 11, 0.12));
  color: #fde08b;
  border: 1px solid rgba(229, 176, 82, 0.3);
}
.drawer-item-icon.icon-user {
  background: linear-gradient(135deg, rgba(217, 119, 6, 0.25), rgba(245, 197, 86, 0.12));
  color: #ffd700;
  border: 1px solid rgba(217, 119, 6, 0.3);
}
.drawer-item-text {
  flex: 1;
  min-width: 0;
}
.drawer-item-title {
  font-size: 13px;
  font-weight: 700;
  color: #fffdf8;
  line-height: 1.25;
}
.drawer-nav-item.active .drawer-item-title {
  color: #ffd700;
}
.drawer-item-desc {
  font-size: 10.5px;
  color: #94a3b8;
  line-height: 1.3;
  margin-top: 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.drawer-item-badge {
  font-size: 9px;
  font-weight: 800;
  padding: 2px 6px;
  border-radius: 6px;
  letter-spacing: 0.5px;
  flex-shrink: 0;
}
.badge-auto {
  background: rgba(167, 139, 250, 0.18);
  color: #c4b5fd;
  border: 1px solid rgba(167, 139, 250, 0.35);
}
.badge-hot {
  background: rgba(239, 68, 68, 0.2);
  color: #fca5a5;
  border: 1px solid rgba(239, 68, 68, 0.4);
  animation: pulseBadge 1.8s infinite;
}
.badge-vcb {
  background: rgba(16, 185, 129, 0.2);
  color: #6ee7b7;
  border: 1px solid rgba(16, 185, 129, 0.4);
}
.badge-free {
  background: rgba(245, 158, 11, 0.2);
  color: #fde68a;
  border: 1px solid rgba(245, 158, 11, 0.4);
}
.badge-new {
  background: rgba(236, 72, 153, 0.2);
  color: #fbcfe8;
  border: 1px solid rgba(236, 72, 153, 0.4);
}
.drawer-arrow {
  width: 16px;
  height: 16px;
  color: #64748b;
  flex-shrink: 0;
}

/* Footer trong Drawer */
.drawer-footer {
  margin-top: auto;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding-top: 10px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  flex-shrink: 0;
}
.drawer-support-card {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(245, 197, 86, 0.15);
  border-radius: 12px;
  padding: 9px 11px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.drawer-support-left {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}
.drawer-support-left i {
  width: 18px;
  height: 18px;
  color: #ffd700;
  flex-shrink: 0;
}
.drawer-support-title {
  font-size: 11.5px;
  font-weight: 700;
  color: #fffdf8;
}
.drawer-support-sub {
  font-size: 10px;
  color: #c9b99f;
}
.btn-drawer-support {
  display: inline-flex;
  align-items: center;
  padding: 5px 10px;
  border-radius: 7px;
  background: rgba(245, 197, 86, 0.15);
  border: 1px solid rgba(245, 197, 86, 0.35);
  color: #ffd700;
  font-size: 11px;
  font-weight: 700;
  text-decoration: none;
  transition: all 0.2s;
  flex-shrink: 0;
}
.btn-drawer-support:hover {
  background: rgba(245, 197, 86, 0.3);
}
.drawer-app-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 9.5px;
  color: #475569;
  padding: 0 3px;
}
@keyframes pulseBadge {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.75; transform: scale(0.95); }
}
