/* Trading Page */ .trading-page { display: flex; flex-direction: column; gap: 2rem; } /* Header */ .page-header { display: flex; justify-content: space-between; align-items: flex-start; } .page-header h1 { margin: 0; font-size: 2rem; font-weight: 700; color: white; } .subtitle { margin: 0.5rem 0 0 0; color: #94a3b8; font-size: 0.875rem; } .header-controls { display: flex; gap: 0.75rem; } .btn-toggle { display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.75rem 1.5rem; border-radius: 0.5rem; font-size: 0.875rem; font-weight: 600; border: 1px solid #334155; background: #1e293b; color: #cbd5e1; cursor: pointer; transition: all 0.3s ease; } .btn-toggle:hover { background: #334155; } .btn-toggle.active { background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%); border-color: #6366f1; color: white; box-shadow: 0 4px 12px rgba(99, 102, 241, 0.3); } /* Section Header */ .section-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.5rem; } .section-header h2 { margin: 0; font-size: 1.5rem; font-weight: 700; color: white; } .filters { display: flex; gap: 0.5rem; } .filter-select { padding: 0.5rem 1rem; border-radius: 0.5rem; border: 1px solid #334155; background: #1e293b; color: white; font-size: 0.875rem; } /* Assets Grid */ .assets-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 1.5rem; } .asset-trading-card { background: #0f1629; border: 1px solid #1e293b; border-radius: 0.75rem; padding: 1.5rem; transition: all 0.3s ease; } .asset-trading-card:hover { transform: translateY(-4px); box-shadow: 0 12px 24px rgba(0, 0, 0, 0.4); border-color: #334155; } .asset-trading-card.enabled { border-color: rgba(99, 102, 241, 0.3); } .asset-trading-card.disabled { opacity: 0.6; } .asset-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1rem; } .asset-title { display: flex; align-items: center; gap: 0.75rem; } .asset-icon { width: 2.5rem; height: 2.5rem; border-radius: 0.5rem; background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%); display: flex; align-items: center; justify-content: center; font-size: 1rem; font-weight: 700; color: white; } .asset-name-group { display: flex; flex-direction: column; gap: 0.125rem; } .asset-name-group .name { font-size: 1rem; font-weight: 700; color: white; } .asset-name-group .symbol { font-size: 0.75rem; color: #64748b; font-family: 'Courier New', monospace; } /* Toggle Switch */ .toggle-switch { position: relative; display: inline-block; width: 3rem; height: 1.5rem; } .toggle-switch input { opacity: 0; width: 0; height: 0; } .toggle-slider { position: absolute; cursor: pointer; top: 0; left: 0; right: 0; bottom: 0; background-color: #334155; transition: 0.3s; border-radius: 1.5rem; } .toggle-slider:before { position: absolute; content: ""; height: 1.125rem; width: 1.125rem; left: 0.1875rem; bottom: 0.1875rem; background-color: white; transition: 0.3s; border-radius: 50%; } .toggle-switch input:checked + .toggle-slider { background-color: #6366f1; } .toggle-switch input:checked + .toggle-slider:before { transform: translateX(1.5rem); } /* Price Info */ .asset-price-info { display: flex; align-items: baseline; gap: 0.75rem; margin-bottom: 1rem; } .current-price { font-size: 1.875rem; font-weight: 700; color: white; font-family: 'Courier New', monospace; } .current-price.loading { font-size: 1rem; color: #64748b; font-family: inherit; } .price-change { display: flex; align-items: center; gap: 0.25rem; font-size: 0.875rem; font-weight: 600; padding: 0.25rem 0.5rem; border-radius: 0.375rem; } .price-change.positive { background: rgba(16, 185, 129, 0.1); color: #10b981; } .price-change.negative { background: rgba(239, 68, 68, 0.1); color: #ef4444; } /* Strategy */ .asset-strategy { margin-bottom: 1rem; padding: 0.75rem; background: #1a1f3a; border-radius: 0.5rem; } .strategy-label { font-size: 0.625rem; color: #64748b; text-transform: uppercase; font-weight: 600; margin-bottom: 0.375rem; } .strategy-name { display: flex; align-items: center; gap: 0.5rem; font-size: 0.875rem; color: #cbd5e1; font-weight: 600; } /* Metrics */ .asset-metrics { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.75rem; margin-bottom: 1rem; } .metric { display: flex; flex-direction: column; gap: 0.25rem; } .metric-label { font-size: 0.625rem; color: #64748b; text-transform: uppercase; font-weight: 600; } .metric-value { font-size: 0.875rem; font-weight: 700; color: white; font-family: 'Courier New', monospace; } .metric-value.profit { color: #10b981; } .metric-value.loss { color: #ef4444; } /* Actions */ .asset-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem; } .btn-sm { padding: 0.5rem 1rem; font-size: 0.75rem; } /* Trades Table */ .trades-table { background: #0f1629; border: 1px solid #1e293b; border-radius: 0.75rem; overflow: hidden; } .table-header { display: grid; grid-template-columns: 1fr 1fr 1.5fr 1.5fr 1.5fr 2fr 1.5fr; gap: 1rem; padding: 1rem 1.5rem; background: #1a1f3a; border-bottom: 1px solid #1e293b; font-size: 0.75rem; font-weight: 700; color: #64748b; text-transform: uppercase; } .table-row { display: grid; grid-template-columns: 1fr 1fr 1.5fr 1.5fr 1.5fr 2fr 1.5fr; gap: 1rem; padding: 1rem 1.5rem; border-bottom: 1px solid #1e293b; align-items: center; font-size: 0.875rem; color: #cbd5e1; transition: background 0.2s ease; } .table-row:hover { background: #1a1f3a; } .table-row.bot-trade { background: rgba(99, 102, 241, 0.05); } .table-row:last-child { border-bottom: none; } .asset-badge { display: inline-flex; padding: 0.25rem 0.5rem; background: #1a1f3a; border-radius: 0.375rem; font-family: 'Courier New', monospace; font-weight: 700; font-size: 0.75rem; } .cell-type { display: flex; align-items: center; gap: 0.5rem; font-weight: 700; } .cell-type.buy { color: #10b981; } .cell-type.sell { color: #ef4444; } .cell-value { font-family: 'Courier New', monospace; font-weight: 600; } .strategy-tag { display: inline-flex; align-items: center; gap: 0.375rem; padding: 0.25rem 0.5rem; background: rgba(99, 102, 241, 0.2); color: #6366f1; border-radius: 0.375rem; font-size: 0.75rem; font-weight: 600; } .manual-tag { display: inline-flex; padding: 0.25rem 0.5rem; background: rgba(100, 116, 139, 0.2); color: #64748b; border-radius: 0.375rem; font-size: 0.75rem; font-weight: 600; } .cell-time { color: #64748b; font-size: 0.75rem; } /* Empty State */ .empty-state { text-align: center; padding: 4rem 2rem; background: #0f1629; border: 1px solid #1e293b; border-radius: 0.75rem; } .empty-state .bi { font-size: 3rem; color: #334155; margin-bottom: 1rem; } .empty-state p { margin: 0.5rem 0; color: #94a3b8; } .empty-state .hint { font-size: 0.875rem; color: #64748b; } /* Responsive */ @media (max-width: 1024px) { .assets-grid { grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); } .table-header, .table-row { grid-template-columns: 1fr; gap: 0.5rem; } .table-header { display: none; } } @media (max-width: 768px) { .page-header { flex-direction: column; gap: 1rem; } .header-controls { width: 100%; flex-direction: column; } .assets-grid { grid-template-columns: 1fr; } }