Total profit

Beautiful balance UI, number-only input validation, auto-formatting, and enhanced gameplay

Acest script nu ar trebui instalat direct. Aceasta este o bibliotecă pentru alte scripturi care este inclusă prin directiva meta a // @require https://update.sleazyfork.org/scripts/560772/1724035/Total%20profit.js

You will need to install an extension such as Tampermonkey, Greasemonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Userscripts to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install a user script manager extension to install this script.

(I already have a user script manager, let me install it!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(I already have a user style manager, let me install it!)

// ==UserScript==
// @name         Total profit
// @namespace    http://tampermonkey.net/
// @version      4.0
// @description  Beautiful balance UI, number-only input validation, auto-formatting, and enhanced gameplay
// @author       anonymous
// @match        https://stake.ac/casino/games/mines*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    // Placeholder HTMLs and audio (to be filled by you)
    const gemHTML = `<button class="tile gem svelte-12ha7jh" data-testid="mines-tile-5" data-revealed="true" style="--tile-shadow-inset: -0.15em; --shadow: 0.3em; --tile-shadow-lg: 0.44999999999999996em; --small-shadow: -0.15em; --duration: 300ms; --fetch-duration: 600ms;" disabled=""><div class="gem svelte-1qwk2y9 revealed" style="--mine: url(/_app/immutable/assets/gem-none.Bcv6X_BH.svg); --duration: 300ms;" bis_skin_checked="1"><div class="motion svelte-1qwk2y9" bis_skin_checked="1"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 308 280" width="308" height="280" preserveAspectRatio="xMidYMid meet" style="width: 100%; height: 100%; transform: translate3d(0px, 0px, 0px); content-visibility: visible;"><defs><clipPath id="__lottie_element_13"><rect width="308" height="280" x="0" y="0"></rect></clipPath></defs><g clip-path="url(#__lottie_element_13)"><g transform="matrix(4,0,0,4,0.579010009765625,0)" opacity="1" style="display: block;"><g opacity="1" transform="matrix(1,0,0,1,38.30699920654297,35)"><path fill="rgb(5,29,39)" fill-opacity="1" d=" M-0.2809999883174896,35 C-0.2809999883174896,35 -0.29600000381469727,35 -0.29600000381469727,35 C-1.0740000009536743,34.99599838256836 -1.815000057220459,34.6619987487793 -2.3340001106262207,34.082000732421875 C-2.3340001106262207,34.082000732421875 -37.606998443603516,-5.380000114440918 -37.606998443603516,-5.380000114440918 C-38.409000396728516,-6.2769999504089355 -38.53499984741211,-7.591000080108643 -37.91899871826172,-8.625 C-37.91899871826172,-8.625 -27.281999588012695,-26.45400047302246 -27.281999588012695,-26.45400047302246 C-26.988000869750977,-26.94700050354004 -26.547000885009766,-27.336000442504883 -26.020000457763672,-27.56599998474121 C-26.020000457763672,-27.56599998474121 -15.1899995803833,-32.29399871826172 -15.1899995803833,-32.29399871826172 C-14.991000175476074,-32.38100051879883 -14.781999588012695,-32.444000244140625 -14.567999839782715,-32.481998443603516 C-14.567999839782715,-32.481998443603516 -0.5709999799728394,-34.95800018310547 -0.5709999799728394,-34.95800018310547 C-0.2529999911785126,-35.013999938964844 0.0729999989271164,-35.013999938964844 0.38999998569488525,-34.95800018310547 C0.38999998569488525,-34.95800018310547 14.312999725341797,-32.481998443603516 14.312999725341797,-32.481998443603516 C14.526000022888184,-32.444000244140625 14.732999801635742,-32.38100051879883 14.930000305175781,-32.29499816894531 C14.930000305175781,-32.29499816894531 26.114999771118164,-27.423999786376953 26.114999771118164,-27.423999786376953 C26.1560001373291,-27.4060001373291 26.197999954223633,-27.386999130249023 26.23900032043457,-27.367000579833984 C26.23900032043457,-27.367000579833984 26.242000579833984,-27.364999771118164 26.242000579833984,-27.364999771118164 C26.242000579833984,-27.364999771118164 26.243999481201172,-27.36400032043457 26.243999481201172,-27.36400032043457 C26.243999481201172,-27.36400032043457 26.2450008392334,-27.36400032043457 26.246000289916992,-27.363000869750977 C26.246000289916992,-27.363000869750977 26.249000549316406,-27.36199951171875 26.249000549316406,-27.36199951171875 C26.249000549316406,-27.36199951171875 26.249000549316406,-27.361000061035156 26.25,-27.361000061035156 C26.492000579833984,-27.240999221801758 26.711999893188477,-27.086999893188477 26.9060001373291,-26.9060001373291 C26.9060001373291,-26.905000686645508 26.9060001373291,-26.905000686645508 26.9060001373291,-26.905000686645508 C26.906999588012695,-26.90399932861328 26.908000946044922,-26.902999877929688 26.909000396728516,-26.902000427246094 C27.059999465942383,-26.760000228881836 27.195999145507812,-26.60099983215332 27.312999725341797,-26.424999237060547 C27.31399917602539,-26.424999237060547 27.31399917602539,-26.423999786376953 27.31399917602539,-26.423999786376953 C27.31399917602539,-26.423999786376953 27.31399917602539,-26.42300033569336 27.31399917602539,-26.42300033569336 C27.344999313354492,-26.378000259399414 27.37299919128418,-26.332000732421875 27.402000427246094,-26.284000396728516 C27.402000427246094,-26.284000396728516 37.926998138427734,-8.402000427246094 37.926998138427734,-8.402000427246094 C38.53900146484375,-7.361000061035156 38.402000427246094,-6.041999816894531 37.58700180053711,-5.14900016784668 C37.58700180053711,-5.14900016784668 1.7519999742507935,34.104000091552734 1.7519999742507935,34.104000091552734 C1.2309999465942383,34.67499923706055 0.492000013589859,35 -0.2809999883174896,35z"></path></g><g opacity="1" transform="matrix(1,0,0,1,38.30699920654297,35)"><path fill="rgb(86,252,126)" fill-opacity="1" d=" M25.023000717163086,-24.89699935913086 C25.023000717163086,-24.89699935913086 13.831999778747559,-29.77199935913086 13.831999778747559,-29.77199935913086 C13.831999778747559,-29.77199935913086 -0.09099999815225601,-32.24700164794922 -0.09099999815225601,-32.24700164794922 C-0.09099999815225601,-32.24700164794922 -14.088000297546387,-29.77199935913086 -14.088000297546387,-29.77199935913086 C-14.088000297546387,-29.77199935913086 -24.917999267578125,-25.04400062561035 -24.917999267578125,-25.04400062561035 C-24.917999267578125,-25.04400062561035 -35.55400085449219,-7.215000152587891 -35.55400085449219,-7.215000152587891 C-35.55400085449219,-7.215000152587891 -0.2809999883174896,32.24700164794922 -0.2809999883174896,32.24700164794922 C-0.2809999883174896,32.24700164794922 35.55400085449219,-7.00600004196167 35.55400085449219,-7.00600004196167 C35.55400085449219,-7.00600004196167 25.023000717163086,-24.89699935913086 25.023000717163086,-24.89699935913086z"></path></g><g opacity="1" transform="matrix(1,0,0,1,30.392000198364258,28.7549991607666)"><path fill="rgb(6,227,3)" fill-opacity="1" d=" M-8.263999938964844,-10.008000373840332 C-8.263999938964844,-10.008000373840332 -6.172999858856201,10.008000373840332 -6.172999858856201,10.008000373840332 C-6.172999858856201,10.008000373840332 8.263999938964844,-6.982999801635742 8.263999938964844,-6.982999801635742 C8.263999938964844,-6.982999801635742 -8.263999938964844,-10.008000373840332 -8.263999938964844,-10.008000373840332z"></path></g><g opacity="1" transform="matrix(1,0,0,1,64.11799621582031,19.048999786376953)"><path fill="rgb(5,169,2)" fill-opacity="1" d=" M9.743000030517578,8.944999694824219 C9.743000030517578,8.944999694824219 -0.7879999876022339,-8.944999694824219 -0.7879999876022339,-8.944999694824219 C-0.7879999876022339,-8.944999694824219 -9.743000030517578,-0.041999999433755875 -9.743000030517578,-0.041999999433755875 C-9.743000030517578,-0.041999999433755875 9.743000030517578,8.944999694824219 9.743000030517578,8.944999694824219z"></path></g><g opacity="1" transform="matrix(1,0,0,1,62.303001403808594,28.743000030517578)"><path fill="rgb(3,189,2)" fill-opacity="1" d=" M-11.557999610900879,9.736000061035156 C-11.557999610900879,9.736000061035156 11.557999610900879,-0.7490000128746033 11.557999610900879,-0.7490000128746033 C11.557999610900879,-0.7490000128746033 -7.928999900817871,-9.736000061035156 -7.928999900817871,-9.736000061035156 C-7.928999900817871,-9.736000061035156 -11.557999610900879,9.736000061035156 -11.557999610900879,9.736000061035156z"></path></g><g opacity="1" transform="matrix(1,0,0,1,46.43199920654297,28.757999420166016)"><path fill="rgb(1,228,1)" fill-opacity="1" d=" M-7.941999912261963,-6.822000026702881 C-7.941999912261963,-6.822000026702881 4.245999813079834,9.75100040435791 4.245999813079834,9.75100040435791 C4.245999813079834,9.75100040435791 4.313000202178955,9.720999717712402 4.313000202178955,9.720999717712402 C4.313000202178955,9.720999717712402 7.941999912261963,-9.75100040435791 7.941999912261963,-9.75100040435791 C7.941999912261963,-9.75100040435791 -7.941999912261963,-6.822000026702881 -7.941999912261963,-6.822000026702881z"></path></g><g opacity="1" transform="matrix(1,0,0,1,37.44900131225586,30.350000381469727)"><path fill="rgb(0,212,3)" fill-opacity="1" d=" M-13.229999542236328,8.413000106811523 C-13.229999542236328,8.413000106811523 13.229999542236328,8.15999984741211 13.229999542236328,8.15999984741211 C13.229999542236328,8.15999984741211 1.0410000085830688,-8.413000106811523 1.0410000085830688,-8.413000106811523 C1.0410000085830688,-8.413000106811523 -13.229999542236328,8.413000106811523 -13.229999542236328,8.413000106811523z"></path></g><g opacity="1" transform="matrix(1,0,0,1,13.486000061035156,28.83799934387207)"><path fill="rgb(8,252,2)" fill-opacity="1" d=" M-10.732999801635742,-1.0520000457763672 C-10.732999801635742,-1.0520000457763672 10.732999801635742,9.925000190734863 10.732999801635742,9.925000190734863 C10.732999801635742,9.925000190734863 8.807000160217285,-9.925000190734863 8.807000160217285,-9.925000190734863 C8.807000160217285,-9.925000190734863 -10.732999801635742,-1.0520000457763672 -10.732999801635742,-1.0520000457763672z"></path></g><g opacity="1" transform="matrix(1,0,0,1,37.481998443603516,52.862998962402344)"><path fill="rgb(8,252,2)" fill-opacity="1" d=" M13.196999549865723,-14.354000091552734 C13.196999549865723,-14.354000091552734 -13.262999534606934,-14.10099983215332 -13.262999534606934,-14.10099983215332 C-13.262999534606934,-14.10099983215332 0.5450000166893005,14.383000373840332 0.5450000166893005,14.383000373840332 C0.5450000166893005,14.383000373840332 13.196000099182129,-14.02299976348877 13.196000099182129,-14.02299976348877 C13.196000099182129,-14.02299976348877 13.262999534606934,-14.383000373840332 13.262999534606934,-14.383000373840332 C13.262999534606934,-14.383000373840332 13.196999549865723,-14.354000091552734 13.196999549865723,-14.354000091552734z"></path></g><g opacity="1" transform="matrix(1,0,0,1,55.944000244140625,47.62099838256836)"><path fill="rgb(1,153,2)" fill-opacity="1" d=" M-5.198999881744385,-9.142000198364258 C-5.198999881744385,-9.142000198364258 -5.265999794006348,-8.781000137329102 -5.265999794006348,-8.781000137329102 C-5.265999794006348,-8.781000137329102 -17.91699981689453,19.625999450683594 -17.91699981689453,19.625999450683594 C-17.91699981689453,19.625999450683594 17.91699981689453,-19.625999450683594 17.91699981689453,-19.625999450683594 C17.91699981689453,-19.625999450683594 -5.198999881744385,-9.142000198364258 -5.198999881744385,-9.142000198364258z"></path></g><g opacity="1" transform="matrix(1,0,0,1,20.388999938964844,47.51599884033203)"><path fill="rgb(1,226,0)" fill-opacity="1" d=" M-17.636999130249023,-19.729999542236328 C-17.636999130249023,-19.729999542236328 17.636999130249023,19.729999542236328 17.636999130249023,19.729999542236328 C17.636999130249023,19.729999542236328 3.8289999961853027,-8.753000259399414 3.8289999961853027,-8.753000259399414 C3.8289999961853027,-8.753000259399414 -17.636999130249023,-19.729999542236328 -17.636999130249023,-19.729999542236328z"></path></g><g opacity="1" transform="matrix(1,0,0,1,38.35900115966797,12.345000267028809)"><path fill="rgb(8,252,2)" fill-opacity="1" d=" M13.779000282287598,-7.117000102996826 C13.779000282287598,-7.117000102996826 -0.14399999380111694,-9.592000007629395 -0.14399999380111694,-9.592000007629395 C-0.14399999380111694,-9.592000007629395 -14.140999794006348,-7.117000102996826 -14.140999794006348,-7.117000102996826 C-14.140999794006348,-7.117000102996826 -24.97100067138672,-2.3889999389648438 -24.97100067138672,-2.3889999389648438 C-24.97100067138672,-2.3889999389648438 -19.09000015258789,3.5269999504089355 -19.09000015258789,3.5269999504089355 C-19.09000015258789,3.5269999504089355 -16.06599998474121,6.567999839782715 -16.06599998474121,6.567999839782715 C-16.06599998474121,6.567999839782715 -8.567999839782715,7.9670000076293945 -8.567999839782715,7.9670000076293945 C-8.567999839782715,7.9670000076293945 0.13199999928474426,9.592000007629395 0.13199999928474426,9.592000007629395 C0.13199999928474426,9.592000007629395 16.013999938964844,6.660999774932861 16.013999938964844,6.660999774932861 C16.013999938964844,6.660999774932861 24.97100067138672,-2.242000102996826 24.97100067138672,-2.242000102996826 C24.97100067138672,-2.242000102996826 13.779000282287598,-7.117000102996826 13.779000282287598,-7.117000102996826z"></path></g><g opacity="1" transform="matrix(1,0,0,1,12.52299976348877,18.871000289916992)"><path fill="rgb(86,252,126)" fill-opacity="1" d=" M6.747000217437744,-2.999000072479248 C6.747000217437744,-2.999000072479248 0.8659999966621399,-8.914999961853027 0.8659999966621399,-8.914999961853027 C0.8659999966621399,-8.914999961853027 -9.770000457763672,8.914999961853027 -9.770000457763672,8.914999961853027 C-9.770000457763672,8.914999961853027 9.770000457763672,0.041999999433755875 9.770000457763672,0.041999999433755875 C9.770000457763672,0.041999999433755875 6.747000217437744,-2.999000072479248 6.747000217437744,-2.999000072479248z"></path></g><g opacity="1" transform="matrix(1,0,0,1,25.80299949645996,6.790999889373779)"><path fill="rgb(86,252,126)" fill-opacity="1" d=" M-11.90999984741211,4.038000106811523 C-11.90999984741211,4.038000106811523 -1.437000036239624,-1.3650000095367432 -1.437000036239624,-1.3650000095367432 C-1.437000036239624,-1.3650000095367432 12.413000106811523,-4.038000106811523 12.413000106811523,-4.038000106811523 C12.413000106811523,-4.038000106811523 -1.5829999446868896,-1.562999963760376 -1.5829999446868896,-1.562999963760376 C-1.5829999446868896,-1.562999963760376 -12.413000106811523,3.1649999618530273 -12.413000106811523,3.1649999618530273 C-12.413000106811523,3.1649999618530273 -11.90999984741211,4.038000106811523 -11.90999984741211,4.038000106811523z"></path></g><g opacity="1" transform="matrix(1,0,0,1,22.658000946044922,28.836999893188477)"><path fill="rgb(86,252,126)" fill-opacity="1" d=" M-0.36500000953674316,-9.925000190734863 C-0.36500000953674316,-9.925000190734863 1.5609999895095825,9.925000190734863 1.5609999895095825,9.925000190734863 C1.5609999895095825,9.925000190734863 -1.5609999895095825,-9.788999557495117 -1.5609999895095825,-9.788999557495117 C-1.5609999895095825,-9.788999557495117 -0.36500000953674316,-9.925000190734863 -0.36500000953674316,-9.925000190734863z"></path></g><g opacity="1" transform="matrix(1,0,0,1,30.391000747680664,20.697999954223633)"><path fill="rgb(86,252,126)" fill-opacity="1" d=" M-8.097999572753906,-1.7860000133514404 C-8.097999572753906,-1.7860000133514404 8.097999572753906,1.2380000352859497 8.097999572753906,1.2380000352859497 C8.097999572753906,1.2380000352859497 7.635000228881836,1.7860000133514404 7.635000228881836,1.7860000133514404 C7.635000228881836,1.7860000133514404 -8.097999572753906,-1.7860000133514404 -8.097999572753906,-1.7860000133514404z"></path></g><g opacity="1" transform="matrix(1,0,0,1,58.165000915527344,14.6899995803833)"><path fill="rgb(86,252,126)" fill-opacity="1" d=" M5.164999961853027,-4.586999893188477 C5.164999961853027,-4.586999893188477 -5.164999961853027,4.586999893188477 -5.164999961853027,4.586999893188477 C-5.164999961853027,4.586999893188477 -3.7899999618530273,4.315999984741211 -3.7899999618530273,4.315999984741211 C-3.7899999618530273,4.315999984741211 5.164999961853027,-4.586999893188477 5.164999961853027,-4.586999893188477z"></path></g></g><g style="display: none;"><g><path></path></g></g><g style="display: none;"><g><path></path></g></g><g style="display: none;"><g><path></path></g></g><g style="display: none;"><g><path></path></g></g><g style="display: none;"><g><path></path></g></g><g style="display: none;"><g><path></path></g></g></g></svg></div></div><!----> <div class="cover gem svelte-12ha7jh" bis_skin_checked="1"></div></button>`;

    const bombHTML = `<button class="tile mine svelte-12ha7jh" data-testid="mines-tile-18" data-revealed="false" style="--tile-shadow-inset: -0.15em; --shadow: 0.3em; --tile-shadow-lg: 0.44999999999999996em; --small-shadow: -0.15em; --duration: 300ms; --fetch-duration: 600ms;"><!----><!----><!----> <div class="mine svelte-sx409p" style="background-image: url(&quot;/_app/immutable/assets/mine.BrdEJX0T.svg&quot;); --duration: 300ms;" bis_skin_checked="1"></div><!----> <div class="cover mine svelte-12ha7jh" bis_skin_checked="1"></div></button>`;


    const normalHTML = `<button class="tile idle svelte-12ha7jh" data-testid="mines-tile-0" data-revealed="false" style="--tile-shadow-inset: -0.15em; --shadow: 0.3em; --tile-shadow-lg: 0.44999999999999996em; --small-shadow: -0.15em; --duration: 300ms; --fetch-duration: 600ms;"><!----><!----> <div class="cover idle svelte-12ha7jh" bis_skin_checked="1"></div></button>`;


    const base64Audio = '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';

// Result div HTML to be shown in the center of the grid
    const resultDivHTML = `<div class="game-result-wrap win svelte-1g8uakg" style="--duration: 300ms; --modal-width: 150px; --modal-height: 132px; --win-modal-heading-color: var(--color-grey-200); z-index: 65 !important; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);" bis_skin_checked="1"><div class="game-result-content svelte-1g8uakg" bis_skin_checked="1"><span class="number-multiplier svelte-1g8uakg" style="--truncate-max-width: 118px;"><span tag="span" type="body" strong="true" size="md" class="ds-body-md-strong" data-ds-text="true">24.75×</span></span><div class="divider svelte-1g8uakg" bis_skin_checked="1"></div><span class="payout-result win svelte-1g8uakg"><div role="presentation" class="inline-flex items-center gap-1 max-w-full text-center svelte-1jb7pu8" bis_skin_checked="1"><span class="content svelte-1jb7pu8" style="max-width: 98px;"><span tag="span" type="body" class="text-neutral-subtle ds-body-md-strong text-center" size="md" strong="true" variant="neutral-subtle" data-ds-text="true" style="max-width: 98px;">$0.00</span></span><span tag="span" type="body" title="ltc" size="md" class="ds-body-md inline-flex" data-ds-text="true"><svg data-ds-icon="LTC" width="20" height="20" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" fill="none" class="inline-block shrink-0"><path fill="#3C649B" d="M23 12c0 6.075-4.925 11-11 11S1 18.075 1 12 5.925 1 12 1s11 4.925 11 11"></path><path fill="#fff" d="m8.167 14.21-.98.382.475-1.905.99-.398L10.085 6.5h3.524l-1.031 4.26.969-.393-.468 1.89-.983.393-.58 2.406h5.297L16.21 17.5H7.359z"></path></svg></span></div></span></div></div>`;



    const WRAPPER_SELECTOR = '.input-wrap';
    const INPUT_SELECTOR = 'input[data-testid="input-game-amount"]';
    const FAKE_INPUT_SELECTOR = '#fake-bet-input';
    const SELECT_SELECTOR = 'select[data-testid="mines-count"]';
    const BALANCE_SPAN_SELECTOR = 'span.text-neutral-default.ds-body-md-strong';
    const BET_BUTTON_SELECTOR = 'button[data-testid="bet-button"]';
    const CONVERSION_SPAN_SELECTOR = 'div.crypto.svelte-1pm8uy8[data-testid="conversion-amount"]';
    const INNER_CONVERSION_SPAN_SELECTOR = 'div.crypto.svelte-1pm8uy8[data-testid="conversion-amount"] span[data-ds-text="true"]';
    const BUTTON_WRAP_SELECTOR = 'div.input-button-wrap.svelte-dka04o';
    const RETRIES = 80;
    const INTERVAL = 250;
    const LTC_RATE = 106.28;
    const STORAGE_KEY = 'stake_mines_balance';

    let currentBalance = parseFloat(localStorage.getItem(STORAGE_KEY)) || 0;
    let isBalanceUIVisible = true;

    // Format balance with commas
    function formatBalance(amount) {
        return `$${amount.toLocaleString('en-US', { minimumFractionDigits: 2, maximumFractionDigits: 2 })}`;
    }

    // Format LTC conversion
    function formatLTC(usdValue) {
        const ltcValue = usdValue / LTC_RATE;
        return `${ltcValue.toFixed(8)} LTC`;
    }

    // Save balance to localStorage
    function saveBalance() {
        localStorage.setItem(STORAGE_KEY, currentBalance.toString());
        console.log(`Balance saved: ${currentBalance}`);
    }

    // Add beautiful CSS styles
    function addStyles() {
        const style = document.createElement('style');
        style.textContent = `
            @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');

            #balance-ui {
                font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
                background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
                border-radius: 16px;
                padding: 20px 24px;
                box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3), 0 0 0 1px rgba(255, 255, 255, 0.1) inset;
                backdrop-filter: blur(10px);
                min-width: 350px;
                transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
            }

            #balance-ui:hover {
                transform: translateY(-2px);
                box-shadow: 0 15px 50px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(255, 255, 255, 0.15) inset;
            }

            #balance-ui-header {
                display: flex;
                align-items: center;
                justify-content: space-between;
                margin-bottom: 16px;
                padding-bottom: 12px;
                border-bottom: 1px solid rgba(255, 255, 255, 0.15);
            }

            #balance-ui-title {
                color: #ffffff;
                font-size: 12px;
                font-weight: 600;
                text-transform: uppercase;
                letter-spacing: 1.2px;
                opacity: 0.9;
            }

            #balance-ui-icon {
                width: 24px;
                height: 24px;
                background: rgba(255, 255, 255, 0.2);
                border-radius: 8px;
                display: flex;
                align-items: center;
                justify-content: center;
                font-size: 14px;
            }

            #current-balance {
                color: #ffffff;
                font-size: 32px;
                font-weight: 700;
                margin: 12px 0;
                text-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
                letter-spacing: -0.5px;
            }

            #balance-controls {
                display: flex;
                gap: 10px;
                margin-top: 16px;
            }

            #balance-ui input {
                flex: 1;
                padding: 12px 16px;
                border: 2px solid rgba(255, 255, 255, 0.2);
                border-radius: 10px;
                background: rgba(255, 255, 255, 0.1);
                color: #ffffff;
                font-size: 15px;
                font-weight: 500;
                font-family: 'Inter', sans-serif;
                transition: all 0.2s ease;
                outline: none;
            }

            #balance-ui input::placeholder {
                color: rgba(255, 255, 255, 0.5);
            }

            #balance-ui input:focus {
                background: rgba(255, 255, 255, 0.15);
                border-color: rgba(255, 255, 255, 0.4);
                transform: translateY(-1px);
            }

            #set-balance-btn {
                padding: 12px 24px;
                background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
                color: white;
                border: none;
                border-radius: 10px;
                font-weight: 600;
                font-size: 14px;
                cursor: pointer;
                transition: all 0.2s ease;
                box-shadow: 0 4px 15px rgba(245, 87, 108, 0.3);
                white-space: nowrap;
            }

            #set-balance-btn:hover {
                transform: translateY(-2px);
                box-shadow: 0 6px 20px rgba(245, 87, 108, 0.4);
            }

            #set-balance-btn:active {
                transform: translateY(0);
            }

            #balance-ui-footer {
                margin-top: 12px;
                padding-top: 12px;
                border-top: 1px solid rgba(255, 255, 255, 0.15);
                display: flex;
                justify-content: space-between;
                align-items: center;
            }

            #balance-ui-hint {
                color: rgba(255, 255, 255, 0.7);
                font-size: 11px;
                font-weight: 500;
            }

            #balance-ui-drag-hint {
                color: rgba(255, 255, 255, 0.5);
                font-size: 10px;
                display: flex;
                align-items: center;
                gap: 4px;
            }

            @keyframes gemBounce {
                0% { transform: scale(1); }
                25% { transform: scale(1.10); }
                50% { transform: scale(1); }
                75% { transform: scale(1.10); }
                100% { transform: scale(1); }
            }

            .gem-bounce {
                animation: gemBounce 1s ease;
            }

            /* Number input specific styles */
            input[type="number"]::-webkit-inner-spin-button,
            input[type="number"]::-webkit-outer-spin-button {
                -webkit-appearance: none;
                margin: 0;
            }

            input[type="number"] {
                -moz-appearance: textfield;
            }
        `;
        document.head.appendChild(style);
    }

    // Create Beautiful Balance UI
    function createBalanceUI() {
        const balanceUI = document.createElement('div');
        balanceUI.id = 'balance-ui';
        balanceUI.style.position = 'absolute';
        balanceUI.style.top = '20px';
        balanceUI.style.left = '20px';
        balanceUI.style.cursor = 'move';
        balanceUI.style.zIndex = '1000000';
        balanceUI.style.userSelect = 'none';

        balanceUI.innerHTML = `
            <div id="balance-ui-header">
                <span id="balance-ui-title">�SET BALANCE</span>
                <div id="balance-ui-icon">�SUDO</div>
            </div>
            <div id="current-balance">${formatBalance(currentBalance)}</div>
            <div id="balance-controls">
                <input type="number" id="balance-input" placeholder="Enter Balance" step="0.01" min="0">
                <button id="set-balance-btn">SET</button>
            </div>
            <div id="balance-ui-footer">
                <span id="balance-ui-hint">Press F2 to toggle</span>
                <span id="balance-ui-drag-hint">⋮⋮ Drag to move</span>
            </div>
        `;

        document.body.appendChild(balanceUI);

        const balanceInput = document.getElementById('balance-input');
        const setBalanceButton = document.getElementById('set-balance-btn');

        // Only allow numbers and decimal in balance input
        balanceInput.addEventListener('keypress', (e) => {
            const char = String.fromCharCode(e.which);
            if (!/[0-9.]/.test(char)) {
                e.preventDefault();
                return;
            }
            if (char === '.' && balanceInput.value.includes('.')) {
                e.preventDefault();
            }
        });

        // Auto-format on blur
        balanceInput.addEventListener('blur', () => {
            if (balanceInput.value && !isNaN(parseFloat(balanceInput.value))) {
                balanceInput.value = parseFloat(balanceInput.value).toFixed(2);
            }
        });

        setBalanceButton.addEventListener('click', () => {
            const newBalance = parseFloat(balanceInput.value) || 0;
            if (newBalance >= 0) {
                currentBalance = newBalance;
                updateBalanceUI();
                saveBalance();
                balanceInput.value = '';
            } else {
                alert('Please enter a valid non-negative balance.');
            }
        });

        // Make draggable
        let isDragging = false;
        let currentX = 20;
        let currentY = 20;
        let initialX;
        let initialY;

        balanceUI.addEventListener('mousedown', (e) => {
            if (e.target.tagName === 'INPUT' || e.target.tagName === 'BUTTON') return;
            initialX = e.clientX - currentX;
            initialY = e.clientY - currentY;
            isDragging = true;
        });

        document.addEventListener('mousemove', (e) => {
            if (isDragging) {
                e.preventDefault();
                currentX = e.clientX - initialX;
                currentY = e.clientY - initialY;
                balanceUI.style.left = `${currentX}px`;
                balanceUI.style.top = `${currentY}px`;
            }
        });

        document.addEventListener('mouseup', () => {
            isDragging = false;
        });

        // Toggle with F2
        document.addEventListener('keydown', (e) => {
            if (e.key === 'F2') {
                isBalanceUIVisible = !isBalanceUIVisible;
                balanceUI.style.display = isBalanceUIVisible ? 'block' : 'none';
            }
        });
    }

    // Update balance UI
    function updateBalanceUI() {
        const balanceLabel = document.getElementById('current-balance');
        const stakeBalanceSpan = document.querySelector(BALANCE_SPAN_SELECTOR);
        if (balanceLabel) {
            balanceLabel.textContent = formatBalance(currentBalance);
        }
        if (stakeBalanceSpan) {
            stakeBalanceSpan.textContent = formatBalance(currentBalance);
        }

        // Update LTC button balance
        const ltcButton = document.querySelector('button[data-testid="coin-toggle-currency-ltc"]');
        if (ltcButton) {
            const balanceSpan = ltcButton.querySelector('span.content.svelte-1jb7pu8 span[data-ds-text="true"]');
            if (balanceSpan) {
                balanceSpan.textContent = formatBalance(currentBalance);
                console.log('LTC button balance updated:', balanceSpan.textContent);
            }
        }

        saveBalance();
    }

    // Update LTC conversion (real-time)
    function updateProfitConversion(payoutAmount) {
        // Find the profit conversion element in the Total Profit section
        const profitConversionSpan = document.querySelector('div.profit.svelte-gpd1jr div.crypto.svelte-1pm8uy8[data-testid="conversion-amount"] span[data-ds-text="true"]');

        if (profitConversionSpan) {
            // Convert payout amount to LTC format (assuming $100 = 1 LTC)
            const ltcValue = payoutAmount / 100;
            profitConversionSpan.textContent = ltcValue.toFixed(8) + ' LTC';
            console.log(`Profit conversion updated: $${payoutAmount.toFixed(2)} = ${ltcValue.toFixed(8)} LTC`);
        } else {
            console.log('Profit conversion span not found');
        }
    }

    function updateProfitLabel(multiplier) {
        // Find the Total Profit label and update the multiplier
        const profitLabel = document.querySelector('div.profit.svelte-gpd1jr span[slot="label"]');
        if (profitLabel) {
            profitLabel.textContent = `Total Profit (${multiplier}×)`;
            console.log(`Profit label updated to: Total Profit (${multiplier}×)`);
        } else {
            console.log('Profit label not found');
        }
    }

    function updateProfitInput(amount) {
        // Find the profit input field and update it with the win amount
        const profitInput = document.querySelector('div.profit.svelte-gpd1jr input[data-testid="profit-input"]');
        if (profitInput) {
            profitInput.value = amount.toFixed(2);
            console.log(`Profit input updated to: $${amount.toFixed(2)}`);
        } else {
            console.log('Profit input not found');
        }
    }

    function updateCurrencyConversion() {
        const fakeInput = document.querySelector(FAKE_INPUT_SELECTOR);
        let conversionSpan = document.querySelector(INNER_CONVERSION_SPAN_SELECTOR);

        if (!conversionSpan) {
            const wrapper = document.querySelector(WRAPPER_SELECTOR);
            if (wrapper) {
                const conversionDiv = document.createElement('div');
                conversionDiv.className = 'crypto svelte-1pm8uy8';
                conversionDiv.setAttribute('data-testid', 'conversion-amount');
                conversionDiv.setAttribute('bis_skin_checked', '1');

                conversionSpan = document.createElement('span');
                conversionSpan.setAttribute('type', 'body');
                conversionSpan.setAttribute('tag', 'span');
                conversionSpan.setAttribute('size', 'sm');
                conversionSpan.className = 'ds-body-sm';
                conversionSpan.setAttribute('data-ds-text', 'true');
                conversionSpan.textContent = formatLTC(0);

                conversionDiv.appendChild(document.createComment(''));
                conversionDiv.appendChild(conversionSpan);
                conversionDiv.appendChild(document.createComment(''));

                wrapper.insertAdjacentElement('afterend', conversionDiv);
            }
        }

        if (fakeInput && conversionSpan) {
            const usdValue = parseFloat(fakeInput.value) || 0;
            conversionSpan.textContent = formatLTC(usdValue);
        }
    }

    // Real-time conversion update (instant, no debounce)
    function updateConversionInstant() {
        const fakeInput = document.querySelector(FAKE_INPUT_SELECTOR);
        const conversionSpan = document.querySelector(INNER_CONVERSION_SPAN_SELECTOR);

        if (fakeInput && conversionSpan) {
            // Get current value, even if incomplete (like "5" or "10.")
            let inputValue = fakeInput.value;

            // Parse the value - handle empty, partial input
            let usdValue = 0;
            if (inputValue && inputValue !== '' && inputValue !== '.') {
                usdValue = parseFloat(inputValue);
                if (isNaN(usdValue)) usdValue = 0;
            }

            // Update conversion immediately
            conversionSpan.textContent = formatLTC(usdValue);
            console.log(`Conversion updated: ${inputValue} = ${formatLTC(usdValue)}`);
        } else {
            if (!fakeInput) console.log('Fake input not found');
            if (!conversionSpan) console.log('Conversion span not found');
        }
    }

    // Debounce function
    function debounce(func, wait) {
        let timeout;
        return function executedFunction(...args) {
            const later = () => {
                clearTimeout(timeout);
                func(...args);
            };
            clearTimeout(timeout);
            timeout = setTimeout(later, wait);
        };
    }

    function waitForTarget(retries = RETRIES) {
        const realInput = document.querySelector(INPUT_SELECTOR);
        const wrapper = realInput ? realInput.closest(WRAPPER_SELECTOR) : document.querySelector(WRAPPER_SELECTOR);
        if (!wrapper || !realInput) {
            if (retries > 0) {
                setTimeout(() => waitForTarget(retries - 1), INTERVAL);
            }
            return;
        }
        applyExactOverlayClone(wrapper, realInput);
        createBalanceUI();
        updateBalanceUI();
        setTimeout(updateCurrencyConversion, 500);
    }

    function stripAttributes(node) {
        if (!node || node.nodeType !== 1) return;
        const blacklist = ['name', 'form', 'id', 'data-testid', 'data-bet-amount-active-currency', 'data-reactid', 'data-vue-ref', 'aria-controls', 'aria-describedby', 'aria-labelledby'];
        for (let att of Array.from(node.attributes || [])) {
            const n = att.name.toLowerCase();
            try {
                if (blacklist.includes(n) || (n.startsWith('data-') && /bind|model|on|handler|action|hook|event/i.test(n))) {
                    node.removeAttribute(att.name);
                }
            } catch (e) {}
        }
        if (/^(INPUT|SELECT|TEXTAREA)$/.test(node.tagName)) {
            try { node.removeAttribute('name'); node.removeAttribute('form'); } catch (e) {}
        }
    }

    function deepStrip(node) {
        stripAttributes(node);
        for (let c of Array.from(node.children || [])) deepStrip(c);
    }

    function isolateEvents(root) {
        const events = ['keydown', 'keyup', 'keypress', 'input', 'change', 'paste', 'cut', 'focus', 'blur', 'mousedown', 'mouseup', 'click', 'contextmenu', 'touchstart', 'touchend', 'touchmove'];
        for (const e of events) {
            root.addEventListener(e, ev => {
                try { ev.stopImmediatePropagation && ev.stopImmediatePropagation(); ev.stopPropagation && ev.stopPropagation(); } catch (err) {}
            }, true);
        }
        root.addEventListener('keydown', ev => {
            if (ev.ctrlKey || ev.metaKey || ev.altKey) {
                try { ev.stopImmediatePropagation(); } catch (e) {}
            }
        }, true);
    }

    function prepareFakeInput(fakeInput, realInput) {
        fakeInput.type = 'text';
        fakeInput.setAttribute('inputmode', 'decimal');
        fakeInput.setAttribute('pattern', '[0-9]*([.,][0-9]+)?');
        fakeInput.autocomplete = 'off';
        fakeInput.autocorrect = 'off';
        fakeInput.autocapitalize = 'off';
        fakeInput.spellcheck = false;

        try { fakeInput.value = realInput.value || ''; } catch (e) {}
        try { fakeInput.placeholder = realInput.placeholder || fakeInput.getAttribute('placeholder') || ''; } catch (e) {}

        stripAttributes(fakeInput);

        // Don't stop all events - be more selective
        const stopEvent = (ev) => {
            try {
                ev.stopImmediatePropagation();
            } catch (err) {}
        };

        ['change', 'paste', 'cut', 'focus'].forEach(evt => {
            fakeInput.addEventListener(evt, stopEvent, { capture: true });
        });

        // Only allow numbers and decimal point
        fakeInput.addEventListener('keypress', (e) => {
            const char = String.fromCharCode(e.which);
            if (!/[0-9.]/.test(char)) {
                e.preventDefault();
                return;
            }
            if (char === '.' && fakeInput.value.includes('.')) {
                e.preventDefault();
            }
        });

        // Filter paste to only allow numbers
        fakeInput.addEventListener('paste', (e) => {
            e.preventDefault();
            const pastedText = (e.clipboardData || window.clipboardData).getData('text');
            const cleaned = pastedText.replace(/[^0-9.]/g, '');
            const parts = cleaned.split('.');
            const finalValue = parts.length > 1 ? parts[0] + '.' + parts.slice(1).join('') : cleaned;
            fakeInput.value = finalValue;
            // Force immediate update
            requestAnimationFrame(() => updateConversionInstant());
        });

        // CRITICAL: Real-time conversion on every input change
        // Using multiple approaches for maximum compatibility

        // 1. Direct input event (most important)
        fakeInput.addEventListener('input', (e) => {
            console.log('📝 Input event fired, value:', fakeInput.value);
            updateConversionInstant();
        }, false);

        // 2. Keyup for keyboard input
        fakeInput.addEventListener('keyup', (e) => {
            console.log('⌨️ Keyup event fired, value:', fakeInput.value);
            updateConversionInstant();
        }, false);

        // 3. Keydown with RAF for instant feedback
        fakeInput.addEventListener('keydown', (e) => {
            requestAnimationFrame(() => {
                console.log('⏬ Keydown RAF, value:', fakeInput.value);
                updateConversionInstant();
            });
        }, false);

        // 4. PropertyChange for older browsers
        fakeInput.addEventListener('propertychange', (e) => {
            if (e.propertyName === 'value') {
                updateConversionInstant();
            }
        }, false);

        // 5. MutationObserver for value changes
        const observer = new MutationObserver(() => {
            console.log('👁️ Mutation observed');
            updateConversionInstant();
        });
        observer.observe(fakeInput, {
            attributes: true,
            attributeFilter: ['value'],
            characterData: true,
            subtree: true
        });

        // 6. Polling as last resort (every 100ms)
        let lastValue = fakeInput.value;
        setInterval(() => {
            if (fakeInput.value !== lastValue) {
                console.log('🔄 Polling detected change:', lastValue, '→', fakeInput.value);
                lastValue = fakeInput.value;
                updateConversionInstant();
            }
        }, 100);

        // Auto-format to .00 on blur
        fakeInput.addEventListener('blur', () => {
            let val = parseFloat(fakeInput.value);
            if (!isNaN(val)) {
                fakeInput.value = val.toFixed(2);
                updateConversionInstant();
            }
        });

        // Format when clicking anywhere
        document.addEventListener('click', (e) => {
            if (!fakeInput.contains(e.target) && fakeInput.value) {
                let val = parseFloat(fakeInput.value);
                if (!isNaN(val)) {
                    fakeInput.value = val.toFixed(2);
                    updateConversionInstant();
                }
            }
        });

        console.log('✅ Fake input prepared with 6 conversion update methods');
    }

    // Setup Half and Double buttons - Aggressive enabling
    function setupBetButtons() {
        console.log('🚀 Starting aggressive button setup...');

        // Super aggressive button finder
        const findButtons = () => {
            // Strategy 1: Class-based
            const buttonWrap = document.querySelector('div.input-button-wrap.svelte-dka04o') ||
                               document.querySelector('div.input-button-wrap') ||
                               document.querySelector('.input-button-wrap');

            if (buttonWrap) {
                const buttons = buttonWrap.querySelectorAll('button');
                if (buttons.length >= 2) {
                    console.log('✅ Found via class selector');
                    return { half: buttons[0], double: buttons[1] };
                }
            }

            // Strategy 2: Text content
            const allButtons = Array.from(document.querySelectorAll('button'));
            const half = allButtons.find(b => b.textContent.trim() === '½' || b.textContent.trim() === '1/2');
            const double = allButtons.find(b => b.textContent.trim() === '2×' || b.textContent.trim() === '2x');

            if (half && double) {
                console.log('✅ Found via text content');
                return { half, double };
            }

            return null;
        };

        // Super aggressive enabler
        const forceEnableButton = (btn) => {
            // Remove disabled in every way possible
            btn.disabled = false;
            btn.removeAttribute('disabled');
            btn.setAttribute('disabled', 'false');

            // Override styles
            btn.style.setProperty('opacity', '1', 'important');
            btn.style.setProperty('pointer-events', 'auto', 'important');
            btn.style.setProperty('cursor', 'pointer', 'important');
            btn.style.setProperty('filter', 'none', 'important');

            // Remove disabled classes
            btn.classList.remove('disabled', 'Mui-disabled', 'is-disabled');

            // Override inline styles that might disable it
            if (btn.hasAttribute('style')) {
                const style = btn.getAttribute('style');
                const newStyle = style
                    .replace(/pointer-events\s*:\s*none/gi, 'pointer-events: auto')
                    .replace(/opacity\s*:\s*0\.\d+/gi, 'opacity: 1')
                    .replace(/cursor\s*:\s*not-allowed/gi, 'cursor: pointer');
                btn.setAttribute('style', newStyle);
            }
        };

        let attempts = 0;
        const maxAttempts = 100;

        const trySetup = setInterval(() => {
            attempts++;

            const buttons = findButtons();

            if (buttons) {
                clearInterval(trySetup);

                const { half, double } = buttons;

                console.log('🎯 Buttons found!');
                console.log('Half:', half.textContent, 'Double:', double.textContent);

                // Force enable immediately
                forceEnableButton(half);
                forceEnableButton(double);

                console.log('✅ Buttons force-enabled!');

                // Handler for half
                const doHalf = (e) => {
                    console.log('➗ HALF CLICKED!');
                    e.preventDefault();
                    e.stopPropagation();
                    e.stopImmediatePropagation();

                    const input = document.querySelector(FAKE_INPUT_SELECTOR);
                    if (input) {
                        const current = parseFloat(input.value) || 0;
                        const newVal = (current / 2).toFixed(2);
                        input.value = newVal;

                        // Fire all update mechanisms
                        updateConversionInstant();
                        input.dispatchEvent(new Event('input', { bubbles: true }));
                        input.dispatchEvent(new Event('change', { bubbles: true }));

                        console.log(`✅ ${current} → ${newVal}`);
                    }
                    return false;
                };

                // Handler for double
                const doDouble = (e) => {
                    console.log('✖️ DOUBLE CLICKED!');
                    e.preventDefault();
                    e.stopPropagation();
                    e.stopImmediatePropagation();

                    const input = document.querySelector(FAKE_INPUT_SELECTOR);
                    if (input) {
                        const current = parseFloat(input.value) || 0;
                        const newVal = (current * 2).toFixed(2);
                        input.value = newVal;

                        // Fire all update mechanisms
                        updateConversionInstant();
                        input.dispatchEvent(new Event('input', { bubbles: true }));
                        input.dispatchEvent(new Event('change', { bubbles: true }));

                        console.log(`✅ ${current} → ${newVal}`);
                    }
                    return false;
                };

                // Attach to ALL event types
                const events = ['click', 'mousedown', 'mouseup', 'pointerdown', 'pointerup', 'touchstart', 'touchend'];

                events.forEach(evt => {
                    half.addEventListener(evt, doHalf, true);
                    half.addEventListener(evt, doHalf, false);
                    double.addEventListener(evt, doDouble, true);
                    double.addEventListener(evt, doDouble, false);
                });

                // Visual feedback
                [half, double].forEach(btn => {
                    btn.addEventListener('mousedown', () => {
                        btn.style.transform = 'scale(0.95)';
                        setTimeout(() => btn.style.transform = 'scale(1)', 100);
                    });
                });

                console.log('✅ Event handlers attached to both phases!');

                // Keep re-enabling aggressively
                setInterval(() => {
                    forceEnableButton(half);
                    forceEnableButton(double);
                }, 200);

                console.log('✅✅✅ BUTTONS FULLY CONFIGURED AND AUTO-ENABLING! ✅✅✅');

            } else if (attempts >= maxAttempts) {
                clearInterval(trySetup);
                console.warn('⚠️ Could not find buttons after', maxAttempts, 'attempts');
            } else if (attempts % 10 === 0) {
                console.log(`🔍 Still searching... attempt ${attempts}/${maxAttempts}`);
            }
        }, 150);
    }

    function applyExactOverlayClone(wrapper, realInput) {
        if (wrapper.dataset.tmExactOverlayApplied) return;
        wrapper.dataset.tmExactOverlayApplied = '1';

        const computed = window.getComputedStyle(wrapper);
        if (computed.position === 'static' || !computed.position) {
            wrapper.style.position = 'relative';
        }

        const originalChildren = Array.from(wrapper.children);
        const clone = wrapper.cloneNode(true);
        deepStrip(clone);

        clone.style.position = 'absolute';
        clone.style.top = '0';
        clone.style.left = '0';
        clone.style.width = '100%';
        clone.style.height = '100%';
        clone.style.boxSizing = 'border-box';
        clone.style.zIndex = '999999';
        clone.style.pointerEvents = 'auto';

        wrapper.appendChild(clone);

        for (const ch of originalChildren) {
            if (ch === clone) continue;
            try {
                ch.style.visibility = 'hidden';
                ch.style.pointerEvents = 'none';
            } catch (e) {}
        }

        const fakeInput = clone.querySelector(INPUT_SELECTOR) || clone.querySelector('input');
        if (fakeInput) {
            prepareFakeInput(fakeInput, realInput);
            fakeInput.id = 'fake-bet-input';

            let conversionSpan = document.querySelector(INNER_CONVERSION_SPAN_SELECTOR);
            if (!conversionSpan) {
                const conversionDiv = document.createElement('div');
                conversionDiv.className = 'crypto svelte-1pm8uy8';
                conversionDiv.setAttribute('data-testid', 'conversion-amount');
                conversionDiv.setAttribute('bis_skin_checked', '1');

                conversionSpan = document.createElement('span');
                conversionSpan.setAttribute('type', 'body');
                conversionSpan.setAttribute('tag', 'span');
                conversionSpan.setAttribute('size', 'sm');
                conversionSpan.className = 'ds-body-sm';
                conversionSpan.setAttribute('data-ds-text', 'true');
                conversionSpan.textContent = formatLTC(0);

                conversionDiv.appendChild(document.createComment(''));
                conversionDiv.appendChild(conversionSpan);
                conversionDiv.appendChild(document.createComment(''));

                wrapper.insertAdjacentElement('afterend', conversionDiv);
            }
            updateCurrencyConversion();
        }

        const buttons = clone.querySelectorAll('button, [role="button"]');
        buttons.forEach(btn => {
            deepStrip(btn);
            btn.addEventListener('click', ev => {
                ev.preventDefault(); ev.stopPropagation && ev.stopPropagation(); ev.stopImmediatePropagation && ev.stopImmediatePropagation();
                btn.classList.add('tm-press');
                setTimeout(() => btn.classList.remove('tm-press'), 140);
            }, true);
        });

        if (!document.querySelector('#tm-exact-press-style')) {
            const s = document.createElement('style');
            s.id = 'tm-exact-press-style';
            s.textContent = `.tm-press{ transform: scale(0.98) !important; transition: transform 120ms ease !important; }`;
            document.head.appendChild(s);
        }

        isolateEvents(clone);

        try {
            const mo = new MutationObserver(muts => {
                for (const m of muts) {
                    if (m.attributeName === 'value' || m.attributeName === 'placeholder') {
                        try { if (fakeInput) fakeInput.value = realInput.value || fakeInput.value; } catch (e) {}
                    }
                }
            });
            mo.observe(realInput, { attributes: true, attributeFilter: ['value', 'placeholder'] });
        } catch (e) {}

        const bodyObserver = new MutationObserver(() => {
            if (!document.body.contains(wrapper)) {
                bodyObserver.disconnect();
                setTimeout(() => waitForTarget(), 300);
            }
        });
        bodyObserver.observe(document.body, { childList: true, subtree: true });

        const minesSelect = document.querySelector(SELECT_SELECTOR);
        if (minesSelect && fakeInput) {
            const syncDisabled = () => {
                if (minesSelect.disabled) {
                    fakeInput.disabled = true;
                    fakeInput.style.opacity = '0.6';
                    fakeInput.style.pointerEvents = 'none';
                } else {
                    fakeInput.disabled = false;
                    fakeInput.style.opacity = '1';
                    fakeInput.style.pointerEvents = 'auto';
                }
                updateCurrencyConversion();
            };

            syncDisabled();
            const selectObserver = new MutationObserver(syncDisabled);
            selectObserver.observe(minesSelect, { attributes: true, attributeFilter: ['disabled'] });
        }
    }

    // Initialize
    addStyles();
    waitForTarget();
    setupBetButtons(); // Setup half/double buttons

    let isFirstClick = true;
    const blockedRegex = /mine\.DwyaPDKk\.mp3|\/assets\/mine/;
    const maxRetries = 4;
    const retryDelay = 300;

    function isBlocked(target) {
        try {
            let url = (typeof target === 'string') ? target : (target && target.url) ? target.url : '';
            return blockedRegex.test(url);
        } catch (e) {
            return false;
        }
    }

    async function retryBlock(callback, name) {
        for (let i = 1; i <= maxRetries; i++) {
            try {
                callback();
            } catch (e) {}
            await new Promise(r => setTimeout(r, retryDelay));
        }
    }

    const originalFetch = window.fetch;
    window.fetch = async function(input, init) {
        if (isBlocked(input)) {
            return new Response(new ArrayBuffer(0), {
                status: 200,
                statusText: 'OK',
                headers: { 'Content-Type': 'audio/mpeg' }
            });
        }
        return originalFetch.apply(this, arguments);
    };

    const originalOpen = XMLHttpRequest.prototype.open;
    const originalSend = XMLHttpRequest.prototype.send;

    XMLHttpRequest.prototype.open = function(method, url) {
        this._ab_url_to_check = url ? String(url) : '';
        return originalOpen.apply(this, arguments);
    };

    XMLHttpRequest.prototype.send = function(body) {
        if (this._ab_url_to_check && blockedRegex.test(this._ab_url_to_check)) {
            try { this.abort(); } catch (e) {}
            return;
        }
        return originalSend.apply(this, arguments);
    };

    function scrubAudioElement(a) {
        try {
            if (!a) return false;
            const src = a.src || a.getAttribute && a.getAttribute('src') || '';
            if (src && blockedRegex.test(src)) {
                a.pause();
                a.removeAttribute('src');
                a.src = '';
                a.muted = true;
                return true;
            }
        } catch (e) {}
        return false;
    }

    document.querySelectorAll('audio').forEach(a => retryBlock(() => scrubAudioElement(a), a.src));

    const mo = new MutationObserver(mutations => {
        for (const m of mutations) {
            if (m.addedNodes && m.addedNodes.length) {
                m.addedNodes.forEach(node => {
                    if (!node) return;
                    if (node.tagName && node.tagName.toLowerCase() === 'audio') {
                        retryBlock(() => scrubAudioElement(node), node.src);
                    } else if (node.querySelectorAll) {
                        node.querySelectorAll('audio').forEach(a => retryBlock(() => scrubAudioElement(a), a.src));
                    }
                });
            }
        }
    });

    mo.observe(document.documentElement || document.body, {
        childList: true,
        subtree: true
    });

    const audio = new Audio('data:audio/mpeg;base64,' + base64Audio);

    // Tile click handler
    document.addEventListener('click', (e) => {
        const clickedTile = e.target.closest('button.tile');
        if (!clickedTile) return;

        const allTiles = document.querySelectorAll('button.tile');

        if (isFirstClick) {
            setTimeout(() => {
                audio.play().catch(error => console.error('Audio playback failed:', error));
            }, 700);
            isFirstClick = false;
        }

        clickedTile.classList.add('gem-bounce');

        const fakeInput = document.querySelector(FAKE_INPUT_SELECTOR);
        if (!fakeInput) return;

        const inputValue = parseFloat(fakeInput.value) || 0;
        const payout = inputValue * 24.75;
        const formattedPayout = formatBalance(payout);

        setTimeout(() => {
            clickedTile.outerHTML = gemHTML;
            allTiles.forEach(tile => {
                if (tile !== clickedTile) tile.outerHTML = bombHTML;
            });

            const gridContainer = document.querySelector('div.wrap.svelte-114gwsk[data-testid="game-mines"]');
            if (gridContainer) {
                const resultDiv = document.createElement('div');
                resultDiv.innerHTML = resultDivHTML;
                const newResultDiv = resultDiv.firstChild;
                gridContainer.appendChild(newResultDiv);

                const payoutSpan = newResultDiv.querySelector('span.text-neutral-subtle.ds-body-md-strong');
                if (payoutSpan) {
                    payoutSpan.textContent = formattedPayout;
                }

                // Update Total Profit conversion with the exact payout amount
                updateProfitConversion(payout);
                updateProfitLabel('24.75');
                updateProfitInput(payout);

                currentBalance += payout;
                updateBalanceUI();
            }

            setTimeout(() => {
                const randomBtn = document.querySelector('button[data-testid="random-tile"]');
                if (randomBtn) randomBtn.click();
            }, 300);
        }, 500);
    });

    // Bet button handler
    document.addEventListener('click', (e) => {
        const betButton = e.target.closest(BET_BUTTON_SELECTOR);
        if (!betButton) return;

        const fakeInput = document.querySelector(FAKE_INPUT_SELECTOR);
        if (!fakeInput) return;

        const betAmount = parseFloat(fakeInput.value) || 0;

        if (betAmount <= 0) {
            alert('Please enter a valid bet amount.');
            return;
        }

        if (betAmount > currentBalance) {
            alert('Insufficient balance for this bet.');
            return;
        }

        // Deduct bet amount
        currentBalance -= betAmount;
        updateBalanceUI();
        updateCurrencyConversion();

        // Reset grid
        const allTiles = document.querySelectorAll('button.tile');
        const resultDiv = document.querySelector('div.game-result-wrap');

        if (allTiles.length > 0) {
            allTiles.forEach(tile => {
                try {
                    tile.outerHTML = normalHTML;
                } catch (e) {}
            });
        }

        if (resultDiv) {
            try {
                resultDiv.remove();
            } catch (e) {}
        }

        // Reset profit label back to 1.00×
        updateProfitLabel('1.00');

        // Reset profit conversion back to 0.00000000 LTC
        updateProfitConversion(0);

        // Reset profit input back to 0.00
        updateProfitInput(0);

        isFirstClick = true;
    });
})();