.tvl-chart{background:var(--bg-card);border-radius:16px;padding:24px;box-shadow:var(--shadow-sm);margin-bottom:24px}.tvl-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.tvl-title{font-size:20px;font-weight:700;color:var(--text-primary);margin:0}.tvl-updated{font-size:12px;color:var(--text-secondary);font-family:IBM Plex Mono,monospace}.tvl-filters{display:flex;flex-direction:column;gap:12px;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--border-primary)}.tvl-chain-filter{display:flex;gap:8px;flex-wrap:wrap}.tvl-chain-btn{padding:8px 16px;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:8px;color:var(--text-secondary);font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:6px}.tvl-chain-btn:hover{background:var(--bg-tertiary);border-color:var(--accent-primary);color:var(--text-primary)}.tvl-chain-btn.active{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.tvl-category-filter{display:flex;gap:8px;flex-wrap:wrap}.tvl-category-btn{padding:6px 12px;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:6px;color:var(--text-secondary);font-size:12px;font-weight:500;cursor:pointer;transition:all .2s ease}.tvl-category-btn:hover{background:var(--bg-tertiary);border-color:var(--accent-secondary);color:var(--text-primary)}.tvl-category-btn.active{background:var(--accent-secondary);border-color:var(--accent-secondary);color:#fff}.tvl-summary-top{background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));border-radius:12px;padding:20px;margin-bottom:20px;text-align:center}.tvl-summary-label{font-size:14px;font-weight:600;color:rgba(255,255,255,.9);text-transform:uppercase;letter-spacing:1px;margin-bottom:8px}.tvl-summary-value{font-size:36px;font-weight:700;color:#fff;font-family:IBM Plex Mono,monospace}.tvl-list{display:flex;flex-direction:column;gap:12px}.tvl-item{display:flex;align-items:center;gap:16px;padding:16px;background:var(--bg-secondary);border-radius:12px;transition:all .2s ease;cursor:pointer}.tvl-item:hover{background:var(--bg-tertiary);transform:translateX(4px)}.tvl-rank{width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:var(--text-secondary)}.tvl-logo,.tvl-rank{background:var(--bg-tertiary);border-radius:50%;flex-shrink:0}.tvl-logo{width:40px;height:40px;-o-object-fit:cover;object-fit:cover}.tvl-info{flex:1;min-width:0}.tvl-name{font-size:16px;font-weight:600;color:var(--text-primary);margin-bottom:4px;display:flex;align-items:center;gap:8px}.tvl-symbol{display:inline-block;padding:2px 8px;background:var(--bg-tertiary);border-radius:4px;font-size:11px;font-weight:700;font-family:IBM Plex Mono,monospace}.tvl-meta,.tvl-symbol{color:var(--text-secondary)}.tvl-meta{font-size:12px;display:flex;align-items:center;gap:8px}.tvl-chains{color:var(--text-tertiary)}.tvl-metrics{text-align:right;flex-shrink:0}.tvl-value{font-size:18px;font-weight:700;color:var(--text-primary);font-family:IBM Plex Mono,monospace;margin-bottom:4px}.tvl-changes{display:flex;gap:8px;justify-content:flex-end;margin-bottom:4px}.tvl-change{font-size:11px;font-weight:600;font-family:IBM Plex Mono,monospace}.tvl-change-positive{color:var(--success)}.tvl-change-negative{color:var(--danger)}.tvl-change-neutral{color:var(--text-secondary)}.tvl-ratio{font-size:11px;color:var(--text-tertiary);font-family:IBM Plex Mono,monospace}.tvl-loading{text-align:center;padding:60px 20px;color:var(--text-secondary)}.tvl-error{padding:20px;background:var(--danger-glow);border:1px solid var(--danger);border-radius:12px;color:var(--danger);text-align:center}.tvl-empty{text-align:center;padding:60px 20px;color:var(--text-secondary)}.tvl-empty-icon{font-size:4rem;margin-bottom:16px;opacity:.5}@media (max-width:768px){.tvl-chart{padding:16px}.tvl-header{flex-direction:column;align-items:flex-start;gap:8px}.tvl-filters{gap:8px}.tvl-category-filter,.tvl-chain-filter{gap:6px}.tvl-chain-btn{padding:6px 12px;font-size:12px}.tvl-category-btn{padding:4px 10px;font-size:11px}.tvl-summary-top{padding:16px}.tvl-summary-value{font-size:28px}.tvl-item{padding:12px;gap:12px}.tvl-rank{width:28px;height:28px;font-size:12px}.tvl-logo{width:32px;height:32px}.tvl-name{font-size:14px;flex-wrap:wrap}.tvl-symbol{font-size:10px}.tvl-value{font-size:16px}.tvl-changes{flex-direction:column;gap:2px}.tvl-change{font-size:10px}}[data-theme=light] .tvl-chart{background:#ffffff;box-shadow:0 1px 3px rgba(0,0,0,.1)}[data-theme=light] .tvl-item{background:#f8f9fa}[data-theme=light] .tvl-item:hover,[data-theme=light] .tvl-logo,[data-theme=light] .tvl-rank{background:#e9ecef}[data-theme=light] .tvl-chain-btn{background:#f8f9fa;border-color:#dee2e6}[data-theme=light] .tvl-chain-btn:hover{background:#e9ecef}[data-theme=light] .tvl-chain-btn.active{background:var(--accent-primary);color:#ffffff}[data-theme=light] .tvl-category-btn{background:#f8f9fa;border-color:#dee2e6}[data-theme=light] .tvl-category-btn:hover{background:#e9ecef}[data-theme=light] .tvl-category-btn.active{background:var(--accent-secondary);color:#ffffff}.user-menu-loading{padding:8px}.user-menu-spinner{width:20px;height:20px;border:2px solid rgba(255,255,255,.2);border-top-color:#667eea;border-radius:50%;animation:spin .8s linear infinite}.user-menu-login-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:0 2px 8px rgba(102,126,234,.3)}.user-menu-login-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(102,126,234,.4)}.user-menu-login-btn:active{transform:translateY(0)}.user-menu{position:relative}.user-menu-trigger{display:flex;align-items:center;gap:8px;padding:6px 12px 6px 6px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:24px;color:#fff;font-size:14px;cursor:pointer;transition:all .2s}.user-menu-trigger:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.2)}.user-menu-avatar{width:32px;height:32px;border-radius:50%;-o-object-fit:cover;object-fit:cover}.user-menu-avatar-placeholder{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-weight:600;font-size:14px}.user-menu-name{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-menu-overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:9998}.user-menu-dropdown{position:absolute;top:calc(100% + 8px);right:0;width:280px;background:linear-gradient(135deg,#1a1a2e,#16213e);border:1px solid rgba(255,255,255,.1);border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.4);z-index:9999;animation:slideDown .2s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.user-menu-header{padding:16px}.user-menu-email{font-size:14px;color:#fff;font-weight:500;margin-bottom:8px;word-break:break-all}.user-menu-plan{display:flex;align-items:center}.user-menu-plan-badge{display:inline-block;padding:4px 12px;border-radius:12px;font-size:11px;font-weight:700;letter-spacing:.5px}.user-menu-plan-free{background:rgba(156,163,175,.2);color:#9ca3af}.user-menu-plan-pro{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.user-menu-plan-enterprise{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff}.user-menu-divider{height:1px;background:rgba(255,255,255,.1);margin:0 8px}.user-menu-section-label{padding:8px 16px;font-size:11px;font-weight:600;color:#667eea;text-transform:uppercase;letter-spacing:.5px;margin-top:4px}.user-menu-items{padding:8px}.user-menu-item{display:flex;align-items:center;gap:12px;padding:12px;border-radius:8px;color:#ccc;font-size:14px;text-decoration:none;background:transparent;border:none;width:100%;cursor:pointer;transition:all .2s}.user-menu-item:hover{background:rgba(255,255,255,.05);color:#fff}.user-menu-item svg{opacity:.7}.user-menu-item-upgrade{color:#667eea}.user-menu-item-upgrade:hover{background:rgba(102,126,234,.1);color:#764ba2}.user-menu-item-signout{color:#ef4444}.user-menu-item-signout:hover{background:rgba(239,68,68,.1)}@media (max-width:768px){.user-menu-name{display:none}.user-menu-trigger{padding:6px}.user-menu-dropdown{right:-16px}}.dex-volume-chart{background:var(--bg-card);border-radius:16px;padding:24px;box-shadow:var(--shadow-sm);margin-bottom:24px}.dex-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.dex-title{font-size:20px;font-weight:700;color:var(--text-primary);margin:0}.dex-updated{font-size:12px;color:var(--text-secondary);font-family:IBM Plex Mono,monospace}.dex-chain-filter{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--border-primary)}.dex-chain-btn{padding:8px 16px;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:8px;color:var(--text-secondary);font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:6px}.dex-chain-btn:hover{background:var(--bg-tertiary);border-color:var(--accent-primary);color:var(--text-primary)}.dex-chain-btn.active{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.dex-list{display:flex;flex-direction:column;gap:12px}.dex-item{display:flex;align-items:center;gap:16px;padding:16px;background:var(--bg-secondary);border-radius:12px;transition:all .2s ease;cursor:pointer}.dex-item:hover{transform:translateX(4px)}.dex-item:hover,.dex-rank{background:var(--bg-tertiary)}.dex-rank{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:13px;font-weight:700;color:var(--text-secondary);flex-shrink:0}.dex-info{flex:1;min-width:0}.dex-name{font-size:16px;font-weight:600;color:var(--text-primary);margin-bottom:4px}.dex-chains{font-size:12px;color:var(--text-secondary);font-family:IBM Plex Mono,monospace}.dex-volume{text-align:right;flex-shrink:0}.dex-volume-24h{font-size:18px;font-weight:700;color:var(--text-primary);margin-bottom:4px}.dex-change,.dex-volume-24h{font-family:IBM Plex Mono,monospace}.dex-change{font-size:13px;font-weight:600}.dex-change-positive{color:var(--success)}.dex-change-negative{color:var(--danger)}.dex-change-neutral{color:var(--text-secondary)}.dex-summary{margin-top:20px;padding-top:16px;border-top:1px solid var(--border-primary);display:flex;justify-content:space-between;align-items:center}.dex-summary-label{font-size:14px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.dex-summary-value{font-size:24px;font-weight:700;color:var(--accent-primary);font-family:IBM Plex Mono,monospace}.dex-loading{text-align:center;padding:60px 20px;color:var(--text-secondary)}.loading-spinner{width:40px;height:40px;margin:0 auto 16px;border:4px solid var(--border-primary);border-top-color:var(--accent-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.dex-error{padding:20px;background:var(--danger-glow);border:1px solid var(--danger);border-radius:12px;color:var(--danger);text-align:center}.dex-empty{text-align:center;padding:60px 20px;color:var(--text-secondary)}.dex-empty-icon{font-size:4rem;margin-bottom:16px;opacity:.5}@media (max-width:768px){.dex-volume-chart{padding:16px}.dex-header{flex-direction:column;align-items:flex-start;gap:8px}.dex-chain-filter{gap:6px}.dex-chain-btn{padding:6px 12px;font-size:12px}.dex-item{padding:12px;gap:12px}.dex-rank{width:28px;height:28px;font-size:12px}.dex-name{font-size:14px}.dex-volume-24h{font-size:16px}.dex-change{font-size:12px}.dex-summary-value{font-size:20px}}[data-theme=light] .dex-volume-chart{background:#ffffff;box-shadow:0 1px 3px rgba(0,0,0,.1)}[data-theme=light] .dex-item{background:#f8f9fa}[data-theme=light] .dex-item:hover,[data-theme=light] .dex-rank{background:#e9ecef}[data-theme=light] .dex-chain-btn{background:#f8f9fa;border-color:#dee2e6}[data-theme=light] .dex-chain-btn:hover{background:#e9ecef}[data-theme=light] .dex-chain-btn.active{background:var(--accent-primary);color:#ffffff}