/* ============================================================
   theme-hub.css (28/10/2026) — anh Lâm: "thiết kế lại web thử thách cho giống Hub (kninvest.vn): màu sắc, chủ đề card".
   LỚP ĐÈ nạp SAU styles.css — gỡ 1 dòng <link> là về giao diện cũ. Token lấy đúng Hub đang chạy (css/app.css?v=54, khối 09/10):
   nền #000 · thẻ #0f0f0f viền #2e2e2e bo 16 · chữ #dbdbdb / tiêu đề #fff 600 −0.02em · phụ #8c8c8c · nhấn xanh #5b9cf6
   · nút chính trắng #f2f2f2 chữ đen · nút việc quan trọng nhất = gradient #2962ff 30% → #d500f9 cắt xiên mép phải
   · thẻ nổi bật viền gradient xanh→tím · quầng sáng xanh tím đỉnh trang + ảnh cực quang (ảnh Canva của anh, chép từ Hub)
   · lãi #22ab94 / lỗ #f23645 · chữ Be Vietnam Pro, số tabular.
   Màu huy chương (vàng/bạc/đồng) GIỮ cho Top 1–3 vì mang nghĩa thứ hạng.
   ============================================================ */
:root, :root:root {
  --bg: #000000; --bg2: #0f0f0f; --bg3: #1a1a1a;
  --panel: #0f0f0f; --panel2: #1a1a1a; --panel3: #1e1e1e;
  --line: #2e2e2e; --line-strong: #3d3d3d;
  --cyan: #5b9cf6; --green: #22ab94; --red: #f23645;
  --gold: #f2ca50; --champagne: #f2ca50; --silver: #d4d4d4;
  --txt: #dbdbdb; --dim: #8c8c8c; --dim2: #575757;
  --shadow: 0 18px 50px -24px rgba(41,98,255,.35);
  --font-body: "Be Vietnam Pro", "Segoe UI", system-ui, Arial, sans-serif;
  --font-display: "Be Vietnam Pro", "Segoe UI", system-ui, Arial, sans-serif;
  --font-luxury: "Be Vietnam Pro", "Segoe UI", system-ui, Arial, sans-serif;
  --hub-hi: #ffffff; --hub-brand: #2962ff; --hub-brand2: #5b9cf6; --hub-violet: #d500f9;
  --hub-grad: linear-gradient(90deg, #2962ff 30%, #d500f9);
  --hub-aurora: radial-gradient(at 50% 0%, rgb(20,44,108) 0px, rgb(23,17,56) 40%, rgba(0,0,0,0) 70%);
  --hub-card: #0f0f0f; --hub-card2: #1a1a1a; --hub-line: #2e2e2e; --hub-line2: #3d3d3d; --hub-muted: #8c8c8c;
  --hub-btn: #f2f2f2; --hub-btn-fg: #0f0f0f; --hub-hover: rgba(255,255,255,.07);
  color-scheme: dark;
}

/* ---------- nền: đen tuyệt đối + quầng xanh tím đỉnh trang + cực quang trôi chậm + sao ---------- */
html { background: #000 !important; }
body { background: transparent !important; }   /* nền đen đặt ở html để lớp cực quang (z-index âm) hiện ra */
body { color: var(--txt); font-family: var(--font-body) !important; -webkit-font-smoothing: antialiased; }
body::before {
  content: ""; position: fixed; left: -6vw; right: -6vw; top: 0; height: 80vh; z-index: -2; pointer-events: none;
  background: url("assets/hub/cuc-quang.webp?v=1") 50% 0 / cover no-repeat;
  -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 34%, transparent 90%); mask-image: linear-gradient(180deg, #000 0%, #000 34%, transparent 90%);
  opacity: .55; animation: hubCq 26s ease-in-out infinite alternate; will-change: transform, opacity;
}
body::after {
  content: ""; position: fixed; left: 50%; top: -18vh; width: 120vw; height: 70vh; transform: translateX(-50%); z-index: -1; pointer-events: none;
  background: var(--hub-aurora); opacity: .55;
}
@keyframes hubCq { 0% { transform: translateX(-2%) scaleY(1); opacity: .48; } 50% { transform: translateX(1.5%) scaleY(1.07); opacity: .62; } 100% { transform: translateX(0) scaleY(.95); opacity: .52; } }
@media (prefers-reduced-motion: reduce) { body::before { animation: none; } }
@media (max-width: 679px) { body::before { height: 60vh; left: -12vw; right: -12vw; } }
/* nền cũ của các khối (vàng champagne, lưới, chữ KN khổng lồ) tắt để lộ nền Hub */
.pt-hero-kn-bg, .pt-hero-kn-giant, .pt-hero-kn-grid, .pt-hero-kn-aurora, .pt-hero-overlay { display: none !important; }
.pt-hero, .pt-hero-video, .pt-sec, section.block, .pt-risk { background: transparent !important; }
.pt-hero::before, .pt-hero::after, .pt-sec::before, .pt-sec::after { display: none !important; }

/* ---------- chữ ---------- */
h1, h2, h3, .pt-h2, .pt-title, .sec-head h2, .wp-sec h3 { font-family: var(--font-display) !important; color: var(--hub-hi); font-weight: 600; letter-spacing: -.02em; }
.pt-h2 { letter-spacing: -.02em; }
.pt-h2-bar { background: var(--hub-grad) !important; height: 2px !important; border-radius: 2px; box-shadow: none !important; }
.pt-gold-text, .hl-brand { background: none !important; -webkit-text-fill-color: var(--hub-brand2) !important; color: var(--hub-brand2) !important; text-shadow: none !important; }
.pt-metal { background: linear-gradient(180deg, #ffffff 0%, #c9cbd1 100%) !important; -webkit-background-clip: text !important; background-clip: text !important; -webkit-text-fill-color: transparent !important; text-shadow: none !important; filter: none !important; }
.pt-hero-sub, .pt-hero-slogan, .kn-tl-desc, .wp-list li, .kji-check li, .faq p { color: var(--txt); }
.pt-hero-mua2 b, .wp-list b, .kji-check b { color: var(--hub-hi); }
.muted, .dim, .pt-bxh-note, .kn-sch-note { color: var(--hub-muted) !important; }
a { color: var(--hub-brand2); }
.mono, .pt-stat b, .pt-prize-val, .pt-lower-val, .kn-mt-val, .num, td.num, .lb-profit, .lb-roi { font-variant-numeric: tabular-nums; }

/* ---------- thanh menu trên cùng (Hub: đen kính, viền dưới #2e2e2e, mục đang chọn xanh) ---------- */
nav.nav { background: rgba(0,0,0,.82) !important; backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border-bottom: 1px solid var(--hub-line) !important; box-shadow: none !important; }
nav.nav .links a { color: #dbdbdb !important; font-weight: 500; border-radius: 8px; background: transparent !important; box-shadow: none !important; }
nav.nav .links a:hover { background: var(--hub-hover) !important; color: #fff !important; }
nav.nav .links a.active { color: var(--hub-brand2) !important; }
nav.nav .links a.cta { background: var(--hub-btn) !important; color: var(--hub-btn-fg) !important; border: 0 !important; font-weight: 600; }
nav.nav .links a.cta:hover { background: #fff !important; }
nav.nav .links a.cta.cta-tele { background: transparent !important; color: #fff !important; border: 1px solid var(--hub-line2) !important; }
.nav-timebar { background: var(--hub-card) !important; border: 1px solid var(--hub-line) !important; color: var(--hub-muted) !important; box-shadow: none !important; }
.nav-timebar b { color: #fff !important; text-shadow: none !important; }

/* ---------- THẺ: nền #0f0f0f, viền #2e2e2e, bo 16, không bóng kính ---------- */
.pt-glass, .panel, .kji-card, .kji-4points, .wp-sec, .wp-card, .wp-toc, details.faq, .rule, .kn-mt-card, .kn-mt-how, .kn-mt-table,
.pt-step-card, .pt-fair-card, .pt-broker-item, .pt-prize-card, .pt-lower-card, .challenge-config-card, .reg-step-card, .reg-card,
.leaderboard-panel, .lb-ftmo-table, .myrank-card, .pt-stat, .pt-chip, .kn-tl-body, .winners-card, .winner-card, .payout-card {
  background: var(--hub-card) !important; border: 1px solid var(--hub-line) !important; border-radius: 16px !important;
  box-shadow: none !important; backdrop-filter: none !important; -webkit-backdrop-filter: none !important;
}
.pt-glass::before, .pt-glass::after, .kn-mt-card::before, .pt-prize-card::before, .pt-lower-card::before, .pt-step-card::before, .pt-fair-card::before { display: none !important; }
.pt-glass:hover, .kn-mt-card:hover, .pt-step-card:hover, .pt-fair-card:hover, .pt-broker-item:hover, details.faq:hover, .wp-sec:hover { border-color: var(--hub-line2) !important; transform: none !important; }
.pt-chip { color: #dbdbdb !important; border-radius: 999px !important; font-weight: 500; }
.kn-tl-body { padding: 14px 18px !important; }
.wp-sec { padding: 22px 24px !important; }

/* thẻ NỔI BẬT = viền gradient xanh→tím (như thẻ gói trên bảng giá Hub): Top 1, thẻ cấp vốn Master, mốc thi đấu đang chạy */
.pt-prize-top1, .kn-mt-card:nth-child(1), .kji-summary, .kn-tl-item.s-live .kn-tl-body, .myrank-card, .reg-step-card.active {
  border: 1.5px solid transparent !important;
  background: linear-gradient(var(--hub-card), var(--hub-card)) padding-box, var(--hub-grad) border-box !important;
  box-shadow: 0 18px 50px -24px rgba(41,98,255,.35) !important;
}
/* khối mở đầu từng phần: quầng xanh tím mép trên như ô "Xin chào" của Hub */
.pt-hero-prizes, #master-trader .kn-mt-lead { background: transparent !important; }

/* ---------- NÚT ---------- */
.pt-btn, .btn, .portal-btn, .pt-portal-btn { border-radius: 8px !important; font-family: var(--font-body) !important; font-weight: 600 !important; box-shadow: none !important; text-shadow: none !important; }
/* nút việc quan trọng nhất (Đăng ký tham gia) = gradient xanh→tím, cắt xiên mép phải */
.pt-btn-gold, .btn-cyan, .pt-hero-cta .pt-btn-gold, .reg-submit, button[type="submit"].btn {
  background: var(--hub-grad) !important; border: 0 !important; color: #fff !important;
  clip-path: polygon(0 0, 100% 0, calc(100% - 14px) 100%, 0 100%); border-radius: 8px 0 0 8px !important; padding-right: 34px !important;
}
.pt-btn-gold:hover, .btn-cyan:hover { filter: brightness(1.12); }
.pt-btn-gold::before, .pt-btn-gold::after, .btn-cyan::before, .btn-cyan::after { display: none !important; }
/* nút phụ = viền xám, nền trong suốt */
.pt-btn-ghost, .btn-outline, .pt-portal-btn, .portal-btn { background: transparent !important; border: 1px solid var(--hub-line2) !important; color: #fff !important; }
.pt-btn-ghost:hover, .btn-outline:hover, .pt-portal-btn:hover, .portal-btn:hover { background: var(--hub-hover) !important; }

/* ---------- Ô NHẬP ---------- */
input, select, textarea { background: transparent !important; border: 1px solid var(--hub-line2) !important; border-radius: 8px !important; color: #fff !important; }
input:focus, select:focus, textarea:focus { outline: 2px solid rgba(91,156,246,.55) !important; border-color: var(--hub-brand2) !important; box-shadow: none !important; }
label { color: var(--hub-muted); }

/* ---------- BẢNG XẾP HẠNG ---------- */
table { border-color: var(--hub-line) !important; }
th { background: var(--hub-card2) !important; color: var(--hub-muted) !important; font-weight: 500 !important; text-transform: none !important; letter-spacing: 0 !important; border-bottom: 1px solid var(--hub-line) !important; }
td { border-bottom: 1px solid var(--hub-line) !important; color: #dbdbdb; }
tr:hover td { background: var(--hub-hover) !important; }
.pos, .lb-pos, .profit-pos, .green { color: var(--green) !important; }
.neg, .lb-neg, .profit-neg { color: var(--red) !important; }

/* ---------- THỜI GIAN BIỂU: chấm mốc theo màu Hub ---------- */
.kn-tl-item::before { background: linear-gradient(180deg, rgba(91,156,246,.5), rgba(213,0,249,.12)) !important; }
.kn-tl-dot { background: #0f0f0f !important; border: 1.5px solid var(--hub-line2) !important; box-shadow: none !important; }
.kn-tl-item.s-live .kn-tl-dot { border-color: var(--hub-brand2) !important; box-shadow: 0 0 14px rgba(91,156,246,.45) !important; }
.kn-tl-time { color: var(--hub-brand2) !important; }

/* ---------- BẢNG MASTER / LỘ TRÌNH VỐN ---------- */
.kn-mt-table th { background: var(--hub-card2) !important; }
.kn-mt-tag { color: var(--hub-muted) !important; letter-spacing: .06em; }
.kn-mt-val { color: #fff !important; }

/* ---------- CẢNH BÁO RỦI RO: viền trái cam như thẻ "Đọc trước" của Hub ---------- */
.pt-risk .pt-wrap { background: var(--hub-card); border: 1px solid var(--hub-line); border-left: 3px solid #ff9800; border-radius: 12px; padding: 14px 18px; color: #dbdbdb; }

/* ---------- huy chương Top 1–3 giữ màu thứ hạng (vàng/bạc/đồng) ---------- */
.pt-prize-top1 .pt-prize-rank { color: #f2ca50 !important; -webkit-text-fill-color: #f2ca50 !important; }

/* ---------- bỏ ánh vàng còn sót ở đầu trang (theo Hub: trắng/xám + nhấn xanh) ---------- */
.pt-mua-badge { background: transparent !important; border: 1px solid var(--hub-line2) !important; color: #fff !important; -webkit-text-fill-color: #fff !important; box-shadow: none !important; text-shadow: none !important; }
.pt-stat b, .pt-hero-stats b { background: none !important; -webkit-text-fill-color: #fff !important; color: #fff !important; text-shadow: none !important; }
.pt-stat span, .pt-hero-stats span { color: var(--hub-muted) !important; }
.pt-hero-mua2 { background: var(--hub-card) !important; border: 1px solid var(--hub-line) !important; color: #dbdbdb !important; box-shadow: none !important; }
.pt-hero-live, .pt-live-badge { background: var(--hub-card) !important; border-color: var(--hub-line) !important; box-shadow: none !important; }
.pt-live-dot { background: var(--green) !important; box-shadow: 0 0 10px rgba(34,171,148,.6) !important; }
.pt-hero-ky2-note { background: var(--hub-card) !important; border: 1px solid var(--hub-line) !important; }

/* ---------- tiêu đề các phần: trắng, không gradient vàng (Hub) ---------- */
.pt-h2, .pt-h2 * { background-image: none !important; -webkit-text-fill-color: currentColor !important; text-shadow: none !important; }
.pt-h2 { color: #fff !important; text-transform: none !important; }
.pt-h2 .pt-gold-text { color: var(--hub-brand2) !important; -webkit-text-fill-color: var(--hub-brand2) !important; }
.kn-mt-val, .pt-lower-val, .pt-prize-val { color: #fff !important; -webkit-text-fill-color: #fff !important; background: none !important; text-shadow: none !important; font-family: var(--font-display) !important; }
.pt-prize-bar, .pt-prize-bar i { background: var(--hub-line) !important; box-shadow: none !important; }
.pt-prize-top1 .pt-prize-bar, .pt-prize-top1 .pt-prize-bar i { background: var(--hub-grad) !important; }
.pt-champ-chip { background: var(--hub-grad) !important; color: #fff !important; border: 0 !important; box-shadow: none !important; }
.pt-lower-title, .pt-green { color: #fff !important; -webkit-text-fill-color: #fff !important; }
.kn-mt-lead b, .kji-summary b { color: #fff !important; }

/* ---------- vàng còn sót (máy quét 28/10): thẻ điều kiện, bước, luật, chân trang, logo ---------- */
.pt-cond-card, .pt-step-card, .pt-prize-card.pt-prize-2, .pt-prize-card.pt-prize-3, .pt-fair-card { border-color: var(--hub-line) !important; }
.pt-cond-card h3, .pt-cond-card .pt-cond-title, .pt-cond-card h4, .pt-step-card h3, .pt-step-card h4, .pt-fair-txt b, .pt-fair-txt h3, .pt-fair-txt h4 {
  color: #fff !important; -webkit-text-fill-color: #fff !important; background: none !important; text-shadow: none !important; }
.pt-cond-price, .pt-cond-price * { background: none !important; -webkit-text-fill-color: #fff !important; color: #fff !important; text-shadow: none !important; }
.pt-cond-badge, .pt-step-tag { background: transparent !important; border: 1px solid var(--hub-line2) !important; color: var(--hub-muted) !important; }
.pt-cond-ic, .pt-fair-ic, .pt-step-ic, .pt-perk-ic, .pt-step-modal-ic { background: var(--hub-card2) !important; border: 1px solid var(--hub-line) !important; box-shadow: none !important; }
.pt-cond-list li::before, .pt-step-list li::before, .pt-cond-list li, .pt-step-list li { border-color: var(--hub-line) !important; }
.pt-cond-list li::marker, .pt-step-list li::marker { color: var(--hub-brand2) !important; }
.pt-step-num, .pt-step-modal-num { background: var(--hub-grad) !important; color: #fff !important; -webkit-text-fill-color: #fff !important; border: 0 !important; box-shadow: none !important; }
.pt-step-more { color: var(--hub-brand2) !important; }
.pt-step-arrow { color: var(--hub-line2) !important; }
.pt-prize-perks li { background: var(--hub-card2) !important; border: 1px solid var(--hub-line) !important; }
.pt-fair-txt b, .pt-fair-txt strong { color: #fff !important; }
.kji-eyebrow { color: var(--hub-brand2) !important; }
.kji-4points b, .kji-card h3 { color: #fff !important; -webkit-text-fill-color: #fff !important; }
.kji-prize { background: var(--hub-card2) !important; border: 1px solid var(--hub-line) !important; }
.lb-profit-usd.is-up { color: var(--green) !important; -webkit-text-fill-color: var(--green) !important; }
.pt-risk { border: 0 !important; box-shadow: none !important; }
.pt-risk b, .pt-risk strong { color: #ff9800 !important; }
.brand-mark-invest { background: none !important; -webkit-text-fill-color: #fff !important; color: #fff !important; }
/* chân trang theo Hub: đen, viền trên mảnh, bỏ chữ khổng lồ + lưới + quầng vàng */
footer.kcf { background: #000 !important; border-top: 1px solid var(--hub-line) !important; border-bottom: 0 !important; box-shadow: none !important; }
.kcf-giant, .kcf-grid, .kcf-aurora { display: none !important; }
.kcf-pill { background: transparent !important; border: 1px solid var(--hub-line2) !important; color: #dbdbdb !important; }
.kcf-pill:hover { background: var(--hub-hover) !important; }
.pt-steps-grid .pt-step-card.pt-glass, .pt-steps-grid .pt-step-card.pt-glass:nth-child(n) { border-color: var(--hub-line) !important; }
.pt-steps-grid .pt-step-card.pt-glass:hover { border-color: var(--hub-line2) !important; }
/* tiêu đề mục Thể lệ: trắng, vạch trái gradient Hub */
.wp-sec h3 { color: #fff !important; -webkit-text-fill-color: #fff !important; background-image: none !important; border-left-color: #5b9cf6 !important; }
.wp-sec h3::before { background: var(--hub-grad) !important; }
.wp-toc a { color: #dbdbdb !important; } .wp-toc a:hover { color: var(--hub-brand2) !important; }
.capvon-card { background: var(--hub-card) !important; border: 1.5px solid transparent !important; background: linear-gradient(var(--hub-card), var(--hub-card)) padding-box, var(--hub-grad) border-box !important; }
.capvon-o { background: var(--hub-card2); border-color: var(--hub-line) !important; }
/* thanh hành động dưới đáy điện thoại */
.mobile-bar { background: rgba(0,0,0,.9) !important; border-top: 1px solid var(--hub-line) !important; backdrop-filter: blur(10px); box-shadow: none !important; }
.mobile-bar .btn.btn-cyan, .mobile-bar .btn-cyan { background: var(--hub-grad) !important; color: #fff !important; border: 0 !important; }
.mobile-bar .btn.btn-cyan small, .mobile-bar .btn-cyan small { color: rgba(255,255,255,.8) !important; }
.mobile-bar .btn-outline { background: transparent !important; border: 1px solid var(--hub-line2) !important; color: #fff !important; }

/* trang Đăng ký: chấm tiến trình, huy hiệu bước */
.reg-step-badge { background: var(--hub-grad) !important; color: #fff !important; box-shadow: 0 12px 30px -14px rgba(41,98,255,.7) !important; }
.reg-progress-dot .reg-dot { background: #0f0f0f !important; border-color: var(--hub-line2) !important; color: #8c8c8c !important; }
.reg-progress-dot.is-done .reg-dot { background: #f2f2f2 !important; color: #000 !important; border-color: transparent !important; }
.reg-progress-dot.is-active .reg-dot { background: var(--hub-grad) !important; color: #fff !important; border-color: transparent !important; box-shadow: 0 0 0 4px rgba(41,98,255,.18), 0 10px 26px -12px rgba(213,0,249,.6) !important; }
.reg-progress-dot.is-active small { color: #fff !important; }
.reg-progress-dot[data-step-dot]:hover .reg-dot { border-color: #5b9cf6 !important; }
.reg-progress-bar-fill { background: var(--hub-grad) !important; box-shadow: 0 0 14px rgba(41,98,255,.4) !important; }
.reg-guided-head p b, .reg-step-card .hl-brand { color: #5b9cf6 !important; }

/* ============================================================
   (28/10 chiều) THẺ DẢI NGÂN HÀ — anh: "card cho màu galaxy, lấp lánh"
   nền tinh vân xanh-tím + 3 lớp sao nhấp nháy lệch nhịp + sao 4 cánh lóe (theme-hub.js chèn .gx-sky)
   KHÔNG chặn bằng prefers-reduced-motion: máy anh bật "giảm chuyển động" (design-taste-kn-web)
   ============================================================ */
:root {
  --gx-bg:
    radial-gradient(110% 75% at 0% 0%, rgba(41,98,255,.20), transparent 62%),
    radial-gradient(90% 70% at 100% 100%, rgba(213,0,249,.16), transparent 62%),
    radial-gradient(55% 45% at 78% 18%, rgba(0,190,255,.08), transparent 70%),
    linear-gradient(160deg, #0a0b1d 0%, #07070f 55%, #0d0618 100%);
  --gx-bg-pb:
    radial-gradient(110% 75% at 0% 0%, rgba(41,98,255,.20), transparent 62%) padding-box,
    radial-gradient(90% 70% at 100% 100%, rgba(213,0,249,.16), transparent 62%) padding-box,
    radial-gradient(55% 45% at 78% 18%, rgba(0,190,255,.08), transparent 70%) padding-box,
    linear-gradient(160deg, #0a0b1d 0%, #07070f 55%, #0d0618 100%) padding-box;
}
.pt-glass, .panel, .kji-card, .kji-4points, .wp-sec, .wp-card, .wp-toc, details.faq, .rule, .kn-mt-card, .kn-mt-how, .kn-mt-table,
.pt-step-card, .pt-fair-card, .pt-broker-item, .pt-prize-card, .pt-lower-card, .challenge-config-card, .reg-step-card, .reg-card,
.leaderboard-panel, .lb-ftmo-table, .myrank-card, .pt-stat, .kn-tl-body, .winners-card, .winner-card, .payout-card, .lb-ftmo-card, .capvon-card {
  background: var(--gx-bg) !important;
}
.pt-prize-top1, .kn-mt-card:nth-child(1), .kji-summary, .kn-tl-item.s-live .kn-tl-body, .myrank-card, .reg-step-card.active, .capvon-card {
  background: var(--gx-bg-pb), var(--hub-grad) border-box !important;
}
.lb-ftmo-card::before { display: none !important; }
/* ô con bên trong thẻ: kính mờ để thấy sao phía sau */
.capvon-o, .pt-prize-perks li, .kji-prize, .pt-cond-ic, .pt-fair-ic, .pt-step-ic, .pt-perk-ic, .lb-ftmo-table thead tr, .lb-ftmo-table th { background: rgba(255,255,255,.035) !important; }
.lb-ftmo-table th { background: transparent !important; }

.gx-host { isolation: isolate; }
.gx-sky { position: absolute; inset: 0; border-radius: inherit; overflow: hidden; pointer-events: none; z-index: -1; }
.gx-sky .gx-l { position: absolute; inset: -20px; transition: transform .35s ease-out; background-image: var(--img); background-size: var(--t) var(--t); opacity: .55;
  animation: gxTw var(--d) ease-in-out var(--dl) infinite alternate; animation-play-state: paused; }
.gx-sky .gx-sp { position: absolute; width: var(--s); height: var(--s); margin: calc(var(--s) / -2) 0 0 calc(var(--s) / -2); opacity: 0;
  background:
    radial-gradient(circle, #fff 0 8%, var(--c) 16%, transparent 34%),
    radial-gradient(circle, var(--c) 0, transparent 55%) center / 60% 60% no-repeat,
    linear-gradient(90deg, transparent 47%, var(--c) 50%, transparent 53%),
    linear-gradient(0deg, transparent 47%, var(--c) 50%, transparent 53%);
  animation: gxSp var(--d) ease-in-out var(--dl) infinite; animation-play-state: paused; }
/* chỉ chạy khi thẻ nằm trong màn hình (theme-hub.js bật .gx-on) — nhẹ máy khách */
.gx-on > .gx-sky .gx-l, .gx-on > .gx-sky .gx-sp { animation-play-state: running; }
@keyframes gxTw { from { opacity: .2; } to { opacity: 1; } }
@keyframes gxSp {
  0%, 60%, 100% { opacity: 0; transform: scale(0) rotate(0deg); }
  73% { opacity: 1; transform: scale(1) rotate(45deg); }
  86% { opacity: .15; transform: scale(.3) rotate(90deg); }
}
/* thẻ Top 1–3: mặt thẻ vẽ bằng ::after (styles.css ~14003) → đổi mặt thẻ thành dải ngân hà, giữ ánh kim vàng/bạc/đồng mép trên; lớp sao nằm giữa mặt thẻ và chữ */
.lb-ftmo-card::after {
  z-index: 0 !important;
  background: linear-gradient(150deg, var(--kl-nenA, rgba(255,255,255,.05)), transparent 55%), radial-gradient(circle at 82% 0, var(--kl-nenB, rgba(0,136,255,.10)), transparent 46%), var(--gx-bg) !important;
}
.lb-ftmo-card > .gx-sky { position: absolute !important; z-index: 1 !important; }

/* ---------- (28/10) THẺ PHẢN ỨNG VỚI CON TRỎ (theme-hub.js đặt --mx/--my/--dx/--dy, .gx-hot, .gx-tilt) ---------- */
.gx-re { transition: transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s ease, border-color .25s ease, opacity .7s ease !important; }
.gx-fx { position: absolute; inset: 0; border-radius: inherit; overflow: hidden; pointer-events: none; z-index: 3; }
.gx-fx .gx-spot { position: absolute; left: 0; top: 0; width: 460px; height: 460px; margin: -230px 0 0 -230px; border-radius: 50%; opacity: 0;
  background: radial-gradient(circle, rgba(170,200,255,.16) 0, rgba(91,156,246,.12) 22%, rgba(213,0,249,.07) 45%, transparent 68%);
  transform: translate(-999px, -999px); transition: opacity .3s ease; will-change: transform; }
.gx-fx .gx-ring { position: absolute; inset: 0; border-radius: inherit; padding: 1.5px; opacity: 0; transition: opacity .3s ease;
  background: radial-gradient(260px circle at var(--mx, -999px) var(--my, -999px), rgba(255,255,255,.95), rgba(91,156,246,.85) 25%, rgba(213,0,249,.6) 50%, transparent 75%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0); }
.gx-hot > .gx-fx .gx-spot, .gx-vien > .gx-fx .gx-ring { opacity: 1; }
.gx-vien { box-shadow: 0 22px 60px -28px rgba(91,156,246,.55), 0 0 0 1px rgba(91,156,246,.10) !important; }
.lb-ftmo-card > .gx-fx { position: absolute !important; z-index: 3 !important; }

/* (28/10) sàn thứ 5 HFM: chip đỏ trên bảng xếp hạng; nút lẻ cuối (5 sàn trên lưới 2 cột) giãn đủ hàng */
.lb-broker-pill.br-hfm, .lb-ftmo-broker.br-hfm { background: rgba(227,0,27,.14) !important; border-color: rgba(255,90,100,.45) !important; color: #ff9aa2 !important; }
.form-broker-links > a:last-child:nth-child(odd) { grid-column: 1 / -1; }

/* (29/10) Duong dua Master hang 4-10 duoi bang xep hang — app.js renderMasterPanel() */
.lb-master{margin-top:14px;border:1px solid #2e2e2e;border-radius:14px;background:#0f0f0f;padding:14px 16px}
.lb-master-head{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}
.lb-master-head b{font-size:15px;color:#f2ca50}
.lb-master-head small{color:#9aa4b2;font-size:12px;line-height:1.5}
.lb-master .pill.dim{opacity:.7}
.lb-master-chon{background:linear-gradient(90deg,#2962ff,#d500f9);color:#fff;border:0}
.lb-master-row-chon td{background:rgba(91,156,246,.08)}
@media (max-width:640px){.lb-master{padding:10px}.lb-master-head b{font-size:14px}}
