:root { --primary: #2c3e50; --secondary: #3498db; --accent: #e74c3c; --light: #ecf0f1; --dark: #2c3e50; --success: #2ecc71; --warning: #f39c12; } body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; background-color: #f5f7fa; color: #333; overflow-x: hidden; } .navbar { background-color: var(--primary); color: white; box-shadow: 0 2px 10px rgba(0,0,0,0.1); position: sticky; top: 0; z-index: 100; } .ticker-container { background-color: #1d2630; color: white; overflow: hidden; white-space: nowrap; padding: 8px 0; position: relative; } .ticker-content { display: inline-block; animation: ticker 30s linear infinite; } @keyframes ticker { 0% { transform: translateX(100%); } 100% { transform: translateX(-100%); } } .ticker-item { display: inline-block; padding: 0 20px; } .ticker-item.up { color: #2ecc71; } .ticker-item.down { color: #e74c3c; } .section { background: white; border-radius: 8px; box-shadow: 0 2px 10px rgba(0,0,0,0.05); margin-bottom: 20px; padding: 20px; } .section-title { color: var(--primary); border-bottom: 2px solid var(--secondary); padding-bottom: 8px; margin-bottom: 16px; font-weight: 600; } .btn-primary { background-color: var(--secondary); color: white; border: none; padding: 8px 16px; border-radius: 4px; cursor: pointer; transition: all 0.3s; } .btn-primary:hover { background-color: #2980b9; transform: translateY(-2px); box-shadow: 0 2px 5px rgba(0,0,0,0.1); } .btn-danger { background-color: var(--accent); color: white; } .btn-danger:hover { background-color: #c0392b; } .card { background: white; border-radius: 8px; box-shadow: 0 2px 5px rgba(0,0,0,0.05); margin-bottom: 16px; transition: all 0.3s; } .card:hover { transform: translateY(-2px); box-shadow: 0 5px 15px rgba(0,0,0,0.1); } .tab-container { display: flex; border-bottom: 1px solid #ddd; margin-bottom: 16px; } .tab { padding: 10px 16px; cursor: pointer; border-bottom: 3px solid transparent; transition: all 0.3s; } .tab.active { border-bottom: 3px solid var(--secondary); color: var(--secondary); font-weight: bold; } .tab-content { display: none; } .tab-content.active { display: block; } .badge { padding: 4px 8px; border-radius: 4px; font-size: 12px; font-weight: 600; } .badge-success { background-color: var(--success); color: white; } .badge-warning { background-color: var(--warning); color: white; } .badge-danger { background-color: var(--accent); color: white; } .form-group { margin-bottom: 16px; } .form-control { width: 100%; padding: 8px 12px; border: 1px solid #ddd; border-radius: 4px; transition: border 0.3s; } .form-control:focus { border-color: var(--secondary); outline: none; box-shadow: 0 0 0 2px rgba(52, 152, 219, 0.2); } .select-control { width: 100%; padding: 8px 12px; border: 1px solid #ddd; border-radius: 4px; background-color: white; } .session-card { background: linear-gradient(145deg, #2c3e50, #34495e); color: white; border-radius: 8px; padding: 16px; margin-bottom: 16px; } .session-title { font-size: 18px; font-weight: 600; margin-bottom: 8px; } .session-time { font-size: 14px; opacity: 0.8; } .session-status { display: inline-block; padding: 4px 8px; border-radius: 4px; font-size: 12px; font-weight: 600; margin-top: 8px; } .widget { background: white; border-radius: 8px; box-shadow: 0 2px 5px rgba(0,0,0,0.05); margin-bottom: 16px; padding: 16px; } .widget-title { font-size: 16px; font-weight: 600; margin-bottom: 12px; color: var(--primary); } .event-item { padding: 8px 0; border-bottom: 1px solid #eee; } .event-time { font-size: 12px; color: #777; } .event-name { font-weight: 500; } .event-impact { width: 10px; height: 10px; border-radius: 50%; display: inline-block; margin-right: 4px; } .event-impact.high { background-color: var(--accent); } .event-impact.medium { background-color: var(--warning); } .event-impact.low { background-color: var(--success); } .market-item { display: flex; justify-content: space-between; padding: 8px 0; border-bottom: 1px solid #eee; } .market-name { font-weight: 500; } .market-value.up { color: var(--success); } .market-value.down { color: var(--accent); } .intermarket-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; } .correlation-matrix { background: white; border-radius: 8px; padding: 16px; box-shadow: 0 2px 5px rgba(0,0,0,0.05); } .matrix-title { font-size: 16px; font-weight: 600; margin-bottom: 12px; color: var(--primary); } .matrix-table { width: 100%; border-collapse: collapse; } .matrix-table th, .matrix-table td { padding: 8px; text-align: center; border: 1px solid #eee; } .matrix-table th { background-color: #f5f7fa; font-weight: 600; } .correlation-positive { background-color: rgba(46, 204, 113, 0.2); } .correlation-negative { background-color: rgba(231, 76, 60, 0.2); } .correlation-neutral { background-color: rgba(241, 196, 15, 0.1); } .affirmation-card { background: linear-gradient(145deg, #3498db, #2980b9); color: white; border-radius: 8px; padding: 20px; margin-bottom: 16px; } .affirmation-text { font-size: 18px; line-height: 1.6; font-style: italic; margin-bottom: 16px; } .affirmation-category { font-size: 14px; opacity: 0.8; text-align: right; } .trade-item { background: white; border-radius: 8px; padding: 16px; margin-bottom: 16px; box-shadow: 0 2px 5px rgba(0,0,0,0.05); position: relative; } .trade-symbol { font-size: 18px; font-weight: 600; margin-bottom: 4px; } .trade-details { margin-bottom: 8px; font-size: 14px; color: #666; } .trade-pnl { position: absolute; top: 16px; right: 16px; font-weight: 600; } .trade-pnl.profit { color: var(--success); } .trade-pnl.loss { color: var(--accent); } .trade-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 8px; } .chat-popup { position: fixed; bottom: 20px; right: 20px; width: 350px; background: white; border-radius: 8px 8px 0 0; box-shadow: 0 -2px 10px rgba(0,0,0,0.1); z-index: 1000; transition: all 0.3s; } .chat-header { background: var(--primary); color: white; padding: 10px 16px; border-radius: 8px 8px 0 0; display: flex; justify-content: space-between; align-items: center; cursor: pointer; } .chat-body { padding: 16px; max-height: 300px; overflow-y: auto; } .chat-message { margin-bottom: 16px; } .chat-message.user { text-align: right; } .chat-message.user .message-content { background-color: var(--secondary); color: white; border-radius: 18px 18px 0 18px; padding: 8px 16px; display: inline-block; max-width: 80%; } .chat-message.ai .message-content { background-color: #f1f1f1; color: #333; border-radius: 18px 18px 18px 0; padding: 8px 16px; display: inline-block; max-width: 80%; } .chat-footer { padding: 10px 16px; border-top: 1px solid #eee; display: flex; gap: 8px; } .chat-input { flex: 1; padding: 8px 12px; border: 1px solid #ddd; border-radius: 20px; outline: none; } .minimized { height: 46px; overflow: hidden; } .gemini-badge { background: linear-gradient(135deg, #1a73e8, #8e24aa); color: white; padding: 4px 10px; border-radius: 12px; font-size: 12px; margin-left: 8px; } .api-key-container { display: flex; align-items: center; gap: 8px; } .api-key-input { background-color: rgba(255, 255, 255, 0.1); border: 1px solid rgba(255, 255, 255, 0.2); color: white; padding: 4px 8px; border-radius: 4px; font-size: 14px; width: 160px; } .api-key-input::placeholder { color: rgba(255, 255, 255, 0.6); } .api-status { width: 8px; height: 8px; border-radius: 50%; background-color: #e74c3c; margin-right: 4px; } .api-status.connected { background-color: #2ecc71; } .loading-spinner { border: 3px solid rgba(255, 255, 255, 0.3); border-top: 3px solid #ffffff; border-radius: 50%; width: 16px; height: 16px; animation: spin 1s linear infinite; margin-left: 5px; display: none; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } /* Responsive adjustments */ @media (max-width: 768px) { .intermarket-grid { grid-template-columns: 1fr; } .chat-popup { width: 100%; left: 0; right: 0; bottom: 0; border-radius: 0; } .chat-header { border-radius: 0; } }