:root {
  --ftst-bg: #efeaf8;
  --ftst-bg-2: #e4dcf4;
  --ftst-surface: rgba(255, 255, 255, .78);
  --ftst-card: #ffffff;
  --ftst-border: rgba(139, 92, 246, .16);
  --ftst-purple: #8b5cf6;
  --ftst-purple-deep: #7c3aed;
  --ftst-pink: #c084fc;
  --ftst-text: #1f1633;
  --ftst-muted: #7a7193;
  --ftst-gradient: linear-gradient(135deg, #8b5cf6 0%, #a78bfa 48%, #c084fc 100%);
  --ftst-shadow: 0 18px 40px rgba(124, 92, 216, .12);
}

html, body, uni-page-body, uni-page-wrapper, uni-page, uni-app, #app {
  background: var(--ftst-bg) !important;
  color: var(--ftst-text) !important;
}

body {
  font-family: Inter, "SF Pro Display", "PingFang SC", "Microsoft YaHei", sans-serif !important;
}

.luxury-bg, .page-bg, .forge-bg, .scene-bg, .mine-page, .page-wrap {
  background:
    radial-gradient(circle at 12% 8%, rgba(196, 181, 253, .55), transparent 36%),
    radial-gradient(circle at 88% 18%, rgba(232, 201, 255, .42), transparent 32%),
    linear-gradient(180deg, #f4f0fb 0%, #ece6f7 46%, #e4dcf4 100%) !important;
}

.luxury-bg::before, .page-bg::before, .forge-bg::before, .scene-bg::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  opacity: .18;
  background-image: none;
  background:
    radial-gradient(circle at 20% 30%, rgba(255,255,255,.7), transparent 28%),
    radial-gradient(circle at 80% 70%, rgba(192,132,252,.18), transparent 26%);
  -webkit-mask-image: none;
  mask-image: none;
}

.glow-left, .bg-glow.top { background: rgba(196, 181, 253, .35) !important; }
.glow-right, .bg-glow.bottom { background: rgba(232, 201, 255, .28) !important; }
.glow-top { background: rgba(255, 255, 255, .45) !important; }
.shimmer { opacity: .08 !important; background: #fff !important; }

.logo-ring {
  width: 104px !important;
  height: 104px !important;
  border: 1px solid rgba(139, 92, 246, .28) !important;
  border-radius: 34px !important;
  transform: rotate(45deg);
  background: #fff !important;
  box-shadow: 0 12px 30px rgba(139, 92, 246, .16) !important;
}

.logo-core {
  transform: rotate(-45deg);
  font-size: 25px !important;
  letter-spacing: 1px !important;
  color: var(--ftst-purple-deep) !important;
  text-shadow: none !important;
}

.app-name, .brand-name, .page-title, .reactor-brand, .guest-title,
.forge-title, .header-title, .nav-title {
  color: var(--ftst-text) !important;
  letter-spacing: .02em !important;
  text-shadow: none !important;
}

.app-desc, .brand-sub, .page-sub, .status-text, .guest-desc, .muted, .sub-text {
  color: var(--ftst-muted) !important;
  letter-spacing: 0 !important;
}

.brand-mark-img, .coin-medal-img {
  background: url('/static/images/ui/ftst-mark.svg') center / contain no-repeat !important;
}

.brand-mark-img img, .coin-medal-img img { opacity: 0 !important; }

.btn-neon, .btn-primary, .gold-btn, .forge-btn.primary, .wallet-btn.primary,
.claim-btn, .upgrade-btn, .uni-button, .primary-btn {
  color: #fff !important;
  border: 0 !important;
  background: var(--ftst-gradient) !important;
  box-shadow: 0 10px 24px rgba(139, 92, 246, .28) !important;
  border-radius: 18px !important;
}

.gold-btn, .rule-btn, .pool-rule-btn {
  color: #fff !important;
  background: var(--ftst-gradient) !important;
  border-radius: 22px !important;
}

.btn-neon::before, .btn-neon::after, .gold-btn::before { display: none !important; }

.vault-card, .notice-card, .bento-main, .bento-sm, .wallet-card, .stats-card,
.list-card, .earn-card, .card-box, .rate-box, .team-ref-bg, .balance-hero,
.action-card, .wallet-box, .tip-box, .command-deck, .offline-panel, .notice-panel,
.mine-card, .panel, .info-card, .stat-box {
  border: 1px solid rgba(255,255,255,.7) !important;
  border-radius: 28px !important;
  background: rgba(255,255,255,.78) !important;
  box-shadow: var(--ftst-shadow) !important;
  backdrop-filter: blur(18px);
  color: var(--ftst-text) !important;
}

.price-num, .wallet-amount, .balance-amount, .earn-amount, .hero-num, .pill-amount,
.stat-num, .income-num, .level-num {
  background: var(--ftst-gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent !important;
  text-shadow: none !important;
}

.wallet-chip, .live-badge, .balance-tag, .wallet-tag, .forge-tag, .status-pill,
.bento-badge, .badge.gold, .rule-badge, .balance-pill {
  color: var(--ftst-purple-deep) !important;
  border-color: rgba(139, 92, 246, .18) !important;
  background: rgba(255,255,255,.86) !important;
  box-shadow: 0 8px 18px rgba(139, 92, 246, .12) !important;
}

.live-pulse, .status-dot, .chip-dot {
  background: #22c55e !important;
  box-shadow: 0 0 10px rgba(34, 197, 94, .45) !important;
}

.contract-bar, .record-links {
  border-color: transparent !important;
  background: transparent !important;
}

.contract-tag-text, .contract-action, .link-item, .refresh-btn, .record-link {
  color: var(--ftst-purple) !important;
}

.reactor-shell, .core-spinner, .orbit-track, .ring, .hex-line {
  border-color: rgba(139, 92, 246, .28) !important;
  filter: hue-rotate(0deg) saturate(.85) brightness(1.15);
}

.reactor-aura, .reactor-flare, .shockwave { border-color: rgba(192, 132, 252, .35) !important; }
.progress-fill, .progress-bar, .bar-fill { background: var(--ftst-gradient) !important; }

.hex-char, .matrix-char, .code-rain {
  color: rgba(139, 92, 246, .22) !important;
  text-shadow: none !important;
}

uni-tabbar .uni-tabbar {
  background: rgba(255,255,255,.86) !important;
  border-top: 1px solid rgba(139, 92, 246, .1) !important;
  backdrop-filter: blur(20px);
  box-shadow: 0 -10px 30px rgba(124, 92, 216, .08) !important;
}

uni-tabbar .uni-tabbar__label { color: #8a819e !important; }
uni-tabbar .uni-tabbar__item.uni-tabbar__item--selected .uni-tabbar__label,
uni-tabbar .uni-tabbar__item:nth-child(3) .uni-tabbar__label {
  color: var(--ftst-purple) !important;
}

.modal-box, .rule-popup-inner, .uni-popup, .popup-inner {
  border: 1px solid rgba(255,255,255,.8) !important;
  border-radius: 28px !important;
  background: #fff !important;
  color: var(--ftst-text) !important;
  box-shadow: 0 24px 60px rgba(124, 92, 216, .18) !important;
}

.modal-input, input, textarea, .uni-input, .uni-textarea {
  color: var(--ftst-text) !important;
  border-color: rgba(139, 92, 246, .18) !important;
  background: #f7f4fc !important;
  border-radius: 16px !important;
}

.header-bar, .top-bar, .nav-bar, .page-header {
  color: var(--ftst-text) !important;
  background: transparent !important;
}

.action-ghost, .ghost-btn, .secondary-btn {
  background: #fff !important;
  color: var(--ftst-purple-deep) !important;
  border: 1px solid rgba(139, 92, 246, .16) !important;
  border-radius: 18px !important;
  box-shadow: 0 8px 18px rgba(124, 92, 216, .08) !important;
}

@media (max-width: 420px) {
  .page-inner, .page-body, .forge-body { padding-left: 16px !important; padding-right: 16px !important; }
  .vault-card, .wallet-card, .balance-hero, .command-deck { border-radius: 24px !important; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

.ftst-preview-badge {
  position: fixed;
  z-index: 1001;
  top: max(10px, env(safe-area-inset-top));
  left: 50%;
  transform: translateX(-50%);
  padding: 7px 13px;
  border: 1px solid rgba(139, 92, 246, .18);
  border-radius: 999px;
  color: var(--ftst-purple-deep);
  background: rgba(255,255,255,.86);
  backdrop-filter: blur(14px);
  font-size: 11px;
  letter-spacing: .04em;
  box-shadow: 0 8px 20px rgba(124, 92, 216, .12);
}

.forge-page,
.uni-body.pages-mining-mining,
.uni-body.pages-index-index,
.uni-body.pages-mine-mine,
.uni-body.pages-promotion-promotion,
.status_bar {
  background: linear-gradient(180deg, #f4f0fb 0%, #ece6f7 50%, #e4dcf4 100%) !important;
  color: var(--ftst-text) !important;
}

.abyss, .spotlight, .floor-reflect, .scan-line, .deck-bg-img {
  opacity: 0 !important;
  background: none !important;
}

.hash-forge, .scene-offline, .scene-running, .scene-ignite, .forge-chamber {
  background: transparent !important;
}

.forge-logo, .forge-tag, .reactor-brand, .reactor-sub, .offline-title, .status-text, .status-id {
  color: var(--ftst-text) !important;
  text-shadow: none !important;
}

.reactor-sub, .offline-desc, .deck-cost-label, .deck-cost-tip, .pill-unit {
  color: var(--ftst-muted) !important;
}

.wallet-pill, .forge-tag {
  background: rgba(255,255,255,.88) !important;
  border: 1px solid rgba(139, 92, 246, .14) !important;
  color: var(--ftst-purple-deep) !important;
  box-shadow: 0 8px 18px rgba(124, 92, 216, .1) !important;
}

.pill-amount { color: var(--ftst-purple-deep) !important; }

.offline-panel, .command-deck {
  background: rgba(255,255,255,.82) !important;
  border: 1px solid rgba(255,255,255,.9) !important;
  border-radius: 28px !important;
  box-shadow: var(--ftst-shadow) !important;
  color: var(--ftst-text) !important;
}

.deck-cost-box, .deck-cost-val {
  background: #f6f2fc !important;
  color: var(--ftst-purple-deep) !important;
  border-radius: 16px !important;
}

.forge-btn.primary, .deck-btn, .ignite-btn, .deck-btn.ignite-btn.wide {
  background: var(--ftst-gradient) !important;
  color: #fff !important;
  border: 0 !important;
  border-radius: 22px !important;
  box-shadow: 0 12px 28px rgba(139, 92, 246, .28) !important;
}

.deck-btn-text, .deck-btn-text.dark, .btn-text {
  color: #fff !important;
}

.reactor-shell {
  background-image: radial-gradient(circle at 35% 30%, #f3e8ff 0%, #ddd6fe 45%, #c4b5fd 100%) !important;
  box-shadow: 0 10px 28px rgba(139, 92, 246, .22) !important;
}

.reactor-brand {
  background-image: none !important;
  background: none !important;
  color: var(--ftst-purple-deep) !important;
  -webkit-text-fill-color: var(--ftst-purple-deep) !important;
}

.reactor-aura, .reactor-aura.delay {
  background-image: radial-gradient(circle, rgba(196, 181, 253, .45) 0%, rgba(192, 132, 252, .12) 55%, transparent 70%) !important;
}

.hex-node, .orbit-particle, .tick.on {
  background: var(--ftst-purple) !important;
  box-shadow: 0 0 10px rgba(139, 92, 246, .35) !important;
}

.data-rain, .rain-col, .rain-bit {
  color: rgba(139, 92, 246, .22) !important;
  text-shadow: none !important;
  opacity: .45 !important;
}

.btn-glow, .shell-shine { opacity: .25 !important; background: rgba(196, 181, 253, .4) !important; }

.header-line { background: rgba(139, 92, 246, .18) !important; }

.uni-toast, .uni-mask, .uni-loading {
  border-radius: 18px !important;
}
