PageSourceSearch

https://pgslot77.art/guide/

html pgslot77.art collected 2026-10-08 21:27:47 UTC 239,821 bytes, 4,936 lines download raw bytes

1    <!doctype html>
2    <html lang="th">
3
4    <head><meta charset="UTF-8">
4<script>if(navigator.userAgent.match(/MSIE|Internet Explorer/i)||navigator.userAgent.match(/Trident\/7\..*?rv:11/i)){var href=document.location.href;if(!href.match(/[?&]nowprocket/)){if(href.indexOf("?")==-1){if(href.indexOf("#")==-1){document.location.href=href+"?nowprocket=1"}else{document.location.href=href.replace("#","?nowprocket=1#")}}else{if(href.indexOf("#")==-1){document.location.href=href+"&nowprocket=1"}else{document.location.href=href.replace("#","&nowprocket=1#")}}}}</script>
4<script>class RocketLazyLoadScripts{constructor(){this.v="1.2.3",this.triggerEvents=["keydown","mousedown","mousemove","touchmove","touchstart","touchend","wheel"],this.userEventHandler=this._triggerListener.bind(this),this.touchStartHandler=this._onTouchStart.bind(this),this.touchMoveHandler=this._onTouchMove.bind(this),this.touchEndHandler=this._onTouchEnd.bind(this),this.clickHandler=this._onClick.bind(this),this.interceptedClicks=[],window.addEventListener("pageshow",t=>{this.persisted=t.persisted}),window.addEventListener("DOMContentLoaded",()=>{this._preconnect3rdParties()}),this.delayedScripts={normal:[],async:[],defer:[]},this.trash=[],this.allJQueries=[]}_addUserInteractionListener(t){if(document.hidden){t._triggerListener();return}this.triggerEvents.forEach(e=>window.addEventListener(e,t.userEventHandler,{passive:!0})),window.addEventListener("touchstart",t.touchStartHandler,{passive:!0}),window.addEventListener("mousedown",t.touchStartHandler),document.addEventListener("visibilitychange",t.userEventHandler)}_removeUserInteractionListener(){this.triggerEvents.forEach(t=>window.removeEventListener(t,this.userEventHandler,{passive:!0})),document.removeEventListener("visibilitychange",this.userEventHandler)}_onTouchStart(t){"HTML"!==t.target.tagName&&(window.addEventListener("touchend",this.touchEndHandler),window.addEventListener("mouseup",this.touchEndHandler),window.addEventListener("touchmove",this.touchMoveHandler,{passive:!0}),window.addEventListener("mousemove",this.touchMoveHandler),t.target.addEventListener("click",this.clickHandler),this._renameDOMAttribute(t.target,"onclick","rocket-onclick"),this._pendingClickStarted())}_onTouchMove(t){window.removeEventListener("touchend",this.touchEndHandler),window.removeEventListener("mouseup",this.touchEndHandler),window.removeEventListener("touchmove",this.touchMoveHandler,{passive:!0}),window.removeEventListener("mousemove",this.touchMoveHandler),t.target.removeEventListener("click",this.clickHandler),this._renameDOMAttribute(t.target,"rocket-onclick","onclick"),this._pendingClickFinished()}_onTouchEnd(t){window.removeEventListener("touchend",this.touchEndHandler),window.removeEventListener("mouseup",this.touchEndHandler),window.removeEventListener("touchmove",this.touchMoveHandler,{passive:!0}),window.removeEventListener("mousemove",this.touchMoveHandler)}_onClick(t){t.target.removeEventListener("click",this.clickHandler),this._renameDOMAttribute(t.target,"rocket-onclick","onclick"),this.interceptedClicks.push(t),t.preventDefault(),t.stopPropagation(),t.stopImmediatePropagation(),this._pendingClickFinished()}_replayClicks(){window.removeEventListener("touchstart",this.touchStartHandler,{passive:!0}),window.removeEventListener("mousedown",this.touchStartHandler),this.interceptedClicks.forEach(t=>{t.target.dispatchEvent(new MouseEvent("click",{view:t.view,bubbles:!0,cancelable:!0}))})}_waitForPendingClicks(){return new Promise(t=>{this._isClickPending?this._pendingClickFinished=t:t()})}_pendingClickStarted(){this._isClickPending=!0}_pendingClickFinished(){this._isClickPending=!1}_renameDOMAttribute(t,e,r){t.hasAttribute&&t.hasAttribute(e)&&(event.target.setAttribute(r,event.target.getAttribute(e)),event.target.removeAttribute(e))}_triggerListener(){this._removeUserInteractionListener(this),"loading"===document.readyState?document.addEventListener("DOMContentLoaded",this._loadEverythingNow.bind(this)):this._loadEverythingNow()}_preconnect3rdParties(){let t=[];document.querySelectorAll("script[type=rocketlazyloadscript]").forEach(e=>{if(e.hasAttribute("src")){let r=new URL(e.src).origin;r!==location.origin&&t.push({src:r,crossOrigin:e.crossOrigin||"module"===e.getAttribute("data-rocket-type")})}}),t=[...new Map(t.map(t=>[JSON.stringify(t),t])).values()],this._batchInjectResourceHints(t,"preconnect")}
4async _loadEverythingNow(){this.lastBreath=Date.now(),this._delayEventListeners(this),this._delayJQueryReady(this),this._handleDocumentWrite(),this._registerAllDelayedScripts(),this._preloadAllScripts(),await this._loadScriptsFromList(this.delayedScripts.normal),await this._loadScriptsFromList(this.delayedScripts.defer),await this._loadScriptsFromList(this.delayedScripts.async);try{await this._triggerDOMContentLoaded(),await this._triggerWindowLoad()}catch(t){console.error(t)}window.dispatchEvent(new Event("rocket-allScriptsLoaded")),this._waitForPendingClicks().then(()=>{this._replayClicks()}),this._emptyTrash()}_registerAllDelayedScripts(){document.querySelectorAll("script[type=rocketlazyloadscript]").forEach(t=>{t.hasAttribute("data-rocket-src")?t.hasAttribute("async")&&!1!==t.async?this.delayedScripts.async.push(t):t.hasAttribute("defer")&&!1!==t.defer||"module"===t.getAttribute("data-rocket-type")?this.delayedScripts.defer.push(t):this.delayedScripts.normal.push(t):this.delayedScripts.normal.push(t)})}async _transformScript(t){return new Promise((await this._littleBreath(),navigator.userAgent.indexOf("Firefox/")>0||""===navigator.vendor)?e=>{let r=document.createElement("script");[...t.attributes].forEach(t=>{let e=t.nodeName;"type"!==e&&("data-rocket-type"===e&&(e="type"),"data-rocket-src"===e&&(e="src"),r.setAttribute(e,t.nodeValue))}),t.text&&(r.text=t.text),r.hasAttribute("src")?(r.addEventListener("load",e),r.addEventListener("error",e)):(r.text=t.text,e());try{t.parentNode.replaceChild(r,t)}catch(i){e()}}:async e=>{function r(){t.setAttribute("data-rocket-status","failed"),e()}try{let i=t.getAttribute("data-rocket-type"),n=t.getAttribute("data-rocket-src");t.text,i?(t.type=i,t.removeAttribute("data-rocket-type")):t.removeAttribute("type"),t.addEventListener("load",function r(){t.setAttribute("data-rocket-status","executed"),e()}),t.addEventListener("error",r),n?(t.removeAttribute("data-rocket-src"),t.src=n):t.src="data:text/javascript;base64,"+window.btoa(unescape(encodeURIComponent(t.text)))}catch(s){r()}})}async _loadScriptsFromList(t){let e=t.shift();return e&&e.isConnected?(await this._transformScript(e),this._loadScriptsFromList(t)):Promise.resolve()}_preloadAllScripts(){this._batchInjectResourceHints([...this.delayedScripts.normal,...this.delayedScripts.defer,...this.delayedScripts.async],"preload")}_batchInjectResourceHints(t,e){var r=document.createDocumentFragment();t.forEach(t=>{let i=t.getAttribute&&t.getAttribute("data-rocket-src")||t.src;if(i){let n=document.createElement("link");n.href=i,n.rel=e,"preconnect"!==e&&(n.as="script"),t.getAttribute&&"module"===t.getAttribute("data-rocket-type")&&(n.crossOrigin=!0),t.crossOrigin&&(n.crossOrigin=t.crossOrigin),t.integrity&&(n.integrity=t.integrity),r.appendChild(n),this.trash.push(n)}}),document.head.appendChild(r)}_delayEventListeners(t){let e={};function r(t,r){!function t(r){!e[r]&&(e[r]={originalFunctions:{add:r.addEventListener,remove:r.removeEventListener},eventsToRewrite:[]},r.addEventListener=function(){arguments[0]=i(arguments[0]),e[r].originalFunctions.add.apply(r,arguments)},r.removeEventListener=function(){arguments[0]=i(arguments[0]),e[r].originalFunctions.remove.apply(r,arguments)});function i(t){return e[r].eventsToRewrite.indexOf(t)>=0?"rocket-"+t:t}}(t),e[t].eventsToRewrite.push(r)}function i(t,e){let r=t[e];Object.defineProperty(t,e,{get:()=>r||function(){},set(i){t["rocket"+e]=r=i}})}r(document,"DOMContentLoaded"),r(window,"DOMContentLoaded"),r(window,"load"),r(window,"pageshow"),r(document,"readystatechange"),i(document,"onreadystatechange"),i(window,"onload"),i(window,"onpageshow")}_delayJQueryReady(t){let e;function r(r){if(r&&r.fn&&!t.allJQueries.includes(r)){r.fn.ready=r.fn.init.prototype.ready=function(e){return t.domReadyFired?e.bind(document)(r):document.addEventListener("rocket-DOMContentLoaded",()=>e.bind(document)(r)),r([])};let i=r.fn.on;r.fn.on=r.fn.init.prototype.on=function(){if(this[0]===window){function t(t){return t.split(" ").map(t=>"load"===t||0===t.indexOf("load.")?"rocket-jquery-load":t).join(" ")}"string"==typeof arguments[0]||arguments[0]instanceof String?arguments[0]=t(arguments[0]):"object"==typeof arguments[0]&&Object.keys(arguments[0]).forEac
4h(e=>{let r=arguments[0][e];delete arguments[0][e],arguments[0][t(e)]=r})}return i.apply(this,arguments),this},t.allJQueries.push(r)}e=r}r(window.jQuery),Object.defineProperty(window,"jQuery",{get:()=>e,set(t){r(t)}})}async _triggerDOMContentLoaded(){this.domReadyFired=!0,await this._littleBreath(),document.dispatchEvent(new Event("rocket-DOMContentLoaded")),await this._littleBreath(),window.dispatchEvent(new Event("rocket-DOMContentLoaded")),await this._littleBreath(),document.dispatchEvent(new Event("rocket-readystatechange")),await this._littleBreath(),document.rocketonreadystatechange&&document.rocketonreadystatechange()}async _triggerWindowLoad(){await this._littleBreath(),window.dispatchEvent(new Event("rocket-load")),await this._littleBreath(),window.rocketonload&&window.rocketonload(),await this._littleBreath(),this.allJQueries.forEach(t=>t(window).trigger("rocket-jquery-load")),await this._littleBreath();let t=new Event("rocket-pageshow");t.persisted=this.persisted,window.dispatchEvent(t),await this._littleBreath(),window.rocketonpageshow&&window.rocketonpageshow({persisted:this.persisted})}_handleDocumentWrite(){let t=new Map;document.write=document.writeln=function(e){let r=document.currentScript;r||console.error("WPRocket unable to document.write this: "+e);let i=document.createRange(),n=r.parentElement,s=t.get(r);void 0===s&&(s=r.nextSibling,t.set(r,s));let a=document.createDocumentFragment();i.setStart(a,0),a.appendChild(i.createContextualFragment(e)),n.insertBefore(a,s)}}async _littleBreath(){Date.now()-this.lastBreath>45&&(await this._requestAnimFrame(),this.lastBreath=Date.now())}async _requestAnimFrame(){return document.hidden?new Promise(t=>setTimeout(t)):new Promise(t=>requestAnimationFrame(t))}_emptyTrash(){this.trash.forEach(t=>t.remove())}static run(){let t=new RocketLazyLoadScripts;t._addUserInteractionListener(t)}}RocketLazyLoadScripts.run();</script>
4
5        
6        <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
7		<meta name="google-site-verification" content="eSj6mpCAKpBm4fIzx4jbpXm6KtDJxGOjcJC--gvQ8mg" />
8        <link rel="profile" href="https://gmpg.org/xfn/11">
9
10        <!-- Google Tag Manager -->
11        
11<script type="rocketlazyloadscript">
vendor: 611 bytes, lines 11-25
11
12            (function (w, d, s, l, i) {
13                w[l] = w[l] || [];
14                w[l].push({
15                    'gtm.start': new Date().getTime(),
16                    event: 'gtm.js'
17                });
18                var f = d.getElementsByTagName(s)[0],
19                    j = d.createElement(s),
20                    dl = l != 'dataLayer' ? '&l=' + l : '';
21                j.async = true;
22                j.src =
23                    'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
24                f.parentNode.insertBefore(j, f);
25            })(window, document, 'script', 'dataLayer', '
25GTM-PBGKBBXT
vendor: 12 bytes, lines 25-26
25');
26        
26</script>
26
27        <!-- End Google Tag Manager -->
28
29
30        <meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' />
31
32	<!-- This site is optimized with the Yoast SEO plugin v28.6 - https://yoast.com/product/yoast-seo-wordpress/ -->
33	<title>คู่มือการใช้งาน - pgslot77.art</title>
34	<link rel="canonical" href="https://pgslot77.art/guide/" />
35	<meta property="og:locale" content="th_TH" />
36	<meta property="og:type" content="article" />
37	<meta property="og:title" content="คู่มือการใช้งาน - pgslot77.art" />
38	<meta property="og:url" content="https://pgslot77.art/guide/" />
39	<meta property="og:site_name" content="pgslot77.art" />
40	<meta property="article:modified_time" content="2024-05-16T18:50:06+00:00" />
41	<meta name="twitter:card" content="summary_large_image" />
42	
42<script type="application/ld+json" class="yoast-schema-graph">{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/pgslot77.art\/guide\/","url":"https:\/\/pgslot77.art\/guide\/","name":"คู่มือการใช้งาน - pgslot77.art","isPartOf":{"@id":"https:\/\/pgslot77.art\/#website"},"datePublished":"2021-05-27T06:51:08+00:00","dateModified":"2024-05-16T18:50:06+00:00","breadcrumb":{"@id":"https:\/\/pgslot77.art\/guide\/#breadcrumb"},"inLanguage":"th","potentialAction":[{"@type":"ReadAction","target":["https:\/\/pgslot77.art\/guide\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/pgslot77.art\/guide\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/pgslot77.art\/"},{"@type":"ListItem","position":2,"name":"คู่มือการใช้งาน"}]},{"@type":"WebSite","@id":"https:\/\/pgslot77.art\/#website","url":"https:\/\/pgslot77.art\/","name":"pgslot77.art","description":"สล็อตออนไลน์ Pgslot","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/pgslot77.art\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"th"}]}</script>
42
43	<!-- / Yoast SEO plugin. -->
44
45
46<link rel='dns-prefetch' href='//ajax.googleapis.com' />
47<link rel='dns-prefetch' href='//cdnjs.cloudflare.com' />
48<link rel='dns-prefetch' href='//cdn.jsdelivr.net' />
49
50<link rel="alternate" type="application/rss+xml" title="pgslot77.art &raquo; ฟีด" href="https://pgslot77.art/feed/" />
51<link rel="alternate" type="application/rss+xml" title="pgslot77.art &raquo; ฟีดความเห็น" href="https://pgslot77.art/comments/feed/" />
52<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://pgslot77.art/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fpgslot77.art%2Fguide%2F" />
53<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://pgslot77.art/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fpgslot77.art%2Fguide%2F&#038;format=xml" />
54<style id="wp-img-auto-sizes-contain-inline-css">
55img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px}
56/*# sourceURL=wp-img-auto-sizes-contain-inline-css */
57</style>
58<link rel='stylesheet' id='formidable-css' href='https://pgslot77.art/wp-content/plugins/formidable/css/formidableforms.css?ver=910551' media='all' />
59<style id="wp-emoji-styles-inline-css">
60
61	img.wp-smiley, img.emoji {
62		display: inline !important;
63		border: none !important;
64		box-shadow: none !important;
65		height: 1em !important;
66		width: 1em !important;
67		margin: 0 0.07em !important;
68		vertical-align: -0.1em !important;
69		background: none !important;
70		padding: 0 !important;
71	}
72/*# sourceURL=wp-emoji-styles-inline-css */
73</style>
74<style id="wp-block-library-inline-css">
75:root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-element-button{cursor:pointer}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:root{--wp--preset--font-size--normal:16px;
75--wp--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}:root .has-text-align-center{text-align:center}:root .has-text-align-left{text-align:left}:root .has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-break:normal!important}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style^=border-color],[style*=";border-color"],[style*="; border-color"]){border-style:solid}html :where([style^=border-top-color],[style*=";border-top-color"],[style*="; border-top-color"]){border-top-style:solid}html :where([style^=border-right-color],[style*=";border-right-color"],[style*="; border-right-color"]){border-right-style:solid}html :where([style^=border-bottom-color],[style*=";border-bottom-color"],[style*="; border-bottom-color"]){border-bottom-style:solid}html :where([style^=border-left-color],[style*=";border-left-color"],[style*="; border-left-color"]){border-left-style:solid}html :where([style^=border-width],[style*=";border-width"],[style*="; border-width"]){border-style:solid}html :where([style^=border-top-width],[style*=";border-top-width"],[style*="; border-top-width"]){border-top-style:solid}html :where([style^=border-right-width],[style*=";border-right-width"],[style*="; border-right-width"]){border-right-style:solid}html :where([style^=border-bottom-width],[style*=";border-bottom-width"],[style*="; border-bottom-width"]){border-bottom-style:solid}html :where([style^=border-left-width],[style*=";border-left-width"],[style*="; border-left-width"]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}}
76
77/*# sourceURL=/wp-includes/css/dist/block-library/common.min.css */
78</style>
79<style id="classic-theme-styles-inline-css">
80/*! This file is auto-generated */
81.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
82/*# sourceURL=/wp-includes/css/classic-themes.min.css */
83</style>
84
85<style id="global-styles-inline-css">
86:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgb(252,185,
860) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}.wp-block-button{--wp--preset--dimension--25: 25%;--wp--preset--dimension--50: 50%;--wp--preset--dimension--75: 75%;--wp--preset--dimension--100: 100%;}:where(body) { margin: 0; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;letter-spacing: inherit;line-height: inherit;padding-top: calc(0.667em + 2px);padding-right: calc(1.333em + 2px);padding-bottom: calc(0.667em + 2px);padding-left: calc(1.333em + 2px);text-decoration: none;text-transform: inherit;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}
86.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}
87/*# sourceURL=global-styles-inline-css */
88</style>
89
90<link rel='stylesheet' id='seed-social-css' href='https://pgslot77.art/wp-content/plugins/seed-social/style.css?ver=2021.02' media='all' />
91<link rel='stylesheet' id='gds-style-css' href='https://pgslot77.art/wp-content/themes/Theme-re-pgslot77/style.css?ver=7.1.3' media='all' />
92<link rel='stylesheet' id='main-style-css' href='https://pgslot77.art/wp-content/themes/Theme-re-pgslot77/assets/css/style.min.css?ver=7.1.3' media='all' />
93<link rel='stylesheet' id='wow-style-css' href='https://pgslot77.art/wp-content/themes/Theme-re-pgslot77/assets/css/animate.css?ver=7.1.3' media='all' />
94<link rel='stylesheet' id='lightslider-style-css' href='https://pgslot77.art/wp-content/themes/Theme-re-pgslot77/assets/vendor/light-slider/css/lightslider.min.css?ver=7.1.3' media='all' />
95<link rel='stylesheet' id='swiper-style-css' href='https://cdn.jsdelivr.net/npm/swiper/swiper-bundle.min.css?ver=7.1.3' media='all' />
96<script type="rocketlazyloadscript" id=" jquery-js" data-rocket-src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js?ver=7.1.3"></script>
vendor: 1 bytes, line 96
96
97<script type="rocketlazyloadscript" id=" formload-js" data-rocket-src="https://cdnjs.cloudflare.com/ajax/libs/jquery.form/4.2.2/jquery.form.min.js?ver=7.1.3"></script>
vendor: 1 bytes, line 97
97
98<script type="rocketlazyloadscript" id="bootstrap-js" data-rocket-src="https://pgslot77.art/wp-content/themes/Theme-re-pgslot77/assets/js/bootstrap.bundle.min.js?ver=7.1.3"></script>
vendor: 1 bytes, line 98
98
99<script type="rocketlazyloadscript" id="lightslider-JS-js" data-rocket-src="https://pgslot77.art/wp-content/themes/Theme-re-pgslot77/assets/vendor/light-slider/js/lightslider.js?ver=7.1.3"></script>
vendor: 1 bytes, line 99
99
100<script type="rocketlazyloadscript" id="main-script-js" data-rocket-src="https://pgslot77.art/wp-content/themes/Theme-re-pgslot77/assets/js/script.js?ver=7.1.3"></script>
vendor: 1 bytes, line 100
100
101<script type="rocketlazyloadscript" id="swiper-js-js" data-rocket-src="https://cdn.jsdelivr.net/npm/swiper/swiper-bundle.min.js?ver=7.1.3"></script>
vendor: 1 bytes, line 101
101
102<script type="rocketlazyloadscript" id="wow-js-js" data-rocket-src="https://pgslot77.art/wp-content/themes/Theme-re-pgslot77/assets/js/wow.min.js?ver=7.1.3"></script>
vendor: 1 bytes, line 102
102
103<script type="rocketlazyloadscript" id="sweetalert2-js" data-rocket-src="https://cdn.jsdelivr.net/npm/sweetalert2@11?ver=7.1.3"></script>
vendor: 1 bytes, line 103
103
104<script type="rocketlazyloadscript" id="spark-md5-js" data-rocket-src="https://cdn.jsdelivr.net/npm/[email protected]/spark-md5.min.js?ver=7.1.3"></script>
104
105<link rel="https://api.w.org/" href="https://pgslot77.art/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://pgslot77.art/wp-json/wp/v2/pages/63" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://pgslot77.art/xmlrpc.php?rsd" />
106<meta name="generator" content="WordPress 7.1.3" />
107<link rel='shortlink' href='https://pgslot77.art/?p=63' />
108<meta property="og:url" content="https://pgslot77.art/guide" />
109		<meta property="og:type" content="article" />
110		<meta property="og:title" content="คู่มือการใช้งาน" />
111		<meta property="og:description" content="" />
112		<meta property="og:image" content="" />
112<script type="rocketlazyloadscript">document.documentElement.className += " js";</script>
112
113<meta name="generator" content="Elementor 3.21.8; features: e_optimized_assets_loading, e_optimized_css_loading, e_font_icon_svg, additional_custom_breakpoints, e_lazyload; settings: css_print_method-external, google_font-enabled, font_display-swap">
114			<style>
115				.e-con.e-parent:nth-of-type(n+4):not(.e-lazyloaded):not(.e-no-lazyload),
116				.e-con.e-parent:nth-of-type(n+4):not(.e-lazyloaded):not(.e-no-lazyload) * {
117					background-image: none !important;
118				}
119				@media screen and (max-height: 1024px) {
120					.e-con.e-parent:nth-of-type(n+3):not(.e-lazyloaded):not(.e-no-lazyload),
121					.e-con.e-parent:nth-of-type(n+3):not(.e-lazyloaded):not(.e-no-lazyload) * {
122						background-image: none !important;
123					}
124				}
125				@media screen and (max-height: 640px) {
126					.e-con.e-parent:nth-of-type(n+2):not(.e-lazyloaded):not(.e-no-lazyload),
127					.e-con.e-parent:nth-of-type(n+2):not(.e-lazyloaded):not(.e-no-lazyload) * {
128						background-image: none !important;
129					}
130				}
131			</style>
132			<link rel="icon" href="https://pgslot77.art/wp-content/uploads/2021/05/favicon-pgslot77.png" sizes="32x32" />
133<link rel="icon" href="https://pgslot77.art/wp-content/uploads/2021/05/favicon-pgslot77.png" sizes="192x192" />
134<link rel="apple-touch-icon" href="https://pgslot77.art/wp-content/uploads/2021/05/favicon-pgslot77.png" />
135<meta name="msapplication-TileImage" content="https://pgslot77.art/wp-content/uploads/2021/05/favicon-pgslot77.png" />
136    </head>
137
138
139    
139<script type="rocketlazyloadscript" data-rocket-type="text/javascript" data-rocket-src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js?ver=5.4.4">
140</script>
vendor: 1 bytes, line 140
140
141<script type="rocketlazyloadscript" data-rocket-type="text/javascript"
142    data-rocket-src="https://cdnjs.cloudflare.com/ajax/libs/jquery.form/4.2.2/jquery.form.min.js?ver=5.4.4"></script>
142 
143
144	
144<script type="rocketlazyloadscript">
145jQuery(document).ready(function($) {
146	
147	    $("#game1-wrap-login").click(function (e) {
148            e.stopPropagation();
149            $('.form-login-cat-wrap').removeClass('show-form-login-wrap');
150    $('.form-login-cat-wrap').addClass('show-form-login-wrap');
151    $('.text-head-logo-popp').addClass('hide-logo-wrap');
152    $('#game2-wrap-login').addClass('hide-logo-wrap');
153    $('.back-select-logo-wrap').addClass('show-logo-back');
154    $('#formapi-login').attr('action', 'https://pgslot77.slot-auto.com/?phone_number=phone_number&password=password');
155        });
156        $("#game2-wrap-login").click(function (e) {
157            e.stopPropagation();
158            $('.form-login-cat-wrap').removeClass('show-form-login-wrap');
159    $('.form-login-cat-wrap').addClass('show-form-login-wrap');
160    $('.text-head-logo-popp').addClass('hide-logo-wrap');
161    $('#game1-wrap-login').addClass('hide-logo-wrap');
162    $('.back-select-logo-wrap').addClass('show-logo-back');
163    $('#formapi-login').attr('action', 'https://game.pg77slot.com/?phone_number=phone_number&password=password');
164        });
165
166
167        $(".back-select-logo-wrap").click(function (e) {
168            e.stopPropagation();
169    $('.form-login-cat-wrap').removeClass('show-form-login-wrap');
170    $('#game1-wrap-login').removeClass('hide-logo-wrap');
171    $('#game2-wrap-login').removeClass('hide-logo-wrap');
172    $('.text-head-logo-popp').removeClass('hide-logo-wrap');
173    $('.back-select-logo-wrap').removeClass('show-logo-back');
174    $('#formapi-login').attr('action', 'https://pgslot77.slot-auto.com/?phone_number=phone_number&password=password');
175        });
176	
177	
178	
179	  $('#lightSlider').lightSlider({
180        item: 4,
181        loop: true,
182        auto: true,
183        easing: 'cubic-bezier(0.25, 0, 0.25, 1)',
184        speed: 2000,
185        responsive: [{
186                breakpoint: 800,
187                settings: {
188                    item: 5,
189                    slideMove: 1,
190                    slideMargin: 6,
191                    loop: true                    
192                }
193            },
194            {
195                breakpoint: 480,
196                settings: {
197                    item: 4,
198                    slideMove: 1,
199                    loop: true
200                }
201            }
202        ]
203    });
204
205
206    var item_img_load
207        var i_img_load
208        var img_arr
209        var arr_img_load = $(".monitor-page-sp .list-upload-wrap")
210        var arr_count = 0
211        for (arr_count; arr_count < arr_img_load.length; arr_count++) {
212            img_arr = arr_img_load[arr_count].getElementsByTagName("input")[0].value.split(",")
213            i_img_load = 0
214            for (i_img_load; i_img_load < img_arr.length; i_img_load++) {
215                item_img_load = '<div class="item"><figure class="frame">' +
216                    '<a href="' + img_arr[i_img_load] + '" target="_blank"><img src="' + img_arr[i_img_load] +
217                    '"></a></figure></div>';
218                $(".monitor-page-sp .list-upload-wrap .frm_file_container")[arr_count].insertAdjacentHTML(
219                    'beforeend', item_img_load);
220            }
221        }
222        var term = 'แอดเครดิตเรียบร้อยแล้ว';
223        $('.list-upload-wrap .status-ckeck').html(function () {
224            return $(this).html().replace(new RegExp(term + "(?=[^>]*<)", "ig"),
225                "<span class='green-txt-wrap'>$&</span>");
226        });
227        var term2 = 'ลูกค้าทำครบตามเงื่อนไข';
228        $('.list-upload-wrap .status-ckeck').html(function () {
229            return $(this).html().replace(new RegExp(term2 + "(?=[^>]*<)", "ig"),
230                "<span class='green-txt-wrap'>$&</span>");
231        });
232        var term3 = 'ลูกค้าทำไม่ครบตามเงื่อนไข';
233        $('.list-upload-wrap .status-ckeck').html(function () {
234            return $(this).html().replace(new RegExp(term3 + "(?=[^>]*<)", "ig"),
235                "<span class='red-txt-wrap'>$&</span>");
236        });
237        $('#upload_file').ajaxForm(function (data) {
238            if (data) {
239                $('#field_aecui').val(data);
240            } else {
241                alert('กรุณาอัพโหลดรูปภาพให้ถูกต้อง');
242            }
243        });
244        $(".bttn-click-wrap").click(function () {
245            $('#random-cre').click();
246        });
247	
248	
249	
250	    
251
252
253
254});
255</script>
255
256				<style>
257					.button-fixed-r{
258						z-index:999;
259					}
260		.seo-section .seo-section-item .box-seo-1 {
261     width: 100%; 
262}
263			.seo-section .seo-section-item .box-seo-2 {
264    width: 100%; 
265    padding: 1rem;
266}
267			    #show-wrap-login{
268        display:none;
269    }
270    .show-form-login-wrap{
271        display:block !important;
272    }
273    .logo-popup{
274        cursor: pointer;
275    }
276    .logo-popup img{
277        filter: drop-shadow(0px 10px 5px rgba(0, 0, 0, 0.25));
278    }
279    .logo-popup-sec{
280        cursor: pointer;
281    }
282    .logo-popup-sec img{
283        filter: drop-shadow(0px 10px 5px rgba(0, 0, 0, 0.25));
284    }
285   
286    .hide-logo-wrap{
287        display:none;
288    }
289    .back-select-logo-wrap{
290        color:#fff;
291        text-align:right;
292        display:none;
293        cursor: pointer;
294		font-size:1.4rem;
295    }
296    .show-logo-back{
297        display:block !important;
298    }
299    .back-select-logo-wrap i{
300        margin-right:10px;
301    }
302			.text-head-logo-popp{
303    font-size:1.8rem;
304    text-shadow: 2px 2px 4px #000000;
305}
306.text-head-logo-poppsec{
307    font-size:1.8rem;
308    text-shadow: 2px 2px 4px #000000;
309}
310.logo-popup {
311	padding:30px 15px;
312    position:relative;
313    z-index: 1;
314}
315.logo-popup.-opa:before {
316    position: absolute;
317    top: 15px;
318    right: 5px;
319    width: auto;
320    height: auto;
321    display: block;
322    content: 'HOT';
323    background: red;
324    color: #fff;
325    font-size: 1.2rem;
326    display: inline-block;
327    z-index: -1;
328    padding: 1px 8px;
329    border-radius: 3px;
330    animation: opaaaa .3s infinite;
331}
332.logo-popup.-opa img{
333    animation: rotatingimg .3s infinite;
334}
335@keyframes rotatingimg {
336    0% {
337        transform: translate(0%, 0%) rotate(0deg);
338    }
339    50% {
340        transform: translate(0%, -2%) rotate(5deg);
341    }
342    75% {
343        transform: translate(0%, -2%) rotate(-5deg);
344    }
345    100% {
346        transform: translate(0%, 0%) rotate(0deg);
347    }
348}
349.logo-popup-sec.-opa img{
350    animation: rotatingimg .3s infinite;
351}
352.logo-popup-sec.-opa:before {
353    position: absolute;
354    top: 20px;
355    right: 5px;
356    width: auto;
357    height: auto;
358    display: block;
359    content: 'HOT';
360    background: red;
361    color: #fff;
362    font-size: 1.3rem;
363    display: inline-block;
364    z-index: -1;
365    padding: 1px 8px;
366    border-radius: 3px;
367    animation: opaaaa .3s infinite;
368}
369@keyframes opaaaa {
370  0%    { opacity: 0; }
371  100%  { opacity: 1; }
372}
373
374.logo-popup-sec {
375    margin: 0 20px;
376    position:relative;
377    z-index: 1;
378}
379
380
381    .modal-body.-login {
382        padding: 2rem;
383    }
384
385			  .modal-body.-login .logo-popup {
386        width: 50%;
387    }
388    .modal-body.-login .logo-popup img {
389        width: 100%;
390        height: auto;
391        display: block;
392        margin: 0 auto;
393    }
394    .modal-body.-login .logo-popup-sec img {
395        width: 100%;
396        height: auto;
397        display: block;
398        margin: 0 auto;
399    }
400
401    .modal-body.-login label {
402        color: #fff;
403		font-size:1.5rem;
404    }
405
406    .modal-body.-login input {
407      font-weight: 500;
408    font-size: 1.5rem;
409    }
410
411    .modal-body.-login .btn-primary {
412        margin: 30px auto;
413    padding: 3px 60px;
414    display: block;
415    font-size: 1.6rem;
416    border-radius: 30px;
417    background: linear-gradient(180deg, #ac0000 0%, #f47200 100%);
418    border: 5px solid #ffe2ae;
419    }
420			.modal-content.-login{
421    background: #910000;
422				border:4px solid #ffdc7a;
423				border-radius:20px;
424}
425			@media only screen and (max-width: 600px) {
426				.bg-mobile{
427					display:block !important;
428					position:fixed;
429					top: 0;
430				}
431				.bg-mobile img{
432					width:100%;
433					height:100vh;
434				}
435				.modal-body.-login {
436    padding: 1rem;
437}
438				.logo-popup {
439    padding: 30px 10px;
440				}
441				.text-head-logo-popp {
442    font-size: 1.6rem;
443}
444				.modal-body.-login label {
445    font-size: 1.4rem;
446}
447				.modal-body.-login .btn-primary {
448    font-size: 1.4rem;
449    border: 3px solid #ffe2ae;
450}
451				.modal-body.-login input {
452    font-size: 1.4rem;
453}
454				
455			}
456		</style>
457		
458		 <body class="wp-singular page-template page-template-page-templates page-template-guide page-template-page-templatesguide-php page page-id-63 wp-theme-Theme-re-pgslot77 elementor-default elementor-kit-4626" >
459
460<!--     <body class="wp-singular page-template page-template-page-templates page-template-guide page-template-page-templatesguide-php page page-id-63 wp-theme-Theme-re-pgslot77 elementor-default elementor-kit-4626" style="background-image: url(https://pgslot77.art/wp-content/uploads/2023/10/PGSLOT77-ตรีมฮัลโลวีน.jpg);
461    background-size: 100% 100%;
462    background-attachment: fixed;"> -->
463
464
465    <!-- Google Tag Manager (noscript) -->
vendor: 72 bytes, lines 465-466
465
466    <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
466GTM-PBGKBBXT
vendor: 99 bytes, lines 466-468
466" height="0" width="0"
467            style="display:none;visibility:hidden"></iframe></noscript>
468    
468<!-- End Google Tag Manager (noscript) -->
469
470    
471    
472
473
474
475    		
476<!-- 		<div class="bg-mobile d-none">
477			<img src="https://pgslot77.art/wp-content/uploads/2023/10/PGSLOT77-ตรีมฮัลโลวีน-bg.jpg" >
478		</div> -->
479			 
480<!-- 			 <div class="nav-aba-wrap bg-black">
481	<div class="item-pc">
482            <div class="game-aba-item w-100 d-flex flex-wrap align-items-center justify-content-around">     		
483				              </div>
484		</div>
485
486        <div class="item-mobile">
487            <div class="container">
488                <div class="head-brand-flex w-100 d-flex align-items-center">
489                    <div id="responsive-brand" class="brand-mobile" style="padding-left:15px;"> 					
490						    			
491                    </div>
492                </div>
493            </div>
494        </div>
495    </div> -->
496
497		<div class="modal fade" id="exampleModal2222" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel"
498        aria-hidden="true">
499        <div class="modal-dialog modal-dialog-centered" role="document">
500            <div class="modal-content -login">
501                <div class="modal-body -login">
502                <div class="back-select-logo-wrap">
503                <i class="fas fa-long-arrow-left"></i>ย้อนกลับ
504                </div>
505                <div class="wrap-flex-logo-pop w-100 d-flex flex-wrap align-items-center justify-content-center">
506                    <p class="text-head-logo-popp w-100 text-center" style="color:#fff;">กรุณาเลือกเว็บที่ต้องการเข้าสู่ระบบ</p>
507                <div class="logo-popup" href="https://pgslot77.slot-auto.com/login">
508                        <img src="https://pgslot77.art/wp-content/uploads/2022/11/pg771.png"
509                            alt="">
510                    </div>
511<!--                     <div class="logo-popup -opa" id="game2-wrap-login">
512                        <img src="https://pgslot77.com/wp-content/uploads/2022/11/pg772.png"
513                            alt="">
514                    </div> -->
515                </div>
516                  <div class="form-login-cat-wrap" id="show-wrap-login">
517                    <form action="https://pgslot77.slot-auto.com/?phone_number=phone_number&password=password"
518                        method="get" id="formapi-login">
519                        <div class="form-group">
520                            <label for="phonenumber">กรอกเบอร์โทรศัพท์</label>
521                            <input type="tel" class="form-control" name="phone_number" placeholder="กรอกเบอร์โทรศัพท์"
522                                id="phonelogin">
523                        </div>
524                        <div class="form-group">
525                            <label for="password">กรอกรหัสผ่าน</label>
526                            <input type="password" class="form-control" name="password" placeholder="กรอกรหัสผ่าน"
527                                id="passlogin">
528                        </div>
529                        <button type="submit" class="btn btn-primary button-login"
530                            id="loginbtnmain">เข้าสู่ระบบ</button>
531                    </form>
532                    </div>                    
533                </div>
534            </div>
535        </div>
536    </div>
537		
538		
539			<div class="modal fade" id="exampleModal3333" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel"
540        aria-hidden="true">
541        <div class="modal-dialog modal-dialog-centered" role="document">
542            <div class="modal-content -login">
543                <div class="modal-body -login">
544                
545                <div class="wrap-flex-logo-pop w-100 d-flex flex-wrap align-items-center justify-content-center">
546                    <p class="text-head-logo-popp w-100 text-center" style="color:#fff;">กรุณาเลือกเว็บที่ต้องการสมัครสมาชิก</p>
547                <div class="logo-popup">
548					<a href="https://pgslot77.slot-auto.com/register" target="_blank">
549                        <img src="https://pgslot77.art/wp-content/uploads/2022/11/pg771.png"
550                            alt="">
551						</a>
552                    </div>
553<!--                     <div class="logo-popup -opa">
554						<a href="https://game.pg77slot.com/register" target="_blank">
555                        <img src="https://pgslot77.com/wp-content/uploads/2022/11/pg772.png"
556                            alt="">
557						</a>
558                    </div> -->
559                </div>
560                </div>
561            </div>
562        </div>
563    </div>
564	    
565<!--     <div class="bg-head" style="background-image:none;"> -->
566		<div class="bg-head">
567
568        <nav class="main-nav">
569            <div class="container">
570                <div class="nav-item d-flex justify-content-center align-items-center">
571                    <ul class="main-menu">
572                        <li><a href="https://pgslot77.art"><img src="https://pgslot77.art/wp-content/themes/Theme-re-pgslot77/assets/img/menu/index-menu.png" alt=""></a></li>
573                        <li><a href="#" onclick="ModalRegister.open(); return false;"><img src="https://pgslot77.art/wp-content/themes/Theme-re-pgslot77/assets/img/menu/register-menu.png" alt=""></a></li>
574                        <li><a href="#" onclick="ModalLogin.open(); return false;"><img src="https://pgslot77.art/wp-content/themes/Theme-re-pgslot77/assets/img/menu/login-menu.png" alt=""></a></li>
575                        <li><a href="https://pgslot77.art/promotion/"><img src="https://pgslot77.art/wp-content/themes/Theme-re-pgslot77/assets/img/menu/promotion-menu.png" alt=""></a></li>
576                        <li><a href="https://pgslot77.art/roadmap/"><img src="https://pgslot77.art/wp-content/themes/Theme-re-pgslot77/assets/img/menu/roadmap-menu.png" alt=""></a></li>
577                    </ul>
578                    <figure class="main-logo">
579                        <img src="https://pgslot77.art/wp-content/themes/Theme-re-pgslot77/assets/img/logo-pgslot77-main.png">
580                    </figure>
581                    <ul class="main-menu-1">
582                        <li><a href="https://pgslot77.art/guide/"><img src="https://pgslot77.art/wp-content/themes/Theme-re-pgslot77/assets/img/menu/guide-menu.png" alt=""></a></li>
583                        <li><a href="https://pgslot77.art/enter-pgslot/"><img src="https://pgslot77.art/wp-content/themes/Theme-re-pgslot77/assets/img/menu/enter-menu.png" alt="ทางเข้า pg slot"></a></li>
584                        <li><a href="https://cutt.ly/wcpg77"><img src="https://pgslot77.art/wp-content/themes/Theme-re-pgslot77/assets/img/menu/contact-menu.png" alt=""></a></li>
585                        <li><a href="https://pgslot77.art/category/slot/"><img src="https://pgslot77.art/wp-content/themes/Theme-re-pgslot77/assets/img/menu/article-menu.png" alt="pg สล็อต"></a></li>
586<!--                         <li><a href="https://www.movie87hd.com/"><img src="https://pgslot77.art/wp-content/themes/Theme-re-pgslot77/assets/img/menu/movie-menu.png" alt=""></a></li> -->
587						<li><a href="https://pgslot77.art/activity/"><img src="https://pgslot77.art/wp-content/themes/Theme-re-pgslot77/assets/img/menu/activity-menu.png" alt="กิจกรรม"></a></li>
588                    </ul>
589                </div>
590                <div class="interract-button">
591                    <div class="interract-button-item d-flex align-items-center justify-content-center">
592                        <div class="box-interract-button">
593                            <a data-toggle="modal" data-target="#RoadmapModal">
594                                <img src="https://pgslot77.art/wp-content/themes/Theme-re-pgslot77/assets/img/gold-head.png">
595                            </a>
596                        </div>
597                        <div class="box-interract-button">
598                            <a href="https://cutt.ly/frp77" target="_blank">
599                                <img src="https://pgslot77.art/wp-content/themes/Theme-re-pgslot77/assets/img/creditfree-head.png">
600                            </a>
601                        </div>
602                    </div>
603                </div>
604            </div>
605        </nav>
606
607        
608         
609
610        <nav class="main-nav-mobile">
611            <div class="container">
612                <div class="nav-item-mobile d-flex align-items-center justify-content-between">
613                    <figure class="ham">
614                        <img src="https://pgslot77.art/wp-content/themes/Theme-re-pgslot77/assets/img/Ham.png">
615                    </figure>
616                    <figure class="main-logo-mobile">
617                        <a href="https://pgslot77.art">
618                            <img src="https://pgslot77.art/wp-content/themes/Theme-re-pgslot77/assets/img/logo-pgslot77-main.png">
619                        </a>
620                    </figure>
621                    <figure class="main-line">
622                        <a href="https://cutt.ly/wcpg77">
623                            <img src="https://pgslot77.art/wp-content/themes/Theme-re-pgslot77/assets/img/Line-1.png">
624                        </a>
625                    </figure>
626                </div>
627            </div>
628            <div class="interract-button-mobile">
629                <div class="interract-button-item-mobile d-flex align-items-center justify-content-center">
630                    <div class="box-interract-button-mobile">
631                        <a data-toggle="modal" data-target="#RoadmapModal">
632                            <img src="https://pgslot77.art/wp-content/themes/Theme-re-pgslot77/assets/img/gold-head.png">
633                        </a>
634                    </div>
635                    <div class="box-interract-button-mobile">
636                        <a href="https://cutt.ly/frp77">
637                            <img src="https://pgslot77.art/wp-content/themes/Theme-re-pgslot77/assets/img/creditfree-head.png">
638                        </a>
639                    </div>
640                </div>
641            </div>
642        </nav>
643
644        
645                
646
647        <!-- Nav-Mobile -->
648        <div class="nav-mobile-box">
649            <div class="mobile-wrap-menu">
650                <ul class="menu-mobile">
651                    <li><a href="https://pgslot77.art">หน้าแรก</a></li>
652<!--                     <li><a data-toggle="modal" data-target="#exampleModal3333" style="cursor:pointer;">สมัครสมาชิก</a></li> -->
653<!--                     <li><a data-toggle="modal" data-target="#exampleModal2222" style="cursor:pointer;">เข้าสู่ระบบ</a></li> -->
654					 <li><a href="#" onclick="ModalRegister.open(); return false;">สมัครสมาชิก</a></li>
655					  <li><a href="#" onclick="ModalLogin.open(); return false;">เข้าสู่ระบบ</a></li>
656                    <li><a href="https://pgslot77.art/promotion/">โปรโมชั่นและกิจกรรม</a></li>
657                    <li><a href="https://pgslot77.art/download/">ดาวน์โหลด</a></li>
658                    <li><a href="https://pgslot77.art/guide/">คู่มือการใช้งาน</a></li>
659                    <li><a href="https://pgslot77.art/enter-pgslot/">ทางเข้า PGSLOT</a></li>
660                    <li><a href="https://pgslot77.art/category/slot/">Slot</a></li>
661                    <li><a href="https://cutt.ly/wcpg77">ติดต่อเรา</a></li>					
662					<li><a href="https://pgslot77.art/activity/">กิจกรรม</a></li>
663                    <li><a href="https://www.movie87hd.com/">ดูหนังออนไลน์</a></li>
664                </ul>
665            </div>
666        </div>
667        <!-- End Nav-Mobile -->
668
669    </div>
670               
671
672            <!-- Modal Roadmap -->
673    <div class="modal fade" id="RoadmapModal" tabindex="-1" role="dialog" aria-labelledby="RoadmapModalLabel"
674        aria-hidden="true">
675        <div class="modal-dialog modal-dialog-centered" role="document">
676            <div class="modal-content">
677                <div class="modal-body">
678                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
679                        <span aria-hidden="true">X</span>
680                    </button>
681                    <div class="box-code-free">
682                        <figure class="thumb">
683                            <img src="https://pgslot77.art/wp-content/uploads/2026/04/Dream-PGslot77-Roadmap-17-4-69.jpg" alt="">
684                        </figure> 
685                        <div class="box-desc-code-free">
686                            <p class="p2"><b>ROAD MAP พาตะลุยสะสมทอง </b>🪙<b><br />
687แจก 8 ด่าน ด่านละ 7 ทอง<br />
688สะสมไว้หมุนกงล้อลุ้นรับเงินสดและทองคำฟรี!</b><b></b></p>
689<p class="p2">🕹ด่านที่ 1 Add line หลัก (ต้อนรับ)<br />
690<a href="https://cutt.ly/wcpg77">https://cutt.ly/wcpg77</a></p>
691<p class="p2">🕹ด่านที่ 2 Add line สำรอง<br />
692<a href="https://cutt.ly/frp77">https://cutt.ly/frp77</a></p>
693<p class="p2">ด่านที่3 กดติดตาม Threads<br />
694<a href="https://cutt.ly/threadspg77">https://cutt.ly/threadspg77</a></p>
695<p class="p2">🕹ด่านที่ 4 กดไลก์ กดติดตาม ทัก Inbox เพจ<br />
696<a href="https://cutt.ly/facebookpg77">https://cutt.ly/facebookpg77</a></p>
697<p class="p2">🕹ด่านที่ 5 เข้ากลุ่มลับ Telegram<br />
698<a href="https://cutt.ly/telepg77">https://cutt.ly/telepg77</a></p>
699<p class="p2">🕹ด่านที่ 6 ติดตาม TIKTOK ดูคลิปรับโค้ด</p>
700<p><a href="https://cutt.ly/tiktokpg77">https://cutt.ly/tiktokpg77</a></p>
701<p class="p2"><span class="s2">🕹</span><span class="s3">ด่านที่</span> 7 <span class="s3">กดติดตาม</span> X<br />
702<a href="https://cutt.ly/Xxpgx77">https://cutt.ly/Xxpgx77</a></p>
703<p><span class="s2">🕹</span><span class="s3">ด่านที่</span> 8 <span class="s3">กดติดตาม</span> instagram<br />
704<a href="https://cutt.ly/igps77">https://cutt.ly/igps77</a></p>
705                        </div>
706                    </div>
707                </div>
708            </div>
709        </div>
710    </div>
711
712
713
714
715    
716      
717
718
719    <div class="menu-bottom">
720        <div class="menu-bottom-item d-flex justify-content-center align-items-center">
721            <div class="box-menu-bottom">
722                <a href="#" onclick="ModalLogin.open(); return false;">
723                    <img src="https://pgslot77.art/wp-content/themes/Theme-re-pgslot77/assets/img/Button 2-3.png">
724                </a>
725            </div>
726            <div class="box-menu-bottom">
727                <a href="https://pgslot77.art/promotion/">
728                    <img src="https://pgslot77.art/wp-content/themes/Theme-re-pgslot77/assets/img/Button 2-4.png">
729                </a>
730            </div>
731            <div class="box-menu-bottom">
732                <a href="#" onclick="ModalRegister.open(); return false;">
733                    <img src="https://pgslot77.art/wp-content/themes/Theme-re-pgslot77/assets/img/Button 2-1.gif">
734                </a>
735            </div>
736            <div class="box-menu-bottom">
737                <a href="https://pgslot77.art/download/">
738                    <img src="https://pgslot77.art/wp-content/themes/Theme-re-pgslot77/assets/img/Button 2-5.png">
739                </a>
740            </div>
741            <div class="box-menu-bottom">
742                <a href="https://cutt.ly/wcpg77">
743                    <img src="https://pgslot77.art/wp-content/themes/Theme-re-pgslot77/assets/img/Button 2-6.png">
744                </a>
745            </div>
746        </div>
747    </div>
748
749    			 
750	 
751<!-- ============================================================
752     MODAL REGISTER — CSS (Scoped · ไม่ทับ CSS ของ project ปลายทาง)
753     ทุก rule ถูก scope ด้วย #modal-register
754     ============================================================ -->
755<style>
756  /* ===== RESET & BOX MODEL ===== */
757  #modal-register *,
758  #modal-register *::before,
759  #modal-register *::after {
760    box-sizing: border-box;
761  }
762
763  /* ===== THEME — แก้สีปุ่ม/ตัวหนังสือ modal ที่นี่ที่เดียว ===== */
764  #modal-register,
765  #mr-modal-rules,
766  #mr-modal-success {
767    --mr-primary: #ff5600;
768    /* สีพื้นหลังปุ่มหลัก */
769    --mr-btn-text: #ffffff;
770    /* สีตัวหนังสือปุ่ม */
771    --mr-btn-back: #c20000;
772    /* สีพื้นหลังปุ่มย้อนกลับ */
773    --mr-btn-back-text: #ffffff;
774    /* สีตัวหนังสือปุ่มย้อนกลับ */
775    --mr-text-main: #ffffff;
776    /* ตัวหนังสือทั่วไปใน modal */
777    --mr-text-accent: #ff5600;
778    /* ลิงก์ / ข้อความเน้น */
779    --mr-step-icon: #ffffff;
780    /* สี icon step progress (วงกลมด้านบน) */
781    --mr-modal-bg: #000000b8;
782    /* พื้นหลัง modal */
783    --mr-modal-border: #ff5600;
784    /* ขอบ modal */
785    --mr-close: #e50b00;
786    /* ปุ่มปิด (X) */
787    --mr-error: #ef4444;
788    /* ข้อความ error */
789    --mr-input-text: #ffffff;
790    /* ตัวหนังสือใน input */
791    --mr-input-placeholder: #ffffff;
792    /* placeholder */
793    --mr-input-border: #a5a5a58c;
794    /* ขอบ input */
795    --mr-font: "Prompt", sans-serif;
796    --mr-bg-input: rgba(0, 0, 0, .56);
797    --mr-bg-dark: rgb(0, 0, 0);
798  }
799
800  /* ===== FONT ===== */
801  #modal-register {
802    font-family: var(--mr-font);
803    font-size: 16px;
804  }
805
806  /* ===== BASE ELEMENTS ===== */
807  #modal-register p {
808    margin: 0;
809    font-size: 16px;
810  }
811
812  #modal-register h1 {
813    font-size: 32px;
814    font-weight: 600;
815    margin-bottom: 1rem;
816  }
817
818  #modal-register h5,
819  #modal-register h6 {
820    font-weight: 600;
821  }
822
823  #modal-register figure {
824    margin: 0;
825  }
826
827  #modal-register a {
828    text-decoration: none !important;
829    font-size: 16px;
830    font-weight: 400;
831    color: var(--mr-text-accent);
832  }
833
834  #modal-register :where(p, a, span, h1, h2, h3, h4, h5, h6) {
835    font-weight: 500;
836  }
837
838  /* ===== CLOSE BUTTON ===== */
839  #modal-register .modal-header .close span,
840  #modal-register .modal-header .close i {
841    color: var(--mr-close) !important;
842  }
843
844  /* ===== BOOTSTRAP MODAL CONTENT DARK THEME ===== */
845  #modal-register .modal-content,
846  #mr-modal-rules .modal-content,
847  #mr-modal-success .modal-content {
848    background: var(--mr-modal-bg);
849    border: 2px solid var(--mr-modal-border);
850    border-radius: 16px;
851    color: var(--mr-text-main);
852    font-family: var(--mr-font);
853  }
854
855  #modal-register .modal-body {
856    padding: 1rem 1.5rem 2rem;
857    overflow-y: auto;
858    -webkit-overflow-scrolling: touch;
859  }
860
861  /* ===== LAYOUT ===== */
862  #modal-register .form-layout {
863    display: flex;
864    justify-content: center;
865  }
866
867  #modal-register .from-register {
868    width: 100%;
869    margin: auto;
870  }
871
872  #modal-register .logo {
873    width: clamp(200px, 40vw, 400px);
874    margin: 0 auto;
875  }
876
877  #modal-register .logo img {
878    width: 100%;
879    height: auto;
880  }
881
882  #modal-register .form {
883    margin: 0 auto;
884    color: var(--mr-text-main);
885  }
886
887  /* ===== INPUTS ===== */
888  #modal-register input {
889    width: 100%;
890    padding: 10px;
891    border-radius: 100px;
892    border: 1px solid var(--mr-input-border);
893    background-color: var(--mr-bg-input);
894    color: var(--mr-input-text);
895    font-family: var(--mr-font);
896    font-size: 16px;
897  }
898
899  #modal-register input:focus-visible {
900    outline: none;
901  }
902
903  #modal-register input:focus {
904    outline: none;
905  }
906
907  #modal-register ::placeholder {
908    color: var(--mr-input-placeholder);
909    opacity: 1;
910  }
911
912  /* ===== BUTTONS ===== */
913  #modal-register .btn-text-one,
914  #mr-modal-success .btn-text-one {
915    color: var(--mr-btn-text);
916  }
917
918  #modal-register .btn-next,
919  #modal-register .btn-forget {
920    width: 100%;
921    padding: 10px;
922    border-radius: 100px;
923    border: 1px solid rgba(0, 0, 0, .56);
924    background: var(--mr-primary);
925    color: var(--mr-btn-text);
926    margin-bottom: 10px;
927    cursor: pointer;
928    font-family: var(--mr-font);
929    font-size: 16px;
930  }
931
932  #modal-register .btn-next {
933    margin: 1rem 0;
934  }
935
936  #modal-register .btn-primary {
937    background: var(--mr-primary);
938    color: var(--mr-btn-text);
939    border: none;
940    border-radius: 100px;
941    width: 50%;
942    padding: 10px;
943    font-weight: 600;
944    cursor: pointer;
945    font-family: var(--mr-font);
946    font-size: 16px;
947    position: relative;
948  }
949
950  #modal-register .btn-primary:hover,
951  #modal-register .btn-primary:focus {
952    background: var(--mr-primary) !important;
953    color: var(--mr-btn-text);
954  }
955
956  #modal-register .btn-primary.disabled,
957  #modal-register .btn-primary:disabled {
958    background: var(--mr-primary) !important;
959    color: var(--mr-btn-text);
960    cursor: not-allowed;
961  }
962
963  #modal-register .btn-primary.disabled::after,
964  #modal-register .btn-primary:disabled::after {
965    content: "";
966    position: absolute;
967    inset: 0;
968    background-color: var(--mr-bg-dark);
969    opacity: 0.3;
970    border-radius: 100px;
971  }
972
973  #modal-register button[disabled] {
974    background-color: var(--mr-primary) !important;
975    cursor: not-allowed;
976    border: none;
977    color: var(--mr-btn-text);
978    position: relative;
979  }
980
981  #modal-register button[disabled]::after {
982    content: "";
983    position: absolute;
984    inset: 0;
985    background-color: var(--mr-bg-dark);
986    opacity: 0.5;
987    z-index: 1;
988    border-radius: 100px;
989  }
990
991  #modal-register .btn-back {
992    background: var(--mr-btn-back);
993    color: var(--mr-btn-back-text);
994    border: none;
995    border-radius: 100px;
996    width: 50%;
997    padding: 10px;
998    font-weight: 600;
999    cursor: pointer;
1000    font-family: var(--mr-font);
1001    font-size: 16px;
1002  }
1003
1004  #modal-register .btn-login {
1005    width: 100%;
1006    padding: 10px;
1007    border-radius: 100px;
1008    border: 1px solid rgba(0, 0, 0, .56);
1009    background: var(--mr-primary);
1010    color: var(--mr-btn-text);
1011    margin-bottom: 10px;
1012    cursor: pointer;
1013    font-family: var(--mr-font);
1014    font-size: 16px;
1015  }
1016
1017  /* ===== STEPS / PROGRESS ===== */
1018  #modal-register .progress-container {
1019    position: relative;
1020    display: flex;
1021    justify-content: space-between;
1022    align-items: center;
1023    max-width: 600px;
1024    margin: 40px auto;
1025  }
1026
1027  #modal-register .progress-line {
1028    position: absolute;
1029    top: 16px;
1030    left: 15%;
1031    width: 70%;
1032    height: 7px;
1033    background: rgba(255, 255, 255, .3);
1034    z-index: 0;
1035  }
1036
1037  #modal-register .progress-bar {
1038    height: 100%;
1039    width: 0%;
1040    background: var(--mr-primary);
1041    transition: width 0.3s ease;
1042  }
1043
1044  #modal-register .step-item {
1045    display: flex;
1046    flex-direction: column;
1047    align-items: center;
1048    flex: 1;
1049    z-index: 1;
1050  }
1051
1052  #modal-register .circle {
1053    width: 40px;
1054    height: 40px;
1055    border-radius: 50%;
1056    background: var(--mr-primary);
1057    color: var(--mr-step-icon);
1058    display: flex;
1059    align-items: center;
1060    justify-content: center;
1061    font-weight: bold;
1062    margin-bottom: 8px;
1063  }
1064
1065  #modal-register .circle .icon {
1066    display: flex;
1067    align-items: center;
1068    justify-content: center;
1069    line-height: 1;
1070    color: var(--mr-step-icon);
1071  }
1072
1073  #modal-register .circle .icon svg,
1074  #modal-register .circle .icon img {
1075    display: block;
1076  }
1077
1078  /* #modal-register .circle .icon svg path,
1079  #modal-register .circle .icon svg g path {
1080    fill: currentColor;
1081  } */
1082
1083  #modal-register .circle .icon svg path[stroke] {
1084    stroke: currentColor;
1085  }
1086
1087  #modal-register .step-item.active-progress .circle,
1088  #modal-register .step-item.done .circle {
1089    background: var(--mr-primary);
1090    color: var(--mr-step-icon);
1091  }
1092
1093  #modal-register .step-item.active-progress .circle .icon,
1094  #modal-register .step-item.done .circle .icon {
1095    color: var(--mr-step-icon);
1096  }
1097
1098  #modal-register .step-item p {
1099    font-size: 16px;
1100    margin: 0;
1101    color: var(--mr-text-accent);
1102  }
1103
1104  #modal-register .step {
1105    display: none;
1106  }
1107
1108  #modal-register .step.active {
1109    display: block;
1110  }
1111
1112  /* ===== FORM FIELDS ===== */
1113  #modal-register .error {
1114    color: var(--mr-error);
1115    font-size: 14px;
1116    margin-top: 4px;
1117  }
1118
1119  #modal-register .phone-number,
1120  #modal-register .password {
1121    margin-top: 1rem;
1122  }
1123
1124  #modal-register .password-container {
1125    margin-top: 1rem;
1126  }
1127
1128  #modal-register .password-wrapper {
1129    position: relative;
1130  }
1131
1132  #modal-register .toggle-button {
1133    position: absolute;
1134    top: 50%;
1135    right: 10px;
1136    transform: translateY(-50%);
1137    cursor: pointer;
1138    color: #666;
1139  }
1140
1141  #modal-register .eye-icon {
1142    width: 20px;
1143    height: 20px;
1144    color: var(--mr-text-main);
1145  }
1146
1147  /* ===== CHECKBOX ===== */
1148  #modal-register .mr-terms-row {
1149    display: flex;
1150    align-items: center;
1151    justify-content: center;
1152    gap: 10px;
1153    width: 100%;
1154    background: none;
1155    border: none;
1156    margin: 1rem 0;
1157  }
1158
1159  #modal-register .mr-terms-row p,
1160  #modal-register .mr-terms-row a {
1161    font-size: clamp(13px, 1.5vw, 16px);
1162    font-weight: 400;
1163  }
1164
1165  #modal-register .mr-terms-row a {
1166    color: var(--mr-text-accent);
1167    text-decoration: underline !important;
1168  }
1169
1170  #modal-register .checkbox-container {
1171    display: inline-block;
1172    position: relative;
1173    padding-left: 25px;
1174    margin-bottom: 20px;
1175    cursor: pointer;
1176    font-size: 16px;
1177    user-select: none;
1178  }
1179
1180  #modal-register .custom-checkbox {
1181    position: absolute;
1182    opacity: 0;
1183    cursor: pointer;
1184    height: 0;
1185    width: 0;
1186  }
1187
1188  #modal-register .checkmark {
1189    position: absolute;
1190    top: 0;
1191    left: 0;
1192    height: 23px;
1193    width: 23px;
1194    border-radius: 4px;
1195    transition: background-color 0.3s;
1196    border: 1px solid var(--mr-text-main);
1197  }
1198
1199  #modal-register .checkmark::after {
1200    content: "";
1201    position: absolute;
1202    display: none;
1203    left: 7px;
1204    top: 1px;
1205    width: 8px;
1206    height: 15px !important;
1207    border: solid white;
1208    border-width: 0 3px 3px 0;
1209    transform: rotate(45deg);
1210  }
1211
1212  #modal-register .custom-checkbox:checked~.checkmark {
1213    background-color: var(--mr-primary);
1214    box-shadow: 0 3px 7px rgba(33, 150, 243, .3);
1215  }
1216
1217  #modal-register .custom-checkbox:checked~.checkmark::after {
1218    display: block;
1219  }
1220
1221  /* ===== LOGIN LINK ===== */
1222  #modal-register .login-link {
1223    display: flex;
1224    align-items: center;
1225    justify-content: center;
1226    gap: 10px;
1227    width: 100%;
1228    margin: 1rem 0;
1229  }
1230
1231  #modal-register .login-link p,
1232  #modal-register .login-link a {
1233    font-size: clamp(13px, 1.5vw, 16px);
1234    font-weight: 400;
1235  }
1236
1237  #modal-register .login-link a {
1238    color: var(--mr-text-accent);
1239  }
1240
1241  #modal-register .rule-register {
1242    color: var(--mr-text-accent);
1243    cursor: pointer;
1244    font-size: clamp(13px, 1.5vw, 16px);
1245    font-weight: 400;
1246    text-decoration: underline;
1247  }
1248
1249  /* ===== BANK ===== */
1250  #modal-register .bank-input {
1251    margin-top: 1rem;
1252  }
1253
1254  #modal-register .mr-bank-label {
1255    display: block;
1256    margin-bottom: 0.25rem;
1257    color: var(--mr-text-main);
1258    font-size: 14px;
1259  }
1260
1261  #modal-register .is-bank-account {
1262    display: block;
1263  }
1264
1265  #modal-register #mr-bank-dropdown {
1266    z-index: 101;
1267  }
1268
1269  #modal-register .mr-bank-option,
1270  #modal-register .mr-aff-option {
1271    display: flex;
1272    align-items: center;
1273    gap: 10px;
1274  }
1275
1276  #modal-register .mr-aff-option-icon {
1277    width: 24px;
1278    height: 24px;
1279    border-radius: 50%;
1280    object-fit: contain;
1281    flex-shrink: 0;
1282  }
1283
1284  #modal-register #mr-dropdown-selected {
1285    display: flex;
1286    align-items: center;
1287    gap: 8px;
1288    min-height: 42px;
1289  }
1290
1291  #modal-register #mr-dropdown-selected.is-placeholder {
1292    color: var(--mr-input-placeholder);
1293  }
1294
1295  #modal-register .mr-bank-option-icon {
1296    width: 28px;
1297    height: 28px;
1298    border-radius: 50%;
1299    object-fit: contain;
1300    flex-shrink: 0;
1301  }
1302
1303  #modal-register #mr-bank-dropdown-selected {
1304    display: flex;
1305    align-items: center;
1306    gap: 8px;
1307    min-height: 42px;
1308  }
1309
1310  #modal-register #mr-bank-dropdown-selected.is-placeholder {
1311    color: var(--mr-input-placeholder);
1312  }
1313
1314  #modal-register .show {
1315    display: block !important;
1316  }
1317
1318  #modal-register .hidden {
1319    display: none;
1320  }
1321
1322  /* ===== DROPDOWN ===== */
1323  #modal-register .dropdown {
1324    width: 100%;
1325    position: relative;
1326    font-size: 16px;
1327    z-index: 99;
1328    margin-top: 1rem;
1329  }
1330
1331  #modal-register .dropdown-selected {
1332    width: 100%;
1333    padding: 10px;
1334    border-radius: 100px;
1335    border: 1px solid rgb(154 154 154 / 56%);
1336    background-color: var(--mr-bg-input);
1337    color: var(--mr-input-text);
1338    cursor: pointer;
1339    position: relative;
1340  }
1341
1342  #modal-register .dropdown-selected::after {
1343    content: "▾";
1344    position: absolute;
1345    right: 20px;
1346    top: 50%;
1347    transform: translateY(-50%);
1348    font-size: 18px;
1349  }
1350
1351  #modal-register .dropdown-options {
1352    display: none;
1353    position: absolute;
1354    width: 100%;
1355    padding: 10px;
1356    border-radius: 8px;
1357    border: 1px solid rgba(0, 0, 0, .56);
1358    background-color: rgba(0, 0, 0, .85);
1359    color: var(--mr-text-main);
1360    margin-top: 5px;
1361    z-index: 1000;
1362    max-height: 200px;
1363    overflow: scroll;
1364  }
1365
1366  #modal-register .dropdown-options div {
1367    padding: 10px;
1368    cursor: pointer;
1369  }
1370
1371  #modal-register .dropdown-options div:hover {
1372    background-color: rgba(255, 255, 255, .1);
1373    border-radius: 8px;
1374  }
1375
1376  #modal-register .dropdown.open .dropdown-options {
1377    display: block;
1378  }
1379
1380  /* ===== BONUS / RADIO ===== */
1381  #modal-register .bonus-container {
1382    display: flex;
1383    align-items: center;
1384    justify-content: center;
1385    gap: 50px;
1386    margin: 1rem 0;
1387  }
1388
1389  #modal-register .radio-buttons {
1390    display: flex;
1391    color: white;
1392    gap: 50px;
1393  }
1394
1395  #modal-register .radio-button {
1396    display: flex;
1397    align-items: center;
1398    cursor: pointer;
1399  }
1400
1401  #modal-register .radio-button input[type="radio"] {
1402    display: none;
1403  }
1404
1405  #modal-register .radio-circle {
1406    width: 20px;
1407    height: 20px;
1408    border-radius: 50%;
1409    border: 2px solid var(--mr-primary);
1410    position: relative;
1411    margin-right: 10px;
1412  }
1413
1414  #modal-register .radio-circle::before {
1415    content: "";
1416    display: block;
1417    width: 12px;
1418    height: 12px;
1419    border-radius: 50%;
1420    background-color: #ddd;
1421    position: absolute;
1422    top: 50%;
1423    left: 50%;
1424    transform: translate(-50%, -50%) scale(0);
1425    transition: all 0.2s ease-in-out;
1426  }
1427
1428  #modal-register .radio-button input[type="radio"]:checked+.radio-circle::before {
1429    transform: translate(-50%, -50%) scale(1);
1430    background-color: var(--mr-primary);
1431  }
1432
1433  #modal-register .radio-button:hover .radio-circle {
1434    border-color: var(--mr-primary);
1435  }
1436
1437  #modal-register .radio-label {
1438    font-size: 16px;
1439    font-weight: bold;
1440  }
1441
1442  /* ===== PROBLEM LINK ===== */
1443  #modal-register .problem-link {
1444    display: flex;
1445    align-items: center;
1446    justify-content: center;
1447    gap: 10px;
1448    width: 100%;
1449    margin: 1rem 0;
1450  }
1451
1452  #modal-register .problem-link span {
1453    color: var(--mr-text-accent);
1454    text-decoration: underline;
1455    cursor: pointer;
1456  }
1457
1458  /* ===== OTP ===== */
1459  #modal-register .otp-input {
1460    width: 42px !important;
1461    height: 42px;
1462    text-align: center;
1463    border-radius: 8px !important;
1464    background-color: rgba(255, 255, 255, .15) !important;
1465    border: 1px solid rgba(255, 255, 255, .4) !important;
1466    color: var(--mr-input-text);
1467    font-size: 18px;
1468    padding: 0 !important;
1469  }
1470
1471  #modal-register #mr-countdown-text {
1472    color: var(--mr-error);
1473    font-weight: bold;
1474    margin-top: 0.75rem;
1475  }
1476
1477  /* ===== MODAL CONTENT (rules / success) ===== */
1478  #mr-modal-rules .modal-content,
1479  #mr-modal-success .modal-content {
1480    position: relative;
1481    display: flex;
1482    flex-direction: column;
1483    width: 100%;
1484    pointer-events: auto;
1485    background-color: rgb(0, 0, 0);
1486    border: 2px solid var(--mr-modal-border);
1487    border-radius: 16px;
1488    outline: 0;
1489    color: var(--mr-text-main);
1490    font-family: var(--mr-font);
1491  }
1492
1493  #mr-modal-rules .modal-header,
1494  #mr-modal-success .modal-header {
1495    border: none;
1496    padding: 1rem 1rem 0.5rem;
1497    display: flex;
1498    align-items: center;
1499    justify-content: space-between;
1500  }
1501
1502  #mr-modal-rules .modal-title,
1503  #mr-modal-success .modal-title {
1504    font-size: 18px;
1505    font-weight: 600;
1506    margin: 0;
1507  }
1508
1509  #mr-modal-rules .modal-body,
1510  #mr-modal-success .modal-body {
1511    padding: 1rem;
1512    font-size: 16px;
1513  }
1514
1515  #mr-modal-rules .modal-footer,
1516  #mr-modal-success .modal-footer {
1517    border: none;
1518    padding: 0.5rem 1rem 1rem;
1519  }
1520
1521  #mr-modal-rules .modal-dialog,
1522  #mr-modal-success .modal-dialog {
1523    width: calc(100% - 2rem);
1524    max-width: 480px;
1525    margin: 1rem auto;
1526  }
1527
1528  #modal-register .modal-dialog.modal-dialog-scrollable .modal-content {
1529    max-height: calc(100dvh - 2rem - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px));
1530  }
1531
1532  #modal-register .modal-header {
1533    position: relative;
1534    display: flex;
1535    align-items: center;
1536    justify-content: center;
1537    border: none;
1538    padding: 1rem 3rem 0.5rem 1rem;
1539    flex-shrink: 0;
1540  }
1541
1542  #modal-register .modal-header .close {
1543    position: absolute;
1544    right: 0.75rem;
1545    top: 50%;
1546    transform: translateY(-50%);
1547    margin: 0;
1548    padding: 0.25rem;
1549    z-index: 2;
1550    opacity: 1;
1551  }
1552
1553  #mr-modal-rules .modal-dialog .modal-content,
1554  #mr-modal-success .modal-dialog .modal-content {
1555    max-height: calc(100dvh - 2rem - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px));
1556  }
1557
1558  #mr-modal-rules .modal-body,
1559  #mr-modal-rules #mr-rule-body {
1560    max-height: min(60vh, 480px);
1561    overflow-y: auto;
1562    -webkit-overflow-scrolling: touch;
1563  }
1564
1565  #modal-register #mr-otp-inputs {
1566    flex-wrap: nowrap;
1567    gap: 0.35rem;
1568    max-width: 100%;
1569    margin-left: auto;
1570    margin-right: auto;
1571  }
1572
1573  #modal-register #mr-otp-inputs .otp-input {
1574    margin: 0 !important;
1575    flex: 0 1 auto;
1576  }
1577
1578  #mr-modal-rules .modal-header i,
1579  #mr-modal-success .modal-header i {
1580    color: var(--mr-close);
1581    font-size: 1.5rem;
1582    cursor: pointer;
1583  }
1584
1585  #mr-modal-success .text-register-success {
1586    font-size: 24px;
1587    font-weight: 600;
1588    margin: 1rem 0;
1589  }
1590
1591  #mr-modal-success .btn-login {
1592    display: inline-block;
1593    padding: 10px;
1594    border-radius: 100px;
1595    border: none;
1596    background: var(--mr-primary);
1597    color: var(--mr-btn-text);
1598    cursor: pointer;
1599    font-family: var(--mr-font);
1600    font-size: 16px;
1601  }
1602
1603  /* ===== FLEX UTILITIES (ภายใน modal เท่านั้น) ===== */
1604  #modal-register .d-flex {
1605    display: flex !important;
1606  }
1607
1608  #modal-register .flex-row {
1609    flex-direction: row !important;
1610  }
1611
1612  #modal-register .justify-content-center {
1613    justify-content: center !important;
1614  }
1615
1616  #modal-register .align-items-center {
1617    align-items: center !important;
1618  }
1619
1620  #modal-register .text-center {
1621    text-align: center !important;
1622  }
1623
1624  #modal-register .text-white {
1625    color: var(--mr-text-main) !important;
1626  }
1627
1628  #modal-register .mt-2 {
1629    margin-top: 0.5rem !important;
1630  }
1631
1632  #modal-register .mt-3 {
1633    margin-top: 0.75rem !important;
1634  }
1635
1636  #modal-register .mt-4 {
1637    margin-top: 1rem !important;
1638  }
1639
1640  #modal-register .me-2 {
1641    margin-right: 0.5rem !important;
1642  }
1643
1644  #modal-register .p-2 {
1645    padding: 0.5rem !important;
1646  }
1647
1648  #modal-register .px-4 {
1649    padding-left: 1.5rem !important;
1650    padding-right: 1.5rem !important;
1651  }
1652
1653  #modal-register .gap-2 {
1654    gap: 0.5rem !important;
1655  }
1656
1657  #modal-register .position-relative {
1658    position: relative !important;
1659  }
1660
1661  #modal-register .height-100 {
1662    height: 100% !important;
1663  }
1664
1665  #modal-register .fw-bold {
1666    font-weight: bold !important;
1667  }
1668
1669  #modal-register .cursor-pointer {
1670    cursor: pointer !important;
1671  }
1672
1673  /* ===== SWEETALERT2 OVERRIDES (global — ใช้ร่วมกับ login ได้) ===== */
1674  .swal2-toast {
1675    color: #fff !important;
1676  }
1677
1678  .swal2-icon-success {
1679    background: rgb(1, 164, 4) !important;
1680  }
1681
1682  .swal2-icon-error {
1683    background: red !important;
1684  }
1685
1686  div:where(.swal2-icon).swal2-error {
1687    border-color: #fff !important;
1688    color: #fff !important;
1689  }
1690
1691  div:where(.swal2-icon).swal2-error [class^="swal2-x-mark-line"] {
1692    background-color: #fff !important;
1693  }
1694
1695  /* ===== RESPONSIVE ===== */
1696  @media screen and (max-width: 768px) {
1697
1698    #modal-register .modal-dialog,
1699    #mr-modal-rules .modal-dialog,
1700    #mr-modal-success .modal-dialog {
1701      width: calc(100% - 1.5rem);
1702      margin: 0.75rem auto;
1703    }
1704
1705    #modal-register h1 {
1706      font-size: clamp(1.375rem, 5vw, 2rem);
1707    }
1708
1709    #modal-register .logo {
1710      width: clamp(140px, 50vw, 280px);
1711    }
1712
1713    #modal-register .modal-body {
1714      padding: 0.75rem 1rem 1.5rem;
1715    }
1716
1717    #modal-register .progress-container {
1718      margin: 1.5rem auto;
1719    }
1720
1721    #modal-register .step-item p {
1722      font-size: 12px;
1723    }
1724
1725    #modal-register .circle {
1726      width: 34px;
1727      height: 34px;
1728    }
1729
1730    #modal-register .progress-line {
1731      top: 14px;
1732      height: 6px;
1733    }
1734
1735    #modal-register .bank-select {
1736      padding: 1rem;
1737    }
1738
1739    #modal-register .bank-options {
1740      gap: 10px;
1741      grid-template-columns: repeat(auto-fit, minmax(36px, 1fr));
1742    }
1743
1744    #mr-modal-rules .modal-body,
1745    #mr-modal-success .modal-body {
1746      padding: 0.75rem 1rem;
1747    }
1748
1749    #mr-modal-success .text-register-success {
1750      font-size: 20px;
1751    }
1752  }
1753
1754  @media screen and (max-width: 600px) {
1755    #modal-register .from-register {
1756      padding: 0 0.25rem;
1757    }
1758
1759    #modal-register .container {
1760      max-width: 100%;
1761      padding: 0;
1762    }
1763
1764    #modal-register .modal-header {
1765      padding: 0.75rem 2.75rem 0.5rem 0.75rem;
1766    }
1767
1768    #modal-register .mr-terms-row {
1769      flex-wrap: wrap;
1770      gap: 8px;
1771    }
1772
1773    #modal-register .mr-terms-row .d-flex {
1774      flex-wrap: wrap;
1775      justify-content: center;
1776      text-align: center;
1777    }
1778
1779    #modal-register .bonus-container,
1780    #modal-register .radio-buttons {
1781      gap: 1.25rem;
1782      flex-wrap: wrap;
1783      justify-content: center;
1784    }
1785
1786    #modal-register .radio-label {
1787      font-size: 14px;
1788    }
1789
1790    #modal-register .otp-input {
1791      width: clamp(32px, 11vw, 42px) !important;
1792      height: clamp(32px, 11vw, 42px);
1793      font-size: clamp(14px, 4vw, 18px);
1794    }
1795
1796    #modal-register .btn-next,
1797    #modal-register .btn-login,
1798    #mr-modal-success .btn-login {
1799      min-height: 44px;
1800    }
1801
1802    #modal-register .btn-primary,
1803    #modal-register .btn-back {
1804      min-height: 44px;
1805      font-size: 14px;
1806    }
1807  }
1808
1809  @media screen and (max-width: 380px) {
1810
1811    #modal-register .modal-dialog,
1812    #mr-modal-rules .modal-dialog,
1813    #mr-modal-success .modal-dialog {
1814      width: calc(100% - 1rem);
1815      margin: 0.5rem auto;
1816    }
1817
1818    #modal-register .step-item p {
1819      font-size: 10px;
1820    }
1821
1822    #modal-register .circle {
1823      width: 30px;
1824      height: 30px;
1825    }
1826
1827    #modal-register .circle .icon svg {
1828      width: 18px;
1829      height: 18px;
1830    }
1831
1832    #modal-register .progress-line {
1833      top: 12px;
1834      left: 12%;
1835      width: 76%;
1836    }
1837
1838    #modal-register .btn-primary,
1839    #modal-register .btn-back {
1840      width: 48%;
1841      padding: 8px 6px;
1842    }
1843
1844    #modal-register #mr-otp-inputs {
1845      gap: 0.2rem;
1846    }
1847
1848    #modal-register .otp-input {
1849      width: clamp(28px, 10vw, 36px) !important;
1850      height: clamp(28px, 10vw, 36px);
1851    }
1852  }
1853
1854  @media screen and (min-width: 601px) {
1855    #modal-register .container {
1856      max-width: 100%;
1857    }
1858  }
1859
1860  @media screen and (max-height: 500px) and (orientation: landscape) {
1861
1862    #modal-register .modal-dialog.modal-dialog-scrollable .modal-content,
1863    #mr-modal-rules .modal-dialog .modal-content,
1864    #mr-modal-success .modal-dialog .modal-content {
1865      max-height: calc(100dvh - 1rem);
1866    }
1867
1868    #modal-register .modal-body {
1869      padding: 0.5rem 1rem 1rem;
1870    }
1871
1872    #modal-register h1 {
1873      font-size: 1.25rem;
1874      margin-bottom: 0.5rem;
1875    }
1876
1877    #modal-register .progress-container {
1878      margin: 0.75rem auto;
1879    }
1880
1881    #modal-register .step-item p {
1882      font-size: 10px;
1883    }
1884
1885    #modal-register .circle {
1886      width: 28px;
1887      height: 28px;
1888      margin-bottom: 4px;
1889    }
1890
1891    #modal-register .progress-line {
1892      top: 10px;
1893    }
1894
1895    #modal-register .logo img {
1896      max-height: 40px !important;
1897    }
1898  }
1899</style>
1900
1901<!-- ============================================================
1902     MODAL REGISTER — HTML
1903     ============================================================ -->
1904<div class="modal modal-diamond fade" id="modal-register" tabindex="-1" role="dialog"
1905  aria-labelledby="mr-modal-title" aria-hidden="true"
1906  data-backdrop="static" data-keyboard="false"
1907  data-bs-backdrop="static" data-bs-keyboard="false">
1908  <div class="modal-dialog modal-dialog-centered modal-dialog-scrollable" role="document">
1909    <div class="modal-content">
1910
1911      <!-- Modal Header -->
1912      <div class="modal-header">
1913        <div class="logo" id="mr-logo" style="margin:0 auto;">
1914          <figure class="thumb">
1915			  <img src="https://pgslot77.art/wp-content/themes/Theme-re-pgslot77/assets/img/logo-pgslot77-main.png" alt="logo" style="max-height:60px;width:auto;"/>
1916          </figure>
1917        </div>
1918        <button id="mr-close-btn" type="button" class="close" data-dismiss="modal" aria-label="Close"
1919          onclick="ModalRegister.close()">
1920          <span aria-hidden="true"><i class="fas fa-times-circle"></i></span>
1921        </button>
1922      </div>
1923
1924      <div class="modal-body">
1925        <div class="from-register">
1926
1927          <h1 class="text-center text-white">สมัครสมาชิก</h1>
1928
1929          <div class="form">
1930            <!-- Progress -->
1931            <div class="progress-container">
1932              <div class="progress-line">
1933                <div class="progress-bar" id="mr-progress-bar"></div>
1934              </div>
1935              <div class="step-item active-progress" id="mr-step-item-1">
1936                <div class="circle"><span class="icon"></span></div>
1937                <p>สมัครสมาชิก</p>
1938              </div>
1939              <div class="step-item" id="mr-step-item-2">
1940                <div class="circle"><span class="icon"></span></div>
1941                <p>ตั้งรหัสผ่าน</p>
1942              </div>
1943              <div class="step-item" id="mr-step-item-3">
1944                <div class="circle"><span class="icon"></span></div>
1945                <p>บัญชีธนาคาร</p>
1946              </div>
1947            </div>
1948
1949            <!-- Step 1: Phone -->
1950            <div id="mr-step-1" class="step active">
1951              <p class="text-white/70 font-sans text-[14px] my-1">เบอร์โทรศัพท์</p>
1952              <input type="tel" id="mr-phone" placeholder="กรุณากรอกเบอร์โทรศัพท์" maxlength="10" />
1953              <div id="mr-phone-error" class="error"></div>
1954              <button class="btn-next" id="mr-next-button" disabled>
1955                <span class="btn-text-one">ถัดไป</span>
1956              </button>
1957              <!-- TEMP: ปิดยอมรับเงื่อนไขการสมัครสมาชิกชั่วคราว
1958              <div class="mr-terms-row">
1959                <label class="checkbox-container">
1960                  <input class="custom-checkbox" type="checkbox" id="mr-terms" />
1961                  <span class="checkmark"></span>
1962                </label>
1963                <div class="d-flex align-items-center gap-2">
1964                  <p>ยอมรับเงื่อนไขการสมัครสมาชิก</p>
1965                  <div class="rule-register" id="mr-rule-trigger" style="cursor:pointer;">(อ่านเพิ่มเติม)</div>
1966                </div>
1967              </div>
1968              -->
1969              <div class="login-link">
1970                <p>มีบัญชีแล้ว?</p>
1971                <a id="mr-goto-login" style="cursor:pointer;">เข้าสู่ระบบ</a>
1972              </div>
1973            </div>
1974
1975            <!-- Step 2: OTP -->
1976            <div id="mr-step-2" class="step">
1977              <div class="container height-100 d-flex justify-content-center align-items-center">
1978                <div class="position-relative">
1979                  <div class="p-2 text-center">
1980                    <h6>กรุณากรอกรหัส OTP</h6>
1981                    <div>
1982                      <span>ที่ส่งไปยังเบอร์:</span>
1983                      <small id="mr-otp-phone-display"></small>
1984                    </div>
1985                    <div id="mr-otp-inputs" class="inputs d-flex flex-row justify-content-center mt-2">
1986                      <input class="otp-input m-2 text-center form-control rounded" type="text" maxlength="1" inputmode="numeric" pattern="[0-9]*" />
1987                      <input class="otp-input m-2 text-center form-control rounded" type="text" maxlength="1" inputmode="numeric" pattern="[0-9]*" />
1988                      <input class="otp-input m-2 text-center form-control rounded" type="text" maxlength="1" inputmode="numeric" pattern="[0-9]*" />
1989                      <input class="otp-input m-2 text-center form-control rounded" type="text" maxlength="1" inputmode="numeric" pattern="[0-9]*" />
1990                      <input class="otp-input m-2 text-center form-control rounded" type="text" maxlength="1" inputmode="numeric" pattern="[0-9]*" />
1991                      <input class="otp-input m-2 text-center form-control rounded" type="text" maxlength="1" inputmode="numeric" pattern="[0-9]*" />
1992                    </div>
1993                    <p id="mr-countdown-text" class="mt-3 text-danger fw-bold"></p>
1994                    <div class="mt-4 d-flex justify-content-center">
1995                      <button id="mr-otp-back-button" class="btn btn-back me-2">ย้อนกลับ</button>
1996                      <button id="mr-otp-validate-button" class="btn btn-primary px-4" disabled>ถัดไป</button>
1997                    </div>
1998                  </div>
1999                </div>
2000              </div>
2001            </div>
2002
2003            <!-- Step 3: Password -->
2004            <div id="mr-step-3" class="step">
2005              <div class="password-container">
2006                <p class="text-white/70 my-1">รหัสผ่าน</p>
2007                <div class="password-wrapper">
2008                  <input type="password" id="mr-password"
2009                    oninput="this.value=this.value.replace(/[^A-Za-z0-9]/g,'')"
2010                    placeholder="กรุณากรอกรหัสผ่าน" />
2011                  <div class="toggle-button" id="mr-toggle-password">
2012                    <span id="mr-icon-password">
2013                      <svg width="24" height="19" viewBox="0 0 24 19" fill="currentColor" class="eye-icon" xmlns="http://www.w3.org/2000/svg">
2014                        <path d="M19.5254 0.966275C19.2322 0.673025 18.7582 0.673025 18.4649 0.966275L16.3919 3.03928C15.0802 2.51128 13.6154 2.17078 11.9999 2.17078C4.80066 2.17078 0.303663 9.15553 0.116163 9.45328C0.00516307 9.62953 -0.0233369 9.83428 0.0201631 10.0225C-0.0158369 10.201 0.00741308 10.3923 0.110163 10.5603C0.214413 10.7313 1.70166 13.102 4.34166 15.091L2.59941 16.8325C2.30616 17.1258 2.30616 17.5998 2.59941 17.893C2.74566 18.0393 2.93766 18.1128 3.12966 18.1128C3.32166 18.1128 3.51366 18.0393 3.65991 17.893L19.5254 2.02678C19.8179 1.73428 19.8179 1.25953 19.5254 0.966275ZM7.67991 9.95578C7.67991 7.57378 9.61791 5.63578 11.9999 5.63578C12.5339 5.63578 13.0439 5.73628 13.5157 5.91478L12.2699 7.16053C12.1799 7.15078 12.0922 7.13578 11.9999 7.13578C10.4452 7.13578 9.17991 8.40103 9.17991 9.95578C9.17991 10.048 9.19566 10.1358 9.20466 10.2258L7.95891 11.4715C7.78041 11.0005 7.67991 10.4898 7.67991 9.95578ZM23.8837 10.5468C23.6962 10.8438 19.1992 17.8293 11.9999 17.8293C10.1204 17.8293 8.44041 17.3725 6.97416 16.6915L9.92391 13.741C10.5404 14.0808 11.2484 14.275 12.0007 14.275C14.3827 14.275 16.3207 12.337 16.3207 9.95502C16.3207 9.20278 16.1264 8.49553 15.7867 7.87827L19.1392 4.52578C22.1047 6.57928 23.7802 9.25753 23.8904 9.43903C23.9932 9.60703 24.0164 9.79827 23.9804 9.97678C24.0232 10.1665 23.9954 10.3705 23.8837 10.5468ZM11.0624 12.6033L14.6474 9.01903C14.7524 9.31378 14.8199 9.62653 14.8199 9.95653C14.8199 11.5113 13.5547 12.7765 11.9999 12.7765C11.6699 12.7758 11.3572 12.7083 11.0624 12.6033Z" fill="white" />
2015                      </svg>
2016                    </span>
2017                  </div>
2018                </div>
2019                <div id="mr-password-error" class="error"></div>
2020              </div>
2021              <div class="password-container">
2022                <p class="text-white/70 my-1">ยืนยันรหัสผ่าน</p>
2023                <div class="password-wrapper">
2024                  <input type="password" id="mr-confirm-password"
2025                    oninput="this.value=this.value.replace(/[^A-Za-z0-9]/g,'')"
2026                    placeholder="กรุณากรอกรหัสผ่านอีกครั้ง" />
2027                  <div class="toggle-button" id="mr-toggle-confirm-password">
2028                    <span id="mr-icon-confirm-password">
2029                      <svg width="24" height="19" viewBox="0 0 24 19" fill="currentColor" class="eye-icon" xmlns="http://www.w3.org/2000/svg">
2030                        <path d="M19.5254 0.966275C19.2322 0.673025 18.7582 0.673025 18.4649 0.966275L16.3919 3.03928C15.0802 2.51128 13.6154 2.17078 11.9999 2.17078C4.80066 2.17078 0.303663 9.15553 0.116163 9.45328C0.00516307 9.62953 -0.0233369 9.83428 0.0201631 10.0225C-0.0158369 10.201 0.00741308 10.3923 0.110163 10.5603C0.214413 10.7313 1.70166 13.102 4.34166 15.091L2.59941 16.8325C2.30616 17.1258 2.30616 17.5998 2.59941 17.893C2.74566 18.0393 2.93766 18.1128 3.12966 18.1128C3.32166 18.1128 3.51366 18.0393 3.65991 17.893L19.5254 2.02678C19.8179 1.73428 19.8179 1.25953 19.5254 0.966275ZM7.67991 9.95578C7.67991 7.57378 9.61791 5.63578 11.9999 5.63578C12.5339 5.63578 13.0439 5.73628 13.5157 5.91478L12.2699 7.16053C12.1799 7.15078 12.0922 7.13578 11.9999 7.13578C10.4452 7.13578 9.17991 8.40103 9.17991 9.95578C9.17991 10.048 9.19566 10.1358 9.20466 10.2258L7.95891 11.4715C7.78041 11.0005 7.67991 10.4898 7.67991 9.95578ZM23.8837 10.5468C23.6962 10.8438 19.1992 17.8293 11.9999 17.8293C10.1204 17.8293 8.44041 17.3725 6.97416 16.6915L9.92391 13.741C10.5404 14.0808 11.2484 14.275 12.0007 14.275C14.3827 14.275 16.3207 12.337 16.3207 9.95502C16.3207 9.20278 16.1264 8.49553 15.7867 7.87827L19.1392 4.52578C22.1047 6.57928 23.7802 9.25753 23.8904 9.43903C23.9932 9.60703 24.0164 9.79827 23.9804 9.97678C24.0232 10.1665 23.9954 10.3705 23.8837 10.5468ZM11.0624 12.6033L14.6474 9.01903C14.7524 9.31378 14.8199 9.62653 14.8199 9.95653C14.8199 11.5113 13.5547 12.7765 11.9999 12.7765C11.6699 12.7758 11.3572 12.7083 11.0624 12.6033Z" fill="white" />
2031                      </svg>
2032                    </span>
2033                  </div>
2034                </div>
2035                <div id="mr-password-error-confirm" class="error"></div>
2036              </div>
2037              <div class="mt-4 d-flex justify-content-center">
2038                <button id="mr-back-to-step-2" class="btn btn-back me-2">ย้อนกลับ</button>
2039                <button id="mr-next-step-3" class="btn btn-primary px-4" disabled>ถัดไป</button>
2040              </div>
2041              <div class="problem-link">
2042                <p>พบปัญหา</p>
2043                <a href="https://cutt.ly/wcpg77" class="cursor-pointer"><span>ติดต่อฝ่ายบริการลูกค้า</span></a>
2044              </div>
2045            </div>
2046
2047            <!-- Step 4: Bank (PopupRegister — dropdown + icon /images/bank/{CODE}.png) -->
2048            <div id="mr-step-4" class="step">
2049              <div id="mr-is-bank-account" class="is-bank-account">
2050                <label class="mr-bank-label">โปรดเลือกธนาคารของคุณ</label>
2051                <div class="dropdown" id="mr-bank-dropdown">
2052                  <div class="dropdown-selected is-placeholder" id="mr-bank-dropdown-selected">โปรดเลือกรายการบัญชีธนาคาร</div>
2053                  <div class="dropdown-options" id="mr-bank-dropdown-options"></div>
2054                </div>
2055                <input class="bank-input hidden" type="text" id="mr-true-wallet"
2056                  placeholder="กรุณากรอกชื่อบัญชี" />
2057                <div id="mr-wallet-error" class="error"></div>
2058                <label class="mr-bank-label" for="mr-account-number">เลขบัญชีธนาคาร</label>
2059                <input class="bank-input" type="tel" id="mr-account-number"
2060                  placeholder="กรอกเลขบัญชีธนาคาร" maxlength="20" minlength="6" />
2061                <div id="mr-account-error" class="error"></div>
2062              </div>
2063              <div id="mr-aff-wrap">
2064                <label class="mr-bank-label">รู้จักเราจากช่องทางไหน</label>
2065                <div class="dropdown" id="mr-dropdown">
2066                  <div class="dropdown-selected is-placeholder" id="mr-dropdown-selected">เลือกช่องทาง</div>
2067                  <div class="dropdown-options" id="mr-dropdown-options"></div>
2068                </div>
2069                <input type="hidden" id="mr-selected-value" value="" />
2070              </div>
2071              <div class="bonus-container">
2072                <div class="d-flex align-items-center">
2073                  <div class="radio-buttons">
2074                    <label class="radio-button">
2075                      <input type="radio" name="mr-promotion" value="1" id="mr-bonus" />
2076                      <div class="radio-circle"></div>
2077                      <span class="radio-label">รับโบนัส</span>
2078                    </label>
2079                    <label class="radio-button">
2080                      <input type="radio" name="mr-promotion" value="0" id="mr-no-bonus" checked />
2081                      <div class="radio-circle"></div>
2082                      <span class="radio-label">ไม่รับโบนัส</span>
2083                    </label>
2084                  </div>
2085                </div>
2086              </div>
2087              <div class="mt-4 d-flex justify-content-center">
2088                <button id="mr-back-to-step-3" class="btn btn-back me-2">ย้อนกลับ</button>
2089                <button id="mr-submit-button" class="btn btn-primary px-4" disabled
2090                  onclick="window._mrConfirmRegister()">ยืนยันการสมัคร</button>
2091              </div>
2092              <div class="problem-link">
2093                <p>พบปัญหา</p>
2094                <a href="https://cutt.ly/wcpg77" class="cursor-pointer"><span>ติดต่อฝ่ายบริการลูกค้า</span></a>
2095              </div>
2096            </div>
2097
2098          </div><!-- /.form -->
2099        </div><!-- /.from-register -->
2100      </div><!-- /.modal-body -->
2101    </div><!-- /.modal-content -->
2102  </div><!-- /.modal-dialog -->
2103</div><!-- /#modal-register -->
2104
2105<!-- TEMP: ปิด modal เงื่อนไขการสมัครชั่วคราว
2106<div class="modal fade" id="mr-modal-rules" tabindex="-1" role="dialog" data-bs-backdrop="static" data-backdrop="static">
2107  <div class="modal-dialog modal-dialog-centered modal-dialog-scrollable" role="document">
2108    <div class="modal-content">
2109      <div class="modal-header">
2110        <h5 class="modal-title">เงื่อนไขการสมัครสมาชิก</h5>
2111        <i class="far fa-times-circle" style="cursor:pointer;" id="mr-rules-close"></i>
2112      </div>
2113      <div class="modal-body" id="mr-rule-body"></div>
2114    </div>
2115  </div>
2116</div>
2117-->
2118
2119<!-- Modal: สมัครสำเร็จ -->
2120<div class="modal fade" id="mr-modal-success" tabindex="-1" role="dialog" data-bs-backdrop="static" data-backdrop="static">
2121  <div class="modal-dialog modal-dialog-centered modal-dialog-scrollable" role="document">
2122    <div class="modal-content">
2123      <div class="modal-header justify-content-end">
2124        <i class="far fa-times-circle" style="cursor:pointer;" id="mr-success-close"></i>
2125      </div>
2126      <div class="modal-body text-center">
2127        <svg width="80" height="80" viewBox="0 0 80 80" fill="none" xmlns="http://www.w3.org/2000/svg">
2128          <g clip-path="url(#mr-clip0)">
2129            <path d="M40 0C17.9449 0 0 17.9449 0 40C0 62.0551 17.9449 80 40 80C62.0551 80 80 62.0551 80 40C80 17.9449 62.0551 0 40 0ZM62.3559 29.4737L36.792 54.8371C35.2882 56.3409 32.8822 56.4411 31.2782 54.9373L17.7444 42.6065C16.1404 41.1028 16.0401 38.5965 17.4436 36.9925C18.9474 35.3885 21.4536 35.2882 23.0576 36.792L33.7845 46.6165L56.6416 23.7594C58.2456 22.1554 60.7519 22.1554 62.3559 23.7594C63.9599 25.3634 63.9599 27.8697 62.3559 29.4737Z" fill="#30B972" />
2130          </g>
2131          <defs>
2132            <clipPath id="mr-clip0">
2133              <rect width="80" height="80" fill="white" />
2134            </clipPath>
2135          </defs>
2136        </svg>
2137        <p class="text-register-success">สมัครสมาชิกเรียบร้อย</p>
2138        <button class="btn-login" id="mr-success-btn" style="width:60%;">
2139          <span class="btn-text-one">ตกลง</span>
2140        </button>
2141      </div>
2142    </div>
2143  </div>
2144</div>
2145
2146<!-- ============================================================
2147     MODAL REGISTER — JAVASCRIPT (Self-Contained IIFE)
2148     ============================================================ -->
2149<script type="rocketlazyloadscript">
2150  (function() {
2151    /* =====================================================
2152       CONFIG — แก้ตรงนี้เพื่อย้าย project
2153       หรือ set window.ModalRegisterConfig ก่อน include
2154       ===================================================== */
2155    var CFG = {
2156      urlApi: "https:\/\/pgslot77.pglst.com",
2157      siteUrl: "https:\/\/pgslot77.art\/",
2158      jwtSecret: 'ABAsercretPayload'
2159    };
2160    if (window.ModalRegisterConfig) {
2161      Object.assign(CFG, window.ModalRegisterConfig);
2162    }
2163    if (!CFG.bankImgBase && CFG.urlApi) {
2164      CFG.bankImgBase = String(CFG.urlApi).replace(/\/$/, '') + '/images/bank/';
2165    }
2166    if (!CFG.affImgBase && CFG.urlApi) {
2167      CFG.affImgBase = String(CFG.urlApi).replace(/\/$/, '') + '/images/iconAff/';
2168    }
2169
2170    /* ===== STATE ===== */
2171    var state = {
2172      currentStep: 1,
2173      otpTimer: null,
2174      otpSeconds: 120,
2175      walletTouched: false,
2176      bankTouched: false,
2177      banklist: [],
2178      prefixRegister: {
2179        type_register: '',
2180        bank_account: '',
2181        otp: '',
2182        true_wallet: '',
2183        disable: '',
2184        description: '',
2185        not_checkbank: ''
2186      },
2187      registerData: {
2188        phone_number: '',
2189        password: '',
2190        affiliate: '',
2191        ref_join: '',
2192        clickid: '',
2193        bank_code: '',
2194        bank_type: '',
2195        bank_number: '',
2196        bank_name: '',
2197        register_type: ''
2198      }
2199    };
2200
2201    /* ===== JWT sign (PopupRegister → $jwt.sign payload, secret) ===== */
2202    function toBase64Url(input) {
2203      var bytes = typeof input === 'string' ?
2204        new TextEncoder().encode(input) :
2205        new Uint8Array(input);
2206      var binary = '';
2207      for (var i = 0; i < bytes.length; i++) binary += String.fromCharCode(bytes[i]);
2208      return btoa(binary).replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, '');
2209    }
2210
2211    async function signJwt(payload, secret) {
2212      var header = {
2213        alg: 'HS256',
2214        typ: 'JWT'
2215      };
2216      var encodedHeader = toBase64Url(JSON.stringify(header));
2217      var encodedPayload = toBase64Url(JSON.stringify(payload));
2218      var signingInput = encodedHeader + '.' + encodedPayload;
2219      var key = await crypto.subtle.importKey(
2220        'raw',
2221        new TextEncoder().encode(secret), {
2222          name: 'HMAC',
2223          hash: 'SHA-256'
2224        },
2225        false,
2226        ['sign']
2227      );
2228      var signature = await crypto.subtle.sign('HMAC', key, new TextEncoder().encode(signingInput));
2229      return signingInput + '.' + toBase64Url(signature);
2230    }
2231
2232    /* ===== STATIC BANK DATA (RegisterData.vue databank — ไม่เรียก API) ===== */
2233    var DATA_BANK = {
2234      KBANK: 'กสิกรไทย จำกัด (มหาชน)',
2235      SCB: 'ไทยพาณิชย์ จำกัด (มหาชน)',
2236      KTB: 'กรุงไทย จำกัด (มหาชน)',
2237      BAY: 'กรุงศรีอยุธยา จำกัด (มหาชน)',
2238      GSB: 'ออมสิน',
2239      UOB: 'ยูโอบี จำกัด (มหาชน)',
2240      BBL: 'กรุงเทพ จำกัด (มหาชน)',
2241      CI: 'ซิตี้แบ้งค์',
2242      LNH: 'แลนด์ แอนด์ เฮ้าส์',
2243      BAAC: 'ธนาคารเพื่อการเกษตรและสหกรณ์การเกษตร',
2244      OSK: 'อาคารสงเคราะห์',
2245      KKP: 'เกียรตินาคิน จำกัด (มหาชน)',
2246      JPK: 'เจพีมอร์แกน เชส สาขากรุงเทพฯ',
2247      CIMB: 'ซีไอเอ็มบี ไทย จำกัด (มหาชน)',
2248      ZTM: 'ซูมิโตโม มิตซุย แบงกิ้ง คอร์ปอเรชั่น',
2249      DOIB: 'ดอยซ์แบงค์',
2250      TISGO: 'ทิสโก้ จำกัด (มหาชน)',
2251      TCREDIT: 'ไทยเครดิต เพื่อรายย่อย',
2252      BNP: 'ธนาคารบีเอ็นพี พารีบาส์ สาขากรุงเทพฯ',
2253      MSU: 'มิซูโฮ คอร์ปอเรต จำกัด สาขากรุงเทพฯ',
2254      MEGA: 'เมกะ สากลพาณิชย์',
2255      SNT: 'สแตนดาร์ดชาร์เตอร์ด (ไทย)',
2256      CN: 'ธนาคารแห่งประเทศจีน (ไทย)',
2257      USA: 'แห่งอเมริกาฯ',
2258      ASL: 'ธนาคารอิสลามแห่งประเทศไทย',
2259      IZBS: 'ไอซีบีซี (ไทย)',
2260      TTB: 'ธนาคารทหารไทยธนชาต'
2261    };
2262
2263    /* bank_type สำหรับส่ง register — จาก PopupRegister myJson.bankType */
2264    var BANK_TYPE = {
2265      TRUEWALLET: 'ทรู วอลเล็ท',
2266      SCB: 'ไทยพาณิชย์',
2267      KBANK: 'กสิกรไทย',
2268      BBL: 'กรุงเทพ',
2269      KTB: 'กรุงไทย',
2270      BAY: 'กรุงศรีอยุธยา',
2271      KKP: 'เกียรตินาคิน',
2272      JPK: 'เจพีมอร์แกนเชส',
2273      CI: 'ซิตี้แบ้งค์',
2274      CIMB: 'ซีไอเอ็มบี',
2275      ZTM: 'ซูมิโตโมมิตซุย',
2276      DOIB: 'ดอยซ์แบงค์',
2277      TISGO: 'ทิสโก้',
2278      TCREDIT: 'ไทยเครดิต',
2279      BNP: 'ธนาคารบีเอ็นพี',
2280      BAAC: 'ธนาคารเพื่อการเกษตรและสหกรณ์การเกษตร',
2281      MSU: 'มิซูโฮ',
2282      MEGA: 'เมกะ',
2283      UOB: 'ยูโอบี',
2284      LNH: 'แลนด์แอนด์ เฮ้าส์',
2285      SNT: 'สแตนดาร์ดชาร์เตอร์ด',
2286      CN: 'ธนาคารแห่งประเทศจีน',
2287      USA: 'แห่งอเมริกาฯ',
2288      GSB: 'ออมสิน',
2289      OSK: 'อาคารสงเคราะห์',
2290      ASL: 'อิสลามแห่งประเทศไทย',
2291      IZBS: 'ไอซีบีซี',
2292      TTB: 'ธนาคารทหารไทยธนชาต'
2293    };
2294
2295    var TRUEWALLET_BANK = {
2296      TRUEWALLET: 'ทรูมันนี่ วอลเล็ท (TRUEWALLET)'
2297    };
2298
2299    /* AllAffData.aff — จาก PopupRegister / myJson.json */
2300    var AFF_DATA = [{
2301        text: 'YOUTUBE',
2302        value: 'YOUTUBE',
2303        icon: 'youtube.png'
2304      },
2305      {
2306        text: 'TIKTOK',
2307        value: 'TIKTOK',
2308        icon: 'tiktok.png'
2309      },
2310      {
2311        text: 'เพื่อนแนะนำมา',
2312        value: 'AFF',
2313        icon: 'talk.png'
2314      },
2315      {
2316        text: 'ป้ายโฆษณาตามเว็บ',
2317        value: 'ADVERTISEMENT',
2318        icon: 'billboard.png'
2319      },
2320      {
2321        text: 'FACEBOOK',
2322        value: 'FACEBOOK',
2323        icon: 'facebook.png'
2324      },
2325      {
2326        text: 'GOOGLE',
2327        value: 'GOOGLE',
2328        icon: 'search.png'
2329      }
2330    ];
2331
2332    /* ===== ICON HELPERS ===== */
2333    var ICON_EYE_OPEN = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" class="eye-icon"><path d="M12 15a3 3 0 100-6 3 3 0 000 6z"/><path fill-rule="evenodd" d="M1.323 11.447C2.811 6.976 7.028 3.75 12.001 3.75c4.97 0 9.185 3.223 10.675 7.69.12.362.12.752 0 1.113-1.487 4.471-5.705 7.697-10.677 7.697-4.97 0-9.186-3.223-10.675-7.69a1.762 1.762 0 010-1.113zM17.25 12a5.25 5.25 0 11-10.5 0 5.25 5.25 0 0110.5 0z" clip-rule="evenodd"/></svg>';
2334    var ICON_EYE_CLOSED = '<svg width="24" height="19" viewBox="0 0 24 19" fill="currentColor" class="eye-icon" xmlns="http://www.w3.org/2000/svg"><path d="M19.5254 0.966275C19.2322 0.673025 18.7582 0.673025 18.4649 0.966275L16.3919 3.03928C15.0802 2.51128 13.6154 2.17078 11.9999 2.17078C4.80066 2.17078 0.303663 9.15553 0.116163 9.45328C0.00516307 9.62953 -0.0233369 9.83428 0.0201631 10.0225C-0.0158369 10.201 0.00741308 10.3923 0.110163 10.5603C0.214413 10.7313 1.70166 13.102 4.34166 15.091L2.59941 16.8325C2.30616 17.1258 2.30616 17.5998 2.59941 17.893C2.74566 18.0393 2.93766 18.1128 3.12966 18.1128C3.32166 18.1128 3.51366 18.0393 3.65991 17.893L19.5254 2.02678C19.8179 1.73428 19.8179 1.25953 19.5254 0.966275ZM7.67991 9.95578C7.67991 7.57378 9.61791 5.63578 11.9999 5.63578C12.5339 5.63578 13.0439 5.73628 13.5157 5.91478L12.2699 7.16053C12.1799 7.15078 12.0922 7.13578 11.9999 7.13578C10.4452 7.13578 9.17991 8.40103 9.17991 9.95578C9.17991 10.048 9.19566 10.1358 9.20466 10.2258L7.95891 11.4715C7.78041 11.0005 7.67991 10.4898 7.67991 9.95578ZM23.8837 10.5468C23.6962 10.8438 19.1992 17.8293 11.9999 17.8293C10.1204 17.8293 8.44041 17.3725 6.97416 16.6915L9.92391 13.741C10.5404 14.0808 11.2484 14.275 12.0007 14.275C14.3827 14.275 16.3207 12.337 16.3207 9.95502C16.3207 9.20278 16.1264 8.49553 15.7867 7.87827L19.1392 4.52578C22.1047 6.57928 23.7802 9.25753 23.8904 9.43903C23.9932 9.60703 24.0164 9.79827 23.9804 9.97678C24.0232 10.1665 23.9954 10.3705 23.8837 10.5468ZM11.0624 12.6033L14.6474 9.01903C14.7524 9.31378 14.8199 9.62653 14.8199 9.95653C14.8199 11.5113 13.5547 12.7765 11.9999 12.7765C11.6699 12.7758 11.3572 12.7083 11.0624 12.6033Z" fill="white"/></svg>';
2335
2336    var STEP_ICONS = [
2337      '<svg width="23" height="23" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M9.66665 9.33333C9.66665 5.84133 12.508 3 16 3C19.492 3 22.3333 5.84133 22.3333 9.33333C22.3333 12.8253 19.492 15.6667 16 15.6667C12.508 15.6667 9.66665 12.8253 9.66665 9.33333ZM20 17.6667H12C7.77331 17.6667 4.33331 21.1067 4.33331 25.3333C4.33331 27.356 5.97731 29 7.99998 29H24C26.0226 29 27.6666 27.356 27.6666 25.3333C27.6666 21.1067 24.2266 17.6667 20 17.6667Z" fill="currentColor"/></svg>',
2338      '<svg width="23" height="23" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M24.4706 13.1765V9.41175C24.4706 4.70587 20.7059 0.941162 16 0.941162C11.2941 0.941162 7.5294 4.70587 7.5294 9.41175V13.1765C5.9294 13.1765 4.70587 14.4 4.70587 16V28.2353C4.70587 29.7412 5.9294 31.0588 7.5294 31.0588H24.4706C26.0706 31.0588 27.2941 29.7412 27.2941 28.2353V16C27.2941 14.4 26.0706 13.1765 24.4706 13.1765ZM9.41175 9.41175C9.41175 5.74116 12.3294 2.82352 16 2.82352C19.6706 2.82352 22.5882 5.74116 22.5882 9.41175V13.1765H9.41175V9.41175ZM16.9412 23.3412V25.4118C16.9412 25.9765 16.5647 26.3529 16 26.3529C15.4353 26.3529 15.0588 25.9765 15.0588 25.4118V23.3412C13.9294 22.9647 13.1765 21.9294 13.1765 20.7059C13.1765 19.1059 14.4 17.8823 16 17.8823C1
23387.6 17.8823 18.8235 19.1059 18.8235 20.7059C18.8235 21.9294 18.0706 22.9647 16.9412 23.3412Z" fill="currentColor"/></svg>',
2339      '<svg width="23" height="23" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(#mr-bank-icon)"><path d="M24.7766 16.7715H28.5264V25.75H24.7766V16.7715Z" fill="currentColor"/><path d="M17.6755 16.7715H21.4255V25.75H17.6755V16.7715Z" fill="currentColor"/><path d="M10.5745 16.7715H14.3245V25.75H10.5745V16.7715Z" fill="currentColor"/><path d="M3.47363 16.7715H7.22339V25.75H3.47363V16.7715Z" fill="currentColor"/><path d="M29.7766 13.959V13.0215H2.22363V13.959C2.22363 14.4768 2.64331 14.8965 3.16113 14.8965H28.8391C29.3567 14.8965 29.7766 14.4768 29.7766 13.959Z" fill="currentColor"/><path d="M31.062 27.625H0.938476C0.420654 27.625 0.000976562 28.0447 0.000976562 28.5625V31.0625C0.000976562 31.5803 0.420654 32 0.938476 32H31.062C31.5798 32 31.9995 31.5803 31.9995 31.0625V28.5625C31.9995 28.0447 31.5798 27.625 31.062 27.625Z" fill="currentColor"/><path d="M0.937538 11.1465H31.0625C31.482 11.1465 31.8504 10.8679 31.9646 10.4643C32.0786 10.0608 31.9112 9.63037 31.554 9.41064L16.4915 0.13916C16.1902-0.0463867 15.8101-0.0463867 15.5086 0.13916L0.446083 9.41064C0.0889055 9.63061-0.0785748 10.0608 0.0356829 10.4643C0.149941 10.8679 0.518349 11.1465 0.937538 11.1465ZM15.3628 5.51416H16.6375C17.1553 5.51416 17.575 5.93383 17.575 6.45166C17.575 6.96948 17.1553 7.38916 16.6375 7.38916H15.3628C14.845 7.38916 14.4253 6.96948 14.4253 6.45166C14.4253 5.93383 14.845 5.51416 15.3628 5.51416Z" fill="currentColor"/></g><defs><clipPath id="mr-bank-icon"><rect width="32" height="32" fill="white"/></clipPath></defs></svg>'
2340    ];
2341    var ICON_CHECK = '<svg width="24" height="24" fill="currentColor"><path d="M20 6L9 17L4 12" stroke="currentColor" stroke-width="3" fill="none"/></svg>';
2342
2343    /* ===== BOOTSTRAP MODAL HELPERS ===== */
2344    function bsShow(id) {
2345      var target = document.getElementById(id);
2346      if (!target) return;
2347      if (window.bootstrap && bootstrap.Modal && bootstrap.Modal.getOrCreateInstance) {
2348        bootstrap.Modal.getOrCreateInstance(target).show();
2349      } else if (window.$ && $.fn.modal) {
2350        $(target).modal('show');
2351      } else {
2352        target.style.display = 'block';
2353        target.classList.add('show');
2354        document.body.classList.add('modal-open');
2355        if (!document.getElementById(id + '-bd')) {
2356          var bd = document.createElement('div');
2357          bd.id = id + '-bd';
2358          bd.className = 'modal-backdrop fade show';
2359          document.body.appendChild(bd);
2360        }
2361      }
2362    }
2363
2364    function bsHide(id) {
2365      var target = document.getElementById(id);
2366      if (!target) return;
2367      if (window.bootstrap && bootstrap.Modal && bootstrap.Modal.getInstance) {
2368        var inst = bootstrap.Modal.getInstance(target);
2369        if (inst) inst.hide();
2370      } else if (window.$ && $.fn.modal) {
2371        $(target).modal('hide');
2372      } else {
2373        target.style.display = 'none';
2374        target.classList.remove('show');
2375        var bd = document.getElementById(id + '-bd');
2376        if (bd) bd.remove();
2377        var anyOpen = document.querySelector('.modal.show');
2378        if (!anyOpen) document.body.classList.remove('modal-open');
2379      }
2380    }
2381
2382    /* ===== DOM REFS ===== */
2383    function el(id) {
2384      return document.getElementById(id);
2385    }
2386    var overlay = el('modal-register');
2387    var phoneInput = el('mr-phone');
2388    var phoneError = el('mr-phone-error');
2389    // TEMP: ปิดยอมรับเงื่อนไขชั่วคราว
2390    // var termsChk = el('mr-terms');
2391    var nextBtn = el('mr-next-button');
2392    var otpInputs = document.querySelectorAll('#mr-otp-inputs input');
2393    var otpDisplay = el('mr-otp-phone-display');
2394    var otpValidBtn = el('mr-otp-validate-button');
2395    var otpBackBtn = el('mr-otp-back-button');
2396    var countdown = el('mr-countdown-text');
2397    var pwdInput = el('mr-password');
2398    var cfmPwdInput = el('mr-confirm-password');
2399    var pwdError = el('mr-password-error');
2400    var pwdErrorCfm = el('mr-password-error-confirm');
2401    var nextStep3Btn = el('mr-next-step-3');
2402    var backStep2Btn = el('mr-back-to-step-2');
2403    var backStep3Btn = el('mr-back-to-step-3');
2404    var bankDropdown = el('mr-bank-dropdown');
2405    var bankDropSelected = el('mr-bank-dropdown-selected');
2406    var bankDropOptions = el('mr-bank-dropdown-options');
2407    var bankNumInput = el('mr-account-number');
2408    var trueWallet = el('mr-true-wallet');
2409    var submitBtn = el('mr-submit-button');
2410    var accountError = el('mr-account-error');
2411    var walletError = el('mr-wallet-error');
2412    var dropdown = el('mr-dropdown');
2413    var dropSelected = el('mr-dropdown-selected');
2414    var dropOptions = el('mr-dropdown-options');
2415    var referrerInput = el('mr-selected-value');
2416    var progressBar = el('mr-progress-bar');
2417    var stepItems = [el('mr-step-item-1'), el('mr-step-item-2'), el('mr-step-item-3')];
2418
2419    /* ===== PROGRESS / STEPS ===== */
2420    function updateSteps() {
2421      var total = stepItems.length;
2422      stepItems.forEach(function(item, i) {
2423        var circle = item.querySelector('.circle');
2424        var icon = circle.querySelector('.icon');
2425        item.classList.remove('active-progress', 'done');
2426        if (i + 1 < state.currentStep) {
2427          item.classList.add('done');
2428          icon.innerHTML = ICON_CHECK;
2429        } else {
2430          if (i + 1 === state.currentStep) item.classList.add('active-progress');
2431          if (STEP_ICONS[i]) icon.innerHTML = STEP_ICONS[i];
2432        }
2433      });
2434      progressBar.style.width = (((state.currentStep - 1) / (total - 1)) * 100) + '%';
2435    }
2436
2437    function nextStep() {
2438      if (state.currentStep < stepItems.length) {
2439        state.currentStep++;
2440        updateSteps();
2441      }
2442    }
2443
2444    function prevStep() {
2445      if (state.currentStep > 1) {
2446        state.currentStep--;
2447        updateSteps();
2448      }
2449    }
2450
2451    /* ===== PHONE VALIDATION ===== */
2452    function validatePhone(phone) {
2453      return /^(0[689])\d*$/.test(phone);
2454    }
2455
2456    function updateButtonState() {
2457      // TEMP: ไม่ตรวจ termsChk.checked
2458      var valid = validatePhone(phoneInput.value) && phoneInput.value.length === 10;
2459      if (phoneInput.value === '') phoneError.textContent = 'กรุณากรอกเบอร์โทรศัพท์';
2460      else if (!validatePhone(phoneInput.value)) phoneError.textContent = 'เบอร์โทรต้องขึ้นต้นด้วย 0 ต่อด้วย 6 หรือ 8 หรือ 9';
2461      else phoneError.textContent = '';
2462      nextBtn.disabled = !valid;
2463    }
2464
2465    phoneInput.addEventListener('input', function() {
2466      this.value = this.value.replace(/\D/g, '');
2467      updateButtonState();
2468    });
2469    // TEMP: termsChk.addEventListener('change', updateButtonState);
2470
2471    /* ===== STEP 1 NEXT ===== */
2472    nextBtn.addEventListener('click', function() {
2473      state.registerData.phone_number = phoneInput.value.trim();
2474      var otp = state.prefixRegister.otp;
2475      if (otp === 'allow' || otp === 'main') {
2476        showStep(1, 3);
2477        nextStep();
2478      } else {
2479        getOtp(phoneInput.value);
2480      }
2481    });
2482
2483    /* ===== OTP ===== */
2484    function showStep(from, to) {
2485      el('mr-step-' + from).classList.remove('active');
2486      el('mr-step-' + to).classList.add('active');
2487    }
2488
2489    function goToStep2() {
2490      showStep(1, 2);
2491      var phone = state.registerData.phone_number || '*******xxxx';
2492      otpDisplay.textContent = phone.slice(0, -4).replace(/\d/g, '*') + phone.slice(-4);
2493      resetOtpInputs();
2494      startOtpCountdown();
2495    }
2496
2497    function returnToStep1() {
2498      showStep(2, 1);
2499      phoneInput.value = '';
2500      nextBtn.disabled = true;
2501    }
2502
2503    otpInputs.forEach(function(input, i) {
2504      input.addEventListener('input', function(e) {
2505        e.target.value = e.target.value.replace(/\D/g, '');
2506        if (e.target.value.length === 1 && i < otpInputs.length - 1) otpInputs[i + 1].focus();
2507        checkOtpComplete();
2508      });
2509      input.addEventListener('keydown', function(e) {
2510        if (e.key === 'Backspace' && !e.target.value && i > 0) otpInputs[i - 1].focus();
2511      });
2512      input.addEventListener('paste', function(e) {
2513        e.preventDefault();
2514        var pasted = e.clipboardData.getData('text').replace(/\D/g, '');
2515        pasted.split('').forEach(function(c, j) {
2516          if (otpInputs[i + j]) otpInputs[i + j].value = c;
2517        });
2518        var last = Math.min(i + pasted.length, otpInputs.length) - 1;
2519        otpInputs[last].focus();
2520        checkOtpComplete();
2521      });
2522    });
2523
2524    function checkOtpComplete() {
2525      var code = Array.from(otpInputs).map(function(x) {
2526        return x.value;
2527      }).join('');
2528      otpValidBtn.disabled = code.length !== 6;
2529    }
2530
2531    function resetOtpInputs() {
2532      otpInputs.forEach(function(x) {
2533        x.value = '';
2534      });
2535      otpInputs[0].focus();
2536      otpValidBtn.disabled = true;
2537    }
2538
2539    function startOtpCountdown() {
2540      clearInterval(state.otpTimer);
2541      state.otpSeconds = 120;
2542      updateCountdownText();
2543      state.otpTimer = setInterval(function() {
2544        state.otpSeconds--;
2545        updateCountdownText();
2546        if (state.otpSeconds <= 0) {
2547          clearInterval(state.otpTimer);
2548          returnToStep1();
2549        }
2550      }, 1000);
2551    }
2552
2553    function updateCountdownText() {
2554      countdown.textContent = 'เวลาที่เหลือ: ' + state.otpSeconds + ' วินาที';
2555    }
2556
2557    otpValidBtn.addEventListener('click', function() {
2558      var code = Array.from(otpInputs).map(function(x) {
2559        return x.value;
2560      }).join('');
2561      verifyOtp(phoneInput.value, code);
2562    });
2563
2564    otpBackBtn.addEventListener('click', function() {
2565      clearInterval(state.otpTimer);
2566      returnToStep1();
2567      nextBtn.disabled = true;
2568    });
2569
2570    /* ===== PASSWORD ===== */
2571    function togglePassword(inputEl, iconEl) {
2572      var type = inputEl.getAttribute('type') === 'password' ? 'text' : 'password';
2573      inputEl.setAttribute('type', type);
2574      iconEl.innerHTML = type === 'text' ? ICON_EYE_OPEN : ICON_EYE_CLOSED;
2575    }
2576
2577    el('mr-toggle-password').addEventListener('click', function() {
2578      togglePassword(pwdInput, el('mr-icon-password'));
2579    });
2580    el('mr-toggle-confirm-password').addEventListener('click', function() {
2581      togglePassword(cfmPwdInput, el('mr-icon-confirm-password'));
2582    });
2583
2584    function validatePasswords() {
2585      var pwd = pwdInput.value,
2586        cfm = cfmPwdInput.value;
2587      var onlyAlNum = /^[A-Za-z0-9]+$/.test(pwd);
2588      var longEnough = pwd.length > 5;
2589      var valid = pwd && cfm && pwd === cfm && onlyAlNum && longEnough;
2590
2591      if (!pwd && !cfm) pwdError.textContent = 'กรุณากรอกรหัสผ่าน';
2592      else if (pwd !== cfm && pwd && cfm) {
2593        pwdErrorCfm.textContent = 'รหัสผ่านไม่ตรงกัน';
2594        pwdError.textContent = '';
2595      } else if (!longEnough) {
2596        pwdError.textContent = 'รหัสผ่านต้องมีความยาวอย่างน้อย 6 ตัวอักษร';
2597        pwdErrorCfm.textContent = '';
2598      } else if (!onlyAlNum) {
2599        pwdError.textContent = 'รหัสผ่านต้องมีตัวอักษรภาษาอังกฤษหรือตัวเลขเท่านั้น';
2600        pwdErrorCfm.textContent = '';
2601      } else {
2602        pwdError.textContent = '';
2603        pwdErrorCfm.textContent = '';
2604      }
2605
2606      nextStep3Btn.disabled = !valid;
2607    }
2608
2609    pwdInput.addEventListener('input', validatePasswords);
2610    cfmPwdInput.addEventListener('input', validatePasswords);
2611
2612    nextStep3Btn.addEventListener('click', function() {
2613      state.registerData.password = pwdInput.value;
2614      showStep(3, 4);
2615      nextStep();
2616      loadBankList();
2617    });
2618
2619    backStep2Btn.addEventListener('click', function() {
2620      showStep(3, 1);
2621      prevStep();
2622    });
2623
2624    /* ===== BANK VALIDATION ===== */
2625    bankNumInput.addEventListener('input', function() {
2626      state.bankTouched = true;
2627      bankNumInput.value = bankNumInput.value.replace(/\D/g, '');
2628      checkSubmitButton();
2629    });
2630
2631    trueWallet.addEventListener('input', function() {
2632      state.walletTouched = true;
2633      trueWallet.value = trueWallet.value.replace(/[^ก-๙A-Za-z\s]/g, '');
2634      checkSubmitButton();
2635    });
2636
2637    function validateBankName(name) {
2638      if (!name) name = '';
2639      var isValid = /^[ก-๙A-Za-z\s]+$/.test(name);
2640      if (state.walletTouched && name === '') walletError.textContent = 'กรุณากรอกชื่อบัญชี';
2641      else if (state.walletTouched && !isValid) walletError.textContent = 'อนุญาตเฉพาะตัวอักษรไทยหรืออังกฤษเท่านั้น';
2642      else walletError.textContent = '';
2643      return isValid;
2644    }
2645
2646    function validateBankNumber(number) {
2647      if (!number) number = '';
2648      var onlyNum = /^\d+$/.test(number);
2649      var lenOk = number.length >= 10 && number.length <= 20;
2650      if (state.bankTouched && number === '') accountError.textContent = 'กรุณากรอกเลขบัญชีธนาคาร';
2651      else if (state.bankTouched && !onlyNum) accountError.textContent = 'เลขบัญชีต้องเป็นตัวเลขเท่านั้น';
2652      else if (state.bankTouched && !lenOk) accountError.textContent = 'เลขบัญชีควรมี 10 ถึง 20 หลัก';
2653      else accountError.textContent = '';
2654      return onlyNum && lenOk;
2655    }
2656
2657    function checkSubmitButton() {
2658      var walletName = trueWallet.value.trim();
2659      var accountNum = bankNumInput.value.trim();
2660      var isTrue = state.registerData.bank_code === 'TRUEWALLET';
2661      var bnValid = !isTrue || validateBankName(walletName);
2662      var numValid = validateBankNumber(accountNum);
2663      submitBtn.disabled = !(state.registerData.bank_code && numValid && bnValid);
2664    }
2665
2666    function getBankImgUrl(code) {
2667      if (!CFG.bankImgBase || !code) return '';
2668      return String(CFG.bankImgBase).replace(/\/?$/, '/') + code + '.png';
2669    }
2670
2671    function updateBankSelectedDisplay(bank) {
2672      if (!bankDropSelected) return;
2673      if (!bank) {
2674        bankDropSelected.classList.add('is-placeholder');
2675        bankDropSelected.textContent = 'โปรดเลือกรายการบัญชีธนาคาร';
2676        return;
2677      }
2678      bankDropSelected.classList.remove('is-placeholder');
2679      var imgUrl = getBankImgUrl(bank.bank_code);
2680      var imgHtml = imgUrl ?
2681        '<img src="' + imgUrl + '" alt="' + bank.bank_code + '" class="mr-bank-option-icon" onerror="this.style.display=\'none\'">' :
2682        '';
2683      bankDropSelected.innerHTML = imgHtml + '<span>' + bank.full_name + '</span>';
2684    }
2685
2686    function selectBank(bank) {
2687      if (!bank) return;
2688      state.registerData.bank_code = bank.bank_code;
2689      state.registerData.bank_type = bank.bank_type;
2690      updateBankSelectedDisplay(bank);
2691      trueWallet.value = '';
2692      bankNumInput.value = '';
2693      accountError.textContent = '';
2694      walletError.textContent = '';
2695      state.bankTouched = false;
2696      state.walletTouched = false;
2697      if (bank.bank_code === 'TRUEWALLET' || state.prefixRegister.not_checkbank) {
2698        trueWallet.classList.remove('hidden');
2699        trueWallet.classList.add('show');
2700      } else {
2701        trueWallet.classList.add('hidden');
2702        trueWallet.classList.remove('show');
2703      }
2704      checkSubmitButton();
2705    }
2706
2707    bankDropSelected.addEventListener('click', function() {
2708      if (bankDropdown) bankDropdown.classList.toggle('open');
2709    });
2710
2711    backStep3Btn.addEventListener('click', function() {
2712      showStep(4, 3);
2713      pwdInput.value = '';
2714      cfmPwdInput.value = '';
2715      nextStep3Btn.disabled = true;
2716      prevStep();
2717    });
2718
2719    /* ===== DROPDOWN ===== */
2720    dropSelected.addEventListener('click', function() {
2721      dropdown.classList.toggle('open');
2722    });
2723    document.addEventListener('click', function(e) {
2724      if (dropdown && !dropdown.contains(e.target)) dropdown.classList.remove('open');
2725      if (bankDropdown && !bankDropdown.contains(e.target)) bankDropdown.classList.remove('open');
2726    });
2727
2728    /* ===== API CALLS ===== */
2729    async function fetchPrefix() {
2730      if (!window._prefixPromise) {
2731        window._prefixPromise = fetch(CFG.urlApi + '/api/prefix')
2732          .then(function(res) {
2733            return res.json();
2734          })
2735          .catch(function() {
2736            window._prefixPromise = null;
2737            return null;
2738          });
2739      }
2740      return window._prefixPromise;
2741    }
2742
2743    async function getOtp(phone) {
2744      nextBtn.disabled = true;
2745      try {
2746        var jwtPayload = {
2747          Phone_number: phone,
2748          iat: Math.floor(Date.now() / 1000)
2749        };
2750        var token = await signJwt(jwtPayload, CFG.jwtSecret);
2751        var res = await fetch(CFG.urlApi + '/api/verify_phone', {
2752          method: 'POST',
2753          headers: {
2754            'X-API-KEY': 'officex-homey-dev',
2755            Accept: 'application/json',
2756            'Content-Type': 'application/json'
2757          },
2758          body: JSON.stringify({
2759            token: token
2760          })
2761        });
2762        var data = await res.json();
2763        if (data.code === 0) {
2764          if (window.Swal) Swal.fire({
2765            toast: true,
2766            position: 'top-end',
2767            icon: 'success',
2768            title: data.msg,
2769            showConfirmButton: false,
2770            timer: 1500
2771          });
2772          if (data.payload && data.payload.active === 0) goToStep2();
2773          else {
2774            showStep(1, 3);
2775            nextStep();
2776          }
2777          nextBtn.disabled = false;
2778        } else {
2779          if (window.Swal) Swal.fire({
2780            toast: true,
2781            position: 'top-end',
2782            icon: 'error',
2783            title: data.msg || 'ดำเนินการไม่สำเร็จ',
2784            showConfirmButton: false,
2785            timer: 1500
2786          });
2787          nextBtn.disabled = false;
2788        }
2789      } catch (e) {
2790        nextBtn.disabled = false;
2791      }
2792    }
2793
2794    async function verifyOtp(phone, otp) {
2795      otpValidBtn.disabled = true;
2796      try {
2797        var jwtPayload = {
2798          phone_verify: phone,
2799          otp_verify: otp,
2800          iat: Math.floor(Date.now() / 1000)
2801        };
2802        var token = await signJwt(jwtPayload, CFG.jwtSecret);
2803        var res = await fetch(CFG.urlApi + '/api/verify_OTP', {
2804          method: 'POST',
2805          headers: {
2806            'X-API-KEY': 'officex-homey-dev',
2807            Accept: 'application/json',
2808            'Content-Type': 'application/json'
2809          },
2810          body: JSON.stringify({
2811            token: token
2812          })
2813        });
2814        var data = await res.json();
2815        if (data.code === 0) {
2816          if (window.Swal) Swal.fire({
2817            toast: true,
2818            position: 'top-end',
2819            icon: 'success',
2820            title: data.msg,
2821            showConfirmButton: false,
2822            timer: 1500
2823          });
2824          showStep(2, 3);
2825          nextStep();
2826          clearInterval(state.otpTimer);
2827          otpValidBtn.disabled = false;
2828        } else {
2829          if (window.Swal) Swal.fire({
2830            toast: true,
2831            position: 'top-end',
2832            icon: 'error',
2833            title: data.msg,
2834            showConfirmButton: false,
2835            timer: 1500
2836          });
2837          otpValidBtn.disabled = false;
2838        }
2839      } catch (e) {
2840        otpValidBtn.disabled = false;
2841      }
2842    }
2843
2844    function buildBankListFromJson() {
2845      var banks = Object.assign({}, DATA_BANK);
2846      if (state.prefixRegister.true_wallet) {
2847        Object.assign(banks, TRUEWALLET_BANK);
2848      }
2849      return Object.keys(banks).map(function(code) {
2850        return {
2851          bank_code: code,
2852          full_name: banks[code],
2853          bank_type: BANK_TYPE[code] || banks[code]
2854        };
2855      });
2856    }
2857
2858    function renderBankDropdown(bankData) {
2859      if (!bankDropOptions) return;
2860      var current = state.registerData.bank_code;
2861      bankDropOptions.innerHTML = '';
2862      var list = bankData.filter(function(item) {
2863        return item.bank_code !== 'PEER2PAY' && item.bank_code !== 'UMPAY';
2864      });
2865      state.banklist = list;
2866      list.forEach(function(bank) {
2867        var opt = document.createElement('div');
2868        opt.setAttribute('data-value', bank.bank_code);
2869        opt.setAttribute('role', 'option');
2870        opt.className = 'mr-bank-option';
2871        var imgUrl = getBankImgUrl(bank.bank_code);
2872        var imgHtml = imgUrl ?
2873          '<img src="' + imgUrl + '" alt="' + bank.bank_code + '" class="mr-bank-option-icon" onerror="this.style.display=\'none\'">' :
2874          '';
2875        opt.innerHTML = imgHtml + '<span>' + bank.full_name + '</span>';
2876        opt.addEventListener('click', function() {
2877          selectBank(bank);
2878          bankDropdown.classList.remove('open');
2879        });
2880        bankDropOptions.appendChild(opt);
2881      });
2882      if (current) {
2883        var selected = list.find(function(b) {
2884          return b.bank_code === current;
2885        });
2886        if (selected) updateBankSelectedDisplay(selected);
2887      }
2888    }
2889
2890    function loadBankList() {
2891      renderBankDropdown(buildBankListFromJson());
2892    }
2893
2894    function getAffIconUrl(icon) {
2895      if (!icon) return '';
2896      if (/^https?:\/\//.test(icon)) return icon;
2897      if (icon.charAt(0) === '/' && CFG.urlApi) {
2898        return String(CFG.urlApi).replace(/\/$/, '') + icon;
2899      }
2900      if (!CFG.affImgBase) return '';
2901      return String(CFG.affImgBase).replace(/\/?$/, '/') + icon;
2902    }
2903
2904    function updateAffSelectedDisplay(item) {
2905      if (!dropSelected) return;
2906      if (!item || !item.value) {
2907        dropSelected.classList.add('is-placeholder');
2908        dropSelected.textContent = 'เลือกช่องทาง';
2909        return;
2910      }
2911      dropSelected.classList.remove('is-placeholder');
2912      var imgUrl = getAffIconUrl(item.icon);
2913      var imgHtml = imgUrl ?
2914        '<img src="' + imgUrl + '" alt="' + item.text + '" class="mr-aff-option-icon" onerror="this.style.display=\'none\'">' :
2915        '';
2916      dropSelected.innerHTML = imgHtml + '<span>' + item.text + '</span>';
2917    }
2918
2919    function selectAff(item) {
2920      if (!item || !item.value) return;
2921      referrerInput.value = item.value;
2922      state.registerData.affiliate = item.value;
2923      updateAffSelectedDisplay(item);
2924    }
2925
2926    function renderAffDropdown() {
2927      if (!dropOptions) return;
2928      dropOptions.innerHTML = '';
2929      AFF_DATA.forEach(function(item) {
2930        var opt = document.createElement('div');
2931        opt.setAttribute('data-value', item.value);
2932        opt.setAttribute('role', 'option');
2933        opt.className = 'mr-aff-option';
2934        var imgUrl = getAffIconUrl(item.icon);
2935        var imgHtml = imgUrl ?
2936          '<img src="' + imgUrl + '" alt="' + item.text + '" class="mr-aff-option-icon" onerror="this.style.display=\'none\'">' :
2937          '';
2938        opt.innerHTML = imgHtml + '<span>' + item.text + '</span>';
2939        opt.addEventListener('click', function() {
2940          selectAff(item);
2941          dropdown.classList.remove('open');
2942        });
2943        dropOptions.appendChild(opt);
2944      });
2945    }
2946
2947    function loadAffList() {
2948      renderAffDropdown();
2949      updateAffSelectedDisplay(null);
2950    }
2951
2952    async function checkAffiliateFromQuery() {
2953      var affWrap = el('mr-aff-wrap');
2954      var params = new URLSearchParams(window.location.search);
2955      var ref = params.get('ref');
2956      var clickid = params.get('clickid');
2957
2958      state.registerData.ref_join = '';
2959      state.registerData.clickid = clickid || '';
2960
2961      if (ref) {
2962        if (affWrap) affWrap.style.display = 'none';
2963        state.registerData.affiliate = 'INVITFRIEND';
2964        referrerInput.value = 'INVITFRIEND';
2965        try {
2966          var jwtPayload = {
2967            join: ref,
2968            iat: Math.floor(Date.now() / 1000)
2969          };
2970          var token = await signJwt(jwtPayload, CFG.jwtSecret);
2971          var res = await fetch(CFG.urlApi + '/AffrefDE', {
2972            method: 'POST',
2973            headers: {
2974              'X-API-KEY': 'officex-homey-dev',
2975              Accept: 'application/json',
2976              'Content-Type': 'application/json'
2977            },
2978            body: JSON.stringify({
2979              token: token
2980            })
2981          });
2982          var data = await res.json();
2983          if (data.payload && data.payload.token) {
2984            state.registerData.ref_join = data.payload.token;
2985          }
2986        } catch (e) {}
2987      } else {
2988        if (affWrap) affWrap.style.display = '';
2989        if (!state.registerData.affiliate) {
2990          referrerInput.value = '';
2991          updateAffSelectedDisplay(null);
2992        }
2993      }
2994    }
2995
2996    function renderRuleRegister(data) {
2997      el('mr-rule-body').innerHTML = '<p>' + data.data.register.description + '</p>';
2998    }
2999
3000    function usePrefixData(data) {
3001      var pr = state.prefixRegister;
3002      var linecontact = "https:\/\/cutt.ly\/wcpg77" ||
3003        (data.data.contact && data.data.contact.linecontact) || '';
3004      if (linecontact) {
3005        el('mr-contact-link').addEventListener('click', function() {
3006          window.open(linecontact, '_blank');
3007        });
3008        el('mr-contact-link-step').addEventListener('click', function() {
3009          window.open(linecontact, '_blank');
3010        });
3011      }
3012      pr.type_register = data.data.register.type_register;
3013      pr.bank_account = data.data.register.bank_account;
3014      pr.otp = data.data.register.otp;
3015      pr.true_wallet = data.data.register.true_wallet;
3016      pr.disable = data.data.register.disable;
3017      pr.description = data.data.register.description;
3018      pr.not_checkbank = data.data.register.not_checkbank;
3019
3020      loadBankList();
3021      // TEMP: renderRuleRegister(data);
3022    }
3023
3024    /* ===== CONFIRM REGISTER ===== */
3025    window._mrConfirmRegister = async function() {
3026      var bankNumber = bankNumInput.value.trim();
3027      var promotion = parseInt(document.querySelector('input[name="mr-promotion"]:checked')?.value, 10) || 0;
3028      var affWrap = el('mr-aff-wrap');
3029      var affVisible = affWrap && affWrap.style.display !== 'none';
3030
3031      if (affVisible && !state.registerData.affiliate) {
3032        if (window.Swal) Swal.fire({
3033          toast: true,
3034          position: 'top-end',
3035          icon: 'error',
3036          title: 'คุณรู้จักเราจากช่องทางไหน',
3037          showConfirmButton: false,
3038          timer: 1500
3039        });
3040        return;
3041      }
3042
3043      if (state.prefixRegister.not_checkbank) state.registerData.register_type = 'WAIT';
3044      state.registerData.bank_number = bankNumber;
3045      state.registerData.affiliate = referrerInput.value || state.registerData.affiliate;
3046      state.registerData.bank_name = trueWallet.value;
3047      state.registerData.promotion = promotion;
3048
3049      var timedate = window.moment ?
3050        moment(new Date()).format('Y-MM-DD HH:mm:ss') :
3051        new Date().toISOString().slice(0, 19).replace('T', ' ');
3052      submitBtn.disabled = true;
3053      try {
3054        var jwtPayload = {
3055          date_regis: timedate,
3056          phone_number: state.registerData.phone_number,
3057          password: state.registerData.password,
3058          bank_type: state.registerData.bank_type,
3059          bank_code: state.registerData.bank_code,
3060          bank_number: bankNumber,
3061          bank_name: state.registerData.bank_name || '',
3062          affiliate: state.registerData.affiliate,
3063          join: state.registerData.ref_join || '',
3064          clickid: state.registerData.clickid || '',
3065          is_bonus: promotion,
3066          iat: Math.floor(Date.now() / 1000)
3067        };
3068        var token = await signJwt(jwtPayload, CFG.jwtSecret);
3069        var res = await fetch(CFG.urlApi + '/api/register', {
3070          method: 'POST',
3071          headers: {
3072            'X-API-KEY': 'officex-homey-dev',
3073            Accept: 'application/json',
3074            'Content-Type': 'application/json'
3075          },
3076          body: JSON.stringify({
3077            token: token
3078          })
3079        });
3080        var data = await res.json();
3081        if (data.code === 0) {
3082          submitBtn.disabled = false;
3083          showModalSuccess();
3084        } else {
3085          if (window.Swal) Swal.fire({
3086            toast: true,
3087            position: 'top-end',
3088            icon: 'error',
3089            title: data.msg || data.message?.message || 'สมัครสมาชิกไม่สำเร็จ',
3090            showConfirmButton: false,
3091            timer: 1500
3092          });
3093          submitBtn.disabled = false;
3094          if (data.payload?.is_input_bank_name || data.data?.is_input_bank_name || state.prefixRegister.not_checkbank) {
3095            state.registerData.register_type = 'WAIT';
3096            trueWallet.classList.add('show');
3097          }
3098        }
3099      } catch (e) {
3100        submitBtn.disabled = false;
3101      }
3102    };
3103
3104    // TEMP: ปิด rules modal ชั่วคราว
3105    /*
3106    function closeRulesAndShowRegister() {
3107      bsHide('mr-modal-rules');
3108      bsShow('modal-register');
3109    }
3110
3111    el('mr-rule-trigger').addEventListener('click', function() {
3112      bsHide('modal-register');
3113      bsShow('mr-modal-rules');
3114    });
3115    el('mr-rules-close').addEventListener('click', function() {
3116      closeRulesAndShowRegister();
3117    });
3118    */
3119
3120    /* ===== SUCCESS MODAL ===== */
3121    function showModalSuccess() {
3122      bsShow('mr-modal-success');
3123    }
3124
3125    function openLoginAfterRegister() {
3126      bsHide('mr-modal-success');
3127      ModalRegister.close();
3128      if (window.ModalLogin) ModalLogin.open();
3129      else window.location.href = CFG.siteUrl;
3130    }
3131
3132    el('mr-success-close').addEventListener('click', openLoginAfterRegister);
3133    el('mr-success-btn').addEventListener('click', openLoginAfterRegister);
3134
3135    /* ===== GOTO LOGIN LINK ===== */
3136    el('mr-goto-login').addEventListener('click', function() {
3137      ModalRegister.close();
3138      if (window.ModalLogin) ModalLogin.open();
3139      else window.location.href = CFG.siteUrl;
3140    });
3141
3142    /* ===== RESET MODAL STATE ===== */
3143    function resetAll() {
3144      state.currentStep = 1;
3145      state.otpSeconds = 120;
3146      state.walletTouched = false;
3147      state.bankTouched = false;
3148      clearInterval(state.otpTimer);
3149      state.registerData = {
3150        phone_number: '',
3151        password: '',
3152        affiliate: '',
3153        ref_join: '',
3154        clickid: '',
3155        bank_code: '',
3156        bank_type: '',
3157        bank_number: '',
3158        bank_name: '',
3159        register_type: ''
3160      };
3161
3162      // reset steps visibility
3163      [1, 2, 3, 4].forEach(function(s) {
3164        var step = el('mr-step-' + s);
3165        if (step) step.classList.remove('active');
3166      });
3167      var s1 = el('mr-step-1');
3168      if (s1) s1.classList.add('active');
3169
3170      // reset inputs
3171      phoneInput.value = '';
3172      phoneError.textContent = '';
3173      nextBtn.disabled = true;
3174      // TEMP: termsChk.checked = false;
3175      resetOtpInputs();
3176      pwdInput.value = '';
3177      cfmPwdInput.value = '';
3178      pwdError.textContent = '';
3179      pwdErrorCfm.textContent = '';
3180      nextStep3Btn.disabled = true;
3181      updateBankSelectedDisplay(null);
3182      if (bankDropdown) bankDropdown.classList.remove('open');
3183      bankNumInput.value = '';
3184      trueWallet.value = '';
3185      submitBtn.disabled = true;
3186      trueWallet.classList.add('hidden');
3187      trueWallet.classList.remove('show');
3188      accountError.textContent = '';
3189      walletError.textContent = '';
3190      state.registerData.bank_code = '';
3191      state.registerData.bank_type = '';
3192      updateAffSelectedDisplay(null);
3193      if (dropdown) dropdown.classList.remove('open');
3194      referrerInput.value = '';
3195      checkAffiliateFromQuery();
3196      updateSteps();
3197    }
3198
3199    /* ===== INIT ===== */
3200    var prefixLoaded = false;
3201
3202    function init() {
3203      updateSteps();
3204      loadBankList();
3205      loadAffList();
3206      checkAffiliateFromQuery();
3207    }
3208
3209    /* ===== PUBLIC API ===== */
3210    window.ModalRegister = {
3211      /**
3212       * เปิด modal สมัครสมาชิก
3213       * เรียกได้จากทุกหน้า: ModalRegister.open()
3214       */
3215      open: function() {
3216        resetAll();
3217        if (!prefixLoaded) {
3218          fetchPrefix().then(function(data) {
3219            if (data) {
3220              usePrefixData(data);
3221              prefixLoaded = true;
3222            } else {
3223              loadBankList();
3224            }
3225          });
3226        } else {
3227          loadBankList();
3228        }
3229        bsShow('modal-register');
3230      },
3231      /**
3232       * ปิด modal สมัครสมาชิก
3233       * เรียกได้จากทุกหน้า: ModalRegister.close()
3234       */
3235      close: function() {
3236        bsHide('modal-register');
3237        bsHide('mr-modal-rules');
3238        bsHide('mr-modal-success');
3239        clearInterval(state.otpTimer);
3240      },
3241      /**
3242       * Override config หลัง include
3243       * เรียกได้จากทุกหน้า: ModalRegister.setConfig({ urlApi: '...', siteUrl: '...' })
3244       */
3245      setConfig: function(cfg) {
3246        Object.assign(CFG, cfg);
3247      }
3248    };
3249
3250    init();
3251  })();
3252</script>
3252
3253<!-- ============================================================
3254     MODAL LOGIN — CSS (Scoped · ไม่ทับ CSS ของ project ปลายทาง)
3255     ทุก rule ถูก scope ด้วย #modal-login
3256     ============================================================ -->
3257<style>
3258  /* ===== RESET & BOX MODEL ===== */
3259  #modal-login *,
3260  #modal-login *::before,
3261  #modal-login *::after {
3262    box-sizing: border-box;
3263  }
3264
3265  /* ===== THEME — แก้สีปุ่ม/ตัวหนังสือ modal ที่นี่ที่เดียว ===== */
3266  #modal-login,
3267  #ml-modal-forgot,
3268  #ml-modal-disable-register {
3269    --ml-primary: #ff5600;
3270    /* สีพื้นหลังปุ่มหลัก (เข้าสู่ระบบ) */
3271    --ml-btn-text: #ffffff;
3272    /* สีตัวหนังสือปุ่มหลัก */
3273    --ml-btn-line: #39cd00;
3274    /* สีพื้นหลังปุ่ม LINE / ติดต่อ */
3275    --ml-btn-line-text: #ffffff;
3276    /* สีตัวหนังสือปุ่ม LINE / ติดต่อ */
3277    --ml-text-main: #ffffff;
3278    /* ตัวหนังสือทั่วไปใน modal */
3279    --ml-text-accent: #ff5600;
3280    /* ลิงก์ / ข้อความเน้น */
3281    --ml-modal-bg: #000000b8;
3282    /* พื้นหลัง modal */
3283    --ml-modal-border: #ff5600;
3284    /* ขอบ modal */
3285    --ml-close: #e50b00;
3286    /* ปุ่มปิด (X) */
3287    --ml-error: red;
3288    /* ข้อความ error */
3289    --ml-input-text: #ffffff;
3290    /* ตัวหนังสือใน input */
3291    --ml-input-placeholder: #ffffff;
3292    /* placeholder */
3293    --ml-input-border: #a5a5a58c;
3294    /* ขอบ input */
3295    --ml-font: "Prompt", sans-serif;
3296    --ml-bg-input: rgba(0, 0, 0, .56);
3297  }
3298
3299  /* ===== FONT & BASE ===== */
3300  #modal-login {
3301    font-family: var(--ml-font);
3302    font-size: 16px;
3303  }
3304
3305  #modal-login p {
3306    margin: 0;
3307    font-size: 16px;
3308  }
3309
3310  #modal-login h1 {
3311    font-size: 32px;
3312    font-weight: 600;
3313    margin-bottom: 1rem;
3314  }
3315
3316  #modal-login h5 {
3317    font-weight: 600;
3318    margin: 0;
3319  }
3320
3321  #modal-login figure {
3322    margin: 0;
3323  }
3324
3325  #modal-login a {
3326    text-decoration: none !important;
3327    font-size: 16px;
3328    font-weight: 400;
3329    color: var(--ml-text-accent);
3330  }
3331
3332  #modal-login :where(p, a, span, h1, h2, h3, h4, h5, h6) {
3333    font-weight: 500;
3334  }
3335
3336  /* ===== CLOSE BUTTON ===== */
3337  #modal-login .modal-header .close span,
3338  #modal-login .modal-header .close i {
3339    color: var(--ml-close) !important;
3340  }
3341
3342  /* ===== BOOTSTRAP MODAL CONTENT DARK THEME ===== */
3343  #modal-login .modal-content,
3344  #ml-modal-forgot .modal-content,
3345  #ml-modal-disable-register .modal-content {
3346    background: var(--ml-modal-bg);
3347    border: 2px solid var(--ml-modal-border);
3348    border-radius: 16px;
3349    color: var(--ml-text-main);
3350    font-family: var(--ml-font);
3351  }
3352
3353  #modal-login .modal-body {
3354    padding: 1rem 1.5rem 2rem;
3355    overflow-y: auto;
3356    -webkit-overflow-scrolling: touch;
3357  }
3358
3359  /* ===== LAYOUT ===== */
3360  #modal-login .form-layout {
3361    display: flex;
3362    justify-content: center;
3363  }
3364
3365  #modal-login .from-login {
3366    width: 100%;
3367    margin: auto;
3368  }
3369
3370  #modal-login .logo {
3371    width: clamp(200px, 40vw, 400px);
3372    margin: 0 auto;
3373  }
3374
3375  #modal-login .logo img {
3376    width: 100%;
3377    height: auto;
3378  }
3379
3380  #modal-login .form {
3381    margin: 0 auto;
3382    color: var(--ml-text-main);
3383  }
3384
3385  /* ===== INPUTS ===== */
3386  #modal-login input {
3387    width: 100%;
3388    padding: 10px;
3389    border-radius: 100px;
3390    border: 1px solid var(--ml-input-border);
3391    background-color: var(--ml-bg-input);
3392    color: var(--ml-input-text);
3393    font-family: var(--ml-font);
3394    font-size: 16px;
3395  }
3396
3397  #modal-login input:focus-visible,
3398  #modal-login input:focus {
3399    outline: none;
3400  }
3401
3402  #modal-login ::placeholder {
3403    color: var(--ml-input-placeholder);
3404    opacity: 1;
3405  }
3406
3407  /* ===== BUTTONS ===== */
3408  #modal-login .btn-login .btn-text-one,
3409  #modal-login .btn-forget .btn-text-one,
3410  #ml-modal-forgot .btn-text-one {
3411    color: var(--ml-btn-text);
3412  }
3413
3414  #modal-login .btn-line .btn-text-one,
3415  #ml-modal-disable-register .btn-line .btn-text-one {
3416    color: var(--ml-btn-line-text);
3417  }
3418
3419  #modal-login .btn-login,
3420  #modal-login .btn-register,
3421  #modal-login .btn-forget {
3422    width: 100%;
3423    padding: 10px;
3424    border-radius: 100px;
3425    border: 1px solid rgba(0, 0, 0, .56);
3426    background: var(--ml-primary);
3427    color: var(--ml-btn-text);
3428    margin-bottom: 10px;
3429    cursor: pointer;
3430    font-family: var(--ml-font);
3431    font-size: 16px;
3432  }
3433
3434  #modal-login .btn-register {
3435    background: transparent;
3436    border: 1px solid var(--ml-primary);
3437    color: var(--ml-primary);
3438    margin-top: 0.5rem;
3439  }
3440
3441  #modal-login .btn-line {
3442    width: 100%;
3443    padding: 10px;
3444    border-radius: 100px;
3445    border: none;
3446    background: var(--ml-btn-line);
3447    color: var(--ml-btn-line-text);
3448    margin-top: 10px;
3449    cursor: pointer;
3450    font-family: var(--ml-font);
3451    font-size: 16px;
3452    display: flex;
3453    text-align: center;
3454    justify-content: center;
3455  }
3456
3457  #modal-login .btn-line.line-login {
3458    display: none;
3459  }
3460
3461  #modal-login .btn-line.active-line {
3462    display: block !important;
3463  }
3464
3465  #modal-login button[disabled] {
3466    background-color: var(--ml-primary) !important;
3467    cursor: not-allowed;
3468    border: none;
3469    color: var(--ml-btn-text);
3470    position: relative;
3471  }
3472
3473  #modal-login button[disabled]::after {
3474    content: "";
3475    position: absolute;
3476    inset: 0;
3477    background-color: #000;
3478    opacity: 0.5;
3479    z-index: 1;
3480    border-radius: 100px;
3481  }
3482
3483  /* ===== FORM FIELDS ===== */
3484  #modal-login .error {
3485    color: var(--ml-error);
3486    font-size: 14px;
3487    margin-top: 4px;
3488  }
3489
3490  #modal-login .phone-number,
3491  #modal-login .password {
3492    margin-top: 1rem;
3493  }
3494
3495  #modal-login .password-wrapper {
3496    position: relative;
3497  }
3498
3499  #modal-login .toggle-button {
3500    position: absolute;
3501    top: 50%;
3502    right: 10px;
3503    transform: translateY(-50%);
3504    display: flex;
3505    align-items: center;
3506    cursor: pointer;
3507    color: #666;
3508  }
3509
3510  #modal-login .eye-icon {
3511    width: 20px;
3512    height: 20px;
3513    color: var(--ml-text-main);
3514  }
3515
3516  #modal-login .page-wrap {
3517    width: 100%;
3518  }
3519
3520  #modal-login .page-logo {
3521    text-align: center;
3522    margin-bottom: 1rem;
3523  }
3524
3525  #modal-login .page-logo img {
3526    width: clamp(200px, 50vw, 250px);
3527    height: auto;
3528  }
3529
3530  #modal-login .form-group label,
3531  #modal-login .form-password>label {
3532    display: block;
3533    margin-bottom: 0.5rem;
3534    color: var(--ml-text-main);
3535  }
3536
3537  #modal-login .form-password .forgot-password {
3538    margin: 0.5rem 0 0;
3539  }
3540
3541  #modal-login .form-password .forgot-password small {
3542    color: var(--ml-text-accent);
3543    cursor: pointer;
3544  }
3545
3546  /* ===== FORGOT / NOT-MEMBER ===== */
3547  #modal-login .forgot-password {
3548    margin: 1rem 0;
3549    text-align: right;
3550  }
3551
3552  #modal-login .forgot-password span {
3553    color: var(--ml-text-accent);
3554    cursor: pointer;
3555  }
3556
3557  #modal-login .not-member {
3558    text-align: center;
3559    display: block;
3560    width: 100%;
3561    margin: 1rem 0;
3562    font-size: 16px;
3563    color: var(--ml-text-main);
3564  }
3565
3566  #modal-login .not-member a {
3567    color: var(--ml-text-accent) !important;
3568  }
3569
3570  /* ===== MODAL CONTENT (forgot / disable) ===== */
3571  #ml-modal-forgot .modal-content,
3572  #ml-modal-disable-register .modal-content {
3573    position: relative;
3574    display: flex;
3575    flex-direction: column;
3576    width: 100%;
3577    pointer-events: auto;
3578    background-color: rgb(0, 0, 0);
3579    border-radius: 16px;
3580    outline: 0;
3581    color: var(--ml-text-main);
3582    font-family: var(--ml-font);
3583  }
3584
3585  #ml-modal-forgot .modal-header,
3586  #ml-modal-disable-register .modal-header {
3587    border: none;
3588    padding: 1rem 1rem 0.5rem;
3589    display: flex;
3590    align-items: center;
3591    justify-content: space-between;
3592  }
3593
3594  #ml-modal-forgot .modal-header.justify-content-end,
3595  #ml-modal-disable-register .modal-header.justify-content-end {
3596    justify-content: flex-end;
3597  }
3598
3599  #ml-modal-forgot .modal-title {
3600    font-size: 18px;
3601    font-weight: 600;
3602    margin: 0;
3603  }
3604
3605  #ml-modal-forgot .modal-body,
3606  #ml-modal-disable-register .modal-body {
3607    padding: 1rem;
3608    font-size: 16px;
3609  }
3610
3611  #ml-modal-forgot .modal-footer {
3612    border: none;
3613    padding: 0.5rem 1rem 1rem;
3614  }
3615
3616  /* ===== MODAL SHELL (login + sub-modals) ===== */
3617  #modal-login .modal-dialog,
3618  #ml-modal-forgot .modal-dialog,
3619  #ml-modal-disable-register .modal-dialog {
3620    width: calc(100% - 2rem);
3621    max-width: 480px;
3622    margin: 1rem auto;
3623  }
3624
3625  #modal-login .modal-dialog.modal-dialog-scrollable .modal-content {
3626    max-height: calc(100dvh - 2rem - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px));
3627  }
3628
3629  #modal-login .modal-header {
3630    position: relative;
3631    display: flex;
3632    align-items: flex-start;
3633    justify-content: flex-end;
3634    border: none;
3635    min-height: 2.5rem;
3636    padding: 0.75rem 2.75rem 0.75rem 0.75rem;
3637    flex-shrink: 0;
3638  }
3639
3640  #modal-login .modal-header .close {
3641    position: absolute;
3642    right: 0.75rem;
3643    top: 0.75rem;
3644    transform: none;
3645    margin: 0;
3646    padding: 0.25rem;
3647    z-index: 2;
3648    opacity: 1;
3649  }
3650
3651  #ml-modal-forgot .modal-dialog .modal-content,
3652  #ml-modal-disable-register .modal-dialog .modal-content {
3653    max-height: calc(100dvh - 2rem - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px));
3654  }
3655
3656  #ml-modal-forgot .modal-content input {
3657    width: 100%;
3658    padding: 10px;
3659    border-radius: 100px;
3660    border: 1px solid var(--ml-input-border);
3661    background-color: var(--ml-bg-input);
3662    color: var(--ml-input-text);
3663    outline: none;
3664  }
3665
3666  #ml-modal-forgot i,
3667  #ml-modal-disable-register i {
3668    color: var(--ml-close);
3669    font-size: 1.5rem;
3670    cursor: pointer;
3671  }
3672
3673  #ml-modal-forgot .btn-forget {
3674    width: 100%;
3675    padding: 10px;
3676    border-radius: 100px;
3677    border: none;
3678    background: var(--ml-primary);
3679    color: var(--ml-btn-text);
3680    cursor: pointer;
3681    font-family: var(--ml-font);
3682    font-size: 16px;
3683  }
3684
3685  #ml-modal-disable-register .btn-line {
3686    display: inline-block;
3687    padding: 10px;
3688    border-radius: 100px;
3689    border: none;
3690    background: var(--ml-btn-line);
3691    color: var(--ml-btn-line-text);
3692    cursor: pointer;
3693    font-family: var(--ml-font);
3694    font-size: 16px;
3695  }
3696
3697  #ml-modal-disable-register .text-disabled-register {
3698    font-size: clamp(18px, 1.5vw, 20px);
3699    font-weight: 600;
3700    margin: 2rem 0;
3701  }
3702
3703  /* ===== FLEX UTILITIES ===== */
3704  #modal-login .d-flex {
3705    display: flex !important;
3706  }
3707
3708  #modal-login .justify-content-center {
3709    justify-content: center !important;
3710  }
3711
3712  #modal-login .align-items-center {
3713    align-items: center !important;
3714  }
3715
3716  #modal-login .text-center {
3717    text-align: center !important;
3718  }
3719
3720  #modal-login .text-white {
3721    color: var(--ml-text-main) !important;
3722  }
3723
3724  #modal-login .mt-2 {
3725    margin-top: 0.5rem !important;
3726  }
3727
3728  #modal-login .mt-4 {
3729    margin-top: 1rem !important;
3730  }
3731
3732  #modal-login .me-2 {
3733    margin-right: 0.5rem !important;
3734  }
3735
3736  #modal-login .cursor-pointer {
3737    cursor: pointer !important;
3738  }
3739
3740  /* ===== RESPONSIVE ===== */
3741  @media screen and (max-width: 768px) {
3742
3743    #modal-login .modal-dialog,
3744    #ml-modal-forgot .modal-dialog,
3745    #ml-modal-disable-register .modal-dialog {
3746      width: calc(100% - 1.5rem);
3747      margin: 0.75rem auto;
3748    }
3749
3750    #modal-login h1 {
3751      font-size: clamp(1.375rem, 5vw, 2rem);
3752    }
3753
3754    #modal-login .logo {
3755      width: clamp(140px, 50vw, 280px);
3756    }
3757
3758    #modal-login .modal-body {
3759      padding: 0.75rem 1rem 1.5rem;
3760    }
3761
3762    #ml-modal-forgot .modal-body,
3763    #ml-modal-disable-register .modal-body {
3764      padding: 0.75rem 1rem;
3765    }
3766
3767    #ml-modal-forgot .modal-title {
3768      font-size: 16px;
3769    }
3770  }
3771
3772  @media screen and (max-width: 600px) {
3773    #modal-login .from-login {
3774      padding: 0 0.25rem;
3775    }
3776
3777    #modal-login .modal-header {
3778      min-height: 2.25rem;
3779      padding: 0.75rem 2.75rem 0.75rem 0.75rem;
3780    }
3781
3782    #modal-login .not-member {
3783      font-size: 14px;
3784      line-height: 1.5;
3785    }
3786
3787    #modal-login .btn-login,
3788    #modal-login .btn-line,
3789    #ml-modal-forgot .btn-forget {
3790      min-height: 44px;
3791    }
3792
3793    #ml-modal-disable-register .text-disabled-register {
3794      margin: 1.25rem 0;
3795    }
3796  }
3797
3798  @media screen and (max-width: 380px) {
3799
3800    #modal-login .modal-dialog,
3801    #ml-modal-forgot .modal-dialog,
3802    #ml-modal-disable-register .modal-dialog {
3803      width: calc(100% - 1rem);
3804      margin: 0.5rem auto;
3805    }
3806
3807    #modal-login input {
3808      padding: 8px 2.5rem 8px 12px;
3809      font-size: 16px;
3810    }
3811  }
3812
3813  @media screen and (max-height: 500px) and (orientation: landscape) {
3814
3815    #modal-login .modal-dialog.modal-dialog-scrollable .modal-content,
3816    #ml-modal-forgot .modal-dialog .modal-content,
3817    #ml-modal-disable-register .modal-dialog .modal-content {
3818      max-height: calc(100dvh - 1rem);
3819    }
3820
3821    #modal-login .modal-body {
3822      padding: 0.5rem 1rem 1rem;
3823    }
3824
3825    #modal-login h1 {
3826      font-size: 1.25rem;
3827      margin-bottom: 0.5rem;
3828    }
3829
3830    #modal-login .phone-number,
3831    #modal-login .password {
3832      margin-top: 0.5rem;
3833    }
3834
3835    #modal-login .logo img {
3836      max-height: 40px !important;
3837    }
3838  }
3839</style>
3840
3841<!-- ============================================================
3842     MODAL LOGIN — HTML
3843     ============================================================ -->
3844<div class="modal modal-diamond fade" id="modal-login" tabindex="-1" role="dialog"
3845  aria-labelledby="ml-modal-title" aria-hidden="true"
3846  data-backdrop="static" data-keyboard="false"
3847  data-bs-backdrop="static" data-bs-keyboard="false">
3848  <div class="modal-dialog modal-dialog-centered modal-dialog-scrollable" role="document">
3849    <div class="modal-content">
3850
3851      <!-- Modal Header — close only (PopupLogin style) -->
3852      <div class="modal-header">
3853        <button type="button" class="close" data-dismiss="modal" aria-label="Close"
3854          onclick="ModalLogin.close()">
3855          <span aria-hidden="true"><i class="fas fa-times"></i></span>
3856        </button>
3857      </div>
3858
3859      <div class="modal-body">
3860        <div class="from-login page-wrap">
3861
3862          <div class="page-logo" id="ml-logo">
3863            <figure class="thumb">
3864              <img src="https://pgslot77.art/wp-content/themes/Theme-re-pgslot77/assets/img/logo-pgslot77-main.png" alt="logo" style="max-height:60px;width:auto;" />
3865            </figure>
3866          </div>
3867
3868          <form id="ml-login-form" class="form" novalidate>
3869            <!-- Phone -->
3870            <div class="form-group phone-number">
3871              <label for="ml-phone">กรอกเบอร์โทรศัพท์</label>
3872              <input id="ml-phone" type="tel" maxlength="10"
3873                oninput="if (this.value.length > this.maxLength) this.value = this.value.slice(0, this.maxLength);" />
3874            </div>
3875
3876            <!-- Password -->
3877            <div class="form-password password">
3878              <label for="ml-password">กรอกรหัสผ่าน</label>
3879              <div class="password-wrapper">
3880                <input type="password" id="ml-password" />
3881                <div class="toggle-button" id="ml-toggle-password" aria-label="แสดง/ซ่อนรหัสผ่าน">
3882                  <span id="ml-icon-password">
3883                    <svg width="24" height="19" viewBox="0 0 24 19" fill="currentColor" class="eye-icon" xmlns="http://www.w3.org/2000/svg">
3884                      <path d="M19.5254 0.966275C19.2322 0.673025 18.7582 0.673025 18.4649 0.966275L16.3919 3.03928C15.0802 2.51128 13.6154 2.17078 11.9999 2.17078C4.80066 2.17078 0.303663 9.15553 0.116163 9.45328C0.00516307 9.62953 -0.0233369 9.83428 0.0201631 10.0225C-0.0158369 10.201 0.00741308 10.3923 0.110163 10.5603C0.214413 10.7313 1.70166 13.102 4.34166 15.091L2.59941 16.8325C2.30616 17.1258 2.30616 17.5998 2.59941 17.893C2.74566 18.0393 2.93766 18.1128 3.12966 18.1128C3.32166 18.1128 3.51366 18.0393 3.65991 17.893L19.5254 2.02678C19.8179 1.73428 19.8179 1.25953 19.5254 0.966275ZM7.67991 9.95578C7.67991 7.57378 9.61791 5.63578 11.9999 5.63578C12.5339 5.63578 13.0439 5.73628 13.5157 5.91478L12.2699 7.16053C12.1799 7.15078 12.0922 7.13578 11.9999 7.13578C10.4452 7.13578 9.17991 8.40103 9.17991 9.95578C9.17991 10.048 9.19566 10.1358 9.20466 10.2258L7.95891 11.4715C7.78041 11.0005 7.67991 10.4898 7.67991 9.95578ZM23.8837 10.5468C23.6962 10.8438 19.1992 17.8293 11.9999 17.8293C10.1204 17.8293 8.44041 17.3725 6.97416 16.6915L9.92391 13.741C10.5404 14.0808 11.2484 14.275 12.0007 14.275C14.3827 14.275 16.3207 12.337 16.3207 9.95502C16.3207 9.20278 16.1264 8.49553 15.7867 7.87827L19.1392 4.52578C22.1047 6.57928 23.7802 9.25753 23.8904 9.43903C23.9932 9.60703 24.0164 9.79827 23.9804 9.97678C24.0232 10.1665 23.9954 10.3705 23.8837 10.5468ZM11.0624 12.6033L14.6474 9.01903C14.7524 9.31378 14.8199 9.62653 14.8199 9.95653C14.8199 11.5113 13.5547 12.7765 11.9999 12.7765C11.6699 12.7758 11.3572 12.7083 11.0624 12.6033Z" fill="white" />
3885                    </svg>
3886                  </span>
3887                </div>
3888              </div>
3889              <div class="forgot-password text-right" id="ml-forgot-trigger">
3890                <small>ลืมรหัสผ่าน</small>
3891              </div>
3892            </div>
3893
3894            <!-- Submit -->
3895            <div class="text-center mt-4">
3896              <button type="submit" class="btn-login" id="ml-submit-btn">
3897                <span class="btn-text-one" id="ml-submit-text">เข้าสู่ระบบ</span>
3898              </button>
3899            </div>
3900
3901            <!-- Register -->
3902            <div class="text-center mt-4">
3903              <button type="button" class="btn-register" id="ml-goto-register">
3904                สมัครสมาชิก
3905              </button>
3906            </div>
3907          </form>
3908
3909          <!-- Line login -->
3910          <button class="btn-line line-login" id="ml-btn-line-login" style="display:none;">
3911            <span class="btn-text-one">เข้าสู่ระบบผ่านไลน์</span>
3912          </button>
3913
3914          <!-- Contact support -->
3915          <a class="btn-line" href="https://cutt.ly/wcpg77">
3916            <span class="btn-text-one">พบปัญหาติดต่อทีมงาน</span>
3917          </a>
3918
3919        </div><!-- /.from-login -->
3920      </div><!-- /.modal-body -->
3921    </div><!-- /.modal-content -->
3922  </div><!-- /.modal-dialog -->
3923</div><!-- /#modal-login -->
3924
3925<!-- Modal: ลืมรหัสผ่าน -->
3926<div class="modal fade" id="ml-modal-forgot" tabindex="-1" role="dialog" data-bs-backdrop="static" data-backdrop="static">
3927  <div class="modal-dialog modal-dialog-centered modal-dialog-scrollable" role="document">
3928    <div class="modal-content">
3929      <div class="modal-header">
3930        <h5 class="modal-title">ลืมรหัสผ่าน</h5>
3931        <i class="far fa-times-circle" style="cursor:pointer;" id="ml-forgot-close"></i>
3932      </div>
3933      <div class="modal-body">
3934        <div class="phone-number">
3935          <p class="text-white/70 font-sans text-[14px] my-1">เบอร์โทรศัพท์</p>
3936          <input id="ml-phone-forget" type="tel" placeholder="กรุณากรอกเบอร์โทรศัพท์" maxlength="10" />
3937          <div id="ml-phone-error-forget" class="error"></div>
3938        </div>
3939      </div>
3940      <div class="modal-footer">
3941        <button class="btn-forget" id="ml-forget-btn" disabled>
3942          <span class="btn-text-one">ตกลง</span>
3943        </button>
3944      </div>
3945    </div>
3946  </div>
3947</div>
3948
3949<!-- Modal: ปิดรับสมัคร -->
3950<div class="modal fade" id="ml-modal-disable-register" tabindex="-1" role="dialog" data-bs-backdrop="static" data-backdrop="static">
3951  <div class="modal-dialog modal-dialog-centered modal-dialog-scrollable" role="document">
3952    <div class="modal-content">
3953      <div class="modal-header justify-content-end">
3954        <i class="far fa-times-circle" style="cursor:pointer;" id="ml-disable-close"></i>
3955      </div>
3956      <div class="modal-body text-center">
3957        <svg width="81" height="80" viewBox="0 0 81 80" fill="none" xmlns="http://www.w3.org/2000/svg">
3958          <path fill-rule="evenodd" clip-rule="evenodd"
3959            d="M40.5 0C18.424 0 0.5 17.924 0.5 40C0.5 62.076 18.424 80 40.5 80C62.576 80 80.5 62.076 80.5 40C80.5 17.924 62.576 0 40.5 0ZM40.5 51.972C42.708 51.972 44.5 53.764 44.5 55.972C44.5 58.18 42.708 59.972 40.5 59.972C38.292 59.972 36.5 58.18 36.5 55.972C36.5 53.764 38.292 51.972 40.5 51.972ZM44.5 44V20C44.5 17.792 42.708 16 40.5 16C38.292 16 36.5 17.792 36.5 20V44C36.5 46.208 38.292 48 40.5 48C42.708 48 44.5 46.208 44.5 44Z"
3960            fill="#FFB711" />
3961        </svg>
3962        <p class="text-disabled-register">ขออภัยไม่สามารถสมัครสมาชิกได้ขณะนี้</p>
3963        <a class="btn-line" href="https://cutt.ly/wcpg77" style="width:60%;">
3964          <span class="btn-text-one">พบปัญหาติดต่อทีมงาน</span>
3965        </a>
3966      </div>
3967    </div>
3968  </div>
3969</div>
3970
3971<!-- ============================================================
3972     MODAL LOGIN — JAVASCRIPT (Self-Contained IIFE)
3973     ============================================================ -->
3974<script type="rocketlazyloadscript">
3975  (function() {
3976    /* =====================================================
3977       CONFIG — แก้ตรงนี้เพื่อย้าย project
3978       หรือ set window.ModalLoginConfig ก่อน include
3979       ===================================================== */
3980    var CFG = {
3981      urlApi: "https:\/\/pgslot77.pglst.com",
3982      siteUrl: "https:\/\/pgslot77.art\/",
3983      jwtSecret: 'ABAsercretPayload'
3984    };
3985    if (window.ModalLoginConfig) {
3986      Object.assign(CFG, window.ModalLoginConfig);
3987    }
3988
3989    /* ===== STATE ===== */
3990    var btnLoading = false;
3991
3992    /* ===== Swal toast helper ===== */
3993    function showSwal(message, icon) {
3994      if (!window.Swal) return;
3995      Swal.fire({
3996        toast: true,
3997        position: 'top-end',
3998        icon: icon || 'error',
3999        title: message,
4000        showConfirmButton: false,
4001        timer: 1500
4002      });
4003    }
4004
4005    /* ===== JWT sign (PopupLogin → $jwt.sign payload, secret) ===== */
4006    function toBase64Url(input) {
4007      var bytes = typeof input === 'string' ?
4008        new TextEncoder().encode(input) :
4009        new Uint8Array(input);
4010      var binary = '';
4011      for (var i = 0; i < bytes.length; i++) binary += String.fromCharCode(bytes[i]);
4012      return btoa(binary).replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, '');
4013    }
4014
4015    async function signJwt(payload, secret) {
4016      var header = {
4017        alg: 'HS256',
4018        typ: 'JWT'
4019      };
4020      var encodedHeader = toBase64Url(JSON.stringify(header));
4021      var encodedPayload = toBase64Url(JSON.stringify(payload));
4022      var signingInput = encodedHeader + '.' + encodedPayload;
4023      var key = await crypto.subtle.importKey(
4024        'raw',
4025        new TextEncoder().encode(secret), {
4026          name: 'HMAC',
4027          hash: 'SHA-256'
4028        },
4029        false,
4030        ['sign']
4031      );
4032      var signature = await crypto.subtle.sign('HMAC', key, new TextEncoder().encode(signingInput));
4033      return signingInput + '.' + toBase64Url(signature);
4034    }
4035
4036    /* ===== checkPhone — same logic as ESC_BAC checkPhone.js ===== */
4037    function checkPhone(number) {
4038      var pattern = /^[^a-z][0-9]+$/;
4039      if (number != null && number !== '') {
4040        if (pattern.test(number)) {
4041          if (number[0] === '0') {
4042            if (number.length === 10) return true;
4043            return 'กรุณากรอกเบอร์โทรศัพท์ให้ครบ 10 ตัว';
4044          }
4045          return 'เบอร์โทรศัพท์ต้องขึ้นต้นด้วย 0 เท่านั้น';
4046        }
4047        return 'เบอร์โทรของคุณกรุณากรอกแค่ตัวเลข';
4048      }
4049      return 'กรุณากรอกเบอร์โทรศัพท์';
4050    }
4051
4052    /* ===== ICON HELPERS ===== */
4053    var ICON_EYE_OPEN = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" class="eye-icon"><path d="M12 15a3 3 0 100-6 3 3 0 000 6z"/><path fill-rule="evenodd" d="M1.323 11.447C2.811 6.976 7.028 3.75 12.001 3.75c4.97 0 9.185 3.223 10.675 7.69.12.362.12.752 0 1.113-1.487 4.471-5.705 7.697-10.677 7.697-4.97 0-9.186-3.223-10.675-7.69a1.762 1.762 0 010-1.113zM17.25 12a5.25 5.25 0 11-10.5 0 5.25 5.25 0 0110.5 0z" clip-rule="evenodd"/></svg>';
4054    var ICON_EYE_CLOSED = '<svg width="24" height="19" viewBox="0 0 24 19" fill="currentColor" class="eye-icon" xmlns="http://www.w3.org/2000/svg"><path d="M19.5254 0.966275C19.2322 0.673025 18.7582 0.673025 18.4649 0.966275L16.3919 3.03928C15.0802 2.51128 13.6154 2.17078 11.9999 2.17078C4.80066 2.17078 0.303663 9.15553 0.116163 9.45328C0.00516307 9.62953 -0.0233369 9.83428 0.0201631 10.0225C-0.0158369 10.201 0.00741308 10.3923 0.110163 10.5603C0.214413 10.7313 1.70166 13.102 4.34166 15.091L2.59941 16.8325C2.30616 17.1258 2.30616 17.5998 2.59941 17.893C2.74566 18.0393 2.93766 18.1128 3.12966 18.1128C3.32166 18.1128 3.51366 18.0393 3.65991 17.893L19.5254 2.02678C19.8179 1.73428 19.8179 1.25953 19.5254 0.966275ZM7.67991 9.95578C7.67991 7.57378 9.61791 5.63578 11.9999 5.63578C12.5339 5.63578 13.0439 5.73628 13.5157 5.91478L12.2699 7.16053C12.1799 7.15078 12.0922 7.13578 11.9999 7.13578C10.4452 7.13578 9.17991 8.40103 9.17991 9.95578C9.17991 10.048 9.19566 10.1358 9.20466 10.2258L7.95891 11.4715C7.78041 11.0005 7.67991 10.4898 7.67991 9.95578ZM23.8837 10.5468C23.6962 10.8438 19.1992 17.8293 11.9999 17.8293C10.1204 17.8293 8.44041 17.3725 6.97416 16.6915L9.92391 13.741C10.5404 14.0808 11.2484 14.275 12.0007 14.275C14.3827 14.275 16.3207 12.337 16.3207 9.95502C16.3207 9.20278 16.1264 8.49553 15.7867 7.87827L19.1392 4.52578C22.1047 6.57928 23.7802 9.25753 23.8904 9.43903C23.9932 9.60703 24.0164 9.79827 23.9804 9.97678C24.0232 10.1665 23.9954 10.3705 23.8837 10.5468ZM11.0624 12.6033L14.6474 9.01903C14.7524 9.31378 14.8199 9.62653 14.8199 9.95653C14.8199 11.5113 13.5547 12.7765 11.9999 12.7765C11.6699 12.7758 11.3572 12.7083 11.0624 12.6033Z" fill="white"/></svg>';
4055
4056    /* ===== BOOTSTRAP MODAL HELPERS ===== */
4057    function bsShow(id) {
4058      var target = document.getElementById(id);
4059      if (!target) return;
4060      if (window.bootstrap && bootstrap.Modal && bootstrap.Modal.getOrCreateInstance) {
4061        bootstrap.Modal.getOrCreateInstance(target).show();
4062      } else if (window.$ && $.fn.modal) {
4063        $(target).modal('show');
4064      } else {
4065        target.style.display = 'block';
4066        target.classList.add('show');
4067        document.body.classList.add('modal-open');
4068        if (!document.getElementById(id + '-bd')) {
4069          var bd = document.createElement('div');
4070          bd.id = id + '-bd';
4071          bd.className = 'modal-backdrop fade show';
4072          document.body.appendChild(bd);
4073        }
4074      }
4075    }
4076
4077    function bsHide(id) {
4078      var target = document.getElementById(id);
4079      if (!target) return;
4080      if (window.bootstrap && bootstrap.Modal && bootstrap.Modal.getInstance) {
4081        var inst = bootstrap.Modal.getInstance(target);
4082        if (inst) inst.hide();
4083      } else if (window.$ && $.fn.modal) {
4084        $(target).modal('hide');
4085      } else {
4086        target.style.display = 'none';
4087        target.classList.remove('show');
4088        var bd = document.getElementById(id + '-bd');
4089        if (bd) bd.remove();
4090        var anyOpen = document.querySelector('.modal.show');
4091        if (!anyOpen) document.body.classList.remove('modal-open');
4092      }
4093    }
4094
4095    /* ===== DOM REFS ===== */
4096    function el(id) {
4097      return document.getElementById(id);
4098    }
4099    var overlay = el('modal-login');
4100    var loginForm = el('ml-login-form');
4101    var phoneInput = el('ml-phone');
4102    var pwdInput = el('ml-password');
4103    var submitBtn = el('ml-submit-btn');
4104    var submitText = el('ml-submit-text');
4105    var forgotTrigger = el('ml-forgot-trigger');
4106    var gotoRegister = el('ml-goto-register');
4107    var btnLineLogin = el('ml-btn-line-login');
4108    var btnContact = el('ml-btn-contact');
4109
4110    var phoneForgetInput = el('ml-phone-forget');
4111    var phoneErrForget = el('ml-phone-error-forget');
4112    var forgetBtn = el('ml-forget-btn');
4113
4114    /* ===== LOADING STATE (PopupLogin btnLoading) ===== */
4115    function setLoading(loading) {
4116      btnLoading = loading;
4117      submitBtn.disabled = loading;
4118      submitText.textContent = loading ? 'กรุณารอสักครู่' : 'เข้าสู่ระบบ';
4119    }
4120
4121    /* ===== VALIDATE & SUBMIT (PopupLogin handlerValidate) ===== */
4122    function handlerValidate(e) {
4123      if (e) e.preventDefault();
4124      if (btnLoading) return;
4125      var isPhone = checkPhone(phoneInput.value.trim());
4126      if (isPhone === true) {
4127        doLogin(phoneInput.value.trim(), pwdInput.value);
4128      } else {
4129        showSwal(isPhone, 'error');
4130      }
4131    }
4132
4133    loginForm.addEventListener('submit', handlerValidate);
4134
4135    phoneInput.addEventListener('input', function() {
4136      this.value = this.value.replace(/\D/g, '');
4137    });
4138
4139    /* ===== FORGOT PASSWORD PHONE VALIDATION (ForgotPassword handlerValidate) ===== */
4140    function validatePhoneForget() {
4141      var val = phoneForgetInput.value.trim();
4142      var isPhone = checkPhone(val);
4143      if (isPhone === true) {
4144        phoneErrForget.textContent = '';
4145        forgetBtn.disabled = false;
4146      } else {
4147        phoneErrForget.textContent = isPhone === 'กรุณากรอกเบอร์โทรศัพท์' ? '' : isPhone;
4148        forgetBtn.disabled = true;
4149      }
4150    }
4151
4152    phoneForgetInput.addEventListener('input', function() {
4153      this.value = this.value.replace(/\D/g, '');
4154      validatePhoneForget();
4155    });
4156
4157    /* ===== PASSWORD TOGGLE ===== */
4158    el('ml-toggle-password').addEventListener('click', function() {
4159      var type = pwdInput.getAttribute('type') === 'password' ? 'text' : 'password';
4160      pwdInput.setAttribute('type', type);
4161      el('ml-icon-password').innerHTML = type === 'text' ? ICON_EYE_OPEN : ICON_EYE_CLOSED;
4162    });
4163
4164    /* ===== SUBMIT LOGIN (PopupLogin login → passToLogin) ===== */
4165    async function doLogin(phone, password) {
4166      setLoading(true);
4167      var loadingStarted = Date.now();
4168      try {
4169        var jwtPayload = {
4170          phone_number: phone,
4171          password: password,
4172          iat: Math.floor(Date.now() / 1000)
4173        };
4174        var token = await signJwt(jwtPayload, CFG.jwtSecret);
4175        var res = await fetch(CFG.urlApi + '/api/login', {
4176          method: 'POST',
4177          headers: {
4178            'X-API-KEY': 'officex-homey-dev',
4179            Accept: 'application/json',
4180            'Content-Type': 'application/json'
4181          },
4182          body: JSON.stringify({
4183            token: token
4184          })
4185        });
4186        var data = await res.json();
4187        if (data.code === 0) {
4188          window.location.href = CFG.urlApi + '/login?phone_number=' + encodeURIComponent(phone) + '&password=' + encodeURIComponent(password);
4189        } else {
4190          showSwal(data.msg, 'error');
4191        }
4192      } catch (e) {
4193        showSwal('การเชื่อมต่อกับเซิร์ฟเวอร์ขัดข้อง', 'error');
4194      } finally {
4195        var elapsed = Date.now() - loadingStarted;
4196        var delay = Math.max(0, 1500 - elapsed);
4197        setTimeout(function() {
4198          setLoading(false);
4199        }, delay);
4200      }
4201    }
4202
4203    function closeForgotAndShowLogin() {
4204      bsHide('ml-modal-forgot');
4205      bsShow('modal-login');
4206    }
4207
4208    /* ===== FORGOT PASSWORD ===== */
4209    forgotTrigger.addEventListener('click', function() {
4210      phoneForgetInput.value = '';
4211      phoneErrForget.textContent = '';
4212      forgetBtn.disabled = true;
4213      bsHide('modal-login');
4214      bsShow('ml-modal-forgot');
4215    });
4216
4217    el('ml-forgot-close').addEventListener('click', function() {
4218      closeForgotAndShowLogin();
4219    });
4220
4221    forgetBtn.addEventListener('click', function() {
4222      if (forgetBtn.disabled || btnLoading) return;
4223      var isPhone = checkPhone(phoneForgetInput.value.trim());
4224      if (isPhone === true) {
4225        doForgetPassword(phoneForgetInput.value.trim());
4226      } else {
4227        showSwal(isPhone, 'error');
4228      }
4229    });
4230
4231    async function doForgetPassword(phone) {
4232      forgetBtn.disabled = true;
4233      try {
4234        var jwtPayload = {
4235          phone_number: phone,
4236          iat: Math.floor(Date.now() / 1000)
4237        };
4238        var token = await signJwt(jwtPayload, CFG.jwtSecret);
4239        var res = await fetch(CFG.urlApi + '/api//forgetPassword?type=SMS', {
4240          method: 'POST',
4241          headers: {
4242            'X-API-KEY': 'officex-homey-dev',
4243            Accept: 'application/json',
4244            'Content-Type': 'application/json'
4245          },
4246          body: JSON.stringify({
4247            token: token
4248          })
4249        });
4250        var data = await res.json();
4251        var icon = data.code === 0 ? 'success' : 'error';
4252        if (data.code === 0) {
4253          closeForgotAndShowLogin();
4254        }
4255        showSwal(data.msg, icon);
4256        forgetBtn.disabled = false;
4257      } catch (e) {
4258        showSwal('การเชื่อมต่อกับเซิร์ฟเวอร์ขัดข้อง', 'error');
4259        forgetBtn.disabled = false;
4260      }
4261    }
4262
4263    /* ===== DISABLE REGISTER MODAL ===== */
4264    el('ml-disable-close').addEventListener('click', function() {
4265      bsHide('ml-modal-disable-register');
4266    });
4267
4268    /* ===== SWITCH POPUP — login → register (PopupLogin switchPopup) ===== */
4269    var registerDisabled = false;
4270
4271    function switchToRegister() {
4272      ModalLogin.close();
4273      if (window.ModalRegister) {
4274        ModalRegister.open();
4275      } else {
4276        window.location.href = CFG.siteUrl + 'register';
4277      }
4278    }
4279
4280    function handleRegisterClick(e) {
4281      if (e) e.preventDefault();
4282      if (registerDisabled) {
4283        bsShow('ml-modal-disable-register');
4284      } else {
4285        switchToRegister();
4286      }
4287    }
4288
4289    gotoRegister.addEventListener('click', handleRegisterClick);
4290
4291    /* ===== API: PREFIX ===== */
4292    async function fetchPrefix() {
4293      if (!window._prefixPromise) {
4294        window._prefixPromise = fetch(CFG.urlApi + '/api/prefix')
4295          .then(function(res) {
4296            return res.json();
4297          })
4298          .catch(function() {
4299            window._prefixPromise = null;
4300            return null;
4301          });
4302      }
4303      return window._prefixPromise;
4304    }
4305
4306    function usePrefixData(data) {
4307      var linecontact = "https:\/\/cutt.ly\/wcpg77" ||
4308        (data.data.contact && data.data.contact.linecontact) || '';
4309      var isLineLogin = data.data.register.line_status_login;
4310      var lineClientID = data.data.line_login?.client_id || '';
4311      var isDisable = data.data.register.disable;
4312
4313      if (linecontact) {
4314        btnContact.addEventListener('click', function() {
4315          window.open(linecontact, '_blank');
4316        });
4317        el('ml-btn-disable-contact').addEventListener('click', function() {
4318          window.open(linecontact, '_blank');
4319        });
4320      }
4321
4322      if (isLineLogin && lineClientID !== '') {
4323        btnLineLogin.style.display = '';
4324        btnLineLogin.classList.add('active-line');
4325        btnLineLogin.addEventListener('click', function() {
4326          location.href = 'https://access.line.me/oauth2/v2.1/authorize?response_type=code&client_id=' + lineClientID +
4327            '&redirect_uri=' + CFG.urlApi + '/login&state=' + Date.now() + '&scope=openid profile email';
4328        });
4329      }
4330
4331      registerDisabled = !!isDisable;
4332    }
4333
4334    /* ===== AUTO LOGIN FROM URL (PopupLogin mounted) ===== */
4335    function tryAutoLoginFromQuery() {
4336      var params = new URLSearchParams(window.location.search);
4337      var queryPhone = params.get('phone_number');
4338      var queryPassword = params.get('password');
4339      if (!queryPhone || !queryPassword) return;
4340
4341      phoneInput.value = queryPhone;
4342      pwdInput.value = queryPassword;
4343
4344      var url = new URL(window.location.href);
4345      url.searchParams.delete('phone_number');
4346      url.searchParams.delete('password');
4347      window.history.replaceState({}, '', url.pathname + (url.search || '') + url.hash);
4348
4349      bsShow('modal-login');
4350      doLogin(queryPhone, queryPassword);
4351    }
4352
4353    /* ===== RESET STATE ===== */
4354    function resetAll() {
4355      phoneInput.value = '';
4356      pwdInput.value = '';
4357      pwdInput.setAttribute('type', 'password');
4358      el('ml-icon-password').innerHTML = ICON_EYE_CLOSED;
4359      setLoading(false);
4360    }
4361
4362    /* ===== INIT ===== */
4363    function init() {
4364      fetchPrefix().then(function(data) {
4365        if (data) usePrefixData(data);
4366      });
4367      tryAutoLoginFromQuery();
4368    }
4369
4370    /* ===== PUBLIC API ===== */
4371    window.ModalLogin = {
4372      /**
4373       * เปิด modal เข้าสู่ระบบ
4374       * เรียกได้จากทุกหน้า: ModalLogin.open()
4375       */
4376      open: function() {
4377        resetAll();
4378        bsShow('modal-login');
4379      },
4380      /**
4381       * ปิด modal เข้าสู่ระบบ
4382       * เรียกได้จากทุกหน้า: ModalLogin.close()
4383       */
4384      close: function() {
4385        bsHide('modal-login');
4386        bsHide('ml-modal-forgot');
4387        bsHide('ml-modal-disable-register');
4388      },
4389      /**
4390       * Override config หลัง include
4391       * ModalLogin.setConfig({ urlApi: '...', siteUrl: '...' })
4392       */
4393      setConfig: function(cfg) {
4394        Object.assign(CFG, cfg);
4395      }
4396    };
4397
4398    init();
4399  })();
4400</script>
4400		 
4401
4402<div class="bg-in-page">
4403    <div class="container">
4404        <div class="row pd-t">
4405
4406            <div class="col-md-12">
4407                <h2 class="text-center">คู่มือการใช้งาน <span class="fc-gold-g">PGSLOT77</span></h2>
4408
4409                <div class="accordion" id="accordion">
4410                    
4411                    <div class="card">
4412                        <div class="card-header" id="heading1">
4413                            <h5 class="mb-0">
4414                                <button class="btn btn-link" data-toggle="collapse"
4415                                    data-target="#collapse1" aria-expanded="true"
4416                                    aria-controls="collapse1">
4417                                    <p>คู่มือการสมัครสมาชิก</p>
4418                                </button>
4419                            </h5>
4420                        </div>
4421                        <div id="collapse1" class="collapse"
4422                            aria-labelledby="heading1" data-parent="#accordion">
4423                            <div class="card-body">
4424                                <p style="text-align: left">1. เมื่ออยู่หน้าระบบให้ท่านคลิก &#8220;สมัครสมาชิก&#8221;<br />
44252. กรอกเบอร์มือถือของท่าน<br />
44263. รหัส OTP จะส่งไปยังเบอร์ของท่าน<br />
44274. เมื่อขึ้นข้อความ &#8220;ยืนยัน OTP สำเร็จ&#8221; กดปุ่ม &#8220;OK&#8221;<br />
44285. กรอกรหัสผ่านที่ท่านต้องการ<br />
44296. เลือกบัญชีธนาคาร, กรอกเลขบัญชี และเลือกรู้จักเราช่องทางไหนกดปุ่ม &#8220;สมัครสมาชิก&#8221;</p>
4430<p><img fetchpriority="high" decoding="async" class="size-full wp-image-414 aligncenter" src="https://pgslot77.art/wp-content/uploads/2021/06/คู่มือการสมัครสมาชิก.jpg" alt="" width="1040" height="1040" srcset="https://pgslot77.art/wp-content/uploads/2021/06/คู่มือการสมัครสมาชิก.jpg 1040w, https://pgslot77.art/wp-content/uploads/2021/06/คู่มือการสมัครสมาชิก-300x300.jpg 300w, https://pgslot77.art/wp-content/uploads/2021/06/คู่มือการสมัครสมาชิก-1024x1024.jpg 1024w, https://pgslot77.art/wp-content/uploads/2021/06/คู่มือการสมัครสมาชิก-150x150.jpg 150w, https://pgslot77.art/wp-content/uploads/2021/06/คู่มือการสมัครสมาชิก-768x768.jpg 768w" sizes="(max-width: 1040px) 100vw, 1040px" /></p>
4431                            </div>
4432                        </div>
4433                    </div>
4434
4435                    
4436                    <div class="card">
4437                        <div class="card-header" id="heading2">
4438                            <h5 class="mb-0">
4439                                <button class="btn btn-link" data-toggle="collapse"
4440                                    data-target="#collapse2" aria-expanded="true"
4441                                    aria-controls="collapse2">
4442                                    <p>คู่มือการเพิ่มบัญชี</p>
4443                                </button>
4444                            </h5>
4445                        </div>
4446                        <div id="collapse2" class="collapse"
4447                            aria-labelledby="heading2" data-parent="#accordion">
4448                            <div class="card-body">
4449                                <p>1. เข้าสู่หน้าระบบคลิกไปที่ &#8220;แถบเมนูบน&#8221;</p>
4450<p>2. เลือก &#8220;ข้อมูลผู้ใช้&#8221;</p>
4451<p>3. กดปุ่ม &#8220;เพิ่มบัญชี&#8221;</p>
4452<p>4. เลือกธนาคารและกรอกเลขบัญชีธนาคารเสร็จแล้วกดปุ่ม &#8220;เพิ่มบัญชี&#8221;</p>
4453<p><img decoding="async" class="size-full wp-image-495 aligncenter" src="https://pgslot77.art/wp-content/uploads/2021/08/คู่มือการเพิ่มบัญชี.jpg" alt="" width="1040" height="1040" srcset="https://pgslot77.art/wp-content/uploads/2021/08/คู่มือการเพิ่มบัญชี.jpg 1040w, https://pgslot77.art/wp-content/uploads/2021/08/คู่มือการเพิ่มบัญชี-300x300.jpg 300w, https://pgslot77.art/wp-content/uploads/2021/08/คู่มือการเพิ่มบัญชี-1024x1024.jpg 1024w, https://pgslot77.art/wp-content/uploads/2021/08/คู่มือการเพิ่มบัญชี-150x150.jpg 150w, https://pgslot77.art/wp-content/uploads/2021/08/คู่มือการเพิ่มบัญชี-768x768.jpg 768w" sizes="(max-width: 1040px) 100v
4453w, 1040px" /></p>
4454                            </div>
4455                        </div>
4456                    </div>
4457
4458                    
4459                    <div class="card">
4460                        <div class="card-header" id="heading3">
4461                            <h5 class="mb-0">
4462                                <button class="btn btn-link" data-toggle="collapse"
4463                                    data-target="#collapse3" aria-expanded="true"
4464                                    aria-controls="collapse3">
4465                                    <p>คู่มือฝากเงินทศนิยมแบบรับโบนัส</p>
4466                                </button>
4467                            </h5>
4468                        </div>
4469                        <div id="collapse3" class="collapse"
4470                            aria-labelledby="heading3" data-parent="#accordion">
4471                            <div class="card-body">
4472                                <p><img decoding="async" class="aligncenter size-full wp-image-1866" src="https://pgslot77.art/wp-content/uploads/2023/05/PGslot77-คู่มือ-คู่มือฝากเงินทศนิยมแบบรับโบนัส.jpg" alt="" width="1040" height="1040" srcset="https://pgslot77.art/wp-content/uploads/2023/05/PGslot77-คู่มือ-คู่มือฝากเงินทศนิยมแบบรับโบนัส.jpg 1040w, https://pgslot77.art/wp-content/uploads/2023/05/PGslot77-คู่มือ-คู่มือฝากเงินทศนิยมแบบรับโบนัส-300x300.jpg 300w, https://pgslot77.art/wp-content/uploads/2023/05/PGslot77-คู่มือ-คู่มือฝากเงินทศนิยมแบบรับโบนัส-1024x1024.jpg 1024w, https://pgslot77.art/wp-content/uploads/2023/05/PGslot77-คู่มือ-คู่มือฝากเงินทศนิยมแบบรับโบนัส-150x150.jpg 150w, https://pgslot77.art/wp-content/uploads/2023/05/PGslot77-คู่มือ-คู่มือฝากเงินทศนิยมแบบรับโบนัส-768x768.jpg 768w" sizes="(max-width: 1040px) 100vw, 1040px" /></p>
4473<p>คู่มือฝากเงินทศนิยมแบบรับโบนัส</p>
4474<ul>
4475<li><span style="color: #ffffff">เข้าหน้าระบบแล้วคลิกไปที่ “ฝากเงิน”</span></li>
4476<li><span style="color: #ffffff">เลือก “เศษสตางค์”</span></li>
4477<li><span style="color: #ffffff">กดรับโบนัสและกรอกข้อมูลบัญชีที่ทำการฝากพร้อมระบุจำนวนเงินและกด“ยืนยันจำนวนเงิน”</span></li>
4478<li><span style="color: #ffffff">กด “คัดลอก” เลขบัญชีธนาคารและทำการฝากเงินในเวลาที่กำหนด</span></li>
4479</ul>
4480                            </div>
4481                        </div>
4482                    </div>
4483
4484                    
4485                    <div class="card">
4486                        <div class="card-header" id="heading4">
4487                            <h5 class="mb-0">
4488                                <button class="btn btn-link" data-toggle="collapse"
4489                                    data-target="#collapse4" aria-expanded="true"
4490                                    aria-controls="collapse4">
4491                                    <p>คู่มือฝากเงินทศนิยมแบบไม่รับโบนัส</p>
4492                                </button>
4493                            </h5>
4494                        </div>
4495                        <div id="collapse4" class="collapse"
4496                            aria-labelledby="heading4" data-parent="#accordion">
4497                            <div class="card-body">
4498                                <p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-1865" src="https://pgslot77.art/wp-content/uploads/2023/05/PGslot77-คู่มือ-คู่มือฝากเงินทศนิยมแบบไม่รับโบนัส.jpg" alt="" width="1040" height="1040" srcset="https://pgslot77.art/wp-content/uploads/2023/05/PGslot77-คู่มือ-คู่มือฝากเงินทศนิยมแบบไม่รับโบนัส.jpg 1040w, https://pgslot77.art/wp-content/uploads/2023/05/PGslot77-คู่มือ-คู่มือฝากเงินทศนิยมแบบไม่รับโบนัส-300x300.jpg 300w, https://pgslot77.art/wp-content/uploads/2023/05/PGslot77-คู่มือ-คู่มือฝากเงินทศนิยมแบบไม่รับโบนัส-1024x1024.jpg 1024w, https://pgslot77.art/wp-content/uploads/2023/05/PGslot77-คู่มือ-คู่มือฝากเงินทศนิยมแบบไม่รับโบนัส-150x150.jpg 150w, https://pgslot77.art/wp-content/uploads/2023/05/PGslot77-คู่มือ-คู่มือฝากเงินทศนิยมแบบไม่รับโบนัส-768x768.jpg 768w" sizes="(max-width: 1040px) 100v
4498w, 1040px" /></p>
4499<p>คู่มือฝากเงินทศนิยมแบบไม่รับโบนัส</p>
4500<ul>
4501<li><span style="color: #ffffff">เข้าหน้าระบบแล้วคลิกไปที่ “ฝากเงิน”</span></li>
4502<li><span style="color: #ffffff">เลือก “เศษสตางค์”</span></li>
4503<li><span style="color: #ffffff">กดไม่รับโบนัสและกรอกข้อมูลบัญชีที่ทำการฝากพร้อมระบุจำนวนเงินและกด“ยืนยันจำนวนเงิน”</span></li>
4504<li><span style="color: #ffffff">กด “คัดลอก” เลขบัญชีธนาคารและทำการฝากเงินในเวลาที่กำหนด</span></li>
4505</ul>
4506                            </div>
4507                        </div>
4508                    </div>
4509
4510                    
4511                    <div class="card">
4512                        <div class="card-header" id="heading5">
4513                            <h5 class="mb-0">
4514                                <button class="btn btn-link" data-toggle="collapse"
4515                                    data-target="#collapse5" aria-expanded="true"
4516                                    aria-controls="collapse5">
4517                                    <p>คู่มือฝากเงินออโต้แบบรับโบนัส</p>
4518                                </button>
4519                            </h5>
4520                        </div>
4521                        <div id="collapse5" class="collapse"
4522                            aria-labelledby="heading5" data-parent="#accordion">
4523                            <div class="card-body">
4524                                <p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-1868" src="https://pgslot77.art/wp-content/uploads/2023/05/PGslot77-คู่มือ-คู่มือฝากเงินออโต้แบบรับโบนัส.jpg" alt="" width="1040" height="1040" srcset="https://pgslot77.art/wp-content/uploads/2023/05/PGslot77-คู่มือ-คู่มือฝากเงินออโต้แบบรับโบนัส.jpg 1040w, https://pgslot77.art/wp-content/uploads/2023/05/PGslot77-คู่มือ-คู่มือฝากเงินออโต้แบบรับโบนัส-300x300.jpg 300w, https://pgslot77.art/wp-content/uploads/2023/05/PGslot77-คู่มือ-คู่มือฝากเงินออโต้แบบรับโบนัส-1024x1024.jpg 1024w, https://pgslot77.art/wp-content/uploads/2023/05/PGslot77-คู่มือ-คู่มือฝากเงินออโต้แบบรับโบนัส-150x150.jpg 150w, https://pgslot77.art/wp-content/uploads/2023/05/PGslot77-คู่มือ-คู่มือฝากเงินออโต้แบบรับโบนัส-768x768.jpg 768w" sizes="(max-width: 1040px) 100vw, 1040px" /></p>
4525<p>คู่มือฝากเงินออโต้แบบรับโบนัส</p>
4526<ul>
4527<li><span style="color: #ffffff">เข้าหน้าระบบแล้วคลิกไปที่ “ฝากเงิน”</span></li>
4528<li><span style="color: #ffffff">เลือก “ออโต้”</span></li>
4529<li><span style="color: #ffffff">กดรับโบนัสและกรอกข้อมูลบัญชีที่ทำการฝากพร้อมระบุจำนวนเงินและกด“ยืนยันจำนวนเงิน”</span></li>
4530<li><span style="color: #ffffff">กด “คัดลอก” เลขบัญชีธนาคารและทำการฝากเงินในเวลาที่กำหนด</span></li>
4531</ul>
4532                            </div>
4533                        </div>
4534                    </div>
4535
4536                    
4537                    <div class="card">
4538                        <div class="card-header" id="heading6">
4539                            <h5 class="mb-0">
4540                                <button class="btn btn-link" data-toggle="collapse"
4541                                    data-target="#collapse6" aria-expanded="true"
4542                                    aria-controls="collapse6">
4543                                    <p>คู่มือฝากเงินออโต้แบบไม่รับโบนัส</p>
4544                                </button>
4545                            </h5>
4546                        </div>
4547                        <div id="collapse6" class="collapse"
4548                            aria-labelledby="heading6" data-parent="#accordion">
4549                            <div class="card-body">
4550                                <p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-1867" src="https://pgslot77.art/wp-content/uploads/2023/05/PGslot77-คู่มือ-คู่มือฝากเงินออโต้แบบไม่รับโบนัส.jpg" alt="" width="1040" height="1040" srcset="https://pgslot77.art/wp-content/uploads/2023/05/PGslot77-คู่มือ-คู่มือฝากเงินออโต้แบบไม่รับโบนัส.jpg 1040w, https://pgslot77.art/wp-content/uploads/2023/05/PGslot77-คู่มือ-คู่มือฝากเงินออโต้แบบไม่รับโบนัส-300x300.jpg 300w, https://pgslot77.art/wp-content/uploads/2023/05/PGslot77-คู่มือ-คู่มือฝากเงินออโต้แบบไม่รับโบนัส-1024x1024.jpg 1024w, https://pgslot77.art/wp-content/uploads/2023/05/PGslot77-คู่มือ-คู่มือฝากเงินออโต้แบบไม่รับโบนัส-150x150.jpg 150w, https://pgslot77.art/wp-content/uploads/2023/05/PGslot77-คู่มือ-คู่มือฝากเงินออโต้แบบไม่รับโบนัส-768x768.jpg 768w" sizes="(max-width: 1040px) 100v
4550w, 1040px" /></p>
4551<p>คู่มือฝากเงินออโต้แบบไม่รับโบนัส</p>
4552<ul>
4553<li><span style="color: #ffffff">เข้าหน้าระบบแล้วคลิกไปที่ “ฝากเงิน”</span></li>
4554<li><span style="color: #ffffff">เลือก “ออโต้”</span></li>
4555<li><span style="color: #ffffff">กดรับโบนัสและกรอกข้อมูลบัญชีที่ทำการฝากพร้อมระบุจำนวนเงินและกด“ยืนยันจำนวนเงิน”</span></li>
4556<li><span style="color: #ffffff">กด “คัดลอก” เลขบัญชีธนาคารและทำการฝากเงินในเวลาที่กำหนด</span></li>
4557</ul>
4558                            </div>
4559                        </div>
4560                    </div>
4561
4562                    
4563                    <div class="card">
4564                        <div class="card-header" id="heading7">
4565                            <h5 class="mb-0">
4566                                <button class="btn btn-link" data-toggle="collapse"
4567                                    data-target="#collapse7" aria-expanded="true"
4568                                    aria-controls="collapse7">
4569                                    <p>คู่มือการฝากแบบเศษสตางค์</p>
4570                                </button>
4571                            </h5>
4572                        </div>
4573                        <div id="collapse7" class="collapse"
4574                            aria-labelledby="heading7" data-parent="#accordion">
4575                            <div class="card-body">
4576                                <p style="text-align: left">1. เข้าสู่ระบบ Pgslot77 เข้าไปที่ &#8220;ฝากเงิน&#8221;</p>
4577<p style="text-align: left">2. เลือก &#8220;เศษสตางค์&#8221;</p>
4578<p style="text-align: left">3. กรอกจำนวนเงินที่ต้องการฝากและคลิก &#8220;ยืนยันจำนวนเงิน&#8221;</p>
4579<p style="text-align: left">4. ท่านต้องฝากตามจำนวนที่แสดงภายในเวลาที่กำหนด</p>
4580<p><img loading="lazy" decoding="async" class="size-full wp-image-426 aligncenter" src="https://pgslot77.art/wp-content/uploads/2021/06/คู่มือการฝากแบบเศษสตางค์.jpg" alt="" width="1040" height="1040" srcset="https://pgslot77.art/wp-content/uploads/2021/06/คู่มือการฝากแบบเศษสตางค์.jpg 1040w, https://pgslot77.art/wp-content/uploads/2021/06/คู่มือการฝากแบบเศษสตางค์-300x300.jpg 300w, https://pgslot77.art/wp-content/uploads/2021/06/คู่มือการฝากแบบเศษสตางค์-1024x1024.jpg 1024w, https://pgslot77.art/wp-content/uploads/2021/06/คู่มือการฝากแบบเศษสตางค์-150x150.jpg 150w, https://pgslot77.art/wp-content/uploads/2021/06/คู่มือการฝากแบบเศษสตางค์-768x768.jpg 768w" sizes="(max-width: 1040px) 100vw, 1040px" /></p>
4581                            </div>
4582                        </div>
4583                    </div>
4584
4585                    
4586                    <div class="card">
4587                        <div class="card-header" id="heading8">
4588                            <h5 class="mb-0">
4589                                <button class="btn btn-link" data-toggle="collapse"
4590                                    data-target="#collapse8" aria-expanded="true"
4591                                    aria-controls="collapse8">
4592                                    <p>คู่มือการฝากเงิน QR-PAY</p>
4593                                </button>
4594                            </h5>
4595                        </div>
4596                        <div id="collapse8" class="collapse"
4597                            aria-labelledby="heading8" data-parent="#accordion">
4598                            <div class="card-body">
4599                                <p style="text-align: left">1. เข้าสู่ระบบ Pgslot77 เข้าไปที่ &#8220;ฝากเงิน&#8221;</p>
4600<p style="text-align: left">2. เลือก &#8220;ฝากผ่าน QR Pay&#8221;</p>
4601<p style="text-align: left">3. กรอกจำนวนเงินที่ต้องการฝากและคลิก &#8220;ยืนยันการทำรายการ&#8221;</p>
4602<p style="text-align: left">4. เลือก PromptPay</p>
4603<p>5.ระบบจะแสดง QR CODE สแกนฝากเงินได้เลย</p>
4604<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-3881" src="https://pgslot77.art/wp-content/uploads/2023/12/2566-12-07-11.01.01.jpg" alt="" width="1040" height="1040" srcset="https://pgslot77.art/wp-content/uploads/2023/12/2566-12-07-11.01.01.jpg 1040w, https://pgslot77.art/wp-content/uploads/2023/12/2566-12-07-11.01.01-300x300.jpg 300w, https://pgslot77.art/wp-content/uploads/2023/12/2566-12-07-11.01.01-1024x1024.jpg 1024w, https://pgslot77.art/wp-content/uploads/2023/12/2566-12-07-11.01.01-150x150.jpg 150w, https://pgslot77.art/wp-content/uploads/2023/12/2566-12-07-11.01.01-768x768.jpg 768w" sizes="(max-width: 1040px) 100v
4604w, 1040px" /></p>
4605                            </div>
4606                        </div>
4607                    </div>
4608
4609                    
4610                    <div class="card">
4611                        <div class="card-header" id="heading88">
4612                            <h5 class="mb-0">
4613                                <button class="btn btn-link" data-toggle="collapse"
4614                                    data-target="#collapse88" aria-expanded="true"
4615                                    aria-controls="collapse88">
4616                                    <p>คู่มือการฝากเงิน TrueWallet</p>
4617                                </button>
4618                            </h5>
4619                        </div>
4620                        <div id="collapse88" class="collapse"
4621                            aria-labelledby="heading88" data-parent="#accordion">
4622                            <div class="card-body">
4623                                <p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-4270" src="https://pgslot77.art/wp-content/uploads/2024/02/ezgif.com-webp-maker.webp" alt="" width="1040" height="1040" srcset="https://pgslot77.art/wp-content/uploads/2024/02/ezgif.com-webp-maker.webp 1040w, https://pgslot77.art/wp-content/uploads/2024/02/ezgif.com-webp-maker-300x300.webp 300w, https://pgslot77.art/wp-content/uploads/2024/02/ezgif.com-webp-maker-1024x1024.webp 1024w, https://pgslot77.art/wp-content/uploads/2024/02/ezgif.com-webp-maker-150x150.webp 150w, https://pgslot77.art/wp-content/uploads/2024/02/ezgif.com-webp-maker-768x768.webp 768w" sizes="(max-width: 1040px) 100vw, 1040px" /></p>
4624<p><span style="color: #ffffff">1.ไปที่ &#8220;<strong>ฝากเงิน</strong>&#8220;</span></p>
4625<p><span style="color: #ffffff">2.เลือกไปที่ &#8220;<strong>ฝาก TrueWallet</strong>&#8220;</span></p>
4626<p><span style="color: #ffffff">3.<span style="font-weight: 400">เลือก “</span><b>รับโบนัส</b><b>หรือไม่รับโบนัส”</b></span></p>
4627<p><span style="font-weight: 400;color: #ffffff">คัดลอกเลขบัญชีเพื่อทำการฝากเงิน</span></p>
4628<p><span style="font-weight: 400;color: #ffffff">และต้องใช้เบอร์เดียวกันกับที่</span></p>
4629<p><span style="font-weight: 400;color: #ffffff">สมัครสมาชิก ฝากเงินเข้ามาเท่านั้น</span></p>
4630                            </div>
4631                        </div>
4632                    </div>
4633
4634                    
4635                    <div class="card">
4636                        <div class="card-header" id="heading888">
4637                            <h5 class="mb-0">
4638                                <button class="btn btn-link" data-toggle="collapse"
4639                                    data-target="#collapse888" aria-expanded="true"
4640                                    aria-controls="collapse888">
4641                                    <p>คู่มือการฝากเงิน TrueWallet แบบซองของขวัญ</p>
4642                                </button>
4643                            </h5>
4644                        </div>
4645                        <div id="collapse888" class="collapse"
4646                            aria-labelledby="heading888" data-parent="#accordion">
4647                            <div class="card-body">
4648                                <p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-4271" src="https://pgslot77.art/wp-content/uploads/2024/02/ezgif.com-webp-maker-1.webp" alt="" width="1040" height="1040" srcset="https://pgslot77.art/wp-content/uploads/2024/02/ezgif.com-webp-maker-1.webp 1040w, https://pgslot77.art/wp-content/uploads/2024/02/ezgif.com-webp-maker-1-300x300.webp 300w, https://pgslot77.art/wp-content/uploads/2024/02/ezgif.com-webp-maker-1-1024x1024.webp 1024w, https://pgslot77.art/wp-content/uploads/2024/02/ezgif.com-webp-maker-1-150x150.webp 150w, https://pgslot77.art/wp-content/uploads/2024/02/ezgif.com-webp-maker-1-768x768.webp 768w" sizes="(max-width: 1040px) 100v
4648w, 1040px" /></p>
4649<p><span style="color: #ffffff">1.เข้าแอป TrueMoney เลือกเมนู “ดูทั้งหมด”</span></p>
4650<p><span style="color: #ffffff">2.เลือกเมนูโอนเงิน กด “ส่งซองของขวัญ”</span></p>
4651<p><span style="color: #ffffff">3.กรอกยอดที่ต้องการเติม และจำนวนซองเป็น 1 เท่านั้น และกดสร้าง</span></p>
4652<p><span style="color: #ffffff">4.กดคัดลอกลิงก์เพื่อนำมาเติมในเว็บ</span></p>
4653<p><span style="color: #ffffff">5.เข้าสู่ระบบ ไปที่ “ฝากเงินแบบรับซองของขวัญ”</span></p>
4654<p><span style="color: #ffffff">6.วางลิงก์ที่คัดลอกเพื่อรับรางวัล</span></p>
4655                            </div>
4656                        </div>
4657                    </div>
4658
4659                    
4660                    <div class="card">
4661                        <div class="card-header" id="heading9">
4662                            <h5 class="mb-0">
4663                                <button class="btn btn-link" data-toggle="collapse"
4664                                    data-target="#collapse9" aria-expanded="true"
4665                                    aria-controls="collapse9">
4666                                    <p>คู่มือการรับการแจ้งเตือนต่างๆ</p>
4667                                </button>
4668                            </h5>
4669                        </div>
4670                        <div id="collapse9" class="collapse"
4671                            aria-labelledby="heading9" data-parent="#accordion">
4672                            <div class="card-body">
4673                                <p style="text-align: left">1. กด &#8220;เพิ่มเพื่อน&#8221;</p>
4674<p style="text-align: left">2. กดเมนู &#8220;เปิดแจ้งเตือน&#8221; และกรอกเบอร์ของท่านเพื่อทำการเปิดระบบ</p>
4675<p>3. กดเมนู &#8220;ฝากเงิน&#8221; ท่านจะเห็นบัญชีธนาคารที่ทำการฝากได้</p>
4676<p>4. กดเมนู &#8220;ถอนเงิน&#8221;  ระบบจะขึ้นยอดถอนของท่าน</p>
4677<p>5. กดเมนู &#8220;ตั้งค่าโบนัส&#8221; ท่านสามารถปิดโบนัสได้เลยค่ะ</p>
4678<p>6. กดเมนู &#8220;สถานะเกม&#8221; ระบบจะขึ้นสถานะเกมขณะนี้ค่ะ</p>
4679<p>7. กดเมนู &#8220;สถานะธนาคาร&#8221; ระบบจะขึ้นสถานะล่าสุดค่ะ</p>
4680<p>8. กดเมนู &#8220;เช็คยอดเงิน&#8221; ระบบจะขึ้นเครดิตคงเหลือของท่าน</p>
4681<p>9. กดเมนู &#8220;คำถามที่พบบ่อย&#8221; ระบบจะขึ้นคำถามที่พบบ่อยมาให้ค่ะ</p>
4682<p>10. กดเมนู &#8220;ติดต่อพนักงาน&#8221; ระบบจะให้ติดต่อพนักงานได้เลยค่ะ</p>
4683<p><img loading="lazy" decoding="async" class="size-full wp-image-419 aligncenter" src="https://pgslot77.art/wp-content/uploads/2021/06/คู่มือ-Line-alert-1.jpg" alt="" width="1040" height="1040" srcset="https://pgslot77.art/wp-content/uploads/2021/06/คู่มือ-Line-alert-1.jpg 1040w, https://pgslot77.art/wp-content/uploads/2021/06/คู่มือ-Line-alert-1-300x300.jpg 300w, https://pgslot77.art/wp-content/uploads/2021/06/คู่มือ-Line-alert-1-1024x1024.jpg 1024w, https://pgslot77.art/wp-content/uploads/2021/06/คู่มือ-Line-alert-1-150x150.jpg 150w, https://pgslot77.art/wp-content/uploads/2021/06/คู่มือ-Line-alert-1-768x768.jpg 768w" sizes="(max-width: 1040px) 100v
4683w, 1040px" /></p>
4684<p><img loading="lazy" decoding="async" class="size-full wp-image-420 aligncenter" src="https://pgslot77.art/wp-content/uploads/2021/06/คู่มือ-Line-alert-2.jpg" alt="" width="1040" height="1040" srcset="https://pgslot77.art/wp-content/uploads/2021/06/คู่มือ-Line-alert-2.jpg 1040w, https://pgslot77.art/wp-content/uploads/2021/06/คู่มือ-Line-alert-2-300x300.jpg 300w, https://pgslot77.art/wp-content/uploads/2021/06/คู่มือ-Line-alert-2-1024x1024.jpg 1024w, https://pgslot77.art/wp-content/uploads/2021/06/คู่มือ-Line-alert-2-150x150.jpg 150w, https://pgslot77.art/wp-content/uploads/2021/06/คู่มือ-Line-alert-2-768x768.jpg 768w" sizes="(max-width: 1040px) 100vw, 1040px" /></p>
4685<p><img loading="lazy" decoding="async" class="size-full wp-image-421 aligncenter" src="https://pgslot77.art/wp-content/uploads/2021/06/คู่มือ-Line-alert-9-10.jpg" alt="" width="1040" height="1040" srcset="https://pgslot77.art/wp-content/uploads/2021/06/คู่มือ-Line-alert-9-10.jpg 1040w, https://pgslot77.art/wp-content/uploads/2021/06/คู่มือ-Line-alert-9-10-300x300.jpg 300w, https://pgslot77.art/wp-content/uploads/2021/06/คู่มือ-Line-alert-9-10-1024x1024.jpg 1024w, https://pgslot77.art/wp-content/uploads/2021/06/คู่มือ-Line-alert-9-10-150x150.jpg 150w, https://pgslot77.art/wp-content/uploads/2021/06/คู่มือ-Line-alert-9-10-768x768.jpg 768w" sizes="(max-width: 1040px) 100vw, 1040px" /></p>
4686                            </div>
4687                        </div>
4688                    </div>
4689
4690                    
4691                    <div class="card">
4692                        <div class="card-header" id="heading10">
4693                            <h5 class="mb-0">
4694                                <button class="btn btn-link" data-toggle="collapse"
4695                                    data-target="#collapse10" aria-expanded="true"
4696                                    aria-controls="collapse10">
4697                                    <p>คู่มือการถอนเงิน</p>
4698                                </button>
4699                            </h5>
4700                        </div>
4701                        <div id="collapse10" class="collapse"
4702                            aria-labelledby="heading10" data-parent="#accordion">
4703                            <div class="card-body">
4704                                <p style="text-align: left">1. เมื่อทำการ &#8220;เข้าสู่ระบบ&#8221; เรียบร้อยแล้ว ให้กดไปที่ &#8220;ถอนเงิน&#8221;</p>
4705<p style="text-align: left">2. กรอกจำนวนเงินที่ต้องการถอนและคลิก &#8220;ยืนยันการถอน&#8221;</p>
4706<p style="text-align: left">3. เมื่อยืนยันแล้ว Line ALERT จะแจ้งเตือนให้ท่านทราบ</p>
4707<p><img loading="lazy" decoding="async" class="size-full wp-image-422 aligncenter" src="https://pgslot77.art/wp-content/uploads/2021/06/คู่มือการถอนเงิน.jpg" alt="" width="1040" height="1040" srcset="https://pgslot77.art/wp-content/uploads/2021/06/คู่มือการถอนเงิน.jpg 1040w, https://pgslot77.art/wp-content/uploads/2021/06/คู่มือการถอนเงิน-300x300.jpg 300w, https://pgslot77.art/wp-content/uploads/2021/06/คู่มือการถอนเงิน-1024x1024.jpg 1024w, https://pgslot77.art/wp-content/uploads/2021/06/คู่มือการถอนเงิน-150x150.jpg 150w, https://pgslot77.art/wp-content/uploads/2021/06/คู่มือการถอนเงิน-768x768.jpg 768w" sizes="(max-width: 1040px) 100vw, 1040px" /></p>
4708                            </div>
4709                        </div>
4710                    </div>
4711
4712                    
4713                    <div class="card">
4714                        <div class="card-header" id="heading11">
4715                            <h5 class="mb-0">
4716                                <button class="btn btn-link" data-toggle="collapse"
4717                                    data-target="#collapse11" aria-expanded="true"
4718                                    aria-controls="collapse11">
4719                                    <p>วิธีการเช็คอินรับ 20 ทอง</p>
4720                                </button>
4721                            </h5>
4722                        </div>
4723                        <div id="collapse11" class="collapse"
4724                            aria-labelledby="heading11" data-parent="#accordion">
4725                            <div class="card-body">
4726                                <p style="text-align: left">1. คลิก &#8220;เช็คอินรับทอง&#8221;</p>
4727<p style="text-align: left">2. กดเช็คชื่อที่ปฏิทินตามวันที่เมื่อมียอดเล่นสะสมครบ 300 บาท</p>
4728<p style="text-align: left">3. กดเช็คชื่อครบ 3 วัน รับ 20 ทองทันที</p>
4729<p>หมายเหตุ : ห้ามลืมเช็คอินเด็ดขาด ไม่งั้นต้องเริ่มนับใหม่น้า</p>
4730<p style="text-align: left"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-631" src="https://pgslot77.art/wp-content/uploads/2022/02/เช็คอินรับทอง_pgslot77.jpg" alt="" width="1040" height="1040" srcset="https://pgslot77.art/wp-content/uploads/2022/02/เช็คอินรับทอง_pgslot77.jpg 1040w, https://pgslot77.art/wp-content/uploads/2022/02/เช็คอินรับทอง_pgslot77-300x300.jpg 300w, https://pgslot77.art/wp-content/uploads/2022/02/เช็คอินรับทอง_pgslot77-1024x1024.jpg 1024w, https://pgslot77.art/wp-content/uploads/2022/02/เช็คอินรับทอง_pgslot77-150x150.jpg 150w, https://pgslot77.art/wp-content/uploads/2022/02/เช็คอินรับทอง_pgslot77-768x768.jpg 768w" sizes="(max-width: 1040px) 100v
4730w, 1040px" /></p>
4731                            </div>
4732                        </div>
4733                    </div>
4734
4735                    
4736                    <div class="card">
4737                        <div class="card-header" id="heading12">
4738                            <h5 class="mb-0">
4739                                <button class="btn btn-link" data-toggle="collapse"
4740                                    data-target="#collapse12" aria-expanded="true"
4741                                    aria-controls="collapse12">
4742                                    <p>วิธีการขอรหัสผ่านใหม่ (ลืมรหัสผ่าน)</p>
4743                                </button>
4744                            </h5>
4745                        </div>
4746                        <div id="collapse12" class="collapse"
4747                            aria-labelledby="heading12" data-parent="#accordion">
4748                            <div class="card-body">
4749                                <p>1. เข้าสู่หน้าเว็บ Pgslot77 กดปุ่ม &#8220;ลืมรหัสผ่าน&#8221;</p>
4750<p>2. กรอกเบอร์โทรศัพท์ของคุณและกดปุ่ม &#8220;ส่งคำขอรหัสผ่าน&#8221;</p>
4751<p>3. ระบบจะส่งรหัสผ่านไปยังเบอร์ของคุณกดปุ่ม &#8220;OK&#8221;</p>
4752<p><img loading="lazy" decoding="async" class="size-full wp-image-502 aligncenter" src="https://pgslot77.art/wp-content/uploads/2021/08/S__6234198.jpg" alt="" width="1040" height="1040" srcset="https://pgslot77.art/wp-content/uploads/2021/08/S__6234198.jpg 1040w, https://pgslot77.art/wp-content/uploads/2021/08/S__6234198-300x300.jpg 300w, https://pgslot77.art/wp-content/uploads/2021/08/S__6234198-1024x1024.jpg 1024w, https://pgslot77.art/wp-content/uploads/2021/08/S__6234198-150x150.jpg 150w, https://pgslot77.art/wp-content/uploads/2021/08/S__6234198-768x768.jpg 768w" sizes="(max-width: 1040px) 100vw, 1040px" /></p>
4753                            </div>
4754                        </div>
4755                    </div>
4756
4757                    
4758                    <div class="card">
4759                        <div class="card-header" id="heading13">
4760                            <h5 class="mb-0">
4761                                <button class="btn btn-link" data-toggle="collapse"
4762                                    data-target="#collapse13" aria-expanded="true"
4763                                    aria-controls="collapse13">
4764                                    <p>โปรโมชั่นวันเกิดรับเครดิต 300 บาท</p>
4765                                </button>
4766                            </h5>
4767                        </div>
4768                        <div id="collapse13" class="collapse"
4769                            aria-labelledby="heading13" data-parent="#accordion">
4770                            <div class="card-body">
4771                                <p>1.เป็นสมาชิกมากกว่า 15 วัน และมียอดฝากสะสม 300 บาทขึ้นไป (ฝากแบบรับโบนัส)</p>
4772<p>2.กดไลค์เพจ PG slot77 v. 2 ไลค์&amp;แชร์โพสต์ที่ปักหมุดหน้าเพจ ไปยังกลุ่มสล็อตสาธารณะ ที่มีสมาชิก 1000 คนขึ้นไป 5 กลุ่ม<br />
47733.ถ่ายรูปเซลฟี่กับบัตรประชาชน ที่มีชื่อ-นามสกุล ตรงกับข้อมูลที่ใช้สมัครสมาชิก และกดเข้ากลุ่ม &#8216;PGSLOT77 &#8216;<br />
47744.ส่งรูปเซลฟี่กับบัตรประชาชน พร้อมหลักฐานการแชร์ให้แอดมินตรวจสอบได้เลย</p>
4775<p>(รับได้เฉพาะวันเกิดเท่านั้น)</p>
4776<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-632" src="https://pgslot77.art/wp-content/uploads/2022/02/ขั้นตอนการรับโปรโมชั่นวันเกิด_pgslot77.jpg" alt="" width="1040" height="1040" srcset="https://pgslot77.art/wp-content/uploads/2022/02/ขั้นตอนการรับโปรโมชั่นวันเกิด_pgslot77.jpg 1040w, https://pgslot77.art/wp-content/uploads/2022/02/ขั้นตอนการรับโปรโมชั่นวันเกิด_pgslot77-300x300.jpg 300w, https://pgslot77.art/wp-content/uploads/2022/02/ขั้นตอนการรับโปรโมชั่นวันเกิด_pgslot77-1024x1024.jpg 1024w, https://pgslot77.art/wp-content/uploads/2022/02/ขั้นตอนการรับโปรโมชั่นวันเกิด_pgslot77-150x150.jpg 150w, https://pgslot77.art/wp-content/uploads/2022/02/ขั้นตอนการรับโปรโมชั่นวันเกิด_pgslot77-768x768.jpg 768w" sizes="(max-width: 1040px) 100v
4776w, 1040px" /></p>
4777                            </div>
4778                        </div>
4779                    </div>
4780
4781                    
4782                    <div class="card">
4783                        <div class="card-header" id="heading14">
4784                            <h5 class="mb-0">
4785                                <button class="btn btn-link" data-toggle="collapse"
4786                                    data-target="#collapse14" aria-expanded="true"
4787                                    aria-controls="collapse14">
4788                                    <p>คู่มือแนะนำเพื่อน</p>
4789                                </button>
4790                            </h5>
4791                        </div>
4792                        <div id="collapse14" class="collapse"
4793                            aria-labelledby="heading14" data-parent="#accordion">
4794                            <div class="card-body">
4795                                <p>1.เลือกไอคอนแนะนำเพื่อน</p>
4796<p>2.คัดลอกลิงก์และส่งให้เพื่อนสมัครได้เลย</p>
4797<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-656" src="https://pgslot77.art/wp-content/uploads/2022/03/คู่มือแนะนำเพื่อน_pgslot77.jpg" alt="" width="1040" height="1040" srcset="https://pgslot77.art/wp-content/uploads/2022/03/คู่มือแนะนำเพื่อน_pgslot77.jpg 1040w, https://pgslot77.art/wp-content/uploads/2022/03/คู่มือแนะนำเพื่อน_pgslot77-300x300.jpg 300w, https://pgslot77.art/wp-content/uploads/2022/03/คู่มือแนะนำเพื่อน_pgslot77-1024x1024.jpg 1024w, https://pgslot77.art/wp-content/uploads/2022/03/คู่มือแนะนำเพื่อน_pgslot77-150x150.jpg 150w, https://pgslot77.art/wp-content/uploads/2022/03/คู่มือแนะนำเพื่อน_pgslot77-768x768.jpg 768w" sizes="(max-width: 1040px) 100vw, 1040px" /></p>
4798                            </div>
4799                        </div>
4800                    </div>
4801
4802                                    </div>
4803            </div>
4804
4805        </div>
4806    </div>
4807</div>
4808
4809
4810
4811
4812
4813    
4813<script type="speculationrules">
4814{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/Theme-re-pgslot77/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
4815</script>
4815
4816			
4816<script type="rocketlazyloadscript" data-rocket-type='text/javascript'>
4817				const lazyloadRunObserver = () => {
4818					const lazyloadBackgrounds = document.querySelectorAll( `.e-con.e-parent:not(.e-lazyloaded)` );
4819					const lazyloadBackgroundObserver = new IntersectionObserver( ( entries ) => {
4820						entries.forEach( ( entry ) => {
4821							if ( entry.isIntersecting ) {
4822								let lazyloadBackground = entry.target;
4823								if( lazyloadBackground ) {
4824									lazyloadBackground.classList.add( 'e-lazyloaded' );
4825								}
4826								lazyloadBackgroundObserver.unobserve( entry.target );
4827							}
4828						});
4829					}, { rootMargin: '200px 0px 200px 0px' } );
4830					lazyloadBackgrounds.forEach( ( lazyloadBackground ) => {
4831						lazyloadBackgroundObserver.observe( lazyloadBackground );
4832					} );
4833				};
4834				const events = [
4835					'DOMContentLoaded',
4836					'elementor/lazyload/observe',
4837				];
4838				events.forEach( ( event ) => {
4839					document.addEventListener( event, lazyloadRunObserver );
4840				} );
4841			</script>
4841
4842			
4842<script type="rocketlazyloadscript" id="seed-social-js" data-rocket-src="https://pgslot77.art/wp-content/plugins/seed-social/script.js?ver=2021.02"></script>
vendor: 1 bytes, line 4842
4842
4843<script type="rocketlazyloadscript" id="moment-js" data-rocket-src="https://pgslot77.art/wp-includes/js/dist/vendor/moment.min.js?ver=2.30.1"></script>
vendor: 1 bytes, line 4843
4843
4844<script type="rocketlazyloadscript" id="moment-js-after">
4845moment.updateLocale( 'th', {"months":["\u0e21\u0e01\u0e23\u0e32\u0e04\u0e21","\u0e01\u0e38\u0e21\u0e20\u0e32\u0e1e\u0e31\u0e19\u0e18\u0e4c","\u0e21\u0e35\u0e19\u0e32\u0e04\u0e21","\u0e40\u0e21\u0e29\u0e32\u0e22\u0e19","\u0e1e\u0e24\u0e29\u0e20\u0e32\u0e04\u0e21","\u0e21\u0e34\u0e16\u0e38\u0e19\u0e32\u0e22\u0e19","\u0e01\u0e23\u0e01\u0e0e\u0e32\u0e04\u0e21","\u0e2a\u0e34\u0e07\u0e2b\u0e32\u0e04\u0e21","\u0e01\u0e31\u0e19\u0e22\u0e32\u0e22\u0e19","\u0e15\u0e38\u0e25\u0e32\u0e04\u0e21","\u0e1e\u0e24\u0e28\u0e08\u0e34\u0e01\u0e32\u0e22\u0e19","\u0e18\u0e31\u0e19\u0e27\u0e32\u0e04\u0e21"],"monthsShort":["\u0e21.\u0e04.","\u0e01.\u0e1e.","\u0e21\u0e35.\u0e04.","\u0e40\u0e21.\u0e22.","\u0e1e.\u0e04.","\u0e21\u0e34.\u0e22.","\u0e01.\u0e04.","\u0e2a.\u0e04.","\u0e01.\u0e22.","\u0e15.\u0e04.","\u0e1e.\u0e22.","\u0e18.\u0e04."],"weekdays":["\u0e27\u0e31\u0e19\u0e2d\u0e32\u0e17\u0e34\u0e15\u0e22\u0e4c","\u0e27\u0e31\u0e19\u0e08\u0e31\u0e19\u0e17\u0e23\u0e4c","\u0e27\u0e31\u0e19\u0e2d\u0e31\u0e07\u0e04\u0e32\u0e23","\u0e27\u0e31\u0e19\u0e1e\u0e38\u0e18","\u0e27\u0e31\u0e19\u0e1e\u0e24\u0e2b\u0e31\u0e2a\u0e1a\u0e14\u0e35","\u0e27\u0e31\u0e19\u0e28\u0e38\u0e01\u0e23\u0e4c","\u0e27\u0e31\u0e19\u0e40\u0e2a\u0e32\u0e23\u0e4c"],"weekdaysShort":["\u0e2d\u0e32\u0e17\u0e34\u0e15\u0e22\u0e4c","\u0e08\u0e31\u0e19\u0e17\u0e23\u0e4c","\u0e2d\u0e31\u0e07\u0e04\u0e32\u0e23","\u0e1e\u0e38\u0e18","\u0e1e\u0e24\u0e2b\u0e31\u0e2a","\u0e28\u0e38\u0e01\u0e23\u0e4c","\u0e40\u0e2a\u0e32\u0e23\u0e4c"],"week":{"dow":1},"longDateFormat":{"LT":"g:i a","LTS":null,"L":null,"LL":"F j, Y","LLL":"j F Y G:i \u0e19.","LLLL":null}} );
4846//# sourceURL=moment-js-after
4847</script>
4847
4848
4849
4850    <div class="nav-aba-wrap bg-black">
4851	<div class="item-pc">
4852            <div class="game-aba-item w-100 d-flex flex-wrap align-items-center justify-content-around">     		
4853				              </div>
4854		</div>
4855
4856        <div class="item-mobile">
4857            <div class="container">
4858                <div class="head-brand-flex w-100 d-flex align-items-center">
4859                    <div id="responsive-brand" class="brand-mobile" style="padding-left:15px;"> 					
4860						    			
4861                    </div>
4862                </div>
4863            </div>
4864        </div>
4865    </div>
4866
4867    <footer class="main-foot" style="    position: relative;">
4868        <div class="container">
4869            <div class="footer-item d-flex flex-wrap align-items-center justify-content-center">
4870                <div class="info-hubslotxo d-flex flex-wrap align-items-top">
4871                    <figure class="foot-logo">
4872                        <img src="https://pgslot77.art/wp-content/themes/Theme-re-pgslot77/assets/img/logo-pgslot77-main.png">
4873                    </figure>
4874                    <div class="text-box">
4875                        <h1 class="fc-gold-g">PGSLOT</h1>
4876                        <p>
4877                            PGSLOT ระบบเติม ถอน เครดิต อัตโนมัติ โดยไม่ต้องผ่าน Call Center
4878                            พบกับประสบการณ์ใหม่ในการสมัครสมาชิก ฝาก ถอน เครดิต ด้วยตัวเองกับระบบอัตโนมัติรวดเร็ว ปลอดภัย
4879                            ระบบสมบูรณ์ 100% สล็อตออนไลน์เจ้าแรกแห่งประเทศไทย พร้อมให้บริการแล้ว
4880                        </p>
4881                        <h3 class="fc-gold-g pt-3">เมนูลัด</h3>
4882                        <ul class="shortcut-menu">
4883                            <li>
4884                                <a href="https://pgslot77.art/category/slot/">บทความ</a>
4885                            </li>
4886                            <li>
4887                                <a href="https://pgslot77.art/download/">ดาวน์โหลด</a>
4888                            </li>
4889                        </ul>
4890                    </div>
4891                </div>
4892                <div class="interract-foot ">
4893                    <h2 class="fc-gold-g">เล่น PGSLOT77</h2>
4894                    <ul class="button-foot">
4895                        <li>
4896<!--                             <a data-toggle="modal" data-target="#exampleModal2222" style="cursor:pointer;"> -->
4897							<a href="https://pgslot77.pglst.com/login">
4898                                <img src="https://pgslot77.art/wp-content/themes/Theme-re-pgslot77/assets/img/button-4-1.png">
4899                            </a>
4900                        </li>
4901                    </ul>
4902                    <h2 class="fc-gold-g pt-3">ติดต่อเรา PGSLOT77</h2>
4903                    <ul class="download-foot">
4904                        <li>
4905                            <a href="https://cutt.ly/facebookpg77">
4906                                <img src="https://pgslot77.art/wp-content/themes/Theme-re-pgslot77/assets/img/face-popup-fixed.png">
4907                            </a>
4908                        </li>
4909                        <li>
4910                            <a href="https://cutt.ly/wcpg77">
4911                                <img src="https://pgslot77.art/wp-content/themes/Theme-re-pgslot77/assets/img/line-popup-fixed.png">
4912                            </a>
4913                        </li>
4914                    </ul>
4915                </div>
4916            </div>
4917            <p class="pt-3 foot text-center">
4918                COPYRIGHT 2019 WWW.PGSLOT77.COM
4919                <a href="https://www.dmca.com/Protection/Status.aspx?ID=52f37f18-c647-4f03-a771-381e31d7d3ec&amp;refurl=https://pgslot77.com/"
4920                    title="DMCA.com Protection Status" class="dmca-badge"> <img
4921                        src="https://images.dmca.com/Badges/dmca-badge-w100-5x1-06.png?ID=52f37f18-c647-4f03-a771-381e31d7d3e
4921c"
4922                        alt="DMCA.com Protection Status"></a>
4923                
4923<script type="rocketlazyloadscript" data-rocket-src="https://images.dmca.com/Badges/DMCABadgeHelper.min.js"> </script>
4923
4924            </p>
4925        </div>
4926
4927    </footer>
4928    
4929  
4930
4931    
4931<script>class RocketElementorAnimation{constructor(){this.deviceMode=document.createElement("span"),this.deviceMode.id="elementor-device-mode-wpr",this.deviceMode.setAttribute("class","elementor-screen-only"),document.body.appendChild(this.deviceMode)}_detectAnimations(){let t=getComputedStyle(this.deviceMode,":after").content.replace(/"/g,"");this.animationSettingKeys=this._listAnimationSettingsKeys(t),document.querySelectorAll(".elementor-invisible[data-settings]").forEach(t=>{const e=t.getBoundingClientRect();if(e.bottom>=0&&e.top<=window.innerHeight)try{this._animateElement(t)}catch(t){}})}_animateElement(t){const e=JSON.parse(t.dataset.settings),i=e._animation_delay||e.animation_delay||0,n=e[this.animationSettingKeys.find(t=>e[t])];if("none"===n)return void t.classList.remove("elementor-invisible");t.classList.remove(n),this.currentAnimation&&t.classList.remove(this.currentAnimation),this.currentAnimation=n;let s=setTimeout(()=>{t.classList.remove("elementor-invisible"),t.classList.add("animated",n),this._removeAnimationSettings(t,e)},i);window.addEventListener("rocket-startLoading",function(){clearTimeout(s)})}_listAnimationSettingsKeys(t="mobile"){const e=[""];switch(t){case"mobile":e.unshift("_mobile");case"tablet":e.unshift("_tablet");case"desktop":e.unshift("_desktop")}const i=[];return["animation","_animation"].forEach(t=>{e.forEach(e=>{i.push(t+e)})}),i}_removeAnimationSettings(t,e){this._listAnimationSettingsKeys().forEach(t=>delete e[t]),t.dataset.settings=JSON.stringify(e)}static run(){const t=new RocketElementorAnimation;requestAnimationFrame(t._detectAnimations.bind(t))}}document.addEventListener("DOMContentLoaded",RocketElementorAnimation.run);</script>
4931<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4bc70e2c01a94c73b74392e4234840661791215815920" integrity="sha512-L0ha0OXavK/8okipN9F8BtP84dg9DUhPERbBXzwI6dgTA55d2+yweo3pn5CSFYs45/r8md2+xvUPtTdvTNRfjA==" data-cf-beacon='{"version":"2024.11.0","token":"c5f7a1de92cc4ae29abfde1f3d615538","r":1,"spa":2}' crossorigin="anonymous"></script>
4931
4932</body>
4933
4934    </html>
4935<!-- This website is like a Rocket, isn't it? Performance optimized by WP Rocket. Learn more: https://wp-rocket.me -->
4936<!-- plugin=object-cache-pro client=phpredis metric#hits=1824 metric#misses=36 metric#hit-ratio=98.1 metric#bytes=620624 metric#prefetches=120 metric#store-reads=39 metric#store-writes=23 metric#store-hits=135 metric#store-misses=29 metric#sql-queries=22 metric#ms-total=539.89 metric#ms-cache=10.94 metric#ms-cache-avg=0.1793 metric#ms-cache-ratio=2.0 sample#redis-hits=71105841 sample#redis-misses=2159920 sample#redis-hit-ratio=97.0 sample#redis-ops-per-sec=35 sample#redis-evicted-keys=0 sample#redis-used-memory=102114816 sample#redis-used-memory-rss=104747008 sample#redis-memory-fragmentation-ratio=1.0 sample#redis-connected-clients=1 sample#redis-tracking-clients=0 sample#redis-rejected-connections=0 sample#redis-keys=62228 -->

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.