Xtream Code Club Access
.category-item.active { background: #667eea; color: white; }
const loadCategories = async () => { const response = await fetch('/api/categories'); const data = await response.json(); setCategories(data); if (data.live.length > 0) { setSelectedCategoryId(data.live[0].category_id); await loadStreams(data.live[0].category_id, 'live'); } }; xtream code club
.search-bar input { width: 100%; padding: 10px; border: 1px solid #ddd; border-radius: 5px; font-size: 14px; } .category-item.active { background: #667eea
.channel-card:hover { transform: translateY(-5px); box-shadow: 0 5px 20px rgba(0,0,0,0.15); } { const response = await fetch('/api/categories')
.right-sidebar { width: 300px; background: white; border-left: 1px solid #e0e0e0; overflow-y: auto; padding: 20px; }
.favorite-item, .recent-item { display: flex; justify-content: space-between; align-items: center; padding: 10px; margin-bottom: 10px; background: #f9f9f9; border-radius: 5px; cursor: pointer; transition: background 0.3s; }
.login-container { display: flex; justify-content: center; align-items: center; height: 100vh; }