/* ---- Series page: detail header + seasons tabs + episode list ---- */ .seriesHeader { display: flex; gap: 20px; margin-bottom: 24px; } .seriesPoster { width: 160px; aspect-ratio: 2 / 3; object-fit: cover; border-radius: 8px; background: var(--panel); flex-shrink: 0; } .seriesPoster.noImage { visibility: hidden; } @media (max-width: 600px) { .seriesHeader { flex-direction: column; } .seriesPoster { width: 120px; } } /* Tabs: one per season. */ .tabs { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 8px; margin-bottom: 20px; border-bottom: 1px solid rgba(255,255,255,.1); } .tab { background: none; color: var(--muted); font-weight: 600; padding: 8px 4px; border-radius: 0; white-space: nowrap; border-bottom: 2px solid transparent; } .tab:hover { background: none; color: var(--text); } .tab.active { color: var(--accent-bright); border-bottom-color: var(--accent-bright); } .episodeList { display: flex; flex-direction: column; gap: 12px; } .episodeRow { display: flex; gap: 14px; align-items: center; background: var(--bg-header); border-radius: 10px; padding: 10px; } .episodeRow img { width: 120px; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 6px; background: var(--panel); flex-shrink: 0; } .episodeRow img.noImage { visibility: hidden; } .episodeInfo { flex: 1; min-width: 0; } .episodeInfo strong { display: block; margin-bottom: 4px; } .episodeInfo p { margin: 0; color: var(--muted); font-size: 13px; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; } .episodeRow button { flex-shrink: 0; } @media (max-width: 600px) { .episodeRow { flex-wrap: wrap; } .episodeInfo { order: 3; flex-basis: 100%; } }