{"id":66,"date":"2026-04-02T20:34:33","date_gmt":"2026-04-02T20:34:33","guid":{"rendered":"https:\/\/cashchat.se\/dir\/?page_id=66"},"modified":"2026-06-10T13:23:14","modified_gmt":"2026-06-10T13:23:14","slug":"business","status":"publish","type":"page","link":"https:\/\/cashchat.se\/dir\/business\/","title":{"rendered":"Business"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, user-scalable=yes\">\n  <title>Adase Ads \u2013 Complete Dashboard | Digital Advertising &amp; SMM<\/title>\n  <script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/html2canvas\/1.4.1\/html2canvas.min.js\"><\/script>\n  <script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/jspdf\/2.5.1\/jspdf.umd.min.js\"><\/script>\n  <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:opsz,wght@14..32,300;400;500;600;700;800&amp;family=Playfair+Display:wght@400;700;800&amp;display=swap\" rel=\"stylesheet\">\n  <link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.5.0\/css\/all.min.css\">\n  <style>\n    * { margin: 0; padding: 0; box-sizing: border-box; }\n    :root {\n      --primary: #0a1f44;\n      --gold: #c49a2b;\n      --bg: #f4f6f9;\n      --card-bg: #ffffff;\n      --text: #1e293b;\n      --shadow: 0 10px 25px -5px rgba(0,0,0,0.05), 0 8px 10px -6px rgba(0,0,0,0.02);\n      --radius: 16px;\n      --purple: #8b5cf6;\n      --lemon: #84cc16;\n    }\n    body {\n      font-family: 'Inter', system-ui, -apple-system, sans-serif;\n      background: var(--bg);\n      color: var(--text);\n      display: flex;\n      min-height: 100vh;\n    }\n    .sidebar {\n      width: 280px;\n      background: var(--primary);\n      color: #fff;\n      padding: 24px 16px;\n      position: fixed;\n      top: 0; left: 0; bottom: 0;\n      z-index: 100;\n      transition: transform 0.3s ease;\n      display: flex;\n      flex-direction: column;\n      overflow-y: auto;\n    }\n    .sidebar .logo {\n      font-family: 'Playfair Display', serif;\n      font-size: 26px;\n      font-weight: 800;\n      text-align: center;\n      letter-spacing: 2px;\n      margin-bottom: 32px;\n    }\n    .sidebar .logo span { color: var(--gold); }\n    .sidebar nav a {\n      display: flex;\n      align-items: center;\n      gap: 12px;\n      color: rgba(255,255,255,0.8);\n      text-decoration: none;\n      padding: 12px 16px;\n      border-radius: 12px;\n      margin-bottom: 6px;\n      font-weight: 500;\n      transition: all 0.2s;\n    }\n    .sidebar nav a:hover,\n    .sidebar nav a.active { background: rgba(255,255,255,0.1); color: var(--gold); }\n    .sidebar nav a i { width: 24px; }\n    .main {\n      margin-left: 280px;\n      flex: 1;\n      padding: 28px 32px;\n      transition: margin-left 0.3s;\n    }\n    .mobile-header {\n      display: none;\n      align-items: center;\n      gap: 16px;\n      background: var(--primary);\n      color: #fff;\n      padding: 14px 20px;\n      position: sticky;\n      top: 0; z-index: 99;\n    }\n    .mobile-header .menu-toggle {\n      background: none; border: none; color: #fff; font-size: 24px; cursor: pointer;\n    }\n    .section {\n      background: var(--card-bg);\n      border-radius: var(--radius);\n      padding: 24px;\n      margin-bottom: 24px;\n      box-shadow: var(--shadow);\n      display: none;\n    }\n    .section.active { display: block; }\n    h2 {\n      font-family: 'Playfair Display', serif;\n      color: var(--primary);\n      font-size: 24px;\n      margin-bottom: 20px;\n      border-left: 4px solid var(--gold);\n      padding-left: 16px;\n    }\n    h3 { color: var(--primary); margin: 20px 0 12px; font-size: 18px; }\n    .wallet-balance { font-size: 36px; font-weight: 800; color: var(--gold); }\n    .btn {\n      display: inline-flex;\n      align-items: center;\n      gap: 8px;\n      background: var(--primary);\n      color: #fff;\n      border: none;\n      padding: 10px 24px;\n      border-radius: 40px;\n      font-weight: 600;\n      cursor: pointer;\n      transition: all 0.2s;\n      font-size: 14px;\n    }\n    .btn-gold { background: var(--gold); color: var(--primary); }\n    .btn-outline {\n      background: transparent;\n      border: 1.5px solid var(--primary);\n      color: var(--primary);\n    }\n    .btn-danger { background: #dc3545; }\n    .btn-success { background: #10b981; }\n    .btn-purple { background: var(--purple); color: white; box-shadow: 0 4px 10px rgba(139,92,246,0.3); }\n    .btn-purple:hover { background: #7c3aed; transform: translateY(-2px); }\n    .btn-lemon { background: var(--lemon); color: #1e293b; box-shadow: 0 4px 10px rgba(132,204,22,0.3); }\n    .btn-lemon:hover { background: #65a30d; color: white; transform: translateY(-2px); }\n    .btn-sm { padding: 6px 16px; font-size: 12px; }\n    .btn:hover { opacity: 0.9; transform: translateY(-1px); }\n    .form-group { margin-bottom: 18px; }\n    .form-group label {\n      display: block;\n      font-weight: 600;\n      margin-bottom: 6px;\n      color: var(--primary);\n    }\n    .form-control {\n      width: 100%;\n      padding: 12px 16px;\n      border: 1.5px solid #e2e8f0;\n      border-radius: 12px;\n      font-size: 14px;\n      transition: border 0.2s;\n    }\n    .form-control:focus { border-color: var(--gold); outline: none; }\n    .row { display: flex; gap: 20px; flex-wrap: wrap; }\n    .col { flex: 1; min-width: 200px; }\n    table {\n      width: 100%;\n      border-collapse: collapse;\n      margin-top: 12px;\n      overflow-x: auto;\n      display: block;\n    }\n    th, td {\n      padding: 12px 14px;\n      border-bottom: 1px solid #e2e8f0;\n      text-align: left;\n      font-size: 14px;\n    }\n    th { background: #f8fafc; color: var(--primary); font-weight: 700; }\n    .badge {\n      display: inline-block;\n      padding: 4px 12px;\n      border-radius: 20px;\n      font-size: 12px;\n      font-weight: 600;\n    }\n    .badge-success { background: #d1fae5; color: #065f46; }\n    .badge-warning { background: #fef3c7; color: #b45309; }\n    .badge-danger { background: #fee2e2; color: #991b1b; }\n    .notification {\n      background: #fef3c7;\n      border-left: 4px solid #f59e0b;\n      padding: 14px;\n      border-radius: 12px;\n      margin-bottom: 12px;\n      display: flex;\n      justify-content: space-between;\n      align-items: center;\n      flex-wrap: wrap;\n    }\n    .auth-container {\n      max-width: 520px;\n      margin: 40px auto;\n      background: var(--card-bg);\n      border-radius: 28px;\n      padding: 36px;\n      box-shadow: var(--shadow);\n    }\n    .terms-box {\n      display: flex;\n      align-items: center;\n      gap: 10px;\n      margin: 16px 0;\n      font-size: 14px;\n    }\n    .smm-grid {\n      display: grid;\n      grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));\n      gap: 16px;\n      margin-top: 20px;\n    }\n    .service-card {\n      background: #f8fafc;\n      border-radius: 20px;\n      padding: 16px;\n      text-align: center;\n      border: 1px solid #eef2ff;\n      transition: all 0.2s;\n      cursor: pointer;\n    }\n    .service-card:hover { transform: translateY(-3px); box-shadow: 0 10px 20px rgba(0,0,0,0.05); border-color: var(--gold); }\n    .service-icon { font-size: 2rem; margin-bottom: 8px; }\n    .service-title { font-weight: 700; margin-bottom: 6px; }\n    .service-price { color: var(--gold); font-weight: 800; margin: 8px 0; }\n    .payment-details {\n      background: #f0fdf4;\n      border-radius: 16px;\n      padding: 16px;\n      margin: 16px 0;\n      border-left: 4px solid #10b981;\n    }\n    .flex-between { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; }\n    .modal {\n      display: none;\n      position: fixed;\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      background: rgba(0, 0, 0, 0.6);\n      backdrop-filter: blur(4px);\n      z-index: 2000;\n      justify-content: center;\n      align-items: center;\n    }\n    .modal-content {\n      background: white;\n      max-width: 500px;\n      width: 90%;\n      border-radius: 28px;\n      padding: 28px;\n      max-height: 85vh;\n      overflow-y: auto;\n    }\n    .payment-option {\n      background: #f8fafc;\n      border-radius: 16px;\n      padding: 16px;\n      margin-bottom: 12px;\n      border: 1px solid #eef2ff;\n      display: flex;\n      align-items: center;\n      gap: 16px;\n      flex-wrap: wrap;\n    }\n    .payment-option i { font-size: 1.8rem; width: 50px; text-align: center; }\n    .payment-details { flex: 1; }\n    .payment-details strong { display: block; font-size: 1rem; }\n    .payment-details small { color: #6b7280; word-break: break-all; font-family: monospace; }\n    .copy-btn {\n      background: #e2e8f0;\n      border: none;\n      padding: 6px 14px;\n      border-radius: 40px;\n      cursor: pointer;\n      font-size: 0.7rem;\n      font-weight: 600;\n      transition: all 0.2s;\n    }\n    .copy-btn:hover { background: var(--gold); color: white; }\n    .close-modal { float: right; font-size: 28px; cursor: pointer; color: #666; transition: color 0.2s; }\n    .close-modal:hover { color: #ef4444; }\n    .progress-bar { background: #e2e8f0; border-radius: 20px; height: 8px; overflow: hidden; margin: 10px 0; }\n    .progress-fill { background: linear-gradient(90deg, #fbbf24, #f59e0b); height: 100%; border-radius: 20px; transition: width 0.3s ease; }\n    .external-buttons {\n      display: flex;\n      flex-wrap: wrap;\n      gap: 12px;\n      margin-top: 20px;\n      padding-top: 16px;\n      border-top: 1px solid #eef2ff;\n    }\n    @media (max-width: 768px) {\n      .sidebar { transform: translateX(-100%); width: 260px; }\n      .sidebar.open { transform: translateX(0); }\n      .main { margin-left: 0; padding: 20px 16px; }\n      .mobile-header { display: flex; }\n      .row { flex-direction: column; }\n      .payment-option { flex-direction: column; text-align: center; }\n      .payment-option i { margin: 0 auto; }\n    }\n  <\/style>\n<\/head>\n<body>\n\n  <!-- Sidebar -->\n  <aside class=\"sidebar\" id=\"sidebar\">\n    <div class=\"logo\">ADASE <span>ADS<\/span><\/div>\n    <nav>\n      <a href=\"#dashboard\" class=\"active\" data-section=\"dashboard\"><i class=\"fas fa-tachometer-alt\"><\/i> Dashboard<\/a>\n      <a href=\"#wallet\" data-section=\"wallet\"><i class=\"fas fa-wallet\"><\/i> Wallet<\/a>\n      <a href=\"#invest\" data-section=\"invest\"><i class=\"fas fa-file-invoice-dollar\"><\/i> Buy Notes<\/a>\n      <a href=\"#smm-services\" data-section=\"smm-services\"><i class=\"fas fa-chart-line\"><\/i> SMM Services<\/a>\n      <a href=\"#campaigns\" data-section=\"campaigns\"><i class=\"fas fa-chart-simple\"><\/i> My Campaigns<\/a>\n      <a href=\"#history-invest\" data-section=\"history-invest\"><i class=\"fas fa-chart-pie\"><\/i> Investments<\/a>\n      <a href=\"#history-tx\" data-section=\"history-tx\"><i class=\"fas fa-history\"><\/i> Transactions<\/a>\n      <a href=\"#\" id=\"logoutSidebar\"><i class=\"fas fa-sign-out-alt\"><\/i> Logout<\/a>\n      <a href=\"#\" id=\"adminSidebarLink\" style=\"margin-top:20px; border-top:1px solid rgba(255,255,255,0.2); padding-top:15px;\"><i class=\"fas fa-shield-alt\"><\/i> Admin Panel<\/a>\n    <\/nav>\n  <\/aside>\n\n  <div class=\"mobile-header\">\n    <button class=\"menu-toggle\" id=\"menuToggle\">\u2630<\/button>\n    <span style=\"font-weight:600;\">Adase Dashboard<\/span>\n  <\/div>\n\n  <main class=\"main\" id=\"mainContent\">\n    <!-- Auth Section -->\n    <div id=\"authSection\">\n      <div class=\"auth-container\">\n        <h2 style=\"text-align:center;\">Welcome to Adase Ads<\/h2>\n        <div style=\"display:flex; gap:12px; justify-content:center; margin-bottom:24px;\">\n          <button class=\"btn btn-gold\" onclick=\"showAuthTab('login')\">Login<\/button>\n          <button class=\"btn btn-outline\" onclick=\"showAuthTab('register')\">Register<\/button>\n        <\/div>\n        <div id=\"loginForm\">\n          <div class=\"form-group\"><label>Email<\/label><input type=\"email\" class=\"form-control\" id=\"loginEmail\" placeholder=\"you@example.com\"><\/div>\n          <div class=\"form-group\"><label>Password<\/label><input type=\"password\" class=\"form-control\" id=\"loginPassword\" placeholder=\"\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022\"><\/div>\n          <button class=\"btn btn-gold\" onclick=\"login()\" style=\"width:100%;\">Login<\/button>\n        <\/div>\n        <div id=\"registerForm\" style=\"display:none;\">\n          <div class=\"row\"><div class=\"col\"><div class=\"form-group\"><label>First Name *<\/label><input type=\"text\" class=\"form-control\" id=\"regFirstName\"><\/div><\/div><div class=\"col\"><div class=\"form-group\"><label>Last Name *<\/label><input type=\"text\" class=\"form-control\" id=\"regLastName\"><\/div><\/div><\/div>\n          <div class=\"form-group\"><label>Email *<\/label><input type=\"email\" class=\"form-control\" id=\"regEmail\"><\/div>\n          <div class=\"row\"><div class=\"col\"><div class=\"form-group\"><label>Country *<\/label><input type=\"text\" class=\"form-control\" id=\"regCountry\"><\/div><\/div><div class=\"col\"><div class=\"form-group\"><label>Mobile Number *<\/label><input type=\"text\" class=\"form-control\" id=\"regMobile\"><\/div><\/div><\/div>\n          <div class=\"form-group\"><label>NIN \/ Passport *<\/label><input type=\"text\" class=\"form-control\" id=\"regNIN\"><\/div>\n          <div class=\"row\"><div class=\"col\"><div class=\"form-group\"><label>Password *<\/label><input type=\"password\" class=\"form-control\" id=\"regPassword\"><\/div><\/div><div class=\"col\"><div class=\"form-group\"><label>Confirm *<\/label><input type=\"password\" class=\"form-control\" id=\"regConfirmPassword\"><\/div><\/div><\/div>\n          <div class=\"terms-box\"><input type=\"checkbox\" id=\"acceptTerms\"> <label>I accept Terms &amp; Conditions<\/label><\/div>\n          <button class=\"btn btn-gold\" onclick=\"register()\" style=\"width:100%;\">Register<\/button>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <!-- User Dashboard Sections -->\n    <div id=\"dashboardSections\" style=\"display:none;\">\n      <section class=\"section active\" id=\"section-dashboard\">\n        <h2>Dashboard<\/h2>\n        <div class=\"row\">\n          <div class=\"col\"><p style=\"color:#666;\">Wallet Balance<\/p><div class=\"wallet-balance\" id=\"balanceDisplay\">0 UGX<\/div><\/div>\n          <div class=\"col\" style=\"text-align:right;\"><span id=\"userNameDisplay\" style=\"font-weight:600;\"><\/span><\/div>\n        <\/div>\n        <div style=\"margin-top:20px; display:flex; gap:12px; flex-wrap:wrap;\">\n          <button class=\"btn btn-gold\" onclick=\"switchSection('wallet')\"><i class=\"fas fa-plus-circle\"><\/i> Add Money<\/button>\n          <button class=\"btn\" onclick=\"switchSection('invest')\"><i class=\"fas fa-file-invoice\"><\/i> Buy Notes<\/button>\n          <button class=\"btn btn-outline\" onclick=\"switchSection('smm-services')\"><i class=\"fab fa-facebook\"><\/i> SMM Services<\/button>\n        <\/div>\n        <div class=\"external-buttons\">\n          <a href=\"https:\/\/cashchatbank.com\" target=\"_blank\" class=\"btn btn-purple\"><i class=\"fas fa-id-card\"><\/i> Get Wallet<\/a>\n          <a href=\"https:\/\/ai.cashchatapp.com\" target=\"_blank\" class=\"btn btn-lemon\"><i class=\"fas fa-download\"><\/i> Install CashChat App<\/a>\n        <\/div>\n        <h3 style=\"margin-top:28px;\"><i class=\"fas fa-bell\"><\/i> Notifications<\/h3>\n        <div id=\"notificationsPreview\"><\/div>\n      <\/section>\n\n      <section class=\"section\" id=\"section-wallet\">\n        <h2>Wallet Management<\/h2>\n        <div class=\"row\"><div class=\"col\"><h3>Add Money<\/h3><div class=\"form-group\"><label>Amount (UGX)<\/label><input type=\"number\" class=\"form-control\" id=\"topupAmount\" placeholder=\"e.g., 500000\"><\/div><button class=\"btn btn-gold\" onclick=\"submitTopup()\">Request Top-up<\/button><\/div><div class=\"col\"><h3>Withdraw<\/h3><div class=\"form-group\"><label>Amount (UGX)<\/label><input type=\"number\" class=\"form-control\" id=\"withdrawAmount\" placeholder=\"e.g., 200000\"><\/div><button class=\"btn btn-outline\" onclick=\"submitWithdraw()\">Request Withdrawal<\/button><\/div><\/div>\n        <div style=\"margin-top:30px;\"><h3>Transfer to User<\/h3><div class=\"row\"><div class=\"col\"><input type=\"email\" class=\"form-control\" id=\"transferEmail\" placeholder=\"Recipient Email\"><\/div><div class=\"col\"><input type=\"number\" class=\"form-control\" id=\"transferAmount\" placeholder=\"Amount UGX\"><\/div><\/div><button class=\"btn\" onclick=\"submitTransfer()\" style=\"margin-top:12px;\">Request Transfer<\/button><\/div>\n      <\/section>\n\n      <section class=\"section\" id=\"section-invest\">\n        <h2>Buy Convertible Notes<\/h2>\n        <p style=\"margin-bottom:16px;\">Minimum 100,000 UGX. 17% p.a. interest, 3-year maturity.<\/p>\n        <div class=\"row\"><div class=\"col\"><input type=\"number\" class=\"form-control\" id=\"investAmount\" placeholder=\"Amount (UGX)\" min=\"100000\"><\/div><div class=\"col\"><button class=\"btn btn-gold\" onclick=\"buyAndDownload()\">Buy &amp; Download Certificate<\/button><\/div><\/div>\n        <p id=\"investMsg\" style=\"margin-top:12px;\"><\/p>\n      <\/section>\n\n      <section class=\"section\" id=\"section-smm-services\">\n        <h2><i class=\"fab fa-facebook\"><\/i> Social Media Marketing<\/h2>\n        <div id=\"smmServicesPanel\"><\/div>\n      <\/section>\n\n      <section class=\"section\" id=\"section-campaigns\">\n        <h2><i class=\"fas fa-chart-simple\"><\/i> My Campaign Stats<\/h2>\n        <div id=\"campaignStatsPanel\"><\/div>\n      <\/section>\n\n      <section class=\"section\" id=\"section-history-invest\">\n        <h2>Investment History<\/h2>\n        <div style=\"overflow-x:auto;\"><table id=\"investHistoryTable\"><thead><tr><th>Certificate No<\/th><th>Principal<\/th><th>Date<\/th><th>Download<\/th><\/tr><\/thead><tbody id=\"investHistoryBody\"><\/tbody><\/table><\/div>\n      <\/section>\n\n      <section class=\"section\" id=\"section-history-tx\">\n        <h2>Transaction History<\/h2>\n        <div style=\"overflow-x:auto;\"><tr><thead><tr><th>Type<\/th><th>Amount<\/th><th>Status<\/th><th>Date<\/th><th>Note<\/th><\/tr><\/thead><tbody id=\"txHistoryBody\"><\/tbody><\/table><\/div>\n      <\/section>\n    <\/div>\n\n    <!-- Admin Panel -->\n    <div id=\"adminPanel\" style=\"display:none;\">\n      <div style=\"margin-bottom:20px; display:flex; gap:10px; flex-wrap:wrap;\">\n        <button class=\"btn\" onclick=\"switchToUserView()\"><i class=\"fas fa-arrow-left\"><\/i> User Dashboard<\/button>\n        <button class=\"btn\" onclick=\"switchSection('admin-requests')\"><i class=\"fas fa-exchange-alt\"><\/i> Requests<\/button>\n        <button class=\"btn\" onclick=\"switchSection('admin-campaigns')\"><i class=\"fas fa-chart-line\"><\/i> Campaign Stats<\/button>\n        <button class=\"btn\" onclick=\"switchSection('admin-users')\"><i class=\"fas fa-users\"><\/i> Users<\/button>\n        <button class=\"btn btn-outline\" onclick=\"switchSection('admin-notify')\"><i class=\"fas fa-bell\"><\/i> Notify<\/button>\n        <button class=\"btn btn-danger\" onclick=\"adminLogout()\">Logout Admin<\/button>\n      <\/div>\n      <section class=\"section active\" id=\"section-admin-requests\"><h2>Pending Requests &#038; Orders<\/h2><button class=\"btn\" onclick=\"loadAdminRequests()\">Refresh<\/button><div id=\"adminRequestsContainer\"><\/div><\/section>\n      <section class=\"section\" id=\"section-admin-campaigns\"><h2>Campaign Statistics (Editable Start\/End Stats)<\/h2><div id=\"adminCampaignsContainer\"><\/div><\/section>\n      <section class=\"section\" id=\"section-admin-users\"><h2>All Registered Users<\/h2><button class=\"btn btn-gold\" onclick=\"exportUsersToCSV()\">Download CSV<\/button><div style=\"overflow-x:auto; margin-top:20px;\"><table><thead><tr><th>ID<\/th><th>Full Name<\/th><th>Email<\/th><th>Country<\/th><th>Mobile<\/th><th>Wallet<\/th><\/tr><\/thead><tbody id=\"adminUsersContainer\"><\/tbody><\/table><\/div><\/section>\n      <section class=\"section\" id=\"section-admin-notify\"><h2>Send Notification<\/h2><input type=\"text\" class=\"form-control\" id=\"notifyUserId\" placeholder=\"User ID\"><textarea class=\"form-control\" id=\"notifyMsg\" rows=\"2\" placeholder=\"Message\"><\/textarea><button class=\"btn\" onclick=\"adminSendNotification()\" style=\"margin-top:12px;\">Send<\/button><\/section>\n    <\/div>\n\n    <div id=\"adminLoginSection\" style=\"display:none;\">\n      <div class=\"auth-container\"><h2>Admin Login<\/h2><input type=\"password\" class=\"form-control\" id=\"adminPassword\" placeholder=\"Admin Password\"><button class=\"btn btn-gold\" onclick=\"adminLogin()\" style=\"width:100%;margin-top:16px;\">Login<\/button><\/div>\n    <\/div>\n  <\/main>\n\n  <script>\n    \/\/ ==================== CONSTANTS & DATA ====================\n    const ADMIN_PASSWORD = \"Equity.Get.shares2026##\";\n    const USD_TO_UGX = 3800;\n    \n    \/\/ Campaigns data - each campaign has start and target stats\n    let adCampaigns = [];\n    \n    const SMM_PACKAGES = {\n      facebook: [\n        { name: \"Facebook Followers\", desc: \"1000 Followers\", priceUSD: 10, priceUGX: 10 * USD_TO_UGX, icon: \"fab fa-facebook\" },\n        { name: \"Facebook Views\", desc: \"2000 Views\", priceUSD: 5, priceUGX: 5 * USD_TO_UGX, icon: \"fab fa-facebook\" },\n        { name: \"Facebook Likes\", desc: \"1000 Likes\", priceUSD: 5, priceUGX: 5 * USD_TO_UGX, icon: \"fab fa-facebook\" },\n        { name: \"Facebook Shares\", desc: \"500 Shares\", priceUSD: 5, priceUGX: 5 * USD_TO_UGX, icon: \"fab fa-facebook\" }\n      ],\n      instagram: [\n        { name: \"Instagram Views\", desc: \"1000 Views\", priceUSD: 10, priceUGX: 10 * USD_TO_UGX, icon: \"fab fa-instagram\" },\n        { name: \"Instagram Views (Bulk)\", desc: \"5000 Views\", priceUSD: 5, priceUGX: 5 * USD_TO_UGX, icon: \"fab fa-instagram\" },\n        { name: \"Instagram Likes\", desc: \"5000 Likes\", priceUSD: 5, priceUGX: 5 * USD_TO_UGX, icon: \"fab fa-instagram\" },\n        { name: \"Instagram Reposts\", desc: \"1000 Reposts\", priceUSD: 5, priceUGX: 5 * USD_TO_UGX, icon: \"fab fa-instagram\" }\n      ],\n      youtube: [\n        { name: \"YouTube Subscribers\", desc: \"100 Subscribers\", priceUSD: 10, priceUGX: 10 * USD_TO_UGX, icon: \"fab fa-youtube\" },\n        { name: \"YouTube Live Views\", desc: \"500 Live Views (30 min)\", priceUSD: 10, priceUGX: 10 * USD_TO_UGX, icon: \"fab fa-youtube\" },\n        { name: \"YouTube Video Views\", desc: \"10,000 Views\", priceUSD: 50, priceUGX: 50 * USD_TO_UGX, icon: \"fab fa-youtube\" },\n        { name: \"YouTube Watch Hours\", desc: \"500 Genuine Hours\", priceUSD: 100, priceUGX: 100 * USD_TO_UGX, icon: \"fab fa-youtube\" },\n        { name: \"YouTube Likes\", desc: \"100 Likes\", priceUSD: 10, priceUGX: 10 * USD_TO_UGX, icon: \"fab fa-youtube\" }\n      ],\n      twitter: [\n        { name: \"Twitter Followers\", desc: \"1000 Followers\", priceUSD: 15, priceUGX: 15 * USD_TO_UGX, icon: \"fab fa-twitter\" },\n        { name: \"Twitter Likes\", desc: \"1000 Likes\", priceUSD: 8, priceUGX: 8 * USD_TO_UGX, icon: \"fab fa-twitter\" }\n      ],\n      telegram: [\n        { name: \"Telegram Members\", desc: \"1000 Members\", priceUSD: 20, priceUGX: 20 * USD_TO_UGX, icon: \"fab fa-telegram\" }\n      ],\n      tiktok: [\n        { name: \"TikTok Followers\", desc: \"1000 Followers\", priceUSD: 12, priceUGX: 12 * USD_TO_UGX, icon: \"fab fa-tiktok\" },\n        { name: \"TikTok Views\", desc: \"10,000 Views\", priceUSD: 8, priceUGX: 8 * USD_TO_UGX, icon: \"fab fa-tiktok\" }\n      ]\n    };\n    \n    let currentUser = null, adminToken = false;\n    let smmOrders = [], fundingRequests = [];\n\n    const PAYMENT_OPTIONS = [\n      { name: \"PayPal\", details: \"https:\/\/paypal.me\/boldcashers\", icon: \"fab fa-paypal\", color: \"#0070ba\", isLink: true },\n      { name: \"M-Pesa\", details: \"254143408847\", icon: \"fas fa-phone-alt\", color: \"#4caf50\", isLink: false },\n      { name: \"MTN Mobile Money\", details: \"256775036603\", icon: \"fas fa-phone-alt\", color: \"#ff6600\", isLink: false }\n    ];\n\n    function loadData() {\n      let users = JSON.parse(localStorage.getItem('adase_users') || '[]');\n      let transactions = JSON.parse(localStorage.getItem('adase_transactions') || '[]');\n      let investments = JSON.parse(localStorage.getItem('adase_investments') || '[]');\n      let notifications = JSON.parse(localStorage.getItem('adase_notifications') || '[]');\n      smmOrders = JSON.parse(localStorage.getItem('adase_smm_orders') || '[]');\n      fundingRequests = JSON.parse(localStorage.getItem('adase_funding_requests') || '[]');\n      adCampaigns = JSON.parse(localStorage.getItem('adase_campaigns') || '[]');\n      \n      if (users.length === 0) {\n        users.push({ id: 'admin', firstName: 'Admin', lastName: 'Equity', email: 'equity@cashchat.se', password: ADMIN_PASSWORD, role: 'admin', walletBalance: 5000000, country: 'Uganda', mobile: '0000000000', nin: 'ADMIN123', createdAt: new Date().toISOString() });\n        users.push({ id: 'user1', firstName: 'John', lastName: 'Investor', email: 'john@example.com', password: 'password123', role: 'user', walletBalance: 500000, country: 'Uganda', mobile: '+256700000001', nin: 'NIN123', createdAt: new Date().toISOString() });\n        saveData(users, transactions, investments, notifications);\n      } else {\n        const adminIdx = users.findIndex(u => u.role === 'admin');\n        if (adminIdx !== -1) users[adminIdx].password = ADMIN_PASSWORD;\n        else users.push({ id: 'admin', firstName: 'Admin', lastName: 'System', email: 'equity@cashchat.se', password: ADMIN_PASSWORD, role: 'admin', walletBalance: 5000000, country: '', mobile: '', nin: '', createdAt: new Date().toISOString() });\n        saveData(users, transactions, investments, notifications);\n      }\n      \n      \/\/ Create demo campaign if none exists\n      if (adCampaigns.length === 0 && users.length > 1) {\n        const demoUser = users.find(u => u.role !== 'admin');\n        if (demoUser) {\n          adCampaigns.push({\n            id: 'camp_' + Date.now(),\n            userId: demoUser.id,\n            userName: `${demoUser.firstName} ${demoUser.lastName}`,\n            serviceName: \"Facebook Followers Campaign\",\n            targetLink: \"https:\/\/facebook.com\/demo\",\n            targetViews: 5000,\n            targetLikes: 500,\n            startViews: 0,\n            startLikes: 0,\n            currentViews: 1250,\n            currentLikes: 230,\n            status: \"active\",\n            createdAt: new Date().toISOString()\n          });\n        }\n      }\n      saveData(users, transactions, investments, notifications);\n      return { users, transactions, investments, notifications };\n    }\n    \n    function saveData(users, transactions, investments, notifications) {\n      localStorage.setItem('adase_users', JSON.stringify(users));\n      localStorage.setItem('adase_transactions', JSON.stringify(transactions));\n      localStorage.setItem('adase_investments', JSON.stringify(investments));\n      localStorage.setItem('adase_notifications', JSON.stringify(notifications));\n      localStorage.setItem('adase_smm_orders', JSON.stringify(smmOrders));\n      localStorage.setItem('adase_funding_requests', JSON.stringify(fundingRequests));\n      localStorage.setItem('adase_campaigns', JSON.stringify(adCampaigns));\n    }\n    \n    function getCurrentUserFromStore() { return currentUser ? loadData().users.find(u => u.id === currentUser.id) : null; }\n    function updateCurrentUser(updated) { const d = loadData(); const idx = d.users.findIndex(u => u.id === updated.id); if (idx !== -1) d.users[idx] = updated; saveData(d.users, d.transactions, d.investments, d.notifications); currentUser = updated; }\n\n    function showAuthTab(tab) { document.getElementById('loginForm').style.display = tab === 'login' ? 'block' : 'none'; document.getElementById('registerForm').style.display = tab === 'register' ? 'block' : 'none'; }\n    function switchSection(name) { document.querySelectorAll('.section').forEach(s => s.classList.remove('active')); const target = document.getElementById(`section-${name}`); if (target) target.classList.add('active'); document.getElementById('sidebar')?.classList.remove('open'); if (name === 'history-invest') fetchInvestments(); if (name === 'history-tx') fetchTransactions(); if (name === 'smm-services') renderSmmServices(); if (name === 'campaigns') renderCampaignStats(); }\n\n    function login() {\n      const email = document.getElementById('loginEmail').value.trim(), pwd = document.getElementById('loginPassword').value;\n      const { users } = loadData();\n      const user = users.find(u => u.email === email && u.password === pwd);\n      if (!user) return alert('Invalid credentials');\n      if (user.role === 'admin') return alert('Use Admin Panel from sidebar');\n      currentUser = user;\n      document.getElementById('authSection').style.display = 'none';\n      document.getElementById('dashboardSections').style.display = 'block';\n      document.getElementById('adminPanel').style.display = 'none';\n      document.getElementById('adminLoginSection').style.display = 'none';\n      document.getElementById('userNameDisplay').innerText = `${user.firstName} ${user.lastName}`;\n      updateBalanceUI(user.walletBalance);\n      fetchNotifications(); fetchInvestments(); fetchTransactions(); renderSmmServices(); renderCampaignStats();\n      switchSection('dashboard');\n    }\n    \n    function register() {\n      const fn = document.getElementById('regFirstName').value.trim(), ln = document.getElementById('regLastName').value.trim(), email = document.getElementById('regEmail').value.trim(), country = document.getElementById('regCountry').value.trim(), mobile = document.getElementById('regMobile').value.trim(), nin = document.getElementById('regNIN').value.trim(), pwd = document.getElementById('regPassword').value, conf = document.getElementById('regConfirmPassword').value;\n      if (!fn || !ln || !email || !country || !mobile || !nin || !pwd) return alert('All fields required');\n      if (pwd !== conf) return alert('Passwords mismatch');\n      if (!document.getElementById('acceptTerms').checked) return alert('Accept Terms');\n      const { users, transactions, investments, notifications } = loadData();\n      if (users.find(u => u.email === email)) return alert('Email exists');\n      const newUser = { id: 'u' + Date.now(), firstName: fn, lastName: ln, email, country, mobile, nin, password: pwd, role: 'user', walletBalance: 0, createdAt: new Date().toISOString() };\n      users.push(newUser);\n      saveData(users, transactions, investments, notifications);\n      alert('Registered! Please login.');\n      showAuthTab('login');\n    }\n    \n    function userLogout() { currentUser = null; document.getElementById('authSection').style.display = 'block'; document.getElementById('dashboardSections').style.display = 'none'; document.getElementById('adminPanel').style.display = 'none'; document.getElementById('adminLoginSection').style.display = 'none'; }\n    function updateBalanceUI(balance) { document.getElementById('balanceDisplay').innerText = balance.toLocaleString() + ' UGX'; }\n\n    function submitTopup() { const amount = parseFloat(document.getElementById('topupAmount').value); if (!amount || amount <= 0) return alert('Valid amount'); const user = getCurrentUserFromStore(); if (!user) return; const { users, transactions, investments, notifications } = loadData(); transactions.push({ id: 'tx' + Date.now(), userId: user.id, type: 'topup', amount, status: 'pending', createdAt: new Date().toISOString(), description: `Top-up UGX ${amount}` }); saveData(users, transactions, investments, notifications); alert('Request sent to admin.'); fetchTransactions(); }\n    function submitWithdraw() { const amount = parseFloat(document.getElementById('withdrawAmount').value); const user = getCurrentUserFromStore(); if (!user || user.walletBalance < amount) return alert('Insufficient balance'); const { users, transactions, investments, notifications } = loadData(); transactions.push({ id: 'tx' + Date.now(), userId: user.id, type: 'withdraw', amount, status: 'pending', createdAt: new Date().toISOString(), description: `Withdraw UGX ${amount}` }); saveData(users, transactions, investments, notifications); alert('Request sent.'); fetchTransactions(); }\n    function submitTransfer() { const toEmail = document.getElementById('transferEmail').value.trim(), amount = parseFloat(document.getElementById('transferAmount').value); const user = getCurrentUserFromStore(); if (!user || user.walletBalance < amount) return alert('Insufficient balance'); const { users, transactions, investments, notifications } = loadData(); const recipient = users.find(u => u.email === toEmail); if (!recipient) return alert('Recipient not found'); transactions.push({ id: 'tx' + Date.now(), userId: user.id, type: 'transfer', amount, toUserId: recipient.id, toUserEmail: recipient.email, status: 'pending', createdAt: new Date().toISOString(), description: `Transfer to ${recipient.email}` }); saveData(users, transactions, investments, notifications); alert('Transfer request sent.'); fetchTransactions(); }\n\n    async function buyAndDownload() { const principal = parseFloat(document.getElementById('investAmount').value); if (principal < 100000) return alert('Minimum 100,000 UGX'); const user = getCurrentUserFromStore(); if (!user || user.walletBalance < principal) return alert('Insufficient balance'); user.walletBalance -= principal; const certNumber = 'ADASE-' + Date.now(); const { users, transactions, investments, notifications } = loadData(); investments.push({ id: 'inv' + Date.now(), userId: user.id, certificateNumber: certNumber, principal, issuedAt: new Date().toISOString(), interestRate: 17 }); transactions.push({ id: 'tx' + Date.now(), userId: user.id, type: 'investment', amount: principal, status: 'approved', createdAt: new Date().toISOString(), description: `Note ${certNumber}` }); const idx = users.findIndex(u => u.id === user.id); users[idx] = user; saveData(users, transactions, investments, notifications); currentUser = user; updateBalanceUI(user.walletBalance); alert(`Investment successful! Certificate: ${certNumber}`); fetchInvestments(); fetchTransactions(); generateCertificate(certNumber, principal, `${user.firstName} ${user.lastName}`); document.getElementById('investAmount').value = ''; }\n    async function generateCertificate(certNumber, amount, name) { const wrapper = document.createElement('div'); wrapper.style.position = 'absolute'; wrapper.style.left = '-9999px'; wrapper.innerHTML = `<div style=\"width:700px;padding:30px;background:#fff;border:4px double #0a1f44;\"><h2 style=\"color:#0a1f44;\">ADASE ADS LTD<\/h2><p>Certificate: ${certNumber}<br>Investor: ${name}<br>Amount: UGX ${amount.toLocaleString()}<br>Date: ${new Date().toISOString().split('T')[0]}<\/p><\/div>`; document.body.appendChild(wrapper); const canvas = await html2canvas(wrapper.firstChild); document.body.removeChild(wrapper); const link = document.createElement('a'); link.download = `Adase_${certNumber}.png`; link.href = canvas.toDataURL(); link.click(); }\n    function fetchInvestments() { const user = getCurrentUserFromStore(); if (!user) return; const { investments } = loadData(); const my = investments.filter(i => i.userId === user.id); const tbody = document.getElementById('investHistoryBody'); tbody.innerHTML = my.length ? my.map(i => `<tr><td>${i.certificateNumber}<\/td><td>${i.principal.toLocaleString()} UGX<\/td><td>${new Date(i.issuedAt).toLocaleDateString()}<\/td><td><button class=\"btn-sm btn\" onclick=\"generateCertificate('${i.certificateNumber}',${i.principal},'${user.firstName} ${user.lastName}')\">Download<\/button><\/td><\/tr>`).join('') : '<tr><td colspan=\"4\">No investments<\/td><\/tr>'; }\n    function fetchTransactions() { const user = getCurrentUserFromStore(); if (!user) return; const { transactions } = loadData(); const my = transactions.filter(t => t.userId === user.id).sort((a,b)=>new Date(b.createdAt)-new Date(a.createdAt)); document.getElementById('txHistoryBody').innerHTML = my.length ? my.map(t => `<tr><td>${t.type}<\/td><td>${t.amount.toLocaleString()} UGX<\/td><td><span class=\"badge ${t.status==='approved'?'badge-success':t.status==='pending'?'badge-warning':'badge-danger'}\">${t.status}<\/span><\/td><td>${new Date(t.createdAt).toLocaleString()}<\/td><td>${t.description||''}<\/td><\/tr>`).join('') : '<tr><td colspan=\"5\">No transactions<\/td><\/tr>'; }\n    function fetchNotifications() { const user = getCurrentUserFromStore(); if (!user) return; const { notifications } = loadData(); const userNotifs = notifications.filter(n => n.userId === user.id && !n.dismissed); document.getElementById('notificationsPreview').innerHTML = userNotifs.length ? userNotifs.map(n => `<div class=\"notification\"><span>${n.message}<\/span><button class=\"btn-sm btn\" onclick=\"dismissNotif('${n.id}')\">Dismiss<\/button><\/div>`).join('') : '<p>No new notifications<\/p>'; }\n    function dismissNotif(id) { const d = loadData(); const n = d.notifications.find(n => n.id === id); if (n) n.dismissed = true; saveData(d.users, d.transactions, d.investments, d.notifications); fetchNotifications(); }\n\n    \/\/ Campaign Stats for Advertiser\n    function renderCampaignStats() {\n      const user = getCurrentUserFromStore();\n      if (!user) return;\n      const myCampaigns = adCampaigns.filter(c => c.userId === user.id);\n      const container = document.getElementById('campaignStatsPanel');\n      if (!container) return;\n      if (myCampaigns.length === 0) {\n        container.innerHTML = '<p>No campaigns yet. Purchase SMM services to create campaigns!<\/p>';\n        return;\n      }\n      container.innerHTML = myCampaigns.map(camp => {\n        const viewsProgress = ((camp.currentViews - camp.startViews) \/ (camp.targetViews - camp.startViews)) * 100;\n        const likesProgress = ((camp.currentLikes - camp.startLikes) \/ (camp.targetLikes - camp.startLikes)) * 100;\n        return `\n          <div class=\"card\" style=\"margin-bottom:20px;\">\n            <div class=\"flex-between\"><h3>${camp.serviceName}<\/h3><span class=\"badge ${camp.status === 'active' ? 'badge-success' : 'badge-warning'}\">${camp.status}<\/span><\/div>\n            <p><strong>Target Link:<\/strong> <a href=\"${camp.targetLink}\" target=\"_blank\">${camp.targetLink.substring(0, 50)}...<\/a><\/p>\n            <div class=\"row\">\n              <div class=\"col\"><strong>\ud83d\udcca Views<\/strong><br>Start: ${camp.startViews.toLocaleString()}<br>Current: ${camp.currentViews.toLocaleString()}<br>Target: ${camp.targetViews.toLocaleString()}<\/div>\n              <div class=\"col\"><strong>\u2764\ufe0f Likes<\/strong><br>Start: ${camp.startLikes.toLocaleString()}<br>Current: ${camp.currentLikes.toLocaleString()}<br>Target: ${camp.targetLikes.toLocaleString()}<\/div>\n            <\/div>\n            <div class=\"progress-bar\"><div class=\"progress-fill\" style=\"width: ${Math.min(100, Math.max(0, viewsProgress))}%\"><\/div><\/div>\n            <div class=\"progress-bar\"><div class=\"progress-fill\" style=\"width: ${Math.min(100, Math.max(0, likesProgress))}%\"><\/div><\/div>\n            <p class=\"flex-between\"><span>Views Progress: ${Math.round(viewsProgress)}%<\/span><span>Likes Progress: ${Math.round(likesProgress)}%<\/span><\/p>\n          <\/div>\n        `;\n      }).join('');\n    }\n\n    \/\/ SMM Services with Campaign Creation\n    function showLinkInputModal(service, onConfirm) {\n      const modalDiv = document.createElement('div');\n      modalDiv.className = 'modal';\n      modalDiv.style.display = 'flex';\n      modalDiv.innerHTML = `\n        <div class=\"modal-content\">\n          <span class=\"close-modal\">&times;<\/span>\n          <div style=\"text-align: center; margin-bottom: 20px;\">\n            <i class=\"fas fa-link\" style=\"font-size: 2.5rem; color: var(--gold);\"><\/i>\n            <h3>Provide Your Channel\/Video Link<\/h3>\n            <p>${service.name}<\/p>\n            <p style=\"font-weight: 700; margin-top: 8px;\">$${service.priceUSD} USD (${service.priceUGX.toLocaleString()} UGX)<\/p>\n          <\/div>\n          <div class=\"form-group\"><label>Target Link *<\/label><input type=\"url\" id=\"targetLink\" class=\"form-control\" placeholder=\"https:\/\/facebook.com\/... or https:\/\/instagram.com\/...\"><\/div>\n          <div class=\"flex-between\" style=\"margin-top: 20px;\">\n            <button id=\"confirmPurchaseBtn\" class=\"btn btn-success\">Confirm Purchase<\/button>\n            <button id=\"cancelPurchaseBtn\" class=\"btn btn-outline\">Cancel<\/button>\n          <\/div>\n        <\/div>\n      `;\n      document.body.appendChild(modalDiv);\n      modalDiv.querySelector('.close-modal').onclick = () => modalDiv.remove();\n      modalDiv.querySelector('#cancelPurchaseBtn').onclick = () => modalDiv.remove();\n      modalDiv.querySelector('#confirmPurchaseBtn').onclick = () => {\n        const link = modalDiv.querySelector('#targetLink').value.trim();\n        if (!link) { alert('Please enter a valid link'); return; }\n        modalDiv.remove();\n        onConfirm(link);\n      };\n    }\n\n    function renderSmmServices() {\n      const container = document.getElementById('smmServicesPanel');\n      if (!container) return;\n      let html = '';\n      for (const [platform, services] of Object.entries(SMM_PACKAGES)) {\n        const platformIcon = services[0]?.icon || 'fab fa-facebook';\n        html += `<div class=\"card\" style=\"margin-bottom:24px;\"><h3><i class=\"${platformIcon}\"><\/i> ${platform.charAt(0).toUpperCase() + platform.slice(1)} Services<\/h3><div class=\"smm-grid\">`;\n        services.forEach(svc => {\n          html += `<div class=\"service-card\" data-service='${JSON.stringify(svc)}'>\n            <div class=\"service-icon\"><i class=\"${svc.icon}\"><\/i><\/div>\n            <div class=\"service-title\">${svc.name}<\/div>\n            <div class=\"service-desc\" style=\"font-size:12px;color:#666;\">${svc.desc}<\/div>\n            <div class=\"service-price\">$${svc.priceUSD} USD (${svc.priceUGX.toLocaleString()} UGX)<\/div>\n            <button class=\"btn btn-gold btn-sm purchase-btn\">Purchase<\/button>\n          <\/div>`;\n        });\n        html += `<\/div><\/div>`;\n      }\n      container.innerHTML = html;\n      \n      document.querySelectorAll('.purchase-btn').forEach(btn => {\n        btn.addEventListener('click', (e) => {\n          const card = btn.closest('.service-card');\n          const svc = JSON.parse(card.getAttribute('data-service'));\n          const user = getCurrentUserFromStore();\n          if (!user) { alert('Please login to purchase services'); return; }\n          \n          if (user.walletBalance >= svc.priceUGX) {\n            showLinkInputModal(svc, (targetLink) => {\n              user.walletBalance -= svc.priceUGX;\n              const { users, transactions, investments, notifications } = loadData();\n              const newOrder = { \n                id: 'smm' + Date.now(), \n                userId: user.id, \n                userName: `${user.firstName} ${user.lastName}`, \n                platform: svc.icon, \n                service: svc.name, \n                description: svc.desc,\n                amountUGX: svc.priceUGX, \n                amountUSD: svc.priceUSD, \n                targetLink: targetLink,\n                status: 'pending', \n                date: new Date().toISOString() \n              };\n              smmOrders.push(newOrder);\n              transactions.push({ id: 'tx' + Date.now(), userId: user.id, type: 'smm_purchase', amount: svc.priceUGX, status: 'approved', createdAt: new Date().toISOString(), description: `${svc.name} - Link: ${targetLink.substring(0, 50)}` });\n              const idx = users.findIndex(u => u.id === user.id); users[idx] = user;\n              saveData(users, transactions, investments, notifications);\n              updateCurrentUser(user);\n              updateBalanceUI(user.walletBalance);\n              alert(`\u2705 Order placed for ${svc.name}!\\nLink: ${targetLink}\\nAmount deducted: ${svc.priceUGX.toLocaleString()} UGX\\nAdmin will process your order and update campaign stats.`);\n              renderSmmServices();\n            });\n          } else {\n            const modalDiv = document.createElement('div');\n            modalDiv.className = 'modal';\n            modalDiv.style.display = 'flex';\n            modalDiv.innerHTML = `\n              <div class=\"modal-content\">\n                <span class=\"close-modal\">&times;<\/span>\n                <div style=\"text-align: center; margin-bottom: 20px;\">\n                  <i class=\"fas fa-credit-card\" style=\"font-size: 2.5rem; color: var(--gold);\"><\/i>\n                  <h3>Insufficient Balance<\/h3>\n                  <p>${svc.name}<\/p>\n                  <p style=\"font-weight: 700;\">$${svc.priceUSD} USD (${svc.priceUGX.toLocaleString()} UGX)<\/p>\n                <\/div>\n                <div id=\"paymentOptionsContainer\"><\/div>\n                <div class=\"form-group\" style=\"margin-top: 20px;\"><label>Transaction Reference<\/label><input type=\"text\" id=\"txnRef\" class=\"form-control\" placeholder=\"Enter transaction reference\"><\/div>\n                <div class=\"flex-between\"><button id=\"submitPaymentBtn\" class=\"btn btn-success\">Submit Request<\/button><button id=\"cancelModalBtn\" class=\"btn btn-outline\">Cancel<\/button><\/div>\n              <\/div>\n            `;\n            document.body.appendChild(modalDiv);\n            const container = modalDiv.querySelector('#paymentOptionsContainer');\n            container.innerHTML = PAYMENT_OPTIONS.map(opt => `\n              <div class=\"payment-option\">\n                <i class=\"${opt.icon}\" style=\"color: ${opt.color};\"><\/i>\n                <div class=\"payment-details\"><strong>${opt.name}<\/strong><small>${opt.details}<\/small><\/div>\n                <button class=\"copy-btn\" data-copy=\"${opt.details}\"><i class=\"fas fa-copy\"><\/i> Copy<\/button>\n                ${opt.isLink ? `<a href=\"${opt.details}\" target=\"_blank\" class=\"copy-btn\" style=\"background:#0070ba;color:white;\">Pay Now<\/a>` : ''}\n              <\/div>\n            `).join('');\n            modalDiv.querySelectorAll('.copy-btn').forEach(copyBtn => {\n              copyBtn.addEventListener('click', () => { const text = copyBtn.getAttribute('data-copy'); navigator.clipboard.writeText(text); copyBtn.innerHTML = '<i class=\"fas fa-check\"><\/i> Copied!'; setTimeout(() => copyBtn.innerHTML = '<i class=\"fas fa-copy\"><\/i> Copy', 1500); });\n            });\n            modalDiv.querySelector('.close-modal').onclick = () => modalDiv.remove();\n            modalDiv.querySelector('#cancelModalBtn').onclick = () => modalDiv.remove();\n            modalDiv.querySelector('#submitPaymentBtn').onclick = () => {\n              const ref = modalDiv.querySelector('#txnRef').value.trim();\n              if (!ref) { alert('Enter transaction reference'); return; }\n              showLinkInputModal(svc, (targetLink) => {\n                fundingRequests.push({ id: 'fund' + Date.now(), userId: user.id, userName: `${user.firstName} ${user.lastName}`, amount: svc.priceUGX, transactionRef: ref, service: svc.name, targetLink: targetLink, status: 'pending', createdAt: new Date().toISOString() });\n                const d = loadData();\n                saveData(d.users, d.transactions, d.investments, d.notifications);\n                alert(`\u2705 Funding request for ${svc.priceUGX.toLocaleString()} UGX submitted. Await admin approval.`);\n                modalDiv.remove();\n              });\n            };\n          }\n        });\n      });\n    }\n\n    \/\/ Admin Functions with Campaign Stats Editor\n    function adminLogin() { if (document.getElementById('adminPassword').value === ADMIN_PASSWORD) { adminToken = true; localStorage.setItem('adminToken', 'true'); showAdminPanel(); } else alert('Wrong password'); }\n    function showAdminPanel() { document.getElementById('authSection').style.display = 'none'; document.getElementById('dashboardSections').style.display = 'none'; document.getElementById('adminPanel').style.display = 'block'; document.getElementById('adminLoginSection').style.display = 'none'; switchSection('admin-requests'); loadAdminRequests(); renderAdminCampaigns(); }\n    function adminLogout() { adminToken = false; localStorage.removeItem('adminToken'); if (currentUser) switchToUserView(); else location.reload(); }\n    function switchToUserView() { if (currentUser) { document.getElementById('authSection').style.display = 'none'; document.getElementById('dashboardSections').style.display = 'block'; document.getElementById('adminPanel').style.display = 'none'; document.getElementById('adminLoginSection').style.display = 'none'; switchSection('dashboard'); } else location.reload(); }\n    \n    function renderAdminCampaigns() {\n      const container = document.getElementById('adminCampaignsContainer');\n      if (!container) return;\n      const campaigns = adCampaigns;\n      if (campaigns.length === 0) {\n        container.innerHTML = '<p>No campaigns yet. Orders will appear here when users purchase SMM services.<\/p>';\n        return;\n      }\n      container.innerHTML = campaigns.map(camp => `\n        <div class=\"card\" style=\"margin-bottom:20px;\">\n          <div class=\"flex-between\"><h3>${camp.serviceName}<\/h3><span class=\"badge ${camp.status === 'active' ? 'badge-success' : 'badge-warning'}\">${camp.status}<\/span><\/div>\n          <p><strong>Advertiser:<\/strong> ${camp.userName}<\/p>\n          <p><strong>Target Link:<\/strong> <a href=\"${camp.targetLink}\" target=\"_blank\">${camp.targetLink.substring(0, 60)}...<\/a><\/p>\n          <div class=\"row\">\n            <div class=\"col\"><label>\ud83d\udcca Start Views:<\/label><input type=\"number\" class=\"form-control\" id=\"startViews_${camp.id}\" value=\"${camp.startViews}\" style=\"width:100%\"><\/div>\n            <div class=\"col\"><label>\ud83d\udcca Current Views:<\/label><input type=\"number\" class=\"form-control\" id=\"currentViews_${camp.id}\" value=\"${camp.currentViews}\" style=\"width:100%\"><\/div>\n            <div class=\"col\"><label>\ud83c\udfaf Target Views:<\/label><input type=\"number\" class=\"form-control\" id=\"targetViews_${camp.id}\" value=\"${camp.targetViews}\" style=\"width:100%\"><\/div>\n          <\/div>\n          <div class=\"row\" style=\"margin-top:10px;\">\n            <div class=\"col\"><label>\u2764\ufe0f Start Likes:<\/label><input type=\"number\" class=\"form-control\" id=\"startLikes_${camp.id}\" value=\"${camp.startLikes}\" style=\"width:100%\"><\/div>\n            <div class=\"col\"><label>\u2764\ufe0f Current Likes:<\/label><input type=\"number\" class=\"form-control\" id=\"currentLikes_${camp.id}\" value=\"${camp.currentLikes}\" style=\"width:100%\"><\/div>\n            <div class=\"col\"><label>\ud83c\udfaf Target Likes:<\/label><input type=\"number\" class=\"form-control\" id=\"targetLikes_${camp.id}\" value=\"${camp.targetLikes}\" style=\"width:100%\"><\/div>\n          <\/div>\n          <div class=\"progress-bar\" style=\"margin-top:15px;\"><div class=\"progress-fill\" style=\"width: ${camp.targetViews > camp.startViews ? ((camp.currentViews - camp.startViews) \/ (camp.targetViews - camp.startViews)) * 100 : 0}%\"><\/div><\/div>\n          <button class=\"btn btn-sm btn-success\" style=\"margin-top:15px;\" onclick=\"updateCampaignStats('${camp.id}')\"><i class=\"fas fa-save\"><\/i> Update Stats<\/button>\n        <\/div>\n      `).join('');\n    }\n    \n    window.updateCampaignStats = function(campId) {\n      const newStartViews = parseInt(document.getElementById(`startViews_${campId}`).value) || 0;\n      const newCurrentViews = parseInt(document.getElementById(`currentViews_${campId}`).value) || 0;\n      const newTargetViews = parseInt(document.getElementById(`targetViews_${campId}`).value) || 0;\n      const newStartLikes = parseInt(document.getElementById(`startLikes_${campId}`).value) || 0;\n      const newCurrentLikes = parseInt(document.getElementById(`currentLikes_${campId}`).value) || 0;\n      const newTargetLikes = parseInt(document.getElementById(`targetLikes_${campId}`).value) || 0;\n      const campaign = adCampaigns.find(c => c.id === campId);\n      if (campaign) {\n        campaign.startViews = newStartViews;\n        campaign.currentViews = newCurrentViews;\n        campaign.targetViews = newTargetViews;\n        campaign.startLikes = newStartLikes;\n        campaign.currentLikes = newCurrentLikes;\n        campaign.targetLikes = newTargetLikes;\n        saveData(loadData().users, loadData().transactions, loadData().investments, loadData().notifications);\n        alert(`\u2705 Campaign stats updated!\\nViews: ${newStartViews} \u2192 ${newCurrentViews} \/ ${newTargetViews}\\nLikes: ${newStartLikes} \u2192 ${newCurrentLikes} \/ ${newTargetLikes}`);\n        renderAdminCampaigns();\n        if (currentUser) renderCampaignStats();\n      }\n    };\n    \n    function loadAdminRequests() { \n      const { users, transactions } = loadData(); \n      const pending = transactions.filter(t => t.status === 'pending'); \n      const topups = pending.filter(t => t.type === 'topup'), withdraws = pending.filter(t => t.type === 'withdraw'), transfers = pending.filter(t => t.type === 'transfer');\n      let html = `<h3>\ud83d\udcb0 Top-ups<\/h3>${renderReqTable(topups, users)}<h3>\ud83d\udcb8 Withdrawals<\/h3>${renderReqTable(withdraws, users)}<h3>\ud83d\udd04 Transfers<\/h3>${renderReqTable(transfers, users)}`;\n      html += `<h3>\ud83d\udce6 Pending SMM Orders (${smmOrders.filter(o => o.status === 'pending').length})<\/h3>${renderSmmOrdersTable()}`;\n      html += `<h3>\u23f3 Pending Funding Requests<\/h3>${renderFundingRequestsTable()}`;\n      document.getElementById('adminRequestsContainer').innerHTML = html; \n      attachAdminEvents(); \n    }\n    \n    function renderReqTable(items, users) { if (!items.length) return '<p>None<\/p>'; let html = '<table><thead><tr><th>User<\/th><th>Amount<\/th><th>Actions<\/th><\/tr><\/thead><tbody>'; items.forEach(item => { const u = users.find(u => u.id === item.userId); html += `<tr><td>${u ? `${u.firstName} ${u.lastName}` : 'Unknown'}<br><small>${u?.email}<\/small><\/td><td>${item.amount.toLocaleString()} UGX<\/td><td><button class=\"btn-sm btn-success\" data-tx=\"${item.id}\" data-action=\"approve\">Approve<\/button> <button class=\"btn-sm btn-outline\" data-tx=\"${item.id}\" data-action=\"decline\">Decline<\/button><\/td><\/tr>`; }); html += '<\/tbody><\/table>'; return html; }\n    \n    function renderSmmOrdersTable() { \n      const pendingOrders = smmOrders.filter(o => o.status === 'pending'); \n      if (!pendingOrders.length) return '<p>No pending SMM orders<\/p>'; \n      let html = '<div class=\"table-responsive\"><table class=\"min-w-full\"><thead><tr><th>User<\/th><th>Service<\/th><th>Amount<\/th><th>Target Link<\/th><th>Actions<\/th><\/tr><\/thead><tbody>';\n      pendingOrders.forEach(o => { \n        html += `<tr><td>${o.userName}<\/td><td>${o.service}<br><small>${o.description || ''}<\/small><\/td><td>${o.amountUGX.toLocaleString()} UGX<\/td><td><a href=\"${o.targetLink}\" target=\"_blank\" style=\"color:var(--gold);\">${o.targetLink?.substring(0, 40)}...<\/a><\/td><td><button class=\"btn-sm btn-success\" data-smm=\"${o.id}\" data-action=\"complete-order\">Complete & Create Campaign<\/button><\/td><\/tr>`; \n      }); \n      html += '<\/tbody><\/table><\/div>'; \n      return html; \n    }\n    \n    function renderFundingRequestsTable() {\n      const pendingFunding = fundingRequests.filter(r => r.status === 'pending');\n      if (!pendingFunding.length) return '<p>No pending funding requests<\/p>';\n      let html = '<div class=\"table-responsive\"><table><thead><tr><th>User<\/th><th>Amount<\/th><th>Service<\/th><th>Link<\/th><th>Ref<\/th><th>Actions<\/th><\/tr><\/thead><tbody>';\n      pendingFunding.forEach(req => {\n        html += `<tr><td>${req.userName}<\/td><td>${req.amount.toLocaleString()} UGX<\/td><td>${req.service || 'N\/A'}<\/td><td>${req.targetLink ? `<a href=\"${req.targetLink}\" target=\"_blank\">Link<\/a>` : '-'}<\/td><td>${req.transactionRef}<\/td><td><button class=\"btn-sm btn-success\" data-fund=\"${req.id}\" data-action=\"approve-fund\">Approve<\/button> <button class=\"btn-sm btn-danger\" data-fund=\"${req.id}\" data-action=\"reject-fund\">Reject<\/button><\/td><\/tr>`;\n      });\n      html += '<\/tbody><\/table><\/div>';\n      return html;\n    }\n    \n    function attachAdminEvents() { \n      document.querySelectorAll('[data-tx]').forEach(btn => { \n        btn.addEventListener('click', () => { \n          const txId = btn.dataset.tx, action = btn.dataset.action; \n          const d = loadData(); \n          const tx = d.transactions.find(t => t.id === txId); \n          if (!tx) return; \n          const user = d.users.find(u => u.id === tx.userId); \n          if (action === 'approve') { \n            tx.status = 'approved'; \n            if (tx.type === 'topup') user.walletBalance += tx.amount; \n            else if (tx.type === 'withdraw') { if (user.walletBalance >= tx.amount) user.walletBalance -= tx.amount; else tx.status = 'declined'; } \n            else if (tx.type === 'transfer') { const recipient = d.users.find(u => u.id === tx.toUserId); if (user.walletBalance >= tx.amount && recipient) { user.walletBalance -= tx.amount; recipient.walletBalance += tx.amount; } else tx.status = 'declined'; } \n            saveData(d.users, d.transactions, d.investments, d.notifications); \n            if (currentUser && currentUser.id === user.id) updateBalanceUI(user.walletBalance); \n            loadAdminRequests(); \n          } else { tx.status = 'declined'; saveData(d.users, d.transactions, d.investments, d.notifications); loadAdminRequests(); } \n        }); \n      }); \n      \n      document.querySelectorAll('[data-smm]').forEach(btn => { \n        btn.addEventListener('click', () => { \n          const orderId = btn.dataset.smm; \n          const order = smmOrders.find(o => o.id === orderId); \n          if (order) { \n            order.status = 'completed';\n            \/\/ Create campaign from order\n            const newCampaign = {\n              id: 'camp_' + Date.now(),\n              userId: order.userId,\n              userName: order.userName,\n              serviceName: order.service,\n              targetLink: order.targetLink,\n              targetViews: 5000,\n              targetLikes: 500,\n              startViews: 0,\n              startLikes: 0,\n              currentViews: 0,\n              currentLikes: 0,\n              status: \"active\",\n              createdAt: new Date().toISOString()\n            };\n            adCampaigns.push(newCampaign);\n            saveData(loadData().users, loadData().transactions, loadData().investments, loadData().notifications);\n            alert(`\u2705 Order completed for ${order.userName}: ${order.service}\\nCampaign created with start stats. Admin can now update stats.`);\n            loadAdminRequests();\n            renderAdminCampaigns();\n          } \n        }); \n      });\n      \n      document.querySelectorAll('[data-fund]').forEach(btn => {\n        btn.addEventListener('click', () => {\n          const fundId = btn.dataset.fund, action = btn.dataset.action;\n          const req = fundingRequests.find(r => r.id === fundId);\n          if (!req) return;\n          if (action === 'approve-fund') {\n            const user = loadData().users.find(u => u.id === req.userId);\n            if (user) { user.walletBalance += req.amount; req.status = 'approved'; alert(`Added ${req.amount.toLocaleString()} UGX to ${user.firstName}'s wallet`); }\n          } else { req.status = 'rejected'; alert('Funding request rejected'); }\n          saveData(loadData().users, loadData().transactions, loadData().investments, loadData().notifications);\n          loadAdminRequests();\n        });\n      });\n    }\n    \n    function loadAdminUsers() { const { users } = loadData(); const normal = users.filter(u => u.role !== 'admin'); document.getElementById('adminUsersContainer').innerHTML = normal.map(u => `<tr><td>${u.id}<\/td><td>${u.firstName} ${u.lastName}<\/td><td>${u.email}<\/td><td>${u.country || '\u2014'}<\/td><td>${u.mobile || '\u2014'}<\/td><td>${u.walletBalance.toLocaleString()} UGX<\/td><\/tr>`).join(''); }\n    function exportUsersToCSV() { const { users } = loadData(); const normal = users.filter(u => u.role !== 'admin'); if (!normal.length) return alert('No users'); const headers = ['ID','First Name','Last Name','Email','Country','Mobile','Wallet','Registered']; const rows = normal.map(u => [u.id, u.firstName, u.lastName, u.email, u.country, u.mobile, u.walletBalance, new Date(u.createdAt).toLocaleDateString()]); const csv = [headers, ...rows].map(r => r.map(c => `\"${c}\"`).join(',')).join('\\n'); const blob = new Blob([csv], {type:'text\/csv'}); const a = document.createElement('a'); a.href = URL.createObjectURL(blob); a.download = 'adase_users.csv'; a.click(); URL.revokeObjectURL(a.href); }\n    function adminSendNotification() { const userId = document.getElementById('notifyUserId').value.trim(), msg = document.getElementById('notifyMsg').value.trim(); if (!userId || !msg) return alert('Fill both'); const d = loadData(); const user = d.users.find(u => u.id === userId); if (!user) return alert('User not found'); d.notifications.push({ id: 'notif' + Date.now(), userId, message: msg, createdAt: new Date().toISOString(), dismissed: false }); saveData(d.users, d.transactions, d.investments, d.notifications); alert('Notification sent'); }\n\n    document.querySelectorAll('.sidebar nav a[data-section]').forEach(a => a.addEventListener('click', e => { e.preventDefault(); switchSection(a.dataset.section); }));\n    document.getElementById('logoutSidebar')?.addEventListener('click', e => { e.preventDefault(); userLogout(); });\n    document.getElementById('adminSidebarLink')?.addEventListener('click', e => { e.preventDefault(); document.getElementById('authSection').style.display = 'none'; document.getElementById('dashboardSections').style.display = 'none'; document.getElementById('adminPanel').style.display = 'none'; document.getElementById('adminLoginSection').style.display = 'block'; });\n    document.getElementById('menuToggle')?.addEventListener('click', () => document.getElementById('sidebar').classList.toggle('open'));\n    \n    window.switchSection = switchSection;\n    window.submitTopup = submitTopup;\n    window.submitWithdraw = submitWithdraw;\n    window.submitTransfer = submitTransfer;\n    window.buyAndDownload = buyAndDownload;\n    window.generateCertificate = generateCertificate;\n    window.login = login;\n    window.register = register;\n    window.showAuthTab = showAuthTab;\n    window.dismissNotif = dismissNotif;\n    window.adminLogin = adminLogin;\n    window.adminLogout = adminLogout;\n    window.switchToUserView = switchToUserView;\n    window.loadAdminRequests = loadAdminRequests;\n    window.loadAdminUsers = loadAdminUsers;\n    window.exportUsersToCSV = exportUsersToCSV;\n    window.adminSendNotification = adminSendNotification;\n    window.renderAdminCampaigns = renderAdminCampaigns;\n\n    if (localStorage.getItem('adminToken') === 'true') showAdminPanel();\n    else { const stored = localStorage.getItem('adase_current_user'); if (stored) { try { currentUser = JSON.parse(stored); document.getElementById('authSection').style.display = 'none'; document.getElementById('dashboardSections').style.display = 'block'; updateBalanceUI(currentUser.walletBalance); document.getElementById('userNameDisplay').innerText = `${currentUser.firstName} ${currentUser.lastName}`; fetchNotifications(); fetchInvestments(); fetchTransactions(); renderSmmServices(); renderCampaignStats(); switchSection('dashboard'); } catch(e) {} } }\n    window.addEventListener('beforeunload', () => { if (currentUser) localStorage.setItem('adase_current_user', JSON.stringify(currentUser)); else localStorage.removeItem('adase_current_user'); });\n  <\/script>\n<\/body>\n<\/html>\n\n\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, viewport-fit=cover\">\n  <title>Cash Chat Limited | Flicks Fintech Dashboard<\/title>\n  <!-- Google Fonts + Font Awesome + Chart.js -->\n  <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:opsz,wght@14..32,300;14..32,400;14..32,500;14..32,600;14..32,700;14..32,800&#038;display=swap\" rel=\"stylesheet\">\n  <link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.0.0-beta3\/css\/all.min.css\">\n  <script src=\"https:\/\/cdn.jsdelivr.net\/npm\/chart.js@4.4.0\/dist\/chart.umd.min.js\"><\/script>\n  <style>\n    * {\n      margin: 0;\n      padding: 0;\n      box-sizing: border-box;\n    }\n\n    body {\n      background: linear-gradient(145deg, #f7f3ff 0%, #ffffff 100%);\n      font-family: 'Inter', sans-serif;\n      padding: 2rem 1.5rem;\n      color: #1e1a2f;\n    }\n\n    \/* color palette: deep purple + lemon green *\/\n    :root {\n      --purple-deep: #4a1d6d;\n      --purple-mid: #7b2cbf;\n      --purple-soft: #b87cff;\n      --lemon-green: #ccff00;\n      --lemon-dark: #b3e600;\n      --lemon-glow: #e5ff80;\n      --gray-bg: #fefbff;\n      --card-shadow: 0 20px 35px -12px rgba(75, 30, 110, 0.12);\n    }\n\n    .dashboard-container {\n      max-width: 1400px;\n      margin: 0 auto;\n    }\n\n    \/* header *\/\n    .brand-header {\n      display: flex;\n      justify-content: space-between;\n      align-items: center;\n      flex-wrap: wrap;\n      margin-bottom: 2.5rem;\n      border-bottom: 2px solid var(--lemon-green);\n      padding-bottom: 1.2rem;\n    }\n    .logo h1 {\n      font-size: 1.9rem;\n      font-weight: 800;\n      background: linear-gradient(135deg, var(--purple-deep), var(--purple-mid));\n      -webkit-background-clip: text;\n      background-clip: text;\n      color: transparent;\n      letter-spacing: -0.3px;\n    }\n    .logo p {\n      font-size: 0.85rem;\n      color: #5a4a6e;\n      font-weight: 500;\n      margin-top: 4px;\n    }\n    .badge {\n      background: var(--purple-deep);\n      padding: 0.5rem 1.2rem;\n      border-radius: 40px;\n      color: white;\n      font-weight: 600;\n      font-size: 0.8rem;\n      display: flex;\n      align-items: center;\n      gap: 8px;\n      box-shadow: 0 2px 8px rgba(0,0,0,0.05);\n    }\n    .badge i {\n      color: var(--lemon-green);\n      font-size: 1rem;\n    }\n\n    \/* KPI grid *\/\n    .kpi-grid {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n      gap: 1.5rem;\n      margin-bottom: 2.5rem;\n    }\n    .kpi-card {\n      background: white;\n      border-radius: 28px;\n      padding: 1.2rem 1.2rem;\n      box-shadow: var(--card-shadow);\n      border-left: 6px solid var(--lemon-green);\n      transition: transform 0.2s ease;\n    }\n    .kpi-card:hover {\n      transform: translateY(-4px);\n    }\n    .kpi-title {\n      font-size: 0.85rem;\n      text-transform: uppercase;\n      letter-spacing: 1px;\n      font-weight: 600;\n      color: #6b5b7e;\n    }\n    .kpi-value {\n      font-size: 2rem;\n      font-weight: 800;\n      color: var(--purple-deep);\n      margin: 0.5rem 0 0.2rem;\n    }\n    .kpi-sub {\n      font-size: 0.75rem;\n      color: #4a3a5e;\n      font-weight: 500;\n    }\n    .highlight-green {\n      color: #6b8c00;\n      background: #f0ffd6;\n      display: inline-block;\n      padding: 0.1rem 0.5rem;\n      border-radius: 20px;\n      font-size: 0.7rem;\n      font-weight: 700;\n    }\n\n    \/* 2-col layout *\/\n    .dashboard-row {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));\n      gap: 1.8rem;\n      margin-bottom: 2rem;\n    }\n    .card {\n      background: white;\n      border-radius: 32px;\n      box-shadow: var(--card-shadow);\n      overflow: hidden;\n      transition: all 0.2s;\n      border: 1px solid rgba(123, 44, 191, 0.1);\n    }\n    .card-header {\n      padding: 1.2rem 1.5rem 0.4rem 1.5rem;\n      font-weight: 700;\n      font-size: 1.3rem;\n      color: var(--purple-deep);\n      border-bottom: 2px solid var(--lemon-green);\n      display: inline-block;\n      margin: 0 1.5rem 0.5rem 1.5rem;\n      width: auto;\n    }\n    .card-content {\n      padding: 1rem 1.5rem 1.5rem 1.5rem;\n    }\n    .stat-list {\n      list-style: none;\n      margin-top: 0.5rem;\n    }\n    .stat-list li {\n      padding: 0.6rem 0;\n      border-bottom: 1px solid #f0eaff;\n      display: flex;\n      align-items: center;\n      gap: 12px;\n      font-size: 0.9rem;\n    }\n    .stat-list i {\n      width: 28px;\n      color: var(--purple-mid);\n      font-size: 1.1rem;\n    }\n    .commission-badge {\n      background: #f3f0ff;\n      border-radius: 40px;\n      padding: 0.2rem 0.7rem;\n      font-weight: 600;\n      font-size: 0.75rem;\n      color: var(--purple-deep);\n    }\n    .green-tag {\n      background: var(--lemon-green);\n      color: #2a2a1a;\n      font-weight: 700;\n      padding: 0.2rem 0.6rem;\n      border-radius: 30px;\n      font-size: 0.7rem;\n    }\n    .activity-grid {\n      display: flex;\n      flex-wrap: wrap;\n      gap: 10px;\n      margin: 1rem 0;\n    }\n    .activity-chip {\n      background: #f3eefc;\n      padding: 6px 14px;\n      border-radius: 40px;\n      font-size: 0.8rem;\n      font-weight: 500;\n      color: #2d1b46;\n    }\n    .activity-chip i {\n      margin-right: 6px;\n      color: var(--purple-mid);\n    }\n    .progress-section {\n      background: #f9f5ff;\n      border-radius: 20px;\n      padding: 1rem;\n      margin: 1rem 0;\n    }\n    .progress-label {\n      display: flex;\n      justify-content: space-between;\n      font-weight: 600;\n      font-size: 0.8rem;\n    }\n    .progress-bar-bg {\n      background: #e0d4f0;\n      border-radius: 20px;\n      height: 10px;\n      margin: 8px 0;\n      overflow: hidden;\n    }\n    .progress-fill {\n      background: var(--lemon-green);\n      width: 10%;\n      height: 10px;\n      border-radius: 20px;\n    }\n    .chart-wrapper {\n      max-width: 220px;\n      margin: 0 auto;\n    }\n    footer {\n      text-align: center;\n      margin-top: 3rem;\n      padding-top: 1.5rem;\n      border-top: 1px solid #e6daff;\n      font-size: 0.75rem;\n      color: #5a4a6e;\n    }\n    @media (max-width: 700px) {\n      body {\n        padding: 1rem;\n      }\n      .kpi-value {\n        font-size: 1.5rem;\n      }\n    }\n    button.mock {\n      background: var(--lemon-green);\n      border: none;\n      font-weight: 700;\n      padding: 6px 14px;\n      border-radius: 50px;\n      color: #2c2a1f;\n      font-size: 0.7rem;\n      cursor: default;\n    }\n  <\/style>\n<\/head>\n<body>\n<div class=\"dashboard-container\">\n  <!-- Header -->\n  <div class=\"brand-header\">\n    <div class=\"logo\">\n      <h1><i class=\"fas fa-comment-dollar\" style=\"color: var(--lemon-green); margin-right: 6px;\"><\/i> CashChat<span style=\"color:var(--purple-mid);\"> | Flicks<\/span><\/h1>\n      <p>decentralized fintech + AI social advertising ecosystem<\/p>\n    <\/div>\n    <div class=\"badge\">\n      <i class=\"fas fa-chart-line\"><\/i> 35% user-owned | 600k shares\n    <\/div>\n  <\/div>\n\n  <!-- KPI CARDS (main metrics) -->\n  <div class=\"kpi-grid\">\n    <div class=\"kpi-card\"><div class=\"kpi-title\">EXCHANGEABLE SHARES<\/div><div class=\"kpi-value\">600,000<\/div><div class=\"kpi-sub\">35% of company held by users<\/div><\/div>\n    <div class=\"kpi-card\"><div class=\"kpi-title\">ADVERTISING STARTUPS<\/div><div class=\"kpi-value\">200,000<\/div><div class=\"kpi-sub\">global network by 2030<\/div><\/div>\n    <div class=\"kpi-card\"><div class=\"kpi-title\">REVENUE \/ STARTUP (2030)<\/div><div class=\"kpi-value\">$100k<\/div><div class=\"kpi-sub\">annual base income <span class=\"highlight-green\">+20% rev share<\/span><\/div><\/div>\n    <div class=\"kpi-card\"><div class=\"kpi-title\">STARTUPS TOTAL PAYOUT<\/div><div class=\"kpi-value\">$20B+<\/div><div class=\"kpi-sub\">20% of CashChat ad revenue<\/div><\/div>\n    <div class=\"kpi-card\"><div class=\"kpi-title\">2030 NETWORK REVENUE<\/div><div class=\"kpi-value\">$114B<\/div><div class=\"kpi-sub\">10% global ad market share<\/div><\/div>\n    <div class=\"kpi-card\"><div class=\"kpi-title\">GLOBAL AD MARKET &#8217;26<\/div><div class=\"kpi-value\">$1.14T<\/div><div class=\"kpi-sub\">forecast (target capture by 2030)<\/div><\/div>\n  <\/div>\n\n  <!-- ROW 1: Ownership & Membership + Wallet\/Regulation -->\n  <div class=\"dashboard-row\">\n    <!-- Ownership & Shareholding -->\n    <div class=\"card\">\n      <div class=\"card-header\"><i class=\"fas fa-chart-pie\" style=\"margin-right: 10px;\"><\/i> Share ownership &#038; perks<\/div>\n      <div class=\"card-content\">\n        <div style=\"display: flex; flex-wrap: wrap; gap: 20px; align-items: center;\">\n          <div class=\"chart-wrapper\">\n            <canvas id=\"ownershipChart\" width=\"200\" height=\"200\" style=\"max-width: 180px;\"><\/canvas>\n          <\/div>\n          <div>\n            <ul class=\"stat-list\">\n              <li><i class=\"fas fa-users\"><\/i> <strong>600k exchangeable shares<\/strong> \u2192 35% company equity<\/li>\n              <li><i class=\"fas fa-gavel\"><\/i> Dividends paid <strong>directly to wallet<\/strong> (post-AGM)<\/li>\n              <li><i class=\"fas fa-id-card\"><\/i> Verified members only: <span class=\"green-tag\">UGX 75,000<\/span> \/ <span class=\"green-tag\">KES 1,550<\/span> \/ <span class=\"green-tag\">USD 20<\/span> (one-time fee)<\/li>\n              <li><i class=\"fas fa-chart-line\"><\/i> Share trading platform: buy\/sell with wallet funds<\/li>\n              <li><i class=\"fas fa-wallet\"><\/i> Must have sufficient wallet balance to buy shares<\/li>\n            <\/ul>\n          <\/div>\n        <\/div>\n        <div class=\"progress-section\" style=\"margin-top: 12px;\">\n          <div class=\"progress-label\"><span><i class=\"fas fa-percent\"><\/i> User ownership stake<\/span> <strong>35%<\/strong><\/div>\n          <div class=\"progress-bar-bg\"><div class=\"progress-fill\" style=\"width: 35%; background: var(--lemon-green);\"><\/div><\/div>\n          <div class=\"progress-label\"><span><i class=\"fas fa-building\"><\/i> Company retained<\/span> <strong>65%<\/strong><\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <!-- Wallet, Funding & Decentralized Fintech -->\n    <div class=\"card\">\n      <div class=\"card-header\"><i class=\"fas fa-money-bill-wave\"><\/i> CashChat Wallet | Regulated<\/div>\n      <div class=\"card-content\">\n        <ul class=\"stat-list\">\n          <li><i class=\"fas fa-mobile-alt\"><\/i> <strong>UG &#038; KE:<\/strong> Direct via MTN \/ M-Pesa (initiate in CashChat Wallet)<\/li>\n          <li><i class=\"fas fa-globe\"><\/i> <strong>Other countries:<\/strong> earn via commissions (ads, referrals) \u2192 wallet credits<\/li>\n          <li><i class=\"fas fa-exchange-alt\"><\/i> International users can open <span class=\"green-tag\">Ugandan\/Kenyan account<\/span> to hold UGX\/KES<\/li>\n          <li><i class=\"fas fa-university\"><\/i> Liquidity custodians: local banks + mobile money networks<\/li>\n          <li><i class=\"fas fa-shield-alt\"><\/i> Eliminates PayPal, Stripe, Wise barriers \u2014 truly decentralized African fintech<\/li>\n        <\/ul>\n        <div style=\"background: #f2ecff; border-radius: 20px; margin-top: 14px; padding: 10px; text-align: center;\">\n          <i class=\"fas fa-check-circle\" style=\"color: var(--lemon-dark);\"><\/i> <strong>Free access in all African countries<\/strong> \u2014 Regulated per nation via mobile money\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <!-- ROW 2: Commissions & Referrals + Paid Activity Engine -->\n  <div class=\"dashboard-row\">\n    <!-- Commission structure + referrals -->\n    <div class=\"card\">\n      <div class=\"card-header\"><i class=\"fas fa-hand-holding-usd\"><\/i> Earn commissions<\/div>\n      <div class=\"card-content\">\n        <div style=\"margin-bottom: 12px;\"><span class=\"commission-badge\"><i class=\"fas fa-upload\"><\/i> 20% from uploading ads<\/span> &nbsp; <span class=\"commission-badge\"><i class=\"fas fa-user-plus\"><\/i> Referral rewards<\/span><\/div>\n        <table style=\"width:100%; border-collapse: collapse; font-size: 0.85rem;\">\n          <tr><th style=\"text-align: left; padding: 8px 0;\">Verified user (Uganda)<\/th><td style=\"text-align: right;\"><strong>UGX 50,000<\/strong><\/td><\/tr>\n          <tr><th style=\"text-align: left; padding: 8px 0;\">Verified user (Kenya)<\/th><td style=\"text-align: right;\"><strong>KES 1,000<\/strong><\/td><\/tr>\n          <tr><th style=\"text-align: left; padding: 8px 0;\">Other countries<\/th><td style=\"text-align: right;\"><strong>$10<\/strong><\/td><\/tr>\n        <\/table>\n        <div class=\"progress-section\" style=\"margin-top: 16px;\">\n          <i class=\"fas fa-chart-simple\"><\/i> <strong>Wallet growth loop:<\/strong> earn via ads upload (20%), referral trees &#038; social engagement \u2192 then use funds to buy shares or trade.\n        <\/div>\n        <p style=\"font-size: 0.75rem; margin-top: 10px;\"><i class=\"fas fa-lightbulb\"><\/i> Any user from other countries can open UG\/KE account to benefit from stable currency holdings (UGX\/KES).<\/p>\n      <\/div>\n    <\/div>\n\n    <!-- Paid activity model (CashChat AI) -->\n    <div class=\"card\">\n      <div class=\"card-header\"><i class=\"fas fa-coins\"><\/i> Paid activity ecosystem<\/div>\n      <div class=\"card-content\">\n        <p><strong>Users are paid for every action inside CashChat AI + Flicks<\/strong> \u2014 where most ads are targeted.<\/p>\n        <div class=\"activity-grid\">\n          <span class=\"activity-chip\"><i class=\"fas fa-pen\"><\/i> Posting<\/span>\n          <span class=\"activity-chip\"><i class=\"fas fa-comment\"><\/i> Commenting<\/span>\n          <span class=\"activity-chip\"><i class=\"fas fa-heart\"><\/i> Liking content<\/span>\n          <span class=\"activity-chip\"><i class=\"fas fa-graduation-cap\"><\/i> Learning with Chat AI<\/span>\n          <span class=\"activity-chip\"><i class=\"fas fa-store\"><\/i> Selling products via ads<\/span>\n          <span class=\"activity-chip\"><i class=\"fas fa-chart-line\"><\/i> Buying &#038; selling shares<\/span>\n          <span class=\"activity-chip\"><i class=\"fas fa-user-friends\"><\/i> Referring new users<\/span>\n        <\/div>\n        <div style=\"margin-top: 14px; background: #f5ffea; border-radius: 20px; padding: 12px;\">\n          <i class=\"fas fa-video\" style=\"color: var(--purple-mid);\"><\/i> <strong>Flicks social platform<\/strong> \u2014 integrated inside CashChat AI. Users monetize attention &#038; creativity.\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <!-- ROW 3: Advertising network 2030 vision + 10% global share -->\n  <div class=\"dashboard-row\">\n    <div class=\"card\">\n      <div class=\"card-header\"><i class=\"fas fa-chart-line\"><\/i> 200,000 ad startups \u00b7 $100k annual each<\/div>\n      <div class=\"card-content\">\n        <p><strong>Cash Chat digital advertising network<\/strong> \u2014 managed by 200,000 startups projected base income $100k per company by 2030.<\/p>\n        <ul class=\"stat-list\">\n          <li><i class=\"fas fa-chart-line\"><\/i> Total network annual revenue for advertisers: <strong>$20B+<\/strong> (20% of CashChat global ad revenue)<\/li>\n          <li><i class=\"fas fa-globe\"><\/i> Global ads revenue 2026: $1.14T \u2192 CashChat target: <strong>10% market share = $114B by 2030<\/strong><\/li>\n          <li><i class=\"fas fa-bullseye\"><\/i> &#8220;We are not fighting for existing market \u2014 we are creating our own market by solving ignored challenges.&#8221;<\/li>\n        <\/ul>\n        <div class=\"progress-label\" style=\"margin-top: 8px;\">2030 market share goal: 10% of $1.14T<\/div>\n        <div class=\"progress-bar-bg\"><div class=\"progress-fill\" style=\"width: 10%; background: var(--lemon-green);\"><\/div><\/div>\n        <div style=\"margin-top: 12px; display: flex; justify-content: space-between;\">\n          <span><i class=\"fas fa-chart-simple\"><\/i> Revenue to startups: $20B<\/span>\n          <span><i class=\"fas fa-building\"><\/i> Each startup: $100k\/year<\/span>\n        <\/div>\n      <\/div>\n    <\/div>\n    <div class=\"card\">\n      <div class=\"card-header\"><i class=\"fas fa-share-alt\"><\/i> Why CashChat wins<\/div>\n      <div class=\"card-content\">\n        <ul class=\"stat-list\">\n          <li><i class=\"fas fa-laptop-code\"><\/i> <strong>Decentralized fintech<\/strong> \u2014 no PayPal\/Stripe barriers, African-first infrastructure<\/li>\n          <li><i class=\"fas fa-hand-holding-heart\"><\/i> Financially empower users: paid for every single social &#038; learning activity<\/li>\n          <li><i class=\"fas fa-chart-line\"><\/i> <strong>Share trading platform<\/strong> accessible after one-time membership, wallet-funded trading<\/li>\n          <li><i class=\"fas fa-chart-pie\"><\/i> 35% of total shares belong to users \u2192 true co-ownership &#038; dividends in wallet<\/li>\n          <li><i class=\"fas fa-rocket\"><\/i> Regulated liquidity via MTN, M-Pesa &#038; local banks \u2014 fully compliant<\/li>\n        <\/ul>\n        <div style=\"margin-top: 1rem; text-align: center;\">\n          <span class=\"mock\"><i class=\"fas fa-wallet\"><\/i> Join verified members \u2192 start earning &#038; trading<\/span>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <!-- extra: share trading note & global access -->\n  <div class=\"card\" style=\"margin-bottom: 1.2rem;\">\n    <div class=\"card-header\"><i class=\"fas fa-chart-simple\"><\/i> Share trading platform \u00b7 membership access<\/div>\n    <div class=\"card-content\">\n      <p>\u2705 Only verified members (one-time fee: UGX 75,000 \/ KES 1,550 \/ $20) can access the share trading dashboard and buy exchangeable shares.  \n      \ud83d\udcb0 Wallet must have sufficient funds. Dividends from AGM are paid directly to user wallets.  \n      \ud83c\udf0d International users can join via earning commissions OR open a Ugandan\/Kenyan account to fund via mobile money.<\/p>\n    <\/div>\n  <\/div>\n\n  <footer>\n    <i class=\"fas fa-chart-line\"><\/i> Cash Chat Limited \u2014 Flicks inside CashChat AI | Building Africa&#8217;s largest decentralized advertising economy | 200k startups \u00b7 $114B vision 2030<br>\n    \u00a9 2025 Cash Chat \u00b7 Regulated wallet via mobile money networks &#038; partner banks \u00b7 600k exchangeable shares representing 35% user ownership\n  <\/footer>\n<\/div>\n\n<script>\n  \/\/ ownership pie chart (35% users \/ 65% company)\n  const ctx = document.getElementById('ownershipChart').getContext('2d');\n  new Chart(ctx, {\n    type: 'doughnut',\n    data: {\n      labels: ['User-held shares (35%)', 'Company retained (65%)'],\n      datasets: [{\n        data: [35, 65],\n        backgroundColor: ['#ccff00', '#7b2cbf'],\n        borderWidth: 0,\n        hoverOffset: 8,\n        cutout: '60%',\n      }]\n    },\n    options: {\n      responsive: true,\n      maintainAspectRatio: true,\n      plugins: {\n        legend: { position: 'bottom', labels: { font: { size: 10 }, color: '#2d1b46' } },\n        tooltip: { callbacks: { label: (ctx) => `${ctx.label}: ${ctx.raw}%` } }\n      }\n    }\n  });\n<\/script>\n<\/body>\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>Adase Ads \u2013 Complete Dashboard | Digital Advertising &amp; SMM ADASE ADS Dashboard Wallet Buy Notes SMM Services My Campaigns Investments Transactions Logout Admin Panel \u2630 Adase Dashboard Welcome to Adase Ads Login Register Email Password Login First Name * Last Name * Email * Country * Mobile Number * NIN \/ Passport * Password [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"pagelayer_contact_templates":[],"_pagelayer_content":"","footnotes":""},"class_list":["post-66","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/cashchat.se\/dir\/wp-json\/wp\/v2\/pages\/66","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cashchat.se\/dir\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/cashchat.se\/dir\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/cashchat.se\/dir\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cashchat.se\/dir\/wp-json\/wp\/v2\/comments?post=66"}],"version-history":[{"count":4,"href":"https:\/\/cashchat.se\/dir\/wp-json\/wp\/v2\/pages\/66\/revisions"}],"predecessor-version":[{"id":253,"href":"https:\/\/cashchat.se\/dir\/wp-json\/wp\/v2\/pages\/66\/revisions\/253"}],"wp:attachment":[{"href":"https:\/\/cashchat.se\/dir\/wp-json\/wp\/v2\/media?parent=66"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}