PageSourceSearch

https://www.trasportando.com/

html trasportando.com collected 2026-09-30 11:02:52 UTC 319,807 bytes, 7,059 lines download raw bytes

1<!--
2      _____                    _____                            _____                    _____                    _____          
3     /\    \                  /\    \                          /\    \                  /\    \                  /\    \         
4    /::\    \                /::\____\                        /::\____\                /::\____\                /::\    \        
5    \:::\    \              /:::/    /                       /::::|   |               /:::/    /               /::::\    \       
6     \:::\    \            /:::/    /                       /:::::|   |              /:::/    /               /::::::\    \      
7      \:::\    \          /:::/    /                       /::::::|   |             /:::/    /               /:::/\:::\    \     
8       \:::\    \        /:::/____/                       /:::/|::|   |            /:::/____/               /:::/__\:::\    \    
9       /::::\    \      /::::\    \                      /:::/ |::|   |            |::|    |               /::::\   \:::\    \   
10      /::::::\    \    /::::::\    \   _____            /:::/  |::|___|______      |::|    |     _____    /::::::\   \:::\    \  
11     /:::/\:::\    \  /:::/\:::\    \ /\    \          /:::/   |::::::::\    \     |::|    |    /\    \  /:::/\:::\   \:::\____\ 
12    /:::/  \:::\____\/:::/  \:::\    /::\____\        /:::/    |:::::::::\____\    |::|    |   /::\____\/:::/  \:::\   \:::|    |
13   /:::/    \::/    /\::/    \:::\  /:::/    /        \::/    / ~~~~~/:::/    /    |::|    |  /:::/    /\::/    \:::\  /:::|____|
14  /:::/    / \/____/  \/____/ \:::\/:::/    /          \/____/      /:::/    /     |::|    | /:::/    /  \/_____/\:::\/:::/    / 
15 /:::/    /                    \::::::/    /                       /:::/    /      |::|____|/:::/    /            \::::::/    /  
16/:::/    /                      \::::/    /                       /:::/    /       |:::::::::::/    /              \::::/    /   
17\::/    /                       /:::/    /                       /:::/    /        \::::::::::/____/                \::/____/    
18 \/____/                       /:::/    /                       /:::/    /          ~~~~~~~~~~                       ~~          
19                              /:::/    /                       /:::/    /                                                        
20                             /:::/    /                       /:::/    /                                                         
21                             \::/    /                        \::/    /                                                          
22                              \/____/                          \/____/                                                           
23                                                                                                                                 
24//⠀GA NGERTI SEO⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
25// Powered by TH MVP
26-->
27<!DOCTYPE html>
28<html lang="id">
29
30<head>
31    <meta charset="UTF-8">
32    <title>TESLATOTO | Komunitas Agen Slot Online Gacor Deposit Receh Terbaik Hari Ini</title>
33    <meta name="description"
34        content="TESLATOTO hadir sebagai wadah komunitas agen slot online terbaik hari ini. Menyediakan pilihan permainan seru dengan sistem deposit receh yang aman dan resmi.">
35    <meta name="robots" content="index,follow">
36    <link rel="canonical" href="https://www.trasportando.com/">
37    <link rel="amphtml" href="https://trasportando.firebaseapp.com/">
38    <link rel="alternate" hreflang="id-id" href="https://trasportando.firebaseapp.com/" />
39    <link rel="alternate" href="https://trasportando.firebaseapp.com/" />
40    <link rel="alternate" hreflang="id" href="https://trasportando.firebaseapp.com/" />
41    <link rel="alternate" hreflang="en" href="https://trasportando.firebaseapp.com/" />
42    <link rel="alternate" hreflang="x-default" href="https://trasportando.firebaseapp.com/" />
43    <link rel="preconnect" href="https://www.googletagmanager.com" crossorigin>
vendor: 68 bytes, lines 43-44
43
44    <script async src="https://www.googletagmanager.com/gtag/js?id=
44G-0LSM1YJSPZ
vendor: 57 bytes, lines 44-46
44"
45        nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
46    
46<script
47        nonce="se3iyzEHMc9FQEB4wSyd0w==">window.dataLayer = window.dataLayer || []; function gtag() { dataLayer.push(arguments) } gtag("consent", "default", { ad_storage: "denied", ad_user_data: "denied", ad_personalization: "denied", analytics_storage: "granted", wait_for_update: 500 }); gtag("js", new Date); gtag("config", "G-0LSM1YJSPZ", { send_page_view: !0, linker: { domains: ["plazait.co.id", "www.plazait.co.id"] } }); window.ga4Ecomm = { viewItem: function (e) { if (!window.gtag) return; try { gtag("event", "view_item", { currency: e.currency || "IDR", value: e.value || 0, items: [{ item_id: e.item_id || "", item_name: e.item_name || "", item_brand: e.item_brand || "", item_category: e.item_category || "", price: e.price || 0, quantity: 1 }] }) } catch (t) { } }, addToCart: function (e) { if (!window.gtag) return; try { gtag("event", "add_to_cart", { currency: e.currency || "IDR", value: (e.price || 0) * (e.quantity || 1), items: [{ item_id: e.item_id || "", item_name: e.item_name || "", item_brand: e.item_brand || "", item_category: e.item_category || "", price: e.price || 0, quantity: e.quantity || 1 }] }) } catch (t) { } } };</script>
47
48    <meta property="og:locale" content="id_ID">
49    <meta property="og:site_name" content="Plaza IT">
50    <meta property="og:type" content="product">
51    <meta property="og:title" content="TESLATOTO | Komunitas Agen Slot Online Gacor Deposit Receh Terbaik Hari Ini">
52    <meta property="og:description"
53        content="TESLATOTO hadir sebagai wadah komunitas agen slot online terbaik hari ini. Menyediakan pilihan permainan seru dengan sistem deposit receh yang aman dan resmi.">
54    <meta property="og:url" content="https://www.trasportando.com/">
55    <meta property="og:image" content="https://dash.takenupload.org/TESLATOTO_AgenSlot_Terbaik">
56    <meta property="og:image:alt" content="TESLATOTO | Komunitas Agen Slot Online Gacor Deposit Receh Terbaik Hari Ini">
57    <meta property="product:price:amount" content="5000">
58    <meta property="product:price:currency" content="IDR">
59    <meta property="product:availability" content="out of stock">
60    <meta name="twitter:card" content="summary_large_image">
61    <meta name="twitter:title" content="TESLATOTO | Komunitas Agen Slot Online Gacor Deposit Receh Terbaik Hari Ini">
62    <meta name="twitter:description"
63        content="TESLATOTO hadir sebagai wadah komunitas agen slot online terbaik hari ini. Menyediakan pilihan permainan seru dengan sistem deposit receh yang aman dan resmi.">
64    <meta name="twitter:image" content="https://dash.takenupload.org/TESLATOTO_AgenSlot_Terbaik">
65
66    
66<script type="application/ld+json">
67  {
68    "@context": "https://schema.org",
69    "@type": "WebSite",
70    "@id": "/#website",
71    "url": "https://www.trasportando.com/",
72    "name": "TESLATOTO",
73    "inLanguage": "id",
74    "potentialAction": {
75      "@type": "SearchAction",
76      "target": "https://www.trasportando.com/",
77      "query-input": "required name=search_term_string"
78    }
79  }
80  </script>
80
81
82    
82<script type="application/ld+json">
83  {
84    "@context": "https://schema.org",
85    "@type": "Organization",
86    "@id": "/#organization",
87    "name": "TESLATOTO",
88    "url": "https://www.trasportando.com/",
89    "logo": "https://dash.takenupload.org/Logo_TESLATOTO"
90  }
91  </script>
91
92
93    
93<script type="application/ld+json">
94  {
95    "@context": "https://schema.org",
96    "@type": "Product",
97    "name": "TESLATOTO | Komunitas Agen Slot Online Gacor Deposit Receh Terbaik Hari Ini",
98    "sku": "7S78E2446CBU",
99    "image": [
100      "https://dash.takenupload.org/TESLATOTO_AgenSlot_Terbaik"
101    ],
102    "url": "https://www.trasportando.com/",
103    "description": "TESLATOTO hadir sebagai wadah komunitas agen slot online terbaik hari ini. Menyediakan pilihan permainan seru dengan sistem deposit receh yang aman dan resmi. ",
104    "category": "TESLATOTO",
105    "brand": {
106      "@type": "Brand",
107      "name": "TESLATOTO"
108    },
109    "offers": {
110      "@type": "Offer",
111      "url": "https://www.trasportando.com/",
112      "priceCurrency": "IDR",
113      "price": "5000",
114      "priceValidUntil": "2027-03-01",
115      "availability": "https://schema.org/OutOfStock",
116      "itemCondition": "https://schema.org/NewCondition",
117      "seller": {
118        "@type": "Organization",
119        "name": "TESLATOTO",
120        "url": "https://www.trasportando.com/"
121      }
122    },
123    "aggregateRating": {
124      "@type": "AggregateRating",
125      "ratingValue": "4.9",
126      "reviewCount": "808",
127      "bestRating": "5",
128      "worstRating": "1"
129    }
130  }
131  </script>
131
132
133    
133<script type="application/ld+json">
134  {
135    "@context": "https://schema.org",
136    "@type": "BreadcrumbList",
137    "itemListElement": [
138      {
139        "@type": "ListItem",
140        "position": 1,
141        "name": "TESLATOTO",
142        "item": "https://www.trasportando.com/"
143      },
144      {
145        "@type": "ListItem",
146        "position": 2,
147        "name": "TESLATOTO SLOT",
148        "item": "https://www.trasportando.com/"
149      }
150    ]
151  }
152  </script>
152
153
154    
154<script type="application/ld+json">
155  {
156    "@context": "https://schema.org",
157    "@type": "FAQPage",
158    "mainEntity": [
159      {
160        "@type": "Question",
161        "name": "Apa itu TESLATOTO?",
162        "acceptedAnswer": {
163          "@type": "Answer",
164          "text": "TESLATOTO adalah komunitas agen slot online terpercaya yang mewadahi para pemain untuk berbagi informasi, strategi, dan akses ke berbagai pilihan game slot terpopuler dengan sistem transparan dan aman."
165        }
166      },
167      {
168        "@type": "Question",
169        "name": "Mengapa TESLATOTO disebut sebagai agen slot deposit receh?",
170        "acceptedAnswer": {
171          "@type": "Answer",
172          "text": "Karena kami memahami kebutuhan semua kalangan. Di TESLATOTO, Anda bisa mulai bermain dan menikmati seluruh fasilitas premium hanya dengan minimal deposit yang sangat terjangkau."
173        }
174      },
175      {
176        "@type": "Question",
177        "name": "Bagaimana cara mengetahui game slot yang sedang gacor hari ini?",
178        "acceptedAnswer": {
179          "@type": "Answer",
180          "text": "Sebagai komunitas yang aktif, TESLATOTO menyediakan update berkala mengenai bocoran pola, RTP live tertinggi, dan rekomendasi provider game yang sedang memberikan peluang menang besar setiap harinya."
181        }
182      },
183      {
184        "@type": "Question",
185        "name": "Apakah transaksi di TESLATOTO aman dan cepat?",
186        "acceptedAnswer": {
187          "@type": "Answer",
188          "text": "Sangat aman. Kami menggunakan sistem enkripsi data terkini untuk melindungi privasi member. Proses deposit dan penarikan dana diproses secara instat melalui berbagai pilihan metode pembayaran resmi."
189        }
190      },
191      {
192        "@type": "Question",
193        "name": "Metode pembayaran apa saja yang tersedia?",
194        "acceptedAnswer": {
195          "@type": "Answer",
196          "text": "Untuk memudahkan member, kami menyediakan jalur transaksi yang lengkap mulai dari transfer bank lokal ternama, E-wallet populer, hingga metode deposit via pulsa tanpa potongan besar."
197        }
198      },
199      {
200        "@type": "Question",
201        "name": "Apakah layanan bantuan pelanggan tersedia 24 jam?",
202        "acceptedAnswer": {
203          "@type": "Answer",
204          "text": "Ya, TESLATOTO menyediakan layanan Customer Service profesional yang siap membantu Anda 24 jam nonstop setiap hari melalui fitur Live Chat dan WhatsApp untuk menyelesaikan kendala seputar akun atau permainan."
205        }
206      }
207    ]
208  }
209  </script>
209
210    <!-- User Session Data -->
211    <meta name="csrf-token" content="9ce6e4a17f7cc189893df9e47789b13e98829450d516a0cae5ca7b5f43e5dadc">
212    <meta name="user-logged-in" content="false">
213    <meta name="user-id" content="0">
214
215    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" />
216
217    <link rel="shortcut icon" href="https://cdn.filetesla.com/images/2026/01/17/fav-roket3.png" type="image/x-icon">
218    <link rel="stylesheet" href="https://plazaitxthmvp.pages.dev/assets/css/style.css">
219    <link rel="stylesheet" href="https://plazaitxthmvp.pages.dev/assets/css/bottom-nav.css">
220    <link rel="stylesheet" href="https://plazaitxthmvp.pages.dev/assets/css/search-suggest.css">
221    <link rel="stylesheet" href="https://plazaitxthmvp.pages.dev/assets/css/product-detail.css">
222    <link rel="stylesheet" href="https://plazaitxthmvp.pages.dev/assets/css/product-grid.css">
223    <link rel="stylesheet" href="https://plazaitxthmvp.pages.dev/assets/css/site-notice.css">
224    <link rel="stylesheet" href="https://plazaitxthmvp.pages.dev/assets/css/benchmark.css">
225    <link rel="stylesheet" href="https://plazaitxthmvp.pages.dev/assets/css/product-filters.css">
226    <link rel="stylesheet" href="https://plazaitxthmvp.pages.dev/assets/css/mega-menu-tiles.css">
227    <link rel="stylesheet" href="https://plazaitxthmvp.pages.dev/assets/css/product-compare.css">
228    <link rel="stylesheet" href="https://plazaitxthmvp.pages.dev/assets/css/product-card-actions.css">
229    <link rel="stylesheet" href="https://plazaitxthmvp.pages.dev/assets/css/modal.css">
230
231    <link rel="stylesheet" href="https://plazaitxthmvp.pages.dev/assets/css/reviews-points.css">
232
233</head>
234
235<body>
236    <header class="topbar">
237        <div class="container topbar-inner">
238            <div class="topbar-left">
239                TESLATOTO | Komunitas Agen Slot Online Gacor Deposit Receh Terbaik Hari Ini
240            </div>
241            <div class="topbar-right">
242                <a href="https://www.trasportando.com/">TESLATOTO</a>
243                <a href="https://www.trasportando.com/">Promo</a>
244                <a href="https://trasportando.firebaseapp.com/">Daftar</a>
245                <a href="https://trasportando.firebaseapp.com/">Masuk</a>
246            </div>
247        </div>
248    </header>
249    <nav class="navbar">
250        <nav class="navbar-logo" style="width: 100%;">
251            <div class="container nav-inner" style="justify-items: center; justify-content: center;">
252                <a href="/" class="logo-mobile">
253                    <img src="https://dash.takenupload.org/Logo_TESLATOTO" alt="TESLATOTO" height="100">
254                </a>
255            </div>
256        </nav>
257        <div class="container nav-inner">
258            <a href="/" class="logo">
259                <img src="https://dash.takenupload.org/Logo_TESLATOTO" alt="TESLATOTO" height="100">
260            </a>
261
262
263            <form class="search" method="get" action="#">
264                <input type="hidden" name="page" value="produk">
265
266                <!-- Search Icon (Desktop) -->
267                <button type="submit" class="search-icon-btn" id="searchBtn" aria-label="Cari">
268                    <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"
269                        stroke-linecap="round" stroke-linejoin="round">
270                        <circle cx="11" cy="11" r="8" />
271                        <path d="m21 21-4.35-4.35" />
272                    </svg>
273                </button>
274
275                <input type="text" name="q" id="searchInput" placeholder="Cari TESLATOTO" value="" autocomplete="off">
276
277                <div class="search-suggest" id="searchSuggest" hidden></div>
278            </form>
279
280            <div class="nav-actions">
281                <!--<button class="icon-btn" id="notifBtn" title="Notifikasi">🔔</button>-->
282                <button class="icon-btn cart-indicator" id="cartBtn" title="Keranjang">
283                    🛒 <span id="cartCount" class="badge" data-role="cart-badge" aria-live="polite">0</span>
284                </button>
285
286
287                <span id="compareCount" class="badge" data-role="compare-badge" aria-live="polite">0</span>
288                </button>
289
290                <!-- Dynamic login/logout button -->
291                <button class="login-btn" id="loginBtn" aria-label="Masuk">
292                    <span class="login-text">Masuk</span>
293                    <span class="login-ico" aria-hidden="true">😊</span>
294                </button>
295            </div>
296        </div>
297
298        <div class="container" style="display: flex; align-items: center;">
299
300
301            <div class="mega-cats-wrapper">
302                <div class="mega-cats container" id="megaCatsScroll" style="padding-left: 5px !important;">
303                    <a class="" href="https://www.trasportando.com/">
304                        TESLATOTO </a>
305                    <a class="" href="https://www.trasportando.com/">
306                        TESLATOTO SLOT </a>
307                    <a class="" href="https://www.trasportando.com/">
308                        AGEN SLOT </a>
309                    <a class="" href="https://www.trasportando.com/">
310                        SLOT ONLINE </a>
311                    <a class="" href="https://www.trasportando.com/">
312                        SLOT GACOR </a>
313                    <a class="" href="https://www.trasportando.com/">
314                        SITUS SLOT </a>
315                    <a class="" href="https://www.trasportando.com/">
316                        AGEN SLOT ONLINE </a>
317                </div>
318                <div class="mega-cats-fade" id="megaCatsFade"></div>
319            </div>
320        </div>
321    </nav>
322
323    <!-- Panel Mega Menu - Outside navbar for full-screen -->
324    <div class="mm2-panel" data-mm2="panel" role="dialog" aria-label="Kategori">
325        <div class="mm2-view is-active" data-mm2="top"></div>
326        <div class="mm2-view" data-mm2="detail"></div>
327    </div>
328
329    <!-- Backdrop - Outside navbar for full-screen -->
330    <div class="mm2-backdrop" data-mm2="backdrop"></div>
331
332    <!-- Mobile Bottom Navigation -->
333    <nav class="bottom-nav">
334        <div class="bottom-nav-inner">
335            <!-- Home -->
336            <a href="/" class="bottom-nav-item" id="bottomHomeBtn" data-page="home">
337                <div class="bottom-nav-item-icon">
338                    <!-- Outlined icon (default) -->
339                    <svg class="icon-outlined" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
340                        stroke-linecap="round" stroke-linejoin="round">
341                        <path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z" />
342                        <polyline points="9 22 9 12 15 12 15 22" />
343                    </svg>
344                    <!-- Filled icon (active) -->
345                    <svg class="icon-filled" viewBox="0 0 24 24" fill="currentColor">
346                        <path
347                            d="M11.47 3.84a.75.75 0 011.06 0l8.69 8.69a.75.75 0 010 1.06l-.03.03a.75.75 0 01-1.06 0l-8.16-8.16-8.16 8.16a.75.75 0 01-1.06 0l-.03-.03a.75.75 0 010-1.06l8.69-8.69z" />
348                        <path
349                            d="M12 5.5l-7.5 7.5v8.25c0 .414.336.75.75.75h3.75v-6h6v6h3.75a.75.75 0 00.75-.75V13l-7.5-7.5z" />
350                    </svg>
351                </div>
352                <span class="bottom-nav-item-label">Home</span>
353            </a>
354
355            <!-- Kategori -->
356            <button class="bottom-nav-item" id="bottomCategoryBtn" data-mm2="trigger" aria-label="Kategori">
357                <div class="bottom-nav-item-icon">
358                    <!-- Outlined icon (default) -->
359                    <svg class="icon-outlined" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
360                        stroke-linecap="round" stroke-linejoin="round">
361                        <line x1="3" y1="12" x2="21" y2="12" />
362                        <line x1="3" y1="6" x2="21" y2="6" />
363                        <line x1="3" y1="18" x2="21" y2="18" />
364                    </svg>
365                    <!-- Filled icon (active) -->
366                    <svg class="icon-filled" viewBox="0 0 24 24" fill="currentColor">
367                        <path
368                            d="M3 5.25A.75.75 0 013.75 4.5h16.5a.75.75 0 010 1.5H3.75A.75.75 0 013 5.25zM3 12a.75.75 0 01.75-.75h16.5a.75.75 0 010 1.5H3.75A.75.75 0 013 12zm0 6.75a.75.75 0 01.75-.75h16.5a.75.75 0 010 1.5H3.75a.75.75 0 01-.75-.75z" />
369                    </svg>
370                </div>
371                <span class="bottom-nav-item-label">Kategori</span>
372            </button>
373
374            <!-- Keranjang -->
375            <button class="bottom-nav-item" id="bottomCartBtn">
376                <div class="bottom-nav-item-icon">
377                    <!-- Outlined icon (default) -->
378                    <svg class="icon-outlined" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
379                        stroke-linecap="round" stroke-linejoin="round">
380                        <circle cx="9" cy="21" r="1" />
381                        <circle cx="20" cy="21" r="1" />
382                        <path d="M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6" />
383                    </svg>
384                    <!-- Filled icon (active) -->
385                    <svg class="icon-filled" viewBox="0 0 24 24" fill="currentColor">
386                        <path
387                            d="M2.25 2.25a.75.75 0 000 1.5h1.386c.17 0 .318.114.362.278l2.558 9.592a3.752 3.752 0 00-2.806 3.63c0 .414.336.75.75.75h15.75a.75.75 0 000-1.5H5.378A2.25 2.25 0 017.5 15h11.218a.75.75 0 00.674-.421 60.358 60.358 0 002.96-7.228.75.75 0 00-.525-.965A60.864 60.864 0 005.68 4.509l-.232-.867A1.875 1.875 0 003.636 2.25H2.25zM3.75 20.25a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0zM16.5 20.25a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0z" />
388                    </svg>
389                    <span class="bottom-nav-item-badge" id="bottomCartCount">0</span>
390                </div>
391                <span class="bottom-nav-item-label">Keranjang</span>
392            </button>
393
394            <!-- Compare -->
395            <button class="bottom-nav-item" id="bottomCompareBtn">
396                <div class="bottom-nav-item-icon">
397                    <!-- Outlined icon (default) -->
398                    <svg class="icon-outlined" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
399                        stroke-linecap="round" stroke-linejoin="round">
400                        <polyline points="17 11 21 7 17 3" />
401                        <path d="M21 7H9" />
402                        <polyline points="7 21 3 17 7 13" />
403                        <path d="M15 17H3" />
404                    </svg>
405                    <!-- Filled icon (active) -->
406                    <svg class="icon-filled" viewBox="0 0 24 24" fill="currentColor">
407                        <path
408                            d="M21.75 6.75a.75.75 0 00-.75-.75H9a.75.75 0 000 1.5h10.19L15.22 11.47a.75.75 0 001.06 1.06l4.5-4.5a.75.75 0 00.22-.53.75.75 0 00-.22-.53l-.03-.03zM8.78 12.47L4.28 16.97a.75.75 0 000 1.06l4.5 4.5a.75.75 0 001.06-1.06L6.06 18H15a.75.75 0 000-1.5H4.81l3.97-3.97a.75.75 0 00-1.06-1.06z" />
409                    </svg>
410                    <span class="bottom-nav-item-badge" id="bottomCompareCount" style="display:none;">0</span>
411                </div>
412                <span class="bottom-nav-item-label">Compare</span>
413            </button>
414
415            <!-- Chat - Always show, check login in JavaScript -->
416            <button class="bottom-nav-item" id="bottomChatBtn" data-page="chat">
417                <div class="bottom-nav-item-icon">
418                    <!-- Outlined icon (default) -->
419                    <svg class="icon-outlined" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
420                        opacity="0.85">
421                        <path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z" />
422                    </svg>
423                    <!-- Filled icon (active) -->
424                    <svg class="icon-filled" viewBox="0 0 24 24" fill="currentColor">
425                        <path d="M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2z" />
426                    </svg>
427                    <span class="bottom-nav-item-badge" id="bottomChatCount" style="display:none;">0</span>
428                </div>
429                <span class="bottom-nav-item-label">Chat</span>
430            </button>
431
432            <!-- Akun -->
433            <button class="bottom-nav-item" id="bottomLoginBtn">
434                <div class="bottom-nav-item-icon">
435                    <!-- Outlined icon (default) -->
436                    <svg class="icon-outlined" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
437                        stroke-linecap="round" stroke-linejoin="round">
438                        <path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2" />
439                        <circle cx="12" cy="7" r="4" />
440                    </svg>
441                    <!-- Filled icon (active) -->
442                    <svg class="icon-filled" viewBox="0 0 24 24" fill="currentColor">
443                        <path fill-rule="evenodd"
444                            d="M7.5 6a4.5 4.5 0 119 0 4.5 4.5 0 01-9 0zM3.751 20.105a8.25 8.25 0 0116.498 0 .75.75 0 01-.437.695A18.683 18.683 0 0112 22.5c-2.786 0-5.433-.608-7.812-1.7a.75.75 0 01-.437-.695z"
445                            clip-rule="evenodd" />
446                    </svg>
447                </div>
448                <span class="bottom-nav-item-label">Login</span>
449            </button>
450            </svg>
451        </div>
452        </button>
453        </div>
454    </nav>
455    <!-- Mobile User Menu Bottom Sheet -->
456
457    
457<script nonce="se3iyzEHMc9FQEB4wSyd0w==">
458        (function () {
459            const btn = document.getElementById('megaMoreBtn');
460            const dd = document.getElementById('megaMoreDropdown');
461            if (!btn || !dd) return;
462
463            function openDD() {
464                dd.hidden = false;
465                btn.setAttribute('aria-expanded', 'true');
466                document.addEventListener('click', outside, { capture: true });
467                document.addEventListener('keydown', esc);
468            }
469            function closeDD() {
470                if (dd.hidden) return;
471                dd.hidden = true;
472                btn.setAttribute('aria-expanded', 'false');
473                document.removeEventListener('click', outside, { capture: true });
474                document.removeEventListener('keydown', esc);
475            }
476            function toggle() { dd.hidden ? openDD() : closeDD(); }
477            function outside(e) {
478                if (!dd.contains(e.target) && e.target !== btn) {
479                    closeDD();
480                }
481            }
482            function esc(e) {
483                if (e.key === 'Escape') {
484                    closeDD();
485                    btn.focus();
486                }
487            }
488            btn.addEventListener('click', toggle);
489        })();
490
491        // ========== HORIZONTAL SCROLL FADE INDICATOR ==========
492        (function () {
493            const megaCats = document.getElementById('megaCatsScroll');
494            const fade = document.getElementById('megaCatsFade');
495            if (!megaCats || !fade) return;
496
497            function updateFade() {
498                const scrollLeft = megaCats.scrollLeft;
499                const scrollWidth = megaCats.scrollWidth;
500                const clientWidth = megaCats.clientWidth;
501                const maxScroll = scrollWidth - clientWidth;
502
503                // Hide fade when scrolled to end (within 10px tolerance)
504                if (maxScroll - scrollLeft <= 10) {
505                    fade.style.opacity = '0';
506                } else {
507                    fade.style.opacity = '1';
508                }
509            }
510
511            // Update on scroll
512            megaCats.addEventListener('scroll', updateFade, { passive: true });
513
514            // Update on resize
515            window.addEventListener('resize', updateFade, { passive: true });
516
517            // Initial check
518            setTimeout(updateFade, 100);
519        })();
520
521        document.addEventListener('DOMContentLoaded', function () {
522            var input = document.getElementById('searchInput');
523            if (!input) return;
524            input.addEventListener('keydown', function (e) {
525                if (e.key === 'Enter') {
526                    e.preventDefault();
527                    var form = input.form;
528                    if (!form) return;
529                    if (typeof form.requestSubmit === 'function') form.requestSubmit();
530                    else form.submit();
531                }
532            });
533        });
534
535
536        (function () {
537            const cartBtn = document.getElementById('cartBtn');
538            if (cartBtn) {
539                cartBtn.addEventListener('click', function (e) {
540                    e.preventDefault();
541
542                    const checkLogin = () => {
543                        return window.isUserLoggedIn ? window.isUserLoggedIn() : false;
544                    };
545
546                    if (checkLogin()) {
547                        window.location.href = '/keranjang';
548                    } else {
549                        showCartLoginModal();
550                    }
551                });
552            }
553
554            const loginBtn = document.getElementById('loginBtn');
555            if (loginBtn) {
556                loginBtn.addEventListener('click', function (e) {
557                    e.preventDefault();
558                    window.location.href = 'https://www.trasportando.com/';
559                });
560            }
561
562            const userMenuBtn = document.getElementById('userMenuBtn');
563            const userDropdown = document.getElementById('userDropdown');
564
565            if (userMenuBtn && userDropdown) {
566                function openDropdown() {
567                    userDropdown.hidden = false;
568                    userMenuBtn.setAttribute('aria-expanded', 'true');
569                    document.addEventListener('click', closeOnOutside, { capture: true });
570                    document.addEventListener('keydown', closeOnEscape);
571                }
572
573                function closeDropdown() {
574                    if (userDropdown.hidden) return;
575                    userDropdown.hidden = true;
576                    userMenuBtn.setAttribute('aria-expanded', 'false');
577                    document.removeEventListener('click', closeOnOutside, { capture: true });
578                    document.removeEventListener('keydown', closeOnEscape);
579                }
580
581                function closeOnOutside(e) {
582                    if (!userDropdown.contains(e.target) && e.target !== userMenuBtn) {
583                        closeDropdown();
584                    }
585                }
586
587                function closeOnEscape(e) {
588                    if (e.key === 'Escape') {
589                        closeDropdown();
590                        userMenuBtn.focus();
591                    }
592                }
593
594                userMenuBtn.addEventListener('click', function (e) {
595                    e.preventDefault();
596                    userDropdown.hidden ? openDropdown() : closeDropdown();
597                });
598
599                // Close dropdown when clicking profile links
600                userDropdown.querySelectorAll('[data-close-dropdown]').forEach(link => {
601                    link.addEventListener('click', function () {
602                        closeDropdown();
603                    });
604                });
605            }
606
607            // Bottom nav profile button - toggle mobile bottom sheet
608            const bottomProfileBtn = document.getElementById('bottomProfileBtn');
609            const mobileUserSheet = document.getElementById('mobileUserSheet');
610            const mobileUserSheetBackdrop = document.getElementById('mobileUserSheetBackdrop');
611
612            if (bottomProfileBtn && mobileUserSheet) {
613                function openMobileSheet() {
614                    mobileUserSheet.hidden = false;
615                    document.body.style.overflow = 'hidden';
616                    // Trigger animation
617                    requestAnimationFrame(() => {
618                        mobileUserSheet.classList.add('active');
619                    });
620                }
621
622                function closeMobileSheet() {
623                    mobileUserSheet.classList.remove('active');
624                    document.body.style.overflow = '';
625                    setTimeout(() => {
626                        mobileUserSheet.hidden = true;
627                    }, 300);
628                }
629
630                bottomProfileBtn.addEventListener('click', function (e) {
631                    e.preventDefault();
632                    openMobileSheet();
633                });
634
635                if (mobileUserSheetBackdrop) {
636                    mobileUserSheetBackdrop.addEventListener('click', closeMobileSheet);
637                }
638
639                // Close on escape key
640                document.addEventListener('keydown', function (e) {
641                    if (e.key === 'Escape' && !mobileUserSheet.hidden) {
642                        closeMobileSheet();
643                    }
644                });
645
646                // Close sheet when clicking profile links
647                mobileUserSheet.querySelectorAll('[data-close-sheet]').forEach(link => {
648                    link.addEventListener('click', function () {
649                        closeMobileSheet();
650                    });
651                });
652            }
653
654            // Handle Google avatar error in bottom-nav (fallback to initials)
655            const bottomNavAvatar = document.querySelector('.bottom-nav-avatar-img');
656            if (bottomNavAvatar) {
657                bottomNavAvatar.addEventListener('error', function () {
658                    const initials = this.getAttribute('data-fallback-initials') || 'U';
659                    const initialsDiv = document.createElement('div');
660                    initialsDiv.className = 'bottom-nav-avatar-initials';
661                    initialsDiv.textContent = initials;
662                    this.parentNode.replaceChild(initialsDiv, this);
663                });
664            }
665
666            // Mobile logout button
667            const mobileLogoutBtn = document.getElementById('mobileLogoutBtn');
668            if (mobileLogoutBtn) {
669                mobileLogoutBtn.addEventListener('click', async function (e) {
670                    e.preventDefault();
671
672                    // Check push notification before logout
673                    if (window.ChatNotification && typeof window.ChatNotification.confirmLogoutWithPushNotification === 'function') {
674                        const confirmLogout = await window.ChatNotification.confirmLogoutWithPushNotification();
675                        if (!confirmLogout) {
676                            return; // User cancelled logout
677                        }
678                    }
679
680                    const getCsrfToken = () => document.querySelector('meta[name="csrf-token"]')?.getAttribute('content') || '';
681
682                    try {
683                        const response = await fetch('/auth/logout', {
684                            method: 'POST',
685                            credentials: 'same-origin',
686                            headers: {
687                                'Content-Type': 'application/json',
688                                'X-CSRF-Token': getCsrfToken()
689                            },
690                            body: JSON.stringify({
691                                csrf_token: getCsrfToken()
692                            })
693                        });
694
695                        if (response.ok) {
696                            if (window.guestCart && typeof window.guestCart.clear === 'function') {
697                                window.guestCart.clear();
698                            }
699                            window.location.href = '/login?logged_out=1';
700                        } else {
701                            console.error('Logout failed');
702                            window.location.href = '/logout';
703                        }
704                    } catch (error) {
705                        console.error('Logout error:', error);
706                        window.location.href = '/logout';
707                    }
708                });
709            }
710
711            const logoutBtn = document.getElementById('logoutBtn');
712            if (logoutBtn) {
713                logoutBtn.addEventListener('click', async function (e) {
714                    e.preventDefault();
715
716                    // Check push notification before logout
717                    if (window.ChatNotification && typeof window.ChatNotification.confirmLogoutWithPushNotification === 'function') {
718                        const confirmLogout = await window.ChatNotification.confirmLogoutWithPushNotification();
719                        if (!confirmLogout) {
720                            return; // User cancelled logout
721                        }
722                    }
723
724                    const getCsrfToken = () => document.querySelector('meta[name="csrf-token"]')?.getAttribute('content') || '';
725
726                    try {
727                        const response = await fetch('/auth/logout', {
728                            method: 'POST',
729                            credentials: 'same-origin',
730                            headers: {
731                                'Content-Type': 'application/json',
732                                'X-CSRF-Token': getCsrfToken()
733                            },
734                            body: JSON.stringify({
735                                csrf_token: getCsrfToken()
736                            })
737                        });
738
739                        if (response.ok) {
740                            if (window.guestCart && typeof window.guestCart.clear === 'function') {
741                                window.guestCart.clear();
742                            }
743
744                            window.location.href = '/login?logged_out=1';
745                        } else {
746                            console.error('Logout failed');
747                            window.location.href = '/logout';
748                        }
749                    } catch (error) {
750                        console.error('Logout error:', error);
751                        window.location.href = '/logout';
752                    }
753                });
754            }
755
756            const wishlistBtn = document.getElementById('wishlistBtn');
757            const notifBtn = document.getElementById('notifBtn');
758
759            if (wishlistBtn) {
760                wishlistBtn.addEventListener('click', function (e) {
761                    e.preventDefault();
762                    alert('Fitur wishlist akan segera tersedia!');
763                });
764            }
765
766            if (notifBtn) {
767                notifBtn.addEventListener('click', function (e) {
768                    e.preventDefault();
769                    alert('Fitur notifikasi akan segera tersedia!');
770                });
771            }
772        })();
773
774        // ========== MOBILE BOTTOM NAVIGATION ==========
775        (function initBottomNav() {
776            // Sync cart badge with bottom nav
777            function syncBottomCartBadge() {
778                const mainBadge = document.getElementById('cartCount');
779                const bottomBadge = document.getElementById('bottomCartCount');
780                if (mainBadge && bottomBadge) {
781                    const count = mainBadge.textContent;
782                    bottomBadge.textContent = count;
783                    bottomBadge.style.display = parseInt(count) > 0 ? 'flex' : 'none';
784                }
785            }
786
787            // Sync compare badge with bottom nav
788            function syncBottomCompareBadge() {
789                const mainBadge = document.getElementById('compareCount');
790                const bottomBadge = document.getElementById('bottomCompareCount');
791                if (mainBadge && bottomBadge) {
792                    const count = mainBadge.textContent;
793                    bottomBadge.textContent = count;
794                    bottomBadge.style.display = parseInt(count) > 0 ? 'flex' : 'none';
795                }
796            }
797
798            // Initial sync
799            syncBottomCartBadge();
800            syncBottomCompareBadge();
801
802            // Observe badge changes
803            const observer = new MutationObserver(function () {
804                syncBottomCartBadge();
805                syncBottomCompareBadge();
806            });
807
808            const cartBadge = document.getElementById('cartCount');
809            const compareBadge = document.getElementById('compareCount');
810
811            if (cartBadge) observer.observe(cartBadge, { childList: true, characterData: true, subtree: true });
812            if (compareBadge) observer.observe(compareBadge, { childList: true, characterData: true, subtree: true });
813
814            // Bottom Cart Button
815            const bottomCartBtn = document.getElementById('bottomCartBtn');
816            if (bottomCartBtn) {
817                bottomCartBtn.addEventListener('click', function (e) {
818                    e.preventDefault();
819
820                    const checkLogin = () => {
821                        return window.isUserLoggedIn ? window.isUserLoggedIn() : false;
822                    };
823
824                    if (checkLogin()) {
825                        window.location.href = '/keranjang';
826                    } else {
827                        showCartLoginModal();
828                    }
829                });
830            }
831
832            // Bottom Compare Button
833            const bottomCompareBtn = document.getElementById('bottomCompareBtn');
834            if (bottomCompareBtn) {
835                bottomCompareBtn.addEventListener('click', function (e) {
836                    e.preventDefault();
837
838                    // Close chat widget if open
839                    if (window.plazaChat && window.plazaChat.isWidgetOpen) {
840                        window.plazaChat.closeWidget();
841                    }
842
843                    const mainCompareBtn = document.getElementById('compareBtn');
844                    if (mainCompareBtn) {
845                        mainCompareBtn.click();
846                    }
847                });
848            }
849
850            // Bottom Category Button - triggers mega menu
851            const bottomCategoryBtn = document.getElementById('bottomCategoryBtn');
852            if (bottomCategoryBtn) {
853                bottomCategoryBtn.addEventListener('click', function (e) {
854                    e.preventDefault();
855                    // Trigger desktop mega menu
856                    const desktopTrigger = document.querySelector('.mm2-trigger:not(#bottomCategoryBtn)');
857                    if (desktopTrigger) {
858                        desktopTrigger.click();
859                    }
860                });
861            }
862
863            // Bottom Login Button
864            const bottomLoginBtn = document.getElementById('bottomLoginBtn');
865            if (bottomLoginBtn) {
866                bottomLoginBtn.addEventListener('click', function (e) {
867                    e.preventDefault();
868                    window.location.href = '/login';
869                });
870            }
871
872            // Bottom Chat Button
873            const bottomChatBtn = document.getElementById('bottomChatBtn');
874            if (bottomChatBtn) {
875                bottomChatBtn.addEventListener('click', function (e) {
876                    e.preventDefault();
877
878                    // Trigger chat widget (try multiple times if needed)
879                    const triggerChat = () => {
880                        const chatToggle = document.getElementById('chat-toggle-btn');
881                        if (chatToggle) {
882                            chatToggle.click();
883                            return true;
884                        }
885                        return false;
886                    };
887
888                    // Immediate attempt
889                    if (!triggerChat()) {
890                        // Retry after 100ms if not found
891                        setTimeout(() => {
892                            if (!triggerChat()) {
893                                // Last resort: manually show popup
894                                const popup = document.getElementById('chat-popup');
895                                if (popup) {
896                                    popup.style.display = 'block';
897                                }
898                            }
899                        }, 100);
900                    }
901                });
902            }
903
904            // Sync chat unread badge
905            function syncBottomChatBadge() {
906                const chatBadge = document.getElementById('chat-unread-badge');
907                const bottomChatBadge = document.getElementById('bottomChatCount');
908                if (chatBadge && bottomChatBadge) {
909                    const count = chatBadge.textContent;
910                    bottomChatBadge.textContent = count;
911                    bottomChatBadge.style.display = chatBadge.style.display;
912                }
913            }
914
915            // Observe chat badge changes
916            const chatBadge = document.getElementById('chat-unread-badge');
917            if (chatBadge) {
918                observer.observe(chatBadge, { attributes: true, childList: true, characterData: true, subtree: true });
919                syncBottomChatBadge();
920            }
921
922            // Active state management based on current page
923            function updateActiveState() {
924                const currentPath = window.location.pathname;
925                const bottomNavItems = document.querySelectorAll('.bottom-nav-item');
926
927                bottomNavItems.forEach(item => {
928                    item.classList.remove('active');
929
930                    const itemId = item.id;
931                    const page = item.getAttribute('data-page');
932                    const href = item.getAttribute('href');
933
934                    // Check by ID for specific pages
935                    if (itemId === 'bottomHomeBtn' && currentPath === '/') {
936                        item.classList.add('active');
937                    } else if (itemId === 'bottomCartBtn' && (currentPath === '/keranjang' || currentPath === '/cart')) {
938                        item.classList.add('active');
939                    } else if (itemId === 'bottomProfileBtn' && currentPath.startsWith('/profile')) {
940                        item.classList.add('active');
941                    } else if (itemId === 'bottomCategoryBtn' && currentPath.startsWith('/kategori')) {
942                        item.classList.add('active');
943                    } else if (itemId === 'bottomCompareBtn' && currentPath === '/compare') {
944                        item.classList.add('active');
945                    } else if (itemId === 'bottomChatBtn' && currentPath === '/chat') {
946                        item.classList.add('active');
947                    }
948                    // Fallback: check by data-page attribute
949                    else if (page === 'home' && currentPath === '/') {
950                        item.classList.add('active');
951                    } else if (page === 'profile' && currentPath.startsWith('/profile')) {
952                        item.classList.add('active');
953                    }
954                    // Fallback: check by href
955                    else if (href && currentPath === href) {
956                        item.classList.add('active');
957                    }
958                });
959            }
960
961            // Update active state on load
962            updateActiveState();
963
964            // Bottom nav always visible - auto-hide disabled for better UX
965            // const bottomNav = document.querySelector('.bottom-nav');
966            // if (bottomNav && window.innerWidth <= 640) {
967            //   // Auto-hide feature disabled
968            // }
969        })();
970        // Cart Login Modal Handler (Global scope)
971        function showCartLoginModal() {
972            const modal = document.getElementById('cartLoginModal');
973            if (!modal) return;
974
975            modal.classList.add('show');
976
977            const confirmBtn = document.getElementById('cartLoginConfirm');
978            const registerBtn = document.getElementById('cartRegisterBtn');
979            const cancelBtn = document.getElementById('cartLoginCancel');
980
981            const handleLogin = () => {
982                window.location.href = '/login?return=' + encodeURIComponent('/keranjang');
983            };
984
985            const handleRegister = () => {
986                window.location.href = '/register?return=' + encodeURIComponent('/keranjang');
987            };
988
989            const handleCancel = () => {
990                modal.classList.remove('show');
991                confirmBtn.removeEventListener('click', handleLogin);
992                registerBtn.removeEventListener('click', handleRegister);
993                cancelBtn.removeEventListener('click', handleCancel);
994            };
995
996            confirmBtn.removeEventListener('click', handleLogin);
997            registerBtn.removeEventListener('click', handleRegister);
998            cancelBtn.removeEventListener('click', handleCancel);
999
1000            confirmBtn.addEventListener('click', handleLogin);
1001            registerBtn.addEventListener('click', handleRegister);
1002            cancelBtn.addEventListener('click', handleCancel);
1003
1004            modal.addEventListener('click', (e) => {
1005                if (e.target === modal) {
1006                    handleCancel();
1007                }
1008            });
1009        }
1010    </script>
1010
1011    
1011<script src="https://plazaitxthmvp.pages.dev/assets/js/cart-badge.js" defer
1012        nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
1012
1013
1014    <!-- Product Compare Sidebar -->
1015    <div class="compare-sidebar" id="compareSidebar">
1016        <div class="compare-header">
1017            <h4 class="compare-title">
1018                <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
1019                    <path
1020                        d="M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z" />
1021                </svg>
1022                Bandingkan Produk
1023                <span class="compare-count" id="compareCountSidebar">(0)</span>
1024            </h4>
1025            <button class="compare-close" id="compareClose" aria-label="Tutup">
1026                <svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor">
1027                    <path
1028                        d="M18.3 5.7a1 1 0 0 0-1.4 0L12 10.6 7.1 5.7a1 1 0 1 0-1.4 1.4L10.6 12l-4.9 4.9a1 1 0 0 0 1.4 1.4L12 13.4l4.9 4.9a1 1 0 0 0 1.4-1.4L13.4 12l4.9-4.9a1 1 0 0 0 0-1.4z" />
1029                </svg>
1030            </button>
1031        </div>
1032
1033        <div class="compare-content">
1034            <div class="compare-empty" id="compareEmpty">
1035                <div class="empty-icon">
1036                    <svg width="48" height="48" viewBox="0 0 24 24" fill="currentColor" opacity="0.3">
1037                        <path
1038                            d="M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z" />
1039                    </svg>
1040                </div>
1041                <h5>Belum ada produk dipilih</h5>
1042                <p>Pilih produk yang ingin dibandingkan dengan klik tombol "Bandingkan Produk" di halaman produk.</p>
1043            </div>
1044
1045            <div class="compare-list" id="compareList">
1046                <!-- Products will be populated here -->
1047            </div>
1048        </div>
1049
1050        <div class="compare-actions" id="compareActions">
1051            <button class="btn btn-outline-danger btn-sm" id="compareClearAll">
1052                <svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor">
1053                    <path
1054                        d="M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z" />
1055                </svg>
1056                Hapus Semua
1057            </button>
1058            <button class="btn btn-primary btn-sm" id="compareAnalyze" disabled>
1059                <svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor">
1060                    <path
1061                        d="M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4M11,16.5L18,9.5L16.59,8.09L11,13.67L7.91,10.59L6.5,12L11,16.5Z" />
1062                </svg>
1063                Analisis AI
1064            </button>
1065        </div>
1066
1067        <!-- AI Disclaimer in Sidebar -->
1068        <div class="compare-disclaimer">
1069            <div class="ai-disclaimer">
1070                <div class="disclaimer-text">
1071                    <strong>💡 Catatan:</strong> Dengan berbagai pilihan yang tersedia, pengguna memiliki kebebasan
1072                    untuk menentukan jenis permainan yang paling sesuai dengan preferensi masing-masing.
1073                </div>
1074            </div>
1075        </div>
1076    </div>
1077    <link rel="stylesheet" href="https://plazaitxthmvp.pages.dev/assets/css/pd-lightbox.css">
1078    <style>
1079        .paylater-promo {
1080            display: inline-flex;
1081            align-items: center;
1082            gap: 8px;
1083            background: linear-gradient(135deg, #141815 0, #131614 100%);
1084            border: 1px solid #00bbff;
1085            border-radius: 8px;
1086            padding: 8px 12px;
1087            font-size: 13px;
1088            line-height: 1.4;
1089            margin: 8px 0
1090        }
1091
1092        .paylater-promo-sm {
1093            padding: 6px 10px;
1094            font-size: 11px;
1095            gap: 6px
1096        }
1097
1098        .paylater-promo-md {
1099            padding: 8px 12px;
1100            font-size: 13px;
1101            gap: 8px
1102        }
1103
1104        .paylater-promo-lg {
1105            padding: 10px 16px;
1106            font-size: 14px;
1107            gap: 10px
1108        }
1109
1110        .paylater-icon {
1111            font-size: 1.2em;
1112            flex-shrink: 0
1113        }
1114
1115        .paylater-text {
1116            display: flex;
1117            flex-direction: column;
1118            gap: 2px
1119        }
1120
1121        .paylater-text strong {
1122            color: #00bbff;
1123            font-weight: 600
1124        }
1125
1126        .paylater-text small {
1127            color: #00bbff;
1128            font-size: .85em;
1129            opacity: .9
1130        }
1131
1132        .paylater-desktop-only {
1133            display: none
1134        }
1135
1136        .paylater-mobile-only {
1137            display: flex
1138        }
1139
1140        @media (min-width:641px) {
1141            .paylater-desktop-only {
1142                display: flex
1143            }
1144
1145            .paylater-mobile-only {
1146                display: none
1147            }
1148        }
1149
1150        @media (max-width:640px) {
1151            .paylater-promo {
1152                font-size: 12px;
1153                padding: 7px 10px
1154            }
1155
1156            .paylater-promo-lg {
1157                font-size: 13px;
1158                padding: 8px 12px
1159            }
1160        }
1161
1162        @media print {
1163            .paylater-promo {
1164                display: none !important
1165            }
1166        }
1167
1168        .paylater-compact {
1169            display: inline-block;
1170            font-size: 11px;
1171            font-weight: 600;
1172            color: #00bbff;
1173            background: #d1fae5;
1174            padding: 3px 8px;
1175            border-radius: 4px;
1176            margin: 6px 0 4px;
1177            line-height: 1.3
1178        }
1179
1180        @media (max-width:640px) {
1181            .paylater-compact {
1182                font-size: 10px;
1183                padding: 2px 6px;
1184                margin: 5px 0 3px
1185            }
1186        }
1187
1188        @media print {
1189            .paylater-compact {
1190                display: none !important
1191            }
1192        }
1193    </style>
1194    <style nonce="se3iyzEHMc9FQEB4wSyd0w==">
1195        .pd-voucher-minimal {
1196            margin: 10px 0;
1197            display: flex;
1198            flex-direction: column;
1199            gap: 6px
1200        }
1201
1202        .pdv-min-item {
1203            display: flex;
1204            align-items: center;
1205            gap: 8px;
1206            padding: 0;
1207            height: 32px;
1208            transition: all .2s ease
1209        }
1210
1211        .pdv-min-hidden {
1212            display: none
1213        }
1214
1215        .pdv-min-disabled {
1216            opacity: .5
1217        }
1218
1219        .pdv-badge-btn {
1220            display: inline-flex;
1221            align-items: center;
1222            gap: 8px;
1223            background: linear-gradient(135deg, #667eea 0, #764ba2 100%);
1224            border: none;
1225            border-radius: 8px;
1226            padding: 3px;
1227            cursor: pointer;
1228            transition: all .2s ease;
1229            width: auto
1230        }
1231
1232        .pdv-badge-btn:hover:not(:disabled) {
1233            transform: translateY(-1px);
1234            box-shadow: 0 4px 12px rgba(102, 126, 234, .3)
1235        }
1236
1237        .pdv-badge-btn:disabled {
1238            opacity: .6;
1239            cursor: not-allowed
1240        }
1241
1242        .pdv-badge-icon {
1243            color: #fff;
1244            flex-shrink: 0
1245        }
1246
1247        .pdv-badge-text {
1248            font-size: 14px;
1249            font-weight: 700;
1250            color: #fff;
1251            white-space: nowrap
1252        }
1253
1254        .pdv-badge-code {
1255            font-family: 'Courier New', monospace;
1256            font-size: 13px;
1257            font-weight: 700;
1258            color: #fff;
1259            background: rgba(255, 255, 255, .2);
1260            padding: 4px 8px;
1261            border-radius: 4px;
1262            border: none;
1263            white-space: nowrap
1264        }
1265
1266        .pdv-min-copy,
1267        .pdv-min-more {
1268            padding: 4px 12px;
1269            font-size: 12px;
1270            font-weight: 600;
1271            border-radius: 5px;
1272            border: 1px solid #e2e8f0;
1273            background: #fff;
1274            color: #667eea;
1275            cursor: pointer;
1276            transition: all .2s ease;
1277            white-space: nowrap
1278        }
1279
1280        .pdv-min-copy:hover:not(:disabled),
1281        .pdv-min-more:hover {
1282            background: #667eea;
1283            color: #fff;
1284            border-color: #667eea
1285        }
1286
1287        .pdv-min-copy:disabled {
1288            opacity: .4;
1289            cursor: not-allowed
1290        }
1291
1292        .pdv-min-copy.copied {
1293            background: #c52222;
1294            color: #fff;
1295            border-color: #c52222
1296        }
1297
1298        .pdv-min-more {
1299            margin-left: auto
1300        }
1301
1302        .modal-close {
1303            position: absolute;
1304            top: 20px;
1305            right: 20px;
1306            background: none;
1307            border: none;
1308            cursor: pointer;
1309            color: #64748b;
1310            padding: 4px;
1311            transition: color .2s ease
1312        }
1313
1314        .modal-close:hover {
1315            color: #1e293b
1316        }
1317
1318        .modal-body {
1319            margin-bottom: 8px
1320        }
1321
1322        .voucher-modal-content {
1323            text-align: center
1324        }
1325
1326        .voucher-modal-badge {
1327            display: inline-flex;
1328            flex-direction: row;
1329            align-items: center;
1330            gap: 6px;
1331            background: linear-gradient(135deg, #667eea 0, #764ba2 100%);
1332            border-radius: 10px;
1333            padding: 8px 16px;
1334            margin-bottom: 12px
1335        }
1336
1337        .vmb-value {
1338            font-size: 18px;
1339            font-weight: 700;
1340            color: #fff;
1341            line-height: 1
1342        }
1343
1344        .vmb-label {
1345            font-size: 18px;
1346            font-weight: 700;
1347            color: #fff;
1348            text-transform: uppercase;
1349            letter-spacing: .5px
1350        }
1351
1352        .voucher-modal-code {
1353            font-family: 'Courier New', monospace;
1354            font-size: 14px;
1355            font-weight: 700;
1356            color: #667eea;
1357            background: rgba(102, 126, 234, .1);
1358            padding: 6px 12px;
1359            border-radius: 6px;
1360            border: 2px dashed rgba(102, 126, 234, .3);
1361            display: inline-block;
1362            margin-bottom: 10px
1363        }
1364
1365        .voucher-modal-name {
1366            font-size: 14px;
1367            font-weight: 600;
1368            color: #1e293b;
1369            margin-bottom: 16px
1370        }
1371
1372        .voucher-modal-details {
1373            text-align: left;
1374            background: #f8fafc;
1375            border-radius: 8px;
1376            padding: 12px;
1377            margin-bottom: 16px
1378        }
1379
1380        .vmd-item {
1381            display: flex;
1382            align-items: flex-start;
1383            gap: 8px;
1384            padding: 6px 0;
1385            font-size: 13px;
1386            color: #64748b;
1387            border-bottom: 1px solid #e2e8f0
1388        }
1389
1390        .vmd-item:last-child {
1391            border-bottom: none
1392        }
1393
1394        .vmd-item svg {
1395            color: #667eea;
1396            flex-shrink: 0;
1397            margin-top: 2px
1398        }
1399
1400        .vmd-item strong {
1401            color: #1e293b
1402        }
1403
1404        .modal-actions {
1405            padding: 20px
1406        }
1407
1408        .modal-btn-primary {
1409            background: linear-gradient(135deg, #667eea 0, #764ba2 100%);
1410            color: #fff
1411        }
1412
1413        .modal-btn-primary:hover {
1414            opacity: .9;
1415            transform: translateY(-1px)
1416        }
1417
1418        @media (max-width:640px) {
1419            .pdv-min-item {
1420                gap: 6px
1421            }
1422
1423            .pdv-badge-btn {
1424                padding: 3px;
1425                gap: 6px
1426            }
1427
1428            .pdv-badge-text {
1429                font-size: 13px
1430            }
1431
1432            .pdv-badge-code {
1433                font-size: 12px;
1434                padding: 3px 6px
1435            }
1436
1437            .pdv-min-copy,
1438            .pdv-min-more {
1439                padding: 3px 10px;
1440                font-size: 11px
1441            }
1442
1443            .modal-dialog {
1444                max-width: 95%;
1445                margin: 20px
1446            }
1447
1448            .vmb-value {
1449                font-size: 16px
1450            }
1451
1452            .vmb-label {
1453                font-size: 16px
1454            }
1455
1456            .voucher-modal-code {
1457                font-size: 13px;
1458                padding: 5px 10px
1459            }
1460        }
1461    </style>
1462    <style nonce="se3iyzEHMc9FQEB4wSyd0w==">
1463        .promo-endyear-mini-banner {
1464            display: flex;
1465            align-items: center;
1466            gap: 12px;
1467            padding: 12px 16px;
1468            background: rgba(255, 255, 255, .8);
1469            backdrop-filter: blur(10px);
1470            -webkit-backdrop-filter: blur(10px);
1471            border: 2px solid rgba(26, 159, 242, 0.2);
1472            border-radius: 12px;
1473            margin: 16px 0;
1474            box-shadow: 0 4px 16px rgba(0, 0, 0, .08);
1475            transition: all .3s ease
1476        }
1477
1478        .promo-endyear-mini-banner:hover {
1479            transform: translateY(-2px);
1480            box-shadow: 0 6px 20px rgba(0, 0, 0, .12);
1481            border-color: rgba(26, 163, 242, 0.4)
1482        }
1483
1484        .pey-icon {
1485            font-size: 32px;
1486            line-height: 1;
1487            flex-shrink: 0
1488        }
1489
1490        .pey-content {
1491            flex: 1;
1492            min-width: 0
1493        }
1494
1495        .pey-content strong {
1496            display: block;
1497            font-size: 14px;
1498            font-weight: 700;
1499            color: #1ab8f2;
1500            margin-bottom: 2px
1501        }
1502
1503        .pey-content span {
1504            display: block;
1505            font-size: 13px;
1506            color: #64748b;
1507            line-height: 1.4
1508        }
1509
1510        .pey-link {
1511            flex-shrink: 0;
1512            padding: 8px 16px;
1513            background: linear-gradient(135deg, #1AB8F2, #4dbbff);
1514            color: #fff;
1515            text-decoration: none;
1516            font-size: 13px;
1517            font-weight: 700;
1518            border-radius: 8px;
1519            white-space: nowrap;
1520            transition: all .2s ease;
1521            box-shadow: 0 2px 8px rgba(26, 159, 242, 0.25)
1522        }
1523
1524        .pey-link:hover {
1525            transform: translateX(2px);
1526            box-shadow: 0 4px 12px rgba(26, 181, 242, 0.35)
1527        }
1528
1529        @media(max-width:640px) {
1530            .promo-endyear-mini-banner {
1531                flex-wrap: wrap;
1532                gap: 8px;
1533                padding: 10px 12px
1534            }
1535
1536            .pey-icon {
1537                font-size: 28px;
1538                align-self: flex-start
1539            }
1540
1541            .pey-content {
1542                flex: 1;
1543                min-width: 0
1544            }
1545
1546            .pey-content strong {
1547                font-size: 12px
1548            }
1549
1550            .pey-content span {
1551                font-size: 11px;
1552                line-height: 1.3
1553            }
1554
1555            .pey-link {
1556                width: 100%;
1557                flex-basis: 100%;
1558                font-size: 11px;
1559                padding: 6px 12px;
1560                text-align: center
1561            }
1562        }
1563
1564        @media print {
1565            .promo-endyear-mini-banner {
1566                display: none !important
1567            }
1568        }
1569    </style>
1570    <style nonce="se3iyzEHMc9FQEB4wSyd0w==">
1571        .pd-title-row {
1572            position: relative;
1573            margin-bottom: 12px;
1574            padding-right: 52px
1575        }
1576
1577        .pd-title {
1578            margin: 0 !important
1579        }
1580
1581        .pd-share-btn {
1582            position: absolute;
1583            top: 0;
1584            right: 0;
1585            width: 40px;
1586            height: 40px;
1587            display: inline-flex;
1588            align-items: center;
1589            justify-content: center;
1590            border-radius: 10px;
1591            border: 1px solid #e2e8f0;
1592            background: #fff;
1593            color: #64748b;
1594            cursor: pointer;
1595            transition: all .2s ease;
1596            -webkit-tap-highlight-color: transparent
1597        }
1598
1599        .pd-share-btn:hover {
1600            background: #f8fafc;
1601            border-color: #cbd5e1;
1602            color: #0f172a;
1603            transform: translateY(-1px)
1604        }
1605
1606        .pd-share-btn:active {
1607            transform: translateY(0)
1608        }
1609
1610        .pd-share-btn svg {
1611            display: block
1612        }
1613
1614        .pd-share-modal-overlay {
1615            position: fixed;
1616            inset: 0;
1617            background: rgba(15, 23, 42, .75);
1618            backdrop-filter: blur(4px);
1619            z-index: 99999;
1620            display: none;
1621            align-items: center;
1622            justify-content: center;
1623            padding: 0;
1624            animation: fadeIn .2s ease
1625        }
1626
1627        .pd-share-modal-overlay.show {
1628            display: flex
1629        }
1630
1631        .pd-share-modal {
1632            background: #fff;
1633            border-radius: 20px;
1634            box-shadow: 0 25px 50px -12px rgba(0, 0, 0, .25);
1635            max-width: 480px;
1636            width: 100%;
1637            max-height: 90vh;
1638            overflow: hidden;
1639            display: flex;
1640            flex-direction: column;
1641            animation: slideUp .3s cubic-bezier(.16, 1, .3, 1)
1642        }
1643
1644        @keyframes fadeIn {
1645            from {
1646                opacity: 0
1647            }
1648
1649            to {
1650                opacity: 1
1651            }
1652        }
1653
1654        @keyframes slideUp {
1655            from {
1656                opacity: 0;
1657                transform: translateY(20px) scale(.95)
1658            }
1659
1660            to {
1661                opacity: 1;
1662                transform: translateY(0) scale(1)
1663            }
1664        }
1665
1666        .pd-share-header {
1667            display: flex;
1668            align-items: center;
1669            justify-content: space-between;
1670            padding: 20px 24px;
1671            border-bottom: 1px solid #f1f5f9
1672        }
1673
1674        .pd-share-title {
1675            font-size: 18px;
1676            font-weight: 700;
1677            color: #0f172a;
1678            margin: 0
1679        }
1680
1681        .pd-share-close {
1682            width: 32px;
1683            height: 32px;
1684            border-radius: 8px;
1685            border: 0;
1686            background: transparent;
1687            color: #64748b;
1688            display: inline-flex;
1689            align-items: center;
1690            justify-content: center;
1691            cursor: pointer;
1692            transition: all .15s ease
1693        }
1694
1695        .pd-share-close:hover {
1696            background: #f1f5f9;
1697            color: #0f172a
1698        }
1699
1700        .pd-share-body {
1701            padding: 24px;
1702            overflow-y: auto
1703        }
1704
1705        .pd-share-preview {
1706            display: flex;
1707            gap: 12px;
1708            padding: 16px;
1709            background: #f8fafc;
1710            border-radius: 12px;
1711            margin-bottom: 24px
1712        }
1713
1714        .pd-share-preview-img {
1715            width: 64px;
1716            height: 64px;
1717            border-radius: 8px;
1718            object-fit: cover;
1719            flex-shrink: 0;
1720            border: 1px solid #e2e8f0
1721        }
1722
1723        .pd-share-preview-info {
1724            flex: 1;
1725            min-width: 0
1726        }
1727
1728        .pd-share-preview-name {
1729            font-size: 14px;
1730            font-weight: 600;
1731            color: #0f172a;
1732            margin: 0 0 4px 0;
1733            display: -webkit-box;
1734            -webkit-line-clamp: 2;
1735            -webkit-box-orient: vertical;
1736            overflow: hidden
1737        }
1738
1739        .pd-share-preview-price {
1740            font-size: 16px;
1741            font-weight: 700;
1742            color: #00bbff;
1743            margin: 0
1744        }
1745
1746        .pd-share-label {
1747            font-size: 13px;
1748            font-weight: 600;
1749            color: #475569;
1750            margin: 0 0 12px 0;
1751            text-transform: uppercase;
1752            letter-spacing: .5px
1753        }
1754
1755        .pd-share-grid {
1756            display: grid;
1757            grid-template-columns: repeat(4, 1fr);
1758            gap: 12px;
1759            margin-bottom: 24px
1760        }
1761
1762        .pd-share-option {
1763            display: flex;
1764            flex-direction: column;
1765            align-items: center;
1766            gap: 8px;
1767            padding: 16px 8px;
1768            border: 1.5px solid #e2e8f0;
1769            border-radius: 12px;
1770            background: #fff;
1771            cursor: pointer;
1772            transition: all .2s ease;
1773            text-decoration: none;
1774            color: inherit
1775        }
1776
1777        .pd-share-option:hover {
1778            border-color: #94a3b8;
1779            background: #f8fafc;
1780            transform: translateY(-2px)
1781        }
1782
1783        .pd-share-option:active {
1784            transform: translateY(0)
1785        }
1786
1787        .pd-share-icon {
1788            width: 40px;
1789            height: 40px;
1790            border-radius: 10px;
1791            display: inline-flex;
1792            align-items: center;
1793            justify-content: center;
1794            position: relative
1795        }
1796
1797        .pd-share-icon svg {
1798            width: 24px;
1799            height: 24px;
1800            display: block
1801        }
1802
1803        .pd-share-icon-whatsapp {
1804            background: linear-gradient(135deg, #00bbff 0%, #3c3300 100%);
1805            color: #fff
1806        }
1807
1808        .pd-share-icon-facebook {
1809            background: linear-gradient(135deg, #1877F2 0%, #0c63d4 100%);
1810            color: #fff
1811        }
1812
1813        .pd-share-icon-twitter {
1814            background: linear-gradient(135deg, #1DA1F2 0%, #0d8bd9 100%);
1815            color: #fff
1816        }
1817
1818        .pd-share-icon-telegram {
1819            background: linear-gradient(135deg, #0088cc 0%, #0077b3 100%);
1820            color: #fff
1821        }
1822
1823        .pd-share-icon-email {
1824            background: linear-gradient(135deg, #3589ea 0%, #1f64c5 100%);
1825            color: #fff
1826        }
1827
1828        .pd-share-icon-copy {
1829            background: linear-gradient(135deg, #63b6f1 0%, #46abe5 100%);
1830            color: #fff
1831        }
1832
1833        .pd-share-icon-pdf {
1834            background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);
1835            color: #fff
1836        }
1837
1838        .pd-share-name {
1839            font-size: 12px;
1840            font-weight: 600;
1841            color: #475569;
1842            text-align: center
1843        }
1844
1845        .pd-share-copy-section {
1846            background: #f8fafc;
1847            padding: 16px;
1848            border-radius: 12px
1849        }
1850
1851        .pd-share-copy-input-wrap {
1852            display: flex;
1853            gap: 8px
1854        }
1855
1856        .pd-share-copy-input {
1857            flex: 1;
1858            padding: 12px 14px;
1859            border: 1px solid #e2e8f0;
1860            border-radius: 10px;
1861            font-size: 14px;
1862            color: #0f172a;
1863            background: #fff;
1864            font-family: 'Segoe UI', system-ui, sans-serif
1865        }
1866
1867        .pd-share-copy-input:focus {
1868            outline: 0;
1869            border-color: #00bbff;
1870            box-shadow: 0 0 0 3px rgba(14, 165, 233, .1)
1871        }
1872
1873        .pd-share-copy-btn {
1874            padding: 12px 20px;
1875            border: 0;
1876            border-radius: 10px;
1877            background: linear-gradient(135deg, #e90e0e 0%, #0284c7 100%);
1878            color: #fff;
1879            font-size: 14px;
1880            font-weight: 600;
1881            cursor: pointer;
1882            transition: all .2s ease;
1883            white-space: nowrap;
1884            display: inline-flex;
1885            align-items: center;
1886            gap: 6px
1887        }
1888
1889        .pd-share-copy-btn:hover {
1890            background: linear-gradient(135deg, #0284c7 0%, #0369a1 100%);
1891            transform: translateY(-1px);
1892            box-shadow: 0 4px 12px rgba(14, 165, 233, .3)
1893        }
1894
1895        .pd-share-copy-btn:active {
1896            transform: translateY(0)
1897        }
1898
1899        .pd-share-copy-btn svg {
1900            width: 16px;
1901            height: 16px
1902        }
1903
1904        .pd-share-copy-btn.copied {
1905            background: linear-gradient(135deg, #c52222 0%, #a31616 100%);
1906            pointer-events: none
1907        }
1908
1909        @media(max-width:640px) {
1910            .pd-share-modal {
1911                border-radius: 20px 20px 0 0;
1912                margin-top: auto;
1913                max-height: 85vh
1914            }
1915
1916            .pd-share-grid {
1917                grid-template-columns: repeat(3, 1fr)
1918            }
1919
1920            .pd-share-header {
1921                padding: 16px 20px
1922            }
1923
1924            .pd-share-body {
1925                padding: 20px
1926            }
1927
1928            .pd-share-btn {
1929                width: 36px;
1930                height: 36px
1931            }
1932
1933            .pd-share-btn svg {
1934                width: 18px;
1935                height: 18px
1936            }
1937        }
1938
1939        @media(max-width:480px) {
1940            .pd-share-grid {
1941                grid-template-columns: repeat(3, 1fr);
1942                gap: 10px
1943            }
1944
1945            .pd-share-option {
1946                padding: 12px 6px
1947            }
1948
1949            .pd-share-icon {
1950                width: 36px;
1951                height: 36px
1952            }
1953
1954            .pd-share-icon svg {
1955                width: 20px;
1956                height: 20px
1957            }
1958
1959            .pd-share-name {
1960                font-size: 11px
1961            }
1962        }
1963
1964        .mf-share {
1965            background: #fff;
1966            color: #3cabfb;
1967            border: 2px solid #3cabfb;
1968            display: inline-flex;
1969            align-items: center;
1970            justify-content: center
1971        }
1972
1973        .mf-share:active {
1974            transform: scale(.95)
1975        }
1976
1977        .mf-share svg {
1978            display: block
1979        }
1980
1981        @media(max-width:640px) {
1982            .pd-share-btn {
1983                display: none !important
1984            }
1985        }
1986
1987        .stock-badge.in {
1988            background: #e6f9ec;
1989            color: #801515;
1990            border-radius: 999px;
1991            padding: 4px 10px;
1992            font-weight: 700
1993        }
1994
1995        .stock-badge.out {
1996            background: #fee2e2;
1997            color: #b91c1c;
1998            border-radius: 999px;
1999            padding: 4px 10px;
2000            font-weight: 700
2001        }
2002
2003        .stock-info-btn {
2004            --c: #e90e0e;
2005            --b: #bae6fd;
2006            --bg: #f0f9ff;
2007            --bg-h: #e0f2fe;
2008            --b-h: #e90e0e;
2009            margin-left: 0;
2010            display: inline-flex;
2011            align-items: center;
2012            justify-content: center;
2013            gap: 0.5rem;
2014            padding: 4px 10px;
2015            border-radius: 999px;
2016            border: 1.5px solid var(--b);
2017            background: var(--bg);
2018            color: var(--c);
2019            cursor: pointer;
2020            font-size: 12px;
2021            font-weight: 600;
2022            transition: all .2s ease;
2023            -webkit-tap-highlight-color: transparent
2024        }
2025
2026        .stock-info-btn:hover {
2027            background: var(--bg-h);
2028            border-color: var(--b-h);
2029            color: #0284c7;
2030            transform: translateY(-1px);
2031            box-shadow: 0 2px 8px rgba(14, 165, 233, .15)
2032        }
2033
2034        .stock-info-btn:active {
2035            transform: translateY(0)
2036        }
2037
2038        .stock-info-btn:focus-visible {
2039            outline: 0;
2040            box-shadow: 0 0 0 3px rgba(14, 165, 233, .2)
2041        }
2042
2043        .stock-info-btn svg {
2044            width: 14px;
2045            height: 14px;
2046            flex-shrink: 0
2047        }
2048
2049        .stock-info-btn .btn-text {
2050            white-space: nowrap
2051        }
2052
2053        .stock-popover {
2054            position: absolute;
2055            z-index: 9999;
2056            min-width: 280px;
2057            max-width: 92vw;
2058            background: #0b1220;
2059            color: #eef3ff;
2060            border: 1px solid rgba(255, 255, 255, .08);
2061            border-radius: 14px;
2062            box-shadow: 0 20px 40px rgba(12, 12, 20, .45);
2063            padding: 12px 12px 8px;
2064            display: none
2065        }
2066
2067        .stock-popover.show {
2068            display: block
2069        }
2070
2071        .stock-popover::before {
2072            content: "";
2073            position: absolute;
2074            top: -8px;
2075            left: 24px;
2076            width: 14px;
2077            height: 14px;
2078            background: #0b1220;
2079            border-left: 1px solid rgba(255, 255, 255, .08);
2080            border-top: 1px solid rgba(255, 255, 255, .08);
2081            transform: rotate(45deg)
2082        }
2083
2084        .sp-head {
2085            display: flex;
2086            align-items: center;
2087            justify-content: space-between;
2088            margin-bottom: 8px
2089        }
2090
2091        .sp-title {
2092            font-weight: 800;
2093            font-size: 14px
2094        }
2095
2096        .sp-close {
2097            background: transparent;
2098            border: 0;
2099            color: #98a2b3;
2100            cursor: pointer
2101        }
2102
2103        .sp-list {
2104            list-style: none;
2105            margin: 0;
2106            padding: 0;
2107            display: flex;
2108            flex-direction: column;
2109            gap: 8px
2110        }
2111
2112        .sp-item {
2113            display: grid;
2114            grid-template-columns: 1fr auto 32px;
2115            column-gap: 12px;
2116            align-items: center;
2117            padding: 10px 10px;
2118            min-height: 44px;
2119            border-radius: 10px;
2120            background: rgba(255, 255, 255, .03)
2121        }
2122
2123        .sp-left {
2124            display: flex;
2125            align-items: center;
2126            gap: 10px
2127        }
2128
2129        .sp-dot {
2130            width: 10px;
2131            height: 10px;
2132            border-radius: 999px;
2133            background: var(--dot, #60a5fa);
2134            display: inline-block
2135        }
2136
2137        .sp-label {
2138            font-weight: 600;
2139            font-size: 13px
2140        }
2141
2142
2143        .sp-qty {
2144            grid-column: 2;
2145            justify-self: end;
2146            min-width: 40px;
2147            text-align: right;
2148            font-weight: 800;
2149            font-size: 13px;
2150            color: #cfe4ff;
2151            font-variant-numeric: tabular-nums
2152        }
2153
2154        .sp-wa {
2155            grid-column: 3;
2156            justify-self: end;
2157            width: 32px;
2158            height: 32px;
2159            min-width: 32px;
2160            min-height: 32px;
2161            box-sizing: border-box;
2162            padding: 0;
2163            line-height: 0;
2164            text-decoration: none;
2165            outline: 0;
2166            display: inline-flex;
2167            align-items: center;
2168            justify-content: center;
2169            border-radius: 999px;
2170            border: 1px solid rgba(211, 37, 37, 0.6);
2171            /* 1px untuk hasil “crisp” */
2172            background: rgba(37, 211, 102, .08);
2173            color: #d32525;
2174            transition: background-color .15s ease, border-color .15s ease, transform .05s ease;
2175            -webkit-tap-highlight-color: transparent;
2176        }
2177
2178        .sp-wa:hover {
2179            background: rgba(37, 211, 102, .16);
2180            border-color: rgba(37, 211, 102, .75)
2181        }
2182
2183        .sp-wa:active {
2184            transform: translateY(.5px) scale(.98)
2185        }
2186
2187        .sp-wa svg {
2188            width: 18px;
2189            height: 18px;
2190            display: block;
2191            vertical-align: middle
2192        }
2193
2194        .stock-popover a {
2195            text-decoration: none
2196        }
2197
2198        #deskripsi img {
2199            max-width: 200px !important;
2200            height: unset !important
2201        }
2202
2203        @media(max-width:640px) {
2204            .stock-popover {
2205                position: fixed;
2206                left: 0;
2207                right: 0;
2208                bottom: max(12px, env(safe-area-inset-bottom, 12px));
2209                margin: 0 10px;
2210                padding: 14px 12px 10px;
2211                border-radius: 16px
2212            }
2213
2214            .stock-popover::before {
2215                display: none
2216            }
2217
2218            .stock-info-btn {
2219                padding: 4px 8px;
2220                gap: 4px;
2221                border: 0;
2222                background: transparent
2223            }
2224
2225            .stock-info-btn:hover {
2226                background: transparent;
2227                box-shadow: none;
2228                transform: none
2229            }
2230
2231            .stock-info-btn .btn-text {
2232                display: none
2233            }
2234
2235            .stock-info-btn svg {
2236                width: 16px;
2237                height: 16px
2238            }
2239
2240            .sp-item {
2241                grid-template-columns: 1fr auto 36px
2242            }
2243
2244            .sp-wa {
2245                width: 36px;
2246                height: 36px;
2247                min-width: 36px;
2248                min-height: 36px
2249            }
2250
2251            .sp-wa svg {
2252                width: 19px;
2253                height: 19px
2254            }
2255        }
2256
2257        .stock-dot {
2258            position: absolute;
2259            bottom: 8px;
2260            right: 8px;
2261            width: 8px;
2262            height: 8px;
2263            border-radius: 50%;
2264            box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
2265            z-index: 2;
2266            cursor: help
2267        }
2268
2269        .stock-dot.ready {
2270            background: #10b981
2271        }
2272
2273        .stock-dot.low {
2274            background: #0ba7f5
2275        }
2276
2277        .stock-dot.out {
2278            background: #ef4444
2279        }
2280
2281        .stock-dot:hover {
2282            transform: scale(1.2);
2283            transition: transform 0.2s ease
2284        }
2285
2286        @media(max-width:640px) {
2287            .stock-dot {
2288                width: 7px;
2289                height: 7px;
2290                bottom: 6px;
2291                right: 6px
2292            }
2293        }
2294
2295        .pd-related-card .spec-chips {
2296            font-size: 11px;
2297            color: #64748b;
2298            margin: 4px 0 6px 0;
2299            line-height: 1.3;
2300            font-weight: 500
2301        }
2302
2303        .pd-related-card .spec-chips .spec-divider {
2304            margin: 0 4px;
2305            opacity: 0.6
2306        }
2307
2308        @media(max-width:640px) {
2309            .pd-related-card .spec-chips {
2310                font-size: 10px;
2311                margin: 3px 0 5px 0
2312            }
2313
2314            #deskripsi img {
2315                max-width: 300px !important;
2316                height: unset !important;
2317                justify-self: center !important
2318            }
2319        }
2320
2321        .pwp-trigger-badge {
2322            display: inline-flex;
2323            align-items: center;
2324            gap: 4px;
2325            padding: 3px 8px 4px;
2326            background: linear-gradient(135deg, #24acfb 0%, #0ba7f5 100%);
2327            color: #0f5a78;
2328            border-radius: 6px;
2329            font-size: .65rem;
2330            font-weight: 600;
2331            border: 0
2332        }
2333
2334        .pwp-trigger-badge svg {
2335            flex-shrink: 0;
2336            width: 12px;
2337            height: 12px
2338        }
2339
2340        .pwp-deals-section {
2341            margin: 0;
2342            padding: 12px;
2343            background: linear-gradient(135deg, #c7e2fe 0%, #8ac3fd 100%);
2344            border-radius: 12px;
2345            border: 2px solid #24acfb
2346        }
2347
2348        .pwp-deals-header {
2349            display: flex;
2350            gap: 10px;
2351            margin-bottom: 10px
2352        }
2353
2354        .pwp-icon {
2355            flex-shrink: 0;
2356            color: #0ba7f5;
2357            width: 18px;
2358            height: 18px
2359        }
2360
2361        .pwp-text .pwp-title {
2362            margin: 0 0 2px 0;
2363            font-size: 14px;
2364            font-weight: 700;
2365            color: #0f5a78
2366        }
2367
2368        .pwp-text .pwp-subtitle {
2369            margin: 0;
2370            font-size: 11px;
2371            color: #0e5992;
2372            opacity: 0.9
2373        }
2374
2375        .pwp-deals-loading {
2376            text-align: center;
2377            padding: 40px 0;
2378            color: #0e5992
2379        }
2380
2381        .pwp-spinner {
2382            width: 40px;
2383            height: 40px;
2384            border: 3px solid #24acfb;
2385            border-top-color: #0ba7f5;
2386            border-radius: 50%;
2387            animation: spin 0.8s linear infinite;
2388            margin: 0 auto 12px
2389        }
2390
2391        @keyframes spin {
2392            to {
2393                transform: rotate(360deg)
2394            }
2395        }
2396
2397        .pwp-deals-grid {
2398            display: flex;
2399            flex-direction: column;
2400            gap: 6px
2401        }
2402
2403        .pwp-deal-card {
2404            background: #fff;
2405            border-radius: 6px;
2406            overflow: hidden;
2407            border: 1px solid #24acfb;
2408            display: flex;
2409            align-items: center;
2410            padding: 8px;
2411            gap: 10px
2412        }
2413
2414        .pwp-deal-card:hover {
2415            background: #c7e2fe
2416        }
2417
2418        .pwp-deal-thumb {
2419            flex-shrink: 0;
2420            width: 50px;
2421            height: 50px;
2422            background: #f8fafc;
2423            overflow: hidden;
2424            border-radius: 4px
2425        }
2426
2427        .pwp-deal-thumb img {
2428            width: 100%;
2429            height: 100%;
2430            object-fit: cover
2431        }
2432
2433        .pwp-deal-badge {
2434            background: #dc2626;
2435            color: #fff;
2436            padding: 2px 5px;
2437            border-radius: 3px;
2438            font-size: 9px;
2439            font-weight: 700;
2440            margin-left: auto
2441        }
2442
2443        .pwp-deal-info {
2444            flex: 1;
2445            display: flex;
2446            flex-direction: column;
2447            gap: 4px
2448        }
2449
2450        .pwp-deal-name {
2451            font-size: 12px;
2452            font-weight: 600;
2453            color: #0f172a;
2454            margin: 0;
2455            line-height: 1.2
2456        }
2457
2458        .pwp-deal-prices {
2459            display: flex;
2460            align-items: center;
2461            gap: 6px;
2462            flex-wrap: wrap
2463        }
2464
2465        .pwp-deal-price {
2466            font-size: 14px;
2467            font-weight: 800;
2468            color: #dc2626;
2469            white-space: nowrap
2470        }
2471
2472        .pwp-deal-original {
2473            font-size: 11px;
2474            color: #64748b;
2475            text-decoration: line-through;
2476            white-space: nowrap
2477        }
2478
2479        .pwp-cart-note {
2480            margin-top: 8px;
2481            padding: 6px 10px;
2482            background: #e0f2fe;
2483            border-left: 2px solid#e90e0e;
2484            font-size: 11px;
2485            color: #0c4a6e;
2486            border-radius: 4px
2487        }
2488
2489        @media(max-width:640px) {
2490            .pwp-deals-section {
2491                margin: 12px 0;
2492                padding: 10px;
2493                border-radius: 10px
2494            }
2495
2496            .pwp-deals-header {
2497                gap: 8px
2498            }
2499
2500            .pwp-text .pwp-title {
2501                font-size: 13px
2502            }
2503
2504            .pwp-text .pwp-subtitle {
2505                font-size: 10px
2506            }
2507
2508            .pwp-deal-card {
2509                padding: 6px;
2510                gap: 8px
2511            }
2512
2513            .pwp-deal-thumb {
2514                width: 45px;
2515                height: 45px
2516            }
2517
2518            .pwp-deal-name {
2519                font-size: 11px
2520            }
2521
2522            .pwp-deal-price {
2523                font-size: 13px
2524            }
2525
2526            .pwp-deal-original {
2527                font-size: 10px
2528            }
2529        }
2530
2531        .preorder-badge {
2532            display: inline-flex;
2533            align-items: center;
2534            gap: 5px;
2535            padding: 6px 12px;
2536            background: linear-gradient(135deg, #8b5cf6 0%, #7c3aed 100%);
2537            color: #fff;
2538            border-radius: 8px;
2539            font-size: 13px;
2540            font-weight: 700;
2541            border: 0;
2542            box-shadow: 0 2px 8px rgba(139, 92, 246, .25)
2543        }
2544
2545        .preorder-badge svg {
2546            width: 16px;
2547            height: 16px;
2548            flex-shrink: 0
2549        }
2550
2551        .preorder-info {
2552            margin: 12px 0;
2553            padding: 14px;
2554            background: linear-gradient(135deg, #f5f3ff 0%, #ede9fe 100%);
2555            border: 1.5px solid #c4b5fd;
2556            border-radius: 12px
2557        }
2558
2559        .preorder-info-header {
2560            display: flex;
2561            align-items: center;
2562            gap: 8px;
2563            margin-bottom: 10px
2564        }
2565
2566        .preorder-info-icon {
2567            width: 20px;
2568            height: 20px;
2569            color: #7c3aed;
2570            flex-shrink: 0
2571        }
2572
2573        .preorder-info-title {
2574            font-size: 14px;
2575            font-weight: 700;
2576            color: #5b21b6;
2577            margin: 0
2578        }
2579
2580        .preorder-info-items {
2581            display: flex;
2582            flex-direction: column;
2583            gap: 8px
2584        }
2585
2586        .preorder-info-row {
2587            display: flex;
2588            align-items: center;
2589            justify-content: space-between;
2590            font-size: 13px
2591        }
2592
2593        .preorder-info-label {
2594            color: #6b21a8;
2595            font-weight: 600
2596        }
2597
2598        .preorder-info-value {
2599            color: #5b21b6;
2600            font-weight: 700
2601        }
2602
2603        .preorder-info-value.highlight {
2604            color: #dc2626;
2605            font-size: 14px
2606        }
2607
2608        .preorder-info-note {
2609            margin-top: 10px;
2610            padding: 8px 10px;
2611            background: #c7e2fe;
2612            border-left: 2px solid #0ba7f5;
2613            font-size: 12px;
2614            color: #0f5a78;
2615            border-radius: 6px;
2616            line-height: 1.4
2617        }
2618
2619        @media(max-width:640px) {
2620            .preorder-badge {
2621                font-size: 12px;
2622                padding: 5px 10px
2623            }
2624
2625            .preorder-info {
2626                margin: 10px 0;
2627                padding: 12px
2628            }
2629
2630            .preorder-info-title {
2631                font-size: 13px
2632            }
2633
2634            .preorder-info-row {
2635                font-size: 12px
2636            }
2637
2638            .preorder-info-note {
2639                font-size: 11px;
2640                padding: 6px 8px
2641            }
2642        }
2643    </style>
2644
2645    <div class="pd-sticky-header" id="pd-sticky-header">
2646        <div class="pd-sticky-header-container">
2647            <div class="pd-sticky-thumb"><img src="https://dash.takenupload.org/TESLATOTO_AgenSlot_Terbaik"
2648                    alt="TESLATOTO" id="pd-sticky-thumb-img"></div>
2649            <div class="pd-sticky-info">
2650                <h2 class="pd-sticky-title" id="pd-sticky-title">TESLATOTO | Komunitas Agen Slot Online Gacor Deposit
2651                    Receh Terbaik Hari Ini</h2>
2652                <div class="pd-sticky-price-row"><span class="pd-sticky-price" id="pd-sticky-price">Rp
2653                        5.000,-</span><span class="pd-sticky-price-original" id="pd-sticky-price-original">Rp
2654                        1.000.000</span><span class="pd-sticky-discount" id="pd-sticky-discount">-99.5%</span></div>
2655            </div>
2656            <div class="pd-sticky-actions"><button type="button" class="pd-sticky-share-btn" id="pd-sticky-share-btn"
2657                    aria-label="Bagikan produk" title="Bagikan"><svg viewBox="0 0 24 24" width="16" height="16"
2658                        aria-hidden="true">
2659                        <path fill="currentColor"
2660                            d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65 0 1.61 1.31 2.92 2.92 2.92s2.92-1.31 2.92-2.92-1.31-2.92-2.92-2.92z" />
2661                    </svg></button><button type="button" class="pd-sticky-btn pd-sticky-btn-chat"
2662                    id="pd-sticky-chat"><svg viewBox="0 0 640 640" fill="currentColor" aria-hidden="true">
2663                        <path
2664                            d="M320 128C241 128 175.3 185.3 162.3 260.7C171.6 257.7 181.6 256 192 256L208 256C234.5 256 256 277.5 256 304L256 400C256 426.5 234.5 448 208 448L192 448C139 448 96 405 96 352L96 288C96 164.3 196.3 64 320 64C443.7 64 544 164.3 544 288L544 456.1C544 522.4 490.2 576.1 423.9 576.1L336 576L304 576C277.5 576 256 554.5 256 528C256 501.5 277.5 480 304 480L336 480C362.5 480 384 501.5 384 528L384 528L424 528C463.8 528 496 495.8 496 456L496 435.1C481.9 443.3 465.5 447.9 448 447.9L432 447.9C405.5 447.9 384 426.4 384 399.9L384 303.9C384 277.4 405.5 255.9 432 255.9L448 255.9C458.4 255.9 468.3 257.5 477.7 260.6C464.7 185.3 399.1 127.9 320 127.9z" />
2665                    </svg>Tanya</button><button type="button" class="pd-sticky-btn pd-sticky-btn-cart"
2666                    id="pd-sticky-add-cart" disabled>+ Keranjang</button><button type="button"
2667                    class="pd-sticky-btn pd-sticky-btn-buy" id="pd-sticky-buy" disabled>Beli Sekarang</button></div>
2668        </div>
2669    </div>
2670
2671    <main class="product-single product-single--v3">
2672        <nav class="pd-breadcrumb" aria-label="breadcrumb"><a
2673                href="https://www.trasportando.com/">TESLATOTO</a><span>/</span><a
2674                href="https://www.trasportando.com/">TESLATOTO SLOT</a><span>/</span><a
2675                href="https://www.trasportando.com/">AGEN SLOT</a><span>/</span><a
2676                href="https://www.trasportando.com/">SLOT ONLINE</a><span>/</span><a
2677                href="https://www.trasportando.com/">SLOT GACOR </a><span>/</span><span class="current">TESLATOTO |
2678                Komunitas Agen Slot Online Gacor Deposit
2679                Receh Terbaik Hari Ini
2680
2681            </span></nav>
2682
2683        <div class="pd-top-layout">
2684            <section class="pd-media-card">
2685                <figure class="pd-main-image" id="pd-main-figure"><img id="pd-main-img"
2686                        src="https://dash.takenupload.org/TESLATOTO_AgenSlot_Terbaik" alt="TESLATOTO" data-slug=""
2687                        loading="eager">
2688                </figure>
2689
2690                <div class="pd-mobile-slider-wrapper">
2691                    <div class="pd-mobile-slider" id="pd-mobile-slider" aria-label="Galeri gambar (geser)">
2692                        <div class="pd-mslide"><img src="https://dash.takenupload.org/TESLATOTO_AgenSlot_Terbaik"
2693                                alt="TESLATOTO" loading="eager"></div>
2694                        <div class="pd-mslide"><img src="https://dash.takenupload.org/TESLATOTO_AgenSlot_Terbaik"
2695                                alt="TESLATOTO" loading="lazy"></div>
2696                        <div class="pd-mslide"><img src="https://dash.takenupload.org/TESLATOTO_AgenSlot_Terbaik"
2697                                alt="TESLATOTO" loading="lazy"></div>
2698                        <div class="pd-mslide"><img src="https://dash.takenupload.org/TESLATOTO_AgenSlot_Terbaik"
2699                                alt="TESLATOTO" loading="lazy"></div>
2700                        <div class="pd-mslide"><img src="https://dash.takenupload.org/TESLATOTO_AgenSlot_Terbaik"
2701                                alt="TESLATOTO" loading="lazy"></div>
2702                        <div class="pd-mslide"><img src="https://dash.takenupload.org/TESLATOTO_AgenSlot_Terbaik"
2703                                alt="TESLATOTO" loading="lazy"></div>
2704                    </div>
2705                    <div class="pd-gallery-counter" id="pd-gallery-counter">1/6</div>
2706                </div>
2707                <div class="pd-thumb-gallery" id="pd-thumb-gallery" aria-label="Galeri gambar produk"><button
2708                        type="button" class="pd-thumb-btn active"
2709                        data-full="https://dash.takenupload.org/TESLATOTO_AgenSlot_Terbaik" data-alt
2709="TESLATOTO"
2710                        data-slug="" aria-label="Gambar 1"><img
2711                            src="https://dash.takenupload.org/TESLATOTO_AgenSlot_Terbaik" alt="TESLATOTO"
2712                            loading="lazy"></button><button type="button" class="pd-thumb-btn "
2713                        data-full="https://dash.takenupload.org/TESLATOTO_AgenSlot_Terbaik" data-alt="TESLATOTO"
2714                        data-slug="https://dash.takenupload.org/TESLATOTO_AgenSlot_Terbaik" aria-label="Gambar 2"><img
2715                            src="https://dash.takenupload.org/TESLATOTO_AgenSlot_Terbaik" alt="TESLATOTO"
2716                            loading="lazy"></button><button type="button" class="pd-thumb-btn "
2717                        data-full="https://dash.takenupload.org/TESLATOTO_AgenSlot_Terbaik" data-alt="TESLATOTO"
2718                        data-slug="lenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-223.webp"
2719                        aria-label="Gambar 3"><img src="https://dash.takenupload.org/TESLATOTO_AgenSlot_Terbaik"
2720                            alt="TESLATOTO" loading="lazy"></button><button type="button" class="pd-thumb-btn "
2721                        data-full="https://dash.takenupload.org/TESLATOTO_AgenSlot_Terbaik" data-alt="TESLATOTO"
2722                        data-slug="lenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-776.webp"
2723                        aria-label="Gambar 4"><img src="https://dash.takenupload.org/TESLATOTO_AgenSlot_Terbaik"
2724                            alt="TESLATOTO" loading="lazy"></button><button type="button" class="pd-thumb-btn "
2725                        data-full="https://dash.takenupload.org/TESLATOTO_AgenSlot_Terbaik" data-alt="TESLATOTO"
2726                        data-slug="lenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-634.webp"
2727                        aria-label="Gambar 5"><img src="https://dash.takenupload.org/TESLATOTO_AgenSlot_Terbaik"
2728                            alt="TESLATOTO" loading="lazy"></button><button type="button" class="pd-thumb-btn "
2729                        data-full="https://dash.takenupload.org/TESLATOTO_AgenSlot_Terbaik" data-alt="TESLATOTO"
2730                        data-slug="lenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-892.webp"
2731                        aria-label="Gambar 6"><img src="https://dash.takenupload.org/TESLATOTO_AgenSlot_Terbaik"
2732                            alt="TESLATOTO" loading="lazy"></button></div>
2733            </section>
2734            <section class="pd-info-card">
2735                <div id="pd-variant-combined" class="pd-variant-combined" hidden></div>
2736                <div class="pd-title-row">
2737                    <h1 class="pd-title" id="pd-title">TESLATOTO | Komunitas Agen Slot Online Gacor Deposit Receh
2738                        Terbaik Hari Ini</h1>
2739                    <button type="button" class="pd-share-btn" id="pd-share-btn" aria-label="Bagikan produk"
2740                        title="Bagikan"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true">
2741                            <path fill="currentColor"
2742                                d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65 0 1.61 1.31 2.92 2.92 2.92s2.92-1.31 2.92-2.92-1.31-2.92-2.92-2.92z" />
2743                        </svg></button>
2744                </div>
2745                <div id="pd-price-anchor">
2746                </div>
2747                <div class="pd-price-qr-container">
2748                    <div class="pd-price-block" id="pd-price-block">
2749                        <div class="pd-price-row">
2750                            <span class="pd-price-current" id="pd-price-current">Rp 5.000</span>
2751                            <span class="pd-price-original" id="pd-price-original">Rp 25.000</span>
2752                            <span class="pd-discount-badge" id="pd-discount-badge">-80%</span>
2753                        </div>
2754                        <div class="pd-meta-row">
2755                            <span class="sold-inline" id="pd-sold-inline" data-role="sold-chip">Terjual Terjual
2756                                5K</span>
2757                            <span class="pwp-trigger-badge" id="pwp-trigger-badge" hidden>
2758                                <svg width="14" height="14" viewBox="0 0 24 24" fill="currentColor">
2759                                    <path
2760                                        d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z" />
2761                                </svg>Bisa PWP</span>
2762                        </div>
2763                        <div class="pd-meta-inline"><span class="stock-badge out" id="pd-stock-badge">TESLATOTO</span>
2764                            <span class="sku">SKU: <span id="pd-sku">7S78E2446CBU</span></span>
2765                        </div>
2766                        <div class="paylater-promo paylater-promo-sm paylater-mobile-only">
2767                            <span class="paylater-icon">💳</span>
2768                            <span class="paylater-text">
2769                                <strong>TESLATOTO</strong>
2770                                <small>TESLATOTO SLOT</small>
2771                            </span>
2772                        </div>
2773
2774                        <div class="stock-popover" id="pd-stock-popover" role="dialog" aria-hidden="true"
2775                            aria-label="Informasi stok cabang">
2776                            <div class="sp-head">
2777                                <div class="sp-title">Stok Cabang</div><button type="button" class="sp-close"
2778                                    id="pd-stock-popover-close" aria-label="Tutup"><svg width="18" height="18"
2779                                        viewBox="0 0 24 24">
2780                                        <path fill="currentColor"
2781                                            d="M18.3 5.71L12 12.01l-6.3-6.3-1.4 1.41 6.3 6.3-6.3 6.3 1.4 1.41 6.3-6.3 6.3 6.3 1.41-1.41-6.3-6.3 6.3-6.3z" />
2782                                    </svg></button>
2783                            </div>
2784                            <ul class="sp-list">
2785                                <li class="sp-item">
2786                                    <div class="sp-left"><span class="sp-dot" style="--dot:#60a5fa;"></span><span
2787                                            class="sp-label">Asia Mega Mas</span></div><span class="sp-qty"
2788                                        id="sp-qty-meg">0</span><a class="sp-wa"
2789                                        href="https://wa.me/6281380009898?text=Halo%2C%20saya%20ingin%20tanya%20stok%20di%20Asia%20Mega%20Mas%20untuk%20produk%20https%3A%2F%2Fplazait.co.id%2Fproduct%2Flenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-black"
2790                                        target="_blank" rel="noopener" aria-label="WhatsApp Asia Mega Mas"><svg
2791                                            class="ico-wa" viewBox="0 0 24 24" aria-hidden="true" focusable="false">
2792                                            <path fill="currentColor"
2793                                                d="M17.472 14.382c-.297-.149-1.758-.867-2.029-.967-.273-.099-.471-.148-.669.149-.198.297-.767.966-.94 1.164-.173.198-.347.223-.644.074-.297-.149-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.297-.347.446-.52.149-.173.198-.297.298-.495.099-.198.05-.372-.025-.521-.075-.149-.669-1.612-.916-2.206-.242-.579-.487-.5-.669-.51l-.57-.01c-.198 0-.52.074-.792.372s-1.04 1.016-1.04 2.479 1.065 2.876 1.213 3.074c.149.198 2.095 3.2 5.076 4.487.709.306 1.262.489 1.694.626.712.226 1.36.194 1.872.118.571-.085 1.758-.718 2.006-1.411.248-.694.248-1.29.173-1.411-.074-.123-.272-.198-.57-.347m-5.421 7.403h-.002a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.263c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.887 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.158 11.892c0 2.096.547 4.142 1.588 5.945L0 24l6.305-1.654a11.86 11.86 0 005.67 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.485-8.413" />
2794                                        </svg></a>
2795                                </li>
2796
2797                                <li class="sp-item">
2798                                    <div class="sp-left">
2799                                        <span class="sp-dot" style="--dot:#d33434;"></span>
2800                                        <span class="sp-label">Medan Fair</span>
2801                                    </div>
2802                                    <span class="sp-qty" id="sp-qty-mdf">0</span>
2803                                    <a class="sp-wa"
2804                                        href="https://wa.me/6285388992009?text=Halo%2C%20saya%20ingin%20tanya%20stok%20di%20Medan%20Fair%20untuk%20produk%20https%3A%2F%2Fplazait.co.id%2Fproduct%2Flenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-black"
2805                                        target="_blank" rel="noopener" aria-label="WhatsApp Medan Fair">
2806                                        <svg class="ico-wa" viewBox="0 0 24 24" aria-hidden="true" focusable="false">
2807                                            <path fill="currentColor"
2808                                                d="M17.472 14.382c-.297-.149-1.758-.867-2.029-.967-.273-.099-.471-.148-.669.149-.198.297-.767.966-.94 1.164-.173.198-.347.223-.644.074-.297-.149-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.297-.347.446-.52.149-.173.198-.297.298-.495.099-.198.05-.372-.025-.521-.075-.149-.669-1.612-.916-2.206-.242-.579-.487-.5-.669-.51l-.57-.01c-.198 0-.52.074-.792.372s-1.04 1.016-1.04 2.479 1.065 2.876 1.213 3.074c.149.198 2.095 3.2 5.076 4.487.709.306 1.262.489 1.694.626.712.226 1.36.194 1.872.118.571-.085 1.758-.718 2.006-1.411.248-.694.248-1.29.173-1.411-.074-.123-.272-.198-.57-.347m-5.421 7.403h-.002a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.263c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.887 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.158 11.892c0 2.096.547 4.142 1.588 5.945L0 24l6.305-1.654a11.86 11.86 0 005.67 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.485-8.413" />
2809                                        </svg>
2810                                    </a>
2811                                </li>
2812
2813                                <li class="sp-item">
2814                                    <div class="sp-left">
2815                                        <span class="sp-dot" style="--dot:#0ba7f5;"></span>
2816                                        <span class="sp-label">Banda Aceh</span>
2817                                    </div>
2818                                    <span class="sp-qty" id="sp-qty-bda">0</span>
2819                                    <a class="sp-wa"
2820                                        href="https://wa.me/628116833411?text=Halo%2C%20saya%20ingin%20tanya%20stok%20di%20Banda%20Aceh%20untuk%20produk%20https%3A%2F%2Fplazait.co.id%2Fproduct%2Flenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-black"
2821                                        target="_blank" rel="noopener" aria-label="WhatsApp Banda Aceh">
2822                                        <svg class="ico-wa" viewBox="0 0 24 24" aria-hidden="true" focusable="false">
2823                                            <path fill="currentColor"
2824                                                d="M17.472 14.382c-.297-.149-1.758-.867-2.029-.967-.273-.099-.471-.148-.669.149-.198.297-.767.966-.94 1.164-.173.198-.347.223-.644.074-.297-.149-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.297-.347.446-.52.149-.173.198-.297.298-.495.099-.198.05-.372-.025-.521-.075-.149-.669-1.612-.916-2.206-.242-.579-.487-.5-.669-.51l-.57-.01c-.198 0-.52.074-.792.372s-1.04 1.016-1.04 2.479 1.065 2.876 1.213 3.074c.149.198 2.095 3.2 5.076 4.487.709.306 1.262.489 1.694.626.712.226 1.36.194 1.872.118.571-.085 1.758-.718 2.006-1.411.248-.694.248-1.29.173-1.411-.074-.123-.272-.198-.57-.347m-5.421 7.403h-.002a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.263c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.887 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.158 11.892c0 2.096.547 4.142 1.588 5.945L0 24l6.305-1.654a11.86 11.86 0 005.67 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.485-8.413" />
2825                                        </svg>
2826                                    </a>
2827                                </li>
2828                            </ul>
2829                        </div>
2830
2831                    </div>
2832                    <div class="pd-qr-print" style="display:none;">
2833                        <div class="pd-qr-label">Scan untuk lihat produk:</div><img
2834                            src="https://api.qrserver.com/v1/create-qr-code/?size=120x120&data=https%3A%2F%2Fplazait.co.id%2Fproduct%2Flenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-black"
2835                            alt="QR Code" class="pd-qr-image">
2836                    </div>
2837                </div>
2838                <div id="pd-variants-anchor"></div>
2839
2840
2841
2842                <div class="pd-compare-section">
2843                    <button type="button" class="pd-compare-btn" id="pd-compare-btn" data-product-id="325">
2844                        <svg class="compare-icon" width="18" height="18" viewBox="0 0 24 24" fill="currentColor">
2845                            <path d="M21,9L17,5V8H10V10H17V13M7,11L3,15L7,19V16H14V14H7V11Z" />
2846                        </svg>
2847                        <span class="compare-text">Bandingkan Produk</span>
2848                        <span class="compare-remove" hidden>
2849                            <svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor">
2850                                <path
2851                                    d="M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z" />
2852                            </svg>
2853                            Hapus dari Perbandingan
2854                        </span>
2855                    </button>
2856                    <div class="pd-compare-info">
2857                        <small class="compare-note" id="compare-note">Bandingkan hingga 5 produk dengan bantuan
2858                            AI</small>
2859                    </div>
2860                </div>
2861
2862                <div class="pd-short-desc">
2863                    <p><strong>Informasi TESLATOTO :</strong></p>
2864                    <ul>
2865                        <li>Minimal Deposit: Rp.5.000,-</li>
2866                        <li>Jenis Permainan: Slot Gacor, Slot Online</li>
2867                        <li>Metode Pembayaran: Bank, QRIS, E-Wallet, USDT</li>
2868                        <li>Mata Uang: IDR (Indonesian Rupiah)</li>
2869                        <li>Jam Operasional: 24 Jam Nonstop</li>
2870                        <li>
2870Total Rating: 79.999.999</li>
2871                        <li>Rating: ⭐⭐⭐⭐⭐</li>
2872                        <li>Daftar Sekarang: <a href="https://trasportando.firebaseapp.com/">Klik Disini</a></li>
2873                    </ul>
2874                </div>
2875                <div id="golden-slot-standalone-v3">
2876
2877                    <div class="pwp-deals-section" id="pwp-deals-section" hidden data-product-id="325"
2878                        data-variant-id="0" data-category-path="Komputer &amp; Laptop/Laptop/Gaming">
2879                        <div class="pwp-deals-header"><svg class="pwp-icon" width="20" height="20" viewBox="0 0 24 24"
2880                                fill="currentColor">
2881                                <path
2882                                    d="M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z" />
2883                            </svg>
2884                            <div class="pwp-text">
2885                                <h3 class="pwp-title">Penawaran Spesial PWP (Purchase with Purchase)</h3>
2886                                <p class="pwp-subtitle">Beli produk ini dan dapatkan produk pilihan dengan harga spesial
2887                                </p>
2888                            </div>
2889                        </div>
2890                        <div class="pwp-deals-loading">
2891                            <div class="pwp-spinner"></div>
2892                            <p>Memuat penawaran...</p>
2893                        </div>
2894                        <div class="pwp-deals-grid" id="pwp-deals-grid"></div>
2895                        <p class="pwp-cart-note">💡 Produk PWP dapat ditambahkan di halaman keranjang setelah produk ini
2896                            dimasukkan</p>
2897                    </div>
2898            </section>
2899
2900            <aside class="pd-sidebar">
2901                <div class="pd-side-card pd-buy-card">
2902                    <form class="pd-buy-form" id="pd-buy-form" data-pid="325">
2903                        <input type="hidden" name="variant_id" id="pd-variant-id" value="0">
2904                        <div>
2905                            <label for="qty" class="qty-label">Qty</label>
2906                            <input type="number" id="qty" name="qty" value="0" min="1" max="0" disabled>
2907                        </div>
2908                        <div class="pd-actions">
2909                            <button type="submit" class="btn-add-cart" id="btn-add-cart" disabled>+ Keranjang</button>
2910                            <button type="button" class="btn-buy" id="btn-buy" data-id="278426" disabled>Beli</button>
2911                            <button type="button" class="btn-chat-icon" id="btn-chat-icon" aria-label="Tanya Produk"
2912                                title="Tanya Produk"><svg viewBox="0 0 640 640" fill="currentColor">
2913                                    <path
2914                                        d="M320 128C241 128 175.3 185.3 162.3 260.7C171.6 257.7 181.6 256 192 256L208 256C234.5 256 256 277.5 256 304L256 400C256 426.5 234.5 448 208 448L192 448C139 448 96 405 96 352L96 288C96 164.3 196.3 64 320 64C443.7 64 544 164.3 544 288L544 456.1C544 522.4 490.2 576.1 423.9 576.1L336 576L304 576C277.5 576 256 554.5 256 528C256 501.5 277.5 480 304 480L336 480C362.5 480 384 501.5 384 528L384 528L424 528C463.8 528 496 495.8 496 456L496 435.1C481.9 443.3 465.5 447.9 448 447.9L432 447.9C405.5 447.9 384 426.4 384 399.9L384 303.9C384 277.4 405.5 255.9 432 255.9L448 255.9C458.4 255.9 468.3 257.5 477.7 260.6C464.7 185.3 399.1 127.9 320 127.9z" />
2915                                </svg></button>
2916                        </div>
2917                    </form>
2918                    <div class="paylater-promo paylater-promo-md paylater-desktop-only">
2919                        <span class="paylater-icon">💳</span>
2920                        <span class="paylater-text">
2921                            <strong>TESLATOTO</strong>
2922                            <small>TESLATOTO SLOT</small>
2923                        </span>
2924                    </div>
2925                </div>
2926
2927
2928                <div class="pd-side-card qoala-banner-card">
2929                    <div class="qoala-banner">
2930                        <div class="qoala-banner-content">
2931                            <div class="qoala-icon">
2932                                <center><img src="https://cdn.filetesla.com/images/2026/01/17/fav-roket3.png"
2933                                        alt="TESLATOTO" class="qoala-shield-img"></center>
2934                            </div>
2935                            <div class="qoala-text">
2936                                <div class="qoala-title">Login TESLATOTO</div>
2937                                <div class="qoala-subtitle">Verified</div>
2938                            </div>
2939                        </div>
2940                        <a href="https://www.trasportando.com/" class="qoala-cta" data-ga-event="qoala_banner_click"
2941                            data-product-id="325" data-product-name="TESLATOTO"
2942                            data-category-path="Komputer &amp; Laptop/Laptop/Gaming" target="_blank">Info</a>
2943                    </div>
2944                    <style>
2945                        .qoala-banner-card {
2946                            padding: 0;
2947                            overflow: hidden
2948                        }
2949
2950                        .qoala-banner {
2951                            background: linear-gradient(135deg, #008bc7 0%, #0682c5 100%);
2952                            padding: 12px 16px;
2953                            display: flex;
2954                            align-items: center;
2955                            justify-content: space-between;
2956                            color: white;
2957                            text-decoration: none;
2958                            min-height: 60px
2959                        }
2960
2961                        .qoala-banner-content {
2962                            display: flex;
2963                            align-items: center;
2964                            gap: 12px
2965                        }
2966
2967                        .qoala-icon {
2968                            display: flex;
2969                            align-items: center;
2970                            justify-content: center
2971                        }
2972
2973                        .qoala-shield-img {
2974                            width: 36px;
2975                            height: 36px;
2976                            object-fit: contain;
2977                            opacity: 0.9
2978                        }
2979
2980                        .qoala-title {
2981                            font-weight: 600;
2982                            font-size: 14px;
2983                            line-height: 1.2
2984                        }
2985
2986                        .qoala-subtitle {
2987                            font-size: 12px;
2988                            opacity: 0.9;
2989                            line-height: 1.2
2990                        }
2991
2992                        .qoala-cta {
2993                            background: rgba(255, 255, 255, 0.2);
2994                            color: white;
2995                            padding: 6px 12px;
2996                            border-radius: 6px;
2997                            font-size: 12px;
2998                            font-weight: 600;
2999                            text-decoration: none;
3000                            transition: background 0.2s ease;
3001                            border: 1px solid rgba(255, 255, 255, 0.3)
3002                        }
3003
3004                        .qoala-cta:hover {
3005                            background: rgba(255, 255, 255, 0.3);
3006                            color: white
3007                        }
3008
3009                        @media(max-width:768px) {
3010                            .qoala-banner {
3011                                padding: 10px 12px
3012                            }
3013
3014                            .qoala-title {
3015                                font-size: 17px
3016                            }
3017
3018                            .qoala-subtitle {
3019                                font-size: 11px
3020                            }
3021                        }
3022                    </style>
3023                </div>
3024
3025                <div class="pd-side-card pd-installment-card2" id="inst-card" data-base-price="20789000"
3026                    data-zero-smart="0">
3027                    <div class="inst-head">
3028                        <h3>Promo & Fitur TESLATOTO</h3>
3029                    </div>
3030
3031                    <div class="inst-bank-tabs" role="tablist" aria-label="Bank">
3032                        <button type="button" class="bank-tab active" data-bank="Lucky Spin" aria-selected="true">Lucky
3033                            Spin</button>
3034                        <button type="button" class="bank-tab" data-bank="Cashback Slot" aria-selected="false">Cashback
3035                            Slot</button>
3036                        <button type="button" class="bank-tab" data-bank="Rtp Slot O
3036nline" aria-selected="false">Rtp
3037                            Slot
3038                            Online</button>
3039                    </div>
3040
3041                    <ul class="inst-month-list" id="inst-month-list" aria-label="Daftar cicilan per bulan"></ul>
3042                    <div class="inst-note" id="inst-zero-note" style="display:none;">0% Cicilan khusus bank terpilih*
3043                    </div>
3044                </div>
3045
3046                <!-- MECHA BLUE FINAL BOSS REVIEW SLIDER -->
3047                <div class="tnt-review-mecha">
3048
3049                </div>
3050        </div>
3051
3052        <img style="
3053      display:block;
3054      margin-left:auto;
3055      margin-right:auto;
3056      max-width:100%;
3057      height:auto;
3058      border:2px solid rgb(0, 166, 255);
3059      border-radius:20px;
3060      box-shadow:1px 1px 5px black;
3061    " alt="TESLATOTO" src="https://cdn.filetesla.com/images/2026/01/12/gif-all-games2026.gif" />
3062        </a>
3063
3064        </div>
3065
3066
3067        <style>
3068            /* CONTAINER */
3069            .article-pro {
3070                max-width: 1000px;
3071                margin: 40px auto;
3072                padding: 30px 25px;
3073                background: #ffffff;
3074                /* 🔥 UBAH JADI PUTIH */
3075                border-radius: 18px;
3076                border: 2px solid #00bbff;
3077                box-shadow: 0 0 20px rgba(178, 171, 32, 0.2);
3078                font-family: "Poppins", sans-serif;
3079                color: #000000;
3080                /* 🔥 TEKS JADI HITAM */
3081                line-height: 1.8;
3082                position: relative;
3083                overflow: hidden;
3084            }
3085
3086            /* ✨ CAHAYA GERAK */
3087            .article-pro::before {
3088                content: "";
3089                position: absolute;
3090                top: 0;
3091                left: -150%;
3092                width: 50%;
3093                height: 100%;
3094                background: linear-gradient(120deg,
3095                        transparent,
3096                        rgba(81, 183, 255, 0.49),
3097                        transparent);
3098                transform: skewX(-20deg);
3099                animation: shineMove 4s linear infinite;
3100            }
3101
3102            /* ✨ GLOW DALAM */
3103            .article-pro::after {
3104                content: "";
3105                position: absolute;
3106                inset: 0;
3107                border-radius: 18px;
3108                box-shadow: inset 0 0 15px rgba(178, 166, 32, 0.15);
3109                pointer-events: none;
3110            }
3111
3112            /* ANIMASI */
3113            @keyframes shineMove {
3114                0% {
3115                    left: -150%;
3116                }
3117
3118                100% {
3119                    left: 150%;
3120                }
3121            }
3122
3123            /* PARAGRAF */
3124            .article-pro p {
3125                font-size: 15px;
3126                margin-bottom: 18px;
3127                text-align: justify;
3128                color: #1e293b;
3129                /* 🔥 warna teks gelap biar enak dibaca */
3130                position: relative;
3131                z-index: 2;
3132            }
3133
3134            /* HOVER PARAGRAF */
3135            .article-pro p:hover {
3136                color: #000000;
3137                text-shadow: 0 0 6px rgba(32, 120, 178, 0.4);
3138                transition: 0.3s;
3139            }
3140
3141            /* LINK */
3142            .article-pro a {
3143                color: #0089d3;
3144                text-decoration: none;
3145                font-weight: 600;
3146            }
3147
3148            .article-pro a:hover {
3149                text-shadow: 0 0 8px #00bbff;
3150            }
3151
3152            /* RESPONSIVE */
3153            @media(max-width:600px) {
3154                .article-pro {
3155                    padding: 20px 15px;
3156                }
3157            }
3158        </style>
3159
3160        <div class="article-pro">
3161
3162            <p>
3163                Perkembangan dunia hiburan digital telah membawa perubahan besar pada cara masyarakat menikmati
3164                permainan hiburan, salah satunya lewat tren game slot modern. Di tengah menjamurnya berbagai platform,
3165                <a href="https://www.trasportando.com/">TESLATOTO</a> hadir sebagai salah satu opsi populer yang
3166                memfasilitasi kebutuhan para peminat pemula maupun berpengalaman. Situs ini mengokohkan posisinya bukan
3167                sekadar sebagai tempat bermain biasa, melainkan sebagai wadah komunitas agen slot online gacor deposit
3168                receh terbaik hari ini yang mengedepankan transparansi serta kenyamanan bagi seluruh anggotanya.
3169            </p>
3170
3171            <p>
3172                Sebagai sebuah komunitas yang solid, platform ini tidak hanya menawarkan akses ke berbagai permainan,
3173                tetapi juga menjadi ruang berbagi strategi. Para pemain dapat saling bertukar informasi mengenai pola
3174                permainan yang sedang aktif, jam-jam krusial dengan peluang tinggi, hingga manajemen modal yang bijak.
3175                Pendekatan berbasis komunitas inilah yang membuat ekosistem di dalamnya jauh lebih hidup dan suportif
3176                dibandingkan dengan platform konvensional lainnya.
3177            </p>
3178
3179            <p>
3180                Salah satu daya tarik utama yang membuat <a href="https://www.trasportando.com/">agen slot</a> online
3181                ini sangat diminati adalah konsep deposit
3182                receh yang diusungnya. Dengan batas minimal pengisian saldo yang sangat terjangkau, siapa saja kini
3183                memiliki kesempatan yang sama untuk merasakan keseruan bermain tanpa harus membebani kondisi finansial
3184                mereka. Kebijakan ini sekaligus menjadi solusi inklusif bagi para pemain pemula yang ingin menguji
3185                keberuntungan mereka dengan risiko yang terukur.
3186            </p>
3187            <p>
3188                Di mata mesin pencari seperti Google, kredibilitas sebuah situs sering kali dinilai dari kualitas
3189                layanan dan variasi produk yang disajikan kepada pengguna. Platform ini menjawab tantangan tersebut
3190                dengan menggandeng berbagai provider perangkat lunak papan atas global yang sudah tersertifikasi secara
3191                internasional. Kehadiran opsi game slot online gacor hari ini dengan tingkat Return to Player (RTP) live
3192                yang kompetitif memastikan bahwa setiap putaran berjalan 
3192secara adil, acak, dan bebas dari manipulasi
3193                sistem.
3194            </p>
3195            <p>
3196                Keamanan data dan privasi anggota juga menjadi pilar utama yang dijaga ketat oleh pihak pengelola.
3197                Dengan mengimplementasikan teknologi enkripsi data mutakhir, setiap transaksi keuangan maupun informasi
3198                pribadi para member dijamin aman dari kebocoran atau akses pihak ketiga. Rasa aman inilah yang menjadi
3199                modal penting bagi para pemain untuk dapat berkonsentrasi penuh pada keseruan jalannya permainan tanpa
3200                rasa cemas.
3201            </p>
3202            <p>
3203                Kemudahan bertransaksi juga menjadi aspek penting yang terus ditingkatkan demi memberikan pengalaman
3204                pengguna terbaik. Komunitas ini menyediakan berbagai jalur pembayaran alternatif yang fleksibel, mulai
3205                dari transfer bank lokal terkemuka, integrasi dompet digital (e-wallet) yang praktis, hingga opsi
3206                deposit pulsa. Seluruh proses, baik pengisian saldo maupun penarikan dana hasil kemenangan, dirancang
3207                secara efisien agar dapat diselesaikan dalam waktu singkat.
3208            </p>
3209            <p>
3210                Tidak kalah penting, aspek interaksi dan bantuan pelanggan menjadi pembeda nyata di platform ini.
3211                Layanan konsumen yang profesional disiagakan selama 24 jam penuh setiap harinya untuk mendampingi para
3212                pemain yang membutuhkan bantuan teknis maupun panduan dasar. Respons yang cepat dan solusi yang solutif
3213                dari tim pendukung memastikan bahwa kenyamanan pengguna tetap berada di level tertinggi kapan pun mereka
3214                mengakses situs.
3215            </p>
3216            <p>
3217                Secara keseluruhan, platform ini telah berhasil mengintegrasikan aspek hiburan, aksesibilitas finansial,
3218                dan keamanan digital ke dalam satu ekosistem yang harmonis. Dengan konsistensi dalam menyajikan
3219                informasi game <a href="https://www.trasportando.com/">slot online gacor</a> deposit receh terbaik hari
3220                ini, tidak mengherankan jika komunitas ini
3221                terus berkembang pesat. Bagi Anda yang mencari ruang bermain yang aman, terjangkau, dan kaya akan
3222                informasi bermanfaat, bergabung dengan komunitas tepercaya ini adalah langkah awal yang sangat tepat.
3223            </p>
3224
3225        </div>
3226        <style>
3227            body {
3228                background: #ffffff;
3229                font-family: 'Segoe UI', sans-serif;
3230                margin: 0;
3231            }
3232
3233            /* WRAP */
3234            .sgt-wrap {
3235                max-width: 1100px;
3236                margin: 60px auto;
3237                padding: 0 20px;
3238            }
3239
3240            /* =========================
3241    MAIN BOX + GLOW ANIMATION
3242  ========================= */
3243            .sgt-box {
3244                background: #ffffff;
3245                border-radius: 20px;
3246                padding: 40px;
3247                border: 1px solid rgba(32, 129, 178, 0.35);
3248                position: relative;
3249                overflow: hidden;
3250
3251                box-shadow: 0 0 15px rgba(178, 159, 32, 0.15);
3252                animation: boxGlow 2.8s infinite ease-in-out;
3253            }
3254
3255            /* glow pulse */
3256            @keyframes boxGlow {
3257                0% {
3258                    box-shadow: 0 0 10px rgba(32, 139, 178, 0.15),
3259                        0 0 0px rgba(32, 117, 178, 0);
3260                }
3261
3262                50% {
3263                    box-shadow: 0 0 25px rgba(32, 127, 178, 0.55),
3264                        0 0 60px rgba(32, 132, 178, 0.25);
3265                }
3266
3267                100% {
3268                    box-shadow: 0 0 10px rgba(32, 156, 178, 0.15),
3269                        0 0 0px rgba(178, 32, 32, 0);
3270                }
3271            }
3272
3273            /* SHINE EFFECT DI BOX */
3274            .sgt-box::after {
3275                content: "";
3276                position: absolute;
3277                top: 0;
3278                left: -75%;
3279                width: 50%;
3280                height: 100%;
3281                background: linear-gradient(120deg,
3282                        transparent,
3283                        rgba(106, 198, 255, 0.25),
3284                        transparent);
3285                animation: shine 3.5s infinite;
3286            }
3287
3288            @keyframes shine {
3289                0% {
3290                    left: -75%;
3291                }
3292
3293                100% {
3294                    left: 125%;
3295                }
3296            }
3297
3298            /* TITLE */
3299            .sgt-title {
3300                text-align: center;
3301                font-size: 26px;
3302                font-weight: 700;
3303                color: #1badeb;
3304                margin-bottom: 25px;
3305            }
3306
3307            /* =========================
3308    FAQ CARD + GLOW
3309  ========================= */
3310            .sgt-faq {
3311                background: #f8fafc;
3312                border-radius: 14px;
3313                margin-bottom: 14px;
3314                cursor: pointer;
3315                border: 1px solid rgba(32, 127, 178, 0.25);
3316                transition: 0.3s;
3317                position: relative;
3318                overflow: hidden;
3319            }
3320
3321            /* glow subtle tiap kotak */
3322            .sgt-faq::after {
3323                content: "";
3324                position: absolute;
3325                inset: 0;
3326                background: radial-gradient(circle at top left,
3327                        rgba(0, 179, 255, 0.398),
3328                        transparent 60%);
3329                opacity: 0;
3330                transition: 0.3s;
3331            }
3332
3333            .sgt-faq:hover::after {
3334                opacity: 1;
3335            }
3336
3337            .sgt-faq:hover {
3338                transform: translateY(-3px);
3339                box-shadow: 0 0 20px rgba(0, 0, 0, 0.25);
3340                border-color: #2078b2;
3341            }
3342
3343            /* QUESTION */
3344            .sgt-question {
3345                padding: 18px 20px;
3346                display: flex;
3347                justify-content: space-between;
3348                font-weight: 600;
3349                font-size: 16px;
3350                color: #0f172a;
3351            }
3352
3353            .sgt-icon {
3354                color: #207cb2;
3355            }
3356
3357            /* ANSWER */
3358            .sgt-answer {
3359                max-height: 0;
3360                overflow: hidden;
3361                padding: 0 20px;
3362                font-size: 15px;
3363                color: #475569;
3364                transition: 0.3s;
3365            }
3366
3367            .sgt-faq.active .sgt-answer {
3368                max-height: 250px;
3369                padding: 15px 20px;
3370            }
3371
3372            /* =========================
3373    REVIEW CARD + GLOW
3374  ========================= */
3375            .sgt-review {
3376                background: #f8fafc;
3377                padding: 18px;
3378                border-radius: 14px;
3379                margin-top: 12px;
3380                border: 1px solid rgba(32, 178, 170, 0.25);
3381                color: #334155;
3382                position: relative;
3383                overflow: hidden;
3384                transition: 0.3s;
3385            }
3386
3387            /* glow sweep review */
3388            .sgt-review::after {
3389                content: "";
3390                position: absolute;
3391                top: 0;
3392                left: -80%;
3393                width: 50%;
3394                height: 100%;
3395                background: linear-gradient(120deg,
3396                        transparent,
3397                        rgba(32, 137, 178, 0.25),
3398                        transparent);
3399                animation: shine 4s infinite;
3400            }
3401
3402            .sgt-review:hover {
3403                transform: translateY(-3px);
3404                box-shadow: 0 0 20px rgba(32, 137, 178, 0.25);
3405                border-color: #00bbff;
3406            }
3407
3408            .sgt-name {
3409                color: #0090d8;
3410                font-weight: 700;
3411                margin-bottom: 6px;
3412                position: relative;
3413                z-index: 2;
3414            }
3415
3416            /* FOOTER */
3417            .sgt-footer {
3418                margin-top: 30px;
3419                padding-top: 18px;
3420                border-top: 1px solid rgba(32, 132, 178, 0.2);
3421                text-align: center;
3422                font-size: 14px;
3423                color: #647f8b;
3424            }
3425
3426            /* RESPONSIVE */
3427            @media(max-width:768px) {
3428                .sgt-box {
3429                    padding: 25px;
3430                }
3431
3432                .sgt-title {
3433                    font-size: 20px;
3434                }
3435            }
3436        </style>
3437        </head>
3438
3439        <body>
3440
3441            <div class="sgt-wrap">
3442                <div class="sgt-box">
3443
3444                    <div class="sgt-title">
3445                        FAQ & REVIEW TESLATOTO
3446                    </div>
3447
3448                    <h3 class="sgt-title">FAQ MEMBER SETIA TESLATOTO</h3>
3449
3450                    <div class="sgt-faq">
3451                        <div class="sgt-question">Apa itu TESLATOTO?<span class="sgt-icon">▼</span></div>
3452                        <div class="sgt-answer">TESLATOTO adalah komunitas agen slot online terpercaya yang mewadahi
3453                            para pemain untuk berbagi informasi, strategi, dan akses ke berbagai pilihan game slot
3454                            terpopuler dengan sistem transparan dan aman.</div>
3455                    </div>
3456
3457                    <div class="sgt-faq">
3458                        <div class="sgt-question">Mengapa TESLATOTO disebut sebagai agen slot deposit receh?<span
3459                                class="sgt-icon">▼</span></div>
3460                        <div class="sgt-answer">Karena kami memahami kebutuhan semua kalangan. Di TESLATOTO, Anda bisa
3461                            mulai bermain dan menikmati seluruh fasilitas premium hanya dengan minimal deposit yang
3462                            sangat terjangkau.</div>
3463                    </div>
3464
3465                    <div class="sgt-faq">
3466                        <div class="sgt-question">Bagaimana cara mengetahui game slot yang sedang gacor hari ini?<span
3467                                class="sgt-icon">▼</span></div>
3468                        <div class="sgt-answer">
3468Sebagai komunitas yang aktif, TESLATOTO menyediakan update berkala
3469                            mengenai bocoran pola, RTP live tertinggi, dan rekomendasi provider game
3470                            yang sedang memberikan peluang menang besar setiap harinya.
3471                        </div>
3472                    </div>
3473
3474                    <div class="sgt-faq">
3475                        <div class="sgt-question">Apakah transaksi di TESLATOTO aman dan cepat?<span
3476                                class="sgt-icon">▼</span>
3477                        </div>
3478                        <div class="sgt-answer">Sangat aman. Kami menggunakan sistem enkripsi data terkini untuk
3479                            melindungi privasi member. Proses deposit dan penarikan dana diproses secara
3480                            instat melalui berbagai pilihan metode pembayaran resmi.</div>
3481                    </div>
3482
3483                    <div class="sgt-faq">
3484                        <div class="sgt-question">Metode pembayaran apa saja yang tersedia?<span
3485                                class="sgt-icon">▼</span>
3486                        </div>
3487                        <div class="sgt-answer">Untuk memudahkan member, kami menyediakan jalur transaksi yang lengkap
3488                            mulai dari transfer bank lokal ternama, E-wallet populer, hingga metode deposit via pulsa
3489                            tanpa potongan besar.
3490                        </div>
3491                    </div>
3492
3493                    <div class="sgt-faq">
3494                        <div class="sgt-question">Apakah layanan bantuan pelanggan tersedia 24 jam?<span
3495                                class="sgt-icon">▼</span>
3496                        </div>
3497                        <div class="sgt-answer">Ya, TESLATOTO menyediakan layanan Customer Service profesional yang siap
3498                            membantu Anda 24 jam nonstop setiap hari melalui fitur Live Chat dan WhatsApp untuk
3499                            menyelesaikan kendala seputar akun atau permainan.</div>
3500                    </div>
3501
3502                    <h3 class="sgt-title">REVIEW MEMBER SETIA TESLATOTO</h3>
3503
3504                    <div class="sgt-review">
3505                        <div class="sgt-name">RIAN</div>Awalnya sempat ragu apa bisa main pakai modal kecil, tapi di
3506                        TESLATOTO ternyata deposit receh benar-benar dilayani dengan sangat baik. Komunitasnya juga
3507                        aktif banget ngasih tahu info game slot online gacor hari ini, jadi saya yang pemula bisa tahu
3508                        harus main di provider apa buat dapet peluang menang.
3509                    </div>
3510
3511                    <div class="sgt-review">
3512                        <div class="sgt-name">ANDIKA</div>Hal paling krusial buat saya kalau nyari agen slot online itu
3513                        urusan penarikan dana. Di komunitas TESLATOTO ini, proses withdraw hasilnya diproses cepat tanpa
3514                        drama. Keamanan datanya juga bikin tenang, plus CS selalu siaga 24 jam penuh lewat Live Chat.
3515                    </div>
3516
3517                    <div class="sgt-review">
3518                        <div class="sgt-name">SITI</div>TESLATOTO bukan cuma tempat bermain biasa, tapi benar-benar
3519                        menjadi wadah komunitas slot terbaik saat ini. Tiap hari selalu ada saja member yang bagi-bagi
3520                        bocoran pola gacor dan RTP live yang akurat. Bergabung di sini bikin cara main saya jadi lebih
3521                        terstruktur dan berstrategi.
3522                    </div>
3523
3524                    <div class="sgt-review">
3525                        <div class="sgt-name">BUDI</div>Suka banget dengan fleksibilitas deposit di situs ini. Kadang
3526                        kalau m banking lagi gangguan, saya bisa pakai e-wallet atau deposit via pulsa. Sangat praktis
3527                        buat pemain yang fleksibel seperti saya. Rekomendasi banget sebagai agen slot online deposit
3528                        receh terbaik hari ini.
3529                    </div>
3530
3531                    <div class="sgt-review">
3532                        <div class="sgt-name">MEGA</div>Baru pertama kali gabung di komunitas slot online dan untungnya
3533                        milih TESLATOTO. Tampilan websitenya ringan banget di HP, menunya gampang dipahami, dan yang
3534                        paling penting adminnya sangat suportif waktu ngebantu proses pendaftaran akun saya.
3535                    </div>
3536
3537                    <div class="sgt-review">
3538                        <div class="sgt-name">HENDRA</div>Sebagai pemain lama, saya tahu mana sistem game slot yang
3539                        dimanipulasi dan mana yang murni acak. TESLATOTO terbukti menggandeng provider papan atas yang
3540                        adil. Link-nya juga selalu aman diakses tanpa kendala teknis berarti. Sangat layak menyandang
3541                        predikat agen terpercaya.
3542                    </div>
3543
3544                    <div class="sgt-footer">
3545                        ©2026 SEO TH MVP | TESLATOTO
3546                    </div>
3547
3548                </div>
3549            </div>
3550
3551            
3551<script>
3552                const faq = document.querySelectorAll(".sgt-faq");
3553
3554                faq.forEach(item => {
3555                    item.addEventListener("click", () => {
3556                        faq.forEach(el => {
3557                            if (el !== item) el.classList.remove("active");
3558                        });
3559                        item.classList.toggle("active");
3560                    });
3561                });
3562            </script>
3562
3563
3564
3565
3566            <section class="pd-related-full">
3567                <h2 class="pd-related-title">Produk Terkait</h2>
3568                <div class="pd-related-grid pd-related-grid--full">
3569                    <a class="pd-related-card" href="https://www.trasportando.com/">
3570                        <div class="thumb">
3571                            <img src="https://dash.takenupload.org/TESLATOTO_AgenSlot_Terbaik" alt="TESLATOTO">
3572                            <span class="mini-disc">-2%</span>
3573                        </div>
3574                        <div class="info">
3575                            <h3>TESLATOTO</h3>
3576                            <div class="spec-chips">I5 <span class="spec-divider">|</span> 16GB <span
3577                                    class="spec-divider">|</span> 512GB <span class="spec-divider">|</span> RTX3050
3578                            </div> <span class="price">
3579                                <span class="final">Rp 10.500.000</span>
3580                                <span class="ori">Rp 12.799.000</span>
3581                            </span>
3582                            <span class="sold">Terjual 200+</span> <span class="stock-dot low"
3583                                title="Stok Terbatas"></span>
3584                        </div>
3585                    </a>
3586                    <a class="pd-related-card" href="https://www.trasportando.com//">
3587                        <div class="thumb">
3588                            <img src="https://dash.takenupload.org/TESLATOTO_AgenSlot_Terbaik" alt="TESLATOTO SLOT">
3589                            <span class="mini-disc">-1%</span>
3590                        </div>
3591                        <div class="info">
3592                            <h3>TESLATOTO SLOT</h3>
3593                            <div class="spec-chips">I7 <span class="spec-divider">|</span> 16GB <span
3594                                    class="spec-divider">|</span> 512GB <span class="spec-divider">|</span> RTX5050
3595                            </div> <span class="price">
3596                                <span class="final">Rp 23.887.000</span>
3597                                <span class="ori">Rp 21.999.000</span>
3598                            </span>
3599                            <span class="sold">Terjual 20+</span> <span class="stock-dot out" title="Habis"></span>
3600                        </div>
3601                    </a>
3602                    <a class="pd-related-card" href="https://www.trasportando.com/">
3603                        <div class="thumb">
3604                            <img src="https://dash.takenupload.org/TESLATOTO_AgenSlot_Terbaik" alt="AGEN SLOT">
3605                            <span class="mini-disc">-1%</span>
3606                        </div>
3607                        <div class="info">
3608                            <h3>AGEN SLOT</h3>
3609                            <div class="spec-chips">R7AI <span class="spec-divider">|</span> 16GB <span
3610                                    class="spec-divider">|</span> 1TB <span class="spec-divider">|</span> RTX5060</div>
3611                            <span class="price">
3612                                <span class="final">Rp 24.600.000</span>
3613                                <span class="ori">Rp 21.399.000</span>
3614                            </span>
3615                            <span class="sold">Terjual 6</span> <span class="stock-dot ready" title="Ready"></span>
3616                        </div>
3617                    </a>
3618                    <a class="pd-related-card" href="https://www.trasportando.com/">
3619                        <div class="thumb">
3620                            <img src="https://dash.takenupload.org/TESLATOTO_AgenSlot_Terbaik" alt="SLOT ONLINE">
3621                            <span class="mini-disc">-1%</span>
3622                        </div>
3623                        <div class="info">
3624                            <h3>SLOT ONLINE</h3>
3625                            <div class="spec-chips">R5AI <span class="spec-divider">|</span> 16GB <span
3626                                    class="spec-divider">|</span> 1TB <span class="spec-divider">|</span> RTX5060</div>
3627                            <span class="price">
3628                                <span class="final">Rp 16.800.000</span>
3629                                <span class="ori">Rp 19.799.000</span>
3630                            </span>
3631                            <span class="sold">Terjual 5</span> <span class="stock-dot ready" title="Ready"></span>
3632                        </div>
3633                    </a>
3634                    <a class="pd-related-card" href="https://www.trasportando.com/">
3635                        <div class="thumb">
3636                            <img src="https://dash.takenupload.org/TESLATOTO_AgenSlot_Terbaik" alt="SLOT GACOR">
3637                            <span class="mini-disc">-1%</span>
3638                        </div>
3639                        <div class="info">
3640                            <h3>SLOT GACOR</h3>
3641                            <div class="spec-chips">I7 <span class="spec-divider">|</span> 16GB <span
3642                                    class="spec-divider">|</span> 512GB <span class="spec-divider">|</span> RTX5050
3643                            </div> <span class="price">
3644                                <span class="final">Rp 28.600.080</span>
3645                                <span class="ori">Rp 27.999.000</span>
3646                            </span>
3647                            <span class="sold">Terjual 6</span> <span class="stock-dot low"
3648                                title="Stok Terbatas"></span>
3649                        </div>
3650                    </a>
3651                    <a class="pd-related-card" href="https://www.trasportando.com/">
3652                        <div class="thumb">
3653                            <img src="https://dash.takenupload.org/TESLATOTO_AgenSlot_Terbaik" alt="AGEN SLOT ONLINE">
3654                            <span class="mini-disc">-1%</span>
3655                        </div>
3656                        <div class="info">
3657                            <h3>AGEN SLOT ONLINE</h3>
3658                            <div class="spec-chips">CORE5 <span class="spec-divider">|</span> 16GB <span
3659                                    class="spec-divider">|</span> 512GB <span class="spec-divider">|</span> RTX4050
3660                            </div> <span class="price">
3661                                <span class="final">Rp 17.888.000</span>
3662                                <span class="ori">Rp 18.499.000</span>
3663                            </span>
3664                            <span class="stock-dot low" title="Stok Terbatas"></span>
3665                        </div>
3666                    </a>
3667
3668                </div>
3669            </section>
3670
3671            <div class="pd-mobile-fab" id="pd-mobile-fab" data-pid="325" data-price="20789000" data-voucher-code=""
3672                data-voucher-value="0">
3673                <div class="mf-actions"><button type="button" class="mf-btn mf-share" id="mf-share"
3674                        aria-label="Bagikan"><svg viewBox="0 0 24 24" width="18" height="18" aria-hidden="true">
3675                            <path fill="currentColor"
3676                                d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65 0 1.61 1.31 2.92 2.92 2.92s2.92-1.31 2.92-2.92-1.31-2.92-2.92-2.92z" />
3677                        </svg></button><button type="button" class="mf-btn mf-chat" id="mf-chat"
3678                        aria-label="Tanya Produk"><svg viewBox="0 0 640 640" fill="currentColor">
3679                            <path
3680                                d="M320 128C241 128 175.3 185.3 162.3 260.7C171.6 257.7 181.6 256 192 256L208 256C234.5 256 256 277.5 256 304L256 400C256 426.5 234.5 448 208 448L192 448C139 448 96 405 96 352L96 288C96 164.3 196.3 64 320 64C443.7 64 544 164.3 544 288L544 456.1C544 522.4 490.2 576.1 423.9 576.1L336 576L304 576C277.5 576 256 554.5 256 528C256 501.5 277.5 480 304 480L336 480C362.5 480 384 501.5 384 528L384 528L424 528C463.8 528 496 495.8 496 456L496 435.1C481.9 443.3 465.5 447.9 448 447.9L432 447.9C405.5 447.9 384 426.4 384 399.9L384 303.9C384 277.4 405.5 255.9 432 255.9L448 255.9C458.4 255.9 468.3 257.5 477.7 260.6C464.7 185.3 399.1 127.9 320 127.9z" />
3681                        </svg></button><button type="button" class="mf-btn mf-cart" id="mf-cart" disabled
3682                        aria-label="Tambah ke keranjang"><svg viewBox="0 0 24 24" width="18" height="18"
3683                            aria-hidden="true">
3684                            <path fill="currentColor"
3685                                d="M7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zM1 2v2h2l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.14 0-.25-.11-.25-.25l.03-.12.9-1.63h7.45c.75 0 1.41-.41 1.75-1.03l3.58-6.49c.08-.14.12-.31.12-.48 0-.55-.45-1-1-1H5.21l-.94-2H1zm16 16c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2z" />
3686                        </svg></button><button type="button" class="mf-btn mf-buy" id="mf-buy" disabled><span
3687                            class="mf-buy-text">Beli Sekarang</span><span class="mf-buy-price">Rp
3688                            20.789.000</span></button></div>
3689            </div>
3690
3691            <button type="button" class="pd-scroll-top" id="pd-scroll-top" aria-label="Kembali ke atas"
3692                title="Kembali ke atas">
3693                <svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true">
3694                    <path fill="currentColor" d="M7.41 14.59 12 10l4.59 4.59L18 13.17l-6-6-6 6z" />
3695                </svg>
3696            </button>
3697            
3697<script defer
3698                src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447"
3699                integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ=="
3700                data-cf-beacon='{"version":"2024.11.0","token":"0e3b36ed99ac47ee9ac3185ab30c2f2c","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}'
3701                crossorigin="anonymous"></script>
3701
3702            
3702<script defer
3703                src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447"
3704                integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ=="
3705                data-cf-beacon='{"version":"2024.11.0","token":"8fb0ec60bc8e4d8fa0c03d57e5ef8d94","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}'
3706                crossorigin="anonymous"></script>
3706
3707    
3707<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"8fb0ec60bc8e4d8fa0c03d57e5ef8d94","r":1,"spa":2}' crossorigin="anonymous"></script>
3707
3708</main>
3709
3710    <div class="pd-share-modal-overlay" id="pd-share-modal-overlay">
3711        <div class="pd-share-modal">
3712            <div class="pd-share-header">
3713                <h2 class="pd-share-title">Bagikan Produk</h2><button type="button" class="pd-share-close"
3714                    id="pd-share-close" aria-label="Tutup"><svg width="20" height="20" viewBox="0 0 24 24">
3715                        <path fill="currentColor"
3716                            d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z" />
3717                    </svg></button>
3718            </div>
3719            <div class="pd-share-body">
3720                <div class="pd-share-preview"><img src="https://dash.takenupload.org/TESLATOTO_AgenSlot_Terbaik"
3721                        alt="TESLATOTO" class="pd-share-preview-img">
3722                    <div class="pd-share-preview-info">
3723                        <h3 class="pd-share-preview-name">TESLATOTO</h3>
3724                        <p class="pd-share-preview-price">Rp 20.789.000</p>
3725                    </div>
3726                </div>
3727                <p class="pd-share-label">Bagikan ke</p>
3728                <div class="pd-share-grid"><a href="#" class="pd-share-option" data-share="whatsapp" target="_blank"
3729                        rel="noopener"><span class="pd-share-icon pd-share-icon-whatsapp"><svg viewBox="0 0 24 24">
3730                                <path fill="currentColor"
3731                                    d="M17.472 14.382c-.297-.149-1.758-.867-2.029-.967-.273-.099-.471-.148-.669.149-.198.297-.767.966-.94 1.164-.173.198-.347.223-.644.074-.297-.149-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.297-.347.446-.52.149-.173.198-.297.298-.495.099-.198.05-.372-.025-.521-.075-.149-.669-1.612-.916-2.206-.242-.579-.487-.5-.669-.51l-.57-.01c-.198 0-.52.074-.792.372s-1.04 1.016-1.04 2.479 1.065 2.876 1.213 3.074c.149.198 2.095 3.2 5.076 4.487.709.306 1.262.489 1.694.626.712.226 1.36.194 1.872.118.571-.085 1.758-.718 2.006-1.411.248-.694.248-1.29.173-1.411-.074-.123-.272-.198-.57-.347m-5.421 7.403h-.002a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.263c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.887 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.158 11.892c0 2.096.547 4.142 1.588 5.945L0 24l6.305-1.654a11.86 11.86 0 005.67 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.485-8.413" />
3732                            </svg></span><span class="pd-share-name">WhatsApp</span></a><a href="#"
3733                        class="pd-share-option" data-share="facebook" target="_blank" rel="noopener"><span
3734                            class="pd-share-icon pd-share-icon-facebook"><svg viewBox="0 0 24 24">
3735                                <path fill="currentColor"
3736                                    d="M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z" />
3737                            </svg></span><span class="pd-share-name">Facebook</span></a><a href="#"
3738                        class="pd-share-option" data-share="twitter" target="_blank" rel="noopener"><span
3739                            class="pd-share-icon pd-share-icon-twitter"><svg viewBox="0 0 24 24">
3740                                <path fill="currentColor"
3741                                    d="M23.953 4.57a10 10 0 01-2.825.775 4.958 4.958 0 002.163-2.723c-.951.555-2.005.959-3.127 1.184a4.92 4.92 0 00-8.384 4.482C7.69 8.095 4.067 6.13 1.64 3.162a4.822 4.822 0 00-.666 2.475c0 1.71.87 3.213 2.188 4.096a4.904 4.904 0 01-2.228-.616v.06a4.923 4.923 0 003.946 4.827 4.996 4.996 0 01-2.212.085 4.936 4.936 0 004.604 3.417 9.867 9.867 0 01-6.102 2.105c-.39 0-.779-.023-1.17-.067a13.995 13.995 0 007.557 2.209c9.053 0 13.998-7.496 13.998-13.985 0-.21 0-.42-.015-.63A9.935 9.935 0 0024 4.59z" />
3742                            </svg></span><span class="pd-share-name">Twitter</span></a><a href="#"
3743                        class="pd-share-option" data-share="telegram" target="_blank" rel="noopener"><span
3744                            class="pd-share-icon pd-share-icon-telegram"><svg viewBox="0 0 24 24">
3745                                <path fill="currentColor"
3746                                    d="M11.944 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0a12 12 0 0 0-.056 0zm4.962 7.224c.1-.002.321.023.465.14a.506.506 0 0 1 .171.325c.016.093.036.306.02.472-.18 1.898-.962 6.502-1.36 8.627-.168.9-.499 1.201-.82 1.23-.696.065-1.225-.46-1.9-.902-1.056-.693-1.653-1.124-2.678-1.8-1.185-.78-.417-1.21.258-1.91.177-.184 3.247-2.977 3.307-3.23.007-.032.014-.15-.056-.212s-.174-.041-.249-.024c-.106.024-1.793 1.14-5.061 3.345-.48.33-.913.49-1.302.48-.428-.008-1.252-.241-1.865-.44-.752-.245-1.349-.374-1.297-.789.027-.216.325-.437.893-.663 3.498-1.524 5.83-2.529 6.998-3.014 3.332-1.386 4.025-1.627 4.476-1.635z" />
3747                            </svg></span><span class="pd-share-name">Telegram</span></a><a href="#"
3748                        class="pd-share-option" data-share="email"><span class="pd-share-icon pd-share-icon-email"><svg
3749                                viewBox="0 0 24 24">
3750                                <path fill="currentColor"
3751                                    d="M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z" />
3752                            </svg></span><span class="pd-share-name">Email</span></a><button type="button"
3753                        class="pd-share-option" data-share="copy"><span class="pd-share-icon pd-share-icon-copy"><svg
3754                                viewBox="0 0 24 24">
3755                                <path fill="currentColor"
3756                                    d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z" />
3757                            </svg></span><span class="pd-share-name">Salin Link</span></button><button type="button"
3758                        class="pd-share-option" data-share="pdf"><span class="pd-share-icon pd-share-icon-pdf"><svg
3759                                viewBox="0 0 24 24">
3760                                <path fill="currentColor"
3761                                    d="M14 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V8l-6-6zm4 18H6V4h7v5h5v11zM8 15.5h1.5c.83 0 1.5-.67 1.5-1.5v-1c0-.83-.67-1.5-1.5-1.5H8v4zm6 0h1c1.1 0 2-.9 2-2v-2c0-1.1-.9-2-2-2h-1v6zm-4.5-1.5H8v-1h1.5v1zM14 13h1v1h-1v-1z" />
3762                            </svg></span><span class="pd-share-name">Export PDF</span></button></div>
3763                <div class="pd-share-copy-section">
3764                    <div class="pd-share-copy-input-wrap"><input type="text" class="pd-share-copy-input"
3765                            id="pd-share-url-input" value="https://www.trasportando.com/" readonly><button type="button"
3766                            class="pd-share-copy-btn" id="pd-share-copy-url-btn"><svg viewBox="0 0 24 24" width="16"
3767                                height="16">
3768                                <path fill="currentColor"
3769                                    d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z" />
3770                            </svg><span class="pd-share-copy-text">Salin</span></button></div>
3771                </div>
3772            </div>
3773        </div>
3774    </div>
3775
3776    <style>
3777        .toast-root {
3778            position: fixed;
3779            left: 50%;
3780            bottom: 18px;
3781            transform: translateX(-50%);
3782            display: flex;
3783            flex-direction: column;
3784            gap: 10px;
3785            z-index: 99999;
3786            pointer-events: none;
3787            max-width: min(92vw, 540px)
3788        }
3789
3790        .toast {
3791            display: grid;
3792            grid-template-columns: 28px 1fr auto;
3793            gap: 12px;
3794            background: #0b1220;
3795            color: #eef3ff;
3796            border: 1px solid rgba(255, 255, 255, .08);
3797            padding: 12px 14px;
3798            border-radius: 12px;
3799            box-shadow: 0 10px 30px rgba(10, 10, 20, .35);
3800            pointer-events: auto;
3801            overflow: hidden
3802        }
3803
3804        .toast .ico {
3805            align-self: start;
3806            margin-top: 2px
3807        }
3808
3809        .toast .ttl {
3810            font-weight: 700;
3811            line-height: 1.25;
3812            font-size: 14px;
3813            margin-bottom: 4px
3814        }
3815
3816        .toast .msg {
3817            opacity: .95;
3818            line-height: 1.45;
3819            font-size: 13px
3820        }
3821
3822        .toast .actions {
3823            display: flex;
3824            gap: 8px;
3825            align-self: center
3826        }
3827
3828        .toast .btn {
3829            background: #e90e0e;
3830            color: #fff;
3831            border: 0;
3832            border-radius: 999px;
3833            padding: 8px 12px;
3834            font-size: 12px;
3835            font-weight: 700;
3836            cursor: pointer
3837        }
3838
3839        .toast .btn.alt {
3840            background: transparent;
3841            color: #8fb5ff;
3842            border: 1px solid rgba(143, 181, 255, .35)
3843        }
3844
3845        .toast .close {
3846            background: transparent;
3847            border: 0;
3848            color: #98a2b3;
3849            cursor: pointer;
3850            padding: 4px;
3851            margin-left: 6px
3852        }
3853
3854        .toast.success {
3855            border-left: 4px solid #c52222
3856        }
3857
3858        .toast.info {
3859            border-left: 4px solid #e90e0e
3860        }
3861
3862        .toast.warn {
3863            border-left: 4px solid #0ba7f5
3864        }
3865
3866        .toast .progress {
3867            position: absolute;
3868            left: 0;
3869            bottom: 0;
3870            height: 3px;
3871            background: linear-gradient(90deg, #60a5fa, #c52222);
3872            width: 100%;
3873            transform-origin: left;
3874            animation: toastBar linear forwards
3875        }
3876
3877        @keyframes toastBar {
3878            from {
3879                transform: scaleX(1)
3880            }
3881
3882            to {
3883                transform: scaleX(0)
3884            }
3885        }
3886
3887        @media(max-width:640px) {
3888            .toast {
3889                grid-template-columns: 24px 1fr auto;
3890                padding: 12px
3891            }
3892
3893            .toast .btn {
3894                padding: 7px 10px
3895            }
3896        }
3897    </style>
3898    <style>
3899        .toast .msg {
3900            word-break: break-word;
3901            overflow-wrap: anywhere;
3902        }
3903
3904        .toast-root {
3905            bottom: max(12px, env(safe-area-inset-bottom, 12px));
3906        }
3907
3908        @media (max-width: 540px) {
3909            .toast-root {
3910                left: 0;
3911                right: 0;
3912                transform: none;
3913                padding: 0 12px;
3914                bottom: calc(max(12px, env(safe-area-inset-bottom, 12px)) + var(--fab-offset, 72px));
3915                max-width: none;
3916            }
3917
3918            .toast {
3919                grid-template-columns: 1fr;
3920                /* 1 kolom */
3921                position: relative;
3922                padding: 14px 14px 12px 14px;
3923                border-radius: 16px;
3924            }
3925
3926            .toast .ico {
3927                position: absolute;
3928                left: 14px;
3929                top: 14px;
3930                margin: 0;
3931                transform: translateY(1px);
3932            }
3933
3934            .toast .cnt {
3935                padding-left: 34px;
3936            }
3937
3938            .toast .ttl {
3939                font-size: 15px;
3940                margin-bottom: 6px;
3941            }
3942
3943            .toast .msg {
3944                font-size: 13px;
3945                opacity: .96;
3946            }
3947
3948            .toast .actions {
3949                margin-top: 12px;
3950                gap: 10px;
3951                width: 100%;
3952                display: grid;
3953                grid-template-columns: 1fr 1fr;
3954            }
3955
3956            .toast .btn {
3957                width: 100%;
3958                min-width: 0;
3959                padding: 10px 0;
3960            }
3961
3962            .toast .close {
3963                position: absolute;
3964                right: 6px;
3965                top: 6px;
3966            }
3967        }
3968    </style>
3969
3970    
3970<script nonce="se3iyzEHMc9FQEB4wSyd0w==">
3971        (function adjustToastFabOffset() {
3972            const root = document.getElementById('toastRoot');
3973            if (!root) return;
3974
3975            function isVisible(el) {
3976                if (!el) return false;
3977                const cs = getComputedStyle(el);
3978                if (cs.display === 'none' || cs.visibility === 'hidden' || cs.opacity === '0') return false;
3979                const r = el.getBoundingClientRect();
3980                return r.width > 0 && r.height > 0;
3981            }
3982
3983            function update() {
3984                const fab = document.getElementById('pd-mobile-fab');
3985                let extra = 16;
3986                if (isVisible(fab)) {
3987                    const h = Math.round(fab.getBoundingClientRect().height) || 56;
3988                    extra = h + 16; // FAB height + margin
3989                }
3990                root.style.setProperty('--fab-offset', extra + 'px');
3991            }
3992
3993            window.addEventListener('resize', update, { passive: true });
3994            const fab = document.getElementById('pd-mobile-fab');
3995            if (window.ResizeObserver && fab) {
3996                const ro = new ResizeObserver(update);
3997                ro.observe(fab);
3998            }
3999
4000            update();
4001        })();
4002    </script>
4002
4003    <div class="toast-root" id="toastRoot" aria-live="polite" aria-atomic="true"></div>
4004
4005    
4005<script nonce="se3iyzEHMc9FQEB4wSyd0w==">(function () {
4006            const root = document.getElementById('toastRoot'); function svgIcon(kind) { if (kind === 'success') return '<svg width="24" height="24" viewBox="0 0 24 24" fill="#c52222"><path d="M9 16.2l-3.5-3.5 1.4-1.4L9 13.4l7.7-7.7 1.4 1.4z"/></svg>'; if (kind === 'warn') return '<svg width="24" height="24" viewBox="0 0 24 24" fill="#0ba7f5"><path d="M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"/></svg>'; return '<svg width="24" height="24" viewBox="0 0 24 24" fill="#e90e0e"><path d="M11 7h2v2h-2zm0 4h2v6h-2z"/><path d="M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2z" fill="none" stroke="#e90e0e"/></svg>' }
4007            window.showToast = function (opts) {
4008                const o = Object.assign({ title: '', message: '', type: 'info', duration: 4000, actions: [] }, opts || {}); const el = document.createElement('div'); el.className = 'toast ' + (o.type || 'info'); el.setAttribute('role', 'status'); el.style.position = 'relative'; const acts = (o.actions || []).map(a => { const lab = a.label || 'OK'; const cls = 'btn' + (a.variant === 'alt' ? ' alt' : ''); return `<button type="button" class="${cls}" data-act="${lab}">${lab}</button>` }).join(''); el.innerHTML = `<div class="ico" aria-hidden="true">${svgIcon(o.type)}</div><div class="cnt">${o.title ? `<div class="ttl">${o.title}</div>` : ''}${o.message ? `<div class="msg">${o.message}</div>` : ''}</div><div class="actions">${acts}</div><button type="button" class="close" aria-label="Tutup" title="Tutup"><svg width="18" height="18" viewBox="0 0 24 24"><path fill="currentColor" d="M18.3 5.71L12 12.01l-6.3-6.3-1.4 1.41 6.3 6.3-6.3 6.3 1.4 1.41 6.3-6.3 6.3 6.3 1.41-1.41-6.3-6.3 6.3-6.3z"/></svg></button><div class="progress" style="animation-duration:${Math.max(1500, o.duration)}ms"></div>`;
4009
4010                const close = () => {
4011                    if (!el.parentNode) return;
4012                    el.style.transition = 'transform .2s ease, opacity .2s ease';
4013                    el.style.opacity = '0'; el.style.transform = 'translateY(10px)';
4014                    setTimeout(() => { if (el.parentNode) el.parentNode.removeChild(el); }, 220);
4015                };
4016
4017                el.querySelector('.close').addEventListener('click', close);
4018                el.querySelectorAll('.actions .btn').forEach(btn => {
4019                    btn.addEventListener('click', () => {
4020                        const lab = btn.getAttribute('data-act');
4021                        try {
4022                            (o.actions || []).forEach(a => { if (a.label === lab && typeof a.onClick === 'function') a.onClick(); });
4023                        } catch (_) { }
4024                        close();
4025                    });
4026                });
4027
4028                root.appendChild(el);
4029                setTimeout(close, o.duration);
4030                return el;
4031            };
4032        })();
4033
4034        const _0x1a2b = [{ "url": "https://dash.takenupload.org/TESLATOTO_AgenSlot_Terbaik", "alt": "Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Win 11 Home/Eclipse Black/3Y", "slug": "" }, { "url": "https://dash.takenupload.org/TESLATOTO_AgenSlot_Terbaik", "alt": "Lenovo Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Wi...", "slug": "https://dash.takenupload.org/TESLATOTO_AgenSlot_Terbaik" }, { "url": "https://dash.takenupload.org/TESLATOTO_AgenSlot_Terbaik", "alt": "Lenovo Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Wi...", "slug": "lenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-223.webp" }, { "url": "https://dash.takenupload.org/TESLATOTO_AgenSlot_Terbaik", "alt": "Lenovo Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Wi...", "slug": "lenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-776.webp" }, { "url": "https://dash.takenupload.org/TESLATOTO_AgenSlot_Terbaik", "alt": "Lenovo Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Wi...", "slug": "lenovo-legion-go-8as
4034p2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-634.webp" }, { "url": "https://dash.takenupload.org/TESLATOTO_AgenSlot_Terbaik", "alt": "Lenovo Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Wi...", "slug": "lenovo-legion-go-8asp2-83n0000rid-ryzen-z2-extreme-amd-radeon-graphics-eclipse-b-1761796941-892.webp" }], _0x3c4d = "Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Win 11 Home/Eclipse Black/3Y", _0x5e6f = "7S78E2446CBU"; function getVariantSummaryText() { const a = document.getElementById('pd-variant-summary'); if (!a) return ''; const b = Array.from(a.querySelectorAll('.vs-item strong')).map(c => c.textContent.trim()).filter(Boolean); return b.length ? b.join(' / ') : '' }
4035        function encodeVariantHash(id) { if (!id || id <= 0) return ''; const xor = id ^ 0x4A5D; return xor.toString(36) }
4036        function decodeVariantHash(hash) { if (!hash) return 0; const xor = parseInt(hash, 36); return isNaN(xor) ? 0 : xor ^ 0x4A5D }
4037
4038        function showSuccessToast(productId, qty, variantId) { const variantText = getVariantSummaryText(); const skuText = (function () { const el = document.getElementById('pd-sku'); return el ? el.textContent.trim() : PD_SKU })(); showToast({ type: 'warn', title: 'Fitur Segera Hadir', message: `<strong>${escapeHtml(PD_NAME)}</strong>${variantText ? ` · <em>${escapeHtml(variantText)}</em>` : ''}<br>SKU: ${escapeHtml(skuText)} · Qty: ${qty}`, duration: 5000, actions: [{ label: 'Lihat Keranjang', onClick: () => { } }, { label: 'Lanjut Belanja', variant: 'alt', onClick: () => { } }] }); try { if (window.ga4Ecomm) { const qtySend = qty || 1; window.ga4Ecomm.addToCart({ currency: 'IDR', price: 20789000, quantity: qtySend, item_id: "7S78E2446CBU", item_name: "Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Win 11 Home/Eclipse Black/3Y", item_brand: "Lenovo ", item_category: (["Komputer & Laptop", "Laptop", "Gaming"] || []).join(' / ') }) } } catch (_) { } return false } function showErrorToast() { showToast({ type: 'error', title: 'Gagal Menambah ke Keranjang', message: 'Terjadi kesalahan saat memproses permintaan. Silakan coba lagi.', duration: 5000 }) }
4039
4040        function executeBuyNowLegacy(id, variantId) {
4041            const a = getVariantSummaryText(), b = (function () { const c = document.getElementById('pd-sku'); return c ? c.textContent.trim() : _0x5e6f })();
4042
4043            let willRedirect = false;
4044            try {
4045                if (window.addToCart) {
4046                    window.addToCart(id, 1, variantId);
4047                    willRedirect = false;
4048                }
4049            } catch (_) { }
4050
4051            if (willRedirect) {
4052                showToast({
4053                    type: 'info',
4054                    title: 'Menuju Keranjang',
4055                    message: `<strong>${escapeHtml(PD_NAME)}</strong>${variantText ? ` · <em>${escapeHtml(variantText)}</em>` : ''}<br>SKU: ${escapeHtml(skuText)} · Qty: 1`,
4056                    duration: 1800
4057                });
4058                setTimeout(() => { window.location.href = '/keranjang'; }, 1200);
4059            } else {
4060                showToast({
4061                    type: 'warn',
4062                    title: 'Fitur Beli Langsung Segera Hadir',
4063                    message: `Sementara ini Anda bisa menambahkan produk ke keranjang terlebih dahulu.<br><strong>${escapeHtml(PD_NAME)}</strong>${variantText ? ` · <em>${escapeHtml(variantText)}</em>` : ''}`,
4064                    duration: 6000,
4065                    actions: [
4066                        { label: '+ Keranjang', onClick: () => { try { if (window.addToCart) window.addToCart(id, 1, variantId); } catch (_) { } } },
4067                        { label: 'Hubungi CS', variant: 'alt', onClick: () => { window.open('https://wa.me/6281380009898', '_blank'); } }
4068                    ]
4069                });
4070            }
4071        }
4072
4073        document.addEventListener('DOMContentLoaded', function () { var a = document.getElementById('pd-buy-form'); if (a) { a.addEventListener('submit', function (e) { var b = parseInt(a.getAttribute('data-pid'), 10) || 0; if (window.addToCartSubmit) { return window.addToCartSubmit(e, b) } }) } }); document.addEventListener('DOMContentLoaded', function () { var a = document.getElementById('btn-buy'); if (a) { a.addEventListener('click', function () { var b = a.getAttribute('data-id'); buyNow(b) }) } });
4074
4075        function _0x2m3n(s) { return String(s || '').replace(/[&<>"']/g, m => ({ '&': '&amp;', '<': '&lt;', '>': '&gt;', '"': '&quot;', "'": '&#039;' }[m])) }
4076
4077        (function initGallery() { const mainImg = document.getElementById('pd-main-img'); const gallery = document.getElementById('pd-thumb-gallery'); if (!mainImg || !gallery) return; gallery.addEventListener('click', function (ev) { const btn = ev.target.closest('.pd-thumb-btn'); if (!btn) return; const full = btn.getAttribute('data-full'); if (full) { mainImg.src = full; const alt = btn.getAttribute('data-alt') || ''; if (alt) mainImg.alt = alt; const slug = btn.getAttribute('data-slug') || ''; if (slug) mainImg.dataset.slug = slug; gallery.querySelectorAll('.pd-thumb-btn').forEach(b => b.classList.remove('active')); btn.classList.add('active') } }) })();
4078
4079        (function initMobileSliderCounter() { const slider = document.getElementById('pd-mobile-slider'); const counter = document.getElementById('pd-gallery-counter'); if (!slider || !counter) return; let ticking = false; slider.addEventListener('scroll', function () { if (!ticking) { window.requestAnimationFrame(function () { const slides = slider.querySelectorAll('.pd-mslide'); if (!slides.length) return; const containerRect = slider.getBoundingClientRect(); const containerCenter = containerRect.left + containerRect.width / 2; let currentIdx = 0; let minDist = Infinity;
4079 slides.forEach((slide, idx) => { const slideRect = slide.getBoundingClientRect(); const slideCenter = slideRect.left + slideRect.width / 2; const dist = Math.abs(slideCenter - containerCenter); if (dist < minDist) { minDist = dist; currentIdx = idx } }); counter.textContent = (currentIdx + 1) + '/' + slides.length; ticking = false }); ticking = true } }, { passive: true }) })();
4080
4081        /* ================= Simulasi Cicilan ================= */
4082        (function initInstallmentList() {
4083            const card = document.getElementById('inst-card'); if (!card) return; function getBasePrice() { return parseInt(card.getAttribute('data-base-price') || '0', 10) || 0 } function setBasePrice(v) { card.setAttribute('data-base-price', String(parseInt(v || '0', 10) || 0)) } const zeroEligible = card.getAttribute('data-zero-smart') === '1'; window.initMobile = zeroEligible; const listEl = document.getElementById('inst-month-list'); const zeroNote = document.getElementById('inst-zero-note'); const tenors = [3, 6, 12]; const rates = { BRI: { 3: 0.975, 6: 0.975, 12: 0.975 }, Mandiri: { 3: 0.984, 6: 0.9725, 12: 0.96 }, BCA: { 3: 0.97, 6: 0.94, 12: 0.91 } }; function formatRupiah(num) { return 'Rp ' + (Math.round(num)).toString().replace(/\B(?=(\d{3})+(?!\d))/g, '.') } function activeBank() { const tab = card.querySelector('.bank-tab.active'); return tab ? tab.dataset.bank : 'BRI' }
4084
4085            function _0x4o5p(bank) { const a = getBasePrice(); listEl.innerHTML = '';
4085 const b = rates[bank] || {}; let c = false; tenors.forEach(m => { let d = b[m] ?? 1; if (zeroEligible && (bank === 'BRI' || bank === 'Mandiri')) { d = 1; c = true } const e = a / d; const f = m > 0 ? Math.ceil((e / m) / 100) * 100 : 0; const g = document.createElement('li'); g.className = 'inst-month-item'; g.innerHTML = `<span class="tenor-badge">${m}x</span><span class="amount">${formatRupiah(f)} / bln</span>${zeroEligible && (bank === 'BRI' || bank === 'Mandiri') ? '<span class="tag tag-zero">0%</span>' : ''}`; listEl.appendChild(g) }); zeroNote.style.display = c ? 'block' : 'none' }
4086
4087            card.addEventListener('click', function (ev) { const a = ev.target.closest('.bank-tab'); if (!a) return; card.querySelectorAll('.bank-tab').forEach(b => { b.classList.remove('active'); b.setAttribute('aria-selected', 'false') }); a.classList.add('active'); a.setAttribute('aria-selected', 'true'); _0x4o5p(a.dataset.bank) });
4088
4089            window.instSetBasePrice = function (newPrice) { setBasePrice(newPrice); _0x4o5p(activeBank()) }; _0x4o5p(activeBank());
4090        })();
4091
4092        /* ====== Fokus gambar varian ====== */
4093        function _0x6q7r(s) { return String(s || '').toLowerCase().replace(/[^a-z0-9]+/g, '') } function _0x8s9t(u) { try { return new URL(u, window.location.origin).pathname.split('/').pop().toLowerCase() } catch (e) { try { return (u || '').split('/').pop().toLowerCase() } catch (_) { return '' } } }
4094        function _0xau1v(url, altOpt) {
4095            const a = document.getElementById('pd-main-img'), b = document.getElementById('pd-thumb-gallery'), c = document.getElementById('pd-mobile-slider'); if (a && url) { a.src = url; if (altOpt) a.alt = altOpt } if (b) { const d = _0x8s9t(url); let e = null; b.querySelectorAll('.pd-thumb-btn').forEach(btn => { const f = btn.getAttribute('data-full') || '', g = _0x8s9t(f) === d; if (g) e = btn; btn.classList.toggle('active', g) }); if (e) { const h = e.getAttribute('data-alt') || '', i = e.getAttribute('data-slug') || ''; if (h && a) a.alt = h; if (i && a) a.dataset.slug = i } }
4096            if (c) {
4097                const targetName = _0x8s9t(url);
4098                const slideImg = Array.from(c.querySelectorAll('img')).find(im => _0x8s9t(im.src) === targetName);
4099                if (slideImg) {
4100
4101                    try {
4102                        const container = c;
4103                        const imgRect = slideImg.getBoundingClientRect();
4104                        const contRect = container.getBoundingClientRect();
4105                        const offsetLeft = slideImg.offsetLeft - container.offsetLeft;
4106                        const center = offsetLeft - (container.clientWidth - slideImg.clientWidth) / 2;
4107                        container.scrollTo({ left: Math.max(0, center), behavior: 'smooth' });
4108                    } catch (_) {
4109
4110                        slideImg.scrollIntoView({ behavior: 'smooth', inline: 'center', block: 'nearest' });
4111                    }
4112                }
4113            }
4114        }
4115        function findImageForVariant(variant) {
4116            if (!variant || !variant.attrs) return null;
4117            const tokens = [];
4118            try {
4119                Object.values(variant.attrs).forEach(v => {
4120                    if (!v) return;
4121                    const raw = String(v);
4122                    tokens.push(raw);
4123                    tokens.push(normalize(raw));
4124                });
4125            } catch (_) { }
4126            if (variant.sku) {
4127                tokens.push(String(variant.sku));
4128                tokens.push(normalize(String(variant.sku)));
4129            }
4130            if (variant.image_url) {
4131                tokens.push(String(variant.image_url));
4132            }
4133            let best = null;
4134            let bestScore = -1;
4135
4136            for (const g of (galleryData || [])) {
4137                const slugN = normalize(g.slug || '');
4138                const altN = normalize(g.alt || '');
4139                const file = _0x8s9t(g.url || '');
4140                const fileN = normalize(file);
4141                const imgU = g.url;
4142
4143                for (const t of tokens) {
4144                    const tN = normalize(t);
4145                    if (!tN) continue;
4146
4147                    let score = -1;
4148                    if (imgU === tN) score = 300;
4149                    if (slugN && slugN === tN) score = 300;
4150                    else if (fileN && fileN.includes(tN)) score = 200;
4151                    else if (altN && altN.includes(tN)) score = 120;
4152
4153                    if (score > bestScore) {
4154                        bestScore = score;
4155                        best = g;
4156                    }
4157                    if (bestScore >= 300) break;
4158                }
4159                if (bestScore >= 300) break;
4160            }
4161            return bestScore >= 120 ? best : null;
4162        }
4163        function _0xey3z(variant) { const a = _0xcw2x(variant); if (a && a.url) { _0xau1v(a.url, a.alt || '') } }
4164
4165        /* ====== Layout mobile ====== */
4166        (function _0xg04h() {
4167            const a = document.querySelector('.pd-media-card'), b = document.getElementById('pd-price-block'), c = document.getElementById('pd-price-anchor'), d = document.querySelector('.pd-info-card'), e = document.getElementById('pd-title'), f = document.getElementById('pd-variant-combined'), g = document.getElementById('pd-variants'), h = document.getElementById('pd-variants-anchor'), i = document.getElementById('pd-variant-summary'), j = document.getElementById('pd-summary-anchor'), titleRow = document.querySelector('.pd-title-row'), promoBanner = document.querySelector('.promo-endyear-mini-banner'), c
4167ompareSection = document.querySelector('.pd-compare-section'); if (!a || !b || !c || !d || !e) return;
4168
4169            let pricePlaced = false;
4170            let varPlaced = false;
4171            let titlePlaced = false;
4172            let promoPlaced = false;
4173            const mq = window.matchMedia('(max-width: 640px)');
4174
4175            function apply() {
4176                if (mq.matches) {
4177                    if (!titlePlaced && a && titleRow && d.contains(titleRow)) { try { a.appendChild(titleRow); titlePlaced = true; } catch (_) { } }
4178                    if (!pricePlaced && a && b) { try { a.appendChild(b); pricePlaced = true; } catch (_) { } }
4179                    if (!varPlaced && f && d && e) {
4180                        try {
4181                            f.hidden = false;
4182                            if (i && !f.contains(i)) f.appendChild(i);
4183                            if (g && !f.contains(g)) f.appendChild(g);
4184                            if (d.contains(e)) d.insertBefore(f, e);
4185                            varPlaced = true;
4186                        } catch (_) { }
4187                    }
4188                    if (!promoPlaced && promoBanner && compareSection && compareSection.parentNode) {
4189                        try {
4190                            compareSection.parentNode.insertBefore(promoBanner, compareSection);
4191                            promoPlaced = true;
4192                        } catch (_) { }
4193                    }
4194                } else {
4195                    if (titlePlaced && titleRow && d) {
4196                        try {
4197                            const vcombined = document.getElementById('pd-variant-combined');
4198                            if (vcombined && d.contains(vcombined)) {
4199                                d.insertBefore(titleRow, vcombined);
4200                            } else {
4201                                d.insertBefore(titleRow, d.firstChild);
4202                            }
4203                            titlePlaced = false;
4204                        } catch (_) { }
4205                    }
4206                    if (pricePlaced && b && c && c.parentNode) {
4207                        try { c.parentNode.insertBefore(b, c.nextSibling); pricePlaced = false; } catch (_) { }
4208                    }
4209                    if (varPlaced) {
4210                        try {
4211                            if (i && j && j.parentNode && !j.parentNode.contains(i)) j.parentNode.insertBefore(i, j.nextSibling);
4212                            if (g && h && h.parentNode && !h.parentNode.contains(g)) h.parentNode.insertBefore(g, h.nextSibling);
4213                            if (f) { f.hidden = true; f.innerHTML = ''; }
4214                            varPlaced = false;
4215                        } catch (_) { }
4216                    }
4217                    if (promoPlaced && promoBanner && b) {
4218                        try {
4219                            b.appendChild(promoBanner);
4220                            promoPlaced = false;
4221                        } catch (_) { }
4222                    }
4223                }
4224            }
4225
4226            mq.addEventListener ? mq.addEventListener('change', apply) : mq.addListener(apply);
4227            apply();
4228
4229            const fab = document.getElementById('pd-mobile-fab');
4230            if (fab) {
4231                const pid = parseInt(fab.getAttribute('data-pid') || '0', 10) || 325;
4232                const btnCart = document.getElementById('mf-cart');
4233
4234                if (btnCart) btnCart.addEventListener('click', function () {
4235                    const varInput = document.getElementById('pd-variant-id');
4236                    const variantId = varInput ? parseInt(varInput.value || '0', 10) : 0;
4237                    try { if (window.addToCart) addToCart(pid, 1, variantId); } catch (_) { }
4238                    const variantText = getVariantSummaryText();
4239                    const skuText = (function () { const el = document.getElementById('pd-sku'); return el ? el.textContent.trim() : PD_SKU; })();
4240                    showToast({
4241                        type: 'success',
4242                        title: 'Berhasil ditambahkan ke Keranjang',
4243                        message: `<strong>${escapeHtml(PD_NAME)}</strong>${variantText ? ` · <em>${escapeHtml(variantText)}</em>` : ''}<br>SKU: ${escapeHtml(skuText)} · Qty: 1`,
4244                        duration: 5000,
4245                        actions: [
4246                            { label: 'Lihat Keranjang', onClick: () => { window.location.href = '/keranjang'; } },
4247                            { label: 'Lanjut Belanja', variant: 'alt', onClick: () => { } }
4248                        ]
4249                    });
4250                });
4251            }
4252        })();
4253
4254        /* ====== Auto-hide installment banner if sidebar too tall (Desktop only) ====== */
4255        (function () {
4256            function adjustSidebarBanner() {
4257                if (window.innerWidth <= 768) return;
4258                const sidebar = document.querySelector('.pd-sidebar');
4259                const infoCard = document.querySelector('.pd-info-card');
4260                const banner = document.querySelector('.pd-side-card.inst-alt-banner.inst-alt-banner--compact');
4261                if (!sidebar || !infoCard || !banner) return;
4262                const sidebarHeight = sidebar.offsetHeight;
4263                const infoCardHeight = infoCard.offsetHeight;
4264                if (sidebarHeight > infoCardHeight) {
4265                    banner.style.display = 'none';
4266                } else {
4267                    banner.style.display = '';
4268                }
4269            }
4270            if (document.readyState === 'loading') {
4271                document.addEventListener('DOMContentLoaded', adjustSidebarBanner);
4272            } else {
4273                adjustSidebarBanner();
4274            }
4275            let resizeTimer;
4276            window.addEventListener('resize', function () {
4277                clearTimeout(resizeTimer);
4278                resizeTimer = setTimeout(adjustSidebarBanner, 250);
4279            });
4280            const pwpSection = document.getElementById('pwp-deals-section');
4281            if (pwpSection) {
4282                const observer = new MutationObserver(function (mutations) {
4283                    let shouldRecheck = false;
4284                    mutations.forEach(function (mutation) {
4285                        if (mutation.type === 'attributes' && mutation.attributeName === 'hidden') {
4286                            shouldRecheck = true;
4287                        } else if (mutation.type === 'childList' && mutation.addedNodes.length > 0) {
4288                            shouldRecheck = true;
4289                        }
4290                    });
4291                    if (shouldRecheck) {
4292                        setTimeout(adjustSidebarBanner, 100);
4293                    }
4294                });
4295                observer.observe(pwpSection, {
4296                    attributes: true,
4297                    childList: true,
4298                    subtree: true
4299                });
4300            }
4301            window.adjustSidebarBanner = adjustSidebarBanner;
4302        })();
4303
4304        /* ====== Global constants ====== */
4305        const IS_DIGITAL = false;
4306        const IS_PREORDER = false;
4307
4308        /* ====== Variants state (REVISED) ====== */
4309        (function initVariants() {
4310            const _0x7g8h = []; window.variants = _0x7g8h;
4311            window.isPreorderProduct = false;
4312            const attrOrder = [];
4313
4314            if (!variants.length || !attrOrder.length) return;
4315
4316            function comboKey(sel) {
4317                return attrOrder.map(a => a + '=' + (sel[a] ?? '')).join('|');
4318            }
4319
4320            const variantMap = {};
4321            variants.forEach(v => {
4322                const key = comboKey(v.attrs);
4323                variantMap[key] = v;
4324            });
4325
4326            function readSelection() {
4327                const sel = {};
4328                attrOrder.forEach(a => {
4329                    const r = document.querySelector(`.v-group[data-attr="${CSS.escape(a)}"] input[type=radio]:checked`);
4330                    sel[a] = r ? r.value : '';
4331                });
4332                return sel;
4333            }
4334
4335            function findVariant(sel) {
4336                return variantMap[comboKey(sel)] || null;
4337            }
4338
4339            function autoFillMissing(sel) {
4340                let changed = false;
4341                for (const a of attrOrder) {
4342                    if (sel[a]) continue;
4343                    const possible = [];
4344                    const seen = new Set();
4345                    variants.forEach(v => {
4346                        let ok = true;
4347                        for (const a2 of attrOrder) {
4348                            if (a2 === a) continue;
4349                            if (sel[a2] && v.attrs[a2] !== sel[a2]) { ok = false; break; }
4350                        }
4351                        if (ok) {
4352                            const val = v.attrs[a];
4353                            if (!seen.has(val)) { seen.add(val); possible.push(val); }
4354                        }
4355                    });
4356                    if (possible.length === 1) {
4357                        const val = possible[0];
4358                        const input = document.querySelector(`.v-group[data-attr="${CSS.escape(a)}"] input[type=radio][value="${CSS.escape(val)}"]`);
4359                        if (input && !input.checked) { input.checked = true; sel[a] = val; changed = true; }
4360                    }
4361                }
4362                return changed;
4363            }
4364
4365            function rupiah(n) {
4366                n = parseInt(n || 0, 10) || 0;
4367                return 'Rp ' + n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, '.');
4368            }
4369
4370            function focusGalleryByUrl(imageUrl) {
4371                const isMobile = window.matchMedia && window.matchMedia('(max-width: 640px)').matches;
4372                if (isMobile) {
4373                    _0xau1v(imageUrl);
4374                    return;
4375                }
4376
4377                const gallery = document.getElementById('pd-thumb-gallery');
4378                const targetName = _0x8s9t(imageUrl);
4379
4380                if (gallery) {
4381                    const btns = Array.from(gallery.querySelectorAll('.pd-thumb-btn'));
4382                    const btn = btns.find(b => _0x8s9t(b.getAttribute('data-full') || '') === targetName);
4383                    if (btn) { btn.click(); return; }
4384                }
4385
4386                _0xau1v(imageUrl);
4387            }
4388
4389
4390            function formatStockLabel(n) { n = parseInt(n || 0, 10) || 0; return (n > 10) ? '10+' : String(n) }
4391            function updateBranchPopover(v) { try { if (!v) return; const a = document.getElementById('sp-qty-meg'), b = document.getElementById('sp-qty-mdf'), c = document.getElementById('sp-qty-bda'); if (a) a.textContent = formatStockLabel(Math.max(0, v.smm | 0)); if (b) b.textContent = formatStockLabel(Math.max(0, v.smf | 0)); if (c) c.textContent = formatStockLabel(Math.max(0, v.sba | 0)) } catch (_) { } }
4392
4393            function calcVoucherDisc(type, value, price, maxDisc) { if (type === 'PERCENTAGE') { let d = (price * value) / 100; if (maxDisc > 0 && d > maxDisc) d = maxDisc; return Math.round(d) } return Math.round(value) }
4394
4395            function applyVariant(v, focusImage = true) {
4396                const elCur = document.getElementById('pd-price-current');
4397                const elOri = document.getElementById('pd-price-original');
4398                const elDisc = document.getElementById('pd-discount-badge');
4399                const elSku = document.getElementById('pd-sku');
4400                const elStock = document.getElementById('pd-stock-badge');
4401                const elQty = document.getElementById('qty');
4402                const btnAdd = document.getElementById('btn-add-cart');
4403                const btnBuy = document.getElementById('btn-buy');
4404                const hidVar = document.getElementById('pd-variant-id');
4405
4406                const mfCart = document.getElementById('mf-cart');
4407                const mfBuy = document.getElementById('mf-buy');
4408                const fab = document.getElementById('pd-mobile-fab');
4409
4410                if (hidVar) hidVar.value = v ? v.id : 0;
4411                if (elCur) elCur.textContent = rupiah(v ? v.final : 0);
4412                if (elSku && v && v.sku) elSku.textContent = v.sku;
4413
4414                if (v && v.ori > v.final) {
4415                    if (elOri) { elOri.style.display = 'inline'; elOri.textContent = rupiah(v.ori); }
4416                    if (elDisc) { elDisc.style.display = 'inline'; elDisc.textContent = '-' + (v.disc || 0) + '%'; }
4417                } else {
4418                    if (elOri) elOri.style.display = 'none';
4419                    if (elDisc) elDisc.style.display = 'none';
4420                }
4421
4422                const stock = v ? (parseInt(v.stock || 0, 10) || 0) : 0;
4423                let effectiveStock = stock;
4424                let isActivePreorder = false;
4425                if (window.isPreorderProduct && v && 'preorder_remaining' in v && v.preorder_remaining !== null) {
4426                    effectiveStock = parseInt(v.preorder_remaining, 10);
4427                    if (isNaN(effectiveStock)) effectiveStock = 0;
4428                    isActivePreorder = true;
4429                }
4430                if (elStock) {
4431                    elStock.classList.remove('in', 'out');
4432                    if (effectiveStock > 0) {
4433                        elStock.classList.add('in');
4434                        elStock.textContent = IS_DIGITAL ? 'Tersedia' : (isActivePreorder ? 'Sisa Slot: ' + effectiveStock : 'Stok: ' + formatStockLabel(effectiveStock));
4435                    } else {
4436                        elStock.classList.add('out');
4437                        elStock.textContent = 'Habis';
4438                    }
4439                }
4440                if (elQty) {
4441                    elQty.max = String(effectiveStock > 0 ? effectiveStock : 0);
4442                    if (effectiveStock <= 0) { elQty.value = '0'; elQty.disabled = true; }
4443                    else { if (parseInt(elQty.value || '1', 10) < 1) elQty.value = '1'; elQty.disabled = false; }
4444                }
4445
4446                const shouldDisable = !(v && effectiveStock > 0);
4447                const updateButtons = () => {
4448                    const btnAddCart = document.getElementById('btn-add-cart');
4449                    const btnBuyNow = document.getElementById('btn-buy');
4450                    const mobileCart = document.getElementById('mf-cart');
4451                    const mobileBuy = document.getElementById('mf-buy');
4452                    [btnAddCart, btnBuyNow, mobileCart, mobileBuy].forEach(btn => {
4453                        if (!btn) return;
4454                        if (shouldDisable) {
4455                            btn.disabled = true;
4456                            btn.setAttribute('disabled', 'disabled');
4457                            btn.classList.add('stock-disabled');
4458                            btn.setAttribute('data-stock-blocked', 'true');
4459                            btn.setAttribute('data-stock-reason', window.isPreorderProduct ? 'Pre-order habis' : 'Stok habis');
4460                        } else {
4461                            btn.disabled = false;
4462                            btn.removeAttribute('disabled');
4463                            btn.classList.remove('stock-disabled');
4464                            btn.removeAttribute('data-stock-blocked');
4465                            btn.removeAttribute('data-stock-reason');
4466                        }
4467                    });
4468                };
4469                updateButtons();
4470                setTimeout(updateButtons, 10);
4471                setTimeout(updateButtons, 50);
4472                setTimeout(updateButtons, 100);
4473                if (mfBuy && v) {
4474                    const voucherBtn = document.getElementById('btn-buy-voucher');
4475                    const voucherCode = fab ? fab.dataset.voucherCode : '';
4476                    let voucherDiscount = 0;
4477
4478                    if (voucherBtn && voucherCode) {
4479                        const vType = voucherBtn.dataset.voucherType;
4480                        const vValue = parseFloat(voucherBtn.dataset.voucherValue) || 0;
4481                        const vMax = parseFloat(voucherBtn.dataset.voucherMax) || 0;
4482                        const finalPrice = v.final || 0;
4483                        if (vType && vValue > 0) {
4484                            voucherDiscount = calcVoucherDisc(vType, vValue, finalPrice, vMax);
4485                            if (fab) fab.dataset.voucherValue = voucherDiscount.toString();
4486                        }
4487                    }
4488
4489                    const finalPrice = v.final || 0;
4490                    const textEl = mfBuy.querySelector('.mf-buy-text');
4491                    const priceEl = mfBuy.querySelector('.mf-buy-price');
4492
4493                    if (effectiveStock > 0) {
4494                        if (IS_PREORDER) {
4495                            if (textEl) textEl.textContent = 'Pre Order Sekarang';
4496                            if (priceEl) priceEl.textContent = rupiah(finalPrice);
4497                        } else if (voucherCode && voucherDiscount > 0) {
4498                            if (textEl) textEl.textContent = 'Beli dengan Voucher';
4499                            if (priceEl) priceEl.textContent = rupiah(Math.max(0, finalPrice - voucherDiscount));
4500                        } else {
4501                            if (textEl) textEl.textContent = 'Beli Sekarang';
4502                            if (priceEl) priceEl.textContent = rupiah(finalPrice);
4503                        }
4504                    } else {
4505                        if (textEl) textEl.textContent = 'Stok Habis';
4506                        if (priceEl) priceEl.textContent = rupiah(finalPrice);
4507                    }
4508                }
4509
4510                const isMobile = window.initMobile ?? 0;
4511                if (window.instSetBasePrice) window.instSetBasePrice(v ? (isMobile == '1' ? v.ori : v.final) : 0);
4512                if (window.updateSoldBySku) window.updateSoldBySku(v.sku);
4513                updateBranchPopover(v);
4514                if (v && v.image_url && focusImage) focusGalleryByUrl(v.image_url);
4515                if (v) {
4516                    window.dispatchEvent(new CustomEvent('pd-variant-changed', {
4517                        detail: {
4518                            price: v.final,
4519                            originalPrice: v.ori,
4520                            discount: v.disc,
4521                            stock: effectiveStock,
4522                            sku: v.sku,
4523                            variant_id: v.id
4524                        }
4525                    }));
4526
4527                    const encodedHash = encodeVariantHash(v.id);
4528                    if (encodedHash && window.history && window.history.replaceState) {
4529                        const newHash = '#v=' + encodedHash;
4530                        const newUrl = window.location.pathname + window.location.search + newHash;
4531                        window.history.replaceState(null, '', newUrl);
4532                    }
4533                }
4534            }
4535
4536            let sel = readSelection();
4537            if (autoFillMissing(sel)) sel = readSelection();
4538
4539            let v = findVariant(sel);
4540            if (!v) {
4541                const candidates = variants.filter(variant => {
4542                    return attrOrder.every(a => {
4543                        if (!sel[a]) return true;
4544                        return variant.attrs[a] === sel[a];
4545                    });
4546                });
4547                if (candidates.length >= 1) {
4548                    v = candidates[0];
4549                    attrOrder.forEach(a => sel[a] = v.attrs[a]);
4550                    attrOrder.forEach(a => {
4551                        const val = sel[a];
4552                        const input = document.querySelector(`.v-group[data-attr="${CSS.escape(a)}"] input[type=radio][value="${CSS.escape(val)}"]`);
4553                        if (input) input.checked = true;
4554                    });
4555                }
4556            }
4557
4558            const initSel = readSelection();
4559            const initVar = findVariant(initSel) || variants[0] || null;
4560            if (document.readyState === 'loading') {
4561                document.addEventListener('DOMContentLoaded', () => applyVariant(initVar, false));
4562            } else {
4563                applyVariant(initVar, false);
4564            }
4565
4566            function updateSummary(sel) { Object.entries(sel).forEach(([a, val]) => { const el = document.getElementById('vs-' + a); if (el) el.textContent = val || '-' }) }
4567            function refreshOptions(sel) {
4568                attrOrder.forEach(a => {
4569                    const group = document.querySelector(`.v-group[data-attr="${CSS.escape(a)}"]`);
4570                    if (!group) return;
4571                    const chips = group.querySelectorAll('.v-chip');
4572                    chips.forEach(ch => {
4573                        const val = ch.getAttribute('data-value');
4574                        const possible = variants.some(v => {
4575                            if (v.attrs[a] !== val) return false;
4576                            for (const a2 of attrOrder) {
4577                                if (a2 === a) continue;
4578                                if (sel[a2] && v.attrs[a2] !== sel[a2]) return false;
4579                            }
4580                            return true;
4581                        });
4582                        const input = ch.querySelector('input[type=radio]');
4583                        const disabled = !possible;
4584                        if (input) input.disabled = disabled;
4585                        ch.classList.toggle('disabled', disabled);
4586
4587                        let candidateVariant = null;
4588                        if (possible) {
4589                            candidateVariant = variants.find(v => {
4590                                if (v.attrs[a] !== val) return false;
4591                                for (const a2 of attrOrder) {
4592                                    if (a2 === a) continue;
4593                                    if (sel[a2] && v.attrs[a2] !== sel[a2]) return false;
4594                                }
4595                                return true;
4596                            });
4597                        }
4598                        const outOfStock = candidateVariant ? (window.isPreorderProduct && candidateVariant.preorder_remaining !== null ? candidateVariant.preorder_remaining <= 0 : candidateVariant.stock <= 0) : false;
4599                        ch.classList.toggle('out', !disabled && outOfStock);
4600                        const badge = ch.querySelector('.chip-badge');
4601                        if (badge) badge.hidden = !(candidateVariant && outOfStock);
4602                    });
4603                    group.querySelectorAll('.v-chip').forEach(ch => {
4604                        const input = ch.querySelector('input[type=radio]');
4605                        ch.classList.toggle('selected', input && input.checked);
4606                    });
4607                });
4608            }
4609            updateSummary(sel);
4610            refreshOptions(sel);
4611            document.querySelectorAll('.v-chip').forEach(chip => { const input = chip.querySelector('input[type=radio]'); if (input && input.checked) { chip.classList.add('selected'); } });
4612
4613            const container = document.getElementById('pd-variants');
4614            container && container.addEventListener('change', function (ev) {
4615                const radio = ev.target.closest('input[type=radio]');
4616                if (!radio) return;
4617                sel = readSelection();
4618                if (autoFillMissing(sel)) sel = readSelection();
4619                const chosen = findVariant(sel);
4620                applyVariant(chosen || null, true);
4621
4622                updateSummary(sel);
4623                refreshOptions(sel);
4624            });
4625
4626            window.applyVariant = applyVariant;
4627        })();
4628
4629        (function cleanBrokenDescImages() {
4630            const containers = [
4631                document.querySelector('.pd-full-desc-body'),
4632                document.querySelector('.pd-short-desc')
4633            ].filter(Boolean);
4634
4635            containers.forEach(root => {
4636                const imgs = root.querySelectorAll('img');
4637                imgs.forEach(img => {
4638                    if (img.complete && img.naturalWidth === 0) {
4639                        img.remove();
4640                        return;
4641                    }
4642                    img.addEventListener('error', () => {
4643                        img.remove();
4644                    }, { once: true });
4645                });
4646            });
4647        })();
4648
4649        /* ====== Scroll To Top ====== */
4650        (function _0xi25j() { const a = document.getElementById('pd-scroll-top'); if (!a) return; function b() { if (window.matchMedia('(max-width:640px)').matches) { const d = document.querySelector('.bottom-nav'), e = document.querySelector('.pd-mobile-fab'); if (!d && !e) { setTimeout(b, 100); return } const f = d && window.getComputedStyle(d).display !== 'none' && window.getComputedStyle(d).visibility !== 'hidden', g = e && window.getComputedStyle(e).display !== 'none' && window.getComputedStyle(e).visibility !== 'hidden'; let h; if (f && g) { h = 'calc(68px + 54px + env(safe-area-inset-bottom))' } else if (g) { h = 'calc(68px + 8px + env(safe-area-inset-bottom))' } else if (f) { h = 'calc(60px + env(safe-area-inset-bottom))' } else { h = 'calc(20px + env(safe-area-inset-bottom))' } a.style.setProperty('--scroll-top-bottom', h) } else { a.style.removeProperty('--scroll-top-bottom') } } function c() { const d = window.pageYOffset || document.documentElement.scrollTop || 0, e = d > 300; a.classList.toggle('visible', e); a.setAttribute('aria-hidden', e ? 'false' : 'true'); b() } window.addEventListener('scroll', c, { passive: !0 }); window.addEventListener('resize', b, { passive: !0 }); setTimeout(b, 100); c(); a.addEventListener('click', function () { window.scrollTo({ top: 0, behavior: 'smooth' }) }) })();
4651
4652        /* Format stok 10+ */
4653        function _0xk67l(n) { n = parseInt(n || 0, 10) || 0; return n > 10 ? '10+' : String(n) }
4654
4655        /* Toggle popover stok per cabang */
4656        (function _0xm89n() {
4657            const a = document.getElementById('pd-stock-info-btn'), b = document.getElementById('pd-stock-popover'), c = document.getElementById('pd-stock-popover-close'); if (!a || !b) return; function d() { if (window.matchMedia('(min-width: 641px)').matches) { const e = document.getElementById('pd-stock-badge'); if (!e) return; const f = e.getBoundingClientRect(), g = window.pageXOffset || document.documentElement.scrollLeft || 0, h = window.pageYOffset || document.documentElement.scrollTop || 0; b.style.left = (f.left + g - 10) + 'px'; b.style.top = (f.bottom + h + 10) + 'px' } else { b.style.left = ''; b.style.top = '' } }
4658            function e() { d(); b.classList.add('show'); a.setAttribute('aria-expanded', 'true'); b.setAttribute('aria-hidden', 'false'); document.addEventListener('click', g, { capture: true }); window.addEventListener('resize', d, { passive: true }); window.addEventListener('scroll', d, { passive: true }) } function f() { b.classList.remove('show'); a.setAttribute('aria-expanded', 'false'); b.setAttribute('aria-hidden', 'true'); document.removeEventListener('click', g, { capture: true }); window.removeEventListener('resize', d); window.removeEventListener('scroll', d) } function g(h) { if (b.contains(h.target) || a.contains(h.target)) return; f() }
4659            a.addEventListener('click', function (h) { h.preventDefault(); b.classList.contains('show') ? f() : e() }); if (c) c.addEventListener('click', f)
4660        })();
4661
4662        /* ===== Share Product Modal ===== */
4663        (function () { const a = document.getElementById('pd-share-btn'), z = document.getElementById('mf-share'), b = document.getElementById('pd-share-modal-overlay'), c = document.getElementById('pd-share-close'), d = document.getElementById('pd-share-copy-url-btn'), e = document.getElementById('pd-share-url-input'); if ((!a && !z) || !b) return; const f = "https://www.trasportando.com/", g = "Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Win 11 Home/Eclipse Black/3Y", h = "Rp 20.789.000"; const discountPercent = 1; let i = ''; if (discountPercent > 0) { i = `🔥 Lagi Promo Nih! Diskon ${discountPercent}%\n\n✨ ${g}\n💰 Cuma ${h} aja!\n\n🛒 Buruan cek sebelum kehabisan!\n👉 ` } else { i = `✨ Ada barang bagus nih!\n\n📦 ${g}\n💸 Harga: ${h}\n\n🛍️ Yuk, langsung cek!\n👉 ` } function j() { b.classList.add('show'); document.body.style.overflow = 'hidden' } function k() { b.classList.remove('show'); document.body.style.overflow = '' } if (a) a.addEventListener('click', j); if (z) z.addEventListener('click', j); if (c) c.addEventListener('click', k); b.addEventListener('click', function (l) { if (l.target === b) k() }); document.addEventListener('keydown', function (l) { if (l.key === 'Escape' && b.classList.contains('show')) k() }); b.addEventListener('click', function (l) { const m = l.target.closest('[data-share]'); if (!m) return; const n = m.getAttribute('data-share'), o = encodeURIComponent(f), p 
4663= encodeURIComponent(i), q = encodeURIComponent(g); let r = ''; switch (n) { case 'whatsapp': r = `https://wa.me/?text=${p}${o}`; break; case 'facebook': r = `https://www.facebook.com/sharer/sharer.php?u=${o}`; break; case 'twitter': r = `https://twitter.com/intent/tweet?text=${p}${o}`; break; case 'telegram': r = `https://t.me/share/url?url=${o}&text=${p}`; break; case 'email': r = `mailto:?subject=${encodeURIComponent('🔥 Cek Produk Keren Ini!')}&body=${p}${o}`; window.location.href = r; k(); return; case 'copy': s(); return; case 'pdf': const ps = document.querySelector('.product-single'); if (ps) { ps.setAttribute('data-print-date', new Date().toLocaleDateString('id-ID', { year: 'numeric', month: 'long', day: 'numeric' })) } k(); setTimeout(function () { window.print(); try { if (window.ga4Ecomm && window.ga4Ecomm.trackEvent) window.ga4Ecomm.trackEvent('share', { method: 'pdf_export', content_type: 'product', item_id: "7S78E2446CBU" }) } catch (_) { } }, 300); return }if (r) { window.open(r, '_blank', 'noopener,noreferrer'); try { if (window.ga4Ecomm && window.ga4Ecomm.trackEvent) window.ga4Ecomm.trackEvent('share', { method: n, content_type: 'product', item_id: "7S78E2446CBU" }) } catch (_) { } } }); function s() { if (!e) return; e.select(); e.setSelectionRange(0, 99999); try { if (navigator.clipboard && navigator.clipboard.writeText) { navigator.clipboard.writeText(f).then(function () { t() }).catch(function () { document.execCommand('copy'); t() }) } else { document.execCommand('copy'); t() } } catch (u) { console.error('Failed to copy:', u) } } function t() { if (!d) return; const v = d.innerHTML; d.classList.add('copied'); d.innerHTML = '<svg viewBox="0 0 24 24" width="16" height="16"><path fill="currentColor" d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"/></svg><span class="pd-share-copy-text">Tersalin!</span>'; if (window.showToast) showToast({ type: 'success', title: '✨ Link Tersalin!', message: 'Link produk berhasil disalin. Yuk bagikan ke teman!', duration: 3000 }); setTimeout(function () { d.classList.remove('copied'); d.innerHTML = v }, 2000) } if (d) d.addEventListener('click', s); if (navigator.share) { const shareHandler = function (w) { w.preventDefault(); navigator.share({ title: g, text: i + f, url: f }).catch(function (x) { console.log('Native share cancelled or failed:', x) }) }; if (a) a.addEventListener('dblclick', shareHandler); if (z) z.addEventListener('dblclick', shareHandler) } })();
4664
4665        /* ===== Embedding variants (server → client) ===== */
4666        (function () {
4667            window.__PD_VARIANTS_WITH_BRANCH__ = [];
4668        })();
4669
4670        /* ===== Helper: update angka popover ===== */
4671        function updateStockPopoverForVariant(v) {
4672            try {
4673                const elMeg = document.getElementById('sp-qty-meg');
4674                const elMdf = document.getElementById('sp-qty-mdf');
4675                const elBda = document.getElementById('sp-qty-bda');
4676
4677                if (typeof v?.smm === 'number' && elMeg) elMeg.textContent = formatStockLabel(Math.max(0, v.smm | 0));
4678                if (typeof v?.smf === 'number' && elMdf) elMdf.textContent = formatStockLabel(Math.max(0, v.smf | 0));
4679                if (typeof v?.sba === 'number' && elBda) elBda.textContent = formatStockLabel(Math.max(0, v.sba | 0));
4680            } catch (_) { }
4681        }
4682
4683        /* ===== applyVariant: 10+ dan update popover ===== */
4684        (function patchApplyVariant() {
4685            if (typeof applyVariant !== 'function') return;
4686            const original = applyVariant;
4687            window.applyVariant = function (v) {
4688                original(v);
4689
4690                try {
4691                    const elStock = document.getElementById('pd-stock-badge');
4692                    if (elStock) {
4693                        let txt = elStock.textContent || '';
4694                        let m = txt.match(/\d+/);
4695                        if (m) {
4696                            const n = parseInt(m[0] || '0', 10) || 0;
4697                            elStock.textContent = (n > 0) ? ('Stok: ' + formatStockLabel(n)) : 'Habis';
4698                        }
4699                    }
4700                } catch (_) { }
4701                if (window.__PD_VARIANTS_WITH_BRANCH__ && v) { const vv = window.__PD_VARIANTS_WITH_BRANCH__.find(x => x.id === v.id) || v; updateStockPopoverForVariant(vv) }
4702            };
4703        })();
4704
4705        (function initCurrentVariantBranch() {
4706            const list = window.__PD_VARIANTS_WITH_BRANCH__ || [];
4707            if (!list.length) return;
4708            const hid = document.getElementById('pd-variant-id');
4709            const vid = hid ? parseInt(hid.value || '0', 10) : 0;
4710            const current = list.find(x => x.id === vid) || list[0] || null;
4711            if (current) updateStockPopoverForVariant(current);
4712        })();
4713
4714        (function () {
4715            if (!window.ga4Ecomm) return;
4716            const catSegs = ["Komputer & Laptop", "Laptop", "Gaming"];
4717            window.ga4Ecomm.viewItem({
4718                currency: 'IDR',
4719                value: 20789000,
4720                item_id: "7S78E2446CBU",
4721                item_name: "Lenovo Legion Go 8ASP2 - 83N0000RID /AMD Ryzen Z2 Extreme/32GB/1TB SSD/AMD Radeon Graphics/8.8\" WUXGA OLED Touch/Win 11 Home/Eclipse Black/3Y",
4722                item_brand: "Lenovo ",
4723                item_category: catSegs && catSegs.length ? catSegs.join(' / ') : ''
4724            });
4725        })();
4726
4727        (function patchApplyVariantFocus() {
4728            if (typeof applyVariant !== 'function') return;
4729            const original = applyVariant;
4730            window.applyVariant = function (v, focusImage = true) {
4731
4732                original(v, focusImage);
4733
4734                if (focusImage && v && v.image_url) {
4735                    _0xau1v(v.image_url);
4736                }
4737            };
4738        })();
4739
4740        (function () {
4741            var soldMap = [];
4742            var soldTotalLabel = "Terjual 2";
4743
4744            function formatSoldLabel(qty) {
4745                if (qty >= 1000000) {
4746                    var v = Math.floor((qty / 100000)) / 10;
4747                    return 'Terjual ' + (String(v).replace('.', ',')) + 'jt+';
4748                }
4749                if (qty >= 1000) {
4750                    var v2 = Math.floor((qty / 100)) / 10;
4751                    return 'Terjual ' + (String(v2).replace('.', ',')) + 'rb+';
4752                }
4753                if (qty >= 100) {
4754                    var v2 = Math.floor((qty / 100)) * 100;
4755                    return 'Terjual ' + (String(v2).replace('.', ',')) + '+';
4756                }
4757                if (qty >= 10) {
4758                    var v2 = Math.floor((qty / 10)) * 10;
4759                    return 'Terjual ' + (String(v2).replace('.', ',')) + '+';
4760                }
4761                return 'Terjual ' + (qty.toLocaleString('id-ID'));
4762            }
4763
4764            function updateSoldLabel(labelText) {
4765                var el = document.querySelector('#pd-sold-inline, [data-role="sold-chip"]');
4766                if (el) el.textContent = labelText;
4767            }
4768
4769            window.updateSoldBySku = function (sku) {
4770                if (!sku || typeof sku !== 'string') {
4771                    updateSoldLabel(soldTotalLabel);
4772                    return;
4773                }
4774                var qty = soldMap[sku] || 0;
4775                updateSoldLabel(formatSoldLabel(qty));
4776            };
4777
4778            updateSoldLabel(soldTotalLabel);
4779        })();
4780
4781        (function () {
4782            const h = document.getElementById('pd-sticky-header'); if (!h) return; const p = document.getElementById('pd-price-anchor'); const ac = document.getElementById('pd-sticky-add-cart'); const by = document.getElementById('pd-sticky-buy'); let lt = window.scrollY; let tk = false; function u() { if (!p) return; const r = p.getBoundingClientRect(); const s = window.scrollY; if (r.top < 0) { h.classList.add('visible') } else { h.classList.remove('visible') } lt = s; tk = false } function rt() { if (!tk) { window.requestAnimationFrame(u); tk = true } } window.addEventListener('scroll', rt, { passive: true }); u(); function sy() { const ma = document.getElementById('btn-add-cart'); const mb = document.getElementById('btn-buy'); if (ac && ma) { ac.disabled = ma.disabled } if (by && mb) { by.disabled = mb.disabled } } sy(); const ob = new MutationObserver(sy); const ma = document.getElementById('btn-add-cart'); const mb = document.getElementById('btn-buy'); if (ma) ob.observe(ma, { attributes: true, attributeFilter: ['disabled'] }); if (mb) ob.observe(mb, { attributes: true, attributeFilter: ['disabled'] }); const ss = document.getElementById('pd-sticky-share-btn'); const ms = document.getElementById('pd-share-btn'); if (ss && ms) { ss.addEventListener('click', function (e) { e.preventDefault(); ms.click() }) } if (ac) { ac.addEventListener('click', function (e) { e.preventDefault(); if (ac.disabled) return; const m = document.getElementById('btn-add-cart'); if (m && !m.disabled) { m.click() } }) } if (by) { by.addEventListener('click', function (e) { e.preventDefault(); if (by.disabled) return; const m = document.getElementById('btn-buy'); if (m && !m.disabled && window.buyNow) { window.buyNow(e) } }) }
4783            function getChatProductData() { const varInput = document.getElementById('pd-variant-id'); const variantId = varInput ? parseInt(varInput.value || '0', 10) : 0; const variantSummary = getVariantSummaryText(); const priceEl = document.getElementById('pd-price-current'); const currentPrice = priceEl ? priceEl.textContent.trim() : 'Rp 20.789.000'; const pd = { id: 325, name: "Lenovo Legion Go 8ASP2 - 83N0000RID \/AMD Ryzen Z2 Extreme\/32GB\/1TB SSD\/AMD Radeon Graphics\/8.8\" WUXGA OLED Touch\/Win 11 Home\/Ecl
4783ipse Black\/3Y", price: currentPrice, image: "\/uploads\/products\/lenovo-legion-go-8asp2-83n0000rid.webp", url: window.location.href }; if (variantId > 0) { pd.variant_id = variantId } if (variantSummary) { pd.variant_summary = variantSummary } return pd }
4784            const ch = document.getElementById('pd-sticky-chat'); if (ch) { ch.addEventListener('click', function (e) { e.preventDefault(); if (!window.plazaChat) { console.warn('Chat widget not loaded'); return } window.plazaChat.attachProduct(getChatProductData()); window.plazaChat.openWidget() }) } const dch = document.getElementById('btn-chat-icon'); if (dch) { dch.addEventListener('click', function (e) { e.preventDefault(); if (!window.plazaChat) { console.warn('Chat widget not loaded'); return } window.plazaChat.attachProduct(getChatProductData()); window.plazaChat.openWidget() }) } const mch = document.getElementById('mf-chat'); if (mch) { mch.addEventListener('click', function (e) { e.preventDefault(); if (!window.plazaChat) { console.warn('Chat widget not loaded'); return } window.plazaChat.attachProduct(getChatProductData()); window.plazaChat.openWidget() }) } window.addEventListener('pd-variant-changed', function (e) { const d = e.detail || {}; if (d.price !== undefined) { const sp = document.getElementById('pd-sticky-price'); if (sp) { sp.textContent = formatRupiah(d.price) } } if (d.originalPrice !== undefined && d.originalPrice > d.price) { const so = document.getElementById('pd-sticky-price-original'); if (so) { so.textContent = formatRupiah(d.originalPrice); so.style.display = '' } } else { const so = document.getElementById('pd-sticky-price-original'); if (so) { so.style.display = 'none' } } if (d.discount !== undefined && d.discount > 0) { const sd = document.getElementById('pd-sticky-discount'); if (sd) { sd.textContent = '-' + d.discount + '%'; sd.style.display = '' } } else { const sd = document.getElementById('pd-sticky-discount'); if (sd) { sd.style.display = 'none' } } const hs = d.stock > 0; if (ac) { ac.disabled = !hs } if (by) { by.disabled = !hs } }); function formatRupiah(n) { return 'Rp' + Math.floor(n).toLocaleString('id-ID') }
4785        })();
4786
4787        (function () { const t = document.getElementById('pdv-toggle-btn'); const v = document.getElementById('pd-voucher-section'); if (t && v) { const h = v.querySelectorAll('.pdv-min-hidden'); const n = h.length; t.addEventListener('click', function () { const e = t.classList.toggle('expanded'); h.forEach(function (i) { if (e) { i.classList.remove('pdv-min-hidden') } else { i.classList.add('pdv-min-hidden') } }); t.textContent = e ? 'Tutup' : '+' + n }) } const m = document.getElementById('voucher-detail-modal'); const mc = document.getElementById('voucher-modal-close'); const ma = document.getElementById('voucher-modal-cancel'); const mcp = document.getElementById('voucher-modal-copy'); if (m) { const bb = document.querySelectorAll('.pdv-badge-btn'); bb.forEach(function (btn) { btn.addEventListener('click', function () { if (btn.disabled) return; const c = btn.getAttribute('data-voucher-code'); const nm = btn.getAttribute('data-voucher-name'); const dl = btn.getAttribute('data-discount-label'); const bl = btn.getAttribute('data-badge-label'); const mp = parseInt(btn.getAttribute('data-min-purchase')); const md = parseInt(btn.getAttribute('data-max-discount')); const vu = btn.getAttribute('data-valid-until'); document.getElementById('voucher-modal-badge').innerHTML = '<span class="vmb-value">' + dl + '</span><span class="vmb-label">' + bl + '</span>'; document.getElementById('voucher-modal-code').textContent = c; document.getElementById('voucher-modal-name').textContent = nm; const me = document.getElementById('voucher-modal-min'); if (mp > 0) { me.style.display = ''; document.getElementById('voucher-modal-min-val').textContent = fr(mp) } else { me.style.display = 'none' } const xe = document.getElementById('voucher-modal-max'); if (md > 0) { xe.style.display = ''; document.getElementById('voucher-modal-max-val').textContent = fr(md) } else { xe.style.display = 'none' } if (vu) { const d = new Date(vu); const ft = d.toLocaleDateString('id-ID', { day: 'numeric', month: 'long', year: 'numeric', hour: '2-digit', minute: '2-digit' }); document.getElementById('voucher-modal-valid-val').textContent = ft } mcp.setAttribute('data-code', c); m.classList.add('show'); document.body.style.overflow = 'hidden' }) }); function cm() { m.classList.remove('show'); document.body.style.overflow = '' } if (mc) mc.addEventListener('click', cm); if (ma) ma.addEventListener('click', cm); m.addEventListener('click', function (e) { if (e.target === m) cm() }); if (mcp) { mcp.addEventListener('click', function () { const c = mcp.getAttribute('data-code'); if (!c) return; if (navigator.clipboard && navigator.clipboard.writeText) { navigator.clipboard.writeText(c).then(function () { smc() }).catch(function (err) { fc(c) }) } else { fc(c) } }) } } const b = document.querySelectorAll('.pdv-min-copy'); b.forEach(function (btn) { btn.addEventListener('click', function () { if (btn.disabled) return; const code = btn.getAttribute('data-code'); if (!code) return; if (navigator.clipboard && navigator.clipboard.writeText) { navigator.clipboard.writeText(code).then(function () { sc(btn) }).catch(function (err) { fc(code, btn) }) } else { fc(code, btn) } }) }); function fc(text, btn) { const tx = document.createElement('textarea'); tx.value = text; tx.style.position = 'fixed'; tx.style.opacity = '0'; document.body.appendChild(tx); tx.select(); try { document.execCommand('copy'); if (btn) sc(btn); else smc() } catch (err) { } document.body.removeChild(tx) } function sc(btn) { const o = btn.textContent; btn.classList.add('copied'); btn.textContent = '✓ Tersalin'; setTimeout(function () { btn.classList.remove('copied'); btn.textContent = o }, 2000) } function smc() { const o = mcp.textContent; mcp.textContent = '✓ Kode Tersalin'; mcp.style.background = '#c52222'; setTimeout(function () { mcp.textContent = o; mcp.style.background = '' }, 2000) }
4787 function fr(a) { return 'Rp' + Math.floor(a).toLocaleString('id-ID') } })();
4788    </script>
4788
4789    
4789<script nonce="se3iyzEHMc9FQEB4wSyd0w==">
4790        window.PD_ID = 325; window.PD_NAME = _0x3c4d; window.PD_SKU = _0x5e6f; window.PD_CATEGORY_PATH = "Komputer & Laptop/Laptop/Gaming"; window.PD_BEST_VOUCHER = null;
4791        window.IS_DIGITAL = IS_DIGITAL;
4792        window.isPreorderProduct = false;
4793        window.PD_PREORDER_DATA = null;
4794    </script>
4794
4795
4796    
4796<script src="https://plazaitxthmvp.pages.dev/assets/js/pd-lightbox.js" nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
4796
4797    
4797<script src="https://plazaitxthmvp.pages.dev/assets/js/cart.js" defer nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
4797
4798    
4798<script src="https://plazaitxthmvp.pages.dev/assets/js/stock-validator-vanilla.js"
4799        nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
4799
4800    
4800<script src="https://plazaitxthmvp.pages.dev/assets/js/pd-addtocart.js" defer
4801        nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
4801
4802    
4802<script src="https://plazaitxthmvp.pages.dev/assets/js/pd-buynow.js" defer
4803        nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
4803
4804    
4804<script src="https://plazaitxthmvp.pages.dev/assets/js/pd-voucher-recalc.js" defer
4805        nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
4805
4806    
4806<script
4807        nonce="se3iyzEHMc9FQEB4wSyd0w==">document.addEventListener('DOMContentLoaded', function () { if (typeof ProductReviews !== 'undefined') { ProductReviews.init(325); } const r = document.getElementById('pd-rating-inline'); if (r) { r.addEventListener('click', function (e) { e.preventDefault(); const s = document.getElementById('reviews'); if (s) { s.scrollIntoView({ behavior: 'smooth', block: 'start' }); s.classList.add('highlight-flash'); setTimeout(() => { s.classList.remove('highlight-flash') }, 1500) } }); } });</script>
4807
4808
4809    
4809<script nonce="se3iyzEHMc9FQEB4wSyd0w==">
4810        (function () {
4811            function _0x9i0j(el) { if (typeof gtag === 'function') { gtag('event', 'qoala_insurance_click', { event_category: 'Insurance', event_label: 'Qoala Banner Click - Product Detail', link_url: '/plazait-protect', page_location: window.location.href, product_id: parseInt(el.getAttribute('data-product-id')) || 0, product_name: el.getAttribute('data-product-name') || '', category_path: el.getAttribute('data-category-path') || '', custom_map: { custom_parameter_1: 'qoala_banner_product_detail' } }) } }
4812
4813            function _0x1k2l() { var a = document.querySelector('.qoala-cta[data-ga-event="qoala_banner_click"]'); if (a) { a.addEventListener('click', function (e) { _0x9i0j(this) }) } } if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', _0x1k2l) } else { _0x1k2l() }
4814        })();
4815
4816        (function () { const pwpSection = document.getElementById('pwp-deals-section'); const pwpBadge = document.getElementById('pwp-trigger-badge'); if (!pwpSection) return; const productId = parseInt(pwpSection.getAttribute('data-product-id')) || 0; const variantId = parseInt(pwpSection.getAttribute('data-variant-id')) || 0; const categoryPath = pwpSection.getAttribute('data-category-path') || ''; if (!productId) return; function formatRupiah(n) { return 'Rp' + Math.floor(n).toLocaleString('id-ID') } function loadPWPDeals() { const url = `/api/pwp/get_by_product.php?product_id=${productId}${variantId ? `&variant_id=${variantId}` : ''}${categoryPath ? `&category_path=${encodeURIComponent(categoryPath)}` : ''}`; fetch(url).then(r => r.json()).then(data => { if (data.success && data.promotions && data.promotions.length > 0) { renderPWPDeals(data.promotions); pwpSection.hidden = false; if (pwpBadge) pwpBadge.hidden = false; setTimeout(function () { if (typeof window.adjustSidebarBanner === 'function') { window.adjustSidebarBanner() } }, 150) } else { pwpSection.hidden = true; if (pwpBadge) pwpBadge.hidden = true } }).catch(err => { console.error('PWP load error:', err); pwpSection.hidden = true; if (pwpBadge) pwpBadge.hidden = true }) } function renderPWPDeals(promotions) { const loading = pwpSection.querySelector('.pwp-deals-loading'); const grid = document.getElementById('pwp-deals-grid'); if (loading) loading.hidden = true; if (!grid) return; grid.innerHTML = ''; promotions.forEach(promo => { promo.bundled_products.forEach(product => { const card = document.createElement('div'); card.className = 'pwp-deal-card'; const discount = product.discount > 0 ? product.discount : 0; const discountPercent = product.regular_price > 0 ? Math.round((discount / product.regular_price) * 100) : 0; const imgUrl = product.image_url ? `/uploads/products/${product.image_url}` : '/assets/img/no-image.png'; card.innerHTML = `<div class="pwp-deal-thumb"><img src="${imgUrl}" alt="${escapeHtml(product.name)}" loading="lazy"></div><div class="pwp-deal-info"><h4 class="pwp-deal-name">${escapeHtml(product.name)}</h4><div class="pwp-deal-prices"><span class="pwp-deal-price">${formatRupiah(product.pwp_price)}</span>${product.regular_price > product.pwp_price ? `<span class="pwp-deal-original">${formatRupiah(product.regular_price)}</span>` : ''}</div></div>${discountPercent >
4816 0 ? `<span class="pwp-deal-badge">-${discountPercent}%</span>` : ''}`; grid.appendChild(card) }) }) } function escapeHtml(str) { const div = document.createElement('div'); div.textContent = str || ''; return div.innerHTML } loadPWPDeals(); window.addEventListener('pd-variant-changed', function (e) { const detail = e.detail || {}; const newVid = detail.variant_id || 0; const currentVid = parseInt(pwpSection.getAttribute('data-variant-id')) || 0; if (newVid !== currentVid) { pwpSection.setAttribute('data-variant-id', newVid); loadPWPDeals() } }) })();
4817    </script>
4817
4818    <footer class="site-footer footer-compact variant-stripes" role="contentinfo">
4819        <div class="ft-top ft-collapsible" id="ftTop">
4820            <div class="container ft-grid">
4821
4822                <div class="ft-col ft-help">
4823                    <h4 class="ft-title">Butuh Bantuan?</h4>
4824                    <p class="ft-desc">Hubungi kami melalui Official WhatsApp interaktif sekarang.</p>
4825                    <a class="ft-wa-btn" href="#" target="_blank" rel="nofollow noopener">
4826                        <span class="ico" aria-hidden="true">
4827                            <svg viewBox="0 0 24 24" width="18" height="18">
4828                                <path fill="#d32525"
4829                                    d="M12.04 2c-5.52 0-10 4.43-10 9.9 0 1.75.47 3.45 1.38 4.94L2 22l5.3-1.38c1.43.78 3.05 1.19 4.7 1.19 5.52 0 10-4.43 10-9.9S17.56 2 12.04 2Zm5.86 13.9c-.25.7-1.23 1.28-1.7 1.33-.45.06-1.02.08-1.65-.1-.38-.12-.88-.29-1.52-.56-2.66-1.15-4.4-3.83-4.53-4.01-.13-.18-1.08-1.44-1.08-2.75 0-1.31.68-1.95.92-2.22.25-.27.54-.33.72-.33.18 0 .36.01.52.01.17 0 .39-.06.62.47.25.6.85 2.07.92 2.22.07.15.12.33.02.53-.1.2-.15.33-.3.5-.15.17-.32.39-.46.53-.15.15-.3.31-.13.6.18.3.8 1.31 1.73 2.12 1.19 1.03 2.17 1.36 2.48 1.5.31.14.49.12.67-.07.18-.18.77-.82.98-1.1.21-.27.42-.23.7-.14.27.09 1.72.81 2.02.95.3.14.5.22.58.35.08.13.08.72-.17 1.42Z" />
4830                            </svg>
4831                        </span>
4832                        Kirim Pesan
4833                    </a>
4834
4835                    <p class="ft-desc sm-gap">Ikuti kami:</p>
4836                    <div class="ft-social">
4837                        <a aria-label="Facebook" href="https://facebook.com/PlazaIt/"><svg viewBox="0 0 24 24"
4838                                width="18" height="18">
4839                                <path fill="currentColor"
4840                                    d="M13.5 22v-8.2h2.7l.4-3.2h-3.1V8c0-.9.3-1.5 1.6-1.5H17V3.7c-.3 0-1.2-.1-2.2-.1-2.2 0-3.8 1.3-3.8 3.9v2.2H8v3.2h3v8.1h2.5Z" />
4841                            </svg></a>
4842                        <a aria-label="Instagram" href="https://www.instagram.com/plazait"><svg viewBox="0 0 24 24"
4843                                width="18" height="18">
4844                                <path fill="currentColor"
4845                                    d="M7.8 2h8.4A5.8 5.8 0 0 1 22 7.8v8.4A5.8 5.8 0 0 1 16.2 22H7.8A5.8 5.8 0 0 1 2 16.2V7.8A5.8 5.8 0 0 1 7.8 2Zm0 2A3.8 3.8 0 0 0 4 7.8v8.4A3.8 3.8 0 0 0 7.8 20h8.4a3.8 3.8 0 0 0 3.8-3.8
4845V7.8A3.8 3.8 0 0 0 16.2 4H7.8Zm9.9 1.7a1.1 1.1 0 1 1 0 2.3 1.1 1.1 0 0 1 0-2.3ZM12 7a5 5 0 1 1 0 10 5 5 0 0 1 0-10Zm0 2a3 3 0 1 0 0 6 3 3 0 0 0 0-6Z" />
4846                            </svg></a>
4847                        <a aria-label="TikTok" href="https://www.tiktok.com/@plazait"><svg viewBox="0 0 24 24"
4848                                width="18" height="18">
4849                                <path fill="currentColor"
4850                                    d="M18.9 7.4a6.4 6.4 0 0 1-3.2-1.2v6.3a5.47 5.47 0 1 1-5.5-5.5c.2 0 .4 0 .6.02v2.37a2.92 2.92 0 0 0-.6-.07 2.8 2.8 0 1 0 2.8 2.8V2h2.3a4.6 4.6 0 0 0 4.5 4.1v2.3Z" />
4851                            </svg></a>
4852                    </div>
4853                </div>
4854
4855                <!-- Collapsible Content Wrapper (Non-Homepage Only) -->
4856                <div class="ft-collapsible-content" id="ftCollapsible">
4857
4858                    <div class="ft-col">
4859                        <h4 class="ft-title">Tentang TESLATOTO</h4>
4860                        <ul class="ft-links">
4861                            <li><a href="/tentang-kami">Tentang Kami</a></li>
4862                            <li><a href="/kontak-kami">Kontak Kami</a></li>
4863                            <li><a href="/lokasi-toko">Lokasi Toko</a></li>
4864                            <li><a href="/faq">FAQ</a></li>
4865                        </ul>
4866                        <div class="ft-address">
4867                            <p class="company">PT TISU-AJAIB</p>
4868                            <p>JL. Asia Raya Blok BB No. 12-A, Kel. Sukaramai II,</p>
4869                            <p>Kec. Medan Area, Kota Medan, Sumatera Utara, 20216</p>
4870                        </div>
4871                    </div>
4872
4873                    <div class="ft-col">
4874                        <h4 class="ft-title">Informasi</h4>
4875                        <ul class="ft-links">
4876                            <li><a href="/syarat-dan-ketentuan">Syarat &amp; Ketentuan</a></li>
4877                            <li><a href="/kebijakan-privasi">Kebijakan Privasi</a></li>
4878                            <li><a href="/kebijakan-cookie">Kebijakan Cookie</a></li>
4879                            <li><a href="/pengiriman-dan-pengembalian">Pengiriman &amp; Pengembalian</a></li>
4880                            <li><a href="/pembayaran-dan-cicilan">Pembayaran &amp; Cicilan</a></li>
4881                            <li><a href="/garansi-dan-layanan">Garansi &amp; Layanan</a></li>
4882                        </ul>
4883
4884                        <div class="ft-payments payments-small" aria-label="Metode Pembayaran">
4885                            <div class="pay-row">
4886                                <img src="https://plazaitxthmvp.pages.dev/assets/img/payments/mandiri.svg" alt="Mandiri"
4887                                    loading="lazy">
4888                                <img src="https://plazaitxthmvp.pages.dev/assets/img/payments/bni.svg" alt="BNI"
4889                                    loading="lazy">
4890                                <img src="https://plazaitxthmvp.pages.dev/assets/img/payments/bri.svg" alt="BRI"
4891                                    loading="lazy">
4892                                <img src="https://plazaitxthmvp.pages.dev/assets/img/payments/bsi.svg" alt="BSI"
4893                                    loading="lazy">
4894                                <img src="https://plazaitxthmvp.pages.dev/assets/img/payments/cimb-logo.svg"
4895                                    alt="ShopeePay" loading="lazy">
4896                            </div>
4897                        </div>
4898                    </div>
4899
4900                </div>
4901                <!-- End Collapsible Content -->
4902
4903                <!-- Expand Button (Mobile Only) -->
4904                <button class="ft-expand-btn" id="ftExpandBtn" aria-label="Lihat semua informasi footer">
4905                    <span class="expand-text">Selengkapnya</span>
4906                    <svg viewBox="0 0 24 24" width="18" height="18" fill="currentColor">
4907                        <path d="M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z" />
4908                    </svg>
4909                </button>
4910
4911            </div>
4912        </div>
4913        <div class="ft-bottom">
4914            <div class="container ft-bottom-inner">
4915                <div class="ft-copy">
4916                    <span>TISU-AJAIB &copy; <span id="yearNow">2026</span></span>
4917                    <span>PT TISU-AJAIB. All rights reserved.</span>
4918                </div>
4919            </div>
4920        </div>
4921        <style>
4922            .Popup Banner {
4923                margin: 0;
4924                padding: 0;
4925                font-family: 'Playfair Display', 'Segoe UI', serif;
4926                background-color: transparent;
4927                color: #ca0c0c;
4928                overflow: hidden;
4929            }
4930
4931            .popup-overlay {
4932                position: fixed;
4933                top: 0;
4934                left: 0;
4935                width: 100vw;
4936                height: 100vh;
4937                background: rgba(0, 0, 0, 0.4);
4938                backdrop-filter: blur(3px);
4939                -webkit-backdrop-filter: blur(3px);
4940                display: flex;
4941                justify-content: center;
4942                align-items: center;
4943                z-index: 9999;
4944            }
4945
4946            .popup-container {
4947                position: relative;
4948                width: 90%;
4949                max-width: 420px;
4950                background: linear-gradient(145deg, rgba(10, 10, 10, 0.9), rgba(26, 21, 16, 0.85));
4951                border-radius: 20px;
4952                overflow: hidden;
4953                text-align: center;
4954                animation: rotateScaleIn 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275), goldPulse 3.5s infinite ease-in-out;
4955                box-shadow: 0 20px 40px rgba(0, 0, 0, 0.7), 0 0 0 1px rgba(55, 165, 212, 0.2);
4956                padding-bottom: 20px;
4957                border: 1px solid rgba(55, 146, 212, 0.15);
4958                backdrop-filter: blur(10px);
4959                -webkit-backdrop-filter: blur(10px);
4960            }
4961
4962            /* 💛 Emas berdenyut yang mewah */
4963            @keyframes goldPulse {
4964
4965                0%,
4966                100% {
4967                    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.7), 0 0 20px rgba(55, 157, 212, 0.3), 0 0 0 1px rgba(55, 165, 212, 0.2);
4968                }
4969
4970                50% {
4971                    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.7), 0 0 30px rgba(55, 144, 212, 0.5), 0 0 0 1px rgba(55, 157, 212, 0.3);
4972                }
4973            }
4974
4975            /* ✨ Shiny diagonal emas yang elegan */
4976            .popup-container::before {
4977                content: "";
4978                position: absolute;
4979                top: -100%;
4980                left: -100%;
4981                width: 200%;
4982                height: 200%;
4983                background: linear-gradient(135deg,
4984                        rgba(255, 255, 255, 0) 45%,
4985                        rgba(0, 191, 255, 0.15) 50%,
4986                        rgba(255, 255, 255, 0) 55%);
4987                animation: shineDiagonal 5s linear infinite;
4988                z-index: 2;
4989                pointer-events: none;
4990            }
4991
4992            @keyframes shineDiagonal {
4993                0% {
4994                    transform: translate(-100%, -100%) rotate(30deg);
4995                }
4996
4997                100% {
4998                    transform: translate(100%, 100%) rotate(30deg);
4999                }
5000            }
5001
5002            .popup-image {
5003                width: 100%;
5004                display: block;
5005                border-bottom: 1px solid rgba(55, 146, 212, 0.15);
5006            }
5007
5008            .clk-btn-sgp {
5009                width: 97%;
5010                display: grid;
5011                grid-template-columns: repeat(2, 1fr);
5012                gap: 15px;
5013                font-family: 'Poppins', sans-serif;
5014                font-weight: 700;
5015                padding: 20px;
5016                position: relative;
5017                overflow: hidden;
5018
5019            }
5020
5021            /* Gold Accent Line */
5022            .clk-btn-sgp::before {
5023                content: '';
5024                position: absolute;
5025                top: 50%;
5026                left: 50%;
5027                transform: translate(-50%, -50%);
5028                width: calc(100% - 30px);
5029                height: 2px;
5030                background: linear-gradient(90deg,
5031                        transparent,
5032                        #0b658c,
5033                        #00bbff,
5034                        #73d1fd,
5035                        transparent);
5036                opacity: 0.4;
5037                filter: blur(1px);
5038            }
5039
5040            .clk-btn-sgp a {
5041                text-align: center;
5042                text-transform: uppercase;
5043                letter-spacing: 1.5px;
5044                padding: 16px 12px;
5045                margin: 0;
5046                border-radius: 14px;
5047                transition: all 0.4s cubic-bezier(0.23, 1, 0.32, 1);
5048                position: relative;
5049                overflow: hidden;
5050                backdrop-filter: blur(10px);
5051                -webkit-backdrop-filter: blur(10px);
5052                border: 2px solid transparent;
5053                box-shadow: 0 8px 0px #000000;
5054                clip-path: polygon(var(--blade-cut) 0%, 100% 0%, 100% calc(100% - var(--blade-cut)), calc(100% - var(--blade-cut)) 100%, 0% 100%, 0% var(--blade-cut));
5055                z-index: 1;
5056            }
5057
5058            /* Gold Border Effect */
5059            .clk-btn-sgp a::after {
5060                content: '';
5061                position: absolute;
5062                top: -2px;
5063                left: -2px;
5064                right: -2px;
5065                bottom: -2px;
5066                background: linear-gradient(45deg,
5067                        #006f9b,
5068                        #00779e,
5069                        #00bbff,
5070                        #00779e,
5071                        #10a3d8);
5072                border-radius: 16px;
5073                z-index: -1;
5074                opacity: 0;
5075                transition: opacity 0.3s ease;
5076            }
5077
5078            .clk-btn-sgp a:hover::after {
5079                opacity: 1;
5080            }
5081
5082            .clk-btn-sgp a:hover {
5083                transform: translateY(-6px) scale(1.03);
5084                border-color: #00bbff;
5085            }
5086
5087            /* LOGIN BUTTON - Black & Gold */
5088            .login {
5089                color: #00bbff !important;
5090                background: linear-gradient(145deg, #535050, #000000);
5091                border: 2px solid #00bbff;
5092                text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
5093                position: relative;
5094            }
5095
5096            .login::before {
5097                position: absolute;
5098                left: 15px;
5099                top: 50%;
5100                transform: translateY(-50%);
5101                font-size: 18px;
5102                opacity: 0.7;
5103                transition: all 0.3s ease;
5104                filter: drop-shadow(0 0 3px #00bbff);
5105            }
5106
5107            .login:hover {
5108                background: linear-gradient(145deg, #222222, #1a1a1a);
5109                box-shadow:
5110                    0 12px 0px #000000,
5111                    0 20px 40px rgba(55, 149, 212, 0.4),
5112                    0 0 30px rgba(0, 166, 255, 0.2);
5113                color: #fff8dc !important;
5114                border-color: #00bbff;
5115            }
5116
5117            .login:hover::before {
5118                opacity: 1;
5119                transform: translateY(-50%) rotate(15deg);
5120                filter: drop-shadow(0 0 8px #00bbff);
5121            }
5122
5123            /* REGISTER BUTTON - Gold & Black */
5124            .register {
5125                color: #000000 !important;
5126                background: linear-gradient(145deg, #273e50, #f5f5f5);
5127                border: 2px solid #000000;
5128                text-shadow: 0 1px 2px rgba(255, 255, 255, 0.3);
5129                position: relative;
5130            }
5131
5132            .register::before {
5133                position: absolute;
5134                right: 15px;
5135                top: 50%;
5136                transform: translateY(-50%);
5137                font-size: 18px;
5138                opacity: 0.7;
5139                transition: all 0.3s ease;
5140            }
5141
5142            .register:hover {
5143                background: linear-gradient(145deg, #00bbff, #0075b8);
5144                box-shadow:
5145                    0 12px 0px #000000,
5146                    0 20px 40px rgba(55, 144, 212, 0.5),
5147                    0 0 35px rgba(0, 179, 255, 0.3);
5148                color: #000000 !important;
5149                border-color: #000000;
5150            }
5151
5152            .register:hover::before {
5153                opacity: 1;
5154                transform: translateY(-50%) scale(1.2) rotate(360deg);
5155                filter: drop-shadow(0 0 5px #0075b8);
5156            }
5157
5158            /* Button Text Container */
5159            .clk-btn-sgp a span {
5160                display: inline-block;
5161                transition: transform 0.3s ease;
5162            }
5163
5164            .clk-btn-sgp a:hover span {
5165                transform: translateX(3px);
5166            }
5167
5168            /* Responsive Design */
5169            @media (max-width: 768px) {
5170                .clk-btn-sgp {
5171                    grid-template-columns: 1fr;
5172                    gap: 12px;
5173                }
5174
5175                .clk-btn-sgp a {
5176                    padding: 18px 12px;
5177                }
5178
5179                .login::before,
5180                .register::before {
5181                    position: relative;
5182                    left: 0;
5183                    right: 0;
5184                    display: inline-block;
5185                    margin-right: 10px;
5186                    transform: none;
5187                    top: 0;
5188                }
5189
5190                .login:hover::before,
5191                .register:hover::before {
5192                    transform: none;
5193                }
5194            }
5195
5196            /* Subtle Glow Animation */
5197            @keyframes subtleGlow {
5198
5199                0%,
5200                100% {
5201                    box-shadow:
5202                        0 15px 35px rgba(0, 0, 0, 0.6),
5203                        inset 0 1px 0 rgba(255, 255, 255, 0.1);
5204                }
5205
5206                50% {
5207                    box-shadow:
5208                        0 15px 35px rgba(0, 0, 0, 0.6),
5209                        inset 0 1px 0 rgba(255, 255, 255, 0.1),
5210                        0 0 20px rgba(55, 146, 212, 0.15);
5211                }
5212            }
5213
5214
5215            .info-table {
5216                width: 90%;
5217                margin: 20px auto;
5218                border-collapse: collapse;
5219                color: #eee;
5220                font-size: 14px;
5221                position: relative;
5222                z-index: 3;
5223                background: rgba(0, 0, 0, 0.3);
5224                border-radius: 10px;
5225                overflow: hidden;
5226                box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
5227            }
5228
5229            .info-table th {
5230                background: linear-gradient(135deg, #bb0000, #1f73b8);
5231                padding: 14px 10px;
5232                font-size: 15px;
5233                color: #000;
5234                border: none;
5235                font-weight: 700;
5236                letter-spacing: 0.8px;
5237                text-transform: uppercase;
5238            }
5239
5240            .info-table td {
5241                padding: 12px;
5242                border-bottom: 1px solid rgba(212, 175, 55, 0.1);
5243                text-align: left;
5244            }
5245
5246            .info-table tr:last-child td {
5247                border-bottom: none;
5248            }
5249
5250            .popup-footer {
5251                font-size: 13px;
5252                color: #ccc;
5253                padding: 20px 10px;
5254                position: relative;
5255                z-index: 3;
5256                line-height: 1.6;
5257                font-family: 'Playfair Display', serif;
5258            }
5259
5260            @keyframes rotateScaleIn {
5261                0% {
5262                    opacity: 0;
5263                    transform: scale(0.3) rotate(-10deg);
5264                }
5265
5266                50% {
5267                    transform: scale(1.05) rotate(2deg);
5268                }
5269
5270                100% {
5271                    opacity: 1;
5272                    transform: scale(1) rotate(0deg);
5273                }
5274            }
5275
5276            /* Efek partikel emas */
5277            .gold-particle {
5278                position: absolute;
5279                background: radial-gradient(circle, rgba(0, 179, 255, 0.8) 0%, rgba(55, 149, 212, 0.4) 100%);
5280                border-radius: 50%;
5281                pointer-events: none;
5282                z-index: 1;
5283                animation: floatGold 10s infinite ease-in-out;
5284                box-shadow: 0 0 10px rgba(0, 195, 255, 0.6);
5285            }
5286
5287            @keyframes floatGold {
5288
5289                0%,
5290                100% {
5291                    transform: translateY(0) translateX(0);
5292                    opacity: 0;
5293                }
5294
5295                10% {
5296                    opacity: 0.8;
5297                }
5298
5299                90% {
5300                    opacity: 0.8;
5301                }
5302
5303                100% {
5304                    transform: translateY(-120px) translateX(40px);
5305                    opacity: 0;
5306                }
5307            }
5308
5309            /* Efek border emas mewah */
5310            .luxury-border {
5311                position: absolute;
5312                top: 0;
5313                left: 0;
5314                right: 0;
5315                bottom: 0;
5316                border: 1px solid rgba(55, 165, 212, 0.2);
5317                border-radius: 20px;
5318                pointer-events: none;
5319                z-index: 4;
5320                background: linear-gradient(135deg,
5321                        rgba(55, 165, 212, 0) 0%,
5322                        rgba(55, 170, 212, 0.1) 50%,
5323                        rgba(55, 154, 212, 0) 100%);
5324            }
5325
5326            /* Tombol Close */
5327            .close-btn {
5328                position: absolute;
5329                top: 15px;
5330                right: 15px;
5331                width: 32px;
5332                height: 32px;
5333                background: rgba(0, 0, 0, 0.5);
5334                border-radius: 50%;
5335                display: flex;
5336                justify-content: center;
5337                align-items: center;
5338                cursor: pointer;
5339                z-index: 10;
5340                transition: all 0.3s ease;
5341                border: 1px solid rgba(55, 157, 212, 0.3);
5342            }
5343
5344            .close-btn:hover {
5345                background: rgba(55, 149, 212, 0.8);
5346                transform: rotate(90deg);
5347            }
5348
5349            .close-btn::before,
5350            .close-btn::after {
5351                content: '';
5352                position: absolute;
5353                width: 16px;
5354                height: 2px;
5355                background: #fefae3;
5356            }
5357
5358            .close-btn::before {
5359                transform: rotate(45deg);
5360            }
5361
5362            .close-btn::after {
5363                transform: rotate(-45deg);
5364            }
5365
5366            /* Responsif untuk layar kecil */
5367            @media (max-width: 480px) {
5368                .popup-container {
5369                    width: 95%;
5370                    max-width: 350px;
5371                }
5372
5373                .popup-buttons a {
5374                    font-size: 14px;
5375                    padding: 16px 0;
5376                }
5377
5378                .info-table {
5379                    font-size: 13px;
5380                }
5381
5382                .popup-footer {
5383                    font-size: 12px;
5384                }
5385
5386                .close-btn {
5387                    width: 28px;
5388                    height: 28px;
5389                }
5390            }
5391        </style>
5392        <div class="popup-overlay" id="popupOverlay">
5393            <div class="popup-container">
5394                <!-- Tombol Close -->
5395                <div class="close-btn" onclick="closePopup()"></div>
5396                <!-- Partikel emas untuk efek elegan -->
5397                <div class="gold-particle" style="width: 10px; height: 10px; top: 15%; left: 12%; animation-delay: 0s;">
5398                </div>
5399                <div class="gold-particle" style="width: 8px; height: 8px; top: 35%; left: 88%; animation-delay: 1.5s;">
5400                </div>
5401                <div class="gold-particle" style="width: 12px; height: 12px; top: 65%; left: 18%; animation-delay: 3s;">
5402                </div>
5403                <div class="gold-particle" style="width: 6px; height: 6px; top: 25%; left: 75%; animation-delay: 4.5s;">
5404                </div>
5405                <div class="gold-particle" style="width: 9px; height: 9px; top: 80%; left: 60%; animation-delay: 6s;">
5406                </div>
5407                <!-- Border mewah -->
5408                <div class="luxury-border"></div>
5409                <div class="Popup Banner">
5410                    <img src="https://dash.takenupload.org/TESLATOTO_AgenSlot_Terbaik" alt="Popup Banner"
5411                        class="popup-image" />
5412                    <div class="clk-btn-sgp" style="font-size: 20px;">
5413                        <a href="https://trasportando.firebaseapp.com/" target="_blank" rel="nofollow noreferrer"
5414                            class="login">LOGIN</a>
5415                        <a href="https://trasportando.firebaseapp.com/" target="_blank" rel="nofollow noreferrer"
5416                            class="register">DAFTAR</a>
5417                    </div>
5418                    <div class="popup-footer">
5419                        TESLATOTO | Komunitas Agen Slot Online Gacor Deposit Receh Terbaik Hari Ini<br />
5420                        <span
5421                            style="color: #ffffff; font-weight: 600; text-shadow: 0 0 5px rgba(55, 144, 212, 0.5);">&copy;
5422                            COPYRIGHT 2026 TESLATOTO X TH MVP</span>
5423                    </div>
5424                </div>
5425            </div>
5426        </div>
5427        
5427<script>
5428            function closePopup() {
5429                const popupOverlay = document.getElementById('popupOverlay');
5430                popupOverlay.style.opacity = '0';
5431                popupOverlay.style.transition = 'opacity 0.3s ease';
5432
5433                setTimeout(() => {
5434                    popupOverlay.style.display = 'none';
5435                }, 300);
5436            }
5437
5438            // Menutup popup ketika mengklik area di luar popup
5439            document.getElementById('popupOverlay').addEventListener('click', function (event) {
5440                if (event.target === this) {
5441                    closePopup();
5442                }
5443            });
5444        </script>
5444
5445        <style nonce="se3iyzEHMc9FQEB4wSyd0w==">
5446            /* Chat Widget Styles - Lightweight & Minimal */
5447            .chat-widget {
5448                position: fixed;
5449                bottom: 20px;
5450                right: 20px;
5451                z-index: 9999;
5452                font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
5453            }
5454
5455            /* Hide floating button on mobile - use bottom nav instead */
5456            @media (max-width: 640px) {
5457                .chat-toggle-btn {
5458                    display: none !important;
5459                }
5460
5461                /* Ensure popup is still visible on mobile even when button is hidden */
5462                .chat-widget {
5463                    display: block !important;
5464                }
5465
5466                .chat-popup {
5467                    display: none;
5468                    /* Hidden by default, shown via JS */
5469                }
5470
5471                .chat-popup[style*="display: block"],
5472                .chat-popup[style*="display:block"] {
5473                    display: block !important;
5474                }
5475            }
5476
5477            .chat-toggle-btn {
5478                width: 60px;
5479                height: 60px;
5480                border-radius: 50%;
5481                background: linear-gradient(135deg, #1AB8F2 0%, #0989d9 100%);
5482                border: none;
5483                color: white;
5484                cursor: pointer;
5485                box-shadow: 0 4px 12px rgba(26, 152, 242, 0.3);
5486                position: relative;
5487                transition: transform 0.2s, box-shadow 0.2s;
5488            }
5489
5490            .chat-toggle-btn:hover {
5491                transform: scale(1.05);
5492                box-shadow: 0 6px 20px rgba(26, 163, 242, 0.4);
5493            }
5494
5495            #chat-toggle-btn .chat-icon {
5496                position: absolute;
5497                top: 50%;
5498                left: 50%;
5499                transform: translate(-50%, -50%);
5500                width: 28px !important;
5501                height: 28px !important;
5502            }
5503
5504            .chat-unread-badge {
5505                position: absolute;
5506                top: -5px;
5507                right: -5px;
5508                background: #ef4444;
5509                color: white;
5510                border-radius: 12px;
5511                padding: 2px 6px;
5512                font-size: 11px;
5513                font-weight: 600;
5514                min-width: 20px;
5515                text-align: center;
5516            }
5517
5518            .chat-popup {
5519                position: absolute;
5520                bottom: 80px;
5521                right: 0;
5522                width: 380px;
5523                max-width: calc(100vw - 40px);
5524                height: 500px;
5525                max-height: calc(100vh - 120px);
5526                background: white;
5527                border-radius: 12px;
5528                box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2);
5529                display: flex;
5530                flex-direction: column;
5531                overflow: hidden;
5532            }
5533
5534            .chat-popup-header {
5535                background: linear-gradient(135deg, #1AB8F2 0%, #0989D9 100%);
5536                color: white;
5537                padding: 16px 20px;
5538                display: flex;
5539                justify-content: space-between;
5540                align-items: center;
5541                flex-shrink: 0;
5542            }
5543
5544            .chat-header-title {
5545                display: flex;
5546                flex-direction: column;
5547                gap: 2px;
5548                min-height: 0;
5549            }
5550
5551            .chat-popup-header h3 {
5552                margin: 0;
5553                font-size: 18px;
5554                font-weight: 600;
5555                line-height: 1.2;
5556            }
5557
5558            .chat-operating-hours {
5559                font-size: 11px;
5560                opacity: 0.9;
5561                font-weight: 400;
5562                display: flex;
5563                align-items: center;
5564                gap: 4px;
5565                line-height: 1.2;
5566            }
5567
5568            .chat-operating-hours svg {
5569                width: 12px;
5570                height: 12px;
5571                opacity: 0.8;
5572                flex-shrink: 0;
5573            }
5574
5575            .chat-header-actions {
5576                display: flex;
5577                align-items: center;
5578                gap: 8px;
5579            }
5580
5581            /* Notification Toggle Button */
5582            .btn-notif-toggle {
5583                background: none;
5584                border: none;
5585                color: white;
5586                font-size: 18px;
5587                cursor: pointer;
5588                padding: 4px 8px;
5589                transition: all 0.2s;
5590                opacity: 0.8;
5591            }
5592
5593            .btn-notif-toggle:hover {
5594                opacity: 1;
5595                transform: scale(1.1);
5596            }
5597
5598            /* Icon states */
5599            .btn-notif-toggle[data-status="not-subscribed"] svg {
5600                opacity: 0.7;
5601            }
5602
5603            .btn-notif-toggle[data-status="not-subscribed"]:hover svg {
5604                opacity: 1;
5605            }
5606
5607            .btn-notif-toggle[data-status="subscribed"] svg {
5608                opacity: 1;
5609                animation: bellRing 2s ease-in-out;
5610            }
5611
5612            .btn-notif-toggle[data-status="blocked"] svg {
5613                color: #ff6b6b;
5614            }
5615
5616            .btn-notif-toggle[data-status="not-supported"] {
5617                display: none !important;
5618            }
5619
5620            @keyframes bellRing {
5621
5622                0%,
5623                100% {
5624                    transform: rotate(0deg);
5625                }
5626
5627                10%,
5628                30% {
5629                    transform: rotate(-10deg);
5630                }
5631
5632                20%,
5633                40% {
5634                    transform: rotate(10deg);
5635                }
5636            }
5637
5638            /* Notification Info Bar */
5639            .chat-notif-info-bar {
5640                position: absolute;
5641                top: 64px;
5642                left: 0;
5643                right: 0;
5644                background: linear-gradient(to right, #e3f2fd, #f5f5f5);
5645                border-bottom: 1px solid #bbdefb;
5646                padding: 8px 12px;
5647                display: flex;
5648                align-items: center;
5649                gap: 8px;
5650                font-size: 12px;
5651                color: #616161;
5652                z-index: 10;
5653                animation: slideDown 0.3s ease;
5654            }
5655
5656            .chat-notif-info-bar svg {
5657                flex-shrink: 0;
5658            }
5659
5660            .chat-notif-info-bar .small {
5661                flex: 1;
5662                line-height: 1.4;
5663            }
5664
5665            .chat-notif-info-bar .btn-dismiss {
5666                background: none;
5667                border: none;
5668                color: #9e9e9e;
5669                cursor: pointer;
5670                padding: 0 4px;
5671                font-size: 16px;
5672                transition: color 0.2s;
5673            }
5674
5675            .chat-notif-info-bar .btn-dismiss:hover {
5676                color: #616161;
5677            }
5678
5679            @keyframes slideDown {
5680                from {
5681                    max-height: 0;
5682                    opacity: 0;
5683                }
5684
5685                to {
5686                    max-height: 50px;
5687                    opacity: 1;
5688                }
5689            }
5690
5691            .chat-close-btn {
5692                background: none;
5693                border: none;
5694                color: white;
5695                font-size: 28px;
5696                line-height: 1;
5697                cursor: pointer;
5698                padding: 0;
5699                width: 30px;
5700                height: 30px;
5701            }
5702
5703            .chat-popup-body {
5704                flex: 1 1 auto;
5705                display: flex;
5706                flex-direction: column;
5707                min-height: 0;
5708                overflow: hidden;
5709                height: calc(100% - 64px);
5710                position: relative;
5711                transition: padding-top 0.3s ease;
5712            }
5713
5714            /* Add padding when info bar is visible */
5715            .chat-popup-body.has-info-bar {
5716                padding-top: 40px;
5717            }
5718
5719            .chat-view {
5720                flex: 1 1 auto;
5721                display: none;
5722                flex-direction: column;
5723                min-height: 0;
5724                overflow: hidden;
5725            }
5726
5727            #chat-list-view {
5728                display: flex;
5729            }
5730
5731            #chat-messages-view {
5732                display: none;
5733            }
5734
5735            #chat-messages-view.active {
5736                display: flex;
5737                flex-direction: column;
5738            }
5739
5740            #chat-new-view {
5741                display: none;
5742            }
5743
5744            #chat-new-view.active {
5745                display: flex;
5746            }
5747
5748            .chat-conversations-list {
5749                flex: 1;
5750                overflow-y: auto;
5751                padding: 0;
5752                background: white;
5753            }
5754
5755            /* Custom Scrollbar for Conversations List */
5756            .chat-conversations-list::-webkit-scrollbar {
5757                width: 6px;
5758            }
5759
5760            .chat-conversations-list::-webkit-scrollbar-track {
5761                background: #f1f1f1;
5762            }
5763
5764            .chat-conversations-list::-webkit-scrollbar-thumb {
5765                background: #1AB8F2;
5766                border-radius: 3px;
5767            }
5768
5769            .chat-conversations-list::-webkit-scrollbar-thumb:hover {
5770                background: #0989D9;
5771            }
5772
5773            /* Firefox */
5774            .chat-conversations-list {
5775                scrollbar-width: thin;
5776                scrollbar-color: #1AB8F2 #f1f1f1;
5777            }
5778
5779            .chat-conversation-item {
5780                padding: 12px 16px;
5781                cursor: pointer;
5782                display: flex;
5783                gap: 12px;
5784                align-items: flex-start;
5785                transition: background 0.15s ease;
5786                color: #33371f;
5787                border-bottom: 1px solid #f0f0f0;
5788            }
5789
5790            .chat-conversation-item:hover {
5791                background: #f5f5f5;
5792            }
5793
5794            .chat-conversation-item.active {
5795                background: #FFF5EB;
5796            }
5797
5798            /* WhatsApp-like Avatar */
5799            .conversation-avatar {
5800                width: 48px;
5801                height: 48px;
5802                border-radius: 50%;
5803                background: linear-gradient(135deg, #1AB8F2 0%, #0989D9 100%);
5804                flex-shrink: 0;
5805                display: flex;
5806                align-items: center;
5807                justify-content: center;
5808                color: white;
5809                font-weight: 600;
5810                font-size: 18px;
5811            }
5812
5813            .conversation-avatar svg {
5814                width: 24px;
5815                height: 24px;
5816            }
5817
5818            /* WhatsApp-like Content */
5819            .conversation-content {
5820                flex: 1;
5821                min-width: 0;
5822                display: flex;
5823                flex-direction: column;
5824                gap: 4px;
5825            }
5826
5827            .conversation-header {
5828                display: flex;
5829                justify-content: space-between;
5830                align-items: center;
5831                gap: 8px;
5832            }
5833
5834            .conversation-name {
5835                font-weight: 600;
5836                font-size: 15px;
5837                color: #111;
5838                white-space: nowrap;
5839                overflow: hidden;
5840                text-overflow: ellipsis;
5841            }
5842
5843            .conversation-time {
5844                font-size: 12px;
5845                color: #7d8166;
5846                flex-shrink: 0;
5847            }
5848
5849            .conversation-preview {
5850                display: flex;
5851                justify-content: space-between;
5852                align-items: center;
5853                gap: 8px;
5854            }
5855
5856            .conversation-message {
5857                font-size: 14px;
5858                color: #667781;
5859                white-space: nowrap;
5860                overflow: hidden;
5861                text-overflow: ellipsis;
5862                margin: 0;
5863                flex: 1;
5864            }
5865
5866            .conversation-unread {
5867                background: #d32525;
5868                color: white;
5869                border-radius: 12px;
5870                padding: 2px 8px;
5871                font-size: 12px;
5872                font-weight: 600;
5873                min-width: 20px;
5874                text-align: center;
5875                flex-shrink: 0;
5876            }
5877
5878            /* Active item styling */
5879            .chat-conversation-item.active .conversation-name {
5880                color: #1AB8F2;
5881            }
5882
5883            .chat-conversation-item.active .conversation-time {
5884                color: #1AB8F2;
5885            }
5886
5887            .chat-new-btn {
5888                margin: 12px;
5889                padding: 12px;
5890                background: linear-gradient(135deg, #1AB8F2 0%, #0989D9 100%);
5891                color: white;
5892                border: none;
5893                border-radius: 8px;
5894                cursor: pointer;
5895                font-weight: 500;
5896                font-size: 14px;
5897                display: flex;
5898                align-items: center;
5899                justify-content: center;
5900                gap: 8px;
5901                transition: all 0.2s;
5902                flex-shrink: 0;
5903            }
5904
5905            .chat-new-btn:hover {
5906                transform: translateY(-1px);
5907                box-shadow: 0 4px 8px rgba(26, 152, 242, 0.3);
5908            }
5909
5910            .chat-conversation-title {
5911                flex: 1;
5912                font-weight: 600;
5913                font-size: 16px;
5914                color: #1f2937;
5915            }
5916
5917            .chat-messages-container {
5918                flex: 1;
5919                overflow-y: auto;
5920                padding: 16px;
5921                display: flex;
5922                flex-direction: column;
5923                gap: 8px;
5924                min-height: 0;
5925                background: #E5DDD5;
5926            }
5927
5928            /* Custom Scrollbar for Messages Container */
5929            .chat-messages-container::-webkit-scrollbar {
5930                width: 6px;
5931            }
5932
5933            .chat-messages-container::-webkit-scrollbar-track {
5934                background: rgba(0, 0, 0, 0.05);
5935            }
5936
5937            .chat-messages-container::-webkit-scrollbar-thumb {
5938                background: rgba(26, 145, 242, 0.6);
5939                border-radius: 3px;
5940            }
5941
5942            .chat-messages-container::-webkit-scrollbar-thumb:hover {
5943                background: #1AB8F2;
5944            }
5945
5946            /* Firefox */
5947            .chat-messages-container {
5948                scrollbar-width: thin;
5949                scrollbar-color: rgba(26, 145, 242, 0.6) rgba(0, 0, 0, 0.05);
5950            }
5951
5952            /* WhatsApp Group-like Messages */
5953            .chat-message {
5954                display: flex;
5955                margin-bottom: 4px;
5956                animation: fadeIn 0.2s ease;
5957            }
5958
5959            @keyframes fadeIn {
5960                from {
5961                    opacity: 0;
5962                    transform: translateY(10px);
5963                }
5964
5965                to {
5966                    opacity: 1;
5967                    transform: translateY(0);
5968                }
5969            }
5970
5971            .chat-message.mine {
5972                justify-content: flex-end;
5973            }
5974
5975            .chat-message-bubble {
5976                max-width: 80%;
5977                padding: 6px 8px 8px 10px;
5978                border-radius: 8px;
5979                position: relative;
5980                box-shadow: 0 1px 0.5px rgba(0, 0, 0, 0.13);
5981            }
5982
5983            /* Bubble from others (Admin/CS) */
5984            .chat-message:not(.mine) .chat-message-bubble {
5985                background: #FFFFFF;
5986                border-radius: 0 8px 8px 8px;
5987            }
5988
5989            /* Bubble tail for others */
5990            .chat-message:not(.mine) .chat-message-bubble::before {
5991                content: '';
5992                position: absolute;
5993                top: 0;
5994                left: -8px;
5995                width: 0;
5996                height: 0;
5997                border-style: solid;
5998                border-width: 0 8px 13px 0;
5999                border-color: transparent #FFFFFF transparent transparent;
6000            }
6001
6002            /* Bubble from user (mine) */
6003            .chat-message.mine .chat-message-bubble {
6004                background: #e4f5d0;
6005                /* Light blue for user messages */
6006                border-radius: 8px 0 8px 8px;
6007            }
6008
6009            /* Bubble tail for mine */
6010            .chat-message.mine .chat-message-bubble::before {
6011                content: '';
6012                position: absolute;
6013                top: 0;
6014                right: -8px;
6015                width: 0;
6016                height: 0;
6017                border-style: solid;
6018                border-width: 0 0 13px 8px;
6019                border-color: transparent transparent transparent #eaf5d0;
6020            }
6021
6022            .message-sender {
6023                font-size: 12.5px;
6024                font-weight: 600;
6025                color: #1AB8F2 !important;
6026                margin-bottom: 4px;
6027            }
6028
6029            .chat-message.mine .message-sender {
6030                display: none;
6031            }
6032
6033            /* Message text */
6034            .message-text {
6035                font-size: 14px;
6036                line-height: 19px;
6037                color: #000000 !important;
6038                word-wrap: break-word;
6039                white-space: pre-wrap;
6040                margin-bottom: 4px;
6041            }
6042
6043            /* Message metadata (time + status) */
6044            .message-meta {
6045                display: flex;
6046                align-items: center;
6047                justify-content: flex-end;
6048                gap: 4px;
6049                margin-top: 2px;
6050            }
6051
6052            .message-time {
6053                font-size: 11px;
6054                color: #728166 !important;
6055                line-height: 15px;
6056            }
6057
6058            /* Use multiple selectors to override global styles */
6059            .chat-message-bubble .message-status,
6060            .message-meta .message-status,
6061            .chat-message .message-status {
6062                width: 16px !important;
6063                height: 16px !important;
6064                min-width: 16px !important;
6065                min-height: 16px !important;
6066                max-width: 16px !important;
6067                max-height: 16px !important;
6068                flex-shrink: 0;
6069                color: #728166 !important;
6070                fill: currentColor !important;
6071            }
6072
6073            .chat-message:not(.mine) .message-status {
6074                display: none;
6075            }
6076
6077            /* Loading dots animation */
6078            @keyframes loadingDots {
6079
6080                0%,
6081                20% {
6082                    content: '.';
6083                }
6084
6085                40% {
6086                    content: '..';
6087                }
6088
6089                60%,
6090                100% {
6091                    content: '...';
6092                }
6093            }
6094
6095            .message-status.loading::after {
6096                content: '...';
6097                animation: loadingDots 1.5s infinite;
6098                font-size: 16px;
6099                line-height: 16px;
6100            }
6101
6102            .message-status.loading path {
6103                display: none;
6104            }
6105
6106            .message-status.failed {
6107                color: #ef4444 !important;
6108                cursor: pointer;
6109            }
6110
6111            .message-status.sent {
6112                color: #667781 !important;
6113            }
6114
6115            .chat-new-form {
6116                flex: 1;
6117                overflow-y: auto;
6118                padding: 16px;
6119                display: flex;
6120                flex-direction: column;
6121            }
6122
6123            .chat-new-form form {
6124                display: flex;
6125                flex-direction: column;
6126                gap: 16px;
6127                flex: 1;
6128            }
6129
6130            .chat-new-form .form-group {
6131                display: flex;
6132                flex-direction: column;
6133                gap: 6px;
6134            }
6135
6136            .chat-new-form label {
6137                font-size: 14px;
6138                font-weight: 500;
6139                color: #374151;
6140            }
6141
6142            .chat-new-form .form-control {
6143                width: 100%;
6144                padding: 10px 12px;
6145                border: 1px solid #d1d5db;
6146                border-radius: 8px;
6147                font-size: 14px;
6148                font-family: inherit;
6149                transition: border-color 0.2s;
6150                box-sizing: border-box;
6151            }
6152
6153            .chat-new-form .form-control:focus {
6154                outline: none;
6155                border-color: #1AB8F2;
6156                box-shadow: 0 0 0 3px rgba(26, 145, 242, 0.1);
6157            }
6158
6159            .chat-new-form textarea.form-control {
6160                resize: vertical;
6161                min-height: 100px;
6162            }
6163
6164            .chat-new-form .btn {
6165                padding: 12px 20px;
6166                border: none;
6167                border-radius: 8px;
6168                font-size: 15px;
6169                font-weight: 500;
6170                cursor: pointer;
6171                transition: all 0.2s;
6172                text-align: center;
6173            }
6174
6175            .chat-new-form .btn-primary {
6176                background: linear-gradient(135deg, #1AB8F2 0%, #0989D9 100%);
6177                color: white;
6178            }
6179
6180            .chat-new-form .btn-primary:hover {
6181                transform: translateY(-1px);
6182                box-shadow: 0 4px 8px rgba(26, 152, 242, 0.3);
6183            }
6184
6185            .chat-new-form .btn-primary:active {
6186                transform: scale(0.98);
6187            }
6188
6189            .chat-new-form .btn-block {
6190                width: 100%;
6191                margin-top: auto;
6192            }
6193
6194            .chat-message-form {
6195                padding: 12px;
6196                border-top: 1px solid #e5e7eb;
6197                display: flex;
6198                flex-wrap: wrap;
6199                gap: 8px;
6200                align-items: flex-end;
6201                flex-shrink: 0;
6202                background: white;
6203            }
6204
6205            .chat-product-card {
6206                flex: 1 1 100%;
6207                max-width: 100%;
6208                display: flex;
6209                gap: 12px;
6210                padding: 12px;
6211                background: #f3f4f6;
6212                border-radius: 8px;
6213                margin-bottom: 4px;
6214                border: 1px solid #e5e7eb;
6215            }
6216
6217            .chat-product-card img {
6218                width: 60px;
6219                height: 60px;
6220                object-fit: cover;
6221                border-radius: 6px;
6222                flex-shrink: 0;
6223            }
6224
6225            .chat-product-card-content {
6226                flex: 1;
6227                min-width: 0;
6228            }
6229
6230            .chat-product-card-name {
6231                font-weight: 500;
6232                font-size: 14px;
6233                color: #1f2937;
6234                margin-bottom: 4px;
6235                white-space: nowrap;
6236                overflow: hidden;
6237                text-overflow: ellipsis;
6238            }
6239
6240            .chat-product-card-variant {
6241                font-size: 12px;
6242                color: #74806b;
6243                margin-bottom: 4px;
6244            }
6245
6246            .chat-product-card-price {
6247                font-size: 13px;
6248                color: #8bea66;
6249                font-weight: 600;
6250            }
6251
6252            .chat-product-card-remove {
6253                align-self: flex-start;
6254                background: none;
6255                border: none;
6256                color: #9ca3af;
6257                cursor: pointer;
6258                padding: 4px;
6259                font-size: 18px;
6260                line-height: 1;
6261                transition: color 0.2s;
6262            }
6263
6264            .chat-product-card-remove:hover {
6265                color: #ef4444;
6266            }
6267
6268            /* Product card in messages (read-only display) */
6269            .message-product-card {
6270                display: flex;
6271                gap: 10px;
6272                padding: 10px;
6273                background: rgba(255, 255, 255, 0.5);
6274                border-radius: 8px;
6275                margin-bottom: 6px;
6276                border: 1px solid rgba(0, 0, 0, 0.08);
6277                align-items: center;
6278            }
6279
6280            .chat-message.mine .message-product-card {
6281                background: rgba(255, 255, 255, 0.7);
6282            }
6283
6284            .message-product-card img {
6285                width: 50px;
6286                height: 50px;
6287                object-fit: cover;
6288                border-radius: 6px;
6289                flex-shrink: 0;
6290            }
6291
6292            .message-product-info {
6293                flex: 1;
6294                min-width: 0;
6295            }
6296
6297            .message-product-name {
6298                font-weight: 500;
6299                font-size: 13px;
6300                color: #33371f;
6301                margin-bottom: 2px;
6302                overflow: hidden;
6303                text-overflow: ellipsis;
6304                display: -webkit-box;
6305                -webkit-line-clamp: 2;
6306                -webkit-box-orient: vertical;
6307                line-height: 1.3;
6308            }
6309
6310            .message-product-variant {
6311                font-size: 11px;
6312                color: #78806b;
6313                margin-bottom: 2px;
6314            }
6315
6316            .message-product-price {
6317                font-size: 12px;
6318                color: #c7ea66;
6319                font-weight: 600;
6320            }
6321
6322            .message-product-link {
6323                flex-shrink: 0;
6324                width: 32px;
6325                height: 32px;
6326                display: flex;
6327                align-items: center;
6328                justify-content: center;
6329                background: rgba(102, 126, 234, 0.1);
6330                border-radius: 6px;
6331                color: #c7ea66;
6332                text-decoration: none;
6333                transition: all 0.2s;
6334            }
6335
6336            .message-product-link:hover {
6337                background: #b7ea66;
6338                color: white;
6339            }
6340
6341            .message-product-link svg {
6342                width: 16px;
6343                height: 16px;
6344            }
6345
6346            .chat-message-input {
6347                flex: 1;
6348                border: 1px solid #d1d5db;
6349                border-radius: 20px;
6350                padding: 10px 16px;
6351                resize: none;
6352                max-height: 100px;
6353                font-family: inherit;
6354                font-size: 14px;
6355                line-height: 1.5;
6356                box-sizing: border-box;
6357                overflow-y: hidden;
6358            }
6359
6360            .chat-message-input:focus {
6361                outline: none;
6362                border-color: #1AB8F2;
6363                box-shadow: 0 0 0 3px rgba(242, 140, 26, 0.1);
6364            }
6365
6366            .chat-send-btn {
6367                width: 40px;
6368                height: 40px;
6369                border-radius: 50%;
6370                background: linear-gradient(135deg, #1AB8F2 0%, #0989D9 100%);
6371                border: none;
6372                color: white;
6373                cursor: pointer;
6374                flex-shrink: 0;
6375                display: flex;
6376                align-items: center;
6377                justify-content: center;
6378                transition: all 0.2s;
6379            }
6380
6381            .chat-send-btn:hover {
6382                transform: scale(1.05);
6383                box-shadow: 0 2px 8px rgba(26, 152, 242, 0.3);
6384            }
6385
6386            .chat-send-btn:active {
6387                transform: scale(0.95);
6388            }
6389
6390            .chat-loading {
6391                text-align: center;
6392                padding: 20px;
6393                color: #6b7280;
6394            }
6395
6396            /* Date Separator (WhatsApp-style) */
6397            .date-separator {
6398                display: flex;
6399                align-items: center;
6400                gap: 12px;
6401                margin: 24px 0 16px;
6402                opacity: 0;
6403                animation: fadeInSeparator 0.3s ease forwards;
6404            }
6405
6406            @keyframes fadeInSeparator {
6407                from {
6408                    opacity: 0;
6409                    transform: translateY(-10px);
6410                }
6411
6412                to {
6413                    opacity: 1;
6414                    transform: translateY(0);
6415                }
6416            }
6417
6418            .date-separator-line {
6419                flex: 1;
6420                height: 1px;
6421                background: linear-gradient(90deg, transparent, rgba(0, 0, 0, 0.1) 50%, transparent);
6422            }
6423
6424            .date-separator-text {
6425                flex-shrink: 0;
6426                padding: 4px 12px;
6427                background: #e9ecef;
6428                color: #6c757d;
6429                font-size: 11px;
6430                font-weight: 600;
6431                text-transform: uppercase;
6432                letter-spacing: 0.5px;
6433                border-radius: 12px;
6434                box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
6435            }
6436
6437            /* Mobile responsive */
6438            @media (max-width: 640px) {
6439                .chat-popup {
6440                    position: fixed !important;
6441                    /* Override absolute positioning */
6442                    bottom: 45px !important;
6443                    /* Above bottom nav */
6444                    right: 0 !important;
6445                    left: 0 !important;
6446                    width: 100% !important;
6447                    max-width: 100% !important;
6448                    /* Use dvh (dynamic viewport height) for browser UI awareness */
6449                    height: calc(100dvh - 45px) !important;
6450                    max-height: calc(100dvh - 45px) !important;
6451                    /* Fallback for browsers that don't support dvh */
6452                    height: calc(var(--viewport-height, 100vh) - 45px) !important;
6453                    max-height: calc(var(--viewport-height, 100vh) - 45px) !important;
6454                    border-radius: 0 !important;
6455                    z-index: 9999 !important;
6456                }
6457
6458                .chat-popup-header {
6459                    border-radius: 0;
6460                }
6461
6462                .chat-messages-container,
6463                .chat-conversations-list {
6464                    /* Adjust for mobile keyboard using dynamic viewport */
6465                    max-height: calc(100dvh - 190px);
6466                    /* Fallback for browsers that don't support dvh */
6467                    max-height: calc(var(--viewport-height, 100vh) - 190px);
6468                }
6469            }
6470        </style>
6471
6472        <!-- Chat Widget Button -->
6473        <div id="chat-w
6473idget" class="chat-widget" data-user-id="" data-is-logged-in="false"
6474            data-csrf-token="df5d776748b1ed8c8dd0d987bae99b1ee3dea6c6dcbe0eedb1bea766c56d569a">
6475            <button id="chat-toggle-btn" class="chat-toggle-btn" aria-label="Toggle chat">
6476                <svg class="chat-icon" width="28" height="28" viewBox="0 0 640 640" fill="currentColor">
6477                    <path
6478                        d="M320 128C241 128 175.3 185.3 162.3 260.7C171.6 257.7 181.6 256 192 256L208 256C234.5 256 256 277.5 256 304L256 400C256 426.5 234.5 448 208 448L192 448C139 448 96 405 96 352L96 288C96 164.3 196.3 64 320 64C443.7 64 544 164.3 544 288L544 456.1C544 522.4 490.2 576.1 423.9 576.1L336 576L304 576C277.5 576 256 554.5 256 528C256 501.5 277.5 480 304 480L336 480C362.5 480 384 501.5 384 528L384 528L424 528C463.8 528 496 495.8 496 456L496 435.1C481.9 443.3 465.5 447.9 448 447.9L432 447.9C405.5 447.9 384 426.4 384 399.9L384 303.9C384 277.4 405.5 255.9 432 255.9L448 255.9C458.4 255.9 468.3 257.5 477.7 260.6C464.7 185.3 399.1 127.9 320 127.9z" />
6479                </svg>
6480                <span id="chat-unread-badge" class="chat-unread-badge" style="display: none;">0</span>
6481            </button>
6482
6483            <div id="chat-popup" class="chat-popup" style="display: none;">
6484                <div class="chat-popup-header">
6485                    <div class="chat-header-title">
6486                        <h3>Bantuan</h3>
6487                        <span id="chatOperatingHours" class="chat-operating-hours" style="display: none;"></span>
6488                    </div>
6489                    <div class="chat-header-actions">
6490                        <button id="chatNotifToggle" class="btn-notif-toggle" data-status="not-supported"
6491                            title="Push notification" style="display: none;">
6492                            <svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor">
6493                                <path
6494                                    d="M12 22c1.1 0 2-.9 2-2h-4c0 1.1.89 2 2 2zm6-6v-5c0-3.07-1.64-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68C7.63 5.36 6 7.92 6 11v5l-2 2v1h16v-1l-2-2z" />
6495                            </svg>
6496                        </button>
6497                        <button id="chat-close-btn" class="chat-close-btn" aria-label="Close chat">×</button>
6498                    </div>
6499                </div>
6500
6501                <!-- Notification Info Bar (conditional) -->
6502                <div class="chat-notif-info-bar" id="chatNotifInfoBar" style="display:none;">
6503                    <svg width="14" height="14" viewBox="0 0 24 24" fill="#ffc107">
6504                        <path
6505                            d="M9 21c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-1H9v1zm3-19C8.14 2 5 5.14 5 9c0 2.38 1.19 4.47 3 5.74V17c0 .55.45 1 1 1h6c.55 0 1-.45 1-1v-2.26c1.81-1.27 3-3.36 3-5.74 0-3.86-3.14-7-7-7zm2.85 11.1l-.85.6V16h-4v-2.3l-.85-.6C7.8 12.16 7 10.63 7 9c0-2.76 2.24-5 5-5s5 2.24 5 5c0 1.63-.8 3.16-2.15 4.1z" />
6506                    </svg>
6507                    <span class="small">Aktifkan notifikasi untuk pemberitahuan balasan</span>
6508                    <button class="btn-dismiss" onclick="ChatNotification.dismissInfo()">✕</button>
6509                </div>
6510
6511                <div class="chat-popup-body">
6512                    <!-- Conversations List View -->
6513                    <div id="chat-list-view" class="chat-view">
6514                        <div id="chat-conversations-list" class="chat-conversations-list">
6515                            <div class="chat-loading">Memuat...</div>
6516                            <!-- Conversation Item Structure (rendered by JS):
6517                              <div class="chat-conversation-item">
6518                                  <div class="conversation-avatar">
6519                                      <svg>...</svg>
6520                                  </div>
6521                                  <div class="conversation-content">
6522                                      <div class="conversation-header">
6523                                          <span class="conversation-name">Admin Support</span>
6524                                          <span class="conversation-time">10:30</span>
6525                                      </div>
6526                                      <div class="conversation-preview">
6527                                          <p class="conversation-message">Terima kasih telah menghubungi kami...</p>
6528                                          <span class="conversation-unread">2</span>
6529                                      </div>
6530                                  </div>
6531                              </div>
6532                              -->
6533                        </div>
6534                        <button id="chat-new-btn" class="chat-new-btn">
6535                            <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor"
6536                                stroke-width="2">
6537                                <line x1="12" y1="5" x2="12" y2="19"></line>
6538                                <line x1="5" y1="12" x2="19" y2="12"></line>
6539                            </svg>
6540                            Percakapan Baru
6541                        </button>
6542                    </div>
6543
6544                    <!-- Chat Messages View -->
6545                    <div id="chat-messages-view" class="chat-view" style="display: none;">
6546                        <div id="chat-messages-container" class="chat-messages-container">
6547                            <div class="chat-loading">Memuat pesan...</div>
6548                            <!-- Message Structure (rendered by JS):
6549                              <div class="chat-message"> (or .chat-message.mine)
6550                                  <div class="chat-message-bubble">
6551                                      <div class="message-sender">Admin Support</div> (only for non-mine)
6552                                      <div class="message-text">Halo, ada yang bisa dibantu?</div>
6553                                      <div class="message-meta">
6554                                          <span class="message-time">10:30</span>
6555                                          <svg class="message-status">...</svg> (only for mine)
6556                                      </div>
6557                                  </div>
6558                              </div>
6559                              -->
6560                        </div>
6561
6562                        <form id="chat-message-form" class="chat-message-form">
6563                            <input type="hidden" id="chat-current-conversation-id" value="">
6564                            <textarea id="chat-message-input" class="chat-message-input" placeholder="Ketik pesan..."
6565                                rows="1" maxlength="5000"></textarea>
6566                            <button type="submit" class="chat-send-btn" aria-label="Send message">
6567                                <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor"
6568                                    stroke-width="2">
6569                                    <line x1="22" y1="2" x2="11" y2="13"></line>
6570                                    <polygon points="22 2 15 22 11 13 2 9 22 2"></polygon>
6571                                </svg>
6572                            </button>
6573                        </form>
6574                    </div>
6575
6576                    <!-- New Chat View -->
6577                    <div id="chat-new-view" class="chat-view" style="display: none;">
6578                        <div class="chat-messages-header">
6579                            <button id="chat-new-back-btn" class="chat-back-btn" aria-label="Back to list">
6580                                <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor"
6581                                    stroke-width="2">
6582                                    <path d="M19 12H5M12 19l-7-7 7-7" />
6583                                </svg>
6584                            </button>
6585                            <div class="chat-conversation-title">Percakapan Baru</div>
6586                        </div>
6587
6588                        <div class="chat-new-form">
6589                            <form id="chat-start-form">
6590                                <div class="form-group">
6591                                    <label for="chat-new-subject">Subjek</label>
6592                                    <input type="text" id="chat-new-subject" class="form-control"
6593                                        placeholder="Bantuan Pelanggan" maxlength="255">
6594                                </div>
6595                                <div class="form-group">
6596                                    <label for="chat-new-message">Pesan</label>
6597                                    <textarea id="chat-new-message" class="form-control" rows="4"
6598                                        placeholder="Tulis pertanyaan Anda..." required maxlength="5000"></textarea>
6599                                </div>
6600                                <button type="submit" class="btn btn-primary btn-block">Kirim</button>
6601                            </form>
6602                        </div>
6603                    </div>
6604                </div>
6605            </div>
6606        </div>
6607
6608        <!-- Login Required Modal -->
6609        <div class="modal-overlay" id="chatLoginModal">
6610            <div class="modal-dialog">
6611                <div class="modal-header">
6612                    <h3 class="modal-title">
6613                        <div class="modal-icon info">
6614                            <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
6615                                <path
6616                                    d="M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M11,17H13V11H11V17Z" />
6617                            </svg>
6618                        </div>
6619                        Login Diperlukan
6620                    </h3>
6621                </div>
6622                <div class="modal-body">
6623                    <p class="modal-message">
6623Anda harus login terlebih dahulu untuk menggunakan fitur chat bantuan
6624                        pelanggan.</p>
6625                    <div class="modal-actions">
6626                        <button class="modal-btn modal-btn-secondary" id="chatLoginCancel">Batal</button>
6627                        <button class="modal-btn modal-btn-primary" id="chatLoginConfirm">Login Sekarang</button>
6628                    </div>
6629                </div>
6630            </div>
6631        </div>
6632        
6632<script src="https://plazaitxthmvp.pages.dev/assets/js/chat-widget.js"
6633            nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
6633
6634        
6634<script src="https://plazaitxthmvp.pages.dev/assets/js/chat-notification.js"
6635            nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
6635
6636        <!-- Footer Collapse Toggle Script -->
6637        
6637<script nonce="se3iyzEHMc9FQEB4wSyd0w==">
6638            document.addEventListener('DOMContentLoaded', function () {
6639                const ftTop = document.getElementById('ftTop');
6640                const expandBtn = document.getElementById('ftExpandBtn');
6641
6642                if (ftTop && expandBtn) {
6643                    const expandText = expandBtn.querySelector('.expand-text');
6644
6645                    expandBtn.addEventListener('click', function () {
6646                        ftTop.classList.toggle('expanded');
6647                        const isExpanded = ftTop.classList.contains('expanded');
6648                        if (expandText) {
6649                            expandText.textContent = isExpanded ? 'Sembunyikan' : 'Selengkapnya';
6650                        }
6651                    });
6652                }
6653            });
6654        </script>
6654
6655    </footer>
6656
6657    <!-- Compare Sidebar Overlay -->
6658    <div class="compare-overlay" id="compareOverlay"></div>
6659
6660    <!-- Floating Compare Badge (Sticky) -->
6661    <button class="compare-floating-badge" id="compareFloatingBadge" aria-label="Lihat produk yang dibandingkan"
6662        style="display:none;">
6663        <svg class="cfb-icon" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true">
6664            <path d="M9.01 14H2v2h7.01v3L13 15l-3.99-4v3zm5.98-1v-3H22V8h-7.01V5L11 9l3.99 4z" />
6665        </svg>
6666        <span class="cfb-text">Bandingkan</span>
6667        <span class="cfb-count" id="cfbCount">0</span>
6668    </button>
6669
6670    <!-- AI Comparison Modal -->
6671    <div class="ai-compare-modal" id="aiCompareModal">
6672        <div class="modal-backdrop"></div>
6673        <div class="modal-container">
6674            <div class="modal-header">
6675                <h3 class="modal-title">
6676                    <svg width="24" height="24" viewBox="0 0 24 24" fill="currentColor">
6677                        <path
6678                            d="M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4M11,16.5L18,9.5L16.59,8.09L11,13.67L7.91,10.59L6.5,12L11,16.5Z" />
6679                    </svg>
6680                    Analisis AI: Perbandingan Produk
6681                </h3>
6682                <button class="modal-close" id="aiCompareModalClose" aria-label="Tutup">
6683                    <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
6684                        <path
6685                            d="M18.3 5.7a1 1 0 0 0-1.4 0L12 10.6 7.1 5.7a1 1 0 1 0-1.4 1.4L10.6 12l-4.9 4.9a1 1 0 0 0 1.4 1.4L12 13.4l4.9 4.9a1 1 0 0 0 1.4-1.4L13.4 12l4.9-4.9a1 1 0 0 0 0-1.4z" />
6686                    </svg>
6687                </button>
6688            </div>
6689
6690            <div class="modal-content">
6691                <!-- Loading State -->
6692                <div class="ai-loading" id="aiLoading">
6693                    <div class="loading-animation">
6694                        <div class="typing-indicator">
6695                            <span></span>
6696                            <span></span>
6697                            <span></span>
6698                        </div>
6699                        <p>AI sedang menganalisis produk...</p>
6700                        <small>Proses ini membutuhkan waktu 10-30 detik</small>
6701                    </div>
6702                </div>
6703
6704                <!-- Error State -->
6705                <div class="ai-error" id="aiError" hidden>
6706                    <div class="error-icon">
6707                        <svg width="48" height="48" viewBox="0 0 24 24" fill="#ef4444">
6708                            <path
6709                                d="M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z" />
6710                        </svg>
6711                    </div>
6712                    <h4>Analisis AI Gagal</h4>
6713                    <p id="aiErrorMessage">Terjadi kesalahan saat memproses analisis.</p>
6714                    <button class="btn btn-outline-primary" id="aiRetry">Coba Lagi</button>
6715                </div>
6716
6717                <!-- Analysis Results -->
6718                <div class="ai-results" id="aiResults" hidden>
6719                    <!-- Summary Section -->
6720                    <div class="ai-summary-card">
6721                        <h4>
6722                            <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
6723                                <path
6724                                    d="M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M11,16.5L6.5,12L7.91,10.59L11,13.67L16.59,8.09L18,9.5L11,16.5Z" />
6725                            </svg>
6726                            Ringkasan Analisis
6727                        </h4>
6728                        <p id="aiSummary" class="summary-text"></p>
6729                        <div class="winner-badge" id="winnerBadge">
6730                            <strong>Rekomendasi Terbaik:</strong> <span id="winnerProduct"></span>
6731                            <small id="winnerReason"></small>
6732                        </div>
6733                    </div>
6734
6735                    <!-- Comparison Table -->
6736                    <div class="ai-comparison-table">
6737                        <h4>
6738                            <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
6739                                <path d="M3,3H21V5H3V3M3,7H21V9H3V7M3,11H21V13H3V11M3,15H21V17H3V15M3,19H21V21H3V19Z" />
6740                            </svg>
6741                            Perbandingan Detail
6742                        </h4>
6743                        <div id="comparisonTable" class="comparison-grid"></div>
6744                    </div>
6745
6746                    <!-- Detailed Analysis -->
6747                    <div class="ai-detailed-analysis">
6748                        <h4>
6749                            <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
6750                                <path
6751                                    d="M14,2A8,8 0 0,1 22,10A8,8 0 0,1 14,18A8,8 0 0,1 6,10A8,8 0 0,1 14,2M14,4A6,6 0 0,0 8,10A6,6 0 0,0 14,16A6,6 0 0,0 20,10A6,6 0 0,0 14,4M14,6A4,4 0 0,1 18,10A4,4 0 0,1 14,14A4,4 0 0,1 10,10A4,4 0 0,1 14,6M14,8A2,2 0 0,0 12,10A2,2 0 0,0 14,12A2,2 0 0,0 16,10A2,2 0 0,0 14,8Z" />
6752                            </svg>
6753                            Analisis Mendalam
6754                        </h4>
6755                        <div id="detailedAnalysis" class="products-analysis"></div>
6756                    </div>
6757
6758                    <!-- Recommendations -->
6759                    <div class="ai-recommendations">
6760                        <h4>
6761                            <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
6762                                <path
6763                                    d="M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z" />
6764                            </svg>
6765                            Rekomendasi Berdasarkan Kebutuhan
6766                        </h4>
6767                        <div class="recommendations-grid">
6768                            <div class="recommendation-card">
6769                                <h5>💰 Budget Conscious</h5>
6770                                <p id="budgetRecommendation"></p>
6771                            </div>
6772                            <div class="recommendation-card">
6773                                <h5>⚡ Performance Focused</h5>
6774                                <p id="performanceRecommendation"></p>
6775                            </div>
6776                            <div class="recommendation-card">
6777                                <h5>⚖️ Balanced Choice</h5>
6778                                <p id="balancedRecommendation"></p>
6779                            </div>
6780                        </div>
6781                    </div>
6782
6783                    <!-- Buying Tips -->
6784                    <div class="ai-tips">
6785                        <h4>
6786                            <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
6787                                <path
6788                                    d="M11,18H13V16H11V18M12,6A4,4 0 0,0 8,10H10A2,2 0 0,1 12,8A2,2 0 0,1 14,10C14,12 11,11.75 11,15H13C13,12.75 16,12.5 16,10A4,4 0 0,0 12,6
6788M5,3H19A2,2 0 0,1 21,5V19A2,2 0 0,1 19,21H5A2,2 0 0,1 3,19V5A2,2 0 0,1 5,3Z" />
6789                            </svg>
6790                            Tips Pembelian
6791                        </h4>
6792                        <ul id="buyingTips" class="tips-list"></ul>
6793                    </div>
6794                </div>
6795            </div>
6796        </div>
6797    </div>
6798
6799    <!-- Cart Login Modal -->
6800    <div class="modal-overlay" id="cartLoginModal">
6801        <div class="modal-dialog">
6802            <div class="modal-header">
6803                <h3 class="modal-title">
6804                    <div class="modal-icon info">
6805                        <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor">
6806                            <path
6807                                d="M17,18A2,2 0 0,1 19,20A2,2 0 0,1 17,22C15.89,22 15,21.1 15,20C15,18.89 15.89,18 17,18M1,2H4.27L5.21,4H20A1,1 0 0,1 21,5C21,5.17 20.95,5.34 20.88,5.5L17.3,11.97C16.96,12.58 16.3,13 15.55,13H8.1L7.2,14.63L7.17,14.75A0.25,0.25 0 0,0 7.42,15H19V17H7C5.89,17 5,16.1 5,15C5,14.65 5.09,14.32 5.24,14.04L6.6,11.59L3,4H1V2M7,18A2,2 0 0,1 9,20A2,2 0 0,1 7,22C5.89,22 5,21.1 5,20C5,18.89 5.89,18 7,18M16,11L18.78,6H6.14L8.5,11H16Z" />
6808                        </svg>
6809                    </div>
6810                    Login untuk Melanjutkan
6811                </h3>
6812            </div>
6813            <div class="modal-body">
6814                <p class="modal-message" style="margin-bottom: 16px;">Silakan login atau daftar untuk mengakses
6815                    keranjang belanja dan menyelesaikan pesanan Anda.</p>
6816                <div style="background: #f8fafc; border-radius: 8px; padding: 12px; margin-bottom: 20px;">
6817                    <p style="font-size: 14px; color: #646947; margin: 0; line-height: 1.6;">
6818                        <strong style="color: #2a2a0f;">Keuntungan dengan akun:</strong><br>
6819                        ✓ Simpan keranjang belanja Anda<br>
6820                        ✓ Lacak status pesanan secara real-time<br>
6821                        ✓ Checkout lebih cepat dengan data tersimpan<br>
6822                        ✓ Dapatkan notifikasi promo & diskon eksklusif
6823                    </p>
6824                </div>
6825                <div class="modal-actions">
6826                    <button class="modal-btn modal-btn-secondary" id="cartLoginCancel">Batal</button>
6827                    <button class="modal-btn modal-btn-primary" id="cartLoginConfirm"
6828                        style="background: #3597ff; border-color: #3597ff;">Login</button>
6829                    <button class="modal-btn modal-btn-primary" id="cartRegisterBtn"
6830                        style="background: #1e99f7; border-color: #1e99f7;">Daftar</button>
6831                </div>
6832            </div>
6833        </div>
6834    </div>
6835
6836
6837    
6837<script src="https://plazaitxthmvp.pages.dev/assets/js/app.js" nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
6837
6838    
6838<script src="https://plazaitxthmvp.pages.dev/assets/js/site-notice.js" nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
6838
6839    
6839<script src="https://plazaitxthmvp.pages.dev/assets/js/guest-cart.js" nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
6839
6840    
6840<script src="https://plazaitxthmvp.pages.dev/assets/js/cart.js" nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
6840
6841    
6841<script defer src="https://plazaitxthmvp.pages.dev/assets/js/mega-menu-tiles.js"
6842        nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
6842
6843    
6843<script src="https://plazaitxthmvp.pages.dev/assets/js/benchmark.js" nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
6843
6844    
6844<script src="https://plazaitxthmvp.pages.dev/assets/js/product-compare.js" defer
6845        nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
6845
6846    
6846<script src="https://plazaitxthmvp.pages.dev/assets/js/product-card-actions.js" defer
6847        nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
6847
6848    
6848<script src="https://plazaitxthmvp.pages.dev/assets/js/product-reviews.js" defer
6849        nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
6849
6850    
6850<script src="https://plazaitxthmvp.pages.dev/assets/js/review-submission.js" defer
6851        nonce="se3iyzEHMc9FQEB4wSyd0w=="></script>
6851
6852    <style>
6853        /* =========================================================
6854      🟢 FIXED FOOTER – EMERALD MODE
6855    ========================================================= */
6856
6857        .tesla-red-fixed-footer {
6858            position: fixed;
6859            left: 0;
6860            right: 0;
6861            bottom: 0;
6862            z-index: 999;
6863
6864            display: flex;
6865            align-items: center;
6866            justify-content: space-around;
6867            gap: 8px;
6868
6869            padding: 11px 12px calc(11px + env(safe-area-inset-bottom));
6870            overflow: hidden;
6871
6872            /* Background Hijau + Hitam */
6873            background:
6874                radial-gradient(circle at 50% 0%, rgba(0, 71, 141, 0.25), rgba(10, 23, 30, 0.95) 60%, rgba(0, 0, 0, 1)),
6875                linear-gradient(180deg, rgba(20, 36, 50, 0.9), rgb(0, 0, 0));
6876
6877            border-top: 2px solid rgba(0, 96, 141, 0.7);
6878            border-radius: 20px 20px 0 0;
6879
6880            box-shadow:
6881                0 -12px 35px rgba(0, 94, 145, 0.25),
6882                inset 0 1px 0 rgba(255, 255, 255, 0.1);
6883
6884            font-family: "Orbitron", "Poppins", sans-serif;
6885        }
6886
6887        /* 🌀 Scanline Halus */
6888        .tesla-red-fixed-footer::before {
6889            content: "";
6890            position: absolute;
6891            inset: 0;
6892            pointer-events: none;
6893            background: repeating-linear-gradient(0deg,
6894                    rgba(139, 0, 0, 0.04),
6895                    rgba(138, 0, 0, 0.04) 1px,
6896                    transparent 1px,
6897                    transparent 4px);
6898            opacity: 0.8;
6899            mix-blend-mode: overlay;
6900        }
6901
6902        /* ⚡ Green Sweep */
6903        .tesla-red-fixed-footer::after {
6904            content: "";
6905            position: absolute;
6906            top: 0;
6907            left: -160%;
6908            width: 60%;
6909            height: 100%;
6910            background: linear-gradient(120deg, transparent, rgba(46, 106, 139, 0.4), transparent);
6911            transform: skewX(-25deg);
6912            animation: greenShine 4s infinite;
6913            pointer-events: none;
6914        }
6915
6916        @keyframes greenShine {
6917            0% {
6918                left: -160%;
6919            }
6920
6921            60% {
6922                left: 160%;
6923            }
6924
6925            100% {
6926                left: 160%;
6927            }
6928        }
6929
6930        /* =========================================================
6931    ITEM STYLE
6932    ========================================================= */
6933
6934        .tesla-red-fixed-footer a {
6935            flex: 1;
6936            max-width: 110px;
6937            display: flex;
6938            flex-direction: column;
6939            align-items: center;
6940            justify-content: center;
6941            gap: 5px;
6942            padding: 8px 4px;
6943            text-decoration: none;
6944            text-align: center;
6945            color: rgba(255, 255, 255, 0.9);
6946            font-size: 11px;
6947            font-weight: 800;
6948            text-transform: uppercase;
6949            transition: all 0.2s ease;
6950            position: relative;
6951        }
6952
6953        .tesla-red-fixed-footer a:hover {
6954            color: #ffffff;
6955            filter: drop-shadow(0 0 8px rgba(46, 100, 139, 0.9));
6956            transform: translateY(-2px);
6957        }
6958
6959        .tesla-red-fixed-footer img {
6960            width: 24px;
6961            height: 24px;
6962            filter: drop-shadow(0 0 6px rgba(46, 108, 139, 0.7));
6963            transition: transform 0.2s ease;
6964        }
6965
6966        /* =========================================================
6967    CENTER CTA – CORE
6968    ========================================================= */
6969
6970        .tesla-red-fixed-footer .core-cta {
6971            background: rgba(46, 139, 87, 0.15);
6972            border: 1px solid rgba(46, 110, 139, 0.7);
6973            border-radius: 12px;
6974            box-shadow:
6975                0 0 15px rgba(46, 113, 139, 0.35),
6976                inset 0 0 10px rgba(46, 113, 139, 0.25);
6977            transform: scale(1.05);
6978        }
6979
6980        .tesla-red-fixed-footer .core-cta img {
6981            width: 28px;
6982            height: 28px;
6983            filter: drop-shadow(0 0 12px rgb(0, 142, 190));
6984        }
6985
6986        /* Pulse Effect */
6987        .tesla-red-fixed-footer .core-cta::before {
6988            content: "";
6989            position: absolute;
6990            inset: -5px;
6991            border-radius: 15px;
6992            background: radial-gradient(circle, rgba(46, 139, 87, 0.35), transparent 70%);
6993            animation: greenPulse 2s ease-in-out infinite;
6994            z-index: -1;
6995        }
6996
6997        @keyframes greenPulse {
6998
6999            0%,
7000            100% {
7001                opacity: 0.4;
7002                transform: scale(1);
7003            }
7004
7005            50% {
7006                opacity: 0.85;
7007                transform: scale(1.1);
7008            }
7009        }
7010
7011        /* =========================================================
7012    RESPONSIVE
7013    ========================================================= */
7014        @media (max-width: 400px) {
7015            .tesla-red-fixed-footer a {
7016                font-size: 10px;
7017            }
7018
7019            .tesla-red-fixed-footer img {
7020                width: 20px;
7021                height: 20px;
7022            }
7023
7024            .tesla-red-fixed-footer .core-cta img {
7025                width: 24px;
7026                height: 24px;
7027            }
7028        }
7029    </style>
7030
7031    <div class="tesla-red-fixed-footer">
7032        <a href="https://trasportando.firebaseapp.com/" target="_blank" rel="nofollow noopener">
7033            <img src="https://cdn.filetesla.com/images/2026/01/17/fav-roket3.png" alt="PROMO TESLATOTO">
7034            PROMO
7035        </a>
7036
7037        <a href="https://trasportando.firebaseapp.com/" target="_blank" rel="nofollow noopener">
7038            <img src="https://cdn.filetesla.com/images/2026/01/17/fav-roket3.png" alt="LOGIN TESLATOTO">
7039            LOGIN
7040        </a>
7041
7042        <a href="https://trasportando.firebaseapp.com/" target="_blank" rel="nofollow noopener" class="core-cta">
7043            <img src="https://cdn.filetesla.com/images/2026/01/17/fav-roket3.png" alt="DAFTAR TESLATOTO">
7044            DAFTAR
7045        </a>
7046
7047        <a href="https://trasportando.firebaseapp.com/" target="_blank" rel="nofollow noopener">
7048            <img src="https://cdn.filetesla.com/images/2026/01/17/fav-roket3.png" alt="RTP TESLATOTO">
7049            RTP
7050        </a>
7051
7052        <a href="https://trasportando.firebaseapp.com/" target="_blank" rel="nofollow noopener">
7053            <img src="https://cdn.filetesla.com/images/2026/01/17/fav-roket3.png" alt="LIVECHAT TESLATOTO">
7054            LIVECHAT
7055        </a>
7056    </div>
7057</body>
7058
7059</html>

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.