student 4 годин тому
батько
коміт
8b347fcb93

+ 94 - 65
website/Areas/Millions/Views/Home/FAQ.cshtml

@@ -8,77 +8,106 @@
 <script src="https://cdn.tailwindcss.com"></script>
 <link rel="stylesheet" href="/Millions/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) - Fixed -->
-    <div class="fixed top-0 left-0 md:left-1/2 md:-translate-x-1/2 w-full md:max-w-[430px] bg-[#0062FF] h-[52px] flex items-center justify-between px-4 z-[100] 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 class="millions-faq-page">
+    <!-- Header -->
+    <div class="header">
+        <a href="javascript:history.back()" class="back-btn">
+            <i class="fa-solid fa-arrow-left"></i>
+        </a>
+        <div class="header-title">@Lang.faq</div>
     </div>
 
-    <!-- Header Spacer (~52px) -->
-    <div class="h-[52px]"></div>
-
-
-
-    <!-- Banner Graphic directly integrated with Grey background -->
-    <div class="w-full relative flex justify-center mt-3 mb-1">
-         <img src="/Millions/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-[#0062FF] 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-[#0062FF] text-white">
-                 <span class="text-sm font-bold leading-snug block">@Lang.faq_q2</span>
-             </div>
+    <!-- Main Content Card -->
+    <div class="content-card custom-scrollbar">
+        <!-- Banner Graphic directly integrated with Grey background -->
+        <div class="w-full relative flex justify-center mt-3 mb-1">
+             <img src="/Millions/img/faq_banner_full.png" alt="FAQ Graphic" class="w-full max-h-48 object-contain z-10 px-4 pointer-events-none">
         </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-[#0062FF] block mb-1">@Lang.faq_q3</span>
-                 <span class="text-[13px] font-medium leading-relaxed block">@Lang.faq_a3</span>
-             </div>
-        </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-[#0062FF] text-white">
+                    <span class="text-sm font-bold leading-snug block">@Lang.faq_millions_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_millions_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-[#0062FF] text-white">
+                    <span class="text-sm font-bold leading-snug block">@Lang.faq_millions_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_millions_a2</span>
+                    <span class="text-sm font-bold text-[#0062FF] block mb-1">@Lang.faq_millions_q3</span>
+                 </div>
+            </div>
+
+            <!-- Q4:-->
+            <div class="flex justify-start pt-4">
+                 <div class="rounded-xl rounded-tl-sm px-5 py-3 shadow-sm w-[90%] bg-[#0062FF] text-white">
+                     <span class="text-sm font-bold leading-snug block">@Lang.faq_millions_q4</span>
+                 </div>
+            </div>
+            <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">@Html.Raw(Lang.faq_millions_a4)</span>
+                 </div>
+            </div>
+
+            <!-- Q5:-->
+            <div class="flex justify-start pt-4">
+                <div class="rounded-xl rounded-tl-sm px-5 py-3 shadow-sm w-[90%] bg-[#0062FF] text-white">
+                    <span class="text-sm font-bold leading-snug block">@Lang.faq_millions_q5</span>
+                </div>
+            </div>
+            <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">@Html.Raw(Lang.faq_millions_a5)</span>
+                </div>
+            </div>
+
+                        <!-- Q6:-->
+            <div class="flex justify-start pt-4">
+                 <div class="rounded-xl rounded-tl-sm px-5 py-3 shadow-sm w-[90%] bg-[#0062FF] text-white">
+                     <span class="text-sm font-bold leading-snug block">@Lang.faq_millions_q6</span>
+                 </div>
+            </div>
+            <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">@Html.Raw(Lang.faq_millions_a6)</span>
+                 </div>
+            </div>
+
+
+            <!-- Q7:-->
+            <div class="flex justify-start pt-4">
+                <div class="rounded-xl rounded-tl-sm px-5 py-3 shadow-sm w-[90%] bg-[#0062FF] text-white">
+                    <span class="text-sm font-bold leading-snug block">@Lang.faq_millions_q7</span>
+                </div>
+            </div>
+            <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">@Html.Raw(Lang.faq_millions_a7)</span>
+                </div>
+            </div>
+
+            <!-- Entries for other games removed as per request -->
 
-        <!-- Q4: BASIC PICK 10 Prizes -->
-        <div class="flex justify-start pt-4">
-             <div class="rounded-xl rounded-tl-sm px-5 py-3 shadow-sm w-[90%] bg-[#0062FF] text-white">
-                 <span class="text-sm font-bold leading-snug block">@Lang.faq_millions_q4</span>
-             </div>
         </div>
-        <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">@Html.Raw(Lang.faq_millions_a4)</span>
-             </div>
-        </div>
-
-        <!-- Entries for other games removed as per request -->
-
     </div>
     <!-- Bottom Navbar shared component -->
     <partial name="_BottomNavbar" />

+ 16 - 16
website/Areas/Millions/Views/Home/History.cshtml

@@ -17,33 +17,33 @@
 
 <div class="main-container results-container animate__animated animate__fadeIn pb-40 relative">
     <!-- Header Group: Static at Top -->
-    <div class="fixed top-0 left-0 md:left-1/2 md:-translate-x-1/2 w-full md:max-w-[430px] z-[100] bg-[#F3F4F6] pb-2 shadow-md">
+    <div class="fixed top-0 left-0 md:left-1/2 md:-translate-x-1/2 w-full md:max-w-[430px] z-[100] bg-[#0062FF]">
         <!-- Header -->
         <div class="results-top-header">
             <a href="/Millions/Home/GameHome" class="back-btn">
-                <i class="fas fa-arrow-left"></i>
+                <i class="fa-solid fa-arrow-left"></i>
             </a>
             <h1 class="font-bricolage">@Lang.history</h1>
         </div>
 
-        <!-- Removed game tabs as per request: only Millions_CODE is used -->
-        <input type="hidden" id="currentTermType" value="@Constants.Millions_CODE" />
-
-        <!-- Status Filters -->
-        <div class="status-filters !mt-1">
-            <div class="status-filter @(Model.status == Constants.ALL_DATA ? "active" : "")" 
-                 onclick="changeStatus('@Constants.ALL_DATA', this)">@Lang.millions_all</div>
-            <div class="status-filter @(Model.status == Constants.NOT_DRAW_CODE ? "active" : "")" 
-                 onclick="changeStatus('@Constants.NOT_DRAW_CODE', this)">@Lang.millions_waiting</div>
-            <div class="status-filter @(Model.status == Constants.WIN_CODE ? "active" : "")" 
-                 onclick="changeStatus('@Constants.WIN_CODE', this)">@Lang.millions_win</div>
-            <div class="status-filter @(Model.status == Constants.DRAWN_CODE ? "active" : "")" 
-                 onclick="changeStatus('@Constants.DRAWN_CODE', this)">@Lang.millions_not_win</div>
+        <!-- Status Filters inside a white card-like container -->
+        <div class="history-tabs-container bg-white rounded-t-[30px] px-4 pt-4 pb-1">
+            <div class="status-filters">
+                <div class="status-filter @(Model.status == Constants.ALL_DATA ? "active" : "")" 
+                     onclick="changeStatus('@Constants.ALL_DATA', this)">@Lang.millions_all</div>
+                <div class="status-filter @(Model.status == Constants.NOT_DRAW_CODE ? "active" : "")" 
+                     onclick="changeStatus('@Constants.NOT_DRAW_CODE', this)">@Lang.millions_waiting</div>
+                <div class="status-filter @(Model.status == Constants.WIN_CODE ? "active" : "")" 
+                     onclick="changeStatus('@Constants.WIN_CODE', this)">@Lang.millions_win</div>
+                <div class="status-filter @(Model.status == Constants.DRAWN_CODE ? "active" : "")" 
+                     onclick="changeStatus('@Constants.DRAWN_CODE', this)">@Lang.millions_not_win</div>
+            </div>
         </div>
     </div>
 
     <!-- Ticket List Container (spaced below fixed header) -->
-    <div id="history-list-container" class="history-items-list px-4 mt-[130px]">
+    <div id="history-list-container"
+         class="history-items-list bg-white rounded-t-[30px] px-4 pt-4 mt-[130px] pb-[120px] min-h-[calc(100vh-130px)] shadow-sm">
         <partial name="_TermUserTicketHistory" model="Model" />
     </div>
 

+ 3 - 3
website/Areas/Millions/Views/Home/Results.cshtml

@@ -28,17 +28,17 @@
 
 <div class="main-container results-container animate__animated animate__fadeIn pb-40 relative mx-auto max-w-[414px] shadow-2xl min-h-screen bg-white">
     <!-- Header Group: Sticky at Top -->
-    <div class="sticky top-0 w-full z-[100] bg-[#F3F4F6] pb-2 shadow-md">
+    <div class="sticky top-0 w-full z-[100] bg-[#0062FF]">
         <!-- Header: Matches Figma (Right Image) -->
         <div class="results-top-header">
             <a href="javascript:history.back()" class="back-btn">
-                <i class="fas fa-arrow-left"></i>
+                <i class="fa-solid fa-arrow-left"></i>
             </a>
             <h1 class="font-bricolage">@Lang.results</h1>
         </div>
 
         <!-- Selection Bar: Side-by-side dates and search -->
-        <div class="selection-bar bg-white/50 backdrop-blur-sm px-4 pt-2 pb-2">
+        <div class="selection-bar bg-white rounded-t-[30px] px-4 pt-4 pb-2">
             <div class="flex gap-3">
                 <div class="date-pick-input flex-1 cursor-pointer relative bg-white border border-gray-200 rounded-lg p-2 flex items-center gap-2">
                     <img src="/Millions/img/icon_calendar.svg" class="w-5 h-5" />

+ 2 - 2
website/Areas/Millions/Views/Shared/_BottomNavbar.cshtml

@@ -4,8 +4,8 @@
 }
 
 <!-- Bottom navigation (fixed at bottom) -->
-<nav class="navigation fixed left-1/2 -translate-x-1/2 bottom-3 z-[120] px-3 py-2 rounded-2xl w-[calc(100%-1.5rem)] max-w-[430px]"
-     style="position:fixed; left:50%; transform:translateX(-50%); bottom:12px; width:calc(100% - 1.5rem); max-width:430px; z-index:120;">
+<nav class="navigation fixed left-1/2 -translate-x-1/2 bottom-0 z-[120] px-3 py-2 rounded-2xl w-[calc(100%-1.5rem)] max-w-[430px] bg-white/95 backdrop-blur-md shadow-lg border border-white/60"
+     style="position:fixed; left:50%; transform:translateX(-50%); bottom:0; padding-bottom: calc(0.5rem + env(safe-area-inset-bottom)); width:calc(100% - 1.5rem); max-width:430px; z-index:120; background: rgba(255,255,255,0.95); backdrop-filter: blur(12px); box-shadow: 0 10px 26px rgba(0,0,0,0.12);">
     <div class="flex items-center justify-between">
         <a href="/Millions/Home/GameHome" class="nav-item @(activePage == "Home" ? "active" : "") flex flex-col items-center flex-1 no-underline">
             <img src="/Millions/assets/icons/nav-home.png" alt="" class="w-7 h-7"/>

+ 50 - 15
website/Languages/Lang.Designer.cs

@@ -899,6 +899,33 @@ namespace LotteryWebApp.Languages {
             }
         }
         
+        /// <summary>
+        ///   Looks up a localized string similar to Chwazi 10 nimewo ant 1 ak 80 oswa chwazi opsyon Pick Rapid la. Achte tike w epi tann tiraj la..
+        /// </summary>
+        public static string faq_millions_a1 {
+            get {
+                return ResourceManager.GetString("faq_millions_a1", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Tiraj yo fet chak jou a 8:30 p.m. Vann tike yo sispann a 8:00 p.m..
+        /// </summary>
+        public static string faq_millions_a2 {
+            get {
+                return ResourceManager.GetString("faq_millions_a2", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Chans pou genyen premye pri Pick 10 la se 1 sou 8,911,711..
+        /// </summary>
+        public static string faq_millions_a3 {
+            get {
+                return ResourceManager.GetString("faq_millions_a3", resourceCulture);
+            }
+        }
+        
         /// <summary>
         ///   Looks up a localized string similar to Plis nimewo ou jwenn, se plis pri w ap genyen! &lt;br/&gt; Nan PICK 10, yo konpare 10 nimewo ou chwazi yo ak 10 nimewo rezilta ofisyel yo. Ou genyen le ou jwenn 6 nimewo oswa plis — e menm si ou pa jwenn yon nimewo, wap jwenn yon rekonpans !&lt;br/&gt;&lt;br/&gt; 🎯 Jwenn 10 nimewo → Genyen Jakpot la&lt;br/&gt; 🔥 Jwenn 9 nimewo → Genyen 12,000 HTG&lt;br/&gt; 💰 Jwenn 8 nimewo → Genyen 600 HTG&lt;br/&gt; ⭐ Jwenn 7 nimewo → Genyen 160 HTG&lt;br/&gt; 🎉 Jwenn 6 nimewo → Genyen 20 HTG&lt;br/&gt; 🎁 Jwenn 0 nimewo → Genyen 5 HTG&lt;br/ [rest of string was truncated]&quot;;.
         /// </summary>
@@ -936,12 +963,29 @@ namespace LotteryWebApp.Languages {
         }
         
         /// <summary>
-        ///   Looks up a localized string similar to 
-        ///Apre yo fin tire 20 nimewo, sistem nan konte konbyen nimewo ki enpe oswa pe: &lt;br/&gt; - Si 15 nimewo oswa plis enpe, rezilta a se ENPE.&lt;br/&gt; - Si 15 nimewo oswa plis pe, rezilta a se PE.&lt;br/&gt;&lt;br/&gt; Si opsyon ou chwazi a koresponn ak rezilta ofisel la, ou genyen..
+        ///   Looks up a localized string similar to Kijan pouw jwe Pick 10?.
+        /// </summary>
+        public static string faq_millions_q1 {
+            get {
+                return ResourceManager.GetString("faq_millions_q1", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to Ki le tiraj Pick 10 yo ap fet?.
+        /// </summary>
+        public static string faq_millions_q2 {
+            get {
+                return ResourceManager.GetString("faq_millions_q2", resourceCulture);
+            }
+        }
+        
+        /// <summary>
+        ///   Looks up a localized string similar to faq_millions_q3.
         /// </summary>
-        public static string faq_millions_a8 {
+        public static string faq_millions_q3 {
             get {
-                return ResourceManager.GetString("faq_millions_a8", resourceCulture);
+                return ResourceManager.GetString("faq_millions_q3", resourceCulture);
             }
         }
         
@@ -981,15 +1025,6 @@ namespace LotteryWebApp.Languages {
             }
         }
         
-        /// <summary>
-        ///   Looks up a localized string similar to ❓ Kijan pou m genyen nan jwet Pe/Enpe a?.
-        /// </summary>
-        public static string faq_millions_q8 {
-            get {
-                return ResourceManager.GetString("faq_millions_q8", resourceCulture);
-            }
-        }
-        
         /// <summary>
         ///   Looks up a localized string similar to Kijan pouw jwe Pick 10?.
         /// </summary>
@@ -1091,7 +1126,7 @@ namespace LotteryWebApp.Languages {
         }
         
         /// <summary>
-        ///   Looks up a localized string similar to ❓ Kijan pou m jwe jwet Pe/Enpe a?.
+        ///   Looks up a localized string similar to Kijan pou m jwe jwet Pe/Enpe a?.
         /// </summary>
         public static string faq_v2_q7 {
             get {
@@ -1100,7 +1135,7 @@ namespace LotteryWebApp.Languages {
         }
         
         /// <summary>
-        ///   Looks up a localized string similar to ❓ Kijan pou m genyen nan jwet Pe/Enpe a?.
+        ///   Looks up a localized string similar to Kijan pou m genyen nan jwet Pe/Enpe a?.
         /// </summary>
         public static string faq_v2_q8 {
             get {

+ 122 - 21
website/Languages/Lang.fr.resx

@@ -1359,31 +1359,31 @@ We’ll help you create an account in a few easy steps.</value>
     <value>millionair</value>
   </data>
   <data name="faq_v2_q4" xml:space="preserve">
-    <value>❓ How many matching numbers do I need to win a prize?</value>
+    <value>How many matching numbers do I need to win a prize?</value>
   </data>
   <data name="faq_v2_a4" xml:space="preserve">
     <value>The more numbers you match, the bigger your prize! &lt;br/&gt; In BASIC PICK 10, your 10 selected numbers are compared with the 10 official result numbers. You win when you match 6 or more numbers — and even matching 0 numbers still gives you a reward!&lt;br/&gt;&lt;br/&gt; 🎯 Match 10 numbers → Win the Jackpot&lt;br/&gt; 🔥 Match 9 numbers → Win 12,000 HTG&lt;br/&gt; 💰 Match 8 numbers → Win 600 HTG&lt;br/&gt; ⭐ Match 7 numbers → Win 160 HTG&lt;br/&gt; 🎉 Match 6 numbers → Win 20 HTG&lt;br/&gt; 🎁 Match 0 numbers → Win 5 HTG&lt;br/&gt;&lt;br/&gt; Every ticket gives you a chance to win — even when luck surprises you!</value>
   </data>
   <data name="faq_v2_q5" xml:space="preserve">
-    <value>❓ How do I play the Big / Small game?</value>
+    <value>How do I play the Big / Small game?</value>
   </data>
   <data name="faq_v2_a5" xml:space="preserve">
     <value>Choose Big (41–80) or Small (01–40). Purchase your ticket before 20:00 and wait for the draw at 20:30.</value>
   </data>
   <data name="faq_v2_q6" xml:space="preserve">
-    <value>❓ How do I win in the Big / Small game?</value>
+    <value>How do I win in the Big / Small game?</value>
   </data>
   <data name="faq_v2_a6" xml:space="preserve">
     <value>After 20 numbers are drawn, the system checks how many numbers fall within each range: &lt;br/&gt; - If 13 or more numbers are between 41–80, the result is BIG.&lt;br/&gt; - If 13 or more numbers are between 01–40, the result is SMALL.&lt;br/&gt;&lt;br/&gt; If your selected option matches the official result, you win.</value>
   </data>
   <data name="faq_v2_q7" xml:space="preserve">
-    <value>❓ How do I play the Odd / Even game?</value>
+    <value>How do I play the Odd / Even game?</value>
   </data>
   <data name="faq_v2_a7" xml:space="preserve">
     <value>Choose Odd or Even. Purchase your ticket before 20:00 and wait for the draw at 20:30.</value>
   </data>
   <data name="faq_v2_q8" xml:space="preserve">
-    <value>❓ How do I win in the Odd / Even game?</value>
+    <value>How do I win in the Odd / Even game?</value>
   </data>
   <data name="faq_v2_a8" xml:space="preserve">
     <value>After 20 numbers are drawn, the system counts how many numbers are odd or even: &lt;br/&gt; - If 15 or more numbers are odd, the result is ODD.&lt;br/&gt; - If 15 or more numbers are even, the result is EVEN.&lt;br/&gt;&lt;br/&gt; If your selected option matches the official result, you win.</value>
@@ -1584,7 +1584,7 @@ We’ll help you create an account in a few easy steps.</value>
     <value>Confirm</value>
   </data>
   <data name="millions_payment_successfully" xml:space="preserve">
-    <value>Money 💸 has been transferred successfully!</value>
+    <value>Money ¸ has been transferred successfully!</value>
   </data>
   <data name="millions_your_choice" xml:space="preserve">
     <value>Your choice</value>
@@ -1602,7 +1602,7 @@ We’ll help you create an account in a few easy steps.</value>
     <value>💸 Sender phone</value>
   </data>
   <data name="millions_receiver_phone" xml:space="preserve">
-    <value>💰 Receiver phone</value>
+    <value>Receiver phone</value>
   </data>
   <data name="millions_amount_htg" xml:space="preserve">
     <value>Amount (HTG)</value>
@@ -1647,34 +1647,30 @@ We’ll help you create an account in a few easy steps.</value>
     <value>For this game, the system will count how many of the 20 drawn numbers are:</value>
   </data>
   <data name="faq_millions_q4" xml:space="preserve">
-    <value>❓ How many matching numbers do I need to win a prize?</value>
+    <value>How are winnings calculated?</value>
   </data>
   <data name="faq_millions_a4" xml:space="preserve">
-    <value>The more numbers you match, the bigger your prize! &lt;br/&gt; In BASIC PICK 10, your 10 selected numbers are compared with the 10 official result numbers. You win when you match 6 or more numbers — and even matching 0 numbers still gives you a reward!&lt;br/&gt;&lt;br/&gt; 🎯 Match 10 numbers → Win the Jackpot&lt;br/&gt; 🔥 Match 9 numbers → Win 12,000 HTG&lt;br/&gt; 💰 Match 8 numbers → Win 600 HTG&lt;br/&gt; ⭐ Match 7 numbers → Win 160 HTG&lt;br/&gt; 🎉 Match 6 numbers → Win 20 HTG&lt;br/&gt; 🎁 Match 0 numbers → Win 5 HTG&lt;br/&gt;&lt;br/&gt; Every ticket gives you a chance to win — even when luck surprises you!</value>
+    <value>Winnings depend on how many numbers you match, including the Mega Ball.
 The more numbers you match, the higher your prize.</value>
   </data>
   <data name="faq_millions_q5" xml:space="preserve">
-    <value>❓ How do I play the Big / Small game?</value>
+    <value>Can I win multiple prizes with one ticket?</value>
   </data>
   <data name="faq_millions_a5" xml:space="preserve">
-    <value>Choose Big (41–80) or Small (01–40). Purchase your ticket before 20:00 and wait for the draw at 20:30.</value>
+    <value>No. If your ticket qualifies for multiple prizes, you will receive only the highest prize.</value>
   </data>
   <data name="faq_millions_q6" xml:space="preserve">
-    <value>❓ How do I win in the Big / Small game?</value>
+    <value>Where do the results come from?</value>
   </data>
   <data name="faq_millions_a6" xml:space="preserve">
-    <value>After 20 numbers are drawn, the system checks how many numbers fall within each range: &lt;br/&gt; - If 13 or more numbers are between 41–80, the result is BIG.&lt;br/&gt; - If 13 or more numbers are between 01–40, the result is SMALL.&lt;br/&gt;&lt;br/&gt; If your selected option matches the official result, you win.</value>
+    <value>All results are taken from the official Mega Millions source:
https://www.lotteryusa.com/new-york/</value>
   </data>
   <data name="faq_millions_q7" xml:space="preserve">
-    <value>❓ How do I play the Odd / Even game?</value>
+    <value>How will I receive my winnings?</value>
   </data>
   <data name="faq_millions_a7" xml:space="preserve">
-    <value>Choose Odd or Even. Purchase your ticket before 20:00 and wait for the draw at 20:30.</value>
-  </data>
-  <data name="faq_millions_q8" xml:space="preserve">
-    <value>❓ How do I win in the Odd / Even game?</value>
-  </data>
-  <data name="faq_millions_a8" xml:space="preserve">
-    <value>After 20 numbers are drawn, the system counts how many numbers are odd or even: &lt;br/&gt; - If 15 or more numbers are odd, the result is ODD.&lt;br/&gt; - If 15 or more numbers are even, the result is EVEN.&lt;br/&gt;&lt;br/&gt; If your selected option matches the official result, you win.</value>
+    <value> Winnings are credited to your main balance or Natcash account.
+1 coin = 1 HTG
+ Jackpot prizes may follow a different payout process.</value>
   </data>
   <data name="millions_otp_sent_successfully" xml:space="preserve">
     <value>Your OTP has been sent successfully. Please check your messages !</value>
@@ -1730,4 +1726,109 @@ We’ll help you create an account in a few easy steps.</value>
   <data name="millions" xml:space="preserve">
     <value>Millions</value>
   </data>
+  <data name="millions_rule_title" xml:space="preserve">
+    <value>Rule</value>
+  </data>
+  <data name="millions_mega_millions" xml:space="preserve">
+    <value>Mega Millions</value>
+  </data>
+  <data name="millions_draw_schedule" xml:space="preserve">
+    <value>Draw Schedule</value>
+  </data>
+  <data name="millions_draw_frequency" xml:space="preserve">
+    <value>Draw frequency: 2 times per week (Tuesday &amp; Friday)</value>
+  </data>
+  <data name="millions_draw_time" xml:space="preserve">
+    <value>Draw time: 11:00 PM (Eastern Time - ET)</value>
+  </data>
+  <data name="millions_ticket_closing_time" xml:space="preserve">
+    <value>Ticket closing time: 10:30 PM (ET)</value>
+  </data>
+  <data name="millions_how_to_play" xml:space="preserve">
+    <value>How to play</value>
+  </data>
+  <data name="millions_ticket_includes_6" xml:space="preserve">
+    <value>Each ticket includes 6 numbers:</value>
+  </data>
+  <data name="millions_select_5_main" xml:space="preserve">
+    <value>Select 5 main numbers from 1 → 70</value>
+  </data>
+  <data name="millions_select_1_mega" xml:space="preserve">
+    <value>Select 1 Mega Ball from 1 → 24</value>
+  </data>
+  <data name="millions_ticket_price" xml:space="preserve">
+    <value>Ticket price: 20 HTG per ticket</value>
+  </data>
+  <data name="millions_payment_via" xml:space="preserve">
+    <value>Payment via: Account balance</value>
+  </data>
+  <data name="millions_game_rules_title" xml:space="preserve">
+    <value>Game rules</value>
+  </data>
+  <data name="millions_results_based_on" xml:space="preserve">
+    <value>Results are based on official lottery draw.</value>
+  </data>
+  <data name="millions_one_highest_prize" xml:space="preserve">
+    <value>Only one highest prize is awarded per ticket (if multiple prize conditions are met).</value>
+  </data>
+  <data name="millions_winnings_calculated" xml:space="preserve">
+    <value>Winnings are calculated based on matching numbers and Mega Ball.</value>
+  </data>
+  <data name="millions_prize_structure" xml:space="preserve">
+    <value>Prize Structure</value>
+  </data>
+  <data name="millions_match_result_header" xml:space="preserve">
+    <value>Match Result</value>
+  </data>
+  <data name="millions_prize_htg_header" xml:space="preserve">
+    <value>Prize (HTG)</value>
+  </data>
+  <data name="millions_match_5_plus_mega" xml:space="preserve">
+    <value>5+ Mega Ball</value>
+  </data>
+  <data name="millions_jackpot_label" xml:space="preserve">
+    <value>Jackpot</value>
+  </data>
+  <data name="millions_match_5_numbers" xml:space="preserve">
+    <value>5 Numbers</value>
+  </data>
+  <data name="millions_match_4_plus_mega" xml:space="preserve">
+    <value>4 + Mega Ball</value>
+  </data>
+  <data name="millions_match_4_numbers" xml:space="preserve">
+    <value>4 Numbers</value>
+  </data>
+  <data name="millions_match_3_plus_mega" xml:space="preserve">
+    <value>3 + Mega Ball</value>
+  </data>
+  <data name="millions_match_3_numbers" xml:space="preserve">
+    <value>3 Numbers</value>
+  </data>
+  <data name="millions_match_2_plus_mega" xml:space="preserve">
+    <value>2 + Mega Ball</value>
+  </data>
+  <data name="millions_match_1_plus_mega" xml:space="preserve">
+    <value>1 + Mega Ball</value>
+  </data>
+  <data name="millions_match_mega_only" xml:space="preserve">
+    <value>Mega Ball only</value>
+  </data>
+  <data name="faq_millions_a1" xml:space="preserve">
+    <value>You select 5 numbers from 1 to 70 and 1 Mega Ball from 1 to 24, then purchase your ticket before the draw time.</value>
+  </data>
+  <data name="faq_millions_a2" xml:space="preserve">
+    <value>Draws take place twice a week (Tuesday and Friday) at 11:00 PM (ET).
 Ticket sales close at 10:30 PM (ET)</value>
+  </data>
+  <data name="faq_millions_a3" xml:space="preserve">
+    <value>Each ticket costs 20 HTG.</value>
+  </data>
+  <data name="faq_millions_q1" xml:space="preserve">
+    <value>How do I play Mega Millions?</value>
+  </data>
+  <data name="faq_millions_q2" xml:space="preserve">
+    <value>When are Mega Millions draws held?</value>
+  </data>
+  <data name="faq_millions_q3" xml:space="preserve">
+    <value>How much does a ticket cost?</value>
+  </data>
 </root>

+ 20 - 9
website/Languages/Lang.resx

@@ -1379,13 +1379,13 @@ Rezilta ofisyel la se &lt;span class="text-[#A236C8]"&gt;ODD&lt;/span&gt;.</valu
     <value>Apre yo fin tire 20 nimewo, sistem nan verifye konbyen nimewo ki nan chak seri: &lt;br/&gt; - Si gen 13 nimewo oswa plis ant 41 ak 80, rezilta a GWO.&lt;br/&gt; - Si gen 13 nimewo oswa plis ant 01 ak 40, rezilta a TI.&lt;br/&gt;&lt;br/&gt; Si opsyon ou chwazi a koresponn ak rezilta ofisyel la, ou genyen.</value>
   </data>
   <data name="faq_v2_q7" xml:space="preserve">
-    <value>❓ Kijan pou m jwe jwet Pe/Enpe a?</value>
+    <value>Kijan pou m jwe jwet Pe/Enpe a?</value>
   </data>
   <data name="faq_v2_a7" xml:space="preserve">
     <value>Chwazi Pe oubyen Enpe. Achte tike ou anvan 8e diswa epi tann tiraj la a 8e edmi diswa.</value>
   </data>
   <data name="faq_v2_q8" xml:space="preserve">
-    <value>❓ Kijan pou m genyen nan jwet Pe/Enpe a?</value>
+    <value>Kijan pou m genyen nan jwet Pe/Enpe a?</value>
   </data>
   <data name="faq_v2_a8" xml:space="preserve">
     <value>
@@ -1673,13 +1673,6 @@ Apre yo fin tire 20 nimewo, sistem nan konte konbyen nimewo ki enpe oswa pe: &lt
   <data name="faq_millions_a7" xml:space="preserve">
     <value>Chwazi Pe oubyen Enpe. Achte tike ou anvan 8e diswa epi tann tiraj la a 8e edmi diswa.</value>
   </data>
-  <data name="faq_millions_q8" xml:space="preserve">
-    <value>❓ Kijan pou m genyen nan jwet Pe/Enpe a?</value>
-  </data>
-  <data name="faq_millions_a8" xml:space="preserve">
-    <value>
-Apre yo fin tire 20 nimewo, sistem nan konte konbyen nimewo ki enpe oswa pe: &lt;br/&gt; - Si 15 nimewo oswa plis enpe, rezilta a se ENPE.&lt;br/&gt; - Si 15 nimewo oswa plis pe, rezilta a se PE.&lt;br/&gt;&lt;br/&gt; Si opsyon ou chwazi a koresponn ak rezilta ofisel la, ou genyen.</value>
-  </data>
   <data name="millions_otp_sent_successfully" xml:space="preserve">
     <value>OTP ale ak sikse. Tanpri verifye mesaj ou!</value>
   </data>
@@ -1821,4 +1814,22 @@ Apre yo fin tire 20 nimewo, sistem nan konte konbyen nimewo ki enpe oswa pe: &lt
   <data name="millions_match_mega_only" xml:space="preserve">
     <value>Mega Ball only</value>
   </data>
+  <data name="faq_millions_a1" xml:space="preserve">
+    <value>Chwazi 10 nimewo ant 1 ak 80 oswa chwazi opsyon Pick Rapid la. Achte tike w epi tann tiraj la.</value>
+  </data>
+  <data name="faq_millions_a2" xml:space="preserve">
+    <value>Tiraj yo fet chak jou a 8:30 p.m. Vann tike yo sispann a 8:00 p.m.</value>
+  </data>
+  <data name="faq_millions_a3" xml:space="preserve">
+    <value>Chans pou genyen premye pri Pick 10 la se 1 sou 8,911,711.</value>
+  </data>
+  <data name="faq_millions_q1" xml:space="preserve">
+    <value>Kijan pouw jwe Pick 10?</value>
+  </data>
+  <data name="faq_millions_q2" xml:space="preserve">
+    <value>Ki le tiraj Pick 10 yo ap fet?</value>
+  </data>
+  <data name="faq_millions_q3" xml:space="preserve">
+    <value>faq_millions_q3</value>
+  </data>
 </root>

+ 66 - 11
website/wwwroot/Millions/css/faq.css

@@ -1,8 +1,74 @@
 /* FAQ Stylesheet Settings */
+:root {
+    --primary-blue: #0062FF;
+    --dark-blue: #004ecc;
+    --bg-light: #ffffff;
+    --text-dark: #1A1A1A;
+    --text-muted: #666666;
+}
+
 body {
     -webkit-tap-highlight-color: transparent;
     -webkit-font-smoothing: antialiased;
     overscroll-behavior-y: none;
+    font-family: 'Bricolage Grotesque', sans-serif;
+}
+
+.millions-faq-page {
+    background-color: var(--primary-blue);
+    min-height: 100vh;
+    display: flex;
+    flex-direction: column;
+    position: relative;
+    max-width: 430px;
+    margin: 0 auto;
+}
+
+/* Header with Chevron Pattern */
+.millions-faq-page .header {
+    background-color: var(--primary-blue);
+    background-image: url("data:image/svg+xml,%3Csvg width='60' height='30' viewBox='0 0 60 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 15 L15 0 L30 15 L45 0 L60 15 L60 30 L45 15 L30 30 L15 15 L0 30 Z' fill='%23004ecc' fill-opacity='0.4'/%3E%3C/svg%3E");
+    height: 64px;
+    display: flex;
+    align-items: center;
+    padding: 0 16px;
+    color: #fff;
+    position: sticky;
+    top: 0;
+    z-index: 100;
+}
+
+.millions-faq-page .back-btn {
+    width: 32px;
+    height: 32px;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    color: #fff;
+    text-decoration: none;
+    font-size: 18px;
+    cursor: pointer;
+    background: transparent;
+    border: none;
+}
+
+.millions-faq-page .header-title {
+    flex: 1;
+    text-align: center;
+    font-size: 20px;
+    font-weight: 800;
+    margin-right: 32px; /* balance back button */
+}
+
+/* Content Card */
+.millions-faq-page .content-card {
+    background-color: #ffffff;
+    flex: 1;
+    border-radius: 40px 40px 0 0;
+    overflow-y: auto;
+    padding-bottom: 120px; /* space for navbar */
+    box-shadow: 0 -4px 10px rgba(0, 0, 0, 0.1);
+    position: relative;
 }
 
 /* Custom Scrollbar */
@@ -43,14 +109,3 @@ body {
     text-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);
     -webkit-text-stroke: 3px #fff;
 }
-
-/* Ensure bottom nav is visible immediately on FAQ */
-.navigation {
-    position: fixed !important;
-    left: 50% !important;
-    transform: translateX(-50%) !important;
-    bottom: 12px !important;
-    width: calc(100% - 1.5rem) !important;
-    max-width: 430px !important;
-    z-index: 120 !important;
-}

+ 12 - 13
website/wwwroot/Millions/css/history.css

@@ -30,20 +30,17 @@
 
 .status-filters {
     display: flex;
-    padding: 0 16px;
+    padding: 0;
     gap: 4px;
-    margin-top: 12px;
-    background: white;
-    margin-left: 16px;
-    margin-right: 16px;
-    border-radius: 12px;
-    box-shadow: 0 2px 4px rgba(0,0,0,0.03);
+    background: transparent;
+    box-shadow: none;
+    margin: 0;
 }
 .status-filter {
     flex: 1;
-    padding: 12px 4px;
+    padding: 10px 4px;
     text-align: center;
-    font-size: 12px;
+    font-size: 14px;
     font-weight: 700;
     color: #9CA3AF;
     position: relative;
@@ -56,12 +53,12 @@
 .status-filter.active::after {
     content: '';
     position: absolute;
-    bottom: 6px;
+    bottom: 0px;
     left: 20%;
     right: 20%;
     height: 3px;
     background: #0062FF;
-    border-radius: 2px;
+    border-radius: 4px;
 }
 
 /* Ticket Card */
@@ -181,10 +178,12 @@
 
 .history-items-list {
     flex: 1;
-    height: calc(100vh - 175px) !important;
+    /* Use more vertical space (avoid unused gray gap under list) */
+    height: calc(100vh - 140px) !important;
     overflow-y: auto !important;
     overflow-x: hidden !important;
-    padding-bottom: 100px;
+    /* keep content clear of fixed bottom navbar */
+    padding-bottom: calc(120px + env(safe-area-inset-bottom));
     
     scrollbar-width: thin !important;
     scrollbar-color: #fce303 transparent !important;

+ 18 - 8
website/wwwroot/Millions/css/results.css

@@ -34,24 +34,34 @@
 
 .results-top-header {
     background-color: #0062FF;
-    padding: 12px 16px;
+    background-image: url("data:image/svg+xml,%3Csvg width='60' height='30' viewBox='0 0 60 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 15 L15 0 L30 15 L45 0 L60 15 L60 30 L45 15 L30 30 L15 15 L0 30 Z' fill='%23004ecc' fill-opacity='0.4'/%3E%3C/svg%3E");
+    height: 64px;
     display: flex;
     align-items: center;
-    justify-content: center;
+    padding: 0 16px;
+    color: #fff;
     position: relative;
+    z-index: 100;
 }
 
 .results-top-header h1 {
-    color: white;
-    font-size: 28px;
+    flex: 1;
+    text-align: center;
+    font-size: 20px;
     font-weight: 800;
+    margin-right: 32px; /* balance back button */
+    color: white;
 }
 
 .results-top-header .back-btn {
-    position: absolute;
-    left: 16px;
-    color: white;
-    font-size: 20px;
+    width: 32px;
+    height: 32px;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    color: #fff;
+    text-decoration: none;
+    font-size: 18px;
 }
 
 /* Date Selection Bar */

+ 4 - 1
website/wwwroot/Millions/css/site.css

@@ -6,6 +6,8 @@ body.millions-bg {
     min-height: 100vh;
     margin: 0;
     padding: 0;
+    /* Ensure page content never sits under fixed bottom navbar */
+    padding-bottom: calc(96px + env(safe-area-inset-bottom));
 }
 
 .millions-container {
@@ -48,7 +50,8 @@ body {
     margin: 0 auto;
     background-color: #0062FF;
     min-height: 100vh;
-    padding-bottom: 30px;
+    /* fallback; most pages also use tailwind pb-24/pb-40 */
+    padding-bottom: max(30px, calc(96px + env(safe-area-inset-bottom)));
     overflow-x: hidden;
 }