Refactor the info-overlay template to introduce a structured EPG
layout: replace the previous flat channel-logo + content structure with
an .epg-layout wrapper that groups .channel-logo and a richer .content
area. Split content into .content-header (separate program title and
channel name), conditional program description rendering, and a
program-timeline containing explicit start/end times and a progress
track. Remove fixed image width attribute and rely on responsive CSS.
Revamp component SCSS: import refined fonts, increase overlay max-height,
add horizontal padding, and add new styles for .epg-layout, .channel-logo,
.content, .content-header, .program-title and related elements. Add
animations, improved image handling (object-fit + drop shadow), and
layout spacing to support varying content lengths and improve visual
hierarchy.
These changes improve responsiveness, accessibility of EPG text
display, and visual polish of the overlay.
Introduce a separate no-EPG presentation and move backdrop blur
into an isolated pseudo-element to avoid visual bleed and improve
layout control.
- Replace direct backdrop-filter on the overlay with a ::before
pseudo-element that applies backdrop-filter and mask-image
gradients (with -webkit- prefixed fallbacks) for a smoother
gradient blur effect.
- Add isolation on the overlay to contain stacking context and set
z-index of the pseudo-element to -1 to keep content above the blur.
- Add .no-epg modifier on the overlay and new .no-epg-layout,
.channel-logo-large and .channel-name-large styles to provide a
centered, accessible layout when no EPG data is available.
- Update template to render two distinct layouts: one when
epgProgram exists (original detailed view) and one fallback view
when epgProgram is missing, including larger channel logo and
centered channel name.
These changes improve visual fidelity of the blur effect and add a
clear fallback UI for channels without EPG data.