:root { --bg-main: #0b0e11; --bg-surface: #161a1e; --bg-surface-light: #1e2329; --text-primary: #eaecef; --text-secondary: #848e9c; --accent-buy: #00ff9d; --accent-sell: #ff3b30; --accent-blue: #3b82f6; --border-color: #2b2f36; --border-radius: 4px; } body { background-color: var(--bg-main); color: var(--text-primary); font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; margin: 0; overflow-x: hidden; } .navbar { background-color: var(--bg-surface); border-bottom: 1px solid var(--border-color); padding: 0.5rem 1.5rem; } .navbar-brand { font-weight: 700; color: var(--accent-buy) !important; letter-spacing: -0.5px; } .dashboard-container { padding: 1rem; display: grid; grid-template-columns: 240px 1fr 320px; gap: 1rem; height: calc(100vh - 56px); } @media (max-width: 1200px) { .dashboard-container { grid-template-columns: 1fr 320px; } .sidebar { display: none; } } @media (max-width: 768px) { .dashboard-container { grid-template-columns: 1fr; height: auto; } } .card-custom { background-color: var(--bg-surface); border: 1px solid var(--border-color); border-radius: var(--border-radius); display: flex; flex-direction: column; } .card-header-custom { padding: 0.75rem 1rem; border-bottom: 1px solid var(--border-color); font-size: 0.85rem; font-weight: 600; color: var(--text-secondary); display: flex; justify-content: space-between; align-items: center; } .sidebar { background-color: var(--bg-surface); border-right: 1px solid var(--border-color); } .nav-link-custom { padding: 0.75rem 1rem; color: var(--text-secondary); text-decoration: none; font-size: 0.9rem; display: flex; align-items: center; gap: 0.5rem; } .nav-link-custom:hover, .nav-link-custom.active { background-color: var(--bg-surface-light); color: var(--text-primary); } .signal-item { padding: 0.75rem 1rem; border-bottom: 1px solid var(--border-color); cursor: pointer; transition: background 0.2s; } .signal-item:hover { background-color: var(--bg-surface-light); } .signal-badge { font-size: 0.7rem; padding: 0.1rem 0.4rem; border-radius: 2px; font-weight: 700; } .badge-buy { background-color: rgba(0, 255, 157, 0.1); color: var(--accent-buy); } .badge-sell { background-color: rgba(255, 59, 48, 0.1); color: var(--accent-sell); } .sentiment-meter { height: 8px; background: linear-gradient(to right, var(--accent-sell), #facc15, var(--accent-buy)); border-radius: 4px; position: relative; margin: 1.5rem 0; } .sentiment-pointer { position: absolute; top: -4px; width: 2px; height: 16px; background: white; box-shadow: 0 0 5px rgba(0,0,0,0.5); left: 65%; /* Bullish example */ } .text-buy { color: var(--accent-buy); } .text-sell { color: var(--accent-sell); } .price-main { font-size: 1.5rem; font-weight: 700; margin: 0.5rem 0; } .btn-pulse { background-color: var(--accent-blue); color: white; border: none; padding: 0.5rem 1rem; border-radius: var(--border-radius); font-weight: 600; font-size: 0.85rem; transition: filter 0.2s; } .btn-pulse:hover { filter: brightness(1.2); } ::-webkit-scrollbar { width: 6px; } ::-webkit-scrollbar-track { background: var(--bg-main); } ::-webkit-scrollbar-thumb { background: var(--border-color); border-radius: 3px; } ::-webkit-scrollbar-thumb:hover { background: var(--text-secondary); }