<html lang="en">
 <head> 
  <meta charset="utf-8"> 
  <meta name="viewport" content="width=device-width,initial-scale=1"> 
  <title>GTX | Invite</title> 
  <meta name="description" content="GTX is a Nigerian investment platform that helps users save, invest and grow wealth through accessible plans and secure transactions."> 
  <meta name="author" content="GTX Nigeria"> 
  <meta name="robots" content="index,follow"> 
  <link rel="canonical" href="https://nvdgtx.com/main/invite"> 
  <link rel="icon" type="image/png" sizes="32x32" href="/assets/images/logo.jpg"> 
  <link rel="icon" type="image/png" sizes="16x16" href="/assets/images/logo.jpg"> 
  <link rel="apple-touch-icon" sizes="180x180" href="/assets/images/logo.jpg"> 
  <link rel="mask-icon" href="/assets/images/logo.jpg" color="rgba(0, 40, 7, 1)"> 
  <meta name="msapplication-TileImage" content="/assets/images/logo.jpg"> 
  <meta name="msapplication-TileColor" content="#ffffff"> 
  <link rel="manifest" href="/site.webmanifest"> 
  <meta name="theme-color" content="#008400ff"> 
  <meta name="csrf-token" content="3Iwv44hp8oannTBkUl6nJ7rSyaX6yEGE5y8Qx35V"> 
  <meta property="og:type" content="website"> 
  <meta property="og:title" content="Login - GTX Nigeria"> 
  <meta property="og:description" content="GTX is a Nigerian investment platform that helps users save, invest and grow wealth through accessible plans and secure transactions."> 
  <meta property="og:url" content="https://nvdgtx.com/main/invite"> 
  <meta property="og:site_name" content="GTX Nigeria"> 
  <meta property="og:image" content="https://nvdgtx.com/assets/images/logo.jpg"> 
  <meta property="og:image:alt" content="GTX Nigeria logo"> 
  <meta property="og:image:width" content="1200"> 
  <meta property="og:image:height" content="630"> 
  <meta name="twitter:card" content="summary_large_image"> 
  <meta name="twitter:title" content="Login - GTX Nigeria"> 
  <meta name="twitter:description" content="GTX is a Nigerian investment platform that helps users save, invest and grow wealth through accessible plans and secure transactions."> 
  <meta name="twitter:image" content="https://nvdgtx.com/assets/images/logo.jpg"> 
  <meta name="twitter:image:alt" content="GTX Nigeria logo"> 
  <link rel="preconnect" href="https://fonts.googleapis.com"> 
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin=""> 
  <!-- <link href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;600;700&display=swap" rel="stylesheet" />
  <link rel="preconnect" href="https://fonts.googleapis.com" />
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
  <link href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;600;700&display=swap" rel="stylesheet" /> --> 
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> 
  <link href="https://cdn.jsdelivr.net/npm/remixicon@3.5.0/fonts/remixicon.css" rel="stylesheet"> 
  <style>

    /* Reset / base */
    * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Poppins', sans-serif; }
    body { min-height: 100vh; background: linear-gradient(135deg, #0f2a1aff, #036320ff); color: white; overflow-x: hidden; }
    .app { width:100%; max-width:520px; margin:0 auto; position:relative; }
    .green-filter {
      filter: hue-rotate(260deg) saturate(150%);
    }

  </style> 
  <style>

  .stats {
    padding: 0 1rem;
    margin-bottom: 1rem;
    margin-top: 80px;
  }
  .stats .top {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
  }
  .stats img {
    width: 90px;
    height: 70px;
    border-radius: 8px;
    object-fit: cover;
  }
  .stats .label {
    color: rgba(255,255,255,0.7);
    font-size: 0.8rem;
  }
  .stats .value {
    color: #facc15;
    font-size: 2rem;
    font-weight: 700;
  }

  /* Team cards */
  .teams {
    padding: 0 .5rem;
  }
  .team-card {
    background: white;
    color: #111;
    border-radius: 10px;
    padding: 1rem;
    margin-bottom: 1rem;
  }
  .team-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  .team-header .left {
    display: flex;
    align-items: center;
  }
  .team-icon {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-right: 0.6rem;
  }
  .team-icon.pink { background: #fce7f3; color: #ec4899; }
  .team-icon.purple { background: #ede9fe; color: #8b5cf6; }
  .team-icon.teal { background: #ccfbf1; color: #14b8a6; }

  .team-header .btn {
    background: #f97316;
    color: white;
    border-radius: 999px 0 0 999px;
    padding: 0.3rem 0.8rem;
    font-size: 0.8rem;
    cursor: pointer;
    position: absolute;
    right: 2.2%
  }

  .team-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-top: 1px solid #e5e7eb;
    margin-top: 0.6rem;
    padding-top: 0.6rem;
  }
  .team-footer p {
    margin: 0;
    font-size: 0.8rem;
    color: #6b7280;
  }
  .team-footer .num {
    font-size: 1.1rem;
    font-weight: 600;
    color: #111;
  }
  .team-footer .refund {
    color: #f97316;
    font-size: 0.8rem;
  }

  /* Invitation section */
  .invite {
    padding: 0 .5rem;
    margin-bottom: 1rem;
  }
  .invite-box {
    background: rgba(255,255,255,0.1);
    border-radius: 15px;
    padding: 1rem;
    backdrop-filter: blur(5px);
  }
  .invite-top, .invite-mid {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0.6rem;
  }
  .invite-code {
    color: #facc15;
    font-weight: 700;
    font-size: 1.2rem;
  }
  .invite button {
    background: none;
    border: none;
    color: #facc15;
    cursor: pointer;
    font-size: 1.2rem;
  }

  /* QR */
  .qr-box {
    background: white;
    border-radius: 10px;
    padding: .5rem;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .qr-box img {
    width: 150px;
    height: 150px;
    object-fit: cover;
  }

  /* Rules */
  .rules {
    padding: 0 .5rem 2rem;
  }
  .rules-box {
    background: white;
    border-radius: 15px;
    padding: 1rem;
    color: #111;
  }
  .rules-box i {
    color: #007411ff;
    font-size: 1.2rem;
    margin-right: 0.3rem;
  }
  .rules-title {
    display: flex;
    align-items: center;
    margin-bottom: 0.4rem;
  }
  .rules-box p {
    margin: 0.3rem 0;
    font-size: 0.8rem;
    color: #4b5563;
  }

  /* Copy message */
  .copy-msg {
    position: fixed;
    top: 80px;
    left: 50%;
    transform: translateX(-50%);
    background: #22c55e;
    color: white;
    padding: 0.5rem 1rem;
    border-radius: 8px;
    font-size: 0.8rem;
    display: none;
    z-index: 50;
  }

  @media(max-width:500px) {
    .value { font-size: 1.8rem; }
    .team-footer .num { font-size: 1rem; }
  }
  .header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    background: linear-gradient(to right, #0f2a12ff, #258a1eff);
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px;
    z-index: 50;
  }

  .header button {
    background: none;
    border: none;
    color: white;
    font-size: 20px;
    cursor: pointer;
  }

  .header h1 {
    font-size: 18px;
    font-weight: 500;
  }

  .header .topup {
    color: #72fa60ff;
    font-size: 14px;
    font-weight: 500;
    background: none;
    border: none;
    cursor: pointer;
  }
</style> 
 </head> 
 <body> 
  <div class="app" role="main" aria-label="app content"> 
   <div id="apdMessageOverlay" style="display:none;" role="alert" aria-live="assertive"> 
    <div class="apd-message-box" id="apdMessageBox"></div> 
   </div> 
   <style>
  #apdMessageOverlay {
    position: fixed;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1250;
    pointer-events: none;
  }
  .apd-message-box {
    pointer-events: auto;
    max-width: 320px;
    padding: 12px 14px;
    border-radius: 10px;
    font-size: 14px;
    text-align: center;
    box-shadow: 0 8px 24px rgba(0,0,0,0.5);
    border: 1px solid rgba(255,255,255,0.04);
    color: #fff;
  }
  .apd-message-box.error {
    background: linear-gradient(180deg, rgba(194, 33, 33, 0.98), rgba(35,6,6,0.96));
  }
  .apd-message-box.success {
    background: linear-gradient(180deg, rgba(28, 188, 60, 0.95), rgba(6,35,10,0.96));
  }
</style> 
   <script>
(function () {
  const overlay = document.getElementById('apdMessageOverlay');
  const box = document.getElementById('apdMessageBox');
  let timeoutId = null;

  function hideNow() {
    overlay.style.display = 'none';
    box.textContent = '';
    box.classList.remove('error', 'success');
    if (timeoutId) { clearTimeout(timeoutId); timeoutId = null; }
  }

  function showMessage(message, duration = 3000, type = 'error') {
    if (!message) return;
    box.textContent = message;
    box.classList.remove('error','success');
    box.classList.add(type);
    overlay.style.display = 'flex';
    if (timeoutId) clearTimeout(timeoutId);
    timeoutId = setTimeout(hideNow, duration);
  }

  // Expose globally
  if (!window.apdError) {
    window.apdError = {
      show: showMessage,
      hide: hideNow
    };
  }

  // Auto-show messages from Blade session/errors
  document.addEventListener('DOMContentLoaded', function() {
    let msg = null;
    let type = 'error';

    
    if (msg && window.apdError && typeof window.apdError.show === 'function') {
        window.apdError.show(msg, 3000, type);
    }
  });
})();
</script> 
   <div id="apdLoadingOverlay" aria-hidden="true" role="status" style="display:none;"> 
    <div class="apd-loading-wrap" id="apdLoadingBox" aria-hidden="true"> 
     <div class="apd-spinner" aria-hidden="true"></div> 
    </div> 
   </div> 
   <style>
  /* Inline styles specific to loader partial */
  #apdLoadingOverlay {
    position: fixed;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 999999999;
    background: rgba(0,0,0,0.45);
  }
  .apd-loading-wrap {
    width: 100px;
    height: 100px;
    min-width: 100px;
    min-height: 100px;
    border-radius: 12px;
    background: rgba(255,255,255,0.03);
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 8px 24px rgba(0,0,0,0.45), inset 0 1px 0 rgba(255,255,255,0.02);
    backdrop-filter: blur(6px);
  }
  .apd-spinner {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    border: 4px solid rgba(255,255,255,0.14);
    border-top-color: #ffffff;
    animation: apd-spin 900ms linear infinite;
    box-sizing: border-box;
  }
  @keyframes apd-spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
  }
</style> 
   <script>
  // Expose loader control functions to global scope
  (function () {
    const overlay = document.getElementById('apdLoadingOverlay');
    const box = document.getElementById('apdLoadingBox');

    if (!window.apdLoader) {
      window.apdLoader = {
        show: function () {
          overlay.style.display = 'flex';
          overlay.setAttribute('aria-hidden', 'false');
          // automatically hide after 3 seconds
          setTimeout(function() {
            overlay.style.display = 'none';
            overlay.setAttribute('aria-hidden', 'true');
          }, 500);
        },
        hide: function () {
          overlay.style.display = 'none';
          overlay.setAttribute('aria-hidden', 'true');
        },
        // toggle convenience
        toggle: function (force) {
          if (typeof force === 'boolean') {
            return force ? this.show() : this.hide();
          }
          overlay.style.display = overlay.style.display === 'none' ? 'flex' : 'none';
        }
      };
    }
  })();
</script> 
   <main id="app-main"> 
    <div class="header"> 
     <button>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</button> 
     <h1>Invite</h1> 
     <button class="topup" onclick="window.apdLoader.show(); window.location.href='/sub/team/1'">Members</button> 
    </div> 
    <!-- Stats --> 
    <div class="stats"> 
     <div class="top"> 
      <div> 
       <p class="label">Total people</p> 
       <p class="value">{{ auth()->user()->team_size }}</p> 
      </div> 
      <img src="/assets/images/rbg.png" alt="Teamwork" class="green-filter"> 
     </div> 
     <div> 
      <p class="label">Team Income</p> 
      <p class="value" style="font-size:1.3rem;">{{ price($totalCommission) }}</p> 
     </div> 
    </div> 
    <!-- Team Cards --> 
    <div class="teams"> 
     <div class="team-card"> 
      <div class="team-header"> 
       <div class="left"> 
        <img src="/assets/images/1.png" style="width: 25px; margin-top: -21px"> 
        <span class="name" style="margin-left: 20px; color: #009100ff; font-weight: 800;">Team B</span> 
       </div> 
       <div class="btn" onclick="window.apdLoader.show(); window.location.href='sub/team/1'">
        View records
       </div> 
      </div> 
      <div class="team-footer"> 
       <div> 
        <div class="num">
         {{$first_level_users->count()}}
        </div> 
        <p>Total people</p> 
       </div> 
       <div> 
        <div class="num" style="text-align: right">
         {{ price($commission1) }}
        </div> 
        <div class="refund">
         Bonus ({{setting('first_ref')}}.00%)
        </div> 
       </div> 
      </div> 
     </div> 
     <div class="team-card"> 
      <div class="team-header"> 
       <div class="left"> 
        <img src="/assets/images/2.png" style="width: 25px; margin-top: -21px"> 
        <span class="name" style="margin-left: 20px; color: #009100ff; font-weight: 800;">Team C</span> 
       </div> 
       <div class="btn" onclick="window.apdLoader.show(); window.location.href='sub/team/2'">
        View records
       </div> 
      </div> 
      <div class="team-footer"> 
       <div> 
        <div class="num">
         {{$second_level_users->count()}}
        </div> 
        <p>Total people</p> 
       </div> 
       <div> 
        <div class="num" style="text-align: right">
         {{ price($commission2) }}
        </div> 
        <div class="refund">
         Bonus ({{setting('second_ref')}}.00%)
        </div> 
       </div> 
      </div> 
     </div> 
     <div class="team-card"> 
      <div class="team-header"> 
       <div class="left"> 
        <img src="/assets/images/3.png" style="width: 25px; margin-top: -21px"> 
        <span class="name" style="margin-left: 20px; color: #009100ff; font-weight: 800;">Team D</span> 
       </div> 
       <div class="btn" onclick="window.apdLoader.show(); window.location.href='sub/team/3'">
        View records
       </div> 
      </div> 
      <div class="team-footer"> 
       <div> 
        <div class="num">
         {{$third_level_users->count()}}
        </div> 
        <p>Total people</p> 
       </div> 
       <div> 
        <div class="num" style="text-align: right">
         {{ price($commission3) }}
        </div> 
        <div class="refund">
         Bonus ({{setting('third_ref')}}.00%)
        </div> 
       </div> 
      </div> 
     </div> 
    </div> 
    <!-- Invitation --> 
    <div class="invite"> 
     <div class="invite-box"> 
      <div class="invite-top"> 
       <div>
        <span class="invite-code" id="code">{{auth()->user()->ref_id}}</span> 
        <span>Invitation code</span>
       </div> 
       <button onclick="copyText('code','Invitation code copied!')"><i class="ri-file-copy-line"></i></button> 
      </div> 
      <div class="invite-mid"> 
       <span id="link">{{url('register').'?inviteCode='.auth()->user()->ref_id}}</span> 
       <button onclick="copyText('link','Invitation link copied!')"><i class="ri-file-copy-line"></i></button> 
      </div> 
      <div class="qr-box"> 
       <img src="https://api.qrserver.com/v1/create-qr-code/?data=https%3A%2F%2Fnvdgtx.com%2Fregister%3Finvitation%3D7BIQLS&amp;size=192x192&amp;margin=8" alt="Invite QR" width="192" height="192" style="display:block;border-radius:8px;box-shadow:0 6px 18px rgba(2,6,23,0.06);"> 
      </div> 
     </div> 
    </div> 
    <!-- Rules --> 
    <div class="rules"> 
     <div class="rules-box"> 
      <div class="rules-title"> 
       <i class="ri-file-text-line"></i> 
       <span>Rules Team earnings</span> 
      </div> 
      <p>Team commissions are distributed as follows:</p>
      <br>
      <br> 
      <p>Level Subordinates can earn 10% daily commission based on their team members' daily income.</p>
      <br> 
      <p>C Level Subordinates can earn 5% daily commission based on their team members' daily income.</p>
      <br> 
      <p>D Level Subordinates can earn 2% daily commission based on their team members' daily income.</p>
      <br> 
      <img src="/assets/images/team.png" style="width: 100%" class="green-filter"> 
     </div> 
    </div> 

    <div style="margin-top: 80px;"></div> 
    <script>
  function copyText(id, message) {
    const text = document.getElementById(id).innerText;
    navigator.clipboard.writeText(text);
    window.apdError.show(message, 3000, 'success');
  }
</script> 
   </main> 
   <nav class="apd-bottom-nav" aria-label="bottom navigation"> 
    <div class="apd-nav-inner"> 
     <a class="apd-nav-item " href="/dashboard"> 
      <svg viewbox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"> 
       <path d="M3 11.5L12 5l9 6.5"></path> 
       <path d="M5.5 21V12.5h13V21"></path> 
       <path d="M9 21v-6h6v6"></path> 
      </svg> <span>Home</span> </a> 
     <a class="apd-nav-item " href="/vip"> 
      <svg viewbox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"> 
       <rect x="2.5" y="6.5" width="19" height="11" rx="2"></rect> 
       <circle cx="17" cy="11.5" r="1.6"></circle> 
       <path d="M7 11.5h4"></path> 
      </svg> <span>Income</span> </a> 
     <a class="apd-nav-item " href="/salary"> 
      <svg viewbox="0 0 26 26" width="28" height="28" xmlns="http://www.w3.org/2000/svg"> 
       <rect x="5" y="14" width="3.5" height="7" rx="0.6" fill="currentColor" opacity="0.95"></rect> 
       <rect x="11" y="10" width="3.5" height="11" rx="0.6" fill="currentColor" opacity="0.95"></rect> 
       <rect x="17" y="6" width="3.5" height="15" rx="0.6" fill="currentColor" opacity="0.95"></rect> 
       <polyline points="5,16 9,13 13,12 17,8 21,9" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"></polyline> 
       <circle cx="21" cy="9" r="1.2" fill="currentColor"></circle> 
      </svg> <span>Salary</span> </a> 
     <a class="apd-nav-item  active " href="/my-team"> 
      <svg viewbox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"> 
       <path d="M14 8.5a3 3 0 1 0-6 0"></path> 
       <path d="M3.5 20.5c1.6-3 4.2-4.5 7.5-4.5h1"></path> 
       <path d="M19 9v4M21 11h-4"></path> 
      </svg> <span>Invite</span> </a> 
     <a class="apd-nav-item " href="/my-profile"> 
      <svg viewbox="0 0 24 24" width="20" height="20" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"> 
       <circle cx="12" cy="8.2" r="3"></circle> 
       <path d="M4.5 20.5c1.8-3.6 5.2-5 7.5-5s5.7 1.4 7.5 5"></path> 
      </svg> <span>Mine</span> </a> 
    </div> 
   </nav> 
   <style>
  .apd-bottom-nav {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1050;
    padding: 8px 12px;
    max-width: 420px;
    margin: 0 auto;
    background: #004a11ff;
    border-top: 1px solid #30ff52ff;
    backdrop-filter: blur(6px);
  }

  .apd-nav-inner {
    max-width: 900px;
    margin: 0 auto;
    display: flex;
    gap: 6px;
    justify-content: space-between;
    align-items: center;
  }

  .apd-nav-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-decoration: none;
    color: rgba(255,255,255,0.7);
    font-size: 11px;
    width: 56px;
    padding: 6px 2px;
    transition: all 0.2s ease;
  }

  .apd-nav-item svg {
    stroke: currentColor;
    transition: all 0.2s ease;
  }

  .apd-nav-item.active {
    color: #30ff6bff; /* main page color */
  }

  .apd-nav-item.active svg {
    stroke: #30ff6bff;
  }

  .apd-nav-item:hover {
    color: #30ff6bff;
  }

  @media (min-width:720px) {
    .apd-nav-inner { justify-content: center; gap: 28px; }
  }
</style> 
  </div> 
  <script>
    window.OneOk = window.OneOk || {};
    window.OneOk.formatNaira = function(n){
      return '₦' + Number(n).toLocaleString('en-US');
    };

    document.querySelectorAll('a').forEach(a => {
      a.addEventListener('click', function (evt) {
        // ignore modified clicks (open in new tab/window)
        if (evt.ctrlKey || evt.metaKey || evt.shiftKey || evt.altKey || evt.button === 1) return;

        // ignore anchors that do nothing or internal fragment links
        const href = (a.getAttribute('href') || '').trim();
        if (!href || href.startsWith('#') || href === 'javascript:void(0)') return;

        if (window.apdLoader && typeof window.apdLoader.show === 'function') {
          window.apdLoader.show();
        }
      });
    });

  </script> 
 </body>
</html>