/* ---------- L'écran Nuvio (Vue moderne, thème Cramoisi) ---------- */
.nvo { position: absolute; inset: 0; overflow: hidden; background: #0D0D0D; color: #fff; font-family: Inter, "Segoe UI", system-ui, sans-serif; -webkit-font-smoothing: antialiased; }
.nvo button { font-family: inherit; }
/* Le haut de l'accueil : il montre l'affiche sélectionnée (pas de carrousel, pas de bouton). */
/* z-index 0 : le haut forme sa propre couche, ses dégradés (z-index 2) restent sous les rangées qui défilent. */
.nvo-hero { position: absolute; z-index: 0; left: 0; right: 0; top: 0; height: 30.958cqw; pointer-events: none; }
.nvo.paysage .nvo-hero { height: 32.646cqw; }
.nvo-bd { position: absolute; top: 0; bottom: 0; left: 33.833cqw; width: 72cqw; overflow: hidden; }
.nvo-bd > i { position: absolute; inset: 0; background: center / cover no-repeat; background-position: right top; opacity: 0; transition: opacity .4s ease; }
.nvo-bd > i.on { opacity: 1; }
.nvo-bd::before, .nvo-bd::after { content: ""; position: absolute; z-index: 2; pointer-events: none; }
.nvo-bd::before { left: 0; top: 0; bottom: 0; width: 45%; background: linear-gradient(90deg, #0D0D0D, rgba(13,13,13,.86) 22%, rgba(13,13,13,.56) 46%, rgba(13,13,13,.16) 76%, rgba(13,13,13,0)); }
.nvo-bd::after { left: 0; right: 0; top: 82%; bottom: 0; background: linear-gradient(rgba(13,13,13,0), rgba(13,13,13,.25) 40%, rgba(13,13,13,.65) 75%, #0D0D0D); }
.nvo-video { position: absolute; z-index: 1; left: 50%; top: 50%; width: 72cqw; height: 40.5cqw; transform: translate(-50%, -50%) scale(1.35); opacity: 0; transition: opacity .48s ease; }
.nvo-video.on { opacity: 1; }
.nvo-video iframe { width: 100%; height: 100%; border: 0; display: block; pointer-events: none; }
.nvo-info { position: absolute; z-index: 3; left: 5.4167cqw; bottom: 5.625cqw; width: 37.625cqw; display: flex; flex-direction: column; align-items: flex-start; gap: .767cqw; transition: opacity .25s ease; }
.nvo.paysage .nvo-info { bottom: 5.625cqw; }
.nvo-info.attente { opacity: 0; }
.nvo-logo { width: 22.917cqw; height: 10.417cqw; object-fit: contain; object-position: left center; display: block; }
.nvo-titre { margin: 0; font: 600 2.683cqw/3.45cqw Inter, sans-serif; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.nvo.paysage .nvo-titre { font-size: 2.917cqw; line-height: 3.75cqw; }
.nvo-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .833cqw; font: 500 1.25cqw/1.667cqw Inter, sans-serif; letter-spacing: .052cqw; color: #B3B3B3; }
.nvo-meta .pt { width: .4167cqw; height: .4167cqw; border-radius: 50%; background: rgba(128,128,128,.78); }
.nvo-meta .pastille { display: inline-flex; align-items: center; gap: .833cqw; padding: .417cqw .833cqw; border-radius: .625cqw; border: max(1px, .104cqw) solid rgba(255,255,255,.55); color: #fff; font-weight: 600; }
.nvo-meta .pastille i { width: max(1px, .104cqw); height: 1.25cqw; background: rgba(255,255,255,.55); }
.nvo-meta .langue { color: #808080; }
.nvo-imdb { display: inline-flex; align-items: center; gap: .417cqw; }
.nvo-imdb svg { width: 2.5cqw; height: auto; display: block; }
.nvo-resume { margin: 0; font: 400 1.3125cqw/1.875cqw Inter, sans-serif; letter-spacing: .026cqw; white-space: pre-line; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.nvo.paysage .nvo-resume { font-size: 1.458cqw; line-height: 2.083cqw; }
/* Les rangées : une rangée pleine à la fois, qui s'arrête sous le haut de l'écran. */
/* Les rangées restent toujours alignées comme sur la TV (une rangée pleine sous le haut de l'écran) : la molette
   et le pavé tactile avancent d'une rangée à la fois, comme la télécommande (voir pilote). */
.nvo-rangees { position: absolute; z-index: 1; left: 0; right: 0; top: 27cqw; bottom: 0; overflow-y: auto; overflow-x: hidden; scrollbar-width: none; scroll-snap-type: y mandatory; overscroll-behavior: contain; padding-bottom: 29.25cqw; }
.nvo.paysage .nvo-rangees { top: 28.6875cqw; padding-bottom: 27.5625cqw; }
.nvo-rangees::-webkit-scrollbar { display: none; }
.nvo-rangee { scroll-snap-align: start; margin-bottom: 2.5cqw; }
.nvo-rangee h4 { margin: 0 0 1.458cqw; padding: 0 5.4167cqw; font: 600 1.667cqw/2.5cqw Inter, sans-serif; letter-spacing: .016cqw; color: #fff; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* Marge haute et basse de 3 cqw : la lueur des tuiles (flou de 28 dp) n'est pas rognée par la rangée. */
.nvo-piste { display: flex; gap: 1.25cqw; padding: 3cqw 5.4167cqw; margin: -3cqw 0; overflow-x: auto; scrollbar-width: none; scroll-padding: 0 5.4167cqw; cursor: grab; }
.nvo-piste::-webkit-scrollbar { display: none; }
.nvo-piste.tire { cursor: grabbing; user-select: none; }
.nvo-piste .vide { margin: 0; color: #808080; font-size: max(1.4cqw, 11px); }
/* Les cartes : 114 × 171 dp (Équilibré), coins Pilule (16 dp), liseré rouge quand elles sont sélectionnées. */
.nvo-carte, .nvo-tuile { position: relative; flex: none; padding: 0; border: 0; cursor: pointer; border-radius: 1.667cqw; background: #241A1A center / cover no-repeat; outline: none; }
.nvo-carte { width: 11.907cqw; height: 17.861cqw; }
.nvo.paysage .nvo-carte, .nvo-tuile { width: 21.809cqw; height: 12.321cqw; }
.nvo-carte::before, .nvo-tuile::before { content: ""; position: absolute; inset: 0; z-index: 2; border-radius: inherit; pointer-events: none; padding: max(1px, .104cqw);
  background: linear-gradient(rgba(255,255,255,.42), rgba(255,255,255,.139) 50%, rgba(255,255,255,0));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0); }
.nvo-carte::after, .nvo-tuile::after { content: ""; position: absolute; inset: -.104cqw; z-index: 4; border-radius: 1.771cqw; border: .208cqw solid #FF5252; opacity: 0; pointer-events: none; }
.nvo-carte.focus, .nvo-tuile.focus { z-index: 1; }
.nvo-carte.focus::after, .nvo-tuile.focus::after { opacity: 1; }
.nvo-carte:focus-visible::after, .nvo-tuile:focus-visible::after { opacity: 1; }
.nvo-carte.attente { background-image: none !important; overflow: hidden; }
.nvo-carte.attente > .reflet { position: absolute; inset: 0; border-radius: inherit; background: linear-gradient(90deg, transparent 0, rgba(255,255,255,.07) 40%, rgba(255,255,255,.13) 50%, rgba(255,255,255,.07) 60%, transparent 100%) no-repeat;
  background-size: 31.25cqw 100%; animation: nvo-reflet 1.6s linear infinite; }
@keyframes nvo-reflet { from { background-position: -52cqw 0; } to { background-position: 52cqw 0; } }
/* Carte paysage sans affiches maison : dégradé et logo en bas à gauche */
.nvo-carte .sur { position: absolute; inset: 0; z-index: 1; display: none; border-radius: inherit; background: linear-gradient(rgba(0,0,0,0) 58%, rgba(0,0,0,.75)); }
.nvo.paysage:not(.pp) .nvo-carte.img .sur { display: block; }
.nvo-carte .sur img { position: absolute; left: 1.042cqw; bottom: .833cqw; max-width: 62%; max-height: 34%; object-fit: contain; object-position: left bottom; }
.nvo-carte .sur b { position: absolute; left: 1.042cqw; right: 1.042cqw; bottom: 1.25cqw; font: 500 1.667cqw/1.25 Inter, sans-serif; text-align: left; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
/* Tuiles des collections : image étirée, lueur de sa couleur et GIF quand elles sont sélectionnées */
.nvo-tuile { background-size: 100% 100%; transition: box-shadow .25s ease; }
.nvo-tuile.focus { box-shadow: 0 0 2.9cqw var(--lueur, rgba(255,255,255,.35)); }
.nvo-tuile > img { position: absolute; inset: 0; width: 100%; height: 100%; border-radius: inherit; object-fit: fill; opacity: 0; transition: opacity .2s ease; }
.nvo-tuile > img.on { opacity: 1; }
/* La barre latérale moderne : cachée au repos, elle s'ouvre avec « Retour » (ou le bord gauche de l'écran). */
.nvo-bord { position: absolute; z-index: 5; left: 0; top: 0; bottom: 0; width: 1.6cqw; }
.nvo-menu { position: absolute; z-index: 8; left: 1.458cqw; top: 1.667cqw; width: 21.667cqw; height: 53.333cqw; padding: 1.458cqw 1.25cqw; border-radius: 3.125cqw; background: rgba(22,22,24,.97);
  display: flex; flex-direction: column; align-items: center; transform-origin: top left; animation: nvo-menu .345s cubic-bezier(.2,.9,.3,1) both; }
@keyframes nvo-menu { from { opacity: 0; transform: scale(.92, .97); } }
.nvo-menu > img { width: 72%; height: 3.75cqw; margin-top: 1.25cqw; object-fit: contain; }
.nvo-menu nav { flex: 1; width: 100%; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: .625cqw; margin-top: -1.25cqw; }
.nvo-menu nav button { width: 92%; display: flex; align-items: center; gap: 1.458cqw; padding: 1.042cqw 1.458cqw; border: 0; border-radius: 99px; background: transparent; color: #fff; cursor: pointer; text-align: left;
  font: 400 1.667cqw Inter, sans-serif; letter-spacing: .052cqw; white-space: nowrap; transition: transform .18s ease, background .18s ease; outline: none; }
.nvo-menu nav button span { flex: none; width: 3.542cqw; height: 3.542cqw; display: grid; place-items: center; }
.nvo-menu nav button svg { width: 2.292cqw; height: 2.292cqw; fill: currentColor; }
.nvo-menu nav button[aria-current="page"] { background: rgba(229,57,53,.15); color: #E53935; }
.nvo-menu nav button:hover, .nvo-menu nav button:focus-visible { background: rgba(255,255,255,.12); transform: scale(1.1); }
.nvo-menu nav button[aria-current="page"]:hover, .nvo-menu nav button[aria-current="page"]:focus-visible { background: rgba(229,57,53,.28); }
.nvo-menu nav button:disabled { opacity: .45; cursor: default; transform: none; background: transparent; }
/* Boutons communs : liseré rouge et léger grossissement quand ils sont sélectionnés (boutons TV Material) */
.nvo .bt { border: 0; cursor: pointer; outline: none; transition: transform .18s ease, background .18s ease; }
.nvo .bt:hover, .nvo .bt:focus-visible, .nvo .bt.focus { transform: scale(1.1); box-shadow: 0 0 0 .208cqw #FF5252; }
/* ---------- La fiche (MetaDetailsScreen) : pas d'affiche, le fond à droite, le logo et des boutons ronds ---------- */
.nvo-fiche { position: absolute; inset: 0; z-index: 6; overflow-y: auto; overflow-x: hidden; scrollbar-width: none; background: #0D0D0D; animation: nvo-fondu .3s ease both; }
.nvo-fiche::-webkit-scrollbar { display: none; }
@keyframes nvo-fondu { from { opacity: 0; } }
.nvo-fiche .fd { position: sticky; top: 0; height: 56.25cqw; margin-bottom: -56.25cqw; background: #0D0D0D right top / cover no-repeat; transition: opacity .4s ease; }
.nvo-fiche .fd::after { content: ""; position: absolute; inset: 0; transition: opacity .4s ease;
  background: linear-gradient(90deg, #0D0D0D 0, rgba(13,13,13,.95) 7.8%, rgba(13,13,13,.84) 17.16%, rgba(13,13,13,.7) 28.08%, rgba(13,13,13,.52) 40.56%, rgba(13,13,13,.34) 51.48%, rgba(13,13,13,.18) 60.84%, rgba(13,13,13,.07) 70.2%, rgba(13,13,13,0) 78%); }
.nvo-fiche.loin .fd { opacity: .15; }
.nvo-fiche.loin .fd::after { opacity: 0; }
.nvo-fiche .fv { position: sticky; top: 0; z-index: 0; height: 56.25cqw; margin-bottom: -56.25cqw; overflow: hidden; background: #000; animation: nvo-fondu .6s ease both; }
.nvo-fiche .fv iframe { width: 100%; height: 100%; border: 0; display: block; pointer-events: none; }
.nvo-fiche .fh { position: relative; z-index: 1; height: 56.25cqw; display: flex; flex-direction: column; justify-content: flex-end; align-items: flex-start; padding: 0 5cqw 1.667cqw; }
.nvo-fiche .flogo { height: 10.417cqw; padding-bottom: 1.667cqw; display: flex; align-items: center; }
.nvo-fiche .flogo img { max-width: 36cqw; max-height: 8.75cqw; object-fit: contain; object-position: left center; display: block; transform-origin: left bottom; transition: transform .6s ease; }
.nvo-fiche .ftitre { margin: 0 0 .833cqw; font: 700 3.75cqw/4.583cqw Inter, sans-serif; }
.nvo-fiche .fb { display: flex; align-items: center; gap: 1.25cqw; }
.nvo-fiche .lire { display: inline-flex; align-items: center; gap: .833cqw; padding: 1.458cqw 2.5cqw; border-radius: 3.333cqw; background: #fff; color: #000; font: 500 1.458cqw/2.083cqw Inter, sans-serif; }
.nvo-fiche .lire svg { width: 1.875cqw; height: 1.875cqw; fill: currentColor; }
.nvo-fiche .rond { width: 5cqw; height: 5cqw; border-radius: 50%; display: grid; place-items: center; background: #241A1A; color: #fff; }
.nvo-fiche .rond svg { width: 2.292cqw; height: 2.292cqw; fill: currentColor; }
.nvo-fiche .rond:hover, .nvo-fiche .rond:focus-visible, .nvo-fiche .rond.focus { background: #E53935; }
.nvo-fiche .rond:disabled { opacity: .45; cursor: default; transform: none; box-shadow: none; background: #241A1A; }
.nvo-fiche .fc { width: 60%; margin: 1.667cqw 0 1.25cqw; font: 500 1.458cqw/2.083cqw Inter, sans-serif; color: #B3B3B3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nvo-fiche .fs { width: 60%; margin: 0 0 1.25cqw; font: 400 1.458cqw/2.083cqw Inter, sans-serif; white-space: pre-line; display: -webkit-box; -webkit-line-clamp: 8; -webkit-box-orient: vertical; overflow: hidden; }
.nvo-fiche .fm { display: grid; gap: .833cqw; }
.nvo-fiche .fm > div { display: flex; flex-wrap: wrap; align-items: center; gap: 1.25cqw; }
.nvo-fiche .fm1 { min-height: 3.125cqw; font: 500 1.458cqw/2.083cqw Inter, sans-serif; color: #B3B3B3; }
.nvo-fiche .fm1 .nvo-imdb svg { width: 3.125cqw; }
.nvo-fiche .fm2 { font: 500 1.25cqw/1.667cqw Inter, sans-serif; letter-spacing: .052cqw; color: #fff; }
.nvo-fiche .sep { color: #808080; }
.nvo-fiche .badge { display: inline-flex; align-items: center; gap: .833cqw; padding: .417cqw .833cqw; border-radius: .625cqw; border: max(1px, .104cqw) solid rgba(179,179,179,.55); }
.nvo-fiche .astuce { font: 500 1.25cqw/1.667cqw Inter, sans-serif; color: #808080; }
.nvo-fiche.ba .fd { opacity: 0; }
/* Le logo rétrécit (boîte de 60 dp au lieu de 84 dp), sans animer la mise en page */
.nvo-fiche.ba .flogo img { transform: translateY(-.833cqw) scale(.71); }
.nvo-fiche.ba .fh > :not(.flogo):not(.astuce), .nvo-fiche.ba .fbas { opacity: 0; pointer-events: none; }
.nvo-fiche .fh > *, .nvo-fiche .fbas { transition: opacity .4s ease; }
.nvo-fiche .fbas { position: relative; z-index: 1; padding-bottom: 4cqw; background: #0D0D0D; }
/* Saisons et épisodes */
.nvo-fiche .saisons { display: flex; gap: 1.25cqw; padding: 2.5cqw 5cqw; overflow-x: auto; scrollbar-width: none; }
.nvo-fiche .saisons button { flex: none; padding: 1.042cqw 2.083cqw; border-radius: 2.083cqw; background: #241A1A; color: #B3B3B3; font: 500 1.667cqw/2.5cqw Inter, sans-serif; }
.nvo-fiche .saisons button[aria-pressed="true"] { background: #2D2D2D; color: #fff; }
.nvo-fiche .saisons button:hover, .nvo-fiche .saisons button:focus-visible { background: #E53935; color: #fff; transform: none; }
.nvo-fiche .episodes { display: flex; gap: 1.667cqw; padding: 1.667cqw 5cqw; overflow-x: auto; scrollbar-width: none; }
.nvo-fiche .episodes::-webkit-scrollbar, .nvo-fiche .saisons::-webkit-scrollbar, .nvo-fiche .ligne::-webkit-scrollbar { display: none; }
.nvo-fiche .ep { position: relative; flex: none; width: 33.333cqw; height: 21.563cqw; border-radius: 1.667cqw; overflow: hidden; background: #241A1A; }
.nvo-fiche .ep > img { position: absolute; inset: -4%; width: 108%; height: 108%; object-fit: cover; filter: blur(.6cqw); }
.nvo-fiche .ep::after { content: ""; position: absolute; inset: 0; opacity: .94; background: linear-gradient(rgba(0,0,0,0), rgba(0,0,0,.04) 20%, rgba(0,0,0,.26) 38%, rgba(0,0,0,.56) 54%, rgba(0,0,0,.76) 70%, rgba(0,0,0,.88) 86%, rgba(0,0,0,.95)); }
.nvo-fiche .ep .rond-vu { position: absolute; z-index: 1; left: 1.25cqw; top: 1.25cqw; width: 2.5cqw; height: 2.5cqw; border-radius: 50%; border: .208cqw dashed rgba(179,179,179,.9); }
.nvo-fiche .ep .tx { position: absolute; z-index: 1; left: 1.667cqw; right: 1.667cqw; bottom: 2.083cqw; display: grid; gap: .625cqw; justify-items: start; }
.nvo-fiche .ep .num { padding: .417cqw .833cqw; border-radius: .625cqw; background: rgba(0,0,0,.42); color: rgba(255,255,255,.9); font: 600 1.042cqw/1.458cqw Inter, sans-serif; letter-spacing: .094cqw; }
.nvo-fiche .ep b { font: 800 1.667cqw/2.292cqw Inter, sans-serif; text-shadow: 0 1px 1px rgba(0,0,0,.6); display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; }
.nvo-fiche .ep p { margin: 0; font: 400 1.25cqw/1.875cqw Inter, sans-serif; color: rgba(255,255,255,.9); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.nvo-fiche .ep .inf { width: 100%; display: flex; align-items: center; gap: 1.25cqw; font: 500 1.042cqw/1.458cqw Inter, sans-serif; color: #B3B3B3; }
.nvo-fiche .ep .inf .nvo-imdb { color: #F5C518; font-weight: 600; }
.nvo-fiche .ep .inf .nvo-imdb svg { width: 2.5cqw; }
.nvo-fiche .ep .inf .date { margin-left: auto; }
/* Onglets du bas : Créateur et distribution | Bande-annonce… */
.nvo-fiche .onglets { display: flex; flex-wrap: wrap; align-items: center; padding: 2.083cqw 5cqw 1.25cqw; font: 500 2.083cqw/2.917cqw Inter, sans-serif; }
.nvo-fiche .onglets button { padding: 0; border: 0; background: none; color: rgba(255,255,255,.55); font: inherit; cursor: pointer; transition: transform .18s ease; outline: none; }
.nvo-fiche .onglets button[aria-pressed="true"] { color: rgba(255,255,255,.92); }
.nvo-fiche .onglets button:hover, .nvo-fiche .onglets button:focus-visible { color: #fff; transform: scale(1.03); }
.nvo-fiche .onglets i { font-style: normal; color: rgba(255,255,255,.45); padding: 0 1.042cqw; }
.nvo-fiche .ligne { display: flex; padding: .625cqw 5cqw; overflow-x: auto; scrollbar-width: none; }
.nvo-fiche .pers { flex: none; width: 15.625cqw; margin-right: .833cqw; display: grid; justify-items: center; text-align: center; align-content: start; }
.nvo-fiche .pers i { width: 10.417cqw; height: 10.417cqw; border-radius: 50%; background: #2D2D2D center / cover no-repeat; display: grid; place-items: center; font: normal 500 2.083cqw Inter, sans-serif; color: #fff; }
.nvo-fiche .pers b { margin-top: 1.042cqw; font: 500 1.25cqw/1.667cqw Inter, sans-serif; color: #B3B3B3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.nvo-fiche .pers small { margin-top: .417cqw; font: 500 1.042cqw/1.458cqw Inter, sans-serif; color: #808080; }
.nvo-fiche .pers.trait { width: max(1px, .104cqw); height: 7.5cqw; margin: 1.5cqw 1.667cqw 0 .833cqw; background: rgba(45,45,45,.9); }
.nvo-fiche .vid { flex: none; width: 27.083cqw; margin-right: 1.25cqw; display: grid; gap: .833cqw; text-align: left; padding: 0; border: 0; background: none; color: #808080; cursor: pointer; font: 400 1.25cqw/1.667cqw Inter, sans-serif; outline: none; }
.nvo-fiche .vid i { height: 15.208cqw; border-radius: 1.667cqw; background: #241A1A center / cover no-repeat; }
.nvo-fiche .vid:hover i, .nvo-fiche .vid:focus-visible i { box-shadow: 0 0 0 .208cqw #FF5252; }
/* ---------- Recherche et Bibliothèque ---------- */
.nvo-vue { position: absolute; inset: 0; z-index: 4; overflow-y: auto; overflow-x: hidden; scrollbar-width: none; background: #0D0D0D; padding-bottom: 4cqw; animation: nvo-fondu .25s ease both; }
.nvo-vue::-webkit-scrollbar { display: none; }
.nvo-rech .champ { display: flex; align-items: center; gap: 1.25cqw; padding: 1.667cqw 5cqw 0; }
.nvo-rech .micro { flex: none; width: 5.833cqw; height: 5.833cqw; margin: .833cqw; border-radius: 1.25cqw; display: grid; place-items: center; background: #241A1A; border: max(1px, .104cqw) solid #333; color: #fff; }
.nvo-rech .micro svg { width: 2.5cqw; height: 2.5cqw; fill: currentColor; }
.nvo-rech .micro:hover, .nvo-rech .micro:focus-visible { border-color: #FF5252; box-shadow: 0 0 0 .104cqw #FF5252; transform: none; }
.nvo-rech input { flex: 1; min-width: 0; height: 5.833cqw; padding: 0 1.667cqw; border-radius: 1.25cqw; border: max(1px, .104cqw) solid #333; background: #241A1A; color: #fff; outline: none; font: 400 max(1.667cqw, 12px) Inter, sans-serif; }
.nvo-rech input::placeholder { color: #808080; }
.nvo-rech input::-webkit-search-cancel-button { -webkit-appearance: none; display: none; }
.nvo-rech .micro { font: 400 2.083cqw Inter, sans-serif; }
.nvo-rech input:focus { border-color: #FF5252; box-shadow: 0 0 0 .104cqw #FF5252; }
.nvo-etat { height: 41.667cqw; display: grid; place-content: center; justify-items: center; text-align: center; }
.nvo-etat svg { width: 8.333cqw; height: 8.333cqw; fill: #808080; }
.nvo-etat b { margin-top: 2.5cqw; font: 400 2.5cqw/3.333cqw Roboto, "Segoe UI", system-ui, sans-serif; color: #fff; }
.nvo-etat span { margin-top: .833cqw; font: 400 1.458cqw/2.083cqw Inter, sans-serif; color: #B3B3B3; }
.nvo-res { margin-top: 1.667cqw; }
.nvo-res header { padding: 0 5cqw; margin-bottom: 1.25cqw; }
.nvo-res h4 { margin: 0; font: 600 2.5cqw/3.333cqw Inter, sans-serif; }
.nvo-res header span { display: block; margin-top: .417cqw; font: 500 1.25cqw/1.667cqw Inter, sans-serif; letter-spacing: .052cqw; color: #808080; }
.nvo-res .piste { display: flex; gap: 1.667cqw; padding: .3cqw 20.833cqw .3cqw 5cqw; overflow-x: auto; scrollbar-width: none; }
.nvo-res .piste::-webkit-scrollbar { display: none; }
.nvo-res .vide { margin: 0; padding: 0 5cqw; color: #808080; font-size: max(1.4cqw, 11px); }
.nvo-item { flex: none; width: 13.125cqw; padding: 0; border: 0; background: none; color: #fff; text-align: left; cursor: pointer; outline: none; }
.nvo-item .nvo-carte { width: 13.125cqw; height: 19.6875cqw; transition: transform .18s ease; }
.nvo-item:hover .nvo-carte, .nvo-item:focus-visible .nvo-carte { transform: scale(1.02); }
.nvo-item:hover .nvo-carte::after, .nvo-item:focus-visible .nvo-carte::after { opacity: 1; }
.nvo-item b { display: block; margin-top: .833cqw; font: 500 1.667cqw/2.5cqw Inter, sans-serif; letter-spacing: .016cqw; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nvo-item small { display: block; margin-top: .208cqw; font: 500 1.25cqw/1.667cqw Inter, sans-serif; letter-spacing: .052cqw; color: #B3B3B3; }
/* Tuile ouverte : vignette 64 × 36 dp, titre, onglets (le sélectionné en pastille blanche), grille de 6 colonnes */
.nvo-dossier { padding-top: 2.5cqw; }
.nvo-dossier header { display: flex; align-items: center; gap: 1.25cqw; padding: .833cqw 5cqw; }
.nvo-dossier header img { flex: none; width: 6.667cqw; height: 3.75cqw; border-radius: .833cqw; object-fit: fill; }
.nvo-dossier h3 { flex: none; max-width: 31.25cqw; margin: 0; font: 600 2.5cqw/3.333cqw Inter, sans-serif; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nvo-dossier .ongs { flex: 1; display: flex; gap: .417cqw; min-width: 0; overflow-x: auto; scrollbar-width: none; }
.nvo-dossier .ongs::-webkit-scrollbar { display: none; }
.nvo-dossier .ongs button { flex: none; }
.nvo-dossier .ongs button { padding: .833cqw 1.667cqw; border: 0; border-radius: 99px; background: transparent; color: #B3B3B3; cursor: pointer; outline: none; font: 500 1.458cqw/2.083cqw Inter, sans-serif; white-space: nowrap; }
.nvo-dossier .ongs button[aria-selected="true"] { background: #fff; color: #0D0D0D; }
.nvo-dossier .ongs button:focus-visible { box-shadow: 0 0 0 .208cqw #FF5252; }
.nvo-dossier .grille { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 1.667cqw; padding: 1.667cqw 5cqw 5cqw; }
.nvo.paysage .nvo-dossier .grille { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.nvo-dossier .nvo-item { width: auto; }
.nvo-dossier .nvo-item .nvo-carte { width: 100%; height: 19.6875cqw; }
.nvo.paysage .nvo-dossier .nvo-item .nvo-carte { height: auto; aspect-ratio: 16 / 9; }
.nvo-dossier .vide { grid-column: 1 / -1; margin: 4cqw 0; text-align: center; color: #B3B3B3; font-size: max(1.458cqw, 11px); }
.nvo-dossier .fin { display: block; height: 1px; }
.nvo-biblio { padding: 2.5cqw 5cqw 3.333cqw; }
.nvo-biblio header { display: flex; justify-content: space-between; align-items: baseline; }
.nvo-biblio h3 { margin: 0; font: 600 2.5cqw/3.333cqw Inter, sans-serif; }
.nvo-biblio header span { font: 500 1.458cqw Inter, sans-serif; letter-spacing: .208cqw; color: #808080; }
.nvo-biblio .modes { display: flex; gap: 1.25cqw; margin-top: 1.667cqw; }
.nvo-biblio .modes span { padding: 1.042cqw 2.083cqw; border-radius: 99px; background: #241A1A; font: 500 1.458cqw/2.083cqw Inter, sans-serif; }
.nvo-biblio .modes span:first-child { background: #3D1A1A; }
.nvo-biblio .filtres { display: grid; grid-template-columns: 1fr 1fr; gap: 1.042cqw; margin-top: 1.667cqw; }
.nvo-biblio .filtres div { display: flex; align-items: center; justify-content: space-between; padding: 1.042cqw 1.458cqw; border-radius: 1.458cqw; background: #241A1A; border: max(1px, .104cqw) solid #333; }
.nvo-biblio .filtres div.seul { grid-column: 1 / -1; justify-self: start; min-width: 30%; }
.nvo-biblio .filtres small { display: block; font: 500 1.042cqw/1.458cqw Inter, sans-serif; color: #808080; }
.nvo-biblio .filtres b { font: 500 1.667cqw/2.5cqw Inter, sans-serif; }
.nvo-biblio .filtres i { font-style: normal; color: #B3B3B3; font-size: 1.667cqw; }
.nvo-biblio .grille { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 1.667cqw 1.25cqw; margin-top: 2.5cqw; }
.nvo-biblio .nvo-etat { height: 30cqw; }
/* ---------- Découvrir (DiscoverScreen) : titre, trois listes et la ligne d'infos fixes, la grille défile dessous ---------- */
.nvo-vue.nvo-dec { display: flex; flex-direction: column; gap: 1.25cqw; padding: 1.667cqw 5cqw 0; overflow: hidden; outline: none; }
.nvo-dec h3 { flex: none; margin: 0; font: 600 2.5cqw/3.333cqw Inter, sans-serif; }
.nvo-dec .filtres { flex: none; display: flex; gap: 1.25cqw; }
.nvo-dec .choix { box-sizing: border-box; flex: 1 1 0; min-width: 0; height: 6.25cqw; padding: 1.042cqw 1.458cqw; display: flex; flex-direction: column; gap: .208cqw; border-radius: 1.458cqw; border: max(1px, .104cqw) solid #333; background: #241A1A; color: #fff; text-align: left; cursor: pointer; outline: none; }
.nvo-dec .choix small { font: 500 1.042cqw/1.458cqw Inter, sans-serif; letter-spacing: .052cqw; color: #808080; }
.nvo-dec .choix > span { display: flex; align-items: center; justify-content: space-between; gap: .833cqw; min-width: 0; }
.nvo-dec .choix b { min-width: 0; font: 500 1.667cqw/2.5cqw Inter, sans-serif; letter-spacing: .016cqw; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nvo-dec .choix i { flex: none; display: flex; }
.nvo-dec .choix svg { width: 2.083cqw; height: 2.083cqw; fill: #B3B3B3; }
.nvo-dec .choix.focus { background: #3D1A1A; border-color: #FF5252; box-shadow: inset 0 0 0 max(1px, .104cqw) #FF5252; }
.nvo-dec .choix.focus svg { fill: #FF5252; }
.nvo-dec .infos { flex: none; margin: 0; font: 400 1.25cqw/1.667cqw Inter, sans-serif; letter-spacing: .042cqw; color: #B3B3B3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nvo-dec .infos:empty { display: none; }
/* La grille (6 colonnes adaptatives de 126 dp, 10 dp entre les colonnes, 16 dp entre les lignes) */
.nvo-dec .defile { position: relative; flex: 1; min-height: 0; margin: 0 -5cqw; padding: 0 5cqw; overflow-y: auto; overflow-x: hidden; scrollbar-width: none; }
.nvo-dec .defile::-webkit-scrollbar { display: none; }
.nvo-dec .grille { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); column-gap: 1.042cqw; row-gap: 1.667cqw; align-items: start; padding-bottom: 3.333cqw; }
.nvo.paysage .nvo-dec .grille { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.nvo-dec .nvo-item { width: 13.125cqw; padding-top: .3125cqw; }
/* Paysage : la largeur de la grille (126 dp) l'emporte sur celle des cartes paysage de l'accueil ; la carte passe en 16:9 (126 × 71 dp). */
.nvo.paysage .nvo-dec .nvo-carte { width: 13.125cqw; height: 7.383cqw; }
.nvo-dec .nvo-item b { padding: 0 .208cqw; }
.nvo-dec .nvo-item b span { display: inline; }
.nvo-dec .nvo-item:hover .nvo-carte { transform: none; }
.nvo-dec .nvo-item:hover .nvo-carte::after { opacity: 0; }
.nvo-dec .nvo-item.focus .nvo-carte { transform: scale(1.02); }
.nvo-dec .nvo-item.focus .nvo-carte::after { opacity: 1; }
/* Le titre trop long défile quand l'affiche est sélectionnée (45 dp/s, 3 passages) */
.nvo-dec .nvo-item b.defil { text-overflow: clip; }
.nvo-dec .nvo-item b.defil span { display: inline-block; padding-right: var(--g); animation: nvo-defil var(--t) linear 1.2s 3; }
@keyframes nvo-defil { to { transform: translateX(var(--x)); } }
/* « Charger plus » : une carte de la taille d'une affiche */
.nvo-dec .action { box-sizing: border-box; width: 13.125cqw; height: 19.6875cqw; margin-top: .3125cqw; padding: 0; border: 0; border-radius: 1.667cqw; display: grid; place-items: center; background: #241A1A; color: #fff; font: 500 1.667cqw/2.5cqw Inter, sans-serif; letter-spacing: .016cqw; cursor: pointer; outline: none; transition: transform .18s ease; }
.nvo.paysage .nvo-dec .action { height: 7.383cqw; }
.nvo-dec .action.focus { background: #3D1A1A; box-shadow: inset 0 0 0 .208cqw #FF5252; transform: scale(1.02); }
.nvo-dec .action:disabled { cursor: default; }
.nvo-dec .charge { grid-column: 1 / -1; display: grid; place-items: center; padding: 2.917cqw 0; }
.nvo-dec .grille > .nvo-etat { grid-column: 1 / -1; }
.nvo-spin { width: 5cqw; height: 5cqw; animation: nvo-tourne 2s linear infinite; }
.nvo-spin circle { fill: none; stroke: #E53935; stroke-width: 5.1; stroke-linecap: round; stroke-dasharray: 1 97; animation: nvo-arc 2s ease-in-out infinite; }
@keyframes nvo-tourne { to { transform: rotate(360deg); } }
@keyframes nvo-arc { 0% { stroke-dasharray: 1 97; stroke-dashoffset: 0; } 50% { stroke-dasharray: 70 97; stroke-dashoffset: -14; } 100% { stroke-dasharray: 1 97; stroke-dashoffset: -96; } }
/* La liste ouverte (DropdownMenu) : sous la case, de sa largeur, 320 dp au plus */
.nvo-liste { position: absolute; z-index: 3; box-sizing: border-box; max-height: 33.333cqw; padding: .833cqw 0; overflow-y: auto; scrollbar-width: none; border-radius: 1.458cqw; border: max(1px, .104cqw) solid #333; background: #241A1A;
  box-shadow: 0 .833cqw 2.5cqw rgba(0,0,0,.55); transform-origin: top center; animation: nvo-liste .12s ease-out both; }
.nvo-liste::-webkit-scrollbar { display: none; }
@keyframes nvo-liste { from { opacity: 0; transform: scale(.8); } }
.nvo .nvo-liste button { display: block; box-sizing: border-box; width: calc(100% - 1.25cqw); min-height: 5cqw; margin: .208cqw .625cqw; padding: 0 1.25cqw; border: 0; border-radius: 1.042cqw; background: transparent; color: #fff; text-align: left; cursor: pointer; outline: none;
  font: 400 1.458cqw/5cqw Roboto, "Segoe UI", system-ui, sans-serif; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nvo .nvo-liste button[aria-selected="true"] { background: #3D1A1A; }
.nvo .nvo-liste button.focus { background: #E53935; }
/* ---------- Paramètres (SettingsScreen, style « Par défaut ») : une carte de 28 dp, rubriques à gauche (220 dp), écran à droite ---------- */
.nvo-vue.nvo-par { box-sizing: border-box; padding: 2.5cqw 3.333cqw; overflow: hidden; outline: none; }
.np-surf { box-sizing: border-box; height: 100%; display: flex; gap: 1.667cqw; padding: 2.083cqw; border-radius: 2.917cqw; background: #1A1A1A; border: max(1px, .104cqw) solid #333; }
.np-surf svg { flex: none; fill: currentColor; }
.np-rail { position: relative; flex: none; width: 22.917cqw; display: flex; flex-direction: column; min-height: 0; }
.np-rliste { flex: 1; min-height: 0; display: flex; flex-direction: column; justify-content: safe center; gap: 1.042cqw; overflow-y: auto; scrollbar-width: none; }
.np-rliste::-webkit-scrollbar { display: none; }
.np-sep { flex: none; height: max(1px, .104cqw); margin: 0 1.875cqw; background: #333; }
.nvo .np-ru { box-sizing: border-box; flex: none; display: flex; align-items: center; gap: 1.042cqw; min-height: 5.833cqw; margin: .208cqw 0; padding: 0 1.875cqw; border: 0; border-radius: 99px; background: #0D0D0D; color: #B3B3B3; cursor: pointer; outline: none; text-align: left;
  font: 500 1.667cqw/2.5cqw Inter, sans-serif; letter-spacing: .016cqw; }
.np-ru .np-ico { width: 1.875cqw; height: 1.875cqw; }
.np-ru span { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.np-ru .np-chev { width: 1.875cqw; height: 1.875cqw; color: #808080; }
.nvo .np-ru.sel { background: #241A1A; color: #fff; font-weight: 600; box-shadow: inset 0 0 0 max(1px, .104cqw) #FF5252; }
.nvo .np-ru.focus { background: #241A1A; color: #fff; font-weight: 600; box-shadow: inset 0 0 0 .208cqw #FF5252; }
.nvo .np-rail.actif .np-ru.sel:not(.focus) { background: #0D0D0D; box-shadow: none; }
.np-fl { position: absolute; left: 50%; width: 3.333cqw; height: 3.333cqw; margin-left: -1.667cqw; color: rgba(179,179,179,.55); opacity: 0; transition: opacity .15s; pointer-events: none; }
.np-fl svg { width: 100%; height: 100%; }
.np-fl.haut { top: .208cqw; } .np-fl.bas { bottom: .208cqw; } .np-fl.on { opacity: 1; }
/* L'écran de droite */
.np-pane { flex: 1; min-width: 0; min-height: 0; display: flex; flex-direction: column; gap: 1.458cqw; }
.np-pane.tout { overflow-y: auto; scrollbar-width: none; }
.np-pane [tabindex] { outline: none; }
.np-pane.tout > * { flex: none; }
.np-pane::-webkit-scrollbar, .np-defile::-webkit-scrollbar, .np-swatches::-webkit-scrollbar { display: none; }
.np-tete { flex: none; display: grid; gap: .625cqw; }
.np-tete h3 { margin: 0; font: 600 2.5cqw/3.333cqw Inter, sans-serif; }
.np-tete p { margin: 0; font: 400 1.458cqw/2.083cqw Inter, sans-serif; letter-spacing: .026cqw; color: #B3B3B3; }
.np-corps { display: flex; flex-direction: column; gap: 1.458cqw; }
.np-pane:not(.tout) .np-corps { flex: 1; min-height: 0; }
.np-pane:not(.tout) .np-corps > .np-group { flex: 1; min-height: 0; overflow-y: auto; scrollbar-width: none; }
/* Carte de groupe : 18 dp, fond des cartes, liseré, 14 dp de marge, 10 dp entre les lignes */
.np-group { box-sizing: border-box; display: flex; flex-direction: column; gap: 1.042cqw; padding: 1.458cqw; border-radius: 1.875cqw; background: #241A1A; border: max(1px, .104cqw) solid #333; }
.np-group > *, .np-kbox > * { flex: none; }
.np-gh { margin: 0; display: grid; gap: .208cqw; }
.np-gh b { font: 500 1.667cqw/2.5cqw Inter, sans-serif; letter-spacing: .016cqw; }
.np-gh small { font: 400 1.25cqw/1.667cqw Inter, sans-serif; letter-spacing: .042cqw; color: #B3B3B3; }
/* Une ligne : pilule sur le fond de l'appli, 62 dp de haut ; liseré rouge de 2 dp quand elle est sélectionnée */
.np-row { box-sizing: border-box; display: flex; align-items: center; gap: 1.25cqw; min-height: 6.458cqw; padding: 1.25cqw 1.875cqw; border-radius: 99px; background: #0D0D0D; cursor: pointer; outline: none; }
.np-row.focus, .np-url.focus { box-shadow: inset 0 0 0 .208cqw #FF5252; }
.np-row > .np-ico { width: 2.5cqw; height: 2.5cqw; margin-right: .417cqw; color: #B3B3B3; }
.np-row.focus > .np-ico { color: #fff; }
.np-row > .np-logo { width: 2.5cqw; height: 2.5cqw; margin-right: .417cqw; }
.np-row > .np-logo.grand { width: 4.167cqw; height: 4.167cqw; }
.np-row.dim { opacity: .4; cursor: default; }
.np-txt { flex: 1; min-width: 0; display: grid; gap: .208cqw; }
.np-txt b { font: 400 1.667cqw/2.5cqw Inter, sans-serif; letter-spacing: .052cqw; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.np-txt small { font: 400 1.25cqw/1.667cqw Inter, sans-serif; letter-spacing: .042cqw; color: #B3B3B3; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.np-val { flex: none; display: flex; align-items: center; gap: 1.042cqw; max-width: 27.083cqw; margin-left: -.208cqw; font: 500 1.458cqw/2.083cqw Inter, sans-serif; color: #B3B3B3; white-space: nowrap; }
.np-val .np-chev { width: 1.875cqw; height: 1.875cqw; color: #808080; }
/* Interrupteur : rail de 46 × 24 dp, bouton blanc de 20 dp ; activé = rail rouge à 35 % */
.np-tg { position: relative; flex: none; box-sizing: border-box; width: 4.792cqw; height: 2.5cqw; border-radius: 99px; background: #333; transition: background .15s; }
.np-tg::after { content: ""; position: absolute; top: .208cqw; left: .208cqw; width: 2.083cqw; height: 2.083cqw; border-radius: 50%; background: #fff; transition: left .15s; }
.np-tg.on { background: rgba(229,57,53,.35); }
.np-tg.on::after { left: calc(100% - 2.292cqw); }
.np-dot { flex: none; width: 2.5cqw; height: 2.5cqw; border-radius: 50%; box-shadow: 0 0 0 max(1px, .104cqw) #333; }
/* Curseur : valeur en gris clair, rail de 8 dp, boutons ronds − et + de 38 dp */
.np-row.np-slider { display: grid; gap: 1.042cqw; border-radius: 1.875cqw; }
.np-sl-top { display: flex; align-items: center; gap: 1.25cqw; }
.np-sl-top .np-val { font: 400 1.667cqw/2.5cqw Inter, sans-serif; letter-spacing: .052cqw; color: #9E9E9E; }
.np-sl { display: flex; align-items: center; gap: 1.25cqw; }
.np-sl > i { flex: none; width: 3.958cqw; height: 3.958cqw; border-radius: 50%; display: grid; place-items: center; background: #1A1A1A; }
.np-sl > i svg { width: 2.083cqw; height: 2.083cqw; }
.np-track { flex: 1; height: .833cqw; border-radius: .417cqw; background: #1A1A1A; overflow: hidden; }
.np-track span { display: block; height: 100%; border-radius: inherit; background: #9E9E9E; }
/* Sections repliables (« Fermé › » / « Ouvert ⌄ ») : le contenu dans une carte en retrait de 16 dp */
.np-sec .np-chev { transition: transform .2s; }
.np-secw.open .np-sec .np-chev { transform: rotate(90deg); }
.np-kids { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .2s ease; }
.np-secw.open .np-kids { grid-template-rows: 1fr; }
.np-kin { min-height: 0; overflow: hidden; }
.np-kbox { display: flex; flex-direction: column; gap: 1.042cqw; margin: 1.042cqw 0 .208cqw 1.667cqw; padding: 1.458cqw; border-radius: 1.875cqw; border: max(1px, .104cqw) solid #333; background: #241A1A; }
.np-h { margin: 1.25cqw 1.875cqw .208cqw; display: grid; gap: .208cqw; font: 500 1.25cqw/1.667cqw Inter, sans-serif; letter-spacing: .125cqw; text-transform: uppercase; color: #808080; }
.np-h small { font: 400 1.25cqw/1.667cqw Inter, sans-serif; letter-spacing: .042cqw; text-transform: none; color: #B3B3B3; }
.np-h small.warn { color: #FFB74D; }
.np-p { margin: 0; font: 400 1.25cqw/1.667cqw Inter, sans-serif; letter-spacing: .042cqw; color: #B3B3B3; }
.np-note { margin: 0; padding: 0 1.25cqw; font: 400 1.25cqw/1.667cqw Inter, sans-serif; letter-spacing: .042cqw; color: #808080; }
.np-url { padding: 1.042cqw 1.458cqw; border-radius: 1.25cqw; background: #0D0D0D; font: 400 1.146cqw/1.6 ui-monospace, Consolas, monospace; color: #B3B3B3; word-break: break-all; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; cursor: pointer; }
/* Bouton « Connexion par code QR » (Compte) : il grossit un peu quand il est sélectionné */
.np-row.np-bouton { min-height: 0; padding: 1.042cqw 1.458cqw; border-radius: .833cqw; background: #241A1A; transition: transform .15s; }
.np-row.np-bouton > .np-ico { width: 2.292cqw; height: 2.292cqw; }
.np-bouton .np-txt b { font: 500 1.458cqw/2.083cqw Inter, sans-serif; letter-spacing: .026cqw; }
.np-bouton .np-txt small { font-size: 1.146cqw; }
.np-row.np-bouton.focus { background: #3D1A1A; transform: scale(1.02); }
/* Puces (largeur, rayon, réglages « Apply to ») : la choisie sur fond rouge à 20 % avec un liseré */
.np-chips, .np-apply { display: grid; gap: .833cqw; padding: .208cqw 0; }
.np-chips > span:first-child { padding: 0 .833cqw; font: 400 1.667cqw/2.5cqw Inter, sans-serif; letter-spacing: .052cqw; }
.np-apply > span:first-child { padding: 0 .833cqw; font: 500 1.25cqw/1.667cqw Inter, sans-serif; letter-spacing: .125cqw; color: #808080; }
.np-chip-row { display: flex; flex-wrap: wrap; gap: .833cqw; }
.np-chip-row i { font-style: normal; display: inline-flex; align-items: center; gap: .833cqw; padding: 1.042cqw 1.667cqw; border-radius: 99px; background: #0D0D0D; color: #B3B3B3; cursor: pointer; font: 500 1.25cqw/1.667cqw Inter, sans-serif; letter-spacing: .052cqw; }
.np-chip-row i.sel { background: rgba(255,82,82,.2); color: #fff; box-shadow: inset 0 0 0 max(1px, .104cqw) #FF5252; }
.np-chip-row i.focus { color: #fff; box-shadow: inset 0 0 0 max(1px, .104cqw) #FF5252; }
.np-apply .np-tg { width: 3.333cqw; height: 1.875cqw; }
.np-apply .np-tg::after { width: 1.458cqw; height: 1.458cqw; }
.np-apply .np-tg.on::after { left: calc(100% - 1.667cqw); }
/* Cartes à choisir (style des paramètres, disposition de l'accueil, Continuer à regarder) */
.np-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.042cqw; }
.np-card { position: relative; display: grid; gap: .417cqw; align-content: start; padding: 1.25cqw; border-radius: 1.875cqw; background: #0D0D0D; cursor: pointer; }
.np-card b { display: flex; align-items: center; justify-content: space-between; gap: .417cqw; font: 500 1.458cqw/2.083cqw Inter, sans-serif; }
.np-card small { font: 400 1.25cqw/1.667cqw Inter, sans-serif; letter-spacing: .042cqw; color: #808080; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.np-card.sel { box-shadow: inset 0 0 0 max(1px, .104cqw) #FF5252; }
.np-card.focus { box-shadow: inset 0 0 0 .208cqw #FF5252; }
.np-coche { display: none; color: #E53935; }
.np-coche svg { width: 1.667cqw; height: 1.667cqw; }
.np-card.sel .np-coche { display: inline-flex; }
.np-layout .np-card { padding: 1.042cqw; }
.np-layout .np-card.sel .np-coche { color: #FF5252; }
.np-art { display: grid; gap: .313cqw; height: 6cqw; padding: .521cqw; border-radius: 1.042cqw; background: #1A1A1A; }
.np-layout .np-art { height: 11.667cqw; }
.np-art i { border-radius: .313cqw; background: #2D2D2D; }
.np-layout .np-card:nth-child(1) .np-art { grid-template-columns: repeat(4, 1fr); grid-template-rows: 1.6fr 1fr; }
.np-layout .np-card:nth-child(1) .np-art i:first-child { grid-column: span 4; background: #3A3A3A; }
.np-layout .np-card:nth-child(2) .np-art { grid-template-columns: repeat(5, 1fr); }
.np-layout .np-card:nth-child(3) .np-art { grid-template-columns: repeat(4, 1fr); }
.np-cw .np-art { justify-items: center; align-items: center; }
.np-cw .np-card:nth-child(1) .np-art { grid-template-columns: 1.4fr 1fr; }
.np-cw .np-card:nth-child(1) .np-art i { width: 100%; height: 80%; }
.np-cw .np-card:nth-child(2) .np-art i { width: 90%; height: 70%; }
.np-cw .np-card:nth-child(3) .np-art i { width: 30%; height: 100%; }
/* Nuancier : cartes de 96 dp, rond de 40 dp avec une coche sur le thème choisi */
.np-swatches { position: relative; display: flex; gap: 1.042cqw; padding: .417cqw; overflow-x: auto; scrollbar-width: none; }
.np-sw { flex: none; box-sizing: border-box; width: 10cqw; padding: 1.25cqw .833cqw; display: grid; justify-items: center; gap: .833cqw; border-radius: 1.875cqw; background: #0D0D0D; color: #B3B3B3; cursor: pointer;
  font: 500 1.25cqw/1.667cqw Inter, sans-serif; letter-spacing: .052cqw; }
.np-sw i { width: 4.167cqw; height: 4.167cqw; border-radius: 50%; display: grid; place-items: center; }
.np-sw i svg { width: 2.083cqw; height: 2.083cqw; }
.np-sw.sel { color: #fff; }
.np-sw.focus { color: #fff; box-shadow: inset 0 0 0 .208cqw #FF5252; }
/* À propos */
.np-about { display: grid; justify-items: center; gap: 1.042cqw; padding: .417cqw 0 .208cqw; text-align: center; }
.np-about img { height: 4.167cqw; width: auto; }
.np-about b { font: 700 2.5cqw/4.167cqw Inter, sans-serif; letter-spacing: .2cqw; }
.np-about small { font: 500 1.042cqw/1.458cqw Inter, sans-serif; letter-spacing: .052cqw; color: #B3B3B3; }
/* ---------- Nuvio tel qu'installé (l'avant de l'avant / après) : réglages d'origine de Nuvio TV ----------
   Thème Blanc (AppTheme.WHITE : liseré blanc, cartes #222222), cartes de 126 × 189 dp (les mêmes une fois réduites
   par la Vue moderne) à coins de 12 dp, sans Card Depth Effect, et la barre latérale classique : un rail de 72 dp
   toujours visible (LegacySidebarScaffold), l'accueil décalé de 54 dp (sidebarContentOffset). Pas de bande-annonce
   dans le haut (désactivée d'office). */
.nvo.defaut .nvo-hero, .nvo.defaut .nvo-rangees { left: 5.625cqw; }
.nvo.defaut .nvo-bd { left: 28.208cqw; }
.nvo.defaut .nvo-carte { border-radius: 1.25cqw; background-color: #222222; }
.nvo.defaut .nvo-carte::before { display: none; }
.nvo.defaut .nvo-carte::after { border-radius: 1.354cqw; border-color: #FFFFFF; }
.nvo-rail { position: absolute; z-index: 5; left: 0; top: 0; bottom: 0; width: 7.5cqw; background: #0D0D0D; pointer-events: none; }
.nvo-rail nav { position: absolute; left: 2.5cqw; top: 50%; display: flex; flex-direction: column; gap: 1.042cqw; transform: translateY(calc(-50% + 2.917cqw)); }
.nvo-rail i { position: relative; display: block; width: 5cqw; height: 5.417cqw; }
.nvo-rail svg { position: absolute; left: 1.354cqw; top: 50%; width: 2.292cqw; height: 2.292cqw; transform: translateY(-50%); fill: #808080; }
.nvo-rail i.ici svg { fill: #F5F5F5; }
@media (prefers-reduced-motion: reduce) { .nvo-menu, .nvo-liste { animation: none; } .nvo-carte.attente > .reflet { animation: none; } }
