// Shared data + helpers
const INSTRUMENTS = [
  { sym: 'GOLD',    bid: 4615.20, ask: 4615.30, pct: 1.14,  pctDir: 'up' },
  { sym: 'SILVER',  bid: 73.09,   ask: 73.10,   pct: 1.70,  pctDir: 'up' },
  { sym: 'SPX500',  bid: 7134.7,  ask: 7134.8,  pct: -0.29, pctDir: 'down' },
  { sym: 'WTIOIL',  bid: 105.38,  ask: 105.39,  pct: -2.27, pctDir: 'down' },
  { sym: 'BTC/USD', bid: 76496,   ask: 76497,   pct: -0.32, pctDir: 'down' },
  { sym: 'ETH/USD', bid: 2265,    ask: 2266,    pct: -1.58, pctDir: 'down' },
];

// Sparklines for Gen Z cards
function genSpark(direction = 'up', n = 30) {
  const out = []; let v = 50;
  for (let i = 0; i < n; i++) {
    const bias = direction === 'up' ? 0.6 : 0.4;
    v += (Math.random() - (1 - bias)) * 6;
    out.push(v);
  }
  return out;
}

const TRADERS = [
  { handle: '@rahul_fx',     time: '8m',   sym: 'XAUUSD', side: 'buy',  pl: 47,   hold: '12 min', dir: 'pos', avatar: 'R', avBg: 'linear-gradient(135deg,#F59E0B,#DC2626)' },
  { handle: '@priya_trades', time: '23m',  sym: 'XAUUSD', side: 'buy',  pl: 112,  hold: '34 min', dir: 'pos', avatar: 'P', avBg: 'linear-gradient(135deg,#8B5CF6,#3B82F6)' },
  { handle: '@carlos_xm',    time: '1h',   sym: 'WTIOIL', side: 'sell', pl: -23,  hold: '28 min', dir: 'neg', avatar: 'C', avBg: 'linear-gradient(135deg,#10B981,#059669)' },
  { handle: '@aditi_signals',time: '2h',   sym: 'XAUUSD', side: 'buy',  pl: 89,   hold: '47 min', dir: 'pos', avatar: 'A', avBg: 'linear-gradient(135deg,#EC4899,#8B5CF6)' },
  { handle: '@nikhil_dxy',   time: '3h',   sym: 'BTC/USD',side: 'buy',  pl: 234,  hold: '1h 12m', dir: 'pos', avatar: 'N', avBg: 'linear-gradient(135deg,#3B82F6,#06B6D4)' },
];

const CHANNELS = [
  { name: 'MMFX Commodities', signal: 'XAUUSD buy 4612', sl: '4595', tp: '4645', winRate: 64, avgHold: '18 min', month: 47, subs: 1240 },
  { name: 'GoldSignals Pro',  signal: 'Buy 4618',         sl: '4602', tp: '4650', winRate: 58, avgHold: '31 min', month: 23, subs: 847 },
  { name: 'DXYWatch',          note: 'DXY at 103.8 — Gold bullish setup forming on H1.', winRate: 51, avgHold: '42 min', month: 18, subs: 612 },
];

const fmtMoney = (n, sign = true) => {
  const s = n < 0 ? '-' : (sign ? '+' : '');
  return `${s}$${Math.abs(n).toFixed(2)}`;
};

window.INSTRUMENTS = INSTRUMENTS;
window.TRADERS = TRADERS;
window.CHANNELS = CHANNELS;
window.genSpark = genSpark;
window.fmtMoney = fmtMoney;
