/** * ═══════════════════════════════════════════════════════════════════ * MODERN DASHBOARD - TRADINGVIEW STYLE * Crypto Monitor HF — Ultra Modern Dashboard with Vibrant Colors * ═══════════════════════════════════════════════════════════════════ */ /* ═══════════════════════════════════════════════════════════════════ VIBRANT COLOR PALETTE ═══════════════════════════════════════════════════════════════════ */ :root { /* Vibrant Primary Colors */ --vibrant-blue: #00D4FF; --vibrant-purple: #8B5CF6; --vibrant-pink: #EC4899; --vibrant-cyan: #06B6D4; --vibrant-green: #10B981; --vibrant-orange: #F97316; --vibrant-yellow: #FACC15; --vibrant-red: #EF4444; /* Neon Glow Colors */ --neon-blue: #00D4FF; --neon-purple: #8B5CF6; --neon-pink: #EC4899; --neon-cyan: #06B6D4; --neon-green: #10B981; /* Advanced Glassmorphism */ --glass-vibrant: rgba(255, 255, 255, 0.08); --glass-vibrant-strong: rgba(255, 255, 255, 0.15); --glass-vibrant-stronger: rgba(255, 255, 255, 0.22); --glass-border-vibrant: rgba(255, 255, 255, 0.18); --glass-border-vibrant-strong: rgba(255, 255, 255, 0.3); /* Vibrant Gradients */ --gradient-vibrant-1: linear-gradient(135deg, #667eea 0%, #764ba2 50%, #f093fb 100%); --gradient-vibrant-2: linear-gradient(135deg, #00D4FF 0%, #8B5CF6 50%, #EC4899 100%); --gradient-vibrant-3: linear-gradient(135deg, #06B6D4 0%, #10B981 50%, #FACC15 100%); --gradient-vibrant-4: linear-gradient(135deg, #F97316 0%, #EC4899 50%, #8B5CF6 100%); /* Neon Glow Effects */ --glow-neon-blue: 0 0 20px rgba(0, 212, 255, 0.5), 0 0 40px rgba(0, 212, 255, 0.3), 0 0 60px rgba(0, 212, 255, 0.2); --glow-neon-purple: 0 0 20px rgba(139, 92, 246, 0.5), 0 0 40px rgba(139, 92, 246, 0.3), 0 0 60px rgba(139, 92, 246, 0.2); --glow-neon-pink: 0 0 20px rgba(236, 72, 153, 0.5), 0 0 40px rgba(236, 72, 153, 0.3), 0 0 60px rgba(236, 72, 153, 0.2); --glow-neon-cyan: 0 0 20px rgba(6, 182, 212, 0.5), 0 0 40px rgba(6, 182, 212, 0.3), 0 0 60px rgba(6, 182, 212, 0.2); --glow-neon-green: 0 0 20px rgba(16, 185, 129, 0.5), 0 0 40px rgba(16, 185, 129, 0.3), 0 0 60px rgba(16, 185, 129, 0.2); } /* ═══════════════════════════════════════════════════════════════════ ADVANCED GLASSMORPHISM ═══════════════════════════════════════════════════════════════════ */ .glass-vibrant { background: var(--glass-vibrant); backdrop-filter: blur(30px) saturate(180%); -webkit-backdrop-filter: blur(30px) saturate(180%); border: 1px solid var(--glass-border-vibrant); border-radius: 24px; box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.2), inset 0 -1px 0 rgba(0, 0, 0, 0.2); position: relative; overflow: hidden; transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); } .glass-vibrant::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: linear-gradient( 90deg, transparent, rgba(0, 212, 255, 0.6), rgba(139, 92, 246, 0.6), rgba(236, 72, 153, 0.6), transparent ); opacity: 0.8; animation: shimmer 3s infinite; } .glass-vibrant::after { content: ''; position: absolute; top: -50%; left: -50%; width: 200%; height: 200%; background: radial-gradient( circle, rgba(0, 212, 255, 0.1) 0%, rgba(139, 92, 246, 0.1) 50%, transparent 70% ); animation: rotate 20s linear infinite; pointer-events: none; } @keyframes shimmer { 0%, 100% { opacity: 0.8; } 50% { opacity: 1; } } @keyframes rotate { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } .glass-vibrant:hover { transform: translateY(-4px); box-shadow: 0 16px 48px rgba(0, 0, 0, 0.5), var(--glow-neon-blue), inset 0 1px 0 rgba(255, 255, 255, 0.3); border-color: rgba(0, 212, 255, 0.4); } .glass-vibrant-strong { background: var(--glass-vibrant-strong); backdrop-filter: blur(40px) saturate(200%); -webkit-backdrop-filter: blur(40px) saturate(200%); border: 1.5px solid var(--glass-border-vibrant-strong); } .glass-vibrant-stronger { background: var(--glass-vibrant-stronger); backdrop-filter: blur(50px) saturate(220%); -webkit-backdrop-filter: blur(50px) saturate(220%); border: 2px solid var(--glass-border-vibrant-strong); } /* ═══════════════════════════════════════════════════════════════════ MODERN HEADER WITH CRYPTO LIST ═══════════════════════════════════════════════════════════════════ */ .modern-header { background: rgba(255, 255, 255, 0.98); backdrop-filter: blur(30px) saturate(180%); -webkit-backdrop-filter: blur(30px) saturate(180%); border-bottom: 2px solid rgba(0, 0, 0, 0.1); box-shadow: 0 4px 24px rgba(0, 0, 0, 0.08), 0 2px 8px rgba(0, 0, 0, 0.04), inset 0 1px 0 rgba(255, 255, 255, 0.9); position: sticky; top: 0; z-index: 1000; padding: 20px 32px; } .modern-header h1 { color: #0f172a; text-shadow: none; } .modern-header .text-muted { color: #64748b; } .header-crypto-list { display: flex; align-items: center; gap: 24px; overflow-x: auto; scrollbar-width: thin; scrollbar-color: rgba(0, 212, 255, 0.3) transparent; padding: 8px 0; } .header-crypto-list::-webkit-scrollbar { height: 4px; } .header-crypto-list::-webkit-scrollbar-track { background: transparent; } .header-crypto-list::-webkit-scrollbar-thumb { background: rgba(0, 212, 255, 0.3); border-radius: 2px; } .crypto-item-header { display: flex; align-items: center; gap: 8px; padding: 8px 16px; background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 12px; cursor: pointer; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); white-space: nowrap; min-width: fit-content; } .crypto-item-header:hover { background: rgba(0, 212, 255, 0.1); border-color: rgba(0, 212, 255, 0.4); transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0, 212, 255, 0.2); } .crypto-item-header.active { background: linear-gradient(135deg, rgba(0, 212, 255, 0.2), rgba(139, 92, 246, 0.2)); border-color: rgba(0, 212, 255, 0.5); box-shadow: var(--glow-neon-blue); } .crypto-symbol-header { font-weight: 700; font-size: 0.875rem; color: var(--vibrant-cyan); letter-spacing: 0.05em; } .crypto-price-header { font-weight: 600; font-size: 0.875rem; color: var(--text-primary); } .crypto-change-header { font-weight: 600; font-size: 0.75rem; padding: 2px 6px; border-radius: 4px; } .crypto-change-header.positive { color: var(--vibrant-green); background: rgba(16, 185, 129, 0.15); } .crypto-change-header.negative { color: var(--vibrant-red); background: rgba(239, 68, 68, 0.15); } /* ═══════════════════════════════════════════════════════════════════ ADVANCED SIDEBAR ═══════════════════════════════════════════════════════════════════ */ .sidebar-modern { width: 280px; padding: 28px 20px; background: linear-gradient( 180deg, rgba(15, 23, 42, 0.95) 0%, rgba(30, 41, 59, 0.9) 50%, rgba(15, 23, 42, 0.95) 100% ); backdrop-filter: blur(40px) saturate(180%); -webkit-backdrop-filter: blur(40px) saturate(180%); border-right: 2px solid rgba(0, 212, 255, 0.2); box-shadow: 4px 0 32px rgba(0, 0, 0, 0.5), inset -1px 0 0 rgba(255, 255, 255, 0.05); position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; gap: 24px; overflow-y: auto; scrollbar-width: thin; scrollbar-color: rgba(0, 212, 255, 0.3) transparent; } .sidebar-modern::-webkit-scrollbar { width: 6px; } .sidebar-modern::-webkit-scrollbar-track { background: transparent; } .sidebar-modern::-webkit-scrollbar-thumb { background: rgba(0, 212, 255, 0.3); border-radius: 3px; } .sidebar-modern::-webkit-scrollbar-thumb:hover { background: rgba(0, 212, 255, 0.5); } .brand-modern { display: flex; align-items: center; gap: 12px; padding: 16px; background: linear-gradient(135deg, rgba(0, 212, 255, 0.1), rgba(139, 92, 246, 0.1)); border-radius: 16px; border: 1px solid rgba(0, 212, 255, 0.2); box-shadow: inset 0 1px 2px rgba(255, 255, 255, 0.1), 0 4px 16px rgba(0, 212, 255, 0.2); position: relative; overflow: hidden; transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); } .brand-modern::before { content: ''; position: absolute; inset: 0; background: linear-gradient(135deg, rgba(0, 212, 255, 0.1), rgba(139, 92, 246, 0.1)); opacity: 0; transition: opacity 0.4s ease; } .brand-modern:hover { transform: translateY(-2px); box-shadow: inset 0 1px 2px rgba(255, 255, 255, 0.15), 0 8px 24px rgba(0, 212, 255, 0.3), var(--glow-neon-blue); border-color: rgba(0, 212, 255, 0.4); } .brand-modern:hover::before { opacity: 1; } .nav-modern { display: flex; flex-direction: column; gap: 8px; } .nav-button-modern { border: none; border-radius: 12px; padding: 12px 16px; display: flex; align-items: center; gap: 12px; background: transparent; color: var(--text-secondary); font-weight: 600; font-family: 'Manrope', sans-serif; font-size: 0.875rem; cursor: pointer; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); position: relative; overflow: visible; } .nav-button-modern::before { content: ''; position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 3px; height: 0; background: linear-gradient(180deg, var(--vibrant-cyan), var(--vibrant-purple)); border-radius: 0 3px 3px 0; transition: height 0.3s cubic-bezier(0.4, 0, 0.2, 1); opacity: 0; box-shadow: var(--glow-neon-cyan); } .nav-button-modern::after { content: ''; position: absolute; inset: 0; background: linear-gradient(135deg, rgba(0, 212, 255, 0.1), rgba(139, 92, 246, 0.1)); border-radius: 12px; opacity: 0; transition: opacity 0.3s ease; z-index: -1; } .nav-button-modern:hover { color: var(--text-primary); background: rgba(255, 255, 255, 0.05); transform: translateX(4px); } .nav-button-modern:hover::before { height: 60%; opacity: 1; } .nav-button-modern:hover::after { opacity: 1; } .nav-button-modern.active { background: linear-gradient(135deg, rgba(0, 212, 255, 0.15), rgba(139, 92, 246, 0.15)); color: var(--vibrant-cyan); box-shadow: inset 0 1px 2px rgba(255, 255, 255, 0.1), 0 4px 16px rgba(0, 212, 255, 0.2); border: 1px solid rgba(0, 212, 255, 0.3); } .nav-button-modern.active::before { height: 70%; opacity: 1; box-shadow: var(--glow-neon-cyan); } .nav-button-modern.active::after { opacity: 1; } /* ═══════════════════════════════════════════════════════════════════ TRADINGVIEW STYLE CHARTS ═══════════════════════════════════════════════════════════════════ */ .tradingview-chart-container { position: relative; background: var(--glass-vibrant); backdrop-filter: blur(30px) saturate(180%); -webkit-backdrop-filter: blur(30px) saturate(180%); border: 1px solid var(--glass-border-vibrant); border-radius: 24px; padding: 24px; box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.1); overflow: hidden; } .tradingview-chart-container::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: linear-gradient( 90deg, transparent, rgba(0, 212, 255, 0.6), rgba(139, 92, 246, 0.6), transparent ); } .chart-toolbar { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; padding-bottom: 16px; border-bottom: 1px solid rgba(255, 255, 255, 0.1); } .chart-timeframe-btn { padding: 6px 12px; border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 8px; background: rgba(255, 255, 255, 0.05); color: var(--text-secondary); font-size: 0.75rem; font-weight: 600; cursor: pointer; transition: all 0.2s ease; } .chart-timeframe-btn:hover { background: rgba(0, 212, 255, 0.1); border-color: rgba(0, 212, 255, 0.3); color: var(--vibrant-cyan); } .chart-timeframe-btn.active { background: linear-gradient(135deg, rgba(0, 212, 255, 0.2), rgba(139, 92, 246, 0.2)); border-color: rgba(0, 212, 255, 0.4); color: var(--vibrant-cyan); box-shadow: 0 0 12px rgba(0, 212, 255, 0.3); } .chart-indicators { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; } .chart-indicator-toggle { display: flex; align-items: center; gap: 6px; padding: 4px 8px; border-radius: 6px; background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.1); cursor: pointer; transition: all 0.2s ease; font-size: 0.75rem; } .chart-indicator-toggle:hover { background: rgba(255, 255, 255, 0.08); } .chart-indicator-toggle input[type="checkbox"] { width: 14px; height: 14px; cursor: pointer; accent-color: var(--vibrant-cyan); } /* ═══════════════════════════════════════════════════════════════════ RESPONSIVE DESIGN ═══════════════════════════════════════════════════════════════════ */ @media (max-width: 1024px) { .sidebar-modern { width: 240px; } .header-crypto-list { gap: 16px; } .crypto-item-header { padding: 6px 12px; } } @media (max-width: 768px) { .sidebar-modern { position: fixed; left: -280px; transition: left 0.3s ease; z-index: 2000; } .sidebar-modern.open { left: 0; } .header-crypto-list { gap: 12px; } .crypto-item-header { padding: 6px 10px; font-size: 0.75rem; } } /* ═══════════════════════════════════════════════════════════════════ ANIMATIONS ═══════════════════════════════════════════════════════════════════ */ @keyframes pulse-glow { 0%, 100% { box-shadow: 0 0 20px rgba(0, 212, 255, 0.5); } 50% { box-shadow: 0 0 30px rgba(0, 212, 255, 0.8), 0 0 50px rgba(0, 212, 255, 0.4); } } .pulse-glow { animation: pulse-glow 2s ease-in-out infinite; } /* ═══════════════════════════════════════════════════════════════════ UTILITY CLASSES ═══════════════════════════════════════════════════════════════════ */ .text-vibrant-blue { color: var(--vibrant-blue); } .text-vibrant-purple { color: var(--vibrant-purple); } .text-vibrant-pink { color: var(--vibrant-pink); } .text-vibrant-cyan { color: var(--vibrant-cyan); } .text-vibrant-green { color: var(--vibrant-green); } .bg-gradient-vibrant-1 { background: var(--gradient-vibrant-1); } .bg-gradient-vibrant-2 { background: var(--gradient-vibrant-2); } .bg-gradient-vibrant-3 { background: var(--gradient-vibrant-3); } .bg-gradient-vibrant-4 { background: var(--gradient-vibrant-4); } .glow-neon-blue { box-shadow: var(--glow-neon-blue); } .glow-neon-purple { box-shadow: var(--glow-neon-purple); } .glow-neon-pink { box-shadow: var(--glow-neon-pink); } .glow-neon-cyan { box-shadow: var(--glow-neon-cyan); } .glow-neon-green { box-shadow: var(--glow-neon-green); }