diff --git a/assets/css/terminal.css b/assets/css/terminal.css index cd84221..f7ce835 100644 --- a/assets/css/terminal.css +++ b/assets/css/terminal.css @@ -7,7 +7,7 @@ --term-primary: #0062ff; --term-success: #26a69a; --term-danger: #ef5350; - --header-height: 60px; + --header-height: 70px; --sidebar-width: 280px; --orderbook-width: 300px; } @@ -364,65 +364,216 @@ display: none; } -/* Binary Order Panel */ +/* Binary Order Panel Improvements */ .cycle-grid { display: grid; grid-template-columns: repeat(5, 1fr); - gap: 1px; - background: var(--term-border); - border: 1px solid var(--term-border); - border-radius: 4px; - overflow: hidden; + gap: 8px; + background: transparent; + border: none; + padding: 0; + margin-bottom: 20px; } .cycle-btn { - background: var(--term-bg); - border: none; + background: #1e2329; + border: 1px solid var(--term-border); color: var(--term-muted); - padding: 12px 5px; + padding: 10px 4px; font-size: 11px; - font-weight: 600; - transition: all 0.2s; + font-weight: 700; + border-radius: 8px; + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + gap: 2px; } .cycle-btn:hover { - background: rgba(255,255,255,0.05); - color: var(--term-text); + background: #2b3139; + border-color: var(--term-primary); + color: #fff; + transform: translateY(-2px); } .cycle-btn.active { - background: var(--term-primary); + background: linear-gradient(135deg, var(--term-primary), #004ecc); + border-color: var(--term-primary); + color: #fff; + box-shadow: 0 4px 15px rgba(0, 98, 255, 0.3); +} + +.cycle-btn .cycle-time { font-size: 13px; } +.cycle-btn .cycle-profit { font-size: 10px; opacity: 0.8; } + +.amount-input-wrapper input { + height: 44px; + font-size: 16px; + font-weight: 700; + text-align: center; + border-radius: 8px; + background: #0b0e11 !important; + border: 1px solid var(--term-border) !important; + color: #fff !important; +} + +.amount-input-wrapper input:focus { + border-color: var(--term-primary) !important; + box-shadow: 0 0 0 1px var(--term-primary) !important; +} + +.binary-order-panel .btn-buy-sell { + height: 60px; /* Reduced height as requested */ + border-radius: 12px; + transition: all 0.2s; + border: none; + position: relative; + overflow: hidden; +} + +.binary-order-panel .btn-buy-sell:active { + transform: scale(0.98); +} + +.btn-success.btn-buy-sell { + background: linear-gradient(135deg, #26a69a, #1b8076); + box-shadow: 0 4px 12px rgba(38, 166, 154, 0.2); +} + +.btn-danger.btn-buy-sell { + background: linear-gradient(135deg, #ef5350, #c62828); + box-shadow: 0 4px 12px rgba(239, 83, 80, 0.2); +} + +/* Ensure history is visible */ +.terminal-content { + display: flex; + flex-direction: column; + height: 100%; +} + +.kline-container { + flex: 1; + min-height: 300px; /* Allow it to shrink slightly to show more history */ +} + +.order-history { + height: 300px; /* Fixed height for scrollable area */ + border-top: 1px solid var(--term-border); + background: var(--term-surface); +} + +.trading-panels { + padding: 15px 20px; + border-bottom: 1px solid var(--term-border); +} + +/* Enhanced Balance and Profit visibility */ +.balance-highlight { + color: #0062ff !important; + text-shadow: 0 0 10px rgba(0, 98, 255, 0.3); +} + +.profit-highlight { + color: #26a69a !important; + font-size: 1.1rem; + text-shadow: 0 0 10px rgba(38, 166, 154, 0.3); +} + +/* Order Countdown Popup */ +.order-popup-overlay { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.85); + backdrop-filter: blur(5px); + z-index: 9999; + display: none; + align-items: center; + justify-content: center; +} + +.order-popup { + background: #1e2329; + width: 360px; + border-radius: 20px; + padding: 30px; + box-shadow: 0 20px 40px rgba(0,0,0,0.5); + text-align: center; + border: 1px solid rgba(255,255,255,0.05); +} + +.order-popup h5 { + color: #848e9c; + font-size: 16px; + margin-bottom: 30px; +} + +.countdown-circle { + position: relative; + width: 160px; + height: 160px; + margin: 0 auto 30px; +} + +.countdown-circle svg { + width: 160px; + height: 160px; + transform: rotate(-90deg); +} + +.countdown-circle circle { + fill: none; + stroke-width: 8; +} + +.countdown-circle .bg { + stroke: #2b3139; +} + +.countdown-circle .progress { + stroke: #26a69a; + stroke-linecap: round; + transition: stroke-dashoffset 1s linear; +} + +.countdown-circle .time-text { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + font-size: 36px; + font-weight: 700; color: #fff; } -.amount-input-wrapper input { - height: 50px; - font-size: 18px; - font-weight: bold; - text-align: center; - border-radius: 8px; -} - -.section-title { - font-size: 12px; - font-weight: 600; - color: var(--term-muted); - text-transform: uppercase; - letter-spacing: 0.5px; -} - -.quick-amounts .btn { - font-weight: 600; - background: #2b3139; - border: none; -} - -.quick-amounts .btn:hover { - background: #3b424c; -} - -.binary-order-panel { - background: var(--term-surface); +.popup-details { + background: rgba(255,255,255,0.03); border-radius: 12px; + padding: 15px; + margin-bottom: 20px; +} + +.popup-row { + display: flex; + justify-content: space-between; + margin-bottom: 8px; + font-size: 13px; +} + +.popup-row .label { color: #848e9c; } +.popup-row .value { color: #eaecef; font-weight: 600; } + +.popup-footer { + font-size: 11px; + color: #5e6673; +} + +.terminal-main { + height: calc(100vh - var(--header-height)); } diff --git a/assets/pasted-20260216-060142-d6502859.png b/assets/pasted-20260216-060142-d6502859.png new file mode 100644 index 0000000..79fbbed Binary files /dev/null and b/assets/pasted-20260216-060142-d6502859.png differ diff --git a/assets/pasted-20260216-072002-eb8999c7.png b/assets/pasted-20260216-072002-eb8999c7.png new file mode 100644 index 0000000..fb6ac7c Binary files /dev/null and b/assets/pasted-20260216-072002-eb8999c7.png differ diff --git a/auth/register.php b/auth/register.php index 437818a..c2957dc 100644 --- a/auth/register.php +++ b/auth/register.php @@ -33,8 +33,8 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { } else { try { $hash = password_hash($password, PASSWORD_DEFAULT); - $uid = '618120' . mt_rand(100000, 999999); - $stmt = db()->prepare("INSERT INTO users (username, email, password_hash, uid, credit_score) VALUES (?, ?, ?, ?, ?)"); + $uid = str_pad(mt_rand(0, 99999999), 8, '0', STR_PAD_LEFT); + $stmt = db()->prepare("INSERT INTO users (username, email, password_hash, uid, credit_score, total_recharge) VALUES (?, ?, ?, ?, ?, 0)"); $username = strpos($account, '@') === false ? $account : explode('@', $account)[0]; $email = strpos($account, '@') !== false ? $account : $account . '@byro.io'; diff --git a/db/migrations/003_update_users_for_profile.sql b/db/migrations/003_update_users_for_profile.sql new file mode 100644 index 0000000..88080bb --- /dev/null +++ b/db/migrations/003_update_users_for_profile.sql @@ -0,0 +1,17 @@ +-- Add missing fields for Profile, KYC and Security +ALTER TABLE users +ADD COLUMN total_recharge DECIMAL(16,4) DEFAULT 0, +ADD COLUMN transaction_password VARCHAR(255) DEFAULT NULL, +ADD COLUMN kyc_name VARCHAR(100) DEFAULT NULL, +ADD COLUMN kyc_id_number VARCHAR(50) DEFAULT NULL, +ADD COLUMN kyc_photo_front VARCHAR(255) DEFAULT NULL, +ADD COLUMN kyc_photo_back VARCHAR(255) DEFAULT NULL, +ADD COLUMN kyc_photo_handheld VARCHAR(255) DEFAULT NULL, +ADD COLUMN kyc_status INT DEFAULT 0 COMMENT '0: Unverified, 1: Pending, 2: Verified, 3: Rejected'; + +-- Update credit_score default +ALTER TABLE users MODIFY COLUMN credit_score INT DEFAULT 80; + +-- Ensure existing users have a credit score and UID if missing +UPDATE users SET credit_score = 80 WHERE credit_score IS NULL; +UPDATE users SET uid = LPAD(FLOOR(RAND() * 100000000), 8, '0') WHERE uid IS NULL OR uid = ''; diff --git a/includes/footer.php b/includes/footer.php index eecf857..4ed7499 100644 --- a/includes/footer.php +++ b/includes/footer.php @@ -72,7 +72,10 @@
| Asset | -Icon | -Available | -Frozen | -Action | -
|---|---|---|---|---|
|
- = $b['symbol'] ?>
- |
-
- |
-
- = number_format((float)$b['available'], 4) ?>
- |
- - = number_format((float)$b['frozen'], 4) ?> - | -- = __('trade') ?> - | -
| - - No assets found in your wallet. - | -||||
| = __('coin') ?> | += __('available_balance') ?> | += __('frozen') ?> | += __('converted_to') ?> (USDT) | += __('trade') ?> | +
|---|---|---|---|---|
|
+
+
+ |
+ + = number_format($b['available'], 4) ?> + | ++ = number_format($b['frozen'], 4) ?> + | ++ ≈ = number_format($b['available'] + $b['frozen'], 2) ?> + | ++ = __('trade') ?> + | +
+ = __('security_instructions') ?> +
+