/* ═══════════════════════════════════════════ PLAYER PiP ═══════════════════════════════════════════ */ .pip { position: fixed; bottom: 24px; right: 24px; width: 380px; background: #000; border: 1px solid var(--border-bright); box-shadow: 0 8px 32px rgba(0,0,0,0.8); z-index: 2000; display: none; flex-direction: column; } .pip.visible { display: flex; } .pip-header { display: flex; align-items: center; justify-content: space-between; padding: 6px 10px; background: var(--surface); border-bottom: 1px solid var(--border); gap: 8px; flex-shrink: 0; } .pip-channel { font-family: var(--font-mono); font-size: 11px; color: var(--accent); letter-spacing: 0.08em; text-transform: uppercase; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; flex: 1; } .pip-program { font-size: 11px; color: var(--text-dim); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; flex: 2; text-align: center; } .pip-close { background: none; border: none; color: var(--text-dim); font-size: 18px; cursor: pointer; padding: 0 4px; line-height: 1; flex-shrink: 0; transition: color 0.15s; } .pip-close:hover { color: var(--accent-live); } .pip video { width: 100%; aspect-ratio: 16/9; display: block; background: #000; } .pip-error { padding: 20px; text-align: center; font-family: var(--font-mono); font-size: 11px; color: var(--accent-live); letter-spacing: 0.06em; } .channel-cell { cursor: pointer; } .channel-cell:hover { background: var(--surface2); } .program-block.is-live { cursor: pointer; } @media (max-width: 600px) { .pip { width: calc(100vw - 16px); bottom: 8px; right: 8px; left: 8px; } }
Chargement du guide
⚠ Impossible de charger l'EPG
Vérifiez l'URL de votre flux XMLTV.
00:00:00
LIVE
⚠ Stream indisponible
Chaînes