<!DOCTYPE html>
<html lang="id">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Template Bukti Pembayaran Jackpot</title>
  <link rel="stylesheet" href="/mnt/data/styles.min.css">
  <style>
    /* Page shell */
    .main-content { padding-top: 120px; }
    .tabs { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:20px; }
    .tabs .tab-btn{
      background: var(--card-bg);
      border:1px solid var(--border);
      color: var(--text-primary);
      border-radius:12px; padding:10px 14px; cursor:pointer;
      transition: var(--transition-fast);
    }
    .tabs .tab-btn.active{ background: var(--gradient-primary); color:#0f0e14; font-weight:700; }
    .bukti-grid{ display:grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap:16px; }
    .bukti-card{ background:var(--card-bg); border:1px solid var(--border); border-radius:16px; overflow:hidden; box-shadow: var(--shadow-sm); }
    .bukti-head{ display:flex; justify-content:space-between; align-items:center; padding:12px 16px; border-bottom:1px solid var(--border); }
    .badge-menang{ font-weight:800; color:#ffdd00; letter-spacing:.5px; }
    .bukti-body{ padding:14px 16px; display:grid; gap:6px; }
    .bukti-row{ display:flex; justify-content:space-between; gap:10px; font-size:14px; }
    .bukti-total{ margin-top:8px; padding:10px; border-radius:10px; background: rgba(16,185,129,.12); border:1px solid rgba(16,185,129,.35); font-weight:800; color:#34d399; display:flex; justify-content:space-between; }
    .bukti-foot{ padding:12px 16px; background:rgba(255,255,255,.02); display:flex; gap:8px; }
    .btn{ cursor:pointer; border:none; border-radius:10px; padding:10px 12px; font-weight:700; }
    .btn-primary{ background:var(--gradient-primary); }
    .btn-ghost{ background:transparent; border:1px solid var(--border); color:var(--text-secondary); }
    .provider{ color:var(--text-muted); font-size:12px; }
  </style>

  <!-- JS (preload + load) -->
  <link rel="preload" href="/mnt/data/main.min.js" as="script">
  <link rel="preload" href="/mnt/data/gameCardTemplate.min.js" as="script">
  <link rel="preload" href="/mnt/data/gameLoader.min.js" as="script">
  <link rel="preload" href="/mnt/data/bukti.min.js" as="script">
</head>
<body>

  <nav class="navbar">
    <div class="container navbar-content">
      <div class="main-brand">
        <img class="rtp-pro-main-logo" src="https://dummyimage.com/80x80/ffd700/0f0.png&text=JP" alt="JP">
        <div class="rtp-pro-brand-text">
          <div class="rtp-pro-brand-name">Bukti Pembayaran</div>
          <div class="rtp-pro-tagline">Update Otomatis Tiap Hari</div>
        </div>
      </div>
      <div class="navbar-cta desktop-only">
        <div class="live-indicator"><span class="live-dot-navbar"></span><span class="live-text">LIVE</span></div>
      </div>
    </div>
  </nav>

  <main class="main-content">
    <div class="container">
      <header class="section-header">
        <h2 class="section-title">📄 Bukti Pembayaran Jackpot</h2>
        <p class="section-subtitle">Pilih kategori. Data dapat diisi manual atau dari API dan diperbarui harian.</p>
      </header>

      <!-- 6 Menu / Tabs -->
      <div class="tabs" id="tabs">
        <button class="tab-btn active" data-key="pragmatic">Pragmatic</button>
        <button class="tab-btn" data-key="pgsoft">PG Soft</button>
        <button class="tab-btn" data-key="spadegaming">Spadegaming</button>
        <button class="tab-btn" data-key="habanero">Habanero</button>
        <button class="tab-btn" data-key="jpkecil">JP Kecil</button>
        <button class="tab-btn" data-key="jpbesar">JP Besar</button>
      </div>

      <!-- Grid hasil render -->
      <div class="bukti-grid" id="buktiGrid" aria-live="polite"></div>
    </div>
  </main>

  <!-- Core scripts -->
  <script src="/mnt/data/main.min.js"></script>
  <script src="/mnt/data/gameCardTemplate.min.js"></script>
  <script src="/mnt/data/gameLoader.min.js"></script>
  <script src="/mnt/data/bukti.min.js"></script>

  <script>
    // ======== DATA EXAMPLE (ganti dengan fetch('/api/bukti') bila ada API) ========
    const BUKTI_DATA = {
      pragmatic: [
        { name: 'Aldi******** (Balikpapan)', game: 'Gates of Olympus (Pragmatic)', bet: 'Rp 40.000', multi: '×9', total: 'Rp 360.000', ago: '23 menit', proof: '#' },
        { name: 'Rina******** (Surabaya)', game: 'Starlight Princess (Pragmatic)', bet: 'Rp 20.000', multi: '×25', total: 'Rp 500.000', ago: '1 jam', proof: '#' },
      ],
      pgsoft: [
        { name: 'Budi******** (Jakarta)', game: 'Mahjong Ways 2 (PG Soft)', bet: 'Rp 25.000', multi: '×15', total: 'Rp 375.000', ago: '12 menit', proof: '#' },
        { name: 'Vira******** (Solo)', game: 'Treasures of Aztec (PG Soft)', bet: 'Rp 10.000', multi: '×40', total: 'Rp 400.000', ago: '43 menit', proof: '#' },
      ],
      spadegaming: [
        { name: 'Aldo******** (Makassar)', game: 'Brothers Kingdom (Spadegaming)', bet: 'Rp 40.000', multi: '×9', total: 'Rp 360.000', ago: '8 menit', proof: '#' },
      ],
      habanero: [
        { name: 'Andi******** (Medan)', game: 'Hot Hot Fruit (Habanero)', bet: 'Rp 15.000', multi: '×20', total: 'Rp 300.000', ago: '35 menit', proof: '#' },
      ],
      jpkecil: [
        { name: 'Sari******** (Bandung)', game: 'Sugar Rush', bet: 'Rp 10.000', multi: '×30', total: 'Rp 300.000', ago: '5 menit', proof: '#' },
      ],
      jpbesar: [
        { name: 'Eko******** (Semarang)', game: 'Wild West Gold', bet: 'Rp 50.000', multi: '×120', total: 'Rp 6.000.000', ago: '2 jam', proof: '#' },
      ]
    };

    // ======== RENDER CARD ========
    const grid = document.getElementById('buktiGrid');

    function cardTemplate(item){
      return `
      <article class="bukti-card" role="group" aria-label="Bukti Pembayaran">
        <div class="bukti-head">
          <div class="badge-menang">🎉 MENANG!</div>
          <button class="btn btn-ghost" aria-label="Tutup">✕</button>
        </div>
        <div class="bukti-body">
          <div class="bukti-row">
            <strong>${item.name}</strong>
            <span style="color:#10b981">${item.bet}</span>
          </div>
          <div class="bukti-row">
            <span class="provider">${item.game}</span>
            <strong>${item.multi}</strong>
          </div>
          <div class="bukti-total">
            <span>Total Kemenangan</span>
            <span>${item.total}</span>
          </div>
          <div class="provider">⏱ ${item.ago} lalu</div>
        </div>
        <div class="bukti-foot">
          <button class="btn btn-primary" onclick="openWinnerProof('${item.name}','${item.total}','${item.proof}')">📄 Lihat Bukti Transfer</button>
          <a class="btn btn-ghost" href="#daftar">DAFTAR</a>
        </div>
      </article>`;
    }

    function render(key){
      const list = BUKTI_DATA[key] || [];
      grid.innerHTML = list.map(cardTemplate).join('');
    }

    // ======== HOOK to bukti.min.js (winner proof modal if present) ========
    function openWinnerProof(name, total, link){
      // If bukti.min.js exposes a modal open, use it. Else, fallback.
      if (window.openWinnerProof) {
        window.openWinnerProof({fullName: name, amount: total, proofUrl: link});
      } else {
        alert(`${name}\\nTotal: ${total}`);
        if (link && link !== '#') window.open(link, '_blank');
      }
    }

    // Tabs handler
    document.getElementById('tabs').addEventListener('click', (e)=>{
      const btn = e.target.closest('.tab-btn'); if(!btn) return;
      document.querySelectorAll('.tab-btn').forEach(b=>b.classList.remove('active'));
      btn.classList.add('active');
      render(btn.dataset.key);
      // Smooth scroll to grid
      grid.scrollIntoView({behavior:'smooth', block:'start'});
    });

    // First render
    render('pragmatic');

    // Optional: auto refresh every day at 00:05 (placeholder demo refresh every 10 minutes)
    // setInterval(()=> { fetch('/api/bukti?menu=current').then(r=>r.json()).then(data=>{ /* update BUKTI_DATA and re-render */ }); }, 10*60*1000);
  </script>
</body>
</html>
