/* Widget programme TV du soir ([pxn_tv_tonight] / [pxn_tv_widget]) - charte du player pxnetwork-media-streaming */

.pxn_tv_widget{box-sizing:border-box;margin:0 0 20px;padding:14px 12px 10px;background:#000;color:#fff;border-radius:10px;box-shadow:0 8px 30px rgba(0,0,0,.25);font-size:15px;line-height:1.3}
.pxn_tv_widget *{box-sizing:border-box}
.pxn_tv_widget center{text-align:left}
.pxn_tv_widget center > div:first-child{font-size:inherit!important;margin:0 0 12px!important}

/* Titre */
.pxn_tv_widget .title{display:inline-flex;align-items:center;gap:8px;margin:0;padding:0;background:none;color:#fff;font-size:19px;font-weight:bold;text-decoration:none;letter-spacing:.01em;transition:color .2s}
.pxn_tv_widget .title:before{content:"";width:10px;height:10px;border-radius:50%;background:#e50914;box-shadow:0 0 0 0 rgba(229,9,20,.6);animation:pxn-tv-live 2.4s infinite}
.pxn_tv_widget .title:hover{color:#ff5a63;text-decoration:none}

/* Sélecteurs films / séries et parties de soirée */
.pxn_tv_widget .grid_selector,.pxn_tv_widget .part_selector{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 8px;padding:0}
.pxn_tv_widget .part_selector{margin-bottom:12px}
.pxn_tv_widget .grid_selector a,.pxn_tv_widget .part_selector a{display:inline-block;padding:6px 12px;border:1px solid #444;border-radius:999px;background:#1c1c1c;color:#d0d0d0;font-size:12px;font-weight:bold;line-height:1;text-decoration:none;cursor:pointer;user-select:none;
	transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s,transform .15s}
.pxn_tv_widget .grid_selector a:hover,.pxn_tv_widget .part_selector a:hover{border-color:#777;color:#fff}
.pxn_tv_widget .grid_selector a:active,.pxn_tv_widget .part_selector a:active{transform:scale(.95)}
.pxn_tv_widget .grid_selector a.on{background:#e50914;border-color:#e50914;color:#fff;box-shadow:0 4px 14px rgba(229,9,20,.45)}
.pxn_tv_widget .part_selector a.on{background:#fff;border-color:#fff;color:#000}

/* Grille */
.pxn_tv_widget table.grid{width:100%;margin:0;border:0;border-collapse:separate;border-spacing:0;background:none}
.pxn_tv_widget table.grid td{padding:8px 6px;border:0;border-bottom:1px solid #1f1f1f;background:transparent;vertical-align:top;text-align:left;transition:background-color .2s}
.pxn_tv_widget table.grid td:first-child{width:52px;padding-left:4px;border-radius:8px 0 0 8px}
.pxn_tv_widget table.grid td:last-child{border-radius:0 8px 8px 0}
.pxn_tv_widget table.grid tr:hover td{background:#161616}
.pxn_tv_widget table.grid tr.is-link{cursor:pointer}
.pxn_tv_widget table.grid tr.is-link:hover a.pxn-tv-title{color:#ff5a63}

/* Logo de chaîne : pastille blanche (GIF transparents à texte sombre) */
.pxn_tv_widget .logo{display:block;width:44px;height:44px;margin:0;padding:4px;object-fit:contain;background:#fff;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.5);transition:transform .3s ease,box-shadow .3s}
.pxn_tv_widget tr:hover .logo{transform:scale(1.08);box-shadow:0 4px 14px rgba(229,9,20,.35)}

/* Heure, note, titre */
.pxn_tv_widget .heure{display:inline-block;margin:0 6px 4px 0;padding:3px 8px;border-radius:4px;background:#4a5d80;color:#fff;font-size:12px;font-weight:bold;letter-spacing:.05em;font-variant-numeric:tabular-nums;vertical-align:middle}
.pxn_tv_widget td.serie .heure{background:#6b7280}
/* Note : 5 étoiles "off" en fond, les étoiles "on" par-dessus sur s0..s5 x 14px (1 seul élément au lieu de 5 img) */
.pxn_tv_widget .pxn-tv-stars{display:inline-block;position:relative;width:70px;height:14px;vertical-align:middle;background:url(https://pix-geeks.com/wp-content/themes/pixgeeks18/images/rating_off.png) repeat-x 0 0/14px 14px}
.pxn_tv_widget .pxn-tv-stars:before{content:"";position:absolute;top:0;left:0;bottom:0;width:calc(var(--pxn-stars,0) * 14px);background:url(https://pix-geeks.com/wp-content/themes/pixgeeks18/images/rating_on.png) repeat-x 0 0/14px 14px}
.pxn_tv_widget .pxn-tv-stars.s1{--pxn-stars:1}.pxn_tv_widget .pxn-tv-stars.s2{--pxn-stars:2}.pxn_tv_widget .pxn-tv-stars.s3{--pxn-stars:3}.pxn_tv_widget .pxn-tv-stars.s4{--pxn-stars:4}.pxn_tv_widget .pxn-tv-stars.s5{--pxn-stars:5}
/* Pastille VOD (ex-style inline) */
.pxn_tv_widget .pxn-tv-vod{display:inline-block;width:34px;height:20px;position:relative;top:5px;left:4px;border-radius:0}
.pxn_tv_widget td a{color:#fff;font-weight:bold;text-decoration:none;transition:color .2s}
.pxn_tv_widget td a:hover{color:#ff5a63;text-decoration:none}
.pxn_tv_widget td span:not(.heure){color:#fff;font-weight:bold}

/* Filtrage : apparition en fondu (l'animation rejoue quand display passe de none à visible) */
.pxn_tv_widget .grid_hidden{display:none}
.pxn_tv_widget table.grid tr:not(.grid_hidden){animation:pxn-tv-in .35s ease both}

.pxn_tv_widget .grid_selector a:focus-visible,.pxn_tv_widget .part_selector a:focus-visible,.pxn_tv_widget td a:focus-visible{outline:2px solid #e50914;outline-offset:2px}

@keyframes pxn-tv-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes pxn-tv-live{0%{box-shadow:0 0 0 0 rgba(229,9,20,.6)}70%{box-shadow:0 0 0 8px rgba(229,9,20,0)}100%{box-shadow:0 0 0 0 rgba(229,9,20,0)}}

@media (prefers-reduced-motion:reduce){
	.pxn_tv_widget *,.pxn_tv_widget *:before{animation:none!important;transition:none!important}
}

/* Choix "Live" (point rouge animé) */
.pxn_tv_widget .part_selector a#live{display:inline-flex;align-items:center;gap:6px}
.pxn_tv_widget .part_selector a#live:before{content:"";width:7px;height:7px;border-radius:50%;background:#e50914;animation:pxn-tv-live 2.4s infinite}
