body { font-family: 'Inter', system-ui, -apple-system, sans-serif; background: #f5f6fb; color: #2c2f33; -webkit-font-smoothing: antialiased; }
.glass-panel { background: rgba(255,255,255,0.75); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); }
.glass-modal { background: rgba(255,255,255,0.88); backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); }
.custom-scrollbar::-webkit-scrollbar { width: 4px; height: 4px; }
.custom-scrollbar::-webkit-scrollbar-track { background: transparent; }
.custom-scrollbar::-webkit-scrollbar-thumb { background: #dadde4; border-radius: 10px; }
.material-symbols-outlined { font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24; display: inline-block; vertical-align: middle; line-height: 1; }
@keyframes price-flash-up { 0% { background-color: rgba(0,106,40,0.2); } 100% { background-color: transparent; } }
@keyframes price-flash-down { 0% { background-color: rgba(180,19,64,0.2); } 100% { background-color: transparent; } }
.flash-up { animation: price-flash-up 0.8s ease-out; }
.flash-down { animation: price-flash-down 0.8s ease-out; }
.skeleton { position: relative; overflow: hidden; background: #e0e2e9; border-radius: 999px; }
.skeleton::after { content: ''; position: absolute; inset: 0; transform: translateX(-100%); background: linear-gradient(90deg, transparent, rgba(255,255,255,.55), transparent); animation: shimmer 1.4s infinite; }
@keyframes shimmer { 100% { transform: translateX(100%); } }
.nav-link { color: #595c60; }
.nav-link.active { background: #6a1cf6; color: #fff; box-shadow: 0 8px 20px rgba(106,28,246,.18); }
.line-clamp-2 { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.line-clamp-3 { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.chart-container table, .chart-container td { border: 0 !important; }
