student hai 1 mes
pai
achega
799eebed45
Modificáronse 77 ficheiros con 3328 adicións e 201 borrados
  1. 307 11
      website/Areas/LotteryV2/Controllers/HomeController.cs
  2. 71 0
      website/Areas/LotteryV2/Views/Home/FAQ.cshtml
  3. 211 0
      website/Areas/LotteryV2/Views/Home/GameHome.cshtml
  4. 147 0
      website/Areas/LotteryV2/Views/Home/HowToPlay.cshtml
  5. 148 9
      website/Areas/LotteryV2/Views/Home/Index.cshtml
  6. 106 0
      website/Areas/LotteryV2/Views/Home/More.cshtml
  7. 81 0
      website/Areas/LotteryV2/Views/Home/Profile.cshtml
  8. 555 0
      website/Areas/LotteryV2/Views/Home/Rule.cshtml
  9. 46 0
      website/Areas/LotteryV2/Views/Shared/_BottomNavbar.cshtml
  10. 3 0
      website/Common/Constants.cs
  11. 10 1
      website/Controllers/AccountController.cs
  12. 322 158
      website/Languages/Lang.Designer.cs
  13. 400 9
      website/Languages/Lang.fr.resx
  14. 402 9
      website/Languages/Lang.resx
  15. 87 0
      website/Views/Account/ChooseApp.cshtml
  16. 1 1
      website/appsettings.json
  17. 45 0
      website/wwwroot/LotteryV2/css/faq.css
  18. 10 0
      website/wwwroot/LotteryV2/css/howtoplay.css
  19. 10 0
      website/wwwroot/LotteryV2/css/more.css
  20. 95 0
      website/wwwroot/LotteryV2/css/rule.css
  21. 115 0
      website/wwwroot/LotteryV2/css/site.css
  22. BIN=BIN
      website/wwwroot/LotteryV2/img/ball_10.png
  23. BIN=BIN
      website/wwwroot/LotteryV2/img/ball_20.png
  24. BIN=BIN
      website/wwwroot/LotteryV2/img/ball_3.png
  25. BIN=BIN
      website/wwwroot/LotteryV2/img/ball_86.png
  26. BIN=BIN
      website/wwwroot/LotteryV2/img/ball_88.png
  27. BIN=BIN
      website/wwwroot/LotteryV2/img/ball_99.png
  28. BIN=BIN
      website/wwwroot/LotteryV2/img/banner1.png
  29. BIN=BIN
      website/wwwroot/LotteryV2/img/banner2.png
  30. BIN=BIN
      website/wwwroot/LotteryV2/img/banner3.png
  31. BIN=BIN
      website/wwwroot/LotteryV2/img/big_text.png
  32. 1 0
      website/wwwroot/LotteryV2/img/calling.svg
  33. 3 0
      website/wwwroot/LotteryV2/img/chevron_down.svg
  34. BIN=BIN
      website/wwwroot/LotteryV2/img/even_text.png
  35. BIN=BIN
      website/wwwroot/LotteryV2/img/faq_banner.png
  36. BIN=BIN
      website/wwwroot/LotteryV2/img/faq_banner_full.png
  37. BIN=BIN
      website/wwwroot/LotteryV2/img/game_card1.png
  38. BIN=BIN
      website/wwwroot/LotteryV2/img/game_card2.png
  39. BIN=BIN
      website/wwwroot/LotteryV2/img/game_card3.png
  40. BIN=BIN
      website/wwwroot/LotteryV2/img/gold.png
  41. BIN=BIN
      website/wwwroot/LotteryV2/img/gold_bag.png
  42. BIN=BIN
      website/wwwroot/LotteryV2/img/gold_chest.png
  43. BIN=BIN
      website/wwwroot/LotteryV2/img/gold_wallet.png
  44. 4 0
      website/wwwroot/LotteryV2/img/help.svg
  45. 21 0
      website/wwwroot/LotteryV2/img/icon_calendar.svg
  46. 23 0
      website/wwwroot/LotteryV2/img/icon_faq.svg
  47. 22 0
      website/wwwroot/LotteryV2/img/icon_history.svg
  48. 24 0
      website/wwwroot/LotteryV2/img/icon_home.svg
  49. 5 0
      website/wwwroot/LotteryV2/img/icon_more.svg
  50. 20 0
      website/wwwroot/LotteryV2/img/icon_rule.svg
  51. BIN=BIN
      website/wwwroot/LotteryV2/img/icon_withdraw.png
  52. BIN=BIN
      website/wwwroot/LotteryV2/img/illustration3.png
  53. BIN=BIN
      website/wwwroot/LotteryV2/img/logo.png
  54. BIN=BIN
      website/wwwroot/LotteryV2/img/m1.png
  55. BIN=BIN
      website/wwwroot/LotteryV2/img/millionair_guy.png
  56. 5 0
      website/wwwroot/LotteryV2/img/money_bag.svg
  57. BIN=BIN
      website/wwwroot/LotteryV2/img/money_bag_large.png
  58. BIN=BIN
      website/wwwroot/LotteryV2/img/money_bag_small.png
  59. BIN=BIN
      website/wwwroot/LotteryV2/img/nav_faq.png
  60. BIN=BIN
      website/wwwroot/LotteryV2/img/nav_history.png
  61. BIN=BIN
      website/wwwroot/LotteryV2/img/nav_home.png
  62. BIN=BIN
      website/wwwroot/LotteryV2/img/nav_more.png
  63. BIN=BIN
      website/wwwroot/LotteryV2/img/nav_rule.png
  64. BIN=BIN
      website/wwwroot/LotteryV2/img/odd_even_logo.png
  65. BIN=BIN
      website/wwwroot/LotteryV2/img/odd_text.png
  66. BIN=BIN
      website/wwwroot/LotteryV2/img/play_chest.png
  67. BIN=BIN
      website/wwwroot/LotteryV2/img/play_megabet.png
  68. BIN=BIN
      website/wwwroot/LotteryV2/img/play_millionair.png
  69. 20 0
      website/wwwroot/LotteryV2/img/plugin.svg
  70. BIN=BIN
      website/wwwroot/LotteryV2/img/small_big_logo.png
  71. BIN=BIN
      website/wwwroot/LotteryV2/img/small_text.png
  72. BIN=BIN
      website/wwwroot/LotteryV2/img/top_banner.png
  73. 4 0
      website/wwwroot/LotteryV2/img/user.svg
  74. BIN=BIN
      website/wwwroot/LotteryV2/img/wallet_large.png
  75. BIN=BIN
      website/wwwroot/LotteryV2/img/wallet_small.png
  76. 1 0
      website/wwwroot/LotteryV2/img/wavy_border.svg
  77. 3 3
      website/wwwroot/js/function.js

+ 307 - 11
website/Areas/LotteryV2/Controllers/HomeController.cs

@@ -1,24 +1,320 @@
-using Microsoft.AspNetCore.Authorization;
-using Microsoft.AspNetCore.Mvc;
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Threading;
+using System.Threading.Tasks;
+using LotteryWebApp.Common;
+using LotteryWebApp.Extensions;
+using LotteryWebApp.Languages;
+using LotteryWebApp.Models;
+using LotteryWebApp.Service;
+using Microsoft.AspNetCore.Hosting;
 using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.Extensions.Configuration;
+using Newtonsoft.Json;
+using LotteryWebApp.Controllers;
 
 namespace LotteryWebApp.Areas.LotteryV2.Controllers
 {
     [Area("LotteryV2")]
-    // [Authorize] // Uncomment this if the project uses policy/role-based auth with Authorize
-    public class HomeController : Controller
+    public class HomeController : BaseController
     {
-        public IActionResult Index()
+        private static readonly log4net.ILog log = log4net.LogManager.GetLogger(typeof(Program));
+
+        IConfiguration configuration;
+        private readonly IWebHostEnvironment webHostEnvironment;
+        APIFunctions api = new APIFunctions();
+
+        public HomeController(IConfiguration _configuration, IWebHostEnvironment hostEnvironment)
+        {
+            configuration = _configuration;
+            webHostEnvironment = hostEnvironment;
+        }
+
+        public String GetParameter(String key)
+        {
+            return configuration.GetSection(key).Value;
+        }
+
+        public async Task<IActionResult> Index(
+            string termType,
+            String uuid,
+            String mcuid,
+            String phonenumber,
+            String token
+        )
         {
-            // Safeguard check: If they are using Session for login state
-            var serviceNameText = HttpContext.Session.GetString("serviceName");
-            if (string.IsNullOrEmpty(serviceNameText) && !User.Identity.IsAuthenticated)
+            HomeIndex_ViewModel model = new HomeIndex_ViewModel();
+            try
+            {
+
+                CultureInfo currentCulture = Thread.CurrentThread.CurrentCulture;
+                String lang = currentCulture.Name;
+
+                String msisdnAuto = null;
+
+                if (!CheckAuthToken())
+                {
+                    if (token != null)
+                    {
+                        AutoLoginRequest autoLoginRequest = new AutoLoginRequest { token = token };
+                        AutoLoginResponse autoLoginResponse = await api.AutoLoginApiAsync(configuration, autoLoginRequest);
+
+                        if (autoLoginResponse.code == Code.SUCCESS_CODE)
+                        {
+                            string msisdnReal = validateMsisdn(autoLoginResponse.data.msisdn.Substring(1));
+                            if (msisdnReal == "") return RedirectToAction("Login", "Account", new { area = "" });
+
+                            CheckAccountRequest checkAccountRequest = new CheckAccountRequest
+                            {
+                                msisdn = msisdnReal,
+                                channel = Constants.WEB_CHANNEL,
+                                language = lang == "en" ? "0" : "1"
+                            };
+                            CheckAccountResponse checkAccountResponse = api.CheckAccountApi(configuration, checkAccountRequest);
+                            if (checkAccountResponse.status == Code.SUCCESS)
+                            {
+                                string tokenGetReal = checkAccountResponse.token;
+                                HttpContext.Session.SetComplexData("msisdn", msisdnReal);
+                                CreateAuthToken();
+                                HttpContext.Session.SetComplexData("token", tokenGetReal);
+
+                                UserGetProfileRequest userGetProfileRequest = new UserGetProfileRequest { users = msisdnReal, token = tokenGetReal };
+                                Profile profileGet = api.UserLoadProfileApi(configuration, userGetProfileRequest);
+                                HttpContext.Session.SetComplexData("profile", profileGet);
+
+                                UserStatusRequest userStatusRequest = new UserStatusRequest { users = msisdnReal, token = tokenGetReal };
+                                UserStatus userStatusGet = api.GetUserStatusApi(configuration, userStatusRequest);
+                                HttpContext.Session.SetComplexData("userStatus", userStatusGet);
+                            }
+                            else
+                            {
+                                return RedirectToAction("Login", "Account", new { area = "" });
+                            }
+                        }
+                    }
+                    else if (uuid != null)
+                    {
+                        String res = await CheckAutoLogin(log, uuid);
+                        if (res != null)
+                        {
+                            dynamic json = JsonConvert.DeserializeObject(res);
+                            if (json["code"] == "200" && json["errorCode"] == "200")
+                            {
+                                msisdnAuto = json["data"]["msisdn"];
+                            }
+                        }
+
+                        String msisdnDetect = validateMsisdn(msisdnAuto.Substring(1));
+                        if (msisdnDetect != "")
+                        {
+                            RegisterRequest request = new RegisterRequest { Msisdn = msisdnDetect };
+                            RegisterResponse reset = api.UserForgotPasswordApi(configuration, request);
+                            if (reset.status == Code.SUCCESS)
+                            {
+                                HttpContext.Session.Remove("regInfos");
+                                HttpContext.Session.SetComplexData("msisdn", msisdnDetect);
+                                return RedirectToAction("Login", "Account", new { area = "", step = 2 });
+                            }
+                        }
+                        return RedirectToAction("Login", "Account", new { area = "" });
+                    }
+                    else if (phonenumber != null)
+                    {
+                        // simplified or same logic as original
+                        return RedirectToAction("Login", "Account", new { area = "" });
+                    }
+                    else
+                    {
+                        // If no token/uuid and not auth, verify existing session token
+                        var savedToken = HttpContext.Session.GetString("token");
+                        if (string.IsNullOrEmpty(savedToken))
+                        {
+                            return RedirectToAction("Login", "Account", new { area = "" });
+                        }
+                    }
+                }
+
+                Profile profile = HttpContext.Session.GetComplexData<Profile>("profile");
+                UserStatus userStatus = HttpContext.Session.GetComplexData<UserStatus>("userStatus");
+
+                model.termType = termType != null ? termType : Constants.MEGA_LOTO;
+                model.userStatus = userStatus;
+                model.profile = profile;
+                model.listTerm = new List<Term>();
+
+                String tokenGet = HttpContext.Session.GetComplexData<String>("token");
+                String fromDate = DateTime.Now.AddDays(-2).ToString("dd/MM/yyyy");
+                String toDate = DateTime.Now.ToString("dd/MM/yyyy");
+
+                // Get Top Winner
+                GetTopWinnerRequest getTopWinnerRequest = new GetTopWinnerRequest { type = lang == "en" ? "0" : "1", token = tokenGet };
+                GetTopWininerResponse getTopWininerResponse = api.GetTopWinnerApi(configuration, getTopWinnerRequest);
+                if (getTopWininerResponse.responseCode == Code.SUCCESS)
+                {
+                    model.topWinner = getTopWininerResponse.list;
+                    HttpContext.Session.SetComplexData("topWinner", model.topWinner);
+                }
+
+                // Get Term Results
+                ResultOfTermRequest resultOfTermRequest = new ResultOfTermRequest
+                {
+                    gameId = model.termType,
+                    token = tokenGet,
+                    type = Constants.TERM_HAS_NOT_RESULT_TYPE,
+                    order = Constants.DECS,
+                    fromDate = fromDate,
+                    toDate = toDate,
+                    rowsOnPage = Constants.ROW_ON_PAGE,
+                    seqPage = "1",
+                    id = Constants.ALL_DATA
+                };
+
+                ResultOfTermResponse result = api.GetResultOfTermApi(configuration, resultOfTermRequest);
+                if (result.responseCode == Code.SESSION_EXPIRED)
+                {
+                     return RedirectToAction("Login", "Account", new { area = "" });
+                }
+                else if (result.responseCode == Code.SUCCESS)
+                {
+                    model.listTerm = result.listTerm;
+                }
+
+                if (!string.IsNullOrEmpty(termType))
+                {
+                     HttpContext.Session.SetString("termType", termType);
+                }
+            }
+            catch (Exception ex)
             {
-                // Not logged in, redirect to login or home
-                return RedirectToAction("Index", "Home", new { area = "" });
+                log.Error(ex);
+                return RedirectToAction("Login", "Account", new { area = "" });
             }
 
-            return View();
+            return View(model);
+        }
+
+        public async Task<IActionResult> GameHome(string termType)
+        {
+            HomeIndex_ViewModel model = new HomeIndex_ViewModel();
+            try
+            {
+                var token = HttpContext.Session.GetString("token");
+                if (string.IsNullOrEmpty(token) && !User.Identity.IsAuthenticated)
+                {
+                    return RedirectToAction("Login", "Account", new { area = "" });
+                }
+
+                Profile profile = HttpContext.Session.GetComplexData<Profile>("profile");
+                UserStatus userStatus = HttpContext.Session.GetComplexData<UserStatus>("userStatus");
+
+                model.termType = termType != null ? termType : Constants.FLORIDA_BOLET_CODE;
+                model.userStatus = userStatus;
+                model.profile = profile;
+                model.listTerm = new List<Term>();
+
+                if (!string.IsNullOrEmpty(termType))
+                {
+                     HttpContext.Session.SetString("termType", termType);
+                }
+            }
+            catch (Exception ex)
+            {
+                log.Error(ex);
+            }
+            return View(model);
+        }
+
+        public async Task<IActionResult> FAQ()
+        {
+            HomeIndex_ViewModel model = new HomeIndex_ViewModel();
+            try
+            {
+                Profile profile = HttpContext.Session.GetComplexData<Profile>("profile");
+                UserStatus userStatus = HttpContext.Session.GetComplexData<UserStatus>("userStatus");
+                model.userStatus = userStatus;
+                model.profile = profile;
+            }
+            catch (Exception ex)
+            {
+                log.Error(ex);
+            }
+            return View(model);
+        }
+
+        public IActionResult More()
+        {
+            HomeIndex_ViewModel model = new HomeIndex_ViewModel();
+            try
+            {
+                Profile profile = HttpContext.Session.GetComplexData<Profile>("profile");
+                UserStatus userStatus = HttpContext.Session.GetComplexData<UserStatus>("userStatus");
+                model.userStatus = userStatus;
+                model.profile = profile;
+            }
+            catch (Exception ex)
+            {
+                log.Error(ex);
+            }
+            return View(model);
+        }
+
+        public IActionResult Profile()
+        {
+            HomeIndex_ViewModel model = new HomeIndex_ViewModel();
+            try
+            {
+                Profile profile = HttpContext.Session.GetComplexData<Profile>("profile");
+                UserStatus userStatus = HttpContext.Session.GetComplexData<UserStatus>("userStatus");
+                model.userStatus = userStatus;
+                model.profile = profile;
+            }
+            catch (Exception ex)
+            {
+                log.Error(ex);
+            }
+            return View(model);
+        }
+
+        public IActionResult Rule()
+        {
+            HomeIndex_ViewModel model = new HomeIndex_ViewModel();
+            try
+            {
+                Profile profile = HttpContext.Session.GetComplexData<Profile>("profile");
+                UserStatus userStatus = HttpContext.Session.GetComplexData<UserStatus>("userStatus");
+                model.userStatus = userStatus;
+                model.profile = profile;
+            }
+            catch (Exception ex)
+            {
+                log.Error(ex);
+            }
+            return View(model);
+        }
+
+        public IActionResult HowToPlay()
+        {
+            HomeIndex_ViewModel model = new HomeIndex_ViewModel();
+            try
+            {
+                Profile profile = HttpContext.Session.GetComplexData<Profile>("profile");
+                UserStatus userStatus = HttpContext.Session.GetComplexData<UserStatus>("userStatus");
+                model.userStatus = userStatus;
+                model.profile = profile;
+            }
+            catch (Exception ex)
+            {
+                log.Error(ex);
+            }
+            return View(model);
+        }
+
+        public IActionResult Logout()
+        {
+            ClearCache();
+            return Redirect(GetParameter(Constants.SUB_DOMAIN) + "/Account/Login");
         }
     }
 }

+ 71 - 0
website/Areas/LotteryV2/Views/Home/FAQ.cshtml

@@ -0,0 +1,71 @@
+@{
+    ViewData["Title"] = "LotteryV2 - FAQs";
+    ViewData["ActiveTab"] = "FAQ";
+    Layout = "~/Areas/LotteryV2/Views/Shared/_Layout.cshtml";
+}
+@using LotteryWebApp.Languages;
+
+<script src="https://cdn.tailwindcss.com"></script>
+<link rel="stylesheet" href="/LotteryV2/css/faq.css">
+
+<div class="main-container animate__animated animate__fadeIn bg-[#F5F5F5] min-h-screen relative flex flex-col pb-24 shadow-xl overflow-x-hidden">
+
+    <!-- Header Block (Red) -->
+    <div class="w-full bg-[#EE0033] h-[52px] flex items-center justify-between px-4 sticky top-0 z-50 shadow-sm">
+        <!-- Back Button -->
+        <button onclick="window.history.back()" class="w-10 h-10 flex items-center justify-center -ml-2 rounded-full active:bg-white/20 transition-colors z-10 text-white cursor-pointer">
+            <i class="fa-solid fa-arrow-left text-[20px]"></i>
+        </button>
+        <!-- Title -->
+        <div class="absolute inset-0 flex items-center justify-center pointer-events-none">
+            <span class="text-white text-[24px] font-bold tracking-wide drop-shadow-sm">@Lang.faq</span>
+        </div>
+    </div>
+
+
+
+    <!-- Banner Graphic directly integrated with Grey background -->
+    <div class="w-full relative flex justify-center mt-3 mb-1">
+         <img src="/LotteryV2/img/faq_banner_full.png" alt="FAQ Graphic" class="w-full max-h-48 object-contain z-10 px-4 pointer-events-none">
+    </div>
+
+    <!-- Messages / FAQ Chat Style List -->
+    <div class="flex-1 w-full px-5 pt-8 pb-20 space-y-5" id="faq-list">
+        
+        <!-- Standard Row Bot Bubble (Question) -->
+        <div class="flex justify-start">
+             <div class="rounded-xl rounded-tl-sm px-5 py-3 shadow-sm w-[90%] bg-[#EE0033] text-white">
+                 <span class="text-sm font-bold leading-snug block">@Lang.faq_q1</span>
+             </div>
+        </div>
+
+        <!-- Standard Row User Bubble (Answer) -->
+        <div class="flex justify-end mt-2">
+             <div class="rounded-xl rounded-tr-sm px-5 py-4 shadow-md w-[90%] bg-white text-[#212121] border border-gray-100">
+                 <span class="text-[13px] font-medium leading-relaxed block">@Lang.faq_a1</span>
+             </div>
+        </div>
+
+        <!-- Standard Row Bot Bubble (Question) -->
+        <div class="flex justify-start mt-8">
+             <div class="rounded-xl rounded-tl-sm px-5 py-3 shadow-sm w-[90%] bg-[#EE0033] text-white">
+                 <span class="text-sm font-bold leading-snug block">@Lang.faq_q2</span>
+             </div>
+        </div>
+
+        <!-- Standard Row User Bubble (Answer Long Text) -->
+        <div class="flex justify-end mt-2">
+             <div class="rounded-xl rounded-tr-sm px-5 py-4 shadow-md w-[90%] bg-white text-[#212121] border border-gray-100">
+                 <span class="text-[13px] font-medium leading-relaxed block mb-3">@Lang.faq_a2</span>
+                 <span class="text-sm font-bold text-[#EE0033] block mb-1">@Lang.faq_q3</span>
+                 <span class="text-[13px] font-medium leading-relaxed block">@Lang.faq_a3</span>
+             </div>
+        </div>
+
+
+
+    </div>
+    <!-- Bottom Navbar shared component -->
+    <partial name="_BottomNavbar" />
+</div>
+

+ 211 - 0
website/Areas/LotteryV2/Views/Home/GameHome.cshtml

@@ -0,0 +1,211 @@
+@model LotteryWebApp.Models.HomeIndex_ViewModel
+@{
+    ViewData["Title"] = "LotteryV2 - Game Home";
+    Layout = "~/Areas/LotteryV2/Views/Shared/_Layout.cshtml";
+}
+@using LotteryWebApp.Languages;
+
+@section Styles {
+    <script src="https://cdn.tailwindcss.com"></script>
+    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
+    <link rel="stylesheet" href="/LotteryV2/css/site.css" />
+}
+
+<div class="main-container animate__animated animate__fadeIn bg-[#F5F5F5] min-h-screen">
+    <!-- Top Account Profile Bar / Backgound Red header -->
+    <div class="w-full bg-[#EE0033] p-4 text-white rounded-b-0xl shadow-md">
+        <!-- Row 1: Profile Info -->
+        <div class="flex items-center gap-4">
+            <div class="w-16 h-16 rounded-full border-2 border-white/60 overflow-hidden bg-[#FFE] shadow-sm">
+                <img src="https://api.dicebear.com/7.x/avataaars/svg?seed=Ngan" alt="Avatar" class="w-full h-full object-cover">
+            </div>
+            <div>
+                <div class="font-bold text-sm tracking-wide opacity-90">@(Model?.profile?.fullName ?? "User")</div>
+                <div class="flex items-center gap-1 mt-0.5">
+                    <span class="text-3xl font-black text-[#FBF3A7]" style="text-shadow: 0 1px 2px rgba(0,0,0,0.2)">@(Model?.userStatus?.cash_coin ?? "0")</span>
+                    <span class="text-xs font-bold text-[#FBF3A7] uppercase mt-1">htg</span>
+                </div>
+            </div>
+        </div>
+
+        <!-- Row 2: Pill Actions Full Width Split -->
+        <div class="grid grid-cols-2 gap-3 mt-4">
+             <button class="btn-pulse border border-white/50 rounded-xl py-2 px-3 flex items-center justify-center gap-1 text-xs font-extrabold bg-white/10 hover:bg-white/20 transition-all">
+                 <span class="text-yellow-300 text-xl">⚡</span> @Lang.quick_pick
+             </button>
+             <button class="btn-pulse border border-white/50 rounded-xl py-2 px-3 flex items-center justify-center gap-1 text-xs font-extrabold bg-white/10 hover:bg-white/20 transition-all">
+                 <span>🎫</span> @Lang.my_ticket
+             </button>
+        </div>
+
+        <!-- Row 3: Withdraw Button Full Width -->
+        <div class="w-full mt-3">
+             <button class="btn-pulse w-full text-black font-black py-3 rounded-2xl text-[18px] flex items-center justify-center gap-2 shadow-lg transition-all" style="background: linear-gradient(118deg, #19EF4B 0%, #C0FF4B 100%);">
+                 <span>@Lang.tranfer_win_money</span>
+                 <img src="/LotteryV2/img/gold_wallet.png" alt="Wallet" class="w-6 h-6 object-contain">
+             </button>
+        </div>
+    </div>
+
+    <!-- Countdown Timer Bar with Scalloped bottom divider background -->
+    <div class="relative w-full" style="background-image: url('/LotteryV2/img/wavy_border.svg'); background-size: 100% 100%; background-repeat: no-repeat; height: 114px;">
+        <!-- Inner Absolute centering to match SVG border limits correctly -->
+        <div class="absolute inset-0 flex items-start justify-between px-6 pt-6 text-gray-800">
+             <div class="flex items-center gap-2">
+                 <div class="bg-red-50 p-1.5 rounded-lg text-[#EE0033]">
+                     <img src="/LotteryV2/img/icon_calendar.svg" alt="Calendar" class="w-5 h-5">
+                 </div>
+                 <div>
+                     <div class="text-[10px] text-gray-400 font-bold">@Lang.next_draw</div>
+                     <div class="text-xs font-black text-gray-800" id="draw-date">Friday, Mar 20, 2026</div>
+                 </div>
+             </div>
+             
+             <!-- Timer Boxes -->
+             <div class="flex gap-3 text-center">
+                 <div class="flex flex-col"><span class="text-xl font-black text-gray-800" id="countdown-hours">00</span><span class="text-[8px] text-gray-400 font-extrabold uppercase mt-0.5">@Lang.hours</span></div>
+                 <div class="text-gray-400 font-bold pt-1">:</div>
+                 <div class="flex flex-col"><span class="text-xl font-black text-gray-800" id="countdown-minutes">00</span><span class="text-[8px] text-gray-400 font-extrabold uppercase mt-0.5">@Lang.mins</span></div>
+                 <div class="text-gray-400 font-bold pt-1">:</div>
+                 <div class="flex flex-col"><span class="text-xl font-black text-gray-800" id="countdown-seconds">00</span><span class="text-[8px] text-gray-400 font-extrabold uppercase mt-0.5">@Lang.seconds</span></div>
+             </div>
+        </div>
+    </div>
+
+    <!-- Card list items with accurate illustrations -->
+    <div class="px-3 flex flex-col gap-3 pb-40 relative z-10 mt-[5px]">
+        
+        <!-- Game item 1: Basic Pick 10 -->
+        <div class="w-full bg-[#E11D48] p-3.5 rounded-2xl relative overflow-hidden card-shadow text-white border border-white/10 filter brightness-105">
+            <div class="absolute -left-6 -top-6 w-16 h-16 bg-white/10 rounded-full blur-xl"></div>
+            <div class="grid grid-cols-10 items-center">
+                <div class="col-span-3 flex flex-col items-start">
+                    <div class="text-[12px] font-black italic tracking-wider">@Lang.basic_account</div>
+                    <div class="text-xs font-black italic tracking-wider text-yellow-300 -mt-0.5 flex items-center gap-1">
+                        <span>Pick</span>
+                        <img src="/LotteryV2/img/ball_10.png" alt="10" class="w-5 h-5 object-contain">
+                    </div>
+                </div>
+                <div class="col-span-4 flex flex-col items-center text-center">
+                    <div class="text-[12px] uppercase font-bold text-white/80">@Lang.jackpot_prize</div>
+                    <div class="text-xl font-extrabold text-[#FBF3A7] tracking-wider">100.000 <span class="text-[10px] font-bold">HTG</span></div>
+                    <div class="text-[8px] mt-1 flex gap-1 items-center">@Lang.next_round <span class="font-bold text-yellow-300">05:00</span></div>
+                </div>
+                <div class="col-span-3 flex flex-col justify-end items-center h-full relative">
+                    <img src="/LotteryV2/img/gold_chest.png" alt="Chest" class="w-14 h-14 object-contain filter drop-shadow-md">
+                    <button class="bg-gradient-to-b from-yellow-300 to-yellow-400 text-red-700 font-extrabold px-3 py-1 rounded-xl text-[12px] shadow-sm transform active:scale-95 transition-all mt-1">@Lang.play</button>
+                </div>
+            </div>
+        </div>
+
+        <!-- Game item 2: Big/Small -->
+        <div class="w-full p-3.5 rounded-2xl relative overflow-hidden card-shadow text-white border border-white/10" style="background-color: rgb(38 163 30);">
+            <div class="absolute -left-6 -top-6 w-16 h-16 bg-white/10 rounded-full blur-xl"></div>
+            <div class="grid grid-cols-10 items-center">
+                <div class="col-span-3 flex flex-col items-start">
+                    <div class="text-[12px] font-black italic tracking-wide">@Lang.small_big</div>
+                    <div class="flex items-center gap-1 mt-1">
+                        <img src="/LotteryV2/img/ball_88.png" alt="88" class="w-5 h-5 object-contain">
+                    </div>
+                </div>
+                <div class="col-span-4 flex flex-col items-center text-center">
+                    <div class="text-[12px] uppercase font-bold text-white/80">@Lang.jackpot_prize</div>
+                    <div class="text-xl font-extrabold text-[#FBF3A7] tracking-wider">100 <span class="text-[10px] font-bold">HTG</span></div>
+                    <div class="text-[8px] mt-1 flex gap-1 items-center">@Lang.next_round <span class="font-bold text-yellow-300">05:00</span></div>
+                </div>
+                <div class="col-span-3 flex flex-col justify-end items-center h-full relative">
+                    <img src="/LotteryV2/img/gold_bag.png" alt="Bag" class="w-14 h-14 object-contain filter drop-shadow-md">
+                    <button class="bg-gradient-to-b from-yellow-300 to-yellow-400 text-emerald-800 font-extrabold px-3 py-1 rounded-xl text-[12px] shadow-sm transform active:scale-95 transition-all mt-1">@Lang.play</button>
+                </div>
+            </div>
+        </div>
+
+        <!-- Game item 3: @Lang.odd_even -->
+        <div class="w-full p-3.5 rounded-2xl relative overflow-hidden card-shadow text-white border border-white/10" style="background-color: rgb(213 45 233);">
+            <div class="absolute -left-6 -top-6 w-16 h-16 bg-white/10 rounded-full blur-xl"></div>
+            <div class="grid grid-cols-10 items-center">
+                <div class="col-span-3 flex flex-col items-start">
+                    <div class="text-[12px] font-black italic tracking-wide">@Lang.odd_even</div>
+                    <div class="flex items-center gap-1 mt-1">
+                        <img src="/LotteryV2/img/ball_3.png" alt="3" class="w-4 h-4 object-contain">
+                        <img src="/LotteryV2/img/ball_20.png" alt="20" class="w-5 h-5 object-contain -ml-1">
+                    </div>
+                </div>
+                <div class="col-span-4 flex flex-col items-center text-center">
+                    <div class="text-[12px] uppercase font-bold text-white/80">@Lang.jackpot_prize</div>
+                    <div class="text-xl font-extrabold text-[#FBF3A7] tracking-wider">200 <span class="text-[10px] font-bold">HTG</span></div>
+                    <div class="text-[8px] mt-1 flex gap-1 items-center">@Lang.next_round <span class="font-bold text-yellow-300">05:00</span></div>
+                </div>
+                <div class="col-span-3 flex flex-col justify-end items-center h-full relative">
+                    <img src="/LotteryV2/img/gold_wallet.png" alt="Wallet" class="w-14 h-14 object-contain filter drop-shadow-md">
+                    <button class="bg-gradient-to-b from-yellow-300 to-yellow-400 text-blue-800 font-extrabold px-3 py-1 rounded-xl text-[12px] shadow-sm transform active:scale-95 transition-all mt-1">@Lang.play</button>
+                </div>
+            </div>
+        </div>
+
+    </div>
+
+    <!-- Banner Info Section centered red text bar -->
+    <div class="fixed bottom-[74px] left-1/2 -translate-x-1/2 w-full max-w-[414px] bg-[#EE0033] text-white py-2 text-center text-[12px] font-bold tracking-wide z-40 flex flex-col items-center justify-center overflow-hidden h-auto shadow-md">
+         <div class="flex flex-col items-center w-full animate-slide-up">
+             <!-- Row 1 -->
+             <div class="opacity-90">@Lang.have_chance_to_get</div>
+             <!-- Row 2 -->
+             <div class="text-[18px] font-black text-[#FBF3A7] mt-0.5">
+                  100.000 HTG today !
+             </div>
+         </div>
+    </div>
+
+    <!-- Bottom Navbar shared component -->
+    <partial name="_BottomNavbar" />
+</div>
+
+@section Scripts {
+    <script>
+        function startCountdown() {
+            const targetHour = 20; // 20:00 (8h tối)
+            const now = new Date();
+            let target = new Date();
+            target.setHours(targetHour, 0, 0, 0);
+
+            // Nếu giờ hiện tại đã qua 20h tối, mốc đếm ngược sẽ nhảy sang 20h tối ngày mai
+            if (now >= target) {
+                target.setDate(target.getDate() + 1);
+            }
+
+            // Định dạng ngày hiển thị (VD: Friday, Mar 20, 2026)
+            const options = { weekday: 'long', month: 'short', day: 'numeric', year: 'numeric' };
+            const dateText = target.toLocaleDateString('en-US', options);
+            document.getElementById('draw-date').innerText = dateText;
+
+            function updateTime() {
+                const current = new Date();
+                const diff = target - current;
+
+                if (diff <= 0) {
+                    target.setDate(target.getDate() + 1);
+                    const updatedDateText = target.toLocaleDateString('en-US', options);
+                    document.getElementById('draw-date').innerText = updatedDateText;
+                    updateTime();
+                    return;
+                }
+
+                const hours = Math.floor((diff / (1000 * 60 * 60)));
+                const minutes = Math.floor((diff % (1000 * 60 * 60)) / (1000 * 60));
+                const seconds = Math.floor((diff % (1000 * 60)) / 1000);
+
+                document.getElementById('countdown-hours').innerText = hours.toString().padStart(2, '0');
+                document.getElementById('countdown-minutes').innerText = minutes.toString().padStart(2, '0');
+                document.getElementById('countdown-seconds').innerText = seconds.toString().padStart(2, '0');
+            }
+
+            updateTime();
+            setInterval(updateTime, 1000);
+        }
+
+        document.addEventListener('DOMContentLoaded', startCountdown);
+    </script>
+}
+
+

+ 147 - 0
website/Areas/LotteryV2/Views/Home/HowToPlay.cshtml

@@ -0,0 +1,147 @@
+@model LotteryWebApp.Models.HomeIndex_ViewModel
+@{
+    ViewData["Title"] = "LotteryV2 - How to play";
+    ViewData["ActiveTab"] = "More";
+    Layout = "~/Areas/LotteryV2/Views/Shared/_Layout.cshtml";
+}
+@using LotteryWebApp.Languages;
+
+<script src="https://cdn.tailwindcss.com"></script>
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
+<link rel="stylesheet" href="/LotteryV2/css/site.css" />
+
+<!-- Add custom font Bricolage Grotesque to match Figma styling -->
+<link href="https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:wght@400;700;800;900&display=swap" rel="stylesheet">
+<link rel="stylesheet" href="/LotteryV2/css/howtoplay.css" />
+
+<div class="main-container animate__animated animate__fadeIn min-h-screen relative flex flex-col pb-24 font-bricolage overflow-x-hidden" style="background-color: #EAEAEA !important;">
+    
+    <!-- Header (Red Background) -->
+    <div class="w-full bg-[#EE0033] h-[52px] flex items-center justify-between px-4 sticky top-0 z-50">
+        <!-- Back Button -->
+        <button onclick="window.history.back()" class="w-10 h-10 flex items-center justify-center -ml-2 rounded-full active:bg-white/20 transition-colors z-10 text-white">
+            <i class="fa-solid fa-arrow-left text-[20px]"></i>
+        </button>
+        <!-- Title -->
+        <div class="absolute inset-0 flex items-center justify-center pointer-events-none">
+            <span class="font-bold text-[24px] text-white tracking-wide drop-shadow-sm">@Lang.how_to_play</span>
+        </div>
+    </div>
+
+    <!-- Content / Cards -->
+    <div class="w-full flex flex-col px-5 py-4 gap-6">
+
+        <!-- Card 1: Basic Pick 10 -->
+        <div class="w-full flex flex-col gap-1.5 cursor-pointer hover:opacity-95 transition-opacity" onclick="window.location.href='/LotteryV2/Home/GameHome'">
+            <h2 class="text-[13px] font-bold text-[#534A4A] tracking-normal px-1">@Lang.how_to_play_pick10</h2>
+            <div class="w-full h-[90px] rounded-[16px] relative overflow-hidden card-red border border-white/20 shadow-[0_4px_10px_rgba(238,0,51,0.25)]">
+                <!-- Background Glow -->
+                <div class="absolute -left-6 -top-6 w-20 h-20 bg-white/20 rounded-full blur-2xl"></div>
+                <div class="absolute -bottom-10 -right-10 w-24 h-24 bg-black/20 rounded-full blur-2xl"></div>
+                
+                <div class="w-full h-full flex items-center justify-between pl-3 pr-2 relative z-10">
+                    <!-- Left: Basic Pick 10 Logo -->
+                    <div class="flex flex-col items-center justify-center pt-2">
+                        <span class="text-[14px] font-black italic text-white drop-shadow-md leading-[1.1] text-center" style="font-family: 'Montserrat', sans-serif;">Basic<br>Pick</span>
+                        <img src="/LotteryV2/img/ball_10.png" class="w-7 h-7 object-contain drop-shadow-md -mt-2 -mr-8 border-2 border-[#E11D48] rounded-full bg-[#E11D48]">
+                    </div>
+
+                    <!-- Center: Numbers -->
+                    <div class="flex flex-col items-center mt-0.5 ml-4">
+                        <span class="text-[10px] font-[800] text-white tracking-widest uppercase drop-shadow">@Lang.jackpot_prize</span>
+                        <div class="flex items-start gap-1 mt-0.5">
+                            <span class="text-[28px] font-[900] text-white leading-none tracking-tight drop-shadow-md">100.000</span>
+                            <span class="text-[7px] font-[800] text-white bg-transparent border border-white/60 rounded px-[2px] mt-1 shadow-sm leading-tight">HTG</span>
+                        </div>
+                        <div class="text-[9px] text-white/90 mt-0.5">@Lang.next_round <span class="font-[900] text-white ml-0.5 drop-shadow">05:00</span></div>
+                    </div>
+
+                    <!-- Right: Graphic & Button -->
+                    <div class="flex flex-col items-end justify-between h-full py-2 w-[70px]">
+                        <img src="/LotteryV2/img/play_chest.png" class="h-[46px] w-[56px] object-contain drop-shadow-lg scale-125 origin-top-right mr-1 mt-1">
+                        <div class="w-full yellow-button text-center rounded-[8px] py-[3px] text-[10px] font-[900] px-2 z-20 active:scale-95 transition-transform mt-auto">@Lang.play</div>
+                    </div>
+                </div>
+            </div>
+        </div>
+
+        <!-- Card 2: Millionair -->
+        <div class="w-full flex flex-col gap-1.5 cursor-pointer hover:opacity-95 transition-opacity" onclick="window.location.href='/LotteryV2/Home/GameHome'">
+            <h2 class="text-[13px] font-bold text-[#534A4A] tracking-normal px-1">@Lang.how_to_play_millionair</h2>
+            <div class="w-full h-[90px] rounded-[16px] relative overflow-hidden card-blue border border-white/20 shadow-[0_4px_10px_rgba(26,146,244,0.25)]">
+                <!-- Background Glow -->
+                <div class="absolute -left-6 -top-6 w-20 h-20 bg-white/20 rounded-full blur-2xl"></div>
+                <div class="absolute -bottom-10 -right-10 w-24 h-24 bg-black/20 rounded-full blur-2xl"></div>
+                
+                <div class="w-full h-full flex items-center justify-between pl-1 pr-2 relative z-10">
+                    <!-- Left: Millionair Graphic -->
+                    <div class="flex flex-col items-center justify-end relative w-[80px] h-full z-10">
+                        <img src="/LotteryV2/img/ball_86.png" class="absolute left-[-12px] top-[12px] w-[38px] h-[38px] object-contain drop-shadow-md z-0 transform -rotate-[15deg]">
+                        <img src="/LotteryV2/img/ball_88.png" class="absolute left-[52px] top-[26px] w-[32px] h-[32px] object-contain drop-shadow-md z-0 transform rotate-[15deg]">
+                        <img src="/LotteryV2/img/m1.png" class="absolute left-[10px] bottom-[-5px] h-[95px] w-auto object-contain drop-shadow-md z-10">
+                        <span class="text-[12px] font-black italic text-white drop-shadow-[0_2px_4px_rgba(0,0,0,0.8)] absolute bottom-[8px] left-[12px] tracking-wide z-20" style="font-family: 'Montserrat', sans-serif;">Millionair</span>
+                    </div>
+
+                    <!-- Center: Numbers -->
+                    <div class="flex flex-col items-center mt-0.5 -ml-1">
+                        <span class="text-[10px] font-[800] text-white tracking-widest uppercase drop-shadow">@Lang.jackpot_prize</span>
+                        <div class="flex items-start gap-1 mt-0.5">
+                            <span class="text-[28px] font-[900] text-[#FFDE59] leading-none tracking-tight drop-shadow-md">500.000</span>
+                            <span class="text-[7px] font-[800] text-white bg-transparent border border-white/60 rounded px-[2px] mt-1 shadow-sm leading-tight">HTG</span>
+                        </div>
+                        <div class="text-[9px] text-white/90 mt-0.5">@Lang.next_round <span class="font-[900] text-white ml-0.5 drop-shadow">05:00</span></div>
+                    </div>
+
+                    <!-- Right: Graphic & Button -->
+                    <div class="flex flex-col items-end justify-between h-full py-2 w-[70px]">
+                        <img src="/LotteryV2/img/play_millionair.png" class="h-[43px] w-[58px] object-contain drop-shadow-[0_5px_8px_rgba(0,0,0,0.3)] scale-110 origin-right mr-1 mt-2">
+                        <div class="w-full yellow-button text-center rounded-[8px] py-[3px] text-[10px] font-[900] px-2 z-20 active:scale-95 transition-transform mt-auto">@Lang.play</div>
+                    </div>
+                </div>
+            </div>
+        </div>
+
+        <!-- Card 3: Mega Bet -->
+        <div class="w-full flex flex-col gap-1.5 cursor-pointer hover:opacity-95 transition-opacity" onclick="window.location.href='/LotteryV2/Home/GameHome'">
+            <h2 class="text-[13px] font-bold text-[#534A4A] tracking-normal px-1">@Lang.how_to_play_megabet</h2>
+            <div class="w-full h-[90px] rounded-[16px] relative overflow-hidden card-orange border border-white/20 shadow-[0_4px_10px_rgba(248,110,34,0.25)]">
+                <!-- Background Glow -->
+                <div class="absolute -left-6 -top-6 w-20 h-20 bg-white/20 rounded-full blur-2xl"></div>
+                <div class="absolute -bottom-10 -right-10 w-24 h-24 bg-black/20 rounded-full blur-2xl"></div>
+                
+                <div class="w-full h-full flex items-center justify-between pl-3 pr-2 relative z-10">
+                    <!-- Left: Mega Bet Graphic -->
+                    <div class="flex items-center relative w-[80px] h-full">
+                        <div class="flex flex-col text-white drop-shadow-md text-left z-20" style="font-family: 'Montserrat', sans-serif;">
+                            <span class="text-[10px] font-[900] italic leading-[0.9]">@Lang.MEGA</span>
+                            <span class="text-[15px] font-[900] italic text-[#FFDE59] leading-[0.9]">@Lang.Bet</span>
+                        </div>
+                        <img src="/LotteryV2/img/ball_88.png" class="w-[22px] h-[22px] object-contain drop-shadow-md absolute left-[38px] top-[24px] z-10">
+                        <img src="/LotteryV2/img/ball_99.png" class="w-[28px] h-[28px] object-contain drop-shadow-lg absolute left-[52px] top-[30px] z-30">
+                    </div>
+
+                    <!-- Center: Numbers -->
+                    <div class="flex flex-col items-center mt-0.5 ml-2">
+                        <span class="text-[10px] font-[800] text-white tracking-widest uppercase drop-shadow">@Lang.jackpot_prize</span>
+                        <div class="flex items-start gap-1 mt-0.5">
+                            <span class="text-[28px] font-[900] text-white leading-none tracking-tight drop-shadow-md">800.000</span>
+                            <span class="text-[7px] font-[800] text-white bg-transparent border border-white/60 rounded px-[2px] mt-1 shadow-sm leading-tight">HTG</span>
+                        </div>
+                        <div class="text-[9px] text-white/90 mt-0.5">@Lang.next_round <span class="font-[900] text-white ml-0.5 drop-shadow">05:00</span></div>
+                    </div>
+
+                    <!-- Right: Graphic & Button -->
+                    <div class="flex flex-col items-end justify-between h-full py-2 w-[70px]">
+                        <img src="/LotteryV2/img/play_megabet.png" class="h-[43px] w-[65px] object-contain drop-shadow-[0_8px_10px_rgba(0,0,0,0.5)] scale-110 origin-right mr-1 mt-2">
+                        <div class="w-full yellow-button text-center rounded-[8px] py-[3px] text-[10px] font-[900] px-2 z-20 active:scale-95 transition-transform mt-auto">@Lang.play</div>
+                    </div>
+                </div>
+            </div>
+        </div>
+
+    </div>
+
+</div>
+
+<!-- Bottom Navbar shared component -->
+<partial name="_BottomNavbar" />

+ 148 - 9
website/Areas/LotteryV2/Views/Home/Index.cshtml

@@ -1,14 +1,153 @@
 @{
-    ViewData["Title"] = "LotteryV2 Home";
+    ViewData["Title"] = "LotteryV2 - Trang Chủ";
 }
+@using LotteryWebApp.Languages;
+@using LotteryWebApp.Controllers;
+@using LotteryWebApp.Common;
 
-<div class="lottery-v2-container animate__animated animate__fadeIn">
-    <div class="lottery-v2-card">
-        <h1 class="animate__animated animate__pulse animate__infinite">💰 Lottery V2 💰</h1>
-        <hr class="border-secondary">
-        <p>This section is completely isolated with its own structure for view layouts, logic, style and script execution.</p>
-        <button class="lottery-v2-btn-back" onclick="welcomeAlert();">Test JS Execution!</button>
-        <br />
-        <a href="/" class="btn btn-outline-light mt-3">Back to Main Website</a>
+<!-- Tailwind CSS isolated loaded specifically for this Page -->
+<script src="https://cdn.tailwindcss.com"></script>
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
+<link rel="stylesheet" href="/LotteryV2/css/site.css" />
+
+<div class="main-container animate__animated animate__fadeIn">
+    <!-- Top Area Banner / Big Illustration with absolute Logo overlay -->
+    <div class="relative w-full flex flex-col items-center pt-3">
+        <!-- Logo -->
+        <div class="w-56 z-10 filter drop-shadow-md">
+            <img src="/LotteryV2/img/logo.png" alt="Logo" class="w-full h-auto object-contain">
+        </div>
+        
+        <!-- Banner Illustration sits absolute layered or under -->
+        <div class="w-full -mt-12">
+            <img src="/LotteryV2/img/top_banner.png" alt="Top Banner" class="w-full h-auto object-cover">
+        </div>
     </div>
+
+    <!-- Game List Section -->
+    <div class="px-4 mt-2">
+        <div class="flex flex-col gap-3">
+            
+            <!-- Game Card 1: Basic Pick 10 (Dynamic Language) -->
+            <div class="card-red relative w-full h-[110px] rounded-2xl overflow-hidden shadow-lg transform hover:scale-[1.01] transition-all duration-200 cursor-pointer animate__animated animate__slideInUp">
+                <!-- Glowing effect circle inside card background -->
+                <div class="absolute -left-4 -top-4 w-16 h-16 bg-white/10 rounded-full blur-xl"></div>
+                <div class="absolute -right-4 -bottom-4 w-20 h-20 bg-black/10 rounded-full blur-xl"></div>
+
+                <div class="absolute inset-0 grid grid-cols-10 items-center px-3 text-white">
+                    <!-- Left: Module and Ball component -->
+                    <div class="col-span-3 flex flex-col items-start justify-center pl-2">
+                        <div class="relative">
+                            <div class="text-[13px] font-black italic tracking-wider text-white">Basic</div>
+                            <div class="text-[14px] font-black italic tracking-wider text-yellow-300 -mt-1">Pick</div>
+                            <!-- Yellow number style ball -->
+                            <div class="absolute left-10 top-2 w-7 h-7 bg-gradient-to-br from-yellow-300 to-yellow-500 rounded-full border border-white flex items-center justify-center shadow-md">
+                                <span class="text-red-700 font-extrabold text-xs">10</span>
+                            </div>
+                        </div>
+                    </div>
+
+                    <!-- Center: Dynamic text layer aligned for Translation -->
+                    <div class="col-span-4 flex flex-col items-center justify-center text-center">
+                        <div class="text-[10px] uppercase font-bold text-gray-200 tracking-wider">Jackpot Prize</div>
+                        <div class="text-2xl font-black text-yellow-400 mt-0.5" style="text-shadow: 0 2px 4px rgba(0,0,0,0.3)">100.000<span class="text-xs font-normal text-white"> HTG</span></div>
+                        <div class="text-[9px] text-gray-200 mt-1 flex gap-1">Next round <span class="font-bold text-white">05:00</span></div>
+                    </div>
+
+                    <!-- Right: Illustration from image overlay & button -->
+                    <div class="col-span-3 flex flex-col items-center justify-end h-full pb-2 relative">
+                        <img src="/LotteryV2/img/gold.png" alt="Chest" class="absolute -top-1 right-2 w-14 h-14 object-contain animate__animated animate__pulse animate__infinite animate__slow">
+                        <button class="bg-gradient-to-b from-yellow-300 to-yellow-400 text-red-700 font-extrabold px-3 py-1.5 rounded-xl text-[10px] shadow-md hover:from-yellow-200 hover:to-yellow-300" onclick="changeGame()" id="MEGA_LOTO_ID" value="@Constants.MEGA_LOTO">Play now</button>
+                    </div>
+                </div>
+            </div>
+
+            <!-- Card 2 and 3 commented out by user previously -->
+             <!-- Game Card 2: Millionair (Dynamic Language) -->
+            @* <div class="card-blue relative w-full h-[110px] rounded-2xl overflow-hidden shadow-lg transform hover:scale-[1.01] transition-all duration-200 cursor-pointer animate__animated animate__slideInUp animate__delay-1s">
+                <div class="absolute -left-4 -top-4 w-16 h-16 bg-white/10 rounded-full blur-xl"></div>
+                
+                <div class="absolute inset-0 grid grid-cols-10 items-center px-3 text-white">
+                    <!-- Left: Millionair text content -->
+                    <div class="col-span-3 flex items-center h-full relative">
+                        <!-- Left Illustration overlapping -->
+                        <img src="/LotteryV2/img/m1.png" alt="Icon" class="absolute -left-1 bottom-0 h-[85px] object-contain">
+                        <div class="pl-12 text-[14px] font-black italic tracking-wider text-white mt-1">Millionair</div>
+                    </div>
+
+                    <div class="col-span-4 flex flex-col items-center justify-center text-center">
+                        <div class="text-[10px] uppercase font-bold text-gray-200 tracking-wider">Jackpot Prize</div>
+                        <div class="text-2xl font-black text-yellow-400 mt-0.5" style="text-shadow: 0 2px 4px rgba(0,0,0,0.3)">500.000<span class="text-xs font-normal text-white"> HTG</span></div>
+                        <div class="text-[9px] text-gray-200 mt-1 flex gap-1">Next round <span class="font-bold text-white">05:00</span></div>
+                    </div>
+
+                    <div class="col-span-3 flex flex-col items-center justify-end h-full pb-2 relative">
+                        <!-- Assuming multiple icons overlay, can absolute them. m1 was cash illustration downloaded earlier -->
+                        <button class="bg-gradient-to-b from-yellow-300 to-yellow-400 text-red-700 font-extrabold px-3 py-1.5 rounded-xl text-[10px] shadow-md hover:from-yellow-200 hover:to-yellow-300">Play now</button>
+                    </div>
+                </div>
+            </div> *@
+
+            <!-- Game Card 3: Mega Bet -->
+            @* <div class="card-orange relative w-full h-[110px] rounded-2xl overflow-hidden shadow-lg transform hover:scale-[1.01] transition-all duration-200 cursor-pointer animate__animated animate__slideInUp animate__delay-2s">
+                <div class="absolute -left-4 -top-4 w-16 h-16 bg-white/10 rounded-full blur-xl"></div>
+                
+                <div class="absolute inset-0 grid grid-cols-10 items-center px-3 text-white">
+                    <!-- Left: Standard dynamic texts with overlay red car if any layout overlaps -->
+                    <div class="col-span-3 flex flex-col items-start justify-center pl-2">
+                        <div class="relative">
+                            <div class="text-[13px] font-black italic tracking-wider text-white">MEGA</div>
+                            <div class="text-[14px] font-black italic tracking-wider text-red-200 -mt-1">Bet</div>
+                            <div class="absolute left-10 top-1 flex">
+                                <span class="w-5 h-5 rounded-full bg-white text-gray-800 text-[10px] font-bold flex items-center justify-center border border-gray-300 -mr-1 shadow-sm">88</span>
+                                <span class="w-5 h-5 rounded-full bg-red-500 text-white text-[10px] font-bold flex items-center justify-center border border-white shadow-sm">99</span>
+                            </div>
+                        </div>
+                    </div>
+
+                    <div class="col-span-4 flex flex-col items-center justify-center text-center">
+                        <div class="text-[10px] uppercase font-bold text-gray-200 tracking-wider">Jackpot Prize</div>
+                        <div class="text-2xl font-black text-yellow-400 mt-0.5" style="text-shadow: 0 2px 4px rgba(0,0,0,0.3)">800.000<span class="text-xs font-normal text-white"> HTG</span></div>
+                        <div class="text-[9px] text-gray-200 mt-1 flex gap-1">Next round <span class="font-bold text-white">05:00</span></div>
+                    </div>
+
+                    <div class="col-span-3 flex flex-col items-center justify-end h-full pb-2 relative">
+                        <!-- illustration3 is Red Car, absolute positioned overlay at the top edge of back section layout -->
+                        <img src="/LotteryV2/img/illustration3.png" alt="Car" class="absolute -top-1 -right-1 w-16 h-12 object-contain filter drop-shadow-md">
+                        <button class="bg-gradient-to-b from-yellow-300 to-yellow-400 text-red-700 font-extrabold px-3 py-1.5 rounded-xl text-[10px] shadow-md hover:from-yellow-200 hover:to-yellow-300">Play now</button>
+                    </div>
+                </div>
+            </div> *@
+        </div>
+    </div>
+
+    <!-- Bottom Navbar (Conforms exactly to Menu Node 96:260)
+    <div class="fixed bottom-0 left-1/2 -translate-x-1/2 w-full max-w-[414px] bg-gradient-to-r from-red-600 to-red-700 bg-white/10 backdrop-blur-md border-t border-white/20 p-2 flex justify-around items-center text-white z-50 rounded-t-2xl shadow-xl">
+        <div class="flex flex-col items-center text-yellow-300 cursor-pointer">
+            <i class="fas fa-home text-lg"></i>
+            <span class="text-[9px] mt-1 font-semibold">Trang chủ</span>
+        </div>
+        <div class="flex flex-col items-center text-white/70 cursor-pointer hover:text-white transition-colors">
+            <i class="fas fa-book-open text-lg"></i>
+            <span class="text-[9px] mt-1">Luật chơi</span>
+        </div>
+        <div class="flex flex-col items-center text-white/70 cursor-pointer hover:text-white transition-colors">
+            <i class="fas fa-history text-lg"></i>
+            <span class="text-[9px] mt-1">Lịch sử</span>
+        </div>
+        <div class="flex flex-col items-center text-white/70 cursor-pointer hover:text-white transition-colors">
+            <i class="fas fa-question-circle text-lg"></i>
+            <span class="text-[9px] mt-1">FAQs</span>
+        </div>
+        <div class="flex flex-col items-center text-white/70 cursor-pointer hover:text-white transition-colors">
+            <i class="fas fa-ellipsis-h text-lg"></i>
+            <span class="text-[9px] mt-1">Thêm</span>
+        </div>
+    </div> -->
 </div>
+<script>
+    function changeGame() {
+            var termType = $("#MEGA_LOTO_ID").val();
+            location.href = '@Url.Action("GameHome", "Home", new { area = "LotteryV2" })?termType=' + termType;
+        }
+</script>

+ 106 - 0
website/Areas/LotteryV2/Views/Home/More.cshtml

@@ -0,0 +1,106 @@
+@model LotteryWebApp.Models.HomeIndex_ViewModel
+@{
+    ViewData["Title"] = "LotteryV2 - More";
+    ViewData["ActiveTab"] = "More";
+    Layout = "~/Areas/LotteryV2/Views/Shared/_Layout.cshtml";
+}
+@using LotteryWebApp.Languages;
+
+<script src="https://cdn.tailwindcss.com"></script>
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
+<link rel="stylesheet" href="/LotteryV2/css/site.css" />
+<link rel="stylesheet" href="/LotteryV2/css/more.css" />
+
+<div class="main-container animate__animated animate__fadeIn min-h-screen relative flex flex-col pb-24 overflow-x-hidden" style="background-color: #EAEAEA !important;">
+    
+    <!-- User Profile Header (Center Aligned, Red Background) -->
+    <div class="w-full bg-[#EE0033] flex flex-col items-center justify-center pt-8 pb-6 px-6 relative z-10 border-none m-0">
+        <!-- Avatar Ring -->
+        <div class="w-[88px] h-[88px] bg-[#EAEAEA] rounded-full flex items-center justify-center border-4 border-[#FFF9CB] shadow-lg mb-3 overflow-hidden">
+            <img src="/LotteryV2/img/avatar.png" class="w-full h-full object-cover" onerror="this.outerHTML='<i class=\'fa-solid fa-user text-gray-500 text-4xl\'></i>'" />
+        </div>
+        <!-- Info -->
+        <span class="font-bold text-lg text-white tracking-wide">@(Model?.profile?.fullName ?? "User")</span>
+        <span class="text-sm text-white font-medium tracking-wide">@(Model?.profile?.users ?? "0000000000")</span>
+    </div>
+
+    <!-- Menu List (White Full Container) -->
+    <div class="w-full bg-white flex flex-col px-6 pt-2 pb-6 relative z-10 m-0 border-none">
+        
+        <!-- Item: Winning Account -->
+        <div class="flex items-center justify-between py-[18px] border-b-2 border-dashed border-gray-100 cursor-pointer transition-colors active:bg-gray-50">
+            <div class="flex items-center gap-4">
+                <i class="fa-solid fa-sack-dollar text-[#4A4A4A] text-[20px] w-6 text-center"></i>
+                <span class="text-[#212121] font-bold text-[13px]">@Lang.winning_account</span>
+            </div>
+            <span class="font-extrabold text-[15px] text-[#212121]">@(Model?.userStatus?.cash_coin ?? "0") HTG</span>
+        </div>
+
+        <!-- Item: Profile -->
+        <div class="flex items-center justify-between py-[18px] border-b-2 border-dashed border-gray-100 cursor-pointer transition-colors active:bg-gray-50" onclick="window.location.href='/LotteryV2/Home/Profile'">
+            <div class="flex items-center gap-4">
+                <i class="fa-regular fa-user text-[#4A4A4A] text-[20px] w-6 text-center"></i>
+                <span class="text-[#212121] font-bold text-[13px]">@Lang.profile</span>
+            </div>
+            <i class="fa-solid fa-chevron-right text-gray-400 text-sm opacity-80"></i>
+        </div>
+
+        <!-- Item: How to play Pick 10 -->
+        <div class="flex items-center justify-between py-[18px] border-b-2 border-dashed border-gray-100 cursor-pointer transition-colors active:bg-gray-50" onclick="window.location.href='/LotteryV2/Home/HowToPlay'">
+            <div class="flex items-center gap-4">
+                <i class="fa-regular fa-circle-question text-[#4A4A4A] text-[20px] w-6 text-center"></i>
+                <span class="text-[#212121] font-bold text-[13px]">@Lang.how_to_play_pick10</span>
+            </div>
+            <i class="fa-solid fa-chevron-right text-gray-400 text-sm opacity-80"></i>
+        </div>
+
+        <!-- Item: Change Lang -->
+        <div class="flex items-center justify-between py-[18px] border-b-2 border-dashed border-gray-100 cursor-pointer transition-colors active:bg-gray-50" onclick="toggleLanguage()">
+            <div class="flex items-center gap-4">
+                <i class="fa-solid fa-language text-[#1689FC] text-[22px] w-6 text-center shadow-blue-500 drop-shadow-sm"></i>
+                <span class="text-[#212121] font-bold text-[13px]">@Lang.change_language</span>
+            </div>
+            <i class="fa-solid fa-chevron-right text-gray-400 text-sm opacity-80"></i>
+        </div>
+
+        <!-- Item: Contact Us -->
+        <div class="flex items-center justify-between py-[18px] cursor-pointer transition-colors active:bg-gray-50">
+            <div class="flex items-center gap-4">
+                <i class="fa-solid fa-phone-volume text-[#4A4A4A] text-[18px] w-6 text-center" style="transform: rotate(-15deg);"></i>
+                <span class="text-[#212121] font-bold text-[13px]">@Lang.contact_us</span>
+            </div>
+            <div class="flex items-center gap-3">
+                <span class="font-extrabold text-[15px] text-[#EE0033]">191</span>
+                <i class="fa-solid fa-chevron-right text-gray-400 text-sm opacity-80"></i>
+            </div>
+        </div>
+
+        <!-- Log out Button -->
+        <div class="mt-6 w-full px-1">
+            <a href="@Url.Action("Logout", "Home", new { area = "LotteryV2" })" class="w-full flex items-center justify-center bg-[#f00b39] text-white font-bold text-[18px] py-[14px] rounded-[10px] shadow-[0_5px_15px_rgba(238,0,51,0.2)] hover:bg-red-700 transition-colors cursor-pointer no-underline active:scale-95 duration-150">
+                @Lang.logout
+            </a>
+        </div>
+    </div>
+    
+    <!-- Real scalloped edge using CSS mask trick below the white box -->
+    <div class="w-full relative z-10 scalloped-bottom"></div>
+
+</div>
+
+<!-- Bottom Navbar shared component -->
+<partial name="_BottomNavbar" />
+
+<script>
+    function toggleLanguage() {
+        // Toggle language based on current system culture
+        let currentLang = '@System.Threading.Thread.CurrentThread.CurrentCulture.Name';
+        let newLang = currentLang === 'en' ? 'fr' : 'en'; // Switch between en and fr
+
+        fetch('/Home/SetCulture?lang=' + newLang)
+            .then(response => {
+                location.reload();
+            })
+            .catch(error => console.error('Error changing language:', error));
+    }
+</script>

+ 81 - 0
website/Areas/LotteryV2/Views/Home/Profile.cshtml

@@ -0,0 +1,81 @@
+@model LotteryWebApp.Models.HomeIndex_ViewModel
+@{
+    ViewData["Title"] = "LotteryV2 - Profile";
+    ViewData["ActiveTab"] = "More";
+    Layout = "~/Areas/LotteryV2/Views/Shared/_Layout.cshtml";
+}
+@using LotteryWebApp.Languages;
+
+<script src="https://cdn.tailwindcss.com"></script>
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
+<link rel="stylesheet" href="/LotteryV2/css/site.css" />
+
+<!-- Add custom font Bricolage Grotesque to match Figma styling -->
+<link href="https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:wght@400;700;800&display=swap" rel="stylesheet">
+<style>
+    .font-bricolage { font-family: 'Bricolage Grotesque', sans-serif; }
+</style>
+
+<div class="main-container animate__animated animate__fadeIn min-h-screen relative flex flex-col pb-24 font-bricolage" style="background-color: #EAEAEA !important;">
+    
+    <!-- Header (Red Background) -->
+    <div class="w-full bg-[#EE0033] h-[52px] flex items-center justify-between px-4 sticky top-0 z-50">
+        <!-- Back Button -->
+        <button onclick="window.location.href='/LotteryV2/Home/More'" class="w-10 h-10 flex items-center justify-center -ml-2 rounded-full active:bg-white/20 transition-colors z-10 text-white">
+            <i class="fa-solid fa-arrow-left text-[24px]"></i>
+        </button>
+        <!-- Title -->
+        <div class="absolute inset-0 flex items-center justify-center pointer-events-none">
+            <span class="font-bold text-[32px] text-white tracking-wide">@Lang.profile</span>
+        </div>
+    </div>
+
+    <!-- Content Form -->
+    <div class="w-full flex flex-col items-center px-5 py-6 gap-3 flex-1 overflow-x-hidden">
+        
+        <!-- Phone Number Field (Disabled State) -->
+        <div class="w-full flex flex-col gap-2">
+            <label class="font-bold text-[#534A4A] text-[14px]">@Lang.phone_number</label>
+            <div class="w-full bg-[#C9C9C9] rounded-[8px] h-[50px] px-3 flex items-center shadow-inner">
+                <span class="font-[800] text-[20px] text-black w-full tracking-wide">@(Model?.profile?.users ?? "509XXXXXXXX")</span>
+            </div>
+        </div>
+
+        <!-- Name Field -->
+        <div class="w-full flex flex-col gap-2 mt-2">
+            <label class="font-bold text-[#534A4A] text-[14px]">@Lang.name</label>
+            <div class="w-full bg-transparent border border-[#8F8F8F] rounded-[8px] h-[50px] px-3 flex items-center">
+                <input type="text" class="w-full bg-transparent font-[800] text-[20px] text-black outline-none tracking-wide" value="@(Model?.profile?.fullName ?? "User")" />
+            </div>
+        </div>
+
+        <!-- Date of birth Field -->
+        <div class="w-full flex flex-col gap-2 mt-2">
+            <label class="font-bold text-[#534A4A] text-[14px]">@Lang.dateOfBirth</label>
+            <div class="w-full bg-transparent border border-[#8F8F8F] rounded-[8px] h-[50px] px-3 flex items-center justify-between">
+                <input type="text" class="w-full bg-transparent font-[800] text-[20px] text-black outline-none tracking-wide flex-1" value="29/02/2000" disabled />
+                <i class="fa-regular fa-calendar text-[#534A4A] text-[20px]"></i>
+            </div>
+        </div>
+
+        <!-- Password Field -->
+        <div class="w-full flex flex-col gap-2 mt-2">
+            <label class="font-bold text-[#534A4A] text-[14px]">@Lang.password</label>
+            <div class="w-full bg-transparent border border-[#8F8F8F] rounded-[8px] h-[50px] px-3 flex items-center">
+                <input type="password" class="w-full bg-transparent font-[800] text-[20px] text-black tracking-[4px] outline-none" value="******" disabled />
+            </div>
+        </div>
+        
+        <!-- Update Button -->
+        <div class="w-full flex justify-center mt-8">
+            <button class="w-[300px] max-w-full bg-[#EE0033] text-white font-[800] text-[20px] py-[10px] rounded-[12px] shadow-[0px_3px_8px_rgba(0,0,0,0.25)] hover:bg-red-700 active:scale-95 transition-all">
+                @Lang.update
+            </button>
+        </div>
+
+    </div>
+
+</div>
+
+<!-- Bottom Navbar shared component -->
+<partial name="_BottomNavbar" />

+ 555 - 0
website/Areas/LotteryV2/Views/Home/Rule.cshtml

@@ -0,0 +1,555 @@
+@model LotteryWebApp.Models.HomeIndex_ViewModel
+@{
+    ViewData["Title"] = "LotteryV2 - @Lang.rule_title";
+    ViewData["ActiveTab"] = "Rule";
+    Layout = "~/Areas/LotteryV2/Views/Shared/_Layout.cshtml";
+}
+@using LotteryWebApp.Languages;
+
+<script src="https://cdn.tailwindcss.com"></script>
+<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
+<link rel="stylesheet" href="/LotteryV2/css/site.css" />
+<link rel="stylesheet" href="/LotteryV2/css/rule.css" />
+
+<!-- Add custom font Bricolage Grotesque to match Figma styling -->
+<link href="https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:wght@400;700;800;900&display=swap" rel="stylesheet">
+
+<div class="main-container animate__animated animate__fadeIn min-h-screen relative flex flex-col pb-24 font-bricolage overflow-x-hidden" style="background-color: #F5F5F5 !important;">
+    
+    <!-- Header Block (Red) -->
+    <div class="w-full bg-[#EE0033] h-[52px] flex items-center justify-between px-4 sticky top-0 z-50 shadow-sm">
+        <!-- Back Button -->
+        <button onclick="window.history.back()" class="w-10 h-10 flex items-center justify-center -ml-2 rounded-full active:bg-white/20 transition-colors z-10 text-white cursor-pointer">
+            <i class="fa-solid fa-arrow-left text-[20px]"></i>
+        </button>
+        <!-- Title -->
+        <div class="absolute inset-0 flex items-center justify-center pointer-events-none">
+            <span class="text-white text-[24px] font-bold tracking-wide drop-shadow-sm">@Lang.rule_title</span>
+        </div>
+    </div>
+
+    <!-- Tabs Block Container -->
+    <div class="w-full bg-white flex items-center justify-between px-2 pt-3 relative shadow-sm z-40 transition-all">
+        <!-- Tab 1 -->
+        <div class="flex flex-col items-center gap-1 cursor-pointer flex-1 group" onclick="switchFAQTab('basic')">
+            <span id="tab-basic-label" class="text-[13px] font-bold text-[#534A4A] transition-colors whitespace-nowrap">@Lang.rule_classic_pick_10</span>
+            <div id="tab-basic-bar" class="w-full h-[3px] bg-[#EE0033] mt-1 drop-shadow-sm transition-all rounded-t-sm"></div>
+        </div>
+
+        <!-- Tab 2 -->
+        <div class="flex flex-col items-center gap-1 cursor-pointer flex-1 group relative" onclick="switchFAQTab('smallbig')">
+            <div class="flex flex-col items-center leading-tight">
+                <span id="tab-smallbig-label" class="text-[13px] font-bold text-[#909090] transition-colors whitespace-nowrap">@Lang.rule_big_small</span>
+                <span id="tab-smallbig-desc" class="text-[9px] text-[#909090] font-normal whitespace-nowrap transition-colors">@Lang.rule_13_numbers_game</span>
+            </div>
+            <div id="tab-smallbig-bar" class="w-full h-0.5 bg-transparent mt-1 transition-all"></div>
+        </div>
+
+        <!-- Tab 3 -->
+        <div class="flex flex-col items-center gap-1 cursor-pointer flex-1 group" onclick="switchFAQTab('oddeven')">
+            <div class="flex flex-col items-center leading-tight">
+                <span id="tab-oddeven-label" class="text-[13px] font-bold text-[#909090] transition-colors whitespace-nowrap">@Lang.rule_odd_even</span>
+                <span id="tab-oddeven-desc" class="text-[9px] text-[#909090] font-normal whitespace-nowrap transition-colors">@Lang.rule_15_numbers_game</span>
+            </div>
+            <!-- Indicator Bar -->
+            <div id="tab-oddeven-bar" class="w-full h-0.5 bg-transparent mt-1 transition-all"></div>
+        </div>
+
+        <!-- Bottom Line for tabs -->
+        <div class="absolute bottom-0 left-2 right-2 h-[1px] bg-[#D9D9D9] -z-10"></div>
+    </div>
+
+    <!-- Active Tab Content -->
+    <div id="tab-content-basic" class="w-full animate__animated animate__fadeIn pb-32">
+        
+        <div class="rule-header-red">@Lang.rule_general_info</div>
+        
+        <div class="rule-table-grid pb-2">
+            <div class="font-[800]">@Lang.rule_item</div>
+            <div class="font-[800]">@Lang.rule_regulation_draw</div>
+            
+            <div>@Lang.rule_time</div>
+            <div>@Lang.rule_20_30_daily</div>
+            
+            <div>@Lang.rule_ticket_closure</div>
+            <div>@Lang.rule_20_00_daily</div>
+            
+            <div>@Lang.rule_total_numbers</div>
+            <div>@Lang.rule_01_80</div>
+
+            <div>@Lang.rule_numbers_drawn</div>
+            <div>@Lang.rule_20_per_draw</div>
+
+            <div>@Lang.rule_purchase_channels</div>
+            <div>@Lang.rule_ussd_web_app</div>
+
+            <div>@Lang.rule_result_channel</div>
+            <div>@Lang.rule_web_app</div>
+
+            <div>@Lang.rule_duplicate_allowed</div>
+            <div>@Lang.rule_yes</div>
+
+            <div>@Lang.rule_identical_allowed</div>
+            <div>@Lang.rule_yes</div>
+        </div>
+
+        <div class="rule-header-red">@Lang.rule_game_1_title</div>
+
+        <!-- Card Mockup inside Rule -->
+        <div class="play-card bg-[#E11D48] card-red h-[90px] border border-white/20 relative mx-3 mt-4 mb-4" onclick="window.location.href='/LotteryV2/Home/GameHome'">
+            <div class="absolute -left-6 -top-6 w-20 h-20 bg-white/20 rounded-full blur-2xl"></div>
+            <div class="w-full h-full flex items-center justify-between pl-3 pr-2 relative z-10">
+                <div class="flex flex-col items-center justify-center pt-2">
+                    <span class="text-[14px] font-black italic text-white drop-shadow-md leading-[1.1] text-center" style="font-family: 'Montserrat', sans-serif;">@Html.Raw(Lang.rule_basic_pick)</span>
+                    <img src="/LotteryV2/img/ball_10.png" class="w-7 h-7 object-contain drop-shadow-md -mt-2 -mr-8 border-2 border-[#E11D48] rounded-full bg-[#E11D48]">
+                </div>
+
+                <div class="flex flex-col items-center mt-0.5 ml-4">
+                    <span class="text-[10px] font-[800] text-white tracking-widest uppercase drop-shadow">@Lang.rule_jackpot_prize</span>
+                    <div class="flex items-start gap-1 mt-0.5">
+                        <span class="text-[28px] font-[900] text-white leading-none tracking-tight drop-shadow-md">100.000</span>
+                        <span class="text-[7px] font-[800] text-white bg-transparent border border-white/60 rounded px-[2px] mt-1 shadow-sm leading-tight">HTG</span>
+                    </div>
+                    <div class="text-[9px] text-white/90 mt-0.5">@Lang.rule_next_round <span class="font-[900] text-white ml-0.5 drop-shadow">05:00</span></div>
+                </div>
+
+                <div class="flex flex-col items-end justify-between h-full py-2 w-[70px]">
+                    <img src="/LotteryV2/img/play_chest.png" class="h-[46px] w-[56px] object-contain drop-shadow-lg scale-125 origin-top-right mr-1 mt-1">
+                    <div class="w-full yellow-button text-center rounded-[8px] py-[3px] text-[10px] font-[900] px-2 z-20 active:scale-95 transition-transform mt-auto text-[#212121]" style="background: linear-gradient(180deg, #FFE95B 0%, #ECA600 100%);">@Lang.rule_play_now</div>
+                </div>
+            </div>
+        </div>
+
+        <!-- @Lang.rule_how_to_play Section -->
+        <div class="rule-section-title">
+            <span class="icon">&#9670;</span> @Lang.rule_how_to_play
+        </div>
+        
+        <div class="rule-table-grid desc-grid pb-4">
+            <div class="font-[800]">@Lang.rule_item</div>
+            <div class="font-[800]">@Lang.rule_description</div>
+            
+            <div>@Lang.rule_ticket_price</div>
+            <div>@Lang.rule_10_htg</div>
+            
+            <div>@Lang.rule_selection_method</div>
+            <div>@Html.Raw(Lang.rule_choose_10)</div>
+            
+            <div>@Lang.rule_winning_rule</div>
+            <div>@Html.Raw(Lang.rule_10_taken_from)</div>
+            
+            <div>Drawn numbers as the<br>official</div>
+            <div></div>
+
+            <div>@Lang.rule_objective</div>
+            <div>@Lang.rule_match_as_many</div>
+        </div>
+
+        <!-- @Lang.rule_jackpot_rule Section -->
+        <div class="rule-section-title mt-2">
+            <span class="icon">&#9670;</span> @Lang.rule_jackpot_rule
+        </div>
+
+        <div class="flex justify-center mt-4 mb-4">
+             <img src="/LotteryV2/img/play_chest.png" class="h-[120px] object-contain drop-shadow-xl" alt="Chest" />
+        </div>
+
+        <div class="text-[11px] font-semibold text-[#212121] px-3 mb-3">@Html.Raw(Lang.rule_match_all_10)</div>
+        
+        <div class="px-3 flex flex-wrap gap-2 mb-4 justify-start">
+            <div class="ball-green">1</div>
+            <div class="ball-green">4</div>
+            <div class="ball-green">5</div>
+            <div class="ball-green">12</div>
+            <div class="ball-green">24</div>
+            <div class="ball-green">28</div>
+            <div class="ball-green">30</div>
+            <div class="ball-green">37</div>
+            <div class="ball-green">46</div>
+            <div class="ball-green">49</div>
+        </div>
+
+        <div class="rule-table-grid pb-2">
+            <div class="font-[800]">@Lang.rule_condition</div>
+            <div class="font-[800]">@Lang.rule_prize_pool</div>
+            
+            <div>@Html.Raw(Lang.rule_if_le_10)</div>
+            <div>@Html.Raw(Lang.rule_each_receives)</div>
+            
+            <div class="mt-2">@Html.Raw(Lang.rule_if_gt_10)</div>
+            <div class="mt-2">@Html.Raw(Lang.rule_shared_equally)</div>
+        </div>
+
+        <!-- @Lang.rule_standard_prize -->
+        <div class="rule-section-title mt-4">
+            <span class="icon">&#9670;</span> @Lang.rule_standard_prize
+        </div>
+
+        <div class="rule-table-grid pb-2">
+            <div class="font-[800]">@Lang.rule_numbers_matches</div>
+            <div class="font-[800]">@Lang.rule_prize_pool_htg</div>
+            
+            <div>9</div>
+            <div>@Html.Raw(Lang.rule_prize_12k)</div>
+            
+            <div>8</div>
+            <div>@Html.Raw(Lang.rule_prize_600)</div>
+            
+            <div>7</div>
+            <div>@Html.Raw(Lang.rule_prize_160)</div>
+            
+            <div>6</div>
+            <div>@Html.Raw(Lang.rule_prize_20)</div>
+            
+            <div>5</div>
+            <div>@Html.Raw(Lang.rule_prize_5)</div>
+        </div>
+
+        <!-- @Lang.rule_sales_cutoff -->
+        <div class="rule-section-title mt-4 mb-2">
+            <span class="text-[14px]">&#8986;</span> @Lang.rule_sales_cutoff
+        </div>
+        
+        <div class="px-3 text-[11px] text-[#212121] leading-relaxed mb-2">
+            @Html.Raw(Lang.rule_sales_close)<br>
+            @Lang.rule_if_making_payment
+        </div>
+        
+        <ul class="bullet-list pb-8">
+            <li>@Lang.rule_payment_shortly</li>
+            <li>@Lang.rule_payment_later</li>
+            <li>@Lang.rule_system_time</li>
+        </ul>
+
+    </div>
+
+    <!-- Active Tab Content: Big / Small -->
+    <div id="tab-content-smallbig" class="w-full animate__animated animate__fadeIn pb-32 hidden">
+        <div class="rule-header-red" style="background-color: #0BA01A;">@Html.Raw(Lang.rule_bs_winning_rule)</div>
+
+        <div class="rule-section-title mt-2">
+            <span class="icon">&#9670;</span> @Lang.rule_how_to_win
+        </div>
+        <ul class="bullet-list mb-4">
+            <li>@Lang.rule_buy_big_small</li>
+            <li>@Lang.rule_system_check_20</li>
+        </ul>
+
+        <!-- Big/Small Play Card Mockup -->
+        <div class="play-card bg-[#16A34A] h-[90px] border border-white/20 relative mx-3 mt-4 mb-4" onclick="window.location.href='/LotteryV2/Home/GameHome'">
+            <div class="absolute -left-6 -top-6 w-20 h-20 bg-white/20 rounded-full blur-2xl"></div>
+            <div class="w-full h-full flex items-center justify-between pl-3 pr-2 relative z-10">
+                <div class="flex flex-col items-center justify-center">
+                    <img src="/LotteryV2/img/small_big_logo.png" class="h-12 object-contain drop-shadow-md -mt-1" alt="Small Big Logo">
+                </div>
+
+                <div class="flex flex-col items-center mt-0.5 ml-2">
+                    <span class="text-[10px] font-bold text-white tracking-widest uppercase drop-shadow">@Lang.rule_bs_prize</span>
+                    <div class="flex items-start gap-1 mt-0.5">
+                        <span class="text-[28px] font-[900] text-white leading-none tracking-tight drop-shadow-md">100</span>
+                        <span class="text-[7px] font-[800] text-white bg-transparent border border-white/60 rounded px-[2px] mt-1 shadow-sm leading-tight">HTG</span>
+                    </div>
+                    <div class="text-[9px] text-white/90 mt-0.5">@Lang.rule_next_round <span class="font-[900] text-white ml-0.5 drop-shadow">05:00</span></div>
+                </div>
+
+                <div class="flex flex-col items-end justify-between h-full py-2 w-[70px]">
+                    <img src="/LotteryV2/img/money_bag_small.png" class="h-[46px] w-[56px] object-contain drop-shadow-lg scale-125 origin-top-right mr-1 mt-1">
+                    <div class="w-full yellow-button text-center rounded-[8px] py-[3px] text-[10px] font-[900] px-2 z-20 active:scale-95 transition-transform mt-auto text-[#212121]" style="background: linear-gradient(180deg, #FFE95B 0%, #ECA600 100%);">@Lang.rule_play_now</div>
+                </div>
+            </div>
+        </div>
+
+        <div class="rule-section-title mt-4">
+            <span class="icon">&#9670;</span> @Lang.rule_if_purchased_big
+        </div>
+
+        <div class="flex px-3 gap-3 mb-4 items-center">
+            <div class="w-[45%] bg-[#FCFDE1] rounded-2xl p-3 flex flex-col items-center shadow-sm border border-[#E0E2C8]">
+                <img src="/LotteryV2/img/big_text.png" class="h-8 object-contain mb-1" alt="Big">
+                <div class="text-[8px] text-[#212121] font-bold mb-2">@Html.Raw(Lang.rule_13_from_41_80)</div>
+                <div class="flex items-center justify-center -space-x-1 mb-2">
+                    <div class="w-7 h-7 rounded-full bg-gradient-to-br from-[#4facfe] to-[#00f2fe] flex items-center justify-center text-[11px] font-[900] text-[#1e3c72] shadow-sm z-10 border border-white/50">42</div>
+                    <div class="w-9 h-9 rounded-full bg-[radial-gradient(circle_at_30%_30%,#a8ff78,#78ffd6)] flex items-center justify-center text-[15px] font-[900] text-[#1e3c72] shadow-md z-20 border-2 border-white/80 -mt-1">88</div>
+                    <div class="w-7 h-7 rounded-full bg-gradient-to-br from-[#00c6ff] to-[#0072ff] flex items-center justify-center text-[11px] font-[900] text-[#1e3c72] shadow-sm z-10 border border-white/50">54</div>
+                </div>
+                <button class="w-full bg-[#0BA01A] text-white py-[6px] rounded-[8px] text-[12px] font-bold shadow-md active:scale-95 transition-transform">@Lang.rule_selected</button>
+            </div>
+            <div class="w-[55%] pl-1">
+                <ul class="bullet-list mb-3 pr-0">
+                    <li class="mb-1 leading-snug">@Html.Raw(Lang.rule_if_13_41_80)</li>
+                </ul>
+                <div class="font-[800] text-[#212121] flex items-center gap-1 text-[13px] ml-2">
+                    <span class="text-blue-500 text-[18px]">&#10145;</span> &#127942; @Lang.rule_you_win
+                </div>
+            </div>
+        </div>
+
+        <div class="rule-section-title">
+            <span class="icon">&#9670;</span> @Lang.rule_if_purchased_small
+        </div>
+
+        <div class="flex px-3 gap-3 mb-4 items-center">
+            <div class="w-[45%] bg-[#FDF4E1] rounded-2xl p-3 flex flex-col items-center shadow-sm border border-[#E8DFC9]">
+                <img src="/LotteryV2/img/small_text.png" class="h-6 object-contain mb-2 mt-1" alt="Small">
+                <div class="text-[8px] text-[#212121] font-bold mb-2">@Html.Raw(Lang.rule_13_from_01_40)</div>
+                <div class="flex items-center justify-center -space-x-1 mb-2">
+                    <div class="w-7 h-7 rounded-full bg-[radial-gradient(circle_at_30%_30%,#f6d365,#fda085)] flex items-center justify-center text-[11px] font-[900] text-[#713101] shadow-sm z-10 border border-white/50">5</div>
+                    <div class="w-9 h-9 rounded-full bg-[radial-gradient(circle_at_30%_30%,#fdfbfb,#ebedee)] flex items-center justify-center text-[15px] font-[900] text-[#1e3c72] shadow-md z-20 border-2 border-[#ECA600]/40 -mt-1">1</div>
+                    <div class="w-7 h-7 rounded-full bg-gradient-to-br from-[#8e9eab] to-[#eef2f3] flex items-center justify-center text-[11px] font-[900] text-[#1e3c72] shadow-sm z-10 border border-white/50">8</div>
+                </div>
+                <button class="w-full bg-[#0BA01A] text-white py-[6px] rounded-[8px] text-[12px] font-bold shadow-md active:scale-95 transition-transform">@Lang.rule_select</button>
+            </div>
+            <div class="w-[55%] pl-1">
+                <ul class="bullet-list mb-3 pr-0">
+                    <li class="mb-1 leading-snug">@Html.Raw(Lang.rule_if_13_01_40)</li>
+                </ul>
+                <div class="font-[800] text-[#212121] flex items-center gap-1 text-[13px] ml-2">
+                    <span class="text-blue-500 text-[18px]">&#10145;</span> &#127942; @Lang.rule_you_win
+                </div>
+            </div>
+        </div>
+
+        <div class="rule-section-title">
+            <span class="icon">&#9670;</span> @Lang.rule_example
+        </div>
+        <div class="px-3 text-[11px] text-[#212121] leading-relaxed mb-2">
+            @Lang.rule_if_20_drawn_contain
+        </div>
+        <ul class="bullet-list mb-4">
+            <li>@Html.Raw(Lang.rule_13_or_more_41_80)</li>
+            <li>@Html.Raw(Lang.rule_13_or_more_01_40)</li>
+        </ul>
+
+        <div class="rule-header-red" style="background-color: #0BA01A;">@Lang.rule_prize_pool_title</div>
+        
+        <div class="flex flex-col items-center justify-center mt-2 mb-4">
+            <img src="/LotteryV2/img/money_bag_large.png" class="h-[140px] object-contain drop-shadow-xl z-20" alt="Prize">
+            <div class="text-[34px] font-[900] text-[#FFE95B] drop-shadow-md z-30 -mt-6" style="-webkit-text-stroke: 1px #ECA600; text-shadow: 2px 2px 0px rgba(0,0,0,0.2);">100 HTG</div>
+        </div>
+
+        <ul class="bullet-list mb-6">
+            <li>@Lang.rule_win_receive_2x</li>
+            <li>@Html.Raw(Lang.rule_example_bet_50)</li>
+        </ul>
+
+        <!-- @Lang.rule_sales_cutoff -->
+        <div class="rule-section-title mb-2">
+            <span class="text-[14px]">&#8986;</span> @Lang.rule_sales_cutoff
+        </div>
+        
+        <div class="px-3 text-[11px] text-[#212121] leading-relaxed mb-2">
+            @Html.Raw(Lang.rule_sales_close)<br>
+            @Lang.rule_if_making_payment
+        </div>
+        
+        <ul class="bullet-list">
+            <li>@Lang.rule_payment_shortly</li>
+            <li>@Lang.rule_payment_later</li>
+            <li>@Lang.rule_system_time</li>
+        </ul>
+    </div>
+
+    <!-- Active Tab Content: Odd / Even -->
+    <div id="tab-content-oddeven" class="w-full animate__animated animate__fadeIn pb-32 hidden">
+        <div class="rule-header-red" style="background-color: #A236C8;">@Html.Raw(Lang.rule_oe_winning_rule)</div>
+
+        <div class="rule-section-title mt-2">
+            <span class="icon">&#9670;</span> @Lang.rule_how_result_determined
+        </div>
+        <ul class="bullet-list mb-4">
+            <li>@Lang.rule_system_draws_20_01_80</li>
+            <li>For this game, the system will count how many of the 20 drawn numbers are:
+                <ul class="list-disc pl-5 mt-1 text-[#212121]">
+                    <li>@Lang.rule_odd_numbers</li>
+                    <li>@Lang.rule_even_numbers</li>
+                </ul>
+            </li>
+        </ul>
+
+        <!-- Odd/Even Play Card Mockup -->
+        <div class="play-card bg-[#A236C8] h-[90px] border border-white/20 relative mx-3 mt-4 mb-4" onclick="window.location.href='/LotteryV2/Home/GameHome'">
+            <div class="absolute -left-6 -top-6 w-20 h-20 bg-white/20 rounded-full blur-2xl"></div>
+            <div class="w-full h-full flex items-center justify-between pl-3 pr-2 relative z-10">
+                <div class="flex flex-col items-center justify-center">
+                    <img src="/LotteryV2/img/odd_even_logo.png" class="h-14 object-contain drop-shadow-md -mt-1 ml-1" alt="Odd Even Logo">
+                </div>
+
+                <div class="flex flex-col items-center mt-0.5 ml-2">
+                    <span class="text-[10px] font-bold text-white tracking-widest uppercase drop-shadow">@Lang.rule_oe_prize</span>
+                    <div class="flex items-start gap-1 mt-0.5">
+                        <span class="text-[28px] font-[900] text-white leading-none tracking-tight drop-shadow-md">200</span>
+                        <span class="text-[7px] font-[800] text-white bg-transparent border border-white/60 rounded px-[2px] mt-1 shadow-sm leading-tight">HTG</span>
+                    </div>
+                    <div class="text-[9px] text-white/90 mt-0.5">@Lang.rule_next_round <span class="font-[900] text-white ml-0.5 drop-shadow">05:00</span></div>
+                </div>
+
+                <div class="flex flex-col items-end justify-between h-full py-2 w-[70px]">
+                    <img src="/LotteryV2/img/wallet_small.png" class="h-[46px] w-[56px] object-contain drop-shadow-lg scale-[1.3] origin-top-right mr-1 mt-[2px]">
+                    <div class="w-full yellow-button text-center rounded-[8px] py-[3px] text-[10px] font-[900] px-2 z-20 active:scale-95 transition-transform mt-auto text-[#212121]" style="background: linear-gradient(180deg, #FFE95B 0%, #ECA600 100%);">@Lang.rule_play_now</div>
+                </div>
+            </div>
+        </div>
+
+        <div class="rule-section-title mt-4">
+            <span class="icon">&#9670;</span> @Lang.rule_winning_condition
+        </div>
+        <ul class="bullet-list mb-4">
+            <li class="mb-2">@Html.Raw(Lang.rule_if_15_odd_result_odd)</li>
+            <li>@Html.Raw(Lang.rule_if_15_even_result_even)</li>
+        </ul>
+
+        <div class="rule-header-red" style="background-color: #A236C8;">@Lang.rule_how_ticket_wins</div>
+
+        <div class="rule-section-title mt-3">
+            <span class="icon">&#9670;</span> @Lang.rule_if_purchased_odd
+        </div>
+
+        <div class="flex px-3 gap-3 mb-4 items-center">
+            <div class="w-[45%] bg-[#FEFCE8] rounded-2xl p-3 flex flex-col items-center shadow-sm border-2 border-[#A236C8]/40">
+                <img src="/LotteryV2/img/odd_text.png" class="h-8 object-contain mb-1" alt="Odd">
+                <div class="text-[8px] text-[#212121] mb-2">@Html.Raw(Lang.rule_odd_numbers_13579)</div>
+                <div class="flex items-center justify-center -space-x-1 mb-2 mt-1">
+                    <div class="w-7 h-7 rounded-full bg-gradient-to-br from-[#ff6a00] to-[#ee0979] flex items-center justify-center text-[11px] font-[900] text-[#4a0000] shadow-sm z-10 border border-white/50">3</div>
+                    <div class="w-9 h-9 rounded-full bg-[radial-gradient(circle_at_30%_30%,#fdfbfb,#ebedee)] flex items-center justify-center text-[15px] font-[900] text-[#1e3c72] shadow-md z-20 border-2 border-[#ECA600]/40 -mt-1">1</div>
+                    <div class="w-7 h-7 rounded-full bg-gradient-to-br from-[#00c6ff] to-[#0072ff] flex items-center justify-center text-[11px] font-[900] text-[#1e3c72] shadow-sm z-10 border border-white/50">19</div>
+                </div>
+                <button class="w-full bg-[#A236C8] text-white py-[6px] rounded-[8px] text-[12px] font-bold shadow-md active:scale-95 transition-transform mt-1">@Lang.rule_select</button>
+            </div>
+            <div class="w-[55%] pl-1">
+                <ul class="bullet-list mb-3 pr-0">
+                    <li class="mb-1 leading-snug">@Html.Raw(Lang.rule_if_20_contain_15_odd)</li>
+                </ul>
+                <div class="font-[800] text-[#212121] flex items-center gap-1 text-[13px] ml-2 mt-1">
+                    <span class="text-blue-500 text-[18px]">&#10145;</span> &#127942; @Lang.rule_you_win
+                </div>
+            </div>
+        </div>
+
+        <div class="rule-section-title">
+            <span class="icon">&#9670;</span> @Lang.rule_if_purchased_even
+        </div>
+
+        <div class="flex px-3 gap-3 mb-4 items-center">
+            <div class="w-[45%] bg-[#FEFCE8] rounded-2xl p-3 flex flex-col items-center shadow-sm border border-[#E8DFC9]">
+                <img src="/LotteryV2/img/even_text.png" class="h-6 object-contain mb-2 mt-1" alt="Even">
+                <div class="text-[8px] text-[#212121] mb-2">@Html.Raw(Lang.rule_even_numbers_02468)</div>
+                <div class="flex items-center justify-center -space-x-1 mb-2 mt-1">
+                    <div class="w-7 h-7 rounded-full bg-gradient-to-br from-[#ff0844] to-[#ffb199] flex items-center justify-center text-[11px] font-[900] text-[#4a0000] shadow-sm z-10 border border-white/50">66</div>
+                    <div class="w-9 h-9 rounded-full bg-[radial-gradient(circle_at_30%_30%,#e1bee7,#8e24aa)] flex items-center justify-center text-[15px] font-[900] text-[#ffffff] shadow-md z-20 border-2 border-white/80 -mt-1" style="text-shadow: 1px 1px 2px rgba(0,0,0,0.5);">68</div>
+                    <div class="w-7 h-7 rounded-full bg-gradient-to-br from-[#d4fc79] to-[#96e6a1] flex items-center justify-center text-[11px] font-[900] text-[#1e3c72] shadow-sm z-10 border border-white/50">88</div>
+                </div>
+                <button class="w-full bg-[#A236C8] text-white py-[6px] rounded-[8px] text-[12px] font-bold shadow-md active:scale-95 transition-transform mt-1">@Lang.rule_selected</button>
+            </div>
+            <div class="w-[55%] pl-1">
+                <ul class="bullet-list mb-3 pr-0">
+                    <li class="mb-1 leading-snug">@Html.Raw(Lang.rule_if_20_contain_15_even)</li>
+                </ul>
+                <div class="font-[800] text-[#212121] flex items-center gap-1 text-[13px] ml-2 mt-1">
+                    <span class="text-blue-500 text-[18px]">&#10145;</span> &#127942; @Lang.rule_you_win
+                </div>
+            </div>
+        </div>
+
+        <div class="rule-section-title">
+            <span class="icon">&#9670;</span> @Lang.rule_example
+        </div>
+        <div class="px-3 text-[11px] text-[#212121] leading-relaxed mb-4">
+            @Lang.rule_if_20_drawn_contain<br>
+            <ul class="list-disc pl-5 mt-1 mb-2">
+                <li>@Lang.rule_example_16_odd</li>
+                <li>@Lang.rule_example_4_even</li>
+            </ul>
+            <div class="font-[800] text-[#ECA600] flex gap-1 mb-1"><span class="text-[14px]">👉</span> <span class="text-[#212121]">@Html.Raw(Lang.rule_result_is_odd)</span></div>
+            <div class="font-[800] text-[#ECA600] flex gap-1 mb-4"><span class="text-[14px]">👉</span> <span class="text-[#212121]">@Lang.rule_all_odd_win</span></div>
+
+            @Lang.rule_if_20_drawn_contain<br>
+            <ul class="list-disc pl-5 mt-1 mb-2">
+                <li>@Lang.rule_example_15_even</li>
+                <li>@Lang.rule_example_5_odd</li>
+            </ul>
+            <div class="font-[800] text-[#ECA600] flex gap-1 mb-1"><span class="text-[14px]">👉</span> <span class="text-[#212121]">@Html.Raw(Lang.rule_result_is_even)</span></div>
+            <div class="font-[800] text-[#ECA600] flex gap-1"><span class="text-[14px]">👉</span> <span class="text-[#212121]">@Lang.rule_all_even_win</span></div>
+        </div>
+
+        <div class="rule-header-red" style="background-color: #A236C8;">@Lang.rule_prize_pool_title</div>
+        
+        <div class="flex flex-col items-center justify-center mt-2 mb-4">
+            <img src="/LotteryV2/img/wallet_large.png" class="h-[120px] object-contain drop-shadow-xl z-20" alt="Prize">
+            <div class="text-[34px] font-[900] text-[#FFE95B] drop-shadow-md z-30 -mt-2" style="-webkit-text-stroke: 1px #ECA600; text-shadow: 2px 2px 0px rgba(0,0,0,0.2);">200 HTG</div>
+        </div>
+
+        <ul class="bullet-list mb-6">
+            <li>@Lang.rule_win_receive_4x</li>
+            <li>@Html.Raw(Lang.rule_example_bet_50_4x)</li>
+        </ul>
+
+        <div class="rule-section-title mt-4">
+            <span class="icon">&#9670;</span> @Lang.rule_important_notes
+        </div>
+        <ul class="bullet-list pb-8">
+            <li>@Lang.rule_only_one_option</li>
+            <li>@Lang.rule_valid_one_draw</li>
+            <li>@Lang.rule_system_count_final</li>
+            <li>Ticket sales close at 20:00 daily.</li>
+            <li>@Lang.rule_if_making_payment</li>
+            <li>@Lang.rule_payment_shortly</li>
+            <li>@Lang.rule_payment_later</li>
+            <li>@Lang.rule_system_time</li>
+        </ul>
+    </div>
+</div>
+
+<script>
+    function switchFAQTab(tabId) {
+        // Simple mock tab visual switcher for now matching the exact styling requested
+        ['basic', 'smallbig', 'oddeven'].forEach(t => {
+            document.getElementById(`tab-${t}-label`).classList.remove('text-[#534A4A]');
+            document.getElementById(`tab-${t}-label`).classList.add('text-[#909090]');
+            
+            let bar = document.getElementById(`tab-${t}-bar`);
+            if(bar) {
+                bar.classList.remove('bg-[#EE0033]', 'drop-shadow-sm', 'h-[3px]', 'rounded-t-sm');
+                bar.classList.add('bg-transparent', 'h-0.5');
+            }
+            
+            let desc = document.getElementById(`tab-${t}-desc`);
+            if(desc) {
+                desc.classList.remove('text-[#534A4A]');
+                desc.classList.add('text-[#909090]');
+            }
+            
+            // Hide content
+            let content = document.getElementById(`tab-content-${t.replace('_','')}`);
+            if(content) {
+                content.classList.add('hidden');
+            }
+        });
+
+        // activate target
+        document.getElementById(`tab-${tabId}-label`).classList.remove('text-[#909090]');
+        document.getElementById(`tab-${tabId}-label`).classList.add('text-[#534A4A]');
+        
+        let targetBar = document.getElementById(`tab-${tabId}-bar`);
+        if(targetBar) {
+            targetBar.classList.remove('bg-transparent', 'h-0.5');
+            targetBar.classList.add('bg-[#EE0033]', 'drop-shadow-sm', 'h-[3px]', 'rounded-t-sm');
+        }
+        
+        let currentDesc = document.getElementById(`tab-${tabId}-desc`);
+        if(currentDesc) {
+            currentDesc.classList.remove('text-[#909090]');
+            currentDesc.classList.add('text-[#534A4A]');
+        }
+        
+        // Show content (the id for content is tab-content-basic, tab-content-smallbig, tab-content-oddeven)
+        let activeContentId = `tab-content-${tabId.replace('_','')}`;
+        let currentContent = document.getElementById(activeContentId);
+        if(currentContent) {
+            currentContent.classList.remove('hidden');
+        }
+    }
+</script>
+
+<!-- Bottom Navbar shared component -->
+<partial name="_BottomNavbar" />
+

+ 46 - 0
website/Areas/LotteryV2/Views/Shared/_BottomNavbar.cshtml

@@ -0,0 +1,46 @@
+@using LotteryWebApp.Languages
+@{
+    var activePage = ViewData["ActiveTab"] as string ?? "Home";
+}
+<!-- Bottom Navbar pinned statically white background row -->
+<div class="fixed bottom-0 left-1/2 -translate-x-1/2 w-full max-w-[414px] bg-white border-t border-gray-100 p-3 flex justify-around items-center z-50 shadow-[0_-2px_10px_rgba(0,0,0,0.05)] h-[74px]">
+    <a href="/LotteryV2/Home/GameHome" class="flex flex-col items-center @(activePage == "Home" ? "text-[var(--primary)]" : "text-gray-400 hover:text-[var(--primary)]") cursor-pointer relative transition-colors no-underline">
+        @if(activePage == "Home") {
+            <div class="absolute -top-[14px] left-1/2 -translate-x-1/2 w-8 h-[2px] bg-[#EE0033] rounded-sm"></div>
+        }
+        <img src="/LotteryV2/img/icon_home.svg" alt="Home" class="w-6 h-6">
+        <span class="text-[10px] mt-1 @(activePage == "Home" ? "font-extrabold" : "font-bold")" style="@(activePage == "Home" ? "color: #EE0033;" : "")">@Lang.home</span>
+    </a>
+    
+    <a href="/LotteryV2/Home/Rule" class="flex flex-col items-center @(activePage == "Rule" ? "text-[var(--primary)]" : "text-gray-400 hover:text-[var(--primary)]") cursor-pointer relative transition-colors no-underline">
+        @if(activePage == "Rule") {
+            <div class="absolute -top-[14px] left-1/2 -translate-x-1/2 w-8 h-[2px] bg-[#EE0033] rounded-sm"></div>
+        }
+        <img src="/LotteryV2/img/icon_rule.svg" alt="Rule" class="w-6 h-6">
+        <span class="text-[10px] mt-1 @(activePage == "Rule" ? "font-extrabold" : "font-bold")" style="@(activePage == "Rule" ? "color: #EE0033;" : "")">@Lang.rules</span>
+    </a>
+
+    <a href="#" class="flex flex-col items-center @(activePage == "History" ? "text-[var(--primary)]" : "text-gray-400 hover:text-[var(--primary)]") cursor-pointer relative transition-colors no-underline">
+        @if(activePage == "History") {
+            <div class="absolute -top-[14px] left-1/2 -translate-x-1/2 w-8 h-[2px] bg-[#EE0033] rounded-sm"></div>
+        }
+        <img src="/LotteryV2/img/icon_history.svg" alt="History" class="w-6 h-6">
+        <span class="text-[10px] mt-1 @(activePage == "History" ? "font-extrabold" : "font-bold")" style="@(activePage == "History" ? "color: #EE0033;" : "")">@Lang.history</span>
+    </a>
+
+    <a href="/LotteryV2/Home/FAQ" class="flex flex-col items-center @(activePage == "FAQ" ? "text-[var(--primary)]" : "text-gray-400 hover:text-[var(--primary)]") cursor-pointer relative transition-colors no-underline group">
+        @if(activePage == "FAQ") {
+            <div class="absolute -top-[14px] left-1/2 -translate-x-1/2 w-8 h-[2px] bg-[#EE0033] rounded-sm"></div>
+        }
+        <img src="/LotteryV2/img/icon_faq.svg" alt="FAQ" class="w-6 h-6">
+        <span class="text-[10px] mt-1 @(activePage == "FAQ" ? "font-extrabold drop-shadow-sm" : "font-bold")" style="@(activePage == "FAQ" ? "color: #EE0033;" : "")">@Lang.faq</span>
+    </a>
+
+    <a href="/LotteryV2/Home/More" class="flex flex-col items-center @(activePage == "More" ? "text-[var(--primary)]" : "text-gray-400 hover:text-[var(--primary)]") cursor-pointer relative transition-colors no-underline group">
+        @if(activePage == "More") {
+            <div class="absolute -top-[14px] left-1/2 -translate-x-1/2 w-8 h-[2px] bg-[#EE0033] rounded-sm"></div>
+        }
+        <img src="/LotteryV2/img/icon_more.svg" alt="More" class="w-6 h-6">
+        <span class="text-[10px] mt-1 @(activePage == "More" ? "font-extrabold drop-shadow-sm" : "font-bold")" style="@(activePage == "More" ? "color: #EE0033;" : "")">@Lang.more</span>
+    </a>
+</div>

+ 3 - 0
website/Common/Constants.cs

@@ -70,6 +70,9 @@ namespace LotteryWebApp.Common
         public const string FLORIDA_MAYRAJ_CODE = "8";
         public const string FLORIDA_LOTTO3_CODE = "9";
 
+        public const string MEGA_LOTO = "12";
+
+
         public const string GEORGIA_BOLET_CODE = "12";
         public const string GEORGIA_MAYRAJ_CODE = "13";
         public const string GEORGIA_LOTTO3_CODE = "14";

+ 10 - 1
website/Controllers/AccountController.cs

@@ -1,4 +1,4 @@
-using LotteryWebApp.Common;
+using LotteryWebApp.Common;
 using LotteryWebApp.Models;
 using LotteryWebApp.Service;
 using Microsoft.AspNetCore.Hosting;
@@ -279,6 +279,15 @@ namespace LotteryWebApp.Controllers
             });
         }
 
+        public IActionResult ChooseApp()
+        {
+            if (!CheckAuthToken())
+            {
+                return Redirect(GetParameter(Constants.SUB_DOMAIN) + "/Account/Login");
+            }
+            return View();
+        }
+
         public IActionResult ForgotPassword(String code)
         {
             if (!CheckAuthToken())

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 322 - 158
website/Languages/Lang.Designer.cs


+ 400 - 9
website/Languages/Lang.fr.resx

@@ -145,7 +145,7 @@
     <value>Basic Account</value>
   </data>
   <data name="bee_account" xml:space="preserve">
-    <value>Natcom Lottos Account</value>
+    <value>Natcom Lotto’s Account</value>
   </data>
   <data name="bee_loto_des" xml:space="preserve">
     <value>Natcom Lotto is a Bolet, Maryaj and Lotto3 games, results of NewYork and Florida lottery games. Pick your numbers and wait for the winning combination to be announced. You can convert the winning amount to Natcom mobile balance or Natcash. Good luck!</value>
@@ -153,7 +153,7 @@
   <data name="bee_loto_intro" xml:space="preserve">
     <value>Natcom Lotto is a new VAS lottery service of Natcom. You can play via USSD or WEB/APP. You can also receive SMS results with FREE once you send ON to 7777 and you can send OFF to 7777 to request for not receive MT sms results or MT information from Lottery and ON to recover MT sms.
 You can also try your luck with Natcom Lottery draw.
-Well help you create an account in a few easy steps.</value>
+We’ll help you create an account in a few easy steps.</value>
   </data>
   <data name="bet_amount" xml:space="preserve">
     <value>Bet Amount</value>
@@ -165,10 +165,10 @@ We’ll help you create an account in a few easy steps.</value>
     <value>Bolet</value>
   </data>
   <data name="bolet_content" xml:space="preserve">
-    <value>&lt;p&gt;&lt;span style="white-space:pre-wrap;"&gt;1.Bolet l&amp;agrave; 1 game trong Bee Lotto. Kh&amp;aacute;ch h&amp;agrave;ng chọn 2 số bất kỳ từ 00 - 99. Gi&amp;aacute; trị v&amp;eacute; nhỏ nhất l&amp;agrave; 1 HTG, cao nhất l&amp;agrave; 1.000 HTG. Kết quả của Bolet dựa tr&amp;ecirc;n kết quả của giải NUMBER v&amp;agrave; WIN4 của xổ số NewYork. &lt;br&gt;&lt;br&gt;2. Bolet bao gồm 3 giải:&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* Lot1: bao gồm chữ số ở vị tr&amp;iacute; số 2 v&amp;agrave; số 3 của xổ số NUMBER. Tỉ lệ tr&amp;uacute;ng thưởng: mua 1 HTG tr&amp;uacute;ng 50 HTG&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* Lot 2: bao gồm chữ số ở vị tr&amp;iacute; số 1 v&amp;agrave; số 2 của xố số WIN4. Tỉ lệ tr&amp;uacute;ng thưởng: mua 1 HTG tr&amp;uacute;ng 20 HTG&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* Lot 3: bao gồm chữ số ở vị tr&amp;iacute; số 3 v&amp;agrave; số 4 của xổ số WIN4. Tỉ lệ tr&amp;uacute;ng thưởng: mua 1 HTG tr&amp;uacute;ng 20 HTG&lt;br&gt;&lt;br&gt;3. Thời gian tham gia mua v&amp;eacute;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Khung giờ ng&amp;agrave;y: Từ 0:00 - 14:00. Giờ trả kết quả: 14:30&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Khung giờ tối: Từ 15:00 - 20:00. Giờ trả kết quả 20:30&lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt; &lt;/p&gt;</value>
+    <value><p><span style="white-space:pre-wrap;">1.Bolet l&agrave; 1 game trong Bee Lotto. Kh&aacute;ch h&agrave;ng chọn 2 số bất kỳ từ 00 - 99. Gi&aacute; trị v&eacute; nhỏ nhất l&agrave; 1 HTG, cao nhất l&agrave; 1.000 HTG. Kết quả của Bolet dựa tr&ecirc;n kết quả của giải NUMBER v&agrave; WIN4 của xổ số NewYork. <br><br>2. Bolet bao gồm 3 giải:<br>&nbsp; &nbsp; &nbsp;* Lot1: bao gồm chữ số ở vị tr&iacute; số 2 v&agrave; số 3 của xổ số NUMBER. Tỉ lệ tr&uacute;ng thưởng: mua 1 HTG tr&uacute;ng 50 HTG<br>&nbsp; &nbsp; &nbsp;* Lot 2: bao gồm chữ số ở vị tr&iacute; số 1 v&agrave; số 2 của xố số WIN4. Tỉ lệ tr&uacute;ng thưởng: mua 1 HTG tr&uacute;ng 20 HTG<br>&nbsp; &nbsp; &nbsp;* Lot 3: bao gồm chữ số ở vị tr&iacute; số 3 v&agrave; số 4 của xổ số WIN4. Tỉ lệ tr&uacute;ng thưởng: mua 1 HTG tr&uacute;ng 20 HTG<br><br>3. Thời gian tham gia mua v&eacute;<br>&nbsp; &nbsp; &nbsp;Khung giờ ng&agrave;y: Từ 0:00 - 14:00. Giờ trả kết quả: 14:30<br>&nbsp; &nbsp; &nbsp;Khung giờ tối: Từ 15:00 - 20:00. Giờ trả kết quả 20:30<br>&nbsp;&nbsp;</span> </p></value>
   </data>
   <data name="bolet_how_to_play" xml:space="preserve">
-    <value>&lt;p&gt;&lt;span style=white-space:pre-wrap;"&gt;&lt;strong&gt;&lt;span style="font-size: 20px;"&gt;How to play Bolet&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;</value>
+    <value><p><span style=white-space:pre-wrap;"><strong><span style="font-size: 20px;">How to play Bolet</span></strong></span></p></value>
   </data>
   <data name="brought_success" xml:space="preserve">
     <value>You have bought ticket Natcom Lotto successfully.</value>
@@ -420,7 +420,7 @@ We’ll help you create an account in a few easy steps.</value>
     <value>Hours</value>
   </data>
   <data name="how_to_play" xml:space="preserve">
-    <value>How to play Natcom Lotto</value>
+    <value>How to play ?</value>
   </data>
   <data name="internet_error" xml:space="preserve">
     <value>Your internet has a problem.</value>
@@ -450,13 +450,13 @@ We’ll help you create an account in a few easy steps.</value>
     <value>Lotto3</value>
   </data>
   <data name="lotto3_content" xml:space="preserve">
-    <value>&lt;p&gt;&lt;span style="white-space:pre-wrap;"&gt;1.Bolet l&amp;agrave; 1 game trong Bee Lotto. Kh&amp;aacute;ch h&amp;agrave;ng chọn 2 số bất kỳ từ 00 - 99. Gi&amp;aacute; trị v&amp;eacute; nhỏ nhất l&amp;agrave; 1 HTG, cao nhất l&amp;agrave; 1.000 HTG. Kết quả của Bolet dựa tr&amp;ecirc;n kết quả của giải NUMBER v&amp;agrave; WIN4 của xổ số NewYork. &lt;br&gt;&lt;br&gt;2. Bolet bao gồm 3 giải:&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* Lot1: bao gồm chữ số ở vị tr&amp;iacute; số 2 v&amp;agrave; số 3 của xổ số NUMBER. Tỉ lệ tr&amp;uacute;ng thưởng: mua 1 HTG tr&amp;uacute;ng 50 HTG&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* Lot 2: bao gồm chữ số ở vị tr&amp;iacute; số 1 v&amp;agrave; số 2 của xố số WIN4. Tỉ lệ tr&amp;uacute;ng thưởng: mua 1 HTG tr&amp;uacute;ng 20 HTG&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* Lot 3: bao gồm chữ số ở vị tr&amp;iacute; số 3 v&amp;agrave; số 4 của xổ số WIN4. Tỉ lệ tr&amp;uacute;ng thưởng: mua 1 HTG tr&amp;uacute;ng 20 HTG&lt;br&gt;&lt;br&gt;3. Thời gian tham gia mua v&amp;eacute;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Khung giờ ng&amp;agrave;y: Từ 0:00 - 14:00. Giờ trả kết quả: 14:30&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Khung giờ tối: Từ 15:00 - 20:00. Giờ trả kết quả 20:30&lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt; &lt;/p&gt;</value>
+    <value><p><span style="white-space:pre-wrap;">1.Bolet l&agrave; 1 game trong Bee Lotto. Kh&aacute;ch h&agrave;ng chọn 2 số bất kỳ từ 00 - 99. Gi&aacute; trị v&eacute; nhỏ nhất l&agrave; 1 HTG, cao nhất l&agrave; 1.000 HTG. Kết quả của Bolet dựa tr&ecirc;n kết quả của giải NUMBER v&agrave; WIN4 của xổ số NewYork. <br><br>2. Bolet bao gồm 3 giải:<br>&nbsp; &nbsp; &nbsp;* Lot1: bao gồm chữ số ở vị tr&iacute; số 2 v&agrave; số 3 của xổ số NUMBER. Tỉ lệ tr&uacute;ng thưởng: mua 1 HTG tr&uacute;ng 50 HTG<br>&nbsp; &nbsp; &nbsp;* Lot 2: bao gồm chữ số ở vị tr&iacute; số 1 v&agrave; số 2 của xố số WIN4. Tỉ lệ tr&uacute;ng thưởng: mua 1 HTG tr&uacute;ng 20 HTG<br>&nbsp; &nbsp; &nbsp;* Lot 3: bao gồm chữ số ở vị tr&iacute; số 3 v&agrave; số 4 của xổ số WIN4. Tỉ lệ tr&uacute;ng thưởng: mua 1 HTG tr&uacute;ng 20 HTG<br><br>3. Thời gian tham gia mua v&eacute;<br>&nbsp; &nbsp; &nbsp;Khung giờ ng&agrave;y: Từ 0:00 - 14:00. Giờ trả kết quả: 14:30<br>&nbsp; &nbsp; &nbsp;Khung giờ tối: Từ 15:00 - 20:00. Giờ trả kết quả 20:30<br>&nbsp;&nbsp;</span> </p></value>
   </data>
   <data name="maryaj" xml:space="preserve">
     <value>Maryaj</value>
   </data>
   <data name="marya_content" xml:space="preserve">
-    <value>&lt;p&gt;&lt;span style="white-space:pre-wrap;"&gt;1.Bolet l&amp;agrave; 1 game trong Bee Lotto. Kh&amp;aacute;ch h&amp;agrave;ng chọn 2 số bất kỳ từ 00 - 99. Gi&amp;aacute; trị v&amp;eacute; nhỏ nhất l&amp;agrave; 1 HTG, cao nhất l&amp;agrave; 1.000 HTG. Kết quả của Bolet dựa tr&amp;ecirc;n kết quả của giải NUMBER v&amp;agrave; WIN4 của xổ số NewYork. &lt;br&gt;&lt;br&gt;2. Bolet bao gồm 3 giải:&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* Lot1: bao gồm chữ số ở vị tr&amp;iacute; số 2 v&amp;agrave; số 3 của xổ số NUMBER. Tỉ lệ tr&amp;uacute;ng thưởng: mua 1 HTG tr&amp;uacute;ng 50 HTG&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* Lot 2: bao gồm chữ số ở vị tr&amp;iacute; số 1 v&amp;agrave; số 2 của xố số WIN4. Tỉ lệ tr&amp;uacute;ng thưởng: mua 1 HTG tr&amp;uacute;ng 20 HTG&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;* Lot 3: bao gồm chữ số ở vị tr&amp;iacute; số 3 v&amp;agrave; số 4 của xổ số WIN4. Tỉ lệ tr&amp;uacute;ng thưởng: mua 1 HTG tr&amp;uacute;ng 20 HTG&lt;br&gt;&lt;br&gt;3. Thời gian tham gia mua v&amp;eacute;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Khung giờ ng&amp;agrave;y: Từ 0:00 - 14:00. Giờ trả kết quả: 14:30&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Khung giờ tối: Từ 15:00 - 20:00. Giờ trả kết quả 20:30&lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt; &lt;/p&gt;</value>
+    <value><p><span style="white-space:pre-wrap;">1.Bolet l&agrave; 1 game trong Bee Lotto. Kh&aacute;ch h&agrave;ng chọn 2 số bất kỳ từ 00 - 99. Gi&aacute; trị v&eacute; nhỏ nhất l&agrave; 1 HTG, cao nhất l&agrave; 1.000 HTG. Kết quả của Bolet dựa tr&ecirc;n kết quả của giải NUMBER v&agrave; WIN4 của xổ số NewYork. <br><br>2. Bolet bao gồm 3 giải:<br>&nbsp; &nbsp; &nbsp;* Lot1: bao gồm chữ số ở vị tr&iacute; số 2 v&agrave; số 3 của xổ số NUMBER. Tỉ lệ tr&uacute;ng thưởng: mua 1 HTG tr&uacute;ng 50 HTG<br>&nbsp; &nbsp; &nbsp;* Lot 2: bao gồm chữ số ở vị tr&iacute; số 1 v&agrave; số 2 của xố số WIN4. Tỉ lệ tr&uacute;ng thưởng: mua 1 HTG tr&uacute;ng 20 HTG<br>&nbsp; &nbsp; &nbsp;* Lot 3: bao gồm chữ số ở vị tr&iacute; số 3 v&agrave; số 4 của xổ số WIN4. Tỉ lệ tr&uacute;ng thưởng: mua 1 HTG tr&uacute;ng 20 HTG<br><br>3. Thời gian tham gia mua v&eacute;<br>&nbsp; &nbsp; &nbsp;Khung giờ ng&agrave;y: Từ 0:00 - 14:00. Giờ trả kết quả: 14:30<br>&nbsp; &nbsp; &nbsp;Khung giờ tối: Từ 15:00 - 20:00. Giờ trả kết quả 20:30<br>&nbsp;&nbsp;</span> </p></value>
   </data>
   <data name="max_5_tickets" xml:space="preserve">
     <value>The max number of tickets is 5 tickets. Please check again.</value>
@@ -675,7 +675,7 @@ We’ll help you create an account in a few easy steps.</value>
     <value>Buying Date</value>
   </data>
   <data name="terms_and_conditions" xml:space="preserve">
-    <value>Terms &amp; Conditions. </value>
+    <value>Terms & Conditions. </value>
   </data>
   <data name="term_timeout" xml:space="preserve">
     <value>This term's time is timeout. Please try again.</value>
@@ -773,4 +773,395 @@ We’ll help you create an account in a few easy steps.</value>
   <data name="you_have_winning_number" xml:space="preserve">
     <value>You have winning number, winning prize is:</value>
   </data>
-</root>
+  <data name="quick_pick" xml:space="preserve">
+    <value>Quick Pick</value>
+  </data>
+  <data name="my_ticket" xml:space="preserve">
+    <value>Tike Mwen</value>
+  </data>
+  <data name="jackpot_prize" xml:space="preserve">
+    <value>Jackpot Prize</value>
+  </data>
+  <data name="next_round" xml:space="preserve">
+    <value>Next Round</value>
+  </data>
+  <data name="small_big" xml:space="preserve">
+    <value>Small / Big</value>
+  </data>
+  <data name="odd_even" xml:space="preserve">
+    <value>Odd / Even</value>
+  </data>
+  <data name="how_to_play_pick10" xml:space="preserve">
+    <value>How to play Pick 10</value>
+  </data>
+  <data name="how_to_play_millionair" xml:space="preserve">
+    <value>How to play Millionair?</value>
+  </data>
+  <data name="how_to_play_megabet" xml:space="preserve">
+    <value>How to play Mega Bet?</value>
+  </data>
+  <data name="MEGA" xml:space="preserve">
+    <value>MEGA</value>
+  </data>
+  <data name="Bet" xml:space="preserve">
+    <value>Bet</value>
+  </data>
+  <data name="faq_q1" xml:space="preserve">
+    <value>Comment jouer au jeu Pick 10 ?</value>
+  </data>
+  <data name="faq_a1" xml:space="preserve">
+    <value>Choisissez 10 numéros de 1 à 80 ou l'option Choix rapide. Achetez votre billet et attendez le tirage.</value>
+  </data>
+  <data name="faq_q2" xml:space="preserve">
+    <value>C'est quand les tirages de Pick 10 ?</value>
+  </data>
+  <data name="faq_a2" xml:space="preserve">
+    <value>Les tirages ont lieu tous les jours à 20h30. Les ventes de billets s'arrêtent à 20h00.</value>
+  </data>
+  <data name="faq_q3" xml:space="preserve">
+    <value>Quelles sont les chances de gagner le premier prix ?</value>
+  </data>
+  <data name="faq_a3" xml:space="preserve">
+    <value>Les chances de gagner le premier prix du Pick 10 sont de 1 sur 8 911 711.</value>
+  </data>
+  <data name="rule_payment_shortly" xml:space="preserve">
+    <value>Payments successfully completed shortly after 20:00 may still be accepted for the current draw.</value>
+  </data>
+  <data name="rule_system_count_final" xml:space="preserve">
+    <value>The official system count and result are final.</value>
+  </data>
+  <data name="rule_select" xml:space="preserve">
+    <value>Select</value>
+  </data>
+  <data name="rule_if_purchased_small" xml:space="preserve">
+    <value>If you purchased a SMALL ticket:</value>
+  </data>
+  <data name="rule_jackpot_prize" xml:space="preserve">
+    <value>Jackpot Prize</value>
+  </data>
+  <data name="rule_regulation_draw" xml:space="preserve">
+    <value>RegulationDraw</value>
+  </data>
+  <data name="rule_objective" xml:space="preserve">
+    <value>Objective.</value>
+  </data>
+  <data name="rule_general_info" xml:space="preserve">
+    <value>I. GENERAL INFORMATION</value>
+  </data>
+  <data name="rule_oe_winning_rule" xml:space="preserve">
+    <value>ODD / EVEN &#8211; WINNING RULE</value>
+  </data>
+  <data name="rule_ticket_closure" xml:space="preserve">
+    <value>Ticket Closing Time</value>
+  </data>
+  <data name="rule_standard_prize" xml:space="preserve">
+    <value>Standard Prize Structure</value>
+  </data>
+  <data name="rule_if_purchased_odd" xml:space="preserve">
+    <value>If you purchased an Odd ticket:</value>
+  </data>
+  <data name="rule_condition" xml:space="preserve">
+    <value>Condition</value>
+  </data>
+  <data name="rule_match_all_10" xml:space="preserve">
+    <value>Match all 10 numbers &#9989;</value>
+  </data>
+  <data name="rule_if_15_odd_result_odd" xml:space="preserve">
+    <value>If 15 or more numbers among the 20 drawn numbers are Odd numbers,<br>the official result is <span class="font-bold text-[#A236C8]">ODD</span>.</value>
+  </data>
+  <data name="rule_title" xml:space="preserve">
+    <value>Rules</value>
+  </data>
+  <data name="rule_selected" xml:space="preserve">
+    <value>Selected</value>
+  </data>
+  <data name="rule_20_per_draw" xml:space="preserve">
+    <value>20 numbers per draw</value>
+  </data>
+  <data name="rule_prize_20" xml:space="preserve">
+    <value>&#128176;20 HTG.</value>
+  </data>
+  <data name="rule_total_numbers" xml:space="preserve">
+    <value>Total Numbers</value>
+  </data>
+  <data name="rule_all_even_win" xml:space="preserve">
+    <value>All EVEN tickets win.</value>
+  </data>
+  <data name="rule_13_from_41_80" xml:space="preserve">
+    <value>13 number from <span class="font-[900]">41-80</span></value>
+  </data>
+  <data name="rule_important_notes" xml:space="preserve">
+    <value>Important Notes</value>
+  </data>
+  <data name="rule_play_now" xml:space="preserve">
+    <value>Play now</value>
+  </data>
+  <data name="rule_ussd_web_app" xml:space="preserve">
+    <value>USSD / Web / APP</value>
+  </data>
+  <data name="rule_win_receive_4x" xml:space="preserve">
+    <value>Winning tickets receive 4x the bet amount.</value>
+  </data>
+  <data name="rule_if_20_contain_15_odd" xml:space="preserve">
+    <value>If the 20 drawn numbers contain 15 or more <span class="font-bold">odd</span> numbers</value>
+  </data>
+  <data name="rule_example_4_even" xml:space="preserve">
+    <value>4 even numbers</value>
+  </data>
+  <data name="rule_if_purchased_even" xml:space="preserve">
+    <value>If you purchased a Even ticket:</value>
+  </data>
+  <data name="rule_time" xml:space="preserve">
+    <value>Time</value>
+  </data>
+  <data name="rule_selection_method" xml:space="preserve">
+    <value>Selection Method</value>
+  </data>
+  <data name="rule_match_as_many" xml:space="preserve">
+    <value>Match as many numbers as possible.</value>
+  </data>
+  <data name="rule_10_taken_from" xml:space="preserve">
+    <value>10 numbers will be taken from the 20 Drawn numbers as the official</value>
+  </data>
+  <data name="rule_prize_160" xml:space="preserve">
+    <value>&#128176;160 HTG.</value>
+  </data>
+  <data name="rule_how_ticket_wins" xml:space="preserve">
+    <value>HOW YOUR TICKET WINS</value>
+  </data>
+  <data name="rule_prize_pool_htg" xml:space="preserve">
+    <value>Prize Pool (HTG)</value>
+  </data>
+  <data name="rule_even_numbers" xml:space="preserve">
+    <value>Even numbers</value>
+  </data>
+  <data name="rule_13_from_01_40" xml:space="preserve">
+    <value>13 number from <span class="font-[900]">01-40</span></value>
+  </data>
+  <data name="rule_numbers_matches" xml:space="preserve">
+    <value>Numbers Matches</value>
+  </data>
+  <data name="rule_odd_numbers_13579" xml:space="preserve">
+    <value>Odd numbers <span class="font-[900]">1,3,5,7,9</span></value>
+  </data>
+  <data name="rule_example_bet_50" xml:space="preserve">
+    <value>Example: Bet 50 HTG &#8594; Win 100 HTG.</value>
+  </data>
+  <data name="rule_choose_10" xml:space="preserve">
+    <value>Choose 10 numbers from 01–80.</value>
+  </data>
+  <data name="rule_20_00_daily" xml:space="preserve">
+    <value>20:00 daily</value>
+  </data>
+  <data name="rule_if_making_payment" xml:space="preserve">
+    <value>If you are making a payment near the cut-off time:</value>
+  </data>
+  <data name="rule_basic_pick" xml:space="preserve">
+    <value>Basic<br>Pick</value>
+  </data>
+  <data name="rule_description" xml:space="preserve">
+    <value>Description</value>
+  </data>
+  <data name="rule_if_gt_10" xml:space="preserve">
+    <value>If &gt; 10 winners</value>
+  </data>
+  <data name="rule_system_time" xml:space="preserve">
+    <value>The official system time will determine ticket validity.</value>
+  </data>
+  <data name="rule_13_or_more_41_80" xml:space="preserve">
+    <value>13 or more numbers between <span class="text-[#0BA01A] font-bold">41&#8211;80</span> &#8594; BIG wins</value>
+  </data>
+  <data name="rule_system_draws_20_01_80" xml:space="preserve">
+    <value>The system draws 20 numbers from 01 to 80.</value>
+  </data>
+  <data name="rule_each_receives" xml:space="preserve">
+    <value>Each winner receives &#128176;100,000 HTG.</value>
+  </data>
+  <data name="rule_numbers_drawn" xml:space="preserve">
+    <value>Numbers Drawn</value>
+  </data>
+  <data name="rule_jackpot_rule" xml:space="preserve">
+    <value>Jackpot Rule</value>
+  </data>
+  <data name="rule_win_receive_2x" xml:space="preserve">
+    <value>Winning tickets receive 2x the bet amount.</value>
+  </data>
+  <data name="rule_if_20_drawn_contain" xml:space="preserve">
+    <value>If the 20 drawn numbers contain:</value>
+  </data>
+  <data name="rule_example_bet_50_4x" xml:space="preserve">
+    <value>Example: Bet 50 HTG &#8594; Win 200 HTG.</value>
+  </data>
+  <data name="rule_shared_equally" xml:space="preserve">
+    <value>&#128176;1,000,000 HTG shared equally among winners.</value>
+  </data>
+  <data name="rule_even_numbers_02468" xml:space="preserve">
+    <value>Even numbers <span class="font-[900]">0,2,4,6,8</span></value>
+  </data>
+  <data name="rule_example_16_odd" xml:space="preserve">
+    <value>16 odd numbers</value>
+  </data>
+  <data name="rule_bs_winning_rule" xml:space="preserve">
+    <value>BIG / SMALL &#8211; WINNING RULE</value>
+  </data>
+  <data name="rule_web_app" xml:space="preserve">
+    <value>Web / APP</value>
+  </data>
+  <data name="rule_if_13_01_40" xml:space="preserve">
+    <value>If 13 numbers among the 20 drawn numbers fall within the range <span class="text-[#0BA01A] font-bold">01&#8211;40</span>,</value>
+  </data>
+  <data name="rule_example_5_odd" xml:space="preserve">
+    <value>5 odd numbers</value>
+  </data>
+  <data name="rule_bs_prize" xml:space="preserve">
+    <value>Big/Small Prize</value>
+  </data>
+  <data name="rule_prize_pool" xml:space="preserve">
+    <value>Prize Pool</value>
+  </data>
+  <data name="rule_payment_later" xml:space="preserve">
+    <value>Payments completed later will be automatically recorded for the next draw.</value>
+  </data>
+  <data name="rule_13_or_more_01_40" xml:space="preserve">
+    <value>13 or more numbers between <span class="text-[#0BA01A] font-bold">01&#8211;40</span> &#8594; SMALL wins</value>
+  </data>
+  <data name="rule_valid_one_draw" xml:space="preserve">
+    <value>Each ticket is valid for one draw only.</value>
+  </data>
+  <data name="rule_if_15_even_result_even" xml:space="preserve">
+    <value>If 15 or more numbers among the 20 drawn numbers are Even numbers,<br>the official result is <span class="font-bold text-[#A236C8]">EVEN</span>.</value>
+  </data>
+  <data name="rule_duplicate_allowed" xml:space="preserve">
+    <value>Duplicate Numbers Allowed</value>
+  </data>
+  <data name="rule_10_htg" xml:space="preserve">
+    <value>10 HTG</value>
+  </data>
+  <data name="rule_sales_close" xml:space="preserve">
+    <value>Ticket sales close at 20:00 daily.</value>
+  </data>
+  <data name="rule_example_15_even" xml:space="preserve">
+    <value>15 even numbers</value>
+  </data>
+  <data name="rule_prize_5" xml:space="preserve">
+    <value>&#128176;5 HTG.</value>
+  </data>
+  <data name="rule_result_is_even" xml:space="preserve">
+    <value>The official result is <span class="text-[#A236C8]">EVEN</span>.</value>
+  </data>
+  <data name="rule_example" xml:space="preserve">
+    <value>Example</value>
+  </data>
+  <data name="rule_how_to_win" xml:space="preserve">
+    <value>How to win?</value>
+  </data>
+  <data name="rule_only_one_option" xml:space="preserve">
+    <value>Only one option (ODD or EVEN) can be selected per ticket.</value>
+  </data>
+  <data name="rule_odd_numbers" xml:space="preserve">
+    <value>Odd numbers</value>
+  </data>
+  <data name="rule_yes" xml:space="preserve">
+    <value>Yes</value>
+  </data>
+  <data name="rule_result_channel" xml:space="preserve">
+    <value>Result Channel</value>
+  </data>
+  <data name="rule_if_purchased_big" xml:space="preserve">
+    <value>If you purchased a BIG ticket:</value>
+  </data>
+  <data name="rule_purchase_channels" xml:space="preserve">
+    <value>Purchase Channels</value>
+  </data>
+  <data name="rule_sales_cutoff" xml:space="preserve">
+    <value>Ticket Sales Cut-off Time</value>
+  </data>
+  <data name="rule_how_result_determined" xml:space="preserve">
+    <value>How the Winning Result is Determined</value>
+  </data>
+  <data name="rule_big_small" xml:space="preserve">
+    <value>Big / Small</value>
+  </data>
+  <data name="rule_winning_condition" xml:space="preserve">
+    <value>Winning Condition</value>
+  </data>
+  <data name="rule_oe_prize" xml:space="preserve">
+    <value>Odd/Even Prize</value>
+  </data>
+  <data name="rule_01_80" xml:space="preserve">
+    <value>01 - 80</value>
+  </data>
+  <data name="rule_result_is_odd" xml:space="preserve">
+    <value>The official result is <span class="text-[#A236C8]">ODD</span>.</value>
+  </data>
+  <data name="rule_prize_600" xml:space="preserve">
+    <value>&#128176;600 HTG.</value>
+  </data>
+  <data name="rule_classic_pick_10" xml:space="preserve">
+    <value>Classic Pick 10</value>
+  </data>
+  <data name="rule_system_count_how_many" xml:space="preserve">
+    <value>For this game, the system will count how many of the 20 drawn numbers are:</value>
+  </data>
+  <data name="rule_buy_big_small" xml:space="preserve">
+    <value>When you purchase a ticket, you choose either BIG or SMALL.</value>
+  </data>
+  <data name="rule_if_le_10" xml:space="preserve">
+    <value>If &le; 10 winners</value>
+  </data>
+  <data name="rule_identical_allowed" xml:space="preserve">
+    <value>Identical Tickets Allowed</value>
+  </data>
+  <data name="rule_15_numbers_game" xml:space="preserve">
+    <value>(15 Numbers Game)</value>
+  </data>
+  <data name="rule_prize_12k" xml:space="preserve">
+    <value>&#128176;12,000 HTG.</value>
+  </data>
+  <data name="rule_if_13_41_80" xml:space="preserve">
+    <value>If 13 numbers among the 20 drawn numbers fall within the range <span class="text-[#0BA01A] font-bold">41&#8211;80</span>,</value>
+  </data>
+  <data name="rule_all_odd_win" xml:space="preserve">
+    <value>All ODD tickets win.</value>
+  </data>
+  <data name="rule_winning_rule" xml:space="preserve">
+    <value>Winning Rule</value>
+  </data>
+  <data name="rule_you_win" xml:space="preserve">
+    <value>You win.</value>
+  </data>
+  <data name="rule_if_20_contain_15_even" xml:space="preserve">
+    <value>If the 20 drawn numbers contain 15 or more <span class="font-bold">even</span> numbers</value>
+  </data>
+  <data name="rule_next_round" xml:space="preserve">
+    <value>Next round</value>
+  </data>
+  <data name="rule_how_to_play" xml:space="preserve">
+    <value>How to Play</value>
+  </data>
+  <data name="rule_20_30_daily" xml:space="preserve">
+    <value>20:30 daily</value>
+  </data>
+  <data name="rule_ticket_price" xml:space="preserve">
+    <value>Ticket Price</value>
+  </data>
+  <data name="rule_odd_even" xml:space="preserve">
+    <value>Odd / Even</value>
+  </data>
+  <data name="rule_item" xml:space="preserve">
+    <value>Item</value>
+  </data>
+  <data name="rule_13_numbers_game" xml:space="preserve">
+    <value>(13 Numbers Game)</value>
+  </data>
+  <data name="rule_prize_pool_title" xml:space="preserve">
+    <value>PRIZE POOL</value>
+  </data>
+  <data name="rule_system_check_20" xml:space="preserve">
+    <value>After the draw, the system will check the 20 drawn numbers.</value>
+  </data>
+  <data name="rule_game_1_title" xml:space="preserve">
+    <value>II. GAME 1 – CLASSIC PICK 10</value>
+  </data>
+</root>
+

+ 402 - 9
website/Languages/Lang.resx

@@ -151,7 +151,9 @@
     <value>Natcom Lotto se yon Bolet, Maryaj e jwet Lotto3, rezilta NewYork ak jwet lotto Florida.   Chwazi nimewo yo epi tann yo anonse nimewo ganyan. Ou ka transfere lajan ou genyen sou kont de baz ou oswa sou kont Natcash ou. Bon chans!</value>
   </data>
   <data name="bee_loto_intro" xml:space="preserve">
-    <value />
+    <value>Natcom Lotto is a new VAS lottery service of Natcom. You can play via USSD or WEB/APP. You can also receive SMS results with FREE once you send ON to 7777 and you can send OFF to 7777 to request for not receive MT sms results or MT information from Lottery and ON to recover MT sms.
+You can also try your luck with Natcom Lottery draw.
+We’ll help you create an account in a few easy steps.</value>
   </data>
   <data name="bet_amount" xml:space="preserve">
     <value>Montan wap parye a</value>
@@ -163,10 +165,10 @@
     <value>Bolet</value>
   </data>
   <data name="bolet_content" xml:space="preserve">
-    <value />
+    <value><p><span style="white-space:pre-wrap;">1.Bolet l&agrave; 1 game trong Bee Lotto. Kh&aacute;ch h&agrave;ng chọn 2 số bất kỳ từ 00 - 99. Gi&aacute; trị v&eacute; nhỏ nhất l&agrave; 1 HTG, cao nhất l&agrave; 1.000 HTG. Kết quả của Bolet dựa tr&ecirc;n kết quả của giải NUMBER v&agrave; WIN4 của xổ số NewYork. <br><br>2. Bolet bao gồm 3 giải:<br>&nbsp; &nbsp; &nbsp;* Lot1: bao gồm chữ số ở vị tr&iacute; số 2 v&agrave; số 3 của xổ số NUMBER. Tỉ lệ tr&uacute;ng thưởng: mua 1 HTG tr&uacute;ng 50 HTG<br>&nbsp; &nbsp; &nbsp;* Lot 2: bao gồm chữ số ở vị tr&iacute; số 1 v&agrave; số 2 của xố số WIN4. Tỉ lệ tr&uacute;ng thưởng: mua 1 HTG tr&uacute;ng 20 HTG<br>&nbsp; &nbsp; &nbsp;* Lot 3: bao gồm chữ số ở vị tr&iacute; số 3 v&agrave; số 4 của xổ số WIN4. Tỉ lệ tr&uacute;ng thưởng: mua 1 HTG tr&uacute;ng 20 HTG<br><br>3. Thời gian tham gia mua v&eacute;<br>&nbsp; &nbsp; &nbsp;Khung giờ ng&agrave;y: Từ 0:00 - 14:00. Giờ trả kết quả: 14:30<br>&nbsp; &nbsp; &nbsp;Khung giờ tối: Từ 15:00 - 20:00. Giờ trả kết quả 20:30<br>&nbsp;&nbsp;</span> </p></value>
   </data>
   <data name="bolet_how_to_play" xml:space="preserve">
-    <value />
+    <value><p><span style=white-space:pre-wrap;"><strong><span style="font-size: 20px;">How to play Bolet</span></strong></span></p></value>
   </data>
   <data name="brought_success" xml:space="preserve">
     <value>Tanzaksyon an fet avek sikse</value>
@@ -175,7 +177,7 @@
     <value>Achte</value>
   </data>
   <data name="buying" xml:space="preserve">
-    <value>Achte tikè</value>
+    <value>Achte tikè</value>
   </data>
   <data name="buying_code_not_existed" xml:space="preserve">
     <value>Buying code is not existed</value>
@@ -205,7 +207,7 @@
     <value>Anile</value>
   </data>
   <data name="cash_agent" xml:space="preserve">
-    <value />
+    <value>Cash Agent</value>
   </data>
   <data name="change_language" xml:space="preserve">
     <value>Chanje Lang</value>
@@ -418,7 +420,7 @@
     <value>Hours</value>
   </data>
   <data name="how_to_play" xml:space="preserve">
-    <value>Koman ou ka jwe Natcom Lotto </value>
+    <value>Koman ou ka jwe ?</value>
   </data>
   <data name="internet_error" xml:space="preserve">
     <value>Your internet has a problem.</value>
@@ -448,13 +450,13 @@
     <value>Lotto3</value>
   </data>
   <data name="lotto3_content" xml:space="preserve">
-    <value />
+    <value><p><span style="white-space:pre-wrap;">1.Bolet l&agrave; 1 game trong Bee Lotto. Kh&aacute;ch h&agrave;ng chọn 2 số bất kỳ từ 00 - 99. Gi&aacute; trị v&eacute; nhỏ nhất l&agrave; 1 HTG, cao nhất l&agrave; 1.000 HTG. Kết quả của Bolet dựa tr&ecirc;n kết quả của giải NUMBER v&agrave; WIN4 của xổ số NewYork. <br><br>2. Bolet bao gồm 3 giải:<br>&nbsp; &nbsp; &nbsp;* Lot1: bao gồm chữ số ở vị tr&iacute; số 2 v&agrave; số 3 của xổ số NUMBER. Tỉ lệ tr&uacute;ng thưởng: mua 1 HTG tr&uacute;ng 50 HTG<br>&nbsp; &nbsp; &nbsp;* Lot 2: bao gồm chữ số ở vị tr&iacute; số 1 v&agrave; số 2 của xố số WIN4. Tỉ lệ tr&uacute;ng thưởng: mua 1 HTG tr&uacute;ng 20 HTG<br>&nbsp; &nbsp; &nbsp;* Lot 3: bao gồm chữ số ở vị tr&iacute; số 3 v&agrave; số 4 của xổ số WIN4. Tỉ lệ tr&uacute;ng thưởng: mua 1 HTG tr&uacute;ng 20 HTG<br><br>3. Thời gian tham gia mua v&eacute;<br>&nbsp; &nbsp; &nbsp;Khung giờ ng&agrave;y: Từ 0:00 - 14:00. Giờ trả kết quả: 14:30<br>&nbsp; &nbsp; &nbsp;Khung giờ tối: Từ 15:00 - 20:00. Giờ trả kết quả 20:30<br>&nbsp;&nbsp;</span> </p></value>
   </data>
   <data name="maryaj" xml:space="preserve">
     <value>Maryaj</value>
   </data>
   <data name="marya_content" xml:space="preserve">
-    <value />
+    <value><p><span style="white-space:pre-wrap;">1.Bolet l&agrave; 1 game trong Bee Lotto. Kh&aacute;ch h&agrave;ng chọn 2 số bất kỳ từ 00 - 99. Gi&aacute; trị v&eacute; nhỏ nhất l&agrave; 1 HTG, cao nhất l&agrave; 1.000 HTG. Kết quả của Bolet dựa tr&ecirc;n kết quả của giải NUMBER v&agrave; WIN4 của xổ số NewYork. <br><br>2. Bolet bao gồm 3 giải:<br>&nbsp; &nbsp; &nbsp;* Lot1: bao gồm chữ số ở vị tr&iacute; số 2 v&agrave; số 3 của xổ số NUMBER. Tỉ lệ tr&uacute;ng thưởng: mua 1 HTG tr&uacute;ng 50 HTG<br>&nbsp; &nbsp; &nbsp;* Lot 2: bao gồm chữ số ở vị tr&iacute; số 1 v&agrave; số 2 của xố số WIN4. Tỉ lệ tr&uacute;ng thưởng: mua 1 HTG tr&uacute;ng 20 HTG<br>&nbsp; &nbsp; &nbsp;* Lot 3: bao gồm chữ số ở vị tr&iacute; số 3 v&agrave; số 4 của xổ số WIN4. Tỉ lệ tr&uacute;ng thưởng: mua 1 HTG tr&uacute;ng 20 HTG<br><br>3. Thời gian tham gia mua v&eacute;<br>&nbsp; &nbsp; &nbsp;Khung giờ ng&agrave;y: Từ 0:00 - 14:00. Giờ trả kết quả: 14:30<br>&nbsp; &nbsp; &nbsp;Khung giờ tối: Từ 15:00 - 20:00. Giờ trả kết quả 20:30<br>&nbsp;&nbsp;</span> </p></value>
   </data>
   <data name="max_5_tickets" xml:space="preserve">
     <value>Dezole! Komand ou a depase 5 . Tanpri eseye.</value>
@@ -771,4 +773,395 @@
   <data name="you_have_winning_number" xml:space="preserve">
     <value>Ou jwenn nimewo ganyan an, ou genyen:</value>
   </data>
-</root>
+  <data name="quick_pick" xml:space="preserve">
+    <value>Chwazi Rapid</value>
+  </data>
+  <data name="my_ticket" xml:space="preserve">
+    <value>Tike Mwen</value>
+  </data>
+  <data name="jackpot_prize" xml:space="preserve">
+    <value>Gwo Pri</value>
+  </data>
+  <data name="next_round" xml:space="preserve">
+    <value>Ronn kap vini</value>
+  </data>
+  <data name="small_big" xml:space="preserve">
+    <value>Ti / Gwo</value>
+  </data>
+  <data name="odd_even" xml:space="preserve">
+    <value>Pè / Enpè</value>
+  </data>
+  <data name="how_to_play_pick10" xml:space="preserve">
+    <value>Koman jwe Pick 10</value>
+  </data>
+  <data name="how_to_play_millionair" xml:space="preserve">
+    <value>How to play Millionair?</value>
+  </data>
+  <data name="how_to_play_megabet" xml:space="preserve">
+    <value>How to play Mega Bet?</value>
+  </data>
+  <data name="MEGA" xml:space="preserve">
+    <value>MEGA</value>
+  </data>
+  <data name="Bet" xml:space="preserve">
+    <value>Bet</value>
+  </data>
+  <data name="faq_q1" xml:space="preserve">
+    <value>How do I play the Pick 10 game?</value>
+  </data>
+  <data name="faq_a1" xml:space="preserve">
+    <value>Pick 10 numbers from 1 to 80 or choose the Quick Pick option. Purchase your ticket and wait for the draw.</value>
+  </data>
+  <data name="faq_q2" xml:space="preserve">
+    <value>When do Pick 10 draws take place?</value>
+  </data>
+  <data name="faq_a2" xml:space="preserve">
+    <value>Draws take place every day at 8:30 p.m. Ticket sales stop at 8:00 p.m.</value>
+  </data>
+  <data name="faq_q3" xml:space="preserve">
+    <value>What are the chances of winning the top prize?</value>
+  </data>
+  <data name="faq_a3" xml:space="preserve">
+    <value>The odds of winning the top Pick 10 prize are 1 in 8,911,711.</value>
+  </data>
+  <data name="rule_payment_shortly" xml:space="preserve">
+    <value>Payments successfully completed shortly after 20:00 may still be accepted for the current draw.</value>
+  </data>
+  <data name="rule_system_count_final" xml:space="preserve">
+    <value>The official system count and result are final.</value>
+  </data>
+  <data name="rule_select" xml:space="preserve">
+    <value>Select</value>
+  </data>
+  <data name="rule_if_purchased_small" xml:space="preserve">
+    <value>If you purchased a SMALL ticket:</value>
+  </data>
+  <data name="rule_jackpot_prize" xml:space="preserve">
+    <value>Jackpot Prize</value>
+  </data>
+  <data name="rule_regulation_draw" xml:space="preserve">
+    <value>RegulationDraw</value>
+  </data>
+  <data name="rule_objective" xml:space="preserve">
+    <value>Objective.</value>
+  </data>
+  <data name="rule_general_info" xml:space="preserve">
+    <value>I. GENERAL INFORMATION</value>
+  </data>
+  <data name="rule_oe_winning_rule" xml:space="preserve">
+    <value>ODD / EVEN &#8211; WINNING RULE</value>
+  </data>
+  <data name="rule_ticket_closure" xml:space="preserve">
+    <value>Ticket Closing Time</value>
+  </data>
+  <data name="rule_standard_prize" xml:space="preserve">
+    <value>Standard Prize Structure</value>
+  </data>
+  <data name="rule_if_purchased_odd" xml:space="preserve">
+    <value>If you purchased an Odd ticket:</value>
+  </data>
+  <data name="rule_condition" xml:space="preserve">
+    <value>Condition</value>
+  </data>
+  <data name="rule_match_all_10" xml:space="preserve">
+    <value>Match all 10 numbers &#9989;</value>
+  </data>
+  <data name="rule_if_15_odd_result_odd" xml:space="preserve">
+    <value>If 15 or more numbers among the 20 drawn numbers are Odd numbers,<br>the official result is <span class="font-bold text-[#A236C8]">ODD</span>.</value>
+  </data>
+  <data name="rule_title" xml:space="preserve">
+    <value>Rules</value>
+  </data>
+  <data name="rule_selected" xml:space="preserve">
+    <value>Selected</value>
+  </data>
+  <data name="rule_20_per_draw" xml:space="preserve">
+    <value>20 numbers per draw</value>
+  </data>
+  <data name="rule_prize_20" xml:space="preserve">
+    <value>&#128176;20 HTG.</value>
+  </data>
+  <data name="rule_total_numbers" xml:space="preserve">
+    <value>Total Numbers</value>
+  </data>
+  <data name="rule_all_even_win" xml:space="preserve">
+    <value>All EVEN tickets win.</value>
+  </data>
+  <data name="rule_13_from_41_80" xml:space="preserve">
+    <value>13 number from <span class="font-[900]">41-80</span></value>
+  </data>
+  <data name="rule_important_notes" xml:space="preserve">
+    <value>Important Notes</value>
+  </data>
+  <data name="rule_play_now" xml:space="preserve">
+    <value>Play now</value>
+  </data>
+  <data name="rule_ussd_web_app" xml:space="preserve">
+    <value>USSD / Web / APP</value>
+  </data>
+  <data name="rule_win_receive_4x" xml:space="preserve">
+    <value>Winning tickets receive 4x the bet amount.</value>
+  </data>
+  <data name="rule_if_20_contain_15_odd" xml:space="preserve">
+    <value>If the 20 drawn numbers contain 15 or more <span class="font-bold">odd</span> numbers</value>
+  </data>
+  <data name="rule_example_4_even" xml:space="preserve">
+    <value>4 even numbers</value>
+  </data>
+  <data name="rule_if_purchased_even" xml:space="preserve">
+    <value>If you purchased a Even ticket:</value>
+  </data>
+  <data name="rule_time" xml:space="preserve">
+    <value>Time</value>
+  </data>
+  <data name="rule_selection_method" xml:space="preserve">
+    <value>Selection Method</value>
+  </data>
+  <data name="rule_match_as_many" xml:space="preserve">
+    <value>Match as many numbers as possible.</value>
+  </data>
+  <data name="rule_10_taken_from" xml:space="preserve">
+    <value>10 numbers will be taken from the 20 Drawn numbers as the official</value>
+  </data>
+  <data name="rule_prize_160" xml:space="preserve">
+    <value>&#128176;160 HTG.</value>
+  </data>
+  <data name="rule_how_ticket_wins" xml:space="preserve">
+    <value>HOW YOUR TICKET WINS</value>
+  </data>
+  <data name="rule_prize_pool_htg" xml:space="preserve">
+    <value>Prize Pool (HTG)</value>
+  </data>
+  <data name="rule_even_numbers" xml:space="preserve">
+    <value>Even numbers</value>
+  </data>
+  <data name="rule_13_from_01_40" xml:space="preserve">
+    <value>13 number from <span class="font-[900]">01-40</span></value>
+  </data>
+  <data name="rule_numbers_matches" xml:space="preserve">
+    <value>Numbers Matches</value>
+  </data>
+  <data name="rule_odd_numbers_13579" xml:space="preserve">
+    <value>Odd numbers <span class="font-[900]">1,3,5,7,9</span></value>
+  </data>
+  <data name="rule_example_bet_50" xml:space="preserve">
+    <value>Example: Bet 50 HTG &#8594; Win 100 HTG.</value>
+  </data>
+  <data name="rule_choose_10" xml:space="preserve">
+    <value>Choose 10 numbers from 01–80.</value>
+  </data>
+  <data name="rule_20_00_daily" xml:space="preserve">
+    <value>20:00 daily</value>
+  </data>
+  <data name="rule_if_making_payment" xml:space="preserve">
+    <value>If you are making a payment near the cut-off time:</value>
+  </data>
+  <data name="rule_basic_pick" xml:space="preserve">
+    <value>Basic<br>Pick</value>
+  </data>
+  <data name="rule_description" xml:space="preserve">
+    <value>Description</value>
+  </data>
+  <data name="rule_if_gt_10" xml:space="preserve">
+    <value>If &gt; 10 winners</value>
+  </data>
+  <data name="rule_system_time" xml:space="preserve">
+    <value>The official system time will determine ticket validity.</value>
+  </data>
+  <data name="rule_13_or_more_41_80" xml:space="preserve">
+    <value>13 or more numbers between <span class="text-[#0BA01A] font-bold">41&#8211;80</span> &#8594; BIG wins</value>
+  </data>
+  <data name="rule_system_draws_20_01_80" xml:space="preserve">
+    <value>The system draws 20 numbers from 01 to 80.</value>
+  </data>
+  <data name="rule_each_receives" xml:space="preserve">
+    <value>Each winner receives &#128176;100,000 HTG.</value>
+  </data>
+  <data name="rule_numbers_drawn" xml:space="preserve">
+    <value>Numbers Drawn</value>
+  </data>
+  <data name="rule_jackpot_rule" xml:space="preserve">
+    <value>Jackpot Rule</value>
+  </data>
+  <data name="rule_win_receive_2x" xml:space="preserve">
+    <value>Winning tickets receive 2x the bet amount.</value>
+  </data>
+  <data name="rule_if_20_drawn_contain" xml:space="preserve">
+    <value>If the 20 drawn numbers contain:</value>
+  </data>
+  <data name="rule_example_bet_50_4x" xml:space="preserve">
+    <value>Example: Bet 50 HTG &#8594; Win 200 HTG.</value>
+  </data>
+  <data name="rule_shared_equally" xml:space="preserve">
+    <value>&#128176;1,000,000 HTG shared equally among winners.</value>
+  </data>
+  <data name="rule_even_numbers_02468" xml:space="preserve">
+    <value>Even numbers <span class="font-[900]">0,2,4,6,8</span></value>
+  </data>
+  <data name="rule_example_16_odd" xml:space="preserve">
+    <value>16 odd numbers</value>
+  </data>
+  <data name="rule_bs_winning_rule" xml:space="preserve">
+    <value>BIG / SMALL &#8211; WINNING RULE</value>
+  </data>
+  <data name="rule_web_app" xml:space="preserve">
+    <value>Web / APP</value>
+  </data>
+  <data name="rule_if_13_01_40" xml:space="preserve">
+    <value>If 13 numbers among the 20 drawn numbers fall within the range <span class="text-[#0BA01A] font-bold">01&#8211;40</span>,</value>
+  </data>
+  <data name="rule_example_5_odd" xml:space="preserve">
+    <value>5 odd numbers</value>
+  </data>
+  <data name="rule_bs_prize" xml:space="preserve">
+    <value>Big/Small Prize</value>
+  </data>
+  <data name="rule_prize_pool" xml:space="preserve">
+    <value>Prize Pool</value>
+  </data>
+  <data name="rule_payment_later" xml:space="preserve">
+    <value>Payments completed later will be automatically recorded for the next draw.</value>
+  </data>
+  <data name="rule_13_or_more_01_40" xml:space="preserve">
+    <value>13 or more numbers between <span class="text-[#0BA01A] font-bold">01&#8211;40</span> &#8594; SMALL wins</value>
+  </data>
+  <data name="rule_valid_one_draw" xml:space="preserve">
+    <value>Each ticket is valid for one draw only.</value>
+  </data>
+  <data name="rule_if_15_even_result_even" xml:space="preserve">
+    <value>If 15 or more numbers among the 20 drawn numbers are Even numbers,<br>the official result is <span class="font-bold text-[#A236C8]">EVEN</span>.</value>
+  </data>
+  <data name="rule_duplicate_allowed" xml:space="preserve">
+    <value>Duplicate Numbers Allowed</value>
+  </data>
+  <data name="rule_10_htg" xml:space="preserve">
+    <value>10 HTG</value>
+  </data>
+  <data name="rule_sales_close" xml:space="preserve">
+    <value>Ticket sales close at 20:00 daily.</value>
+  </data>
+  <data name="rule_example_15_even" xml:space="preserve">
+    <value>15 even numbers</value>
+  </data>
+  <data name="rule_prize_5" xml:space="preserve">
+    <value>&#128176;5 HTG.</value>
+  </data>
+  <data name="rule_result_is_even" xml:space="preserve">
+    <value>The official result is <span class="text-[#A236C8]">EVEN</span>.</value>
+  </data>
+  <data name="rule_example" xml:space="preserve">
+    <value>Example</value>
+  </data>
+  <data name="rule_how_to_win" xml:space="preserve">
+    <value>How to win?</value>
+  </data>
+  <data name="rule_only_one_option" xml:space="preserve">
+    <value>Only one option (ODD or EVEN) can be selected per ticket.</value>
+  </data>
+  <data name="rule_odd_numbers" xml:space="preserve">
+    <value>Odd numbers</value>
+  </data>
+  <data name="rule_yes" xml:space="preserve">
+    <value>Yes</value>
+  </data>
+  <data name="rule_result_channel" xml:space="preserve">
+    <value>Result Channel</value>
+  </data>
+  <data name="rule_if_purchased_big" xml:space="preserve">
+    <value>If you purchased a BIG ticket:</value>
+  </data>
+  <data name="rule_purchase_channels" xml:space="preserve">
+    <value>Purchase Channels</value>
+  </data>
+  <data name="rule_sales_cutoff" xml:space="preserve">
+    <value>Ticket Sales Cut-off Time</value>
+  </data>
+  <data name="rule_how_result_determined" xml:space="preserve">
+    <value>How the Winning Result is Determined</value>
+  </data>
+  <data name="rule_big_small" xml:space="preserve">
+    <value>Big / Small</value>
+  </data>
+  <data name="rule_winning_condition" xml:space="preserve">
+    <value>Winning Condition</value>
+  </data>
+  <data name="rule_oe_prize" xml:space="preserve">
+    <value>Odd/Even Prize</value>
+  </data>
+  <data name="rule_01_80" xml:space="preserve">
+    <value>01 - 80</value>
+  </data>
+  <data name="rule_result_is_odd" xml:space="preserve">
+    <value>The official result is <span class="text-[#A236C8]">ODD</span>.</value>
+  </data>
+  <data name="rule_prize_600" xml:space="preserve">
+    <value>&#128176;600 HTG.</value>
+  </data>
+  <data name="rule_classic_pick_10" xml:space="preserve">
+    <value>Classic Pick 10</value>
+  </data>
+  <data name="rule_system_count_how_many" xml:space="preserve">
+    <value>For this game, the system will count how many of the 20 drawn numbers are:</value>
+  </data>
+  <data name="rule_buy_big_small" xml:space="preserve">
+    <value>When you purchase a ticket, you choose either BIG or SMALL.</value>
+  </data>
+  <data name="rule_if_le_10" xml:space="preserve">
+    <value>If &le; 10 winners</value>
+  </data>
+  <data name="rule_identical_allowed" xml:space="preserve">
+    <value>Identical Tickets Allowed</value>
+  </data>
+  <data name="rule_15_numbers_game" xml:space="preserve">
+    <value>(15 Numbers Game)</value>
+  </data>
+  <data name="rule_prize_12k" xml:space="preserve">
+    <value>&#128176;12,000 HTG.</value>
+  </data>
+  <data name="rule_if_13_41_80" xml:space="preserve">
+    <value>If 13 numbers among the 20 drawn numbers fall within the range <span class="text-[#0BA01A] font-bold">41&#8211;80</span>,</value>
+  </data>
+  <data name="rule_all_odd_win" xml:space="preserve">
+    <value>All ODD tickets win.</value>
+  </data>
+  <data name="rule_winning_rule" xml:space="preserve">
+    <value>Winning Rule</value>
+  </data>
+  <data name="rule_you_win" xml:space="preserve">
+    <value>You win.</value>
+  </data>
+  <data name="rule_if_20_contain_15_even" xml:space="preserve">
+    <value>If the 20 drawn numbers contain 15 or more <span class="font-bold">even</span> numbers</value>
+  </data>
+  <data name="rule_next_round" xml:space="preserve">
+    <value>Next round</value>
+  </data>
+  <data name="rule_how_to_play" xml:space="preserve">
+    <value>How to Play</value>
+  </data>
+  <data name="rule_20_30_daily" xml:space="preserve">
+    <value>20:30 daily</value>
+  </data>
+  <data name="rule_ticket_price" xml:space="preserve">
+    <value>Ticket Price</value>
+  </data>
+  <data name="rule_odd_even" xml:space="preserve">
+    <value>Odd / Even</value>
+  </data>
+  <data name="rule_item" xml:space="preserve">
+    <value>Item</value>
+  </data>
+  <data name="rule_13_numbers_game" xml:space="preserve">
+    <value>(13 Numbers Game)</value>
+  </data>
+  <data name="rule_prize_pool_title" xml:space="preserve">
+    <value>PRIZE POOL</value>
+  </data>
+  <data name="rule_system_check_20" xml:space="preserve">
+    <value>After the draw, the system will check the 20 drawn numbers.</value>
+  </data>
+  <data name="rule_game_1_title" xml:space="preserve">
+    <value>II. GAME 1 – CLASSIC PICK 10</value>
+  </data>
+</root>
+

+ 87 - 0
website/Views/Account/ChooseApp.cshtml

@@ -0,0 +1,87 @@
+@{
+    ViewData["Title"] = "Choose App";
+    Layout = "~/Views/Shared/_NothingLayout.cshtml";
+}
+
+<style>
+    body {
+        /* Background same as login or custom */
+        background: linear-gradient(135deg, #1A1A2E 0%, #16213E 100%) !important;
+        color: white;
+    }
+    .choose-wrapper {
+        display: flex;
+        flex-direction: column;
+        justify-content: center;
+        align-items: center;
+        min-height: 100vh;
+        padding: 20px;
+    }
+    .logo-header {
+        margin-bottom: 40px;
+        text-align: center;
+    }
+    .logo-header img {
+        max-width: 150px;
+    }
+    .grid-container {
+        display: grid;
+        grid-template-columns: repeat(2, 1fr);
+        gap: 20px;
+        width: 100%;
+        max-width: 400px;
+    }
+    .module-card {
+        background: rgba(255, 255, 255, 0.1);
+        backdrop-filter: blur(10px);
+        border: 1px solid rgba(255, 255, 255, 0.2);
+        border-radius: 16px;
+        padding: 25px 15px;
+        text-align: center;
+        transition: transform 0.2s, background 0.2s;
+        cursor: pointer;
+        display: flex;
+        flex-direction: column;
+        align-items: center;
+        text-decoration: none !important;
+        color: white !important;
+    }
+    .module-card:hover {
+        transform: translateY(-5px);
+        background: rgba(255, 255, 255, 0.15);
+        border-color: #FF8603;
+    }
+    .module-icon {
+        font-size: 35px;
+        margin-bottom: 15px;
+    }
+    .module-title {
+        font-size: 14px;
+        font-weight: 600;
+    }
+    .module-sub {
+        font-size: 11px;
+        color: #ccc;
+        margin-top: 5px;
+    }
+</style>
+
+<div class="choose-wrapper animate__animated animate__fadeIn">
+    <div class="logo-header">
+        <img src="~/img/Group 83968 (1).png" />
+        <h5 class="mt-3">Chào mừng bạn trở lại!</h5>
+        <p class="text-muted small">Hãy chọn ứng dụng bạn muốn trải nghiệm</p>
+    </div>
+
+    <div class="grid-container">
+        <!-- Website Cũ -->
+        <a href="/Home" class="module-card">
+            <div class="module-title">Website Gốc</div>
+        </a>
+
+        <!-- LotteryV2 -->
+        <a href="/LotteryV2/Home" class="module-card">
+            <div class="module-title">LotteryV2</div>
+        </a>
+    </div>
+</div>

+ 1 - 1
website/appsettings.json

@@ -44,7 +44,7 @@
   //"Kestrel": {
   //  "EndPoints": {
   //    "Http": {
-  //      "Url": "http://149.28.132.56:8098"
+  //      "Url": "http://127.0.0.1:80985"
   //    }
   //  }
   //},

+ 45 - 0
website/wwwroot/LotteryV2/css/faq.css

@@ -0,0 +1,45 @@
+/* FAQ Stylesheet Settings */
+body {
+    -webkit-tap-highlight-color: transparent;
+    -webkit-font-smoothing: antialiased;
+    overscroll-behavior-y: none;
+}
+
+/* Custom Scrollbar */
+.custom-scrollbar::-webkit-scrollbar {
+    width: 4px;
+}
+.custom-scrollbar::-webkit-scrollbar-track {
+    background: transparent;
+}
+.custom-scrollbar::-webkit-scrollbar-thumb {
+    background-color: #D9D9D9;
+    border-radius: 4px;
+}
+
+/* Fluid Animation for the Mascot image */
+@keyframes faqFloat {
+    0% {
+        transform: translateY(0px) rotate(0deg);
+    }
+    50% {
+        transform: translateY(-8px) rotate(-1.5deg);
+    }
+    100% {
+        transform: translateY(0px) rotate(0deg);
+    }
+}
+
+.faq-float-anim {
+    animation: faqFloat 6s ease-in-out infinite;
+    transform-origin: bottom center;
+}
+
+/* Glowing text shadow for Impact question mark */
+.faq-question-mark {
+    background: linear-gradient(155deg, rgba(229, 40, 62, 1) 38%, rgba(127, 22, 34, 1) 100%);
+    -webkit-background-clip: text;
+    background-clip: text;
+    text-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);
+    -webkit-text-stroke: 3px #fff;
+}

+ 10 - 0
website/wwwroot/LotteryV2/css/howtoplay.css

@@ -0,0 +1,10 @@
+/* Custom styles for How To Play page */
+.font-bricolage { 
+    font-family: 'Bricolage Grotesque', sans-serif; 
+}
+
+.yellow-button {
+    background: linear-gradient(180deg, #FFE95B 0%, #ECA600 100%);
+    box-shadow: inset 0px -2px 0px rgba(0, 0, 0, 0.15), 0px 4px 6px rgba(0, 0, 0, 0.2);
+    color: #212121;
+}

+ 10 - 0
website/wwwroot/LotteryV2/css/more.css

@@ -0,0 +1,10 @@
+.scalloped-bottom {
+    background-color: transparent;
+    background-image: radial-gradient(circle at 10px 10px, transparent 0, transparent 9px, white 10px);
+    background-size: 20px 20px;
+    background-repeat: repeat-x;
+    background-position: bottom;
+    height: 10px;
+    transform: rotate(180deg);
+    filter: drop-shadow(0px -2px 3px rgba(0,0,0,0.08));
+}

+ 95 - 0
website/wwwroot/LotteryV2/css/rule.css

@@ -0,0 +1,95 @@
+/* Custom formatting for the Rule page */
+.rule-header-red {
+    background-color: #EE0033;
+    color: white;
+    font-weight: bold;
+    font-size: 13px;
+    padding: 8px 12px;
+    text-transform: uppercase;
+    margin-top: 24px;
+    margin-bottom: 16px;
+}
+
+.rule-table-grid {
+    display: grid;
+    grid-template-columns: 1.2fr 1fr;
+    row-gap: 6px;
+    column-gap: 12px;
+    font-size: 11px;
+    color: #212121;
+    line-height: 1.4;
+    padding: 0 12px;
+}
+
+.rule-table-grid.desc-grid {
+    grid-template-columns: 100px 1fr;
+    row-gap: 10px;
+}
+
+.rule-table-header {
+    font-weight: 800;
+    margin-bottom: 6px;
+}
+
+.rule-section-title {
+    font-size: 14px;
+    font-weight: 800;
+    color: #212121;
+    display: flex;
+    align-items: center;
+    gap: 6px;
+    margin-top: 20px;
+    margin-bottom: 12px;
+    padding: 0 12px;
+}
+
+.rule-section-title .icon {
+    color: #1A92F4;
+    font-size: 12px;
+}
+
+.ball-green {
+    width: 22px;
+    height: 22px;
+    border-radius: 50%;
+    border: 2px solid #16A34A; /* tailwind green-600 */
+    background-color: white;
+    box-shadow: inset 0 2px 4px rgba(0,0,0,0.1);
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    font-size: 11px;
+    font-weight: 900;
+    color: #16A34A;
+}
+
+.play-card {
+    margin: 0 12px;
+    border-radius: 12px;
+    overflow: hidden;
+    position: relative;
+    box-shadow: 0 4px 6px rgba(238, 0, 51, 0.2);
+}
+
+.bullet-list {
+    padding-left: 12px;
+    padding-right: 12px;
+}
+
+.bullet-list li {
+    font-size: 11px;
+    color: #212121;
+    margin-bottom: 6px;
+    list-style-type: none;
+    position: relative;
+    padding-left: 12px;
+    line-height: 1.3;
+}
+
+.bullet-list li::before {
+    content: "•";
+    position: absolute;
+    left: 0;
+    top: 0;
+    font-weight: bold;
+}

+ 115 - 0
website/wwwroot/LotteryV2/css/site.css

@@ -30,3 +30,118 @@ body.lottery-v2-bg {
     font-weight: bold;
     color: white;
 }
+
+/* Figma Layout Styles for Home */
+body {
+    background-color: #D31D28 !important;
+    /* Full red support from figma nodes fills */
+    font-family: 'Montserrat', sans-serif;
+}
+
+.main-container {
+    max-width: 414px;
+    margin: 0 auto;
+    background-color: #D31D28;
+    min-height: 100vh;
+    padding-bottom: 30px;
+    overflow-x: hidden;
+}
+
+.glass-header {
+    background: transparent;
+}
+
+.card-red {
+    background: linear-gradient(135deg, #EE1E46 0%, #B21030 100%);
+    border: 1px solid rgba(255, 255, 255, 0.2);
+}
+
+.card-blue {
+    background: linear-gradient(135deg, #1A92F4 0%, #0C5BAA 100%);
+    border: 1px solid rgba(255, 255, 255, 0.2);
+}
+
+.card-orange {
+    background: linear-gradient(135deg, #F86E22 0%, #B8470B 100%);
+    border: 1px solid rgba(255, 255, 255, 0.2);
+}
+
+/* Hide Scrollbar for fully immersive mobile wrapper view */
+body {
+    -ms-overflow-style: none;
+    /* IE and Edge */
+    scrollbar-width: none;
+    /* Firefox */
+}
+
+body::-webkit-scrollbar {
+    display: none;
+    /* Chrome, Safari & Opera */
+}
+
+.card-shadow {
+    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
+}
+
+@keyframes btn-pulse {
+
+    0%,
+    100% {
+        transform: scale(1);
+    }
+
+    50% {
+        transform: scale(1.05);
+    }
+}
+
+.btn-pulse {
+    animation: btn-pulse 1s ease-in-out infinite;
+}
+
+@keyframes tick-scroll {
+
+    0%,
+    40% {
+        transform: translateY(0);
+    }
+
+    50%,
+    90% {
+        transform: translateY(-24px);
+    }
+
+    100% {
+        transform: translateY(-48px);
+    }
+}
+
+.animate-tick-scroll {
+    animation: tick-scroll 4s cubic-bezier(0.77, 0, 0.175, 1) infinite;
+}
+
+@keyframes slide-up {
+    0% {
+        transform: translateY(100%);
+        opacity: 0;
+    }
+
+    15% {
+        transform: translateY(0);
+        opacity: 1;
+    }
+
+    85% {
+        transform: translateY(0);
+        opacity: 1;
+    }
+
+    100% {
+        transform: translateY(-100%);
+        opacity: 0;
+    }
+}
+
+.animate-slide-up {
+    animation: slide-up 2s ease-in-out infinite;
+}

BIN=BIN
website/wwwroot/LotteryV2/img/ball_10.png


BIN=BIN
website/wwwroot/LotteryV2/img/ball_20.png


BIN=BIN
website/wwwroot/LotteryV2/img/ball_3.png


BIN=BIN
website/wwwroot/LotteryV2/img/ball_86.png


BIN=BIN
website/wwwroot/LotteryV2/img/ball_88.png


BIN=BIN
website/wwwroot/LotteryV2/img/ball_99.png


BIN=BIN
website/wwwroot/LotteryV2/img/banner1.png


BIN=BIN
website/wwwroot/LotteryV2/img/banner2.png


BIN=BIN
website/wwwroot/LotteryV2/img/banner3.png


BIN=BIN
website/wwwroot/LotteryV2/img/big_text.png


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 1 - 0
website/wwwroot/LotteryV2/img/calling.svg


+ 3 - 0
website/wwwroot/LotteryV2/img/chevron_down.svg

@@ -0,0 +1,3 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M9 18L15 12L9 6" stroke="black" stroke-opacity="0.45" stroke-width="1.33333" stroke-linecap="round" stroke-linejoin="round"/>
+</svg>

BIN=BIN
website/wwwroot/LotteryV2/img/even_text.png


BIN=BIN
website/wwwroot/LotteryV2/img/faq_banner.png


BIN=BIN
website/wwwroot/LotteryV2/img/faq_banner_full.png


BIN=BIN
website/wwwroot/LotteryV2/img/game_card1.png


BIN=BIN
website/wwwroot/LotteryV2/img/game_card2.png


BIN=BIN
website/wwwroot/LotteryV2/img/game_card3.png


BIN=BIN
website/wwwroot/LotteryV2/img/gold.png


BIN=BIN
website/wwwroot/LotteryV2/img/gold_bag.png


BIN=BIN
website/wwwroot/LotteryV2/img/gold_chest.png


BIN=BIN
website/wwwroot/LotteryV2/img/gold_wallet.png


+ 4 - 0
website/wwwroot/LotteryV2/img/help.svg

@@ -0,0 +1,4 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<circle cx="12" cy="17" r="1" fill="#0E1105"/>
+<path d="M9 9C9 7.34315 10.3431 6 12 6C13.6569 6 15 7.34315 15 9C15 10.313 14.1565 11.4289 12.9819 11.8356C12.46 12.0163 12 12.4477 12 13V14M11 3H13C17.9706 3 22 7.02944 22 12C22 16.9706 17.9706 21 13 21H6C3.79086 21 2 19.2091 2 17V12C2 7.02944 6.02944 3 11 3Z" stroke="#0E1105" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
+</svg>

+ 21 - 0
website/wwwroot/LotteryV2/img/icon_calendar.svg

@@ -0,0 +1,21 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g clip-path="url(#clip0_178_10254)">
+<path d="M21.8907 2.8125H2.10941C0.942124 2.8125 3.05176e-05 3.75464 3.05176e-05 4.92188V9.14062C3.05176e-05 9.53433 0.309359 9.9375 0.703156 9.9375H23.2969C23.6907 9.9375 24 9.53433 24 9.14062V4.92188C24 3.75464 23.0579 2.8125 21.8907 2.8125Z" fill="#FF2251"/>
+<path d="M24 4.92188V9.14062C24 9.53433 23.6907 9.9375 23.2969 9.9375H12.0469V2.8125H21.8907C23.0579 2.8125 24 3.75464 24 4.92188Z" fill="#EE0033"/>
+<path d="M13.4532 5.625V1.40625C13.4532 0.629578 12.8236 0 12.0469 0C11.2702 0 10.6407 0.629578 10.6407 1.40625V5.625C10.6407 6.40167 11.2702 7.03125 12.0469 7.03125C12.8236 7.03125 13.4532 6.40167 13.4532 5.625Z" fill="#B7E0F6"/>
+<path d="M13.4532 1.40625V5.625C13.4532 6.40158 12.8235 7.03125 12.0469 7.03125V0C12.8235 0 13.4532 0.629672 13.4532 1.40625Z" fill="#A4D9F5"/>
+<path d="M6.32816 5.625V1.40625C6.32816 0.629578 5.69858 0 4.92191 0C4.14523 0 3.51566 0.629578 3.51566 1.40625V5.625C3.51566 6.40167 4.14523 7.03125 4.92191 7.03125C5.69858 7.03125 6.32816 6.40167 6.32816 5.625Z" fill="#B7E0F6"/>
+<path d="M20.4844 5.625V1.40625C20.4844 0.629578 19.8548 0 19.0782 0C18.3015 0 17.6719 0.629578 17.6719 1.40625V5.625C17.6719 6.40167 18.3015 7.03125 19.0782 7.03125C19.8548 7.03125 20.4844 6.40167 20.4844 5.625Z" fill="#A4D9F5"/>
+<path d="M3.05176e-05 8.4375V21.8906C3.05176e-05 23.0578 0.942124 24 2.10941 24H21.8907C23.0579 24 24 23.0578 24 21.8906V8.4375H3.05176e-05Z" fill="#CAE8F9"/>
+<path d="M24 8.4375V21.8906C24 23.0578 23.0579 24 21.8907 24H12.0469V8.4375H24Z" fill="#B7E0F6"/>
+<path d="M20.4844 12.0469H3.51566V20.4844H20.4844V12.0469Z" fill="#CAE8F9"/>
+<path d="M20.4844 11.3438H3.51566C3.12186 11.3438 2.81253 11.6531 2.81253 12.0469V20.4844C2.81253 20.8781 3.12186 21.1875 3.51566 21.1875H20.4844C20.8782 21.1875 21.1875 20.8781 21.1875 20.4844V12.0469C21.1875 11.6531 20.8782 11.3438 20.4844 11.3438ZM7.03128 19.7812H4.21878V16.9688H7.03128V19.7812ZM7.03128 15.5625H4.21878V12.75H7.03128V15.5625ZM11.3438 19.7812H8.43753V16.9688H11.3438V19.7812ZM11.3438 15.5625H8.43753V12.75H11.3438V15.5625ZM15.5625 19.7812H12.75V16.9688H15.5625V19.7812ZM15.5625 15.5625H12.75V12.75H15.5625V15.5625ZM19.7813 19.7812H16.9688V16.9688H19.7813V19.7812ZM19.7813 15.5625H16.9688V12.75H19.7813V15.5625Z" fill="#363636"/>
+<path d="M20.4844 12.0469H12.0469V20.4844H20.4844V12.0469Z" fill="#B7E0F6"/>
+<path d="M20.4844 11.3438H12.0469V21.1875H20.4844C20.8782 21.1875 21.1875 20.8781 21.1875 20.4844V12.0469C21.1875 11.6531 20.8782 11.3438 20.4844 11.3438ZM15.5625 19.7812H12.75V16.9688H15.5625V19.7812ZM15.5625 15.5625H12.75V12.75H15.5625V15.5625ZM19.7813 19.7812H16.9688V16.9688H19.7813V19.7812ZM19.7813 15.5625H16.9688V12.75H19.7813V15.5625Z" fill="black"/>
+</g>
+<defs>
+<clipPath id="clip0_178_10254">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</svg>

+ 23 - 0
website/wwwroot/LotteryV2/img/icon_faq.svg

@@ -0,0 +1,23 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g clip-path="url(#clip0_0_82)">
+<g clip-path="url(#clip1_0_82)">
+<path d="M11.9531 0.130859C6.13125 0.130859 1.40625 4.85586 1.40625 10.6777V11.3809C1.40625 11.9574 2.06714 12.2949 2.5313 11.9433C3.00937 11.5777 3.61416 11.3809 4.21875 11.3809H4.92188C5.31567 11.3809 5.625 11.0714 5.625 10.6777C5.625 7.19019 8.46567 4.34961 11.9531 4.34961C15.4547 4.34961 18.375 7.17617 18.375 10.6777C18.375 11.0714 18.6843 11.3809 19.0781 11.3809H19.7812C20.3858 11.3809 20.9906 11.5777 21.4687 11.9433C21.9329 12.2949 22.5938 11.9574 22.5938 11.3809V10.6777C22.5938 4.85586 17.775 0.130859 11.9531 0.130859Z" fill="#CAE8F9"/>
+<path d="M22.5937 10.6777V11.3809C22.5937 11.9574 21.9329 12.2949 21.4687 11.9433C20.9906 11.5777 20.3858 11.3809 19.7812 11.3809H19.0781C18.6843 11.3809 18.375 11.0714 18.375 10.6777C18.375 7.17617 15.4547 4.34961 11.9531 4.34961V0.130859C17.775 0.130859 22.5937 4.85586 22.5937 10.6777Z" fill="#B7E0F6"/>
+<path d="M19.7813 19.209C19.7813 21.1474 18.2047 22.7246 16.2657 22.7246H14.8594C13.9326 22.7246 13.9288 21.3184 14.8594 21.3184H16.2657C17.4288 21.3184 18.375 20.3721 18.375 19.209V17.8027C18.375 17.4141 18.6895 17.0996 19.0782 17.0996C19.4668 17.0996 19.7813 17.4141 19.7813 17.8027V19.209Z" fill="#B7E0F6"/>
+<path d="M13.4531 19.9121H11.9531C9.16879 19.9121 9.16879 24.1309 11.9531 24.1309H13.4531C16.2374 24.1309 16.2374 19.9121 13.4531 19.9121Z" fill="#B758CE"/>
+<path d="M8.4375 16.3965C8.4375 17.5596 7.49128 18.5059 6.32812 18.5059H4.92187C4.53323 18.5059 4.21875 18.1914 4.21875 17.8027V10.6777C4.21875 10.2891 4.53323 9.97461 4.92187 9.97461H6.32812C7.49128 9.97461 8.4375 10.9208 8.4375 12.084V16.3965Z" fill="#AA3DC8"/>
+<path d="M19.7812 17.8027C19.7812 18.1914 19.4668 18.5059 19.0781 18.5059H17.6719C16.5087 18.5059 15.5625 17.5596 15.5625 16.3965V12.084C15.5625 10.9208 16.5087 9.97461 17.6719 9.97461H19.0781C19.4668 9.97461 19.7812 10.2891 19.7812 10.6777V17.8027Z" fill="#9332B0"/>
+<path d="M13.4531 24.1309H11.9531V19.9121H13.4531C16.2375 19.9121 16.2375 24.1309 13.4531 24.1309Z" fill="#AA3DC8"/>
+<path d="M5.625 18.5059H4.21875C1.89239 18.5059 0 16.5197 0 14.1934C0 11.7924 1.94231 9.97461 4.21875 9.97461H5.625V18.5059Z" fill="#B758CE"/>
+<path d="M24 14.1934C24 16.5447 22.1044 18.5059 19.7812 18.5059H18.375V9.97461H19.7812C22.0737 9.97461 24 11.8226 24 14.1934Z" fill="#AA3DC8"/>
+</g>
+</g>
+<defs>
+<clipPath id="clip0_0_82">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+<clipPath id="clip1_0_82">
+<rect width="24" height="24" fill="white" transform="translate(0 0.130859)"/>
+</clipPath>
+</defs>
+</svg>

+ 22 - 0
website/wwwroot/LotteryV2/img/icon_history.svg

@@ -0,0 +1,22 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g clip-path="url(#clip0_0_59)">
+<g clip-path="url(#clip1_0_59)">
+<path d="M12.0469 0.130859C5.45166 0.130859 0 5.48867 0 12.084C0 18.6793 5.45166 24.1309 12.0469 24.1309C18.6421 24.1309 24 18.6793 24 12.084C24 5.48867 18.6421 0.130859 12.0469 0.130859Z" fill="#FD003A"/>
+<path d="M24 12.084C24 18.6793 18.6421 24.1309 12.0469 24.1309V0.130859C18.6421 0.130859 24 5.48867 24 12.084Z" fill="#E50027"/>
+<path d="M20.4844 12.084C20.4844 16.7387 16.7017 20.6152 12.0469 20.6152C7.39209 20.6152 3.51562 16.7387 3.51562 12.084C3.51562 7.4293 7.39209 3.64648 12.0469 3.64648C16.7017 3.64648 20.4844 7.4293 20.4844 12.084Z" fill="#CAE8F9"/>
+<path d="M20.4844 12.084C20.4844 16.7387 16.7017 20.6152 12.0469 20.6152V3.64648C16.7017 3.64648 20.4844 7.4293 20.4844 12.084Z" fill="#B7E0F6"/>
+<path d="M14.3673 15.4823L12.0469 13.0683L11.5548 12.5761C11.2734 12.3089 11.2734 11.8589 11.5548 11.5917L14.3673 8.77921C15.0141 8.11832 16.0126 9.10269 15.3516 9.76358L13.0453 12.0839L15.3515 14.498C16.0267 15.1589 15 16.1293 14.3673 15.4823Z" fill="#1689FC"/>
+<path d="M12.0469 2.94336C7.02647 2.94336 2.8125 7.02144 2.8125 12.084C2.8125 17.1043 6.98442 21.3184 12.0469 21.3184C17.0673 21.3184 21.1875 17.1464 21.1875 12.084C21.1875 7.06367 17.1093 2.94336 12.0469 2.94336ZM17.9812 17.1277L17.5172 16.6496C16.8561 16.0027 15.8577 16.9871 16.5187 17.6481L16.9969 18.1121C15.8155 19.0965 14.3532 19.7293 12.75 19.8699V19.209C12.75 18.7449 12.3984 18.5059 12.0469 18.5059C11.6953 18.5059 11.3437 18.7449 11.3437 19.209V19.8699C9.74062 19.7293 8.18447 19.0964 7.00308 18.1121L7.48134 17.648C8.12817 16.9871 7.14384 15.9886 6.48281 16.6496L6.0188 17.1276C5.03447 15.9465 4.40156 14.3902 4.26098 12.7871H4.92187C5.84986 12.7871 5.84986 11.3809 4.92187 11.3809H4.26098C4.40156 9.77773 5.03447 8.31523 6.0188 7.13394L6.48281 7.61211C7.14389 8.25894 8.14228 7.27452 7.48134 6.61362L7.00308 6.14952C8.18447 5.16528 9.74062 4.53242 11.3437 4.39184V5.05273C11.3437 5.51684 11.6953 5.75586 12.0469 5.75586C12.3984 5.75586 12.75 5.51684 12.75 5.05273V4.39184C14.3531 4.53242 15.8155 5.16528 16.9969 6.14956L16.5187 6.61367C15.8578 7.27456 16.8702 8.25894 17.5172 7.61216L17.9812 7.13398C18.9655 8.31528 19.5984 9.77773 19.739 11.3809H19.0781C18.1501 11.3809 18.1501 12.7872 19.0781 12.7872H19.739C19.5984 14.3902 18.9655 15.9465 17.9812 17.1277Z" fill="#81C8EE"/>
+<path d="M14.3672 15.4823L12.0469 13.0683V11.0996L14.3672 8.77921C15.0141 8.11832 16.0126 9.10269 15.3516 9.76358L13.0453 12.0839L15.3515 14.498C16.0267 15.1589 15 16.1293 14.3672 15.4823Z" fill="#136EF1"/>
+<path d="M21.1875 12.084C21.1875 17.1464 17.0673 21.3184 12.0469 21.3184V18.5059C12.3984 18.5059 12.75 18.7449 12.75 19.209V19.8699C14.3531 19.7293 15.8155 19.0964 16.9969 18.1121L16.5187 17.648C15.8578 16.9871 16.8562 16.0027 17.5172 16.6496L17.9812 17.1276C18.9655 15.9465 19.5984 14.3902 19.739 12.7871H19.0781C18.1501 12.7871 18.1501 11.3809 19.0781 11.3809H19.739C19.5984 9.77773 18.9655 8.31523 17.9812 7.13394L17.5172 7.61211C16.8702 8.25894 15.8577 7.27452 16.5187 6.61362L16.9969 6.14952C15.8155 5.16528 14.3531 4.53242 12.75 4.39184V5.05273C12.75 5.51684 12.3984 5.75586 12.0469 5.75586V2.94336C17.1093 2.94336 21.1875 7.06367 21.1875 12.084Z" fill="#4DBBEC"/>
+</g>
+</g>
+<defs>
+<clipPath id="clip0_0_59">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+<clipPath id="clip1_0_59">
+<rect width="24" height="24" fill="white" transform="translate(0 0.130859)"/>
+</clipPath>
+</defs>
+</svg>

+ 24 - 0
website/wwwroot/LotteryV2/img/icon_home.svg

@@ -0,0 +1,24 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g clip-path="url(#clip0_0_8)">
+<g clip-path="url(#clip1_0_8)">
+<path d="M20.9354 10.6593L12.4979 3.4312C12.3712 3.31865 12.2025 3.26245 12.0338 3.26245C11.865 3.26245 11.6963 3.31865 11.5696 3.4312L3.08522 10.6593C2.93072 10.7999 2.84625 10.9827 2.84625 11.1937V23.2968C2.84625 23.6906 3.15558 23.9999 3.54938 23.9999H20.4713C20.865 23.9999 21.1744 23.6906 21.1744 23.2968V11.1937C21.1744 10.9827 21.0899 10.7999 20.9354 10.6593Z" fill="#CAE8F9"/>
+<path d="M21.1743 11.1937V23.2968C21.1743 23.6906 20.865 23.9999 20.4712 23.9999H12.0337V3.26245C12.2025 3.26245 12.3712 3.31865 12.4979 3.4312L20.9354 10.6593C21.0899 10.8 21.1743 10.9828 21.1743 11.1937Z" fill="#B7E0F6"/>
+<path d="M15.5493 15.4688H8.5181C8.1243 15.4688 7.81497 15.7781 7.81497 16.1719V24H16.2525V16.1719C16.2525 15.7781 15.9431 15.4688 15.5493 15.4688Z" fill="#1689FC"/>
+<path d="M16.2525 16.1719V24H12.0337V15.4688H15.5493C15.9431 15.4688 16.2525 15.7781 16.2525 16.1719Z" fill="#136EF1"/>
+<path d="M20.0125 8.02828L17.2 5.60925C17.0448 5.47603 16.9556 5.28103 16.9556 5.07642V2.10937C16.9556 1.72073 17.2701 1.40625 17.6587 1.40625H20.4712C20.8599 1.40625 21.1743 1.72073 21.1743 2.10937V7.49541C21.1743 8.0963 20.4667 8.41791 20.0125 8.02828Z" fill="#A4D9F5"/>
+<path d="M23.2556 8.94375L13.4118 0.50625C13.0181 0.16875 12.5259 0 12.0338 0C11.5416 0 11.0494 0.16875 10.6557 0.50625L0.765057 8.94375C-1.34432 10.7579 1.41189 13.9641 3.52126 12.15L12.0338 4.89375L20.5135 12.15C20.8932 12.4734 21.3854 12.6281 21.8634 12.6281C22.468 12.6281 23.0728 12.3891 23.4807 11.925C24.2399 11.025 24.1416 9.70317 23.2556 8.94375Z" fill="#FD003A"/>
+<path d="M23.4806 11.925C23.0727 12.3891 22.468 12.6281 21.8634 12.6281C21.3853 12.6281 20.8931 12.4734 20.5134 12.15L12.0337 4.8937V0C12.5259 0 13.0181 0.16875 13.4118 0.50625L23.2556 8.94375C24.1415 9.70317 24.2399 11.025 23.4806 11.925Z" fill="#E50027"/>
+<path d="M14.1431 8.4375H9.92435C9.53055 8.4375 9.22122 8.74683 9.22122 9.14062V13.3594C9.22122 13.7532 9.53055 14.0625 9.92435 14.0625H14.1431C14.5369 14.0625 14.8462 13.7532 14.8462 13.3594V9.14062C14.8462 8.74683 14.5369 8.4375 14.1431 8.4375Z" fill="#1DE8F1"/>
+<path d="M12.7369 19.6875C13.1253 19.6875 13.4401 19.3727 13.4401 18.9844C13.4401 18.596 13.1253 18.2812 12.7369 18.2812C12.3486 18.2812 12.0338 18.596 12.0338 18.9844C12.0338 19.3727 12.3486 19.6875 12.7369 19.6875Z" fill="#B7E0F6"/>
+<path d="M14.1431 14.0625H12.0337V8.4375H14.1431C14.5369 8.4375 14.8462 8.74683 14.8462 9.14062V13.3594C14.8462 13.7532 14.5369 14.0625 14.1431 14.0625Z" fill="#1BD9DE"/>
+</g>
+</g>
+<defs>
+<clipPath id="clip0_0_8">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+<clipPath id="clip1_0_8">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+</defs>
+</svg>

+ 5 - 0
website/wwwroot/LotteryV2/img/icon_more.svg

@@ -0,0 +1,5 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M7 12H20" stroke="#0E1105" stroke-width="1.5" stroke-linecap="round"/>
+<path d="M4 17L20 17" stroke="#0E1105" stroke-width="1.5" stroke-linecap="round"/>
+<path d="M4 7L20 7" stroke="#0E1105" stroke-width="1.5" stroke-linecap="round"/>
+</svg>

+ 20 - 0
website/wwwroot/LotteryV2/img/icon_rule.svg

@@ -0,0 +1,20 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g clip-path="url(#clip0_0_36)">
+<g clip-path="url(#clip1_0_36)">
+<path d="M12.0469 0.130859C5.45166 0.130859 0 5.48867 0 12.084C0 14.3762 0.646828 16.6776 1.87041 18.6042L0.0562969 23.1604C-0.182812 23.751 0.393797 24.3135 0.970219 24.0745L5.52647 22.2604C7.45322 23.4838 9.75469 24.1308 12.0469 24.1308C18.6421 24.1308 24 18.6793 24 12.084C24 5.48872 18.6421 0.130859 12.0469 0.130859Z" fill="#17ACE8"/>
+<path d="M23.9999 12.084C23.9999 18.6793 18.642 24.1307 12.0468 24.1307V0.130859C18.642 0.130859 23.9999 5.48867 23.9999 12.084Z" fill="#1689FC"/>
+<path d="M14.8593 15.6932H14.1562V9.27148C14.1562 8.87769 13.8469 8.56836 13.4531 8.56836H9.23431C8.84052 8.56836 8.53119 8.87769 8.53119 9.27148V12.084C8.53119 12.4778 8.84052 12.7871 9.23431 12.7871H9.93744V15.6932H9.23431C8.84052 15.6932 8.53119 16.0025 8.53119 16.3963V19.2088C8.53119 19.6026 8.84052 19.912 9.23431 19.912H14.8593C15.2531 19.912 15.5624 19.6026 15.5624 19.2088V16.3963C15.5624 16.0025 15.2531 15.6932 14.8593 15.6932Z" fill="#CAE8F9"/>
+<path d="M12.0468 2.94336C10.8795 2.94336 9.93744 3.8855 9.93744 5.05273C9.93744 6.21997 10.8795 7.16211 12.0468 7.16211C13.2141 7.16211 14.1562 6.21997 14.1562 5.05273C14.1562 3.8855 13.2141 2.94336 12.0468 2.94336Z" fill="#CAE8F9"/>
+<path d="M12.0468 7.16211V2.94336C13.2141 2.94336 14.1562 3.8855 14.1562 5.05273C14.1562 6.21997 13.2141 7.16211 12.0468 7.16211Z" fill="#B7E0F6"/>
+<path d="M15.5624 16.3963V19.2088C15.5624 19.6026 15.2531 19.912 14.8593 19.912H12.0468V8.56836H13.4531C13.8469 8.56836 14.1562 8.87769 14.1562 9.27148V15.6932H14.8593C15.2531 15.6932 15.5624 16.0025 15.5624 16.3963Z" fill="#B7E0F6"/>
+</g>
+</g>
+<defs>
+<clipPath id="clip0_0_36">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+<clipPath id="clip1_0_36">
+<rect width="24" height="24" fill="white" transform="translate(0 0.130859)"/>
+</clipPath>
+</defs>
+</svg>

BIN=BIN
website/wwwroot/LotteryV2/img/icon_withdraw.png


BIN=BIN
website/wwwroot/LotteryV2/img/illustration3.png


BIN=BIN
website/wwwroot/LotteryV2/img/logo.png


BIN=BIN
website/wwwroot/LotteryV2/img/m1.png


BIN=BIN
website/wwwroot/LotteryV2/img/millionair_guy.png


+ 5 - 0
website/wwwroot/LotteryV2/img/money_bag.svg

@@ -0,0 +1,5 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M5.63246 11.1026C6.44914 8.65258 8.74197 7 11.3246 7H12.6754C15.258 7 17.5509 8.65258 18.3675 11.1026L19.3675 14.1026C20.6626 17.9878 17.7708 22 13.6754 22H10.3246C6.22921 22 3.33739 17.9878 4.63246 14.1026L5.63246 11.1026Z" stroke="#0E1105" stroke-width="1.5" stroke-linejoin="round"/>
+<path d="M9 18C11.2544 19.3147 12.5778 19.3445 15 18" stroke="#0E1105" stroke-width="1.5" stroke-linecap="round"/>
+<path d="M14.0859 7L9.91411 7L8.51303 5.39296C7.13959 3.81763 8.74185 1.46298 10.7471 2.10985L11.6748 2.40914C11.8861 2.47728 12.1139 2.47728 12.3252 2.40914L13.2529 2.10985C15.2582 1.46298 16.8604 3.81763 15.487 5.39296L14.0859 7Z" stroke="#0E1105" stroke-width="1.5" stroke-linejoin="round"/>
+</svg>

BIN=BIN
website/wwwroot/LotteryV2/img/money_bag_large.png


BIN=BIN
website/wwwroot/LotteryV2/img/money_bag_small.png


BIN=BIN
website/wwwroot/LotteryV2/img/nav_faq.png


BIN=BIN
website/wwwroot/LotteryV2/img/nav_history.png


BIN=BIN
website/wwwroot/LotteryV2/img/nav_home.png


BIN=BIN
website/wwwroot/LotteryV2/img/nav_more.png


BIN=BIN
website/wwwroot/LotteryV2/img/nav_rule.png


BIN=BIN
website/wwwroot/LotteryV2/img/odd_even_logo.png


BIN=BIN
website/wwwroot/LotteryV2/img/odd_text.png


BIN=BIN
website/wwwroot/LotteryV2/img/play_chest.png


BIN=BIN
website/wwwroot/LotteryV2/img/play_megabet.png


BIN=BIN
website/wwwroot/LotteryV2/img/play_millionair.png


+ 20 - 0
website/wwwroot/LotteryV2/img/plugin.svg

@@ -0,0 +1,20 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<g clip-path="url(#clip0_164_6523)">
+<g clip-path="url(#clip1_164_6523)">
+<path d="M12.0469 0.130859C5.45166 0.130859 0 5.48867 0 12.084C0 14.3762 0.646828 16.6776 1.87041 18.6042L0.0562969 23.1604C-0.182812 23.751 0.393797 24.3135 0.970219 24.0745L5.52647 22.2604C7.45322 23.4838 9.75469 24.1308 12.0469 24.1308C18.6421 24.1308 24 18.6793 24 12.084C24 5.48872 18.6421 0.130859 12.0469 0.130859Z" fill="#17ACE8"/>
+<path d="M24 12.084C24 18.6793 18.6421 24.1307 12.0468 24.1307V0.130859C18.6421 0.130859 24 5.48867 24 12.084Z" fill="#1689FC"/>
+<path d="M14.8593 15.6932H14.1562V9.27148C14.1562 8.87769 13.8469 8.56836 13.4531 8.56836H9.23432C8.84052 8.56836 8.5312 8.87769 8.5312 9.27148V12.084C8.5312 12.4778 8.84052 12.7871 9.23432 12.7871H9.93745V15.6932H9.23432C8.84052 15.6932 8.5312 16.0025 8.5312 16.3963V19.2088C8.5312 19.6026 8.84052 19.912 9.23432 19.912H14.8593C15.2531 19.912 15.5624 19.6026 15.5624 19.2088V16.3963C15.5624 16.0025 15.2531 15.6932 14.8593 15.6932Z" fill="#CAE8F9"/>
+<path d="M12.0468 2.94336C10.8795 2.94336 9.93745 3.8855 9.93745 5.05273C9.93745 6.21997 10.8795 7.16211 12.0468 7.16211C13.2141 7.16211 14.1562 6.21997 14.1562 5.05273C14.1562 3.8855 13.2141 2.94336 12.0468 2.94336Z" fill="#CAE8F9"/>
+<path d="M12.0468 7.16211V2.94336C13.2141 2.94336 14.1562 3.8855 14.1562 5.05273C14.1562 6.21997 13.2141 7.16211 12.0468 7.16211Z" fill="#B7E0F6"/>
+<path d="M15.5624 16.3963V19.2088C15.5624 19.6026 15.2531 19.912 14.8593 19.912H12.0468V8.56836H13.4531C13.8469 8.56836 14.1562 8.87769 14.1562 9.27148V15.6932H14.8593C15.2531 15.6932 15.5624 16.0025 15.5624 16.3963Z" fill="#B7E0F6"/>
+</g>
+</g>
+<defs>
+<clipPath id="clip0_164_6523">
+<rect width="24" height="24" fill="white"/>
+</clipPath>
+<clipPath id="clip1_164_6523">
+<rect width="24" height="24" fill="white" transform="translate(0 0.130859)"/>
+</clipPath>
+</defs>
+</svg>

BIN=BIN
website/wwwroot/LotteryV2/img/small_big_logo.png


BIN=BIN
website/wwwroot/LotteryV2/img/small_text.png


BIN=BIN
website/wwwroot/LotteryV2/img/top_banner.png


+ 4 - 0
website/wwwroot/LotteryV2/img/user.svg

@@ -0,0 +1,4 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<ellipse cx="12" cy="17.5" rx="7" ry="3.5" stroke="#0E1105" stroke-width="1.5" stroke-linejoin="round"/>
+<circle cx="12" cy="7" r="4" stroke="#0E1105" stroke-width="1.5" stroke-linejoin="round"/>
+</svg>

BIN=BIN
website/wwwroot/LotteryV2/img/wallet_large.png


BIN=BIN
website/wwwroot/LotteryV2/img/wallet_small.png


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 1 - 0
website/wwwroot/LotteryV2/img/wavy_border.svg


+ 3 - 3
website/wwwroot/js/function.js

@@ -1,4 +1,4 @@
-////const { Toast } = require("../lib/bootstrap/dist/js/bootstrap.bundle");
+////const { Toast } = require("../lib/bootstrap/dist/js/bootstrap.bundle");
 
 var success = "0";
 var failure = "-1";
@@ -588,8 +588,8 @@ function loginButtonAction_Click() {
         success: function (data) {
             stopLoading();
             if (data.code == success) {
-                // redirect to success 
-                window.location.href = subDomain + '/Home';
+                // Redirect to app selection screen
+                window.location.href = subDomain + '/Account/ChooseApp';
             } else {
                 toastr.error(data.message);
             }

Algúns arquivos non se mostraron porque demasiados arquivos cambiaron neste cambio