diff --git a/src/__pycache__/web_dashboard.cpython-310.pyc b/src/__pycache__/web_dashboard.cpython-310.pyc index e0e189a..25135f3 100644 Binary files a/src/__pycache__/web_dashboard.cpython-310.pyc and b/src/__pycache__/web_dashboard.cpython-310.pyc differ diff --git a/src/web_dashboard.py b/src/web_dashboard.py index ad0aeb9..4b4fb6b 100644 --- a/src/web_dashboard.py +++ b/src/web_dashboard.py @@ -217,95 +217,100 @@ html_content = """ } body { - background-color: #0f0f1e; + background-color: #0a0a0a; color: #e0e0e0; - font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', sans-serif; - line-height: 1.6; + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Inter', sans-serif; + line-height: 1.8; + letter-spacing: 0.3px; } .header { - background: linear-gradient(90deg, #8b2d9e 0%, #d946a6 25%, #ff6b35 50%, #ffd700 75%, #00ff88 100%); - padding: 15px 30px; - border-bottom: 3px solid #ff6b35; + background-color: #121212; + border-bottom: 1px solid #1f1f1f; + padding: 40px 60px; } .header h1 { - color: #fff; - font-size: 28px; + color: #ffffff; + font-size: 32px; font-weight: 700; - text-shadow: 0 2px 8px rgba(0, 0, 0, 0.4); + letter-spacing: -0.5px; } .container { - max-width: 1600px; + max-width: 1800px; margin: 0 auto; - padding: 30px; + padding: 60px 60px; } - .top-metrics { + .grid-auto { display: grid; - grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); - gap: 20px; - margin-bottom: 30px; + grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); + gap: 24px; + margin-bottom: 60px; } - .metric-card { - background-color: #1a1a2e; - border: 2px solid; - border-image: linear-gradient(135deg, #d946a6, #ff6b35) 1; - border-radius: 12px; - padding: 20px; - box-shadow: 0 8px 24px rgba(217, 70, 166, 0.15); - transition: all 0.3s ease; + .card { + background-color: #1a1a1a; + border: 1px solid #2a2a2a; + border-radius: 16px; + padding: 28px; + backdrop-filter: blur(10px); + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12); } - .metric-card:hover { - box-shadow: 0 12px 32px rgba(217, 70, 166, 0.25); - transform: translateY(-4px); + .card:hover { + background-color: #1f1f1f; + border-color: #3a3a3a; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.20); } - .metric-label { - color: #888; + .card-label { + color: #888888; font-size: 12px; text-transform: uppercase; - letter-spacing: 1px; + letter-spacing: 1.2px; + margin-bottom: 12px; + font-weight: 600; + } + + .card-value { + color: #ffffff; + font-size: 36px; + font-weight: 700; + line-height: 1.2; margin-bottom: 8px; } - .metric-value { - color: #ffd700; - font-size: 32px; - font-weight: 700; - margin-bottom: 5px; + .card-subtitle { + color: #666666; + font-size: 13px; + font-weight: 500; } - .metric-change { - color: #00ff88; - font-size: 14px; + .card-positive { + color: #2ecc71; } - .metric-change.negative { - color: #ff4444; + .card-negative { + color: #e74c3c; } .section-title { - color: #fff; - font-size: 20px; + color: #ffffff; + font-size: 24px; font-weight: 700; - margin: 30px 0 20px 0; - text-transform: uppercase; - letter-spacing: 2px; - border-left: 4px solid #ff6b35; - padding-left: 15px; + margin: 60px 0 32px 0; + letter-spacing: -0.3px; } - .trades-table-wrapper { - background-color: #1a1a2e; - border: 2px solid #2d2d4e; - border-radius: 12px; - padding: 20px; - overflow-x: auto; - box-shadow: 0 8px 24px rgba(0, 0, 0, 0.3); + .content-block { + background-color: #1a1a1a; + border: 1px solid #2a2a2a; + border-radius: 16px; + padding: 32px; + margin-bottom: 40px; } table { @@ -314,104 +319,85 @@ html_content = """ } th { - background: linear-gradient(90deg, #8b2d9e, #d946a6); - color: #fff; - padding: 15px; + background-color: #121212; + color: #b0b0b0; + padding: 16px 20px; text-align: left; font-size: 12px; + font-weight: 700; text-transform: uppercase; letter-spacing: 1px; - font-weight: 600; + border-bottom: 1px solid #2a2a2a; } td { - padding: 15px; - border-bottom: 1px solid #2d2d4e; - color: #e0e0e0; + padding: 16px 20px; + border-bottom: 1px solid #1f1f1f; + color: #d0d0d0; + font-size: 14px; } tr:last-child td { border-bottom: none; } - tr:hover { - background-color: #252540; + tbody tr:hover { + background-color: #0f0f0f; } .status-badge { display: inline-block; padding: 6px 12px; - border-radius: 20px; + border-radius: 8px; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; } - .status-live { - background-color: #00ff88; - color: #000; + .badge-live { + background-color: #1a1a1a; + color: #888888; + border: 1px solid #2a2a2a; } - .status-profit { - background-color: #00ff88; - color: #000; + .badge-profit { + background-color: rgba(46, 204, 113, 0.15); + color: #2ecc71; } - .status-loss { - background-color: #ff4444; - color: #fff; + .badge-loss { + background-color: rgba(231, 76, 60, 0.15); + color: #e74c3c; } - .grid-2 { + .metric-row { display: grid; - grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); + grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 20px; - margin-bottom: 30px; + margin-bottom: 40px; } - .balance-card { - background-color: #1a1a2e; - border: 2px solid #ff6b35; - border-radius: 12px; - padding: 25px; - box-shadow: 0 8px 24px rgba(255, 107, 53, 0.15); + .spacer { + height: 1px; + background-color: #1f1f1f; + margin: 40px 0; } - .balance-label { - color: #888; - font-size: 13px; - text-transform: uppercase; - letter-spacing: 1px; - margin-bottom: 10px; - } - - .balance-value { - color: #fff; - font-size: 28px; - font-weight: 700; - } - - .balance-sub { - color: #00ff88; - font-size: 13px; - margin-top: 8px; - } - - .last-update { - color: #666; + .footer-text { + color: #666666; font-size: 12px; text-align: right; - margin-top: 30px; - border-top: 1px solid #2d2d4e; - padding-top: 15px; + margin-top: 40px; + padding-top: 20px; + border-top: 1px solid #1f1f1f; } - .no-data { + .empty-state { text-align: center; - color: #666; - padding: 40px; - font-style: italic; + color: #555555; + padding: 60px 20px; + font-size: 14px; }