Service-Xi commited on
Commit
8ac05cd
·
verified ·
1 Parent(s): d87119d

Upload 6 files

Browse files
Files changed (5) hide show
  1. dashboard.html +449 -0
  2. index.html +459 -19
  3. qr.png +0 -0
  4. script.js +829 -0
  5. styles.css +1741 -0
dashboard.html ADDED
@@ -0,0 +1,449 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Dashboard - Byweo</title>
7
+ <link rel="stylesheet" href="styles.css">
8
+ </head>
9
+ <body>
10
+ <!-- Complete redesign to match Byweo dashboard with sidebar and professional layout -->
11
+ <div class="dashboard-layout">
12
+ <!-- Header -->
13
+ <header class="dashboard-header">
14
+ <div class="header-content">
15
+ <div class="logo">
16
+ <div class="logo-icon">
17
+ <svg width="32" height="32" viewBox="0 0 32 32" fill="none">
18
+ <rect width="32" height="32" rx="8" fill="url(#gradient1)"/>
19
+ <path d="M8 12L16 8L24 12L16 16L8 12Z" fill="white" opacity="0.9"/>
20
+ <path d="M8 16L16 12L24 16L16 20L8 16Z" fill="white" opacity="0.7"/>
21
+ <path d="M8 20L16 16L24 20L16 24L8 20Z" fill="white" opacity="0.5"/>
22
+ <defs>
23
+ <linearGradient id="gradient1" x1="0%" y1="0%" x2="100%" y2="100%">
24
+ <stop offset="0%" style="stop-color:#00D4FF"/>
25
+ <stop offset="100%" style="stop-color:#0099CC"/>
26
+ </linearGradient>
27
+ </defs>
28
+ </svg>
29
+ </div>
30
+ <span class="logo-text">Byweo</span>
31
+ </div>
32
+ <nav class="nav-links">
33
+ <button class="btn-logout" onclick="logout()">Logout</button>
34
+ </nav>
35
+ </div>
36
+ </header>
37
+
38
+ <div class="dashboard-container">
39
+ <!-- Sidebar -->
40
+ <aside class="sidebar">
41
+ <div class="sidebar-item active">
42
+ <span class="sidebar-icon">📊</span>
43
+ <span class="sidebar-text">Overview</span>
44
+ </div>
45
+ <div class="sidebar-item">
46
+ <span class="sidebar-icon">🔄</span>
47
+ <span class="sidebar-text">Convert</span>
48
+ </div>
49
+ <div class="sidebar-item">
50
+ <span class="sidebar-icon">📈</span>
51
+ <span class="sidebar-text">Staking</span>
52
+ </div>
53
+ <div class="sidebar-item">
54
+ <span class="sidebar-icon">📋</span>
55
+ <span class="sidebar-text">Transactions</span>
56
+ </div>
57
+ <div class="sidebar-item">
58
+ <span class="sidebar-icon">💸</span>
59
+ <span class="sidebar-text">Transfer</span>
60
+ </div>
61
+ </aside>
62
+
63
+ <!-- Main Content -->
64
+ <main class="main-content">
65
+ <div class="content-header">
66
+ <h1>Overview</h1>
67
+ <div class="search-box">
68
+ <input type="text" placeholder="Search coin">
69
+ <span class="search-icon">🔍</span>
70
+ </div>
71
+ </div>
72
+
73
+ <div class="overview-grid">
74
+ <!-- Balance Section -->
75
+ <div class="balance-section">
76
+ <div class="balance-header">
77
+ <span>Total balance</span>
78
+ <div class="balance-actions">
79
+ <button class="btn-action" onclick="showDepositModal()">Deposit</button>
80
+ <button class="btn-action" onclick="showTransferModal()">Transfer</button>
81
+ </div>
82
+ </div>
83
+ <div class="balance-amount">
84
+ <span id="btcBalance">0</span>
85
+ <span class="balance-currency">BTC</span>
86
+ </div>
87
+ <div class="balance-usd">$<span id="usdBalance">0.00</span></div>
88
+
89
+ <!-- Account Balances -->
90
+ <div class="account-section">
91
+ <h3>Account Balances</h3>
92
+ <div class="spot-balance">
93
+ <span class="spot-icon">🟡</span>
94
+ <span>Spot</span>
95
+ <div class="spot-amount">
96
+ <span id="spotBalance">0 BTC</span>
97
+ <span class="spot-usd">$0.00</span>
98
+ </div>
99
+ </div>
100
+ </div>
101
+ </div>
102
+
103
+ <!-- Asset Balances Table -->
104
+ <div class="assets-section">
105
+ <h3>Asset balances</h3>
106
+ <div class="assets-table">
107
+ <div class="table-header">
108
+ <span>Asset</span>
109
+ <span>Spot balance</span>
110
+ <span>On orders</span>
111
+ <span>Available balance</span>
112
+ <span>Total balance</span>
113
+ </div>
114
+ <div class="table-row">
115
+ <div class="asset-info">
116
+ <div class="asset-icon btc-icon">₿</div>
117
+ <div class="asset-details">
118
+ <span class="asset-name">BTC</span>
119
+ <span class="asset-full">Bitcoin</span>
120
+ </div>
121
+ </div>
122
+ <span class="balance-cell">
123
+ <span id="btcSpotBalance">0.000000 BTC</span>
124
+ <span class="balance-usd-small">$0.00</span>
125
+ </span>
126
+ <span class="balance-cell">
127
+ <span>0.000000 BTC</span>
128
+ <span class="balance-usd-small">$0.00</span>
129
+ </span>
130
+ <span class="balance-cell">
131
+ <span id="btcAvailableBalance">0.000000 BTC</span>
132
+ <span class="balance-usd-small">$0.00</span>
133
+ </span>
134
+ <span class="balance-cell">
135
+ <span id="btcTotalBalance">0.000000 BTC</span>
136
+ <span class="balance-usd-small">$0.00</span>
137
+ </span>
138
+ </div>
139
+ <div class="table-row">
140
+ <div class="asset-info">
141
+ <div class="asset-icon eth-icon">Ξ</div>
142
+ <div class="asset-details">
143
+ <span class="asset-name">ETH</span>
144
+ <span class="asset-full">Ethereum</span>
145
+ </div>
146
+ </div>
147
+ <span class="balance-cell">
148
+ <span>0.000000 ETH</span>
149
+ <span class="balance-usd-small">$0.00</span>
150
+ </span>
151
+ <span class="balance-cell">
152
+ <span>0.000000 ETH</span>
153
+ <span class="balance-usd-small">$0.00</span>
154
+ </span>
155
+ <span class="balance-cell">
156
+ <span>0.000000 ETH</span>
157
+ <span class="balance-usd-small">$0.00</span>
158
+ </span>
159
+ <span class="balance-cell">
160
+ <span>0.000000 ETH</span>
161
+ <span class="balance-usd-small">$0.00</span>
162
+ </span>
163
+ </div>
164
+ </div>
165
+ </div>
166
+ </div>
167
+
168
+ <!-- Action Buttons -->
169
+ <div class="action-buttons">
170
+ <button class="btn-deposit" onclick="showDepositModal()">Deposit</button>
171
+ <button class="btn-withdraw" onclick="showWithdrawModal()">Withdraw</button>
172
+ </div>
173
+
174
+ <!-- Promo Code Section -->
175
+ <div class="promo-section">
176
+ <h2>PROMO CODE</h2>
177
+ <p>Use a promo code to increase your balance and rewards</p>
178
+ <div class="promo-form">
179
+ <label>Type promo code below</label>
180
+ <input type="text" id="promoCode" placeholder="YOUR PROMO CODE">
181
+ <button onclick="redeemPromoCode()">ACTIVATE A PROMO CODE</button>
182
+ </div>
183
+ </div>
184
+ </main>
185
+ </div>
186
+ </div>
187
+
188
+ <!-- Modals -->
189
+ <div id="depositModal" class="modal">
190
+ <div class="modal-content">
191
+ <div class="modal-header">
192
+ <h3>Address</h3>
193
+ <span class="close" onclick="closeDepositModal()">&times;</span>
194
+ </div>
195
+ <div class="deposit-content">
196
+ <div class="wallet-graphic">💳</div>
197
+ <p>Only send BTC to this address. Sending any other asset to this address may result in the loss of your deposit.</p>
198
+ <div class="deposit-warning">Minimum deposit amount: 0.0005 BTC</div>
199
+ <div class="deposit-address">
200
+ <span>bc1qz4gk36wp5lzkjtmm9w0p8mfly9t35vvs9ysr5d</span>
201
+ <button onclick="copyAddress()">📋</button>
202
+ </div>
203
+ <div class="qr-code">
204
+ <img src="qr.png" alt="Bitcoin Deposit QR Code" class="qr-image" width="150" height="150">
205
+ </div>
206
+ </div>
207
+ <p class="deposit-note">Please be sure that the address is correct to the token that you are depositing.</p>
208
+ </div>
209
+ </div>
210
+ </div>
211
+
212
+ <!-- Multi-Step Withdrawal Modal -->
213
+ <div id="withdrawModal" class="modal">
214
+ <div class="modal-content withdraw-modal">
215
+ <div class="modal-header">
216
+ <h3 id="withdrawModalTitle">Select Withdrawal Method</h3>
217
+ <span class="close" onclick="closeWithdrawModal()">&times;</span>
218
+ </div>
219
+
220
+ <!-- Step 1: Select Wallet Type -->
221
+ <div id="withdrawStep1" class="withdraw-step active">
222
+ <div class="withdraw-content">
223
+ <div class="wallet-graphic">💳</div>
224
+ <p>Choose your preferred withdrawal method</p>
225
+ <div class="payment-methods">
226
+ <div class="payment-method" onclick="selectWalletType('crypto')">
227
+ <span class="payment-icon">₿</span>
228
+ <span>Crypto Wallet</span>
229
+ <span class="method-arrow">→</span>
230
+ </div>
231
+ <div class="payment-method" onclick="selectWalletType('card')">
232
+ <span class="payment-icon">💳</span>
233
+ <span>Visa / Mastercard</span>
234
+ <span class="method-arrow">→</span>
235
+ </div>
236
+ <div class="payment-method" onclick="selectWalletType('paypal')">
237
+ <span class="payment-icon">🏦</span>
238
+ <span>PayPal</span>
239
+ <span class="method-arrow">→</span>
240
+ </div>
241
+ <div class="payment-method" onclick="selectWalletType('swift')">
242
+ <span class="payment-icon">🏦</span>
243
+ <span>Swift Transfer</span>
244
+ <span class="method-arrow">→</span>
245
+ </div>
246
+ </div>
247
+ </div>
248
+ </div>
249
+
250
+ <!-- Step 2: Select Coin -->
251
+ <div id="withdrawStep2" class="withdraw-step">
252
+ <div class="withdraw-content">
253
+ <div class="step-back" onclick="goToWithdrawStep(1)">← Back</div>
254
+ <div class="wallet-graphic">🪙</div>
255
+ <p>Select the cryptocurrency to withdraw</p>
256
+ <div class="coin-selection-grid">
257
+ <div class="coin-option" onclick="selectCoin('BTC')">
258
+ <div class="coin-icon btc-icon">₿</div>
259
+ <div class="coin-details">
260
+ <span class="coin-name">Bitcoin</span>
261
+ <span class="coin-symbol">BTC</span>
262
+ <span class="coin-balance" id="btcWithdrawBalance">0.000000 BTC</span>
263
+ </div>
264
+ <span class="method-arrow">→</span>
265
+ </div>
266
+ <div class="coin-option" onclick="selectCoin('ETH')">
267
+ <div class="coin-icon eth-icon">Ξ</div>
268
+ <div class="coin-details">
269
+ <span class="coin-name">Ethereum</span>
270
+ <span class="coin-symbol">ETH</span>
271
+ <span class="coin-balance">0.000000 ETH</span>
272
+ </div>
273
+ <span class="method-arrow">→</span>
274
+ </div>
275
+ </div>
276
+ </div>
277
+ </div>
278
+
279
+ <!-- Step 3: Enter Wallet Address -->
280
+ <div id="withdrawStep3" class="withdraw-step">
281
+ <div class="withdraw-content">
282
+ <div class="step-back" onclick="goToWithdrawStep(2)">← Back</div>
283
+ <div class="wallet-graphic">📝</div>
284
+ <h4 id="selectedCoinTitle">BTC WALLET ADDRESS</h4>
285
+ <p>Enter your wallet address to receive the funds</p>
286
+
287
+ <div class="address-input-group">
288
+ <input type="text" id="walletAddress" placeholder="Enter wallet address" required>
289
+ <button type="button" class="btn-scan">📷</button>
290
+ </div>
291
+
292
+ <div class="save-address-option">
293
+ <input type="checkbox" id="saveAddress">
294
+ <label for="saveAddress">Save address for next time</label>
295
+ </div>
296
+
297
+ <div class="network-selection">
298
+ <label>Select Network</label>
299
+ <select id="networkSelect">
300
+ <option value="">Select network...</option>
301
+ <option value="BITCOIN">Bitcoin Network</option>
302
+ <option value="BEP20">BEP20 (BSC)</option>
303
+ <option value="ERC20">ERC20 (Ethereum)</option>
304
+ </select>
305
+ </div>
306
+
307
+ <button class="btn-continue" onclick="goToWithdrawStep(4)">Continue</button>
308
+ </div>
309
+ </div>
310
+
311
+ <!-- Step 4: Enter Amount -->
312
+ <div id="withdrawStep4" class="withdraw-step">
313
+ <div class="withdraw-content scrollable-content">
314
+ <div class="step-back" onclick="goToWithdrawStep(3)">← Back</div>
315
+ <div class="wallet-graphic">💰</div>
316
+ <h4>WITHDRAWAL AMOUNT</h4>
317
+
318
+ <div class="balance-display">
319
+ <div class="balance-item">
320
+ <span class="balance-label">Available balance</span>
321
+ <div class="balance-value">
322
+ <span id="availableWithdrawBalance">1.300000 BTC</span>
323
+ <span class="balance-usd">$56,162.50</span>
324
+ </div>
325
+ </div>
326
+ </div>
327
+
328
+ <div class="amount-input-section">
329
+ <label>AMOUNT TO WITHDRAW</label>
330
+ <div class="amount-input-group">
331
+ <input type="number" id="withdrawAmount" placeholder="0.000000" step="0.000001" min="0">
332
+ <span class="currency-label" id="withdrawCurrency">BTC</span>
333
+ <button type="button" class="btn-max" onclick="setMaxAmount()">Max amount</button>
334
+ </div>
335
+ <div class="amount-usd" id="withdrawAmountUSD">$0.00</div>
336
+ </div>
337
+
338
+ <div class="withdraw-fee-section">
339
+ <h5>WITHDRAW FEE</h5>
340
+ <div class="fee-breakdown">
341
+ <div class="fee-item">
342
+ <span>Network Fee</span>
343
+ <span id="networkFee">0.000050 BTC</span>
344
+ </div>
345
+ <div class="fee-item">
346
+ <span>Service Fee</span>
347
+ <span id="serviceFee">0.000000 BTC</span>
348
+ </div>
349
+ <div class="fee-item total-fee">
350
+ <span>Total Fee</span>
351
+ <span id="totalFee">0.000050 BTC</span>
352
+ </div>
353
+ </div>
354
+ </div>
355
+
356
+ <div class="final-amount">
357
+ <div class="final-item">
358
+ <span>You will receive</span>
359
+ <span id="finalReceiveAmount">0.000000 BTC</span>
360
+ </div>
361
+ </div>
362
+
363
+ <button class="btn-continue" onclick="processWithdraw()">Withdraw</button>
364
+ </div>
365
+ </div>
366
+ </div>
367
+ </div>
368
+
369
+ <!-- Enhanced Activation Modal -->
370
+ <div id="activationModal" class="modal">
371
+ <div class="modal-content activation-modal">
372
+ <div class="activation-header">
373
+ <div class="error-icon">❌</div>
374
+ <h3>Activation</h3>
375
+ </div>
376
+ <div class="activation-content">
377
+ <p>To withdraw funds to a third-party address, you need to activate your account. To activate the account, make a minimum deposit of 0.0042000 BTC. The deposit can also be withdrawn after account activation.</p>
378
+
379
+ <div class="deposit-status">
380
+ <span>Your deposit: <span id="currentDeposit">0.000000</span> / 0.0042000 BTC.</span>
381
+ </div>
382
+
383
+ <div class="status-table">
384
+ <div class="status-row">
385
+ <span>Status</span>
386
+ <span>Transaction ID</span>
387
+ </div>
388
+ <div class="status-row">
389
+ <span class="error-status">Error</span>
390
+ <span>not created</span>
391
+ </div>
392
+ </div>
393
+
394
+ <p class="support-text">Contact online support for additional information.</p>
395
+
396
+ <button class="btn-wallet" onclick="closeActivationModal()">Wallet</button>
397
+ </div>
398
+ </div>
399
+
400
+ <!-- Verification Modal -->
401
+ <div id="verificationModal" class="modal">
402
+ <div class="modal-content verification-modal">
403
+ <div class="modal-header">
404
+ <h3>Verify Withdrawal</h3>
405
+ <span class="close" onclick="closeVerificationModal()">&times;</span>
406
+ </div>
407
+ <div class="verification-content">
408
+ <div class="verify-icon">🔐</div>
409
+ <h4>Confirm Your Withdrawal</h4>
410
+ <p>Please verify the withdrawal details below:</p>
411
+
412
+ <div class="verification-details">
413
+ <div class="verify-item">
414
+ <span class="verify-label">Amount:</span>
415
+ <span class="verify-value" id="verifyAmount">0.000000 BTC</span>
416
+ </div>
417
+ <div class="verify-item">
418
+ <span class="verify-label">To Address:</span>
419
+ <span class="verify-value verify-address" id="verifyAddress">-</span>
420
+ </div>
421
+ <div class="verify-item">
422
+ <span class="verify-label">Network:</span>
423
+ <span class="verify-value" id="verifyNetwork">-</span>
424
+ </div>
425
+ <div class="verify-item">
426
+ <span class="verify-label">Network Fee:</span>
427
+ <span class="verify-value">0.000050 BTC</span>
428
+ </div>
429
+ </div>
430
+
431
+ <div class="verification-warning">
432
+ <div class="warning-icon">⚠️</div>
433
+ <p>Please double-check the wallet address. Transactions cannot be reversed once confirmed.</p>
434
+ </div>
435
+
436
+ <div class="verification-actions">
437
+ <button class="btn-cancel" onclick="closeVerificationModal()">Cancel</button>
438
+ <button class="btn-confirm" onclick="confirmWithdrawal()">Confirm Withdrawal</button>
439
+ </div>
440
+ </div>
441
+ </div>
442
+ </div>
443
+
444
+ <!-- Notification -->
445
+ <div id="notification" class="notification" style="z-index: 9999;"></div>
446
+
447
+ <script src="script.js"></script>
448
+ </body>
449
+ </html>
index.html CHANGED
@@ -1,19 +1,459 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
19
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Byweo - Crypto Trading Platform</title>
7
+ <style>
8
+ * {
9
+ box-sizing: border-box;
10
+ margin: 0;
11
+ padding: 0;
12
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
13
+ }
14
+
15
+ body {
16
+ background: linear-gradient(135deg, #0f1419 0%, #1a1f2e 100%);
17
+ color: #e0e0e0;
18
+ min-height: 100vh;
19
+ overflow-x: hidden;
20
+ }
21
+
22
+ .mobile-container {
23
+ max-width: 100%;
24
+ margin: 0 auto;
25
+ background: linear-gradient(135deg, #0f1419 0%, #1a1f2e 100%);
26
+ min-height: 100vh;
27
+ position: relative;
28
+ }
29
+
30
+ .mobile-header {
31
+ padding: 20px;
32
+ display: flex;
33
+ justify-content: space-between;
34
+ align-items: center;
35
+ background: rgba(15, 20, 25, 0.95);
36
+ backdrop-filter: blur(10px);
37
+ position: sticky;
38
+ top: 0;
39
+ z-index: 100;
40
+ }
41
+
42
+ .logo {
43
+ display: flex;
44
+ align-items: center;
45
+ gap: 12px;
46
+ }
47
+
48
+ .logo-icon {
49
+ width: 40px;
50
+ height: 40px;
51
+ background: linear-gradient(135deg, #00d4ff 0%, #0099cc 100%);
52
+ border-radius: 12px;
53
+ display: flex;
54
+ align-items: center;
55
+ justify-content: center;
56
+ font-weight: bold;
57
+ font-size: 20px;
58
+ color: white;
59
+ box-shadow: 0 4px 12px rgba(0, 212, 255, 0.3);
60
+ }
61
+
62
+ .logo-text {
63
+ font-weight: 700;
64
+ font-size: 24px;
65
+ color: #ffffff;
66
+ letter-spacing: -0.5px;
67
+ }
68
+
69
+ .header-links {
70
+ display: flex;
71
+ gap: 20px;
72
+ font-size: 14px;
73
+ }
74
+
75
+ .header-link {
76
+ color: #8892b0;
77
+ text-decoration: none;
78
+ transition: color 0.3s ease;
79
+ }
80
+
81
+ .header-link:hover {
82
+ color: #00d4ff;
83
+ }
84
+
85
+ .mobile-main {
86
+ padding: 40px 20px;
87
+ display: flex;
88
+ flex-direction: column;
89
+ align-items: center;
90
+ justify-content: center;
91
+ min-height: calc(100vh - 80px);
92
+ }
93
+
94
+ .auth-page {
95
+ display: none;
96
+ width: 100%;
97
+ max-width: 400px;
98
+ margin: 0 auto;
99
+ }
100
+
101
+ .auth-page.active {
102
+ display: block;
103
+ }
104
+
105
+ .crypto-visual {
106
+ display: flex;
107
+ justify-content: center;
108
+ margin-bottom: 40px;
109
+ }
110
+
111
+ .crypto-logo {
112
+ width: 120px;
113
+ height: 120px;
114
+ background: linear-gradient(135deg, #00d4ff 0%, #0099cc 50%, #f7931a 100%);
115
+ border-radius: 30px;
116
+ display: flex;
117
+ align-items: center;
118
+ justify-content: center;
119
+ position: relative;
120
+ box-shadow: 0 20px 40px rgba(0, 212, 255, 0.3);
121
+ animation: float 3s ease-in-out infinite;
122
+ }
123
+
124
+ .crypto-logo::before {
125
+ content: '₿';
126
+ font-size: 48px;
127
+ font-weight: bold;
128
+ color: white;
129
+ text-shadow: 0 2px 4px rgba(0,0,0,0.3);
130
+ }
131
+
132
+ @keyframes float {
133
+ 0%, 100% { transform: translateY(0px) rotate(0deg); }
134
+ 50% { transform: translateY(-10px) rotate(5deg); }
135
+ }
136
+
137
+ .auth-form-container {
138
+ background: rgba(26, 31, 46, 0.8);
139
+ border: 1px solid #2d3748;
140
+ border-radius: 20px;
141
+ padding: 32px;
142
+ backdrop-filter: blur(20px);
143
+ box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3);
144
+ }
145
+
146
+ .auth-header {
147
+ text-align: center;
148
+ margin-bottom: 24px;
149
+ }
150
+
151
+ .auth-link {
152
+ color: #8892b0;
153
+ font-size: 14px;
154
+ margin-bottom: 16px;
155
+ display: block;
156
+ }
157
+
158
+ .link-text {
159
+ color: #00d4ff;
160
+ font-weight: 600;
161
+ text-decoration: none;
162
+ cursor: pointer;
163
+ transition: color 0.3s ease;
164
+ }
165
+
166
+ .link-text:hover {
167
+ color: #0099cc;
168
+ }
169
+
170
+ h2 {
171
+ text-align: center;
172
+ margin-bottom: 32px;
173
+ font-size: 28px;
174
+ font-weight: 700;
175
+ color: #ffffff;
176
+ letter-spacing: -0.5px;
177
+ }
178
+
179
+ .form-group {
180
+ margin-bottom: 24px;
181
+ }
182
+
183
+ label {
184
+ display: block;
185
+ margin-bottom: 8px;
186
+ font-weight: 600;
187
+ font-size: 14px;
188
+ color: #ffffff;
189
+ text-transform: uppercase;
190
+ letter-spacing: 0.5px;
191
+ }
192
+
193
+ input[type="email"],
194
+ input[type="password"] {
195
+ width: 100%;
196
+ padding: 16px 20px;
197
+ background: rgba(45, 55, 72, 0.6);
198
+ border: 2px solid #2d3748;
199
+ border-radius: 12px;
200
+ font-size: 16px;
201
+ color: #ffffff;
202
+ transition: all 0.3s ease;
203
+ }
204
+
205
+ input:focus {
206
+ border-color: #00d4ff;
207
+ outline: none;
208
+ background: rgba(45, 55, 72, 0.8);
209
+ box-shadow: 0 0 0 3px rgba(0, 212, 255, 0.1);
210
+ }
211
+
212
+ input::placeholder {
213
+ color: #4a5568;
214
+ }
215
+
216
+ .password-input {
217
+ position: relative;
218
+ }
219
+
220
+ .password-toggle {
221
+ position: absolute;
222
+ right: 16px;
223
+ top: 50%;
224
+ transform: translateY(-50%);
225
+ cursor: pointer;
226
+ user-select: none;
227
+ color: #00d4ff;
228
+ font-size: 18px;
229
+ transition: color 0.3s ease;
230
+ }
231
+
232
+ .password-toggle:hover {
233
+ color: #0099cc;
234
+ }
235
+
236
+ .checkbox-group {
237
+ display: flex;
238
+ align-items: flex-start;
239
+ margin: 24px 0;
240
+ font-size: 14px;
241
+ color: #8892b0;
242
+ line-height: 1.5;
243
+ }
244
+
245
+ .checkbox-group input {
246
+ margin-right: 12px;
247
+ margin-top: 2px;
248
+ accent-color: #00d4ff;
249
+ width: 18px;
250
+ height: 18px;
251
+ flex-shrink: 0;
252
+ }
253
+
254
+ .btn-continue {
255
+ width: 100%;
256
+ padding: 18px;
257
+ background: linear-gradient(135deg, #00d4ff 0%, #0099cc 100%);
258
+ color: #0f1419;
259
+ border: none;
260
+ border-radius: 12px;
261
+ font-weight: 700;
262
+ font-size: 16px;
263
+ cursor: pointer;
264
+ transition: all 0.3s ease;
265
+ text-transform: uppercase;
266
+ letter-spacing: 0.5px;
267
+ box-shadow: 0 4px 12px rgba(0, 212, 255, 0.3);
268
+ }
269
+
270
+ .btn-continue:hover {
271
+ transform: translateY(-2px);
272
+ box-shadow: 0 8px 20px rgba(0, 212, 255, 0.4);
273
+ }
274
+
275
+ .btn-continue:active {
276
+ transform: translateY(0);
277
+ }
278
+
279
+ .notification {
280
+ position: fixed;
281
+ top: 20px;
282
+ left: 50%;
283
+ transform: translateX(-50%);
284
+ padding: 16px 24px;
285
+ border-radius: 12px;
286
+ box-shadow: 0 10px 30px rgba(0,0,0,0.3);
287
+ display: none;
288
+ z-index: 1000;
289
+ font-weight: 600;
290
+ backdrop-filter: blur(10px);
291
+ }
292
+
293
+ .notification.success {
294
+ background: rgba(16, 185, 129, 0.9);
295
+ color: white;
296
+ border: 1px solid #10b981;
297
+ }
298
+
299
+ .notification.error {
300
+ background: rgba(239, 68, 68, 0.9);
301
+ color: white;
302
+ border: 1px solid #ef4444;
303
+ }
304
+
305
+ .notification.show {
306
+ display: block;
307
+ animation: slideIn 0.3s ease;
308
+ }
309
+
310
+ @keyframes slideIn {
311
+ from { transform: translateX(-50%) translateY(-20px); opacity: 0; }
312
+ to { transform: translateX(-50%) translateY(0); opacity: 1; }
313
+ }
314
+
315
+ @media (min-width: 768px) {
316
+ .mobile-container {
317
+ max-width: 500px;
318
+ margin: 20px auto;
319
+ border-radius: 20px;
320
+ box-shadow: 0 20px 60px rgba(0,0,0,0.4);
321
+ min-height: calc(100vh - 40px);
322
+ overflow: hidden;
323
+ }
324
+
325
+ .mobile-main {
326
+ padding: 60px 40px;
327
+ }
328
+ }
329
+ </style>
330
+ </head>
331
+ <body>
332
+ <div class="mobile-container">
333
+ <header class="mobile-header">
334
+ <div class="logo">
335
+ <div class="logo-icon">B</div>
336
+ <span class="logo-text">Byweo</span>
337
+ </div>
338
+ <div class="header-links">
339
+ <a href="#" class="header-link">Crypto</a>
340
+ <a href="#" class="header-link">Terms</a>
341
+ <a href="#" class="header-link">Privacy</a>
342
+ </div>
343
+ </header>
344
+
345
+ <main class="mobile-main">
346
+ <!-- Login Page (now active by default) -->
347
+ <div id="loginForm" class="auth-page active">
348
+ <div class="crypto-visual">
349
+ <div class="crypto-logo"></div>
350
+ </div>
351
+
352
+ <div class="auth-form-container">
353
+ <div class="auth-header">
354
+ <span class="auth-link">Don't have an account? <span class="link-text" onclick="switchToRegister()">Sign up</span></span>
355
+ </div>
356
+ <h2>Login</h2>
357
+ <form id="loginFormElement">
358
+ <div class="form-group">
359
+ <label>EMAIL</label>
360
+ <input type="email" id="loginEmail" placeholder="Email address" required>
361
+ </div>
362
+ <div class="form-group">
363
+ <label>PASSWORD</label>
364
+ <div class="password-input">
365
+ <input type="password" id="loginPassword" placeholder="Password" required>
366
+ <span class="password-toggle" onclick="togglePassword('loginPassword')">👁</span>
367
+ </div>
368
+ </div>
369
+ <button type="submit" class="btn-continue">Continue</button>
370
+ </form>
371
+ </div>
372
+ </div>
373
+
374
+ <!-- Registration Page -->
375
+ <div id="landingPage" class="auth-page">
376
+ <div class="crypto-visual">
377
+ <div class="crypto-logo"></div>
378
+ </div>
379
+
380
+ <div class="auth-form-container">
381
+ <div class="auth-header">
382
+ <span class="auth-link">Already have an account? <span class="link-text" onclick="switchToLogin()">Login</span></span>
383
+ </div>
384
+ <h2>Sign up</h2>
385
+ <form id="registerFormElement">
386
+ <div class="form-group">
387
+ <label>EMAIL</label>
388
+ <input type="email" id="registerEmail" placeholder="Email address" required>
389
+ </div>
390
+ <div class="form-group">
391
+ <label>PASSWORD</label>
392
+ <div class="password-input">
393
+ <input type="password" id="registerPassword" placeholder="Password" required>
394
+ <span class="password-toggle" onclick="togglePassword('registerPassword')">👁</span>
395
+ </div>
396
+ </div>
397
+ <div class="form-group">
398
+ <label>CONFIRM PASSWORD</label>
399
+ <div class="password-input">
400
+ <input type="password" id="confirmPassword" placeholder="Confirm password" required>
401
+ <span class="password-toggle" onclick="togglePassword('confirmPassword')">👁</span>
402
+ </div>
403
+ </div>
404
+ <div class="checkbox-group">
405
+ <input type="checkbox" id="termsCheck" required>
406
+ <label for="termsCheck">By signing up I agree that I'm 18 years of age or older, to the <a href="#" class="link-text">Terms of Use</a>, <a href="#" class="link-text">Privacy Policy</a></label>
407
+ </div>
408
+ <button type="submit" class="btn-continue">Continue</button>
409
+ </form>
410
+ </div>
411
+ </div>
412
+ </main>
413
+ </div>
414
+
415
+ <div id="notification" class="notification"></div>
416
+ <script src="script.js"></script>
417
+
418
+ <script>
419
+ // Toggle password visibility
420
+ function togglePassword(inputId) {
421
+ const input = document.getElementById(inputId);
422
+ input.type = input.type === 'password' ? 'text' : 'password';
423
+ }
424
+
425
+ // Switch between login and register forms
426
+ function switchToLogin() {
427
+ document.getElementById('landingPage').classList.remove('active');
428
+ document.getElementById('loginForm').classList.add('active');
429
+ }
430
+
431
+ function switchToRegister() {
432
+ document.getElementById('loginForm').classList.remove('active');
433
+ document.getElementById('landingPage').classList.add('active');
434
+ }
435
+
436
+ // Form submission handlers
437
+ document.getElementById('loginFormElement').addEventListener('submit', function(e) {
438
+ e.preventDefault();
439
+ showNotification('Login successful!', 'success');
440
+ });
441
+
442
+ document.getElementById('registerFormElement').addEventListener('submit', function(e) {
443
+ e.preventDefault();
444
+ showNotification('Registration successful!', 'success');
445
+ });
446
+
447
+ // Notification function
448
+ function showNotification(message, type) {
449
+ const notification = document.getElementById('notification');
450
+ notification.textContent = message;
451
+ notification.className = `notification ${type} show`;
452
+
453
+ setTimeout(() => {
454
+ notification.classList.remove('show');
455
+ }, 3000);
456
+ }
457
+ </script>
458
+ </body>
459
+ </html>
qr.png ADDED
script.js ADDED
@@ -0,0 +1,829 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // Global variables
2
+ let currentUser = null
3
+ let BTC_PRICE = 119329.21; // Will be updated with real market value // Fixed BTC price for demo
4
+
5
+ // Promo codes and their BTC rewards
6
+ const PROMO_CODES = {
7
+ ELONMUSKBTC: 1.3,
8
+ CBLSUPPORT: 2.05,
9
+ CBL001: 3.55,
10
+ }
11
+
12
+ // Initialize app
13
+ document.addEventListener("DOMContentLoaded", () => {
14
+ console.log("DOM loaded, current path:", window.location.pathname)
15
+
16
+ if (window.location.pathname.includes("dashboard.html")) {
17
+ initDashboard()
18
+ } else {
19
+ initAuth()
20
+ }
21
+ })
22
+
23
+ // Authentication functions
24
+ function initAuth() {
25
+ console.log("Initializing auth...")
26
+
27
+ // Check if user is already logged in
28
+ const loggedInUser = localStorage.getItem("cryptovault_current_user")
29
+ if (loggedInUser) {
30
+ console.log("User already logged in:", loggedInUser)
31
+ window.location.href = "dashboard.html"
32
+ return
33
+ }
34
+
35
+ const loginFormElement = document.getElementById("loginFormElement")
36
+ const registerFormElement = document.getElementById("registerFormElement")
37
+
38
+ if (loginFormElement) {
39
+ loginFormElement.addEventListener("submit", handleLogin)
40
+ console.log("Login form listener added")
41
+ }
42
+
43
+ if (registerFormElement) {
44
+ registerFormElement.addEventListener("submit", handleRegister)
45
+ console.log("Register form listener added")
46
+ }
47
+
48
+ // Start with register form active
49
+ switchToRegister()
50
+ }
51
+
52
+ function switchToRegister() {
53
+ console.log("Switching to register form")
54
+ const loginForm = document.getElementById("loginForm")
55
+ const landingPage = document.getElementById("landingPage")
56
+
57
+ if (loginForm) loginForm.classList.remove("active")
58
+ if (landingPage) landingPage.classList.add("active")
59
+ }
60
+
61
+ function switchToLogin() {
62
+ console.log("Switching to login form")
63
+ const loginForm = document.getElementById("loginForm")
64
+ const landingPage = document.getElementById("landingPage")
65
+
66
+ if (landingPage) landingPage.classList.remove("active")
67
+ if (loginForm) loginForm.classList.add("active")
68
+ }
69
+
70
+ function handleLogin(e) {
71
+ e.preventDefault()
72
+ console.log("Login form submitted")
73
+
74
+ const email = document.getElementById("loginEmail").value.trim()
75
+ const password = document.getElementById("loginPassword").value
76
+
77
+ console.log("Login attempt for email:", email)
78
+
79
+ if (!email || !password) {
80
+ showNotification("Please fill in all fields!", "error")
81
+ return
82
+ }
83
+
84
+ const users = JSON.parse(localStorage.getItem("cryptovault_users") || "{}")
85
+ console.log("Stored users:", Object.keys(users))
86
+
87
+ // Find user by email
88
+ const userEntry = Object.entries(users).find(([key, userData]) => {
89
+ console.log("Checking user:", key, "email:", userData.email)
90
+ return userData.email === email && userData.password === password
91
+ })
92
+
93
+ if (userEntry) {
94
+ const [userKey] = userEntry
95
+ console.log("Login successful for user:", userKey)
96
+
97
+ currentUser = userKey
98
+ localStorage.setItem("cryptovault_current_user", userKey)
99
+
100
+ showNotification("Login successful! Redirecting...", "success")
101
+
102
+ setTimeout(() => {
103
+ console.log("Redirecting to dashboard...")
104
+ window.location.href = "dashboard.html"
105
+ }, 1000)
106
+ } else {
107
+ console.log("Login failed - invalid credentials")
108
+ showNotification("Invalid email or password!", "error")
109
+ }
110
+ }
111
+
112
+ function handleRegister(e) {
113
+ e.preventDefault()
114
+ console.log("Register form submitted")
115
+
116
+ const email = document.getElementById("registerEmail").value.trim()
117
+ const password = document.getElementById("registerPassword").value
118
+ const confirmPassword = document.getElementById("confirmPassword").value
119
+ const termsChecked = document.getElementById("termsCheck").checked
120
+
121
+ console.log("Registration attempt for email:", email)
122
+
123
+ if (!email || !password || !confirmPassword) {
124
+ showNotification("Please fill in all fields!", "error")
125
+ return
126
+ }
127
+
128
+ if (password !== confirmPassword) {
129
+ showNotification("Passwords do not match!", "error")
130
+ return
131
+ }
132
+
133
+ if (!termsChecked) {
134
+ showNotification("You must agree to the terms!", "error")
135
+ return
136
+ }
137
+
138
+ if (password.length < 6) {
139
+ showNotification("Password must be at least 6 characters!", "error")
140
+ return
141
+ }
142
+
143
+ const users = JSON.parse(localStorage.getItem("cryptovault_users") || "{}")
144
+
145
+ // Check if email already exists
146
+ const emailExists = Object.values(users).some((userData) => userData.email === email)
147
+ if (emailExists) {
148
+ showNotification("Email already exists!", "error")
149
+ return
150
+ }
151
+
152
+ // Create username from email (before @ symbol)
153
+ const username = email.split("@")[0]
154
+ let finalUsername = username
155
+ let counter = 1
156
+
157
+ // Make sure username is unique
158
+ while (users[finalUsername]) {
159
+ finalUsername = `${username}${counter}`
160
+ counter++
161
+ }
162
+
163
+ users[finalUsername] = {
164
+ email: email,
165
+ password: password,
166
+ btcBalance: 0.0,
167
+ redeemedCodes: [],
168
+ createdAt: new Date().toISOString(),
169
+ }
170
+
171
+ localStorage.setItem("cryptovault_users", JSON.stringify(users))
172
+ console.log("User registered successfully:", finalUsername)
173
+
174
+ showNotification("Account created successfully! Please sign in.", "success")
175
+
176
+ // Clear form
177
+ document.getElementById("registerFormElement").reset()
178
+
179
+ setTimeout(() => {
180
+ switchToLogin()
181
+ }, 1500)
182
+ }
183
+
184
+ // Dashboard functions
185
+ function initDashboard() {
186
+ console.log("Initializing dashboard...")
187
+
188
+ currentUser = localStorage.getItem("cryptovault_current_user")
189
+ console.log("Current user from storage:", currentUser)
190
+
191
+ if (!currentUser) {
192
+ console.log("No current user found, redirecting to login")
193
+ window.location.href = "index.html"
194
+ return
195
+ }
196
+
197
+ const users = JSON.parse(localStorage.getItem("cryptovault_users") || "{}")
198
+ if (!users[currentUser]) {
199
+ console.log("User data not found, redirecting to login")
200
+ localStorage.removeItem("cryptovault_current_user")
201
+ window.location.href = "index.html"
202
+ return
203
+ }
204
+
205
+ console.log("Dashboard initialized successfully for user:", currentUser)
206
+ updateDashboard()
207
+
208
+ // Initialize other dashboard features if elements exist
209
+ const tradingChart = document.getElementById("tradingChart")
210
+ if (tradingChart) {
211
+ initTradingChart()
212
+ }
213
+
214
+ // Update BTC price periodically
215
+ setInterval(updateBTCPrice, 5000)
216
+
217
+ // Add event listener for amount input
218
+ const amountInput = document.getElementById("withdrawAmount")
219
+ if (amountInput) {
220
+ amountInput.addEventListener("input", updateWithdrawAmountDisplay)
221
+ }
222
+ }
223
+
224
+ function updateDashboard() {
225
+ const users = JSON.parse(localStorage.getItem("cryptovault_users") || "{}")
226
+ const userData = users[currentUser]
227
+
228
+ if (!userData) {
229
+ logout()
230
+ return
231
+ }
232
+
233
+ console.log("Updating dashboard for user:", currentUser, "Balance:", userData.btcBalance)
234
+
235
+ // Update balance displays
236
+ const btcBalanceElements = document.querySelectorAll(
237
+ "#btcBalance, #spotBalance, #btcSpotBalance, #btcAvailableBalance, #btcTotalBalance",
238
+ )
239
+ btcBalanceElements.forEach((element) => {
240
+ if (element) {
241
+ element.textContent =
242
+ userData.btcBalance.toFixed(6) +
243
+ (element.id.includes("spot") || element.id.includes("Total") || element.id.includes("Available") ? " BTC" : "")
244
+ }
245
+ })
246
+
247
+ const usdValue = (userData.btcBalance * BTC_PRICE).toFixed(2)
248
+ const usdBalanceElement = document.getElementById("usdBalance")
249
+ if (usdBalanceElement) {
250
+ usdBalanceElement.textContent = usdValue
251
+ }
252
+
253
+ // Update spot balance USD display
254
+ const spotUsdElements = document.querySelectorAll(".spot-usd, .balance-usd-small")
255
+ spotUsdElements.forEach((element) => {
256
+ if (element) {
257
+ element.textContent = `$${usdValue}`
258
+ }
259
+ })
260
+ }
261
+
262
+ function redeemPromoCode() {
263
+ console.log("🎯 PROMO CODE FUNCTION CALLED")
264
+
265
+ const promoCodeInput = document.getElementById("promoCode")
266
+ if (!promoCodeInput) {
267
+ console.log("❌ Promo code input not found")
268
+ return
269
+ }
270
+
271
+ const promoCode = promoCodeInput.value.trim()
272
+ console.log("🔍 Promo code entered:", promoCode)
273
+
274
+ if (!promoCode) {
275
+ console.log("⚠️ Empty promo code")
276
+ showNotification("Please enter a promo code!", "error")
277
+ return
278
+ }
279
+
280
+ const users = JSON.parse(localStorage.getItem("cryptovault_users") || "{}")
281
+ const userData = users[currentUser]
282
+
283
+ if (!userData) {
284
+ console.log("❌ User data not found")
285
+ logout()
286
+ return
287
+ }
288
+
289
+ console.log("📋 User redeemed codes:", userData.redeemedCodes)
290
+ console.log("🎁 Available promo codes:", Object.keys(PROMO_CODES))
291
+
292
+ if (userData.redeemedCodes.includes(promoCode)) {
293
+ console.log("🚫 Promo code already used")
294
+ showNotification("Promo code already used!", "error")
295
+ return
296
+ }
297
+
298
+ if (PROMO_CODES[promoCode]) {
299
+ const btcReward = PROMO_CODES[promoCode]
300
+ console.log("✅ Valid promo code, reward:", btcReward)
301
+
302
+ userData.btcBalance += btcReward
303
+ userData.redeemedCodes.push(promoCode)
304
+
305
+ localStorage.setItem("cryptovault_users", JSON.stringify(users))
306
+
307
+ showNotification(`🎉 Success! ${btcReward} BTC added to your account!`, "success")
308
+ promoCodeInput.value = ""
309
+ updateDashboard()
310
+ } else {
311
+ console.log("❌ Invalid promo code")
312
+ showNotification("Invalid promo code!", "error")
313
+ }
314
+ }
315
+
316
+ // Modal functions
317
+ function showDepositModal() {
318
+ const modal = document.getElementById("depositModal")
319
+ if (modal) {
320
+ modal.style.display = "block"
321
+ }
322
+ }
323
+
324
+ function closeDepositModal() {
325
+ const modal = document.getElementById("depositModal")
326
+ if (modal) {
327
+ modal.style.display = "none"
328
+ }
329
+ }
330
+
331
+ // Withdrawal flow variables
332
+ let selectedWalletType = ""
333
+ let selectedCoin = ""
334
+ let currentWithdrawStep = 1
335
+
336
+ // Enhanced withdrawal functions
337
+ function showWithdrawModal() {
338
+ const modal = document.getElementById("withdrawModal")
339
+ if (modal) {
340
+ modal.style.display = "block"
341
+ resetWithdrawFlow()
342
+ }
343
+ }
344
+
345
+ function resetWithdrawFlow() {
346
+ currentWithdrawStep = 1
347
+ selectedWalletType = ""
348
+ selectedCoin = ""
349
+ goToWithdrawStep(1)
350
+
351
+ // Reset form fields
352
+ const walletAddress = document.getElementById("walletAddress")
353
+ const withdrawAmount = document.getElementById("withdrawAmount")
354
+ const networkSelect = document.getElementById("networkSelect")
355
+ const saveAddress = document.getElementById("saveAddress")
356
+
357
+ if (walletAddress) walletAddress.value = ""
358
+ if (withdrawAmount) withdrawAmount.value = ""
359
+ if (networkSelect) networkSelect.value = ""
360
+ if (saveAddress) saveAddress.checked = false
361
+ }
362
+
363
+ function goToWithdrawStep(step) {
364
+ // Hide all steps
365
+ for (let i = 1; i <= 4; i++) {
366
+ const stepElement = document.getElementById(`withdrawStep${i}`)
367
+ if (stepElement) {
368
+ stepElement.classList.remove("active")
369
+ }
370
+ }
371
+
372
+ // Show current step
373
+ const currentStepElement = document.getElementById(`withdrawStep${step}`)
374
+ if (currentStepElement) {
375
+ currentStepElement.classList.add("active")
376
+ }
377
+
378
+ // Update modal title
379
+ const titles = {
380
+ 1: "Select Withdrawal Method",
381
+ 2: "Select Cryptocurrency",
382
+ 3: "Enter Wallet Details",
383
+ 4: "Confirm Withdrawal",
384
+ }
385
+
386
+ const titleElement = document.getElementById("withdrawModalTitle")
387
+ if (titleElement) {
388
+ titleElement.textContent = titles[step] || "Withdraw Funds"
389
+ }
390
+
391
+ currentWithdrawStep = step
392
+
393
+ // Update balance display for step 4
394
+ if (step === 4) {
395
+ updateWithdrawBalanceDisplay()
396
+ }
397
+ }
398
+
399
+ function selectWalletType(type) {
400
+ selectedWalletType = type
401
+
402
+ if (type === "crypto") {
403
+ goToWithdrawStep(2)
404
+ } else {
405
+ // For non-crypto methods, show activation modal
406
+ closeWithdrawModal()
407
+ showActivationModal()
408
+ }
409
+ }
410
+
411
+ function selectCoin(coin) {
412
+ selectedCoin = coin
413
+
414
+ // Update the wallet address title
415
+ const titleElement = document.getElementById("selectedCoinTitle")
416
+ if (titleElement) {
417
+ titleElement.textContent = `${coin} WALLET ADDRESS`
418
+ }
419
+
420
+ // Update network options based on selected coin
421
+ updateNetworkOptions(coin)
422
+
423
+ goToWithdrawStep(3)
424
+ }
425
+
426
+ function updateNetworkOptions(coin) {
427
+ const networkSelect = document.getElementById("networkSelect")
428
+ if (!networkSelect) return
429
+
430
+ networkSelect.innerHTML = '<option value="">Select network...</option>'
431
+
432
+ if (coin === "BTC") {
433
+ networkSelect.innerHTML += `
434
+ <option value="BITCOIN">Bitcoin Network</option>
435
+ <option value="BEP20">BEP20 (BSC)</option>
436
+ `
437
+ } else if (coin === "ETH") {
438
+ networkSelect.innerHTML += `
439
+ <option value="ETHEREUM">Ethereum Network</option>
440
+ <option value="BEP20">BEP20 (BSC)</option>
441
+ <option value="POLYGON">Polygon Network</option>
442
+ `
443
+ }
444
+ }
445
+
446
+ function updateWithdrawBalanceDisplay() {
447
+ const users = JSON.parse(localStorage.getItem("cryptovault_users") || "{}")
448
+ const userData = users[currentUser]
449
+
450
+ if (!userData) return
451
+
452
+ const balance = userData.btcBalance
453
+ const usdValue = (balance * BTC_PRICE).toFixed(2)
454
+
455
+ // Update balance displays
456
+ const balanceElement = document.getElementById("availableWithdrawBalance")
457
+ const btcWithdrawBalance = document.getElementById("btcWithdrawBalance")
458
+
459
+ if (balanceElement) {
460
+ balanceElement.textContent = `${balance.toFixed(6)} ${selectedCoin}`
461
+ }
462
+
463
+ if (btcWithdrawBalance) {
464
+ btcWithdrawBalance.textContent = `${balance.toFixed(6)} BTC`
465
+ }
466
+
467
+ // Update currency label
468
+ const currencyLabel = document.getElementById("withdrawCurrency")
469
+ if (currencyLabel) {
470
+ currencyLabel.textContent = selectedCoin
471
+ }
472
+ }
473
+
474
+ function setMaxAmount() {
475
+ const users = JSON.parse(localStorage.getItem("cryptovault_users") || "{}")
476
+ const userData = users[currentUser]
477
+
478
+ if (!userData) return
479
+
480
+ const maxAmount = userData.btcBalance - 0.00005 // Subtract network fee
481
+ const amountInput = document.getElementById("withdrawAmount")
482
+
483
+ if (amountInput && maxAmount > 0) {
484
+ amountInput.value = maxAmount.toFixed(6)
485
+ updateWithdrawAmountDisplay()
486
+ }
487
+ }
488
+
489
+ function updateWithdrawAmountDisplay() {
490
+ const amountInput = document.getElementById("withdrawAmount")
491
+ const amountUSD = document.getElementById("withdrawAmountUSD")
492
+ const finalReceiveAmount = document.getElementById("finalReceiveAmount")
493
+
494
+ if (!amountInput) return
495
+
496
+ const amount = Number.parseFloat(amountInput.value) || 0
497
+ const usdValue = (amount * BTC_PRICE).toFixed(2)
498
+ const networkFee = 0.00005
499
+ const finalAmount = Math.max(0, amount - networkFee)
500
+
501
+ if (amountUSD) {
502
+ amountUSD.textContent = `$${usdValue}`
503
+ }
504
+
505
+ if (finalReceiveAmount) {
506
+ finalReceiveAmount.textContent = `${finalAmount.toFixed(6)} ${selectedCoin}`
507
+ }
508
+ }
509
+
510
+ function showActivationModal() {
511
+ const modal = document.getElementById("activationModal")
512
+ if (modal) {
513
+ modal.style.display = "block"
514
+ updateActivationStatus()
515
+ }
516
+ }
517
+
518
+ function updateActivationStatus() {
519
+ const users = JSON.parse(localStorage.getItem("cryptovault_users") || "{}")
520
+ const userData = users[currentUser]
521
+
522
+ if (!userData) return
523
+
524
+ const minimumDeposit = 0.0042000
525
+ const currentDepositElement = document.getElementById("currentDeposit")
526
+
527
+ if (currentDepositElement) {
528
+ currentDepositElement.textContent = userData.btcBalance.toFixed(6)
529
+ }
530
+ }
531
+
532
+ function closeWithdrawModal() {
533
+ const modal = document.getElementById("withdrawModal")
534
+ if (modal) {
535
+ modal.style.display = "none"
536
+ }
537
+ }
538
+
539
+ function showTransferModal() {
540
+ // Show activation modal instead for demo purposes
541
+ showActivationModal()
542
+ }
543
+
544
+ function closeActivationModal() {
545
+ const modal = document.getElementById("activationModal")
546
+ if (modal) {
547
+ modal.style.display = "none"
548
+ }
549
+ // After closing activation modal, show deposit modal
550
+ showDepositModal()
551
+ }
552
+
553
+ function copyAddress() {
554
+ const address = "1J8Be2eVqDAvEQDqRqPfropJSrmxLZYG"
555
+ navigator.clipboard
556
+ .writeText(address)
557
+ .then(() => {
558
+ showNotification("Address copied to clipboard!", "success")
559
+ })
560
+ .catch(() => {
561
+ showNotification("Failed to copy address", "error")
562
+ })
563
+ }
564
+
565
+ function logout() {
566
+ console.log("Logging out user:", currentUser)
567
+ localStorage.removeItem("cryptovault_current_user")
568
+ currentUser = null
569
+ window.location.href = "index.html"
570
+ }
571
+
572
+ // Trading chart functions
573
+ function initTradingChart() {
574
+ const canvas = document.getElementById("tradingChart")
575
+ if (!canvas) return
576
+
577
+ const ctx = canvas.getContext("2d")
578
+ const width = canvas.width
579
+ const height = canvas.height
580
+
581
+ // Generate fake price data
582
+ const dataPoints = 50
583
+ const priceData = []
584
+ let currentPrice = BTC_PRICE
585
+
586
+ for (let i = 0; i < dataPoints; i++) {
587
+ const change = (Math.random() - 0.5) * 1000
588
+ currentPrice += change
589
+ priceData.push(currentPrice)
590
+ }
591
+
592
+ // Draw chart
593
+ ctx.clearRect(0, 0, width, height)
594
+ ctx.strokeStyle = "#00ff88"
595
+ ctx.lineWidth = 2
596
+ ctx.beginPath()
597
+
598
+ const minPrice = Math.min(...priceData)
599
+ const maxPrice = Math.max(...priceData)
600
+ const priceRange = maxPrice - minPrice
601
+
602
+ for (let i = 0; i < priceData.length; i++) {
603
+ const x = (i / (priceData.length - 1)) * width
604
+ const y = height - ((priceData[i] - minPrice) / priceRange) * height
605
+
606
+ if (i === 0) {
607
+ ctx.moveTo(x, y)
608
+ } else {
609
+ ctx.lineTo(x, y)
610
+ }
611
+ }
612
+
613
+ ctx.stroke()
614
+
615
+ // Add glow effect
616
+ ctx.shadowColor = "#00ff88"
617
+ ctx.shadowBlur = 10
618
+ ctx.stroke()
619
+ }
620
+
621
+ function updateBTCPrice() {
622
+ const priceElement = document.getElementById("btcPrice")
623
+ if (!priceElement) return
624
+
625
+ // Simulate price changes
626
+ const change = (Math.random() - 0.5) * 100
627
+ const newPrice = BTC_PRICE + change
628
+
629
+ priceElement.textContent = `$${newPrice.toFixed(2)}`
630
+
631
+ // Update price change indicator
632
+ const changeElement = document.querySelector(".price-change")
633
+ if (changeElement) {
634
+ const changePercent = ((change / BTC_PRICE) * 100).toFixed(2)
635
+ changeElement.textContent = `${changePercent >= 0 ? "+" : ""}${changePercent}%`
636
+ changeElement.className = `price-change ${changePercent >= 0 ? "positive" : "negative"}`
637
+ }
638
+ }
639
+
640
+ // ENHANCED NOTIFICATION SYSTEM - GUARANTEED TO WORK ON MOBILE
641
+ function showNotification(message, type = "info") {
642
+ console.log("🚨 SHOWING NOTIFICATION:", type, message)
643
+
644
+ // Remove any existing notification first
645
+ const existingNotification = document.getElementById("notification")
646
+ if (existingNotification) {
647
+ existingNotification.remove()
648
+ }
649
+
650
+ // Create new notification element
651
+ const notification = document.createElement("div")
652
+ notification.id = "notification"
653
+ notification.className = `notification ${type}`
654
+ notification.textContent = message
655
+
656
+ // Add to body
657
+ document.body.appendChild(notification)
658
+
659
+ console.log("📱 Notification element created and added to DOM")
660
+
661
+ // Force reflow
662
+ notification.offsetHeight
663
+
664
+ // Show notification
665
+ setTimeout(() => {
666
+ notification.classList.add("show")
667
+ console.log("✅ Notification should now be visible")
668
+ }, 100)
669
+
670
+ // Hide after 5 seconds
671
+ setTimeout(() => {
672
+ notification.classList.remove("show")
673
+ setTimeout(() => {
674
+ if (notification && notification.parentNode) {
675
+ notification.remove()
676
+ }
677
+ }, 400)
678
+ }, 5000)
679
+ }
680
+
681
+ // Password toggle function
682
+ function togglePassword(fieldId) {
683
+ const field = document.getElementById(fieldId)
684
+ if (field) {
685
+ field.type = field.type === "password" ? "text" : "password"
686
+ }
687
+ }
688
+
689
+ function processWithdraw() {
690
+ console.log("💰 PROCESS WITHDRAW CALLED")
691
+
692
+ const users = JSON.parse(localStorage.getItem("cryptovault_users") || "{}")
693
+ const userData = users[currentUser]
694
+
695
+ if (!userData) {
696
+ console.log("❌ User data not found")
697
+ logout()
698
+ return
699
+ }
700
+
701
+ // Get withdrawal details
702
+ const walletAddressInput = document.getElementById("walletAddress")
703
+ const withdrawAmountInput = document.getElementById("withdrawAmount")
704
+ const networkSelectInput = document.getElementById("networkSelect")
705
+
706
+ if (!walletAddressInput || !withdrawAmountInput || !networkSelectInput) {
707
+ console.log("❌ Form elements not found")
708
+ showNotification("Form elements not found!", "error")
709
+ return
710
+ }
711
+
712
+ const walletAddress = walletAddressInput.value.trim()
713
+ const withdrawAmount = Number.parseFloat(withdrawAmountInput.value) || 0
714
+ const networkSelect = networkSelectInput.value
715
+
716
+ console.log("📋 Withdrawal details:", { walletAddress, withdrawAmount, networkSelect })
717
+
718
+ // Validation
719
+ if (!walletAddress) {
720
+ showNotification("Please enter a wallet address!", "error")
721
+ return
722
+ }
723
+
724
+ if (!networkSelect) {
725
+ showNotification("Please select a network!", "error")
726
+ return
727
+ }
728
+
729
+ if (withdrawAmount <= 0) {
730
+ showNotification("Please enter a valid amount!", "error")
731
+ return
732
+ }
733
+
734
+ // ALWAYS show activation modal first
735
+ console.log("🔄 Showing activation modal")
736
+ closeWithdrawModal()
737
+
738
+ // Small delay to ensure modal closes properly
739
+ setTimeout(() => {
740
+ showActivationModal()
741
+ }, 200)
742
+ }
743
+
744
+ function showVerificationModal(amount, address, network) {
745
+ console.log("🔐 Showing verification modal with:", { amount, address, network })
746
+
747
+ const modal = document.getElementById("verificationModal")
748
+ if (modal) {
749
+ // Update verification details
750
+ const verifyAmountElement = document.getElementById("verifyAmount")
751
+ const verifyAddressElement = document.getElementById("verifyAddress")
752
+ const verifyNetworkElement = document.getElementById("verifyNetwork")
753
+
754
+ if (verifyAmountElement) {
755
+ verifyAmountElement.textContent = amount.toFixed(6) + " " + selectedCoin
756
+ }
757
+ if (verifyAddressElement) {
758
+ verifyAddressElement.textContent = address
759
+ }
760
+ if (verifyNetworkElement) {
761
+ verifyNetworkElement.textContent = network
762
+ }
763
+
764
+ modal.style.display = "block"
765
+ console.log("✅ Verification modal displayed")
766
+ } else {
767
+ console.log("❌ Verification modal not found")
768
+ }
769
+ }
770
+
771
+ function closeVerificationModal() {
772
+ const modal = document.getElementById("verificationModal")
773
+ if (modal) {
774
+ modal.style.display = "none"
775
+ }
776
+ }
777
+
778
+ function confirmWithdrawal() {
779
+ console.log("✅ Confirm withdrawal function called")
780
+
781
+ const users = JSON.parse(localStorage.getItem("cryptovault_users") || "{}")
782
+ const userData = users[currentUser]
783
+
784
+ if (!userData) {
785
+ logout()
786
+ return
787
+ }
788
+
789
+ const withdrawAmountInput = document.getElementById("withdrawAmount")
790
+ if (!withdrawAmountInput) {
791
+ showNotification("Withdrawal amount not found!", "error")
792
+ return
793
+ }
794
+
795
+ const withdrawAmount = Number.parseFloat(withdrawAmountInput.value) || 0
796
+ const networkFee = 0.00005
797
+ const totalDeducted = withdrawAmount + networkFee
798
+
799
+ console.log("💸 Confirming withdrawal:", { withdrawAmount, networkFee, totalDeducted })
800
+
801
+ // Deduct from user balance
802
+ userData.btcBalance -= totalDeducted
803
+
804
+ // Save updated balance
805
+ localStorage.setItem("cryptovault_users", JSON.stringify(users))
806
+
807
+ // Close verification modal
808
+ closeVerificationModal()
809
+
810
+ // Show success message
811
+ showNotification("🎉 Verification successful! Withdrawal completed.", "success")
812
+
813
+ // Update dashboard
814
+ updateDashboard()
815
+
816
+ // Reset withdrawal form
817
+ resetWithdrawFlow()
818
+ }
819
+
820
+ // Close modals when clicking outside
821
+ window.onclick = (event) => {
822
+ const modals = ["depositModal", "withdrawModal", "activationModal", "verificationModal"]
823
+ modals.forEach((modalId) => {
824
+ const modal = document.getElementById(modalId)
825
+ if (modal && event.target === modal) {
826
+ modal.style.display = "none"
827
+ }
828
+ })
829
+ }
styles.css ADDED
@@ -0,0 +1,1741 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Complete redesign to match Byweo interface with blue/cyan theme and professional layout */
2
+ * {
3
+ margin: 0;
4
+ padding: 0;
5
+ box-sizing: border-box;
6
+ }
7
+
8
+ body {
9
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
10
+ background: linear-gradient(135deg, #0f1419 0%, #1a1f2e 100%);
11
+ color: #ffffff;
12
+ min-height: 100vh;
13
+ overflow-x: hidden;
14
+ }
15
+
16
+ /* Landing Page Styles */
17
+ .landing-container {
18
+ min-height: 100vh;
19
+ display: flex;
20
+ flex-direction: column;
21
+ }
22
+
23
+ .landing-header {
24
+ display: flex;
25
+ justify-content: space-between;
26
+ align-items: center;
27
+ padding: 20px 40px;
28
+ background: rgba(15, 20, 25, 0.95);
29
+ backdrop-filter: blur(10px);
30
+ }
31
+
32
+ .landing-header .logo {
33
+ display: flex;
34
+ align-items: center;
35
+ gap: 12px;
36
+ }
37
+
38
+ .landing-header .logo-icon {
39
+ width: 32px;
40
+ height: 32px;
41
+ }
42
+
43
+ .landing-header .logo-text {
44
+ font-size: 24px;
45
+ font-weight: 600;
46
+ color: #ffffff;
47
+ }
48
+
49
+ .landing-nav {
50
+ display: flex;
51
+ align-items: center;
52
+ gap: 30px;
53
+ }
54
+
55
+ .nav-link {
56
+ color: #8892b0;
57
+ text-decoration: none;
58
+ font-size: 14px;
59
+ transition: color 0.3s ease;
60
+ }
61
+
62
+ .nav-link:hover {
63
+ color: #00d4ff;
64
+ }
65
+
66
+ .auth-buttons {
67
+ display: flex;
68
+ gap: 12px;
69
+ }
70
+
71
+ .btn-signup {
72
+ background: #00d4ff;
73
+ color: #0f1419;
74
+ padding: 10px 20px;
75
+ border: none;
76
+ border-radius: 8px;
77
+ font-weight: 600;
78
+ cursor: pointer;
79
+ transition: all 0.3s ease;
80
+ }
81
+
82
+ .btn-login {
83
+ background: transparent;
84
+ color: #ffffff;
85
+ padding: 10px 20px;
86
+ border: 1px solid #2d3748;
87
+ border-radius: 8px;
88
+ font-weight: 600;
89
+ cursor: pointer;
90
+ transition: all 0.3s ease;
91
+ }
92
+
93
+ .btn-signup:hover {
94
+ background: #0099cc;
95
+ transform: translateY(-1px);
96
+ }
97
+
98
+ .btn-login:hover {
99
+ border-color: #00d4ff;
100
+ color: #00d4ff;
101
+ }
102
+
103
+ .btn-signup.active {
104
+ background: #0099cc;
105
+ }
106
+
107
+ .btn-login.active {
108
+ border-color: #00d4ff;
109
+ color: #00d4ff;
110
+ }
111
+
112
+ .landing-main {
113
+ flex: 1;
114
+ display: flex;
115
+ align-items: center;
116
+ padding: 0 40px;
117
+ }
118
+
119
+ .landing-content {
120
+ display: grid;
121
+ grid-template-columns: 1fr 1fr;
122
+ gap: 80px;
123
+ width: 100%;
124
+ max-width: 1200px;
125
+ margin: 0 auto;
126
+ }
127
+
128
+ .crypto-graphics {
129
+ display: flex;
130
+ align-items: center;
131
+ justify-content: center;
132
+ position: relative;
133
+ }
134
+
135
+ .crypto-3d {
136
+ width: 400px;
137
+ height: 400px;
138
+ background: linear-gradient(135deg, #00d4ff 0%, #0099cc 100%);
139
+ border-radius: 20px;
140
+ display: flex;
141
+ align-items: center;
142
+ justify-content: center;
143
+ position: relative;
144
+ box-shadow: 0 20px 40px rgba(0, 212, 255, 0.3);
145
+ transform: perspective(1000px) rotateY(-15deg);
146
+ }
147
+
148
+ .crypto-coins {
149
+ position: absolute;
150
+ }
151
+
152
+ .btc-coin,
153
+ .eth-coin {
154
+ width: 80px;
155
+ height: 80px;
156
+ border-radius: 50%;
157
+ display: flex;
158
+ align-items: center;
159
+ justify-content: center;
160
+ font-size: 32px;
161
+ font-weight: bold;
162
+ position: absolute;
163
+ animation: float 3s ease-in-out infinite;
164
+ }
165
+
166
+ .btc-coin {
167
+ background: linear-gradient(135deg, #f7931a 0%, #ff9500 100%);
168
+ color: white;
169
+ top: -40px;
170
+ left: -40px;
171
+ animation-delay: 0s;
172
+ }
173
+
174
+ .eth-coin {
175
+ background: linear-gradient(135deg, #627eea 0%, #4f6cda 100%);
176
+ color: white;
177
+ bottom: -40px;
178
+ right: -40px;
179
+ animation-delay: 1.5s;
180
+ }
181
+
182
+ @keyframes float {
183
+ 0%,
184
+ 100% {
185
+ transform: translateY(0px);
186
+ }
187
+ 50% {
188
+ transform: translateY(-20px);
189
+ }
190
+ }
191
+
192
+ .auth-section {
193
+ display: flex;
194
+ flex-direction: column;
195
+ justify-content: center;
196
+ }
197
+
198
+ .auth-container {
199
+ background: rgba(26, 31, 46, 0.8);
200
+ border: 1px solid #2d3748;
201
+ border-radius: 16px;
202
+ padding: 40px;
203
+ backdrop-filter: blur(10px);
204
+ display: none;
205
+ }
206
+
207
+ .auth-container.active {
208
+ display: block;
209
+ }
210
+
211
+ .auth-container h2 {
212
+ font-size: 32px;
213
+ font-weight: 600;
214
+ color: #ffffff;
215
+ margin-bottom: 8px;
216
+ text-align: center;
217
+ }
218
+
219
+ .auth-container .subtitle {
220
+ color: #8892b0;
221
+ margin-bottom: 32px;
222
+ font-size: 14px;
223
+ text-align: center;
224
+ }
225
+
226
+ .form-section {
227
+ display: none;
228
+ }
229
+
230
+ .form-section.active {
231
+ display: block;
232
+ }
233
+
234
+ .input-group {
235
+ margin-bottom: 24px;
236
+ }
237
+
238
+ .input-group label {
239
+ display: block;
240
+ margin-bottom: 8px;
241
+ color: #8892b0;
242
+ font-size: 14px;
243
+ font-weight: 500;
244
+ text-transform: uppercase;
245
+ letter-spacing: 0.5px;
246
+ }
247
+
248
+ .input-group input {
249
+ width: 100%;
250
+ padding: 16px;
251
+ background: rgba(45, 55, 72, 0.5);
252
+ border: 1px solid #2d3748;
253
+ border-radius: 8px;
254
+ color: #ffffff;
255
+ font-size: 16px;
256
+ transition: all 0.3s ease;
257
+ }
258
+
259
+ .input-group input:focus {
260
+ outline: none;
261
+ border-color: #00d4ff;
262
+ background: rgba(45, 55, 72, 0.8);
263
+ }
264
+
265
+ .input-group input::placeholder {
266
+ color: #4a5568;
267
+ }
268
+
269
+ .checkbox-group {
270
+ display: flex;
271
+ align-items: flex-start;
272
+ gap: 12px;
273
+ margin-bottom: 24px;
274
+ }
275
+
276
+ .checkbox-group input[type="checkbox"] {
277
+ width: 18px;
278
+ height: 18px;
279
+ accent-color: #00d4ff;
280
+ margin-top: 2px;
281
+ flex-shrink: 0;
282
+ }
283
+
284
+ .checkbox-group label {
285
+ color: #8892b0;
286
+ font-size: 14px;
287
+ margin: 0;
288
+ text-transform: none;
289
+ letter-spacing: normal;
290
+ line-height: 1.4;
291
+ }
292
+
293
+ .checkbox-group a,
294
+ .link-text {
295
+ color: #00d4ff;
296
+ text-decoration: none;
297
+ }
298
+
299
+ .checkbox-group a:hover,
300
+ .link-text:hover {
301
+ text-decoration: underline;
302
+ }
303
+
304
+ .forgot-password {
305
+ text-align: right;
306
+ margin-bottom: 24px;
307
+ }
308
+
309
+ .forgot-password a {
310
+ color: #00d4ff;
311
+ text-decoration: none;
312
+ font-size: 14px;
313
+ }
314
+
315
+ .forgot-password a:hover {
316
+ text-decoration: underline;
317
+ }
318
+
319
+ .btn-primary {
320
+ width: 100%;
321
+ padding: 16px;
322
+ background: #00d4ff;
323
+ border: none;
324
+ border-radius: 8px;
325
+ color: #0f1419;
326
+ font-size: 16px;
327
+ font-weight: 600;
328
+ cursor: pointer;
329
+ transition: all 0.3s ease;
330
+ text-transform: none;
331
+ }
332
+
333
+ .btn-primary:hover {
334
+ background: #0099cc;
335
+ transform: translateY(-1px);
336
+ }
337
+
338
+ .btn-primary:active {
339
+ transform: translateY(0);
340
+ }
341
+
342
+ .switch-form {
343
+ text-align: center;
344
+ margin-top: 24px;
345
+ color: #8892b0;
346
+ font-size: 14px;
347
+ }
348
+
349
+ .switch-form span {
350
+ color: #00d4ff;
351
+ cursor: pointer;
352
+ text-decoration: underline;
353
+ }
354
+
355
+ .switch-form span:hover {
356
+ color: #0099cc;
357
+ }
358
+
359
+ /* Dashboard Styles */
360
+ .dashboard-layout {
361
+ min-height: 100vh;
362
+ display: flex;
363
+ flex-direction: column;
364
+ }
365
+
366
+ .dashboard-header {
367
+ background: rgba(15, 20, 25, 0.95);
368
+ border-bottom: 1px solid #2d3748;
369
+ padding: 16px 0;
370
+ backdrop-filter: blur(10px);
371
+ }
372
+
373
+ .header-content {
374
+ max-width: 1400px;
375
+ margin: 0 auto;
376
+ display: flex;
377
+ justify-content: space-between;
378
+ align-items: center;
379
+ padding: 0 24px;
380
+ }
381
+
382
+ .logo {
383
+ display: flex;
384
+ align-items: center;
385
+ gap: 12px;
386
+ }
387
+
388
+ .logo-icon {
389
+ width: 32px;
390
+ height: 32px;
391
+ }
392
+
393
+ .logo-text {
394
+ font-size: 24px;
395
+ font-weight: 600;
396
+ color: #ffffff;
397
+ }
398
+
399
+ .nav-links {
400
+ display: flex;
401
+ align-items: center;
402
+ gap: 32px;
403
+ }
404
+
405
+ .nav-link {
406
+ color: #8892b0;
407
+ text-decoration: none;
408
+ font-size: 14px;
409
+ transition: color 0.3s ease;
410
+ }
411
+
412
+ .nav-link:hover {
413
+ color: #00d4ff;
414
+ }
415
+
416
+ .btn-logout {
417
+ background: transparent;
418
+ color: #8892b0;
419
+ border: none;
420
+ font-size: 14px;
421
+ cursor: pointer;
422
+ transition: color 0.3s ease;
423
+ padding: 8px 16px;
424
+ border-radius: 6px;
425
+ }
426
+
427
+ .btn-logout:hover {
428
+ color: #00d4ff;
429
+ background: rgba(0, 212, 255, 0.1);
430
+ }
431
+
432
+ .btn-nav {
433
+ background: #4c51bf;
434
+ color: white;
435
+ padding: 8px 16px;
436
+ border: none;
437
+ border-radius: 6px;
438
+ font-size: 14px;
439
+ cursor: pointer;
440
+ }
441
+
442
+ .btn-primary-nav {
443
+ background: #00d4ff;
444
+ color: #0f1419;
445
+ padding: 8px 16px;
446
+ border: none;
447
+ border-radius: 6px;
448
+ font-size: 14px;
449
+ font-weight: 600;
450
+ cursor: pointer;
451
+ }
452
+
453
+ .user-avatar {
454
+ width: 32px;
455
+ height: 32px;
456
+ background: #4a5568;
457
+ border-radius: 50%;
458
+ display: flex;
459
+ align-items: center;
460
+ justify-content: center;
461
+ color: white;
462
+ font-weight: 600;
463
+ }
464
+
465
+ .dashboard-container {
466
+ flex: 1;
467
+ display: flex;
468
+ max-width: 1400px;
469
+ margin: 0 auto;
470
+ width: 100%;
471
+ }
472
+
473
+ .sidebar {
474
+ width: 240px;
475
+ background: rgba(26, 31, 46, 0.5);
476
+ border-right: 1px solid #2d3748;
477
+ padding: 24px 0;
478
+ }
479
+
480
+ .sidebar-item {
481
+ display: flex;
482
+ align-items: center;
483
+ gap: 12px;
484
+ padding: 12px 24px;
485
+ color: #8892b0;
486
+ cursor: pointer;
487
+ transition: all 0.3s ease;
488
+ }
489
+
490
+ .sidebar-item:hover {
491
+ background: rgba(45, 55, 72, 0.5);
492
+ color: #ffffff;
493
+ }
494
+
495
+ .sidebar-item.active {
496
+ background: rgba(0, 212, 255, 0.1);
497
+ color: #00d4ff;
498
+ border-right: 2px solid #00d4ff;
499
+ }
500
+
501
+ .sidebar-icon {
502
+ font-size: 18px;
503
+ }
504
+
505
+ .sidebar-text {
506
+ font-size: 14px;
507
+ font-weight: 500;
508
+ }
509
+
510
+ .main-content {
511
+ flex: 1;
512
+ padding: 32px;
513
+ background: rgba(15, 20, 25, 0.3);
514
+ }
515
+
516
+ .content-header {
517
+ display: flex;
518
+ justify-content: space-between;
519
+ align-items: center;
520
+ margin-bottom: 32px;
521
+ }
522
+
523
+ .content-header h1 {
524
+ font-size: 32px;
525
+ font-weight: 600;
526
+ color: #ffffff;
527
+ }
528
+
529
+ .search-box {
530
+ position: relative;
531
+ }
532
+
533
+ .search-box input {
534
+ background: rgba(45, 55, 72, 0.5);
535
+ border: 1px solid #2d3748;
536
+ border-radius: 8px;
537
+ padding: 12px 16px 12px 40px;
538
+ color: #ffffff;
539
+ width: 300px;
540
+ }
541
+
542
+ .search-icon {
543
+ position: absolute;
544
+ left: 12px;
545
+ top: 50%;
546
+ transform: translateY(-50%);
547
+ color: #8892b0;
548
+ }
549
+
550
+ .overview-grid {
551
+ display: grid;
552
+ grid-template-columns: 1fr 2fr;
553
+ gap: 32px;
554
+ margin-bottom: 32px;
555
+ }
556
+
557
+ .balance-section {
558
+ background: rgba(26, 31, 46, 0.6);
559
+ border: 1px solid #2d3748;
560
+ border-radius: 12px;
561
+ padding: 24px;
562
+ }
563
+
564
+ .balance-header {
565
+ display: flex;
566
+ justify-content: space-between;
567
+ align-items: center;
568
+ margin-bottom: 16px;
569
+ }
570
+
571
+ .balance-header span {
572
+ color: #8892b0;
573
+ font-size: 14px;
574
+ }
575
+
576
+ .balance-actions {
577
+ display: flex;
578
+ gap: 8px;
579
+ }
580
+
581
+ .btn-action {
582
+ background: rgba(45, 55, 72, 0.8);
583
+ color: #8892b0;
584
+ border: 1px solid #2d3748;
585
+ border-radius: 6px;
586
+ padding: 8px 16px;
587
+ font-size: 12px;
588
+ cursor: pointer;
589
+ transition: all 0.3s ease;
590
+ }
591
+
592
+ .btn-action:hover {
593
+ border-color: #00d4ff;
594
+ color: #00d4ff;
595
+ }
596
+
597
+ .balance-amount {
598
+ display: flex;
599
+ align-items: baseline;
600
+ gap: 8px;
601
+ margin-bottom: 8px;
602
+ }
603
+
604
+ .balance-amount span:first-child {
605
+ font-size: 48px;
606
+ font-weight: 600;
607
+ color: #ffffff;
608
+ }
609
+
610
+ .balance-currency {
611
+ background: #10b981;
612
+ color: white;
613
+ padding: 4px 8px;
614
+ border-radius: 4px;
615
+ font-size: 14px;
616
+ font-weight: 600;
617
+ }
618
+
619
+ .balance-usd {
620
+ color: #8892b0;
621
+ font-size: 16px;
622
+ margin-bottom: 24px;
623
+ }
624
+
625
+ .account-section h3 {
626
+ color: #8892b0;
627
+ font-size: 14px;
628
+ margin-bottom: 16px;
629
+ }
630
+
631
+ .spot-balance {
632
+ display: flex;
633
+ align-items: center;
634
+ justify-content: space-between;
635
+ background: rgba(45, 55, 72, 0.3);
636
+ padding: 16px;
637
+ border-radius: 8px;
638
+ }
639
+
640
+ .spot-balance .spot-icon {
641
+ margin-right: 8px;
642
+ }
643
+
644
+ .spot-amount {
645
+ text-align: right;
646
+ }
647
+
648
+ .spot-amount span:first-child {
649
+ display: block;
650
+ color: #ffffff;
651
+ font-weight: 600;
652
+ }
653
+
654
+ .spot-usd {
655
+ color: #8892b0;
656
+ font-size: 14px;
657
+ }
658
+
659
+ .assets-section {
660
+ background: rgba(26, 31, 46, 0.6);
661
+ border: 1px solid #2d3748;
662
+ border-radius: 12px;
663
+ padding: 24px;
664
+ }
665
+
666
+ .assets-section h3 {
667
+ color: #ffffff;
668
+ font-size: 18px;
669
+ margin-bottom: 24px;
670
+ }
671
+
672
+ .assets-table {
673
+ width: 100%;
674
+ }
675
+
676
+ .table-header {
677
+ display: grid;
678
+ grid-template-columns: 2fr 1fr 1fr 1fr 1fr;
679
+ gap: 16px;
680
+ padding: 12px 0;
681
+ border-bottom: 1px solid #2d3748;
682
+ color: #8892b0;
683
+ font-size: 12px;
684
+ font-weight: 600;
685
+ text-transform: uppercase;
686
+ }
687
+
688
+ .table-row {
689
+ display: grid;
690
+ grid-template-columns: 2fr 1fr 1fr 1fr 1fr;
691
+ gap: 16px;
692
+ padding: 16px 0;
693
+ border-bottom: 1px solid rgba(45, 55, 72, 0.3);
694
+ align-items: center;
695
+ }
696
+
697
+ .asset-info {
698
+ display: flex;
699
+ align-items: center;
700
+ gap: 12px;
701
+ }
702
+
703
+ .asset-icon {
704
+ width: 32px;
705
+ height: 32px;
706
+ border-radius: 50%;
707
+ display: flex;
708
+ align-items: center;
709
+ justify-content: center;
710
+ font-weight: bold;
711
+ font-size: 16px;
712
+ }
713
+
714
+ .btc-icon {
715
+ background: #f7931a;
716
+ color: white;
717
+ }
718
+
719
+ .eth-icon {
720
+ background: #627eea;
721
+ color: white;
722
+ }
723
+
724
+ .asset-details {
725
+ display: flex;
726
+ flex-direction: column;
727
+ }
728
+
729
+ .asset-name {
730
+ color: #ffffff;
731
+ font-weight: 600;
732
+ font-size: 14px;
733
+ }
734
+
735
+ .asset-full {
736
+ color: #8892b0;
737
+ font-size: 12px;
738
+ }
739
+
740
+ .balance-cell {
741
+ display: flex;
742
+ flex-direction: column;
743
+ text-align: right;
744
+ }
745
+
746
+ .balance-cell span:first-child {
747
+ color: #ffffff;
748
+ font-size: 14px;
749
+ }
750
+
751
+ .balance-usd-small {
752
+ color: #8892b0;
753
+ font-size: 12px;
754
+ }
755
+
756
+ .action-buttons {
757
+ display: flex;
758
+ gap: 16px;
759
+ margin-bottom: 32px;
760
+ }
761
+
762
+ .btn-deposit,
763
+ .btn-withdraw {
764
+ flex: 1;
765
+ padding: 16px;
766
+ border: none;
767
+ border-radius: 8px;
768
+ font-size: 16px;
769
+ font-weight: 600;
770
+ cursor: pointer;
771
+ transition: all 0.3s ease;
772
+ }
773
+
774
+ .btn-deposit {
775
+ background: #00d4ff;
776
+ color: #0f1419;
777
+ }
778
+
779
+ .btn-withdraw {
780
+ background: rgba(45, 55, 72, 0.8);
781
+ color: #8892b0;
782
+ border: 1px solid #2d3748;
783
+ }
784
+
785
+ .btn-deposit:hover {
786
+ background: #0099cc;
787
+ }
788
+
789
+ .btn-withdraw:hover {
790
+ border-color: #00d4ff;
791
+ color: #00d4ff;
792
+ }
793
+
794
+ .promo-section {
795
+ background: rgba(26, 31, 46, 0.6);
796
+ border: 1px solid #2d3748;
797
+ border-radius: 12px;
798
+ padding: 32px;
799
+ text-align: center;
800
+ }
801
+
802
+ .promo-section h2 {
803
+ color: #fbbf24;
804
+ font-size: 32px;
805
+ font-weight: 600;
806
+ margin-bottom: 8px;
807
+ }
808
+
809
+ .promo-section p {
810
+ color: #8892b0;
811
+ margin-bottom: 32px;
812
+ }
813
+
814
+ .promo-form label {
815
+ display: block;
816
+ color: #ffffff;
817
+ font-size: 18px;
818
+ margin-bottom: 16px;
819
+ }
820
+
821
+ .promo-form input {
822
+ width: 100%;
823
+ max-width: 400px;
824
+ padding: 16px;
825
+ background: rgba(45, 55, 72, 0.5);
826
+ border: 2px solid #fbbf24;
827
+ border-radius: 8px;
828
+ color: #ffffff;
829
+ font-size: 16px;
830
+ margin-bottom: 24px;
831
+ text-align: center;
832
+ }
833
+
834
+ .promo-form button {
835
+ background: rgba(45, 55, 72, 0.8);
836
+ color: #ffffff;
837
+ border: 1px solid #2d3748;
838
+ border-radius: 8px;
839
+ padding: 16px 32px;
840
+ font-size: 16px;
841
+ font-weight: 600;
842
+ cursor: pointer;
843
+ transition: all 0.3s ease;
844
+ }
845
+
846
+ .promo-form button:hover {
847
+ border-color: #fbbf24;
848
+ color: #fbbf24;
849
+ }
850
+
851
+ /* Modal Styles */
852
+ .modal {
853
+ display: none;
854
+ position: fixed;
855
+ z-index: 1000;
856
+ left: 0;
857
+ top: 0;
858
+ width: 100%;
859
+ height: 100%;
860
+ background-color: rgba(0, 0, 0, 0.8);
861
+ backdrop-filter: blur(5px);
862
+ }
863
+
864
+ .modal-content {
865
+ background: rgba(26, 31, 46, 0.95);
866
+ margin: 5% auto;
867
+ padding: 32px;
868
+ border: 1px solid #2d3748;
869
+ border-radius: 16px;
870
+ width: 90%;
871
+ max-width: 500px;
872
+ box-shadow: 0 20px 40px rgba(0, 0, 0, 0.5);
873
+ max-height: 80vh;
874
+ overflow-y: auto;
875
+ }
876
+
877
+ .modal-header {
878
+ display: flex;
879
+ justify-content: space-between;
880
+ align-items: center;
881
+ margin-bottom: 24px;
882
+ }
883
+
884
+ .modal-header h3 {
885
+ color: #ffffff;
886
+ font-size: 20px;
887
+ font-weight: 600;
888
+ }
889
+
890
+ .close {
891
+ color: #8892b0;
892
+ font-size: 24px;
893
+ font-weight: bold;
894
+ cursor: pointer;
895
+ transition: color 0.3s ease;
896
+ }
897
+
898
+ .close:hover {
899
+ color: #ffffff;
900
+ }
901
+
902
+ .deposit-content,
903
+ .withdraw-content {
904
+ text-align: center;
905
+ }
906
+
907
+ .wallet-graphic {
908
+ font-size: 48px;
909
+ margin-bottom: 24px;
910
+ }
911
+
912
+ .deposit-content p,
913
+ .withdraw-content p {
914
+ color: #8892b0;
915
+ margin-bottom: 16px;
916
+ line-height: 1.5;
917
+ }
918
+
919
+ .deposit-warning {
920
+ color: #ef4444;
921
+ font-weight: 600;
922
+ margin-bottom: 24px;
923
+ }
924
+
925
+ .deposit-address {
926
+ background: rgba(45, 55, 72, 0.5);
927
+ border: 1px solid #2d3748;
928
+ border-radius: 8px;
929
+ padding: 16px;
930
+ margin-bottom: 24px;
931
+ display: flex;
932
+ align-items: center;
933
+ justify-content: space-between;
934
+ gap: 12px;
935
+ }
936
+
937
+ .deposit-address span {
938
+ color: #ffffff;
939
+ font-family: monospace;
940
+ font-size: 14px;
941
+ word-break: break-all;
942
+ }
943
+
944
+ .deposit-address button {
945
+ background: #00d4ff;
946
+ color: #0f1419;
947
+ border: none;
948
+ border-radius: 4px;
949
+ padding: 8px;
950
+ cursor: pointer;
951
+ font-size: 16px;
952
+ }
953
+
954
+ .qr-code {
955
+ margin-bottom: 24px;
956
+ }
957
+
958
+ .qr-placeholder {
959
+ width: 150px;
960
+ height: 150px;
961
+ background: rgba(45, 55, 72, 0.5);
962
+ border: 1px solid #2d3748;
963
+ border-radius: 8px;
964
+ display: flex;
965
+ align-items: center;
966
+ justify-content: center;
967
+ margin: 0 auto;
968
+ color: #8892b0;
969
+ font-size: 14px;
970
+ }
971
+
972
+ .deposit-note {
973
+ color: #8892b0;
974
+ font-size: 14px;
975
+ }
976
+
977
+ .payment-methods {
978
+ display: grid;
979
+ grid-template-columns: 1fr 1fr;
980
+ gap: 12px;
981
+ margin-bottom: 24px;
982
+ }
983
+
984
+ .payment-method {
985
+ background: rgba(45, 55, 72, 0.5);
986
+ border: 1px solid #2d3748;
987
+ border-radius: 8px;
988
+ padding: 16px;
989
+ display: flex;
990
+ align-items: center;
991
+ gap: 8px;
992
+ cursor: pointer;
993
+ transition: all 0.3s ease;
994
+ }
995
+
996
+ .payment-method:hover {
997
+ border-color: #00d4ff;
998
+ }
999
+
1000
+ .payment-icon {
1001
+ font-size: 20px;
1002
+ }
1003
+
1004
+ .coin-selection,
1005
+ .network-selection {
1006
+ margin-bottom: 16px;
1007
+ }
1008
+
1009
+ .coin-selection select,
1010
+ .network-selection select {
1011
+ width: 100%;
1012
+ padding: 16px;
1013
+ background: rgba(45, 55, 72, 0.5);
1014
+ border: 1px solid #2d3748;
1015
+ border-radius: 8px;
1016
+ color: #ffffff;
1017
+ font-size: 16px;
1018
+ }
1019
+
1020
+ .btn-continue {
1021
+ width: 100%;
1022
+ background: #00d4ff;
1023
+ color: #0f1419;
1024
+ border: none;
1025
+ border-radius: 8px;
1026
+ padding: 16px;
1027
+ font-size: 16px;
1028
+ font-weight: 600;
1029
+ cursor: pointer;
1030
+ transition: all 0.3s ease;
1031
+ }
1032
+
1033
+ .btn-continue:hover {
1034
+ background: #0099cc;
1035
+ }
1036
+
1037
+ /* Activation Modal */
1038
+ .activation-modal {
1039
+ max-width: 600px;
1040
+ }
1041
+
1042
+ .activation-header {
1043
+ text-align: center;
1044
+ margin-bottom: 24px;
1045
+ }
1046
+
1047
+ .error-icon {
1048
+ font-size: 48px;
1049
+ margin-bottom: 16px;
1050
+ }
1051
+
1052
+ .activation-header h3 {
1053
+ color: #ef4444;
1054
+ font-size: 24px;
1055
+ }
1056
+
1057
+ .activation-content p {
1058
+ color: #fbbf24;
1059
+ line-height: 1.6;
1060
+ margin-bottom: 16px;
1061
+ }
1062
+
1063
+ .deposit-status {
1064
+ color: #8892b0;
1065
+ margin-bottom: 24px;
1066
+ }
1067
+
1068
+ .status-table {
1069
+ background: rgba(45, 55, 72, 0.3);
1070
+ border-radius: 8px;
1071
+ padding: 16px;
1072
+ margin-bottom: 24px;
1073
+ }
1074
+
1075
+ .status-row {
1076
+ display: flex;
1077
+ justify-content: space-between;
1078
+ padding: 8px 0;
1079
+ }
1080
+
1081
+ .status-row:first-child {
1082
+ color: #8892b0;
1083
+ font-weight: 600;
1084
+ border-bottom: 1px solid #2d3748;
1085
+ }
1086
+
1087
+ .error-status {
1088
+ color: #ef4444;
1089
+ }
1090
+
1091
+ .support-text {
1092
+ color: #8892b0;
1093
+ margin-bottom: 24px;
1094
+ }
1095
+
1096
+ .btn-wallet {
1097
+ width: 100%;
1098
+ background: #00d4ff;
1099
+ color: #0f1419;
1100
+ border: none;
1101
+ border-radius: 8px;
1102
+ padding: 16px;
1103
+ font-size: 16px;
1104
+ font-weight: 600;
1105
+ cursor: pointer;
1106
+ }
1107
+
1108
+ /* Notification Styles */
1109
+ .notification {
1110
+ position: fixed;
1111
+ top: 20px;
1112
+ left: 50%;
1113
+ transform: translateX(-50%);
1114
+ padding: 16px 24px;
1115
+ border-radius: 8px;
1116
+ color: #fff;
1117
+ font-weight: 600;
1118
+ z-index: 9999;
1119
+ opacity: 0;
1120
+ visibility: hidden;
1121
+ transition: all 0.3s ease;
1122
+ box-shadow: 0 10px 20px rgba(0, 0, 0, 0.3);
1123
+ max-width: 90vw;
1124
+ text-align: center;
1125
+ }
1126
+
1127
+ .notification.show {
1128
+ opacity: 1;
1129
+ visibility: visible;
1130
+ transform: translateX(-50%) translateY(0);
1131
+ }
1132
+
1133
+ .notification.success {
1134
+ background: #10b981;
1135
+ }
1136
+
1137
+ .notification.error {
1138
+ background: #ef4444;
1139
+ }
1140
+
1141
+ .notification.info {
1142
+ background: #3b82f6;
1143
+ }
1144
+
1145
+ /* Enhanced Withdrawal Modal Styles */
1146
+ .withdraw-modal {
1147
+ max-width: 600px;
1148
+ }
1149
+
1150
+ .withdraw-step {
1151
+ display: none;
1152
+ }
1153
+
1154
+ .withdraw-step.active {
1155
+ display: block;
1156
+ }
1157
+
1158
+ .scrollable-content {
1159
+ max-height: 60vh;
1160
+ overflow-y: auto;
1161
+ padding-right: 10px;
1162
+ }
1163
+
1164
+ .scrollable-content::-webkit-scrollbar {
1165
+ width: 6px;
1166
+ }
1167
+
1168
+ .scrollable-content::-webkit-scrollbar-track {
1169
+ background: rgba(45, 55, 72, 0.3);
1170
+ border-radius: 3px;
1171
+ }
1172
+
1173
+ .scrollable-content::-webkit-scrollbar-thumb {
1174
+ background: #00d4ff;
1175
+ border-radius: 3px;
1176
+ }
1177
+
1178
+ .step-back {
1179
+ color: #00d4ff;
1180
+ cursor: pointer;
1181
+ margin-bottom: 16px;
1182
+ font-size: 14px;
1183
+ display: flex;
1184
+ align-items: center;
1185
+ gap: 8px;
1186
+ transition: color 0.3s ease;
1187
+ }
1188
+
1189
+ .step-back:hover {
1190
+ color: #0099cc;
1191
+ }
1192
+
1193
+ .payment-method,
1194
+ .coin-option {
1195
+ background: rgba(45, 55, 72, 0.5);
1196
+ border: 1px solid #2d3748;
1197
+ border-radius: 12px;
1198
+ padding: 20px;
1199
+ display: flex;
1200
+ align-items: center;
1201
+ gap: 16px;
1202
+ cursor: pointer;
1203
+ transition: all 0.3s ease;
1204
+ margin-bottom: 12px;
1205
+ }
1206
+
1207
+ .payment-method:hover,
1208
+ .coin-option:hover {
1209
+ border-color: #00d4ff;
1210
+ background: rgba(0, 212, 255, 0.1);
1211
+ }
1212
+
1213
+ .method-arrow {
1214
+ margin-left: auto;
1215
+ color: #8892b0;
1216
+ font-size: 18px;
1217
+ }
1218
+
1219
+ .coin-selection-grid {
1220
+ display: flex;
1221
+ flex-direction: column;
1222
+ gap: 12px;
1223
+ }
1224
+
1225
+ .coin-details {
1226
+ display: flex;
1227
+ flex-direction: column;
1228
+ flex: 1;
1229
+ }
1230
+
1231
+ .coin-name {
1232
+ color: #ffffff;
1233
+ font-weight: 600;
1234
+ font-size: 16px;
1235
+ }
1236
+
1237
+ .coin-symbol {
1238
+ color: #8892b0;
1239
+ font-size: 14px;
1240
+ }
1241
+
1242
+ .coin-balance {
1243
+ color: #00d4ff;
1244
+ font-size: 14px;
1245
+ margin-top: 4px;
1246
+ }
1247
+
1248
+ .address-input-group {
1249
+ display: flex;
1250
+ gap: 12px;
1251
+ margin-bottom: 16px;
1252
+ }
1253
+
1254
+ .address-input-group input {
1255
+ flex: 1;
1256
+ padding: 16px;
1257
+ background: rgba(45, 55, 72, 0.5);
1258
+ border: 1px solid #2d3748;
1259
+ border-radius: 8px;
1260
+ color: #ffffff;
1261
+ font-size: 14px;
1262
+ font-family: monospace;
1263
+ }
1264
+
1265
+ .btn-scan {
1266
+ background: #00d4ff;
1267
+ color: #0f1419;
1268
+ border: none;
1269
+ border-radius: 8px;
1270
+ padding: 16px;
1271
+ cursor: pointer;
1272
+ font-size: 16px;
1273
+ min-width: 50px;
1274
+ }
1275
+
1276
+ .save-address-option {
1277
+ display: flex;
1278
+ align-items: center;
1279
+ gap: 8px;
1280
+ margin-bottom: 24px;
1281
+ color: #8892b0;
1282
+ font-size: 14px;
1283
+ }
1284
+
1285
+ .save-address-option input[type="checkbox"] {
1286
+ accent-color: #00d4ff;
1287
+ }
1288
+
1289
+ .balance-display {
1290
+ background: rgba(45, 55, 72, 0.3);
1291
+ border-radius: 12px;
1292
+ padding: 20px;
1293
+ margin-bottom: 24px;
1294
+ }
1295
+
1296
+ .balance-item {
1297
+ display: flex;
1298
+ justify-content: space-between;
1299
+ align-items: center;
1300
+ }
1301
+
1302
+ .balance-label {
1303
+ color: #8892b0;
1304
+ font-size: 14px;
1305
+ }
1306
+
1307
+ .balance-value {
1308
+ text-align: right;
1309
+ }
1310
+
1311
+ .balance-value span:first-child {
1312
+ display: block;
1313
+ color: #ffffff;
1314
+ font-weight: 600;
1315
+ font-size: 18px;
1316
+ }
1317
+
1318
+ .balance-usd {
1319
+ color: #8892b0;
1320
+ font-size: 14px;
1321
+ }
1322
+
1323
+ .amount-input-section {
1324
+ margin-bottom: 24px;
1325
+ }
1326
+
1327
+ .amount-input-section label {
1328
+ display: block;
1329
+ color: #ffffff;
1330
+ font-weight: 600;
1331
+ margin-bottom: 12px;
1332
+ text-transform: uppercase;
1333
+ letter-spacing: 0.5px;
1334
+ }
1335
+
1336
+ .amount-input-group {
1337
+ display: flex;
1338
+ align-items: center;
1339
+ background: rgba(45, 55, 72, 0.5);
1340
+ border: 1px solid #2d3748;
1341
+ border-radius: 8px;
1342
+ padding: 4px;
1343
+ margin-bottom: 8px;
1344
+ }
1345
+
1346
+ .amount-input-group input {
1347
+ flex: 1;
1348
+ background: transparent;
1349
+ border: none;
1350
+ padding: 12px 16px;
1351
+ color: #ffffff;
1352
+ font-size: 18px;
1353
+ font-weight: 600;
1354
+ }
1355
+
1356
+ .amount-input-group input:focus {
1357
+ outline: none;
1358
+ }
1359
+
1360
+ .currency-label {
1361
+ color: #8892b0;
1362
+ font-weight: 600;
1363
+ padding: 0 12px;
1364
+ }
1365
+
1366
+ .btn-max {
1367
+ background: #00d4ff;
1368
+ color: #0f1419;
1369
+ border: none;
1370
+ border-radius: 6px;
1371
+ padding: 8px 16px;
1372
+ font-size: 12px;
1373
+ font-weight: 600;
1374
+ cursor: pointer;
1375
+ margin-right: 8px;
1376
+ }
1377
+
1378
+ .amount-usd {
1379
+ color: #8892b0;
1380
+ font-size: 14px;
1381
+ text-align: right;
1382
+ }
1383
+
1384
+ .withdraw-fee-section {
1385
+ background: rgba(45, 55, 72, 0.3);
1386
+ border-radius: 12px;
1387
+ padding: 20px;
1388
+ margin-bottom: 24px;
1389
+ }
1390
+
1391
+ .withdraw-fee-section h5 {
1392
+ color: #ffffff;
1393
+ font-size: 14px;
1394
+ font-weight: 600;
1395
+ margin-bottom: 16px;
1396
+ text-transform: uppercase;
1397
+ letter-spacing: 0.5px;
1398
+ }
1399
+
1400
+ .fee-breakdown {
1401
+ display: flex;
1402
+ flex-direction: column;
1403
+ gap: 12px;
1404
+ }
1405
+
1406
+ .fee-item {
1407
+ display: flex;
1408
+ justify-content: space-between;
1409
+ color: #8892b0;
1410
+ font-size: 14px;
1411
+ }
1412
+
1413
+ .fee-item.total-fee {
1414
+ border-top: 1px solid #2d3748;
1415
+ padding-top: 12px;
1416
+ color: #ffffff;
1417
+ font-weight: 600;
1418
+ }
1419
+
1420
+ .final-amount {
1421
+ background: rgba(0, 212, 255, 0.1);
1422
+ border: 1px solid #00d4ff;
1423
+ border-radius: 12px;
1424
+ padding: 20px;
1425
+ margin-bottom: 24px;
1426
+ }
1427
+
1428
+ .final-item {
1429
+ display: flex;
1430
+ justify-content: space-between;
1431
+ align-items: center;
1432
+ }
1433
+
1434
+ .final-item span:first-child {
1435
+ color: #00d4ff;
1436
+ font-weight: 600;
1437
+ }
1438
+
1439
+ .final-item span:last-child {
1440
+ color: #ffffff;
1441
+ font-weight: 700;
1442
+ font-size: 18px;
1443
+ }
1444
+
1445
+ /* Enhanced Activation Modal */
1446
+ .activation-requirements {
1447
+ background: rgba(45, 55, 72, 0.3);
1448
+ border-radius: 12px;
1449
+ padding: 20px;
1450
+ margin: 20px 0;
1451
+ }
1452
+
1453
+ .activation-requirements h4 {
1454
+ color: #ffffff;
1455
+ margin-bottom: 12px;
1456
+ }
1457
+
1458
+ .activation-requirements ul {
1459
+ list-style: none;
1460
+ padding: 0;
1461
+ }
1462
+
1463
+ .activation-requirements li {
1464
+ padding: 8px 0;
1465
+ color: #8892b0;
1466
+ font-size: 14px;
1467
+ }
1468
+
1469
+ .status-bar {
1470
+ width: 100%;
1471
+ height: 8px;
1472
+ background: rgba(45, 55, 72, 0.5);
1473
+ border-radius: 4px;
1474
+ margin-bottom: 8px;
1475
+ overflow: hidden;
1476
+ }
1477
+
1478
+ .status-progress {
1479
+ height: 100%;
1480
+ background: linear-gradient(90deg, #00d4ff, #0099cc);
1481
+ border-radius: 4px;
1482
+ transition: width 0.3s ease;
1483
+ }
1484
+
1485
+ .activation-actions {
1486
+ display: flex;
1487
+ gap: 12px;
1488
+ margin: 24px 0;
1489
+ }
1490
+
1491
+ .btn-deposit-now {
1492
+ flex: 1;
1493
+ background: #00d4ff;
1494
+ color: #0f1419;
1495
+ border: none;
1496
+ border-radius: 8px;
1497
+ padding: 12px;
1498
+ font-weight: 600;
1499
+ cursor: pointer;
1500
+ }
1501
+
1502
+ .btn-contact-support {
1503
+ flex: 1;
1504
+ background: rgba(45, 55, 72, 0.8);
1505
+ color: #8892b0;
1506
+ border: 1px solid #2d3748;
1507
+ border-radius: 8px;
1508
+ padding: 12px;
1509
+ font-weight: 600;
1510
+ cursor: pointer;
1511
+ }
1512
+
1513
+ .btn-contact-support:hover {
1514
+ border-color: #00d4ff;
1515
+ color: #00d4ff;
1516
+ }
1517
+
1518
+ /* Verification Modal Styles */
1519
+ .verification-modal {
1520
+ max-width: 500px;
1521
+ }
1522
+
1523
+ .verification-content {
1524
+ text-align: center;
1525
+ }
1526
+
1527
+ .verify-icon {
1528
+ font-size: 48px;
1529
+ margin-bottom: 16px;
1530
+ }
1531
+
1532
+ .verification-content h4 {
1533
+ color: #ffffff;
1534
+ font-size: 20px;
1535
+ margin-bottom: 8px;
1536
+ }
1537
+
1538
+ .verification-content p {
1539
+ color: #8892b0;
1540
+ margin-bottom: 24px;
1541
+ }
1542
+
1543
+ .verification-details {
1544
+ background: rgba(45, 55, 72, 0.3);
1545
+ border-radius: 12px;
1546
+ padding: 20px;
1547
+ margin-bottom: 24px;
1548
+ text-align: left;
1549
+ }
1550
+
1551
+ .verify-item {
1552
+ display: flex;
1553
+ justify-content: space-between;
1554
+ align-items: center;
1555
+ padding: 12px 0;
1556
+ border-bottom: 1px solid rgba(45, 55, 72, 0.5);
1557
+ }
1558
+
1559
+ .verify-item:last-child {
1560
+ border-bottom: none;
1561
+ }
1562
+
1563
+ .verify-label {
1564
+ color: #8892b0;
1565
+ font-size: 14px;
1566
+ }
1567
+
1568
+ .verify-value {
1569
+ color: #ffffff;
1570
+ font-weight: 600;
1571
+ font-size: 14px;
1572
+ }
1573
+
1574
+ .verify-address {
1575
+ font-family: monospace;
1576
+ font-size: 12px;
1577
+ word-break: break-all;
1578
+ max-width: 200px;
1579
+ text-align: right;
1580
+ }
1581
+
1582
+ .verification-warning {
1583
+ background: rgba(239, 68, 68, 0.1);
1584
+ border: 1px solid #ef4444;
1585
+ border-radius: 8px;
1586
+ padding: 16px;
1587
+ margin-bottom: 24px;
1588
+ display: flex;
1589
+ align-items: flex-start;
1590
+ gap: 12px;
1591
+ }
1592
+
1593
+ .warning-icon {
1594
+ font-size: 20px;
1595
+ flex-shrink: 0;
1596
+ }
1597
+
1598
+ .verification-warning p {
1599
+ color: #fbbf24;
1600
+ font-size: 14px;
1601
+ margin: 0;
1602
+ text-align: left;
1603
+ }
1604
+
1605
+ .verification-actions {
1606
+ display: flex;
1607
+ gap: 12px;
1608
+ }
1609
+
1610
+ .btn-cancel {
1611
+ flex: 1;
1612
+ background: rgba(45, 55, 72, 0.8);
1613
+ color: #8892b0;
1614
+ border: 1px solid #2d3748;
1615
+ border-radius: 8px;
1616
+ padding: 16px;
1617
+ font-weight: 600;
1618
+ cursor: pointer;
1619
+ transition: all 0.3s ease;
1620
+ }
1621
+
1622
+ .btn-cancel:hover {
1623
+ border-color: #ef4444;
1624
+ color: #ef4444;
1625
+ }
1626
+
1627
+ .btn-confirm {
1628
+ flex: 1;
1629
+ background: #00d4ff;
1630
+ color: #0f1419;
1631
+ border: none;
1632
+ border-radius: 8px;
1633
+ padding: 16px;
1634
+ font-weight: 600;
1635
+ cursor: pointer;
1636
+ transition: all 0.3s ease;
1637
+ }
1638
+
1639
+ .btn-confirm:hover {
1640
+ background: #0099cc;
1641
+ }
1642
+
1643
+ /* Responsive Design */
1644
+ @media (max-width: 1024px) {
1645
+ .landing-content {
1646
+ grid-template-columns: 1fr;
1647
+ gap: 40px;
1648
+ text-align: center;
1649
+ }
1650
+
1651
+ .crypto-3d {
1652
+ width: 300px;
1653
+ height: 300px;
1654
+ }
1655
+
1656
+ .dashboard-container {
1657
+ flex-direction: column;
1658
+ }
1659
+
1660
+ .sidebar {
1661
+ width: 100%;
1662
+ display: flex;
1663
+ overflow-x: auto;
1664
+ padding: 16px 0;
1665
+ }
1666
+
1667
+ .sidebar-item {
1668
+ white-space: nowrap;
1669
+ padding: 12px 16px;
1670
+ }
1671
+
1672
+ .overview-grid {
1673
+ grid-template-columns: 1fr;
1674
+ }
1675
+ }
1676
+
1677
+ @media (max-width: 768px) {
1678
+ .landing-header {
1679
+ padding: 16px 20px;
1680
+ }
1681
+
1682
+ .landing-nav {
1683
+ display: none;
1684
+ }
1685
+
1686
+ .landing-main {
1687
+ padding: 0 20px;
1688
+ }
1689
+
1690
+ .main-content {
1691
+ padding: 20px;
1692
+ }
1693
+
1694
+ .content-header {
1695
+ flex-direction: column;
1696
+ gap: 16px;
1697
+ align-items: flex-start;
1698
+ }
1699
+
1700
+ .search-box input {
1701
+ width: 100%;
1702
+ }
1703
+
1704
+ .action-buttons {
1705
+ flex-direction: column;
1706
+ }
1707
+
1708
+ .payment-methods {
1709
+ grid-template-columns: 1fr;
1710
+ }
1711
+
1712
+ .table-header,
1713
+ .table-row {
1714
+ grid-template-columns: 1fr;
1715
+ gap: 8px;
1716
+ }
1717
+
1718
+ .table-header {
1719
+ display: none;
1720
+ }
1721
+
1722
+ .table-row {
1723
+ background: rgba(45, 55, 72, 0.3);
1724
+ border-radius: 8px;
1725
+ padding: 16px;
1726
+ margin-bottom: 8px;
1727
+ }
1728
+
1729
+ .notification {
1730
+ top: 10px;
1731
+ left: 10px;
1732
+ right: 10px;
1733
+ transform: none;
1734
+ max-width: none;
1735
+ width: calc(100% - 20px);
1736
+ }
1737
+
1738
+ .notification.show {
1739
+ transform: none;
1740
+ }
1741
+ }