:root{
  --learn:#84cc16; /* accento di Impara: lime, diverso dal teal di ASMR */
  --bg:#0a0a10;
  --surface:#14141d;
  --surface-2:#1c1c28;
  --surface-3:#242432;
  --text:#f4f3f8;
  --text-muted:#9a96aa;
  --text-faint:#5f5c70;
  --accent:var(--dd-red, #e50914);
  --accent-dim:#8a0710;
  --teal:#20c4b0;
  --hub-gold:#E5A93B; --hub-gold2:#F59E0B; --hub-on:#0C0A06;
  --gold:#f0b429;
  --danger:#ef4444;
  --hairline: rgba(255,255,255,0.08);
  --ai-violet:#8b5cf6;
  --ai-pink:#ec4899;
}
/* Target di tocco standard per la skin mobile (Apple HIG >=44pt, Material
   >=48dp): usati da tutti i pulsanti icona/cuori/controlli invece di una
   misura inventata a sé per ogni componente. Non toccano il desktop, dove
   il mouse è preciso e non serve un'area di tocco minima. */
@media (max-width:900px){
  :root{
    --tap-sm:40px;
    --tap-md:44px;
    --tap-lg:52px;
  }
}
*{box-sizing:border-box;}
/* L'app è una SPA: i contenuti si aggiornano navigando o tramite azioni,
   mai ricaricando la pagina — il "tira per aggiornare" nativo del browser
   non serve mai qui, e ricaricando davvero si perderebbero schermata
   corrente, scroll e riproduzione in corso. Va disattivato sia su <html>
   che su <body>: a seconda del browser è l'uno o l'altro il vero
   "root scroller" che innesca il pull-to-refresh — mettendolo solo su
   body su Android Chrome continuava a scattare. */
html,body{height:100%; overscroll-behavior-y: contain;}
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:'Outfit',system-ui,sans-serif;
  -webkit-font-smoothing:antialiased;
}
button{ font-family:inherit; }
a{ color:inherit; }
[hidden]{ display:none !important; }

/* ── Login / Pro gate ─────────────────────────────────────────── */
.login-gate{
  position:fixed; inset:0; z-index:500;
  /* --app-vh è sincronizzata via JS col visual viewport, come fallback per i
     browser che non supportano ancora "interactive-widget=resizes-content"
     nel meta viewport: senza, la tastiera virtuale mobile copriva i campi
     perché questo box restava ancorato all'altezza intera del layout viewport. */
  height:var(--app-vh, 100vh);
  overflow-y:auto;
  display:flex; align-items:center; justify-content:center;
  background:radial-gradient(ellipse 900px 500px at 50% -8%, color-mix(in srgb, var(--dd-red, #e50914) 16%, transparent), transparent 60%),
             linear-gradient(180deg, #0a0a0a 0%, #000 55%);
  padding:20px;
}
.login-card{
  width:100%; max-width:380px; background:#141414; border:1px solid var(--hairline);
  border-radius:18px; padding:36px 30px; text-align:center; margin:auto;
}
.login-logo{ font-weight:800; font-size:24px; margin-bottom:6px; }
.login-logo span{ color:var(--accent); }

/* ── Boot loader — copre l'attesa di checkPro() (vedi boot() in app.js),
   niente piu' flash della schermata di login prima di sapere se mostrarla. ── */
.boot-loader{
  position:fixed; inset:0; z-index:600;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px;
  background:var(--bg);
}
.boot-wordmark{
  position:relative; display:inline-block;
  font-weight:800; font-size:32px; letter-spacing:-0.3px;
}
.boot-wordmark .accent{ color:var(--accent); }
.boot-wordmark-shine{
  position:absolute; inset:0; pointer-events:none; color:transparent;
  background-image:linear-gradient(100deg,
    rgba(255,255,255,0) 42%,
    rgba(255,255,255,.85) 50%,
    rgba(255,255,255,0) 58%);
  background-size:250% 100%;
  -webkit-background-clip:text; background-clip:text;
  animation:boot-shine 2.2s linear infinite;
}
@keyframes boot-shine{
  from{ background-position:150% 0; }
  to{ background-position:-50% 0; }
}
@media (prefers-reduced-motion: reduce){
  .boot-wordmark-shine{ animation:none; display:none; }
}
.boot-loader-sub{ font-size:12.5px; color:var(--text-muted); }
.login-sub{ font-size:13.5px; color:var(--text-muted); line-height:1.55; margin:0 0 24px; }
.login-error{
  background:color-mix(in srgb, var(--dd-red, #e50914) 12%, transparent); border:1px solid color-mix(in srgb, var(--dd-red, #e50914) 30%, transparent); color:#ff6b73;
  border-radius:9px; padding:10px 12px; font-size:12.5px; margin-bottom:16px; text-align:left;
}
.field{
  width:100%; font-family:inherit; font-size:14px; color:var(--text);
  background:var(--surface-2); border:1px solid var(--hairline); border-radius:9px;
  padding:12px 13px; margin-bottom:12px; outline:none;
}
.field:focus{ border-color:var(--accent); }
.login-hint{ font-size:11.5px; color:var(--text-faint); line-height:1.5; margin:-4px 0 14px; text-align:left; }
.btn-primary{
  width:100%; display:flex; align-items:center; justify-content:center; gap:8px;
  background:var(--accent); color:#fff; border:none; border-radius:10px;
  padding:13px; font-family:inherit; font-weight:700; font-size:14px; cursor:pointer;
}
.btn-primary:hover{ filter:brightness(1.1); }
.btn-primary:disabled{ opacity:0.6; cursor:not-allowed; }
.login-back{ display:block; margin-top:20px; font-size:12.5px; color:var(--text-faint); text-decoration:none; }
.login-toggle{
  display:block; margin-top:18px; font-size:12.5px; color:var(--accent);
  text-decoration:none; font-weight:600;
}
.login-toggle:hover{ text-decoration:underline; }
.not-pro-badge{
  display:inline-flex; align-items:center; gap:6px; background:rgba(240,180,41,0.12); color:var(--gold);
  border:1px solid rgba(240,180,41,0.3); border-radius:999px; padding:6px 14px;
  font-size:12px; font-weight:700; margin-bottom:16px;
}
/* ── Manutenzione (blocca Pro+Free, bypass admin) ────────────────── */
.maint-icon-ring{
  width:56px; height:56px; border-radius:50%; margin:0 auto; position:relative;
  display:flex; align-items:center; justify-content:center;
  background:rgba(240,180,41,0.14); border:1.5px solid rgba(240,180,41,0.4); color:var(--gold);
}
.maint-icon-ring::before{
  content:''; position:absolute; inset:-8px; border-radius:50%; border:1.5px solid rgba(240,180,41,0.25);
  animation:maint-pulse-ring 2.2s ease-out infinite;
}
@keyframes maint-pulse-ring{ 0%{ transform:scale(.85); opacity:.9; } 100%{ transform:scale(1.35); opacity:0; } }
.maint-eta-pill{
  display:inline-flex; align-items:center; gap:7px; font-size:11px; font-weight:700;
  color:var(--gold); background:rgba(240,180,41,0.12); border:1px solid rgba(240,180,41,0.3);
  padding:6px 13px; border-radius:999px; margin-top:4px;
}
.maint-eta-pill .dot{ width:5px; height:5px; border-radius:50%; background:var(--gold); animation:maint-eta-blink 1.6s ease-in-out infinite; }
@keyframes maint-eta-blink{ 0%,100%{ opacity:1; } 50%{ opacity:.3; } }

.spinner{
  width:16px;height:16px;border-radius:50%; border:2px solid rgba(255,255,255,.3); border-top-color:#fff;
  animation:spin .7s linear infinite;
}
@keyframes spin{ to{ transform:rotate(360deg); } }

/* ── Shared bits ──────────────────────────────────────────────── */
.pro-badge{
  display:inline-flex; align-items:center; gap:4px;
  background:linear-gradient(135deg,var(--gold),#c98d16);
  color:#241a00; font-size:11px; font-weight:800; letter-spacing:.03em;
  padding:3px 9px; border-radius:6px; text-transform:uppercase;
}
.avatar{
  width:34px;height:34px;border-radius:50%;
  background:linear-gradient(135deg,var(--accent),#8a0710);
  display:flex;align-items:center;justify-content:center;
  font-weight:700; font-size:13px; color:#fff; flex-shrink:0; cursor:pointer;
}
.avatar-sm{ width:28px;height:28px;font-size:11px; }
@media (max-width:900px){ .avatar-sm{ width:38px;height:38px;font-size:14px; } }
.live-dot{
  display:inline-flex; align-items:center; gap:5px;
  background:rgba(239,68,68,.15); color:#f87171;
  font-size:10.5px; font-weight:700; letter-spacing:.04em;
  padding:2px 8px; border-radius:5px;
}
.live-dot::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--danger);}

.card{
  position:relative; border-radius:14px; overflow:hidden; flex-shrink:0;
  background:var(--surface-2); cursor:pointer; border:none; padding:0;
  text-align:left; color:inherit; display:block;
  transition:transform .12s ease;
}
.card:hover{ transform:translateY(-3px); }
.card .art{
  width:100%; aspect-ratio:2/3; background:var(--surface-3);
  display:flex; align-items:flex-end; padding:10px; overflow:hidden;
  font-weight:700; font-size:13px; line-height:1.25; position:relative;
}
.card .art.wide{ aspect-ratio:16/9; }
.card .art.square{ aspect-ratio:1/1; }
.card .art small{ display:block; font-weight:400; opacity:.7; margin-top:3px; }
.card .art .fallback-label{ position:relative; z-index:1; text-shadow:0 2px 6px rgba(0,0,0,.8); }
.art-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
.art-img.fx{ transition:opacity .5s ease, filter .6s ease; }
.art-img.fx:not(.ld){ opacity:0; filter:blur(10px); }
@media (prefers-reduced-motion: reduce){ .art-img.fx{ transition:none; } }
.progress{ position:absolute; left:0; right:0; bottom:0; height:3px; background:rgba(255,255,255,.15); }
.progress > span{ display:block; height:100%; background:var(--teal); }
.heart-btn{
  position:absolute; top:8px; right:8px; z-index:2;
  width:28px;height:28px;border-radius:50%;
  background:rgba(10,10,16,.55); backdrop-filter:blur(4px);
  border:none; color:#fff; font-size:14px; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
}
.heart-btn.on{ color:#ff5f7a; }

.row{ margin-bottom:30px; }
.m-content .row{ content-visibility:auto; contain-intrinsic-size:0 240px; }
.m-content .row:first-of-type,
.m-content .row.hx-explore,
.m-content .row.home-bottom-actions-row{ content-visibility:visible; }
.row h3{ font-size:15px; font-weight:700; margin:0 0 12px; display:flex; align-items:center; gap:8px; }
/* padding sopra (compensato dal margine) = spazio per la scheda che si alza al passaggio del mouse:
   lo scorrimento orizzontale taglia tutto cio' che esce dalla riga. */
.row .track{ display:flex; gap:12px; overflow-x:auto; padding-top:8px; margin-top:-8px; padding-bottom:6px; scrollbar-width:none; cursor:grab; -webkit-overflow-scrolling:touch; transform:translateZ(0); }
.row .track::-webkit-scrollbar{ display:none; }
.track, .st-track, .sg-track, .trend-strip, .vf-posts, .dc-chs, .dc-strip, .manga-chip-row, .cat-chips-row, .ns-tabs, .wl-tabs, #poEpisodesSeasons, [data-drag-scroll]{
  cursor:grab;
  user-select:none;
  -webkit-user-select:none;
}
.track img, .st-track img, .sg-track img, .trend-strip img, .vf-posts img, .card img, .t10-item img{
  -webkit-user-drag:none;
  user-drag:none;
  user-select:none;
  -webkit-user-select:none;
}
.track.dragging, .st-track.dragging, .sg-track.dragging, .trend-strip.dragging, .vf-posts.dragging, .dc-chs.dragging, .dc-strip.dragging, .manga-chip-row.dragging, .cat-chips-row.dragging, .ns-tabs.dragging, .wl-tabs.dragging, #poEpisodesSeasons.dragging, [data-drag-scroll].dragging{
  cursor:grabbing !important;
  user-select:none !important;
  -webkit-user-select:none !important;
  scroll-snap-type:none !important;
}
.track.dragging *, .st-track.dragging *, .sg-track.dragging *, .trend-strip.dragging *, .vf-posts.dragging *, [data-drag-scroll].dragging *{
  cursor:grabbing !important;
  user-select:none !important;
  -webkit-user-select:none !important;
  pointer-events:none !important;
}
.empty-hint{ color:var(--text-faint); font-size:13.5px; padding:30px 0; text-align:center; }
.loading-hint{ color:var(--text-faint); font-size:13.5px; padding:30px 0; text-align:center; }

/* ── Skeleton caricamento iniziale Home ─────────────────────────
   Al posto del solo testo "Caricamento…": blocchi sagomati come hero e
   card reali (stessa classe .d-hero/.m-hero/.card/.row, solo contenuto
   sostituito), cosi' la home non "salta" quando arrivano i dati veri. */
@keyframes skel-shimmer{
  0%{ background-position:-320px 0; }
  100%{ background-position:320px 0; }
}
.skel-shimmer{
  background-image:linear-gradient(90deg, var(--surface-2) 25%, var(--surface-3) 37%, var(--surface-2) 63%);
  background-size:640px 100%;
  animation:skel-shimmer 1.4s ease-in-out infinite;
}
/* Skeleton del billboard della Home (skeletonHomeHtml): fondo appena piu'
   chiaro in alto dove arrivera' l'immagine, sagome nello stesso punto dei
   testi e pulsanti veri. */
.bb-skel .bb{ background:linear-gradient(180deg, var(--surface-2) 0%, var(--bg) 92%); }
.bb-skel .bb::after{ display:none; }
.bb-skel .bb-info .skel-shimmer{ max-width:100%; }
.bb-skel-play{ flex:1; height:46px; border-radius:12px; }
.skel-title{ width:150px; height:14px; border-radius:5px; margin-bottom:12px; }
.skel-card{ cursor:default; }
.skel-card:hover{ transform:none; }
.skel-card .art{ padding:0; }
@media (prefers-reduced-motion: reduce){
  .skel-shimmer{ animation:none; }
}

.play-btn{
  display:inline-flex; align-items:center; gap:8px;
  background:#fff; color:#0a0a10; border:none; border-radius:10px;
  padding:11px 20px; font-weight:700; font-size:14px; cursor:pointer;
}
.ghost-btn{
  display:inline-flex; align-items:center; gap:8px;
  background:rgba(255,255,255,.1); color:#fff; border:1px solid var(--hairline);
  border-radius:10px; padding:11px 18px; font-weight:600; font-size:14px;
  cursor:pointer; backdrop-filter:blur(6px);
}
.ghost-btn.on{ background:color-mix(in srgb, var(--dd-red, #e50914) 25%, transparent); border-color:var(--accent); }
.btn-secondary{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  background:rgba(255,255,255,.08); color:#fff; border:1px solid var(--hairline);
  border-radius:10px; padding:10px 18px; font-weight:600; font-size:13px;
  cursor:pointer; backdrop-filter:blur(6px); transition:all .2s ease;
}
.btn-secondary:hover{ background:rgba(255,255,255,.14); border-color:rgba(255,255,255,.25); color:#fff; }
.back-btn{
  display:inline-flex; align-items:center; gap:6px;
  background:rgba(10,10,16,.55); backdrop-filter:blur(6px);
  border:none; color:#fff; border-radius:999px; padding:8px 14px 8px 10px;
  font-weight:600; font-size:13px; cursor:pointer;
}
/* Variante per quando il pulsante "Indietro" siede direttamente sullo sfondo
   scuro della pagina invece che sopra un'immagine hero (es. Music Hub:
   dettaglio podcast/playlist/mood/genere): lo sfondo semi-trasparente scuro
   pensato per contrastare con un'immagine diventava quasi illeggibile
   (scuro su scuro) su una superficie piatta. */
.back-btn-plain{
  position:static; margin-bottom:14px;
  background:var(--surface-2); border:1px solid var(--hairline); backdrop-filter:none;
}
.back-btn-plain:hover{ background:var(--surface-3); border-color:rgba(255,255,255,.22); }
.chip{
  display:inline-flex; align-items:center; gap:6px;
  background:var(--surface-3); border:1px solid var(--hairline);
  border-radius:9px; padding:9px 14px; font-size:13px; font-weight:600;
  color:var(--text); cursor:pointer; appearance:none;
}
.chip:hover{ border-color:var(--accent); }
.chip:disabled{ opacity:.5; cursor:not-allowed; }
.chip .dim{ color:var(--text-muted); font-weight:400; font-size:12px; }
.sources{ margin-bottom:30px; }

/* ── Modale fonti ─────────────────────────────────────────────── */
.modal-overlay{
  position:fixed; inset:0; z-index:400; background:rgba(0,0,0,.7);
  display:none; align-items:flex-end; justify-content:center;
}
.modal-overlay.show{ display:flex; }
.modal-sheet{
  background:#14141d; width:100%; max-width:640px; max-height:82vh;
  border-radius:20px 20px 0 0; display:flex; flex-direction:column; overflow:hidden;
  transform:translateY(100%); transition:transform .2s ease;
}
.modal-overlay.show .modal-sheet{ transform:translateY(0); }
.modal-header{
  display:flex; align-items:center; justify-content:space-between;
  padding:16px 18px; border-bottom:1px solid var(--hairline); flex-shrink:0;
}
.modal-header h3{ margin:0; font-size:15px; }
.modal-body{ overflow-y:auto; padding:14px 18px 24px; }
@media (min-width:901px){
  .modal-overlay{ align-items:center; }
  .modal-sheet{ border-radius:16px; max-height:74vh; transform:translateY(12px) scale(.98); }
  .modal-overlay.show .modal-sheet{ transform:translateY(0) scale(1); }
}

/* ── Lista sorgenti (stile allineato all'app nativa) ─────────────── */
.src-tabs{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:14px; }
.src-tab{
  appearance:none; border:1px solid var(--hairline); cursor:pointer;
  background:var(--surface-3); color:rgba(255,255,255,.7);
  font-size:12px; font-weight:600; padding:7px 13px; border-radius:20px;
}
.src-tab .cnt{ color:rgba(255,255,255,.45); font-weight:400; }
.src-tab.active{ background:var(--accent); border-color:var(--accent); color:#fff; }
.src-tab.active .cnt{ color:rgba(255,255,255,.85); }
/* Wishlist: la chip "Canali YouTube" è più lunga delle altre e finiva da
   sola a capo su una riga intera — scorrimento orizzontale invece del wrap,
   stesso pattern delle chip di filtro comuni su mobile. */
.wl-tabs{ flex-wrap:nowrap; overflow-x:auto; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
.wl-tabs::-webkit-scrollbar{ display:none; }
.wl-tabs .src-tab{ flex-shrink:0; }
.src-list{ display:flex; flex-direction:column; gap:8px; }
.src-card{
  display:flex; align-items:center; gap:14px; text-align:left; width:100%;
  background:var(--surface-2); border:1px solid var(--hairline); border-radius:12px;
  padding:12px; cursor:pointer; appearance:none; color:inherit;
}
.src-card:hover{ border-color:var(--border-strong,rgba(255,255,255,.2)); }
.src-card-blocked{ opacity:.5; cursor:not-allowed; border-color:color-mix(in srgb, var(--dd-red, #e50914) 30%, transparent); }
.src-card-blocked:hover{ border-color:color-mix(in srgb, var(--dd-red, #e50914) 30%, transparent); }
.badge.provider-blocked{ background:color-mix(in srgb, var(--dd-red, #e50914) 16%, transparent); border-color:color-mix(in srgb, var(--dd-red, #e50914) 60%, transparent); color:#ff4d5a; }
.src-main{ flex:1; min-width:0; }
.src-top{ display:flex; align-items:center; gap:6px; flex-wrap:wrap; margin-bottom:6px; }
.badge{ font-size:10px; font-weight:800; padding:2px 6px; border-radius:4px; border:0.8px solid; white-space:nowrap; }
.badge.provider-debrid{ background:rgba(0,210,211,.15); border-color:rgba(0,210,211,.6); color:#00d2d3; }
.badge.provider-torrentio{ background:rgba(95,39,205,.18); border-color:rgba(95,39,205,.7); color:#a17bf0; }
.badge.provider-youtube{ background:rgba(255,0,0,.15); border-color:rgba(255,0,0,.6); color:#ff5c5c; }
.badge.quality-4k{ background:rgba(255,159,67,.15); border-color:rgba(255,159,67,.6); color:#ff9f43; }
.badge.quality-1080{ background:rgba(84,160,255,.15); border-color:rgba(84,160,255,.6); color:#54a0ff; }
.badge.quality-std{ background:rgba(136,143,168,.15); border-color:rgba(136,143,168,.5); color:#888fa8; }
.badge.lang-ita{ background:rgba(16,172,132,.2); border-color:#10ac84; color:#1dd1a1; }
.badge.lang-sub{ background:rgba(255,179,0,.2); border-color:rgba(255,179,0,.8); color:#ffd54f; }
.badge.lang-other{ background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.25); color:#fff; }
.src-name{ font-size:11px; color:var(--text-muted); font-weight:600; margin-left:2px; }
.src-title{ font-size:12.5px; color:rgba(255,255,255,.85); line-height:1.35; margin-bottom:5px;
  display:-webkit-box; -webkit-line-clamp:2; line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.src-meta{ display:flex; gap:14px; font-size:11px; color:var(--text-muted); }
.src-play{
  flex-shrink:0; width:38px; height:38px; border-radius:50%; border:none;
  background:var(--accent); color:#fff; font-size:16px; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
}

/* ── Chip compatibilità audio (dedicato, sempre nella stessa posizione) ── */
.ac-chip{
  flex-shrink:0; width:50px; height:50px; border-radius:12px; display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:2px; font-size:9px; font-weight:800;
  text-align:center; line-height:1.15; letter-spacing:.2px;
}
.ac-chip .ic{ font-size:15px; line-height:1; }
.ac-chip.ok{ background:rgba(34,197,94,.14); border:1.5px solid rgba(34,197,94,.5); color:#4ade80; }
.ac-chip.warn{ background:rgba(239,68,68,.14); border:1.5px solid rgba(239,68,68,.5); color:#ef4444; }
.ac-chip.conv{ background:rgba(56,189,248,.14); border:1.5px solid rgba(56,189,248,.5); color:#38bdf8; }
.ac-chip.unknown{ background:var(--surface-3); border:1.5px solid rgba(255,255,255,.14); color:var(--text-muted); }

.ac-legend{
  display:flex; gap:16px; flex-wrap:wrap; padding:12px 14px; background:var(--surface-2);
  border-radius:10px; margin-top:10px; border:1px solid var(--hairline);
}
.ac-legend-item{ display:flex; align-items:center; gap:8px; font-size:11.5px; color:var(--text-muted); }
.ac-legend-dot{
  width:22px; height:22px; border-radius:7px; display:flex; align-items:center; justify-content:center;
  font-size:11px; font-weight:800; flex-shrink:0;
}
.ac-legend-dot.ok{ background:rgba(34,197,94,.14); border:1.5px solid rgba(34,197,94,.5); color:#4ade80; }
.ac-legend-dot.warn{ background:rgba(239,68,68,.14); border:1.5px solid rgba(239,68,68,.5); color:#ef4444; }
.ac-legend-dot.conv{ background:rgba(56,189,248,.14); border:1.5px solid rgba(56,189,248,.5); color:#38bdf8; }
.ac-legend-dot.unknown{ background:var(--surface-3); border:1.5px solid rgba(255,255,255,.14); color:var(--text-muted); }

/* ================================================================
   DESKTOP SKIN
================================================================= */
.desktop-shell{ display:none; padding-bottom:40px; }
@media (min-width:901px){ .desktop-shell:not([hidden]){ display:block; } }
.d-topbar{ display:grid; grid-template-columns:1fr auto 1fr; align-items:center; padding:18px 40px; gap:24px; position:sticky; top:0; background:var(--bg); z-index:50; }
.d-left{ display:flex; align-items:center; }
.d-center{ display:flex; justify-content:center; align-items:center; }
.d-logo{ font-weight:800; font-size:22px; letter-spacing:-.01em; cursor:pointer; }
.d-logo span{ color:var(--accent); }
.d-hubs{ display:flex; gap:1px; background:var(--surface-2); border-radius:999px; padding:4px; }
.d-hubs button{
  appearance:none; border:none; cursor:pointer;
  background:transparent; color:var(--text-muted);
  font-size:13.5px; font-weight:600; padding:8px 15px; border-radius:999px;
  transition:background .15s, color .15s;
}
.d-hubs button:hover{ color:#fff; }
.d-hubs button.active{ background:linear-gradient(135deg,var(--accent),var(--accent-dim)); color:#fff; }
.d-right{ display:flex; align-items:center; justify-content:flex-end; gap:12px; }
.d-content{ padding:0 40px; }
.d-content .card{ width:170px; }
.d-content .card.wide-card{ width:280px; }
.d-content .card.square-card{ width:150px; }
.hero-wrap{ position:relative; }
.d-hero{
  margin:8px 0 36px; border-radius:20px; overflow:hidden; position:relative;
  height:420px; background:var(--surface-2);
  display:flex; align-items:flex-end; padding:44px;
}
.d-hero::after{ content:""; position:absolute; inset:0;
  background:linear-gradient(90deg, rgba(10,10,16,.8) 20%, rgba(10,10,16,.4) 65%), linear-gradient(0deg, rgba(10,10,16,.9), transparent 55%); }
.d-hero-inner{ position:relative; max-width:540px; z-index:1; }
.d-hero-inner .tag{ color:var(--teal); font-weight:700; font-size:12.5px; letter-spacing:.08em; text-transform:uppercase; margin-bottom:10px; }
.d-hero-inner h1{ font-size:40px; margin:0 0 12px; font-weight:800; line-height:1.05; }
.d-hero-inner p{ color:var(--text-muted); font-size:14.5px; line-height:1.55; margin:0 0 22px; max-width:480px; }
.d-hero-actions{ display:flex; gap:12px; align-items:center; }
.d-hero .back-btn{ position:absolute; top:20px; left:20px; z-index:2; }

/* ================================================================
   MOBILE SKIN
================================================================= */
.mobile-shell{ display:none; max-width:430px; margin:0 auto; position:relative; }
@media (max-width:900px){ .mobile-shell:not([hidden]){ display:block; } }
/* env(safe-area-inset-top) è necessario perché il meta viewport usa
   viewport-fit=cover (per andare bordo a bordo su schermo intero): senza,
   su iPhone con notch/Dynamic Island questa barra sticky a top:0 finiva
   proprio dietro il notch, tagliando logo e icone in alto a destra. */
.m-topbar{ display:flex; align-items:center; justify-content:space-between; padding:calc(10px + env(safe-area-inset-top, 0px)) 12px 6px; position:sticky; top:0; background:var(--bg); z-index:50; width:100%; box-sizing:border-box; overflow:hidden; }
.m-logo{ font-weight:800; font-size:20px; letter-spacing:-.01em; line-height:1; cursor:pointer; flex-shrink:0; }
.m-logo span{ color:var(--accent); }
.m-right{ display:flex; align-items:center; gap:6px; flex-shrink:0; max-width:calc(100% - 85px); }
.m-right .topbar-icon-btn{ width:32px; height:32px; flex-shrink:0; }
@media (max-width: 480px){
  .m-right #mTrendBtn{ display:none !important; }
}
@media (max-width: 400px){
  .m-topbar{ padding:calc(8px + env(safe-area-inset-top, 0px)) 10px 6px; }
  .m-logo{ font-size:19px; }
  .m-right{ gap:4px; }
  .m-right .topbar-icon-btn{ width:30px; height:30px; }
}
@media (max-width: 360px){
  .m-logo{ font-size:18px; }
  .m-right{ gap:3px; }
  .m-right .topbar-icon-btn{ width:28px; height:28px; }
  .m-right #mDiscoveryBtn{ display:none !important; }
}
.m-content{ padding:0 14px calc(100px + env(safe-area-inset-bottom, 0px)); }
.m-content .card{ width:118px; }
.m-content .catalogue-grid{
  display:grid !important;
  grid-template-columns:repeat(3, 1fr) !important;
  gap:8px !important;
  width:100% !important;
}
.m-content .catalogue-grid .card{
  width:100% !important;
  min-width:0 !important;
  margin:0 !important;
}
.m-content .catalogue-grid .card .art{
  width:100% !important;
  aspect-ratio:2/3 !important;
}
.m-content .card.wide-card{ width:200px; }
.m-content .card.square-card{ width:104px; }
.m-content .row h3{ font-size:14px; }
.m-hero{
  margin:6px 0 24px; border-radius:16px; overflow:hidden; position:relative;
  height:190px; background:var(--surface-2);
  display:flex; align-items:flex-end; padding:18px;
}
.m-hero::after{ content:""; position:absolute; inset:0; background:linear-gradient(0deg, rgba(10,10,16,.92), transparent 60%); }
.m-hero-inner{ position:relative; z-index:1; }
.m-hero-inner .tag{ color:var(--teal); font-weight:700; font-size:10.5px; letter-spacing:.07em; text-transform:uppercase; margin-bottom:6px; }
.m-hero-inner h1{ font-size:21px; margin:0 0 8px; font-weight:800; line-height:1.15; }
.m-hero-inner p{ color:var(--text-muted); font-size:12.5px; line-height:1.5; margin:0 0 14px; }
.m-hero-actions{ display:flex; gap:8px; align-items:center; }
.m-hero-actions .play-btn, .m-hero-actions .ghost-btn{ padding:9px 15px; font-size:12.5px; }
.m-hero .back-btn{ position:absolute; top:14px; left:14px; z-index:2; }

/* Hero della pagina dettaglio: stessa classe .d-hero/.m-hero dell'hero Home,
   ma qui dentro c'è molto più contenuto (tag + titolo + sinossi intera + 3
   pulsanti) — con l'altezza fissa dell'hero Home (pensata per poche righe)
   veniva tagliato dall'alto (align-items:flex-end in un box overflow:hidden
   troppo basso), a volte nascondendo perfino titolo e tag. Qui l'altezza
   torna libera in base al contenuto e il gradiente copre l'intera immagine
   invece della sola fascia bassa, cosi' resta leggibile dal tag fino ai
   pulsanti qualunque sia la lunghezza della sinossi. */
.detail-hero{ height:auto; padding-top:56px; }
.detail-hero::after{
  background:linear-gradient(180deg, rgba(10,10,16,.4) 0%, rgba(10,10,16,.6) 30%, rgba(10,10,16,.93) 72%, rgba(10,10,16,.98) 100%);
}
.detail-hero .back-btn{ z-index:3; }
@media (min-width:901px){
  .detail-hero{ padding-top:80px; }
}

/* ── Hero Home "billboard" (renderHeroSlide in app.js) ─────────────────
   Immagine a tutta larghezza che passa sotto la barra in alto: margine
   negativo pari all'altezza della barra (--d-top-h / --m-top-h, misurate in
   JS) e ai lati quanto il padding del contenuto. */
.bb-wrap{ position:relative; }
.bb{ position:relative; overflow:hidden; background:var(--bg); }
.bb-img{ position:absolute; top:0; right:0; height:100%; width:100%; object-fit:cover; object-position:center 20%; z-index:0; animation:bbFade .45s ease; }
@keyframes bbFade{ from{ opacity:0; } to{ opacity:1; } }
.bb::after{ content:""; position:absolute; inset:0; z-index:1; pointer-events:none; }
.bb-info{ position:absolute; z-index:2; }
.bb-tag{ font-size:12px; font-weight:800; letter-spacing:.12em; color:rgba(255,255,255,.92); }
.bb-tag b{ color:var(--accent); font-weight:900; margin-right:4px; }
.bb-head{ display:flex; align-items:flex-end; }
.bb-logo{ display:block; object-fit:contain; filter:drop-shadow(0 6px 18px rgba(0,0,0,.6)); }
.bb-title{ margin:0; font-weight:900; letter-spacing:-.01em; line-height:1.05; text-wrap:balance; }
.bb-meta{ display:flex; align-items:center; flex-wrap:wrap; row-gap:4px; color:rgba(255,255,255,.82); font-weight:500; }
.bb-dot{ width:3px; height:3px; border-radius:50%; background:rgba(255,255,255,.5); margin:0 8px; display:inline-block; }
.bb-score{ color:#46d369; font-weight:700; }
.bb-actions{ display:flex; align-items:center; flex-wrap:wrap; }
.bb-btn{ display:inline-flex; align-items:center; justify-content:center; gap:9px; border:1px solid rgba(255,255,255,.14); cursor:pointer;
  background:rgba(255,255,255,.14); color:#fff; font:inherit; font-weight:700; border-radius:10px; backdrop-filter:blur(10px); transition:background .15s, transform .15s; white-space:nowrap; flex-shrink:0; }
.bb-btn:hover{ background:rgba(255,255,255,.24); }
.bb-btn.primary{ background:#fff; color:#000; border-color:#fff; font-weight:800; }
.bb-btn.primary:hover{ background:rgba(255,255,255,.86); }
.bb-btn:focus-visible, .bb-mini:focus-visible{ outline:3px solid #fff; outline-offset:3px; }
.bb-tri{ width:0; height:0; border-left:11px solid currentColor; border-top:7px solid transparent; border-bottom:7px solid transparent; }
.bb-ico{ width:1.15em; height:1.15em; flex:none; }
.bb-ic{ width:17px; height:17px; border:2px solid currentColor; border-radius:50%; font-size:11px; font-weight:900; display:inline-flex; align-items:center; justify-content:center; font-style:normal; }
.bb-plus{ font-size:19px; line-height:1; font-weight:500; }
.bb-segs{ display:flex; gap:5px; }
.bb-segs span{ height:3px; width:18px; border-radius:2px; background:rgba(255,255,255,.25); overflow:hidden; position:relative; }
.bb-segs span.done{ background:rgba(255,255,255,.6); }
.bb-segs span.on{ width:34px; }
.bb-segs span.on i{ position:absolute; left:0; top:0; bottom:0; width:0; background:#fff; animation:bbSeg 8s linear forwards; }
.bb-wrap.paused .bb-segs span.on i{ animation-play-state:paused; }
@keyframes bbSeg{ to{ width:100%; } }
@media (prefers-reduced-motion: reduce){ .bb-img{ animation:none; } }

/* Desktop */
.d-content .bb-wrap{ margin:calc(-1 * var(--d-top-h, 72px)) -40px 12px; }
.d-content .bb{ height:clamp(540px, 76vh, 760px); }
.d-content .bb::after{ background:
  linear-gradient(90deg, var(--bg) 0%, rgba(10,10,16,.92) 16%, rgba(10,10,16,.35) 46%, rgba(10,10,16,0) 66%),
  linear-gradient(180deg, rgba(10,10,16,.55) 0%, rgba(10,10,16,0) 16%, rgba(10,10,16,0) 58%, var(--bg) 100%); }
.d-content .bb-info{ left:40px; bottom:56px; width:min(700px, 58vw); }
.d-content .bb-tag{ margin-bottom:16px; }
.d-content .bb-head{ min-height:110px; margin-bottom:18px; }
.d-content .bb-logo{ max-width:420px; max-height:150px; object-position:left bottom; }
.d-content .bb-title{ font-size:clamp(34px, 3.4vw, 50px); }
.d-content .bb-title-wait{ height:110px; }
.d-content .bb-meta{ font-size:15px; }
.d-content .bb-ov{ margin:14px 0 0; font-size:15px; line-height:1.55; color:rgba(255,255,255,.76); max-width:520px;
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.d-content .bb-actions{ gap:10px; margin-top:22px; flex-wrap:wrap; }
.d-content .bb-btn{ height:46px; padding:0 20px; font-size:14.5px; white-space:nowrap; flex-shrink:0; }
.d-content .bb-segs{ margin-top:24px; }
.d-content .bb-wrap .hero-nav{ top:calc(50% + var(--d-top-h, 72px) / 2); }

/* Mobile */
.m-content .bb-wrap{ margin:calc(-1 * var(--m-top-h, 56px)) -14px 14px; }
.m-content .bb{ height:clamp(500px, 152vw, 660px); }
.m-content .bb-img{ object-position:center 12%; }
.m-content .bb::after{ background:linear-gradient(180deg, rgba(10,10,16,.85) 0%, rgba(10,10,16,0) 18%, rgba(10,10,16,0) 46%, rgba(10,10,16,.88) 78%, var(--bg) 100%); }
.m-content .bb-info{ left:0; right:0; bottom:14px; padding:0 18px; text-align:center; display:flex; flex-direction:column; align-items:center; }
.m-content .bb-tag{ font-size:11px; margin-bottom:10px; }
.m-content .bb-head{ min-height:70px; justify-content:center; margin-bottom:10px; }
.m-content .bb-logo{ max-width:240px; max-height:88px; object-position:center bottom; }
.m-content .bb-title{ font-size:28px; text-align:center; }
.m-content .bb-title-wait{ height:70px; }
.m-content .bb-meta{ font-size:12.5px; justify-content:center; }
.m-content .bb-actions{ width:100%; gap:8px; margin-top:16px; }
.m-content .bb-btn.primary{ flex:1; height:46px; font-size:15px; }
.bb-mini{ width:70px; flex:none; background:none; border:none; color:#fff; font:inherit; font-size:10.5px; display:flex; flex-direction:column; align-items:center; gap:4px; cursor:pointer; color:rgba(255,255,255,.88); }
.bb-mini .bb-plus{ font-size:24px; }
.bb-mini .bb-ic{ width:21px; height:21px; font-size:12px; }
.m-content .bb-segs{ margin-top:14px; justify-content:center; }

/* Conto alla rovescia per un'uscita (scheda dell'hero, vedi renderCountdownSlide). */
.bb-tag.bb-soon{ color:#ffc2c6; display:flex; align-items:center; }
/* Conto alla rovescia personale (il tuo prossimo episodio): etichetta e pallino blu, riga dell'episodio. */
.bb-tag.bb-mine{ color:#b9dcff; }
.bb-mine .bb-live{ background:#3b9cff; animation-name:bbLiveB; }
@keyframes bbLiveB{ 0%{ box-shadow:0 0 0 0 rgba(59,156,255,.7); } 70%,100%{ box-shadow:0 0 0 9px rgba(59,156,255,0); } }
.bb-ep{ margin-top:4px; font-size:16px; font-weight:700; color:rgba(255,255,255,.92); }
.m-content .bb-ep{ font-size:13px; margin:0 0 10px; text-align:center; }
.m-content .bb-tag.bb-soon{ justify-content:center; }
/* Etichetta del conto alla rovescia: pillola in vetro (desktop e mobile). */
.bb-pill{ display:none; }
.bb-tag.bb-soon .bb-tag-full, .bb-tag.bb-soon .bb-live{ display:none; }
.bb-tag.bb-soon .bb-pill{ display:inline-flex; align-items:center; gap:7px; padding:6px 13px 6px 7px; border-radius:999px; letter-spacing:0;
  background:rgba(12,12,16,.55); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); border:1px solid rgba(255,255,255,.16); }
.bb-pill b{ margin:0; color:#fff; font-size:10px; font-weight:800; letter-spacing:.06em; padding:3px 8px; border-radius:999px; background:var(--accent); }
.bb-mine .bb-pill b{ background:#2f8cff; }
/* Mobile: con la pillola niente altezza minima del titolo, cosi' il logo le sta subito sotto (prima restava un vuoto variabile). */
.m-content .bb-count .bb-tag.bb-soon{ margin-bottom:8px; }
.m-content .bb-count .bb-head{ min-height:0; }
.m-content .bb-count .bb-title-wait{ height:40px; }
.bb-pill em{ font-style:normal; font-size:12.5px; font-weight:600; color:#e4e4ea; }
.bb-live{ width:8px; height:8px; border-radius:50%; background:var(--accent); margin-right:9px; box-shadow:0 0 0 0 color-mix(in srgb, #e50914 70%, transparent); animation:bbLive 1.6s ease-out infinite; flex:none; }
@keyframes bbLive{ 0%{ box-shadow:0 0 0 0 color-mix(in srgb, #e50914 70%, transparent); } 70%,100%{ box-shadow:0 0 0 9px color-mix(in srgb, #e50914 0%, transparent); } }
.bb-cd{ display:inline-grid; grid-auto-flow:column; grid-auto-columns:1fr; margin-top:18px; border-radius:16px; overflow:hidden;
  background:linear-gradient(180deg, rgba(255,255,255,.10), rgba(255,255,255,.03)), rgba(10,10,16,.55);
  border:1px solid rgba(255,255,255,.16); box-shadow:0 10px 30px rgba(0,0,0,.35); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); }
.bb-cd > div{ position:relative; width:86px; padding:13px 0 11px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; }
.bb-cd > div + div::before{ content:''; position:absolute; left:0; top:20%; bottom:20%; width:1px; background:rgba(255,255,255,.16); }
.bb-cd b{ display:block; width:100%; text-align:center; font-size:36px; font-weight:800; line-height:1; letter-spacing:-.02em; font-variant-numeric:tabular-nums; }
.bb-cd > div:last-child b{ color:#ff5a62; }
.bb-cd b.tk{ animation:bbTick .35s ease-out; }
@keyframes bbTick{ 0%{ transform:translateY(-22%); opacity:.35; } 100%{ transform:none; opacity:1; } }
.bb-cd span{ display:block; margin-top:7px; font-size:10.5px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:rgba(255,255,255,.6); }
.bb-when{ margin-top:12px; font-size:14px; font-weight:600; color:rgba(255,255,255,.8); }
.bb-when::first-letter{ text-transform:uppercase; }
.m-content .bb-cd{ display:grid; width:min(340px, 100%); margin:2px auto 0; border-radius:14px; }
.m-content .bb-cd > div{ width:auto; padding:10px 0 9px; }
.m-content .bb-cd b{ font-size:27px; }
.m-content .bb-cd span{ font-size:9.5px; margin-top:5px; letter-spacing:.12em; }
.m-content .bb-when{ font-size:12.5px; margin-top:9px; text-align:center; }
@media (prefers-reduced-motion:reduce){ .bb-live, .bb-cd b.tk{ animation:none; } }

/* Barra in alto trasparente sopra l'hero finché non si scorre. */
.d-topbar, .m-topbar{ transition:background-color .25s ease, background .25s ease; }
html.dd-bb:not(.bb-scrolled) .desktop-shell .d-topbar,
html.dd-bb:not(.bb-scrolled) .mobile-shell .m-topbar{
  background:linear-gradient(180deg, rgba(0,0,0,.55), rgba(0,0,0,0));
}

.hero-nav{
  position:absolute; top:50%; transform:translateY(-50%); z-index:4;
  width:38px; height:38px; border-radius:50%; border:none; cursor:pointer;
  background:rgba(10,10,16,.55); backdrop-filter:blur(4px); color:#fff;
  padding:0; display:flex; align-items:center; justify-content:center;
  opacity:0; transition:opacity .15s ease;
}
.hero-nav svg{ display:block; pointer-events:none; flex-shrink:0; }
.hero-wrap:hover .hero-nav{ opacity:1; }
.hero-nav.prev{ left:14px; }
.hero-nav.next{ right:14px; }
.hero-dots{ position:absolute; bottom:14px; left:50%; transform:translateX(-50%); z-index:4; display:flex; gap:6px; }
.hero-dot{ width:6px; height:6px; border-radius:50%; background:rgba(255,255,255,.35); transition:all .15s ease; }
.hero-dot.active{ width:18px; border-radius:3px; background:var(--accent); }
@media (max-width:900px), (pointer: coarse), (hover: none){ .hero-nav{ display: none !important; } }

.m-tabbar{
  position:fixed; left:50%; transform:translateX(-50%);
  bottom:calc(12px + env(safe-area-inset-bottom, 0px)); z-index:80;
  max-width:calc(100% - 14px);
  display:flex; align-items:center; justify-content:center; gap:4px;
  background:rgba(22,21,31,.94);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border:1px solid rgba(255,255,255,.16);
  border-radius:999px; padding:5px 8px;
  box-shadow:0 16px 36px rgba(0,0,0,.65), 0 1px 0 rgba(255,255,255,.10) inset;
  overflow-x:auto; scrollbar-width:none;
}
.m-tabbar::-webkit-scrollbar{ display:none; }
.m-tab{
  appearance:none; border:none; background:transparent; cursor:pointer; flex-shrink:0;
  display:flex; align-items:center; justify-content:center; gap:5px;
  /* 46 px (44 sui telefoni piccoli): sotto i 44 px il tocco sbaglia scheda. */
  height:46px; min-width:44px; padding:0 9px; border-radius:999px;
  color:var(--text-faint); font-size:12px; font-weight:700;
  transition:color .2s ease, background .2s ease;
}
.m-tab .ic{ font-size:18px; line-height:1; display:flex; align-items:center; justify-content:center; }
.m-tab .ic svg{ width:22px; height:22px; flex-shrink:0; }
.m-tab .lbl{
  max-width:0; overflow:hidden; white-space:nowrap;
  opacity:0; transition:max-width .25s ease, opacity .2s ease;
}
.m-tab.active{
  color:#fff;
  background:linear-gradient(135deg,var(--accent),var(--accent-dim));
  box-shadow:0 4px 14px color-mix(in srgb, var(--dd-red, #e50914) 45%, transparent);
  padding:0 13px;
}
.m-tab.active .lbl{ max-width:64px; opacity:1; }

@media (max-width:430px){
  .m-tabbar{ padding:4px 6px; gap:2.5px; max-width:calc(100% - 10px); }
  .m-tab{ padding:0 7px; height:44px; min-width:40px; gap:4px; font-size:11.5px; }
  .m-tab .ic svg{ width:21px; height:21px; }
  .m-tab.active{ padding:0 11px; }
  .m-tab.active .lbl{ max-width:56px; }
}

@media (max-width:360px){
  .m-tabbar{ padding:3px 5px; gap:1.5px; max-width:calc(100% - 6px); }
  .m-tab{ padding:0 5px; height:44px; min-width:36px; gap:3px; font-size:11px; }
  .m-tab .ic svg{ width:20px; height:20px; }
  .m-tab.active{ padding:0 9px; }
  .m-tab.active .lbl{ max-width:50px; }
}

/* ── Channel grid (Live TV) ───────────────────────────────────── */
.chan-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:14px; }
.m-content .chan-grid{ grid-template-columns:1fr; }
.chan-card{
  border-radius:14px; overflow:hidden; cursor:pointer; border:none; padding:0; text-align:left;
  background:var(--surface-2); transition:transform .12s;
}
.chan-card .art{ aspect-ratio:16/9; display:flex; flex-direction:column; justify-content:space-between; padding:12px; background-size:cover; background-position:center; }
.chan-card .name{ font-weight:700; font-size:14px; }
.chan-card .prog{ font-size:11.5px; color:rgba(255,255,255,.75); font-weight:400; }

/* ── Track list (Music) ───────────────────────────────────────── */
.track-row{
  display:flex; align-items:center; gap:12px; padding:9px 8px; border-radius:10px;
  cursor:pointer; border:none; background:transparent; width:100%; text-align:left; color:inherit;
}
.track-row:hover{ background:var(--surface-2); }
.track-row.playing{ background:color-mix(in srgb, var(--dd-red, #e50914) 12%, transparent); }
.track-row .art-sq{ width:44px;height:44px;border-radius:8px;flex-shrink:0; background-size:cover; background-position:center; background-color:var(--surface-3); }
.track-row .meta{ flex:1; min-width:0; }
.track-row .meta .t{ font-weight:600; font-size:13.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.track-row .meta .a{ font-size:12px; color:var(--text-muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.track-row .dur{ font-size:12px; color:var(--text-faint); flex-shrink:0; }
.track-row .eq{ display:none; color:var(--accent); font-size:12px; }
.track-row.playing .eq{ display:block; }
.track-list{ display:flex; flex-direction:column; gap:2px; margin-bottom:10px; }
.heart-btn-inline{ font-size:15px; color:var(--text-muted); cursor:pointer; flex-shrink:0; padding:4px; }
.heart-btn-inline.on{ color:var(--accent); }
/* Prima non aveva alcuna regola: renderizzava come un <button> generico del
   browser (bordo/sfondo di sistema) attorno al glifo ♥/♡, visibile
   soprattutto su desktop dove quel chrome di default risalta di piu'. */
.fav-heart-btn{
  appearance:none; border:none; background:transparent; flex-shrink:0;
  width:30px; height:30px; border-radius:50%; padding:0;
  display:inline-flex; align-items:center; justify-content:center;
  font-size:16px; line-height:1; color:var(--text-faint); cursor:pointer;
  transition:color .15s ease, background .15s ease, transform .15s ease;
}
.fav-heart-btn:hover{ background:rgba(255,255,255,.08); color:#fff; transform:scale(1.08); }
.fav-heart-btn.is-fav{ color:var(--accent); }
.fav-heart-btn.is-fav:hover{ color:var(--accent); }
@media (max-width:900px){
  .fav-heart-btn{ width:var(--tap-md); height:var(--tap-md); font-size:19px; }
}
.music-search{ display:flex; gap:10px; margin-bottom:16px; }
.music-search .field{ flex:1; margin-bottom:0; }
.music-search .btn-primary{ width:auto; white-space:nowrap; }

/* ── Wishlist list ────────────────────────────────────────────── */
.wish-row{ display:flex; align-items:center; gap:12px; padding:10px 8px; border-radius:10px; }
.wish-row:hover{ background:var(--surface-2); }
.wish-row .art-mini{ width:52px;height:78px;border-radius:8px;flex-shrink:0; cursor:pointer; background-color:var(--surface-3); position:relative; overflow:hidden; }
.wish-row .meta{ flex:1; cursor:pointer; }
.wish-row .meta .t{ font-weight:600; font-size:13.5px; }
.wish-row .meta .s{ font-size:12px; color:var(--text-muted); }
.wish-row .rm{ appearance:none; border:none; background:var(--surface-3); color:var(--text-muted); width:30px;height:30px;border-radius:50%; cursor:pointer; font-size:13px; }
@media (max-width:900px){
  .wish-row .rm{ width:var(--tap-md); height:var(--tap-md); font-size:16px; }
}

/* ── Profile screen ───────────────────────────────────────────── */
.profile-card{ background:var(--surface-2); border-radius:16px; padding:22px; display:flex; align-items:center; gap:16px; margin-bottom:20px; }
.profile-list{ display:flex; flex-direction:column; gap:2px; }
.profile-item{ display:flex; align-items:center; justify-content:space-between; padding:14px 16px; background:var(--surface-2); border-radius:10px; margin-bottom:8px; font-size:13.5px; }
.profile-item .k{ color:var(--text-muted); }
.logout-btn{ margin-top:16px; width:100%; padding:13px; border-radius:10px; border:1px solid var(--hairline); background:transparent; color:#ff6b7a; font-weight:700; font-size:13.5px; cursor:pointer; }

/* ================================================================
   MINI PLAYER (music, collapsed)
================================================================= */
.mini-player{
  position:fixed; left:0; right:0; z-index:150;
  display:none; align-items:center; gap:12px;
  /* Blur ridotto da 24px a 8px: sfondo già al 94% di opacità, la resa è
     praticamente identica ma il costo di ricalcolo ad ogni frame di scroll
     (elemento fisso, sempre in overlay durante l'ascolto) crolla. */
  background:rgba(18, 15, 10, 0.94); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
  border-top:1px solid color-mix(in srgb, var(--hub-gold, #E5A93B) 25%, transparent);
  padding:10px 20px; cursor:pointer;
  box-shadow:0 -8px 30px rgba(0,0,0,0.6);
}
.mini-player.show{ display:flex; }
html:not([data-skin]) .mini-player{ bottom:0; }
html[data-skin="desktop"] .mini-player{ bottom:0; max-width:none; }
html[data-skin="mobile"] .mini-player{ bottom:86px; max-width:430px; margin:0 auto; left:0; right:0; border-radius:14px 14px 0 0; }
@media (max-width:900px){ html:not([data-skin]) .mini-player{ bottom:86px; max-width:430px; margin:0 auto; border-radius:14px 14px 0 0; } }
.mini-player .art-sq{ width:42px;height:42px;border-radius:10px;flex-shrink:0; background-size:cover; background-position:center; background-color:var(--surface-2); box-shadow:0 4px 12px rgba(0,0,0,0.5); }
.mini-player .meta{ flex:1; min-width:0; }
.mini-player .meta .t{ font-weight:700; font-size:13px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; color:#fff; }
.mini-player .meta .a{ font-size:11.5px; color:rgba(255,255,255,0.7); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; margin-top:1px; }
.mini-player .ctrls{ display:flex; align-items:center; gap:12px; }
.mini-player .ctrls button{
  appearance:none; border:none; background:transparent; color:#fff; font-size:16px; cursor:pointer; padding:6px;
  display:flex; align-items:center; justify-content:center; border-radius:50%; transition:transform .15s, background .15s;
}
.mini-player .ctrls button:hover{ background:rgba(255,255,255,0.1); transform:scale(1.1); }
#mpPlayBtn{
  width:36px; height:36px; background:var(--hub-gold, #E5A93B) !important; color:var(--hub-on, #0C0A06) !important;
  font-size:15px; font-weight:900; box-shadow:0 0 14px color-mix(in srgb, var(--hub-gold, #E5A93B) 40%, transparent);
}
/* Brano in caricamento (setMusicLoading in app.js): rotellina al posto
   dell'icona, cosi' non sembra fermo e non invita a premere. */
.po-controls .main.is-loading, #mpPlayBtn.is-loading{
  color:transparent !important; position:relative; cursor:progress;
}
.po-controls .main.is-loading::after, #mpPlayBtn.is-loading::after{
  content:""; position:absolute; left:50%; top:50%;
  width:40%; height:40%; margin:-20% 0 0 -20%; box-sizing:border-box;
  border-radius:50%; border:2.5px solid rgba(12,10,6,.28); border-top-color:#0C0A06;
  animation:poBtnSpin .8s linear infinite;
}
@keyframes poBtnSpin{ to{ transform:rotate(360deg); } }
@media (prefers-reduced-motion: reduce){
  .po-controls .main.is-loading::after, #mpPlayBtn.is-loading::after{ animation-duration:2.4s; }
}
#mpPlayBtn:hover{ transform:scale(1.08) !important; box-shadow:0 0 18px color-mix(in srgb, var(--hub-gold, #E5A93B) 60%, transparent) !important; }
@media (max-width:900px){
  .mini-player .ctrls button{ width:var(--tap-sm); height:var(--tap-sm); font-size:18px; padding:0; }
  #mpPlayBtn{ width:var(--tap-md) !important; height:var(--tap-md) !important; font-size:17px; }
}
.mini-player .mp-progress{ position:absolute; left:0; right:0; bottom:0; height:3px; background:rgba(255,255,255,.1); }
.mini-player .mp-progress > span{ display:block; height:100%; background:linear-gradient(90deg, var(--hub-gold, #E5A93B), var(--hub-gold2, #F59E0B)); width:0%; }

/* ================================================================
   FULLSCREEN PLAYER OVERLAY
================================================================= */
.player-overlay{
  position:fixed; inset:0; z-index:300; background:#000;
  display:none; flex-direction:column;
  overscroll-behavior: contain;
  touch-action: manipulation;
}
.player-overlay.show{ display:flex; }
.po-stage{ flex:1; position:relative; display:flex; align-items:center; justify-content:center; overflow:hidden; background:#000; }
#poVideo{ width:100%; height:100%; object-fit:contain; background:#000; }
#poYtVideoFrame, .po-yt-frame{ width:100%; height:100%; border:none; background:#000; }
.po-subtitle-overlay {
  position: absolute;
  bottom: 84px;
  left: 4%;
  right: 4%;
  text-align: center;
  pointer-events: none;
  z-index: 8;
  display: flex;
  justify-content: center;
  align-items: flex-end;
  transition: bottom 0.25s ease;
}
.player-overlay.controls-hidden .po-subtitle-overlay {
  bottom: 36px;
}
.po-subtitle-overlay span {
  display: inline-block;
  color: #ffffff;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  font-size: clamp(16px, 2.6vw, 32px);
  font-weight: 600;
  line-height: 1.38;
  white-space: pre-line;
  background: rgba(0, 0, 0, 0.78);
  padding: 4px 14px;
  border-radius: 6px;
  text-shadow: 0 2px 4px rgba(0,0,0,0.9), 0 0 6px rgba(0,0,0,0.8);
  max-width: 90%;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}
/* Il target del Fullscreen API e' un <div> (l'overlay intero, non il <video>
   da solo, altrimenti i controlli sparirebbero) — alcuni browser/WebView non
   gli applicano in modo affidabile lo stesso "riempi tutto" che riservano
   a un vero elemento video/img in fullscreen, lasciando l'overlay o il suo
   contenuto ancorati alla dimensione/pozione precedente (video piccolo in
   alto, tanto spazio vuoto attorno). Regole esplicite per coprire il caso. */
.player-overlay:fullscreen,
.player-overlay:-webkit-full-screen{
  display:flex !important; width:100% !important; height:100% !important;
}
.player-overlay:fullscreen .po-stage,
.player-overlay:-webkit-full-screen .po-stage{ width:100% !important; height:100% !important; flex:1 1 auto !important; }
.player-overlay:fullscreen #poVideo,
.player-overlay:fullscreen #poYtVideoFrame,
.player-overlay:-webkit-full-screen #poVideo,
.player-overlay:-webkit-full-screen #poYtVideoFrame{ width:100% !important; height:100% !important; }
.po-topbar, .po-bottom, .po-controls{ transition:opacity .3s ease; opacity:1; }
.player-overlay.controls-hidden .po-topbar,
.player-overlay.controls-hidden .po-bottom{ opacity:0; pointer-events:none; }
.player-overlay.controls-hidden{ cursor:none; }
.player-overlay.is-embed .po-bottom,
.player-overlay.is-embed .po-controls{ display:none !important; }
.po-top-trigger{ position:absolute; top:0; left:0; right:0; height:60px; z-index:12; pointer-events:auto; }
.po-topbar{
  position:absolute; top:0; left:0; right:0; z-index:15;
  padding:calc(18px + env(safe-area-inset-top, 0px)) 22px 18px;
  display:flex; align-items:center; justify-content:space-between;
  background:linear-gradient(180deg, rgba(0,0,0,.65), transparent);
}
.po-topbar .info{ display:flex; flex-direction:column; }
.po-topbar .info .t{ font-weight:700; font-size:15px; }
.po-topbar .info .s{ font-size:12px; color:var(--text-muted); }
.po-topbar .actions{ display:flex; align-items:center; gap:10px; }
.po-icon-btn{
  width:36px;height:36px;border-radius:50%; background:rgba(255,255,255,.12);
  border:none; color:#fff; font-size:14px; cursor:pointer; display:flex; align-items:center; justify-content:center;
  transition: transform .15s ease, background .15s ease, box-shadow .15s ease, outline .15s ease;
}
.po-icon-btn:hover, .po-icon-btn:focus, .po-icon-btn:focus-visible{
  background: rgba(255, 255, 255, 0.28);
  outline: 2px solid var(--accent, var(--dd-red, #e50914));
  outline-offset: 2px;
  transform: scale(1.12);
  box-shadow: 0 0 12px color-mix(in srgb, var(--dd-red, #e50914) 60%, transparent);
}
/* Segnale visivo che quella fonte ha davvero più tracce selezionabili —
   prima l'icona restava sempre uguale, dando l'impressione (su mobile in
   particolare, senza :hover a dare un feedback) che fosse permanentemente
   disattivata anche quando il cambio lingua funzionava. */
.po-icon-btn.has-tracks{ background:rgba(255,255,255,.12); border:2px solid var(--gold, #f0b429); color:var(--gold, #f0b429); }
@media (max-width:900px){
  .po-icon-btn{ width:var(--tap-md); height:var(--tap-md); font-size:17px; }
}
.po-track-wrap{ position:relative; }
.po-track-menu{
  position:absolute; top:44px; right:0; z-index:10; min-width:160px;
  background:#1c1c28; border:1px solid var(--hairline); border-radius:10px;
  padding:6px; box-shadow:0 12px 30px rgba(0,0,0,.5);
  max-height:min(60vh, 420px); overflow-y:auto;
}
.po-track-menu button{
  display:block; width:100%; text-align:left; appearance:none; border:none;
  background:transparent; color:#fff; font-size:12.5px; padding:8px 10px; border-radius:7px; cursor:pointer;
}

.player-overlay.is-embed .po-top {
  background: linear-gradient(180deg, rgba(0,0,0,0.88) 0%, rgba(0,0,0,0.45) 60%, transparent 100%);
  pointer-events: auto;
}
#poReloadEmbedBtn:hover {
  background: rgba(59, 130, 246, 0.35) !important;
  outline-color: #3b82f6 !important;
  box-shadow: 0 0 12px rgba(59, 130, 246, 0.6) !important;
}
#poFeedsEmbedBtn:hover {
  background: rgba(16, 185, 129, 0.35) !important;
  outline-color: #10b981 !important;
  box-shadow: 0 0 12px rgba(16, 185, 129, 0.6) !important;
}
.po-track-menu button:hover{ background:rgba(255,255,255,.08); }
.po-track-menu button.unsupported{
  color:rgba(255,255,255,.4); cursor:default;
}
.po-track-menu button.unsupported:hover{ background:transparent; }
.po-track-menu button.unsupported .tag-unsupported{
  display:block; font-size:10.5px; color:rgba(255,255,255,.35); margin-top:2px;
}
.po-track-menu button.active{ color:var(--accent); font-weight:700; }
.po-square-art{
  width:min(38vh,300px); height:min(38vh,300px); border-radius:18px; box-shadow:0 30px 60px rgba(0,0,0,.5);
  background-size:cover; background-position:center; background-color:var(--surface-2);
}
.po-click-shield{
  position:absolute; inset:0; z-index:5; cursor:pointer; background:transparent;
  pointer-events:none;
}
.player-overlay.controls-hidden .po-click-shield{
  pointer-events:auto;
}
.po-chapters-wrap{ position:absolute; inset:0; pointer-events:none; }
.po-chapter-tick{ position:absolute; top:-2px; bottom:-2px; width:2px; background:rgba(0,0,0,0.85); z-index:2; border-radius:1px; box-shadow:0 0 2px rgba(255,255,255,0.4); }
.po-seek-tooltip{
  position:absolute; bottom:18px; transform:translateX(-50%);
  background:rgba(18,18,28,0.95); border:1px solid rgba(255,255,255,0.2);
  color:#fff; font-size:11.5px; font-weight:600; padding:5px 9px; border-radius:6px;
  pointer-events:none; white-space:nowrap; z-index:15; box-shadow:0 6px 18px rgba(0,0,0,0.6);
  backdrop-filter:blur(8px);
}
.po-chapter-name{
  font-size:12px; font-weight:600; color:var(--accent); text-align:center;
  margin-top:-6px; margin-bottom:10px; letter-spacing:0.3px;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.po-bottom{
  position:absolute; left:0; right:0; bottom:0; z-index:2; padding:14px 22px 26px;
  background:linear-gradient(0deg, rgba(0,0,0,.75), transparent);
}
.po-seek{ display:flex; align-items:center; gap:10px; font-size:11px; color:var(--text-muted); margin-bottom:16px; position:relative; }
.po-seek .bar{ flex:1; height:5px; border-radius:3px; background:rgba(255,255,255,.18); position:relative; cursor:pointer; }
.po-seek .bar > span{ position:absolute; left:0; top:0; bottom:0; border-radius:3px; background:linear-gradient(90deg, var(--hub-gold, #E5A93B), var(--hub-gold2, #F59E0B)); }
.po-controls{ display:flex; align-items:center; justify-content:center; gap:20px; }
.po-controls .main{
  width:64px; height:64px; border-radius:50%;
  background:linear-gradient(135deg, var(--hub-gold, #E5A93B), var(--hub-gold2, #F59E0B)); color:var(--hub-on, #0C0A06);
  border:none; font-size:24px; font-weight:900; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 0 24px color-mix(in srgb, var(--hub-gold, #E5A93B) 45%, transparent);
  transition:transform .2s cubic-bezier(0.2, 0, 0.2, 1), box-shadow .2s;
}
.po-controls .main:hover{
  transform:scale(1.08); box-shadow:0 0 32px color-mix(in srgb, var(--hub-gold, #E5A93B) 65%, transparent);
}
.po-controls button.side{
  appearance:none; border:none; width:44px; height:44px; border-radius:50%;
  background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.12);
  color:#fff; font-size:17px; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  transition:all .2s;
}
.po-controls button.side:hover{
  background:rgba(255,255,255,0.18); transform:scale(1.08);
}
.po-live-strip{ display:flex; gap:8px; overflow-x:auto; margin-top:16px; padding:0 2px; scrollbar-width:none; }
.po-live-strip::-webkit-scrollbar{ display:none; }
.po-live-strip .lc{
  flex-shrink:0; width:96px; aspect-ratio:16/9; border-radius:9px; cursor:pointer;
  display:flex; align-items:flex-end; padding:6px; font-size:10px; font-weight:700;
  border:2px solid transparent; background-size:cover; background-position:center; background-color:var(--surface-2);
}
.po-live-strip .lc.active{ border-color:var(--danger); }
.po-toast{
  position:fixed; top:24px; left:50%; transform:translateX(-50%); z-index:400;
  background:rgba(20,20,29,.92); border:1px solid var(--hairline);
  padding:8px 16px; border-radius:999px; font-size:12.5px; color:var(--text-muted);
  opacity:0; transition:opacity .3s; pointer-events:none; max-width:90vw; text-align:center;
}
.po-toast.show{ opacity:1; }

/* ── Avviso "nuova versione disponibile" (PWA) ───────────────────────── */
.update-toast{
  position:fixed; z-index:350;
  top:16px; right:16px; max-width:320px;
  display:flex; align-items:center; gap:10px;
  background:var(--surface-2); border:1px solid rgba(32,196,176,0.35);
  border-radius:14px; padding:10px 10px 10px 12px;
  box-shadow:0 12px 30px -10px rgba(0,0,0,0.6);
}
.update-toast-ic{
  width:30px; height:30px; border-radius:9px; flex-shrink:0;
  background:rgba(32,196,176,0.14); color:var(--teal);
  display:flex; align-items:center; justify-content:center; font-size:15px;
}
.update-toast-body{ flex:1; min-width:0; }
.update-toast-t{ font-size:12.5px; font-weight:700; color:var(--text); }
.update-toast-s{ font-size:11px; color:var(--text-muted); }
.update-toast-btn{
  appearance:none; border:none; background:var(--teal); color:#04211c;
  font-family:inherit; font-weight:800; font-size:11.5px; border-radius:8px;
  padding:7px 11px; cursor:pointer; flex-shrink:0; white-space:nowrap;
}
.update-toast-btn:hover{ filter:brightness(1.08); }
.update-toast-close{
  appearance:none; border:none; background:transparent; color:var(--text-faint);
  font-size:13px; cursor:pointer; padding:4px; flex-shrink:0; line-height:1;
}
.update-toast-close:hover{ color:var(--text); }
@media (max-width:900px){
  .update-toast{ left:12px; right:12px; top:calc(10px + env(safe-area-inset-top, 0px)); max-width:none; }
}

.login-update-notice{
  display:flex; align-items:center; gap:6px; text-align:left;
  background:rgba(32,196,176,0.1); border:1px solid rgba(32,196,176,0.3);
  border-radius:10px; padding:9px 12px; margin-top:14px;
  font-size:11.5px; color:var(--teal); font-weight:600; line-height:1.4;
}
.po-blocked{ position:absolute; inset:0; z-index:5; background:rgba(0,0,0,.92); display:flex; align-items:center; justify-content:center; padding:24px; }
.po-blocked-inner{ text-align:center; max-width:340px; }
.po-blocked-inner h3{ margin:0 0 10px; font-size:18px; }
.po-blocked-inner p{ color:var(--text-muted); font-size:13.5px; line-height:1.55; margin:0 0 20px; }

/* ── Attesa/errore del remux audio (codec non decodificabile dal browser) ── */
.po-remux-prep{
  position:absolute; inset:0; z-index:6; display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:16px; pointer-events:none;
  background:rgba(0,0,0,.35);
}
.po-remux-spinner{
  width:42px; height:42px; border-radius:50%;
  border:3px solid rgba(255,255,255,.16); border-top-color:var(--gold);
  animation:po-remux-spin .9s linear infinite;
}
@keyframes po-remux-spin{ to{ transform:rotate(360deg); } }
@media (prefers-reduced-motion: reduce){ .po-remux-spinner{ animation:none; } }
.po-remux-prep-text{ color:#fff; font-size:13.5px; font-weight:700; text-align:center; }
.po-remux-prep-sub{ color:rgba(255,255,255,.55); font-size:11.5px; text-align:center; max-width:260px; line-height:1.5; padding:0 20px; }

.po-remux-overload{
  position:absolute; left:16px; right:16px; bottom:110px; z-index:7;
  max-width:380px; margin:0 auto;
  background:rgba(20,18,14,0.96); backdrop-filter:blur(14px);
  border:1px solid rgba(239,68,68,0.35); border-radius:16px;
  padding:16px 16px 14px; box-shadow:0 16px 40px -12px rgba(0,0,0,0.7);
}
.po-remux-overload-head{ display:flex; align-items:center; gap:10px; margin-bottom:8px; }
.po-remux-overload-ic{
  width:30px; height:30px; border-radius:9px; flex-shrink:0;
  background:rgba(239,68,68,0.16); color:#ff8a8a;
  display:flex; align-items:center; justify-content:center; font-size:15px;
}
.po-remux-overload-title{ font-size:12.5px; font-weight:800; color:#fff; }
.po-remux-overload-body{ font-size:11.5px; color:rgba(255,255,255,.65); line-height:1.55; margin:0 0 12px; }
.po-remux-overload-actions{ display:flex; gap:8px; }
.po-remux-retry-btn{
  flex:1; appearance:none; border:none; cursor:pointer;
  background:linear-gradient(135deg,var(--gold),#c98d16); color:#241a00;
  font-family:inherit; font-weight:800; font-size:11.5px; padding:9px 0; border-radius:9px;
}
.po-remux-dismiss-btn{
  appearance:none; border:none; cursor:pointer; font-family:inherit;
  padding:9px 14px; border-radius:9px; font-size:11.5px; font-weight:700;
  color:rgba(255,255,255,.6); background:rgba(255,255,255,.06);
}

/* ── "Prossimo episodio" (VOD serie TV) — vedi checkUpNextEpisode in vod_player.js ──
   - Tema Aurora (html.newlook): negli ultimi 30 s il video si rimpicciolisce a sinistra e a destra compare il pannello proporzionato.
   - Tema Standard (html:not(.newlook)): il video resta a tutto schermo e compare il banner compatto in basso a destra. */
#poVideo{ transition:transform .8s cubic-bezier(.2,.8,.2,1); transform-origin:0 0; }
html.newlook #playerOverlay.po-upnext-on #poVideo{
  transform:translate(5%,22%) scale(.48);
  outline:1px solid rgba(255,255,255,.14); border-radius:6px;
}
#playerOverlay.po-upnext-on .po-topbar,
#playerOverlay.po-upnext-on .po-bottom,
#playerOverlay.po-upnext-on #poSubtitleOverlay{ opacity:0 !important; pointer-events:none !important; }
.po-upnext-card{
  position:absolute; z-index:7;
  color:#fff; animation:poUpNextIn .45s .2s both cubic-bezier(.2,.8,.2,1);
}
html.newlook .po-upnext-card{
  left:57%; top:19%; width:36%; max-width:440px;
}
html:not(.newlook) .po-upnext-card{
  right:28px; bottom:26px; left:auto; top:auto; width:330px; max-width:calc(100vw - 40px);
  background:rgba(16,17,23,.94); border:1px solid rgba(255,255,255,.15);
  border-radius:13px; padding:13px 15px; box-shadow:0 14px 34px rgba(0,0,0,.7);
}
html:not(.newlook) .po-upnext-img{ display:none; }
@keyframes poUpNextIn{ from{ opacity:0; transform:translateY(8px); } to{ opacity:1; transform:none; } }
.po-upnext-k{ font-size:10px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; color:rgba(255,255,255,.55); margin-bottom:6px; }
.po-upnext-img{
  position:relative; width:100%; aspect-ratio:16/9; border-radius:8px; overflow:hidden;
  background:#151926 center/cover no-repeat; border:1px solid rgba(255,255,255,.1);
}
.po-upnext-ring{
  position:absolute; right:8px; bottom:8px; width:34px; height:34px;
  background:rgba(0,0,0,.6); border-radius:50%;
}
.po-upnext-ring circle{ fill:none; stroke-width:2.6; }
.po-upnext-ring .bg{ stroke:rgba(255,255,255,.25); }
.po-upnext-ring .fg{
  stroke:var(--nl-base-tone,#fff); stroke-linecap:round; stroke-dasharray:106.8; stroke-dashoffset:0;
  transform:rotate(-90deg); transform-origin:50% 50%; transition:stroke-dashoffset .9s linear;
}
.po-upnext-ring text{ fill:#fff; font-size:11px; font-weight:800; text-anchor:middle; dominant-baseline:middle; font-family:inherit; }
.po-upnext-title{ font-size:15px; font-weight:700; line-height:1.25; margin-top:8px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
html:not(.newlook) .po-upnext-title{ margin-top:2px; font-size:14px; }
.po-upnext-label{ font-size:12px; color:rgba(255,255,255,.58); margin-top:3px; display:flex; align-items:center; gap:6px; }
.po-upnext-ready-dot{ width:5px; height:5px; border-radius:50%; background:var(--dd-red,#e50914); display:inline-block; flex-shrink:0; }
html.newlook .po-upnext-ready-dot{ background:var(--nl-base-tone,#d3e8ff); }
.po-upnext-actions{ display:flex; gap:8px; margin-top:10px; flex-wrap:wrap; }
.po-upnext-play, .po-upnext-dismiss{
  appearance:none; border:none; cursor:pointer; font-family:inherit;
  display:inline-flex; align-items:center; gap:5px;
  height:34px; padding:0 13px; border-radius:9px; font-size:12px; font-weight:700;
  outline:2px solid transparent; outline-offset:2px; transition:background .15s, outline-color .15s;
}
.po-upnext-play{ background:#fff; color:#000; }
html.newlook .po-upnext-play{ background:var(--nl-base-tone,#d3e8ff); color:var(--nl-base-on,#00325a); }
.po-upnext-play svg{ width:14px; height:14px; fill:currentColor; }
.po-upnext-dismiss{ background:rgba(255,255,255,.13); color:#fff; font-weight:600; }
.po-upnext-dismiss:hover{ background:rgba(255,255,255,.22); }
.po-upnext-play:focus-visible, .po-upnext-dismiss:focus-visible{ outline-color:#fff; }
@media (max-width:700px){
  html.newlook #playerOverlay.po-upnext-on #poVideo{ transform:translateY(-14%); outline:none; }
  html.newlook .po-upnext-card{ left:5%; right:5%; width:auto; top:auto; bottom:6%; }
  .po-upnext-img{ display:none; }
  .po-upnext-title{ font-size:14px; margin-top:0; }
  .po-upnext-play, .po-upnext-dismiss{ height:34px; font-size:12px; padding:0 13px; }
}
@media (prefers-reduced-motion:reduce){ #poVideo, .po-upnext-card{ transition:none; animation:none; } }

/* ── Salta Intro Button ── */
.po-skip-intro-btn {
  position: absolute;
  bottom: 96px;
  right: 36px;
  z-index: 50;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 20px;
  background: rgba(20, 23, 36, 0.92);
  border: 1px solid rgba(255, 255, 255, 0.35);
  border-radius: 12px;
  color: #fff;
  font-family: inherit;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.05em;
  cursor: pointer;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.6), 0 0 12px color-mix(in srgb, var(--dd-red, #e50914) 30%, transparent);
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
  backdrop-filter: blur(8px);
}
.po-skip-intro-btn:hover, .po-skip-intro-btn:focus-visible {
  background: #fff;
  color: #000;
  border-color: #fff;
  outline: 2px solid #fff;
  outline-offset: 3px;
}
.po-skip-intro-btn svg {
  width: 18px;
  height: 18px;
  fill: currentColor;
}
@media (max-width: 600px) {
  .po-skip-intro-btn {
    bottom: 80px;
    right: 18px;
    padding: 8px 16px;
    font-size: 12px;
  }
}

/* ── Frecce di scorrimento desktop su caroselli orizzontali ─────── */
.track-wrap{ position:relative; }
.track-arrow{
  position:absolute; top:50%; transform:translateY(-50%); z-index:25;
  width:44px; height:44px; border-radius:50%;
  border:1px solid var(--hairline);
  background:rgba(18,18,26,.82); backdrop-filter:blur(10px);
  color:#fff; padding:0;
  cursor:pointer; display:flex; align-items:center; justify-content:center;
  opacity:0; transition:opacity .2s ease, transform .15s ease, background .15s ease;
  box-shadow:0 8px 24px rgba(0,0,0,.7);
}
.track-arrow svg{ display:block; pointer-events:none; flex-shrink:0; }
.track-wrap:hover .track-arrow{ opacity:1; }
.track-arrow:hover{
  background:var(--accent); border-color:var(--accent);
  transform:translateY(-50%) scale(1.1);
}
.track-arrow.prev{ left:-16px; }
.track-arrow.next{ right:-16px; }
@media (max-width:900px){
  .track-arrow{ display:none !important; }
}

/* ── Disco in Vinile Animato (Music Hub) ────────────────────────── */
.po-ambient-glow{
  position:absolute; inset:-80px;
  background-size:cover; background-position:center;
  filter:blur(90px); opacity:.38; pointer-events:none; z-index:0;
  transition:background-image .8s ease;
}
.po-vinyl-wrap{
  display:flex; align-items:center; justify-content:center;
  z-index:2;
  /* Centrata nello spazio LIBERO tra barra in alto e controlli in basso
     (entrambi sovrapposti allo stage): centrata sull'intera altezza la
     copertina sembrava spinta verso il basso. Misure da syncVinylBounds(). */
  position:absolute; left:0; right:0;
  top:var(--po-top-h, 70px); bottom:var(--po-bottom-h, 170px);
}
.po-vinyl-wrap .po-square-art{
  width:auto; height:min(38vh, 300px, calc(100% - 24px)); aspect-ratio:1;
}
/* ── Equalizzatore Animato (Dynamic Equalizer Bars) ─────────────── */
.po-eq-bars{
  display:flex; align-items:flex-end; gap:3px; height:18px; padding:0 6px;
}
.po-eq-bars span{
  width:3px; background:var(--accent); border-radius:2px; height:4px;
  transition:height .15s ease;
}
.po-eq-bars.playing span:nth-child(1){ animation:eqBar .75s ease-in-out infinite alternate; }
.po-eq-bars.playing span:nth-child(2){ animation:eqBar 1.1s ease-in-out infinite alternate .2s; }
.po-eq-bars.playing span:nth-child(3){ animation:eqBar .65s ease-in-out infinite alternate .4s; }
.po-eq-bars.playing span:nth-child(4){ animation:eqBar 1.0s ease-in-out infinite alternate .15s; }
.po-eq-bars.playing span:nth-child(5){ animation:eqBar .9s ease-in-out infinite alternate .3s; }

.mini-eq{
  display:none; align-items:flex-end; gap:2.5px; height:15px; margin:0 8px; flex-shrink:0;
}
.mini-eq.playing{ display:flex; }
.mini-eq span{
  width:2.5px; background:var(--accent); border-radius:1px;
  animation:eqBar .85s ease-in-out infinite alternate;
}
.mini-eq span:nth-child(2){ animation-delay:.2s; }
.mini-eq span:nth-child(3){ animation-delay:.4s; }
.mini-eq span:nth-child(4){ animation-delay:.15s; }

@keyframes eqBar{
  0%{ height:3px; }
  100%{ height:16px; }
}

/* ── Music Tools (Lyrics, Coda, Volume, Controlli) ─────────────── */
.po-music-tools{
  display:flex; align-items:center; justify-content:space-between;
  gap:10px; margin-bottom:16px; padding:0 4px;
}
.po-tool-btn{
  background:rgba(255,255,255,.08); border:1px solid var(--hairline);
  border-radius:20px; color:#fff; padding:6px 14px; font-size:12px; font-weight:600;
  cursor:pointer; display:inline-flex; align-items:center; gap:6px;
  transition:background .15s, border-color .15s;
}
.po-tool-btn:hover{ background:rgba(255,255,255,.18); }
.po-sub-ctrl{
  width:44px; height:44px; border-radius:50%;
  background:rgba(255,255,255,.08); border:1px solid var(--hairline);
  color:rgba(255,255,255,.7); display:inline-flex; align-items:center; justify-content:center;
  cursor:pointer; transition:all .2s cubic-bezier(0.4, 0, 0.2, 1);
}
.po-sub-ctrl:hover{
  background:rgba(255,255,255,.16); color:#fff; transform:scale(1.08);
  border-color:rgba(255,255,255,.25);
}
.po-sub-ctrl.on{
  background:rgba(139,92,246,.25); border-color:var(--accent); color:#fff;
  box-shadow:0 0 16px rgba(139,92,246,.5);
}
.po-yt-frame{
  width:100%; height:100%; border:none; display:block;
}
.po-yt-frame[hidden]{ display:none !important; }
.po-vol-wrap{ display:flex; align-items:center; gap:6px; font-size:13px; }
.po-vol-slider{
  width:85px; height:4px; accent-color:var(--accent); cursor:pointer;
}
.po-tool-btn{ white-space:nowrap; flex-shrink:0; }
/* Telefono: la riga (preferiti, equalizzatore, Testo, Coda, volume) non ci
   stava in 360px — il cursore del volume usciva dallo schermo. Il volume
   va su una riga sua, a tutta larghezza. */
@media (max-width:520px){
  .po-music-tools{ flex-wrap:wrap; row-gap:12px; }
  .po-vol-wrap{ flex:1 1 100%; gap:10px; }
  .po-vol-slider{ flex:1; width:auto; min-width:0; }
}

/* ── Modali Sheets (Lyrics & Queue) ────────────────────────────── */
.po-sheet-overlay{
  position:absolute; inset:0; z-index:25; background:rgba(0,0,0,.75);
  backdrop-filter:blur(12px); display:flex; align-items:flex-end; justify-content:center;
}
@media (min-width:720px){
  .po-sheet-overlay{ align-items:center; }
}
.po-sheet-card{
  background:#161622; width:100%; max-width:600px; max-height:78vh;
  border-radius:22px 22px 0 0; border:1px solid var(--hairline);
  display:flex; flex-direction:column; overflow:hidden;
  box-shadow:0 -12px 40px rgba(0,0,0,.85);
}
@media (min-width:720px){
  .po-sheet-card{ border-radius:18px; }
}
.po-sheet-header{
  display:flex; align-items:center; justify-content:space-between;
  padding:16px 20px; border-bottom:1px solid var(--hairline); flex-shrink:0;
}
.po-sheet-header h3{ margin:0; font-size:16px; font-weight:700; }
.po-lyrics-body, .po-sheet-body{
  overflow-y:auto; padding:20px; font-size:15px; line-height:1.85; color:#d8d8e0;
  /* Dentro .po-sheet-card (flex column), un figlio senza flex-basis/min-height
     esplicito non si restringe mai sotto l'altezza del suo contenuto (il
     classico "min-height:auto" dei flex item) — quindi non diventava mai
     davvero un contenitore con scroll proprio: il testo lungo veniva solo
     tagliato dall'overflow:hidden della card, e sia lo scroll manuale sia
     lo scrollIntoView() automatico dei lyrics sincronizzati non avevano
     alcun effetto visibile. flex:1 + min-height:0 lo forzano a occupare lo
     spazio residuo della card e a scrollare davvero al suo interno. */
  flex:1 1 auto; min-height:0;
}
.po-lyrics-line{ margin-bottom:8px; transition:color .15s, font-size .15s; }
.po-lyrics-line.active{ color:var(--teal); font-weight:700; font-size:17px; }

/* ── Modale Episodi (cambio episodio dal player) ───────────────── */
#poEpisodesSeasons{ flex:0 0 auto; padding-bottom:0; overflow-x:auto; overflow-y:visible; min-height:0; }
#poEpisodesList{ flex:1 1 auto; overflow-y:auto; min-height:0; }

/* Righe compatte (non le card verticali della pagina dettaglio): dentro il
   pannello stretto del player, una miniatura piccola + testo a fianco fa
   stare piu' episodi a schermo e rende lo scroll molto meno pesante. */
.pe-list{ display:flex; flex-direction:column; gap:2px; }
.pe-row{
  display:flex; align-items:center; gap:12px; padding:8px; border-radius:10px;
  cursor:pointer; transition:background .15s ease;
}
.pe-row:hover{ background:rgba(255,255,255,.06); }
.pe-row.is-current{ background:rgba(29,209,161,.12); }
.pe-thumb{
  position:relative; width:108px; height:60px; flex-shrink:0; border-radius:8px;
  overflow:hidden; background:#121218;
}
.pe-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.pe-num{
  position:absolute; top:4px; left:4px; background:rgba(0,0,0,.75);
  color:#fff; font-size:9.5px; font-weight:800; padding:1px 5px; border-radius:4px;
}
.pe-play{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  color:rgba(255,255,255,.85); font-size:14px; background:rgba(0,0,0,.15);
}
.pe-info{ flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
.pe-title{
  font-size:13px; font-weight:700; color:#fff; line-height:1.3;
  display:-webkit-box; -webkit-line-clamp:2; line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.pe-meta{ font-size:11px; color:var(--text-faint); }
.pe-badge{ flex-shrink:0; font-size:9.5px; font-weight:800; color:var(--teal); white-space:nowrap; }

/* ── Artisti Popolari (Avatar tondi con gradiente) ─────────────── */
.artist-circle{
  display:flex; flex-direction:column; align-items:center; gap:8px;
  width:88px; flex-shrink:0; cursor:pointer; text-align:center;
}
.artist-avatar{
  width:76px; height:76px; border-radius:50%;
  padding:2.5px; background:linear-gradient(135deg, #8b5cf6, #ec4899);
  overflow:hidden; box-shadow:0 6px 18px rgba(0,0,0,.5);
  transition:transform .15s ease;
}
.artist-circle:hover .artist-avatar{ transform:scale(1.06); }
.artist-avatar img{ width:100%; height:100%; border-radius:50%; object-fit:cover; display:block; }
.artist-name{ font-size:12px; font-weight:600; color:#fff; width:100%; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

/* ── Schermata Catalogo (Catalogue) ────────────────────────────── */
.cat-chips-row{ display:flex; gap:8px; overflow-x:auto; padding-bottom:6px; margin-bottom:14px; scrollbar-width:none; }
.cat-chips-row::-webkit-scrollbar{ display:none; }
.cat-chip{
  appearance:none; -webkit-appearance:none; border:1px solid var(--hairline); cursor:pointer;
  background:var(--surface-2); color:rgba(255,255,255,.75);
  font-size:12.5px; font-weight:600; padding:8px 16px; border-radius:999px;
  white-space:nowrap; transition:background .15s ease, color .15s ease, border-color .15s ease, transform .15s ease;
  outline:none; -webkit-tap-highlight-color:transparent; user-select:none;
}
.cat-chip:hover{ border-color:rgba(255,255,255,.3); }
.cat-chip:focus, .cat-chip:focus-visible, .cat-chip:active{ outline:none !important; border-radius:999px !important; }
.cat-chip.active{ background:var(--accent); border-color:var(--accent); color:#fff; border-radius:999px !important; }
.cat-chip.provider-chip{ display:inline-flex; align-items:center; gap:6px; }
.cat-chip.provider-chip.active{ color:#fff; }

/* Ricerca Globale: pillole ovali fisse senza alterazioni di raggio al click o focus */
.global-search-pills .cat-chip{ border-radius:999px !important; outline:none !important; -webkit-tap-highlight-color:transparent !important; }
.global-search-pills .cat-chip:focus, .global-search-pills .cat-chip:active, .global-search-pills .cat-chip.active{ border-radius:999px !important; outline:none !important; }

/* Hub YouTube: rosso YouTube reale sul chip attivo, mai altrove — il resto
   dell'app resta sul rosso Debridd (--accent). */
.yt-chips-row .cat-chip.active{ background:#ff0000; border-color:#ff0000; color:#fff; }

/* Mappa dei Trend (solo desktop — vedi screenTrendMap(skin)): pallini
   posizionati per lat/lon su una griglia di meridiani/paralleli invece di
   una fila di bandierine + griglia poster piatta. */
.trend-header{ margin-bottom:16px; }
.trend-header .trend-eyebrow{
  font-size:10.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  color:#ff6b73; margin-bottom:2px;
}
.trend-header h2{ font-size:22px; margin:0 0 8px; font-weight:800; }
.trend-header .trend-header-rule{ width:34px; height:3px; background:var(--accent); border-radius:2px; }

.trend-stage{
  border-radius:16px; overflow:hidden; border:1px solid var(--hairline);
  background:radial-gradient(ellipse 90% 70% at 50% 30%, rgba(91,111,214,.08), transparent 60%), #0a0b10;
}
/* Niente max-width qui: capire la larghezza lasciava una fascia nera vuota
   a destra sugli schermi larghi. Invece la teniamo "piu' piccola" in
   altezza (aspect-ratio piu' schiacciato) cosi' riempie comunque la riga. */
.trend-canvas{ position:relative; width:100%; aspect-ratio:21/7.2; }
.trend-canvas svg{ position:absolute; inset:0; width:100%; height:100%; }
.trend-node{
  position:absolute; width:11px; height:11px; margin:-5.5px 0 0 -5.5px; border-radius:50%;
  cursor:pointer; display:flex; align-items:center; justify-content:center; transition:transform .18s ease;
}
.trend-node:hover, .trend-node.active{ transform:scale(1.35); }
.trend-node-core{
  width:100%; height:100%; border-radius:50%; background:#8b5cf6; transition:background .2s ease;
}
.trend-node.active .trend-node-core{ background:var(--accent); }
.trend-node-ring{
  position:absolute; inset:-8px; border-radius:50%; border:1.5px solid #8b5cf6;
  opacity:.55; animation:trendPulse 2.6s ease-out infinite;
}
.trend-node.active .trend-node-ring{ border-color:var(--accent); }
.trend-node:nth-child(3n) .trend-node-ring{ animation-delay:.4s; }
.trend-node:nth-child(3n+1) .trend-node-ring{ animation-delay:.8s; }
.trend-node-lbl{
  position:absolute; top:16px; left:50%; transform:translateX(-50%); white-space:nowrap;
  font-size:10.5px; font-weight:600; color:rgba(255,255,255,.7);
  background:rgba(0,0,0,.6); padding:2px 7px; border-radius:10px;
  opacity:0; transition:opacity .15s ease; pointer-events:none;
}
.trend-node:hover .trend-node-lbl, .trend-node.active .trend-node-lbl{ opacity:1; }
@keyframes trendPulse{ 0%{ transform:scale(.6); opacity:.6; } 100%{ transform:scale(1.9); opacity:0; } }

.trend-panel{ padding:18px 22px 22px; }
.trend-panel-head{ display:flex; align-items:center; gap:12px; margin-bottom:14px; }
.trend-panel-flag{ font-size:28px; line-height:1; }
.trend-panel-name{ font-size:16px; font-weight:800; color:#fff; }
.trend-panel-updated{ font-size:11px; color:var(--text-faint); margin-top:2px; }
.trend-strip{ display:flex; gap:12px; overflow-x:auto; padding-bottom:4px; }
@media (max-width:900px){
  .trend-canvas{ aspect-ratio:16/11; }
}

/* ── YouTube Hub Controls & Layout ────────────────────────── */
.yt-hub-container{ margin-top:14px; }
.yt-hub-header{ display:flex; flex-direction:column; gap:14px; margin-bottom:18px; }
.yt-hub-title-row{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; }
.yt-hub-badge-group{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.yt-badge-pill{
  display:inline-flex; align-items:center; gap:7px;
  background:rgba(255,0,51,.12); border:1px solid rgba(255,0,51,.35);
  color:#ff334b; font-size:11.5px; font-weight:800; letter-spacing:.08em;
  padding:5px 13px; border-radius:99px;
}
.yt-pill-svg{ color:#ff0033; display:block; flex-shrink:0; }
.yt-hub-h2{ font-size:24px; font-weight:800; margin:0; color:#fff; letter-spacing:-.01em; }
.yt-learn-pill{
  display:inline-flex; align-items:center; gap:8px;
  background:rgba(132,204,22,.12); border:1px solid rgba(132,204,22,.38);
  color:var(--learn, #84cc16); border-radius:99px;
  padding:7px 16px; font-size:13px; font-weight:700; cursor:pointer;
  transition:all .18s ease; font-family:inherit;
}
.yt-learn-pill:hover{
  background:rgba(132,204,22,.22); border-color:rgba(132,204,22,.6);
  transform:translateY(-1px); box-shadow:0 4px 14px rgba(132,204,22,.2);
}

/* Barra di ricerca integrata YouTube */
.yt-search-toolbar{ display:flex; align-items:center; gap:10px; width:100%; max-width:760px; }
.yt-search-input-wrap{ position:relative; flex:1; display:flex; align-items:center; }
.yt-search-icon{
  position:absolute; left:14px; color:var(--text-muted, #8b93a7);
  pointer-events:none; display:flex; align-items:center; justify-content:center;
}
.yt-search-field{
  width:100%; height:44px; background:var(--surface-1, #13141c);
  border:1px solid var(--hairline, rgba(255,255,255,.12)); border-radius:12px;
  padding:0 38px 0 42px; color:#fff; font-family:inherit; font-size:14px;
  transition:all .2s ease;
}
.yt-search-field:focus{
  outline:none; background:var(--surface-2, #1a1b26);
  border-color:var(--dd-red, #e50914); box-shadow:0 0 0 3px color-mix(in srgb, var(--dd-red, #e50914) 18%, transparent);
}
.yt-search-field::placeholder{ color:var(--text-muted, #7e859b); }
.yt-search-clear{
  position:absolute; right:12px; background:rgba(255,255,255,.1);
  border:none; color:rgba(255,255,255,.7); width:22px; height:22px;
  border-radius:50%; display:flex; align-items:center; justify-content:center;
  font-size:11px; cursor:pointer; transition:background .15s ease, color .15s ease;
}
.yt-search-clear:hover{ background:rgba(255,255,255,.22); color:#fff; }
.yt-search-submit-btn{
  height:44px; padding:0 22px; background:var(--dd-red, #e50914); border:1px solid var(--dd-red, #e50914);
  border-radius:12px; color:#fff; font-family:inherit; font-size:14px; font-weight:700;
  cursor:pointer; transition:all .15s ease; display:inline-flex; align-items:center;
  justify-content:center; flex-shrink:0;
}
.yt-search-submit-btn:hover{
  background:#ff1f2d; border-color:#ff1f2d; box-shadow:0 4px 16px color-mix(in srgb, var(--dd-red, #e50914) 40%, transparent);
  transform:translateY(-1px);
}

/* Category Chips Row */
.yt-chips-row{
  display:flex; gap:8px; overflow-x:auto; padding:2px 0 10px;
  scrollbar-width:none; margin-bottom:8px;
}
.yt-chips-row::-webkit-scrollbar{ display:none; }
.yt-chips-row .cat-chip{
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12);
  color:rgba(255,255,255,.85); font-size:13px; font-weight:600;
  padding:7px 18px; border-radius:99px; transition:all .15s ease;
  cursor:pointer; flex:none; font-family:inherit;
}
.yt-chips-row .cat-chip:hover{
  background:rgba(255,255,255,.14); border-color:rgba(255,255,255,.28);
  color:#fff; transform:translateY(-1px);
}
.yt-chips-row .cat-chip.active{
  background:var(--dd-red, #e50914); border-color:var(--dd-red, #e50914); color:#fff;
  font-weight:700; box-shadow:0 3px 12px color-mix(in srgb, var(--dd-red, #e50914) 35%, transparent);
}

/* Striscia Canali YouTube */
.yt-chans-row{
  display:flex; align-items:center; gap:8px; overflow-x:auto;
  padding:2px 0 12px; margin-bottom:12px; scrollbar-width:none;
}
.yt-chans-row::-webkit-scrollbar{ display:none; }
.yt-chans-label{
  font-size:11.5px; font-weight:700; color:var(--text-muted, #8b93a7);
  text-transform:uppercase; letter-spacing:.06em; white-space:nowrap;
  margin-right:4px; flex-shrink:0;
}
.yt-chan-chip{
  display:flex; align-items:center; gap:8px; flex:none;
  background:var(--surface-2, rgba(255,255,255,.05));
  border:1px solid var(--hairline, rgba(255,255,255,.1));
  border-radius:20px; padding:5px 14px 5px 6px; font-size:12.5px;
  font-weight:600; color:rgba(255,255,255,.85); white-space:nowrap;
  cursor:pointer; transition:all .15s ease; font-family:inherit;
}
.yt-chan-chip:hover{
  background:rgba(255,255,255,.12); border-color:rgba(255,255,255,.24);
  color:#fff; transform:translateY(-1px);
}
.yt-chan-chip.active{
  background:rgba(255,0,51,.18); border-color:rgba(255,0,51,.5); color:#fff;
}
.yt-chan-av{
  width:22px; height:22px; border-radius:50%; flex:none;
  display:flex; align-items:center; justify-content:center;
  color:#fff; font-size:11px; font-weight:800;
}

@media (max-width:768px){
  .yt-hub-title-row{ flex-direction:column; align-items:flex-start; gap:10px; }
  .yt-hub-top-actions{ width:100%; }
  .yt-learn-pill{ width:100%; justify-content:center; }
  .yt-search-toolbar{ max-width:100%; }
  .yt-hub-h2{ font-size:20px; }
}
.live-vpn-notice{
  display:flex; align-items:center; gap:10px;
  background:rgba(32, 196, 176, 0.08); border:1px solid rgba(32, 196, 176, 0.25);
  border-radius:9px; padding:8px 14px; margin-bottom:14px;
  font-size:12px; color:#c4d0df; line-height:1.4;
}
.live-vpn-icon{ font-size:15px; flex-shrink:0; }
.catalogue-grid{
  display:grid !important;
  grid-template-columns:repeat(auto-fill,minmax(155px,1fr)) !important;
  gap:22px 18px !important;
  width:100% !important;
}
.catalogue-grid .card{
  width:100% !important;
  min-width:0 !important;
  max-width:100% !important;
  margin:0 !important;
}
.catalogue-grid .card .art{
  width:100% !important;
  aspect-ratio:2/3 !important;
  border-radius:12px;
}
@media (max-width:900px){
  .catalogue-grid{
    grid-template-columns:repeat(3, 1fr) !important;
    gap:12px 10px !important;
    width:100% !important;
  }
}
@media (min-width:901px){
  .catalogue-grid{
    grid-template-columns:repeat(auto-fill,minmax(165px,1fr)) !important;
    gap:24px 18px !important;
  }
}
.cat-card-meta{
  padding:8px 4px 4px; font-size:12.5px;
}
.cat-card-meta .t{ font-weight:700; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; margin-bottom:3px; }
.cat-card-meta .sub{ font-size:11px; color:var(--text-muted); display:flex; align-items:center; gap:8px; }

/* Nuovi episodi badge */
.badge-new-ep{
  position:absolute; top:8px; left:8px; z-index:3;
  background:#fff; color:#111; font-size:10.5px; font-weight:900; height:24px; padding:0 10px; border-radius:999px;
  text-transform:uppercase; letter-spacing:.04em; box-shadow:0 2px 10px rgba(0,0,0,.35);
  display:inline-flex; align-items:center; gap:6px;
}
.badge-new-ep i{ width:7px; height:7px; border-radius:50%; background:var(--dd-red, #e50914); flex:none; }
html.newlook .badge-new-ep{ background:var(--nl-tone); color:var(--nl-on); }
html.newlook .badge-new-ep i{ background:var(--nl-on); }
.ep-new-badge{
  position:absolute; top:6px; right:6px; z-index:3;
  background:rgba(0,0,0,.55); color:#fff; border:1px solid rgba(255,255,255,.6);
  font-size:9px; font-weight:800; padding:2px 6px; border-radius:4px;
  letter-spacing:.03em;
}

@media (max-width:560px){
  .login-card{ padding:28px 22px; }
}

/* ── Topbar icon buttons (ricerca, wishlist) + avatar con badge Pro ── */
.topbar-icon-btn{
  width:34px; height:34px; border-radius:50%; padding:0; flex-shrink:0;
  background:var(--surface-2); border:none; color:var(--text-muted);
  display:inline-flex; align-items:center; justify-content:center;
  cursor:pointer; transition:background .15s, color .15s;
}
.topbar-icon-btn:hover, .topbar-icon-btn.active{ background:var(--surface-3); color:#fff; }
.topbar-icon-btn.wish{ color:var(--accent); }
.topbar-icon-btn.wish:hover, .topbar-icon-btn.wish.active{ background:var(--accent-dim); color:#fff; }
.topbar-divider{ width:1px; height:22px; background:var(--hairline); flex-shrink:0; }
.avatar-wrap{ position:relative; display:inline-flex; flex-shrink:0; }
.pro-dot{
  position:absolute; bottom:-2px; right:-2px; width:15px; height:15px; border-radius:50%;
  background:linear-gradient(135deg,var(--gold),#c98d16); color:#241a00; font-size:8px; font-weight:800;
  display:flex; align-items:center; justify-content:center; border:2px solid var(--bg);
}
.m-right .topbar-icon-btn{ width:var(--tap-md,30px); height:var(--tap-md,30px); }
.m-right .pro-dot{ width:13px; height:13px; font-size:7px; border-width:2px; }
.cal-btn{ position:relative; }
.cal-badge{
  position:absolute; top:-3px; right:-3px; min-width:15px; height:15px; padding:0 3px;
  border-radius:8px; background:var(--accent); color:#fff; font-size:9.5px; font-weight:800;
  display:flex; align-items:center; justify-content:center; border:2px solid var(--bg); line-height:1;
}

/* ── Calendario Uscite ───────────────────────────────── */
.cal-group-title{
  font-size:13px; font-weight:800; color:var(--accent); letter-spacing:.05em;
  margin:18px 0 8px; text-transform:uppercase;
}
.cal-row, .cal-generic-row{
  display:flex; gap:12px; align-items:center; background:var(--surface-2);
  border:1px solid var(--hairline); border-radius:12px; padding:10px; margin-bottom:8px; cursor:pointer;
}
.cal-thumb{ width:92px; height:56px; border-radius:8px; overflow:hidden; flex-shrink:0; background:var(--surface-3); position:relative; }
.cal-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.cal-generic-poster{ width:54px; height:78px; border-radius:8px; overflow:hidden; flex-shrink:0; background:var(--surface-3); }
.cal-generic-poster img{ width:100%; height:100%; object-fit:cover; display:block; }
.cal-info{ flex:1; min-width:0; }
.cal-ep-badge{
  display:inline-block; background:color-mix(in srgb, var(--dd-red, #e50914) 18%, transparent); color:var(--accent);
  font-size:11px; font-weight:800; padding:2px 6px; border-radius:4px; margin-right:6px;
}
.cal-network{ font-size:11px; color:var(--text-muted); }
.cal-show-title{ font-size:14px; font-weight:700; margin:4px 0 2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cal-ep-title{ font-size:12px; color:var(--text-muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cal-notify-btn{
  background:none; border:none; cursor:pointer; padding:6px; color:var(--text-faint,#6b7080); flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
}
.cal-notify-btn.on{ color:var(--accent); }
.cal-airdate{ font-size:11px; font-weight:700; color:var(--teal); flex-shrink:0; text-align:right; min-width:58px; }
.cal-type-badge{ display:flex; align-items:center; gap:4px; font-size:10px; font-weight:800; color:var(--accent); text-transform:uppercase; letter-spacing:.03em; }
.cal-release{ font-size:11px; color:var(--text-muted); margin-top:2px; }
.cal-empty{
  display:flex; flex-direction:column; align-items:center; text-align:center;
  padding:60px 24px; color:var(--text-muted);
}
.cal-empty svg{ opacity:.3; margin-bottom:14px; }
.cal-empty h4{ color:#fff; font-size:16px; margin:0 0 8px; }
.cal-empty p{ font-size:13px; line-height:1.5; max-width:340px; margin:0; }

/* ── Calendar Hero & Week Bar Enhancements ─────────────── */
.cal-hero{
  position:relative; width:100%; min-height:190px; border-radius:16px; overflow:hidden;
  background-size:cover; background-position:center; margin:12px 0 16px;
  border:1px solid rgba(255,255,255,0.12); box-shadow:0 8px 24px rgba(0,0,0,0.5);
  display:flex; align-items:center;
}
.cal-hero-content{
  position:relative; z-index:2; padding:20px 24px; max-width:540px;
}
.cal-hero-badges{
  display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin-bottom:8px;
}
.cal-hero-badge-tag{
  background:linear-gradient(135deg, #ab47bc, #7b1fa2); color:#fff;
  font-size:10px; font-weight:800; padding:3px 8px; border-radius:6px; letter-spacing:.05em; text-transform:uppercase;
}
.cal-hero-badge-tag.red{
  background:linear-gradient(135deg, var(--dd-red, #e50914), #b20710);
}
.cal-hero-countdown{
  background:rgba(255,255,255,0.15); backdrop-filter:blur(6px); color:#fff;
  font-size:10.5px; font-weight:700; padding:3px 8px; border-radius:6px; border:1px solid rgba(255,255,255,0.15);
}
.cal-hero-countdown.today{
  background:color-mix(in srgb, var(--dd-red, #e50914) 85%, transparent); color:#fff; font-weight:800; border-color:transparent;
}
.cal-hero-network{
  font-size:11px; color:rgba(255,255,255,0.7); font-weight:500;
}
.cal-hero-title{
  color:#fff; font-size:20px; font-weight:800; margin:0 0 4px; line-height:1.2;
}
.cal-hero-sub{
  color:rgba(255,255,255,0.8); font-size:12.5px; margin-bottom:12px; font-weight:500;
}
.cal-hero-desc{
  color:rgba(255,255,255,0.75); font-size:12px; margin:0 0 12px; line-height:1.4;
}
.cal-hero-actions{
  display:flex; align-items:center; gap:8px;
}
.cal-hero-btn{
  border:none; cursor:pointer; font-size:12px; font-weight:700; border-radius:8px;
  padding:7px 14px; display:inline-flex; align-items:center; gap:6px; transition:transform .15s ease, background .15s ease;
}
.cal-hero-btn:active{ transform:scale(0.96); }
.cal-hero-btn.primary{
  background:var(--dd-red, #e50914); color:#fff; box-shadow:0 4px 12px color-mix(in srgb, var(--dd-red, #e50914) 40%, transparent);
}
.cal-hero-btn.primary:hover{ background:#f40612; }
.cal-hero-btn.secondary{
  background:rgba(255,255,255,0.16); color:#fff; backdrop-filter:blur(4px);
  border:1px solid rgba(255,255,255,0.18);
}
.cal-hero-btn.secondary:hover{ background:rgba(255,255,255,0.26); }

/* ── Calendar Upcoming Carousel ─────────────────────────── */
.cal-carousel-wrap{
  position:relative; margin:12px 0 4px; width:100%;
}
.cal-carousel{
  display:flex; overflow-x:scroll; scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch; gap:0; scrollbar-width:none;
  border-radius:16px;
}
.cal-carousel::-webkit-scrollbar{ display:none; }
.cal-carousel-slide{
  flex:0 0 100%; scroll-snap-align:start;
  min-height:190px; border-radius:16px; overflow:hidden;
  border:1px solid rgba(255,255,255,0.12); box-shadow:0 8px 24px rgba(0,0,0,0.5);
  display:flex; align-items:flex-end; background-size:cover; background-position:center;
}
.cal-carousel-slide .cal-hero-content{
  width:100%; padding:16px 20px 18px;
}
.cal-carousel-dots{
  display:flex; justify-content:center; align-items:center;
  gap:6px; margin-top:8px;
}
.cal-carousel-dot{
  width:5px; height:5px; border-radius:50%; background:rgba(255,255,255,0.22);
  cursor:pointer; transition:all .2s ease;
}
.cal-carousel-dot.active{
  width:14px; border-radius:3px; background:var(--dd-red, #e50914);
}
.cal-hero-badge-tag.blue{
  background:linear-gradient(135deg, #0984e3, #0652a3);
}
.cal-carousel-arrow{
  position:absolute; top:50%; transform:translateY(-50%); z-index:10;
  width:36px; height:36px; border-radius:50%; border:none; cursor:pointer;
  background:rgba(0,0,0,0.55); backdrop-filter:blur(6px);
  color:#fff; font-size:22px; line-height:1; display:flex; align-items:center; justify-content:center;
  transition:background .18s ease, opacity .18s ease; box-shadow:0 2px 10px rgba(0,0,0,0.5);
}
.cal-carousel-arrow:hover{ background:color-mix(in srgb, var(--dd-red, #e50914) 75%, transparent); }
.cal-carousel-arrow.left{ left:8px; }
.cal-carousel-arrow.right{ right:8px; }
/* Hide arrows on mobile (swipe works natively) */
@media (max-width:600px){
  .cal-carousel-arrow{ display:none; }
}

.cal-week-bar{
  display:grid; grid-template-columns:repeat(7, 1fr); gap:6px; margin:12px 0 14px;
}
.cal-day-chip{
  background:var(--surface-2); border:1px solid var(--hairline); border-radius:10px;
  padding:8px 4px; cursor:pointer; text-align:center; display:flex; flex-direction:column;
  align-items:center; justify-content:center; position:relative; transition:all .15s ease; color:inherit;
}
.cal-day-chip:hover{ background:var(--surface-3); }
.cal-day-chip.active{
  background:rgba(171,71,188,0.22); border-color:#ab47bc; box-shadow:0 0 10px rgba(171,71,188,0.3);
}
.cal-day-chip.today .cal-day-num{
  color:var(--accent);
}
.cal-day-name{
  font-size:10px; font-weight:700; color:var(--text-muted); text-transform:uppercase; margin-bottom:2px;
}
.cal-day-chip.active .cal-day-name{ color:#ce93d8; }
.cal-day-num{
  font-size:15px; font-weight:800; color:#fff;
}
.cal-day-dot{
  width:5px; height:5px; border-radius:50%; background:var(--dd-red, #e50914); margin-top:4px;
}
.cal-row-actions{
  display:flex; align-items:center; gap:6px; flex-shrink:0; margin-left:auto;
}
.cal-trailer-chip-btn{
  background:color-mix(in srgb, var(--dd-red, #e50914) 15%, transparent); border:1px solid color-mix(in srgb, var(--dd-red, #e50914) 35%, transparent); color:#ff5252;
  font-size:10.5px; font-weight:700; border-radius:6px; padding:4px 8px; cursor:pointer;
  transition:background .15s ease;
}
.cal-trailer-chip-btn:hover{
  background:color-mix(in srgb, var(--dd-red, #e50914) 30%, transparent); color:#fff;
}

/* ── Global Search Screen ────────────────────────────── */
.search-hero-box{
  position:relative; margin-bottom:18px; width:100%;
}
.search-input-big{
  width:100%; background:var(--surface-1); border:1px solid rgba(255,255,255,.14);
  color:#fff; font-size:16px; font-weight:600; padding:14px 44px 14px 18px;
  border-radius:14px; outline:none; transition:all .2s;
  box-shadow:0 4px 20px rgba(0,0,0,.35);
}
.search-input-big:focus{
  border-color:var(--accent); box-shadow:0 0 0 3px rgba(139,92,246,.25);
}
.search-clear-btn{
  position:absolute; right:12px; top:50%; transform:translateY(-50%);
  background:transparent; border:none; color:rgba(255,255,255,.5);
  font-size:18px; cursor:pointer; padding:6px; border-radius:50%;
}
.search-clear-btn:hover{ color:#fff; }

/* ── AI Discovery ("Chiedi all'Assistente") ────────────────────
   Porting di VideoDiscoveryScreen.kt: stesso gradiente viola/rosa dell'icona
   AI nativa (AiViolet/AiPink), applicato qui a bottone topbar, orb e bolle
   utente cosi' la feature si riconosce a colpo d'occhio in mezzo al resto
   dell'interfaccia (rosso/neutro). */
.topbar-icon-btn.ai-btn{ color:#fff; background:linear-gradient(135deg,var(--ai-violet),var(--ai-pink)); }
.topbar-icon-btn.ai-btn:hover, .topbar-icon-btn.ai-btn.active{ filter:brightness(1.12); background:linear-gradient(135deg,var(--ai-violet),var(--ai-pink)); }
/* Discovery IA del Music Hub: stessa forma del pulsante AI video, ma colore
   diverso (oro Music Hub → viola) cosi' si distinguono a colpo d'occhio
   pur restando riconoscibili come la stessa famiglia di funzione. */
.topbar-icon-btn.music-ai-btn{ background:linear-gradient(135deg,var(--hub-gold, #E5A93B),var(--ai-violet)); }
.topbar-icon-btn.music-ai-btn:hover, .topbar-icon-btn.music-ai-btn.active{ filter:brightness(1.12); background:linear-gradient(135deg,var(--hub-gold, #E5A93B),var(--ai-violet)); }

/* padding-bottom riserva lo spazio per .ai-chat-inputbar, che e' fixed in
   basso (vedi sotto) — altrimenti l'ultimo messaggio ci finirebbe dietro. */
.ai-chat-screen{ display:flex; flex-direction:column; padding-bottom:90px; }
.ai-chat-header{
  display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:16px;
}
.ai-chat-header-left{ display:flex; align-items:center; gap:12px; min-width:0; }
.ai-chat-close-btn{
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
  width:32px; height:32px; border-radius:50%; border:1px solid var(--hairline);
  background:var(--surface-2); color:var(--text-muted); font-size:14px; cursor:pointer;
}
.ai-chat-close-btn:hover{ color:#fff; background:var(--surface-3); border-color:rgba(255,255,255,.22); }
.ai-chat-title{ display:flex; align-items:center; gap:10px; font-size:20px; font-weight:800; min-width:0; }
.ai-chat-orb{
  width:26px; height:26px; border-radius:50%; flex-shrink:0;
  background:linear-gradient(135deg,var(--ai-violet),var(--ai-pink));
}
.ai-chat-orb.big{ width:48px; height:48px; margin-bottom:14px; }
.ai-chat-clear{
  background:var(--surface-2); border:1px solid var(--hairline); color:var(--text-muted);
  font-size:12px; font-weight:600; padding:7px 12px; border-radius:20px; cursor:pointer; white-space:nowrap;
}
.ai-chat-clear:hover{ color:#fff; border-color:rgba(255,255,255,.3); }

.ai-chat-empty{
  display:flex; flex-direction:column; align-items:center; text-align:center;
  padding:36px 16px 20px; color:var(--text-muted);
}
.ai-chat-empty h3{ color:#fff; font-size:19px; margin:0 0 8px; }
.ai-chat-empty p{ font-size:13px; line-height:1.55; max-width:380px; margin:0; }
.ai-chat-suggestions-label{ font-size:11px; font-weight:800; letter-spacing:.05em; color:var(--text-faint); margin:26px 0 10px; }
.ai-chat-suggestions{ display:flex; flex-direction:column; gap:8px; width:100%; max-width:420px; }
.ai-suggestion-chip{
  background:var(--surface-2); border:1px solid var(--hairline); color:rgba(255,255,255,.85);
  font-size:12.5px; text-align:left; padding:12px 14px; border-radius:12px; cursor:pointer; transition:border-color .15s;
}
.ai-suggestion-chip:hover{ border-color:var(--ai-violet); }

.ai-chat-messages{ display:flex; flex-direction:column; gap:16px; margin-bottom:18px; }
.ai-turn{ display:flex; flex-direction:column; }
.ai-turn.user{ align-items:flex-end; }
.ai-turn.assistant{ align-items:flex-start; }
.ai-bubble{
  max-width:min(520px,86%); padding:11px 15px; border-radius:16px; font-size:13.5px; line-height:1.5;
  white-space:pre-wrap; word-break:break-word;
}
.ai-bubble.assistant{ background:var(--surface-2); border:1px solid var(--hairline); border-bottom-left-radius:4px; }
.ai-bubble.user{ background:linear-gradient(135deg,var(--ai-violet),var(--ai-pink)); color:#fff; border-bottom-right-radius:4px; }
.ai-bubble-media-label{ font-size:10px; font-weight:800; letter-spacing:.05em; color:var(--text-faint); margin:10px 2px 8px; }
.ai-turn.assistant .track-wrap{ width:100%; }
.ai-turn.assistant .card{ width:110px; }

.ai-thinking{
  display:inline-flex; align-items:center; gap:8px; align-self:flex-start;
  color:var(--text-muted); font-size:12.5px; padding:2px 4px;
}
.ai-thinking span{ width:6px; height:6px; border-radius:50%; background:var(--ai-violet); animation:ai-thinking-bounce 1.1s ease-in-out infinite; }
.ai-thinking span:nth-child(2){ animation-delay:.15s; background:var(--ai-pink); }
.ai-thinking span:nth-child(3){ animation-delay:.3s; }
@keyframes ai-thinking-bounce{ 0%,60%,100%{ opacity:.35; transform:translateY(0); } 30%{ opacity:1; transform:translateY(-3px); } }
@media (prefers-reduced-motion: reduce){ .ai-thinking span{ animation:none; } }

.ai-chat-error{
  background:color-mix(in srgb, var(--dd-red, #e50914) 12%, transparent); border:1px solid color-mix(in srgb, var(--dd-red, #e50914) 30%, transparent); color:#ff6b73;
  border-radius:10px; padding:10px 13px; font-size:12.5px; margin-bottom:14px;
}

/* ── Legenda costi Crediti AI + voucher (stessa da Settings e da ogni avviso
   "crediti esauriti" — Discovery AI, Discovery Musica) ───────────────── */
:root{ --ai-teal:#2dd9c4; --ai-gold:#e5b04d; }
.ai-credits-legend{ display:flex; flex-direction:column; gap:9px; margin-top:10px; }
.ai-credits-legend-row{ display:flex; align-items:center; gap:10px; }
.ai-credits-legend-emoji{ font-size:15px; flex-shrink:0; }
.ai-credits-legend-body{ flex:1; min-width:0; display:flex; flex-direction:column; }
.ai-credits-legend-title{ font-size:12.5px; font-weight:600; color:var(--text,#fff); }
.ai-credits-legend-sub{ font-size:11px; color:var(--text-faint); }
.ai-credits-legend-cost{ font-weight:700; font-size:12.5px; flex-shrink:0; white-space:nowrap; }
.ai-credits-legend-card{ background:rgba(255,255,255,.03); border-radius:12px; }
.ai-credits-legend-footnote{
  margin-top:12px; padding-top:12px; border-top:1px solid var(--hairline);
  font-size:11px; color:var(--text-faint); line-height:1.5;
}
.ai-voucher-link{
  display:inline-block; margin-top:10px; color:var(--ai-teal); font-weight:700;
  font-size:12.5px; cursor:pointer;
}
.ai-voucher-link:hover{ text-decoration:underline; }
.ai-voucher-settings-btn{ background:var(--ai-teal); }

.ai-voucher-modal-sheet{ max-width:420px; }
.ai-voucher-modal-hint{ font-size:12.5px; color:var(--text-faint); margin:0 0 14px; line-height:1.5; }
.ai-voucher-modal-input{ margin-bottom:10px; }
.ai-voucher-modal-error{
  background:color-mix(in srgb, var(--dd-red, #e50914) 12%, transparent); border:1px solid color-mix(in srgb, var(--dd-red, #e50914) 30%, transparent); color:#ff6b73;
  border-radius:8px; padding:8px 11px; font-size:12px; margin-bottom:10px;
}
.ai-voucher-modal-actions{ display:flex; gap:10px; justify-content:flex-end; }
.ai-voucher-modal-actions .btn-primary{ background:var(--ai-teal); width:auto; padding:9px 18px; }

/* ── Support Bot Modal: zero horizontal scrollbars, sleek scrollbar for messages ── */
#supportChatLogs {
  overflow-x: hidden !important;
  box-sizing: border-box !important;
  scrollbar-width: thin;
  scrollbar-color: rgba(255,255,255,0.15) transparent;
}
#supportChatLogs::-webkit-scrollbar {
  width: 5px;
}
#supportChatLogs::-webkit-scrollbar-track {
  background: transparent;
}
#supportChatLogs::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.16);
  border-radius: 6px;
}
#supportChatLogs::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 255, 255, 0.28);
}

/* ── AI Discovery Drawer & PiP Floating Widget ── */
.ai-drawer-overlay {
  position: fixed;
  inset: 0;
  background: rgba(4, 5, 8, 0.65);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  z-index: 99990;
  display: flex;
  justify-content: flex-end;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.28s cubic-bezier(0.16, 1, 0.3, 1);
}
.ai-drawer-overlay.open {
  opacity: 1;
  pointer-events: auto;
}
.ai-drawer-sheet {
  width: min(520px, 94vw);
  height: 100%;
  background: color-mix(in srgb, #12141e 92%, #1e1b2b 8%);
  border-left: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow: -15px 0 45px rgba(0, 0, 0, 0.75);
  backdrop-filter: blur(28px);
  -webkit-backdrop-filter: blur(28px);
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform 0.32s cubic-bezier(0.16, 1, 0.3, 1);
  overflow: hidden;
}
.ai-drawer-overlay.open .ai-drawer-sheet {
  transform: translateX(0);
}
.ai-drawer-handle {
  display: none;
  width: 44px;
  height: 5px;
  border-radius: 99px;
  background: rgba(255, 255, 255, 0.28);
  margin: 10px auto 4px;
  cursor: pointer;
}
.ai-drawer-header {
  padding: 16px 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(0, 0, 0, 0.2);
  flex-shrink: 0;
}
.ai-drawer-header-left {
  display: flex;
  align-items: center;
  gap: 10px;
}
.ai-header-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}
.ai-header-action-btn {
  width: 34px;
  height: 34px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: var(--text-muted, #9a9aa6);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.18s;
}
.ai-header-action-btn:hover {
  background: #fff;
  color: #111;
  border-color: #fff;
}
.ai-drawer-body {
  flex: 1;
  overflow-y: auto;
  padding: 18px 20px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  scrollbar-width: thin;
}
.ai-drawer-footer {
  padding: 12px 18px 18px;
  background: rgba(14, 16, 24, 0.95);
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex-shrink: 0;
}
.ai-drawer-inputbar {
  display: flex;
  gap: 8px;
  align-items: center;
}
.ai-drawer-inputbar input {
  flex: 1;
  height: 44px;
  background: var(--surface-2, #1b1e2c);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 12px;
  padding: 0 16px;
  color: #fff;
  font-family: inherit;
  font-size: 13.5px;
  outline: none;
}
.ai-drawer-inputbar input:focus {
  border-color: var(--aurora-pink, #ff7597);
}
.ai-drawer-send-btn {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: #fff;
  border: none;
  color: #111;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  flex-shrink: 0;
}

@media (max-width: 900px) {
  .ai-drawer-overlay {
    align-items: flex-end;
  }
  .ai-drawer-sheet {
    width: 100vw;
    height: 88vh;
    border-left: none;
    border-top: 1px solid rgba(255, 255, 255, 0.14);
    border-top-left-radius: 26px;
    border-top-right-radius: 26px;
    transform: translateY(100%);
  }
  .ai-drawer-handle {
    display: block;
  }
}

/* Floating PiP Widget */
.ai-pip-float {
  position: fixed;
  bottom: 24px;
  right: 24px;
  width: 340px;
  background: color-mix(in srgb, #141620 90%, #251b2e 10%);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 18px;
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.7), 0 0 16px rgba(255, 117, 151, 0.2);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  z-index: 99980;
  padding: 10px 14px;
  display: flex;
  align-items: center;
  gap: 12px;
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  transform: translateY(0);
  opacity: 1;
}
.ai-pip-float.hidden {
  transform: translateY(100px) scale(0.9);
  opacity: 0;
  pointer-events: none;
}
.ai-pip-content {
  flex: 1;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
}
.ai-pip-thumb {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background-size: cover;
  background-position: center;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: var(--surface-2, #1b1e2c);
}
.ai-pip-info {
  flex: 1;
  min-width: 0;
}
.ai-pip-title {
  font-size: 13px;
  font-weight: 700;
  color: #fff;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ai-pip-sub {
  font-size: 11px;
  color: var(--text-muted, #9a9aa6);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: flex;
  align-items: center;
  gap: 5px;
}
.ai-pip-pulse {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--aurora-pink, #ff7597);
  box-shadow: 0 0 6px var(--aurora-pink, #ff7597);
  display: inline-block;
}
.ai-pip-actions {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}
.ai-pip-btn {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.15s;
}
.ai-pip-btn:hover {
  background: #fff;
  color: #111;
  border-color: #fff;
}
.ai-pip-btn.play {
  background: #fff;
  color: #111;
  border: none;
}

@media (max-width: 900px) {
  .ai-pip-float {
    bottom: 74px;
    left: 12px;
    right: 12px;
    width: auto;
    border-radius: 16px;
    padding: 8px 12px;
  }
}

/* ── AI Hub: layout moderno a colonna centrale con hero media, chip bar e chat bubble ── */
.ai-hub-page-wrapper {
  width: 100%;
  min-height: calc(100vh - 120px);
  display: flex;
  justify-content: center;
  padding: 24px 20px 80px;
  box-sizing: border-box;
}
.ai-hub-card-container {
  width: 100%;
  max-width: 760px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.ai-hub-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.ai-hub-back-button {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--surface-2);
  border: 1px solid var(--hairline);
  color: rgba(255, 255, 255, 0.85);
  font-size: 13px;
  font-weight: 600;
  padding: 8px 15px;
  border-radius: 20px;
  cursor: pointer;
  transition: all 0.15s ease;
}
.ai-hub-back-button:hover {
  color: #fff;
  background: var(--surface-3);
  border-color: rgba(255, 255, 255, 0.25);
  transform: translateX(-2px);
}
.ai-hub-topbar-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: rgba(255, 255, 255, 0.9);
}
.ai-hub-media-banner {
  display: flex;
  align-items: center;
  gap: 16px;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
  border: 1px solid var(--hairline);
  border-radius: 16px;
  padding: 14px 18px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}
.ai-hub-media-poster {
  width: 62px;
  height: 92px;
  border-radius: 10px;
  overflow: hidden;
  flex-shrink: 0;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.5);
  background: var(--surface-2);
}
.ai-hub-media-poster img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.ai-hub-media-meta {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.ai-hub-meta-tags {
  display: flex;
  align-items: center;
  gap: 8px;
}
.ai-hub-meta-type {
  background: linear-gradient(135deg, var(--ai-violet), var(--ai-pink));
  color: #fff;
  font-size: 10px;
  font-weight: 800;
  padding: 2px 7px;
  border-radius: 6px;
  letter-spacing: 0.06em;
}
.ai-hub-meta-year, .ai-hub-meta-rating {
  font-size: 12px;
  font-weight: 700;
  color: var(--text-muted);
}
.ai-hub-meta-rating {
  color: #f5c518;
}
.ai-hub-media-name {
  margin: 0;
  font-size: 18px;
  font-weight: 800;
  color: #fff;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ai-hub-media-hint {
  margin: 0;
  font-size: 12px;
  color: var(--text-faint);
  line-height: 1.4;
}
.ai-hub-body-content {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.ai-hub-intro-card {
  text-align: center;
  padding: 16px 12px 6px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}
.ai-hub-intro-title {
  font-size: 17px;
  font-weight: 800;
  color: #fff;
}
.ai-hub-intro-subtitle {
  font-size: 13px;
  color: var(--text-muted);
  max-width: 480px;
  line-height: 1.5;
}
.ai-hub-pills-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 10px;
  margin-top: 6px;
}
.ai-hub-pill-card {
  display: flex;
  align-items: center;
  gap: 12px;
  background: var(--surface-2);
  border: 1px solid var(--hairline);
  border-radius: 14px;
  padding: 14px 16px;
  cursor: pointer;
  text-align: left;
  color: #fff;
  transition: all 0.18s ease;
}
.ai-hub-pill-card:hover {
  border-color: var(--ai-violet);
  background: var(--surface-3);
  transform: translateY(-2px);
  box-shadow: 0 4px 16px rgba(165, 134, 240, 0.16);
}
.ai-hub-pill-card-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: rgba(165, 134, 240, 0.12);
  color: var(--ai-violet);
  flex-shrink: 0;
}
.ai-hub-pill-card-icon svg {
  width: 20px;
  height: 20px;
}
.ai-hub-pill-card-body {
  flex: 1;
  min-width: 0;
}
.ai-hub-pill-card-title {
  font-size: 13.5px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.95);
  line-height: 1.35;
}
.ai-hub-pill-card-arrow {
  color: var(--text-faint);
  font-size: 16px;
  font-weight: 700;
  transition: transform 0.15s;
}
.ai-hub-pill-card:hover .ai-hub-pill-card-arrow {
  color: var(--ai-violet);
  transform: translateX(3px);
}
.ai-hub-chips-scroll {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding: 4px 2px 8px;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
.ai-hub-chips-scroll::-webkit-scrollbar {
  display: none;
}
.ai-hub-chip-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  background: var(--surface-2);
  border: 1px solid var(--hairline);
  color: rgba(255, 255, 255, 0.85);
  font-size: 12.5px;
  font-weight: 600;
  padding: 8px 14px;
  border-radius: 20px;
  cursor: pointer;
  white-space: nowrap;
  flex-shrink: 0;
  transition: all 0.15s;
}
.ai-hub-chip-btn svg {
  width: 15px;
  height: 15px;
  color: var(--ai-violet);
  flex-shrink: 0;
}
.ai-hub-chip-btn:hover {
  border-color: var(--ai-violet);
  background: var(--surface-3);
}
.ai-hub-chip-btn.active {
  background: linear-gradient(135deg, var(--ai-violet), var(--ai-pink));
  border-color: transparent;
  color: #fff;
  box-shadow: 0 2px 10px rgba(165, 134, 240, 0.35);
}
.ai-hub-chip-btn.active svg {
  color: #fff;
}
.ai-hub-chip-btn.reset {
  color: var(--text-muted);
  background: transparent;
}
.ai-hub-chip-btn.reset:hover {
  color: #fff;
  border-color: rgba(255, 255, 255, 0.3);
}
.ai-hub-thread {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-top: 4px;
}
.ai-turn.user .ai-hub-user-bubble {
  background: linear-gradient(135deg, var(--ai-violet), var(--ai-pink));
  color: #fff;
  border-radius: 18px 18px 4px 18px;
  padding: 12px 16px;
  max-width: 82%;
  box-shadow: 0 4px 14px rgba(165, 134, 240, 0.25);
}
.ai-hub-user-badge {
  display: block;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.75);
  margin-bottom: 3px;
}
.ai-hub-user-text {
  font-size: 14px;
  font-weight: 600;
  line-height: 1.4;
}
.ai-assistant-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 7px;
}
.ai-assistant-name {
  font-size: 13px;
  font-weight: 700;
  color: #fff;
}
.ai-assistant-tag {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.05em;
  background: rgba(165, 134, 240, 0.15);
  color: var(--ai-violet);
  padding: 2px 6px;
  border-radius: 5px;
}
.ai-turn.assistant .ai-hub-assistant-bubble {
  background: var(--surface-2);
  border: 1px solid var(--hairline);
  border-radius: 4px 18px 18px 18px;
  padding: 16px 20px;
  max-width: 100%;
  width: 100%;
  box-sizing: border-box;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.2);
}
.ai-hub-loading-box {
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--text-muted);
  font-size: 13.5px;
  padding: 6px 0;
}
.ai-hub-response-content {
  font-size: 14px;
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.92);
}
.ai-hub-paragraph {
  margin: 0 0 12px;
}
.ai-hub-paragraph:last-child {
  margin-bottom: 0;
}
.ai-hub-text-block {
  line-height: 1.65;
}
.ai-hub-order-list {
  margin-top: 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.ai-hub-order-card {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.07);
  border-radius: 12px;
  padding: 12px 14px;
  transition: background 0.15s;
}
.ai-hub-order-card:hover {
  background: rgba(255, 255, 255, 0.07);
}
.ai-hub-order-idx {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 8px;
  background: linear-gradient(135deg, var(--ai-violet), var(--ai-pink));
  color: #fff;
  font-size: 12px;
  font-weight: 800;
  flex-shrink: 0;
}
.ai-hub-order-details {
  flex: 1;
  min-width: 0;
}
.ai-hub-order-title {
  font-size: 14px;
  font-weight: 700;
  color: #fff;
}
.ai-hub-order-reason {
  font-size: 12.5px;
  color: var(--text-muted);
  margin-top: 4px;
  line-height: 1.45;
}
.ai-hub-saga-save-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  margin-top: 14px;
  padding: 12px 16px;
  border-radius: 12px;
  border: none;
  cursor: pointer;
  background: linear-gradient(135deg, #2dd9c4, #1aa392);
  color: #0b151a;
  font-size: 13.5px;
  font-weight: 800;
  transition: opacity 0.15s, transform 0.15s;
}
.ai-hub-saga-save-btn:hover {
  opacity: 0.95;
  transform: translateY(-1px);
}
.ai-hub-saga-save-btn:disabled {
  opacity: 0.6;
  cursor: default;
  transform: none;
}
.ai-hub-saga-saved-msg {
  margin-top: 8px;
  font-size: 13px;
  font-weight: 700;
  color: #2dd9c4;
  text-align: center;
}
.ai-hub-error-card {
  margin-top: 12px;
  padding: 10px 14px;
  border-radius: 10px;
  background: rgba(229, 9, 20, 0.12);
  border: 1px solid rgba(229, 9, 20, 0.3);
  color: #ff6b73;
  font-size: 12.5px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
@media (max-width: 768px) {
  .ai-hub-page-wrapper {
    padding: 14px 12px 70px;
  }
  .ai-hub-media-poster {
    width: 52px;
    height: 78px;
  }
  .ai-hub-media-name {
    font-size: 16px;
  }
  .ai-hub-pills-grid {
    grid-template-columns: 1fr;
  }
  .ai-turn.user .ai-hub-user-bubble {
    max-width: 90%;
  }
}

/* Ancorata in basso come una vera chat, non in fondo al flusso normale
   della pagina — altrimenti con poche righe di conversazione restava a
   meta' schermo con un vuoto enorme sotto. Stesso schema desktop/mobile
   gia' usato da .mini-player (fixed + fallback via media query per chi
   non ha html[data-skin] impostato). */
.ai-chat-inputbar{
  position:fixed; left:0; right:0; bottom:0; z-index:120;
  display:flex; align-items:center; gap:10px;
  padding:14px 40px calc(14px + env(safe-area-inset-bottom, 0px));
  background:var(--bg); border-top:1px solid var(--hairline);
}
html[data-skin="mobile"] .ai-chat-inputbar{
  bottom:86px; max-width:430px; margin:0 auto; left:0; right:0;
  padding:10px 14px; border-radius:18px 18px 0 0;
}
@media (max-width:900px){
  html:not([data-skin]) .ai-chat-inputbar{
    bottom:86px; max-width:430px; margin:0 auto;
    padding:10px 14px; border-radius:18px 18px 0 0;
  }
}
.ai-chat-input.field{ margin-bottom:0; border-radius:24px; padding:13px 18px; }
.ai-send-btn{
  width:44px; height:44px; border-radius:50%; flex-shrink:0; border:none; cursor:pointer;
  color:#fff; background:linear-gradient(135deg,var(--ai-violet),var(--ai-pink));
  display:flex; align-items:center; justify-content:center;
}
.ai-send-btn:disabled, .ai-chat-input:disabled{ opacity:.5; cursor:default; }
@media (max-width:900px){
  .ai-chat-title{ font-size:17px; }
  .ai-bubble{ max-width:88%; font-size:13px; }
  .ai-turn.assistant .card{ width:94px; }
  .ai-chat-screen{ padding-bottom:150px; }
}

/* ── YouTube Hub & Video Cards ────────────────────────────── */
.yt-grid{
  display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:18px;
}
@media (min-width:901px){
  .yt-grid{ grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:22px; }
}
@media (max-width:768px){
  .yt-grid{
    grid-template-columns:repeat(2, 1fr) !important;
    gap:10px !important;
  }
  .yt-card{
    border-radius:10px !important;
  }
  .yt-card-info{
    padding:8px 6px !important;
  }
  .yt-card-title{
    font-size:11px !important;
    line-height:1.3 !important;
  }
  .yt-card-author{
    font-size:10px !important;
  }
}
.mobile-shell .yt-grid{
  grid-template-columns:repeat(2, 1fr) !important;
  gap:10px !important;
}
.mobile-shell .yt-card{
  border-radius:10px !important;
}
.mobile-shell .yt-card-info{
  padding:8px 6px !important;
}
.mobile-shell .yt-card-title{
  font-size:11px !important;
  line-height:1.3 !important;
}
.mobile-shell .yt-card-author{
  font-size:10px !important;
}

.yt-card{
  background:var(--surface-1); border-radius:14px; overflow:hidden;
  border:1px solid var(--hairline); cursor:pointer; text-align:left;
  transition:all .2s cubic-bezier(0.4, 0, 0.2, 1); display:flex; flex-direction:column;
}
.yt-card:hover{
  transform:translateY(-4px); border-color:rgba(255,255,255,.25);
  box-shadow:0 12px 28px rgba(0,0,0,.5);
}
.yt-thumb-wrap{
  position:relative; width:100%; aspect-ratio:16/9; background:#000; overflow:hidden;
}
.yt-thumb-wrap img{
  width:100%; height:100%; object-fit:cover; display:block;
  transition:transform .3s ease;
}
.yt-card:hover .yt-thumb-wrap img{ transform:scale(1.05); }
.yt-play-icon{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  background:rgba(0,0,0,.35); opacity:0; transition:opacity .2s;
}
.yt-card:hover .yt-play-icon{ opacity:1; }
.yt-play-icon span{
  width:44px; height:44px; border-radius:50%; background:var(--accent);
  color:#fff; display:flex; align-items:center; justify-content:center;
  font-size:18px; box-shadow:0 4px 16px rgba(0,0,0,.5);
}
.yt-duration-badge{
  position:absolute; bottom:8px; right:8px; background:rgba(0,0,0,.82);
  color:#fff; font-size:11px; font-weight:700; padding:2px 6px;
  border-radius:4px; font-variant-numeric:tabular-nums;
}
.yt-card-info{ padding:12px 14px 14px; display:flex; flex-direction:column; gap:4px; }
.yt-card-title{
  font-size:14px; font-weight:700; color:#fff; line-height:1.3;
  display:-webkit-box; -webkit-line-clamp:2; line-clamp:2; -webkit-box-orient:vertical;
  overflow:hidden;
}
.yt-card-author{ font-size:12px; color:var(--text-muted); font-weight:500; }

/* ── Music Hub Android TV Style Header & Tabs ────────────────────────── */
.music-hub-container{
  margin-top: 6px;
}
.music-header-top{
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: 14px; margin-bottom: 22px;
}
.music-badge-pill{
  display: inline-flex; align-items: center; gap: 8px;
  background: color-mix(in srgb, var(--hub-gold, #E5A93B) 14%, transparent);
  border: 1px solid color-mix(in srgb, var(--hub-gold, #E5A93B) 40%, transparent);
  border-radius: 999px; padding: 7px 16px;
  color: var(--hub-gold, #E5A93B); font-weight: 800; font-size: 13px; letter-spacing: 0.8px;
}
/* Tab categorie Music Hub (Top Hits/Generi/Podcast/Cerca/Libreria): badge
   circolare + etichetta invece della fila di pillole strette con emoji e
   testo minuscoli — target di tocco piu' grande e stato attivo piu' leggibile,
   soprattutto su mobile dove la vecchia versione sembrava "cheap". */
.music-tabs-row{
  display: flex; gap: 10px; overflow-x: auto; padding-bottom: 4px; max-width: 100%;
  scrollbar-width: none; -ms-overflow-style: none;
}
.music-tabs-row::-webkit-scrollbar{ display: none; }
.music-tab{
  flex-shrink: 0; display: flex; flex-direction: column; align-items: center; gap: 8px;
  background: var(--surface); border: 1px solid var(--hairline); border-radius: 16px;
  padding: 12px 18px; min-width: 76px; font-family: inherit; cursor: pointer;
  transition: all .15s ease; appearance: none;
}
.music-tab:hover{ border-color: rgba(255,255,255,.2); }
.music-tab-badge{
  width: 38px; height: 38px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
  font-size: 17px; background: var(--surface-3); flex-shrink: 0; transition: all .15s ease;
}
.music-tab-label{ font-size: 11px; font-weight: 700; color: var(--text-muted); letter-spacing: 0.2px; white-space: nowrap; }
.music-tab.active{
  background: linear-gradient(180deg, color-mix(in srgb, var(--hub-gold, #E5A93B) 16%, transparent), color-mix(in srgb, var(--hub-gold, #E5A93B) 5%, transparent));
  border-color: color-mix(in srgb, var(--hub-gold, #E5A93B) 50%, transparent);
}
.music-tab.active .music-tab-badge{ background: var(--hub-gold, #E5A93B); color: var(--hub-on, #0C0A06); box-shadow: 0 6px 16px -4px color-mix(in srgb, var(--hub-gold, #E5A93B) 60%, transparent); }
.music-tab.active .music-tab-label{ color: var(--hub-gold, #E5A93B); }

/* ── Music Hero Billboard (Android TV style featured spotlight) ── */
.music-billboard{
  position: relative; overflow: hidden; border-radius: 20px;
  background: linear-gradient(135deg, rgba(30, 24, 15, 0.85), rgba(16, 13, 8, 0.95));
  border: 1px solid color-mix(in srgb, var(--hub-gold, #E5A93B) 25%, transparent);
  padding: 24px 28px; margin-bottom: 28px;
  display: flex; align-items: center; gap: 24px;
  box-shadow: 0 16px 40px rgba(0,0,0,0.6);
}
.music-billboard-glow{
  position: absolute; right: -40px; top: -40px; width: 280px; height: 280px;
  background: radial-gradient(circle, color-mix(in srgb, var(--hub-gold, #E5A93B) 25%, transparent) 0%, transparent 70%);
  filter: blur(50px); pointer-events: none;
}
.music-billboard-art{
  width: 130px; height: 130px; border-radius: 16px; flex-shrink: 0;
  position: relative; overflow: hidden; box-shadow: 0 10px 24px rgba(0,0,0,0.7);
}
.music-billboard-art img{ width: 100%; height: 100%; object-fit: cover; }
.music-billboard-info{ flex: 1; min-width: 0; z-index: 1; }
.music-billboard-tag{
  display: inline-flex; align-items: center; gap: 6px;
  background: color-mix(in srgb, var(--hub-gold, #E5A93B) 20%, transparent); color: var(--hub-gold, #E5A93B);
  font-size: 11px; font-weight: 800; text-transform: uppercase;
  padding: 4px 10px; border-radius: 6px; margin-bottom: 10px;
  letter-spacing: 0.6px;
}
.music-billboard-title{
  font-size: 24px; font-weight: 900; color: #fff; margin: 0 0 4px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.music-billboard-artist{
  font-size: 15px; color: rgba(255,255,255,0.75); margin: 0 0 16px;
  font-weight: 600;
}
.music-billboard-actions{
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
}
.music-play-hero-btn{
  background: linear-gradient(135deg, var(--hub-gold, #E5A93B), var(--hub-gold2, #F59E0B));
  border: none; border-radius: 999px; padding: 10px 24px;
  color: #0C0A06; font-size: 13.5px; font-weight: 800; cursor: pointer;
  display: inline-flex; align-items: center; gap: 8px;
  box-shadow: 0 6px 20px color-mix(in srgb, var(--hub-gold, #E5A93B) 45%, transparent);
  transition: transform .2s, box-shadow .2s;
}
.music-play-hero-btn:hover{
  transform: scale(1.04);
  box-shadow: 0 8px 24px color-mix(in srgb, var(--hub-gold, #E5A93B) 60%, transparent);
}

/* ── Rich Music Track Cards (Classifica Brani) ── */
.track-card{
  width: 154px; min-width: 154px; flex-shrink: 0; cursor: pointer;
  position: relative; transition: transform .2s ease;
}
.track-card:hover{ transform: translateY(-4px); }
.track-card-art-wrap{
  width: 154px; height: 154px; border-radius: 14px; overflow: hidden;
  position: relative; background: var(--surface-2); border: 1px solid var(--hairline);
  margin-bottom: 8px; box-shadow: 0 8px 20px rgba(0,0,0,0.4);
}
.track-card-art-wrap img{
  width: 100%; height: 100%; object-fit: cover; display: block;
}
.track-card-rank{
  position: absolute; top: 8px; left: 8px;
  background: rgba(12, 10, 6, 0.85); backdrop-filter: blur(8px);
  border: 1px solid color-mix(in srgb, var(--hub-gold, #E5A93B) 50%, transparent);
  color: var(--hub-gold, #E5A93B); font-size: 11.5px; font-weight: 900;
  padding: 2px 7px; border-radius: 8px; line-height: 1.2;
}
.track-card-heart{
  position: absolute; top: 6px; right: 6px; z-index: 2;
  appearance: none; border: none; cursor: pointer;
  width: 28px; height: 28px; border-radius: 50%; padding: 0;
  background: rgba(12, 10, 6, 0.55); backdrop-filter: blur(8px);
  color: rgba(255,255,255,.85); font-size: 14px;
  display: flex; align-items: center; justify-content: center;
  opacity: 0; transition: opacity .2s ease, color .15s ease, transform .15s ease;
}
.track-card:hover .track-card-heart,
.track-card-heart.is-fav{ opacity: 1; }
.track-card-heart:hover{ transform: scale(1.1); }
.track-card-heart.is-fav{ color: var(--accent); }
@media (hover: none){
  .track-card-heart{ opacity: 1; }
}
@media (max-width:900px){
  .track-card-heart{ width:var(--tap-md); height:var(--tap-md); font-size:18px; }
}
.track-card-play{
  position: absolute; inset: 0; background: rgba(0,0,0,0.45);
  display: flex; align-items: center; justify-content: center;
  opacity: 0; transition: opacity .2s ease;
}
.track-card:hover .track-card-play{ opacity: 1; }
.track-card-play-icon{
  width: 44px; height: 44px; border-radius: 50%;
  background: var(--hub-gold, #E5A93B); color: var(--hub-on, #0C0A06); font-size: 18px;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 4px 16px rgba(0,0,0,0.6);
}
.track-card-title{
  font-size: 13.5px; font-weight: 700; color: #fff;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  margin-bottom: 2px;
}
.track-card-artist{
  font-size: 11.5px; color: var(--text-muted);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

/* ── Curated Mood Playlist Cards (Hot List Italia, Global, Lo-Fi...) ── */
.curated-card{
  width: 170px; min-width: 170px; flex-shrink: 0; cursor: pointer;
  border-radius: 16px; overflow: hidden; position: relative;
  aspect-ratio: 1/1; transition: transform .22s cubic-bezier(0.2, 0, 0.2, 1);
  border: 1px solid rgba(255,255,255,0.1); box-shadow: 0 8px 24px rgba(0,0,0,0.5);
}
.curated-card:hover{
  transform: translateY(-4px) scale(1.02);
  border-color: color-mix(in srgb, var(--hub-gold, #E5A93B) 60%, transparent);
}
.curated-card img{
  width: 100%; height: 100%; object-fit: cover; display: block;
}
.curated-card-overlay{
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0.1) 0%, rgba(12, 10, 6, 0.88) 85%);
  display: flex; flex-direction: column; justify-content: flex-end; padding: 12px;
}
.curated-card-name{
  font-size: 14px; font-weight: 800; color: #fff; line-height: 1.25;
}
.curated-card-sub{
  font-size: 10.5px; color: var(--hub-gold, #E5A93B); font-weight: 700; text-transform: uppercase;
  margin-top: 3px; letter-spacing: 0.5px;
}

/* ── Music Genre Cards Grid (Tab GENERI) ── */
.genres-grid{
  display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 14px;
  margin-top: 16px;
}
@media (max-width: 768px){
  .genres-grid{ grid-template-columns: repeat(2, 1fr) !important; gap: 10px !important; }
  .music-billboard{ flex-direction: column; text-align: center; padding: 20px; }
  .music-billboard-actions{ justify-content: center; }
}
.genre-card{
  height: 100px; border-radius: 14px; padding: 14px;
  display: flex; flex-direction: column; justify-content: space-between;
  cursor: pointer; position: relative; overflow: hidden;
  transition: transform .2s, box-shadow .2s; border: 1px solid rgba(255,255,255,0.12);
}
.genre-card:hover{
  transform: translateY(-3px);
  box-shadow: 0 10px 24px rgba(0,0,0,0.6);
}
.genre-card-title{ font-size: 16px; font-weight: 800; color: #fff; z-index: 1; }
.genre-card-icon{ font-size: 28px; align-self: flex-end; z-index: 1; }

/* Podcast Card */
.pod-card{
  width:160px; min-width:160px; flex-shrink:0; cursor:pointer;
  transition:transform .2s ease; text-align:left;
}
.pod-card:hover{ transform:translateY(-4px); }
.pod-art{
  width:160px; height:160px; border-radius:16px; overflow:hidden;
  border:1px solid var(--hairline); background:#1a1a26;
  background-size:cover; background-position:center; background-repeat:no-repeat;
  box-shadow:0 8px 24px rgba(0,0,0,.45); margin-bottom:8px;
  position:relative; display:flex; align-items:center; justify-content:center;
}
.pod-art img{ width:100%; height:100%; object-fit:cover; display:block; }
.pod-title{
  font-size:13px; font-weight:700; color:#fff; white-space:nowrap;
  overflow:hidden; text-overflow:ellipsis;
}
.pod-author{
  font-size:11.5px; color:var(--text-muted); white-space:nowrap;
  overflow:hidden; text-overflow:ellipsis; margin-top:2px;
}

/* Podcast Episode Row */
.pod-ep-row{
  display:flex; align-items:center; justify-content:space-between;
  padding:12px 14px; background:var(--surface-1); border-radius:12px;
  border:1px solid var(--hairline); margin-bottom:8px; cursor:pointer;
  transition:all .15s ease;
}
.pod-ep-row:hover{
  background:var(--surface-2); border-color:rgba(255,255,255,.2);
}
.pod-ep-left{ display:flex; flex-direction:column; gap:3px; overflow:hidden; padding-right:12px; }
.pod-ep-title{ font-size:13.5px; font-weight:700; color:#fff; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pod-ep-meta{ font-size:11.5px; color:var(--text-muted); display:flex; align-items:center; gap:8px; }
.pod-ep-play-btn{
  width:36px; height:36px; border-radius:50%; background:rgba(236,72,153,.15);
  border:1px solid rgba(236,72,153,.3); color:#ec4899; flex-shrink:0;
  display:flex; align-items:center; justify-content:center; font-size:14px;
}
.pod-ep-row:hover .pod-ep-play-btn{
  background:#ec4899; color:#fff;
}

/* Library Sub-tabs and actions */
.lib-subtabs{ display:flex; gap:8px; margin-bottom:16px; }
.lib-subtab{
  background:var(--surface-1); border:1px solid var(--hairline);
  color:rgba(255,255,255,.7); border-radius:20px; padding:7px 16px;
  font-size:12.5px; font-weight:700; cursor:pointer; transition:all .15s;
}
.lib-subtab:hover{ border-color:rgba(255,255,255,.25); color:#fff; }
.lib-subtab.active{ background:var(--accent); border-color:var(--accent); color:#fff; }
.lib-create-btn{
  background:rgba(255,255,255,.08); border:1px dashed rgba(255,255,255,.25);
  color:#fff; border-radius:12px; padding:12px; font-size:13px; font-weight:700;
  display:flex; align-items:center; justify-content:center; gap:8px;
  cursor:pointer; width:100%; margin-bottom:14px; transition:all .2s;
}
/* ── Toolbar azioni sulla scheda titolo: un'unica azione primaria (rossa,
   piena) + icone secondarie (trailer/wishlist) accanto, invece di tre
   pulsanti con tre stili diversi in fila — vedi anche .detail-reset-link e
   .detail-tools-card più sotto per il resto della toolbar. */
.detail-primary-row{ display:flex; align-items:stretch; gap:9px; flex-wrap:wrap; }
.detail-primary-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  background:var(--accent); color:#fff; border:none; border-radius:10px;
  padding:11px 22px; font-weight:800; font-size:14px; cursor:pointer;
  transition:filter .15s;
}
.detail-primary-btn:hover{ filter:brightness(1.1); }
.detail-icon-btn{
  display:inline-flex; align-items:center; justify-content:center; flex-shrink:0;
  width:42px; background:rgba(255,255,255,.1); border:1px solid var(--hairline); color:#fff;
  border-radius:10px; cursor:pointer; backdrop-filter:blur(6px); transition:border-color .15s, background .15s;
}
.detail-icon-btn:hover{ border-color:rgba(255,255,255,.3); }
/* Wishlist attiva: solo il cuore si riempie (icona già scelta lato JS,
   HEART_FILLED_ICON_SVG vs HEART_OUTLINE_ICON_SVG) — il contenitore resta
   uguale a quello del trailer, invece di diventare un blocco rosso pieno
   che competeva visivamente con il pulsante primario. */
.detail-icon-btn.on{ color:#fff; }
.m-hero-actions .detail-primary-btn{ padding:9px 18px; font-size:12.5px; }
.m-hero-actions .detail-icon-btn{ width:38px; }

/* Reset progresso: azione rara, scende a link testuale discreto invece di
   avere lo stesso peso visivo delle azioni sopra. */
.detail-reset-link{
  display:inline-flex; align-items:center; gap:6px; background:none; border:none;
  color:var(--text-faint); font-size:11.5px; font-weight:600; cursor:pointer; padding:0;
  margin:10px 0 0; appearance:none;
}
.detail-reset-link:hover{ color:var(--text-muted); }

/* AI Hub e Sorgenti: un'unica card con due righe (icona + etichetta +
   sottotitolo + freccia) divise da un filo, invece di due pillole colorate
   isolate con un vuoto tra loro — si legge come un pannello "Extra" solo,
   non come due elementi buttati a caso. Righe impilate di default (mobile);
   su desktop diventano due colonne affiancate (vedi .desktop-shell sotto). */
.detail-tools-card{
  background:var(--surface); border:1px solid var(--hairline); border-radius:14px; overflow:hidden;
}
.detail-tools-row{
  display:flex; align-items:center; gap:12px; width:100%; text-align:left;
  appearance:none; border:none; background:none; color:var(--text); cursor:pointer;
  padding:14px 15px; font-family:inherit;
}
.detail-tools-row + .detail-tools-row{ border-top:1px solid var(--hairline); }
.detail-tools-row:hover{ background:var(--surface-2); }
.detail-tools-ic{
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
  width:32px; height:32px; border-radius:9px;
}
.detail-tools-ic.ai{ background:linear-gradient(135deg,var(--ai-violet),var(--ai-pink)); color:#fff; }
.detail-tools-ic.src{ background:var(--surface-3); color:var(--text-muted); }
.detail-tools-txt{ flex:1; min-width:0; display:flex; flex-direction:column; overflow:hidden; }
.detail-tools-label{ font-size:13px; font-weight:700; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.detail-tools-sub{ font-size:11px; color:var(--text-faint); margin-top:1px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.detail-tools-chev{ color:var(--text-faint); flex-shrink:0; font-size:17px; }
@media (min-width:901px){
  .detail-tools-card{ display:flex; max-width:560px; }
  .detail-tools-row{ flex:1; }
  .detail-tools-row + .detail-tools-row{ border-top:none; border-left:1px solid var(--hairline); }
}

/* Episodes Grid & Cards */
.episodes-grid{
  display:grid; grid-template-columns:repeat(auto-fill, minmax(280px, 1fr)); gap:14px;
}
.episode-card{
  background:var(--surface-2); border:1px solid var(--hairline); border-radius:14px;
  overflow:hidden; cursor:pointer; transition:all .2s ease; display:flex; flex-direction:column;
}
.episode-card:hover{
  border-color:rgba(255,255,255,.25); transform:translateY(-3px);
  box-shadow:0 8px 24px rgba(0,0,0,.45);
}
.ep-thumb-wrap{
  position:relative; width:100%; aspect-ratio:16/9; background:#121218; overflow:hidden;
}
.ep-thumb-wrap img{
  width:100%; height:100%; object-fit:cover; display:block;
  transition:transform .3s ease;
}
.episode-card:hover .ep-thumb-wrap img{
  transform:scale(1.04);
}
.ep-num-badge{
  position:absolute; top:8px; left:8px; background:rgba(0,0,0,.75); backdrop-filter:blur(4px);
  color:#fff; font-size:11px; font-weight:800; padding:3px 8px; border-radius:6px;
  border:1px solid rgba(255,255,255,.15);
}
.ep-play-overlay{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  background:rgba(0,0,0,.35); opacity:0; transition:opacity .2s ease;
}
.ep-play-overlay span{
  width:44px; height:44px; border-radius:50%; background:var(--accent); color:#fff;
  display:flex; align-items:center; justify-content:center; font-size:18px;
  box-shadow:0 0 20px color-mix(in srgb, var(--dd-red, #e50914) 60%, transparent);
}
.episode-card:hover .ep-play-overlay{ opacity:1; }
/* Anteprima episodio non visto sfocata (impostazione "Sfoca Anteprime
   Episodi Non Visti", attiva di default come nel nativo) — l'overlay resta
   sempre visibile (non solo in hover) per segnalare subito lo spoiler
   nascosto, invece del pulsante play rosso col glow. */
.ep-img-blur{ filter:blur(14px); transform:scale(1.1); }
.ep-spoiler-overlay{ opacity:1; background:rgba(0,0,0,.5); }
.ep-spoiler-overlay svg{ color:rgba(255,255,255,.85); }
.ep-info{ padding:12px; display:flex; flex-direction:column; gap:4px; flex-grow:1; }
.ep-title{ font-size:13.5px; font-weight:700; color:#fff; line-height:1.3; }
.ep-air-date{ font-size:11px; color:var(--text-faint); }
.ep-overview-reveal{
  align-self:flex-start; margin-top:2px; padding:4px 0; border:0; background:none; cursor:pointer;
  font:inherit; font-size:12px; color:var(--text-muted); text-decoration:underline dotted; text-underline-offset:3px;
}
.ep-overview-reveal:hover, .ep-overview-reveal:focus-visible{ color:#fff; }
.ep-overview[hidden]{ display:none; }
.ep-overview{
  font-size:12px; color:var(--text-muted); line-height:1.45; margin-top:2px;
  display:-webkit-box; -webkit-line-clamp:3; line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;
}

/* Live TV Grid & Cards */
.live-grid{
  display:grid; grid-template-columns:repeat(auto-fill, minmax(180px, 1fr)); gap:14px;
}
.live-card{
  background:var(--surface-2); border:1px solid var(--hairline); border-radius:14px;
  padding:14px 12px 10px; cursor:pointer; transition:all .2s ease; text-align:center;
  display:flex; flex-direction:column; align-items:center; position:relative;
  min-height:216px; justify-content:space-between; box-sizing:border-box;
}
.live-card:hover{
  border-color:rgba(239,68,68,.5); transform:translateY(-3px);
  box-shadow:0 8px 24px rgba(239,68,68,.2);
}
.live-logo-wrap{
  width:88px; height:54px; display:flex; align-items:center; justify-content:center;
  background:rgba(255,255,255,.04); border-radius:10px; padding:6px; flex-shrink:0;
}
.live-logo-wrap img{
  max-width:100%; max-height:100%; object-fit:contain; filter:drop-shadow(0 2px 6px rgba(0,0,0,.6));
}
.live-card-body{
  width:100%; display:flex; flex-direction:column; align-items:center; gap:5px;
  margin-top:8px; margin-bottom:auto;
}
.live-card-name-wrap{
  display:flex; align-items:center; justify-content:center; gap:6px; width:100%;
}
.live-dot-mini{
  width:7px; height:7px; border-radius:50%; background:#ef4444; flex-shrink:0;
  box-shadow:0 0 8px #ef4444; animation:pulse-live 1.5s infinite;
}
@keyframes pulse-live{
  0%,100%{ opacity:1; transform:scale(1); }
  50%{ opacity:.5; transform:scale(1.2); }
}
.live-ch-name{
  font-size:13px; font-weight:700; color:#fff;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:145px;
}
.live-card-meta-row{
  display:flex; align-items:center; justify-content:center; gap:6px; width:100%;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-size:10.5px;
}
.live-ch-cat{
  font-size:10.5px; color:var(--text-muted); text-transform:uppercase; font-weight:700; letter-spacing:.04em;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}

/* ── Live TV Mobile Header & Controls ── */
.m-live-header{
  display:flex; align-items:center; justify-content:space-between;
  margin-bottom:12px;
}
.m-live-title{
  font-size:18px; font-weight:800; color:#fff;
  display:flex; align-items:center; gap:8px;
}
.live-view-toggle-btn{
  background:var(--surface-2); border:1px solid var(--hairline);
  color:var(--text-muted); font-size:12px; font-weight:700;
  padding:6px 12px; border-radius:8px; cursor:pointer;
  display:flex; align-items:center; gap:6px; transition:all .2s;
}
.live-view-toggle-btn:hover, .live-view-toggle-btn.active{
  color:#fff; border-color:rgba(255,255,255,.3); background:rgba(255,255,255,.08);
}

/* Live TV Search Bar */
.live-search-box{
  position:relative; margin-bottom:14px; display:flex; align-items:center;
}
.live-search-icon{
  position:absolute; left:12px; font-size:14px; color:var(--text-muted); pointer-events:none;
}
.live-search-input{
  width:100%; height:42px; background:var(--surface-2); border:1px solid var(--hairline);
  border-radius:12px; padding:0 34px 0 38px; color:#fff; font-size:13.5px;
  outline:none; transition:border-color .2s; box-sizing:border-box; line-height:normal;
}
.live-search-input:focus{
  border-color:var(--accent);
}
.live-search-clear{
  position:absolute; right:10px; background:none; border:none; color:var(--text-muted);
  font-size:13px; cursor:pointer; padding:4px;
}

/* Live TV Favorite Star Button */
.live-fav-btn{
  position:absolute; top:8px; right:8px;
  background:rgba(0,0,0,0.45); border:none; border-radius:50%;
  width:28px; height:28px; display:flex; align-items:center; justify-content:center;
  font-size:14px; color:rgba(255,255,255,0.4); cursor:pointer; z-index:2;
  transition:all .2s;
}
.live-fav-btn:hover{
  transform:scale(1.15); color:#ffd700;
}
.live-fav-btn.is-fav{
  color:#ffd700; background:rgba(255,215,0,0.18); text-shadow:0 0 8px rgba(255,215,0,0.6);
}

/* ── Live TV List View (Mobile & Desktop) ── */
.live-list{
  display:flex; flex-direction:column; gap:8px;
}
.live-row-item{
  display:flex; align-items:center; gap:12px;
  background:var(--surface-2); border:1px solid var(--hairline); border-radius:12px;
  padding:10px 14px; cursor:pointer; transition:all .2s ease; position:relative;
}
.live-row-item:hover, .live-row-item:active{
  border-color:rgba(239,68,68,.5); transform:translateX(3px);
  background:rgba(255,255,255,.05);
}
.live-row-logo{
  width:50px; height:38px; display:flex; align-items:center; justify-content:center;
  background:rgba(255,255,255,.04); border-radius:8px; padding:4px; flex-shrink:0;
}
.live-row-logo img{
  max-width:100%; max-height:100%; object-fit:contain; filter:drop-shadow(0 2px 4px rgba(0,0,0,.6));
}
.live-row-info{
  flex:1; min-width:0;
}
.live-row-name-wrap{
  display:flex; align-items:center; gap:6px;
}
.live-row-name{
  font-size:13.5px; font-weight:700; color:#fff;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.live-row-sub{
  font-size:11px; color:var(--text-muted); font-weight:600; margin-top:2px;
  display:flex; align-items:center; gap:6px;
}
.live-row-fav-btn{
  background:none; border:none; font-size:18px; color:rgba(255,255,255,0.35);
  cursor:pointer; padding:6px; flex-shrink:0; transition:all .2s;
}
.live-row-fav-btn:hover, .live-row-fav-btn.is-fav{
  color:#ffd700; text-shadow:0 0 8px rgba(255,215,0,0.6);
}

/* ── Live TV Mobile Overrides (2 colonne spaziose, layout touch-first 100% responsive) ── */
#liveBodyWrap {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
  box-sizing: border-box;
}

@media (max-width: 768px) {
  .live-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }
  .live-card {
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 10px 8px !important;
    gap: 6px !important;
    border-radius: 12px !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }
  .live-card-body {
    width: 100% !important;
    min-width: 0 !important;
    overflow: hidden !important;
  }
  .live-card-name-wrap {
    width: 100% !important;
    min-width: 0 !important;
    overflow: hidden !important;
  }
  .live-logo-wrap {
    width: 100% !important;
    height: 48px !important;
    padding: 4px !important;
  }
  .live-ch-name {
    font-size: 12px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }
  .live-card-meta-row {
    width: 100% !important;
    min-width: 0 !important;
    overflow: hidden !important;
    font-size: 9.5px !important;
    gap: 3px !important;
  }
  .live-card-meta-row .channel-multi-badge {
    padding: 1px 4px !important;
    font-size: 8.5px !important;
    flex-shrink: 1 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }
  .live-ch-cat {
    font-size: 9px !important;
    min-width: 0 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }
  .live-card-epg {
    width: 100% !important;
    min-width: 0 !important;
    overflow: hidden !important;
    height: 34px !important;
  }
  .live-card-epg-title-wrap {
    width: 100% !important;
    min-width: 0 !important;
    overflow: hidden !important;
  }
  .live-card-epg-title {
    font-size: 10px !important;
  }
  .matches-grid {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }
}
.mobile-shell .live-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 8px !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}
.mobile-shell .live-card {
  min-width: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  padding: 10px 8px !important;
  gap: 6px !important;
  border-radius: 12px !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}
.mobile-shell .live-card-body {
  width: 100% !important;
  min-width: 0 !important;
  overflow: hidden !important;
}
.mobile-shell .live-card-name-wrap {
  width: 100% !important;
  min-width: 0 !important;
  overflow: hidden !important;
}
.mobile-shell .live-logo-wrap {
  width: 100% !important;
  height: 48px !important;
  padding: 4px !important;
}
.mobile-shell .live-ch-name {
  font-size: 12px !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  max-width: 100% !important;
  min-width: 0 !important;
}
.mobile-shell .live-card-meta-row {
  width: 100% !important;
  min-width: 0 !important;
  overflow: hidden !important;
  font-size: 9.5px !important;
  gap: 3px !important;
}
.mobile-shell .live-card-meta-row .channel-multi-badge {
  padding: 1px 4px !important;
  font-size: 8.5px !important;
  flex-shrink: 1 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}
.mobile-shell .live-ch-cat {
  font-size: 9px !important;
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}
.mobile-shell .live-card-epg {
  width: 100% !important;
  min-width: 0 !important;
  overflow: hidden !important;
  height: 34px !important;
}
.mobile-shell .live-card-epg-title-wrap {
  width: 100% !important;
  min-width: 0 !important;
  overflow: hidden !important;
}
.mobile-shell .live-card-epg-title {
  font-size: 10px !important;
}
.mobile-shell .matches-grid {
  grid-template-columns: 1fr !important;
  gap: 10px !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

/* Wishlist Grid */
.wishlist-grid{
  display:grid; grid-template-columns:repeat(auto-fill, minmax(180px, 1fr)); gap:16px;
}
.wishlist-card{
  background:var(--surface-2); border:1px solid var(--hairline); border-radius:14px;
  overflow:hidden; display:flex; flex-direction:column; position:relative;
  transition:all .2s ease;
}
.wishlist-card:hover{
  border-color:rgba(255,255,255,.2); transform:translateY(-3px);
  box-shadow:0 8px 24px rgba(0,0,0,.5);
}
.wishlist-card .art{
  aspect-ratio:2/3; width:100%; position:relative; overflow:hidden; background:var(--surface-3);
  cursor:pointer;
}
.wishlist-card .art img{ width:100%; height:100%; object-fit:cover; }
.wishlist-card .meta{ padding:10px 12px; display:flex; flex-direction:column; gap:4px; }
.wishlist-card .t{ font-size:13px; font-weight:700; color:#fff; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.wishlist-card .s{ font-size:11px; color:var(--text-muted); font-weight:600; text-transform:uppercase; }
.wishlist-card .card-rm-btn{
  position:absolute; top:8px; right:8px; width:28px; height:28px; border-radius:50%;
  background:rgba(0,0,0,.7); border:1px solid rgba(255,255,255,.15); color:#ff6b73;
  cursor:pointer; display:flex; align-items:center; justify-content:center; font-size:13px;
  opacity:0; transition:opacity .15s ease; z-index:5;
}
.wishlist-card:hover .card-rm-btn{ opacity:1; }

.yt-chan-avatar-mini{
  width:42px; height:42px; border-radius:50%; background-size:cover; background-position:center;
  background-color:#1e1e2d; border:2px solid rgba(255,255,255,.2); flex-shrink:0;
}

/* YouTube Channel Card in Wishlist */
.yt-chan-card-cover{
  width:100%; height:100%; display:flex; flex-direction:column; align-items:center; justify-content:center;
  padding:16px 12px; gap:10px; text-align:center; position:relative;
}
.yt-chan-badge{
  position:absolute; top:8px; left:8px; background:#ff0000; color:#fff;
  font-size:9px; font-weight:800; letter-spacing:0.8px; padding:3px 6px;
  border-radius:4px; text-transform:uppercase; box-shadow:0 2px 6px rgba(255,0,0,0.4);
  z-index:2;
}
.yt-chan-avatar-circle{
  width:68px; height:68px; border-radius:50%; background-size:cover; background-position:center;
  background-repeat:no-repeat; border:2.5px solid rgba(255,255,255,0.4);
  box-shadow:0 6px 16px rgba(0,0,0,0.5); margin-bottom:4px; flex-shrink:0;
}
.yt-chan-initials-badge{
  width:64px; height:64px; border-radius:50%; background:rgba(255,255,255,.15);
  border:2.5px solid rgba(255,255,255,.35); display:flex; align-items:center; justify-content:center;
  font-size:22px; font-weight:900; color:#fff; letter-spacing:1px;
  box-shadow:0 6px 16px rgba(0,0,0,.4);
}
.yt-chan-card-name{
  font-size:12px; font-weight:700; color:#fff; line-height:1.3;
  display:-webkit-box; -webkit-line-clamp:2; line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}

/* Tile canale nella griglia Hub/ricerca (.yt-grid) — prima i risultati
   canale venivano scartati del tutto prima di arrivare a schermo. */
.yt-chan-tile{ border-radius:14px; overflow:hidden; cursor:pointer; aspect-ratio:4/3; }
.yt-chan-tile-cover{
  width:100%; height:100%; display:flex; flex-direction:column; align-items:center; justify-content:center;
  padding:16px 12px; gap:8px; text-align:center; position:relative;
  transition:transform .2s ease;
}
.yt-chan-tile:hover .yt-chan-tile-cover{ transform:scale(1.03); }

/* Popup canale — hero a gradiente (stesso principio di TV/mobile: colori
   ricavati dal nome del canale via channelAccentGradient) + griglia video. */
.yt-chan-sheet{ max-width:640px; }
.yt-chan-hero{
  position:relative; padding:28px 24px 24px; display:flex; flex-direction:column;
  align-items:center; text-align:center; flex-shrink:0;
}
.yt-chan-close{
  position:absolute; top:14px; right:14px; width:30px; height:30px; border-radius:50%;
  background:rgba(0,0,0,.35); border:1px solid rgba(255,255,255,.2); color:#fff;
  display:flex; align-items:center; justify-content:center; font-size:14px; cursor:pointer;
}
.yt-chan-avatar-wrap{ position:relative; margin-bottom:12px; }
.yt-chan-modal-avatar{
  width:84px; height:84px; border-radius:50%; background-size:cover; background-position:center;
  background-color:rgba(255,255,255,.15); border:3px solid rgba(255,255,255,.55);
  box-shadow:0 10px 26px rgba(0,0,0,.4); display:flex; align-items:center; justify-content:center;
  font-size:26px; font-weight:900; color:#fff;
}
.yt-chan-modal-badge{
  position:absolute; bottom:-2px; right:-6px; background:#ff0000; color:#fff;
  font-size:10px; font-weight:800; letter-spacing:.5px; padding:3px 6px; border-radius:5px;
  box-shadow:0 3px 10px rgba(255,0,0,.5);
}
.yt-chan-modal-name{ font-size:20px; font-weight:800; color:#fff; margin-bottom:4px; }
.yt-chan-modal-stat{
  font-size:11px; font-weight:700; letter-spacing:.5px; color:rgba(255,255,255,.75);
  margin-bottom:16px; font-variant-numeric:tabular-nums;
}
.yt-chan-sub-btn{
  background:#ff0000; color:#fff; font-size:12px; font-weight:700; letter-spacing:.4px;
  padding:9px 22px; border-radius:20px; border:none; cursor:pointer;
  box-shadow:0 6px 16px rgba(255,0,0,.35);
}
.yt-chan-videos{ padding:18px 20px 22px; }
.yt-chan-section-title{ font-size:13px; font-weight:700; color:#fff; margin-bottom:12px; }
.yt-chan-loading{ display:flex; justify-content:center; padding:30px 0; }
.yt-chan-grid{ display:grid; grid-template-columns:repeat(2, 1fr); gap:12px; }
@media (min-width:520px){ .yt-chan-grid{ grid-template-columns:repeat(3, 1fr); } }

/* Mobile Wishlist (3 columns, Android LibraryScreen parity) */
.mobile-shell .wishlist-grid {
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 8px !important;
}
.mobile-shell .wishlist-card {
  border-radius: 10px !important;
}
.mobile-shell .wishlist-card .meta {
  padding: 6px 8px !important;
  gap: 2px !important;
}
.mobile-shell .wishlist-card .t {
  font-size: 11px !important;
}
.mobile-shell .wishlist-card .s {
  font-size: 9px !important;
}
.mobile-shell .wishlist-card .card-rm-btn {
  opacity: 0.85 !important;
  width: 22px !important;
  height: 22px !important;
  font-size: 10px !important;
  top: 4px !important;
  right: 4px !important;
}
.mobile-shell .yt-chan-badge {
  font-size: 7.5px !important;
  padding: 2px 4px !important;
  top: 4px !important;
  left: 4px !important;
}
.mobile-shell .yt-chan-avatar-circle {
  width: 46px !important;
  height: 46px !important;
  border-width: 2px !important;
}
.mobile-shell .yt-chan-initials-badge {
  width: 46px !important;
  height: 46px !important;
  font-size: 15px !important;
}
.mobile-shell .yt-chan-card-cover {
  padding: 8px 4px !important;
  gap: 6px !important;
}

/* Episodi: card orizzontale compatta (thumbnail piccola a sinistra + testo),
   come su mobile_native, invece della card verticale con thumbnail 16:9 a
   piena larghezza pensata per la griglia multi-colonna del desktop — su
   una sola colonna quella card arrivava a ~300px di altezza l'una, e una
   stagione con tante puntate diventava uno scroll interminabile. */
.mobile-shell .episodes-grid {
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
}
.mobile-shell .episode-card {
  flex-direction: row !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 8px !important;
  border-radius: 10px !important;
}
.mobile-shell .ep-thumb-wrap {
  width: 112px !important;
  aspect-ratio: 16 / 9 !important;
  flex: none !important;
  border-radius: 8px !important;
}
.mobile-shell .ep-info {
  padding: 0 !important;
  gap: 2px !important;
  min-width: 0 !important;
}
.mobile-shell .ep-title {
  font-size: 12.5px !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}
.mobile-shell .ep-air-date {
  font-size: 10px !important;
}
.mobile-shell .ep-overview {
  font-size: 11px !important;
  -webkit-line-clamp: 2 !important;
  line-clamp: 2 !important;
}
/* Il numero episodio è già nel titolo ("1. Nome episodio"): sul thumbnail
   piccolo il badge sovrapposto risultava ridondante e ingombrante. */
.mobile-shell .ep-num-badge {
  display: none !important;
}
.mobile-shell .ep-watched-badge,
.mobile-shell .ep-progress-badge {
  font-size: 8.5px !important;
  padding: 2px 5px !important;
  top: 4px !important;
  right: 4px !important;
}
.mobile-shell .yt-chan-card-name {
  font-size: 10.5px !important;
}

@media (max-width: 768px) {
  .wishlist-grid {
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 8px !important;
  }
  .wishlist-card {
    border-radius: 10px !important;
  }
  .wishlist-card .meta {
    padding: 6px 8px !important;
    gap: 2px !important;
  }
  .wishlist-card .t {
    font-size: 11px !important;
  }
  .wishlist-card .s {
    font-size: 9px !important;
  }
  .wishlist-card .card-rm-btn {
    opacity: 0.85 !important;
    width: 22px !important;
    height: 22px !important;
    font-size: 10px !important;
    top: 4px !important;
    right: 4px !important;
  }
  .yt-chan-badge {
    font-size: 7.5px !important;
    padding: 2px 4px !important;
    top: 4px !important;
    left: 4px !important;
  }
  .yt-chan-avatar-circle {
    width: 46px !important;
    height: 46px !important;
    border-width: 2px !important;
  }
  .yt-chan-initials-badge {
    width: 46px !important;
    height: 46px !important;
    font-size: 15px !important;
  }
  .yt-chan-card-cover {
    padding: 8px 4px !important;
    gap: 6px !important;
  }
  .yt-chan-card-name {
    font-size: 10.5px !important;
  }
}

/* Sincronizzazione Episodi Già Visti & Progress */
.episode-card.is-watched{
  border-color:rgba(34, 197, 94, 0.35);
}
.ep-watched-badge{
  position:absolute; top:8px; right:8px; background:rgba(34, 197, 94, 0.95);
  color:#000; font-size:10.5px; font-weight:900; letter-spacing:0.5px;
  padding:3px 8px; border-radius:6px; box-shadow:0 2px 8px rgba(0,0,0,0.5);
  display:flex; align-items:center; gap:4px; z-index:2;
}
.ep-progress-badge{
  position:absolute; top:8px; right:8px; background:rgba(0, 0, 0, 0.8);
  border:1px solid rgba(255, 255, 255, 0.2); color:#ff6b73; font-size:10px;
  font-weight:700; padding:2px 7px; border-radius:6px; z-index:2;
}
.ep-progress-bar{
  position:absolute; bottom:0; left:0; right:0; height:4px;
  background:rgba(255, 255, 255, 0.2); overflow:hidden; z-index:2;
}
.ep-progress-fill{
  height:100%; background:var(--accent, #ff4154); border-radius:0 2px 2px 0;
}

/* Live TV: Streamed Sports Match Cards */
.matches-grid{
  display:grid; grid-template-columns:repeat(auto-fill, minmax(280px, 1fr)); gap:14px;
  margin-top:10px;
}
.match-card{
  background:var(--surface-2); border:1px solid var(--hairline); border-radius:14px;
  padding:16px; display:flex; flex-direction:column; gap:10px; cursor:pointer;
  transition:all .2s ease; position:relative; overflow:hidden;
}
.match-card:hover{
  border-color:rgba(255,255,255,.25); transform:translateY(-2px);
  box-shadow:0 8px 24px rgba(0,0,0,.5);
}
.match-card.live-now{
  border-color:rgba(239, 68, 68, 0.5); background:linear-gradient(135deg, rgba(239,68,68,0.1) 0%, var(--surface-2) 60%);
}
.match-top{
  display:flex; align-items:center; justify-content:space-between;
}
.match-icon{ font-size:22px; }
.badge-live-pulse{
  background:#ef4444; color:#fff; font-size:10.5px; font-weight:800;
  padding:3px 8px; border-radius:6px; letter-spacing:0.5px;
  animation:livePulse 1.8s infinite;
}
@keyframes livePulse{
  0%, 100%{ opacity:1; }
  50%{ opacity:0.6; }
}
.badge-sched{
  background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.15);
  color:var(--text-muted); font-size:10.5px; font-weight:700; padding:3px 8px; border-radius:6px;
}
.badge-pro-chip{
  background:linear-gradient(135deg, #f59e0b, #d97706); color:#000;
  font-size:9.5px; font-weight:900; padding:2px 5px; border-radius:4px;
}
.match-title{
  font-size:14px; font-weight:700; color:#fff; line-height:1.35;
  display:-webkit-box; -webkit-line-clamp:2; line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.match-meta{
  display:flex; align-items:center; justify-content:space-between;
  font-size:11px; color:var(--text-muted); font-weight:600; margin-top:auto;
}
.match-cat-chip{
  background:rgba(255,255,255,0.08); color:rgba(255,255,255,0.7);
  font-size:9.5px; font-weight:700; padding:2px 7px; border-radius:6px;
  letter-spacing:0.5px; text-transform:uppercase;
}
.match-teams-block{
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:2px; text-align:center; padding:4px 0;
}
.match-team{
  font-size:13.5px; font-weight:700; color:#fff;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:100%;
}
.match-vs{
  font-size:11px; font-weight:800; color:var(--dd-red, #e50914); text-transform:uppercase; letter-spacing:0.5px;
}
.match-single-title{
  font-size:13px; font-weight:700; color:#fff; text-align:center; padding:6px 0;
  display:-webkit-box; -webkit-line-clamp:2; line-clamp:2; -webkit-box-orient:vertical;
  overflow:hidden; line-height:1.35;
}
.live-logo-fallback{
  width:52px; height:52px; border-radius:12px; background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.15); display:flex; align-items:center; justify-content:center;
  font-weight:900; font-size:14px; color:#fff; letter-spacing:1px;
}

/* Source provider compact icon badges on match cards */
.match-bottom-row{
  display:flex; align-items:center; justify-content:space-between;
  margin-top:6px; gap:8px;
}
.match-src-icons{
  display:flex; align-items:center; gap:4px; flex-shrink:0;
}
.src-icon-badge{
  width:22px; height:22px; border-radius:6px;
  display:flex; align-items:center; justify-content:center;
  font-size:11px; line-height:1; flex-shrink:0;
}
.src-icon-streamed  { background:rgba(99,102,241,0.20); color:#a5b4fc; border:1px solid rgba(99,102,241,0.45); }
.src-icon-streamfree{ background:rgba(34,197,94,0.18);  color:#86efac; border:1px solid rgba(34,197,94,0.40); }
.src-icon-timstreams{ background:rgba(249,115,22,0.20); color:#fdba74; border:1px solid rgba(249,115,22,0.45); }
.src-icon-zlive     { background:rgba(168,85,247,0.20); color:#d8b4fe; border:1px solid rgba(168,85,247,0.45); }
.src-icon-hesgoal   { background:rgba(234,179,8,0.18);  color:#fde68a; border:1px solid rgba(234,179,8,0.40); }
.src-icon-cdnlive   { background:rgba(20,184,166,0.18); color:#5eead4; border:1px solid rgba(20,184,166,0.40); }
.src-icon-capitan   { background:rgba(239,68,68,0.20);  color:#fca5a5; border:1px solid rgba(239,68,68,0.45); }
.src-icon-unknown   { background:rgba(255,255,255,0.08); color:var(--text-muted); border:1px solid rgba(255,255,255,0.14); }

.match-feed-counter{
  display:flex; align-items:center; gap:4px;
  font-size:11px; font-weight:600; color:rgba(255,255,255,0.7);
  white-space:nowrap;
}
.match-play-arrow{
  color:var(--dd-red, #e50914); font-size:11px;
}

/* Backward compatibility pills */
.match-src-pills{
  display:flex; flex-wrap:wrap; gap:5px; margin-top:2px;
}
.src-pill{
  font-size:10px; font-weight:700; padding:2px 7px; border-radius:5px;
  letter-spacing:0.3px; white-space:nowrap;
}
.src-streamed  { background:rgba(99,102,241,0.22); color:#a5b4fc; border:1px solid rgba(99,102,241,0.4); }
.src-streamfree{ background:rgba(34,197,94,0.18);  color:#86efac; border:1px solid rgba(34,197,94,0.35); }
.src-timstreams{ background:rgba(249,115,22,0.20); color:#fdba74; border:1px solid rgba(249,115,22,0.4); }
.src-zlive     { background:rgba(168,85,247,0.20); color:#d8b4fe; border:1px solid rgba(168,85,247,0.4); }
.src-hesgoal   { background:rgba(234,179,8,0.18);  color:#fde68a; border:1px solid rgba(234,179,8,0.35); }
.src-cdnlive   { background:rgba(20,184,166,0.18); color:#5eead4; border:1px solid rgba(20,184,166,0.35); }
.src-unknown   { background:rgba(255,255,255,0.07); color:var(--text-muted); border:1px solid rgba(255,255,255,0.12); }

/* ============================== SETTINGS & PROFILE ============================== */
.settings-page {
  max-width: 860px;
  margin: 0 auto;
  padding: 10px 0 40px;
  display: flex;
  flex-direction: column;
  gap: 26px;
}
.settings-card {
  background: var(--surface-2);
  border: 1px solid var(--hairline);
  border-radius: 18px;
  padding: 24px;
}
.account-header {
  display: flex;
  align-items: center;
  gap: 20px;
}
.avatar-large {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--accent), #8a0710);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  font-weight: 800;
  color: #fff;
  flex-shrink: 0;
  box-shadow: 0 4px 16px rgba(255, 65, 84, 0.25);
}
.account-info {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.account-email {
  font-size: 18px;
  font-weight: 800;
  color: #fff;
}
.account-badges {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}
.device-badge {
  font-size: 11px;
  font-weight: 600;
  color: var(--text-muted);
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  padding: 3px 10px;
  border-radius: 6px;
}

.settings-section {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.settings-title {
  font-size: 16.5px;
  font-weight: 800;
  color: #fff;
  margin: 0;
  display: flex;
  align-items: center;
  gap: 8px;
}
.settings-desc {
  font-size: 12.5px;
  color: var(--text-muted);
  margin: -4px 0 6px;
  line-height: 1.45;
}
.settings-group {
  background: var(--surface-2);
  border: 1px solid var(--hairline);
  border-radius: 16px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.settings-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 20px;
  border-bottom: 1px solid var(--hairline);
}
.settings-item:last-child {
  border-bottom: none;
}
.settings-item-col {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 16px 20px;
  border-bottom: 1px solid var(--hairline);
}
.settings-item-col:last-child {
  border-bottom: none;
}
.settings-item-title {
  font-size: 14px;
  font-weight: 700;
  color: #fff;
}
.settings-item-sub {
  font-size: 12px;
  color: var(--text-muted);
  margin-top: 2px;
}
.settings-select {
  background: var(--surface);
  border: 1px solid var(--hairline);
  color: #fff;
  border-radius: 8px;
  padding: 8px 12px;
  font-size: 13px;
  font-family: inherit;
  outline: none;
  cursor: pointer;
}
.settings-select:focus {
  border-color: var(--accent);
}
.input-with-action {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
}
.settings-input {
  margin-bottom: 0 !important;
  flex: 1;
  font-size: 13px;
}
.status-indicator {
  font-size: 11.5px;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 6px;
}
.status-indicator.connected {
  color: #22c55e;
}
.status-indicator.missing {
  color: var(--text-muted);
}

/* Toggle Switch */
.toggle-switch {
  position: relative;
  display: inline-block;
  width: 44px;
  height: 24px;
  flex-shrink: 0;
}
.toggle-switch input {
  opacity: 0;
  width: 0;
  height: 0;
}
.toggle-slider {
  position: absolute;
  cursor: pointer;
  top: 0; left: 0; right: 0; bottom: 0;
  background: rgba(255, 255, 255, 0.15);
  border-radius: 24px;
  transition: 0.2s;
}
.toggle-slider:before {
  position: absolute;
  content: "";
  height: 18px;
  width: 18px;
  left: 3px;
  bottom: 3px;
  background-color: white;
  border-radius: 50%;
  transition: 0.2s;
}
.toggle-switch input:checked + .toggle-slider {
  background-color: var(--accent);
}
.toggle-switch input:checked + .toggle-slider:before {
  transform: translateX(20px);
}

/* Profiles Grid */
.profiles-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 12px;
  margin-top: 4px;
}
.profile-pill-card {
  background: var(--surface-2);
  border: 1px solid var(--hairline);
  border-radius: 14px;
  padding: 14px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  transition: all 0.15s ease;
  text-align: center;
}
.profile-pill-card:hover {
  transform: translateY(-2px);
  border-color: rgba(255, 255, 255, 0.25);
}
.profile-pill-card.active {
  border-color: var(--accent);
  background: rgba(255, 65, 84, 0.08);
}
.profile-pill-avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 17px;
  font-weight: 800;
  color: #fff;
}
.profile-pill-name {
  font-size: 13px;
  font-weight: 700;
  color: #fff;
}
.profile-pill-status {
  font-size: 10.5px;
  font-weight: 600;
  color: var(--text-muted);
}
.profile-pill-card.active .profile-pill-status {
  color: var(--accent);
}

.settings-footer {
  text-align: center;
  font-size: 12px;
  color: var(--text-faint);
  padding: 12px 0 24px;
  /* Si tocca 7 volte di fila per l'easter egg: niente testo che si evidenzia ne' lampo del tocco. */
  -webkit-user-select: none;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
}

/* ==================== CINEMATIC INTRO OVERLAY ==================== */
.cinematic-intro-overlay {
  position: fixed;
  inset: 0;
  z-index: 99999;
  background: #060608;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 40px 60px;
  overflow: hidden;
  opacity: 1;
  transition: opacity 0.5s cubic-bezier(0.16, 1, 0.3, 1), visibility 0.5s;
  user-select: none;
}
.cinematic-intro-overlay.fade-out {
  opacity: 0;
  pointer-events: none;
}
.cio-bg-container {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}
.cio-backdrop {
  position: absolute;
  inset: -5%;
  width: 110%;
  height: 110%;
  background-size: cover;
  background-position: center;
  opacity: 0.45;
  filter: blur(2px);
  transform: scale(1);
  animation: cioKenBurns 20s ease-in-out infinite alternate;
}
@keyframes cioKenBurns {
  0% { transform: scale(1); }
  100% { transform: scale(1.12); }
}
.cio-radial-glow {
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 60% 40%, color-mix(in srgb, var(--dd-red, #e50914) 15%, transparent), transparent 70%);
}
.cio-vignette-horiz {
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, rgba(0, 0, 0, 0.92) 0%, rgba(0, 0, 0, 0.5) 55%, rgba(0, 0, 0, 0.25) 100%);
}
.cio-vignette-vert {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.8) 0%, transparent 35%, transparent 65%, rgba(0, 0, 0, 0.95) 100%);
}

/* Center Graphic */
.cio-center-graphic {
  position: absolute;
  top: 45%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}
.cio-yt-badge {
  width: 156px;
  height: 108px;
  background: #FF0000;
  border-radius: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 16px 40px rgba(255, 0, 0, 0.45);
  animation: cioPopIn 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}
.cio-channel-card {
  width: 140px;
  height: 140px;
  background: #1b1b1f;
  border-radius: 28px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 16px 45px rgba(0, 0, 0, 0.6);
  animation: cioPopIn 0.6s cubic-bezier(0.16, 1, 0.3, 1);
  overflow: hidden;
}
.cio-channel-logo {
  max-width: 100px;
  max-height: 100px;
  object-fit: contain;
}
.cio-channel-monogram {
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, #F0B429, #8B5CF6);
  color: #fff;
  font-size: 38px;
  font-weight: 900;
  letter-spacing: 2px;
  display: flex;
  align-items: center;
  justify-content: center;
}
@keyframes cioPopIn {
  0% { transform: scale(0.7); opacity: 0; }
  100% { transform: scale(1); opacity: 1; }
}

/* Header */
.cio-top-header {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.cio-brand {
  display: flex;
  align-items: center;
  gap: 12px;
}
.cio-brand-text {
  font-size: 18px;
  font-weight: 900;
  color: #ffffff;
  letter-spacing: 3.5px;
}
.cio-close-btn {
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.15);
  color: #ffffff;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  font-size: 16px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s, transform 0.2s;
}
.cio-close-btn:hover {
  background: rgba(255, 255, 255, 0.25);
  transform: scale(1.08);
}

/* Bottom Content */
.cio-bottom-content {
  position: relative;
  z-index: 2;
  max-width: 720px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  margin-bottom: 24px;
}
.cio-badge {
  display: inline-block;
  padding: 5px 12px;
  border-radius: 6px;
  background: color-mix(in srgb, var(--dd-red, #e50914) 18%, transparent);
  border: 1px solid color-mix(in srgb, var(--dd-red, #e50914) 40%, transparent);
  color: var(--dd-red, #e50914);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  margin-bottom: 14px;
}
.cio-title {
  color: #ffffff;
  font-size: 36px;
  font-weight: 900;
  line-height: 1.25;
  margin: 0 0 16px 0;
  text-shadow: 0 2px 14px rgba(0, 0, 0, 0.9);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  animation: cioSlideIn 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}
@keyframes cioSlideIn {
  0% { transform: translateX(-40px); opacity: 0; }
  100% { transform: translateX(0); opacity: 1; }
}
.cio-status {
  color: rgba(255, 255, 255, 0.85);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  margin-bottom: 16px;
  animation: cioPulse 1.2s ease-in-out infinite;
}
@keyframes cioPulse {
  0%, 100% { opacity: 0.4; }
  50% { opacity: 1; }
}
.cio-laser-track {
  width: 240px;
  height: 3px;
  border-radius: 2px;
  background: rgba(255, 255, 255, 0.15);
  overflow: hidden;
  position: relative;
}
.cio-laser-bar {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 90px;
  background: var(--dd-red, #e50914);
  box-shadow: 0 0 12px var(--dd-red, #e50914);
  animation: cioLaserMove 1.3s cubic-bezier(0.4, 0, 0.2, 1) infinite;
}
@keyframes cioLaserMove {
  0% { transform: translateX(-90px); }
  100% { transform: translateX(240px); }
}

/* Cinematic Error & Countdown */
.cio-error-box {
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-top: 6px;
}
.cio-error-msg {
  display: flex;
  align-items: center;
  gap: 10px;
  color: #FFB4A9;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.4;
}
.cio-error-msg svg {
  flex-shrink: 0;
}
.cio-countdown-row {
  display: flex;
  align-items: center;
  gap: 10px;
  color: rgba(255, 255, 255, 0.75);
  font-size: 14px;
  font-weight: 500;
}
.cio-cd-dot {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: bold;
  background: rgba(255, 255, 255, 0.16);
  color: rgba(255, 255, 255, 0.45);
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}
.cio-cd-dot.active {
  background: var(--dd-red, #e50914);
  color: #ffffff;
  font-weight: 900;
  box-shadow: 0 0 12px color-mix(in srgb, var(--dd-red, #e50914) 60%, transparent);
  transform: scale(1.1);
}
.cio-cd-dot.past {
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.25);
}
.cio-dismiss-btn {
  background: rgba(255, 255, 255, 0.16);
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 18px;
  color: #ffffff;
  padding: 5px 14px;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  margin-left: 8px;
  transition: all 0.2s ease;
}
.cio-dismiss-btn:hover {
  background: var(--dd-red, #e50914);
  border-color: var(--dd-red, #e50914);
  box-shadow: 0 0 10px color-mix(in srgb, var(--dd-red, #e50914) 50%, transparent);
  transform: scale(1.05);
}

@media (max-width: 768px) {
  .cinematic-intro-overlay {
    padding: calc(24px + env(safe-area-inset-top, 0px)) 20px 24px;
  }
  .cio-title {
    font-size: 24px;
    line-height: 1.2;
  }
}

/* ── Music Segment Bar & Scrollbar hiding on touch ── */
.music-header-top {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 24px;
  flex-wrap: wrap;
}
.music-badge-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  background: color-mix(in srgb, var(--hub-gold, #E5A93B) 15%, transparent);
  border: 1px solid color-mix(in srgb, var(--hub-gold, #E5A93B) 40%, transparent);
  color: var(--hub-gold, #E5A93B);
  border-radius: 20px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.5px;
}
/* ── Cinematic Intro & Player Notice Overlay (Audio Codecs & 4K) ── */
.cio-notice {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 14px;
  padding: 10px 16px;
  background: color-mix(in srgb, var(--hub-gold, #E5A93B) 16%, transparent);
  border: 1px solid color-mix(in srgb, var(--hub-gold, #E5A93B) 45%, transparent);
  backdrop-filter: blur(12px);
  border-radius: 12px;
  animation: cioFadeIn 0.3s ease;
  max-width: 580px;
}
.cio-notice.cio-notice-warn {
  background: color-mix(in srgb, var(--dd-red, #e50914) 18%, transparent);
  border-color: color-mix(in srgb, var(--dd-red, #e50914) 50%, transparent);
}
.cio-notice-icon {
  font-size: 20px;
  flex-shrink: 0;
}
.cio-notice-text {
  font-size: 12px;
  line-height: 1.45;
  color: #f5f5f5;
  text-align: left;
}
@keyframes cioFadeIn {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

.po-notice-pill {
  position: absolute;
  top: 72px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 120;
  background: rgba(18, 18, 22, 0.92);
  border: 1px solid color-mix(in srgb, var(--hub-gold, #E5A93B) 55%, transparent);
  backdrop-filter: blur(16px);
  color: #fff;
  padding: 8px 18px;
  border-radius: 24px;
  font-size: 12px;
  font-weight: 600;
  box-shadow: 0 8px 24px rgba(0,0,0,0.6);
  display: flex;
  align-items: center;
  gap: 12px;
  max-width: 90%;
  animation: cioFadeIn 0.3s ease;
}
.po-notice-pill-close {
  background: none;
  border: none;
  color: rgba(255, 255, 255, 0.7);
  cursor: pointer;
  font-size: 14px;
  padding: 0 4px;
}
.po-notice-pill-close:hover {
  color: #fff;
}

/* Subtitle Sync Offset Box in Player Menu */
.sub-sync-box {
  margin-top: 10px;
  padding: 10px 12px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 10px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.sub-sync-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 11px;
  font-weight: 700;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.sub-sync-val {
  font-size: 13px;
  font-weight: 800;
  color: var(--hub-gold, #E5A93B);
}
.sub-sync-actions {
  display: flex;
  align-items: center;
  gap: 6px;
}
.sub-sync-btn {
  flex: 1;
  padding: 6px 0;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 6px;
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.15s ease;
  text-align: center;
}
.sub-sync-btn:hover {
  background: rgba(255, 255, 255, 0.18);
  border-color: rgba(255, 255, 255, 0.25);
}
.sub-sync-btn.reset {
  background: rgba(239, 68, 68, 0.2);
  border-color: rgba(239, 68, 68, 0.35);
  color: #fca5a5;
}
.sub-sync-btn.reset:hover {
  background: rgba(239, 68, 68, 0.35);
  color: #fff;
}

/* Streamed Live Sports Feed Selector Modal */
.streamed-feed-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.75);
  backdrop-filter: blur(12px);
  z-index: 9999;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 16px;
}
.streamed-feed-modal-overlay.show {
  display: flex;
}
.streamed-feed-modal {
  width: 100%;
  max-width: 520px;
  background: #11141e;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 20px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.85);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  animation: cioFadeIn 0.25s ease;
}
.streamed-feed-modal-header {
  padding: 18px 20px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
.streamed-feed-header-left {
  flex: 1;
  min-width: 0;
}
.streamed-feed-badge-event {
  display: inline-block;
  font-size: 10px;
  font-weight: 800;
  color: var(--dd-red, #e50914);
  letter-spacing: 0.6px;
  text-transform: uppercase;
  margin-bottom: 4px;
}
.streamed-feed-modal-title {
  font-size: 16px;
  font-weight: 800;
  color: #fff;
  line-height: 1.3;
  white-space: normal;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.streamed-feed-modal-subtitle {
  font-size: 12px;
  color: var(--text-muted);
  margin-top: 4px;
}
.streamed-feed-modal-close {
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.12);
  width: 30px;
  height: 30px;
  border-radius: 50%;
  color: #fff;
  font-size: 13px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: all 0.15s ease;
}
.streamed-feed-modal-close:hover {
  background: rgba(255, 255, 255, 0.2);
  transform: scale(1.08);
}
.streamed-feed-list {
  padding: 14px 16px 20px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  max-height: 420px;
  overflow-y: auto;
}

/* Nuovo layout a card moderna del feed */
.streamed-feed-item-modern {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 13px 16px;
  background: rgba(255, 255, 255, 0.03);
  border: 1.2px solid rgba(255, 255, 255, 0.08);
  border-radius: 14px;
  cursor: pointer;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
  text-align: left;
  width: 100%;
  box-sizing: border-box;
}
.streamed-feed-item-modern:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.24);
  transform: translateY(-1px);
}
.feed-item-main {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.feed-item-top-row {
  display: flex;
  align-items: center;
  gap: 8px;
}
.feed-provider-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2.5px 7px;
  border-radius: 6px;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.5px;
}
.feed-badge-streamed   { background: rgba(99, 102, 241, 0.2);  color: #818cf8; border: 1px solid rgba(99, 102, 241, 0.6); }
.feed-badge-streamfree { background: rgba(16, 185, 129, 0.2);  color: #34d399; border: 1px solid rgba(16, 185, 129, 0.6); }
.feed-badge-timstreams { background: rgba(249, 115, 22, 0.2);  color: #fb923c; border: 1px solid rgba(249, 115, 22, 0.6); }
.feed-badge-zlive      { background: rgba(168, 85, 247, 0.2);  color: #d8b4fe; border: 1px solid rgba(168, 85, 247, 0.6); }
.feed-badge-hesgoal   { background: rgba(245, 158, 11, 0.2);  color: #fbbf24; border: 1px solid rgba(245, 158, 11, 0.6); }
.feed-badge-cdnlive   { background: rgba(20, 184, 166, 0.2);  color: #2dd4bf; border: 1px solid rgba(20, 184, 166, 0.6); }
.feed-badge-capitan   { background: rgba(239, 68, 68, 0.2);   color: #f87171; border: 1px solid rgba(239, 68, 68, 0.6); }

.feed-quality-badge {
  font-size: 9.5px;
  font-weight: 700;
  padding: 2px 6px;
  border-radius: 4px;
}
.feed-quality-badge.native {
  background: rgba(0, 230, 118, 0.15);
  color: #00e676;
  border: 1px solid rgba(0, 230, 118, 0.45);
}
.feed-quality-badge.stream {
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.7);
  border: 1px solid rgba(255, 255, 255, 0.12);
}

.feed-lang-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 10px;
  font-weight: 800;
  padding: 2px 7px;
  border-radius: 5px;
  letter-spacing: 0.3px;
}
.feed-lang-badge.ita {
  background: rgba(16, 185, 129, 0.22);
  color: #34d399;
  border: 1px solid rgba(16, 185, 129, 0.75);
  box-shadow: 0 0 10px rgba(16, 185, 129, 0.25);
}
.feed-lang-badge.other {
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.85);
  border: 1px solid rgba(255, 255, 255, 0.15);
}

.feed-channel-title {
  font-size: 14.5px;
  font-weight: 700;
  color: #fff;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  margin-top: 2px;
}
.feed-item-sub-row {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 11.5px;
  color: rgba(255, 255, 255, 0.6);
}
.feed-flag-icon {
  font-size: 13px;
  line-height: 1;
}
.feed-action-play {
  flex-shrink: 0;
}
.feed-play-bubble {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: color-mix(in srgb, var(--dd-red, #e50914) 15%, transparent);
  color: var(--dd-red, #e50914);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  transition: all 0.2s ease;
}
.streamed-feed-item-modern:hover .feed-play-bubble {
  background: var(--dd-red, #e50914);
  color: #fff;
  transform: scale(1.08);
}

/* Lista server DaddyLive (modal "Cambia Server" nel player live) — stessa
   card dei feed sportivi sopra, testo più semplice (nome + descrizione). */
.daddy-server-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 13px 16px;
  background: rgba(255, 255, 255, 0.03);
  border: 1.2px solid rgba(255, 255, 255, 0.08);
  border-radius: 14px;
  cursor: pointer;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
  text-align: left;
  width: 100%;
}
.daddy-server-item:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.24);
  transform: translateY(-1px);
}
.daddy-server-item:hover .feed-play-bubble {
  background: var(--dd-red, #e50914);
  color: #fff;
  transform: scale(1.08);
}
.daddy-server-item-text {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.daddy-server-item-name {
  font-size: 14px;
  font-weight: 700;
  color: #fff;
}
.daddy-server-item-desc {
  font-size: 12px;
  color: var(--text-muted);
}

/* ═══════════════════ IL TUO ANNO (Wrapped) — solo admin per ora ═══════════════════
   Vedi DebriddApi.fetchWrappedStats (api.js) e openWrappedOverlay (app.js). */
.wrp-banner{
  margin-top:6px; border-radius:16px; padding:16px 18px; cursor:pointer; position:relative; overflow:hidden;
  -webkit-tap-highlight-color:transparent;
  background:linear-gradient(120deg,#2a0a0d,#120a24 65%,#0a0a0c);
  border:1px solid color-mix(in srgb, var(--dd-red, #e50914) 40%, transparent);
  animation:wrpBannerPulse 2.6s ease-in-out infinite;
}
@keyframes wrpBannerPulse{ 0%,100%{ box-shadow:0 0 0 0 color-mix(in srgb, var(--dd-red, #e50914) 22%, transparent); } 50%{ box-shadow:0 0 0 8px color-mix(in srgb, var(--dd-red, #e50914) 0%, transparent); } }
.wrp-banner .tag{ font-family:'JetBrains Mono',ui-monospace,monospace; font-size:9.5px; letter-spacing:.1em; text-transform:uppercase; color:#ff9ba0; margin-bottom:6px; display:block; }
.wrp-banner .ttl{ font-size:16px; font-weight:800; color:#fff; margin-bottom:4px; }
.wrp-banner .sub{ font-size:12px; color:rgba(255,255,255,.6); }
.wrp-banner .go{ position:absolute; right:16px; top:50%; transform:translateY(-50%); font-size:20px; color:#fff; opacity:.7; }

.wrp-overlay{
  position:fixed; inset:0; z-index:900; background:#08080a; overflow:hidden;
  height:var(--app-vh, 100vh); -webkit-tap-highlight-color:transparent;
}
.wrp-overlay *{ -webkit-tap-highlight-color:transparent; }
.wrp-statusbar{ position:absolute; top:0; left:0; right:0; z-index:30; display:flex; align-items:center; gap:10px; padding:calc(14px + env(safe-area-inset-top,0px)) 14px 0; }
.wrp-progress{ flex:1; display:flex; gap:4px; }
.wrp-progress .seg{ flex:1; height:2.5px; border-radius:2px; background:rgba(255,255,255,.22); overflow:hidden; }
.wrp-progress .seg i{ display:block; height:100%; width:0%; background:#fff; }
.wrp-progress .seg.filled i{ width:100%; }
.wrp-progress .seg.playing i{ animation:wrpSegFill linear forwards; animation-duration:var(--dur,4.5s); }
@keyframes wrpSegFill{ from{ width:0%; } to{ width:100%; } }
.wrp-navbtn{
  width:34px; height:34px; border-radius:50%; border:1px solid rgba(255,255,255,.18);
  background:rgba(10,10,12,.55); color:#fff; display:flex; align-items:center; justify-content:center;
  font-size:16px; cursor:pointer; flex:none; -webkit-tap-highlight-color:transparent;
}
/* Frecce sempre visibili (anche su mobile): le zone di tocco invisibili da
   sole non erano abbastanza scopribili/affidabili — vedi anche il fix del
   flash bianco sotto. */
.wrp-tapzone{
  position:absolute; top:0; bottom:0; width:34%; z-index:15; cursor:pointer;
  -webkit-tap-highlight-color:transparent; outline:none;
}
.wrp-tap-left{ left:0; } .wrp-tap-right{ left:34%; right:0; width:66%; }

.wrp-slide{
  position:absolute; inset:0; display:none; flex-direction:column; justify-content:center; align-items:center;
  text-align:center; padding:calc(64px + env(safe-area-inset-top,0px)) 28px calc(24px + env(safe-area-inset-bottom,0px));
  opacity:0; color:#fff;
}
.wrp-slide.active{ display:flex; opacity:1; }
.wrp-in > *{ animation:wrpRise .55s cubic-bezier(.16,1,.3,1) both; }
.wrp-slide.active .wrp-in > *:nth-child(1){ animation-delay:.05s; }
.wrp-slide.active .wrp-in > *:nth-child(2){ animation-delay:.15s; }
.wrp-slide.active .wrp-in > *:nth-child(3){ animation-delay:.25s; }
.wrp-slide.active .wrp-in > *:nth-child(4){ animation-delay:.35s; }
@keyframes wrpRise{ from{ opacity:0; transform:translateY(18px); } to{ opacity:1; transform:translateY(0); } }
@media (prefers-reduced-motion: reduce){ .wrp-in > *{ animation:none; opacity:1; transform:none; } }

.wrp-t-loading{ background:#08080a; }
.wrp-t-cover{ background:radial-gradient(ellipse 120% 70% at 50% 0%,color-mix(in srgb, var(--dd-red, #e50914) 35%, transparent),transparent 60%),linear-gradient(180deg,#1a0507 0%,#0a0a0c 60%); }
.wrp-t-hours{ background:linear-gradient(165deg,#241a4a 0%,#120c28 55%,#0a0a0c 100%); }
.wrp-t-titles{ background:linear-gradient(165deg,#1a2e4a 0%,#0e1826 55%,#0a0a0c 100%); }
.wrp-t-top{ background:linear-gradient(165deg,#3a0d10 0%,#1c0508 50%,#0a0a0c 100%); }
.wrp-t-streak{ background:linear-gradient(165deg,#4a2408 0%,#241206 55%,#0a0a0c 100%); }
.wrp-t-genre{ background:linear-gradient(165deg,#2a1a4a 0%,#160c28 55%,#0a0a0c 100%); }
.wrp-t-month{ background:linear-gradient(165deg,#0d3a2e 0%,#061c16 55%,#0a0a0c 100%); }
.wrp-t-day{ background:linear-gradient(165deg,#1a2e2a 0%,#0c1816 55%,#0a0a0c 100%); }
.wrp-t-wish{ background:linear-gradient(165deg,#3a2408 0%,#1c1204 55%,#0a0a0c 100%); }
.wrp-t-recap{ background:linear-gradient(180deg,#150508 0%,#0a0a0c 100%); }
.wrp-t-outro{ background:radial-gradient(ellipse 100% 60% at 50% 100%,color-mix(in srgb, var(--dd-red, #e50914) 28%, transparent),transparent 60%),#0a0a0c; }

.wrp-load-word{ position:relative; display:inline-block; font-weight:800; font-size:36px; }
.wrp-load-word .a{ color:var(--accent); }
.wrp-load-shine{
  position:absolute; inset:0; color:transparent;
  background-image:linear-gradient(100deg,rgba(255,255,255,0) 42%,rgba(255,255,255,.9) 50%,rgba(255,255,255,0) 58%);
  background-size:250% 100%; -webkit-background-clip:text; background-clip:text;
  animation:wrpShine 1.8s linear infinite;
}
@keyframes wrpShine{ from{ background-position:150% 0; } to{ background-position:-50% 0; } }
.wrp-load-sub{ font-family:'JetBrains Mono',ui-monospace,monospace; font-size:12px; color:rgba(255,255,255,.5); margin-top:16px; }

.wrp-eyebrow{ font-family:'JetBrains Mono',ui-monospace,monospace; font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.55); }
.wrp-cover-title{ font-size:clamp(38px,9vw,54px); font-weight:900; line-height:1.02; letter-spacing:-.02em; margin-top:10px; }
.wrp-cover-title .a{ color:#fff; } .wrp-cover-title .a2{ color:var(--accent); }
.wrp-big{ font-size:clamp(48px,12vw,72px); font-weight:900; line-height:1.1; letter-spacing:-.02em; font-variant-numeric:tabular-nums; margin-top:12px; }
.wrp-unit{ font-size:22px; font-weight:700; opacity:.75; margin-left:6px; white-space:nowrap; }
.wrp-sub{ font-size:15px; color:rgba(255,255,255,.72); line-height:1.5; max-width:32ch; margin:16px auto 0; }
.wrp-sub b{ color:#fff; }
.wrp-tap-hint{ margin-top:34px; display:flex; align-items:center; justify-content:center; gap:8px; font-family:'JetBrains Mono',ui-monospace,monospace; font-size:12px; color:rgba(255,255,255,.55); }
.wrp-tap-hint svg{ animation:wrpNudge 1.4s ease-in-out infinite; }
@keyframes wrpNudge{ 0%,100%{ transform:translateX(0); } 50%{ transform:translateX(5px); } }

.wrp-donut-wrap{ display:flex; align-items:center; gap:22px; margin-top:20px; }
.wrp-donut{
  width:110px; height:110px; flex:none; position:relative;
  display:flex; align-items:center; justify-content:center;
  filter:drop-shadow(0 8px 18px rgba(0,0,0,.45));
}
.wrp-donut svg{ width:100%; height:100%; display:block; }
.wrp-donut svg circle{ transition:stroke-dasharray .6s cubic-bezier(.16,1,.3,1), stroke-dashoffset .6s cubic-bezier(.16,1,.3,1); }
.wrp-donut-legend{ display:flex; flex-direction:column; gap:9px; font-size:13px; text-align:left; }
.wrp-donut-legend .row{ display:flex; align-items:center; gap:8px; margin-bottom:0; }
.wrp-donut-legend .sw{ width:10px; height:10px; border-radius:3px; flex:none; box-shadow:0 0 0 1px rgba(255,255,255,.15); }
.wrp-donut-legend b{ color:#fff; font-family:'JetBrains Mono',ui-monospace,monospace; }

.wrp-poster-row{ display:flex; gap:18px; align-items:center; margin-top:16px; }
.wrp-poster{
  width:90px; height:128px; border-radius:12px; flex:none; overflow:hidden;
  background:linear-gradient(150deg,#5a1418,#20080a); box-shadow:0 16px 30px -10px rgba(0,0,0,.7);
  display:flex; align-items:center; justify-content:center; font-size:28px;
}
.wrp-poster img{ width:100%; height:100%; object-fit:cover; display:block; }
.wrp-show-name{ font-size:19px; font-weight:800; color:#fff; line-height:1.2; text-align:left; }
.wrp-show-sub{ font-size:12.5px; color:rgba(255,255,255,.6); margin-top:5px; text-align:left; }

.wrp-flame-row{ display:flex; align-items:center; gap:14px; justify-content:center; margin-top:14px; }
.wrp-streak-label{ font-size:24px; font-weight:800; color:#fff; margin-top:6px; letter-spacing:-.01em; line-height:1.2; text-align:center; }
.wrp-flame{ font-size:36px; animation:wrpFlick 1.6s ease-in-out infinite; }
@keyframes wrpFlick{ 0%,100%{ transform:scale(1) rotate(-2deg); } 50%{ transform:scale(1.08) rotate(2deg); } }

.wrp-persona{
  display:inline-flex; align-items:center; gap:9px; margin-top:18px; padding:9px 16px;
  border-radius:16px; background:rgba(139,92,246,.16); border:1px solid rgba(139,92,246,.35);
}
.wrp-persona .ic{ font-size:19px; }
.wrp-persona .tx{ font-size:13.5px; font-weight:700; color:#d9c9ff; }

.wrp-ring-wrap{ display:flex; align-items:center; gap:20px; margin-top:18px; }
.wrp-ring{
  width:100px; height:100px; flex:none; position:relative;
  display:flex; align-items:center; justify-content:center;
  filter:drop-shadow(0 8px 18px rgba(0,0,0,.45));
}
.wrp-ring svg{ width:100%; height:100%; display:block; }
.wrp-ring svg circle{ transition:stroke-dasharray .6s cubic-bezier(.16,1,.3,1), stroke-dashoffset .6s cubic-bezier(.16,1,.3,1); }
.wrp-ring-pct{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  font-family:'JetBrains Mono',ui-monospace,monospace; font-size:15px; font-weight:800; color:#fff;
}

.wrp-recap-card{
  width:100%; max-width:340px; position:relative; overflow:hidden;
  background:linear-gradient(165deg,#1a0508,#0a0a0c); border:1px solid color-mix(in srgb, var(--dd-red, #e50914) 35%, transparent);
  border-radius:20px; padding:20px; margin-top:14px; text-align:left;
  box-shadow:0 24px 50px -20px rgba(0,0,0,.75);
}
.wrp-recap-bg{
  position:absolute; inset:-20%; background-size:cover; background-position:center;
  filter:blur(26px) saturate(1.3); opacity:.4; transform:scale(1.1);
  -webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.85),transparent 75%);
  mask-image:linear-gradient(180deg,rgba(0,0,0,.85),transparent 75%);
}
.wrp-recap-card > *:not(.wrp-recap-bg){ position:relative; z-index:1; }
.wrp-recap-brand{ display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; }
.wrp-recap-brand .wm{ font-weight:800; font-size:14px; }
.wrp-recap-brand .wm .a{ color:var(--accent); }
.wrp-recap-brand .yr{ font-family:'JetBrains Mono',ui-monospace,monospace; font-size:10.5px; color:rgba(255,255,255,.5); }

.wrp-recap-hero{
  display:flex; gap:12px; align-items:center; margin-bottom:18px; padding-bottom:18px;
  border-bottom:1px solid rgba(255,255,255,.1);
}
.wrp-recap-hero-poster{
  width:48px; height:68px; border-radius:8px; flex:none; overflow:hidden;
  background:linear-gradient(150deg,#5a1418,#20080a); box-shadow:0 10px 20px -6px rgba(0,0,0,.7);
  display:flex; align-items:center; justify-content:center; font-size:18px;
}
.wrp-recap-hero-poster img{ width:100%; height:100%; object-fit:cover; display:block; }
.wrp-recap-hero-label{ font-family:'JetBrains Mono',ui-monospace,monospace; font-size:9px; color:rgba(255,255,255,.5); text-transform:uppercase; letter-spacing:.05em; }
.wrp-recap-hero-title{ font-size:16px; font-weight:800; color:#fff; margin-top:4px; line-height:1.25; }

.wrp-recap-grid{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.wrp-recap-grid .cell{ background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.06); border-radius:12px; padding:12px; }
.wrp-recap-grid .cell .k{ font-family:'JetBrains Mono',ui-monospace,monospace; font-size:9px; color:rgba(255,255,255,.5); text-transform:uppercase; letter-spacing:.05em; }
.wrp-recap-grid .cell .v{ font-size:16px; font-weight:800; color:#fff; margin-top:4px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

.wrp-outro-word{ font-size:clamp(22px,5vw,30px); font-weight:800; }
.wrp-outro-word .a{ color:#fff; } .wrp-outro-word .a2{ color:var(--accent); }
.wrp-close-btn{
  margin-top:30px; background:transparent; border:1px solid rgba(255,255,255,.25); color:#fff;
  padding:11px 26px; border-radius:22px; font-size:13px; font-weight:600; cursor:pointer;
  /* [FIX] Le zone di tocco per avanti/indietro coprono tutta l'altezza dello
     schermo con z-index sopra le slide (serve per navigare toccando ovunque),
     quindi senza questo il bottone restava sotto e non riceveva mai il click. */
  position:relative; z-index:20; -webkit-tap-highlight-color:transparent;
}
.wrp-empty{ font-size:14px; color:rgba(255,255,255,.7); max-width:34ch; }

.wrp-share-btn{
  margin-top:18px; display:inline-flex; align-items:center; gap:8px;
  background:var(--accent); border:none; color:#fff;
  padding:12px 28px; border-radius:22px; font-size:14px; font-weight:700; cursor:pointer;
  font-family:inherit; box-shadow:0 10px 24px -8px color-mix(in srgb, var(--dd-red, #e50914) 55%, transparent);
  /* stessa ragione dello z-index sul close button: le tapzone di navigazione
     coprono tutto lo schermo sopra le slide. */
  position:relative; z-index:20; -webkit-tap-highlight-color:transparent;
}
.wrp-share-btn:active{ filter:brightness(1.12); }
.wrp-share-btn svg{ flex:none; }

/* Live TV Stability Diagnostic Pill */
.po-stability-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 8px;
  background: #161a28;
  border: 1px solid rgba(0, 206, 201, 0.4);
  border-radius: 4px;
  font-size: 11px;
  font-weight: 700;
  color: #00cec9;
  letter-spacing: 0.3px;
  user-select: none;
  vertical-align: middle;
}
.po-stability-pill .dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: currentColor;
  flex-shrink: 0;
}

/* ═══════════════════════ LIVE TV HERO & BANNERS ═══════════════════════ */
.live-hero-card {
  position: relative;
  width: 100%;
  border-radius: 18px;
  overflow: hidden;
  margin-bottom: 22px;
  background: linear-gradient(135deg, #161824 0%, #0d0e15 100%);
  border: 1px solid rgba(255, 255, 255, 0.12);
  box-shadow: 0 12px 36px rgba(0, 0, 0, 0.55);
  cursor: pointer;
  transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}
.live-hero-card:hover {
  transform: translateY(-2px);
  border-color: color-mix(in srgb, var(--dd-red, #e50914) 50%, transparent);
  box-shadow: 0 16px 44px color-mix(in srgb, var(--dd-red, #e50914) 25%, transparent);
}
.live-hero-glow {
  position: absolute;
  inset: -60px;
  background: radial-gradient(circle at 80% 20%, color-mix(in srgb, var(--dd-red, #e50914) 28%, transparent), transparent 65%),
              radial-gradient(circle at 10% 90%, rgba(0, 206, 201, 0.15), transparent 60%);
  pointer-events: none;
  filter: blur(40px);
}
.live-hero-glow.fallback {
  background: radial-gradient(circle at 75% 30%, rgba(30, 144, 255, 0.25), transparent 65%),
              radial-gradient(circle at 15% 85%, color-mix(in srgb, var(--dd-red, #e50914) 18%, transparent), transparent 60%);
}
.live-hero-content {
  position: relative;
  z-index: 2;
  padding: 28px 28px 24px 28px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
@media (max-width: 600px) {
  .live-hero-content {
    padding: 20px 16px 18px 16px;
    gap: 10px;
  }
}
.live-hero-top {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.live-hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: 6px;
  font-size: 11.5px;
  font-weight: 800;
  letter-spacing: 0.6px;
  text-transform: uppercase;
}
.live-hero-badge.live {
  background: var(--dd-red, #e50914);
  color: #ffffff;
  box-shadow: 0 0 14px color-mix(in srgb, var(--dd-red, #e50914) 60%, transparent);
}
.live-hero-badge.sched {
  background: rgba(255, 255, 255, 0.18);
  color: #ffffff;
}
.live-hero-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #ffffff;
  animation: pulseLiveDot 1.4s infinite ease-in-out;
}
@keyframes pulseLiveDot {
  0% { transform: scale(0.9); opacity: 0.8; }
  50% { transform: scale(1.3); opacity: 1; }
  100% { transform: scale(0.9); opacity: 0.8; }
}
.live-hero-cat {
  font-size: 12px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.7);
  background: rgba(255, 255, 255, 0.08);
  padding: 4px 10px;
  border-radius: 6px;
  border: 1px solid rgba(255, 255, 255, 0.1);
}
.live-hero-title {
  margin: 0;
  font-size: 26px;
  font-weight: 900;
  color: #ffffff;
  line-height: 1.25;
  letter-spacing: -0.3px;
}
@media (max-width: 600px) {
  .live-hero-title {
    font-size: 20px;
  }
}
.live-hero-vs {
  font-size: 16px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.45);
  margin: 0 4px;
}
.live-hero-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.75);
  flex-wrap: wrap;
}
.live-hero-langs {
  color: #4ade80;
  font-weight: 600;
}
.live-hero-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 6px;
  flex-wrap: wrap;
}
.live-hero-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 22px;
  border-radius: 12px;
  font-size: 13.5px;
  font-weight: 800;
  cursor: pointer;
  border: none;
  font-family: inherit;
  transition: all 0.2s ease;
}
.live-hero-btn.primary {
  background: var(--dd-red, #e50914);
  color: #ffffff;
  box-shadow: 0 6px 18px color-mix(in srgb, var(--dd-red, #e50914) 45%, transparent);
}
.live-hero-btn.primary:hover {
  background: #ff2330;
  transform: scale(1.03);
  box-shadow: 0 8px 24px color-mix(in srgb, var(--dd-red, #e50914) 60%, transparent);
}
.live-hero-btn.secondary {
  background: rgba(255, 255, 255, 0.12);
  color: #ffffff;
  border: 1px solid rgba(255, 255, 255, 0.2);
}
.live-hero-btn.secondary:hover {
  background: rgba(255, 255, 255, 0.2);
  transform: scale(1.03);
}
.live-hero-play-icon {
  font-size: 11px;
}
.live-hero-counter {
  font-size: 11px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.5);
  margin-left: auto;
  letter-spacing: 0.5px;
}

/* Live Hero Carousel */
.live-hero-carousel-wrap {
  position: relative;
  margin-bottom: 20px;
  border-radius: 18px;
}
.live-hero-viewport {
  overflow: hidden;
  border-radius: 18px;
  width: 100%;
}
.live-hero-track {
  display: flex;
  flex-direction: row;
  transition: transform 0.38s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: transform;
  width: 100%;
}
.live-hero-slides {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  gap: 0;
  border-radius: 18px;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.live-hero-slides::-webkit-scrollbar {
  display: none;
}
.live-hero-slide {
  flex: 0 0 100%;
  min-width: 100%;
  width: 100%;
  scroll-snap-align: start;
  box-sizing: border-box;
}
.live-hero-slide .live-hero-card {
  margin-bottom: 0;
}
.live-hero-carousel-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(15, 15, 20, 0.75);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s ease;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.5);
}
.live-hero-carousel-btn:hover {
  background: color-mix(in srgb, var(--dd-red, #e50914) 90%, transparent);
  border-color: rgba(255, 255, 255, 0.4);
  transform: translateY(-50%) scale(1.08);
}
.live-hero-carousel-btn.prev {
  left: 12px;
}
.live-hero-carousel-btn.next {
  right: 12px;
}
/* Mobile / Touch: hide arrows completely, swipe with finger is used */
@media (max-width: 900px), (pointer: coarse), (hover: none) {
  .live-hero-carousel-btn {
    display: none !important;
  }
}
.live-hero-dots-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  margin-top: 10px;
}
.live-hero-dot-ind {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.35);
  border: 1px solid rgba(255, 255, 255, 0.15);
  cursor: pointer;
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}
.live-hero-dot-ind.active {
  width: 26px;
  border-radius: 6px;
  background: var(--dd-red, #e50914) !important;
  border-color: rgba(255, 255, 255, 0.4);
  box-shadow: 0 0 12px color-mix(in srgb, var(--dd-red, #e50914) 85%, transparent);
}

/* Multi-stream Channel Badges */
.channel-multi-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  background: color-mix(in srgb, var(--dd-red, #e50914) 22%, transparent);
  border: 1px solid color-mix(in srgb, var(--dd-red, #e50914) 45%, transparent);
  color: #ff858d;
  font-size: 10px;
  font-weight: 800;
  padding: 2px 7px;
  border-radius: 6px;
  letter-spacing: 0.4px;
  text-transform: uppercase;
}
.channel-icons-row {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
}

/* Live EPG Now & Next with smooth Marquee scrolling */
.live-epg-now {
  margin-top: 4px;
  display: flex;
  flex-direction: column;
  gap: 3px;
  max-width: 100%;
  overflow: hidden;
}
.live-epg-title-wrap {
  width: 100%;
  max-width: 260px;
  overflow: hidden;
  position: relative;
  white-space: nowrap;
}
.live-epg-title {
  font-size: 11px;
  font-weight: 600;
  color: #e2e8f0;
  white-space: nowrap;
  display: inline-block;
  vertical-align: middle;
  transform: translateX(0);
  will-change: transform;
}
.live-card-epg {
  width: 100%;
  margin-top: auto;
  padding-top: 6px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  display: flex;
  flex-direction: column;
  gap: 4px;
  overflow: hidden;
  height: 38px;
  box-sizing: border-box;
  flex-shrink: 0;
}
.live-card-epg.no-epg {
  opacity: 0.45;
}
.live-card-epg-title-wrap {
  width: 100%;
  overflow: hidden;
  position: relative;
  white-space: nowrap;
}
.live-card-epg-title {
  font-size: 11px;
  font-weight: 600;
  color: #cbd5e1;
  white-space: nowrap;
  display: inline-block;
  vertical-align: middle;
  transform: translateX(0);
  will-change: transform;
}
.live-card-epg-title.empty {
  color: rgba(255, 255, 255, 0.45);
  font-style: italic;
  font-weight: 500;
  font-size: 10px;
}

/* Non-scrolling default: ellipsis truncation */
.live-epg-title-wrap:not(.is-scrolling) .live-epg-title,
.live-card-epg-title-wrap:not(.is-scrolling) .live-card-epg-title {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Active scrolling: unclip so transform translates full natural text */
.live-epg-title-wrap.is-scrolling .live-epg-title,
.live-card-epg-title-wrap.is-scrolling .live-card-epg-title {
  max-width: none !important;
  overflow: visible !important;
  text-overflow: clip !important;
}

.live-epg-bar-wrap {
  width: 100%;
  height: 3px;
  background: rgba(255, 255, 255, 0.12);
  border-radius: 2px;
  overflow: hidden;
}
.live-epg-bar-wrap.empty {
  background: rgba(255, 255, 255, 0.05);
}
.live-epg-bar {
  height: 100%;
  background: linear-gradient(90deg, var(--dd-red, #e50914), #ff5e62);
  border-radius: 2px;
}

/* Channel Multi-Stream Modal */
.stream-picker-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.82);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  animation: fadeInModal 0.2s ease-out;
}
@keyframes fadeInModal {
  from { opacity: 0; }
  to { opacity: 1; }
}
.stream-picker-modal {
  background: #15161E;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 20px;
  width: 100%;
  max-width: 530px;
  max-height: calc(100vh - 40px);
  display: flex;
  flex-direction: column;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.8), 0 0 0 1px rgba(255, 255, 255, 0.05);
  overflow: hidden;
  animation: slideUpModal 0.22s cubic-bezier(0.16, 1, 0.3, 1);
}

@media (max-width: 768px) {
  .stream-picker-overlay, .streamed-feed-modal-overlay {
    align-items: flex-end !important;
    padding: 0 !important;
    padding-top: env(safe-area-inset-top, 20px) !important;
  }
  .stream-picker-modal, .streamed-feed-modal {
    max-width: 100% !important;
    max-height: calc(90vh - env(safe-area-inset-top, 0px)) !important;
    border-radius: 22px 22px 0 0 !important;
    margin: 0 !important;
    padding-bottom: env(safe-area-inset-bottom, 16px);
  }
  .stream-picker-header, .streamed-feed-modal-header {
    position: sticky;
    top: 0;
    z-index: 10;
    background: inherit;
  }
}
@keyframes slideUpModal {
  from { transform: translateY(20px) scale(0.97); opacity: 0; }
  to { transform: translateY(0) scale(1); opacity: 1; }
}
.stream-picker-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 24px 16px 24px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.stream-picker-title-box {
  display: flex;
  align-items: center;
  gap: 12px;
}
.stream-picker-logo {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  object-fit: contain;
  background: rgba(255, 255, 255, 0.06);
  padding: 4px;
}
.stream-picker-name {
  font-size: 17px;
  font-weight: 800;
  color: #ffffff;
  margin: 0;
  line-height: 1.2;
}
.stream-picker-sub {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.55);
  margin-top: 2px;
}
.stream-picker-close {
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.7);
  width: 34px;
  height: 34px;
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
  transition: all 0.15s ease;
}
.stream-picker-close:hover {
  background: rgba(255, 255, 255, 0.18);
  color: #ffffff;
  transform: scale(1.08);
}
.stream-picker-list {
  padding: 16px 20px 22px 20px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  max-height: 60vh;
  overflow-y: auto;
}
.stream-option-card {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 16px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 14px;
  cursor: pointer;
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
}
.stream-option-card:hover {
  background: rgba(255, 255, 255, 0.09);
  border-color: rgba(255, 255, 255, 0.25);
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
}
.stream-option-icon {
  width: 42px;
  height: 42px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  flex-shrink: 0;
}
.stream-option-icon.timstreams {
  background: rgba(16, 185, 129, 0.18);
  border: 1px solid rgba(16, 185, 129, 0.35);
}
.stream-option-icon.zlive {
  background: rgba(168, 85, 247, 0.18);
  border: 1px solid rgba(168, 85, 247, 0.35);
}
.stream-option-icon.daddylive {
  background: rgba(245, 158, 11, 0.18);
  border: 1px solid rgba(245, 158, 11, 0.35);
}
.stream-option-icon.ntv {
  background: rgba(139, 92, 246, 0.18);
  border: 1px solid rgba(139, 92, 246, 0.35);
}
.stream-option-details {
  flex: 1;
  min-width: 0;
}
.stream-option-title-row {
  display: flex;
  align-items: center;
  gap: 6px;
  row-gap: 4px;
  flex-wrap: wrap;
}
.stream-option-name {
  font-size: 14.5px;
  font-weight: 700;
  color: #ffffff;
  white-space: nowrap;
  flex-shrink: 0;
}
.stream-badge {
  font-size: 10.5px;
  font-weight: 800;
  padding: 2px 7px;
  border-radius: 5px;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  white-space: nowrap;
  flex-shrink: 0;
}
.stream-badge.timstreams {
  background: rgba(16, 185, 129, 0.2);
  color: #34d399;
}
.stream-badge.zlive {
  background: rgba(168, 85, 247, 0.2);
  color: #d8b4fe;
}
.stream-badge.daddylive {
  background: rgba(245, 158, 11, 0.2);
  color: #fbbf24;
}
.stream-badge.ntv {
  background: rgba(139, 92, 246, 0.2);
  color: #a78bfa;
}
.stream-option-desc {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.5);
  margin-top: 2px;
}
.stream-play-arrow {
  color: #ffffff;
  font-size: 13px;
  opacity: 0.6;
  transition: all 0.15s ease;
}
.stream-option-card:hover .stream-play-arrow {
  opacity: 1;
  transform: translateX(3px);
  color: var(--dd-red, #e50914);
}

/* ==========================================================================
   BOOKS & AUDIO HUB
   ========================================================================== */
.books-hub-container {
  padding: 24px 32px 100px;
  max-width: 1400px;
  margin: 0 auto;
  animation: fadeIn 0.25s ease-out;
}
@media (max-width: 768px) {
  .books-hub-container {
    padding: 16px 14px 90px;
  }
}

.books-header-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 20px;
}
.books-badge-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 14px;
  border-radius: 999px;
  background: rgba(245, 158, 11, 0.12);
  border: 1px solid rgba(245, 158, 11, 0.28);
  color: #fbbf24;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.5px;
}
.books-badge-pill .hub-pill-ic {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.books-badge-pill .hub-pill-ic svg {
  width: 14px;
  height: 14px;
}
.manga-hub .books-badge-pill {
  background: rgba(255, 46, 147, 0.12);
  border-color: rgba(255, 46, 147, 0.32);
  color: #ff60ad;
}
.books-tabs-row {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 999px;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  overflow-x: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
  max-width: 100%;
}
.books-tabs-row::-webkit-scrollbar {
  display: none;
}
.books-tab {
  flex-shrink: 0;
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  gap: 7px;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 999px;
  height: 34px;
  padding: 0 13px;
  min-width: auto;
  font-family: inherit;
  color: rgba(255, 255, 255, 0.65);
  cursor: pointer;
  transition: all .18s cubic-bezier(0.16, 1, 0.3, 1);
  appearance: none;
}
.books-tab:hover {
  background: rgba(255, 255, 255, 0.06);
  color: #ffffff;
}
.books-tab-badge {
  width: 16px;
  height: 16px;
  border-radius: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent !important;
  color: currentColor;
  flex-shrink: 0;
  transition: all .15s ease;
  box-shadow: none !important;
  padding: 0;
}
.books-tab-badge svg {
  width: 15px;
  height: 15px;
  display: block;
}
.books-tab-label {
  font-size: 12px;
  font-weight: 600;
  color: inherit;
  letter-spacing: 0.1px;
  white-space: nowrap;
}
.books-tab.active {
  background: rgba(245, 158, 11, 0.16);
  border-color: rgba(245, 158, 11, 0.35);
  color: #fbbf24;
  box-shadow: 0 2px 10px rgba(245, 158, 11, 0.15);
}
.books-tab.active .books-tab-label {
  color: #fbbf24;
  font-weight: 700;
}
.manga-hub .books-tabs-row .books-tab.active {
  background: rgba(255, 46, 147, 0.18);
  border-color: rgba(255, 46, 147, 0.45);
  color: #ff60ad;
  box-shadow: 0 2px 12px rgba(255, 46, 147, 0.2);
}
.manga-hub .books-tabs-row .books-tab.active .books-tab-label {
  color: #ff60ad;
}
html.newlook .books-tab.active {
  background: color-mix(in srgb, var(--nl-tone, #ffd9dc) 22%, transparent) !important;
  border-color: color-mix(in srgb, var(--nl-tone, #ffd9dc) 45%, transparent) !important;
  color: var(--nl-tone, #ffd9dc) !important;
  box-shadow: 0 2px 14px color-mix(in srgb, var(--nl-tone, #ffd9dc) 25%, transparent) !important;
}
html.newlook .books-tab.active .books-tab-label {
  color: var(--nl-tone, #ffd9dc) !important;
}

/* ── Billboard Hero ── */
.books-billboard {
  position: relative;
  background: linear-gradient(135deg, rgba(25, 22, 18, 0.9) 0%, rgba(15, 18, 24, 0.95) 100%);
  border: 1px solid rgba(245, 158, 11, 0.2);
  border-radius: 20px;
  padding: 32px;
  margin-bottom: 36px;
  overflow: hidden;
  box-shadow: 0 12px 36px rgba(0, 0, 0, 0.4);
}
.books-billboard-glow {
  position: absolute;
  top: -80px;
  left: 10%;
  width: 380px;
  height: 380px;
  background: radial-gradient(circle, rgba(245, 158, 11, 0.15) 0%, transparent 70%);
  pointer-events: none;
}
.books-billboard-content {
  position: relative;
  display: flex;
  align-items: center;
  gap: 36px;
  z-index: 1;
}
@media (max-width: 860px) {
  .books-billboard-content {
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
  }
}
.books-billboard-cover-wrap {
  position: relative;
  flex-shrink: 0;
  width: 170px;
  aspect-ratio: 2/3;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 16px 32px rgba(0, 0, 0, 0.6), 0 0 0 1px rgba(255, 255, 255, 0.1);
}
.books-billboard-cover {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.books-billboard-pill {
  position: absolute;
  top: 8px;
  left: 8px;
  padding: 4px 8px;
  border-radius: 6px;
  background: rgba(0, 0, 0, 0.75);
  backdrop-filter: blur(8px);
  color: #fbbf24;
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: 0.5px;
}
.books-billboard-info {
  flex: 1;
}
.books-billboard-tag {
  font-size: 13px;
  font-weight: 700;
  color: #fbbf24;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  margin-bottom: 8px;
}
.books-billboard-title {
  font-size: 32px;
  font-weight: 800;
  color: #ffffff;
  margin: 0 0 6px;
  line-height: 1.2;
}
@media (max-width: 600px) {
  .books-billboard-title {
    font-size: 24px;
  }
}
.books-billboard-author {
  font-size: 16px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.75);
  margin-bottom: 12px;
}
.books-billboard-desc {
  font-size: 14px;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.65);
  max-width: 720px;
  margin-bottom: 18px;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.books-billboard-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  font-size: 12.5px;
  color: rgba(255, 255, 255, 0.6);
  margin-bottom: 22px;
}
.books-billboard-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
}
.books-btn-hero {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 24px;
  border-radius: 12px;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.4px;
  cursor: pointer;
  transition: all 0.2s ease;
  border: none;
}
.books-btn-hero.primary {
  background: linear-gradient(135deg, #f59e0b, #d97706);
  color: #0b0e14;
  box-shadow: 0 4px 18px rgba(245, 158, 11, 0.35);
}
.books-btn-hero.primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 22px rgba(245, 158, 11, 0.5);
}
.books-btn-hero.secondary {
  background: rgba(255, 255, 255, 0.1);
  color: #ffffff;
  border: 1px solid rgba(255, 255, 255, 0.15);
}
.books-btn-hero.secondary:hover {
  background: rgba(255, 255, 255, 0.16);
  transform: translateY(-2px);
}
.b-fav-btn-hero {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 11px 18px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: var(--text-muted);
  font-size: 13.5px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.18s ease;
}
.b-fav-btn-hero.active {
  background: rgba(245, 158, 11, 0.15);
  border-color: rgba(245, 158, 11, 0.4);
  color: #fbbf24;
}

/* ── Griglie e Card Libri (2:3 Vertical) ── */
.books-section-box {
  margin-bottom: 40px;
}
.books-shelf-header {
  margin-bottom: 18px;
}
.shelf-title-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
/* .b-badge nasce come etichetta sopra la copertina (position:absolute): nei
   titoli di sezione il contatore "N volumi" finiva sopra il testo. */
.shelf-title-row .b-badge {
  position: static;
  flex-shrink: 0;
  white-space: nowrap;
}
.shelf-title-row > div {
  flex-wrap: wrap;
  min-width: 0;
}
.books-shelf-header h3 {
  font-size: 20px;
  font-weight: 700;
  color: #ffffff;
  margin: 0 0 4px;
}
.books-shelf-header p {
  font-size: 13.5px;
  color: var(--text-muted);
  margin: 0;
}
.books-shelf-link {
  background: none;
  border: none;
  color: #fbbf24;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  padding: 4px 8px;
  transition: opacity 0.15s ease;
}
.books-shelf-link:hover {
  opacity: 0.8;
  text-decoration: underline;
}

.books-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
  gap: 18px;
}
@media (max-width: 600px) {
  .books-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }
}

.book-card {
  display: flex;
  flex-direction: column;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.07);
  border-radius: 14px;
  overflow: hidden;
  transition: all 0.22s cubic-bezier(0.16, 1, 0.3, 1);
  max-width: 220px;
  width: 100%;
}
@media (max-width: 600px) {
  .book-card {
    max-width: 100%;
  }
}
.book-card:hover {
  transform: translateY(-4px);
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(245, 158, 11, 0.35);
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.4);
}
.manga-hub .book-card:hover {
  border-color: rgba(255, 46, 147, 0.45);
}
html.newlook .book-card:hover {
  border-color: color-mix(in srgb, var(--nl-tone) 45%, transparent);
}
.book-cover-wrap {
  position: relative;
  width: 100%;
  aspect-ratio: 2/3;
  overflow: hidden;
  background: #151820;
}
.book-cover {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}
.book-card:hover .book-cover {
  transform: scale(1.04);
}
.book-cover-overlay {
  position: absolute;
  inset: 0;
  background: rgba(11, 14, 20, 0.75);
  backdrop-filter: blur(4px);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease;
  padding: 16px;
}
.book-card:hover .book-cover-overlay,
.book-cover-overlay:focus-within {
  opacity: 1;
  pointer-events: auto;
}
.b-overlay-btn {
  width: 100%;
  padding: 8px 12px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  border: none;
  transition: all 0.15s ease;
}
.b-overlay-btn.play {
  background: linear-gradient(135deg, #f59e0b, #d97706);
  color: #0b0e14;
}
.b-overlay-btn.play:hover {
  filter: brightness(1.1);
  transform: scale(1.02);
}
.b-overlay-btn.read {
  background: rgba(255, 255, 255, 0.18);
  color: #ffffff;
  border: 1px solid rgba(255, 255, 255, 0.25);
}
.b-overlay-btn.read:hover {
  background: rgba(255, 255, 255, 0.28);
  transform: scale(1.02);
}

.b-badge {
  position: absolute;
  top: 8px;
  left: 8px;
  padding: 3px 7px;
  border-radius: 6px;
  font-size: 9.5px;
  font-weight: 800;
  letter-spacing: 0.4px;
  backdrop-filter: blur(6px);
  z-index: 2;
}
.b-badge.combo {
  background: rgba(245, 158, 11, 0.85);
  color: #0b0e14;
}
.b-badge.audio {
  background: rgba(139, 92, 246, 0.85);
  color: #ffffff;
}
.b-badge.ebook {
  background: rgba(16, 185, 129, 0.85);
  color: #0b0e14;
}

.b-fav-btn {
  position: absolute;
  top: 8px;
  right: 8px;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.65);
  backdrop-filter: blur(4px);
  border: 1px solid rgba(255, 255, 255, 0.15);
  color: rgba(255, 255, 255, 0.7);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  cursor: pointer;
  transition: all 0.15s ease;
  z-index: 2;
}
.b-fav-btn.active {
  color: #fbbf24;
  border-color: rgba(245, 158, 11, 0.5);
  background: rgba(245, 158, 11, 0.25);
}
.b-fav-btn:hover {
  transform: scale(1.1);
  color: #fbbf24;
}

.b-prog-pill {
  position: absolute;
  bottom: 6px;
  left: 6px;
  right: 6px;
  height: 18px;
  background: rgba(0, 0, 0, 0.75);
  backdrop-filter: blur(4px);
  border-radius: 999px;
  overflow: hidden;
  font-size: 10px;
  font-weight: 700;
  color: #fbbf24;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
}
.b-prog-bar {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  background: linear-gradient(90deg, #f59e0b, #fbbf24);
  opacity: 0.45;
  border-radius: 999px;
}

.book-info {
  padding: 12px 12px 14px;
  display: flex;
  flex-direction: column;
  flex: 1;
}
.book-genre {
  font-size: 11px;
  font-weight: 700;
  color: #fbbf24;
  text-transform: uppercase;
  margin-bottom: 4px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.book-title {
  font-size: 14.5px;
  font-weight: 700;
  color: #ffffff;
  margin: 0 0 3px;
  line-height: 1.3;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.book-author {
  font-size: 12.5px;
  color: var(--text-muted);
  margin-bottom: 8px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.book-meta {
  margin-top: auto;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  font-size: 11px;
  color: rgba(255, 255, 255, 0.45);
}

/* ── Ricerca Full-Text ── */
.books-search-bar-wrap {
  display: flex !important;
  flex-direction: row !important;
  gap: 12px !important;
  width: 100% !important;
  max-width: 860px !important;
  margin: 0 auto 28px !important;
  align-items: center !important;
}
.books-search-input {
  flex: 1 1 auto !important;
  width: auto !important;
  min-width: 0 !important;
  height: 50px !important;
  margin: 0 !important;
  padding: 0 20px !important;
  font-size: 15px !important;
  border-radius: 12px !important;
  background: rgba(255, 255, 255, 0.07) !important;
  border: 1px solid rgba(255, 255, 255, 0.16) !important;
  color: #ffffff !important;
  outline: none !important;
  box-sizing: border-box !important;
  transition: border-color 0.2s, background 0.2s, box-shadow 0.2s !important;
}
.books-search-input:focus {
  background: rgba(255, 255, 255, 0.1) !important;
  border-color: #f59e0b !important;
  box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.25) !important;
}
.books-search-btn {
  flex: 0 0 auto !important;
  width: auto !important;
  min-width: 130px !important;
  height: 50px !important;
  margin: 0 !important;
  padding: 0 26px !important;
  font-size: 14.5px !important;
  font-weight: 700 !important;
  border-radius: 12px !important;
  background: linear-gradient(135deg, #f59e0b, #d97706) !important;
  color: #0b0e14 !important;
  border: none !important;
  cursor: pointer !important;
  white-space: nowrap !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  box-sizing: border-box !important;
  box-shadow: 0 4px 14px rgba(245, 158, 11, 0.3) !important;
  transition: transform 0.15s, opacity 0.15s, box-shadow 0.15s !important;
}
.books-search-btn:hover {
  opacity: 0.95 !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 6px 18px rgba(245, 158, 11, 0.4) !important;
}
.books-search-btn:active {
  transform: translateY(0) !important;
}
.manga-hub .books-search-btn {
  background: linear-gradient(135deg, #ff2e93, #be185d) !important;
  color: #ffffff !important;
  box-shadow: 0 4px 14px rgba(255, 46, 147, 0.35) !important;
}
.manga-hub .books-search-btn:hover {
  box-shadow: 0 6px 18px rgba(255, 46, 147, 0.5) !important;
}
.manga-hub .books-search-input:focus {
  border-color: #ff2e93 !important;
  box-shadow: 0 0 0 3px rgba(255, 46, 147, 0.25) !important;
}
html.newlook :is(.manga-hub, .ebooks-hub, .books-hub-container) .books-search-btn,
html.newlook .books-search-btn {
  background: var(--nl-tone) !important;
  color: var(--nl-on) !important;
  box-shadow: 0 4px 14px color-mix(in srgb, var(--nl-tone) 35%, transparent) !important;
}
html.newlook :is(.manga-hub, .ebooks-hub, .books-hub-container) .books-search-btn:hover,
html.newlook .books-search-btn:hover {
  box-shadow: 0 6px 20px color-mix(in srgb, var(--nl-tone) 50%, transparent) !important;
}
html.newlook :is(.manga-hub, .ebooks-hub, .books-hub-container) .books-search-input:focus,
html.newlook .books-search-input:focus {
  border-color: var(--nl-tone) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--nl-tone) 25%, transparent) !important;
}
@media (max-width: 640px) {
  .books-search-bar-wrap {
    gap: 8px !important;
    margin-bottom: 18px !important;
  }
  .books-search-input {
    height: 44px !important;
    font-size: 14px !important;
    padding: 0 14px !important;
  }
  .books-search-btn {
    height: 44px !important;
    min-width: 90px !important;
    padding: 0 16px !important;
    font-size: 13.5px !important;
  }
}
.books-search-placeholder {
  padding: 48px 24px;
  text-align: center;
  color: var(--text-muted);
  font-size: 14.5px;
}
.books-empty-shelf {
  padding: 60px 24px;
  text-align: center;
  background: rgba(255, 255, 255, 0.02);
  border: 1px dashed rgba(255, 255, 255, 0.1);
  border-radius: 18px;
}
.books-empty-icon {
  font-size: 44px;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.books-empty-shelf svg,
.books-empty-icon svg,
.books-search-placeholder svg {
  width: 44px !important;
  height: 44px !important;
  max-width: 44px !important;
  max-height: 44px !important;
  display: inline-block !important;
  vertical-align: middle !important;
}
.books-empty-shelf p {
  color: var(--text-muted);
  margin-bottom: 20px;
  font-size: 15px;
}

/* ==========================================================================
   BOOK DETAIL MODAL (SCHEDA DETTAGLI STILE TMDB / DEBRID)
   ========================================================================== */
.book-detail-modal {
  position: fixed;
  inset: 0;
  z-index: 12000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  box-sizing: border-box;
}
.book-detail-modal[hidden] {
  display: none !important;
}
.book-detail-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(6, 8, 14, 0.84);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  animation: bookModalBackdropFade 0.22s ease-out;
}
.book-detail-sheet {
  position: relative;
  width: 100%;
  max-width: 880px;
  max-height: 88vh;
  overflow-y: auto;
  background: #0d1017;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 20px;
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.85), 0 0 0 1px rgba(255, 255, 255, 0.05);
  animation: bookModalSheetZoom 0.25s cubic-bezier(0.16, 1, 0.3, 1);
  box-sizing: border-box;
  z-index: 1;
}
@keyframes bookModalBackdropFade {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes bookModalSheetZoom {
  from { opacity: 0; transform: scale(0.95) translateY(12px); }
  to { opacity: 1; transform: scale(1) translateY(0); }
}
.book-detail-close-btn {
  position: absolute;
  top: 16px;
  right: 16px;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.6);
  border: 1px solid rgba(255, 255, 255, 0.15);
  color: #ffffff;
  font-size: 15px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 10;
  transition: all 0.15s ease;
}
.book-detail-close-btn:hover {
  background: rgba(239, 68, 68, 0.8);
  border-color: #ef4444;
  transform: scale(1.08);
}
.book-detail-banner {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 240px;
  background-size: cover;
  background-position: center;
  opacity: 0.18;
  filter: blur(20px);
  mask-image: linear-gradient(to bottom, black 30%, transparent 100%);
  -webkit-mask-image: linear-gradient(to bottom, black 30%, transparent 100%);
  pointer-events: none;
}
.book-detail-content {
  position: relative;
  z-index: 2;
  display: flex;
  gap: 28px;
  padding: 32px;
}
.book-detail-left {
  flex-shrink: 0;
  width: 220px;
}
.book-detail-cover-wrap {
  position: relative;
  width: 100%;
  aspect-ratio: 2/3;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 16px 36px rgba(0, 0, 0, 0.6);
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: #151820;
}
.book-detail-cover-wrap.audiobook-aspect {
  aspect-ratio: 1/1;
}
.book-detail-cover {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.book-detail-type-badge {
  position: absolute;
  top: 10px;
  left: 10px;
  padding: 4px 8px;
  border-radius: 6px;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.4px;
  backdrop-filter: blur(8px);
}
.book-detail-right {
  flex: 1;
  min-width: 0;
}
.book-detail-tags {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 10px;
}
.book-detail-tag {
  padding: 4px 10px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 700;
  background: rgba(255, 255, 255, 0.08);
  color: var(--text-primary);
  border: 1px solid rgba(255, 255, 255, 0.12);
}
.book-detail-title {
  font-size: 26px;
  font-weight: 800;
  color: #ffffff;
  margin: 0 0 6px 0;
  line-height: 1.25;
  letter-spacing: -0.3px;
}
.book-detail-author {
  font-size: 15px;
  font-weight: 600;
  color: #f59e0b;
  margin-bottom: 12px;
}
.book-detail-meta-row {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  font-size: 13px;
  color: var(--text-muted);
  margin-bottom: 22px;
  align-items: center;
}
.book-detail-meta-row span {
  display: flex;
  align-items: center;
  gap: 5px;
}
.book-detail-actions {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 24px;
}
.book-debrid-btn {
  display: flex;
  align-items: center;
  gap: 14px;
  width: 100%;
  padding: 14px 20px;
  border-radius: 12px;
  border: none;
  background: linear-gradient(135deg, var(--dd-red, #e50914) 0%, #b20710 100%);
  color: #ffffff;
  cursor: pointer;
  box-shadow: 0 8px 24px color-mix(in srgb, var(--dd-red, #e50914) 35%, transparent);
  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
  text-align: left;
}
.book-debrid-btn:hover {
  filter: brightness(1.12);
  transform: translateY(-2px);
  box-shadow: 0 12px 28px color-mix(in srgb, var(--dd-red, #e50914) 50%, transparent);
}
.debrid-btn-icon {
  font-size: 24px;
  flex-shrink: 0;
}
.debrid-btn-texts {
  display: flex;
  flex-direction: column;
}
.debrid-btn-title {
  font-size: 15px;
  font-weight: 800;
  letter-spacing: 0.2px;
}
.debrid-btn-sub {
  font-size: 12px;
  opacity: 0.88;
  font-weight: 500;
}
.book-detail-secondary-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
.book-sec-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 18px;
  border-radius: 10px;
  font-size: 13.5px;
  font-weight: 700;
  cursor: pointer;
  border: 1px solid rgba(255, 255, 255, 0.15);
  background: rgba(255, 255, 255, 0.08);
  color: #ffffff;
  transition: all 0.18s ease;
}
.book-sec-btn:hover {
  background: rgba(255, 255, 255, 0.16);
  border-color: rgba(255, 255, 255, 0.3);
  transform: translateY(-1px);
}
.book-sec-btn.preview {
  background: rgba(245, 158, 11, 0.2);
  border-color: rgba(245, 158, 11, 0.4);
  color: #fbbf24;
}
.book-sec-btn.preview:hover {
  background: rgba(245, 158, 11, 0.35);
}
.book-sec-btn.read {
  background: rgba(59, 130, 246, 0.2);
  border-color: rgba(59, 130, 246, 0.4);
  color: #60a5fa;
}
.book-sec-btn.read:hover {
  background: rgba(59, 130, 246, 0.35);
}
.book-detail-desc-box {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 12px;
  padding: 18px 20px;
}
.book-detail-desc-heading {
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.8px;
  color: var(--text-muted);
  margin: 0 0 10px 0;
}
.book-detail-desc {
  font-size: 14px;
  line-height: 1.65;
  color: #e2e8f0;
  max-height: 220px;
  overflow-y: auto;
}
@media (max-width: 720px) {
  .book-detail-content {
    flex-direction: column;
    align-items: center;
    padding: 24px 16px;
    gap: 20px;
  }
  .book-detail-left {
    width: 160px;
  }
  .book-detail-title {
    font-size: 21px;
    text-align: center;
  }
  .book-detail-author {
    text-align: center;
  }
  .book-detail-meta-row {
    justify-content: center;
  }
  .book-detail-tags {
    justify-content: center;
  }
}

@keyframes slideInLeft {
  0% { transform: translateX(-100%); }
  100% { transform: translateX(0); }
}

/* ==========================================================================
   MANGA READER MODAL (COMIX.TO CONTINUOUS VERTICAL READER)
   ========================================================================== */
.manga-reader-modal {
  position: fixed;
  inset: 0;
  z-index: 10001;
  background: #08090c;
  color: #f1f5f9;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
body.manga-reader-open {
  overflow: hidden !important;
}

/* Chrome Auto-Hide for Full-Screen Reading */
.manga-reader-modal.chrome-hidden .manga-reader-header {
  transform: translateY(-100%);
  opacity: 0;
  pointer-events: none;
}
.manga-reader-modal.chrome-hidden .manga-reader-bottom-bar {
  transform: translateY(100%);
  opacity: 0;
  pointer-events: none;
}

/* Header */
.manga-reader-header {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 56px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 18px;
  gap: 14px;
  background: rgba(8, 9, 12, 0.94);
  backdrop-filter: blur(16px);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  z-index: 50;
  transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s ease;
}
.manga-reader-meta {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  flex: 1;
}
.manga-reader-back {
  padding: 6px 12px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: inherit;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  flex-shrink: 0;
}
.manga-reader-title-box {
  min-width: 0;
  cursor: pointer;
}
.manga-reader-title {
  font-size: 14px;
  font-weight: 700;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.manga-reader-chapter {
  font-size: 11.5px;
  color: #fbbf24;
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.manga-reader-toolbar {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}
.manga-tool-btn {
  padding: 6px 12px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: inherit;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
}
.manga-reader-close {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.08);
  border: none;
  color: #ffffff;
  cursor: pointer;
}

/* Continuous Vertical Webtoon Scroll Container */
.manga-reader-scroll {
  flex: 1;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 64px 0 80px;
  scroll-behavior: smooth;
  cursor: pointer;
}
.manga-page-wrap {
  width: 100%;
  max-width: 860px;
  min-height: 380px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin: 0 auto;
  flex-shrink: 0 !important;
  position: relative;
  background: rgba(255, 255, 255, 0.02);
  border-radius: 4px;
}
.manga-page-loading {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  color: rgba(255, 255, 255, 0.65);
  font-size: 13px;
  font-weight: 500;
  background: rgba(12, 14, 20, 0.92);
  z-index: 2;
  border-radius: 4px;
}
.manga-page-img {
  width: 100% !important;
  max-width: 860px;
  height: auto !important;
  min-height: auto !important;
  max-height: none !important;
  display: block !important;
  margin: 0 auto;
  user-select: none;
  object-fit: contain !important;
  aspect-ratio: auto !important;
  transition: max-width 0.2s ease;
  border-radius: 4px;
  position: relative;
  z-index: 3;
}
.manga-reader-modal.fit-width .manga-page-wrap,
.manga-reader-modal.fit-width .manga-page-img {
  max-width: 100% !important;
}
.manga-reader-modal.fit-original .manga-page-wrap,
.manga-reader-modal.fit-original .manga-page-img {
  max-width: 720px !important;
}

/* Manga Language Switcher */
.manga-lang-switch {
  display: flex;
  align-items: center;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 999px;
  padding: 2px;
  gap: 2px;
  margin-right: 6px;
}
.manga-lang-btn {
  background: transparent;
  border: none;
  color: rgba(255, 255, 255, 0.7);
  font-size: 11px;
  font-weight: 700;
  padding: 4px 8px;
  border-radius: 999px;
  cursor: pointer;
  transition: all 0.15s ease;
  white-space: nowrap;
}
.manga-lang-btn:hover {
  color: #ffffff;
  background: rgba(255, 255, 255, 0.08);
}
.manga-lang-btn.active {
  background: #ec4899;
  color: #ffffff;
  box-shadow: 0 2px 8px rgba(236, 72, 153, 0.35);
}

/* Bottom Bar */
.manga-reader-bottom-bar {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 58px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 16px;
  background: rgba(8, 9, 12, 0.94);
  backdrop-filter: blur(16px);
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  z-index: 50;
  transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s ease;
}
.manga-bottom-left, .manga-bottom-right {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}
.manga-page-control-center {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  flex: 1;
  max-width: 340px;
  margin: 0 12px;
}
.manga-page-slider {
  width: 100%;
  height: 4px;
  accent-color: #ec4899;
  cursor: pointer;
}
.manga-nav-btn {
  padding: 6px 14px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: inherit;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
}
.manga-nav-btn:hover {
  background: rgba(255, 255, 255, 0.15);
}
.manga-nav-btn.icon-only {
  padding: 6px 10px;
  min-width: 32px;
  text-align: center;
}
.manga-page-counter {
  font-size: 11.5px;
  color: var(--text-muted);
  font-weight: 600;
}

/* Manga Reading Modes */
.manga-reader-modal.mode-single .manga-reader-scroll,
.manga-reader-modal.mode-rtl .manga-reader-scroll {
  overflow-y: hidden;
  justify-content: center;
  padding: 60px 0;
}
.manga-reader-modal.mode-single .manga-page-wrap,
.manga-reader-modal.mode-rtl .manga-page-wrap {
  display: none;
  min-height: calc(100vh - 124px);
  max-height: calc(100vh - 124px);
  height: calc(100vh - 124px);
  align-items: center;
  justify-content: center;
  overflow-y: auto;
}
.manga-reader-modal.mode-single .manga-page-wrap.active,
.manga-reader-modal.mode-rtl .manga-page-wrap.active {
  display: flex !important;
}
.manga-reader-modal.mode-single .manga-page-img,
.manga-reader-modal.mode-rtl .manga-page-img {
  max-height: calc(100vh - 130px) !important;
  width: auto !important;
  max-width: 95vw !important;
  height: auto !important;
  object-fit: contain !important;
  aspect-ratio: auto !important;
}
.manga-reader-modal.mode-single .manga-page-img.is-tall-strip,
.manga-reader-modal.mode-rtl .manga-page-img.is-tall-strip {
  max-height: none !important;
  width: 100% !important;
  max-width: 860px !important;
  align-self: flex-start;
}

/* Click Zones for Single/RTL Mode */
.manga-click-zone {
  position: absolute;
  top: 56px;
  bottom: 58px;
  width: 25%;
  z-index: 40;
  display: none;
  cursor: pointer;
}
.manga-reader-modal.mode-single .manga-click-zone,
.manga-reader-modal.mode-rtl .manga-click-zone {
  display: block;
}
.manga-click-zone.left { left: 0; }
.manga-click-zone.right { right: 0; }

/* Manga Themes */
.manga-reader-modal.theme-amoled { background: #000000; }
.manga-reader-modal.theme-dark { background: #10131c; }
.manga-reader-modal.theme-paper {
  background: #f4ecd8;
  color: #1a1a1a;
}
.manga-reader-modal.theme-paper .manga-reader-header,
.manga-reader-modal.theme-paper .manga-reader-bottom-bar {
  background: rgba(244, 236, 216, 0.96);
  color: #1a1a1a;
  border-color: rgba(0, 0, 0, 0.12);
}

/* Spacing */
.manga-reader-modal.gap-12 .manga-page-wrap { margin-bottom: 14px; }

/* ── Reader manga su mobile ──
   L'header aveva zero regole responsive: 8 elementi interattivi (3 lingua +
   4 strumenti + chiudi) in una riga flex senza wrap in appena 56px di
   altezza — su un telefono va fuori schermo o si schiaccia illeggibile.
   Qui si riduce tutto e si aggiunge uno scroll orizzontale di sicurezza
   sulla toolbar, cosi' anche se non entra tutto non sparisce nulla. */
@media (max-width: 720px) {
  .manga-reader-header {
    height: 48px;
    padding: 0 10px;
    gap: 8px;
  }
  .manga-reader-meta { gap: 8px; }
  .manga-reader-back {
    padding: 5px 9px;
    font-size: 12px;
  }
  .manga-reader-title { font-size: 12.5px; }
  .manga-reader-chapter { font-size: 10.5px; }

  .manga-reader-toolbar {
    gap: 5px;
    overflow-x: auto;
    max-width: 62vw;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }
  .manga-reader-toolbar::-webkit-scrollbar { display: none; }
  .manga-tool-btn {
    padding: 5px 8px;
    font-size: 10.5px;
    flex-shrink: 0;
  }
  .manga-lang-switch {
    flex-shrink: 0;
    margin-right: 3px;
  }
  .manga-lang-btn {
    padding: 4px 6px;
    font-size: 10px;
  }
  .manga-reader-close {
    width: 28px;
    height: 28px;
    flex-shrink: 0;
  }

  .manga-reader-bottom-bar {
    height: 52px;
    padding: 0 8px;
  }
  .manga-bottom-left, .manga-bottom-right { gap: 5px; }
  .manga-nav-btn {
    padding: 5px 9px;
    font-size: 10.5px;
  }
  .manga-nav-btn.icon-only {
    padding: 5px 8px;
    min-width: 26px;
  }
  .manga-page-control-center { margin: 0 6px; }
  .manga-page-counter { font-size: 10px; }

  .manga-click-zone { top: 48px; bottom: 52px; }
  .manga-reader-modal.mode-single .manga-page-wrap,
  .manga-reader-modal.mode-rtl .manga-page-wrap {
    min-height: calc(100vh - 108px);
    max-height: calc(100vh - 108px);
    height: calc(100vh - 108px);
  }
}
@media (max-width: 400px) {
  /* Sui telefoni più stretti i due bottoni capitolo perdono l'etichetta
     testuale (via JS, vedi applyMangaReaderStyle per mangaModeBtn — qui solo
     i nav capitolo, il cui testo è statico in HTML) e restano solo le frecce,
     cosi' il centro (slider pagine) mantiene spazio utilizzabile. */
  .manga-nav-btn:not(.icon-only) {
    font-size: 0;
    padding: 5px 8px;
  }
  .manga-nav-btn:not(.icon-only)::before {
    font-size: 13px;
    content: attr(data-icon);
  }
}

/* Settings Popover */
.manga-settings-popover {
  position: absolute;
  top: 64px;
  right: 18px;
  width: 310px;
  background: rgba(14, 17, 24, 0.98);
  backdrop-filter: blur(24px);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 14px;
  padding: 16px;
  z-index: 100;
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.7);
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.manga-popover-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 14px;
  font-weight: 700;
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.manga-setting-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.manga-setting-label {
  font-size: 11px;
  font-weight: 700;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.manga-theme-palette {
  display: flex;
  gap: 8px;
}
.manga-theme-btn {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 8px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: #fff;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
}
.manga-theme-btn.active {
  border-color: #fbbf24;
  background: rgba(251, 191, 36, 0.15);
  color: #fbbf24;
}
.manga-dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  display: inline-block;
}
.manga-mode-grid {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}
.manga-mode-pill {
  flex: 1;
  min-width: 90px;
  padding: 8px 10px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: inherit;
  font-size: 11.5px;
  font-weight: 600;
  cursor: pointer;
  text-align: center;
}
.manga-mode-pill.active {
  background: rgba(236, 72, 153, 0.2);
  border-color: #ec4899;
  color: #f472b6;
  font-weight: 700;
}

/* Reset / Remove button in Library */
.b-rm-prog-btn {
  position: absolute;
  top: 8px;
  right: 42px;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: rgba(15, 23, 42, 0.88);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(239, 68, 68, 0.5);
  color: #ef4444;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: bold;
  opacity: 0.92;
  transition: all 0.15s ease;
  z-index: 6;
}
.b-rm-prog-btn:hover {
  background: #ef4444;
  color: #ffffff;
  transform: scale(1.1);
  opacity: 1;
  box-shadow: 0 0 12px rgba(239, 68, 68, 0.6);
}

/* Manga Chapter Drawer */
.manga-drawer {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  width: 320px;
  max-width: 85vw;
  background: rgba(14, 16, 22, 0.98);
  backdrop-filter: blur(20px);
  border-right: 1px solid rgba(255, 255, 255, 0.1);
  z-index: 100;
  display: flex;
  flex-direction: column;
  box-shadow: 10px 0 40px rgba(0, 0, 0, 0.6);
  animation: slideInLeft 0.22s ease-out;
}
.manga-drawer-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.manga-drawer-header h3 {
  font-size: 15px;
  font-weight: 700;
  margin: 0;
}
.manga-drawer-list {
  flex: 1;
  overflow-y: auto;
  padding: 10px 14px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.manga-chap-item {
  padding: 10px 14px;
  border-radius: 8px;
  font-size: 13px;
  cursor: pointer;
  transition: all 0.15s ease;
  color: #e2e8f0;
}
.manga-chap-item:hover {
  background: rgba(255, 255, 255, 0.07);
}
.manga-chap-item.active {
  background: rgba(245, 158, 11, 0.2);
  color: #fbbf24;
  font-weight: 700;
}

/* ── Source Badges for Books, Manga & Audiobooks ── */
.book-genre-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  margin-bottom: 5px;
}
.b-source-tag {
  display: inline-flex;
  align-items: center;
  padding: 2px 7px;
  border-radius: 6px;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.3px;
  text-transform: uppercase;
  white-space: nowrap;
  flex-shrink: 0;
}
.source-shadow {
  background: rgba(245, 158, 11, 0.16);
  color: #f59e0b;
  border: 1px solid rgba(245, 158, 11, 0.35);
}
.source-rai {
  background: rgba(59, 130, 246, 0.16);
  color: #60a5fa;
  border: 1px solid rgba(59, 130, 246, 0.35);
}
.source-manga {
  background: rgba(236, 72, 153, 0.16);
  color: #f472b6;
  border: 1px solid rgba(236, 72, 153, 0.35);
}
.source-wiki {
  background: rgba(16, 185, 129, 0.16);
  color: #34d399;
  border: 1px solid rgba(16, 185, 129, 0.35);
}
.source-ia {
  background: rgba(168, 85, 247, 0.16);
  color: #c084fc;
  border: 1px solid rgba(168, 85, 247, 0.35);
}

/* ── Wikisource Interactive Chapter Links in Reader ── */
.wikisource-chapter-link {
  color: #fbbf24 !important;
  text-decoration: underline !important;
  text-underline-offset: 3px !important;
  cursor: pointer !important;
  transition: all 0.15s ease !important;
  display: inline-block;
  padding: 1px 4px;
  border-radius: 4px;
}
.wikisource-chapter-link:hover {
  background: rgba(251, 191, 36, 0.12) !important;
  color: #fef08a !important;
  text-shadow: 0 0 10px rgba(251, 191, 36, 0.35);
}



/* ── Header sorgente (cover + titolo) nel modale capitoli MangaDex ──
   Classi .book-torrent-* riesumate: erano nate per il vecchio modale
   Fonti Torrent & Debrid (.book-torrent-modal/.book-torrent-sheet), rimosso
   con l'eliminazione dei torrent dai Libri, ma #mangaSeriesModal in
   index.html riusa ancora questi stessi nomi per il proprio header — un
   cleanup li aveva cancellati per intero credendoli tutti orfani, lasciando
   quest'header completamente senza stile (immagine a risoluzione nativa,
   badge "MANGA" alla deriva nello spazio vuoto). Qui sotto solo le classi
   ancora referenziate, riscritte mobile-first per il contenitore reale
   (.book-detail-sheet), non per quello ormai rimosso. */
.book-torrent-header {
  display: flex;
  gap: 18px;
  align-items: center;
}
.book-torrent-cover-wrap {
  position: relative;
  width: 84px;
  height: 122px;
  border-radius: 10px;
  overflow: hidden;
  flex-shrink: 0;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.5);
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: #151820;
}
.book-torrent-thumb {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.book-torrent-badge {
  position: absolute;
  bottom: 6px;
  left: 6px;
  font-size: 9.5px;
  font-weight: 800;
  padding: 3px 7px;
  border-radius: 5px;
  letter-spacing: 0.3px;
}
.book-torrent-meta {
  flex: 1;
  min-width: 0;
}
.book-torrent-tag {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.6px;
  margin-bottom: 5px;
}
.book-torrent-title {
  font-size: 19px;
  font-weight: 800;
  color: #fff;
  margin: 0 0 4px;
  line-height: 1.25;
}
.book-torrent-author {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.65);
  margin-bottom: 6px;
}
.book-torrent-tip {
  font-size: 12px;
  line-height: 1.45;
}
@media (max-width: 520px) {
  .book-torrent-header {
    flex-direction: column;
    text-align: center;
  }
  .book-torrent-cover-wrap {
    width: 108px;
    height: 156px;
  }
  .book-torrent-meta {
    width: 100%;
  }
}

/* ── Card Capitolo MangaDex ── */
.manga-chap-card {
  display: flex;
  align-items: center;
  gap: 12px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 10px;
  padding: 13px 14px;
  min-height: 44px;
  color: #fff;
  cursor: pointer;
  text-align: left;
  transition: all 0.2s ease;
  box-sizing: border-box;
}
.manga-chap-card:hover {
  background: rgba(236, 72, 153, 0.15);
  border-color: rgba(236, 72, 153, 0.4);
  transform: translateY(-2px);
  box-shadow: 0 4px 14px rgba(236, 72, 153, 0.2);
}
.manga-chap-badge {
  font-size: 13px;
  font-weight: 800;
  color: #fff;
  background: linear-gradient(135deg, #ec4899, #be185d);
  padding: 4px 10px;
  border-radius: 6px;
  min-width: 38px;
  text-align: center;
}
.manga-chap-info {
  flex: 1;
  min-width: 0;
}
.manga-chap-name {
  font-size: 13px;
  font-weight: 600;
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.manga-chap-meta {
  font-size: 11px;
  color: #94a3b8;
  display: block;
  margin-top: 2px;
}
.manga-chap-arrow {
  font-size: 16px;
  color: rgba(255, 255, 255, 0.3);
  transition: color 0.2s;
}
.manga-chap-card:hover .manga-chap-arrow {
  color: #f472b6;
}




/* ── Manga Hub: chip filtro, badge lingua, stato capitoli ── */
.manga-chip-row { display:flex; flex-wrap:wrap; gap:8px; margin:6px 0 4px; }
.manga-chip {
  appearance:none; border:1px solid rgba(255,255,255,.14); background:rgba(255,255,255,.05);
  color:var(--text, #f1f5f9); font-size:12.5px; font-weight:600; padding:7px 12px; border-radius:999px;
  cursor:pointer; white-space:nowrap; transition:background .15s, border-color .15s;
}
.manga-chip:hover:not(:disabled) { background:rgba(236,72,153,.12); border-color:rgba(236,72,153,.4); }
.manga-chip.active { background:rgba(236,72,153,.2); border-color:#ec4899; color:#fbcfe8; }
.manga-chip.primary { background:linear-gradient(135deg,#ec4899,#be185d); border-color:transparent; color:#fff; }
.manga-chip:disabled { opacity:.4; cursor:default; }
.manga-chip:focus-visible { outline:2px solid #f472b6; outline-offset:2px; }
.manga-it-toggle { display:inline-flex; align-items:center; gap:8px; font-size:13px; color:var(--text-muted); margin:8px 0 4px; cursor:pointer; }
.manga-it-toggle input { accent-color:#ec4899; width:16px; height:16px; }
.b-lang-row { position:absolute; left:8px; top:8px; display:flex; gap:4px; z-index:2; pointer-events:none; }
.b-lang-flag { font-size:10.5px; font-weight:700; letter-spacing:.3px; padding:3px 7px; border-radius:6px; background:rgba(0,0,0,.72); color:#fff; border:1px solid rgba(255,255,255,.18); display:inline-flex; align-items:center; gap:4px; }
.b-lang-flag svg { width:12px; height:12px; stroke-width:2.2; }
.b-lang-flag.it { border-color:rgba(16,185,129,.6); color:#34d399; background:rgba(6,78,59,.75); }
.manga-chap-card.read { opacity:.55; }
.manga-chap-card.current { border-color:var(--manga-neon, #ff2e93) !important; box-shadow:0 0 0 1px var(--manga-neon, #ff2e93) inset; }
.b-lang-flag.lock { border-color:rgba(248,113,113,.55); color:#fca5a5; }
.manga-legal-title { font-size:12px; font-weight:700; letter-spacing:.4px; text-transform:uppercase; color:var(--text-muted); margin:14px 0 6px; }
a.manga-chip { text-decoration:none; display:inline-flex; align-items:center; gap:5px; }
a.manga-chip svg { width:13px; height:13px; }
.manga-chapter-end { display:flex; flex-direction:column; align-items:center; gap:12px; padding:48px 16px 96px; text-align:center; }
.manga-chapter-end-title { font-size:15px; font-weight:700; color:#f1f5f9; }
.manga-chapter-end-sub { font-size:13px; color:#94a3b8; }
.manga-chapter-end-next { appearance:none; border:0; cursor:pointer; padding:14px 26px; border-radius:999px; font-size:15px; font-weight:800; color:#fff; background:linear-gradient(135deg,#ff2e93,#be185d); box-shadow:0 10px 30px -10px rgba(255,46,147,.6); }
.manga-chapter-end-next:focus-visible { outline:2px solid #ff60ad; outline-offset:3px; }
.b-new-chapters { position:absolute; left:8px; bottom:30px; z-index:2; font-size:11px; font-weight:800; padding:4px 8px; border-radius:999px; background:#ff2e93; color:#fff; box-shadow:0 4px 14px -4px rgba(255,46,147,.7); pointer-events:none; display:inline-flex; align-items:center; gap:4px; }
.b-new-chapters svg { width:12px; height:12px; }
/* Serie con licenza ufficiale: si capisce già dalla copertina. */
.b-locked-overlay { display:none; }
.book-cover-wrap.is-locked .book-cover { filter:grayscale(.85) brightness(.45); }
.book-cover-wrap.is-locked .b-locked-overlay {
  display:flex; position:absolute; inset:0; z-index:1; flex-direction:column; align-items:center; justify-content:center;
  gap:2px; text-align:center; color:#fff; font-size:12px; font-weight:800; letter-spacing:.2px; pointer-events:none;
}
.book-cover-wrap.is-locked .b-locked-overlay span { font-size:26px; line-height:1.1; }
.book-cover-wrap.is-locked .b-locked-overlay small { font-size:10.5px; font-weight:600; opacity:.75; }
.manga-lang-switch { grid-column:1/-1; margin:8px 0 2px; padding:8px 12px; border-radius:8px; font-size:12.5px; font-weight:700; color:#bfdbfe; background:rgba(59,130,246,.12); border:1px dashed rgba(96,165,250,.45); }
.manga-lang-switch.it { color:#a7f3d0; background:rgba(16,185,129,.12); border-color:rgba(52,211,153,.45); }
.manga-lang-switch.official { color:#fde68a; background:rgba(245,158,11,.12); border-color:rgba(251,191,36,.45); }
a.manga-chap-card { text-decoration:none; color:inherit; }
.manga-chap-card.official { border-style:dashed; opacity:.92; }
.manga-chap-card.official .manga-chap-badge { background:rgba(245,158,11,.2); color:#fbbf24; }
a.manga-chip { text-decoration:none; display:inline-flex; align-items:center; }
.manga-chapter-end-note { font-size:13px; color:#fcd34d; max-width:420px; }
.manga-page-retry { appearance:none; border:1px dashed rgba(255,255,255,.25); background:rgba(255,255,255,.04); color:#fff; border-radius:12px; padding:22px 28px; min-width:220px; display:flex; flex-direction:column; align-items:center; gap:4px; cursor:pointer; font-size:13px; font-weight:700; }
.manga-page-retry:hover, .manga-page-retry:focus-visible { background:rgba(236,72,153,.12); border-color:#ec4899; outline:none; }
.manga-page-retry small { font-size:11.5px; font-weight:500; color:#f9a8d4; }
.manga-page-retry-icon { font-size:24px; line-height:1; color:#f9a8d4; }
.manga-reader-modal .manga-page-img.is-broken { display:none !important; }
.manga-ratings-row { display:flex; flex-wrap:wrap; gap:8px; margin:10px 0 2px; }
.manga-rating { font-size:12.5px; padding:5px 10px; border-radius:8px; background:rgba(251,191,36,.1); border:1px solid rgba(251,191,36,.3); color:#fde68a; }
.manga-rating b { color:#fbbf24; }
.manga-rating.mal { background:rgba(59,130,246,.1); border-color:rgba(96,165,250,.35); color:#bfdbfe; }
.manga-rating.mal b { color:#93c5fd; }
/* ── Traduzione AI sulle tavole ── */
.manga-ai-btn.active, #mangaAiOrigBtn.active { background:rgba(236,72,153,.22); border-color:#ec4899; color:#fbcfe8; }
.manga-ai-layer { position:absolute; z-index:3; pointer-events:none; }
.manga-ai-bubble {
  position:absolute; pointer-events:auto; cursor:pointer; display:flex; align-items:safe center; justify-content:safe center;
  text-align:center; background:rgba(255,255,255,.97); color:#111; font-weight:700; line-height:1.08;
  border-radius:6px; padding:1px 2px; overflow:hidden; box-shadow:0 0 0 1px rgba(0,0,0,.08);
  font-family:"Comic Neue","Comic Sans MS","Segoe UI",system-ui,sans-serif;
  /* le parole non si spezzano: è il testo a rimpicciolirsi (mangaAiFitText) */
  word-break:normal; overflow-wrap:normal; hyphens:none; box-sizing:border-box; line-height:1.12; padding:2px 3px; border-radius:8px; box-shadow:none;
}
.manga-ai-mask { position:absolute; pointer-events:none; image-rendering:auto; }
/* Sopra la maschera del balloon: niente riquadro, solo il testo. */
.manga-ai-bubble.on-mask { background:transparent !important; border-radius:0; padding:0; }
.manga-ai-bubble.show-en { background:rgba(255,248,220,.97); color:#1e3a8a; }
#mangaReaderPages.ai-show-original .manga-ai-layer { display:none; }
.manga-ai-status { position:absolute; top:8px; right:8px; z-index:4; font-size:11.5px; font-weight:700; color:#fff; background:rgba(0,0,0,.72); padding:4px 10px; border-radius:999px; pointer-events:none; }
.manga-ai-status.retry { pointer-events:auto; cursor:pointer; background:rgba(180,83,9,.92); }

/* ── Manga · "I miei" (js/manga_mine.js) ── */
.mine-h { margin:0 0 4px; font-size:18px; color:#fff; }
.mine-h4 { margin:18px 0 8px; font-size:14px; color:#fff; }
.mine-note { font-size:12.5px; color:rgba(255,255,255,.6); margin:4px 0 10px; }
.mine-error { font-size:13px; color:#fbbf24; background:rgba(245,158,11,.1); border-radius:10px; padding:10px 12px; margin:8px 0; }
.mine-actions { display:flex; gap:8px; flex-wrap:wrap; margin:6px 0 4px; }
.mine-file { cursor:pointer; }
.mine-list { display:flex; flex-direction:column; gap:8px; }
.mine-row { display:flex; align-items:center; gap:12px; width:100%; text-align:left; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.06); border-radius:12px; padding:8px 10px; color:#fff; cursor:pointer; font:inherit; }
.mine-row:hover { background:rgba(236,72,153,.08); border-color:rgba(236,72,153,.35); }
.mine-row-main { display:flex; align-items:center; gap:12px; flex:1; min-width:0; background:none; border:0; color:inherit; font:inherit; text-align:left; cursor:pointer; padding:0; }
.mine-thumb { width:40px; height:56px; flex:none; border-radius:6px; background:rgba(255,255,255,.06); display:flex; align-items:center; justify-content:center; overflow:hidden; font-size:20px; }
.mine-thumb img { width:100%; height:100%; object-fit:cover; }
.mine-row-text { display:flex; flex-direction:column; min-width:0; flex:1; }
.mine-row-text strong { font-size:14px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.mine-row-text small { font-size:11.5px; color:rgba(255,255,255,.5); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.mine-chev { color:rgba(255,255,255,.4); font-size:20px; }
.mine-del { background:none; border:0; color:rgba(255,255,255,.5); cursor:pointer; font-size:16px; padding:6px; }
.mine-form { display:flex; flex-direction:column; gap:8px; margin-top:16px; padding:14px; border-radius:12px; background:rgba(255,255,255,.03); border:1px dashed rgba(255,255,255,.12); color:#fff; }
.mine-form small { color:rgba(255,255,255,.55); font-size:12px; line-height:1.5; }
.mine-form code { font-size:11px; }
.mine-form input { background:rgba(0,0,0,.35); border:1px solid rgba(255,255,255,.12); border-radius:8px; padding:9px 11px; color:#fff; font:inherit; font-size:13px; min-width:0; }
.mine-form-row { display:flex; gap:8px; flex-wrap:wrap; }
.mine-form-row input { flex:1 1 140px; }
.mine-form button { align-self:flex-start; }
.mine-browse-head { display:flex; align-items:center; gap:10px; margin-bottom:12px; }
.mine-browse-title { display:flex; flex-direction:column; flex:1; min-width:0; }
.mine-browse-title strong { color:#fff; font-size:15px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.mine-browse-title span { color:rgba(255,255,255,.5); font-size:11.5px; }
.mine-open-all { margin-bottom:10px; }

/* ── Confronto Free / Pro (registrazione, "Passa a Pro", Impostazioni) ── */
.plan-details{ margin:4px 0 14px; text-align:left; }
.plan-details > summary{ cursor:pointer; font-size:13px; font-weight:700; color:var(--text-muted); padding:6px 0; }
.plan-details > summary:hover, .plan-details > summary:focus-visible{ color:#fff; }
.plan-compare{ width:100%; border-collapse:collapse; font-size:12.5px; margin-top:8px; border:1px solid var(--hairline); border-radius:10px; overflow:hidden; }
.plan-compare th{ font-size:11px; font-weight:800; color:var(--text-faint); text-align:left; padding:7px 10px; background:rgba(255,255,255,0.04); }
.plan-compare th.pc-pro{ color:#ffc53d; }
.plan-compare td{ padding:6px 10px; border-top:1px solid var(--hairline); font-weight:700; white-space:nowrap; }
.plan-compare td.pc-feature{ font-weight:500; color:var(--text-muted); white-space:normal; width:100%; }
.plan-compare .pc-yes{ color:#3ddc84; }
.plan-compare .pc-no{ color:var(--text-faint); }
.plan-compare .pc-limit{ color:var(--text-muted); }
.plan-compare td.pc-pro{ color:#ffc53d; }
.plan-note{ font-size:11px; color:var(--text-faint); line-height:1.45; margin:8px 0 0; }

/* ── Video YouTube salvati ─────────────────────────────────────────── */
.yt-save-btn{
  position:absolute; top:8px; right:8px; width:36px; height:36px; border-radius:50%;
  border:0; background:rgba(0,0,0,.75); color:#fff; cursor:pointer;
  display:flex; align-items:center; justify-content:center; opacity:0; transition:opacity .15s ease; z-index:3;
}
.yt-save-btn svg{ fill:none; stroke:currentColor; stroke-width:1.8; }
.yt-card:hover .yt-save-btn, .yt-save-btn:focus-visible, .yt-save-btn.saved{ opacity:1; }
.yt-save-btn.saved{ color:#FFC53D; }
.yt-save-btn.saved svg{ fill:#FFC53D; stroke:#FFC53D; }
@media (hover:none){ .yt-save-btn{ opacity:.9; } }
.po-yt-save svg{ fill:none; stroke:currentColor; stroke-width:2; }
.po-yt-save.saved{ color:#FFC53D; }
.po-yt-save.saved svg{ fill:#FFC53D; stroke:#FFC53D; }
.wishlist-grid-videos{ grid-template-columns:repeat(auto-fill, minmax(240px, 1fr)); }
.wishlist-card .saved-vid-art{ aspect-ratio:16/9; }
.saved-vid-progress{ position:absolute; left:0; right:0; bottom:0; height:3px; background:rgba(255,255,255,.2); }
.saved-vid-progress > div{ height:100%; background:var(--accent); }
.saved-vid-card .t{ cursor:pointer; white-space:normal; display:-webkit-box; -webkit-line-clamp:2; line-clamp:2; -webkit-box-orient:vertical; }
.saved-vid-sub{ text-transform:none !important; display:flex; flex-wrap:wrap; gap:4px 8px; }
.saved-vid-chan{ background:none; border:0; padding:0; color:inherit; font:inherit; cursor:pointer; text-decoration:underline; text-underline-offset:2px; }
.saved-vid-resume{ color:#FF6B72; }
.mobile-shell .wishlist-grid.wishlist-grid-videos{ grid-template-columns:1fr !important; }

/* ═══════════════════════════════════════════════════════════════════
   DEBRIDD EBOOK READER — DESIGN SYSTEM, TYPOGRAPHY & BOOKMARKS
   ═══════════════════════════════════════════════════════════════════ */
#ebookReaderModal {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: flex;
  flex-direction: column;
  transition: background-color 0.25s ease, color 0.25s ease;
  user-select: text;
  -webkit-font-smoothing: antialiased;
}

/* ── Temi di lettura ── */
#ebookReaderModal.theme-dark {
  background: #111019 !important;
  color: #e5e4ed !important;
}
#ebookReaderModal.theme-dark #ebrTopbar,
#ebookReaderModal.theme-dark #ebrProgressbarStrip {
  background: rgba(17, 16, 25, 0.94) !important;
  border-color: rgba(255, 255, 255, 0.08) !important;
}

#ebookReaderModal.theme-sepia {
  background: #f6eedb !important;
  color: #403224 !important;
}
#ebookReaderModal.theme-sepia #ebrTopbar,
#ebookReaderModal.theme-sepia #ebrProgressbarStrip {
  background: rgba(246, 238, 219, 0.96) !important;
  border-color: rgba(64, 50, 36, 0.12) !important;
}
#ebookReaderModal.theme-sepia .ebr-btn-ctrl {
  background: rgba(64, 50, 36, 0.07) !important;
  border-color: rgba(64, 50, 36, 0.18) !important;
  color: #403224 !important;
}

#ebookReaderModal.theme-light {
  background: #faf7f2 !important;
  color: #201e28 !important;
}
#ebookReaderModal.theme-light #ebrTopbar,
#ebookReaderModal.theme-light #ebrProgressbarStrip {
  background: rgba(250, 247, 242, 0.96) !important;
  border-color: rgba(0, 0, 0, 0.1) !important;
}
#ebookReaderModal.theme-light .ebr-btn-ctrl {
  background: rgba(0, 0, 0, 0.05) !important;
  border-color: rgba(0, 0, 0, 0.15) !important;
  color: #201e28 !important;
}

#ebookReaderModal.theme-oled {
  background: #000000 !important;
  color: #dcdcdc !important;
}
#ebookReaderModal.theme-oled #ebrTopbar,
#ebookReaderModal.theme-oled #ebrProgressbarStrip {
  background: rgba(0, 0, 0, 0.96) !important;
  border-color: rgba(255, 255, 255, 0.06) !important;
}

/* ── Barra superiore & linea progresso ── */
#ebrTopbar {
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  z-index: 100;
}
#ebrTopProgressLine {
  position: absolute;
  top: 0;
  left: 0;
  height: 3px;
  background: linear-gradient(90deg, #f59e0b, #fbbf24);
  width: 0%;
  transition: width 0.12s ease-out;
  z-index: 101;
}

/* ── Tipografia & Layout del testo ── */
#ebrScrollContainer {
  scroll-behavior: smooth;
}
#ebrContentArea {
  margin: 0 auto;
  padding: 0 16px;
  box-sizing: border-box;
}

/* Font Families */
#ebrContentArea.font-serif {
  font-family: "Georgia", "Charter", "Iowan Old Style", "Times New Roman", serif !important;
}
#ebrContentArea.font-sans {
  font-family: -apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", Roboto, sans-serif !important;
}
#ebrContentArea.font-literata {
  font-family: "Literata", "Merriweather", "Palatino", serif !important;
}
#ebrContentArea.font-mono {
  font-family: "SF Mono", "Fira Code", "Courier New", monospace !important;
}

/* Line Spacing */
#ebrContentArea.spacing-compact { line-height: 1.6 !important; }
#ebrContentArea.spacing-normal { line-height: 1.85 !important; }
#ebrContentArea.spacing-spacious { line-height: 2.15 !important; }

/* Text Alignment */
#ebrContentArea.align-justify .ebr-chapter-body {
  text-align: justify !important;
  text-justify: inter-word !important;
  hyphens: auto !important;
  -webkit-hyphens: auto !important;
}
#ebrContentArea.align-left .ebr-chapter-body {
  text-align: left !important;
  hyphens: manual !important;
}

/* Stili specifici per i paragrafi e il corpo dei capitoli */
.ebr-chapter-body {
  font-size: inherit;
  line-height: inherit;
  word-wrap: break-word;
  overflow-wrap: break-word;
}
.ebr-chapter-body p {
  margin-top: 0 !important;
  margin-bottom: 1.25em !important;
  line-height: inherit !important;
  font-size: inherit !important;
}
.ebr-chapter-body h1,
.ebr-chapter-body h2,
.ebr-chapter-body h3,
.ebr-chapter-body h4 {
  font-weight: 700 !important;
  margin: 1.6em 0 0.8em 0 !important;
  line-height: 1.3 !important;
  color: #fbbf24 !important;
}
#ebookReaderModal.theme-light .ebr-chapter-body h1,
#ebookReaderModal.theme-light .ebr-chapter-body h2,
#ebookReaderModal.theme-light .ebr-chapter-body h3 {
  color: #b45309 !important;
}
#ebookReaderModal.theme-sepia .ebr-chapter-body h1,
#ebookReaderModal.theme-sepia .ebr-chapter-body h2,
#ebookReaderModal.theme-sepia .ebr-chapter-body h3 {
  color: #8c531b !important;
}

.ebr-chapter-body img {
  max-width: 100% !important;
  height: auto !important;
  display: block !important;
  margin: 22px auto !important;
  border-radius: 8px !important;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.25) !important;
}

.ebr-chapter-body blockquote {
  margin: 1.4em 0 !important;
  padding: 10px 18px !important;
  border-left: 3px solid #fbbf24 !important;
  background: rgba(251, 191, 36, 0.05) !important;
  font-style: italic !important;
}

/* ── DISABILITA E NEUTRALIZZA TASSATIVAMENTE TUTTI I LINK DAGLI EBOOK ── */
#ebrContentArea a,
#ebrContentArea a:link,
#ebrContentArea a:visited,
#ebrContentArea a:hover,
#ebrContentArea a:active,
.ebr-link-text,
.ebr-chapter-body a {
  pointer-events: none !important;
  cursor: text !important;
  text-decoration: none !important;
  color: inherit !important;
  user-select: text !important;
  border: none !important;
}

/* ── Segnalibri (Bookmarks) UI ── */
.ebr-bookmark-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 11px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.18);
  color: #fff;
  font-size: 11.5px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.15s ease;
}
.ebr-bookmark-btn:hover {
  background: rgba(245, 158, 11, 0.2);
  border-color: #f59e0b;
  color: #fbbf24;
}
.ebr-bookmark-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 6px;
  padding: 8px 10px;
  cursor: pointer;
  transition: background 0.15s;
}
.ebr-bookmark-item:hover {
  background: rgba(245, 158, 11, 0.15);
  border-color: rgba(245, 158, 11, 0.3);
}
.ebr-bookmark-del {
  background: transparent;
  border: none;
  color: rgba(255, 255, 255, 0.4);
  cursor: pointer;
  padding: 3px 6px;
  font-size: 13px;
  border-radius: 4px;
}
.ebr-bookmark-del:hover {
  color: #ef4444;
  background: rgba(239, 68, 68, 0.15);
}

/* Dropdown generici del lettore */
.ebr-dropdown {
  position: absolute;
  top: 100%;
  right: 0;
  margin-top: 6px;
  background: #181726;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 10px;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.75);
  padding: 10px;
  z-index: 100000;
}
#ebookReaderModal.theme-light .ebr-dropdown,
#ebookReaderModal.theme-sepia .ebr-dropdown {
  background: #ffffff;
  border-color: rgba(0, 0, 0, 0.15);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.18);
  color: #111;
}


.yt-card-meta{font-size:11.5px;color:var(--text-dim, rgba(255,255,255,.55));margin-top:2px;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.yt-new-badge{position:absolute;left:6px;top:6px;background:#e5484d;color:#fff;padding:1px 7px;border-radius:4px;font-size:10px;font-weight:800;letter-spacing:.06em;z-index:2}
.mobile-shell .yt-card-meta{font-size:10px}
.yt-prog{position:absolute;left:0;right:0;bottom:0;height:3px;background:rgba(255,255,255,.25);z-index:2}
.yt-prog i{display:block;height:100%;background:#e5484d}
.yt-chan-search-wrap{display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:8px 14px;margin-bottom:12px}
.yt-chan-search-wrap:focus-within{border-color:#e5484d;background:rgba(255,255,255,.08)}
.yt-chan-search-icon{font-size:14px;opacity:.7}
.yt-chan-search-input{flex:1;background:transparent;border:none;color:#fff;font:inherit;font-size:13.5px;outline:none}
.yt-chan-search-clear{background:none;border:none;color:rgba(255,255,255,.6);cursor:pointer;font-size:13px;padding:2px 6px}
.yt-chan-chips{display:flex;gap:8px;margin:0 0 12px;flex-wrap:wrap}
.yt-chan-chip{border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.08);color:inherit;font:inherit;font-size:12.5px;padding:6px 14px;border-radius:99px;cursor:pointer}
.yt-chan-chip.on{background:#fff;color:#0b0d12;font-weight:700;border-color:#fff}
html.newlook .yt-chan-chip.on{background:var(--nl-tone,#ffd9dc);color:#041017;font-weight:700;border-color:var(--nl-tone,#ffd9dc)}
.yt-chan-chip:focus-visible{outline:2px solid #fff;outline-offset:2px}

/* ── Hero riusabile (HubHero, js/hubhero.js): Manga, Libri, Music, YouTube, Live TV ── */
.hh-wrap .bb-img.hh-blur{ filter:blur(26px) saturate(1.25) brightness(.62); transform:scale(1.35); }
.hh-sub{ color:rgba(255,255,255,.86); font-weight:600; }
.bb-tag.hh-live{ display:inline-block; background:#e5484d; color:#fff; padding:3px 10px; border-radius:5px; }
.hh-prog{ height:3px; border-radius:2px; background:rgba(255,255,255,.28); overflow:hidden; max-width:340px; }
.hh-prog i{ display:block; height:100%; background:#e5484d; }
.hh-art{ position:absolute; z-index:1; }
.hh-art img{ display:block; width:100%; height:100%; object-fit:cover; border-radius:8px; box-shadow:0 18px 44px rgba(0,0,0,.7); background:#181622; }
.d-content .hh-wrap .bb{ height:clamp(440px, 62vh, 600px); }
.d-content .hh-wrap .bb-title{ font-size:clamp(30px, 3vw, 44px); }
.d-content .hh-wrap .bb-head{ min-height:0; margin-bottom:10px; }
.d-content .hh-sub{ font-size:16px; margin-bottom:8px; }
.d-content .hh-prog{ margin-top:14px; }
.d-content .hh-art{ right:8%; bottom:60px; width:clamp(180px, 17vw, 250px); aspect-ratio:2/3; }
.d-content .hh-art.sq, .d-content .hh-has-art .hh-art.sq{ aspect-ratio:1/1; }
.m-content .hh-wrap .bb{ height:clamp(540px, 148vw, 620px); }
.m-content .hh-wrap .bb-title{ font-size:26px; }
.m-content .hh-wrap .bb-head{ min-height:0; margin-bottom:8px; }
.m-content .hh-sub{ font-size:14px; margin-bottom:6px; text-align:center; }
.m-content .hh-prog{ width:80%; margin-top:12px; }
.m-content .hh-art{ left:50%; top:calc(var(--m-top-h, 56px) + 22px); transform:translateX(-50%); width:clamp(130px, 44vw, 184px); aspect-ratio:2/3; }
.m-content .hh-wrap .bb-btn:not(.primary){ padding:0 16px; height:46px; font-size:14px; }
.m-content .hh-wrap .bb-actions{ justify-content:center; }
.hh-wrap .bb-ov{ display:-webkit-box; }
.d-content .hh-art.sq, .m-content .hh-art.sq{ aspect-ratio:1/1; }
.d-content .hh-art.sq{ width:clamp(230px, 21vw, 310px); }
.m-content .hh-art.sq{ width:clamp(190px, 64vw, 250px); }
.hh-grad{ width:100%; height:100%; }
.hh-emoji{ position:absolute; z-index:1; line-height:1; filter:drop-shadow(0 12px 28px rgba(0,0,0,.55)); opacity:.95; pointer-events:none; }
.d-content .hh-emoji{ right:12%; bottom:90px; font-size:190px; }
.m-content .hh-emoji{ left:50%; top:calc(var(--m-top-h, 56px) + 34px); transform:translateX(-50%); font-size:130px; }

/* ── Hero Billboard con angoli arrotondati per Libri Hub e Manga Hub ── */
:is(.books-hub-container, .ebooks-hub, .manga-hub) .hh-wrap,
:is(.books-hub-container, .ebooks-hub, .manga-hub) .bb-wrap,
.hh-wrap[data-hh="ebooks"],
.hh-wrap[data-hh="manga"] {
  margin: 6px 0 32px 0 !important;
  border-radius: 24px !important;
  overflow: hidden !important;
  border: 1px solid rgba(255, 255, 255, 0.1) !important;
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.45) !important;
}
:is(.books-hub-container, .ebooks-hub, .manga-hub) .bb,
.hh-wrap[data-hh="ebooks"] .bb,
.hh-wrap[data-hh="manga"] .bb {
  border-radius: 24px !important;
  overflow: hidden !important;
  height: clamp(380px, 50vh, 500px) !important;
}
@media (max-width: 768px) {
  :is(.books-hub-container, .ebooks-hub, .manga-hub) .hh-wrap,
  :is(.books-hub-container, .ebooks-hub, .manga-hub) .bb-wrap,
  .hh-wrap[data-hh="ebooks"],
  .hh-wrap[data-hh="manga"] {
    margin: 4px 0 24px 0 !important;
    border-radius: 18px !important;
  }
  :is(.books-hub-container, .ebooks-hub, .manga-hub) .bb,
  .hh-wrap[data-hh="ebooks"] .bb,
  .hh-wrap[data-hh="manga"] .bb {
    border-radius: 18px !important;
    height: clamp(440px, 120vw, 540px) !important;
  }
}
html.newlook :is(.books-hub-container, .ebooks-hub, .manga-hub) .hh-wrap,
html.newlook .hh-wrap[data-hh="ebooks"],
html.newlook .hh-wrap[data-hh="manga"] {
  border-radius: 28px !important;
  border: 1px solid color-mix(in srgb, var(--nl-tone) 30%, rgba(255, 255, 255, 0.1)) !important;
}
html.newlook :is(.books-hub-container, .ebooks-hub, .manga-hub) .bb,
html.newlook .hh-wrap[data-hh="ebooks"] .bb,
html.newlook .hh-wrap[data-hh="manga"] .bb {
  border-radius: 28px !important;
}

/* ── Catalogo "Trova cosa guardare" ─────────────────────────────────── */
.cat2-head h2{ font-size:24px; font-weight:800; margin:6px 0 2px; }
.cat2-head p{ margin:0 0 10px; color:var(--text-muted, #8b93a7); font-size:13.5px; }
.cat2-h3{ font-size:15px; font-weight:800; margin:14px 0 8px; }
.cat2-tiles{ display:grid; grid-template-columns:repeat(4, 1fr); gap:10px; margin-bottom:14px; }
.cat2-tile{ position:relative; overflow:hidden; text-align:left; border:0; color:#fff; font:inherit; cursor:pointer; border-radius:12px; padding:12px 14px; min-height:70px; transition:transform .15s ease, filter .15s ease; }
.cat2-tile:hover{ transform:translateY(-2px); filter:brightness(1.1); }
.cat2-tile b{ display:block; font-size:14.5px; font-weight:800; line-height:1.15; max-width:78%; }
.cat2-tile small{ display:block; font-size:11px; opacity:.85; margin-top:3px; max-width:78%; }
.cat2-ic{ position:absolute; right:12px; top:12px; width:34px; height:34px; border-radius:10px; background:rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.18); display:flex; align-items:center; justify-content:center; }
.cat2-ic svg{ width:19px; height:19px; fill:none; stroke:#fff; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.cat2-chip{ flex:none; border:1px solid rgba(255,255,255,.14); background:rgba(255,255,255,.06); color:inherit; font:inherit; font-size:12px; padding:5.5px 11px; border-radius:99px; cursor:pointer; }
.cat2-chip:hover{ border-color:rgba(255,255,255,.3); }
.cat2-chip.on{ background:#fff; color:#0b0d12; font-weight:800; border-color:#fff; }
.cat2-chip.x{ background:rgba(229,72,77,.15); border-color:#e5484d; color:#ffb3b5; }
.cat2-active{ display:flex; flex-wrap:wrap; gap:7px; margin:6px 0 4px; }
.cat2-bar{ display:flex; align-items:center; gap:10px; margin:12px 0 10px; font-size:12.5px; color:var(--text-muted, #8b93a7); }
.cat2-bar .sp{ flex:1; }
.cat2-bar b{ color:#fff; }
.cat2-sort{ display:flex; align-items:center; gap:4px; flex-wrap:wrap; }
.cat2-sort button{ border:0; background:none; color:inherit; font:inherit; padding:3px 8px; border-radius:6px; cursor:pointer; }
.cat2-sort button.on{ color:#fff; font-weight:800; background:rgba(255,255,255,.1); }
.cat2-group{ margin-bottom:14px; }
.cat2-group h4{ margin:0 0 7px; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--text-muted, #8b93a7); font-weight:700; }
.cat2-chiprow{ display:flex; gap:6px; flex-wrap:wrap; }
.cat2-chiprow.wrap{ flex-wrap:wrap; }
.cat2-opt{ display:flex; justify-content:space-between; align-items:center; width:100%; border:0; background:none; color:rgba(255,255,255,.8); font:inherit; font-size:13px; padding:5px 0; cursor:pointer; text-align:left; }
.cat2-opt.on{ color:#fff; font-weight:800; }
.cat2-opt b{ color:#46d369; }
.cat2-dot{ display:inline-block; width:9px; height:9px; border-radius:50%; margin-right:8px; }
.cat2-rate{ position:absolute; right:6px; bottom:6px; z-index:2; font-size:10px; font-weight:800; color:#ffc94d; background:rgba(0,0,0,.72); backdrop-filter:blur(4px); border:1px solid rgba(255,255,255,.15); padding:2px 6px; border-radius:4px; }
/* desktop: filtri sempre visibili a sinistra */
.cat2-d{ display:grid; grid-template-columns:250px 1fr; gap:32px; align-items:start; }
.cat2-d .cat2-side{ position:sticky; top:80px; max-height:calc(100vh - 100px); overflow-y:auto; overflow-x:hidden; padding:16px 14px; background:rgba(255,255,255,.025); border:1px solid var(--hairline); border-radius:16px; scrollbar-width:thin; }
.cat2-side-h{ font-weight:800; font-size:15px; margin-bottom:14px; display:flex; align-items:center; justify-content:space-between; }
.cat2-d .catalogue-grid{ grid-template-columns:repeat(auto-fill, minmax(160px, 1fr)) !important; gap:24px 18px !important; }
/* telefono: riquadri 2x2 e pannello filtri a scomparsa */
.cat2-m .cat2-tiles{ grid-template-columns:1fr 1fr; }
.cat2-m .cat2-tile b{ font-size:13.5px; }
.cat2-filter-btn{ width:100%; display:flex; justify-content:space-between; align-items:center; border:1px solid rgba(255,255,255,.14); background:rgba(255,255,255,.06); color:#fff; font:inherit; font-weight:700; font-size:14px; padding:11px 14px; border-radius:12px; cursor:pointer; margin-bottom:8px; }
.cat2-panel{ border:1px solid rgba(255,255,255,.1); background:rgba(255,255,255,.03); border-radius:12px; padding:14px 14px 4px; margin-bottom:10px; }
@media (max-width:900px){ .cat2-tiles{ grid-template-columns:1fr 1fr; } }
.hh-skel-art{ box-shadow:none; }

/* Hero YouTube / Wide billboard: miniatura 16:9 con profondità, titolo clampato e altezza calibrata */
.hh-wrap.hh-wide .bb-title,
.hh-wrap[data-hh="youtube"] .bb-title{
  font-size:clamp(20px, 2.3vw, 32px) !important;
  line-height:1.2 !important;
  display:-webkit-box !important;
  -webkit-line-clamp:2 !important;
  line-clamp:2 !important;
  -webkit-box-orient:vertical !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  word-break:break-word !important;
  max-height:2.5em !important;
}
.d-content .hh-wrap.hh-wide .bb-info,
.d-content .hh-wrap[data-hh="youtube"] .bb-info{
  width:min(580px, 50vw);
  bottom:46px;
}
.d-content .hh-wrap .bb.hh-wide{ height:clamp(360px, 48vh, 460px); }
.m-content .hh-wrap .bb.hh-wide{ height:clamp(440px, 120vw, 500px); }

.hh-art.wide{
  aspect-ratio:16/9; overflow:hidden; border-radius:14px; cursor:pointer;
  border:1px solid rgba(255,255,255,.16);
  box-shadow:0 18px 46px rgba(0,0,0,.75), 0 0 0 1px rgba(255,255,255,.1);
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.hh-art.wide:hover{
  transform:translateY(-3px) scale(1.02);
  box-shadow:0 24px 54px rgba(0,0,0,.9), 0 0 0 1px rgba(255,255,255,.3);
  border-color:rgba(255,255,255,.3);
}
.hh-art.wide img{ border-radius:0; box-shadow:none; }
.hh-art.wide .hh-play{
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  width:52px; height:52px; border-radius:50%;
  background:color-mix(in srgb, var(--dd-red, #e50914) 92%, transparent); border:2px solid rgba(255,255,255,.6);
  box-shadow:0 6px 20px color-mix(in srgb, var(--dd-red, #e50914) 50%, transparent), 0 2px 8px rgba(0,0,0,.4);
  backdrop-filter:blur(4px);
  transition:transform .2s ease, background .2s ease, box-shadow .2s ease;
}
.hh-art.wide:hover .hh-play{
  transform:translate(-50%,-50%) scale(1.12);
  background:#ff0033;
  box-shadow:0 8px 24px rgba(255,0,51,.65);
}
.hh-art.wide .hh-play::after{
  content:""; position:absolute; left:20px; top:15px;
  border-left:16px solid #fff; border-top:10px solid transparent; border-bottom:10px solid transparent;
}
.hh-dur{ position:absolute; right:8px; bottom:8px; font-style:normal; font-size:11.5px; font-weight:700; background:rgba(0,0,0,.82); padding:2px 7px; border-radius:4px; }
.d-content .hh-art.wide{ right:6%; bottom:68px; width:clamp(290px, 26vw, 410px); }
.m-content .hh-art.wide{ top:calc(var(--m-top-h, 56px) + 12px); width:min(calc(100% - 44px), 420px); }

/* Hero senza copertina (Live TV: gradiente + emoji): più basso */
.d-content .hh-wrap .bb:not(.hh-has-art){ height:clamp(340px, 46vh, 440px); }
.m-content .hh-wrap .bb:not(.hh-has-art){ height:clamp(420px, 112vw, 470px); }
.m-content .hh-emoji{ top:calc(var(--m-top-h, 56px) + 24px); font-size:100px; }
.d-content .hh-emoji{ font-size:150px; bottom:80px; }

/* ============================== IMPARA (corsi) ============================== */
.ln-entry{
  margin-top:12px; display:inline-flex; align-items:center; gap:6px;
  background:rgba(132,204,22,.12); border:1px solid rgba(132,204,22,.4); color:var(--learn);
  border-radius:20px; padding:7px 14px; font-size:12.5px; font-weight:700; cursor:pointer;
}
.ln-entry:hover{ background:rgba(132,204,22,.2); }
.yt-header .ln-rule{ background:var(--learn); }
.ln-goal{
  display:grid; grid-template-columns:minmax(0,2.2fr) minmax(0,1fr) minmax(0,1fr); gap:10px;
  margin:4px 0 16px;
}
.ln-goal > div{ background:var(--surface); border:1px solid var(--hairline); border-radius:14px; padding:14px 16px; }
.ln-goal-lab{ font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--text-muted); font-weight:700; }
.ln-goal-num{ display:flex; align-items:baseline; gap:8px; margin:4px 0 8px; }
.ln-goal-num b{ font-size:28px; color:var(--learn); font-weight:800; }
.ln-goal-num span{ font-size:13px; color:var(--text-muted); }
.ln-bar{ height:5px; border-radius:3px; background:rgba(255,255,255,.12); overflow:hidden; }
.ln-bar i{ display:block; height:100%; background:var(--learn); border-radius:3px; }
.ln-bar.big{ height:7px; margin:10px 0 14px; max-width:420px; }
.ln-goal-set{ display:flex; align-items:center; gap:8px; margin-top:10px; font-size:11.5px; color:var(--text-muted); }
.ln-mini{
  width:24px; height:24px; border-radius:50%; border:1px solid var(--hairline); background:var(--surface-2);
  color:var(--text); font-size:15px; line-height:1; cursor:pointer;
}
.ln-mini:hover{ background:var(--surface-3); }
.ln-stat{ display:flex; flex-direction:column; justify-content:center; }
.ln-stat b{ font-size:24px; font-weight:800; color:var(--text); }
.ln-stat span{ font-size:11.5px; color:var(--text-muted); margin-top:2px; }
.ln-chip.active{ background:var(--learn); border-color:var(--learn); color:#0f1a02; }
.ln-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:18px; }
.ln-card{
  display:block; text-align:left; background:none; border:0; padding:0; color:inherit; cursor:pointer; min-width:0;
}
.ln-thumb{
  position:relative; aspect-ratio:16/9; border-radius:12px; overflow:hidden;
  background:var(--surface-2) center/cover no-repeat; margin-bottom:8px;
  border:1px solid var(--hairline);
}
.ln-card:hover .ln-thumb{ border-color:rgba(132,204,22,.6); }
.ln-thumb-n{
  position:absolute; right:6px; bottom:8px; background:rgba(0,0,0,.78); color:#fff;
  font-size:11px; font-weight:700; padding:1px 6px; border-radius:4px;
}
.ln-thumb-bar{ position:absolute; left:0; right:0; bottom:0; height:3px; background:rgba(255,255,255,.25); }
.ln-thumb-bar i{ display:block; height:100%; background:var(--learn); }
.ln-card-t{ font-size:14px; font-weight:700; line-height:1.3; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.ln-card-a{ font-size:12px; color:var(--text-muted); margin-top:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ln-card-m{ font-size:11.5px; color:var(--text-faint); margin-top:2px; }
.ln-strip{ display:flex; gap:14px; overflow-x:auto; padding-bottom:6px; scrollbar-width:none; }
.ln-strip::-webkit-scrollbar{ display:none; }
.ln-card-strip{ flex:none; width:230px; }
.ln-course-head{ display:flex; gap:26px; align-items:flex-start; margin:8px 0 26px; }
.ln-course-thumb{
  flex:none; width:min(44%,420px); aspect-ratio:16/9; border-radius:14px;
  background:var(--surface-2) center/cover no-repeat; border:1px solid var(--hairline);
}
.ln-course-info{ flex:1; min-width:0; }
.ln-badge{
  display:inline-block; font-size:10px; font-weight:800; letter-spacing:.1em; color:var(--learn);
  background:rgba(132,204,22,.14); border-radius:5px; padding:2px 8px;
}
.ln-course-info h2{ font-size:26px; margin:8px 0 4px; font-weight:800; line-height:1.2; }
.ln-course-a{ font-size:13.5px; color:var(--text-muted); }
.ln-course-d{ font-size:14px; color:var(--text); opacity:.85; margin:12px 0 8px; max-width:560px; line-height:1.5; }
.ln-course-m{ font-size:12.5px; color:var(--text-muted); }
.ln-main-btn{ background:var(--learn); border-color:var(--learn); color:#0f1a02; }
.ln-lessons{ display:flex; flex-direction:column; border:1px solid var(--hairline); border-radius:14px; overflow:hidden; background:var(--surface); }
.ln-lesson{
  display:grid; grid-template-columns:34px minmax(0,1fr) auto; align-items:center; gap:12px;
  width:100%; text-align:left; background:none; border:0; border-bottom:1px solid var(--hairline);
  color:var(--text); padding:12px 16px; cursor:pointer; font-size:13.5px;
}
.ln-lesson:last-child{ border-bottom:0; }
.ln-lesson:hover{ background:var(--surface-2); }
.ln-lesson-i{ font-weight:800; color:var(--text-faint); text-align:center; }
.ln-lesson.done .ln-lesson-i{ color:var(--learn); }
.ln-lesson.done .ln-lesson-t{ color:var(--text-muted); }
.ln-lesson.cur{ background:rgba(132,204,22,.1); }
.ln-lesson.cur .ln-lesson-i, .ln-lesson.cur .ln-lesson-t{ color:var(--learn); font-weight:700; }
.ln-lesson-t{ min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ln-lesson-d{ color:var(--text-muted); font-size:12px; font-variant-numeric:tabular-nums; }
.ln-notes{ display:flex; flex-direction:column; gap:8px; }
.ln-note{
  display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:12px; align-items:center;
  background:var(--surface); border:1px solid var(--hairline); border-radius:12px; padding:10px 12px;
}
.ln-note-go{
  display:flex; flex-direction:column; align-items:flex-start; background:rgba(132,204,22,.12);
  border:1px solid rgba(132,204,22,.35); border-radius:8px; color:var(--learn); padding:4px 10px; cursor:pointer;
}
.ln-note-go b{ font-size:13px; font-variant-numeric:tabular-nums; }
.ln-note-go span{ font-size:10px; opacity:.8; }
.ln-note-x{ font-size:13.5px; line-height:1.4; word-break:break-word; }
.ln-note-del{ background:none; border:0; color:var(--text-faint); cursor:pointer; font-size:14px; padding:6px; }
.ln-note-del:hover{ color:var(--danger); }
@media (max-width:900px){
  .ln-goal{ grid-template-columns:1fr 1fr; }
  .ln-goal > div:first-child{ grid-column:1 / -1; }
  .ln-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
  .ln-course-head{ flex-direction:column; gap:14px; }
  .ln-course-thumb{ width:100%; }
  .ln-course-info h2{ font-size:22px; }
  .ln-card-strip{ width:200px; }
  .ln-lesson{ padding:12px; gap:10px; }
}

/* Copertine di Impara (nostre, non miniature YouTube) */
.ln-cover{
  position:relative; width:100%; height:100%; overflow:hidden; color:#fff; container-type:inline-size;
  background:linear-gradient(135deg, var(--c1) 0%, var(--c2) 82%);
}
.ln-cover::after{ content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(0,0,0,.42) 0%, rgba(0,0,0,0) 62%); pointer-events:none; }
.ln-cover-pat{ position:absolute; inset:0; width:100%; height:100%; }
.ln-cover-in{ position:absolute; z-index:1; left:6%; right:40%; bottom:7%; display:flex; flex-direction:column; gap:1.5%; }
.ln-cover-cat{
  align-self:flex-start; font-size:10px; font-weight:800; letter-spacing:.09em; text-transform:uppercase;
  background:rgba(0,0,0,.34); border-radius:4px; padding:2px 6px; margin-bottom:4px;
}
.ln-cover-title{ font-weight:800; line-height:1.12; font-size:15px; text-shadow:0 1px 8px rgba(0,0,0,.35); display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.ln-cover-au{ font-size:10.5px; opacity:.85; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
@supports (font-size:1cqw){
  .ln-cover-cat{ font-size:max(8px, 3cqw); }
  .ln-cover-title{ font-size:max(12px, 7.6cqw); }
  .ln-cover-au{ font-size:max(9px, 3.4cqw); }
}
.ln-thumb{ background:none; }
.ln-thumb .ln-cover{ position:absolute; inset:0; }
.ln-thumb-n, .ln-thumb-bar{ z-index:2; }
.ln-course-thumb{ background:none; position:relative; overflow:hidden; }
.hh-art.hh-art-html{ box-shadow:0 18px 44px rgba(0,0,0,.55); }
.hh-art.hh-art-html .ln-cover{ position:absolute; inset:0; }
.ln-search{ margin:0 0 12px; }
.ln-levels{ margin-top:8px; }
.ln-level.active{ background:var(--surface-3); border-color:var(--learn); color:var(--learn); }
.ln-clear{ margin-left:10px; background:none; border:1px solid var(--hairline); color:var(--text-muted); border-radius:14px; padding:2px 10px; font-size:11.5px; cursor:pointer; }
.ln-lesson-t small{ color:var(--text-faint); font-size:11.5px; }
.ln-lv{ display:inline-block; font-size:10px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; border-radius:4px; padding:1px 6px; margin-right:4px; background:rgba(255,255,255,.08); color:var(--text-muted); }
.ln-lv-base{ background:rgba(52,211,153,.15); color:#34d399; }
.ln-lv-intermedio{ background:rgba(245,183,0,.15); color:#f5b700; }
.ln-lv-avanzato{ background:rgba(242,97,122,.15); color:#f2617a; }
.hh-art-html .hh-play{ left:auto; top:auto; right:12px; bottom:12px; transform:none; width:40px; height:40px; }
.hh-art-html .hh-play::after{ left:16px; top:11px; border-left:13px solid #fff; border-top:8px solid transparent; border-bottom:8px solid transparent; }
.hh-art-html .hh-dur{ top:8px; bottom:auto; }
.ln-cover-in{ right:34% !important; }
.ln-cover-title{ overflow-wrap:anywhere; hyphens:auto; }
@supports (font-size:1cqw){ .ln-cover-title{ font-size:max(12px, 6.8cqw); } }
.ln-cover-cat{ white-space:nowrap; }
.ln-thumb-n{ position:absolute; right:8px; bottom:8px; z-index:2; }
.yt-header .ln-eyebrow{ color:var(--learn); }
.ln-search .btn-primary{ background:var(--learn); border-color:var(--learn); color:#0f1a02; }

/* Impara: percorsi & tappe ordinate */
.ln-path .ln-card-m{ display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; white-space:normal; }
.ln-path-timeline{ display:flex; flex-direction:column; gap:0; margin-top:14px; max-width:980px; }
.ln-path-step{ display:flex; align-items:stretch; position:relative; padding-bottom:20px; }
.ln-path-step:last-child{ padding-bottom:0; }
.ln-step-num-col{ display:flex; flex-direction:column; align-items:center; margin-right:18px; flex-shrink:0; width:44px; }
.ln-step-badge{ width:42px; height:42px; border-radius:50%; background:var(--learn); color:#0f1a02; font-weight:900; font-size:17px; display:flex; align-items:center; justify-content:center; box-shadow:0 4px 14px rgba(132,204,22,.35); flex-shrink:0; z-index:2; }
.ln-path-step.done .ln-step-badge{ background:#10b981; color:#fff; box-shadow:0 4px 14px rgba(16,185,129,.3); }
.ln-step-connector{ flex:1; width:2px; background:rgba(255,255,255,.12); margin-top:8px; margin-bottom:-12px; }
.ln-path-step:last-child .ln-step-connector{ display:none; }
.ln-step-card{ flex:1; min-width:0; display:flex; align-items:center; background:var(--surface); border:1px solid var(--hairline); border-radius:16px; padding:14px 18px; gap:18px; transition:all .2s cubic-bezier(0.2,0,0,1); text-align:left; cursor:pointer; }
.ln-step-card:hover{ background:var(--surface-hover, rgba(255,255,255,.05)); border-color:rgba(132,204,22,.4); transform:translateY(-2px); box-shadow:0 8px 24px rgba(0,0,0,.35); }
.ln-step-media{ width:160px; flex-shrink:0; aspect-ratio:16/9; border-radius:10px; overflow:hidden; position:relative; background:var(--surface-2); border:1px solid rgba(255,255,255,.08); }
.ln-step-body{ flex:1; min-width:0; display:flex; flex-direction:column; gap:5px; }
.ln-step-meta{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; font-size:12px; color:var(--text-faint); }
.ln-step-title{ font-size:16px; font-weight:700; color:#fff; line-height:1.35; margin:0; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.ln-step-author{ font-size:12.5px; color:var(--text-muted); }
.ln-step-progress{ font-size:12px; color:var(--learn); font-weight:600; }
.ln-step-actions{ flex-shrink:0; display:flex; align-items:center; gap:10px; }
.ln-step-btn{ padding:8px 16px; font-size:13px; font-weight:700; border-radius:10px; white-space:nowrap; }
@media (max-width: 680px) {
  .ln-step-card{ flex-direction:column; align-items:stretch; padding:12px; gap:12px; }
  .ln-step-media{ width:100%; aspect-ratio:16/9; }
  .ln-step-num-col{ margin-right:12px; width:36px; }
  .ln-step-badge{ width:36px; height:36px; font-size:15px; }
}

/* Impara: provenienza del corso */
.ln-src{ position:absolute; z-index:3; top:6px; left:6px; font-size:10.5px; font-weight:800; letter-spacing:.02em; padding:2px 7px; border-radius:4px; backdrop-filter:blur(4px); }
.ln-src-yt{ background:rgba(220,38,38,.92); color:#fff; }
.ln-src-cur{ background:rgba(132,204,22,.92); color:#0f1a02; }
.ln-src-protected{ background:rgba(16,185,129,.92); color:#fff; box-shadow:0 2px 6px rgba(0,0,0,.4); }
.ln-src-inline{ position:static; display:inline-block; margin-left:6px; vertical-align:middle; }
.ln-src-note{ font-size:12.5px; color:var(--text-muted); margin:-4px 0 12px; }
.ln-quick-mentors{ margin:8px 0 14px; }
.ln-quick-label{ font-size:11.5px; color:var(--text-muted); font-weight:600; text-transform:uppercase; letter-spacing:.04em; display:block; margin-bottom:6px; }
.ln-quick-tags{ display:flex; flex-wrap:wrap; gap:6px; }
.ln-quick-tag{ background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1); border-radius:14px; padding:3px 10px; font-size:11.5px; color:var(--text); cursor:pointer; transition:all .15s ease; }
.ln-quick-tag:hover{ background:rgba(132,204,22,.18); border-color:var(--learn); color:var(--learn); transform:translateY(-1px); }

/* Impara: lettura dei libri di testo (Wikibooks) */
.ln-src-wb{ background:rgba(250,204,21,.94); color:#2a1f00; }
.ln-reader{ max-width:820px; }
.ln-read-head h2{ margin:10px 0 14px; font-size:26px; line-height:1.2; text-wrap:balance; }
.ln-read{ font-size:16.5px; line-height:1.72; color:var(--text); overflow-wrap:anywhere; }
.ln-read p{ margin:0 0 1.05em; }
.ln-read h1,.ln-read h2,.ln-read h3,.ln-read h4{ line-height:1.25; margin:1.5em 0 .55em; }
.ln-read h2{ font-size:22px; } .ln-read h3{ font-size:18.5px; } .ln-read h4{ font-size:16.5px; }
.ln-read img{ max-width:100%; height:auto; border-radius:6px; background:#fff; }
.ln-read a{ color:var(--learn); }
.ln-read ul,.ln-read ol{ padding-left:1.4em; margin:0 0 1.05em; }
.ln-read blockquote{ margin:1em 0; padding:.2em 1em; border-left:3px solid var(--learn); color:var(--text-muted); }
.ln-read pre,.ln-read code{ font-family:ui-monospace,Menlo,Consolas,monospace; font-size:14px; }
.ln-read pre{ background:var(--surface-2); padding:12px 14px; border-radius:8px; overflow-x:auto; line-height:1.5; }
.ln-read code{ background:var(--surface-2); padding:1px 5px; border-radius:4px; }
.ln-read pre code{ background:none; padding:0; }
.ln-read table{ display:block; max-width:100%; overflow-x:auto; border-collapse:collapse; margin:0 0 1.2em; font-size:14.5px; }
.ln-read th,.ln-read td{ border:1px solid var(--hairline); padding:6px 10px; }
.ln-read math{ font-size:1.08em; }
/* Barre di navigazione e riquadri interni di Wikibooks: nell'app non servono */
.ln-read .NavFrame,.ln-read .sommario-v-content,.ln-read .sommario-v-footer,.ln-read .lettit-menu,.ln-read .mw-inputbox-centered,
.ln-read .avz_placeholder,.ln-read .avz\&\#95\;placeholder,.ln-read table.capitolo,.ln-read .noprint,.ln-read .mw-editsection,.ln-read .toc{ display:none !important; }
.ln-read-src{ font-size:12px; color:var(--text-faint); margin:26px 0 18px; }
.ln-read-nav{ display:flex; gap:10px; flex-wrap:wrap; align-items:center; justify-content:space-between; margin:8px 0 40px; }
.ln-read-nav .ln-main-btn{ flex:1 1 220px; }
.ln-nav-btn{ background:var(--surface-2); color:var(--text); border:1px solid var(--hairline); border-radius:10px; padding:11px 16px; font-weight:700; font-size:14px; cursor:pointer; }
.ln-nav-btn:disabled{ opacity:.4; cursor:default; }

.ln-strip-item{ flex:none; width:230px; }

/* ── Navigazione mobile: aree + barra contestuale + Esplora ── */
.m-area-pill{ appearance:none; display:flex; align-items:center; gap:7px; background:var(--surface-2); border:1px solid var(--hairline); color:var(--text); padding:5px 10px 5px 6px; border-radius:22px; font:inherit; font-weight:800; font-size:14.5px; cursor:pointer; flex-shrink:0; }
.m-area-pill i{ width:26px; height:26px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff; font-style:normal; }
.m-area-pill i svg{ width:15px; height:15px; }
.m-area-pill .chev{ color:var(--text-muted); display:flex; } .m-area-pill .chev svg{ width:14px; height:14px; }
/* Fuori dalla barra in alto: Calendario, Mappa trend e Impara vivono in Esplora e nella barra in basso */
.m-right #mCalendarBtn, .m-right #mTrendBtn, .m-right #mLearnBtn{ display:none !important; }
.m-right{ max-width:none; }
.m-right #mDiscoveryBtn, .m-right #mMusicDiscoveryBtn{ display:flex; }
.m-right #mDiscoveryBtn[hidden], .m-right #mMusicDiscoveryBtn[hidden]{ display:none !important; }
/* Barra in basso: a tutta larghezza, con il nome di ogni voce */
.m-tabbar{
  left:50%; right:auto; bottom:0; transform:translateX(-50%); max-width:430px; width:100%; border-radius:0; border:none; border-top:1px solid var(--hairline);
  background:rgba(12,12,19,.97); padding:6px 6px calc(8px + env(safe-area-inset-bottom, 0px)); gap:0; justify-content:space-around; overflow:visible; box-shadow:0 -10px 30px rgba(0,0,0,.45);
}
.m-tabbar .m-tab{ flex:1 1 0; flex-direction:column; gap:3px; height:54px; min-width:0; padding:0 2px; border-radius:14px; }
.m-tabbar .m-tab .lbl{ max-width:none; opacity:1; font-size:10.5px; font-weight:700; }
.m-tabbar .m-tab .ic{ position:relative; }
.m-tabbar .m-tab.active{ background:rgba(255,255,255,.09); box-shadow:none; padding:0 2px; color:#fff; }
.m-tabbar .m-tab.active .ic{ color:var(--accent); }
.m-tab-badge{ position:absolute; top:-5px; right:-9px; background:var(--accent); color:#fff; border-radius:9px; font-size:9px; font-weight:800; padding:1px 5px; line-height:1.2; }
@media (max-width:430px){ .m-tabbar{ padding:5px 4px calc(8px + env(safe-area-inset-bottom, 0px)); } .m-tabbar .m-tab{ height:52px; padding:0 1px; } .m-tabbar .m-tab.active{ padding:0 1px; } }
.m-content{ padding-bottom:calc(88px + env(safe-area-inset-bottom, 0px)); }
/* Foglio delle aree */
.ar-overlay{ position:fixed; inset:0; z-index:300; }
.ar-veil{ position:absolute; inset:0; background:rgba(0,0,0,.62); opacity:0; transition:opacity .2s; }
.ar-overlay.open .ar-veil{ opacity:1; }
.ar-sheet{ position:absolute; left:0; right:0; bottom:0; max-width:430px; margin:0 auto; background:#12121a; border-radius:26px 26px 0 0; padding:12px 14px calc(22px + env(safe-area-inset-bottom, 0px)); border-top:1px solid var(--hairline); transform:translateY(100%); transition:transform .25s ease; }
.ar-overlay.open .ar-sheet{ transform:none; }
.ar-grab{ width:40px; height:4px; border-radius:2px; background:#3a3850; margin:0 auto 12px; }
.ar-sheet h3{ margin:0 0 12px 4px; font-size:17px; }
.ar-grid{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.ar-card{ appearance:none; border:none; color:#fff; text-align:left; font:inherit; border-radius:16px; padding:12px; min-height:84px; display:flex; flex-direction:column; justify-content:space-between; gap:8px; cursor:pointer; position:relative; }
.ar-card.cur{ outline:2.5px solid #fff; }
.ar-card b{ font-size:15px; display:block; } .ar-card small{ font-size:11px; opacity:.85; line-height:1.25; display:block; margin-top:1px; }
.ar-ic{ width:32px; height:32px; border-radius:10px; background:rgba(255,255,255,.2); display:flex; align-items:center; justify-content:center; } .ar-ic svg{ width:18px; height:18px; }
.ar-more{ appearance:none; width:100%; margin-top:12px; background:none; border:1px solid var(--hairline); color:var(--text-muted); font:inherit; font-weight:700; font-size:13.5px; padding:11px; border-radius:12px; cursor:pointer; }
/* Pagina Esplora */
.ex-page{ padding-top:6px; }
.ex-title{ font-size:24px; margin:4px 0 2px; }
.ex-sec{ font-size:11px; font-weight:800; letter-spacing:.12em; color:var(--text-muted); margin:18px 2px 9px; }
.ex-grid{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.ex-tile{ appearance:none; text-align:left; font:inherit; color:var(--text); background:var(--surface); border:1px solid var(--hairline); border-radius:16px; padding:12px; display:flex; flex-direction:column; gap:7px; min-height:96px; cursor:pointer; }
.ex-ic{ width:38px; height:38px; border-radius:11px; display:flex; align-items:center; justify-content:center; color:#fff; } .ex-ic svg{ width:20px; height:20px; }
.ex-tile b{ font-size:14.5px; } .ex-tile small{ color:var(--text-muted); font-size:11.5px; line-height:1.25; }

/* Con la nuova barra in alto c'è posto per l'Assistente anche sui telefoni piccoli */
.m-right #mDiscoveryBtn:not([hidden]), .m-right #mMusicDiscoveryBtn:not([hidden]){ display:flex !important; }

/* Impara: interruttore Corsi video / Libri da leggere */
.ln-modes{ display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:2px 0 14px; }
.ln-mode{ appearance:none; display:flex; align-items:center; gap:10px; text-align:left; font:inherit; color:var(--text); background:var(--surface); border:1px solid var(--hairline); border-radius:14px; padding:11px 12px; cursor:pointer; }
.ln-mode b{ display:block; font-size:14.5px; } .ln-mode small{ display:block; color:var(--text-muted); font-size:11.5px; margin-top:1px; }
.ln-mode-ic{ width:34px; height:34px; border-radius:10px; display:flex; align-items:center; justify-content:center; background:var(--surface-3); font-size:15px; flex:none; }
.ln-mode.on{ border-color:var(--learn); background:rgba(132,204,22,.1); }
.ln-mode.on .ln-mode-ic{ background:var(--learn); color:#0f1a02; }
.ln-mode-read.on{ border-color:#facc15; background:rgba(250,204,21,.1); }
.ln-mode-read.on .ln-mode-ic{ background:#facc15; }
.ln-books-intro{ font-size:13px; color:var(--text-muted); margin:-4px 0 12px; }
@media (max-width:400px){ .ln-mode{ padding:9px 9px; gap:8px; } .ln-mode b{ font-size:13.5px; } .ln-mode small{ font-size:10.5px; } .ln-mode-ic{ width:30px; height:30px; } }

/* Impara: ripasso a ripetizione spaziata */
.ln-review{ appearance:none; width:100%; display:flex; align-items:center; gap:12px; text-align:left; font:inherit; color:var(--text); background:linear-gradient(135deg,rgba(132,204,22,.16),rgba(132,204,22,.05)); border:1px solid rgba(132,204,22,.5); border-radius:16px; padding:13px 14px; margin:0 0 14px; cursor:pointer; }
.ln-review-ic{ width:40px; height:40px; border-radius:12px; background:var(--learn); color:#0f1a02; display:flex; align-items:center; justify-content:center; font-size:19px; flex:none; }
.ln-review-t{ flex:1; min-width:0; } .ln-review-t b{ display:block; font-size:15px; } .ln-review-t small{ display:block; color:var(--text-muted); font-size:12px; margin-top:2px; line-height:1.35; }
.ln-review-go{ font-weight:800; font-size:13px; color:var(--learn); flex:none; }
.ln-review-empty,.ln-review-done{ cursor:default; background:var(--surface); border:1px dashed var(--hairline); }
.ln-review-empty .ln-review-ic,.ln-review-done .ln-review-ic{ background:var(--surface-3); color:var(--text-muted); }
.ln-rev{ max-width:640px; }
.ln-rev-top{ display:flex; align-items:center; gap:12px; margin:10px 0 14px; font-size:13px; color:var(--text-muted); font-weight:700; } .ln-rev-top .ln-bar{ flex:1; }
.ln-rev-card{ background:var(--surface); border:1px solid var(--hairline); border-radius:20px; padding:22px 20px; min-height:260px; }
.ln-rev-kicker{ font-size:11px; font-weight:800; letter-spacing:.12em; color:var(--learn); margin-bottom:12px; }
.ln-rev-prompt{ font-size:14px; color:var(--text-muted); margin-bottom:8px; }
.ln-rev-front{ font-size:21px; font-weight:800; line-height:1.3; text-wrap:balance; }
.ln-rev-where{ font-size:12.5px; color:var(--text-faint); margin-top:10px; }
.ln-rev-sep{ height:1px; background:var(--hairline); margin:18px 0; }
.ln-rev-back{ font-size:17px; line-height:1.55; }
.ln-rev-open{ appearance:none; margin-top:14px; background:none; border:1px solid var(--hairline); color:var(--learn); font:inherit; font-weight:700; font-size:13px; padding:8px 14px; border-radius:20px; cursor:pointer; }
.ln-rev-show{ width:100%; margin-top:16px; }
.ln-rev-q{ font-size:13px; color:var(--text-muted); text-align:center; margin:16px 0 8px; }
.ln-rev-btns{ display:grid; grid-template-columns:repeat(4,1fr); gap:8px; }
.ln-rate{ appearance:none; border:1px solid var(--hairline); background:var(--surface-2); color:var(--text); font:inherit; border-radius:12px; padding:10px 4px; cursor:pointer; text-align:center; }
.ln-rate b{ display:block; font-size:13px; } .ln-rate small{ display:block; font-size:10.5px; color:var(--text-muted); margin-top:2px; }
.ln-rate.r0{ border-color:rgba(239,68,68,.55); } .ln-rate.r1{ border-color:rgba(245,183,0,.55); } .ln-rate.r2{ border-color:rgba(52,211,153,.55); } .ln-rate.r3{ border-color:rgba(77,163,255,.55); }
.ln-rev-end{ text-align:center; padding:30px 10px; display:flex; flex-direction:column; align-items:center; gap:10px; }
.ln-rev-emoji{ font-size:46px; } .ln-rev-end h2{ margin:0; } .ln-rev-end p{ margin:0; } .ln-rev-sub{ color:var(--text-muted); font-size:13.5px; }

/* ── Docu: canali in stile TV ── */
:root{ --docu:#14b8a6; }
.dc-eyebrow{ color:var(--docu); } .dc-rule{ background:var(--docu); }
.dc-hero{ position:relative; border-radius:20px; overflow:hidden; min-height:230px; display:flex; flex-direction:column; justify-content:space-between; padding:14px; background:linear-gradient(135deg,var(--c1),var(--c2)); margin:6px 0 4px; }
.dc-hero-bg{ position:absolute; inset:0; background-size:cover; background-position:center; opacity:.55; filter:saturate(1.1); }
.dc-hero-shade{ position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,.25) 0%,rgba(0,0,0,.2) 35%,rgba(0,0,0,.82) 100%); }
.dc-hero > *:not(.dc-hero-bg):not(.dc-hero-shade){ position:relative; z-index:1; }
.dc-hero-top{ display:flex; justify-content:space-between; align-items:center; }
.dc-live{ background:#e50914; color:#fff; font-size:10.5px; font-weight:900; padding:3px 8px; border-radius:6px; letter-spacing:.06em; }
.dc-src{ font-size:9.5px; font-weight:800; padding:2px 7px; border-radius:5px; color:#fff; letter-spacing:.03em; white-space:nowrap; }
.dc-src-yt{ background:rgba(220,38,38,.92); } .dc-src-cat{ background:rgba(60,58,80,.92); }
.dc-hero-ch{ font-size:11px; font-weight:800; letter-spacing:.1em; color:rgba(255,255,255,.8); }
.dc-hero h2{ margin:2px 0 5px; font-size:24px; line-height:1.15; text-wrap:balance; text-shadow:0 2px 12px rgba(0,0,0,.5); }
.dc-hero-meta{ font-size:12.5px; color:rgba(255,255,255,.85); margin-bottom:10px; line-height:1.4; }
.dc-hero-btns{ display:flex; gap:8px; flex-wrap:wrap; }
.dc-btn{ appearance:none; border:none; font:inherit; font-weight:800; font-size:13.5px; padding:9px 16px; border-radius:22px; background:rgba(255,255,255,.18); color:#fff; cursor:pointer; backdrop-filter:blur(6px); }
.dc-btn-p{ background:#fff; color:#111; }
.dc-hero-bar{ position:absolute !important; left:0; right:0; bottom:0; height:4px; background:rgba(255,255,255,.25); } .dc-hero-bar i{ display:block; height:100%; background:var(--dd-red, #e50914); }
.dc-rowhead{ display:flex; justify-content:space-between; align-items:center; }
.dc-chs{ display:flex; gap:12px; overflow-x:auto; padding:4px 0 8px; scrollbar-width:none; } .dc-chs::-webkit-scrollbar{ display:none; }
.dc-ch{ appearance:none; background:none; border:none; font:inherit; color:var(--text); flex:none; width:68px; display:flex; flex-direction:column; align-items:center; gap:6px; cursor:pointer; }
.dc-ch-ic{ position:relative; width:60px; height:60px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-weight:900; font-size:14px; color:#fff; }
.dc-ch-big{ width:54px; height:54px; flex:none; }
.dc-ch-live{ position:absolute; right:0; bottom:2px; width:13px; height:13px; border-radius:50%; background:#e50914; border:2px solid var(--bg); }
.dc-ch-n{ font-size:11.5px; font-weight:700; }
.dc-strip{ display:flex; gap:12px; overflow-x:auto; padding-bottom:6px; scrollbar-width:none; } .dc-strip::-webkit-scrollbar{ display:none; }
.dc-card{ appearance:none; background:none; border:none; padding:0; font:inherit; color:var(--text); text-align:left; flex:none; width:210px; cursor:pointer; }
.dc-thumb{ position:relative; height:118px; border-radius:12px; background-size:cover; background-position:center; background-color:var(--surface-2); overflow:hidden; }
.dc-poster{ height:250px; }
.dc-thumb .dc-chip{ position:absolute; left:6px; top:6px; font-size:10px; font-weight:800; padding:2px 7px; border-radius:5px; color:#fff; }
.dc-thumb .dc-src{ position:absolute; right:6px; top:6px; }
.dc-time{ position:absolute; left:6px; bottom:6px; background:rgba(0,0,0,.78); font-size:11.5px; font-weight:800; padding:2px 7px; border-radius:5px; }
.dc-bar{ position:absolute; left:0; right:0; bottom:0; height:3px; background:rgba(255,255,255,.25); } .dc-bar i{ display:block; height:100%; background:var(--dd-red, #e50914); }
.dc-card-t{ font-size:13.5px; font-weight:800; margin-top:7px; line-height:1.25; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.dc-card-s{ font-size:11.5px; color:var(--text-muted); margin-top:2px; }
.dc-note{ font-size:12.5px; color:var(--text-muted); line-height:1.5; }
.dc-chhead{ display:flex; align-items:center; gap:14px; margin:10px 0 8px; } .dc-chdesc{ font-size:12.5px; color:var(--text-muted); margin-top:2px; }
.dc-list{ display:flex; flex-direction:column; }
.dc-item{ appearance:none; background:none; border:none; border-bottom:1px solid var(--hairline); font:inherit; color:var(--text); display:flex; align-items:center; gap:12px; padding:10px 0; text-align:left; cursor:pointer; }
.dc-item-time{ width:46px; font-weight:800; font-size:13px; color:var(--text-muted); flex:none; }
.dc-item-th{ width:76px; height:44px; border-radius:8px; background-size:cover; background-position:center; background-color:var(--surface-2); flex:none; }
.dc-item-t{ flex:1; min-width:0; } .dc-item-t b{ display:block; font-size:13.5px; line-height:1.25; } .dc-item-t small{ color:var(--text-muted); font-size:11.5px; }
/* Guida */
.dc-gctl{ display:flex; gap:6px; align-items:center; flex-wrap:wrap; margin:6px 0 12px; } .dc-gsp{ flex:1; }
.dc-guide{ border:1px solid var(--hairline); border-radius:14px; overflow:hidden; background:var(--surface); }
.dc-gscroll{ position:relative; overflow-x:auto; padding:8px 0 8px; }
.dc-ghead{ position:relative; height:22px; margin-left:86px; font-size:11px; font-weight:800; color:var(--text-muted); } .dc-ghead span{ position:absolute; top:0; }
.dc-grow{ display:flex; align-items:center; margin-bottom:6px; }
.dc-glabel{ appearance:none; border:none; font:inherit; color:var(--text); position:sticky; left:0; z-index:3; width:86px; flex:none; background:var(--surface); display:flex; align-items:center; gap:6px; font-size:12px; font-weight:800; padding:0 6px; height:54px; cursor:pointer; }
.dc-glabel i{ width:18px; height:18px; border-radius:50%; flex:none; }
.dc-gtrack{ position:relative; height:54px; flex:none; }
.dc-blk{ position:absolute; top:0; height:54px; appearance:none; border:none; font:inherit; color:#fff; text-align:left; border-radius:9px; padding:6px 8px; overflow:hidden; cursor:pointer; }
.dc-blk.yt{ background:#3a1a1a; } .dc-blk.cat{ background:#25243a; }
.dc-blk.on{ outline:2px solid var(--dd-red, #e50914); outline-offset:-2px; }
/* Programmi brevi: titolo piccolo su due righe invece della casella vuota. */
.dc-blk b.sm{ font-size:9.5px; white-space:normal; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
.dc-blk b{ display:block; font-size:11.5px; line-height:1.2; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; } .dc-blk small{ display:block; font-size:10px; color:#cfcde0; margin-top:2px; white-space:nowrap; }
.dc-gnow{ position:absolute; top:0; bottom:0; width:2px; background:var(--dd-red, #e50914); z-index:2; pointer-events:none; }

/* Docu: rifiniture (card tutte uguali, testo leggibile sull'hero) */
.dc-strip{ align-items:flex-start; }
.dc-card{ width:214px; }
.dc-thumb{ height:120px; background-color:var(--surface-2); }
.dc-hero-shade{ background:linear-gradient(180deg,rgba(0,0,0,.35) 0%,rgba(0,0,0,.25) 30%,rgba(0,0,0,.88) 100%); }
.dc-hero h2{ display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.dc-hero-meta{ display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.dc-rowhead{ margin-bottom:2px; }
.row > h3 + .dc-strip{ margin-top:2px; }

/* Reale ↔ Catalogo: collegamenti tra le due sezioni */
.dc-browse,.cat2-reale{ appearance:none; width:100%; display:flex; align-items:center; gap:12px; text-align:left; font:inherit; color:var(--text); background:var(--surface); border:1px solid var(--hairline); border-radius:14px; padding:12px 14px; cursor:pointer; }
.dc-browse > span:first-child,.cat2-reale > span:first-child{ width:38px; height:38px; border-radius:11px; display:flex; align-items:center; justify-content:center; background:rgba(20,184,166,.18); font-size:18px; flex:none; }
.dc-browse b,.cat2-reale b{ display:block; font-size:14px; } .dc-browse small,.cat2-reale small{ display:block; color:var(--text-muted); font-size:11.5px; margin-top:2px; line-height:1.35; }
.dc-browse > span:nth-child(2),.cat2-reale > span:nth-child(2){ flex:1; min-width:0; }
.dc-browse > span:last-child,.cat2-reale-go{ color:var(--text-faint); font-size:20px; }
.cat2-reale{ margin:0 0 12px; border-color:rgba(20,184,166,.45); background:linear-gradient(135deg,rgba(20,184,166,.12),rgba(20,184,166,.03)); }

/* Documentari: icone dei canali quadrate ad angoli arrotondati, come il resto dell'app */
.dc-ch-ic{ width:62px; height:62px; border-radius:18px; }
.dc-ch-big{ width:56px; height:56px; border-radius:16px; }
.dc-ch-live{ right:-3px; bottom:-3px; width:14px; height:14px; border-radius:5px; border:2px solid var(--bg); }
.dc-glabel i{ border-radius:6px; }

.dc-search{ margin:0 0 12px; } .dc-search .btn-primary{ background:var(--docu); border-color:var(--docu); color:#04201d; }
.dc-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:14px; }
.dc-card-g{ width:auto; }
@media (max-width:600px){ .dc-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; } .dc-card-g .dc-thumb{ height:96px; } }

/* Icone lineari dei menu interni degli hub e del Ripasso (al posto delle emoji) */
.music-tab-badge svg,.books-tab-badge svg{ width:19px; height:19px; }
.hub-pill-ic{ display:inline-flex; }
.hub-pill-ic svg{ width:15px; height:15px; }
.ln-review-ic svg{ width:21px; height:21px; }
.music-tab-badge,.books-tab-badge{ border-radius:12px !important; }
.chip-ic{ display:inline-flex; vertical-align:-3px; margin-right:2px; }
.chip-ic svg{ width:15px; height:15px; }
h3 .chip-ic svg{ width:20px; height:20px; }
.genre-card-icon svg{ width:30px; height:30px; opacity:.9; }

.hh-emoji svg{ width:1em; height:1em; color:rgba(255,255,255,.9); }
.match-icon{ display:inline-flex; }
.match-icon svg{ width:22px; height:22px; }

/* emoji_icons.js: icona al posto dell'emoji, alla stessa altezza del testo */
.ei{ display:inline-flex; vertical-align:-0.17em; margin-inline:0.05em; }
.ei svg{ width:1.05em; height:1.05em; }

.wrp-flame-ico{ width:56px; height:56px; border-radius:18px; display:inline-grid; place-items:center; background:rgba(255,122,60,.16); border:1px solid rgba(255,122,60,.45); color:#ff8a4c; font-size:0; }
.wrp-poster svg,.wrp-recap-hero-poster svg{ width:30px; height:30px; color:rgba(255,255,255,.65); }

/* Scheda titolo: riga voto / anno / stagioni (allineata alla nativa) */
.detail-meta-row{ display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin:2px 0 10px; }
.dm-score{ display:inline-flex; align-items:center; gap:4px; padding:2px 7px; border-radius:6px; font-size:12px; font-weight:700; color:#ffb300; background:rgba(255,179,0,.2); border:1px solid rgba(255,179,0,.5); }
.dm-txt{ font-size:13px; color:rgba(255,255,255,.65); }
.dm-sep{ width:1px; height:13px; background:rgba(255,255,255,.25); margin:0 2px; display:inline-block; vertical-align:middle; }
.detail-tech-badges-wrap{ display:inline-flex; align-items:center; gap:6px; flex-wrap:wrap; }

/* Badge tecnici: pillole tonde di vetro con icona; solo la qualita' (4K/HD) e' piena */
.tb-badge{
  display:inline-flex; align-items:center; gap:6px; height:28px; padding:0 11px; border-radius:999px;
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.11); color:#f2f2f6;
  font-size:12px; font-weight:700; letter-spacing:0; white-space:nowrap;
  animation:tb-pop .35s ease both;
}
.tb-badge svg{ width:14px; height:14px; flex:none; }
.tb-uhd{ background:#fff; color:#111; border-color:transparent; font-weight:900; }
.tb-hd{ font-weight:900; }
html.newlook .tb-uhd{ background:var(--nl-tone); color:var(--nl-on); }

/* Badge Età Consigliata: un solo stile sobrio per tutte le fasce */
.tb-age-badge{
  display:inline-flex; align-items:center; justify-content:center;
  border-radius:4px; padding:2px 6px; font-size:10px; font-weight:800; letter-spacing:.5px;
  color:rgba(255,255,255,.95); background:rgba(0,0,0,.35); border:1px solid rgba(255,255,255,.6);
}

@keyframes tb-pop{
  from{ opacity:0; transform:scale(.85); }
  to{ opacity:1; transform:scale(1); }
}

/* ── In arrivo (area "soon") ─────────────────────────────────────────────── */
.sn-eyebrow{ color:#a78bfa; }
.sn-rule{ background:linear-gradient(90deg,#8b5cf6,transparent); }
.sn-tabs{ margin:6px 0 14px; }
.sn-hero{ display:flex; align-items:center; gap:16px; flex-wrap:wrap; padding:16px; border-radius:16px; margin-bottom:6px; background:linear-gradient(110deg,#2b1357,#120a24); border:1px solid rgba(139,92,246,.4); }
.sn-hposter{ width:78px; aspect-ratio:2/3; object-fit:cover; border-radius:10px; flex:none; background:#1b1e29; }
.sn-hinfo{ flex:1; min-width:180px; }
.sn-heyebrow{ font-size:10.5px; letter-spacing:.12em; font-weight:800; color:#c4b5fd; text-transform:uppercase; }
.sn-hinfo h3{ margin:3px 0 4px; font-size:22px; }
.sn-hline{ font-size:13px; color:rgba(255,255,255,.7); }
.sn-count{ display:flex; gap:8px; }
.sn-count div{ background:rgba(255,255,255,.08); border-radius:10px; padding:6px 10px; text-align:center; min-width:54px; }
.sn-count b{ display:block; font-size:20px; font-variant-numeric:tabular-nums; }
.sn-count small{ font-size:10px; color:rgba(255,255,255,.55); letter-spacing:.08em; text-transform:uppercase; }
.sn-head{ margin:22px 0 10px; font-size:12px; letter-spacing:.12em; font-weight:800; color:var(--text-muted,#8f94a8); text-transform:uppercase; display:flex; align-items:center; gap:10px; }
.sn-head::after{ content:""; flex:1; height:1px; background:rgba(255,255,255,.1); }
.sn-cards{ display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:10px; }
.sn-card{ display:flex; gap:12px; text-align:left; padding:10px; border-radius:12px; background:var(--surface,#14161e); border:1px solid rgba(255,255,255,.08); color:inherit; font:inherit; cursor:pointer; min-width:0; width:100%; }
.sn-card:hover{ border-color:rgba(139,92,246,.5); }
.sn-poster{ width:62px; aspect-ratio:2/3; object-fit:cover; border-radius:9px; flex:none; background:#1b1e29; }
.sn-ctx{ display:flex; flex-direction:column; gap:4px; min-width:0; }
.sn-ctx b{ font-size:14px; line-height:1.25; }
.sn-m{ font-size:12px; color:var(--text-muted,#8f94a8); }
.sn-tag{ display:inline-flex; align-items:center; gap:5px; font-size:10px; font-weight:800; letter-spacing:.08em; padding:2px 7px; border-radius:5px; align-self:flex-start; }
.sn-tag svg{ width:11px; height:11px; }
.sn-film{ background:color-mix(in srgb, var(--dd-red, #e50914) 16%, transparent); color:#ff8f95; }
.sn-serie{ background:rgba(20,184,166,.16); color:#5eead4; }
.sn-anime{ background:rgba(236,72,153,.16); color:#f9a8d4; }
.sn-note{ margin-top:14px; font-size:12.5px; color:var(--text-muted,#8f94a8); }
.sn-search{ margin-bottom:12px; }
.sn-results{ display:flex; flex-direction:column; gap:12px; }
.sn-res{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:12px; align-items:center; }
.sn-verdict{ display:flex; flex-direction:column; gap:6px; }
.sn-v{ padding:8px 12px; border-radius:9px; font-size:13px; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.08); }
.sn-v-soon{ background:rgba(139,92,246,.16); border-color:rgba(139,92,246,.5); }
.sn-v-now{ background:rgba(34,197,94,.12); border-color:rgba(34,197,94,.4); }
.sn-v-warn{ background:rgba(245,158,11,.12); border-color:rgba(245,158,11,.4); }
.sn-v-none,.sn-v-done{ color:rgba(255,255,255,.72); }
.sn-v-meta{ background:none; border:0; padding:0 2px; color:var(--text-muted,#8f94a8); font-size:12px; }
@media(max-width:700px){ .sn-res{ grid-template-columns:1fr; } }

.sn-top{ display:flex; align-items:center; gap:8px; }
.sn-score{ font-size:11px; font-weight:700; color:#ffb300; padding:1px 6px; border-radius:5px; background:rgba(255,179,0,.16); border:1px solid rgba(255,179,0,.4); }
.sn-m{ font-weight:600; color:rgba(255,255,255,.72) !important; }
.sn-genres{ font-size:11.5px; color:#c4b5fd; }
.sn-syn{ font-size:12px; line-height:1.4; color:rgba(255,255,255,.52); display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.sn-poster{ width:70px !important; }

/* ── Splash di avvio (motore e temi in js/splash.js) ── */
#dbSplash{position:fixed;inset:0;z-index:2147483000;background:#000;transition:opacity .45s ease;cursor:pointer;-webkit-tap-highlight-color:transparent;font-size:clamp(46px,min(15vw,18vh),150px)}
@media (max-width:700px){#dbSplash{font-size:clamp(38px,min(12.5vw,18vh),150px)}}
#dbSplash.out{opacity:0;pointer-events:none}
html.dd-splash,html.dd-splash body{overflow:hidden!important}



/* ── Decorazioni delle feste (js/deco.js): livello fisso sulla parte alta della home, sotto la barra,
   mai cliccabile; sfuma verso il basso e sparisce scorrendo o fuori dalla home. ── */
.deco-layer{ position:fixed; left:0; right:0; top:0; height:62vh; z-index:49; pointer-events:none; overflow:hidden; opacity:0; transition:opacity .5s ease;
  -webkit-mask-image:linear-gradient(#000 58%, transparent); mask-image:linear-gradient(#000 58%, transparent); }
.deco-layer.on{ opacity:1; }
.deco-layer i, .deco-layer span{ position:absolute; display:block; }
.deco-layer svg{ display:block; width:100%; height:auto; overflow:visible; }
/* Natale */
.dk-glow{ left:0; right:0; top:0; height:40%; background:radial-gradient(ellipse 70% 100% at 50% 0, rgba(255,190,110,.16), transparent 70%); }
.dk-sn{ top:-12px; border-radius:50%; background:radial-gradient(circle,#fff 0,rgba(255,255,255,.85) 40%,rgba(255,255,255,0) 72%); opacity:var(--o); animation:dkSnow var(--t) var(--dl) linear infinite; will-change:transform; }
.dk-sn.b{ filter:blur(1.5px); }
@keyframes dkSnow{ 0%{ transform:translate(0,0); } 25%{ transform:translate(var(--dx),16vh); } 50%{ transform:translate(0,32vh); } 75%{ transform:translate(calc(var(--dx) * -1),48vh); } 100%{ transform:translate(0,64vh); } }
.dk-garl{ left:-2%; right:-2%; height:46px; }
.dk-garl svg{ position:absolute; inset:0; width:100%; height:100%; }
.dk-garl path{ fill:none; stroke:#203024; stroke-width:1.4; vector-effect:non-scaling-stroke; }
.dk-bulb{ width:10px; height:14px; margin-left:-5px; border-radius:45% 45% 50% 50%/40% 40% 60% 60%; background:currentColor; box-shadow:0 0 8px currentColor,0 0 22px currentColor; transform-origin:50% -20%; transform:rotate(var(--r)); animation:dkBulb 2.4s var(--dl) ease-in-out infinite; }
.dk-bulb::before{ content:''; position:absolute; left:28%; right:28%; top:-22%; height:26%; background:#3b463a; border-radius:1px; }
@keyframes dkBulb{ 0%,100%{ opacity:1; filter:brightness(1.1); } 50%{ opacity:.55; filter:brightness(.8); } }
.d-logo, .m-logo{ position:relative; }
.deco-hat{ position:absolute; left:-12px; top:-14px; width:26px; transform:rotate(-20deg); transform-origin:70% 90%; pointer-events:none; transition:opacity .4s ease; animation:dkHat 3s ease-in-out infinite; }
.m-logo .deco-hat{ left:-9px; top:-12px; width:22px; }
.deco-hat svg{ display:block; width:100%; }
@keyframes dkHat{ 50%{ transform:rotate(-12deg); } }
/* San Valentino */
.dk-leak{ left:0; right:0; top:0; height:55%; background:radial-gradient(ellipse 60% 90% at 50% 0, rgba(255,92,150,.22), transparent 70%); }
.dk-ht{ bottom:-14%; opacity:0; filter:blur(var(--b)) drop-shadow(0 0 14px rgba(255,60,120,.45)); animation:dkHt var(--t) var(--dl) ease-in-out infinite; will-change:transform; }
.dk-ht svg{ animation:dkHtB 2.2s ease-in-out infinite alternate; }
@keyframes dkHt{ 0%{ opacity:0; transform:translate(0,0) rotate(-10deg); } 15%{ opacity:var(--o); } 50%{ transform:translate(var(--dx),-34vh) rotate(8deg); } 85%{ opacity:var(--o); } 100%{ opacity:0; transform:translate(0,-68vh) rotate(-6deg); } }
@keyframes dkHtB{ from{ transform:scale(.94); } to{ transform:scale(1.06); } }
.dk-spk{ width:5px; height:5px; border-radius:50%; background:#fff; box-shadow:0 0 10px #ffb3cf; opacity:0; animation:dkSpk 3.6s var(--dl) ease-in-out infinite; }
@keyframes dkSpk{ 0%,100%{ opacity:0; transform:scale(.4); } 50%{ opacity:1; transform:scale(1.2); } }
.deco-lh{ position:absolute; right:-17px; top:-5px; width:14px; pointer-events:none; filter:drop-shadow(0 0 5px rgba(255,61,127,.8)); transition:opacity .4s ease; animation:dkBeat 1.1s ease-in-out infinite; }
.deco-lh svg{ display:block; width:100%; }
@keyframes dkBeat{ 0%,100%{ transform:scale(1); } 14%{ transform:scale(1.22); } 28%{ transform:scale(1); } 42%{ transform:scale(1.12); } 60%{ transform:scale(1); } }
/* Halloween */
.dk-moon{ left:58%; top:7vh; width:130px; height:130px; border-radius:50%; background:radial-gradient(circle at 40% 38%,#fff6d8,#f2dfa6 55%,#d8bf7e); box-shadow:0 0 60px rgba(255,226,160,.45),0 0 160px rgba(255,190,120,.18); opacity:.8; animation:dkMoon 10s ease-out infinite alternate; }
.dk-moon::after{ content:''; position:absolute; left:22%; top:30%; width:18%; height:16%; border-radius:50%; background:rgba(190,160,100,.35); box-shadow:46px 18px 0 -5px rgba(190,160,100,.25), 18px 46px 0 -8px rgba(190,160,100,.25); }
@keyframes dkMoon{ from{ transform:translateY(16px); } to{ transform:translateY(-8px); } }
.dk-fog{ left:-20%; right:-20%; top:36%; height:30%; background:radial-gradient(ellipse 30% 60% at 25% 50%, rgba(150,110,200,.25), transparent 70%), radial-gradient(ellipse 30% 60% at 70% 55%, rgba(130,100,190,.22), transparent 70%); animation:dkFog 9s ease-in-out infinite alternate; }
@keyframes dkFog{ to{ transform:translateX(9%); } }
.dk-web{ right:0; width:170px; opacity:.8; }
.dk-spd{ right:70px; width:28px; animation:dkSpd 7s ease-in-out infinite; }
.dk-spd::before{ content:''; position:absolute; left:50%; bottom:90%; width:1px; height:60vh; background:rgba(220,210,240,.5); }
@keyframes dkSpd{ 0%,100%{ transform:translateY(30px); } 45%,60%{ transform:translateY(150px); } 52%{ transform:translateY(140px); } }
.dk-bat{ left:0; top:0; offset-rotate:0deg; animation:dkBat var(--t) linear infinite; }
.dk-bat svg{ filter:drop-shadow(0 0 5px rgba(170,110,255,.55)); }
.dk-bat .dk-wg{ transform-box:fill-box; transform-origin:50% 40%; animation:dkFlap var(--f) ease-in-out infinite alternate; }
@keyframes dkFlap{ to{ transform:scaleY(.35); } }
@keyframes dkBat{ from{ offset-distance:0%; } to{ offset-distance:100%; } }
.dk-flk span{ animation:dkFlk 4s steps(1) infinite; }
@keyframes dkFlk{ 0%,100%{ opacity:1; } 62%{ opacity:.35; } 64%{ opacity:1; } 66%{ opacity:.5; } 68%{ opacity:1; } }
@media (max-width:699px){
  .dk-garl{ height:34px; }
  .dk-bulb{ width:8px; height:11px; margin-left:-4px; }
  .dk-moon{ left:52%; top:12vh; width:96px; height:96px; }
  .dk-moon::after{ box-shadow:34px 13px 0 -4px rgba(190,160,100,.25), 13px 34px 0 -6px rgba(190,160,100,.25); }
  .dk-web{ width:120px; }
  .dk-spd{ right:48px; width:22px; }
}
@media (prefers-reduced-motion:reduce){ .deco-layer{ display:none; } .deco-hat, .deco-lh, .dk-flk span{ animation:none; } }

/* ── Storie delle novità (js/stories.js) ── */
.st-row{ margin-top:4px; }
/* Fascia dedicata: staccata da copertina e righe, come un riquadro a se'. */
.st-band{ padding:16px 18px 14px; border-radius:18px; background:linear-gradient(180deg, rgba(255,255,255,.07), rgba(255,255,255,.03)); border:1px solid rgba(255,255,255,.08); }
.st-head{ display:flex; justify-content:space-between; align-items:flex-end; gap:12px; margin-bottom:12px; }
.st-head > div{ min-width:0; }
.st-h{ font-size:18px; font-weight:800; letter-spacing:.02em; text-transform:uppercase; color:var(--text); }
.st-sub{ font-size:12.5px; color:var(--text-muted); margin-top:3px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.st-cnt{ flex:none; font-size:12px; font-weight:700; color:#ff5a62; background:color-mix(in srgb, var(--dd-red, #e50914) 14%, transparent); padding:3px 10px; border-radius:999px; }
.st-band .st-img{ border-color:#141418; }
.st-m .st-band{ padding:14px 12px 12px; margin:0 -2px; }
.st-m .st-h{ font-size:16px; }
.st-m .st-sub{ font-size:12px; }
.st-track{ display:flex; gap:16px; overflow-x:auto; padding:4px 2px 6px; scrollbar-width:none; }
.st-track::-webkit-scrollbar{ display:none; }
.st-c{ flex:0 0 auto; width:84px; display:flex; flex-direction:column; align-items:center; gap:7px; background:none; border:none; padding:0; color:var(--text); font:inherit; cursor:pointer; }
.st-ring{ width:76px; height:76px; border-radius:50%; padding:3px; background:conic-gradient(var(--accent), #ff8a3d, #f0b429, #ec4899, var(--accent)); display:block; transition:transform .15s ease; }
.st-c:hover .st-ring{ transform:scale(1.05); }
.st-c:focus-visible .st-ring{ outline:3px solid #fff; outline-offset:3px; }
.st-c.seen .st-ring{ background:rgba(255,255,255,.22); }
/* Accadde oggi: anello dorato ed etichetta OGGI (anche dopo averla vista resta dorato, piu' tenue). */
.st-c.today .st-ring{ position:relative; background:conic-gradient(#f5c451, #fff1b8, #d99a12, #f5c451); }
.st-c.today.seen .st-ring{ background:conic-gradient(rgba(245,196,81,.5), rgba(217,154,18,.5)); }
.st-badge{ position:absolute; left:50%; bottom:-6px; transform:translateX(-50%); font-size:9px; font-weight:800; letter-spacing:.08em; color:#1a1200; background:#f5c451; padding:1px 6px; border-radius:5px; border:2px solid #141418; line-height:1.3; }
.sv-yrs{ display:flex; align-items:baseline; gap:8px; margin-bottom:6px; }
.sv-yrs b{ font-size:clamp(52px, 8vw, 84px); font-weight:900; line-height:.9; color:#f5c451; letter-spacing:-.03em; }
.sv-yrs span{ font-size:clamp(17px, 2vw, 24px); font-weight:700; color:#ffe9a8; }
.st-img{ display:block; width:100%; height:100%; border-radius:50%; border:3px solid var(--bg); background:var(--surface-2) center/cover no-repeat; }
.st-t{ font-size:12px; color:var(--text-muted); max-width:84px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.st-c:not(.seen) .st-t{ color:var(--text); font-weight:600; }
.st-m .st-track{ gap:12px; }
.st-m .st-c{ width:70px; }
.st-m .st-ring{ width:64px; height:64px; }
.st-m .st-t{ font-size:11px; max-width:70px; }
/* Sito da computer: storie sulla copertina, in basso a destra (riga alta zero subito dopo la copertina). */
.st-hero{ position:relative; height:0; margin:0; z-index:4; }
.st-hero .st-cl{ position:absolute; right:0; bottom:calc(12px + 50px); display:flex; align-items:center; gap:16px; }
.st-lbl{ display:flex; flex-direction:column; align-items:flex-end; gap:2px; background:none; border:0; padding:0; color:#fff; font:inherit; cursor:pointer; text-shadow:0 1px 8px rgba(0,0,0,.6); }
.st-lbl b{ font-size:13px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.st-lbl span{ font-size:12px; color:rgba(255,255,255,.72); }
.st-lbl:focus-visible{ outline:2px solid #fff; outline-offset:4px; border-radius:6px; }
.st-cl-c{ display:flex; gap:12px; }
.st-hero .st-c{ width:auto; }
.st-hero .st-ring{ width:58px; height:58px; box-shadow:0 6px 18px rgba(0,0,0,.45); }
.st-hero .st-img{ border-color:rgba(10,10,14,.9); }
.st-hero .st-c.seen .st-ring{ background:rgba(255,255,255,.35); }
@media (max-width:1240px){ .st-hero .st-cl-c .st-c:nth-child(n+5){ display:none; } }
@media (max-width:1080px){ .st-hero .st-cl-c .st-c:nth-child(n+4){ display:none; } .st-hero .st-ring{ width:50px; height:50px; } }

html.sv-open, html.sv-open body{ overflow:hidden; }
.sv-overlay{ position:fixed; inset:0; z-index:4000; background:#000; color:#fff; overflow:hidden; touch-action:none; user-select:none; -webkit-user-select:none; animation:svIn .22s ease-out; }
@keyframes svIn{ from{ opacity:0; transform:scale(.97); } to{ opacity:1; transform:none; } }
.sv-page{ position:absolute; inset:0; overflow:hidden; will-change:transform; }
.sv-page.sv-nb{ z-index:1; }
.sv-overlay, .sv-overlay *{ -webkit-tap-highlight-color:transparent; }
.sv-overlay button{ -webkit-appearance:none; appearance:none; outline:none; }
.sv-overlay button:focus-visible{ outline:3px solid #fff; outline-offset:3px; }
.sv-page.sv-in-r{ animation:svInR .26s ease-out; }
.sv-page.sv-in-l{ animation:svInL .26s ease-out; }
@keyframes svInR{ from{ transform:translateX(100%); } to{ transform:none; } }
@keyframes svInL{ from{ transform:translateX(-100%); } to{ transform:none; } }
.sv-bg{ position:absolute; inset:0; background:transparent center/cover no-repeat; animation:svZoom 6.5s ease-out forwards; }
@keyframes svZoom{ from{ transform:scale(1.08); } to{ transform:scale(1); } }
.sv-sh{ position:absolute; inset:0; background:linear-gradient(0deg, rgba(0,0,0,.92) 0%, rgba(0,0,0,.35) 45%, rgba(0,0,0,.1) 65%, rgba(0,0,0,.6) 100%); }
.sv-top{ position:absolute; left:0; right:0; top:0; padding:calc(12px + env(safe-area-inset-top, 0px)) 14px 0; z-index:3; max-width:720px; margin:0 auto; }
.sv-bars{ display:flex; gap:4px; }
.sv-bars i{ flex:1; height:3px; border-radius:2px; background:rgba(255,255,255,.3); overflow:hidden; }
.sv-bars i b{ display:block; height:100%; background:#fff; transform:scaleX(0); transform-origin:0 50%; }
.sv-bars i.d b{ transform:none; }
.sv-hd{ display:flex; align-items:center; gap:10px; margin-top:12px; font-size:14px; }
.sv-hd b{ font-weight:700; }
.sv-hd span{ color:rgba(255,255,255,.65); font-size:13px; }
.sv-ic{ width:32px; height:32px; border-radius:50%; background:var(--accent) center/cover no-repeat; border:2px solid rgba(255,255,255,.8); flex:none; }
.sv-x{ margin-left:auto; width:40px; height:40px; border-radius:50%; border:none; background:rgba(0,0,0,.35); color:#fff; font-size:18px; cursor:pointer; }
.sv-tx{ position:absolute; left:0; right:0; bottom:0; z-index:3; padding:0 22px calc(28px + env(safe-area-inset-bottom, 0px)); max-width:720px; margin:0 auto; }
.sv-tx small{ display:block; font-size:12px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:#ffd56a; margin-bottom:10px; }
.sv-title{ display:block; font-size:clamp(30px, 6vw, 48px); line-height:1.05; font-weight:800; letter-spacing:-.01em; margin-bottom:12px; }
.sv-logo{ display:block; max-width:min(320px, 70vw); max-height:120px; object-fit:contain; object-position:left bottom; margin-bottom:14px; }
.sv-tx p{ margin:0 0 18px; font-size:16px; line-height:1.45; color:rgba(255,255,255,.88); max-width:560px; }
.sv-go{ position:relative; z-index:4; display:inline-flex; align-items:center; justify-content:center; min-width:200px; height:50px; padding:0 26px; border-radius:12px; border:none; background:#fff; color:#000; font:inherit; font-weight:800; font-size:16px; cursor:pointer; }
.sv-nav{ position:absolute; top:0; bottom:0; z-index:2; border:none; background:none !important; cursor:pointer; padding:0; }
.sv-arr{ position:absolute; top:50%; z-index:4; width:52px; height:52px; margin-top:-26px; border-radius:50%; border:none; background:rgba(0,0,0,.45); color:#fff; display:none; align-items:center; justify-content:center; cursor:pointer; backdrop-filter:blur(4px); }
.sv-arr.l{ left:18px; } .sv-arr.r{ right:18px; }
.sv-arr:hover, .sv-arr:focus-visible{ background:rgba(255,255,255,.22); }
@media (hover:hover), (min-width:1100px){ .sv-arr{ display:flex; } }
.sv-nav.prev{ left:0; width:33%; }
.sv-nav.next{ right:0; width:67%; }
@media (max-width:699px){ .sv-go{ width:100%; } }
@media (prefers-reduced-motion:reduce){ .sv-bg, .sv-overlay{ animation:none; } }

/* ── Salvaschermo (js/screensaver.js) ── */
html.ss-open, html.ss-open body{ overflow:hidden; cursor:none; }
.ss-overlay{ position:fixed; inset:0; z-index:4500; background:#000; color:#fff; overflow:hidden; animation:ssIn 1.2s ease; }
.ss-overlay.bye{ animation:ssOut .35s ease forwards; }
@keyframes ssIn{ from{ opacity:0; } to{ opacity:1; } }
@keyframes ssOut{ to{ opacity:0; } }
.ss-slides{ position:absolute; inset:0; }
.ss-sl{ position:absolute; inset:0; opacity:0; transition:opacity 2s ease; }
.ss-sl.on{ opacity:1; }
.ss-sl.off{ opacity:0; }
.ss-art{ position:absolute; inset:-2%; background:#000 center/cover no-repeat; transform:scale(1.02); }
.ss-sl.on .ss-art, .ss-sl.off .ss-art{ animation:ssKen 14s ease-out forwards; }
.ss-sl:nth-child(even).on .ss-art{ animation-name:ssKen2; }
@keyframes ssKen{ from{ transform:scale(1.02) translate(0,0); } to{ transform:scale(1.13) translate(-1.5%,-1%); } }
@keyframes ssKen2{ from{ transform:scale(1.13) translate(1.5%,0); } to{ transform:scale(1.02) translate(0,-1%); } }
.ss-vg{ position:absolute; inset:0; background:linear-gradient(90deg, rgba(0,0,0,.8) 0%, rgba(0,0,0,.25) 50%, rgba(0,0,0,0) 70%), linear-gradient(0deg, rgba(0,0,0,.75) 0%, rgba(0,0,0,0) 45%), linear-gradient(180deg, rgba(0,0,0,.45) 0%, rgba(0,0,0,0) 22%); }
.ss-meta{ position:absolute; left:5vw; bottom:12vh; max-width:min(640px, 60vw); opacity:0; transform:translateY(14px); transition:opacity 1.2s .6s ease, transform 1.2s .6s ease; }
.ss-sl.on .ss-meta{ opacity:1; transform:none; }
.ss-why{ font-size:clamp(12px, 1.1vw, 16px); font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:#ffb3b8; margin-bottom:14px; }
.ss-ttl{ display:block; font-size:clamp(34px, 4.6vw, 72px); font-weight:800; line-height:1.02; letter-spacing:-.01em; }
.ss-logo{ display:block; max-width:min(460px, 40vw); max-height:22vh; object-fit:contain; object-position:left bottom; filter:drop-shadow(0 4px 18px rgba(0,0,0,.6)); }
.ss-sub{ margin-top:14px; font-size:clamp(14px, 1.3vw, 19px); color:rgba(255,255,255,.78); }
.ss-logo-app{ position:absolute; left:5vw; top:5vh; font-weight:800; font-size:clamp(18px, 1.8vw, 28px); letter-spacing:-.01em; opacity:.9; }
.ss-logo-app span{ color:var(--accent); }
.ss-clk{ position:absolute; right:4.5vw; top:4.5vh; text-align:right; text-shadow:0 2px 14px rgba(0,0,0,.6); }
.ss-clk b{ display:block; font-size:clamp(48px, 6vw, 96px); font-weight:300; line-height:1; letter-spacing:-.02em; font-variant-numeric:tabular-nums; }
.ss-clk span{ display:block; margin-top:6px; font-size:clamp(13px, 1.2vw, 18px); color:rgba(255,255,255,.75); }
.ss-clk span::first-letter{ text-transform:uppercase; }
.ss-dots{ position:absolute; left:5vw; bottom:6vh; display:flex; gap:7px; }
.ss-dots i{ width:22px; height:3px; border-radius:2px; background:rgba(255,255,255,.25); transition:background .6s ease, width .6s ease; }
.ss-dots i.on{ width:40px; background:#fff; }
.ss-hint{ position:absolute; right:4.5vw; bottom:5.5vh; font-size:clamp(12px, 1vw, 15px); color:rgba(255,255,255,.6); display:flex; align-items:center; gap:8px; }
.ss-hint kbd{ font:inherit; font-weight:700; color:#fff; border:1px solid rgba(255,255,255,.4); border-radius:6px; padding:1px 8px; }
@media (max-width:700px){ .ss-meta{ left:6vw; right:6vw; max-width:none; bottom:16vh; } .ss-logo{ max-width:70vw; } .ss-hint{ display:none; } }
@media (prefers-reduced-motion:reduce){ .ss-art{ animation:none !important; } }

/* ── Easter egg retrò (js/retro.js): intro 8-bit segreta ── */
.rt-overlay{ position:fixed; inset:0; z-index:6000; background:#000; overflow:hidden; container-type:inline-size; cursor:pointer; --px:'Press Start 2P', ui-monospace, monospace; }
.rt-scr{ position:absolute; inset:0; transform-origin:50% 50%; }
.rt-crt{ position:absolute; inset:0; background:radial-gradient(ellipse at 50% 50%,#0f1a3a 0,#060914 60%,#010206 100%); opacity:0; }
.rt-scan{ position:absolute; inset:0; pointer-events:none; background:repeating-linear-gradient(0deg,rgba(0,0,0,.38) 0 2px,transparent 2px 4px); z-index:8; }
.rt-vig{ position:absolute; inset:0; pointer-events:none; z-index:9; background:radial-gradient(ellipse at 50% 50%,transparent 55%,rgba(0,0,0,.65) 100%); box-shadow:inset 0 0 6cqw rgba(0,0,0,.8); }
.rt-flick{ position:absolute; inset:0; z-index:7; pointer-events:none; background:rgba(255,255,255,.03); opacity:0; }
.rt-overlay.run .rt-flick{ animation:rtFlick .12s steps(2) infinite; }
@keyframes rtFlick{ 50%{ opacity:1; } }
.rt-pw{ position:absolute; left:0; right:0; top:50%; height:.4cqw; margin-top:-.2cqw; background:#fff; box-shadow:0 0 3cqw #9fd0ff; transform:scaleX(0); opacity:0; z-index:6; }
.rt-overlay.run .rt-pw{ animation:rtPwOn .55s ease-out forwards; }
@keyframes rtPwOn{ 0%{ opacity:1; transform:scaleX(0); } 45%{ opacity:1; transform:scaleX(1); height:.4cqw; } 100%{ opacity:0; transform:scaleX(1); height:100%; top:0; margin-top:0; } }
.rt-overlay.run .rt-crt{ animation:rtIn .1s .35s forwards; }
@keyframes rtIn{ to{ opacity:1; } }
.rt-stars{ position:absolute; inset:0; z-index:1; opacity:0; }
.rt-overlay.run .rt-stars{ animation:rtIn .3s .5s forwards; }
.rt-stars i{ position:absolute; background:#fff; animation:rtStar var(--t) linear infinite; opacity:var(--o); }
@keyframes rtStar{ from{ transform:translateX(0); } to{ transform:translateX(-110cqw); } }
.rt-ins{ position:absolute; left:0; right:0; top:44%; text-align:center; font-family:var(--px); font-size:2.6cqw; color:#ffd23f; opacity:0; z-index:3; }
.rt-overlay.run .rt-ins{ animation:rtBlink 1.2s .55s steps(1) forwards; }
@keyframes rtBlink{ 0%{ opacity:1; } 20%{ opacity:0; } 40%{ opacity:1; } 60%{ opacity:0; } 80%{ opacity:1; } 100%{ opacity:0; } }
.rt-logo{ position:absolute; left:0; right:0; top:30%; display:flex; justify-content:center; z-index:3; font-family:var(--px); font-size:9.4cqw; letter-spacing:.02em; }
.rt-logo span{ display:inline-block; color:#fff; text-shadow:.6cqw .6cqw 0 #2a1b6b,0 0 2cqw rgba(120,160,255,.35); opacity:0; transform:translateY(-18cqw); }
.rt-logo span.d{ color:#ff2d55; text-shadow:.6cqw .6cqw 0 #5a0018,0 0 2cqw rgba(255,45,85,.5); }
.rt-overlay.run .rt-logo span{ animation:rtDrop .42s var(--dl) steps(6) forwards; }
.rt-overlay.run .rt-logo span.d{ animation:rtDrop .42s var(--dl) steps(6) forwards, rtDBlink .5s 3s steps(2) infinite; }
@keyframes rtDrop{ 0%{ opacity:1; transform:translateY(-18cqw); } 70%{ transform:translateY(1.2cqw); } 100%{ opacity:1; transform:none; } }
@keyframes rtDBlink{ 50%{ color:#ffd23f; text-shadow:.6cqw .6cqw 0 #6b4a00,0 0 2.4cqw rgba(255,210,63,.7); } }
.rt-coin{ position:absolute; top:30%; width:3.2cqw; height:3.2cqw; z-index:4; opacity:0; }
.rt-coin svg{ display:block; width:100%; height:100%; }
.rt-overlay.run .rt-coin{ animation:rtCoin .7s var(--dl) steps(7) forwards; }
@keyframes rtCoin{ 0%{ opacity:1; transform:translateY(0) scaleX(1); } 25%{ transform:translateY(-6cqw) scaleX(.2); } 50%{ transform:translateY(-9cqw) scaleX(1); } 75%{ transform:translateY(-6cqw) scaleX(.2); } 100%{ opacity:0; transform:translateY(-2cqw) scaleX(1); } }
.rt-msg{ position:absolute; left:0; right:0; top:58%; text-align:center; font-family:var(--px); font-size:2.2cqw; color:#7ad7ff; z-index:3; white-space:nowrap; overflow:hidden; }
.rt-msg b{ display:inline-block; font-weight:400; width:0; overflow:hidden; vertical-align:bottom; white-space:nowrap; }
.rt-overlay.run .rt-msg b{ animation:rtType 1.2s 3.05s steps(30) forwards; }
@keyframes rtType{ to{ width:31ch; } }
.rt-hs{ position:absolute; left:0; right:0; top:68%; text-align:center; font-family:var(--px); font-size:1.9cqw; color:#ffd23f; z-index:3; opacity:0; }
.rt-overlay.run .rt-hs{ animation:rtIn .1s 4.2s forwards; }
.rt-start{ position:absolute; left:0; right:0; top:80%; text-align:center; font-family:var(--px); font-size:1.7cqw; color:#fff; z-index:3; opacity:0; }
.rt-overlay.run .rt-start{ animation:rtBlink 1.4s 4.6s steps(1) forwards; }
.rt-p1, .rt-cr{ position:absolute; top:4cqw; font-family:var(--px); font-size:1.5cqw; z-index:3; opacity:0; }
.rt-p1{ left:4cqw; color:#ff2d55; } .rt-p1 i{ font-style:normal; color:#fff; }
.rt-cr{ right:4cqw; color:#fff; }
.rt-overlay.run .rt-p1, .rt-overlay.run .rt-cr{ animation:rtIn .1s 1.2s forwards; }
.rt-overlay.run .rt-scr{ animation:rtOff .55s 6.1s ease-in forwards; }
@keyframes rtOff{ 0%{ transform:none; filter:none; } 55%{ transform:scaleY(.006); filter:brightness(4); } 100%{ transform:scale(0,.006); filter:brightness(4); } }
.rt-dot{ position:absolute; left:50%; top:50%; width:1cqw; height:1cqw; margin:-.5cqw; border-radius:50%; background:#fff; box-shadow:0 0 2cqw #9fd0ff; z-index:11; opacity:0; }
.rt-overlay.run .rt-dot{ animation:rtDot .6s 6.55s ease-out forwards; }
@keyframes rtDot{ 0%{ opacity:1; transform:scale(1); } 100%{ opacity:0; transform:scale(.2); } }
@media (max-aspect-ratio:1/1){ .rt-logo{ font-size:12cqw; } .rt-msg{ font-size:3.2cqw; } .rt-ins, .rt-hs, .rt-start{ font-size:3.2cqw; } .rt-p1, .rt-cr{ font-size:2.8cqw; top:12vh; } .rt-coin{ width:5cqw; height:5cqw; } }

/* ── Tema retrò: caratteri pixel solo su logo, titoli, etichette e pulsanti (il testo lungo resta normale),
   colori da sala giochi, copertine con bordo a blocchi e righe leggere da vecchio schermo. ── */
html.retro{ --accent:#ff2d55; --bg:#0b0d22; --surface:#13163a; --surface-2:#1a1e4a; --surface-3:#22275a; }
html.retro body{ background:#0b0d22; }
html.retro body::after{ content:''; position:fixed; inset:0; pointer-events:none; z-index:3900; background:repeating-linear-gradient(0deg,rgba(0,0,0,.14) 0 2px,transparent 2px 4px); }
html.retro .d-logo, html.retro .bb-tag, html.retro .bb-title, html.retro .row h3, html.retro .bb-btn, html.retro .bb-mini,
html.retro .d-hubs button, html.retro .m-area-pill, html.retro .settings-item-title, html.retro .st-t{ font-family:'Press Start 2P', ui-monospace, monospace !important; letter-spacing:.02em; }
html.retro .d-logo{ font-size:17px; text-shadow:2px 2px 0 #2a1b6b; }
html.retro .d-logo span{ text-shadow:2px 2px 0 #5a0018; }
html.retro .bb-title{ font-size:clamp(20px, 2.4vw, 34px) !important; line-height:1.3; text-shadow:3px 3px 0 #2a1b6b; }
html.retro .bb-tag{ font-size:10px; color:#ffd23f; }
html.retro .row h3{ font-size:11px; color:#7ad7ff; line-height:1.6; }
html.retro .bb-btn{ font-size:11px; border-radius:0 !important; box-shadow:4px 4px 0 #12143a; }
html.retro .bb-btn.primary{ background:#ffd23f; border-color:#ffd23f; color:#1a1033; box-shadow:4px 4px 0 #6b4a00; }
html.retro .bb-mini{ font-size:8px; }
html.retro .d-hubs{ border-radius:0; }
html.retro .d-hubs button{ font-size:9.5px; border-radius:0 !important; }
html.retro .m-area-pill{ font-size:9px; border-radius:0 !important; }
html.retro .settings-item-title{ font-size:10.5px; line-height:1.6; }
html.retro .st-t{ font-size:8px; }
html.retro .card .art{ border-radius:0 !important; outline:3px solid #fff; outline-offset:-3px; box-shadow:5px 5px 0 #2a1b6b; }
html.retro .st-ring{ border-radius:0; }
html.retro .st-img{ border-radius:0; }
html.retro .progress{ border-radius:0 !important; }

/* Logo in alto a sinistra anche sulla web app da telefono, accanto al selettore (come sull'app nativa). */
.m-left{ display:flex; align-items:center; gap:8px; min-width:0; }
.m-left .m-logo{ font-size:21px; }
.m-left .m-area-pill{ min-width:0; }
@media (max-width:380px){ .m-left .m-logo{ font-size:18px; } .m-left{ gap:6px; } }

/* ── "Hai finito la serie" (js/finale.js): riquadro dopo l'ultimo episodio, niente coriandoli ── */
.fz-overlay{ position:fixed; inset:0; z-index:5200; display:flex; align-items:center; justify-content:center; padding:20px; animation:fzIn .35s ease; }
.fz-overlay.bye{ animation:fzOut .25s ease forwards; }
@keyframes fzIn{ from{ opacity:0; } } @keyframes fzOut{ to{ opacity:0; } }
.fz-bg{ position:absolute; inset:0; background:#000 center/cover no-repeat; }
.fz-bg::after{ content:''; position:absolute; inset:0; background:radial-gradient(80% 60% at 50% 40%, rgba(0,0,0,.6), rgba(0,0,0,.9)); }
.fz-card{ position:relative; width:min(600px, 100%); padding:30px 32px 26px; border-radius:20px; background:rgba(18,18,24,.92); border:1px solid rgba(255,255,255,.1); box-shadow:0 30px 80px rgba(0,0,0,.6); text-align:center; display:flex; flex-direction:column; align-items:center; animation:fzPop .45s cubic-bezier(.2,1.2,.4,1); }
@keyframes fzPop{ from{ opacity:0; transform:scale(.94); } }
.fz-kick{ font-size:12.5px; font-weight:800; letter-spacing:.18em; color:#ffd27a; }
.fz-logo{ max-width:260px; max-height:100px; margin:16px 0 8px; object-fit:contain; }
.fz-title{ display:block; font-size:30px; font-weight:900; margin:14px 0 6px; }
.fz-sub{ font-size:15px; color:rgba(255,255,255,.85); margin-bottom:18px; }
.fz-stats{ display:grid; grid-template-columns:repeat(3,1fr); width:100%; border-radius:14px; overflow:hidden; border:1px solid rgba(255,255,255,.16); background:linear-gradient(180deg, rgba(255,255,255,.10), rgba(255,255,255,.03)), rgba(10,10,16,.55); }
.fz-stats div{ position:relative; padding:12px 0; display:flex; flex-direction:column; align-items:center; }
.fz-stats div + div::before{ content:''; position:absolute; left:0; top:22%; bottom:22%; width:1px; background:rgba(255,255,255,.16); }
.fz-stats b{ font-size:24px; font-weight:800; font-variant-numeric:tabular-nums; }
.fz-stats span{ margin-top:3px; font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:rgba(255,255,255,.6); }
.fz-like{ align-self:flex-start; margin:20px 0 9px; font-size:14px; font-weight:700; }
.fz-recs{ display:flex; gap:12px; width:100%; }
.fz-rec{ flex:1; aspect-ratio:2/3; max-height:220px; border:0; padding:0; border-radius:10px; background:#1c1c24 center/cover no-repeat; cursor:pointer; box-shadow:0 6px 18px rgba(0,0,0,.5); transition:transform .15s; }
.fz-rec:hover, .fz-rec:focus-visible{ transform:scale(1.04); outline:3px solid #fff; outline-offset:2px; }
.fz-btns{ display:flex; gap:10px; width:100%; margin-top:20px; }
.fz-btn{ flex:1; height:46px; border:0; border-radius:12px; background:#fff; color:#000; font:inherit; font-weight:800; cursor:pointer; }
.fz-btn.g{ background:rgba(255,255,255,.14); color:#fff; }
.fz-btn:focus-visible{ outline:3px solid #fff; outline-offset:3px; }
@media (max-width:700px){ .fz-overlay{ padding:0; } .fz-card{ width:100%; min-height:100%; border-radius:0; justify-content:center; background:rgba(12,12,16,.55); border:0; box-shadow:none; } .fz-rec{ max-height:none; } }
@media (prefers-reduced-motion:reduce){ .fz-overlay, .fz-card{ animation:none; } }

/* ── Suggerimenti della home (js/picks.js) ── */
/* Saga nella scheda del film */
.sg-band{ display:grid; grid-template-columns:minmax(260px, 340px) minmax(0, 1fr); gap:24px; align-items:start; min-width:0; padding:18px 20px; border-radius:18px; background:linear-gradient(180deg, rgba(255,255,255,.07), rgba(255,255,255,.03)); border:1px solid rgba(255,255,255,.08); }
.sg-head{ display:flex; justify-content:space-between; align-items:baseline; gap:10px; margin-bottom:10px; }
.sg-k{ font-size:12.5px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--text-muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.sg-n{ flex:none; font-size:14px; font-weight:800; font-variant-numeric:tabular-nums; color:var(--text); }
.sg-segs{ display:flex; gap:4px; }
.sg-segs i{ flex:1; height:4px; border-radius:2px; background:rgba(255,255,255,.18); }
.sg-segs i.on{ background:#fff; }
.sg-segs i.nx{ background:#3b9cff; animation:sgPulse 1.6s ease-in-out infinite; }
@keyframes sgPulse{ 50%{ opacity:.45; } }
.sg-note{ display:flex; gap:8px; align-items:flex-start; margin-top:14px; font-size:13.5px; line-height:1.4; color:#cfe5ff; }
.sg-note svg, .sg-go svg{ flex:none; width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; margin-top:1px; }
.sg-go{ display:flex; align-items:center; justify-content:center; gap:8px; width:100%; margin-top:14px; min-height:44px; padding:8px 16px; border:0; border-radius:12px; background:#fff; color:#000; font:inherit; font-size:14px; font-weight:800; cursor:pointer; text-align:left; }
.sg-go span{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sg-go:hover{ background:#e8e8ee; }
.sg-go:focus-visible, .sg-p:focus-visible, .sgc:focus-visible, .qt-chip:focus-visible, .qtc:focus-visible, .th-b:focus-visible, .th-x:focus-visible{ outline:3px solid #fff; outline-offset:3px; }
.sg-here{ margin-top:14px; font-size:13px; color:var(--text-muted); }
.sg-track{ display:flex; gap:10px; overflow-x:auto; padding:3px 3px 22px; scrollbar-width:none; }
.sg-track::-webkit-scrollbar{ display:none; }
.sg-p{ position:relative; flex:none; width:88px; aspect-ratio:2/3; border:0; padding:0; border-radius:8px; background:var(--surface-2) center/cover no-repeat; cursor:pointer; transition:transform .18s ease; }
.sg-p:hover{ transform:translateY(-2px); }
.sg-p.seen::after{ content:""; position:absolute; inset:0; border-radius:8px; background:rgba(0,0,0,.5); }
.sg-p.cur{ box-shadow:0 0 0 2px rgba(255,255,255,.55); }
.sg-p.nx{ box-shadow:0 0 0 2px var(--bg), 0 0 0 4px #3b9cff; }
.sg-num{ position:absolute; left:5px; top:5px; z-index:1; font-size:11px; font-weight:800; color:#fff; background:rgba(0,0,0,.72); border-radius:5px; padding:1px 6px; }
.sg-ck{ position:absolute; right:5px; bottom:5px; z-index:1; width:20px; height:20px; border-radius:50%; background:#fff; color:#000; display:flex; align-items:center; justify-content:center; }
.sg-ck svg{ width:12px; height:12px; fill:none; stroke:currentColor; stroke-width:3.4; stroke-linecap:round; stroke-linejoin:round; }
.sg-lb{ position:absolute; left:-12px; right:-12px; bottom:-19px; text-align:center; font-size:10px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:#8cc4ff; }
@media (max-width:700px){
  .sg-band{ display:flex; flex-direction:column; align-items:stretch; gap:0; padding:14px 0 14px 14px; overflow:hidden; }
  .sg-info{ display:contents; }
  .sg-head, .sg-segs, .sg-note, .sg-go, .sg-here{ margin-right:14px; }
  .sg-head{ order:1; } .sg-segs{ order:2; } .sg-track{ order:3; margin-top:12px; } .sg-note{ order:4; margin-top:2px; } .sg-go{ order:5; width:auto; } .sg-here{ order:5; margin-top:4px; }
  .sg-k{ font-size:11px; } .sg-n{ font-size:13px; }
  .sg-p{ width:66px; }
  .sg-note{ font-size:12.5px; }
}
/* Riga "Saghe da completare" in home */
.sgc{ position:relative; flex:none; width:380px; max-width:82vw; aspect-ratio:16/8.5; border:0; padding:0; border-radius:12px; overflow:hidden; background:var(--surface-2) center/cover no-repeat; color:#fff; font:inherit; text-align:left; cursor:pointer; transition:transform .18s ease; }
.sgc:hover{ transform:translateY(-2px); }
.sgc::before{ content:""; position:absolute; inset:0; background:linear-gradient(0deg, rgba(0,0,0,.95) 0, rgba(0,0,0,.55) 55%, rgba(0,0,0,.1) 100%); }
.sgc-in{ position:absolute; left:14px; right:14px; bottom:13px; display:flex; gap:12px; align-items:flex-end; }
.sgc-p{ flex:none; width:56px; aspect-ratio:2/3; border-radius:6px; background:center/cover no-repeat; box-shadow:0 0 0 2px #3b9cff; }
.sgc-tx{ flex:1; min-width:0; display:flex; flex-direction:column; }
.sgc-t{ font-size:20px; font-weight:900; line-height:1.15; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.sgc-s{ font-size:13px; color:rgba(255,255,255,.75); margin:2px 0 7px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.sgc-s b{ color:#fff; }
.sgc-n{ font-size:12px; color:#b9dcff; margin-top:6px; }
@media (max-width:700px){ .sgc{ width:272px; } .sgc-t{ font-size:17px; } .sgc-s{ font-size:11.5px; } .sgc-p{ width:44px; } .sgc-in{ left:12px; right:12px; bottom:11px; gap:10px; } }

/* Quanto tempo hai */
.qt-band{ padding:16px 18px 14px; border-radius:18px; background:linear-gradient(180deg, rgba(255,255,255,.07), rgba(255,255,255,.03)); border:1px solid rgba(255,255,255,.08); }
.qt-h{ font-size:18px; font-weight:800; letter-spacing:.02em; text-transform:uppercase; color:var(--text); margin-bottom:12px; }
.qt-chips{ display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:10px; }
.qt-chip{ display:flex; flex-direction:column; align-items:flex-start; gap:2px; min-height:56px; padding:10px 14px; border-radius:14px; border:1px solid rgba(255,255,255,.14); background:rgba(255,255,255,.06); color:var(--text); font:inherit; text-align:left; cursor:pointer; transition:background .2s, color .2s, border-color .2s, transform .15s; }
.qt-chip b{ font-size:15px; font-weight:800; }
.qt-chip span{ font-size:12px; color:var(--text-muted); }
.qt-chip:hover{ background:rgba(255,255,255,.1); }
.qt-chip:active{ transform:scale(.97); }
.qt-chip.on{ background:#fff; color:#000; border-color:#fff; }
.qt-chip.on span{ color:rgba(0,0,0,.6); }
.qt-res:empty{ display:none; }
.qt-res{ margin-top:14px; }
.qt-rh{ display:flex; flex-direction:column; gap:2px; margin-bottom:10px; }
.qt-rh b{ font-size:15px; font-weight:800; }
.qt-rh span{ font-size:12.5px; color:var(--text-muted); }
.qt-wait{ font-size:13px; color:var(--text-muted); padding:12px 0 6px; }
.qtc{ position:relative; flex:none; width:230px; aspect-ratio:16/9; border:0; padding:0; border-radius:10px; overflow:hidden; background:var(--surface-2) center/cover no-repeat; color:#fff; font:inherit; text-align:left; cursor:pointer; transition:transform .18s ease; }
.qtc:hover{ transform:translateY(-2px); }
.qtc::before{ content:""; position:absolute; inset:0; background:linear-gradient(0deg, rgba(0,0,0,.88), rgba(0,0,0,0) 62%); }
.qtc-t{ position:absolute; left:10px; right:10px; bottom:32px; font-size:14px; font-weight:800; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.qtc-d{ position:absolute; left:10px; bottom:9px; max-width:calc(100% - 20px); font-size:12px; font-weight:700; background:rgba(0,0,0,.72); padding:2px 7px; border-radius:6px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.qt-m .qt-band{ padding:14px 12px 12px; margin:0 -2px; }
.qt-m .qt-h{ font-size:16px; }
.qt-m .qt-chips{ gap:8px; }
.qt-m .qt-chip{ padding:9px 10px; min-height:52px; }
.qt-m .qt-chip b{ font-size:14px; }
.qt-m .qt-chip span{ font-size:11px; }
/* Sito da computer: riga "Per stasera" con il selettore nel titolo, niente riquadro. */
.qt-lite .qt-lh{ font-size:18px; font-weight:800; letter-spacing:.02em; text-transform:uppercase; gap:14px; flex-wrap:wrap; }
.qt-seg{ display:inline-flex; gap:2px; padding:3px; border-radius:999px; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.12); text-transform:none; letter-spacing:0; }
.qt-seg .qt-chip{ min-height:0; padding:6px 14px; border:0; border-radius:999px; background:none; flex-direction:row; align-items:center; color:rgba(255,255,255,.75); }
.qt-seg .qt-chip b{ font-size:13px; font-weight:700; }
.qt-seg .qt-chip span{ display:none; }
.qt-seg .qt-chip:hover{ background:rgba(255,255,255,.08); color:#fff; }
.qt-seg .qt-chip.on{ background:#fff; color:#000; }
.qt-hint{ font-size:12.5px; font-weight:500; color:var(--text-muted); text-transform:none; letter-spacing:0; }
.qt-lite .qt-res{ margin-top:0; }
.qt-m .qtc{ width:160px; }
.qt-m .qtc-t{ font-size:12.5px; bottom:28px; }
.qt-m .qtc-d{ font-size:11px; }

/* Pollice dopo la visione */
.th-card{ position:fixed; z-index:5100; right:24px; bottom:24px; width:min(420px, calc(100vw - 24px)); display:flex; align-items:center; gap:14px; padding:14px 16px; border-radius:16px; background:rgba(24,24,30,.97); border:1px solid rgba(255,255,255,.1); box-shadow:0 18px 50px rgba(0,0,0,.6); color:#fff; opacity:0; transform:translateY(24px); transition:opacity .3s ease, transform .4s cubic-bezier(.2,.9,.3,1); }
.th-card.show{ opacity:1; transform:none; }
.th-p{ flex:none; width:44px; height:66px; border-radius:7px; background:center/cover no-repeat; }
.th-tx{ flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
.th-k{ font-size:12px; color:rgba(255,255,255,.62); }
.th-q{ font-size:15.5px; font-weight:800; line-height:1.25; }
.th-btns{ flex:none; display:flex; gap:8px; }
.th-b{ width:44px; height:44px; border-radius:50%; border:1px solid rgba(255,255,255,.25); background:transparent; color:#fff; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:background .2s, color .2s; }
.th-b svg{ width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.th-b.dn svg{ transform:rotate(180deg); }
.th-b:hover{ background:rgba(255,255,255,.12); }
.th-b.on{ background:#fff; color:#000; border-color:#fff; }
.th-x{ position:absolute; top:4px; right:4px; width:26px; height:26px; border:0; border-radius:50%; background:transparent; color:rgba(255,255,255,.5); display:flex; align-items:center; justify-content:center; cursor:pointer; }
.th-x svg{ width:13px; height:13px; fill:none; stroke:currentColor; stroke-width:2.4; stroke-linecap:round; }
.th-x:hover{ color:#fff; }
@media (max-width:700px){
  .th-card{ left:12px; right:12px; width:auto; bottom:calc(76px + env(safe-area-inset-bottom, 0px)); padding:12px; gap:12px; }
  .th-p{ width:40px; height:60px; }
  .th-q{ font-size:14.5px; }
  .th-b{ width:40px; height:40px; }
}
@media (prefers-reduced-motion:reduce){ .th-card{ transition:opacity .2s; transform:none; } .sg-segs i.nx{ animation:none; } }

/* ── Barra in alto del sito da telefono, come nell'app: logo, area minimal, icone senza fondo ── */
.m-topbar .m-left{ display:flex; align-items:center; gap:10px; min-width:0; }
.m-topbar .m-logo{ font-size:23px; letter-spacing:-.02em; }
.m-topbar .m-area-pill{ gap:5px; padding:4px 5px 4px 9px; border-radius:16px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.14); font-size:12px; font-weight:700; line-height:1.2; }
.m-topbar .m-area-pill .dot{ width:6px; height:6px; border-radius:50%; flex:none; }
.m-topbar .m-area-pill b{ font-weight:700; }
.m-topbar .m-area-pill .chev{ color:rgba(255,255,255,.7); margin-left:-2px; }
.m-topbar .m-area-pill .chev svg{ width:18px; height:18px; }
.m-topbar .m-right{ gap:2px; }
.m-topbar .m-right .topbar-icon-btn{ width:40px; height:40px; background:transparent; color:#fff; }
.m-topbar .m-right .topbar-icon-btn svg{ width:23px; height:23px; }
.m-topbar .m-right .topbar-icon-btn:hover, .m-topbar .m-right .topbar-icon-btn.active{ background:rgba(255,255,255,.1); }
.m-topbar .m-right .topbar-icon-btn.ai-btn, .m-topbar .m-right .topbar-icon-btn.ai-btn:hover, .m-topbar .m-right .topbar-icon-btn.ai-btn.active{ background:transparent; color:#d9b8ff; filter:none; }
.m-topbar .m-right .topbar-icon-btn.ai-btn svg{ width:21px; height:21px; }
.m-topbar .m-right .avatar-wrap{ margin-left:6px; }
.m-topbar .m-right .avatar-sm{ width:32px; height:32px; font-size:13px; }
.m-topbar .topbar-icon-btn:focus-visible, .m-topbar .m-area-pill:focus-visible{ outline:2px solid #fff; outline-offset:2px; }
@media (max-width: 360px){
  .m-topbar .m-logo{ font-size:21px; }
  .m-topbar .m-right .topbar-icon-btn{ width:36px; height:36px; }
}

/* ── Chicche della scheda (js/extras.js) ── */
/* Riassunto prima di riprendere e pannello "Volti noti" */
.rc-overlay, .vf-overlay{ position:fixed; inset:0; z-index:5150; display:flex; align-items:center; justify-content:center; padding:20px; }
.rc-dim{ position:absolute; inset:0; background:rgba(0,0,0,.62); opacity:0; transition:opacity .25s ease; }
.rc-overlay.show .rc-dim, .vf-overlay.show .rc-dim{ opacity:1; }
.rc-card, .vf-card{ position:relative; width:min(600px, 100%); max-height:calc(100vh - 40px); overflow:auto; padding:28px 30px 24px; border-radius:20px; background:#141419; border:1px solid rgba(255,255,255,.1); box-shadow:0 30px 80px rgba(0,0,0,.7); color:#fff; opacity:0; transform:scale(.97); transition:opacity .25s ease, transform .3s cubic-bezier(.2,.9,.3,1); }
.rc-overlay.show .rc-card, .vf-overlay.show .vf-card{ opacity:1; transform:none; }
.rc-x{ position:absolute; top:10px; right:10px; width:34px; height:34px; border:0; border-radius:50%; background:transparent; color:rgba(255,255,255,.55); display:flex; align-items:center; justify-content:center; cursor:pointer; }
.rc-x svg{ width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:2.4; stroke-linecap:round; }
.rc-x:hover{ color:#fff; background:rgba(255,255,255,.08); }
.rc-k{ font-size:12px; font-weight:800; letter-spacing:.13em; text-transform:uppercase; color:#9fc9ff; }
.rc-t{ font-size:22px; font-weight:900; margin:6px 0 16px; padding-right:30px; }
.rc-up{ font-size:15px; font-weight:600; color:rgba(255,255,255,.55); }
.rc-wait{ font-size:14px; color:rgba(255,255,255,.6); padding:8px 0 16px; }
.rc-p{ display:flex; gap:11px; margin-bottom:13px; font-size:15px; line-height:1.45; color:rgba(255,255,255,.9); animation:rcIn .45s ease both; }
.rc-p b{ flex:none; width:24px; height:24px; border-radius:50%; background:rgba(255,255,255,.1); font-size:12px; display:flex; align-items:center; justify-content:center; margin-top:1px; }
@keyframes rcIn{ from{ opacity:0; transform:translateY(6px); } to{ opacity:1; transform:none; } }
.rc-foot{ display:flex; align-items:center; gap:7px; font-size:12.5px; color:rgba(255,255,255,.5); margin:4px 0 18px; min-height:16px; }
.rc-foot svg{ width:14px; height:14px; flex:none; }
.rc-btns{ display:flex; gap:10px; }
.rc-go, .rc-skip{ height:48px; border:0; border-radius:12px; font:inherit; font-size:15.5px; font-weight:800; cursor:pointer; display:flex; align-items:center; justify-content:center; gap:8px; }
.rc-go{ flex:1; background:#fff; color:#000; }
.rc-go svg{ width:16px; height:16px; }
.rc-skip{ width:120px; background:rgba(255,255,255,.14); color:#fff; }
.rc-go:hover{ background:#e8e8ee; } .rc-skip:hover{ background:rgba(255,255,255,.22); }
.rc-go:focus-visible, .rc-skip:focus-visible, .rc-x:focus-visible, .vf-chip:focus-visible, .vf-post:focus-visible, .detail-ost-btn:focus-visible, .ost-play:focus-visible, .ost-back:focus-visible{ outline:3px solid #fff; outline-offset:3px; }
@media (max-width:700px){
  .rc-overlay, .vf-overlay{ align-items:flex-end; padding:0; }
  .rc-card, .vf-card{ width:100%; border-radius:22px 22px 0 0; padding:22px 18px calc(24px + env(safe-area-inset-bottom, 0px)); transform:translateY(40px); }
  .rc-t{ font-size:19px; } .rc-p{ font-size:13.5px; } .rc-go, .rc-skip{ height:44px; font-size:14.5px; } .rc-skip{ width:96px; }
}
/* Ti manca poco */
/* "Ti manca poco" dentro la copertina di Continua a guardare: prende il posto della barra di avanzamento,
   cosi' tutte le schede della riga restano alte uguali (niente bande scure sotto/sopra le altre). */
.card.wide-card{ align-self:flex-start; }
.card.wide-card .art.wide{ padding:10px 12px 26px 12px; }
.card.wide-card .art.wide::before{ content:""; position:absolute; left:0; right:0; bottom:0; height:60%; background:linear-gradient(180deg, transparent 0%, rgba(0,0,0,.85) 100%); pointer-events:none; z-index:1; }
.card.wide-card .art.wide .fallback-label{ position:relative; z-index:2; font-size:12.5px; line-height:1.25; text-shadow:0 1px 4px rgba(0,0,0,.9); max-width:100%; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.card.wide-card .progress{ z-index:3; }
.lft-slot{ position:absolute; left:0; right:0; bottom:0; z-index:2; display:block; padding:22px 10px 8px; text-align:left;
  background:linear-gradient(180deg, transparent, rgba(0,0,0,.78)); pointer-events:none; }
.lft-slot:empty{ display:none; }
.card:has(.lft-slot:not(:empty)) .progress{ display:none; }
.card:has(.lft-slot:not(:empty)) .art{ padding-bottom:44px; }
.lft-segs{ display:flex; gap:3px; }
.lft-segs i{ flex:1; height:3px; border-radius:2px; background:rgba(255,255,255,.25); }
.lft-segs i.on{ background:rgba(255,255,255,.9); }
.lft-segs i.nx{ background:var(--teal); }
.lft-t{ display:block; margin-bottom:6px; font-size:12px; font-weight:700; color:rgba(255,255,255,.92); text-shadow:0 1px 4px rgba(0,0,0,.6); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.lft-box{ max-width:620px; padding:16px 18px; border-radius:16px; background:linear-gradient(180deg, rgba(59,156,255,.16), rgba(59,156,255,.05)); border:1px solid rgba(59,156,255,.3); }
.lft-k{ font-size:12px; font-weight:800; letter-spacing:.13em; text-transform:uppercase; color:#9fc9ff; }
.lft-h{ font-size:19px; font-weight:900; margin:6px 0 4px; }
.lft-s{ font-size:13.5px; color:rgba(255,255,255,.72); margin-bottom:12px; }
.lft-box .lft-segs i.nx{ background:#3b9cff; }
.lft-box .lft-segs{ gap:5px; } .lft-box .lft-segs i{ height:5px; }
/* Volti noti */
.vf-list{ display:flex; flex-wrap:wrap; gap:10px; }
.vf-chip{ display:flex; align-items:center; gap:11px; padding:8px 16px 8px 8px; border-radius:999px; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.1); color:#fff; font:inherit; text-align:left; cursor:pointer; max-width:100%; transition:background .2s; }
.vf-chip:hover{ background:rgba(255,255,255,.12); }
.vf-img{ flex:none; width:44px; height:44px; border-radius:50%; background:var(--surface-2) center/cover no-repeat; }
.vf-img.big{ width:64px; height:64px; }
.vf-tx{ min-width:0; display:flex; flex-direction:column; }
.vf-tx b{ font-size:14.5px; }
.vf-tx span{ font-size:12.5px; color:rgba(255,255,255,.62); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.vf-head{ display:flex; align-items:center; gap:14px; margin-bottom:18px; padding-right:30px; }
.vf-name{ font-size:22px; font-weight:900; } .vf-sub{ font-size:13.5px; color:rgba(255,255,255,.6); }
.vf-sec{ font-size:12px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:rgba(255,255,255,.55); margin:6px 0 10px; }
.vf-posts{ display:flex; gap:12px; overflow-x:auto; padding:3px 3px 12px; scrollbar-width:none; }
.vf-posts::-webkit-scrollbar{ display:none; }
.vf-post{ flex:none; width:104px; background:none; border:0; padding:0; color:#fff; font:inherit; text-align:left; cursor:pointer; }
.vf-pi{ position:relative; display:block; width:104px; aspect-ratio:2/3; border-radius:9px; background:var(--surface-2) center/cover no-repeat; }
.vf-ck{ position:absolute; right:6px; bottom:6px; width:22px; height:22px; border-radius:50%; background:#fff; color:#000; display:flex; align-items:center; justify-content:center; }
.vf-ck svg{ width:13px; height:13px; fill:none; stroke:currentColor; stroke-width:3.4; stroke-linecap:round; stroke-linejoin:round; }
.vf-pt{ display:block; font-size:12.5px; font-weight:700; margin-top:6px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.vf-ps{ display:block; font-size:11.5px; color:rgba(255,255,255,.5); } .vf-ps.on{ color:#9fc9ff; }
@media (max-width:700px){ .vf-list{ flex-direction:column; align-items:flex-start; } .vf-post{ width:90px; } .vf-pi{ width:90px; } }
/* Colonna sonora */
.ost-slot:empty{ display:none; }
.detail-ost-btn{ display:inline-flex; align-items:center; gap:8px; height:44px; padding:0 18px; border-radius:999px; border:1px solid rgba(255,255,255,.18); background:rgba(255,255,255,.1); color:#fff; font:inherit; font-size:14px; font-weight:700; cursor:pointer; white-space:nowrap; }
.detail-ost-btn:hover{ background:rgba(255,255,255,.18); }
.detail-ost-btn svg, .ost-play svg{ width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.ost-play svg{ fill:currentColor; stroke:none; width:15px; height:15px; }
.ost-head{ display:flex; gap:24px; align-items:flex-end; margin:6px 0 22px; }
.ost-cover{ width:200px; height:200px; border-radius:10px; object-fit:cover; box-shadow:0 18px 40px rgba(0,0,0,.6); flex:none; }
.ost-k{ font-size:12px; font-weight:800; letter-spacing:.13em; text-transform:uppercase; color:#ffb37a; }
.ost-info h2{ font-size:34px; font-weight:900; margin:6px 0 4px; line-height:1.1; }
.ost-s{ font-size:14px; color:rgba(255,255,255,.65); }
.ost-btns{ display:flex; gap:10px; margin-top:16px; }
.ost-play, .ost-back{ white-space:nowrap; height:44px; padding:0 20px; border:0; border-radius:999px; font:inherit; font-size:14.5px; font-weight:800; cursor:pointer; display:inline-flex; align-items:center; gap:8px; }
.ost-play{ background:#f97316; color:#fff; } .ost-back{ background:rgba(255,255,255,.12); color:#fff; }
@media (max-width:700px){ .ost-head{ gap:14px; } .ost-cover{ width:120px; height:120px; } .ost-info h2{ font-size:22px; } .ost-s{ font-size:12.5px; } .ost-play, .ost-back{ height:40px; padding:0 16px; font-size:13.5px; } }
@media (prefers-reduced-motion:reduce){ .rc-p{ animation:none; } .rc-card, .vf-card{ transition:opacity .2s; } }
/* Il cast: riga sempre visibile, volti noti evidenziati */
.vf-row .vf-list{ flex-wrap:nowrap; overflow-x:auto; padding:3px 3px 8px; scrollbar-width:none; }
.vf-row .vf-list::-webkit-scrollbar{ display:none; }
.vf-row .vf-chip{ flex:none; max-width:280px; }
.vf-chip.known{ border-color:rgba(59,156,255,.35); }
.vf-chip.known .vf-tx span{ color:#9fc9ff; }
.vf-known{ font-size:11.5px; font-weight:700; color:#9fc9ff; background:rgba(59,156,255,.16); padding:3px 10px; border-radius:999px; }
@media (max-width:700px){ .vf-row .vf-list{ flex-direction:row; align-items:center; } .vf-row .vf-chip{ max-width:240px; } }
/* Pannello dell'attore col mouse: le copertine vanno a capo (niente scorrimento orizzontale nascosto). */
@media (hover:hover) and (pointer:fine){
  .vf-card{ width:min(720px, 100%); }
  .vf-posts{ display:grid; grid-template-columns:repeat(auto-fill, minmax(104px, 1fr)); overflow:visible; padding-bottom:6px; }
  .vf-post{ width:auto; } .vf-pi{ width:100%; }
}

/* Chicche della scheda: episodi più amati, nuova stagione annunciata */
.ep-top{ display:inline-flex; align-items:center; gap:4px; margin-top:5px; padding:2px 9px 2px 7px; border-radius:999px; font-size:11.5px; font-weight:700; color:#f5c451; background:rgba(245,196,81,.12); border:1px solid rgba(245,196,81,.3); }
.ep-top svg{ width:12px; height:12px; fill:none; stroke:currentColor; stroke-width:2; stroke-linejoin:round; }
.ns-box{ max-width:620px; display:flex; align-items:center; gap:14px; padding:14px 16px; border-radius:16px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1); }
.ns-ic{ flex:none; width:40px; height:40px; border-radius:10px; display:flex; align-items:center; justify-content:center; color:#9fc9ff; background:rgba(59,156,255,.16); }
.ns-ic svg{ width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; }
.ns-tx{ flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
.ns-k{ font-size:11.5px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:#9fc9ff; }
.ns-s{ font-size:14.5px; font-weight:600; color:var(--text); }
.ns-btn{ flex:none; display:inline-flex; align-items:center; gap:7px; height:40px; padding:0 15px; border:0; border-radius:10px; background:#fff; color:#000; font:inherit; font-size:13.5px; font-weight:800; cursor:pointer; }
.ns-btn svg{ width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; }
.ns-btn.on{ background:rgba(255,255,255,.12); color:#fff; cursor:default; }
.ns-btn:focus-visible{ outline:3px solid #fff; outline-offset:3px; }
@media (max-width:520px){ .ns-box{ flex-wrap:wrap; } .ns-btn{ width:100%; justify-content:center; } }

/* ── Chicche del player: pausa elegante, dove l'ho già visto, scena dopo i titoli (js/pausex.js) ── */
.px-pause{ position:absolute; inset:0; z-index:40; opacity:0; transition:opacity .6s ease; cursor:pointer; color:#fff; }
.px-pause.on{ opacity:1; }
.px-bg{ position:absolute; inset:0; background:#06060a center/cover no-repeat; animation:pxBg 40s linear both; }
@keyframes pxBg{ from{ transform:scale(1.04); } to{ transform:scale(1.12); } }
.px-pause .px-bg + .px-dim{ background:linear-gradient(90deg, rgba(6,6,10,.95) 0, rgba(6,6,10,.78) 45%, rgba(6,6,10,.35)), linear-gradient(0deg, rgba(6,6,10,.9), transparent 55%); }
.px-dim{ position:absolute; inset:0; background:linear-gradient(90deg, rgba(6,6,10,.92) 0, rgba(6,6,10,.72) 48%, rgba(6,6,10,.38)); }
.px-clock{ position:absolute; top:28px; right:40px; font-size:30px; font-weight:300; color:rgba(255,255,255,.85); font-variant-numeric:tabular-nums; }
.px-info{ position:absolute; left:56px; right:56px; bottom:48px; max-width:760px; transform:translateY(12px); transition:transform .7s .15s ease; }
.px-pause.on .px-info{ transform:none; }
.px-k, .px-ck{ display:flex; align-items:center; gap:8px; font-size:12px; font-weight:800; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.62); }
.px-k svg, .px-ck svg, .px-e svg{ width:15px; height:15px; fill:none; stroke:currentColor; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; }
.px-t{ margin-top:12px; font-size:clamp(26px, 3.4vw, 44px); font-weight:900; line-height:1.05; max-width:620px; }
.px-l{ margin-top:6px; font-size:17px; font-weight:700; }
.px-e{ display:flex; align-items:center; gap:8px; margin-top:10px; font-size:15px; }
.px-o{ margin:12px 0 0; max-width:620px; font-size:15px; line-height:1.5; color:rgba(255,255,255,.72); display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.px-ck{ margin-top:24px; color:rgba(255,255,255,.72); }
.px-faces{ display:flex; gap:10px; margin-top:10px; overflow-x:auto; padding:4px; scrollbar-width:none; }
.px-faces::-webkit-scrollbar{ display:none; }
.px-face{ flex:none; display:flex; align-items:center; gap:10px; padding:6px 16px 6px 6px; border-radius:999px; border:1px solid rgba(255,255,255,.12); background:rgba(20,20,26,.78); color:#fff; font:inherit; text-align:left; cursor:pointer; transition:transform .15s, box-shadow .15s, background .15s; }
.px-face:hover{ background:rgba(40,40,48,.9); }
.px-face:focus-visible{ outline:none; box-shadow:0 0 0 3px #fff; transform:scale(1.04); }
.px-fi{ flex:none; width:42px; height:42px; border-radius:50%; background:#2a2a33 center/cover; }
.px-fi.lg{ width:64px; height:64px; }
.px-ft{ display:flex; flex-direction:column; min-width:0; }
.px-ft b{ font-size:14px; white-space:nowrap; }
.px-ft span{ font-size:12px; color:rgba(255,255,255,.55); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:230px; }
.px-ft span.hit{ color:#9fd0ff; }
.px-h{ margin-top:16px; font-size:13px; color:rgba(255,255,255,.45); }
.px-ht{ display:none; }
@media (hover:none) and (pointer:coarse){ .px-hk{ display:none; } .px-ht{ display:inline; } }
.px-panel{ position:absolute; top:0; right:0; bottom:0; width:min(480px, 92%); padding:44px 34px; background:rgba(14,14,19,.97); border-left:1px solid rgba(255,255,255,.08); display:flex; flex-direction:column; justify-content:center; cursor:default; animation:pxIn .4s cubic-bezier(.2,.9,.3,1); }
@keyframes pxIn{ from{ transform:translateX(100%); } to{ transform:none; } }
.px-ph{ display:flex; align-items:center; gap:14px; margin-bottom:22px; }
.px-ph .px-ft b{ font-size:22px; }
.px-px{ margin-left:auto; width:38px; height:38px; border-radius:50%; border:0; background:rgba(255,255,255,.08); color:#fff; cursor:pointer; display:flex; align-items:center; justify-content:center; }
.px-px svg, .px-sx svg{ width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:2.2; stroke-linecap:round; }
.px-posts{ display:grid; grid-template-columns:repeat(auto-fill, minmax(96px, 1fr)); gap:12px; margin-top:12px; max-height:60vh; overflow:auto; }
.px-post{ display:flex; flex-direction:column; gap:5px; }
.px-pi{ position:relative; aspect-ratio:2/3; border-radius:8px; background:#1b1e2e center/cover; }
.px-pi i{ position:absolute; right:5px; bottom:5px; width:20px; height:20px; border-radius:50%; background:#fff; color:#000; display:flex; align-items:center; justify-content:center; }
.px-pi i svg{ width:12px; height:12px; fill:none; stroke:currentColor; stroke-width:3; }
.px-pt{ font-size:12px; color:rgba(255,255,255,.75); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.px-wait{ margin-top:12px; font-size:14px; color:rgba(255,255,255,.55); }
.px-pause.panel .px-info{ right:min(500px, 60%); }
.px-sting{ position:absolute; right:24px; bottom:120px; z-index:39; width:min(420px, calc(100% - 48px)); display:flex; align-items:flex-start; gap:14px; padding:16px 10px 16px 18px; border-radius:16px; background:rgba(18,18,24,.94); border:1px solid rgba(255,255,255,.12); box-shadow:0 18px 50px rgba(0,0,0,.6); color:#fff; opacity:0; transform:translateY(16px); transition:opacity .45s, transform .45s; }
.px-sting.on{ opacity:1; transform:none; }
.px-si{ flex:none; width:42px; height:42px; border-radius:11px; background:rgba(245,196,81,.14); color:#f5c451; display:flex; align-items:center; justify-content:center; }
.px-si svg{ width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linejoin:round; }
.px-st{ flex:1; display:flex; flex-direction:column; gap:3px; }
.px-st b{ font-size:16px; }
.px-st span{ font-size:13.5px; color:rgba(255,255,255,.66); }
.px-sx{ flex:none; width:34px; height:34px; border-radius:50%; border:0; background:none; color:rgba(255,255,255,.7); cursor:pointer; display:flex; align-items:center; justify-content:center; }
@media (max-width:700px){
  .px-info{ left:20px; right:20px; bottom:22px; }
  .px-clock{ top:16px; right:20px; font-size:22px; }
  .px-t{ font-size:24px; } .px-l{ font-size:14px; } .px-e{ font-size:13px; } .px-o{ font-size:12.5px; -webkit-line-clamp:2; }
  .px-ck{ margin-top:12px; } .px-fi{ width:34px; height:34px; } .px-face{ padding:4px 12px 4px 4px; }
  .px-sting{ bottom:96px; right:12px; }
}
@media (prefers-reduced-motion:reduce){ .px-bg{ animation:none; } .px-pause, .px-info, .px-sting{ transition:none; } .px-panel{ animation:none; } }

/* Copertina → scheda (View Transitions): la copertina vola al posto dell'immagine della scheda,
   il resto della pagina sfuma. */
::view-transition-group(dd-hero){ animation-duration:.55s; animation-timing-function:cubic-bezier(.2,.8,.2,1); }
::view-transition-old(dd-hero), ::view-transition-new(dd-hero){ height:100%; width:100%; object-fit:cover; }
::view-transition-old(root), ::view-transition-new(root){ animation-duration:.35s; }

/* ── Controlli cinematici del player (Impostazioni; js/cinepanel.js) ──
   Accesi: via le icone Audio, Qualita', Sottotitoli e Adatta; al loro posto "Audio e sottotitoli" e "Altro".
   Spenti: niente di questo blocco si applica. */
#playerOverlay.po-cine #poAudioWrap,
#playerOverlay.po-cine #poQualityWrap,
#playerOverlay.po-cine #poSubWrap,
#playerOverlay.po-cine #poFitBtn{ display:none !important; }
#poCineChanBtn{ display:none !important; }
#playerOverlay.po-cine #poCineChanBtn:not([hidden]){ display:inline-flex !important; order:1.5; }
#playerOverlay [hidden]{ display:none !important; }
#playerOverlay.po-cine #poEpisodesBtn{ order:1; }
#playerOverlay.po-cine #poCineAvBtn{ order:2; }
#playerOverlay.po-cine #poSourcesBtn{ order:3; }
#playerOverlay.po-cine #poCineMoreBtn{ order:4; }
#playerOverlay.po-cine #poYtChanFollowBtn{ order:5; }
#playerOverlay.po-cine #poYtSaveBtn{ order:6; }
#playerOverlay.po-cine #poPipBtn{ order:7; }
#playerOverlay.po-cine #poFullscreenBtn{ order:8; }
#playerOverlay.po-cine #poCloseBtn{ order:9; }
#playerOverlay.po-cine #poYtChanVideosBtn{ display:none !important; }
.po-cine-pill{ width:auto !important; padding:0 14px 0 12px; gap:7px; border-radius:999px !important; font-weight:700; font-size:13px; font-family:inherit; white-space:nowrap; }
.po-cine-pill:hover, .po-cine-pill:focus-visible{ outline:2px solid #fff !important; }
#playerOverlay.po-cine .po-icon-btn:focus-visible{ outline-color:#fff; }
#playerOverlay.po-cine-open .po-topbar, #playerOverlay.po-cine-open .po-bottom{ opacity:0 !important; pointer-events:none !important; }

.po-cine-panel{
  position:absolute; top:0; right:0; bottom:0; z-index:40; width:min(420px, 92vw);
  background:rgba(14,14,20,.95); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  border-left:1px solid rgba(255,255,255,.08); padding:22px 20px 26px; overflow-y:auto;
  transform:translateX(102%); transition:transform .4s cubic-bezier(.2,.8,.2,1); color:#fff;
}
.po-cine-panel.on{ transform:none; }
.po-cine-panel .pc-h{ display:flex; align-items:center; justify-content:space-between; margin-bottom:6px; }
.po-cine-panel .pc-h span{ font-size:12px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.55); }
.po-cine-panel .pc-x{ width:34px; height:34px; border-radius:50%; border:none; background:rgba(255,255,255,.1); color:#fff; cursor:pointer; display:flex; align-items:center; justify-content:center; }
.po-cine-panel .pc-sec{ margin:16px 0 6px; font-size:11px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:rgba(255,255,255,.4); }
.po-cine-panel .pc-list{ display:flex; flex-direction:column; gap:2px; }
.po-cine-panel .pc-opt{ appearance:none; border:none; background:transparent; color:rgba(255,255,255,.85); font:inherit; font-size:15px; text-align:left; padding:10px 12px; border-radius:10px; cursor:pointer; display:flex; justify-content:space-between; align-items:center; }
.po-cine-panel .pc-opt:hover, .po-cine-panel .pc-opt:focus-visible{ background:rgba(255,255,255,.08); outline:none; }
.po-cine-panel .pc-opt.on{ color:#fff; font-weight:700; }
.po-cine-panel .pc-opt.on::after{ content:"✓"; font-weight:800; }
.po-cine-panel .pc-sw{ appearance:none; border:none; background:transparent; color:#fff; font:inherit; width:100%; text-align:left; padding:10px 12px; border-radius:10px; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:14px; }
.po-cine-panel .pc-sw:hover, .po-cine-panel .pc-sw:focus-visible{ background:rgba(255,255,255,.08); outline:none; }
.po-cine-panel .pc-sw b{ display:block; font-size:15px; }
.po-cine-panel .pc-sw small{ display:block; font-size:12.5px; color:rgba(255,255,255,.55); margin-top:2px; }
.po-cine-panel .pc-sw i{ flex:none; position:relative; width:44px; height:26px; border-radius:999px; background:rgba(255,255,255,.22); transition:background .25s; }
.po-cine-panel .pc-sw i::after{ content:""; position:absolute; top:3px; left:3px; width:20px; height:20px; border-radius:50%; background:#fff; transition:transform .25s; }
.po-cine-panel .pc-sw.on i{ background:#1fc8a8; }
.po-cine-panel .pc-sw.on i::after{ transform:translateX(18px); }
.po-cine-panel .pc-sw[disabled]{ opacity:.45; cursor:default; }
.po-cine-panel .pc-note{ font-size:12.5px; color:rgba(255,255,255,.5); padding:4px 12px 0; line-height:1.4; }
@media (max-width:700px){
  .po-cine-panel{ top:auto; left:0; width:auto; max-height:72%; border-left:none; border-top:1px solid rgba(255,255,255,.1); border-radius:16px 16px 0 0; transform:translateY(102%); }
  .po-cine-pill span{ display:none; }
  .po-cine-pill{ width:36px !important; padding:0 !important; }
}
@media (prefers-reduced-motion:reduce){ .po-cine-panel{ transition:none; } }

/* Controlli cinematici: righe a livelli (Audio ›, Sottotitoli ›) e icone a linea */
.po-cine-panel .pc-h{ gap:8px; }
.po-cine-panel .pc-h span{ flex:1; }
.po-cine-panel .pc-back{ margin-left:-6px; }
.po-cine-panel .pc-row{ appearance:none; border:none; background:transparent; color:rgba(255,255,255,.9); font:inherit; font-size:16px; width:100%; text-align:left; padding:14px 12px; border-radius:10px; cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:12px; border-bottom:1px solid rgba(255,255,255,.07); }
.po-cine-panel .pc-row:hover, .po-cine-panel .pc-row:focus-visible{ background:rgba(255,255,255,.08); outline:none; }
.po-cine-panel .pc-v{ display:flex; align-items:center; gap:6px; color:rgba(255,255,255,.62); min-width:0; }
.po-cine-panel .pc-v em{ font-style:normal; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:190px; }
.po-cine-panel .pc-sec{ margin-top:22px; }
.pc-channel-card{ display:flex; align-items:center; gap:12px; padding:12px 14px; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.08); border-radius:12px; margin-bottom:8px; }
.pc-chan-avatar{ width:42px; height:42px; border-radius:50%; overflow:hidden; background:rgba(255,255,255,.1); display:flex; align-items:center; justify-content:center; flex-shrink:0; font-size:18px; }
.pc-chan-avatar img{ width:100%; height:100%; object-fit:cover; }
.pc-chan-meta{ flex:1; min-width:0; }
.pc-chan-name{ font-weight:700; font-size:14px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; color:#fff; }
.pc-chan-subs{ font-size:12px; color:rgba(255,255,255,.55); margin-top:2px; }
.pc-chan-follow{ appearance:none; border:1px solid rgba(255,255,255,.2); background:rgba(255,255,255,.1); color:#fff; border-radius:999px; padding:6px 14px; font-size:12px; font-weight:700; cursor:pointer; display:inline-flex; align-items:center; gap:6px; transition:all .2s ease; flex-shrink:0; }
.pc-chan-follow:hover{ background:rgba(255,255,255,.2); border-color:rgba(255,255,255,.35); }
.pc-chan-follow.followed{ background:rgba(255,51,75,.15); border-color:rgba(255,51,75,.5); color:#ff4766; }
.pc-chan-follow.followed svg{ fill:currentColor; }

/* Follow e Canale YouTube nel player */
.btn-follow.followed{ color:#ff334b !important; }
.btn-follow.followed svg{ fill:#ff334b !important; }
html.newlook .btn-follow.followed{ color:#ff4766 !important; }
html.newlook .btn-follow.followed svg{ fill:#ff4766 !important; }
#poSubtitle.po-yt-channel-link{ cursor:pointer; display:inline-flex; align-items:center; gap:4px; transition:color .15s ease, opacity .15s ease; }
#poSubtitle.po-yt-channel-link:hover{ color:#fff; text-decoration:underline; opacity:1; }
html.newlook #poSubtitle.po-yt-channel-link:hover{ color:var(--nl-tone, #fff); }
#playerOverlay .po-topbar .po-icon-btn svg{ width:20px; height:20px; }
#playerOverlay .po-topbar .po-icon-btn{ width:40px; height:40px; background:rgba(255,255,255,.1); }
#playerOverlay.po-cine .po-cine-pill{ height:40px; }
#playerOverlay.po-cine .po-cine-pill svg{ width:18px; height:18px; }
/* Pulsanti in basso come nel mockup, per tutti: tondi traslucidi, play bianco */
#playerOverlay .po-controls{ gap:22px; }
#playerOverlay .po-controls button.side{ width:52px; height:52px; background:rgba(255,255,255,.12); border:none; }
#playerOverlay .po-controls .main{ width:66px; height:66px; background:#fff; color:#000; box-shadow:none; }
#playerOverlay .po-controls .main:hover{ box-shadow:0 0 0 4px rgba(255,255,255,.25); }
#playerOverlay .po-controls button:focus-visible{ outline:2px solid #fff; outline-offset:3px; }

/* Icone a linea dei controlli (anche con i controlli di sempre) */
.po-icon-btn svg{ width:19px; height:19px; }
.po-controls button.side svg{ width:26px; height:26px; }
.po-controls .main svg{ width:28px; height:28px; }

/* Controllo Volume Trasversale e Disposizione Griglia Controlli */
.po-controls-row {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  position: relative;
  width: 100%;
}
.po-controls-spacer {
  display: flex;
  justify-content: flex-end;
}
.cine-volume-wrap {
  display: flex;
  align-items: center;
  gap: 8px;
}
.cine-vol-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 40px;
  padding: 0 12px 0 10px;
  background: rgba(255,255,255,.1);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-radius: 999px;
  transition: all .2s;
}
.cine-vol-pill:hover, .cine-vol-pill:focus-within {
  background: rgba(255,255,255,.16);
  outline: 2px solid rgba(255,255,255,.4);
}
.cine-vol-icon-btn {
  background: none;
  border: none;
  color: #fff;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2px;
  border-radius: 50%;
  transition: opacity .15s, transform .15s;
}
.cine-vol-icon-btn:hover {
  opacity: .85;
  transform: scale(1.08);
}
.cine-vol-slider {
  -webkit-appearance: none;
  appearance: none;
  width: 90px;
  height: 4px;
  border-radius: 4px;
  background: rgba(255,255,255,.28);
  outline: none;
  cursor: pointer;
}
.cine-vol-slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 13px;
  height: 13px;
  border-radius: 50%;
  background: #fff;
  cursor: pointer;
  box-shadow: 0 0 6px rgba(0,0,0,.5);
}
.cine-vol-slider::-moz-range-thumb {
  width: 13px;
  height: 13px;
  border: none;
  border-radius: 50%;
  background: #fff;
  cursor: pointer;
  box-shadow: 0 0 6px rgba(0,0,0,.5);
}
.cine-vol-pct {
  font-size: 11.5px;
  font-weight: 700;
  min-width: 28px;
  color: rgba(255,255,255,.85);
  font-variant-numeric: tabular-nums;
}
@media (max-width: 700px) {
  .po-controls-row {
    display: flex;
    flex-direction: column-reverse;
    gap: 12px;
    align-items: center;
  }
  .cine-volume-wrap {
    width: auto;
    justify-content: center;
  }
  .cine-vol-pill {
    height: 36px;
  }
  .po-controls-spacer {
    display: none;
  }
}

/* Volume nel Pannello Cinematico (Audio e sottotitoli) */
.po-cine-panel .pc-vol-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  background: rgba(255,255,255,.05);
  border-radius: 12px;
  margin-bottom: 10px;
}
.po-cine-panel .pc-vol-btn {
  background: none;
  border: none;
  color: #fff;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 4px;
}
.po-cine-panel .pc-vol-slider {
  flex: 1;
  -webkit-appearance: none;
  appearance: none;
  height: 5px;
  border-radius: 5px;
  background: rgba(255,255,255,.24);
  outline: none;
  cursor: pointer;
}
.po-cine-panel .pc-vol-slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #1fc8a8;
  cursor: pointer;
}
.po-cine-panel .pc-vol-slider::-moz-range-thumb {
  width: 14px;
  height: 14px;
  border: none;
  border-radius: 50%;
  background: #1fc8a8;
  cursor: pointer;
}
.po-cine-panel .pc-vol-val {
  font-size: 13px;
  font-weight: 700;
  color: #1fc8a8;
  min-width: 36px;
  text-align: right;
  font-variant-numeric: tabular-nums;
}

/* Floating In-App Picture-in-Picture */
#playerOverlay.po-pip-floating {
  position: fixed !important;
  left: auto !important;
  top: auto !important;
  right: 20px !important;
  bottom: 24px !important;
  width: min(340px, 80vw) !important;
  height: auto !important;
  aspect-ratio: 16/9 !important;
  z-index: 9999 !important;
  border-radius: 16px !important;
  overflow: hidden !important;
  box-shadow: 0 16px 40px rgba(0,0,0,0.7), 0 0 0 1px rgba(255,255,255,0.15) !important;
  transition: all 0.3s cubic-bezier(0.2, 0.8, 0.2, 1) !important;
  display: block !important;
}
#playerOverlay.po-pip-floating .po-topbar {
  opacity: 0;
  transition: opacity 0.2s;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(0,0,0,.8), transparent) !important;
  padding: 8px 12px !important;
}
#playerOverlay.po-pip-floating:hover .po-topbar {
  opacity: 1;
  pointer-events: auto;
}
#playerOverlay.po-pip-floating .po-bottom,
#playerOverlay.po-pip-floating .po-ambient-glow,
#playerOverlay.po-pip-floating .po-cine-panel,
#playerOverlay.po-pip-floating .po-top-trigger {
  display: none !important;
}
#playerOverlay.po-pip-floating .po-topbar .info {
  display: none !important;
}
#playerOverlay.po-pip-floating .po-topbar .actions {
  width: 100%;
  justify-content: flex-end;
  gap: 6px;
}
#playerOverlay.po-pip-floating .po-topbar .actions button:not(#poPipBtn):not(#poCloseBtn) {
  display: none !important;
}

/* Stili Aurora (html.newlook) per PiP e Volume */
html.newlook .cine-vol-pill {
  background: rgba(20,21,27,.72);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(255,255,255,.1);
}
html.newlook .cine-vol-pill:hover, html.newlook .cine-vol-pill:focus-within {
  border-color: var(--nl-tone);
  outline: none;
}
html.newlook .cine-vol-slider::-webkit-slider-thumb {
  background: var(--nl-tone);
}
html.newlook .cine-vol-slider::-moz-range-thumb {
  background: var(--nl-tone);
}
html.newlook .cine-vol-pct {
  color: var(--nl-tone);
}
html.newlook .po-cine-panel .pc-vol-slider::-webkit-slider-thumb {
  background: var(--nl-tone);
}
html.newlook .po-cine-panel .pc-vol-val {
  color: var(--nl-tone);
}

/* "Stai ancora guardando?" (come la schermata di pausa: immagine della serie dietro, testi a sinistra) */
.po-still{ position:absolute; inset:0; z-index:46; opacity:0; transition:opacity .6s ease; color:#fff; }
.po-still.on{ opacity:1; }
.po-still-bg{ position:absolute; inset:0; background:#06060a center/cover no-repeat; animation:pxBg 40s linear both; }
.po-still-dim{ position:absolute; inset:0; background:linear-gradient(90deg, rgba(6,6,10,.95) 0, rgba(6,6,10,.75) 48%, rgba(6,6,10,.35)), linear-gradient(0deg, rgba(6,6,10,.85), transparent 55%); }
.po-still-box{ position:absolute; left:clamp(22px, 6vw, 72px); right:22px; top:50%; transform:translateY(-44%); max-width:640px; transition:transform .7s .1s cubic-bezier(.2,.8,.2,1); }
.po-still.on .po-still-box{ transform:translateY(-50%); }
.po-still-k{ font-size:13px; font-weight:800; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.6); }
.po-still-t{ font-size:clamp(30px, 4.6vw, 58px); font-weight:900; line-height:1.05; margin:12px 0 10px; }
.po-still-l{ font-size:clamp(15px, 1.6vw, 20px); color:rgba(255,255,255,.75); }
.po-still-l b{ color:#fff; }
.po-still-bts{ display:flex; flex-wrap:wrap; gap:14px; margin-top:30px; }
.po-still-b{ appearance:none; border:none; cursor:pointer; font:inherit; font-weight:800; font-size:17px; height:54px; padding:0 28px; border-radius:12px; display:inline-flex; align-items:center; gap:8px; color:#fff; background:rgba(255,255,255,.14); outline:2px solid transparent; outline-offset:3px; transition:background .15s, outline-color .15s, transform .15s; }
.po-still-b.pri{ background:#fff; color:#000; }
.po-still-b:hover{ transform:scale(1.03); }
.po-still-b:focus-visible{ outline-color:#fff; }
.po-still-n{ margin-top:20px; font-size:14px; color:rgba(255,255,255,.45); }
@media (max-width:700px){ .po-still-bts{ flex-direction:column; } .po-still-b{ justify-content:center; width:100%; } }
@media (prefers-reduced-motion:reduce){ .po-still, .po-still-box{ transition:none; } .po-still-bg{ animation:none; } }

/* Top 10 di oggi (home del sito) */
.t10-row .t10-head{ display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:28px; flex-wrap:wrap; }
.t10-head-left{ display:flex; align-items:center; gap:16px; flex-wrap:wrap; }
.t10-row h3{ margin:0; display:inline-flex; align-items:center; font-size:22px; font-weight:800; letter-spacing:-.02em; }
.t10-row .t10-src{ font-size:12px; font-weight:600; color:var(--text-muted, rgba(255,255,255,.45)); margin-left:auto; letter-spacing:0; }
.t10-seg{ position:relative; display:inline-flex; padding:3px; border-radius:999px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); backdrop-filter:blur(10px); }
.t10-seg button{ position:relative; z-index:1; appearance:none; border:none; background:none; color:rgba(255,255,255,.6); font:inherit; font-weight:700; font-size:12.5px; padding:6px 16px; border-radius:999px; cursor:pointer; transition:color .25s; white-space:nowrap; }
.t10-seg button.on{ color:#000; }
.t10-ind{ position:absolute; top:3px; bottom:3px; left:4px; border-radius:999px; background:#fff; transition:transform .3s cubic-bezier(.3,1.3,.5,1), width .3s cubic-bezier(.3,1.3,.5,1); box-shadow:0 3px 14px rgba(255,255,255,.25); pointer-events:none; opacity:0; }
.t10-seg.ready .t10-ind{ opacity:1; }

/* Il numero grande sporge in alto: spazio generoso per non toccare il selettore al passaggio del mouse o focus */
.t10-row .track{ gap:6px; overflow-y:visible; padding-top:24px; padding-bottom:8px; margin-top:0; overscroll-behavior-x:contain; }
.t10-item{ appearance:none; border:none; background:none; padding:0 0 24px 0; cursor:pointer; flex:none; display:flex; align-items:flex-end; color:inherit; font:inherit; position:relative; }
.t10-item.t10-in{ opacity:0; transform:translateY(16px) scale(.97); animation:t10In .45s cubic-bezier(.2,.9,.3,1) forwards; }
.t10-item.t10-out{ animation:t10Out .2s ease forwards; }
@keyframes t10In{ to{ opacity:1; transform:none; } }
@keyframes t10Out{ to{ opacity:0; transform:translateY(-8px) scale(.97); } }

.t10-num{
  font-size:150px; font-weight:900; line-height:.78; letter-spacing:-.08em; margin-right:-26px; position:relative; z-index:0;
  color:var(--surface-3, #151824); -webkit-text-stroke:3.5px rgba(255,255,255,.88); paint-order:stroke fill; user-select:none;
  transition:-webkit-text-stroke-color .2s, transform .25s;
}
.t10-item:hover .t10-num{ -webkit-text-stroke-color:#fff; transform:translateX(-3px); }
/* Il numero "1" tocca e si inserisce sotto la card come le altre cifre senza venire coperto */
.t10-num.t10-num-1, .t10-item:first-child .t10-num{ letter-spacing:0; margin-right:-12px; }

.t10-poster{ position:relative; z-index:1; display:block; width:120px; aspect-ratio:2/3; border-radius:10px; overflow:hidden; background:var(--surface-3, #1a1a22); transition:transform .2s ease, box-shadow .2s ease; box-shadow:0 8px 24px rgba(0,0,0,.5); }
.t10-poster .fallback-label{ display:none; }
.t10-item:hover .t10-poster, .t10-item:focus-visible .t10-poster{ transform:translateY(-6px) scale(1.04); box-shadow:0 16px 36px rgba(0,0,0,.65); }
.t10-item:focus-visible{ outline:none; }
.t10-item:focus-visible .t10-poster{ outline:2px solid #fff; outline-offset:2px; }

/* Dettagli e badge sulle card */
.t10-rate{ position:absolute; top:6px; right:6px; z-index:2; font-size:10px; font-weight:800; padding:2px 6px; border-radius:5px; background:rgba(0,0,0,.72); border:1px solid rgba(255,255,255,.15); backdrop-filter:blur(4px); display:flex; align-items:center; gap:2px; color:#fff; }
.t10-rate b{ color:#ffc94d; font-size:11px; }
.t10-new{ position:absolute; top:6px; left:6px; z-index:2; font-size:9px; font-weight:800; padding:2px 6px; border-radius:4px; background:rgba(0,0,0,.6); border:1px solid rgba(255,255,255,.7); color:#fff; letter-spacing:.03em; }
.t10-pin{ position:absolute; top:28px; left:6px; z-index:2; font-size:8px; font-weight:900; padding:2px 5px; border-radius:4px; background:var(--accent, var(--dd-red, #e50914)); color:#fff; letter-spacing:.05em; }
.t10-genre{ position:absolute; left:6px; bottom:6px; z-index:2; font-size:9.5px; font-weight:700; padding:2px 7px; border-radius:999px; background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.22); backdrop-filter:blur(6px); color:#fff; max-width:calc(100% - 12px); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; pointer-events:none; }
.t10-src-chip{ position:absolute; right:6px; bottom:6px; z-index:2; font-size:8.5px; font-weight:800; padding:2px 5px; border-radius:4px; background:#2b7fff; color:#fff; letter-spacing:.04em; }
.t10-shine{ position:absolute; inset:0; z-index:3; pointer-events:none; background:linear-gradient(115deg, transparent 35%, rgba(255,255,255,.22) 50%, transparent 65%); transform:translateX(-120%); transition:transform .6s ease; }
.t10-item:hover .t10-shine{ transform:translateX(120%); }

/* Indicatore di andamento sotto la locandina */
.t10-trend{ position:absolute; bottom:2px; right:0; width:120px; font-size:11px; font-weight:800; text-align:center; }
.t10-trend.up{ color:#46d369; }
.t10-trend.down{ color:#ff5d5d; }
.t10-trend.nw{ color:#ffc94d; }
.t10-trend.same{ color:rgba(255,255,255,.35); }
.t10-trend i{ font-style:normal; display:inline-block; }

.t10-empty{ display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; gap:6px; width:100%; min-height:150px; margin:0 4px; padding:18px; color:var(--text-muted); font-size:13px; border:1px dashed rgba(255,255,255,.18); border-radius:16px; background:rgba(255,255,255,.03); }
.t10-empty svg{ width:28px; height:28px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; opacity:.8; }
.t10-empty b{ color:#fff; font-size:15px; }
.t10-retry{ appearance:none; margin-top:6px; height:34px; padding:0 18px; border-radius:17px; border:1px solid rgba(255,255,255,.28); background:rgba(255,255,255,.1); color:#fff; font:inherit; font-size:13px; font-weight:700; cursor:pointer; }
.t10-retry:hover{ background:rgba(255,255,255,.18); } .t10-retry:disabled{ opacity:.6; cursor:default; } .t10-retry:focus-visible{ outline:2px solid #fff; outline-offset:2px; }

/* Responsive desktop vs mobile */
.d-content .t10-row{ margin-top:24px; margin-bottom:28px; }
.d-content .t10-head{ margin-bottom:28px; }
.d-content .t10-row h3{ font-size:24px; font-weight:900; letter-spacing:-.02em; }
.d-content .t10-seg{ padding:4px; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.14); box-shadow:0 4px 18px rgba(0,0,0,.25); }
.d-content .t10-seg button{ padding:7px 18px; font-size:13px; font-weight:700; }
.d-content .t10-num{ font-size:170px; margin-right:-30px; }
.d-content .t10-num.t10-num-1, .d-content .t10-item:first-child .t10-num{ margin-right:-14px; }
.d-content .t10-poster{ width:140px; }
.d-content .t10-trend{ width:140px; }

.m-content .t10-row{ margin-top:16px; margin-bottom:18px; }
.m-content .t10-head{ flex-direction:column; align-items:flex-start; gap:12px; margin-bottom:12px; }
.m-content .t10-head-left{ flex-direction:column; align-items:flex-start; gap:10px; width:100%; }
.m-content .t10-row h3{ font-size:23px; font-weight:900; letter-spacing:-.02em; }
.m-content .t10-seg{ display:flex; width:100%; padding:4px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.14); border-radius:999px; box-sizing:border-box; }
.m-content .t10-seg button{ flex:1 1 0; text-align:center; padding:9px 4px; font-size:13.5px; font-weight:700; min-height:40px; border-radius:999px; }
.m-content .t10-num{ font-size:132px; margin-right:-24px; -webkit-text-stroke-width:3px; }
.m-content .t10-num.t10-num-1, .m-content .t10-item:first-child .t10-num{ margin-right:-10px; }
.m-content .t10-poster{ width:125px; border-radius:10px; box-shadow:0 8px 24px rgba(0,0,0,.6); }
.m-content .t10-trend{ width:125px; font-size:11px; }
.m-content .t10-rate{ font-size:10.5px; padding:2px 6px; }
.m-content .t10-new{ font-size:9px; padding:2px 5px; }
.m-content .t10-genre{ display:none; } /* su schermi piccoli mantiene pulita la locandina */
.m-content .t10-src{ margin-left:0; font-size:11.5px; opacity:.75; }

/* ── Home in ordine (proposta A) ──────────────────────────────────────────
   "Stasera" sulla copertina (heroTonightHtml in app.js), pannello "Quanto tempo hai stasera?" (picks.js),
   riga "Per te" con le schede e scritta "Esplora" prima del catalogo. */
.bb-sep{ width:1px; height:28px; background:rgba(255,255,255,.32); margin:0 4px; flex:none; }
.bb-btn.bb-tonight{ background:rgba(10,10,16,.35); border:1.5px solid rgba(255,255,255,.5); }
.bb-btn.bb-tonight:hover{ background:rgba(255,255,255,.12); border-color:#fff; }
.bb-moon{ width:1.15em; height:1.15em; flex:none; color:#e8b04a; }
.bb-tonight-pill{ position:absolute; z-index:4; top:calc(var(--m-top-h, 56px) + 10px); left:50%; transform:translateX(-50%);
  display:inline-flex; align-items:center; gap:7px; height:34px; padding:0 14px; border-radius:999px; white-space:nowrap; cursor:pointer;
  background:rgba(10,10,16,.45); border:1.5px solid rgba(255,255,255,.45); color:#fff; font:inherit; font-size:13px; font-weight:700;
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); }
.bb-tonight-pill:active{ transform:translateX(-50%) scale(.96); }
.bb-tonight-pill:focus-visible{ outline:3px solid #fff; outline-offset:3px; }

.tn-wrap{ position:fixed; inset:0; z-index:2000; }
.tn-dim{ position:absolute; inset:0; background:rgba(0,0,0,.55); opacity:0; transition:opacity .3s; }
.tn-wrap.show .tn-dim{ opacity:1; }
.tn-panel{ position:absolute; top:0; right:0; bottom:0; width:min(440px, 100%); overflow-y:auto; overscroll-behavior:contain; color:#fff;
  background:#121218; border-left:1px solid rgba(255,255,255,.08); padding:30px 26px; transform:translateX(102%); transition:transform .45s cubic-bezier(.3,.7,.2,1); }
.tn-wrap.show .tn-panel{ transform:none; }
.tn-x{ position:absolute; right:18px; top:22px; width:36px; height:36px; border-radius:50%; border:0; background:rgba(255,255,255,.1); color:#fff; display:grid; place-items:center; cursor:pointer; }
.tn-x svg, .tn-oi svg{ width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.tn-h{ font-size:22px; font-weight:800; padding-right:44px; text-wrap:balance; }
.tn-sub{ font-size:14px; color:var(--text-muted); margin:4px 0 18px; }
.tn-opts{ display:flex; flex-direction:column; gap:10px; }
.tn-opt{ display:flex; align-items:center; gap:12px; padding:12px 14px; border-radius:12px; border:1px solid rgba(255,255,255,.12); background:rgba(255,255,255,.03);
  color:#fff; font:inherit; text-align:left; cursor:pointer; transition:background .2s, border-color .2s; }
.tn-opt:hover{ background:rgba(255,255,255,.07); }
.tn-opt.on{ border-color:#fff; background:rgba(255,255,255,.09); }
.tn-oi{ width:40px; height:40px; border-radius:10px; background:rgba(255,255,255,.08); display:grid; place-items:center; flex:none; }
.tn-opt[data-k="night"] .tn-oi{ color:#e8b04a; }
.tn-ot b{ display:block; font-size:15px; font-weight:700; }
.tn-ot span{ font-size:12.5px; color:var(--text-muted); }
.tn-list{ display:flex; flex-direction:column; gap:8px; margin-top:20px; }
.tn-list:empty{ display:none; }
.tn-res{ display:flex; align-items:center; gap:12px; padding:6px; margin:0 -6px; border:0; background:none; border-radius:10px; color:#fff; font:inherit; text-align:left; cursor:pointer; animation:tnIn .35s both; }
.tn-res:hover{ background:rgba(255,255,255,.06); }
.tn-th{ width:120px; aspect-ratio:16/9; border-radius:6px; background:var(--surface-2) center/cover no-repeat; flex:none; }
.tn-tx{ min-width:0; }
.tn-tx b{ display:block; font-size:15px; font-weight:700; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.tn-tx span{ font-size:13px; color:var(--text-muted); }
.tn-wait{ font-size:13px; color:var(--text-muted); padding:8px 0; }
.tn-x:focus-visible, .tn-opt:focus-visible, .tn-res:focus-visible{ outline:3px solid #fff; outline-offset:2px; }
@keyframes tnIn{ from{ opacity:0; transform:translateY(6px); } to{ opacity:1; transform:none; } }
@media (max-width:900px){
  .tn-panel{ top:auto; left:0; width:auto; max-height:86vh; border-left:0; border-top:1px solid rgba(255,255,255,.1); border-radius:18px 18px 0 0;
    padding:22px 16px calc(20px + env(safe-area-inset-bottom, 0px)); transform:translateY(102%); }
  .tn-h{ font-size:19px; }
  .tn-th{ width:96px; }
}
@media (prefers-reduced-motion:reduce){ .tn-panel, .tn-dim{ transition:none; } .tn-res{ animation:none; } }

.row h3 .row-sub{ font-size:13px; font-weight:600; color:var(--text-muted); margin-left:4px; }
.pt-h{ flex-wrap:wrap; gap:14px !important; }
.pt-seg{ display:inline-flex; gap:2px; padding:3px; border-radius:999px; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.12); max-width:100%; overflow-x:auto; scrollbar-width:none; }
.pt-seg::-webkit-scrollbar{ display:none; }
.pt-seg button{ appearance:none; border:0; background:none; color:rgba(255,255,255,.65); font:inherit; font-size:13px; font-weight:700; padding:6px 14px; border-radius:999px; cursor:pointer; white-space:nowrap; transition:background .2s, color .2s; }
.pt-seg button:hover{ color:#fff; }
.pt-seg button.on{ background:#fff; color:#000; }
.pt-seg button:focus-visible{ outline:2px solid #fff; outline-offset:2px; }
.pt-body{ animation:tnIn .35s both; }
.m-content .pt-seg button{ font-size:12px; padding:5px 11px; }

.hx-explore .hx-h{ display:flex; align-items:center; gap:14px; margin-top:16px; }
.hx-explore .hx-h span{ font-size:26px; font-weight:800; letter-spacing:-.01em; }
.hx-explore .hx-h i{ flex:1; height:1px; background:rgba(255,255,255,.12); }
.hx-explore .hx-h small{ font-size:13px; font-weight:600; color:var(--text-muted); }
.m-content .hx-explore .hx-h span{ font-size:20px; }

/* ── Barra in alto del sito come la webapp (proposta B) ───────────────────
   Logo + pillola dell'area ("● Video ▾", apre la tendina delle aree) + voci dell'area in una pillola, con icona e
   voce attiva in bianco; a destra icone semplici senza cerchio, come sul telefono. Uscite e Impara stanno nelle voci
   e nelle aree, quindi le loro icone a destra spariscono. */
.d-left{ gap:16px; }
.d-right{ gap:4px; }
.d-area-pill{ appearance:none; display:inline-flex; align-items:center; gap:7px; height:34px; padding:0 8px 0 12px; border-radius:17px; cursor:pointer;
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.14); color:#fff; font:inherit; font-size:14px; font-weight:700; transition:background .2s, border-color .2s; }
.d-area-pill:hover, .d-area-pill.open{ background:rgba(255,255,255,.14); border-color:rgba(255,255,255,.3); }
.d-area-pill .dot{ width:7px; height:7px; border-radius:50%; flex:none; }
.d-area-pill b{ font-weight:700; }
.d-area-pill .chev{ display:flex; color:rgba(255,255,255,.7); } .d-area-pill .chev svg{ width:18px; height:18px; }
.d-area-pill:focus-visible{ outline:2px solid #fff; outline-offset:2px; }
.d-hubs{ gap:2px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1); }
.d-hubs button{ display:inline-flex; align-items:center; gap:7px; position:relative; font-size:14.5px; font-weight:700; padding:7px 15px; color:#b9b9c4; }
.d-hubs button .ic{ display:flex; } .d-hubs button .ic svg{ width:17px; height:17px; }
.d-hubs button:hover:not(.active){ color:#fff; background:rgba(255,255,255,.08); }
.d-hubs button.active{ background:#fff; color:#000; }
.d-hubs button:focus-visible{ outline:2px solid #fff; outline-offset:2px; }
.d-tab-badge{ position:absolute; top:1px; right:4px; min-width:16px; height:16px; padding:0 4px; border-radius:8px; background:var(--accent); color:#fff; font-size:10px; font-weight:800; display:inline-flex; align-items:center; justify-content:center; }
.d-right #dCalendarBtn, .d-right #dLearnBtn, .d-right .topbar-divider{ display:none !important; }
.d-right .topbar-icon-btn{ width:42px; height:42px; background:transparent; color:#fff; }
.d-right .topbar-icon-btn svg{ width:22px; height:22px; }
.d-right .topbar-icon-btn:hover, .d-right .topbar-icon-btn.active{ background:rgba(255,255,255,.1); }
.d-right .topbar-icon-btn.ai-btn, .d-right .topbar-icon-btn.ai-btn:hover, .d-right .topbar-icon-btn.ai-btn.active{ background:transparent; color:#d9b8ff; filter:none; }
.d-right .topbar-icon-btn.ai-btn:hover{ background:rgba(255,255,255,.1); }
.d-right .topbar-icon-btn.music-ai-btn{ color:#f5c26b; }
.d-right .avatar-wrap{ margin-left:8px; }

/* Tendina delle aree (computer): gli stessi riquadri colorati del foglio della webapp, sotto la pillola. */
.ar-overlay.dd .ar-veil{ background:transparent; }
.ar-overlay.dd .ar-sheet{ position:fixed; right:auto; bottom:auto; width:560px; max-width:calc(100vw - 32px); margin:0; border-radius:16px; padding:16px;
  background:#141419f7; border:1px solid rgba(255,255,255,.09); box-shadow:0 24px 60px rgba(0,0,0,.7); transform:translateY(-8px); opacity:0; transition:transform .2s ease, opacity .2s ease; }
.ar-overlay.dd.open .ar-sheet{ transform:none; opacity:1; }
.ar-overlay.dd .ar-grab{ display:none; }
.ar-overlay.dd .ar-sheet h3{ font-size:15px; margin:0 0 12px; }
.ar-overlay.dd .ar-grid{ gap:8px; }
.ar-overlay.dd .ar-card{ min-height:0; flex-direction:row; align-items:center; justify-content:flex-start; gap:11px; padding:11px 12px; border-radius:12px; transition:transform .15s; }
.ar-overlay.dd .ar-card:hover{ transform:translateY(-1px); outline:2px solid rgba(255,255,255,.6); }
.ar-overlay.dd .ar-card.cur{ outline:2px solid #fff; }
.ar-overlay.dd .ar-card:focus-visible{ outline:2px solid #fff; outline-offset:2px; }
.ar-overlay.dd .ar-more{ margin-top:10px; border:0; text-align:left; padding:6px 2px; }
@media (prefers-reduced-motion:reduce){ .ar-overlay.dd .ar-sheet{ transition:none; } }

/* Casella "Cerca  /" nella barra del sito da computer (sostituisce l'icona della lente, che resta come riserva). */
.d-search-hint{ appearance:none; display:inline-flex; align-items:center; gap:9px; height:38px; padding:0 8px 0 14px; margin-right:6px; border-radius:19px; cursor:pointer; min-width:190px;
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.14); color:rgba(255,255,255,.7); font:inherit; font-size:14px; font-weight:600; transition:background .2s, border-color .2s, color .2s; }
.d-search-hint:hover{ background:rgba(255,255,255,.14); border-color:rgba(255,255,255,.3); color:#fff; }
.d-search-hint:focus-visible{ outline:2px solid #fff; outline-offset:2px; }
.d-search-hint span{ flex:1; text-align:left; }
.d-search-hint kbd{ font:700 11.5px inherit; color:rgba(255,255,255,.55); border:1px solid rgba(255,255,255,.22); border-radius:5px; padding:2px 7px; }
.d-right #dSearchBtn{ display:none !important; }
@media (max-width:1180px){ .d-search-hint{ min-width:0; padding:0 12px; } .d-search-hint span, .d-search-hint kbd{ display:none; } }

/* Riprendi altrove (resume.js): avviso bianco sopra i pulsanti della scheda del titolo. */
.rae-slot:empty{ display:none; }
.rae-slot{ margin:0 0 14px; max-width:560px; }
.rae-card{ display:grid; grid-template-columns:auto 1fr; gap:4px 12px; align-items:center; padding:12px 14px; border-radius:16px; background:#fff; color:#0b0b10; box-shadow:0 14px 40px rgba(0,0,0,.45); animation:raeIn .45s cubic-bezier(.3,.8,.3,1) both; }
.rae-ic{ width:38px; height:38px; border-radius:10px; background:rgba(11,11,16,.06); display:grid; place-items:center; grid-row:span 1; }
.rae-ic svg{ width:20px; height:20px; fill:none; stroke:#0b0b10; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.rae-tx b{ display:block; font-size:15.5px; font-weight:800; } .rae-tx span{ font-size:13px; color:rgba(11,11,16,.62); }
.rae-btns{ grid-column:1 / -1; display:flex; gap:8px; flex-wrap:wrap; margin-top:6px; }
.rae-go, .rae-no{ appearance:none; border:0; height:36px; border-radius:18px; padding:0 16px; font:inherit; font-size:13.5px; font-weight:700; cursor:pointer; display:inline-flex; align-items:center; gap:7px; }
.rae-go{ background:#0b0b10; color:#fff; } .rae-go svg{ width:14px; height:14px; }
.rae-no{ background:rgba(11,11,16,.07); color:#0b0b10; }
.rae-go:hover{ background:#000; } .rae-no:hover{ background:rgba(11,11,16,.13); }
.rae-go:focus-visible, .rae-no:focus-visible{ outline:2px solid var(--dd-red, #e50914); outline-offset:2px; }
@keyframes raeIn{ from{ opacity:0; transform:translateY(-8px) scale(.98); } to{ opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce){ .rae-card{ animation:none; } }

/* "Stai gia' guardando altrove" (un video alla volta per account): scheda con chi sta guardando, perche', e due scelte. */
.po-blocked{ background:radial-gradient(90% 70% at 50% 30%, rgba(16,20,35,.92), rgba(5,6,11,.97)); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); }
.po-blocked-inner.sb-card{ width:100%; max-width:400px; padding:28px 24px 22px; border-radius:22px; background:linear-gradient(180deg,#1a1c28,#12131b); border:1px solid rgba(255,255,255,.12); box-shadow:0 30px 80px rgba(0,0,0,.8); }
.sb-ic{ width:56px; height:56px; margin:0 auto 16px; border-radius:16px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.12); display:grid; place-items:center; }
.sb-ic svg{ width:28px; height:28px; fill:none; stroke:#fff; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
.sb-card h3{ font-size:22px; font-weight:800; margin:0 0 8px; text-wrap:balance; }
.sb-card p{ color:rgba(255,255,255,.72); font-size:14.5px; margin:0 0 16px; } .sb-card p b{ color:#fff; }
.sb-why{ display:flex; gap:10px; align-items:flex-start; text-align:left; padding:12px 14px; border-radius:12px; background:rgba(255,255,255,.05); color:rgba(255,255,255,.62); font-size:13px; line-height:1.45; margin-bottom:18px; }
.sb-why svg{ width:20px; height:20px; flex:none; fill:none; stroke:#46d369; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.sb-err{ color:#ffb4b4; font-size:13px; margin:-6px 0 14px; }
.sb-go, .sb-no{ appearance:none; width:100%; border:0; border-radius:12px; font:inherit; font-weight:700; cursor:pointer; display:flex; align-items:center; justify-content:center; gap:8px; transition:transform .15s, background .2s; }
.sb-go{ height:50px; font-size:15.5px; background:#fff; color:#0b0b10; } .sb-go svg{ width:16px; height:16px; } .sb-go:hover{ background:#ececf2; } .sb-go:disabled{ opacity:.7; cursor:default; }
.sb-no{ height:46px; font-size:14.5px; margin-top:8px; background:rgba(255,255,255,.08); color:#fff; } .sb-no:hover{ background:rgba(255,255,255,.14); }
.sb-go:focus-visible, .sb-no:focus-visible{ outline:3px solid #fff; outline-offset:3px; }
.sb-go[hidden]{ display:none; }

/* "Non mostrare più": menu … sulla card, avviso con Annulla, elenco nelle Impostazioni */
.card{ position:relative; }
.hd-dots{ position:absolute; top:8px; left:8px; z-index:3; width:28px; height:28px; border-radius:50%; background:rgba(10,10,16,.6); backdrop-filter:blur(4px); color:#fff; font-size:16px; line-height:24px; text-align:center; cursor:pointer; opacity:0; transition:opacity .15s; }
.card:hover .hd-dots,.card:focus-within .hd-dots,.hd-dots:focus-visible{ opacity:1; }
.hd-dots:focus-visible{ outline:2px solid #fff; outline-offset:2px; }
@media (hover:none){ .hd-dots{ display:none; } }
.card.hd-out{ transition:opacity .25s, transform .25s; opacity:0; transform:scale(.9); }
.hd-menu{ position:fixed; z-index:9999; width:200px; padding:6px; border-radius:12px; background:#17171e; border:1px solid #2c2c36; box-shadow:0 12px 32px rgba(0,0,0,.5); display:grid; gap:2px; }
.hd-mi{ display:flex; align-items:center; gap:10px; width:100%; padding:10px 12px; border:0; border-radius:8px; background:transparent; color:#f3f3f6; font:inherit; font-size:14px; font-weight:600; text-align:left; cursor:pointer; }
.hd-mi b{ width:18px; text-align:center; opacity:.8; }
.hd-mi:hover,.hd-mi:focus-visible{ background:#ffffff14; outline:none; }
.hd-first{ color:#ff8a90; }
.hd-toast{ position:fixed; left:50%; bottom:28px; z-index:10000; transform:translate(-50%,20px); opacity:0; pointer-events:none; display:flex; align-items:center; gap:14px; padding:12px 14px 14px 18px; border-radius:12px; background:#f3f3f6; color:#0b0b10; font-weight:600; font-size:14px; box-shadow:0 10px 30px rgba(0,0,0,.45); overflow:hidden; transition:opacity .25s, transform .25s; max-width:calc(100% - 32px); }
.hd-toast.show{ opacity:1; transform:translate(-50%,0); pointer-events:auto; }
.hd-undo{ border:0; background:transparent; color:#c4121c; font:inherit; font-weight:800; cursor:pointer; padding:4px 6px; }
.hd-bar{ position:absolute; left:0; bottom:0; height:3px; width:100%; background:#c4121c; transform-origin:left; }
.hd-toast.show .hd-bar{ animation:hdbar 6s linear forwards; }
@keyframes hdbar{ to{ transform:scaleX(0); } }
.hd-row{ display:flex; align-items:center; gap:12px; padding:8px 0; border-bottom:1px solid var(--border,#25252d); }
.hd-row img,.hd-ph{ width:40px; height:60px; border-radius:6px; object-fit:cover; background:#1b1b22; display:grid; place-items:center; flex:none; }
.hd-row div{ flex:1; min-width:0; } .hd-row b{ display:block; font-size:14px; } .hd-row small{ opacity:.6; }
.hd-show{ border:1px solid #3a3a46; background:transparent; color:inherit; border-radius:999px; padding:7px 14px; font:inherit; font-size:13px; font-weight:700; cursor:pointer; }
@media (prefers-reduced-motion:reduce){ .hd-toast,.card.hd-out{ transition:none; } .hd-toast.show .hd-bar{ animation:none; } }

/* Mini player: icone a linea al posto dei simboli di testo */
#mpPlayBtn, #mpNextBtn, #mpCloseBtn{ display:flex; align-items:center; justify-content:center; padding:0; }
#mpPlayBtn svg, #mpNextBtn svg, #mpCloseBtn svg{ display:block; }

/* Autopilot: riga sotto Riproduci, invito una tantum, primo avvio */
.ap-caption{margin:8px 0 0;font-size:12px;line-height:1.4;color:var(--text-muted,#9a9aa6)}
.ap-hint{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:rgba(255,255,255,.07);border-radius:12px;padding:8px 12px;color:#fff}
.ap-hint span{flex:1 1 180px}
.ap-hint button{background:none;border:0;color:var(--dd-red, #e50914);font-weight:700;font-size:13px;cursor:pointer;padding:6px 8px}
.ap-hint button.ap-no{color:rgba(255,255,255,.6);font-weight:500}
.ap-welcome{position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.72);display:flex;align-items:center;justify-content:center;padding:16px}
.ap-card{width:min(440px,100%);background:#15151c;border:1px solid #2c2c36;border-radius:18px;padding:22px;display:flex;flex-direction:column;gap:10px;color:#fff}
.ap-card h3{margin:0;font-size:20px}.ap-card p{margin:0 0 4px;color:#9a9aa6;font-size:13px}
.ap-opt{text-align:left;background:#1f1f28;border:1px solid #33333f;border-radius:12px;padding:12px 14px;color:#fff;cursor:pointer;display:flex;flex-direction:column;gap:3px;font:inherit}
.ap-opt.on{border-color:var(--dd-red, #e50914);background:#2a1215}
.ap-opt i{font-style:normal;font-size:11px;color:#8fe39b;margin-left:6px}
.ap-opt span{font-size:12.5px;color:#9a9aa6}
.ap-opt:focus-visible{outline:2px solid #fff}

/* Banner stato debrid */
.debrid-alert{position:fixed;z-index:900;left:16px;right:16px;bottom:calc(76px + env(safe-area-inset-bottom,0px));max-width:420px;display:flex;flex-direction:column;gap:3px;padding:10px 14px;border-radius:12px;color:#fff;font-size:12.5px;box-shadow:0 8px 24px rgba(0,0,0,.45)}
@media(min-width:900px){.debrid-alert{left:auto;right:24px;bottom:24px}}
.debrid-alert b{font-size:13.5px}.debrid-alert span{color:rgba(255,255,255,.65)}
.debrid-alert.warn{background:#2c2410;border:1px solid #6b5a1c}.debrid-alert.err{background:#2c1214;border:1px solid #7a2229}
.da-act{display:flex;gap:16px;margin-top:4px}
.da-act button{background:none;border:0;padding:4px 0;font:inherit;font-weight:700;cursor:pointer;color:#ffd24a}
.debrid-alert.err .da-act button{color:#ff8a90}
.da-act .da-later{color:rgba(255,255,255,.6);font-weight:500}
.da-act button:focus-visible{outline:2px solid #fff;outline-offset:2px}

/* Cerca nelle impostazioni */
.set-search{display:flex;align-items:center;gap:8px;margin:0 0 14px;padding:0 12px;border-radius:12px;background:var(--surface-2,rgba(255,255,255,.07));border:1px solid var(--border,rgba(255,255,255,.1));color:var(--text-muted,#9a9aa6)}
.set-search input{flex:1;min-width:0;background:none;border:0;outline:0;color:inherit;font:inherit;font-size:14px;padding:11px 0;color:var(--text,#fff)}
.set-search:focus-within{border-color:var(--accent,var(--dd-red, #e50914))}
.set-search-count{font-size:12px;white-space:nowrap}

/* Primo avvio guidato */
/* Primo avvio: rosso in Standard, Aurora base in Aurora (mai i temi speciali) */
:root{ --ob-tone:#e50914; --ob-on:#fff; --ob-tt:#ff6b72; --ob-card:#16171e; --ob-line:rgba(255,255,255,.10); --ob-r:12px; }
html.newlook{ --ob-tone:var(--nl-base-tone, #d3e8ff); --ob-on:var(--nl-base-on, #00325a); --ob-tt:var(--nl-base-tone, #d3e8ff);
  --ob-card:color-mix(in srgb, #0e1016 86%, var(--ob-tone) 14%); --ob-line:color-mix(in srgb, var(--ob-tone) 30%, transparent); --ob-r:16px; }
.ob-overlay{position:fixed;inset:0;z-index:9998;background:rgba(0,0,0,.8);display:flex;align-items:center;justify-content:center;padding:calc(16px + env(safe-area-inset-top,0px)) 16px calc(24px + env(safe-area-inset-bottom,0px));height:var(--app-vh,100dvh);box-sizing:border-box}
.ob-card{width:min(460px,100%);max-height:100%;overflow:auto;background:#121319;border:1px solid var(--ob-line);border-radius:calc(var(--ob-r) + 8px);padding:22px;display:flex;flex-direction:column;gap:12px;color:#fff}
html.newlook .ob-card{background:color-mix(in srgb, #0b0c11 92%, var(--ob-tone) 8%)}
.ob-dots{display:flex;gap:5px}.ob-dots i{flex:1;height:4px;border-radius:2px;background:rgba(255,255,255,.14)}.ob-dots i.a{background:var(--ob-tone)}
.ob-eb{font-size:11px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:var(--ob-tt)}
.ob-body{display:flex;flex-direction:column;gap:8px}.ob-body h3{margin:0;font-size:22px;line-height:1.2;text-wrap:balance}.ob-body h4{margin:8px 0 0;font-size:13px;color:#d6d6de}
.ob-body p{margin:0 0 4px;color:#a3a3ad;font-size:13.5px;line-height:1.45}
.ob-logo{font-size:30px;font-weight:900;margin-top:12px}.ob-logo span{color:var(--ob-tt)}
.ob-feat{display:flex;align-items:center;gap:12px;color:#e6e6ec;font-size:14.5px}
.ob-feat i{width:36px;height:36px;border-radius:11px;flex:none;display:grid;place-items:center;color:var(--ob-tt);background:color-mix(in srgb, var(--ob-tone) 20%, transparent)}
.ob-opt{text-align:left;background:var(--ob-card);border:1px solid var(--ob-line);border-radius:var(--ob-r);padding:11px 13px;color:#fff;cursor:pointer;font:inherit;display:flex;align-items:center;gap:8px}
.ob-opt .ob-opt-t{flex:1;display:flex;flex-direction:column;gap:2px}.ob-opt .ob-opt-t span{font-size:12px;color:#a3a3ad}
.ob-opt i{font-style:normal;font-weight:900;color:var(--ob-tt)}
.ob-opt.on{border-color:color-mix(in srgb, var(--ob-tone) 55%, transparent);background:color-mix(in srgb, var(--ob-tone) 22%, transparent)}
.ob-seg{display:flex;background:rgba(255,255,255,.08);border-radius:99px;padding:3px}
.ob-seg button{flex:1;border:0;background:none;color:#fff;font:inherit;padding:9px 4px;border-radius:99px;cursor:pointer;white-space:nowrap}
.ob-seg button.on{background:color-mix(in srgb, var(--ob-tone) 32%, transparent);font-weight:700}
.ob-prov{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.ob-prov button{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 4px;border-radius:var(--ob-r);background:var(--ob-card);border:1px solid var(--ob-line);color:#fff;font:inherit;cursor:pointer;text-align:center}
.ob-prov b{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font-size:12px;font-weight:900;background:rgba(255,255,255,.08)}
.ob-prov span{font-size:13px;font-weight:700;white-space:nowrap}
.ob-prov button.on{background:color-mix(in srgb, var(--ob-tone) 22%, transparent);border-color:color-mix(in srgb, var(--ob-tone) 55%, transparent)}
.ob-prov button.on b{background:var(--ob-tone);color:var(--ob-on)}
.ob-input{width:100%;box-sizing:border-box;background:rgba(255,255,255,.05);border:1px solid var(--ob-line);border-radius:var(--ob-r);padding:12px;color:#fff;font:inherit}
.ob-check{font-size:13px;font-weight:700;color:#a3a3ad}.ob-check.ok{color:#7ee2a0}.ob-check.bad{color:#fca5a5}
.ob-link{color:var(--ob-tt);font-weight:700;font-size:14px;text-decoration:none;align-self:flex-start;padding:4px 0}
.ob-chips{display:flex;flex-wrap:wrap;gap:8px}.ob-chip{padding:9px 15px;border-radius:99px;background:var(--ob-card);border:1px solid var(--ob-line);color:#fff;font:inherit;cursor:pointer}
.ob-chip.on{background:color-mix(in srgb, var(--ob-tone) 26%, transparent);border-color:color-mix(in srgb, var(--ob-tone) 55%, transparent)}
.ob-next{background:var(--ob-tone);border:0;border-radius:var(--ob-r);padding:14px;color:var(--ob-on);font:inherit;font-weight:700;cursor:pointer}
.ob-skip{background:none;border:0;color:#a3a3ad;font:inherit;cursor:pointer;padding:10px 6px;flex:none}
.ob-opt:focus-visible,.ob-chip:focus-visible,.ob-next:focus-visible,.ob-skip:focus-visible,.ob-input:focus-visible,.ob-prov button:focus-visible,.ob-seg button:focus-visible,.ob-link:focus-visible{outline:2px solid #fff;outline-offset:2px}

/* Anteprima della scena sulla barra (YouTube) */
.po-seek-tooltip.thumb{ display:flex; flex-direction:column; align-items:center; gap:4px; padding:4px; }
.po-seek-thumb{ background-repeat:no-repeat; background-color:#111; border-radius:4px; }
.po-seek-label{ font-size:11.5px; font-weight:600; line-height:1.25; text-align:center; white-space:normal; overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }

/* Barra del player: si trascina col dito (niente scroll della pagina) e ha un'area di tocco piu' alta della linea */
.po-seek .bar{ touch-action:none; }
.po-seek .bar::after{ content:''; position:absolute; left:0; right:0; top:-14px; bottom:-14px; }

/* Trasmetti alla TV (sperimentale) */
#poCastBtn.on{ color:var(--dd-red, #e50914); }
.cw-beta{ display:inline-block; font-size:10px; font-weight:700; color:#ffd24a; background:#3a3010; border-radius:99px; padding:1px 7px; margin-left:6px; vertical-align:2px; }
.cw-overlay{ position:fixed; inset:0; z-index:2147483640; display:flex; align-items:center; justify-content:center; padding:16px; background:rgba(8,8,12,.86); }
.cw-card{ width:min(380px,100%); background:linear-gradient(180deg,#2a1a22,#14141a 60%); border:1px solid #2c2c36; border-radius:18px; padding:18px 20px; color:#fff; display:flex; flex-direction:column; gap:10px; }
.cw-top{ display:flex; align-items:center; gap:7px; justify-content:center; font-size:12.5px; color:#cfcfd8; }
.cw-live{ width:7px; height:7px; border-radius:50%; background:#e50914; box-shadow:0 0 0 3px #e5091433; }
.cw-title{ font-weight:800; font-size:18px; text-align:center; margin:6px 0 4px; }
.cw-card input[type=range]{ width:100%; accent-color:#fff; }
.cw-times{ display:flex; justify-content:space-between; font-size:11px; color:#9a9aa6; font-variant-numeric:tabular-nums; }
.cw-ctl{ display:flex; align-items:center; justify-content:space-evenly; margin:6px 0; }
.cw-ctl button{ background:none; border:0; color:#fff; width:52px; height:52px; border-radius:50%; display:flex; align-items:center; justify-content:center; cursor:pointer; }
.cw-ctl button.big{ width:66px; height:66px; background:#fff; color:#111; }
.cw-stop{ background:rgba(255,255,255,.07); border:0; border-radius:14px; padding:13px; color:#ff8a90; font:inherit; font-weight:600; cursor:pointer; }
.cw-ctl button:focus-visible,.cw-stop:focus-visible{ outline:2px solid #fff; outline-offset:2px; }

/* Ricerche recenti: titolo come le altre righe, pillole come i filtri */
.rs-row{ margin-top:20px; }
.rs-row h3{ justify-content:space-between; }
.rs-clear{ background:none; border:0; color:var(--text-muted,#9a9aa6); font:inherit; font-size:12.5px; font-weight:600; cursor:pointer; padding:4px 2px; }
.rs-clear:hover{ color:#fff; }
.rs-track{ display:flex; gap:10px; overflow-x:auto; scrollbar-width:none; padding:2px 0 4px; -webkit-overflow-scrolling:touch; }
.rs-track::-webkit-scrollbar{ display:none; }
.rs-pill{ flex:none; display:inline-flex; align-items:center; height:40px; border-radius:99px; background:var(--surface-2,rgba(255,255,255,.06)); border:1px solid var(--hairline,rgba(255,255,255,.12)); transition:background .15s, border-color .15s; max-width:260px; }
.rs-pill:hover,.rs-pill:focus-within{ border-color:rgba(255,255,255,.3); }
.rs-q{ display:inline-flex; align-items:center; gap:8px; height:100%; min-width:0; background:none; border:0; color:#fff; font:inherit; font-size:14px; font-weight:600; padding:0 6px 0 14px; cursor:pointer; }
.rs-q svg{ flex:none; color:var(--text-muted,#9a9aa6); }
.rs-q span{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.rs-x{ flex:none; display:inline-flex; align-items:center; justify-content:center; width:24px; height:24px; margin-right:8px; border-radius:50%; background:rgba(255,255,255,.08); border:0; color:var(--text-muted,#9a9aa6); cursor:pointer; }
.rs-x:hover{ background:rgba(255,255,255,.18); color:#fff; }
.rs-q:focus-visible,.rs-x:focus-visible,.rs-clear:focus-visible{ outline:2px solid #fff; outline-offset:2px; border-radius:99px; }

/* Colonna sonora nella riga dei pulsanti: su schermi stretti solo icona, identica a trailer e lista
   (stessa larghezza, stessa altezza della riga, stesso riquadro), invece di una pillola larga che va a capo. */
@media (max-width:700px){
  .detail-primary-row .ost-slot:not(:empty){ display:flex; align-self:stretch; flex-shrink:0; width:38px; }
  .detail-primary-row .detail-ost-btn{ flex:1; width:100%; height:auto; padding:0; justify-content:center; border-radius:10px; background:rgba(255,255,255,.1); border:1px solid var(--hairline); backdrop-filter:blur(6px); }
  .detail-primary-row .detail-ost-btn span{ display:none; }
  .detail-primary-row .detail-ost-btn svg{ width:20px; height:20px; }
}

/* ───── Modalita' Lite: Home a carosello di schede alte (js/lite.js) ───── */
.lite-wrap{position:relative;overflow:hidden;isolation:isolate;--cw:clamp(170px,16vw,250px);padding:92px 0 64px;min-height:min(88vh,780px);color:#fff}
.lite-wrap.lite-m{--cw:min(54vw,220px);padding:74px 0 76px;min-height:calc(100vh - 150px)}
.lite-bg{position:fixed;inset:-90px;z-index:-2;background-size:cover;background-position:center;filter:blur(56px) saturate(1.4) brightness(.55);transition:background-image .6s;pointer-events:none}
/* Lo sfondo sfocato e' a tutto schermo (fisso), non solo nel riquadro della Home; la sfumatura scura lo accompagna. */
.lite-wrap:after{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(180deg,rgba(8,8,12,.4) 0%,rgba(8,8,12,.12) 38%,rgba(8,8,12,.88) 100%)}
.lite-stage{position:relative;height:calc(var(--cw) * 1.5 * 1.1 + 10px);margin-top:6px}
.lite-card{position:absolute;left:50%;top:0;width:var(--cw);height:calc(var(--cw) * 1.5);margin-left:calc(var(--cw) / -2);border-radius:10px;overflow:hidden;background:#1b1b26;cursor:pointer;transition:transform .6s cubic-bezier(.2,.8,.2,1),opacity .6s,filter .6s,width .6s cubic-bezier(.2,.8,.2,1),height .6s cubic-bezier(.2,.8,.2,1),margin-left .6s cubic-bezier(.2,.8,.2,1);will-change:transform;outline:none}
.lite-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;user-select:none}
.lite-card.cur{box-shadow:0 18px 50px rgba(0,0,0,.65)}
.lite-card:focus-visible{outline:3px solid #fff;outline-offset:3px}
.lite-shade{position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.55) 0%,transparent 35%);pointer-events:none}
.lite-ribbon{position:absolute;left:8px;top:8px;font-size:9px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;background:var(--accent,var(--dd-red, #e50914));color:#fff;padding:3px 7px;border-radius:3px}
.lite-pg{position:absolute;left:0;right:0;bottom:0;height:4px;background:rgba(255,255,255,.28)}
.lite-pg i{display:block;height:100%;background:var(--accent,var(--dd-red, #e50914))}
/* Trailer in corso: la scheda centrale diventa orizzontale (16:9, e' un video) e le altre si scostano. */
.lite-wrap{--pw:min(calc(var(--cw) * 3.5),92vw)}
.lite-wide .lite-card.cur{width:var(--pw);height:calc(var(--pw) * .5625);margin-left:calc(var(--pw) / -2)}
.lite-wide .lite-stage{height:calc(var(--pw) * .5625 + 14px)}
.lite-stage{transition:height .6s}
/* Il video e' piu' grande della scheda (150%) e centrato: niente bande nere, e titolo (in alto) e sottotitoli (in basso) di YouTube restano fuori dal bordo. */
/* Il lettore e' grande quanto il video finale (anche quando la scheda e' ancora stretta): cosi' YouTube sceglie subito una qualita' alta. */
.lite-trailer{position:absolute;left:50%;top:50%;width:calc(var(--pw) * 1.5);height:calc(var(--pw) * .5625 * 1.5);transform:translate(-50%,-50%);border:0;opacity:0;transition:opacity .8s;pointer-events:none}
.lite-snd{position:absolute;right:12px;bottom:12px;width:38px;height:38px;border-radius:50%;background:rgba(0,0,0,.55);border:1px solid rgba(255,255,255,.4);color:#fff;display:grid;place-items:center;cursor:pointer;z-index:4;backdrop-filter:blur(6px)}
.lite-snd:hover{background:rgba(0,0,0,.75)}
.lite-snd svg{grid-area:1/1}
.lite-snd .s1{display:none}.lite-snd.on .s1{display:block}.lite-snd.on .s0{display:none}
.lite-tags,.lite-title,.lite-sum{transition:opacity .4s,max-height .4s,margin .4s;max-height:140px}
.lite-playing .lite-tags,.lite-playing .lite-title,.lite-playing .lite-sum{opacity:0;max-height:0;margin-top:0;margin-bottom:0;overflow:hidden}
.lite-playing .lite-ribbon,.lite-playing .lite-pg{opacity:0}
.lite-trailer.on{opacity:1}
.lite-card.cur .lite-trailer{pointer-events:none}
.lite-arrow{position:absolute;top:calc(92px + var(--cw) * .75);width:38px;height:38px;border-radius:50%;background:rgba(0,0,0,.55);border:1px solid rgba(255,255,255,.3);color:#fff;display:grid;place-items:center;z-index:5;cursor:pointer;opacity:0;transition:opacity .2s}
.lite-wrap:hover .lite-arrow{opacity:1}
.lite-arrow.l{left:18px}.lite-arrow.r{right:18px}
.lite-m .lite-arrow{display:none}
.lite-info{position:relative;z-index:3;text-align:center;max-width:640px;margin:18px auto 0;padding:0 18px}
.lite-tags{display:flex;gap:8px;justify-content:center;align-items:center;flex-wrap:wrap;font-size:12.5px;font-weight:700;color:#ececf4}
.lite-tags i{width:3px;height:3px;border-radius:50%;background:#ececf4;opacity:.7}
.lite-title{font-size:clamp(20px,2.4vw,28px);font-weight:900;margin:6px 0 4px;line-height:1.1;text-wrap:balance}
.lite-sum{font-size:13px;line-height:1.5;color:#cfcfdc;margin:0 auto;max-width:560px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.lite-cta{display:flex;gap:9px;justify-content:center;flex-wrap:wrap;margin-top:14px}
.lite-btn{border:0;border-radius:7px;padding:10px 18px;font:800 13px/1 inherit;font-family:inherit;color:#fff;background:rgba(255,255,255,.2);display:inline-flex;gap:7px;align-items:center;cursor:pointer;backdrop-filter:blur(6px)}
.lite-btn.p{background:var(--accent,var(--dd-red, #e50914))}
.lite-btn:hover{filter:brightness(1.15)}
.lite-btn:focus-visible{outline:3px solid #fff;outline-offset:2px}
.lite-dots{position:absolute;left:0;right:0;bottom:22px;display:flex;gap:6px;justify-content:center;z-index:4}
.lite-m .lite-dots{bottom:14px}
.lite-dots i{width:18px;height:4px;border-radius:3px;background:rgba(255,255,255,.28);cursor:pointer;transition:.3s}
.lite-dots i.on{background:#fff;width:28px}
@media(prefers-reduced-motion:reduce){.lite-card,.lite-bg,.lite-trailer{transition:none}}
/* Telefono: col trailer largo le schede vicine non servono (sbucherebbero sotto il video). */
.lite-m.lite-wide .lite-card:not(.cur){opacity:0 !important}

/* Categorie della Home Lite */
.lite-cats{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;position:relative;z-index:8;padding:0 14px;margin-bottom:6px}
.lite-cat{border:1px solid rgba(255,255,255,.3);background:rgba(0,0,0,.35);color:#fff;border-radius:99px;padding:7px 17px;font:700 13px/1 inherit;font-family:inherit;cursor:pointer;backdrop-filter:blur(6px);transition:background .2s,color .2s}
.lite-cat:hover{background:rgba(255,255,255,.18)}
.lite-cat.on{background:#fff;color:#0b0b10;border-color:#fff}
.lite-cat:focus-visible{outline:3px solid #fff;outline-offset:2px}
.lite-arrow{top:calc(136px + var(--cw) * .75)}
.lite-m .lite-arrow{top:calc(120px + var(--cw) * .75)}
.lite-none{position:relative;text-align:center;padding:90px 20px;color:#cfcfdc;font-weight:600}
.lite-stage{margin-top:26px}
.lite-arrow{top:calc(154px + var(--cw) * .75)}
.lite-m .lite-arrow{top:calc(138px + var(--cw) * .75)}

/* Le frecce stanno sopra tutte le schede (che arrivano a z-index 10): un clic sulla freccia non deve mai colpire una scheda. */
.lite-arrow{z-index:30}
.lite-dots.many i{display:none}
.lite-count{display:none;font-size:12px;font-weight:700;color:#e6e6ef;background:rgba(0,0,0,.4);border-radius:99px;padding:3px 11px}
.lite-dots.many .lite-count{display:block}

/* Home Lite: la sfuocatura passa anche sotto la barra in alto (sempre trasparente, anche scorrendo). */
html.dd-lite .desktop-shell .d-topbar,
html.dd-lite .mobile-shell .m-topbar{
  background:linear-gradient(180deg, rgba(0,0,0,.5), rgba(0,0,0,0));
}

/* Trailer non disponibile: immagine orizzontale del titolo + etichetta discreta */
.lite-nov{position:absolute;inset:0;z-index:3}
.lite-nov img{width:100%;height:100%;object-fit:cover;display:block}
.lite-nov:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.55) 0%,transparent 40%)}
.lite-nov-tag{position:absolute;left:14px;bottom:14px;z-index:2;display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:700;color:#fff;background:rgba(0,0,0,.55);border:1px solid rgba(255,255,255,.28);border-radius:99px;padding:6px 13px;backdrop-filter:blur(6px)}

/* ── Sorgenti, nuovo aspetto (".ns"): pillole tonali, blocco qualita' colorato, lingue come chip, movimento a molla ── */
#sourcesModal .modal-sheet, #poSourcesSheet .po-sheet-card{ border-radius:30px 30px 0 0; transition:transform .55s cubic-bezier(.34,1.56,.64,1); }
@media (min-width:901px){ #sourcesModal .modal-sheet{ border-radius:30px; } }
#sourcesModal .modal-header, #poSourcesSheet .po-sheet-header{ border-bottom:none; padding-bottom:6px; }
#sourcesModal .modal-header h3, #poSourcesSheet .po-sheet-header h3{ font-size:19px; font-weight:700; }
.ns-tabs{ display:flex; gap:8px; overflow-x:auto; scrollbar-width:none; margin:0 0 12px; }
.ns-tabs::-webkit-scrollbar{ display:none; }
.ns-tab{ flex:none; appearance:none; border:none; cursor:pointer; padding:10px 16px; border-radius:999px; background:rgba(255,255,255,.08); color:rgba(255,255,255,.62);
  font-size:13px; font-weight:600; font-family:inherit; transition:border-radius .5s cubic-bezier(.34,1.56,.64,1), background .3s, color .3s; }
.ns-tab.on{ background:var(--accent); color:#fff; border-radius:14px; }
.ns-seg{ display:flex; background:rgba(255,255,255,.07); border-radius:999px; padding:4px; margin:0 0 12px; }
.ns-seg button{ flex:1; height:40px; appearance:none; border:none; border-radius:999px; background:none; color:rgba(255,255,255,.62); font-size:14px; font-weight:600; font-family:inherit; cursor:pointer; transition:background .35s, color .3s; }
.ns-seg button.on{ background:var(--accent); color:#fff; }
.ns-list{ display:flex; flex-direction:column; gap:8px; }
.ns-h{ font-size:12px; font-weight:700; letter-spacing:.04em; color:var(--text-muted); margin:8px 6px 0; }
.ns-h span{ font-weight:500; opacity:.7; }
.ns-src{ display:flex; align-items:center; gap:12px; width:100%; appearance:none; border:none; color:inherit; text-align:left; cursor:pointer; font-family:inherit;
  background:rgba(255,255,255,.06); border-radius:22px; padding:12px 12px 12px 14px;
  transition:border-radius .5s cubic-bezier(.34,1.56,.64,1), transform .45s cubic-bezier(.34,1.56,.64,1), background .3s;
  animation:nsIn .5s cubic-bezier(.34,1.56,.64,1) backwards; }
.ns-src:nth-child(2){ animation-delay:.04s } .ns-src:nth-child(3){ animation-delay:.08s } .ns-src:nth-child(4){ animation-delay:.12s }
.ns-src:nth-child(5){ animation-delay:.16s } .ns-src:nth-child(n+6){ animation-delay:.2s }
.ns-src:hover{ background:rgba(255,255,255,.09); }
.ns-src:active{ border-radius:30px; transform:scale(.98); }
.ns-src.pick{ background:color-mix(in srgb, var(--dd-red, #e50914) 22%, transparent); }
.ns-src.blocked{ opacity:.5; cursor:not-allowed; }
.ns-q{ flex:none; min-width:58px; height:44px; border-radius:15px; display:grid; place-items:center; font-weight:800; font-size:13px; background:rgba(255,255,255,.12); color:#e9e9ee; }
.ns-q.k4{ background:#3b2a05; color:#ffd36b; } .ns-q.hd{ background:#13294d; color:#9cc7ff; }
.ns-tx{ flex:1; min-width:0; }
.ns-tx b{ display:-webkit-box; -webkit-line-clamp:2; line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; font-size:13.5px; font-weight:700; line-height:1.3; word-break:break-word; }
.ns-tx small{ display:block; margin-top:3px; font-size:12px; color:var(--text-muted); }
.ns-ls{ display:flex; flex-wrap:wrap; align-items:center; gap:5px; margin-top:7px; }
.ns-l{ display:inline-flex; align-items:center; gap:4px; height:24px; line-height:1; white-space:nowrap; font-size:11px; font-weight:700; padding:0 9px; border-radius:999px; background:rgba(255,255,255,.1); color:#e4e4ea; }
.ns-l svg, .ns-l img{ width:13px; height:13px; flex:none; margin:0; vertical-align:0; }
.ns-l.it{ background:#1d3b22; color:#9be3a6; } .ns-l.sub{ background:#3b3105; color:#ffd96b; } .ns-l.multi{ background:#1b304f; color:#8ab4f8; }
.ns-ls .badge.provider-blocked{ border-radius:999px; padding:0 9px; height:24px; display:inline-flex; align-items:center; font-size:11px; }
.ns-prov{ display:inline-flex; align-items:center; gap:4px; height:22px; line-height:1; font-size:11px; font-weight:700; padding:0 8px; border-radius:6px; margin-right:6px; vertical-align:middle; letter-spacing:0.02em; }
.ns-prov.prov-debridd{ background:rgba(239,68,68,.16); border:1px solid rgba(239,68,68,.38); color:#f87171; }
.ns-prov.prov-corsaro{ background:rgba(147,51,234,.18); border:1px solid rgba(168,85,247,.38); color:#d8b4fe; }
.ns-prov.prov-comet{ background:rgba(6,182,212,.16); border:1px solid rgba(6,182,212,.38); color:#67e8f9; }
.ns-prov.prov-torrentio{ background:rgba(59,130,246,.16); border:1px solid rgba(59,130,246,.38); color:#93c5fd; }
.ns-prov.prov-instant{ background:rgba(16,185,129,.2); border:1px solid rgba(16,185,129,.42); color:#6ee7b7; font-weight:800; }
.ns-prov.prov-youtube{ background:rgba(255,0,0,.16); border:1px solid rgba(255,0,0,.35); color:#ff8585; }
.ns .ac-chip{ width:46px; height:46px; border-radius:16px; font-size:8.5px; border-width:1px; }
.ns .ac-legend{ border-radius:20px; border:none; background:rgba(255,255,255,.05); }
@keyframes nsIn{ from{ opacity:0; transform:translateY(16px); } to{ opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce){ .ns-src, .ns-tab{ animation:none; transition:none; } }

/* ════════ Tema "Nuovo aspetto" (anteprima admin: html.newlook, interruttore in Impostazioni) ════════
   Stesso layout e stesse funzioni: cambia il feeling. Angoli grandi che cambiano forma alla pressione, movimenti a
   molla, colori tonali pieni per cio' che e' selezionato, superfici in trasparenza, barra in basso a pillola. */
html.newlook{ --nl-spring:cubic-bezier(.34,1.56,.64,1); --nl-tone:#ffd9dc; --nl-on:#410006; --nl-acc:#e0607a; }

/* Carte e copertine */
html.newlook .card{ border-radius:22px; transition:transform .45s var(--nl-spring), border-radius .5s var(--nl-spring); }
html.newlook .card:active{ transform:scale(.95); border-radius:30px; }
html.newlook .card .art.wide{ border-radius:inherit; }
html.newlook .wishlist-card, html.newlook .episode-card{ border-radius:22px; border-color:transparent; background:rgba(255,255,255,.06);
  transition:transform .45s var(--nl-spring), border-radius .5s var(--nl-spring), background .3s; }
html.newlook .episode-card:active, html.newlook .wishlist-card:active{ transform:scale(.98); border-radius:30px; }
html.newlook .ep-thumb-wrap{ border-radius:16px; margin:8px 8px 0; width:auto; }
/* Chip e schede */
html.newlook .cat-chip{
  border-color:transparent; background:rgba(255,255,255,.08); border-radius:999px;
  transition:background .25s ease, color .25s ease, transform .2s ease; }
html.newlook .cat-chip.active{
  background:var(--nl-tone); color:var(--nl-on); border-color:transparent; border-radius:999px; box-shadow:none; }
html.newlook .cat2-chip, html.newlook .src-tab, html.newlook .cal-day-chip{
  border-color:transparent; background:rgba(255,255,255,.08); border-radius:999px;
  transition:border-radius .5s var(--nl-spring), background .3s, color .3s, transform .45s var(--nl-spring); }
html.newlook .cat2-chip.on, html.newlook .cat2-chip.active, html.newlook .src-tab.active, html.newlook .cal-day-chip.active{
  background:var(--nl-tone); color:var(--nl-on); border-color:transparent; border-radius:14px; box-shadow:none; }
html.newlook .src-tab.active .cnt, html.newlook .cal-day-chip.active .cal-day-name, html.newlook .cal-day-chip.active .cal-day-num{ color:var(--nl-on); }
html.newlook .cat-chip:active, html.newlook .cat2-chip:active{ transform:scale(.94); }
html.newlook .global-search-pills .cat-chip, html.newlook .global-search-pills .cat-chip:active, html.newlook .global-search-pills .cat-chip:focus, html.newlook .global-search-pills .cat-chip.active{ border-radius:999px !important; outline:none !important; }
/* Pulsanti */
html.newlook .play-btn, html.newlook .ghost-btn, html.newlook .btn-primary, html.newlook .btn-secondary, html.newlook .bb-btn, html.newlook .cal-hero-btn, html.newlook .live-hero-btn{
  border-radius:27px; transition:border-radius .5s var(--nl-spring), transform .45s var(--nl-spring), background .3s, filter .2s; }
html.newlook .play-btn:active, html.newlook .ghost-btn:active, html.newlook .btn-primary:active, html.newlook .btn-secondary:active, html.newlook .bb-btn:active, html.newlook .cal-hero-btn:active, html.newlook .live-hero-btn:active{
  border-radius:14px; transform:scale(.96); }
html.newlook .ghost-btn{ border-color:transparent; background:rgba(255,255,255,.12); }
html.newlook .back-btn{ border-radius:21px; transition:border-radius .5s var(--nl-spring), transform .45s var(--nl-spring); }
html.newlook .back-btn:active{ border-radius:13px; transform:scale(.92); }
/* Barra in basso: pillola in vetro con la voce attiva tonale */
html.newlook .m-tabbar{ background:rgba(20,21,27,.72); -webkit-backdrop-filter:blur(20px) saturate(1.4); backdrop-filter:blur(20px) saturate(1.4); border-color:rgba(255,255,255,.1); }
html.newlook .m-tab{ transition:color .3s, background .35s, padding .5s var(--nl-spring), border-radius .5s var(--nl-spring); }
html.newlook .m-tab.active{ background:var(--nl-tone); color:var(--nl-on); box-shadow:none; border-radius:18px; }
html.newlook .m-tab:active{ transform:scale(.92); }
/* Hero, uscite, impostazioni */
html.newlook .cal-hero{ border-radius:30px; overflow:hidden; }
html.newlook .settings-group{ border-radius:24px; border-color:transparent; background:rgba(255,255,255,.05); }
html.newlook .toggle-slider, html.newlook .toggle-slider::before{ transition:all .45s var(--nl-spring); }
/* Fogli e finestre */
html.newlook .modal-sheet, html.newlook .po-sheet-card{ border-radius:30px 30px 0 0; transition:transform .55s var(--nl-spring); }
@media (min-width:901px){ html.newlook .modal-sheet{ border-radius:30px; } }
html.newlook .modal-header, html.newlook .po-sheet-header{ border-bottom:none; }
/* Player: controlli tondi in vetro, play che cambia forma */
html.newlook .po-controls .main{ background:rgba(255,255,255,.2); -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px); color:#fff; box-shadow:none;
  width:72px; height:72px; border-radius:26px; transition:border-radius .5s var(--nl-spring), transform .45s var(--nl-spring); }
html.newlook .po-controls .main:hover{ transform:scale(1.05); box-shadow:none; border-radius:36px; }
html.newlook .po-controls .main:active{ transform:scale(.92); border-radius:18px; }
html.newlook .po-controls button.side, html.newlook .po-icon-btn{ background:rgba(255,255,255,.12); transition:border-radius .5s var(--nl-spring), transform .45s var(--nl-spring); }
html.newlook .po-controls button.side:active, html.newlook .po-icon-btn:active{ border-radius:14px; transform:scale(.92); }
html.newlook .po-skip-intro-btn{ border-radius:22px; background:#fff; color:#000; transition:border-radius .5s var(--nl-spring), transform .45s var(--nl-spring); }
html.newlook .po-skip-intro-btn:active{ border-radius:12px; }
@media (prefers-reduced-motion:reduce){ html.newlook *{ transition:none !important; } }
/* Nuovo aspetto, parte 2: sfondo "ambient" ovunque (copertina in evidenza sfocata, impostata da wallet_preview.js in
   --nl-amb), superfici tonali in trasparenza, titoli di sezione piu' grandi, tessere del catalogo molto arrotondate. */
html.newlook body::before{ content:""; position:fixed; inset:-12%; z-index:-1; pointer-events:none;
  background:var(--nl-amb, none) center/cover; filter:blur(90px) saturate(1.2); opacity:.22; }
html.newlook body::after{ content:""; position:fixed; inset:0; z-index:-1; pointer-events:none;
  background:linear-gradient(180deg, rgba(10,10,14,.25), rgba(10,10,14,.7) 45%, rgba(10,10,14,.9)); }
html.newlook body{ background:#0a0a0e; }
html.newlook .mobile-shell, html.newlook .desktop-shell, html.newlook .m-content, html.newlook .d-content{ background:transparent; }
html.newlook .m-topbar, html.newlook .d-topbar{ background:rgba(10,10,14,.55); -webkit-backdrop-filter:blur(18px); backdrop-filter:blur(18px); }
html.newlook .row h3{ font-size:19px; letter-spacing:-.01em; }
html.newlook .m-content .row h3{ font-size:18px; }
html.newlook .cat2-tile{ border-radius:26px; transition:transform .45s var(--nl-spring), border-radius .5s var(--nl-spring); }
html.newlook .cat2-tile:active{ transform:scale(.96); border-radius:34px; }
html.newlook .card .art{ border-radius:22px; }
html.newlook .wide-card .art.wide{ border-radius:24px; padding-bottom:28px; }
html.newlook .card{ background:transparent; overflow:visible; }
html.newlook .card .progress{ border-radius:4px; left:12px; right:12px; bottom:10px; }
html.newlook .wide-card .progress{ bottom:8px; height:3.5px; z-index:3; }
html.newlook .cal-day-chip{ border-radius:20px; }
html.newlook .ap-card, html.newlook .modal-sheet{ background:rgba(24,25,32,.9); -webkit-backdrop-filter:blur(24px); backdrop-filter:blur(24px); border:1px solid rgba(255,255,255,.08); }
html.newlook .ap-card{ border-radius:30px; }
/* Nuovo aspetto, parte 3: scheda del titolo (mobile) come una pagina a tutta immagine, pulsanti a pillola, episodi a
   righe (miniatura a sinistra, testo a destra) con l'episodio in corso evidenziato. */
html.newlook .m-content .m-hero.detail-hero{ margin:-6px -14px 18px; border-radius:0 0 34px 34px; min-height:min(128vw,560px); padding:70px 18px 22px; }
html.newlook .detail-hero::after{ background:linear-gradient(180deg, rgba(10,10,14,.35) 0%, transparent 22%, transparent 38%, rgba(10,10,14,.82) 66%, rgba(10,10,14,.97) 100%); }
html.newlook .m-hero.detail-hero .back-btn{ top:calc(14px + env(safe-area-inset-top, 0px)); background:rgba(12,12,16,.55); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); }
html.newlook .m-hero.detail-hero .m-hero-inner{ width:100%; text-align:center; }
html.newlook .m-hero.detail-hero .m-hero-inner .tag{ display:inline-block; color:#fff; background:rgba(255,255,255,.14); padding:5px 12px; border-radius:999px; letter-spacing:.04em; font-size:11px; margin-bottom:10px; }
html.newlook .m-hero.detail-hero h1{ font-size:32px; letter-spacing:-.02em; margin-bottom:10px; }
html.newlook .m-hero.detail-hero .detail-meta-row{ justify-content:center; }
html.newlook .m-hero.detail-hero p{ text-align:left; color:#cfd0d8; font-size:13.5px; }
html.newlook .m-hero-actions.detail-primary-row{ gap:10px; flex-wrap:nowrap; }
html.newlook .detail-primary-btn{ background:#fff; color:#000; border-radius:27px; height:54px; font-size:16px; transition:border-radius .5s var(--nl-spring), transform .45s var(--nl-spring); }
html.newlook .m-hero-actions .detail-primary-btn{ flex:1; padding:0 18px; font-size:15.5px; }
html.newlook .detail-primary-btn:active{ border-radius:16px; transform:scale(.96); }
html.newlook .detail-icon-btn{ width:54px; height:54px; border-radius:27px; border:none; background:rgba(255,255,255,.14); transition:border-radius .5s var(--nl-spring), transform .45s var(--nl-spring); }
html.newlook .m-hero-actions .detail-icon-btn{ width:54px; }
html.newlook .detail-icon-btn:active{ border-radius:16px; transform:scale(.92); }
html.newlook .detail-tools-card{ border-radius:24px; border:none; background:rgba(255,255,255,.06); overflow:hidden; }
/* Episodi a righe */
html.newlook .m-content .episodes-grid{ display:flex; flex-direction:column; gap:10px; }
html.newlook .m-content .episode-card{ flex-direction:row; align-items:center; gap:12px; padding:10px; }
html.newlook .m-content .episode-card .ep-thumb-wrap{ width:124px; flex:none; aspect-ratio:16/9; margin:0; border-radius:16px; }
html.newlook .m-content .episode-card .ep-info{ padding:0; gap:3px; min-width:0; }
html.newlook .m-content .episode-card .ep-title{ font-size:14.5px; }
html.newlook .m-content .episode-card .ep-overview{ display:-webkit-box; -webkit-line-clamp:2; line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; font-size:12px; }
html.newlook .m-content .episode-card .ep-num-badge{ border-radius:999px; }
html.newlook .episode-card:has(.ep-progress-bar):not(.is-watched){ background:#2a1416; box-shadow:inset 0 0 0 1.5px #5c1a20; }
html.newlook .m-hero-actions.detail-primary-row > *:not(.detail-primary-btn){ width:54px; height:54px; flex:none; border-radius:27px; border:none; background:rgba(255,255,255,.14); display:inline-flex; align-items:center; justify-content:center; }
/* Colonna sonora non trovata: il posto vuoto non deve diventare un cerchio grigio senza icona (la regola sopra
   rendeva visibile anche lo spazio vuoto, battendo .ost-slot:empty). */
html.newlook .detail-primary-row > .ost-slot:empty{ display:none !important; }
html.newlook .m-hero-actions.detail-primary-row > *:not(.detail-primary-btn) > button{ width:100%; height:100%; border-radius:inherit; border:none; background:none; padding:0; }
/* Nuovo aspetto, parte 4: scheda del titolo su desktop. Copertina grande a tutta larghezza con angoli ampi, titolo
   grande, pulsanti a pillola; episodi in due colonne a righe (miniatura a sinistra). */
html.newlook .d-hero.detail-hero{ border-radius:36px; min-height:min(72vh,680px); padding:90px 56px 48px; align-items:flex-end; }
html.newlook .d-hero.detail-hero::after{ background:linear-gradient(90deg, rgba(10,10,14,.92) 0%, rgba(10,10,14,.7) 32%, transparent 62%), linear-gradient(0deg, rgba(10,10,14,.85), transparent 40%); }
html.newlook .d-hero.detail-hero .back-btn{ top:24px; left:24px; background:rgba(12,12,16,.55); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); }
html.newlook .d-hero.detail-hero .d-hero-inner{ max-width:620px; }
html.newlook .d-hero.detail-hero .d-hero-inner .tag{ display:inline-block; color:#fff; background:rgba(255,255,255,.14); padding:6px 14px; border-radius:999px; letter-spacing:.04em; font-size:12px; }
html.newlook .d-hero.detail-hero h1{ font-size:58px; letter-spacing:-.025em; margin-bottom:14px; }
html.newlook .d-hero.detail-hero p{ color:#d0d1d9; font-size:15.5px; max-width:560px; }
html.newlook .d-hero-actions.detail-primary-row{ gap:12px; }
html.newlook .d-hero-actions .detail-primary-btn{ height:58px; padding:0 34px; font-size:17px; border-radius:29px; }
html.newlook .d-hero-actions.detail-primary-row > *:not(.detail-primary-btn){ height:58px; min-width:58px; border-radius:29px; border:none; background:rgba(255,255,255,.14); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); }
html.newlook .d-hero-actions.detail-primary-row > *:not(.detail-primary-btn) > button{ height:100%; border-radius:inherit; border:none; background:none; }
html.newlook .d-content .detail-tools-card{ max-width:760px; }
html.newlook .d-content .episodes-grid{ grid-template-columns:repeat(auto-fill, minmax(460px, 1fr)); gap:12px; }
html.newlook .d-content .episode-card{ flex-direction:row; align-items:center; gap:16px; padding:12px; }
html.newlook .d-content .episode-card .ep-thumb-wrap{ width:220px; flex:none; aspect-ratio:16/9; margin:0; border-radius:18px; }
html.newlook .d-content .episode-card .ep-info{ padding:0; min-width:0; }
html.newlook .d-content .episode-card .ep-title{ font-size:16px; }
html.newlook .d-content .episode-card .ep-overview{ display:-webkit-box; -webkit-line-clamp:3; line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
html.newlook .d-content .episode-card:hover{ transform:translateY(-2px); background:rgba(255,255,255,.09); box-shadow:none; }
/* Episodi: in uscita e in corso (tutti i temi) */
.ep-soon{ display:inline-block; width:fit-content; font-size:11px; font-weight:700; padding:3px 9px; border-radius:999px; background:#13294d; color:#9cc7ff; }
.ep-here{ font-size:12px; font-weight:600; color:#ffb3b8; }
.episode-card.is-future{ opacity:.72; }
/* Lista vuota (tutti i temi) */
.wl-empty{ display:flex; flex-direction:column; align-items:center; text-align:center; gap:10px; padding:48px 20px; color:var(--text-muted); }
.wl-empty-ic{ width:72px; height:72px; border-radius:26px; display:grid; place-items:center; background:color-mix(in srgb, var(--dd-red, #e50914) 14%, transparent); color:#ff6b74; margin-bottom:6px; }
.wl-empty-ic svg{ width:32px; height:32px; }
.wl-empty b{ color:var(--text); font-size:18px; }
.wl-empty span{ max-width:320px; font-size:13.5px; line-height:1.5; }
.wl-empty .play-btn{ margin-top:8px; }
/* Sorgenti: titolo, filtri, consigliata, legenda a scomparsa (tutti i temi) */
.ns-sub{ color:var(--text-muted); font-size:13px; margin:-6px 4px 12px; }
.ns-qf{ display:flex; gap:8px; overflow-x:auto; scrollbar-width:none; margin:0 0 12px; }
.ns-qf::-webkit-scrollbar{ display:none; }
.ns-qf .ns-tab{ padding:8px 14px; font-size:12.5px; }
.ns-best{ display:inline-block; font-size:10.5px; font-weight:800; letter-spacing:.03em; padding:3px 9px; border-radius:999px; background:var(--accent); color:#fff; margin-bottom:5px; }
.ns-legend{ margin-top:10px; }
.ns-legend summary{ cursor:pointer; list-style:none; font-size:12.5px; color:var(--text-muted); padding:8px 6px; }
.ns-legend summary::-webkit-details-marker{ display:none; }
.ns-legend .ac-legend{ margin-top:4px; }
/* Nuovo aspetto, parte 5 */
html.newlook .episode-card.is-current{ background:#2a1416; box-shadow:inset 0 0 0 1.5px #5c1a20; }
html.newlook .episode-card:has(.ep-progress-bar):not(.is-watched):not(.is-current){ background:rgba(255,255,255,.06); box-shadow:none; }
html.newlook .detail-primary-row ~ .ap-caption, html.newlook .m-hero-inner .ap-caption, html.newlook .d-hero-inner .ap-caption{
  display:inline-flex; align-items:center; gap:8px; width:auto; max-width:100%; margin-top:12px; padding:6px 6px 6px 14px; border-radius:999px; border:none;
  background:rgba(12,12,16,.55); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); font-size:12.5px; }
html.newlook .ap-caption.ap-hint span::before{ content:"✨ "; }
html.newlook .ap-caption.ap-hint button{ border-radius:999px; padding:6px 12px; background:var(--nl-tone); color:var(--nl-on); border:none; font-weight:700; }
html.newlook .ap-caption.ap-hint button.ap-no{ background:rgba(255,255,255,.12); color:#fff; }
html.newlook .ex-tile{ border:none; border-radius:26px; min-height:112px; padding:14px;
  background:linear-gradient(135deg, color-mix(in srgb, var(--exc, #444) 55%, #0a0a0e), color-mix(in srgb, var(--exc, #444) 22%, #0a0a0e));
  transition:transform .45s var(--nl-spring), border-radius .5s var(--nl-spring); }
html.newlook .ex-tile:active{ transform:scale(.96); border-radius:34px; }
html.newlook .ex-tile .ex-ic{ background:rgba(255,255,255,.18) !important; border-radius:14px; }
html.newlook .ex-tile small{ color:rgba(255,255,255,.75); }
html.newlook .profile-pill-card{ border-radius:26px; border-color:transparent; background:rgba(255,255,255,.06); }
html.newlook .profile-pill-card.active{ border-color:transparent; background:var(--nl-tone); color:var(--nl-on); box-shadow:none; }
html.newlook .profile-pill-card.active .profile-pill-name, html.newlook .profile-pill-card.active .profile-pill-status{ color:var(--nl-on); }
/* Desktop: la copertina della scheda parte da sotto la barra in alto, a tutta larghezza */
html.newlook .d-content .d-hero.detail-hero{ margin:-96px -40px 36px; border-radius:0 0 40px 40px; padding:150px 96px 56px; min-height:min(82vh,760px); }
html.newlook .d-content .d-hero.detail-hero .back-btn{ top:110px; left:40px; }
html.newlook .ap-caption.ap-hint span{ flex:0 1 auto; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

/* Sorgenti: nel tema "Nuovo aspetto" la selezione e' rosa tonale (nel tema normale resta il rosso Debridd) */
html.newlook .ns-tab.on, html.newlook .ns-seg button.on{ background:var(--nl-tone); color:var(--nl-on); }
html.newlook .ns-best{ background:var(--nl-tone); color:var(--nl-on); }
html.newlook .ns-src.pick{ background:var(--nl-tone); color:var(--nl-on); }
html.newlook .ns-src.pick small{ color:#7a2a30; }
html.newlook .ns-src.pick .ns-best{ background:var(--nl-on); color:var(--nl-tone); }

/* Scheda titolo mobile (tema nuovo): l'immagine sta in alto, intera e pulita; titolo, trama e pulsanti sotto, su fondo
   scuro (prima stavano sopra l'immagine e coprivano i volti). */
html.newlook .m-content .m-hero.detail-hero{ display:block; min-height:0; height:auto; background:transparent; border-radius:0; overflow:visible;
  padding:calc(min(100vw, 430px) * .62 - 28px) 18px 6px; }
html.newlook .m-content .m-hero.detail-hero::after{ display:none; }
html.newlook .m-content .m-hero.detail-hero > .art-img{ inset:0 0 auto 0; height:calc(min(100vw, 430px) * .62); border-radius:0 0 30px 30px;
  -webkit-mask-image:linear-gradient(180deg, #000 62%, transparent); mask-image:linear-gradient(180deg, #000 62%, transparent); }
html.newlook .m-content .m-hero.detail-hero h1{ font-size:30px; }
html.newlook .m-content .m-hero.detail-hero p{ color:#c9cad3; font-size:13.5px; line-height:1.55; }
html.newlook .ap-caption.ap-hint{ flex-wrap:nowrap; font-size:12px; } html.newlook .ap-caption.ap-hint span{ min-width:0; }
/* Scheda titolo desktop (tema nuovo): immagine in alto a tutta larghezza, pulita; titolo, trama e pulsanti sotto. */
html.newlook .d-content .d-hero.detail-hero{ display:block; min-height:0; height:auto; background:transparent; overflow:visible;
  margin:-96px -40px 28px; border-radius:0; padding:calc(min(56vw, 640px) - 70px) 96px 8px; }
html.newlook .d-content .d-hero.detail-hero::after{ display:none; }
html.newlook .d-content .d-hero.detail-hero > .art-img{ inset:0 0 auto 0; height:min(56vw, 640px); border-radius:0 0 40px 40px;
  -webkit-mask-image:linear-gradient(180deg, #000 60%, transparent); mask-image:linear-gradient(180deg, #000 60%, transparent); }
html.newlook .d-content .d-hero.detail-hero .d-hero-inner{ max-width:820px; }
html.newlook .d-content .d-hero.detail-hero p{ max-width:760px; }
/* Aurora: hub Musica / Manga / Libri (schede in alto), YouTube, Live TV */
html.newlook .music-badge-pill, html.newlook .books-badge-pill, html.newlook .yt-badge-pill{ border:none; border-radius:999px; background:rgba(255,255,255,.1); }
html.newlook .music-tab, html.newlook .books-tab{ border:none; border-radius:24px; background:rgba(255,255,255,.06); transition:transform .45s var(--nl-spring), border-radius .5s var(--nl-spring), background .3s; }
html.newlook .music-tab:active, html.newlook .books-tab:active{ transform:scale(.94); border-radius:32px; }
html.newlook .music-tab.active, html.newlook .books-tab.active{ background:var(--nl-tone); border-color:transparent; border-radius:18px; }
html.newlook .music-tab.active .music-tab-badge, html.newlook .books-tab.active .books-tab-badge{ background:var(--nl-on); color:var(--nl-tone); box-shadow:none; }
html.newlook .music-tab.active .music-tab-label, html.newlook .books-tab.active .books-tab-label{ color:var(--nl-on); }
html.newlook .music-tab-badge, html.newlook .books-tab-badge{ border-radius:14px; background:rgba(255,255,255,.1); }
html.newlook .yt-search-input-wrap input, html.newlook .yt-search-field{ border-radius:999px !important; border-color:transparent !important; background:rgba(255,255,255,.08) !important; }
html.newlook .yt-search-submit-btn{ border-radius:999px; transition:border-radius .5s var(--nl-spring), transform .45s var(--nl-spring); }
html.newlook .yt-search-submit-btn:active{ border-radius:14px; transform:scale(.95); }
html.newlook .yt-learn-pill{ border:none; border-radius:999px; background:rgba(34,197,94,.16); }
html.newlook .live-vpn-notice{ border:none; border-radius:22px; background:rgba(255,255,255,.06); }
html.newlook .live-hero-btn{ border-radius:27px; }
html.newlook input[type="search"], html.newlook .settings-search input{ border-radius:999px; }
/* Interruttore del tema: due anteprime da scegliere */
.thm-pick{ width:100%; display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:10px; }
.thm-card{ appearance:none; border:2px solid transparent; border-radius:20px; padding:10px; background:rgba(255,255,255,.05); color:inherit; font:inherit; cursor:pointer; text-align:left; display:flex; flex-direction:column; gap:8px; }
.thm-card.on{ border-color:#fff; }
.thm-prev{ height:86px; border-radius:14px; position:relative; overflow:hidden; }
.thm-prev.classic{ background:#0a0a10; }
.thm-prev.classic::before{ content:""; position:absolute; left:10px; right:10px; top:10px; height:34px; border-radius:8px; background:#1c1c28; }
.thm-prev.classic::after{ content:""; position:absolute; left:10px; bottom:12px; width:46%; height:16px; border-radius:6px; background:var(--dd-red, #e50914); }
.thm-prev.aurora{ background:radial-gradient(90% 80% at 30% 0%, var(--nl-acc,#8a2a6a), transparent 60%), radial-gradient(80% 70% at 90% 30%, #2a4a9a, transparent 60%), #0a0a0e; }
.thm-prev.aurora::before{ content:""; position:absolute; left:10px; right:10px; top:10px; height:34px; border-radius:16px; background:rgba(255,255,255,.12); }
.thm-prev.aurora::after{ content:""; position:absolute; left:10px; bottom:12px; width:46%; height:16px; border-radius:999px; background:var(--nl-tone,#ffd9dc); }
.thm-card b{ font-size:14px; } .thm-card small{ color:var(--text-muted); font-size:11.5px; line-height:1.3; }
/* Aurora: scelta dell'area ("Dove vuoi andare?") — foglio in vetro che galleggia, tessere morbide, area attuale con spunta */
html.newlook .ar-veil{ background:rgba(0,0,0,.45); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); }
html.newlook .ar-overlay:not(.dd) .ar-sheet{ left:8px; right:8px; bottom:8px; border-radius:34px; border:1px solid rgba(255,255,255,.1);
  background:rgba(22,23,30,.82); -webkit-backdrop-filter:blur(24px) saturate(1.4); backdrop-filter:blur(24px) saturate(1.4);
  transition:transform .55s var(--nl-spring); }
html.newlook .ar-overlay.dd .ar-sheet{ border-radius:28px; background:rgba(22,23,30,.88); -webkit-backdrop-filter:blur(24px); backdrop-filter:blur(24px); }
html.newlook .ar-card{ border-radius:26px; transition:transform .45s var(--nl-spring), border-radius .5s var(--nl-spring); }
html.newlook .ar-card:active{ transform:scale(.95); border-radius:34px; }
html.newlook .ar-card.cur{ outline:none; box-shadow:inset 0 0 0 2px rgba(255,255,255,.55); }
html.newlook .ar-card.cur::after{ content:"✓"; position:absolute; top:10px; right:12px; width:24px; height:24px; border-radius:50%; background:#fff; color:#000; font-size:13px; font-weight:800; display:grid; place-items:center; }
html.newlook .ar-ic{ border-radius:14px; }
html.newlook .ar-more{ border:none; border-radius:999px; background:rgba(255,255,255,.1); color:#fff; padding:13px; transition:border-radius .5s var(--nl-spring), transform .45s var(--nl-spring); }
html.newlook .ar-more:active{ border-radius:16px; transform:scale(.97); }
/* ════ Aurora: finestre, pannelli, avvisi ════
   Stesso trattamento ovunque: vetro scuro sfocato, angoli grandi, entrata a molla, pulsanti a pillola, scelte tonali. */
html.newlook .ap-card, html.newlook .ob-card, html.newlook .fz-card, html.newlook .rc-card, html.newlook .vf-card,
html.newlook .stream-picker-modal, html.newlook .streamed-feed-modal, html.newlook .book-detail-modal, html.newlook .tn-panel{
  border-radius:30px !important; border:1px solid rgba(255,255,255,.09) !important;
  background:rgba(22,23,30,.86) !important; -webkit-backdrop-filter:blur(24px) saturate(1.4); backdrop-filter:blur(24px) saturate(1.4);
  animation:nlPop .55s var(--nl-spring) both; }
@keyframes nlPop{ from{ opacity:0; transform:translateY(26px) scale(.96); } to{ opacity:1; transform:none; } }
html.newlook .ap-welcome, html.newlook .ob-overlay, html.newlook .fz-overlay, html.newlook .rc-overlay, html.newlook .vf-overlay,
html.newlook .stream-picker-overlay, html.newlook .streamed-feed-modal-overlay, html.newlook .modal-overlay, html.newlook .po-sheet-overlay{
  -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); }
/* Scelte dentro le finestre (Come vuoi guardare, primo avvio, Stasera...) */
html.newlook .ap-opt, html.newlook .ob-opt, html.newlook .tn-opt, html.newlook .vf-chip{ border:none !important; border-radius:22px !important; background:rgba(255,255,255,.07) !important;
  transition:transform .45s var(--nl-spring), border-radius .5s var(--nl-spring), background .3s; }
html.newlook .ap-opt:active, html.newlook .ob-opt:active, html.newlook .tn-opt:active{ transform:scale(.97); border-radius:30px !important; }
html.newlook .ap-opt.on, html.newlook .ob-opt.on, html.newlook .ob-opt.sel, html.newlook .tn-opt.on, html.newlook .vf-chip.on{ background:var(--nl-tone) !important; color:var(--nl-on) !important; }
html.newlook .ob-input, html.newlook .field, html.newlook input.settings-select, html.newlook select.settings-select{ border-radius:999px; border-color:transparent; background:rgba(255,255,255,.08); }
html.newlook .ob-next, html.newlook .fz-btn, html.newlook .rc-go, html.newlook .rc-skip, html.newlook .sv-go{ border-radius:27px; transition:border-radius .5s var(--nl-spring), transform .45s var(--nl-spring); }
html.newlook .ob-next:active, html.newlook .fz-btn:active, html.newlook .rc-go:active, html.newlook .rc-skip:active, html.newlook .sv-go:active{ border-radius:14px; transform:scale(.96); }
html.newlook .fz-stats, html.newlook .wrp-recap-grid .cell{ border-color:transparent; border-radius:20px; background:rgba(255,255,255,.06); }
html.newlook .fz-rec, html.newlook .vf-pi{ border-radius:18px; }
/* Menu, avvisi, mini-player */
html.newlook .hd-menu{ border-radius:22px; border-color:rgba(255,255,255,.09); background:rgba(22,23,30,.9); -webkit-backdrop-filter:blur(20px); backdrop-filter:blur(20px); animation:nlPop .45s var(--nl-spring) both; }
html.newlook .hd-menu button, html.newlook .hd-menu a{ border-radius:14px; }
html.newlook .po-toast, html.newlook .hd-toast{ border-radius:999px !important; background:#f4f4f7 !important; color:#111 !important; border:none !important; box-shadow:0 12px 30px rgba(0,0,0,.45); }
/* Avviso di aggiornamento: ha titolo e testo propri (bianchi), quindi resta scuro, in vetro */
html.newlook .update-toast{ border-radius:28px !important; background:rgba(22,23,30,.92) !important; border:1px solid rgba(255,255,255,.1) !important; -webkit-backdrop-filter:blur(20px); backdrop-filter:blur(20px); box-shadow:0 12px 30px rgba(0,0,0,.45); }
html.newlook .po-toast.show{ transition:transform .55s var(--nl-spring), opacity .3s; }
html.newlook .debrid-alert, html.newlook .th-card{ border-radius:26px; border-color:rgba(255,255,255,.09); background:rgba(22,23,30,.88); -webkit-backdrop-filter:blur(20px); backdrop-filter:blur(20px); }
html.newlook .mini-player{ border-radius:24px; overflow:hidden; background:rgba(22,23,30,.82); -webkit-backdrop-filter:blur(20px) saturate(1.4); backdrop-filter:blur(20px) saturate(1.4); border:1px solid rgba(255,255,255,.08); }
html.newlook .mini-player .art-sq{ border-radius:14px; }
/* Storie: pulsante e barre */
html.newlook .sv-x{ background:rgba(255,255,255,.16); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); }
/* Assistente (AI): bolle e barra */
html.newlook .ai-bubble{ border-radius:22px; }
html.newlook .ai-chat-inputbar{ background:rgba(20,21,27,.72); -webkit-backdrop-filter:blur(20px); backdrop-filter:blur(20px); }
html.newlook .ai-hub-pill{ border:none; border-radius:999px; background:rgba(255,255,255,.08); }
@media (prefers-reduced-motion:reduce){ html.newlook *{ animation:none !important; } }
/* Aurora: ricerca, assistente, Impara, benvenuto Autopilot */
html.newlook .search-input-big{ border-radius:999px !important; border:none !important; background:rgba(255,255,255,.09) !important; box-shadow:none !important; padding-left:22px !important; }
html.newlook .search-input-big:focus{ box-shadow:0 0 0 2px var(--nl-tone) !important; }
html.newlook .ai-chat-suggestion, html.newlook .ai-chat-suggestions button, html.newlook .ai-suggest-btn{ border:none !important; border-radius:22px !important; background:rgba(255,255,255,.07) !important;
  transition:transform .45s var(--nl-spring), border-radius .5s var(--nl-spring); }
html.newlook .ai-chat-suggestions button:active{ transform:scale(.97); border-radius:30px !important; }
html.newlook .ln-mode{ border:none !important; border-radius:24px !important; background:rgba(255,255,255,.06) !important; transition:transform .45s var(--nl-spring), border-radius .5s var(--nl-spring); }
html.newlook .ln-mode.on{ background:var(--nl-tone) !important; color:var(--nl-on) !important; }
html.newlook .ln-mode.on small{ color:#7a2a30 !important; }
html.newlook .ln-review, html.newlook .ln-week, html.newlook .ln-goal{ border:none !important; border-radius:24px !important; background:rgba(255,255,255,.06) !important; }
html.newlook .ap-opt.on{ outline:none; }
html.newlook .ap-opt.on em, html.newlook .ap-opt.on .ap-rec, html.newlook .ap-opt.on i{ color:#14532d !important; }
html.newlook .docu-search input, html.newlook .yt-search-input-wrap input{ border-radius:999px !important; }
html.newlook .ai-suggestion-chip{ border:none !important; border-radius:22px !important; background:rgba(255,255,255,.07) !important; transition:transform .45s var(--nl-spring), border-radius .5s var(--nl-spring); }
html.newlook .ai-suggestion-chip:active{ transform:scale(.97); border-radius:30px !important; }
html.newlook .ap-opt.on span{ color:#6b2a30 !important; }
/* ════ Aurora: lettore musica a schermo intero ════
   Lo sfondo prende i colori della copertina (era quasi nero), copertina grande con angoli ampi che "respira" quando
   suona, barra di avanzamento spessa e chiara, Play a pillola che cambia forma, strumenti a pillola. */
html.newlook .player-overlay:has(#poMusicTools:not([hidden])) .po-stage{ background:transparent; }
html.newlook .player-overlay:has(#poMusicTools:not([hidden])){ background:#08080b; }
html.newlook .player-overlay:has(#poMusicTools:not([hidden])) .po-ambient-glow{ opacity:.85; filter:blur(70px) saturate(1.8) brightness(1.1); inset:-120px; }
html.newlook .player-overlay:has(#poMusicTools:not([hidden]))::before{ content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(180deg, rgba(8,8,11,.25) 0%, rgba(8,8,11,.1) 40%, rgba(8,8,11,.75) 78%, rgba(8,8,11,.92) 100%); }
html.newlook .player-overlay:has(#poMusicTools:not([hidden])) .po-topbar,
html.newlook .player-overlay:has(#poMusicTools:not([hidden])) .po-bottom{ position:relative; z-index:3; background:transparent; }
html.newlook .po-square-art{ border-radius:30px; box-shadow:0 40px 80px rgba(0,0,0,.55); transition:transform .8s var(--nl-spring), border-radius .6s var(--nl-spring); }
html.newlook .po-vinyl-wrap .po-square-art{ height:min(46vh, 360px, calc(100% - 24px)); }
html.newlook .player-overlay:has(.po-eq-bars.playing) .po-square-art{ transform:scale(1.02); }
html.newlook .player-overlay:has(#poMusicTools:not([hidden])) .po-seek .bar{ height:8px; border-radius:8px; background:rgba(255,255,255,.22); }
html.newlook .player-overlay:has(#poMusicTools:not([hidden])) .po-seek .bar > span{ border-radius:8px; background:#fff; }
html.newlook .player-overlay:has(#poMusicTools:not([hidden])) .po-controls .main{ background:var(--nl-tone); color:var(--nl-on); width:76px; height:76px; border-radius:28px; }
html.newlook .player-overlay:has(#poMusicTools:not([hidden])) .po-controls .main:hover{ border-radius:38px; }
html.newlook .po-tool-btn{ border:none !important; border-radius:999px !important; background:rgba(255,255,255,.12) !important; transition:border-radius .5s var(--nl-spring), transform .45s var(--nl-spring); }
html.newlook .po-tool-btn:active{ border-radius:14px !important; transform:scale(.94); }
html.newlook .po-sub-ctrl{ border-radius:999px; background:rgba(255,255,255,.1); transition:border-radius .5s var(--nl-spring), transform .45s var(--nl-spring); }
html.newlook .po-sub-ctrl.on{ background:var(--nl-tone); color:var(--nl-on); }
html.newlook .po-eq-bars span{ background:#fff; }
html.newlook .po-vol-slider{ accent-color:#fff; }
/* Mini-player: Play tonale e barra chiara */
html.newlook .mini-player .mp-progress > span{ background:#fff; }
html.newlook #mpPlayBtn{ background:var(--nl-tone) !important; color:var(--nl-on) !important; box-shadow:none; border-radius:14px; transition:border-radius .5s var(--nl-spring); } html.newlook #mpPlayBtn:active{ border-radius:20px; }
/* ════ Aurora: "Il tuo anno" (solo dicembre/gennaio) ════ */
html.newlook .wrp-banner{ border:none; border-radius:28px; padding:20px 22px; animation:none;
  background:radial-gradient(120% 140% at 0% 0%, color-mix(in srgb, var(--dd-red, #e50914) 55%, transparent), transparent 55%), radial-gradient(120% 140% at 100% 100%, rgba(108,99,255,.5), transparent 55%), rgba(255,255,255,.05);
  transition:transform .45s var(--nl-spring), border-radius .5s var(--nl-spring); }
html.newlook .wrp-banner:active{ transform:scale(.98); border-radius:36px; }
html.newlook .wrp-banner .tag{ display:inline-block; font-family:inherit; letter-spacing:.04em; color:var(--nl-on); background:var(--nl-tone); padding:4px 10px; border-radius:999px; }
html.newlook .wrp-banner .go{ width:40px; height:40px; border-radius:20px; background:rgba(255,255,255,.16); display:grid; place-items:center; opacity:1; }
html.newlook .wrp-share-btn{ border-radius:999px !important; transition:border-radius .5s var(--nl-spring), transform .45s var(--nl-spring); }
html.newlook .wrp-share-btn:active{ border-radius:16px !important; transform:scale(.96); }
html.newlook .wrp-close-btn, html.newlook .wrp-navbtn{ border-radius:999px !important; background:rgba(255,255,255,.14) !important; -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); border:none !important; }
html.newlook .wrp-progress .seg{ height:4px; border-radius:4px; }

/* ════ Aurora: player video ════ Controlli in vetro su sfumature morbide, titolo piu' grande, barra spessa e chiara. */
html.newlook .player-overlay .po-topbar{ background:linear-gradient(180deg, rgba(0,0,0,.65), transparent) !important; }
html.newlook .player-overlay .po-bottom{ background:linear-gradient(0deg, rgba(0,0,0,.8), transparent) !important; }
html.newlook .player-overlay .po-topbar .t{ font-size:17px; font-weight:800; }
html.newlook .player-overlay .po-icon-btn{ width:44px; height:44px; border-radius:22px; background:rgba(255,255,255,.14); -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px); border:none; }
html.newlook .player-overlay .po-seek .bar{ height:7px; border-radius:7px; background:rgba(255,255,255,.22); transition:height .2s; }
html.newlook .player-overlay .po-seek .bar:hover{ height:10px; }
html.newlook .player-overlay .po-seek .bar > span{ border-radius:7px; background:#fff; }
html.newlook .player-overlay .po-controls button.side{ width:52px; height:52px; border-radius:26px; -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px); }
html.newlook .player-overlay .po-sheet-card{ background:rgba(22,23,30,.9) !important; -webkit-backdrop-filter:blur(24px); backdrop-filter:blur(24px); border:1px solid rgba(255,255,255,.08); }
html.newlook .player-overlay .po-tool-btn{ white-space:nowrap; }
html.newlook .po-notice-pill, html.newlook .po-stability-pill{ border-radius:999px; -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px); }

/* ════ Aurora: lettore manga ════ */
html.newlook .manga-reader-header, html.newlook .manga-reader-bottom-bar{ background:rgba(14,14,18,.72) !important; -webkit-backdrop-filter:blur(20px) saturate(1.4); backdrop-filter:blur(20px) saturate(1.4); border-color:rgba(255,255,255,.06) !important; }
html.newlook .manga-reader-back, html.newlook .manga-reader-close, html.newlook .manga-tool-btn, html.newlook .manga-nav-btn{ border:none !important; border-radius:999px !important; background:rgba(255,255,255,.1) !important;
  transition:border-radius .5s var(--nl-spring), transform .45s var(--nl-spring); }
html.newlook .manga-reader-back:active, html.newlook .manga-tool-btn:active, html.newlook .manga-nav-btn:active{ border-radius:14px !important; transform:scale(.94); }
html.newlook .manga-reader-header .manga-lang-switch{ border:none !important; border-radius:999px !important; background:rgba(255,255,255,.08) !important; padding:3px !important; margin:0 !important; }
html.newlook .manga-lang-btn{ border-radius:999px !important; }
html.newlook .manga-lang-btn.active{ background:var(--nl-tone) !important; color:var(--nl-on) !important; box-shadow:none !important; }
html.newlook .manga-reader-chapter{ color:#d0d1d9 !important; }
html.newlook .manga-page-slider{ accent-color:#fff; }
html.newlook .manga-settings-popover{ border-radius:28px !important; border:1px solid rgba(255,255,255,.09) !important; background:rgba(22,23,30,.9) !important; -webkit-backdrop-filter:blur(24px); backdrop-filter:blur(24px); animation:nlPop .5s var(--nl-spring) both; }
html.newlook .manga-theme-btn, html.newlook .manga-mode-pill{ border:none !important; border-radius:999px !important; background:rgba(255,255,255,.08) !important; color:#e4e4ea !important; }
html.newlook .manga-theme-btn.active, html.newlook .manga-mode-pill.active{ background:var(--nl-tone) !important; color:var(--nl-on) !important; box-shadow:none !important; }

/* ════ Aurora: lettore libri ════ La barra in alto sul telefono andava fuori schermo (titolo nascosto): titolo sopra,
   comandi sotto in una fila che scorre; pulsanti a pillola in vetro. */
html.newlook #ebookReaderModal #ebrTopbar{ height:auto !important; flex-wrap:wrap; padding:10px 14px !important; row-gap:8px; border-bottom-color:rgba(255,255,255,.06) !important;
  background:rgba(14,14,18,.72); -webkit-backdrop-filter:blur(20px); backdrop-filter:blur(20px); }
html.newlook #ebookReaderModal #ebrTopbar > div:last-child{ overflow-x:auto; scrollbar-width:none; max-width:100%; }
html.newlook #ebookReaderModal #ebrTopbar > div:last-child::-webkit-scrollbar{ display:none; }
@media (max-width:900px){ html.newlook #ebookReaderModal #ebrTopbar > div:first-child{ width:100%; } html.newlook #ebookReaderModal .hide-mobile{ display:none !important; } }
html.newlook #ebookReaderModal .ebr-btn-ctrl, html.newlook #ebookReaderModal #ebrTopbar > div:last-child > button, html.newlook #ebookReaderModal #ebrTopbar > div:last-child > div{
  border-radius:999px !important; border:none !important; background-color:rgba(255,255,255,.1) !important; flex:none; }
html.newlook #ebookReaderModal .ebr-btn-ctrl{ padding:7px 13px !important; }
html.newlook #ebookReaderModal .ebr-dropdown{ border-radius:22px !important; border:1px solid rgba(255,255,255,.09) !important; background:rgba(22,23,30,.94) !important; -webkit-backdrop-filter:blur(24px); backdrop-filter:blur(24px); }
html.newlook #ebookReaderModal .ebr-dropdown button{ border-radius:999px !important; }
html.newlook #ebookReaderModal #ebrProgressbarStrip{ overflow-x:auto; justify-content:flex-start !important; scrollbar-width:none; border-bottom-color:rgba(255,255,255,.05) !important; }
html.newlook #ebookReaderModal .ebr-prog-pill{ flex:none; white-space:nowrap; border:none !important; background:rgba(255,255,255,.08) !important; color:#e4e4ea !important; padding:5px 12px !important; }
html.newlook #ebrTopProgressLine{ background:#fff !important; height:3px !important; border-radius:0 3px 3px 0; }
/* Lettore libri, tutti i temi: sul telefono la barra in alto andava fuori schermo e nascondeva il titolo. Titolo sopra,
   comandi sotto in una fila che scorre; la fila dell'avanzamento scorre invece di uscire dallo schermo. */
@media (max-width:900px){
  #ebookReaderModal #ebrTopbar{ height:auto !important; flex-wrap:wrap; padding:10px 14px !important; row-gap:8px; }
  #ebookReaderModal #ebrTopbar > div:first-child{ width:100%; }
  #ebookReaderModal #ebrTopbar > div:last-child{ overflow-x:auto; scrollbar-width:none; max-width:100%; }
  #ebookReaderModal #ebrTopbar > div:last-child::-webkit-scrollbar{ display:none; }
  #ebookReaderModal #ebrTopbar > div:last-child > *{ flex:none; }
  #ebookReaderModal .hide-mobile{ display:none !important; }
  #ebookReaderModal #ebrProgressbarStrip{ overflow-x:auto; justify-content:flex-start !important; scrollbar-width:none; }
  #ebookReaderModal .ebr-prog-pill{ flex:none; white-space:nowrap; }
}
/* Aurora desktop: stessi dettagli del telefono */
html.newlook .d-hubs{ background:rgba(20,21,27,.6); -webkit-backdrop-filter:blur(18px); backdrop-filter:blur(18px); border:1px solid rgba(255,255,255,.08); }
html.newlook .d-hubs button{ transition:background .3s, color .3s, border-radius .5s var(--nl-spring); }
html.newlook .d-hubs button.active{ background:var(--nl-tone); color:var(--nl-on); border-radius:16px; }
html.newlook .cal-row, html.newlook .cal-generic-row{ border:none !important; border-radius:22px !important; background:rgba(255,255,255,.06) !important; transition:transform .45s var(--nl-spring), border-radius .5s var(--nl-spring); }
html.newlook .cal-row:active, html.newlook .cal-generic-row:active{ transform:scale(.99); border-radius:30px !important; }
html.newlook .cal-thumb{ border-radius:14px; }
html.newlook .ar-overlay.dd .ar-more{ text-align:center; }
html.newlook .ex-tile{ min-height:120px; }
@media (min-width:901px){ html.newlook .ex-grid{ grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)) !important; } }
/* Aurora: ultimi riquadri con il bordo (visti su desktop, valgono anche sul telefono) */
html.newlook .settings-card{ border:none !important; border-radius:26px !important; background:rgba(255,255,255,.05) !important; }
html.newlook .set-search{ border-radius:999px !important; border-color:transparent !important; background:rgba(255,255,255,.08) !important; } html.newlook .set-search input{ background:transparent !important; border:none !important; }
html.newlook .live-card{ border:none !important; border-radius:24px !important; background:rgba(255,255,255,.06) !important; transition:transform .45s var(--nl-spring), border-radius .5s var(--nl-spring); }
html.newlook .live-card:active{ transform:scale(.97); border-radius:32px !important; }
html.newlook .ln-stat{ border:none !important; border-radius:24px !important; background:rgba(255,255,255,.06) !important; }
html.newlook .cat2-side{ border:none !important; border-radius:28px !important; background:rgba(255,255,255,.05) !important; }
html.newlook .match-card{ border:none !important; border-radius:24px !important; background:rgba(255,255,255,.06) !important; box-shadow:none !important; transition:transform .45s var(--nl-spring), border-radius .5s var(--nl-spring); }
html.newlook .match-card:active{ transform:scale(.97); border-radius:32px !important; }
html.newlook .match-card .badge{ border-radius:999px; }
html.newlook .match-card.live-now{ border:none !important; box-shadow:inset 0 0 0 1.5px color-mix(in srgb, #e50914 45%, transparent) !important; background:color-mix(in srgb, #e50914 8%, transparent) !important; }
/* Telefono: niente menu di sistema e selezione del testo tenendo premuta una copertina (si apre "Non mostrare più") */
@media (hover:none){ .card .art{ -webkit-touch-callout:none; -webkit-user-select:none; user-select:none; } }

/* ════ Aurora: funzioni solo desktop / solo telefono ════ */
/* Multivision (desktop) */
html.newlook .mv-btn, html.newlook .mv-feed-btn, html.newlook .mv-picker-item-btn{ border-radius:999px !important; border:none !important; transition:border-radius .5s var(--nl-spring), transform .45s var(--nl-spring); }
html.newlook .mv-btn:active, html.newlook .mv-feed-btn:active{ border-radius:14px !important; transform:scale(.95); }
html.newlook .mv-grid > *{ border-radius:22px !important; overflow:hidden; }
html.newlook .mv-badge, html.newlook .mv-feed-badge{ border-radius:999px !important; }
html.newlook .mv-picker-modal{ border-radius:30px !important; border:1px solid rgba(255,255,255,.09) !important; background:rgba(22,23,30,.9) !important; -webkit-backdrop-filter:blur(24px); backdrop-filter:blur(24px); animation:nlPop .55s var(--nl-spring) both; }
html.newlook .mv-picker-overlay{ -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); }
html.newlook .mv-picker-search, html.newlook .mv-picker-search input{ border-radius:999px !important; border-color:transparent !important; background:rgba(255,255,255,.08) !important; }
html.newlook .mv-picker-item-logo{ border-radius:14px !important; }
html.newlook .live-mv-btn, html.newlook [onclick*="Multivision"]{ border-radius:999px !important; }
/* "…" sulla copertina (desktop) */
html.newlook .hd-dots{ width:32px; height:32px; line-height:28px; background:rgba(255,255,255,.18); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); }
/* Salvaschermo */
html.newlook .ss-clk{ font-weight:800; letter-spacing:-.02em; }
html.newlook .ss-why{ display:inline-block; border-radius:999px; padding:5px 13px; background:rgba(255,255,255,.14); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); }
html.newlook .ss-dots i{ height:4px; border-radius:4px; }
html.newlook .ss-hint kbd{ border:none; border-radius:999px; background:rgba(255,255,255,.18); padding:2px 10px; }
/* Storie sopra la copertina (desktop) e riga sotto (telefono) */
html.newlook .st-c img, html.newlook .st-c{ transition:transform .45s var(--nl-spring); }
html.newlook .st-c:active{ transform:scale(.92); }
html.newlook .st-lbl{ border-radius:999px; }
/* Trasmetti alla TV (telefono) */
html.newlook .cast-btn, html.newlook #poCastBtn{ border-radius:22px !important; background:rgba(255,255,255,.14) !important; }
html.newlook .cw-card{ border-radius:30px !important; border:1px solid rgba(255,255,255,.09) !important; background:rgba(22,23,30,.88) !important; -webkit-backdrop-filter:blur(24px); backdrop-filter:blur(24px); }
html.newlook .cw-ctl button, html.newlook .cw-stop{ border-radius:999px !important; border:none !important; transition:border-radius .5s var(--nl-spring), transform .45s var(--nl-spring); }
html.newlook .cw-ctl button:active, html.newlook .cw-stop:active{ border-radius:14px !important; transform:scale(.94); }
html.newlook .mv-topbar{ background:rgba(14,14,18,.72) !important; -webkit-backdrop-filter:blur(20px); backdrop-filter:blur(20px); border-color:rgba(255,255,255,.06) !important; }
html.newlook .mv-btn.active, html.newlook .mv-btn.on, html.newlook .mv-picker-tab.active, html.newlook .mv-picker-tab.on{ background:var(--nl-tone) !important; color:var(--nl-on) !important; box-shadow:none !important; }
html.newlook .mv-picker-tab{ border:none !important; border-radius:999px !important; }
html.newlook .mv-slot{ border:none !important; border-radius:26px !important; background:rgba(255,255,255,.05) !important; overflow:hidden; }
html.newlook .mv-slot-empty-icon{ border-style:solid !important; border-color:rgba(255,255,255,.15) !important; background:rgba(255,255,255,.06); transition:transform .45s var(--nl-spring); }
html.newlook .mv-slot-empty:hover .mv-slot-empty-icon{ transform:scale(1.08); }
html.newlook .mv-slot-action-btn{ border-radius:999px !important; background:rgba(255,255,255,.16) !important; -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); border:none !important; }
html.newlook .mv-picker-item{ border:none !important; border-radius:20px !important; background:rgba(255,255,255,.05) !important; }
html.newlook .mv-feed-card{ border:none !important; border-radius:20px !important; background:rgba(255,255,255,.06) !important; }

/* Sfondo ambient: leggero e solo in alto, sotto la barra (prima colorava tutte le pagine) */
html.newlook body::before{ inset:-10% -10% auto -10%; height:70vh; -webkit-mask-image:linear-gradient(#000 30%, transparent); mask-image:linear-gradient(#000 30%, transparent); }
/* ════ Aurora: parti del player solo per Live e solo per YouTube, e menu qualità/sottotitoli (YouTube e film) ════ */
html.newlook .player-overlay .live-dot{ border-radius:999px; padding:4px 11px; background:color-mix(in srgb, #e50914 85%, transparent); color:#fff; }
html.newlook .player-overlay .live-dot::before{ background:#fff; animation:nlLiveDot 1.4s ease-in-out infinite; }
@keyframes nlLiveDot{ 50%{ opacity:.35; } }
html.newlook .po-live-strip{ gap:10px; }
html.newlook .po-live-strip .lc{ width:112px; border-radius:16px; border:none; box-shadow:inset 0 0 0 1px rgba(255,255,255,.1);
  transition:transform .45s var(--nl-spring), border-radius .5s var(--nl-spring), box-shadow .3s; }
html.newlook .po-live-strip .lc:active{ transform:scale(.94); border-radius:22px; }
html.newlook .po-live-strip .lc.active{ box-shadow:inset 0 0 0 2px var(--nl-tone); }
html.newlook .po-track-menu{ border-radius:22px; border:1px solid rgba(255,255,255,.09); background:rgba(22,23,30,.92); -webkit-backdrop-filter:blur(24px); backdrop-filter:blur(24px); padding:8px; animation:nlPop .45s var(--nl-spring) both; }
html.newlook .po-track-menu button{ border-radius:999px; padding:9px 14px; }
html.newlook .po-track-menu button.active{ background:var(--nl-tone); color:var(--nl-on); }
html.newlook .po-chapter-name{ border-radius:999px; }
html.newlook .po-yt-save.saved{ color:var(--nl-tone); }
html.newlook .po-yt-save.saved svg{ fill:var(--nl-tone); stroke:var(--nl-tone); }
html.newlook .po-yt-frame{ border-radius:0; }
/* Aurora: schermata di avvio/errore del player (Live, film, YouTube) */
html.newlook .cio-badge{ border:none !important; border-radius:999px !important; padding:5px 13px !important; }
html.newlook .cio-channel-logo{ border-radius:34px !important; border:none !important; background:rgba(255,255,255,.08) !important; -webkit-backdrop-filter:blur(16px); backdrop-filter:blur(16px); }
html.newlook .cio-close-btn, html.newlook .cio-dismiss-btn{ border:none !important; border-radius:999px !important; background:rgba(255,255,255,.14) !important; -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); transition:border-radius .5s var(--nl-spring), transform .45s var(--nl-spring); }
html.newlook .cio-close-btn:active, html.newlook .cio-dismiss-btn:active{ border-radius:14px !important; transform:scale(.94); }
html.newlook .cio-cd-dot{ border-radius:999px !important; }
html.newlook .cio-cd-dot.active{ background:var(--nl-tone) !important; color:var(--nl-on) !important; box-shadow:none !important; }
html.newlook .cio-error-box, html.newlook .cio-notice{ border:none !important; border-radius:22px !important; background:rgba(255,255,255,.06) !important; }
html.newlook .cio-laser-track{ border-radius:999px; overflow:hidden; }

/* Aurora · Modalità Lite: categorie e pulsanti a pillola, Play bianco come nella scheda titolo, copertine più morbide,
   accenti rosa al posto del rosso, frecce in vetro senza bordo, rimbalzo alla pressione. */
html.newlook .lite-cat{ border-color:transparent; background:rgba(255,255,255,.14); transition:background .3s, color .3s, transform .45s var(--nl-spring); }
html.newlook .lite-cat.on{ background:var(--nl-tone); color:var(--nl-on); border-color:transparent; }
html.newlook .lite-cat:active, html.newlook .lite-btn:active, html.newlook .lite-arrow:active{ transform:scale(.92); }
html.newlook .lite-card{ border-radius:22px; }
html.newlook .lite-ribbon{ background:var(--nl-acc,#e0607a); border-radius:99px; padding:3px 9px; }
html.newlook .lite-pg i{ background:#fff; }
html.newlook .lite-btn{ border-radius:99px; padding:12px 20px; background:rgba(255,255,255,.14); transition:transform .45s var(--nl-spring), filter .2s; }
html.newlook .lite-btn.p{ background:#fff; color:#0b0b10; }
html.newlook .lite-arrow{ border:0; background:rgba(255,255,255,.14); }
html.newlook .lite-dots i.on{ background:var(--nl-tone); }

/* Aurora: scelta del colore in Impostazioni (sotto Classico/Aurora) */
.thm-colors{ margin-top:14px; padding-top:12px; border-top:1px solid rgba(255,255,255,.07); }
.thm-dots{ display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:6px; margin-top:10px; max-width:420px; }
.thm-dot{ appearance:none; border:0; background:none; color:var(--text-muted,#9a9ca3); font:inherit; font-size:11px; display:flex; flex-direction:column; align-items:center; gap:5px; min-width:0; cursor:pointer; padding:0; }
.thm-dot i{ width:38px; height:38px; border-radius:50%; display:grid; place-items:center; font-style:normal; font-weight:800; font-size:15px; transition:transform .45s var(--nl-spring,ease); }
.thm-dot:active i{ transform:scale(.9); }
.thm-dot.on{ color:#fff; font-weight:700; }
.thm-dot.on i{ outline:3px solid #fff; outline-offset:3px; }
.thm-dot:focus-visible i{ outline:3px solid #fff; outline-offset:3px; }

/* ═══ Tema speciale Aurora · "Notte degli Spiriti" (html.newlook.nl-spiriti) ═══
   Inchiostro e luna: scena dietro le schermate, titoli a pennello, pulsanti e schede a pennellata, card con l'angolo
   tagliato, accento arancio fuoco. Solo aspetto: layout e funzioni restano quelli di Aurora. Carattere: Permanent Marker
   (licenza Apache 2.0). Scena e forme disegnate da zero, nessun elemento di opere esistenti. */
@font-face{ font-family:'NlBrush'; src:url('/app/themes/brush.woff2') format('woff2'); font-display:swap; }
html.newlook.nl-spiriti body{ background:#060607; }
html.newlook.nl-spiriti body::before{ background:url('/app/themes/spiriti.svg') right 0 top calc(env(safe-area-inset-top, 0px) + 62px)/auto 25vh no-repeat #060607; filter:none; opacity:1; inset:0 0 auto 0; height:40vh; }
html.newlook.nl-spiriti body::after{ background:linear-gradient(180deg, rgba(6,6,7,.15), rgba(6,6,7,.55) 45%, #060607 80%); }
/* titoli a pennello */
html.newlook.nl-spiriti .row h3, html.newlook.nl-spiriti .yt-header h2, html.newlook.nl-spiriti .bb-title,
html.newlook.nl-spiriti .d-hero.detail-hero h1, html.newlook.nl-spiriti .m-hero.detail-hero h1{ font-family:'NlBrush', 'Outfit', sans-serif; font-weight:400; letter-spacing:.01em; }
html.newlook.nl-spiriti .bb-title, html.newlook.nl-spiriti .detail-hero h1{ transform:rotate(-1.5deg); transform-origin:left; }
html.newlook.nl-spiriti .d-logo .accent, html.newlook.nl-spiriti .m-logo .accent, html.newlook.nl-spiriti .d-logo span, html.newlook.nl-spiriti .m-logo span{ color:#ff5a1f; }
/* pulsante principale: pennellata bianca */
html.newlook.nl-spiriti .bb-btn.primary, html.newlook.nl-spiriti .detail-primary-btn, html.newlook.nl-spiriti .play-btn{
  background:#fff; color:#000; border-radius:0; font-family:'NlBrush', 'Outfit', sans-serif; font-weight:400; letter-spacing:.02em;
  clip-path:polygon(1% 16%, 7% 2%, 100% 0, 97% 80%, 92% 100%, 0 96%); }
/* schede e chip selezionati: pennellata */
html.newlook.nl-spiriti .d-hubs button.active, html.newlook.nl-spiriti .cat-chip.active{
  background:#fff; color:#000; border-radius:0; clip-path:polygon(3% 12%, 98% 0, 100% 85%, 1% 100%); font-family:'NlBrush', 'Outfit', sans-serif; font-weight:400; }
html.newlook.nl-spiriti .d-hubs{ background:rgba(0,0,0,.55); border-color:rgba(255,255,255,.12); }
/* barra in basso: nera con riga bianca, scheda attiva arancio a pennellata */
html.newlook.nl-spiriti .m-tabbar{ background:rgba(0,0,0,.92); border-color:transparent; border-top:2px solid #fff; }
html.newlook.nl-spiriti .m-tab.active{ background:#ff5a1f; color:#000; border-radius:0; clip-path:polygon(5% 10%, 100% 0, 95% 90%, 0 100%); }
/* card: angolo tagliato, avanzamento a fendente */
html.newlook.nl-spiriti .card .art{ border-radius:0; clip-path:polygon(0 0, 88% 0, 100% 16%, 100% 100%, 0 100%); }
html.newlook.nl-spiriti .card .progress{ border-radius:0; transform:skewX(-30deg); }
html.newlook.nl-spiriti .card .progress > *{ background:#ff5a1f; }
html.newlook.nl-spiriti .cw-card{ border-radius:0 !important; clip-path:polygon(0 0, 92% 0, 100% 10%, 100% 100%, 0 100%); }
/* Impostazioni: scelta dei temi speciali (sotto i colori) */
.thm-specials{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:10px; max-width:420px; }
.thm-special{ appearance:none; border:2px solid transparent; background:rgba(255,255,255,.05); color:#fff; font:inherit; text-align:left; padding:8px; border-radius:18px; cursor:pointer; display:flex; flex-direction:column; gap:2px; }
.thm-special.on{ border-color:#fff; }
.thm-special:focus-visible{ outline:3px solid #fff; outline-offset:2px; }
.thm-special b{ font-size:13px; margin-top:6px; } .thm-special small{ font-size:11px; color:var(--text-muted,#9a9ca3); }
.thm-sp-prev{ display:block; height:70px; border-radius:12px; background:#0c0c10 center/cover no-repeat; }
/* Barra in basso Aurora: l'icona della voce attiva prende il colore della scritta (prima l'accento: con alcuni colori
   e con "Notte degli Spiriti" spariva sullo sfondo della voce attiva). */
html.newlook .m-tabbar .m-tab.active .ic, html.newlook .m-tabbar .m-tab.active .ic svg{ color:inherit; }
html.newlook.nl-spiriti .m-tab.active{ color:#000; }
html.newlook.nl-spiriti .m-tabbar .m-tab:not(.active){ color:rgba(255,255,255,.78); }

/* ═══ Tema speciale Aurora · "Vento del Villaggio" (html.newlook.nl-villaggio) ═══
   Fumetto al tramonto: firma in alto a destra (sole, nuvole a spirale, colline) e il resto blu notte; titoli in
   stampatello da fumetto, contorni neri spessi e ombre piene, card come pergamene, accento arancio. Carattere: Bangers
   (licenza OFL). Disegni originali. Solo aspetto: layout e funzioni restano quelli di Aurora. */
@font-face{ font-family:'NlComic'; src:url('/app/themes/comic.woff2') format('woff2'); font-display:swap; }
html.newlook.nl-villaggio body{ background:#0b1430; }
html.newlook.nl-villaggio body::before{ background:url('/app/themes/villaggio.svg') right 0 top calc(env(safe-area-inset-top, 0px) + 62px)/auto 19vh no-repeat #0b1430; filter:none; opacity:1; inset:0 0 auto 0; height:40vh; }
html.newlook.nl-villaggio body::after{ background:none; }
html.newlook.nl-villaggio .row h3, html.newlook.nl-villaggio .yt-header h2, html.newlook.nl-villaggio .bb-title,
html.newlook.nl-villaggio .d-hero.detail-hero h1, html.newlook.nl-villaggio .m-hero.detail-hero h1{ font-family:'NlComic', 'Outfit', sans-serif; font-weight:400; letter-spacing:.04em; text-shadow:3px 3px 0 #000; }
html.newlook.nl-villaggio .d-logo span, html.newlook.nl-villaggio .m-logo span{ color:#ff8a1f; }
/* pulsante principale: arancio pieno a rilievo */
html.newlook.nl-villaggio .bb-btn.primary, html.newlook.nl-villaggio .detail-primary-btn, html.newlook.nl-villaggio .play-btn{
  background:#ff8a1f; color:#1a0c00; border:3px solid #000; border-radius:14px; box-shadow:4px 4px 0 #000;
  font-family:'NlComic', 'Outfit', sans-serif; font-weight:400; letter-spacing:.08em; }
/* schede e chip selezionati: rosa pesca con contorno e ombra */
html.newlook.nl-villaggio .d-hubs button.active, html.newlook.nl-villaggio .cat-chip.active{
  background:#ffd7a8; color:#3a1c00; border:2.5px solid #000; border-radius:12px; box-shadow:3px 3px 0 #000; }
html.newlook.nl-villaggio .d-hubs{ background:rgba(10,16,40,.75); border:2px solid #000; }
/* barra in basso */
html.newlook.nl-villaggio .m-tabbar{ background:#14204a; border:3px solid #000; box-shadow:4px 4px 0 #000; }
html.newlook.nl-villaggio .m-tabbar .m-tab:not(.active){ color:rgba(255,255,255,.8); }
html.newlook.nl-villaggio .m-tab.active{ background:#ff8a1f; color:#1a0c00; border:2px solid #000; border-radius:12px; }
/* card come pergamene: contorno nero, ombra piena, estremita' in legno */
html.newlook.nl-villaggio .card .art{ border-radius:12px; border:3px solid #000; box-shadow:4px 4px 0 #000; }
html.newlook.nl-villaggio .card .art.wide{ box-shadow:inset 9px 0 0 #c98a4a, inset -9px 0 0 #c98a4a, 4px 4px 0 #000; }
html.newlook.nl-villaggio .card .progress{ height:6px; border-radius:3px; background:rgba(0,0,0,.45); left:16px; right:16px; }
html.newlook.nl-villaggio .card .progress > *{ background:#ff8a1f; border-radius:3px; }
html.newlook.nl-villaggio .cw-card{ border:3px solid #000 !important; box-shadow:4px 4px 0 #000; border-radius:16px !important; }

/* Temi speciali: stesse forme su TUTTE le chip/schede e su tutti i pulsanti (prima solo Catalogo e pulsante principale).
   Lo sfondo parte sotto la barra in alto: prima la parte alta della firma restava coperta. */
html.newlook.nl-spiriti .cat-chip, html.newlook.nl-spiriti .cat2-chip, html.newlook.nl-spiriti .manga-chip, html.newlook.nl-spiriti .dc-chip, html.newlook.nl-spiriti .yt-chan-chip, html.newlook.nl-spiriti .src-tab, html.newlook.nl-spiriti .books-tab, html.newlook.nl-spiriti .mv-picker-tab, html.newlook.nl-spiriti .ai-suggestion-chip, html.newlook.nl-spiriti .t10-src-chip, html.newlook.nl-spiriti .vf-chip, html.newlook.nl-spiriti .lib-subtab, html.newlook.nl-spiriti .music-tab, html.newlook.nl-spiriti .ns-tab, html.newlook.nl-spiriti .lite-cat, html.newlook.nl-spiriti .ln-chip, html.newlook.nl-spiriti .cal-day-chip{ font-family:'NlBrush','Outfit',sans-serif; font-weight:400; letter-spacing:.02em; border-radius:0; clip-path:polygon(3% 10%, 98% 0, 100% 88%, 1% 100%); border-color:transparent; }
html.newlook.nl-spiriti .cat-chip.active, html.newlook.nl-spiriti .cat2-chip.active, html.newlook.nl-spiriti .manga-chip.active, html.newlook.nl-spiriti .dc-chip.active, html.newlook.nl-spiriti .yt-chan-chip.active, html.newlook.nl-spiriti .src-tab.active, html.newlook.nl-spiriti .books-tab.active, html.newlook.nl-spiriti .mv-picker-tab.active, html.newlook.nl-spiriti .ai-suggestion-chip.active, html.newlook.nl-spiriti .t10-src-chip.active, html.newlook.nl-spiriti .vf-chip.active, html.newlook.nl-spiriti .lib-subtab.active, html.newlook.nl-spiriti .music-tab.active, html.newlook.nl-spiriti .ns-tab.active, html.newlook.nl-spiriti .lite-cat.active, html.newlook.nl-spiriti .ln-chip.active, html.newlook.nl-spiriti .cal-day-chip.active, html.newlook.nl-spiriti .cat-chip.on, html.newlook.nl-spiriti .cat2-chip.on, html.newlook.nl-spiriti .manga-chip.on, html.newlook.nl-spiriti .dc-chip.on, html.newlook.nl-spiriti .yt-chan-chip.on, html.newlook.nl-spiriti .src-tab.on, html.newlook.nl-spiriti .books-tab.on, html.newlook.nl-spiriti .mv-picker-tab.on, html.newlook.nl-spiriti .ai-suggestion-chip.on, html.newlook.nl-spiriti .t10-src-chip.on, html.newlook.nl-spiriti .vf-chip.on, html.newlook.nl-spiriti .lib-subtab.on, html.newlook.nl-spiriti .music-tab.on, html.newlook.nl-spiriti .ns-tab.on, html.newlook.nl-spiriti .lite-cat.on, html.newlook.nl-spiriti .ln-chip.on, html.newlook.nl-spiriti .cal-day-chip.on{ background:#fff; color:#000; }
html.newlook.nl-spiriti .btn-primary, html.newlook.nl-spiriti .btn-secondary, html.newlook.nl-spiriti .ghost-btn, html.newlook.nl-spiriti .bb-btn, html.newlook.nl-spiriti .live-hero-btn, html.newlook.nl-spiriti .cal-hero-btn, html.newlook.nl-spiriti .lite-btn{ font-family:'NlBrush','Outfit',sans-serif; font-weight:400; letter-spacing:.02em; border-radius:0; border-color:transparent; clip-path:polygon(1% 16%, 7% 2%, 100% 0, 97% 80%, 92% 100%, 0 96%); }
html.newlook.nl-spiriti .btn-primary, html.newlook.nl-spiriti .bb-btn.primary, html.newlook.nl-spiriti .lite-btn.p{ background:#fff; color:#000; }
html.newlook.nl-spiriti .btn-secondary, html.newlook.nl-spiriti .ghost-btn, html.newlook.nl-spiriti .bb-btn:not(.primary){ background:rgba(255,255,255,.12); color:#fff; }
html.newlook.nl-villaggio .cat-chip, html.newlook.nl-villaggio .cat2-chip, html.newlook.nl-villaggio .manga-chip, html.newlook.nl-villaggio .dc-chip, html.newlook.nl-villaggio .yt-chan-chip, html.newlook.nl-villaggio .src-tab, html.newlook.nl-villaggio .books-tab, html.newlook.nl-villaggio .mv-picker-tab, html.newlook.nl-villaggio .ai-suggestion-chip, html.newlook.nl-villaggio .t10-src-chip, html.newlook.nl-villaggio .vf-chip, html.newlook.nl-villaggio .lib-subtab, html.newlook.nl-villaggio .music-tab, html.newlook.nl-villaggio .ns-tab, html.newlook.nl-villaggio .lite-cat, html.newlook.nl-villaggio .ln-chip, html.newlook.nl-villaggio .cal-day-chip{ font-family:'NlComic','Outfit',sans-serif; font-weight:400; letter-spacing:.06em; border:2px solid #000; border-radius:12px; }
html.newlook.nl-villaggio .cat-chip.active, html.newlook.nl-villaggio .cat2-chip.active, html.newlook.nl-villaggio .manga-chip.active, html.newlook.nl-villaggio .dc-chip.active, html.newlook.nl-villaggio .yt-chan-chip.active, html.newlook.nl-villaggio .src-tab.active, html.newlook.nl-villaggio .books-tab.active, html.newlook.nl-villaggio .mv-picker-tab.active, html.newlook.nl-villaggio .ai-suggestion-chip.active, html.newlook.nl-villaggio .t10-src-chip.active, html.newlook.nl-villaggio .vf-chip.active, html.newlook.nl-villaggio .lib-subtab.active, html.newlook.nl-villaggio .music-tab.active, html.newlook.nl-villaggio .ns-tab.active, html.newlook.nl-villaggio .lite-cat.active, html.newlook.nl-villaggio .ln-chip.active, html.newlook.nl-villaggio .cal-day-chip.active, html.newlook.nl-villaggio .cat-chip.on, html.newlook.nl-villaggio .cat2-chip.on, html.newlook.nl-villaggio .manga-chip.on, html.newlook.nl-villaggio .dc-chip.on, html.newlook.nl-villaggio .yt-chan-chip.on, html.newlook.nl-villaggio .src-tab.on, html.newlook.nl-villaggio .books-tab.on, html.newlook.nl-villaggio .mv-picker-tab.on, html.newlook.nl-villaggio .ai-suggestion-chip.on, html.newlook.nl-villaggio .t10-src-chip.on, html.newlook.nl-villaggio .vf-chip.on, html.newlook.nl-villaggio .lib-subtab.on, html.newlook.nl-villaggio .music-tab.on, html.newlook.nl-villaggio .ns-tab.on, html.newlook.nl-villaggio .lite-cat.on, html.newlook.nl-villaggio .ln-chip.on, html.newlook.nl-villaggio .cal-day-chip.on{ background:#ffd7a8; color:#3a1c00; border:2.5px solid #000; box-shadow:3px 3px 0 #000; }
html.newlook.nl-villaggio .btn-primary, html.newlook.nl-villaggio .btn-secondary, html.newlook.nl-villaggio .ghost-btn, html.newlook.nl-villaggio .bb-btn, html.newlook.nl-villaggio .live-hero-btn, html.newlook.nl-villaggio .cal-hero-btn, html.newlook.nl-villaggio .lite-btn{ font-family:'NlComic','Outfit',sans-serif; font-weight:400; letter-spacing:.08em; border:3px solid #000; border-radius:14px; box-shadow:4px 4px 0 #000; }
html.newlook.nl-villaggio .btn-primary, html.newlook.nl-villaggio .bb-btn.primary, html.newlook.nl-villaggio .lite-btn.p{ background:#ff8a1f; color:#1a0c00; }
html.newlook.nl-villaggio .btn-secondary, html.newlook.nl-villaggio .ghost-btn, html.newlook.nl-villaggio .bb-btn:not(.primary){ background:#1c2a5c; color:#fff; }

/* Impostazioni · Tema speciale: riga compatta + finestra di scelta (foglio dal basso su telefono, al centro su desktop) */
.thm-sp-row{ appearance:none; width:100%; max-width:460px; display:flex; align-items:center; gap:12px; margin-top:10px; padding:10px; border:2px solid transparent;
  border-radius:20px; background:rgba(255,255,255,.05); color:#fff; font:inherit; text-align:left; cursor:pointer; }
.thm-sp-row.on{ border-color:rgba(255,255,255,.85); cursor:default; }
.thm-sp-row:focus-visible, .thm-sp-btn:focus-visible, .thm-sp-x:focus-visible, .thm-sp-off:focus-visible{ outline:3px solid #fff; outline-offset:2px; }
.thm-sp-row .thm-sp-prev{ width:84px; height:52px; flex:none; border-radius:12px; }
.thm-sp-txt{ flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
.thm-sp-txt b{ font-size:14px; } .thm-sp-txt small{ font-size:11.5px; color:var(--text-muted,#9a9ca3); }
.thm-sp-go{ font-size:22px; color:rgba(255,255,255,.5); padding:0 4px; }
.thm-sp-stack{ display:flex; flex:none; }
.thm-sp-stack i{ width:40px; height:40px; border-radius:50%; border:2px solid #17181e; background:#0c0c10 center/cover no-repeat; margin-left:-12px; }
.thm-sp-stack i:first-child{ margin-left:0; }
.thm-sp-acts{ display:flex; flex-direction:column; gap:6px; flex:none; }
.thm-sp-btn{ appearance:none; border:0; border-radius:99px; padding:7px 14px; font:inherit; font-size:12.5px; font-weight:700; cursor:pointer; background:var(--nl-tone,#ffd9dc); color:var(--nl-on,#410006); }
.thm-sp-btn.ghost{ background:rgba(255,255,255,.1); color:#fff; }
.thm-sp-overlay{ position:fixed; inset:0; z-index:9000; display:flex; align-items:flex-end; justify-content:center; pointer-events:none; }
.thm-sp-veil{ position:absolute; inset:0; background:rgba(0,0,0,.5); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); opacity:0; transition:opacity .25s; pointer-events:auto; }
.thm-sp-sheet{ position:relative; width:100%; max-width:560px; max-height:86vh; overflow:auto; background:rgba(23,24,30,.98); border:1px solid rgba(255,255,255,.1);
  border-radius:32px 32px 0 0; padding:18px 18px calc(18px + env(safe-area-inset-bottom,0px)); transform:translateY(105%); transition:transform .5s var(--nl-spring, cubic-bezier(.34,1.56,.64,1)); pointer-events:auto; }
.thm-sp-overlay.show .thm-sp-veil{ opacity:1; } .thm-sp-overlay.show .thm-sp-sheet{ transform:none; }
@media (min-width:901px){ .thm-sp-overlay{ align-items:center; } .thm-sp-sheet{ border-radius:32px; transform:scale(.9); opacity:0; transition:transform .45s var(--nl-spring, cubic-bezier(.34,1.56,.64,1)), opacity .2s; } .thm-sp-overlay.show .thm-sp-sheet{ opacity:1; } }
.thm-sp-hd{ display:flex; align-items:flex-start; gap:12px; margin-bottom:14px; } .thm-sp-hd div{ flex:1; } .thm-sp-hd b{ display:block; font-size:19px; } .thm-sp-hd small{ color:var(--text-muted,#9a9ca3); font-size:12.5px; }
.thm-sp-x{ appearance:none; border:0; width:36px; height:36px; border-radius:50%; background:rgba(255,255,255,.1); color:#fff; font-size:14px; cursor:pointer; }
.thm-sp-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.thm-sp-grid .thm-special{ transition:transform .4s var(--nl-spring, ease); } .thm-sp-grid .thm-special:active{ transform:scale(.95); }
.thm-sp-grid .thm-sp-prev{ position:relative; height:96px; }
.thm-sp-prev em{ position:absolute; right:8px; top:8px; width:26px; height:26px; border-radius:50%; background:#fff; color:#000; font-style:normal; font-weight:900; display:grid; place-items:center; font-size:13px; }
.thm-sp-off{ appearance:none; width:100%; margin-top:12px; border:0; border-radius:99px; padding:12px; background:rgba(255,255,255,.08); color:#fff; font:inherit; font-weight:700; cursor:pointer; }
@media (prefers-reduced-motion:reduce){ .thm-sp-sheet, .thm-sp-veil{ transition:none; } }
/* miniature e caratteri dei temi */
.thm-sp-spiriti-bg{ background:#060607 url('/app/themes/spiriti.svg') 100% 0/cover no-repeat; }
.thm-sp-villaggio-bg{ background:#0b1430 url('/app/themes/villaggio.svg') 100% 0/cover no-repeat; }
.thm-sp-spiriti-font{ font-family:'NlBrush','Outfit',sans-serif; font-weight:400 !important; font-size:15px !important; }
.thm-sp-villaggio-font{ font-family:'NlComic','Outfit',sans-serif; font-weight:400 !important; font-size:16px !important; letter-spacing:.04em; }

/* ═══ Tema speciale Aurora · "Brace e Ombra" (html.newlook.nl-brace) ═══
   Fantasy cinematografico: firma in alto a destra (fiamma, fumo, drago lontano, braci) e il resto quasi nero; titoli con
   un serif elegante che "brucia" appena, pulsanti e selezioni color fiamma, card scure illuminate dal basso. Carattere:
   Cormorant Garamond (licenza OFL). Disegni originali. Solo aspetto: layout e funzioni restano quelli di Aurora. */
@font-face{ font-family:'NlSerif'; src:url('/app/themes/serif.woff2') format('woff2'); font-display:swap; }
html.newlook.nl-brace body{ background:#050405; }
html.newlook.nl-brace body::before{ background:url('/app/themes/brace.svg') right 0 top calc(env(safe-area-inset-top, 0px) + 62px)/auto 25vh no-repeat #050405; filter:none; opacity:1; inset:0 0 auto 0; height:40vh; }
html.newlook.nl-brace body::after{ background:none; }
html.newlook.nl-brace .row h3, html.newlook.nl-brace .yt-header h2, html.newlook.nl-brace .bb-title,
html.newlook.nl-brace .d-hero.detail-hero h1, html.newlook.nl-brace .m-hero.detail-hero h1{ font-family:'NlSerif', Georgia, serif; font-weight:700; letter-spacing:.01em; text-shadow:0 0 22px rgba(255,120,40,.45); }
html.newlook.nl-brace .row h3{ font-size:22px; }
html.newlook.nl-brace .d-logo span, html.newlook.nl-brace .m-logo span{ color:#ff8a3a; }
/* pulsanti: principale color fiamma, secondari brace scura */
html.newlook.nl-brace .btn-primary, html.newlook.nl-brace .btn-secondary, html.newlook.nl-brace .ghost-btn, html.newlook.nl-brace .bb-btn, html.newlook.nl-brace .live-hero-btn, html.newlook.nl-brace .cal-hero-btn, html.newlook.nl-brace .lite-btn, html.newlook.nl-brace .play-btn, html.newlook.nl-brace .detail-primary-btn{ font-weight:800; border:0; border-radius:99px; }
html.newlook.nl-brace .btn-primary, html.newlook.nl-brace .bb-btn.primary, html.newlook.nl-brace .lite-btn.p, html.newlook.nl-brace .play-btn, html.newlook.nl-brace .detail-primary-btn{
  background:linear-gradient(90deg,#ff7a2a,#ffb35a); color:#1a0800; box-shadow:0 0 26px rgba(255,120,40,.45), inset 0 1px 0 rgba(255,255,255,.45); }
html.newlook.nl-brace .btn-secondary, html.newlook.nl-brace .ghost-btn, html.newlook.nl-brace .bb-btn:not(.primary){ background:rgba(255,140,60,.12); color:#f3d2b0; }
/* chip e schede: serif chiaro, selezionata color fiamma */
html.newlook.nl-brace .cat-chip, html.newlook.nl-brace .cat2-chip, html.newlook.nl-brace .manga-chip, html.newlook.nl-brace .dc-chip, html.newlook.nl-brace .yt-chan-chip, html.newlook.nl-brace .src-tab, html.newlook.nl-brace .books-tab, html.newlook.nl-brace .mv-picker-tab, html.newlook.nl-brace .ai-suggestion-chip, html.newlook.nl-brace .t10-src-chip, html.newlook.nl-brace .vf-chip, html.newlook.nl-brace .lib-subtab, html.newlook.nl-brace .music-tab, html.newlook.nl-brace .ns-tab, html.newlook.nl-brace .lite-cat, html.newlook.nl-brace .ln-chip, html.newlook.nl-brace .cal-day-chip{ font-family:'NlSerif', Georgia, serif; font-weight:700; font-size:15px; letter-spacing:.01em; background:rgba(255,140,60,.08); color:#f3d2b0; border-color:transparent; border-radius:99px; }
html.newlook.nl-brace .cat-chip.active, html.newlook.nl-brace .cat2-chip.active, html.newlook.nl-brace .manga-chip.active, html.newlook.nl-brace .dc-chip.active, html.newlook.nl-brace .yt-chan-chip.active, html.newlook.nl-brace .src-tab.active, html.newlook.nl-brace .books-tab.active, html.newlook.nl-brace .mv-picker-tab.active, html.newlook.nl-brace .ai-suggestion-chip.active, html.newlook.nl-brace .t10-src-chip.active, html.newlook.nl-brace .vf-chip.active, html.newlook.nl-brace .lib-subtab.active, html.newlook.nl-brace .music-tab.active, html.newlook.nl-brace .ns-tab.active, html.newlook.nl-brace .lite-cat.active, html.newlook.nl-brace .ln-chip.active, html.newlook.nl-brace .cal-day-chip.active, html.newlook.nl-brace .cat-chip.on, html.newlook.nl-brace .cat2-chip.on, html.newlook.nl-brace .manga-chip.on, html.newlook.nl-brace .dc-chip.on, html.newlook.nl-brace .yt-chan-chip.on, html.newlook.nl-brace .src-tab.on, html.newlook.nl-brace .books-tab.on, html.newlook.nl-brace .mv-picker-tab.on, html.newlook.nl-brace .ai-suggestion-chip.on, html.newlook.nl-brace .t10-src-chip.on, html.newlook.nl-brace .vf-chip.on, html.newlook.nl-brace .lib-subtab.on, html.newlook.nl-brace .music-tab.on, html.newlook.nl-brace .ns-tab.on, html.newlook.nl-brace .lite-cat.on, html.newlook.nl-brace .ln-chip.on, html.newlook.nl-brace .cal-day-chip.on{ background:linear-gradient(90deg,#ff7a2a,#ffb35a); color:#1a0800; box-shadow:0 0 16px rgba(255,120,40,.4); }
html.newlook.nl-brace .d-hubs{ background:rgba(18,10,8,.8); border-color:rgba(255,140,60,.15); }
html.newlook.nl-brace .d-hubs button.active{ background:linear-gradient(90deg,#ff7a2a,#ffb35a); color:#1a0800; }
/* barra in basso */
html.newlook.nl-brace .m-tabbar{ background:rgba(18,10,8,.92); border-color:rgba(255,140,60,.15); box-shadow:0 -10px 40px rgba(255,110,30,.12); }
html.newlook.nl-brace .m-tabbar .m-tab:not(.active){ color:rgba(243,210,176,.75); }
html.newlook.nl-brace .m-tab.active{ background:linear-gradient(90deg,#ff7a2a,#ffb35a); color:#1a0800; }
/* card scure illuminate dal basso */
html.newlook.nl-brace .card .art{ box-shadow:inset 0 -30px 40px -20px rgba(255,110,30,.35), 0 0 0 1px rgba(255,140,60,.12); }
html.newlook.nl-brace .card .progress > *{ background:linear-gradient(90deg,#ff7a2a,#ffd08a); box-shadow:0 0 8px #ff7a2a; }
html.newlook.nl-brace .cw-card{ border-color:rgba(255,140,60,.18) !important; background:rgba(20,12,9,.9) !important; }
.thm-sp-brace-bg{ background:#050405 url('/app/themes/brace.svg') 100% 0/cover no-repeat; }
.thm-sp-brace-font{ font-family:'NlSerif', Georgia, serif; font-weight:700 !important; font-size:17px !important; }

/* Temi speciali anche nella scelta dell'area ("Dove vuoi andare?") e nella pagina Esplora: titoli, tessere e pulsante finale. */
html.newlook.nl-spiriti .ar-sheet h3, html.newlook.nl-spiriti .ex-title, html.newlook.nl-spiriti .ar-card b, html.newlook.nl-spiriti .ex-tile b{ font-family:'NlBrush','Outfit',sans-serif; font-weight:400; letter-spacing:.02em; }
html.newlook.nl-spiriti .ex-sec{ font-family:'NlBrush','Outfit',sans-serif; letter-spacing:.06em; color:#ff5a1f; }
html.newlook.nl-spiriti .ar-sheet{ background:rgba(6,6,7,.97); border-color:rgba(255,255,255,.18); }
html.newlook.nl-spiriti .ar-card, html.newlook.nl-spiriti .ex-tile{ border-radius:0 !important; clip-path:polygon(0 0, 90% 0, 100% 16%, 100% 100%, 0 100%); }
html.newlook.nl-spiriti .ar-card.cur{ box-shadow:none; outline:none; }
html.newlook.nl-spiriti .ar-card.cur::after{ background:#ff5a1f; color:#000; }
html.newlook.nl-spiriti .ar-ic, html.newlook.nl-spiriti .ex-ic{ border-radius:0 !important; clip-path:polygon(6% 10%, 100% 0, 94% 92%, 0 100%); }
html.newlook.nl-spiriti .ar-more{ font-family:'NlBrush','Outfit',sans-serif; font-weight:400; border-radius:0; clip-path:polygon(1% 16%, 5% 2%, 100% 0, 98% 80%, 94% 100%, 0 96%); background:#fff; color:#000; }

html.newlook.nl-villaggio .ar-sheet h3, html.newlook.nl-villaggio .ex-title, html.newlook.nl-villaggio .ar-card b, html.newlook.nl-villaggio .ex-tile b{ font-family:'NlComic','Outfit',sans-serif; font-weight:400; letter-spacing:.05em; text-shadow:2px 2px 0 #000; }
html.newlook.nl-villaggio .ex-sec{ font-family:'NlComic','Outfit',sans-serif; letter-spacing:.1em; color:#ff8a1f; }
html.newlook.nl-villaggio .ar-sheet{ background:#14204a; border:3px solid #000; box-shadow:5px 5px 0 #000; }
html.newlook.nl-villaggio .ar-card, html.newlook.nl-villaggio .ex-tile{ border:3px solid #000 !important; box-shadow:4px 4px 0 #000; border-radius:16px !important; }
html.newlook.nl-villaggio .ar-card.cur{ outline:none; box-shadow:4px 4px 0 #000, 0 0 0 3px #ffd7a8; }
html.newlook.nl-villaggio .ar-card.cur::after{ background:#ff8a1f; color:#000; border:2px solid #000; }
html.newlook.nl-villaggio .ar-ic, html.newlook.nl-villaggio .ex-ic{ border:2px solid #000; }
html.newlook.nl-villaggio .ar-more{ font-family:'NlComic','Outfit',sans-serif; font-weight:400; letter-spacing:.08em; background:#ff8a1f; color:#1a0c00; border:3px solid #000; box-shadow:4px 4px 0 #000; }

html.newlook.nl-brace .ar-sheet h3, html.newlook.nl-brace .ex-title, html.newlook.nl-brace .ar-card b, html.newlook.nl-brace .ex-tile b{ font-family:'NlSerif',Georgia,serif; font-weight:700; text-shadow:0 0 18px rgba(255,120,40,.4); }
html.newlook.nl-brace .ar-card b, html.newlook.nl-brace .ex-tile b{ font-size:1.15em; }
html.newlook.nl-brace .ex-sec{ font-family:'NlSerif',Georgia,serif; font-style:italic; letter-spacing:.12em; color:#ff9a4a; }
html.newlook.nl-brace .ar-sheet{ background:rgba(14,8,6,.97); border-color:rgba(255,140,60,.18); box-shadow:0 -20px 60px rgba(255,110,30,.15); }
html.newlook.nl-brace .ar-card, html.newlook.nl-brace .ex-tile{ box-shadow:inset 0 -40px 50px -24px rgba(255,110,30,.45); }
html.newlook.nl-brace .ar-card.cur{ outline:none; box-shadow:inset 0 -40px 50px -24px rgba(255,110,30,.45), 0 0 0 2px #ffb35a, 0 0 24px rgba(255,120,40,.45); }
html.newlook.nl-brace .ar-card.cur::after{ background:linear-gradient(90deg,#ff7a2a,#ffb35a); color:#1a0800; }
html.newlook.nl-brace .ar-more{ background:rgba(255,140,60,.12); color:#f3d2b0; font-family:'NlSerif',Georgia,serif; font-weight:700; font-size:1.05em; }
/* Tondini della riga "Scegli un tema speciale": un simbolo per tema (la scena intera e' troppo piccola per vedersi) */
.thm-sp-stack i.thm-sp-spiriti-bg{ background:radial-gradient(circle at 70% 30%, #060607 0 20%, transparent 21%), radial-gradient(circle at 60% 38%, #f4efe6 0 30%, transparent 31%), radial-gradient(circle at 60% 40%, rgba(255,90,31,.7), #060607 70%); }
.thm-sp-stack i.thm-sp-villaggio-bg{ background:radial-gradient(circle at 50% 42%, #ffd08a 0 26%, #000 27% 31%, transparent 32%), linear-gradient(#2a1a5a, #ff7a3a 70%, #2a2a6a 71%); }
.thm-sp-stack i.thm-sp-brace-bg{ background:radial-gradient(circle at 50% 65%, #ffb35a 0 14%, #ff7a2a 28%, #5a1a08 55%, #050405 75%); }
/* Temi speciali: durante il caricamento (skeleton) la firma in alto a destra non si mostra, poi riappare in dissolvenza. */
html.newlook.nl-spiriti body::before, html.newlook.nl-villaggio body::before, html.newlook.nl-brace body::before{ transition:opacity .45s ease; }
html.newlook.nl-spiriti html.dd-skel body::before,
html.newlook.nl-villaggio html.dd-skel body::before,
html.newlook.nl-brace html.dd-skel body::before{ opacity:0; }

/* ═══ Tema speciale Aurora · "Neon 2099" (html.newlook.nl-neon) ═══
   Sci-fi neon: firma in alto a destra (sole a strisce, griglia, palazzi al neon), resto blu notte; titoli squadrati con
   bagliore ciano, angoli smussati come pannelli, linee luminose sottili, accento magenta. Carattere: Orbitron (licenza
   OFL). Disegni originali. Solo aspetto: layout e funzioni restano quelli di Aurora. */
@font-face{ font-family:'NlTech'; src:url('/app/themes/tech.woff2') format('woff2'); font-display:swap; }
html.newlook.nl-neon body{ background:#05060f; }
html.newlook.nl-neon body::before{ background:url('/app/themes/neon.svg') right 0 top calc(env(safe-area-inset-top, 0px) + 62px)/auto 22vh no-repeat #05060f; filter:none; opacity:1; inset:0 0 auto 0; height:40vh; }
html.newlook.nl-neon body::after{ background:repeating-linear-gradient(0deg, rgba(41,240,255,.025) 0 1px, transparent 1px 4px); }
html.newlook.nl-neon .row h3, html.newlook.nl-neon .yt-header h2, html.newlook.nl-neon .bb-title, html.newlook.nl-neon .ex-title, html.newlook.nl-neon .ar-sheet h3,
html.newlook.nl-neon .d-hero.detail-hero h1, html.newlook.nl-neon .m-hero.detail-hero h1{ font-family:'NlTech', 'Outfit', sans-serif; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:#e8fbff; text-shadow:0 0 10px rgba(41,240,255,.7); }
html.newlook.nl-neon .row h3{ font-size:16px; }
html.newlook.nl-neon .d-logo span, html.newlook.nl-neon .m-logo span{ color:#ff2bd6; text-shadow:0 0 10px #ff2bd6; }
/* pulsanti: principale ciano pieno a pannello, secondari contorno ciano */
html.newlook.nl-neon .btn-primary, html.newlook.nl-neon .btn-secondary, html.newlook.nl-neon .ghost-btn, html.newlook.nl-neon .bb-btn, html.newlook.nl-neon .live-hero-btn, html.newlook.nl-neon .cal-hero-btn, html.newlook.nl-neon .lite-btn, html.newlook.nl-neon .play-btn, html.newlook.nl-neon .detail-primary-btn{ font-family:'NlTech', 'Outfit', sans-serif; font-weight:700; letter-spacing:.12em; text-transform:uppercase; font-size:.85em; border-radius:0; clip-path:polygon(10px 0, 100% 0, 100% calc(100% - 10px), calc(100% - 10px) 100%, 0 100%, 0 10px); }
html.newlook.nl-neon .btn-primary, html.newlook.nl-neon .bb-btn.primary, html.newlook.nl-neon .lite-btn.p, html.newlook.nl-neon .play-btn, html.newlook.nl-neon .detail-primary-btn{
  background:#29f0ff; color:#03101a; border:0; box-shadow:inset 0 0 18px rgba(255,255,255,.45); }
html.newlook.nl-neon .btn-secondary, html.newlook.nl-neon .ghost-btn, html.newlook.nl-neon .bb-btn:not(.primary){ background:rgba(41,240,255,.08); color:#bff6ff; border:1px solid rgba(41,240,255,.55); }
/* chip e schede */
html.newlook.nl-neon .cat-chip, html.newlook.nl-neon .cat2-chip, html.newlook.nl-neon .manga-chip, html.newlook.nl-neon .dc-chip, html.newlook.nl-neon .yt-chan-chip, html.newlook.nl-neon .src-tab, html.newlook.nl-neon .books-tab, html.newlook.nl-neon .mv-picker-tab, html.newlook.nl-neon .ai-suggestion-chip, html.newlook.nl-neon .t10-src-chip, html.newlook.nl-neon .vf-chip, html.newlook.nl-neon .lib-subtab, html.newlook.nl-neon .music-tab, html.newlook.nl-neon .ns-tab, html.newlook.nl-neon .lite-cat, html.newlook.nl-neon .ln-chip, html.newlook.nl-neon .cal-day-chip{ font-family:'NlTech', 'Outfit', sans-serif; font-weight:700; font-size:11.5px; letter-spacing:.1em; text-transform:uppercase; border-radius:0; clip-path:polygon(6px 0, 100% 0, 100% calc(100% - 6px), calc(100% - 6px) 100%, 0 100%, 0 6px);
  background:rgba(41,240,255,.06); color:#a8e9f5; border:1px solid rgba(41,240,255,.3); }
html.newlook.nl-neon .cat-chip.active, html.newlook.nl-neon .cat2-chip.active, html.newlook.nl-neon .manga-chip.active, html.newlook.nl-neon .dc-chip.active, html.newlook.nl-neon .yt-chan-chip.active, html.newlook.nl-neon .src-tab.active, html.newlook.nl-neon .books-tab.active, html.newlook.nl-neon .mv-picker-tab.active, html.newlook.nl-neon .ai-suggestion-chip.active, html.newlook.nl-neon .t10-src-chip.active, html.newlook.nl-neon .vf-chip.active, html.newlook.nl-neon .lib-subtab.active, html.newlook.nl-neon .music-tab.active, html.newlook.nl-neon .ns-tab.active, html.newlook.nl-neon .lite-cat.active, html.newlook.nl-neon .ln-chip.active, html.newlook.nl-neon .cal-day-chip.active, html.newlook.nl-neon .cat-chip.on, html.newlook.nl-neon .cat2-chip.on, html.newlook.nl-neon .manga-chip.on, html.newlook.nl-neon .dc-chip.on, html.newlook.nl-neon .yt-chan-chip.on, html.newlook.nl-neon .src-tab.on, html.newlook.nl-neon .books-tab.on, html.newlook.nl-neon .mv-picker-tab.on, html.newlook.nl-neon .ai-suggestion-chip.on, html.newlook.nl-neon .t10-src-chip.on, html.newlook.nl-neon .vf-chip.on, html.newlook.nl-neon .lib-subtab.on, html.newlook.nl-neon .music-tab.on, html.newlook.nl-neon .ns-tab.on, html.newlook.nl-neon .lite-cat.on, html.newlook.nl-neon .ln-chip.on, html.newlook.nl-neon .cal-day-chip.on{ background:#29f0ff; color:#03101a; border-color:#29f0ff; }
html.newlook.nl-neon .d-hubs{ background:rgba(8,10,26,.85); border:1px solid rgba(41,240,255,.35); border-radius:0; clip-path:polygon(10px 0, 100% 0, 100% calc(100% - 10px), calc(100% - 10px) 100%, 0 100%, 0 10px); }
html.newlook.nl-neon .d-hubs button{ font-family:'NlTech','Outfit',sans-serif; letter-spacing:.08em; text-transform:uppercase; font-size:12px; }
html.newlook.nl-neon .d-hubs button.active{ background:#29f0ff; color:#03101a; border-radius:0; clip-path:polygon(6px 0, 100% 0, 100% calc(100% - 6px), calc(100% - 6px) 100%, 0 100%, 0 6px); }
/* barra in basso */
html.newlook.nl-neon .m-tabbar{ background:rgba(8,10,26,.94); border:1px solid rgba(41,240,255,.4); border-radius:0; clip-path:polygon(16px 0, 100% 0, 100% calc(100% - 16px), calc(100% - 16px) 100%, 0 100%, 0 16px); }
html.newlook.nl-neon .m-tabbar .m-tab:not(.active){ color:rgba(190,240,255,.75); }
html.newlook.nl-neon .m-tab{ font-family:'NlTech','Outfit',sans-serif; letter-spacing:.06em; text-transform:uppercase; font-size:10px; }
html.newlook.nl-neon .m-tab.active{ background:#29f0ff; color:#03101a; border-radius:0; clip-path:polygon(6px 0, 100% 0, 100% calc(100% - 6px), calc(100% - 6px) 100%, 0 100%, 0 6px); }
/* card a pannello con linee di scansione */
html.newlook.nl-neon .card .art{ border-radius:0; clip-path:polygon(10px 0, 100% 0, 100% calc(100% - 10px), calc(100% - 10px) 100%, 0 100%, 0 10px); box-shadow:inset 0 0 0 1px rgba(41,240,255,.4); }
html.newlook.nl-neon .card .art::after{ content:""; position:absolute; inset:0; pointer-events:none; background:repeating-linear-gradient(0deg, rgba(255,255,255,.04) 0 1px, transparent 1px 3px); }
html.newlook.nl-neon .card .progress{ border-radius:0; }
html.newlook.nl-neon .card .progress > *{ background:#ff2bd6; box-shadow:0 0 8px #ff2bd6; }
html.newlook.nl-neon .cw-card{ border-radius:0 !important; clip-path:polygon(10px 0, 100% 0, 100% calc(100% - 10px), calc(100% - 10px) 100%, 0 100%, 0 10px); border-color:rgba(41,240,255,.35) !important; }
/* scelta dell'area ed Esplora */
html.newlook.nl-neon .ar-sheet{ background:rgba(6,8,22,.97); border:1px solid rgba(41,240,255,.4); }
html.newlook.nl-neon .ar-card, html.newlook.nl-neon .ex-tile{ border-radius:0 !important; clip-path:polygon(10px 0, 100% 0, 100% calc(100% - 10px), calc(100% - 10px) 100%, 0 100%, 0 10px); box-shadow:inset 0 0 0 1px rgba(41,240,255,.35); }
html.newlook.nl-neon .ar-card b, html.newlook.nl-neon .ex-tile b{ font-family:'NlTech','Outfit',sans-serif; letter-spacing:.06em; text-transform:uppercase; font-size:.95em; }
html.newlook.nl-neon .ex-sec{ font-family:'NlTech','Outfit',sans-serif; letter-spacing:.3em; color:#ff2bd6; }
html.newlook.nl-neon .ar-ic, html.newlook.nl-neon .ex-ic{ border-radius:0 !important; clip-path:polygon(6px 0, 100% 0, 100% calc(100% - 6px), calc(100% - 6px) 100%, 0 100%, 0 6px); }
html.newlook.nl-neon .ar-card.cur{ outline:none; box-shadow:inset 0 0 0 2px #29f0ff, inset 0 0 24px rgba(41,240,255,.35); }
html.newlook.nl-neon .ar-card.cur::after{ background:#29f0ff; color:#03101a; }
html.newlook.nl-neon .ar-more{ font-family:'NlTech','Outfit',sans-serif; letter-spacing:.12em; text-transform:uppercase; font-size:.85em; background:#29f0ff; color:#03101a; border-radius:0; clip-path:polygon(10px 0, 100% 0, 100% calc(100% - 10px), calc(100% - 10px) 100%, 0 100%, 0 10px); }
/* caricamento e Impostazioni */
html.newlook.nl-neon body::before{ transition:opacity .45s ease; }
html.newlook.nl-neon html.dd-skel body::before{ opacity:0; }
.thm-sp-neon-bg{ background:#05060f url('/app/themes/neon.svg') 100% 0/cover no-repeat; }
.thm-sp-neon-font{ font-family:'NlTech','Outfit',sans-serif; font-weight:700 !important; font-size:12.5px !important; letter-spacing:.08em; text-transform:uppercase; }
.thm-sp-stack i.thm-sp-neon-bg{ background:radial-gradient(circle at 50% 46%, #ffd23f 0 12%, #ff2bd6 26%, transparent 27%), linear-gradient(#05060f 62%, #29f0ff 63% 66%, #05060f 67%); }
/* Firma dei temi speciali sfumata ai bordi (come in Brace e Ombra): sfuma verso il basso e verso sinistra, cosi' mentre
   si scorre i contenuti non le passano sopra con un bordo netto. */
html.newlook.nl-spiriti body::before, html.newlook.nl-villaggio body::before, html.newlook.nl-neon body::before, html.newlook.nl-brace body::before{
  -webkit-mask-image:radial-gradient(70% 34vh at 100% calc(env(safe-area-inset-top, 0px) + 62px), #000 30%, transparent 100%);
  mask-image:radial-gradient(70% 34vh at 100% calc(env(safe-area-inset-top, 0px) + 62px), #000 30%, transparent 100%); }
html.newlook.nl-spiriti html:not(.dd-skel) body::before,
html.newlook.nl-villaggio html:not(.dd-skel) body::before,
html.newlook.nl-neon html:not(.dd-skel) body::before{ opacity:.8; }

/* ═══ Tema speciale Aurora · "Notte Senza Fine" (html.newlook.nl-horror) ═══
   Horror: firma in alto a destra (luna pallida, rami spogli, casa con la finestra accesa, nebbia), resto quasi nero;
   titoli e pulsanti grandi con un carattere che cola, bordi strappati, card come foto su carta con una macchia rossa.
   Il carattere decorativo solo dove e' grande (in piccolo resta illeggibile). Carattere: Creepster (licenza OFL).
   Disegni originali. Solo aspetto: layout e funzioni restano quelli di Aurora. */
@font-face{ font-family:'NlHorror'; src:url('/app/themes/horror.woff2') format('woff2'); font-display:swap; }
html.newlook.nl-horror body{ background:#0a0707; }
html.newlook.nl-horror body::before{ background:url('/app/themes/horror.svg') right 0 top calc(env(safe-area-inset-top, 0px) + 62px)/auto 24vh no-repeat #0a0707; filter:none; inset:0 0 auto 0; height:40vh; transition:opacity .45s ease;
  -webkit-mask-image:radial-gradient(70% 34vh at 100% calc(env(safe-area-inset-top, 0px) + 62px), #000 30%, transparent 100%);
  mask-image:radial-gradient(70% 34vh at 100% calc(env(safe-area-inset-top, 0px) + 62px), #000 30%, transparent 100%); }
html.newlook.nl-horror html:not(.dd-skel) body::before{ opacity:.8; }
html.newlook.nl-horror html.dd-skel body::before{ opacity:0; }
html.newlook.nl-horror body::after{ background:none; }
html.newlook.nl-horror .row h3, html.newlook.nl-horror .yt-header h2, html.newlook.nl-horror .bb-title, html.newlook.nl-horror .ex-title, html.newlook.nl-horror .ar-sheet h3,
html.newlook.nl-horror .d-hero.detail-hero h1, html.newlook.nl-horror .m-hero.detail-hero h1{ font-family:'NlHorror', 'Outfit', sans-serif; font-weight:400; letter-spacing:.04em; color:#e8e0d6; text-shadow:2px 2px 0 #3a0508; }
html.newlook.nl-horror .row h3{ font-size:23px; }
html.newlook.nl-horror .d-logo span, html.newlook.nl-horror .m-logo span{ color:#ff2a3a; }
/* pulsanti: principale rosso a bordi strappati, secondari carta scura */
html.newlook.nl-horror .btn-primary, html.newlook.nl-horror .btn-secondary, html.newlook.nl-horror .ghost-btn, html.newlook.nl-horror .bb-btn, html.newlook.nl-horror .live-hero-btn, html.newlook.nl-horror .cal-hero-btn, html.newlook.nl-horror .lite-btn, html.newlook.nl-horror .play-btn, html.newlook.nl-horror .detail-primary-btn{ font-family:'NlHorror', 'Outfit', sans-serif; font-weight:400; letter-spacing:.06em; font-size:1.1em; border:0; border-radius:0; clip-path:polygon(0 7%, 16% 0, 38% 6%, 62% 0, 84% 5%, 100% 1%, 98% 90%, 80% 100%, 56% 93%, 30% 100%, 6% 94%, 1% 100%); }
html.newlook.nl-horror .btn-primary, html.newlook.nl-horror .bb-btn.primary, html.newlook.nl-horror .lite-btn.p, html.newlook.nl-horror .play-btn, html.newlook.nl-horror .detail-primary-btn{ background:#c1121f; color:#f5ece2; }
html.newlook.nl-horror .btn-secondary, html.newlook.nl-horror .ghost-btn, html.newlook.nl-horror .bb-btn:not(.primary){ background:#2a2020; color:#e8e0d6; }
/* chip e schede: carattere normale (leggibile), bordi strappati; selezionata color osso */
html.newlook.nl-horror .cat-chip, html.newlook.nl-horror .cat2-chip, html.newlook.nl-horror .manga-chip, html.newlook.nl-horror .dc-chip, html.newlook.nl-horror .yt-chan-chip, html.newlook.nl-horror .src-tab, html.newlook.nl-horror .books-tab, html.newlook.nl-horror .mv-picker-tab, html.newlook.nl-horror .ai-suggestion-chip, html.newlook.nl-horror .t10-src-chip, html.newlook.nl-horror .vf-chip, html.newlook.nl-horror .lib-subtab, html.newlook.nl-horror .music-tab, html.newlook.nl-horror .ns-tab, html.newlook.nl-horror .lite-cat, html.newlook.nl-horror .ln-chip, html.newlook.nl-horror .cal-day-chip{ font-weight:800; letter-spacing:.06em; text-transform:uppercase; font-size:11.5px; border:0; border-radius:0; clip-path:polygon(0 10%, 30% 0, 64% 8%, 100% 2%, 97% 92%, 66% 100%, 34% 92%, 2% 100%); background:#1e1616; color:#cfc4b6; }
html.newlook.nl-horror .cat-chip.active, html.newlook.nl-horror .cat2-chip.active, html.newlook.nl-horror .manga-chip.active, html.newlook.nl-horror .dc-chip.active, html.newlook.nl-horror .yt-chan-chip.active, html.newlook.nl-horror .src-tab.active, html.newlook.nl-horror .books-tab.active, html.newlook.nl-horror .mv-picker-tab.active, html.newlook.nl-horror .ai-suggestion-chip.active, html.newlook.nl-horror .t10-src-chip.active, html.newlook.nl-horror .vf-chip.active, html.newlook.nl-horror .lib-subtab.active, html.newlook.nl-horror .music-tab.active, html.newlook.nl-horror .ns-tab.active, html.newlook.nl-horror .lite-cat.active, html.newlook.nl-horror .ln-chip.active, html.newlook.nl-horror .cal-day-chip.active, html.newlook.nl-horror .cat-chip.on, html.newlook.nl-horror .cat2-chip.on, html.newlook.nl-horror .manga-chip.on, html.newlook.nl-horror .dc-chip.on, html.newlook.nl-horror .yt-chan-chip.on, html.newlook.nl-horror .src-tab.on, html.newlook.nl-horror .books-tab.on, html.newlook.nl-horror .mv-picker-tab.on, html.newlook.nl-horror .ai-suggestion-chip.on, html.newlook.nl-horror .t10-src-chip.on, html.newlook.nl-horror .vf-chip.on, html.newlook.nl-horror .lib-subtab.on, html.newlook.nl-horror .music-tab.on, html.newlook.nl-horror .ns-tab.on, html.newlook.nl-horror .lite-cat.on, html.newlook.nl-horror .ln-chip.on, html.newlook.nl-horror .cal-day-chip.on{ background:#e8e0d6; color:#3a0508; }
html.newlook.nl-horror .d-hubs{ background:rgba(18,12,12,.9); border-color:rgba(193,18,31,.3); }
html.newlook.nl-horror .d-hubs button.active{ background:#e8e0d6; color:#3a0508; border-radius:0; clip-path:polygon(0 10%, 30% 0, 64% 8%, 100% 2%, 97% 92%, 66% 100%, 34% 92%, 2% 100%); }
/* barra in basso: scura con riga rossa */
html.newlook.nl-horror .m-tabbar{ background:#120c0c; border-color:transparent; border-top:3px solid #c1121f; }
html.newlook.nl-horror .m-tabbar .m-tab:not(.active){ color:rgba(232,224,214,.72); }
html.newlook.nl-horror .m-tab.active{ background:#c1121f; color:#f5ece2; border-radius:0; clip-path:polygon(0 10%, 30% 0, 64% 8%, 100% 2%, 97% 92%, 66% 100%, 34% 92%, 2% 100%); }
/* card come foto su carta, con una macchia rossa */
html.newlook.nl-horror .card .art{ border-radius:0; box-shadow:inset 0 -26px 34px -18px rgba(193,18,31,.38), 0 0 0 4px #d9cfc2; clip-path:polygon(0 10%, 30% 0, 64% 8%, 100% 2%, 97% 92%, 66% 100%, 34% 92%, 2% 100%); filter:saturate(.75) contrast(1.05); }

html.newlook.nl-horror .card .progress{ border-radius:0; }
html.newlook.nl-horror .card .progress > *{ background:#c1121f; }
html.newlook.nl-horror .cw-card{ border-radius:0 !important; clip-path:polygon(0 10%, 30% 0, 64% 8%, 100% 2%, 97% 92%, 66% 100%, 34% 92%, 2% 100%); border-color:rgba(217,207,194,.3) !important; }
/* scelta dell'area ed Esplora */
html.newlook.nl-horror .ar-sheet{ background:rgba(12,8,8,.97); border-color:rgba(193,18,31,.35); }
html.newlook.nl-horror .ar-card, html.newlook.nl-horror .ex-tile{ border-radius:0 !important; clip-path:polygon(0 10%, 30% 0, 64% 8%, 100% 2%, 97% 92%, 66% 100%, 34% 92%, 2% 100%); filter:saturate(.8); }
html.newlook.nl-horror .ar-card b, html.newlook.nl-horror .ex-tile b{ font-family:'NlHorror','Outfit',sans-serif; font-weight:400; letter-spacing:.04em; font-size:1.2em; }
html.newlook.nl-horror .ex-sec{ letter-spacing:.3em; color:#c1121f; font-weight:900; }
html.newlook.nl-horror .ar-ic, html.newlook.nl-horror .ex-ic{ border-radius:0 !important; clip-path:polygon(0 10%, 30% 0, 64% 8%, 100% 2%, 97% 92%, 66% 100%, 34% 92%, 2% 100%); }
html.newlook.nl-horror .ar-card.cur{ outline:none; box-shadow:none; filter:none; }
html.newlook.nl-horror .ar-card.cur::after{ background:#e8e0d6; color:#3a0508; }
html.newlook.nl-horror .ar-more{ font-family:'NlHorror','Outfit',sans-serif; font-weight:400; letter-spacing:.06em; font-size:1.15em; background:#c1121f; color:#f5ece2; border-radius:0; clip-path:polygon(0 7%, 16% 0, 38% 6%, 62% 0, 84% 5%, 100% 1%, 98% 90%, 80% 100%, 56% 93%, 30% 100%, 6% 94%, 1% 100%); }
.thm-sp-horror-bg{ background:#0a0707 url('/app/themes/horror.svg') 100% 0/cover no-repeat; }
.thm-sp-horror-font{ font-family:'NlHorror','Outfit',sans-serif; font-weight:400 !important; font-size:17px !important; letter-spacing:.04em; }
.thm-sp-stack i.thm-sp-horror-bg{ background:radial-gradient(circle at 55% 40%, #cfc4b6 0 26%, transparent 27%), radial-gradient(circle at 70% 70%, #c1121f 0 9%, transparent 10%), #0a0707; }

/* ═══ Tema speciale Aurora · "Ciliegi a Tokyo" (html.newlook.nl-tokyo) ═══
   Notte giapponese: firma in alto a destra (luna rosata, pagoda e torii stilizzati, lanterna, ramo di ciliegio), resto
   notte viola; titoli con un carattere giapponese morbido, selezioni rosa ciliegio, Play bianco, card con una lanterna.
   Carattere: Zen Maru Gothic (licenza OFL). Disegni originali. Solo aspetto: layout e funzioni restano quelli di Aurora. */
@font-face{ font-family:'NlMaru'; src:url('/app/themes/maru.woff2') format('woff2'); font-display:swap; }
html.newlook.nl-tokyo body{ background:#0e0a14; }
html.newlook.nl-tokyo body::before{ background:url('/app/themes/tokyo.svg') right 0 top calc(env(safe-area-inset-top, 0px) + 62px)/auto 24vh no-repeat #0e0a14; filter:none; inset:0 0 auto 0; height:40vh; transition:opacity .45s ease;
  -webkit-mask-image:radial-gradient(70% 34vh at 100% calc(env(safe-area-inset-top, 0px) + 62px), #000 30%, transparent 100%);
  mask-image:radial-gradient(70% 34vh at 100% calc(env(safe-area-inset-top, 0px) + 62px), #000 30%, transparent 100%); }
html.newlook.nl-tokyo html:not(.dd-skel) body::before{ opacity:.85; }
html.newlook.nl-tokyo html.dd-skel body::before{ opacity:0; }
html.newlook.nl-tokyo body::after{ background:none; }
html.newlook.nl-tokyo .row h3, html.newlook.nl-tokyo .yt-header h2, html.newlook.nl-tokyo .bb-title, html.newlook.nl-tokyo .ex-title, html.newlook.nl-tokyo .ar-sheet h3,
html.newlook.nl-tokyo .d-hero.detail-hero h1, html.newlook.nl-tokyo .m-hero.detail-hero h1, html.newlook.nl-tokyo .ar-card b, html.newlook.nl-tokyo .ex-tile b{ font-family:'NlMaru', 'Outfit', sans-serif; font-weight:700; letter-spacing:.02em; }
html.newlook.nl-tokyo .d-logo span, html.newlook.nl-tokyo .m-logo span{ color:#ff8fb0; }
html.newlook.nl-tokyo .btn-primary, html.newlook.nl-tokyo .btn-secondary, html.newlook.nl-tokyo .ghost-btn, html.newlook.nl-tokyo .bb-btn, html.newlook.nl-tokyo .live-hero-btn, html.newlook.nl-tokyo .cal-hero-btn, html.newlook.nl-tokyo .lite-btn, html.newlook.nl-tokyo .play-btn, html.newlook.nl-tokyo .detail-primary-btn{ font-family:'NlMaru', 'Outfit', sans-serif; font-weight:700; border:0; border-radius:99px; }
html.newlook.nl-tokyo .btn-primary, html.newlook.nl-tokyo .bb-btn.primary, html.newlook.nl-tokyo .lite-btn.p, html.newlook.nl-tokyo .play-btn, html.newlook.nl-tokyo .detail-primary-btn{ background:#fff; color:#2a0a18; box-shadow:0 0 24px rgba(255,194,212,.25); }
html.newlook.nl-tokyo .btn-secondary, html.newlook.nl-tokyo .ghost-btn, html.newlook.nl-tokyo .bb-btn:not(.primary){ background:rgba(255,194,212,.1); color:#ffd6e2; }
html.newlook.nl-tokyo .cat-chip, html.newlook.nl-tokyo .cat2-chip, html.newlook.nl-tokyo .manga-chip, html.newlook.nl-tokyo .dc-chip, html.newlook.nl-tokyo .yt-chan-chip, html.newlook.nl-tokyo .src-tab, html.newlook.nl-tokyo .books-tab, html.newlook.nl-tokyo .mv-picker-tab, html.newlook.nl-tokyo .ai-suggestion-chip, html.newlook.nl-tokyo .t10-src-chip, html.newlook.nl-tokyo .vf-chip, html.newlook.nl-tokyo .lib-subtab, html.newlook.nl-tokyo .music-tab, html.newlook.nl-tokyo .ns-tab, html.newlook.nl-tokyo .lite-cat, html.newlook.nl-tokyo .ln-chip, html.newlook.nl-tokyo .cal-day-chip{ font-family:'NlMaru', 'Outfit', sans-serif; font-weight:700; border-color:transparent; border-radius:99px; background:rgba(255,194,212,.07); color:#f0cdd9; }
html.newlook.nl-tokyo .cat-chip.active, html.newlook.nl-tokyo .cat2-chip.active, html.newlook.nl-tokyo .manga-chip.active, html.newlook.nl-tokyo .dc-chip.active, html.newlook.nl-tokyo .yt-chan-chip.active, html.newlook.nl-tokyo .src-tab.active, html.newlook.nl-tokyo .books-tab.active, html.newlook.nl-tokyo .mv-picker-tab.active, html.newlook.nl-tokyo .ai-suggestion-chip.active, html.newlook.nl-tokyo .t10-src-chip.active, html.newlook.nl-tokyo .vf-chip.active, html.newlook.nl-tokyo .lib-subtab.active, html.newlook.nl-tokyo .music-tab.active, html.newlook.nl-tokyo .ns-tab.active, html.newlook.nl-tokyo .lite-cat.active, html.newlook.nl-tokyo .ln-chip.active, html.newlook.nl-tokyo .cal-day-chip.active, html.newlook.nl-tokyo .cat-chip.on, html.newlook.nl-tokyo .cat2-chip.on, html.newlook.nl-tokyo .manga-chip.on, html.newlook.nl-tokyo .dc-chip.on, html.newlook.nl-tokyo .yt-chan-chip.on, html.newlook.nl-tokyo .src-tab.on, html.newlook.nl-tokyo .books-tab.on, html.newlook.nl-tokyo .mv-picker-tab.on, html.newlook.nl-tokyo .ai-suggestion-chip.on, html.newlook.nl-tokyo .t10-src-chip.on, html.newlook.nl-tokyo .vf-chip.on, html.newlook.nl-tokyo .lib-subtab.on, html.newlook.nl-tokyo .music-tab.on, html.newlook.nl-tokyo .ns-tab.on, html.newlook.nl-tokyo .lite-cat.on, html.newlook.nl-tokyo .ln-chip.on, html.newlook.nl-tokyo .cal-day-chip.on{ background:#ffc2d4; color:#4a0f24; }
html.newlook.nl-tokyo .d-hubs{ background:rgba(26,16,30,.85); border-color:rgba(255,194,212,.14); }
html.newlook.nl-tokyo .d-hubs button.active{ background:#ffc2d4; color:#4a0f24; }
html.newlook.nl-tokyo .m-tabbar{ background:rgba(26,16,30,.94); border-color:rgba(255,194,212,.14); }
html.newlook.nl-tokyo .m-tabbar .m-tab:not(.active){ color:rgba(255,214,226,.75); }
html.newlook.nl-tokyo .m-tab{ font-family:'NlMaru','Outfit',sans-serif; }
html.newlook.nl-tokyo .m-tab.active{ background:#ffc2d4; color:#4a0f24; }
html.newlook.nl-tokyo .card .art{ box-shadow:inset 0 -24px 32px -18px rgba(255,143,176,.28), inset 0 0 0 1px rgba(255,194,212,.24); }


html.newlook.nl-tokyo .card .progress > *{ background:#ff8fb0; }
html.newlook.nl-tokyo .cw-card{ border-color:rgba(255,194,212,.16) !important; background:rgba(26,16,30,.9) !important; }
html.newlook.nl-tokyo .ar-sheet{ background:rgba(20,12,24,.97); border-color:rgba(255,194,212,.16); }
html.newlook.nl-tokyo .ex-sec{ font-family:'NlMaru','Outfit',sans-serif; letter-spacing:.2em; color:#ff8fb0; }
/* Ciliegi a Tokyo: forma "a petalo" (due angoli ampi in diagonale, due stretti) su card, tessere di Esplora e aree,
   carta notturna con un velo rosa e un petalo di ciliegio nell'angolo. */
html.newlook.nl-tokyo .card .art, html.newlook.nl-tokyo .cw-card{ border-radius:20px 6px 20px 6px !important; }
html.newlook.nl-tokyo .ar-card, html.newlook.nl-tokyo .ex-tile{ position:relative; border-radius:22px 7px 22px 7px !important; background:linear-gradient(150deg, rgba(255,143,176,.13), rgba(26,16,30,.92) 55%) !important; box-shadow:inset 0 0 0 1px rgba(255,194,212,.16); overflow:hidden; }
html.newlook.nl-tokyo .ex-tile::after, html.newlook.nl-tokyo .ar-card:not(.cur)::after{ content:""; position:absolute; right:10px; bottom:9px; width:12px; height:12px; pointer-events:none; opacity:.55;
  background:radial-gradient(circle at 50% 50%, #ffe3ec 0 18%, transparent 19%), conic-gradient(#ff8fb0 0 12%, transparent 12% 20%, #ff8fb0 20% 32%, transparent 32% 40%, #ff8fb0 40% 52%, transparent 52% 60%, #ff8fb0 60% 72%, transparent 72% 80%, #ff8fb0 80% 92%, transparent 92%); border-radius:50%; }
html.newlook.nl-tokyo .ar-card b, html.newlook.nl-tokyo .ex-tile b{ color:#ffe3ec; }
html.newlook.nl-tokyo .ar-ic, html.newlook.nl-tokyo .ex-ic{ border-radius:14px 4px 14px 4px !important; box-shadow:0 0 14px rgba(255,143,176,.25); }
html.newlook.nl-tokyo .cat-chip, html.newlook.nl-tokyo .cat2-chip, html.newlook.nl-tokyo .btn-secondary, html.newlook.nl-tokyo .ghost-btn{ border-radius:16px 5px 16px 5px; }
html.newlook.nl-tokyo .ar-card.cur{ outline:none; box-shadow:0 0 0 2px #ffc2d4; }
html.newlook.nl-tokyo .ar-card.cur::after{ background:#ffc2d4; color:#4a0f24; }
html.newlook.nl-tokyo .ar-more{ font-family:'NlMaru','Outfit',sans-serif; font-weight:700; background:#fff; color:#2a0a18; }
.thm-sp-tokyo-bg{ background:#0e0a14 url('/app/themes/tokyo.svg') 100% 0/cover no-repeat; }
.thm-sp-tokyo-font{ font-family:'NlMaru','Outfit',sans-serif; font-weight:700 !important; font-size:15px !important; }
.thm-sp-stack i.thm-sp-tokyo-bg{ background:radial-gradient(circle at 40% 40%, #ffb7c9 0 18%, transparent 19%), radial-gradient(circle at 62% 56%, #ffd6e1 0 16%, transparent 17%), radial-gradient(circle at 50% 50%, #3a1838, #0e0a14 75%); }

/* Temi speciali · ripasso: anche i pulsanti a icona della scheda (Trailer, Lista...), Indietro, episodio in corso, interruttori,
   fogli dal basso, scelta delle sorgenti, mini player, partite in diretta, righe del calendario e Continua a guardare. */
html.newlook.nl-spiriti .detail-icon-btn, html.newlook.nl-spiriti .back-btn, html.newlook.nl-spiriti .cw-ctl button, html.newlook.nl-spiriti .cw-stop{ border-radius:0; clip-path:polygon(4% 10%, 98% 0, 100% 88%, 2% 100%); }
html.newlook.nl-spiriti .detail-icon-btn.on, html.newlook.nl-spiriti .ns-tab.on, html.newlook.nl-spiriti .ns-seg button.on, html.newlook.nl-spiriti .ns-best, html.newlook.nl-spiriti .ns-src.pick, html.newlook.nl-spiriti #mpPlayBtn{ background:#fff !important; color:#000 !important; }
html.newlook.nl-spiriti .ns-src.pick small{ color:#000; opacity:.75; }
html.newlook.nl-spiriti .ns-src.pick .ns-best{ background:#000 !important; color:#fff !important; }
html.newlook.nl-spiriti .episode-card.is-current, html.newlook.nl-spiriti .episode-card:has(.ep-progress-bar):not(.is-watched):not(.is-current){ background:color-mix(in srgb, #ff5a1f 14%, transparent); box-shadow:inset 0 0 0 1.5px #ff5a1f; }
html.newlook.nl-spiriti .toggle-switch input:checked + .toggle-slider{ background:#ff5a1f; }
html.newlook.nl-spiriti .modal-sheet, html.newlook.nl-spiriti .po-sheet-card{ background:rgba(6,6,7,.98); }
html.newlook.nl-spiriti .mini-player .mp-progress > span{ background:#ff5a1f; }
html.newlook.nl-spiriti .match-card.live-now{ box-shadow:inset 0 0 0 1.5px #ff5a1f !important; background:color-mix(in srgb, #ff5a1f 10%, transparent) !important; }
html.newlook.nl-spiriti .heart-btn-inline.on, html.newlook.nl-spiriti .cal-notify-btn.on{ color:#ff5a1f; }
html.newlook.nl-spiriti .modal-header h2, html.newlook.nl-spiriti .modal-header h3, html.newlook.nl-spiriti .live-card b, html.newlook.nl-spiriti .match-card b, html.newlook.nl-spiriti .cal-row b{ font-family:'NlBrush','Outfit',sans-serif; font-weight:400; }
html.newlook.nl-villaggio .detail-icon-btn, html.newlook.nl-villaggio .back-btn, html.newlook.nl-villaggio .cw-ctl button, html.newlook.nl-villaggio .cw-stop{ border:2.5px solid #000; box-shadow:3px 3px 0 #000; }
html.newlook.nl-villaggio .detail-icon-btn.on, html.newlook.nl-villaggio .ns-tab.on, html.newlook.nl-villaggio .ns-seg button.on, html.newlook.nl-villaggio .ns-best, html.newlook.nl-villaggio .ns-src.pick, html.newlook.nl-villaggio #mpPlayBtn{ background:#ffd7a8 !important; color:#3a1c00 !important; }
html.newlook.nl-villaggio .ns-src.pick small{ color:#3a1c00; opacity:.75; }
html.newlook.nl-villaggio .ns-src.pick .ns-best{ background:#3a1c00 !important; color:#fff !important; }
html.newlook.nl-villaggio .episode-card.is-current, html.newlook.nl-villaggio .episode-card:has(.ep-progress-bar):not(.is-watched):not(.is-current){ background:color-mix(in srgb, #ff8a1f 14%, transparent); box-shadow:inset 0 0 0 1.5px #ff8a1f; }
html.newlook.nl-villaggio .toggle-switch input:checked + .toggle-slider{ background:#ff8a1f; }
html.newlook.nl-villaggio .modal-sheet, html.newlook.nl-villaggio .po-sheet-card{ background:#14204a; }
html.newlook.nl-villaggio .mini-player .mp-progress > span{ background:#ff8a1f; }
html.newlook.nl-villaggio .match-card.live-now{ box-shadow:inset 0 0 0 1.5px #ff8a1f !important; background:color-mix(in srgb, #ff8a1f 10%, transparent) !important; }
html.newlook.nl-villaggio .heart-btn-inline.on, html.newlook.nl-villaggio .cal-notify-btn.on{ color:#ff8a1f; }
html.newlook.nl-villaggio .modal-header h2, html.newlook.nl-villaggio .modal-header h3, html.newlook.nl-villaggio .live-card b, html.newlook.nl-villaggio .match-card b, html.newlook.nl-villaggio .cal-row b{ font-family:'NlComic','Outfit',sans-serif; font-weight:400; }
html.newlook.nl-brace .detail-icon-btn, html.newlook.nl-brace .back-btn, html.newlook.nl-brace .cw-ctl button, html.newlook.nl-brace .cw-stop{ box-shadow:0 0 0 1px rgba(255,140,60,.25); }
html.newlook.nl-brace .detail-icon-btn.on, html.newlook.nl-brace .ns-tab.on, html.newlook.nl-brace .ns-seg button.on, html.newlook.nl-brace .ns-best, html.newlook.nl-brace .ns-src.pick, html.newlook.nl-brace #mpPlayBtn{ background:linear-gradient(90deg,#ff7a2a,#ffb35a) !important; color:#1a0800 !important; }
html.newlook.nl-brace .ns-src.pick small{ color:#1a0800; opacity:.75; }
html.newlook.nl-brace .ns-src.pick .ns-best{ background:#1a0800 !important; color:#fff !important; }
html.newlook.nl-brace .episode-card.is-current, html.newlook.nl-brace .episode-card:has(.ep-progress-bar):not(.is-watched):not(.is-current){ background:color-mix(in srgb, #ff7a2a 14%, transparent); box-shadow:inset 0 0 0 1.5px #ff7a2a; }
html.newlook.nl-brace .toggle-switch input:checked + .toggle-slider{ background:#ff7a2a; }
html.newlook.nl-brace .modal-sheet, html.newlook.nl-brace .po-sheet-card{ background:rgba(14,8,6,.98); }
html.newlook.nl-brace .mini-player .mp-progress > span{ background:#ff7a2a; }
html.newlook.nl-brace .match-card.live-now{ box-shadow:inset 0 0 0 1.5px #ff7a2a !important; background:color-mix(in srgb, #ff7a2a 10%, transparent) !important; }
html.newlook.nl-brace .heart-btn-inline.on, html.newlook.nl-brace .cal-notify-btn.on{ color:#ff7a2a; }
html.newlook.nl-brace .modal-header h2, html.newlook.nl-brace .modal-header h3, html.newlook.nl-brace .live-card b, html.newlook.nl-brace .match-card b, html.newlook.nl-brace .cal-row b{ font-family:'NlSerif',Georgia,serif; font-weight:700; }
html.newlook.nl-neon .detail-icon-btn, html.newlook.nl-neon .back-btn, html.newlook.nl-neon .cw-ctl button, html.newlook.nl-neon .cw-stop{ border-radius:0; clip-path:polygon(8px 0, 100% 0, 100% calc(100% - 8px), calc(100% - 8px) 100%, 0 100%, 0 8px); box-shadow:inset 0 0 0 1px rgba(41,240,255,.45); }
html.newlook.nl-neon .detail-icon-btn.on, html.newlook.nl-neon .ns-tab.on, html.newlook.nl-neon .ns-seg button.on, html.newlook.nl-neon .ns-best, html.newlook.nl-neon .ns-src.pick, html.newlook.nl-neon #mpPlayBtn{ background:#29f0ff !important; color:#03101a !important; }
html.newlook.nl-neon .ns-src.pick small{ color:#03101a; opacity:.75; }
html.newlook.nl-neon .ns-src.pick .ns-best{ background:#03101a !important; color:#fff !important; }
html.newlook.nl-neon .episode-card.is-current, html.newlook.nl-neon .episode-card:has(.ep-progress-bar):not(.is-watched):not(.is-current){ background:color-mix(in srgb, #ff2bd6 14%, transparent); box-shadow:inset 0 0 0 1.5px #ff2bd6; }
html.newlook.nl-neon .toggle-switch input:checked + .toggle-slider{ background:#ff2bd6; }
html.newlook.nl-neon .modal-sheet, html.newlook.nl-neon .po-sheet-card{ background:rgba(6,8,22,.98); }
html.newlook.nl-neon .mini-player .mp-progress > span{ background:#ff2bd6; }
html.newlook.nl-neon .match-card.live-now{ box-shadow:inset 0 0 0 1.5px #ff2bd6 !important; background:color-mix(in srgb, #ff2bd6 10%, transparent) !important; }
html.newlook.nl-neon .heart-btn-inline.on, html.newlook.nl-neon .cal-notify-btn.on{ color:#ff2bd6; }
html.newlook.nl-neon .modal-header h2, html.newlook.nl-neon .modal-header h3, html.newlook.nl-neon .live-card b, html.newlook.nl-neon .match-card b, html.newlook.nl-neon .cal-row b{ font-family:'NlTech','Outfit',sans-serif; font-weight:700; }
html.newlook.nl-horror .detail-icon-btn, html.newlook.nl-horror .back-btn, html.newlook.nl-horror .cw-ctl button, html.newlook.nl-horror .cw-stop{ border-radius:0; clip-path:polygon(0 10%, 30% 0, 64% 8%, 100% 2%, 97% 92%, 66% 100%, 34% 92%, 2% 100%); }
html.newlook.nl-horror .detail-icon-btn.on, html.newlook.nl-horror .ns-tab.on, html.newlook.nl-horror .ns-seg button.on, html.newlook.nl-horror .ns-best, html.newlook.nl-horror .ns-src.pick, html.newlook.nl-horror #mpPlayBtn{ background:#e8e0d6 !important; color:#3a0508 !important; }
html.newlook.nl-horror .ns-src.pick small{ color:#3a0508; opacity:.75; }
html.newlook.nl-horror .ns-src.pick .ns-best{ background:#3a0508 !important; color:#fff !important; }
html.newlook.nl-horror .episode-card.is-current, html.newlook.nl-horror .episode-card:has(.ep-progress-bar):not(.is-watched):not(.is-current){ background:color-mix(in srgb, #c1121f 14%, transparent); box-shadow:inset 0 0 0 1.5px #c1121f; }
html.newlook.nl-horror .toggle-switch input:checked + .toggle-slider{ background:#c1121f; }
html.newlook.nl-horror .modal-sheet, html.newlook.nl-horror .po-sheet-card{ background:rgba(12,8,8,.98); }
html.newlook.nl-horror .mini-player .mp-progress > span{ background:#c1121f; }
html.newlook.nl-horror .match-card.live-now{ box-shadow:inset 0 0 0 1.5px #c1121f !important; background:color-mix(in srgb, #c1121f 10%, transparent) !important; }
html.newlook.nl-horror .heart-btn-inline.on, html.newlook.nl-horror .cal-notify-btn.on{ color:#c1121f; }
html.newlook.nl-horror .modal-header h2, html.newlook.nl-horror .modal-header h3, html.newlook.nl-horror .live-card b, html.newlook.nl-horror .match-card b, html.newlook.nl-horror .cal-row b{ font-family:'NlHorror','Outfit',sans-serif; font-weight:400; }
html.newlook.nl-tokyo .detail-icon-btn, html.newlook.nl-tokyo .back-btn, html.newlook.nl-tokyo .cw-ctl button, html.newlook.nl-tokyo .cw-stop{ box-shadow:0 0 0 1px rgba(255,194,212,.2); }
html.newlook.nl-tokyo .detail-icon-btn.on, html.newlook.nl-tokyo .ns-tab.on, html.newlook.nl-tokyo .ns-seg button.on, html.newlook.nl-tokyo .ns-best, html.newlook.nl-tokyo .ns-src.pick, html.newlook.nl-tokyo #mpPlayBtn{ background:#ffc2d4 !important; color:#4a0f24 !important; }
html.newlook.nl-tokyo .ns-src.pick small{ color:#4a0f24; opacity:.75; }
html.newlook.nl-tokyo .ns-src.pick .ns-best{ background:#4a0f24 !important; color:#fff !important; }
html.newlook.nl-tokyo .episode-card.is-current, html.newlook.nl-tokyo .episode-card:has(.ep-progress-bar):not(.is-watched):not(.is-current){ background:color-mix(in srgb, #ff8fb0 14%, transparent); box-shadow:inset 0 0 0 1.5px #ff8fb0; }
html.newlook.nl-tokyo .toggle-switch input:checked + .toggle-slider{ background:#ff8fb0; }
html.newlook.nl-tokyo .modal-sheet, html.newlook.nl-tokyo .po-sheet-card{ background:rgba(20,12,24,.98); }
html.newlook.nl-tokyo .mini-player .mp-progress > span{ background:#ff8fb0; }
html.newlook.nl-tokyo .match-card.live-now{ box-shadow:inset 0 0 0 1.5px #ff8fb0 !important; background:color-mix(in srgb, #ff8fb0 10%, transparent) !important; }
html.newlook.nl-tokyo .heart-btn-inline.on, html.newlook.nl-tokyo .cal-notify-btn.on{ color:#ff8fb0; }
html.newlook.nl-tokyo .modal-header h2, html.newlook.nl-tokyo .modal-header h3, html.newlook.nl-tokyo .live-card b, html.newlook.nl-tokyo .match-card b, html.newlook.nl-tokyo .cal-row b{ font-family:'NlMaru','Outfit',sans-serif; font-weight:700; }
/* Horror: il carattere che cola solo sui titoli grandi, non sui nomi piccoli di canali, partite e calendario. */
html.newlook.nl-horror .live-card b, html.newlook.nl-horror .match-card b, html.newlook.nl-horror .cal-row b{ font-family:inherit; font-weight:800; }
/* la riga dei pulsanti della scheda (Aurora) arrotonda con una regola piu' specifica: nei temi con forme proprie vince la forma del tema. */
html.newlook.nl-spiriti .detail-icon-btn, html.newlook.nl-spiriti .back-btn, html.newlook.nl-neon .detail-icon-btn, html.newlook.nl-neon .back-btn,
html.newlook.nl-horror .detail-icon-btn, html.newlook.nl-horror .back-btn{ border-radius:0 !important; }
html.newlook.nl-villaggio .detail-icon-btn, html.newlook.nl-villaggio .back-btn{ border-radius:14px !important; }

/* ═══ Temi speciali · Mini-player, Player Musicale, Skeleton di caricamento e Toast ═══ */
html.newlook.nl-spiriti .mini-player, html.newlook.nl-spiriti .skel-card, html.newlook.nl-spiriti .skel-shimmer{ border-radius:0 !important; clip-path:polygon(0 0, 92% 0, 100% 12%, 100% 100%, 0 100%); }
html.newlook.nl-spiriti #mpPlayBtn, html.newlook.nl-spiriti .player-overlay:has(#poMusicTools:not([hidden])) .po-controls .main{ border-radius:0 !important; clip-path:polygon(4% 10%, 98% 0, 100% 88%, 2% 100%); background:#fff !important; color:#000 !important; }
html.newlook.nl-spiriti .po-toast, html.newlook.nl-spiriti .hd-toast{ border-radius:0 !important; clip-path:polygon(2% 12%, 98% 0, 100% 88%, 1% 100%); background:#fff !important; color:#000 !important; font-family:'NlBrush','Outfit',sans-serif; font-weight:400; }

html.newlook.nl-villaggio .mini-player{ background:rgba(20,32,74,.94) !important; border:2.5px solid #000 !important; box-shadow:4px 4px 0 #000; border-radius:16px !important; }
html.newlook.nl-villaggio #mpPlayBtn, html.newlook.nl-villaggio .player-overlay:has(#poMusicTools:not([hidden])) .po-controls .main{ background:#ffd7a8 !important; color:#3a1c00 !important; border:2.5px solid #000 !important; box-shadow:3px 3px 0 #000 !important; border-radius:14px !important; }
html.newlook.nl-villaggio .skel-card, html.newlook.nl-villaggio .skel-shimmer{ border-radius:12px !important; border:2px solid rgba(0,0,0,.65); }
html.newlook.nl-villaggio .po-toast, html.newlook.nl-villaggio .hd-toast{ border-radius:14px !important; background:#ffd7a8 !important; color:#3a1c00 !important; border:2.5px solid #000 !important; box-shadow:4px 4px 0 #000 !important; }

html.newlook.nl-brace .mini-player{ background:rgba(18,10,8,.92) !important; border-color:rgba(255,140,60,.22) !important; box-shadow:0 10px 30px rgba(0,0,0,.5), inset 0 -16px 28px -14px rgba(255,110,30,.28); }
html.newlook.nl-brace .player-overlay:has(#poMusicTools:not([hidden])) .po-controls .main{ background:linear-gradient(90deg,#ff7a2a,#ffb35a) !important; color:#1a0800 !important; box-shadow:0 0 24px rgba(255,120,40,.45) !important; }
html.newlook.nl-brace .po-toast, html.newlook.nl-brace .hd-toast{ background:linear-gradient(90deg,#ff7a2a,#ffb35a) !important; color:#1a0800 !important; }

html.newlook.nl-neon .mini-player{ background:rgba(8,10,26,.94) !important; border:1px solid rgba(41,240,255,.45) !important; border-radius:0 !important; clip-path:polygon(12px 0, 100% 0, 100% calc(100% - 12px), calc(100% - 12px) 100%, 0 100%, 0 12px); }
html.newlook.nl-neon #mpPlayBtn, html.newlook.nl-neon .player-overlay:has(#poMusicTools:not([hidden])) .po-controls .main{ border-radius:0 !important; clip-path:polygon(8px 0, 100% 0, 100% calc(100% - 8px), calc(100% - 8px) 100%, 0 100%, 0 8px); background:#29f0ff !important; color:#03101a !important; }
html.newlook.nl-neon .skel-card, html.newlook.nl-neon .skel-shimmer{ border-radius:0 !important; clip-path:polygon(10px 0, 100% 0, 100% calc(100% - 10px), calc(100% - 10px) 100%, 0 100%, 0 10px); }
html.newlook.nl-neon .po-toast, html.newlook.nl-neon .hd-toast{ border-radius:0 !important; clip-path:polygon(10px 0, 100% 0, 100% calc(100% - 10px), calc(100% - 10px) 100%, 0 100%, 0 10px); background:#29f0ff !important; color:#03101a !important; }

html.newlook.nl-horror .mini-player{ background:rgba(18,12,12,.95) !important; border-radius:0 !important; clip-path:polygon(0 8%, 30% 0, 64% 6%, 100% 2%, 98% 92%, 66% 100%, 34% 94%, 1% 100%); }
html.newlook.nl-horror #mpPlayBtn, html.newlook.nl-horror .player-overlay:has(#poMusicTools:not([hidden])) .po-controls .main{ border-radius:0 !important; clip-path:polygon(0 10%, 30% 0, 64% 8%, 100% 2%, 97% 92%, 66% 100%, 34% 92%, 2% 100%); background:#e8e0d6 !important; color:#3a0508 !important; }
html.newlook.nl-horror .skel-card, html.newlook.nl-horror .skel-shimmer{ border-radius:0 !important; clip-path:polygon(0 6%, 30% 0, 64% 5%, 100% 1%, 98% 94%, 66% 100%, 34% 95%, 1% 100%); }
html.newlook.nl-horror .po-toast, html.newlook.nl-horror .hd-toast{ border-radius:0 !important; clip-path:polygon(0 10%, 30% 0, 64% 8%, 100% 2%, 97% 92%, 66% 100%, 34% 92%, 2% 100%); background:#e8e0d6 !important; color:#3a0508 !important; }

html.newlook.nl-tokyo .mini-player{ background:rgba(26,16,30,.92) !important; border-color:rgba(255,194,212,.18) !important; border-radius:22px 7px 22px 7px !important; }
html.newlook.nl-tokyo #mpPlayBtn, html.newlook.nl-tokyo .player-overlay:has(#poMusicTools:not([hidden])) .po-controls .main{ border-radius:18px 6px 18px 6px !important; background:#ffc2d4 !important; color:#4a0f24 !important; }
html.newlook.nl-tokyo .skel-card, html.newlook.nl-tokyo .skel-shimmer{ border-radius:20px 6px 20px 6px !important; }
html.newlook.nl-tokyo .po-toast, html.newlook.nl-tokyo .hd-toast{ border-radius:22px 7px 22px 7px !important; background:#ffc2d4 !important; color:#4a0f24 !important; }

/* Temi speciali: riquadri pieni invece che in vetro, come sull'app mobile. La firma in alto a destra si vede solo nel
   fondo libero e non passa mai sotto i testi di card e pannelli. --nl-sp-bg = colore di fondo del tema. */
html.newlook.nl-spiriti{ --nl-sp-bg:#060607; }
html.newlook.nl-villaggio{ --nl-sp-bg:#0b1430; }
html.newlook.nl-brace{ --nl-sp-bg:#050405; }
html.newlook.nl-neon{ --nl-sp-bg:#05060f; }
html.newlook.nl-horror{ --nl-sp-bg:#0a0707; }
html.newlook.nl-tokyo{ --nl-sp-bg:#0e0a14; }
html.newlook:is(.nl-spiriti,.nl-villaggio,.nl-brace,.nl-neon,.nl-horror,.nl-tokyo) :is(
  .settings-group, .settings-card, .cw-card, .cal-row, .cal-generic-row, .episode-card, .live-card, .match-card,
  .wishlist-card, .rc-card, .fz-card, .fz-stats, .ln-goal, .ln-mode, .ln-review, .ln-stat, .ln-week, .detail-tools-card,
  .vf-card, .mv-feed-card, .profile-pill-card, .th-card, .ap-card, .ob-card, .tn-panel, .d-hubs
){ background-color:color-mix(in srgb, var(--nl-sp-bg) 90%, #fff 10%) !important; -webkit-backdrop-filter:none; backdrop-filter:none; }

.po-notice-action-btn {
  background: linear-gradient(135deg, #00cec9, #0984e3);
  color: #fff;
  border: none;
  padding: 5px 13px;
  border-radius: 14px;
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
  margin-left: 8px;
  box-shadow: 0 2px 8px rgba(0, 206, 201, 0.35);
  transition: transform 0.15s ease, filter 0.15s ease;
}
.po-notice-action-btn:hover {
  transform: scale(1.04);
  filter: brightness(1.15);
}
.po-notice-action-btn:active {
  transform: scale(0.97);
}

/* ── Live TV Sync Indicator & Feed Shimmer (Opzione A + C) ── */
.live-sync-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 5px 12px;
  font-size: 11.5px;
  font-weight: 600;
  border-radius: 999px;
  background: rgba(56, 189, 248, 0.08);
  border: 1px solid rgba(56, 189, 248, 0.25);
  color: #38bdf8;
  margin-bottom: 12px;
  transition: opacity 0.4s ease, transform 0.4s ease;
  width: fit-content;
}
.live-sync-pill.synced {
  background: rgba(16, 185, 129, 0.1);
  border-color: rgba(16, 185, 129, 0.35);
  color: #34d399;
}
.live-sync-pill.fade-out {
  opacity: 0;
  transform: translateY(-4px);
  pointer-events: none;
}
.live-sync-spinner {
  width: 12px;
  height: 12px;
  border: 2px solid rgba(56, 189, 248, 0.25);
  border-top-color: #38bdf8;
  border-radius: 50%;
  animation: liveSpin 0.75s linear infinite;
  display: inline-block;
  flex-shrink: 0;
}
@keyframes liveSpin {
  to { transform: rotate(360deg); }
}

.streamed-feed-loading-row, .stream-picker-loading-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px dashed rgba(255, 255, 255, 0.12);
  border-radius: 12px;
  animation: livePulseShimmer 2s ease-in-out infinite;
}
@keyframes livePulseShimmer {
  0%, 100% { opacity: 0.6; background: rgba(255, 255, 255, 0.02); }
  50% { opacity: 1; background: rgba(255, 255, 255, 0.05); }
}
.streamed-feed-loading-row .feed-source-title, .stream-picker-loading-row .feed-source-title {
  font-size: 13px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.85);
}
.streamed-feed-loading-row .feed-source-sub, .stream-picker-loading-row .feed-source-sub {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.5);
}


/* Miniplayer: Play, Avanti e Chiudi tutti da 40px sulla stessa linea, 6px tra uno e l'altro (prima misure diverse e
   le icone sembravano sfalsate). Play resta pieno nel colore/forma del tema, gli altri due in vetro. */
.mini-player .ctrls{ gap:6px; }
.mini-player .ctrls button{ width:40px !important; height:40px !important; min-width:40px; padding:0 !important; flex:none; }
.mini-player .ctrls #mpNextBtn, .mini-player .ctrls #mpCloseBtn{ background:rgba(255,255,255,.08); }
.mini-player .ctrls #mpNextBtn:hover, .mini-player .ctrls #mpCloseBtn:hover{ background:rgba(255,255,255,.16); transform:none; }
.mini-player .ctrls svg{ width:20px; height:20px; }
.mini-player .ctrls #mpPlayBtn svg{ width:22px; height:22px; }
/* Contatore delle schede della Libreria: 22px, tondo con una cifra, pillola con due o piu' */
.lib-subtab{ display:inline-flex; align-items:center; gap:7px; }
.lib-cnt{ display:inline-grid; place-items:center; min-width:22px; height:22px; padding:0 7px; box-sizing:border-box; border-radius:11px;
  background:rgba(255,255,255,.14); color:#fff; font-size:12px; font-weight:700; font-variant-numeric:tabular-nums; line-height:1; }
.lib-subtab.active .lib-cnt{ background:rgba(0,0,0,.22); }
html.newlook .lib-subtab.active .lib-cnt{ background:var(--nl-on, rgba(0,0,0,.22)); color:var(--nl-tone, #fff); }

/* Player musica a schermo intero: la fascia invisibile in alto che fa riapparire i comandi del video (z-index 12)
   copriva i pulsanti della barra in alto (con Aurora a z-index 3): toccando X o "schermo intero" non succedeva
   nulla. Nella musica i comandi non si nascondono, la fascia non serve. Schermo intero tolto nella musica: su iPhone
   non esiste per la pagina e altrove ruotava lo schermo in orizzontale senza motivo. */
.player-overlay:has(#poMusicTools:not([hidden])) .po-top-trigger{ display:none; }
.player-overlay:has(#poMusicTools:not([hidden])) .po-topbar{ z-index:16 !important; }
.player-overlay:has(#poMusicTools:not([hidden])) #poFullscreenBtn{ display:none; }

/* Impostazioni: chip delle categorie, 4×2 della stessa larghezza (stanno sempre nella pagina, niente da scorrere);
   da computer una riga sola. Spariscono mentre si cerca (si cerca in tutte). */
.set-cats{ display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:6px; margin:10px 0 18px; }
.set-cats[hidden]{ display:none; }
@media (min-width:901px){ .set-cats{ grid-template-columns:repeat(8, minmax(0, 1fr)); max-width:860px; } }
.set-cat{ height:34px; border:none; border-radius:17px; background:rgba(255,255,255,.08); color:rgba(255,255,255,.85); font:inherit; font-size:12.5px; font-weight:700;
  cursor:pointer; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; padding:0 6px; }
.set-cat:hover{ background:rgba(255,255,255,.14); }
.set-cat.on{ background:var(--accent, var(--dd-red, #e50914)); color:#fff; }
html.newlook .set-cat.on{ background:var(--nl-tone); color:var(--nl-on); }
.set-cat:focus-visible{ outline:2px solid #fff; outline-offset:2px; }

/* Hub Musica/Manga/Libri (telefono e computer): le sezioni sono integrate direttamente nella barra principale (in basso su mobile, in alto su desktop), quindi il sottomenu ridondante dell'hub si nasconde. */
html.m-hubbar .music-tabs-row, html.m-hubbar .books-tabs-row{ display:none !important; }
.books-lib-switch{ display:none; }
html.m-hubbar #mScreen .books-lib-switch{ display:grid; grid-template-columns:1fr 1fr; gap:4px; margin:10px 0 4px; padding:3px; border-radius:16px; background:rgba(255,255,255,.06); }
.books-lib-switch button{ height:34px; border:none; border-radius:13px; background:transparent; color:rgba(255,255,255,.75); font:inherit; font-size:13px; font-weight:700; cursor:pointer; }
.books-lib-switch button.on{ background:var(--accent, var(--dd-red, #e50914)); color:#fff; }
html.newlook .books-lib-switch button.on{ background:var(--nl-tone); color:var(--nl-on); }
.books-lib-switch button:focus-visible{ outline:2px solid #fff; outline-offset:2px; }

/* Musica offline (js/music_offline.js): freccia nelle righe dei brani, striscia "Tieni aperta la webapp", scheda Scaricati */
.dl-slot{ display:inline-flex; flex:none; }
.dl-btn{ width:34px; height:34px; flex:none; border:none; border-radius:50%; background:rgba(255,255,255,.08); color:#fff; display:inline-grid; place-items:center; cursor:pointer; padding:0; position:relative; font:inherit; }
.dl-btn svg{ width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; }
.dl-btn:hover{ background:rgba(255,255,255,.16); }
.dl-btn.done{ background:rgba(63,191,138,.2); color:#8ff0b8; font-weight:800; font-size:14px; }
.dl-btn.busy{ background:conic-gradient(#ffd37a calc(var(--p) * 1%), rgba(255,255,255,.12) 0); cursor:default; }
.dl-btn.busy::before{ content:""; position:absolute; inset:3px; border-radius:50%; background:#15161f; }
.dl-btn.busy span{ position:relative; font-size:9.5px; font-weight:800; color:#ffd37a; font-variant-numeric:tabular-nums; }
.dl-btn:focus-visible{ outline:2px solid #fff; outline-offset:2px; }
.dl-banner{ position:fixed; left:12px; right:12px; bottom:calc(96px + env(safe-area-inset-bottom, 0px)); z-index:1200; max-width:520px; margin:0 auto;
  display:flex; gap:10px; align-items:flex-start; background:#2b2412; border:1px solid #5a4a1c; color:#ffd37a; border-radius:16px; padding:10px 12px;
  font-size:12.5px; line-height:1.35; box-shadow:0 10px 30px rgba(0,0,0,.45); }
.dl-banner b{ display:block; color:#fff; font-size:13px; margin-bottom:2px; }
.dl-ban-tx{ flex:1; min-width:0; }
.dl-ban-bar{ display:block; height:4px; border-radius:3px; background:rgba(255,255,255,.12); margin-top:7px; overflow:hidden; }
.dl-ban-bar i{ display:block; height:100%; background:#ffd37a; transition:width .3s; }
@media (min-width:901px){ .dl-banner{ bottom:24px; } }
.dl-space{ display:flex; align-items:center; justify-content:space-between; gap:10px; color:var(--text-muted, #9b98a8); font-size:12.5px; margin:4px 2px 12px; }
.dl-clear{ border:none; background:rgba(255,255,255,.08); color:#fff; border-radius:14px; height:30px; padding:0 12px; font:inherit; font-size:12px; font-weight:600; cursor:pointer; }
.dl-sec{ font-size:11px; letter-spacing:.12em; font-weight:700; color:var(--text-muted, #9b98a8); margin:6px 2px 8px; text-transform:uppercase; }
/* Scarica video da computer: avviso in cima alla lista sorgenti in modalita' download */
.dl-mode-hint{ background:#2b2412; border:1px solid #5a4a1c; color:#ffd37a; border-radius:14px; padding:10px 12px; font-size:13px; line-height:1.4; margin:0 0 12px; }
.dl-mode-hint b{ display:block; color:#fff; margin-bottom:2px; }

/* Modifica profili (nome e icona) nelle Impostazioni */
.profile-pill-card{ position:relative; }
.profile-edit-btn{ position:absolute; top:8px; right:8px; width:30px; height:30px; border:none; border-radius:50%; background:rgba(255,255,255,.1); color:#fff; display:grid; place-items:center; cursor:pointer; padding:0; }
.profile-edit-btn:hover{ background:rgba(255,255,255,.2); }
.profile-edit-btn:focus-visible, .prof-ed-av:focus-visible, .prof-ed-col:focus-visible{ outline:2px solid #fff; outline-offset:2px; }
.profile-add-card{ border-style:dashed !important; opacity:.85; }
.profile-add-ic{ width:56px; height:56px; border-radius:50%; display:grid; place-items:center; font-size:28px; font-weight:300; background:rgba(255,255,255,.08); color:#fff; }
.prof-ed-sheet{ padding:16px 18px calc(18px + env(safe-area-inset-bottom, 0px)); overflow:auto; gap:10px; }
.prof-ed-head{ display:flex; align-items:center; justify-content:space-between; font-size:17px; }
.prof-ed-preview{ display:flex; justify-content:center; margin:4px 0; }
.prof-ed-lbl{ font-size:12px; font-weight:700; letter-spacing:.06em; color:var(--text-muted, #9b98a8); margin-top:4px; }
.prof-ed-lbl small{ font-weight:500; letter-spacing:0; }
.prof-ed-grid{ display:grid; grid-template-columns:repeat(auto-fill, 52px); justify-content:space-between; gap:8px; }
.prof-ed-av{ width:52px; height:52px; border:2px solid transparent; background:none; border-radius:50%; padding:2px; cursor:pointer; display:grid; place-items:center; }
.prof-ed-av.on{ border-color:#fff; }
.prof-ed-colors{ display:flex; gap:10px; flex-wrap:wrap; }
.prof-ed-col{ width:34px; height:34px; border-radius:50%; border:3px solid transparent; cursor:pointer; padding:0; }
.prof-ed-col.on{ border-color:#fff; }
.prof-ed-acts{ display:flex; justify-content:space-between; align-items:center; gap:10px; margin-top:10px; }
.prof-ed-del{ color:#ff6b6b !important; }
/* Profilo in uso su fondo chiaro (Aurora): matita scura invece che bianca su bianco */
.profile-pill-card.active .profile-edit-btn{ background:rgba(0,0,0,.12); color:inherit; }
html.newlook .profile-pill-card.active .profile-edit-btn{ background:color-mix(in srgb, var(--nl-on, #410006) 14%, transparent); color:var(--nl-on, #410006); }
/* Avatar a collezioni (DiceBear) nella finestra profilo */
.prof-ed-colls{ display:flex; gap:6px; overflow-x:auto; overflow-y:hidden; flex-shrink:0; min-height:36px; padding:2px 0 4px; scrollbar-width:none; }
.prof-ed-colls::-webkit-scrollbar{ display:none; }
.prof-ed-colls button{ flex:none; height:32px; padding:0 12px; border-radius:16px; border:none; background:rgba(255,255,255,.08); color:#ddd; font:inherit; font-size:12.5px; font-weight:700; cursor:pointer; white-space:nowrap; }
.prof-ed-colls.small button{ height:28px; font-size:11.5px; }
.prof-ed-colls button.on{ background:var(--accent, var(--dd-red, #e50914)); color:#fff; }
html.newlook .prof-ed-colls button.on{ background:var(--nl-tone); color:var(--nl-on); }
.prof-ed-colls button:focus-visible{ outline:2px solid #fff; outline-offset:2px; }
.prof-ed-custom{ display:grid; gap:10px; }
.prof-ed-row{ display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.prof-ed-row .field{ flex:1; min-width:150px; }
.prof-ed-tog{ display:flex; align-items:center; gap:6px; font-size:13px; cursor:pointer; }
.prof-ed-credit{ font-size:11px; color:var(--text-muted, #9b98a8); }
@keyframes profBump{ 0%{ transform:scale(.85) } 60%{ transform:scale(1.08) } 100%{ transform:scale(1) } }
.prof-ed-preview.bump{ animation:profBump .4s cubic-bezier(.3,1.6,.5,1); }
@media (prefers-reduced-motion: reduce){ .prof-ed-preview.bump{ animation:none; } }

/* Lista sorgenti come l'app: peer colorati e caricamento visibile */
.ns-peer.g{ color:#10ac84; } .ns-peer.y{ color:#f0b429; } .ns-peer.r{ color:#e55039; }
.ns-ls .ns-prov{ margin-right:0; height:24px; border-radius:999px; }
.ns-ld{ background:rgba(255,255,255,.05); border-radius:18px; padding:14px; margin:4px 0 12px; display:flex; flex-direction:column; gap:6px; }
.ns-ld b{ font-size:14px; }
.ns-ld-row{ display:flex; justify-content:space-between; font-size:13px; color:#ddd; }
.ns-ld-st{ color:rgba(255,255,255,.55); display:inline-flex; align-items:center; gap:6px; }
.ns-spin{ width:11px; height:11px; border:2px solid rgba(255,255,255,.25); border-top-color:#fff; border-radius:50%; animation:nsSpin .8s linear infinite; }
@keyframes nsSpin{ to{ transform:rotate(360deg); } }
.ns-ld-bar{ height:3px; background:rgba(255,255,255,.08); border-radius:3px; overflow:hidden; margin-top:4px; }
.ns-ld-bar i{ display:block; height:100%; width:45%; background:var(--accent,var(--dd-red, #e50914)); animation:nsBar 1.6s ease-in-out infinite; }
@keyframes nsBar{ from{ margin-left:-45%; } to{ margin-left:100%; } }
.ns-ld-time{ font-size:12px; color:var(--text-muted); }
.ns-sk{ height:66px; border-radius:22px; margin-bottom:8px; background:linear-gradient(90deg,rgba(255,255,255,.04),rgba(255,255,255,.09),rgba(255,255,255,.04)); background-size:200% 100%; animation:nsSk 1.2s linear infinite; }
@keyframes nsSk{ to{ background-position:-200% 0; } }
@media (prefers-reduced-motion:reduce){ .ns-spin, .ns-ld-bar i, .ns-sk{ animation:none; } }

/* Azioni della scheda (come l'app): stagione vista / reset, spunta per episodio */
.season-acts{ display:flex; flex-wrap:wrap; gap:8px; margin:0 0 14px; }
.season-act{ appearance:none; border:none; cursor:pointer; font:inherit; font-size:12.5px; font-weight:600; color:#fff; background:rgba(255,255,255,.09); padding:8px 14px; border-radius:999px; }
.season-act:hover{ background:rgba(255,255,255,.16); }
.season-act:focus-visible, .ep-check:focus-visible{ outline:2px solid #fff; outline-offset:2px; }
.ep-check{ position:absolute; bottom:10px; right:8px; z-index:3; width:32px; height:32px; border-radius:50%; display:grid; place-items:center; cursor:pointer;
  appearance:none; font:inherit; font-size:15px; font-weight:800; color:rgba(255,255,255,.8); background:rgba(0,0,0,.55); border:1.5px solid rgba(255,255,255,.55); }
.ep-check:hover{ background:rgba(0,0,0,.75); }
.ep-check.on{ color:#fff; background:#2e9e4f; border-color:#4caf50; }
.movie-acts{ display:flex; flex-wrap:wrap; gap:14px; }
.ns-tx .ns-best{ align-self:flex-start; width:auto; }

/* Tema Aurora: nuovi bottoni della scheda e caricamento sorgenti nel colore tonale */
html.newlook .season-act{ border-radius:16px; background:rgba(255,255,255,.08); }
html.newlook .season-act:hover, html.newlook .season-act:active{ background:var(--nl-tone); color:var(--nl-on); }
html.newlook .season-act:active{ transform:scale(.95); transition:transform .3s var(--nl-spring); }
html.newlook .ns-ld-bar i{ background:var(--nl-acc); }
html.newlook .ns-ld{ border-radius:24px; }
html.newlook .ns-sk{ border-radius:26px; }
html.newlook .ns-tx .ns-best{ background:var(--nl-tone); color:var(--nl-on); }

/* ── Aurora nei player (video, diretta, musica, mini player): accenti nel colore tonale del tema scelto ──
   I colori vengono da --nl-tone/--nl-on/--nl-acc (newlook.js), quindi seguono anche i temi speciali.
   Sopra il video niente decorazioni: solo bottoni, barra e pannelli. */
html.newlook #playerOverlay .po-controls .main{ background:var(--nl-tone); color:var(--nl-on); -webkit-backdrop-filter:none; backdrop-filter:none; border-radius:28px; }
html.newlook #playerOverlay .po-controls .main:hover{ box-shadow:0 0 0 4px rgba(255,255,255,.18); }
html.newlook .po-controls .main svg{ fill:currentColor; }
html.newlook .player-overlay .po-seek .bar > span,
html.newlook .player-overlay:has(#poMusicTools:not([hidden])) .po-seek .bar > span{ background:var(--nl-tone); }
html.newlook .player-overlay .po-seek .bar > span::after{ content:''; position:absolute; right:-3px; top:50%; width:6px; height:18px; border-radius:3px; background:#fff; transform:translateY(-50%); box-shadow:0 0 0 2px rgba(0,0,0,.25); }
html.newlook .po-skip-intro-btn{ background:var(--nl-tone); color:var(--nl-on); }
html.newlook #playerOverlay .po-topbar .po-icon-btn{ background:rgba(20,21,27,.72); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); border:1px solid rgba(255,255,255,.1); }
html.newlook .po-track-menu{ border-radius:22px; background:rgba(20,21,27,.92); -webkit-backdrop-filter:blur(16px); backdrop-filter:blur(16px); border:1px solid rgba(255,255,255,.08); }
html.newlook .po-track-menu button{ border-radius:14px; }
html.newlook #poLiveBadge.live-dot{ background:var(--nl-tone); color:var(--nl-on); border-radius:999px; padding:3px 10px; }
html.newlook .po-live-strip .lc.active{ box-shadow:inset 0 0 0 3px var(--nl-tone); }
html.newlook .po-lyrics-line.active{ color:var(--nl-tone); }
html.newlook .po-eq-bars span, html.newlook .mini-eq span{ background:var(--nl-tone); }
html.newlook .po-vol-slider{ accent-color:var(--nl-tone); }
/* Mini player: play nel colore tonale, barra tonale */
html.newlook .mini-player #mpPlayBtn{ background:var(--nl-tone); color:var(--nl-on); border-radius:14px; width:40px; height:40px; display:grid; place-items:center; transition:border-radius .5s var(--nl-spring), transform .45s var(--nl-spring); }
html.newlook .mini-player #mpPlayBtn:active{ border-radius:20px; transform:scale(.92); }
html.newlook .mini-player .mp-progress > span{ background:var(--nl-tone); }
/* Aurora: niente contorno e alone rossi sui bottoni del player (restavano accesi anche dopo il clic, per :focus).
   Al passaggio del mouse o al tocco si schiarisce; col tasto Tab il contorno e' nel colore del tema. */
html.newlook .po-icon-btn:hover, html.newlook .po-icon-btn:focus{ outline:none; box-shadow:none; background:rgba(255,255,255,.24); }
html.newlook .po-icon-btn:focus-visible{ outline:2px solid var(--nl-tone); outline-offset:2px; box-shadow:none; }
html.newlook .po-icon-btn.has-tracks{ border:2px solid var(--nl-tone); color:var(--nl-tone); }
/* Badge tecnici in caricamento */
.tb-badge.tb-sk{ width:42px; padding:0; border-color:transparent; background:linear-gradient(90deg,rgba(255,255,255,.06),rgba(255,255,255,.14),rgba(255,255,255,.06)); background-size:200% 100%; animation:tbSk 1.2s linear infinite; }
.tb-badge.tb-sk.wide{ width:96px; }
@keyframes tbSk{ to{ background-position:-200% 0; } }
@media (prefers-reduced-motion:reduce){ .tb-badge.tb-sk{ animation:none; } }

/* Il tuo account: scadenza Pro, voucher, Debrid */
.acc-plan{ margin-top:16px; display:flex; flex-direction:column; gap:8px; }
.acc-exp{ display:flex; justify-content:space-between; font-size:13.5px; color:#ddd; }
.acc-exp.soon{ color:#ff8a92; }
.acc-bar{ height:6px; border-radius:6px; background:rgba(255,255,255,.08); overflow:hidden; }
.acc-bar i{ display:block; height:100%; border-radius:6px; background:#ffd700; }
.acc-exp.soon + .acc-bar i{ background:#ff6b74; }
.acc-vf{ display:flex; gap:8px; margin-top:6px; }
.acc-vf .field{ flex:1; margin:0; letter-spacing:.05em; }
.acc-btn{ appearance:none; border:none; cursor:pointer; font:inherit; font-weight:900; font-size:13px; padding:0 18px; border-radius:999px; background:#fff; color:#000; }
.acc-btn:disabled{ opacity:.6; }
.acc-hint{ font-size:12px; color:var(--text-muted); line-height:1.4; }
.acc-hint.err{ color:#ff6b74; }
.acc-debrid{ display:flex; flex-direction:column; }
.acc-drow{ display:flex; gap:12px; align-items:center; padding:10px 0; border-top:1px solid rgba(255,255,255,.07); }
.acc-dico{ width:34px; height:34px; border-radius:10px; background:rgba(255,255,255,.07); display:grid; place-items:center; flex:none; }
.acc-drow b{ display:block; font-size:13.5px; } .acc-drow small{ color:var(--text-muted); font-size:12px; }
.acc-st{ margin-left:auto; font-size:12px; font-weight:800; padding:4px 10px; border-radius:999px; white-space:nowrap; }
.acc-st.g{ background:rgba(16,172,132,.15); color:#10ac84; } .acc-st.y{ background:rgba(240,180,41,.15); color:#f0b429; } .acc-st.r{ background:color-mix(in srgb, var(--dd-red, #e50914) 15%, transparent); color:#ff6b74; }
html.newlook .acc-bar i{ background:var(--nl-tone); }
html.newlook .acc-btn{ background:var(--nl-tone); color:var(--nl-on); }
html.newlook .acc-vf .field{ border-radius:16px; }
.acc-life{ display:flex; align-items:center; gap:14px; padding:12px 14px; border-radius:16px; background:linear-gradient(135deg,rgba(255,215,0,.12),rgba(255,215,0,.03)); border:1px solid rgba(255,215,0,.25); }
.acc-inf{ width:42px; height:42px; border-radius:12px; display:grid; place-items:center; font-size:26px; font-weight:900; color:#1a1200; background:#ffd700; flex:none; line-height:1; }
.acc-life b{ display:block; font-size:15px; } .acc-life small{ color:var(--text-muted); font-size:12px; }
html.newlook .acc-life{ background:rgba(255,255,255,.05); border-color:rgba(255,255,255,.1); border-radius:22px; }
html.newlook .acc-inf{ background:var(--nl-tone); color:var(--nl-on); border-radius:14px; }

/* Notifiche */
.push-card{ display:flex; flex-direction:column; gap:12px; }
.push-row{ display:flex; gap:12px; align-items:center; }
.push-bell{ width:46px; height:46px; border-radius:14px; background:color-mix(in srgb, var(--dd-red, #e50914) 15%, transparent); display:grid; place-items:center; font-size:22px; flex:none; }
.push-row b{ display:block; font-size:15px; } .push-row small{ display:block; color:var(--text-muted); font-size:12.5px; line-height:1.4; margin-top:2px; }
.push-btn{ appearance:none; border:none; cursor:pointer; font:inherit; font-weight:900; font-size:14px; height:44px; border-radius:999px; background:#fff; color:#000; }
.push-btn.ghost{ background:rgba(255,255,255,.08); color:#fff; font-weight:700; }
html.newlook .push-bell{ background:rgba(255,255,255,.08); border-radius:16px; }
html.newlook .push-btn:not(.ghost){ background:var(--nl-tone); color:var(--nl-on); }
/* Notifiche: interruttori per tipo e avviso in Home */
.push-kinds{ display:flex; flex-direction:column; }
.push-kind{ appearance:none; border:none; background:none; color:inherit; font:inherit; text-align:left; cursor:pointer; display:flex; align-items:center; gap:12px; padding:11px 0; border-top:1px solid rgba(255,255,255,.07); width:100%; }
.push-kind:first-child{ border-top:none; padding-top:0; }
.push-kind:focus-visible{ outline:2px solid #fff; outline-offset:2px; border-radius:10px; }
.push-ki{ width:34px; height:34px; border-radius:10px; background:rgba(255,255,255,.07); display:grid; place-items:center; flex:none; }
.push-kt{ flex:1; min-width:0; } .push-kt b{ display:block; font-size:13.5px; } .push-kt small{ display:block; color:var(--text-muted); font-size:11.5px; }
.push-tg{ width:44px; height:26px; border-radius:99px; background:rgba(255,255,255,.18); position:relative; flex:none; transition:background .2s; }
.push-tg::after{ content:''; position:absolute; left:3px; top:3px; width:20px; height:20px; border-radius:50%; background:#fff; transition:left .2s; }
.push-tg.on{ background:var(--dd-red, #e50914); } .push-tg.on::after{ left:21px; }
html.newlook .push-tg.on{ background:var(--nl-tone); } html.newlook .push-tg.on::after{ background:var(--nl-on); }
.push-ok{ font-size:12px; color:#6ee7b7; }
.push-banner{ position:fixed; left:12px; right:12px; bottom:calc(84px + env(safe-area-inset-bottom, 0px)); z-index:900; max-width:460px; margin:0 auto; display:flex; gap:12px; align-items:center; padding:12px 14px; border-radius:18px; background:rgba(22,23,30,.96); border:1px solid rgba(255,255,255,.1); box-shadow:0 12px 30px rgba(0,0,0,.45); animation:pushIn .4s ease both; }
@keyframes pushIn{ from{ transform:translateY(16px); opacity:0; } }
.push-bi{ font-size:20px; }
.push-bt{ flex:1; font-size:13px; } .push-bt b{ display:block; }
.push-bl{ appearance:none; border:none; background:none; padding:0; margin-top:2px; color:#ff8a92; font:inherit; font-weight:800; cursor:pointer; }
html.newlook .push-bl{ color:var(--nl-tone); }
.push-bx{ appearance:none; border:none; background:rgba(255,255,255,.08); color:#fff; width:30px; height:30px; border-radius:50%; cursor:pointer; flex:none; }
@media (min-width:900px){ .push-banner{ left:auto; right:24px; bottom:24px; } }

/* iPhone con notch / Dynamic Island: i comandi del player non finiscono sotto la barra Home in basso
   ne' sotto il notch quando il telefono e' in orizzontale; le liste nei pannelli arrivano sopra la barra Home. */
.po-topbar{ padding-left:calc(22px + env(safe-area-inset-left, 0px)); padding-right:calc(22px + env(safe-area-inset-right, 0px)); }
.po-bottom{ padding-left:calc(22px + env(safe-area-inset-left, 0px)); padding-right:calc(22px + env(safe-area-inset-right, 0px)); padding-bottom:max(26px, calc(env(safe-area-inset-bottom, 0px) + 12px)); }
.modal-body{ padding-bottom:calc(24px + env(safe-area-inset-bottom, 0px)); }
/* Telefoni stretti (S23 e piu' piccoli): la domanda sopra, Attiva e No insieme sotto (prima "No" finiva da solo a capo) */
@media (max-width:400px){
  .ap-hint span{ flex:1 1 100%; }
  html.newlook .ap-caption.ap-hint{ flex-wrap:wrap; }
  html.newlook .ap-caption.ap-hint span{ white-space:normal; flex:1 1 100%; }
}
/* Tastiera aperta sul telefono: barra in basso e mini player nascosti (non salgono sopra la tastiera) */
html.kbd-open #mTabbar, html.kbd-open #miniPlayer, html.kbd-open .push-banner{ visibility:hidden !important; opacity:0 !important; pointer-events:none !important; }

/* iOS: short hub pages must always fill the viewport so fixed bars never shift */
@media (pointer:coarse){ body{min-height:calc(var(--app-vh,100vh) + 1px)} }

/* Menu brano, artista/album, Shorts */
.tm-sheet{max-width:420px;padding:16px 14px calc(14px + env(safe-area-inset-bottom,0px))}
.tm-head{display:flex;gap:12px;align-items:center;margin-bottom:8px}.tm-head img{width:48px;height:48px;border-radius:8px;object-fit:cover}
.tm-head div{flex:1;min-width:0}.tm-head b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tm-head small{color:var(--text-muted,#9a9aa6)}
.tm-item{display:flex;gap:14px;align-items:center;width:100%;background:none;border:0;color:inherit;font:inherit;font-size:15px;padding:13px 6px;border-radius:10px;cursor:pointer;text-align:left}
.tm-item span{width:22px;text-align:center}.tm-item:hover,.tm-item:focus-visible{background:rgba(255,255,255,.07)}
.ma-head{display:flex;gap:16px;align-items:center;margin:6px 0 18px}.ma-head img{width:120px;height:120px;border-radius:50%;object-fit:cover;flex:none}
.ma-head h2{margin:0 0 4px;font-size:24px}.ma-head small{display:block;color:var(--text-muted,#9a9aa6);margin-bottom:10px}
.ms-entry{display:flex;gap:12px;align-items:center;width:100%;margin:6px 0 14px;padding:12px 14px;border-radius:14px;border:1px solid rgba(255,255,255,.12);background:linear-gradient(135deg,color-mix(in srgb, var(--dd-red, #e50914) 25%, transparent),rgba(139,92,246,.2));color:#fff;font:inherit;text-align:left;cursor:pointer}
.ms-entry>span{width:36px;height:36px;border-radius:50%;background:#fff;color:#000;display:grid;place-items:center;flex:none}.ms-entry small{display:block;color:#ffffffb3;font-size:12px}
.ms-overlay{position:fixed;inset:0;z-index:9990;background:#000}
.ms-feed{height:100%;overflow-y:auto;scroll-snap-type:y mandatory;overscroll-behavior:contain}
.ms-card{position:relative;height:var(--app-vh,100dvh);scroll-snap-align:start;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden}
.ms-bg{position:absolute;inset:-40px;background-size:cover;background-position:center;filter:blur(40px) brightness(.45)}
.ms-art{position:relative;width:min(72vw,340px);aspect-ratio:1;border-radius:18px;box-shadow:0 20px 60px #000a;object-fit:cover}
.ms-info{position:relative;width:min(86vw,420px);margin-top:22px;text-align:center}.ms-info b{display:block;font-size:20px}.ms-info small{color:#ffffffb3}
.ms-act{display:flex;gap:10px;justify-content:center;margin-top:16px}.ms-act button{height:42px;padding:0 16px;border-radius:99px;border:0;background:#ffffff26;color:#fff;font:inherit;font-weight:700;cursor:pointer}
.ms-act button:first-child{background:#fff;color:#000}
.ms-close{position:absolute;z-index:2;top:calc(12px + env(safe-area-inset-top,0px));right:14px;width:40px;height:40px;border-radius:50%;border:0;background:#0008;color:#fff;font-size:16px;cursor:pointer}

/* Aurora: hub Libri e Manga — pulsanti e badge leggibili (meno grassetto, colori del tema) */
html.newlook :is(#mScreen,#dScreen) :is(.manga-chip,.bb-btn,.b-overlay-btn,.b-badge,.books-badge-pill,.books-shelf-link,.btn-primary,.books-search-btn){font-weight:600!important;letter-spacing:.01em}
html.newlook :is(#mScreen,#dScreen) .manga-chip{color:#f4f3f8!important;background:rgba(255,255,255,.07)!important}
html.newlook :is(#mScreen,#dScreen) .manga-chip.active,html.newlook :is(#mScreen,#dScreen) .manga-chip.active .chip-ic{background:var(--nl-tone,#ffd9dc)!important;color:var(--nl-on,#410006)!important;border-color:transparent!important}
html.newlook :is(#mScreen,#dScreen) .b-overlay-btn.play,html.newlook :is(#mScreen,#dScreen) .btn-primary,html.newlook :is(#mScreen,#dScreen) .books-search-btn{background:var(--nl-tone,#ffd9dc)!important;color:var(--nl-on,#410006)!important}
html.newlook :is(#mScreen,#dScreen) .books-search-input:focus{border-color:var(--nl-tone,#ffd9dc)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--nl-tone,#ffd9dc) 25%,transparent)!important}
html.newlook :is(#mScreen,#dScreen) .b-overlay-btn.read{background:rgba(20,20,28,.72)!important;color:#fff!important}
html.newlook :is(#mScreen,#dScreen) :is(.books-badge-pill,.b-badge:not([style*="0.9"])){background:color-mix(in srgb,var(--nl-tone,#ffd9dc) 18%,transparent)!important;color:var(--nl-tone,#ffd9dc)!important;border-color:color-mix(in srgb,var(--nl-tone,#ffd9dc) 40%,transparent)!important}
html.newlook :is(#mScreen,#dScreen) .books-shelf-link{color:var(--nl-tone,#ffd9dc)!important}

/* iOS: campi sotto i 16px fanno zoomare la pagina al tocco, che poi scorre di lato. Niente zoom e niente scorrimento laterale della pagina. */
@media (pointer:coarse){
  input:not([type=checkbox]):not([type=radio]):not([type=range]), textarea, select{ font-size:16px !important; }
  html, body{ overflow-x:clip; overscroll-behavior-x:none; }
  #mScreen{ overflow-x:clip; max-width:100vw; }
}

.po-tap-play{position:fixed;inset:0;z-index:2147482000;display:flex;flex-direction:column;gap:10px;align-items:center;justify-content:center;background:rgba(0,0,0,.55);border:0;color:#fff;font:inherit;cursor:pointer}
.po-tap-play span{width:72px;height:72px;border-radius:50%;background:#fff;color:#000;display:grid;place-items:center;font-size:28px;padding-left:4px}
.po-tap-play b{font-size:15px}

/* Telefono girato fuori dal player: la webapp resta pensata in verticale (iPhone non permette di bloccarla) */
@media (orientation:landscape) and (max-height:500px) and (pointer:coarse){
  html:not(.dd-po):not(.dd-shorts) body::after{content:'↻  Gira il telefono in verticale';position:fixed;inset:0;z-index:2147483000;display:flex;align-items:center;justify-content:center;background:#0b0b10;color:#fff;font:600 17px system-ui,-apple-system,sans-serif;letter-spacing:.01em}
}

/* iPhone / Safari WebKit: ottimizzazione fluida a 120Hz ProMotion senza blocchi di rendering */
html.is-ios .card,
html.is-ios .heart-btn,
html.is-ios .home-bottom-actions-row,
html.is-ios .home-bottom-actions-row > div,
html.is-ios .t10-seg,
html.is-ios .pt-seg,
html.is-ios .wrp-banner,
html.is-ios .hx-explore,
html.is-ios .bb-actions,
html.is-ios .ac-chip,
html.is-ios .badge-new-ep,
html.is-ios .bb-btn {
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}
html.is-ios .art-img.fx {
  transition: opacity 0.2s ease !important;
  filter: none !important;
}
html.is-ios .art-img.fx:not(.ld) {
  opacity: 0;
  filter: none !important;
}
html.is-ios .ms-bg{ filter:none !important; opacity:.35; }
/* iPhone: niente sfondi sfocati enormi (ricalcolati a ogni scorrimento da Safari). Restano i colori, senza sfocatura. */
html.is-ios.newlook body::before{ display:none !important; }
html.is-ios .lite-bg{ filter:none !important; opacity:.18; }
html.is-ios .hh-wrap .bb-img.hh-blur{ filter:brightness(.5) !important; }
html.is-ios .music-billboard-glow, html.is-ios .wrp-recap-bg{ filter:none !important; }
html.is-ios .skel-shimmer, html.is-ios [class*="skel"]{ animation-duration:2.4s !important; }
html.is-ios .row .track {
  -webkit-overflow-scrolling: touch !important;
  transform: translate3d(0, 0, 0);
  contain: layout paint;
}
html.is-ios .card {
  transform: translate3d(0, 0, 0);
  contain: content;
}

/* Lettore libri: sul telefono la barra in alto non sta in una riga; i comandi scorrono di lato invece di uscire dallo schermo */
@media (max-width:720px){
  #ebrTopbar{ padding:0 10px !important; gap:8px !important; }
  #ebrTopbar > div:first-child{ flex:1 1 auto; min-width:0 !important; }
  #ebrTopbar > div:last-child{ flex:0 1 auto; min-width:0; overflow-x:auto; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
  #ebrTopbar > div:last-child::-webkit-scrollbar{ display:none; }
  #ebrTopbar > div:last-child > *{ flex:none; }
  /* Lettore manga: titolo, capitolo e tavola su una riga sola ciascuno, comandi scorrevoli */
  .manga-reader-header{ height:auto !important; min-height:48px; padding-top:env(safe-area-inset-top,0px) !important; }
  .manga-reader-title-box{ min-width:0; overflow:hidden; }
  .manga-reader-title-box *, .manga-reader-title, .manga-reader-chapter{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .manga-reader-meta{ min-width:0; flex:1 1 auto; }
  .manga-reader-toolbar{ flex:0 1 auto; min-width:0; overflow-x:auto; scrollbar-width:none; flex-wrap:nowrap !important; }
  .manga-reader-toolbar::-webkit-scrollbar{ display:none; }
  .manga-reader-toolbar > *{ flex:none; }
}
/* Microfono della ricerca vocale (solo telefono) */
.voice-btn{ flex:none; width:44px; height:44px; border-radius:50%; border:0; display:grid; place-items:center; background:rgba(255,255,255,.08); color:#fff; cursor:pointer; }
.search-hero-box{ display:flex; align-items:center; gap:8px; }
.search-hero-box .global-search-input{ flex:1; min-width:0; }
.voice-btn.listening{ background:var(--accent,var(--dd-red, #e50914)); animation:voicePulse 1.1s ease-in-out infinite; }
html.newlook .voice-btn.listening{ background:var(--nl-tone); color:var(--nl-on); }
@keyframes voicePulse{ 0%,100%{ box-shadow:0 0 0 0 color-mix(in srgb, var(--dd-red, #e50914) 50%, transparent) } 50%{ box-shadow:0 0 0 10px color-mix(in srgb, var(--dd-red, #e50914) 0%, transparent) } }
@media (prefers-reduced-motion:reduce){ .voice-btn.listening{ animation:none; } }
.search-hero-box:has(.voice-btn) .search-clear-btn{ right:62px; }
/* Negli hub (Musica, Manga, Libri) la ricerca e' quella della barra in basso: la lente della ricerca generale (film/serie) si toglie */
html.m-hubbar #mSearchBtn{ display:none !important; }

/* Avatar in alto (telefono): anello nel colore dell'accento/Aurora e stellina se Pro */
#mAvatar{ position:relative; box-shadow:0 0 0 2px var(--bg,#0b0b10), 0 0 0 4px var(--accent,var(--dd-red, #e50914)); }
html.newlook #mAvatar{ box-shadow:0 0 0 2px var(--bg,#0b0b10), 0 0 0 4px var(--nl-tone); }
html.dd-pro #mAvatar::after{ content:'★'; position:absolute; right:-4px; bottom:-4px; width:14px; height:14px; border-radius:50%; background:#ffd700; color:#000; font-size:8px; line-height:14px; text-align:center; border:2px solid var(--bg,#0b0b10); }
/* Foglio profilo */
.ps-overlay{ align-items:flex-end; }
@media (min-width:901px){ .ps-overlay{ align-items:center; } .ps-sheet{ max-width:820px; border-radius:30px; padding:30px 34px; max-height:92vh; font-size:16px; } .ps-hero{ padding:26px; } .ps-av > :first-child{ transform:scale(1.45); transform-origin:center; margin:12px; } .ps-tiles{ gap:14px; } }
.ps-sheet{ width:100%; max-width:520px; padding:16px 16px calc(18px + env(safe-area-inset-bottom,0px)); border-radius:26px 26px 0 0; max-height:88vh; overflow:auto; }
.ps-hero{ display:flex; gap:14px; align-items:center; padding:14px; border-radius:22px; background:radial-gradient(120% 120% at 0% 0%, color-mix(in srgb, var(--accent,var(--dd-red, #e50914)) 30%, transparent), transparent 60%), rgba(255,255,255,.04); }
html.newlook .ps-hero{ background:radial-gradient(120% 120% at 0% 0%, color-mix(in srgb, var(--nl-tone) 28%, transparent), transparent 60%), rgba(255,255,255,.04); }
.ps-av{ position:relative; border:0; background:none; padding:0; cursor:pointer; flex:none; }
.ps-ed{ position:absolute; right:-6px; bottom:-6px; width:24px; height:24px; border-radius:50%; background:#fff; color:#111; font-size:12px; display:grid; place-items:center; border:2px solid #141418; }
.ps-id{ flex:1; min-width:0; } .ps-id b{ display:block; font-size:18px; } .ps-id small{ color:var(--text-muted,#9a9aa6); font-size:11.5px; display:block; margin-top:5px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ps-tags{ display:flex; gap:5px; flex-wrap:wrap; margin-top:5px; } .ps-tag{ font-size:10px; font-weight:700; border-radius:6px; padding:2px 7px; }
.ps-tag.pro{ background:rgba(255,215,0,.18); color:#ffd700; } .ps-tag.th{ background:color-mix(in srgb, var(--nl-tone,#ffd9dc) 20%, transparent); color:var(--nl-tone,#ffd9dc); }
.ps-x{ align-self:flex-start; }
.ps-stats{ display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-top:12px; }
.ps-stats div{ background:rgba(255,255,255,.05); border-radius:14px; padding:10px 6px; text-align:center; } .ps-stats b{ display:block; font-size:17px; } .ps-stats small{ color:var(--text-muted,#9a9aa6); font-size:10.5px; }
.ps-sec{ font-size:10.5px; font-weight:700; letter-spacing:.1em; color:rgba(255,255,255,.4); margin:16px 2px 8px; }
.ps-tiles{ display:grid; grid-template-columns:repeat(4,1fr); gap:8px; }
.ps-tile{ background:rgba(255,255,255,.05); border:0; border-radius:14px; padding:10px 4px; color:rgba(255,255,255,.85); font:inherit; font-size:11px; cursor:pointer; display:flex; flex-direction:column; align-items:center; gap:4px; } .ps-tile span{ font-size:18px; }
.ps-profs{ display:flex; gap:12px; overflow-x:auto; scrollbar-width:none; padding:2px; }
.ps-pf{ flex:none; background:none; border:0; color:rgba(255,255,255,.6); font:inherit; font-size:11px; display:flex; flex-direction:column; align-items:center; gap:5px; cursor:pointer; width:58px; }
.ps-pf span{ max-width:58px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } .ps-pf.on{ color:#fff; font-weight:700; } .ps-pf.on > :first-child{ box-shadow:0 0 0 2px var(--accent,var(--dd-red, #e50914)); border-radius:50%; }
html.newlook .ps-pf.on > :first-child{ box-shadow:0 0 0 2px var(--nl-tone); }
.ps-pf.add i{ width:46px; height:46px; border-radius:50%; border:1.5px dashed rgba(255,255,255,.3); display:grid; place-items:center; font-style:normal; font-size:20px; }
.ps-wr{ width:100%; margin-top:14px; border:0; border-radius:16px; padding:12px 14px; background:linear-gradient(120deg,#2a1d4a,#4a1d3a); color:#fff; font:inherit; display:flex; align-items:center; gap:10px; text-align:left; cursor:pointer; }
.ps-wr span{ font-size:20px; } .ps-wr div{ flex:1; } .ps-wr b{ display:block; font-size:13px; } .ps-wr small{ color:rgba(255,255,255,.7); font-size:11.5px; } .ps-wr i{ font-style:normal; opacity:.7; }
.ps-act{ display:flex; gap:8px; margin-top:12px; } .ps-act button{ flex:1; border:0; border-radius:12px; padding:11px 0; background:rgba(255,255,255,.06); color:#fff; font:inherit; font-size:12.5px; font-weight:600; cursor:pointer; } .ps-act .lo{ color:#ff8a90; }

.ps-tile span{ width:22px; height:22px; display:grid; place-items:center; } .ps-tile svg{ width:20px; height:20px; }
.ps-ed svg{ width:12px; height:12px; } .ps-wr span{ width:24px; height:24px; display:grid; place-items:center; } .ps-wr span svg{ width:22px; height:22px; }
.ps-act button{ display:flex; align-items:center; justify-content:center; gap:7px; } .ps-act svg{ width:16px; height:16px; }

/* Telefono: piano, scadenze e dispositivo stanno nel foglio profilo, non in cima alle Impostazioni */
.settings-page .acc-main-card{ display:none !important; }
.ps-plan > *{ margin-top:0 !important; } .ps-plan{ background:rgba(255,255,255,.04); border-radius:18px; padding:4px 12px; }
.ps-dev{ color:var(--text-muted,#9a9aa6); font-size:11px; margin:6px 4px 0; }
.ps-profs{ padding:2px 2px 6px; overflow-y:hidden; } .ps-pf{ flex-shrink:0; }

/* Intro del player: logo attuale */
.cio-wm{ font-family:'Outfit',system-ui,sans-serif; font-weight:900; font-size:24px; letter-spacing:-.01em !important; text-transform:none !important; color:#fff; }
.cio-wm span{ color:var(--dd-red, #e50914); }

/* Player: "Sorgenti" sul computer come pannello laterale a destra, il video resta visibile (come su TV) */
@media (min-width:901px){
  #poSourcesSheet.po-sheet-overlay{ justify-content:flex-end; align-items:stretch; background:linear-gradient(90deg, transparent 35%, rgba(0,0,0,.55)); backdrop-filter:none; }
  #poSourcesSheet .po-sheet-card{ max-width:440px; width:440px; max-height:none; height:100%; border-radius:0 !important; border-width:0 0 0 1px; background:rgba(15,17,24,.95); box-shadow:-12px 0 40px rgba(0,0,0,.6); }
}

/* Stile sottotitoli scelto dal player (Audio e sottotitoli → Stile sottotitoli). Default = come prima (Media, In basso, Riquadro). */
#playerOverlay[data-subsize="0"] .po-subtitle-overlay span{ font-size:clamp(13px, 2vw, 24px); }
#playerOverlay[data-subsize="2"] .po-subtitle-overlay span{ font-size:clamp(20px, 3.4vw, 42px); }
#playerOverlay[data-subbg="0"] .po-subtitle-overlay span{ background:transparent; text-shadow:0 1px 3px rgba(0,0,0,.95); }
#playerOverlay[data-subbg="1"] .po-subtitle-overlay span{ background:transparent; text-shadow:0 0 4px #000, 0 0 8px #000, 0 2px 4px #000; }
#playerOverlay[data-subpos="1"] .po-subtitle-overlay{ bottom:22%; }
#playerOverlay[data-subpos="1"].controls-hidden .po-subtitle-overlay{ bottom:16%; }
#poVideo::cue{ font-size:clamp(16px, 2.6vw, 32px); background:rgba(0,0,0,.78); color:#fff; }
#playerOverlay[data-subsize="0"] #poVideo::cue{ font-size:clamp(13px, 2vw, 24px); }
#playerOverlay[data-subsize="2"] #poVideo::cue{ font-size:clamp(20px, 3.4vw, 42px); }
#playerOverlay[data-subbg="0"] #poVideo::cue{ background:transparent; text-shadow:0 1px 3px #000; }
#playerOverlay[data-subbg="1"] #poVideo::cue{ background:transparent; text-shadow:0 0 4px #000, 0 0 8px #000; }
#poCinePanel .pc-seg{ display:flex; align-items:center; justify-content:space-between; gap:10px; padding:8px 4px; }
#poCinePanel .pc-seg > span{ font-size:14px; }
#poCinePanel .pc-seg .seg{ display:flex; background:rgba(255,255,255,.08); border-radius:10px; padding:3px; gap:3px; }
#poCinePanel .pc-seg .seg button{ border:0; background:transparent; color:rgba(255,255,255,.8); font:inherit; font-size:12px; padding:6px 10px; border-radius:8px; cursor:pointer; }
#poCinePanel .pc-seg .seg button.on{ background:#fff; color:#111; font-weight:700; }
#poCinePanel .pc-seg .seg button:focus-visible{ outline:2px solid #fff; outline-offset:2px; }
#poCinePanel .pc-seg .step{ display:flex; align-items:center; gap:8px; font-size:13px; font-variant-numeric:tabular-nums; }
#poCinePanel .pc-seg .step button{ width:30px; height:30px; border-radius:50%; border:0; background:rgba(255,255,255,.1); color:#fff; font-size:16px; cursor:pointer; }
.live-svc-badge{ display:inline-block; margin-left:8px; font-size:10px; font-weight:800; border-radius:99px; padding:2px 8px; color:var(--svc); background:color-mix(in srgb, var(--svc) 20%, transparent); vertical-align:1px; }
.live-sig{ display:inline-flex !important; align-items:center; gap:7px; background:rgba(0,0,0,.55) !important; border-radius:99px !important; padding:4px 10px !important; font-weight:600; }
.live-sig .sig-bars{ display:inline-flex; align-items:flex-end; gap:2px; }
.live-sig .sig-bars i{ width:3px; border-radius:1px; display:block; }
.live-sig .sig-bars i:nth-child(1){ height:5px; } .live-sig .sig-bars i:nth-child(2){ height:8px; } .live-sig .sig-bars i:nth-child(3){ height:11px; }
.po-topbar .po-spec{ display:inline-block; margin-top:4px; font-size:10.5px; font-weight:600; padding:2px 9px; border-radius:99px; background:rgba(0,0,0,.45); border:1px solid rgba(255,255,255,.14); width:max-content; }
.po-skip-seg{ position:absolute; right:24px; bottom:110px; z-index:30; display:flex; gap:8px; align-items:center; }
.po-skip-seg .go{ border:0; border-radius:12px; background:#fff; color:#111; padding:10px 16px; font:inherit; font-size:14px; cursor:pointer; display:flex; gap:10px; align-items:center; }
.po-skip-seg .go b{ font-weight:800; } .po-skip-seg .go small{ opacity:.55; }
.po-skip-seg .no{ border:0; width:34px; height:34px; border-radius:50%; background:rgba(0,0,0,.55); color:#fff; cursor:pointer; }
.po-ai-pill{ position:absolute; left:24px; top:72px; z-index:30; display:inline-flex; align-items:center; gap:8px; background:rgba(0,0,0,.6); border:1px solid rgba(255,255,255,.14); border-radius:99px; padding:6px 12px; font-size:12.5px; font-weight:600; }
.po-ai-pill .spin{ width:11px; height:11px; border-radius:50%; border:2px solid rgba(255,255,255,.25); border-top-color:#fff; animation:poAiSpin 1s linear infinite; display:inline-block; }
@keyframes poAiSpin{ to{ transform:rotate(360deg); } }
#poSubMenu .ai-tr{ border-top:1px solid rgba(255,255,255,.08); }

/* ── Finestre con la cornice Aurora base (come TV e telefono): mai i colori dei temi speciali ──
   --nl-base-tone e' il colore Aurora di partenza quando e' attivo un tema speciale (newlook.js). */
html.newlook .modal-sheet, html.newlook .po-sheet-card,
html.newlook .vf-card, html.newlook .rc-card, html.newlook .ob-card, html.newlook .cw-card,
html.newlook .streamed-feed-modal{
  background:color-mix(in srgb, #15161d 92%, var(--nl-base-tone, #ffd9dc) 8%) !important;
  border:1px solid color-mix(in srgb, var(--nl-base-tone, #ffd9dc) 30%, transparent) !important;
  -webkit-backdrop-filter:blur(24px); backdrop-filter:blur(24px);
}
html.newlook .vf-card, html.newlook .rc-card, html.newlook .ob-card, html.newlook .cw-card, html.newlook .streamed-feed-modal{ border-radius:24px !important; }
/* Pulsanti dentro le finestre: da tastiera anello bianco (come il focus della TV) */
html.newlook :is(.modal-sheet, .po-sheet-card, .vf-card, .rc-card, .ob-card, .cw-card, .streamed-feed-modal) button:focus-visible{ outline:2px solid #fff !important; outline-offset:2px; }

/* Rosso del tema classico: con Aurora diventa l'accento Aurora base (mai i temi speciali), su tutto il sito */
:root{ --dd-red:#e50914; }
html.newlook{ --dd-red:var(--nl-base-acc, #e0607a); }

/* Hub Musica/ASMR/Libri in Aurora base */
html.newlook{ --hub-gold:var(--nl-base-tone); --hub-gold2:var(--nl-base-tone); --hub-on:var(--nl-base-on); --teal:var(--nl-base-tone); }

/* Serata insieme in Home (come la slide TV): rosso in Standard, Aurora base in Aurora */
.tg-banner{ --tg:#e50914; --tg-on:#fff; --tg-t:#ff6b72; position:relative; overflow:hidden; border-radius:20px; background:#07080c; border:1px solid rgba(255,255,255,.1);
  display:grid; grid-template-columns:1.1fr 1fr; align-items:center; min-height:300px; }
html.newlook .tg-banner{ --tg:var(--nl-base-tone, #d3e8ff); --tg-on:var(--nl-base-on, #00325a); --tg-t:var(--nl-base-tone, #d3e8ff); border-color:color-mix(in srgb, var(--tg) 30%, transparent); border-radius:26px; }
.tg-wall{ position:absolute; inset:-20%; display:grid; grid-template-columns:repeat(6,1fr); gap:8px; transform:rotate(-8deg); opacity:.45; }
.tg-wall i{ aspect-ratio:2/3; border-radius:10px; background:#1a1b22 center/cover; }
.tg-banner::after{ content:""; position:absolute; inset:0; background:linear-gradient(90deg,#07080cf2 30%,#07080cb0 60%,#07080c40); pointer-events:none; }
.tg-txt{ position:relative; z-index:2; padding:26px; display:flex; flex-direction:column; gap:8px; grid-column:1; grid-row:1; }
.tg-eb{ font-size:11px; font-weight:900; letter-spacing:.12em; text-transform:uppercase; color:var(--tg-t); }
.tg-txt h3{ margin:0; font-size:26px; line-height:1.1; }
.tg-txt p{ margin:0; color:rgba(255,255,255,.72); font-size:14px; line-height:1.45; max-width:46ch; }
.tg-steps{ display:flex; gap:14px; flex-wrap:wrap; font-size:13px; color:rgba(255,255,255,.8); font-weight:600; }
.tg-steps span{ display:inline-flex; align-items:center; gap:5px; }
.tg-steps b{ width:18px; height:18px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; line-height:1; font-size:10px; color:var(--tg-t); background:color-mix(in srgb, var(--tg) 24%, transparent); }
.tg-acts{ display:flex; gap:10px; flex-wrap:wrap; margin-top:6px; }
.tg-btn{ border-radius:12px; padding:11px 18px; font:inherit; font-weight:700; font-size:14px; cursor:pointer; text-decoration:none; color:#fff; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.14); }
.tg-btn.pri{ background:var(--tg); color:var(--tg-on); border-color:transparent; }
.tg-btn:focus-visible{ outline:2px solid #fff; outline-offset:2px; }
.tg-fan{ position:relative; z-index:2; grid-column:2; grid-row:1; height:240px; justify-self:center; width:280px; }
.tg-fan i{ position:absolute; width:110px; aspect-ratio:2/3; border-radius:13px; background:#1a1b22 center/cover; box-shadow:0 12px 28px rgba(0,0,0,.6); }
.tg-fan .a{ left:0; top:30px; transform:rotate(-12deg); } .tg-fan .b{ right:0; top:30px; transform:rotate(11deg); }
.tg-fan .c{ left:76px; top:0; width:128px; border:3px solid var(--tg); }
.tg-fan span{ position:absolute; left:50%; bottom:0; transform:translateX(-50%); white-space:nowrap; border-radius:99px; padding:6px 14px; font-weight:900; font-size:13px; background:var(--tg); color:var(--tg-on); }
@media (max-width:700px){
  .tg-banner{ grid-template-columns:1fr; }
  .tg-fan{ grid-column:1; grid-row:1; margin-top:18px; height:220px; }
  .tg-txt{ grid-row:2; padding:6px 18px 20px; }
  .tg-banner::after{ background:linear-gradient(0deg,#07080c 48%,#07080cc0 66%,transparent); }
  .tg-acts{ flex-direction:column; } .tg-btn{ text-align:center; }
}

/* Card dedicata "Quanto tempo hai stasera?" (Web Desktop e Webapp Mobile) */
.qt-card-desktop{
  border-radius:24px; background:#0b0d15; border:1px solid rgba(255,255,255,.12);
  display:grid; grid-template-columns:430px 1fr; position:relative; overflow:hidden;
  box-shadow:0 18px 48px rgba(0,0,0,.6); min-height:360px; margin:14px 0 20px;
}
html.newlook .qt-card-desktop{
  background:#111424; border:1.5px solid rgba(255,94,142,.35);
  box-shadow:0 18px 50px rgba(0,0,0,.7),0 0 32px rgba(255,94,142,.12);
}
.qt-d-left{
  padding:32px 30px; display:flex; flex-direction:column; justify-content:space-between;
  position:relative; z-index:4; background:linear-gradient(90deg,#0b0d15 85%,rgba(11,13,21,.8) 100%);
}
html.newlook .qt-d-left{
  background:linear-gradient(90deg,#111424 85%,rgba(17,20,36,.8) 100%);
}
.qt-d-eyebrow{
  font-size:11px; font-weight:800; letter-spacing:1.5px; text-transform:uppercase;
  color:#ff5e8e; display:flex; align-items:center; gap:6px;
}
html.newlook .qt-d-eyebrow{ color:#00f0ff; }
.qt-d-title{ font-size:27px; font-weight:900; letter-spacing:-.5px; line-height:1.15; margin:4px 0 8px; color:#fff; }
.qt-d-desc{ font-size:13.5px; color:rgba(255,255,255,.7); line-height:1.45; }
.qt-d-chips{ display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:16px 0; }
.qt-d-chip{
  background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1); border-radius:14px;
  padding:11px 13px; cursor:pointer; display:flex; flex-direction:column; gap:2px; text-align:left;
  font:inherit; color:#fff; transition:all .2s cubic-bezier(.4,0,.2,1);
}
.qt-d-chip:hover{ background:rgba(255,255,255,.09); border-color:rgba(255,255,255,.2); }
.qt-d-chip.on{
  background:rgba(255,255,255,.14); border-color:#fff; box-shadow:0 4px 14px rgba(0,0,0,.4);
  transform:translateY(-2px);
}
html.newlook .qt-d-chip.on{
  background:rgba(255,94,142,.18); border-color:#ff5e8e; box-shadow:0 4px 18px rgba(255,94,142,.3);
}
.qt-d-chip-t{ font-size:14.5px; font-weight:800; color:#fff; display:flex; align-items:center; gap:5px; }
.qt-d-chip-s{ font-size:11px; color:rgba(255,255,255,.55); font-weight:500; }
.qt-d-chip.on .qt-d-chip-s{ color:rgba(255,255,255,.9); }
.qt-d-cta{
  padding:12px 20px; border-radius:12px; background:#fff; color:#000; font-size:14px;
  font-weight:800; border:none; cursor:pointer; display:inline-flex; align-items:center;
  justify-content:center; gap:8px; font-family:inherit; transition:transform .2s ease, opacity .2s ease;
}
.qt-d-cta:hover{ opacity:.95; transform:translateY(-1px); }
html.newlook .qt-d-cta{
  background:linear-gradient(135deg,#ff3b70 0%,#a24bfe 50%,#00f0ff 100%); color:#fff;
  box-shadow:0 6px 20px rgba(255,94,142,.35);
}
.qt-d-right{
  position:relative; overflow:hidden; padding:26px 28px; display:flex; flex-direction:column;
  justify-content:center; background:radial-gradient(circle at 80% 30%,#29184b 0%,#0f121f 60%,#080a12 100%);
}
html.newlook .qt-d-right{
  background:radial-gradient(circle at 80% 30%,#3b1648 0%,#17112e 60%,#0b0e1b 100%);
}
.qt-d-clock{
  position:absolute; right:-20px; top:-20px; width:230px; height:230px; border-radius:50%;
  border:2px dashed rgba(255,255,255,.12); pointer-events:none;
}
html.newlook .qt-d-clock{ border-color:rgba(255,94,142,.25); box-shadow:0 0 50px rgba(255,94,142,.2); }
.qt-d-head{ display:flex; justify-content:space-between; align-items:center; margin-bottom:12px; position:relative; z-index:2; }
.qt-d-hlabel{ font-size:13px; font-weight:800; letter-spacing:.5px; color:rgba(255,255,255,.7); text-transform:uppercase; display:flex; align-items:center; gap:8px; }
.qt-d-badge{ font-size:11px; font-weight:800; color:#00f0ff; background:rgba(0,240,255,.12); padding:2px 8px; border-radius:20px; }
.qt-d-hint{ font-size:12px; color:rgba(255,255,255,.5); }
.qt-d-track{ display:flex; gap:14px; overflow-x:auto; padding-bottom:6px; scrollbar-width:none; position:relative; z-index:2; }
.qt-d-track::-webkit-scrollbar{ display:none; }
.qt-d-media-card{
  flex:0 0 140px; width:140px; max-width:140px; min-width:140px; box-sizing:border-box;
  overflow:hidden; cursor:pointer; display:flex; flex-direction:column; gap:6px;
  background:none; border:none; text-align:left; color:#fff; font:inherit;
  transition:transform .2s cubic-bezier(.4,0,.2,1);
}
.qt-d-media-card:hover{ transform:translateY(-4px); }
.qt-d-poster{
  width:140px; min-width:140px; max-width:140px; height:208px; flex-shrink:0; box-sizing:border-box;
  border-radius:12px; background:#1a1b22 center/cover;
  border:1px solid rgba(255,255,255,.12); position:relative; overflow:hidden; box-shadow:0 8px 20px rgba(0,0,0,.5);
}
.qt-d-dur{
  position:absolute; bottom:6px; right:6px; background:rgba(0,0,0,.8); font-size:10px;
  font-weight:800; padding:2px 5px; border-radius:4px; color:#fff;
}
.qt-d-ctitle{
  width:140px; max-width:140px; box-sizing:border-box;
  font-size:12px; font-weight:700; color:#fff; line-height:1.3;
  height:32px; display:-webkit-box; -webkit-line-clamp:2; line-clamp:2;
  -webkit-box-orient:vertical; overflow:hidden; text-overflow:ellipsis;
  word-break:break-word; white-space:normal;
}
.qt-d-loading{ font-size:13px; color:rgba(255,255,255,.6); padding:20px 0; }

/* Mobile Card */
.qt-card-mobile{
  margin:10px 0 18px; border-radius:22px; background:#0b0d14; border:1px solid rgba(255,255,255,.12);
  overflow:hidden; box-shadow:0 14px 34px rgba(0,0,0,.6); position:relative;
}
html.newlook .qt-card-mobile{
  background:#111422; border:1.5px solid rgba(255,94,142,.38);
  box-shadow:0 14px 36px rgba(0,0,0,.7),0 0 22px rgba(255,94,142,.12);
}
.qt-m-art{
  height:170px; position:relative; overflow:hidden;
  background:radial-gradient(circle at 75% 30%,#2a174a 0%,#0f111d 60%,#07080c 100%);
  display:flex; align-items:flex-end;
}
html.newlook .qt-m-art{ background:radial-gradient(circle at 75% 30%,#3b1647 0%,#15112b 60%,#0b0d18 100%); }
.qt-m-reels{ position:absolute; left:14px; top:16px; display:flex; }
.qt-m-reel{
  width:62px; height:92px; border-radius:8px; background:#1a1b22 center/cover;
  box-shadow:0 8px 18px rgba(0,0,0,.7); border:1px solid rgba(255,255,255,.18); transform:rotate(-8deg);
}
.qt-m-reel.b{ transform:rotate(6deg) translateY(10px); margin-left:-20px; border-color:rgba(255,94,142,.5); }
.qt-m-clock{
  position:absolute; right:14px; top:14px; width:120px; height:120px; border-radius:50%;
  border:2px dashed rgba(255,255,255,.2); display:flex; align-items:center; justify-content:center;
  box-shadow:0 0 30px rgba(120,80,255,.25);
}
html.newlook .qt-m-clock{ border-color:rgba(255,94,142,.4); box-shadow:0 0 35px rgba(255,94,142,.35); }
.qt-m-dial{
  position:relative; width:76px; height:76px; border-radius:50%; background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.15); display:flex; align-items:center; justify-content:center;
}
.qt-m-hour{
  position:absolute; width:3px; height:22px; background:#fff; top:16px;
  transform-origin:bottom center; transform:rotate(290deg); border-radius:2px;
}
.qt-m-min{
  position:absolute; width:2px; height:30px; background:#ff3b70; top:8px;
  transform-origin:bottom center; transform:rotate(75deg); border-radius:2px; box-shadow:0 0 8px #ff3b70;
}
.qt-m-dot{ width:6px; height:6px; background:#fff; border-radius:50%; z-index:2; }
.qt-m-badge{
  position:absolute; bottom:12px; left:14px; display:inline-flex; align-items:center; gap:6px;
  padding:4px 10px; border-radius:20px; background:rgba(0,0,0,.75); border:1px solid rgba(255,255,255,.15);
  font-size:11px; font-weight:700; color:#fff; z-index:5;
}
.qt-pulse-dot{
  width:6px; height:6px; border-radius:50%; background:#00f0ff; box-shadow:0 0 6px #00f0ff;
  animation:qtPulse 1.8s infinite;
}
@keyframes qtPulse{ 0%{opacity:.4;transform:scale(.9)} 50%{opacity:1;transform:scale(1.2)} 100%{opacity:.4;transform:scale(.9)} }
.qt-m-body{ padding:15px; display:flex; flex-direction:column; gap:11px; }
.qt-m-eyebrow{ font-size:10.5px; font-weight:800; letter-spacing:1.3px; text-transform:uppercase; color:#ff5e8e; }
html.newlook .qt-m-eyebrow{ color:#00f0ff; }
.qt-m-title{ font-size:20px; font-weight:900; line-height:1.15; color:#fff; margin:0; }
.qt-m-desc{ font-size:12.5px; color:rgba(255,255,255,.7); line-height:1.4; margin:0; }
.qt-m-chips{ display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.qt-m-chip{
  background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1); border-radius:12px;
  padding:9px 11px; cursor:pointer; display:flex; flex-direction:column; gap:2px; text-align:left;
  font:inherit; color:#fff;
}
.qt-m-chip.on{ background:rgba(255,255,255,.14); border-color:#fff; }
html.newlook .qt-m-chip.on{ background:rgba(255,94,142,.18); border-color:#ff5e8e; }
.qt-m-chip-t{ font-size:13.5px; font-weight:800; color:#fff; }
.qt-m-chip-s{ font-size:10.5px; color:rgba(255,255,255,.6); }
.qt-m-preview{ background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.08); border-radius:12px; padding:10px; }
.qt-m-prev-head{ display:flex; justify-content:space-between; font-size:11px; margin-bottom:6px; }
.qt-m-prev-lbl{ color:rgba(255,255,255,.6); }
.qt-m-prev-cnt{ color:#ff5e8e; font-weight:800; }
html.newlook .qt-m-prev-cnt{ color:#00f0ff; }
.qt-m-prev-track{ display:flex; gap:8px; overflow-x:auto; scrollbar-width:none; }
.qt-m-prev-track::-webkit-scrollbar{ display:none; }
.qt-m-prev-card{
  flex:0 0 76px; width:76px; max-width:76px; min-width:76px; box-sizing:border-box;
  overflow:hidden; display:flex; flex-direction:column; gap:3px; background:none; border:none;
  padding:0; cursor:pointer; text-align:left; font:inherit; color:#fff;
}
.qt-m-prev-thumb{ width:76px; min-width:76px; max-width:76px; height:110px; flex-shrink:0; box-sizing:border-box; border-radius:8px; background:#1a1b22 center/cover; position:relative; overflow:hidden; }
.qt-m-prev-dur{
  position:absolute; bottom:3px; right:3px; background:rgba(0,0,0,.8); font-size:9px;
  font-weight:800; padding:1px 4px; border-radius:4px; color:#fff;
}
.qt-m-prev-title{
  width:76px; max-width:76px; box-sizing:border-box;
  font-size:10.5px; font-weight:700; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.qt-m-cta{
  width:100%; padding:12px; border-radius:12px; background:#fff; color:#000; font:inherit;
  font-size:14px; font-weight:800; border:none; cursor:pointer; margin-top:2px;
}
html.newlook .qt-m-cta{ background:linear-gradient(135deg,#ff3b70 0%,#a24bfe 50%,#00f0ff 100%); color:#fff; }
.qt-m-loading{ font-size:12px; color:rgba(255,255,255,.6); padding:10px 0; }

/* Scelti per te: pillole dei generi, bollino del motivo; rosso in Standard, Aurora base in Aurora */
.ft-row{ --ft:#e50914; --ft-on:#fff; --ft-t:#ff6b72; }
html.newlook .ft-row{ --ft:var(--nl-base-tone, #d3e8ff); --ft-on:var(--nl-base-on, #00325a); --ft-t:var(--nl-base-tone, #d3e8ff); }
.ft-head{ display:flex; align-items:flex-end; gap:12px; }
.ft-head > div{ flex:1; } .ft-head h3{ margin:0; } .ft-head small{ color:rgba(255,255,255,.55); font-size:12.5px; }
.ft-edit{ background:none; border:0; color:var(--ft-t); font:inherit; font-weight:700; cursor:pointer; padding:6px; }
.ft-chips{ display:flex; gap:6px; overflow-x:auto; padding:10px 0 12px; scrollbar-width:none; }
.ft-chips button{ flex:none; border-radius:99px; padding:7px 14px; font:inherit; font-size:13px; cursor:pointer; color:#fff; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.1); }
.ft-chips button.on{ background:color-mix(in srgb, var(--ft) 26%, transparent); border-color:color-mix(in srgb, var(--ft) 55%, transparent); font-weight:700; }
.ft-card{ position:relative; flex:none; }
.ft-why{ position:absolute; left:8px; top:8px; z-index:3; max-width:calc(100% - 16px); overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
  border-radius:99px; padding:2px 8px; font-size:10.5px; font-weight:800; background:rgba(0,0,0,.7); color:var(--ft-t); pointer-events:none; }
.ft-ask{ display:flex; flex-wrap:wrap; align-items:center; gap:10px; border:1px dashed rgba(255,255,255,.22); border-radius:16px; padding:16px; margin-top:10px; }
.ft-ask > div{ flex:1 1 240px; display:flex; flex-direction:column; gap:3px; } .ft-ask span{ color:rgba(255,255,255,.65); font-size:13.5px; }
.ft-btn{ border-radius:12px; padding:10px 16px; font:inherit; font-weight:700; cursor:pointer; color:#fff; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.12); }
.ft-btn.pri{ background:var(--ft); color:var(--ft-on); border-color:transparent; }
.ft-chips button:focus-visible,.ft-btn:focus-visible,.ft-edit:focus-visible{ outline:2px solid #fff; outline-offset:2px; }


/* ─── Porting Allineamento Nativa: Contrasto Sorgenti, Box Errore e Controlli OSD (Standard & Aurora) ─── */

/* Contrasto Sorgenti Standard */
.ns-src:hover, .ns-src:focus-visible {
  background: rgba(255, 255, 255, .12) !important;
  box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .4) !important;
  outline: 2px solid #ffffff !important;
  outline-offset: -1px;
}
.ns-src.pick {
  background: color-mix(in srgb, var(--dd-red, #e50914) 28%, rgba(20, 20, 26, .85)) !important;
  box-shadow: inset 0 0 0 2px var(--dd-red, #e50914), 0 4px 18px rgba(229, 9, 20, .3) !important;
}
.ns-src.pick .ns-tx b { color: #ffffff !important; }
.ns-src.pick .ns-tx small { color: rgba(255, 255, 255, .88) !important; }
.ns-src.pick .ns-q { background: var(--dd-red, #e50914) !important; color: #ffffff !important; }
.ns-src.pick .ns-best { background: var(--dd-red, #e50914) !important; color: #ffffff !important; }
.ns-src.pick .ns-l { border: 1px solid rgba(255, 255, 255, .3); }

/* Contrasto Sorgenti Aurora: elimina il problema del "tutto bianco" quando selezionata/hover */
html.newlook .ns-src:hover, html.newlook .ns-src:focus-visible {
  background: rgba(255, 255, 255, .12) !important;
  outline: 2px solid var(--nl-base-tone, #fff) !important;
  outline-offset: -1px;
}
html.newlook .ns-src.pick {
  background: var(--nl-tone) !important;
  color: var(--nl-on) !important;
  box-shadow: 0 4px 18px color-mix(in srgb, var(--nl-tone) 45%, transparent) !important;
}
html.newlook .ns-src.pick .ns-tx b { color: var(--nl-on) !important; }
html.newlook .ns-src.pick .ns-tx small { color: var(--nl-on) !important; opacity: .88 !important; }
html.newlook .ns-src.pick .ns-q { background: var(--nl-on) !important; color: var(--nl-tone) !important; }
html.newlook .ns-src.pick .ns-best { background: var(--nl-on) !important; color: var(--nl-tone) !important; }
html.newlook .ns-src.pick .ns-l {
  background: color-mix(in srgb, var(--nl-on) 18%, transparent) !important;
  color: var(--nl-on) !important;
  border: 1px solid color-mix(in srgb, var(--nl-on) 32%, transparent) !important;
}
html.newlook .ns-src.pick .ns-prov {
  border-color: color-mix(in srgb, var(--nl-on) 40%, transparent) !important;
  color: var(--nl-on) !important;
  background: color-mix(in srgb, var(--nl-on) 12%, transparent) !important;
}

/* Pulsante Sorgenti OSD Player */
#poSourcesBtn:hover, #poSourcesBtn:focus-visible {
  outline: 2px solid #ffffff !important;
  outline-offset: 2px;
  background: rgba(255, 255, 255, .22) !important;
  transform: scale(1.05);
}
html.newlook #poSourcesBtn:hover, html.newlook #poSourcesBtn:focus-visible {
  outline: 2px solid var(--nl-base-tone, #ffffff) !important;
  background: color-mix(in srgb, var(--nl-base-tone, #ffd9dc) 24%, transparent) !important;
  color: var(--nl-base-tone, #ffd9dc) !important;
}

/* Finestra di errore riproduzione (Aurora e Standard) */
.cio-error-box {
  border-radius: 18px;
  padding: 14px 18px;
  background: rgba(20, 20, 26, .92);
  border: 1.5px solid rgba(229, 9, 20, .6);
  box-shadow: 0 8px 24px rgba(0, 0, 0, .5);
}
html.newlook .cio-error-box {
  border-radius: 22px !important;
  background: color-mix(in srgb, #15161d 92%, var(--nl-base-tone, #ffd9dc) 8%) !important;
  border: 1px solid color-mix(in srgb, var(--nl-base-tone, #ffd9dc) 35%, transparent) !important;
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
}
html.newlook .cio-dismiss-btn {
  background: var(--nl-base-tone, #ffd9dc) !important;
  color: var(--nl-base-on, #410006) !important;
  border-color: transparent !important;
  font-weight: 700;
}
html.newlook .cio-dismiss-btn:hover, html.newlook .cio-dismiss-btn:focus-visible {
  outline: 2px solid #fff;
  transform: scale(1.04);
}
html.newlook .cio-cd-dot.active {
  background: var(--nl-base-tone, #ffd9dc) !important;
  color: var(--nl-base-on, #410006) !important;
  box-shadow: 0 0 12px color-mix(in srgb, var(--nl-base-tone, #ffd9dc) 60%, transparent) !important;
}

/* Lista episodi nel player (still, bordo focus ed episodio in riproduzione) */
.pe-row {
  border-radius: 12px;
  border: 1.5px solid transparent;
  transition: background .2s, border-color .2s, transform .2s;
}
.pe-row:hover, .pe-row:focus-visible {
  background: rgba(255, 255, 255, .1);
  border-color: rgba(255, 255, 255, .35);
  outline: none;
}
html.newlook .pe-row:hover, html.newlook .pe-row:focus-visible {
  border-color: color-mix(in srgb, var(--nl-base-tone, #ffd9dc) 50%, transparent);
  background: rgba(255, 255, 255, .1);
}
.pe-row.is-current {
  background: color-mix(in srgb, var(--dd-red, #e50914) 18%, rgba(20, 20, 26, .8)) !important;
  border-left: 3.5px solid var(--dd-red, #e50914) !important;
}
html.newlook .pe-row.is-current {
  background: color-mix(in srgb, var(--nl-base-tone, #ffd9dc) 16%, transparent) !important;
  border-left: 3.5px solid var(--nl-base-tone, #ffd9dc) !important;
}
html.newlook .pe-badge {
  color: var(--nl-base-tone, #ffd9dc) !important;
}


/* Mini player musica su telefono: carta colorata dalla copertina, staccata dalla barra di navigazione;
   pausa con anello di avanzamento, avanti senza cerchio, chiudi piccola e tenue dopo una lineetta. */
@media (max-width:900px){
  html:not([data-skin="desktop"]) .mini-player{
    left:12px; right:12px; bottom:96px; max-width:430px; margin:0 auto; border-radius:16px; border:1px solid rgba(255,255,255,.11);
    padding:7px 6px 9px 7px; gap:10px; overflow:hidden;
    background:linear-gradient(100deg, var(--mp-art, #181a26), color-mix(in srgb, var(--mp-art, #181a26) 45%, #0b0b10));
    backdrop-filter:none; -webkit-backdrop-filter:none; box-shadow:0 12px 28px rgba(0,0,0,.6);
  }
  html:not([data-skin="desktop"]) .mini-player .art-sq{ width:42px; height:42px; border-radius:10px; }
  html:not([data-skin="desktop"]) .mini-player .meta .t{ font-size:14px; }
  html:not([data-skin="desktop"]) .mini-player .meta .a{ font-size:12px; color:rgba(255,255,255,.72); }
  html:not([data-skin="desktop"]) .mini-player .mini-eq{ display:none !important; }
  html:not([data-skin="desktop"]) .mini-player .ctrls{ gap:2px; }
  html:not([data-skin="desktop"]) #mpPlayBtn{
    width:38px !important; height:38px !important; color:#fff !important; box-shadow:none !important;
    background:radial-gradient(closest-side, var(--mp-art, #181a26) 83%, transparent 84%), conic-gradient(#fff var(--mp-p, 0%), rgba(255,255,255,.22) 0) !important;
  }
  html:not([data-skin="desktop"]) #mpNextBtn{ width:36px; height:36px; background:none; }
  html:not([data-skin="desktop"]) #mpCloseBtn{ width:24px; height:24px; margin-left:10px; position:relative; background:rgba(255,255,255,.1); color:rgba(255,255,255,.75); }
  html:not([data-skin="desktop"]) #mpCloseBtn svg{ width:13px; height:13px; }
  html:not([data-skin="desktop"]) #mpCloseBtn::before{ content:""; position:absolute; left:-8px; top:2px; bottom:2px; width:1px; background:rgba(255,255,255,.2); }
  html:not([data-skin="desktop"]) .mini-player .mp-progress{ height:2px; background:rgba(255,255,255,.12); }
  html:not([data-skin="desktop"]) .mini-player .mp-progress > span{ background:#fff; }
  html:not([data-skin="desktop"]) #mpPlayBtn.is-loading::after{ border-color:rgba(255,255,255,.3); border-top-color:#fff; }
}
.mini-player .meta .t.mq{ text-overflow:clip; mask-image:linear-gradient(90deg,#000 85%,transparent); -webkit-mask-image:linear-gradient(90deg,#000 85%,transparent); }
.mini-player .meta .t.mq span{ display:inline-block; animation:mpMq var(--mq-t, 9s) linear 2s infinite; }
@keyframes mpMq{ 0%,15%{ transform:translateX(0); } 80%,100%{ transform:translateX(var(--mq, -50%)); } }
@media (prefers-reduced-motion: reduce){ .mini-player .meta .t.mq span{ animation:none; } }

/* Watchlist Smart Release Banner (Standard & Aurora) */
.sra-banner{
  background:rgba(20,20,26,.94); border:1px solid rgba(255,255,255,.12);
  border-radius:16px; padding:11px 14px; display:flex; align-items:center; justify-content:space-between; gap:10px;
}
html.newlook .sra-banner{
  background:color-mix(in srgb, #15161d 92%, var(--nl-base-tone, #d3e8ff) 8%);
  border-color:color-mix(in srgb, var(--nl-base-tone, #d3e8ff) 30%, transparent);
}
.sra-banner-left{ display:flex; align-items:center; gap:10px; min-width:0; }
.sra-ic{ color:#ff6b72; flex-shrink:0; }
html.newlook .sra-ic{ color:var(--nl-base-tone, #d3e8ff); }
.sra-banner-txt{ min-width:0; }
.sra-banner-txt small{ display:block; font-size:9.5px; font-weight:800; letter-spacing:.06em; color:#ff6b72; }
html.newlook .sra-banner-txt small{ color:var(--nl-base-tone, #d3e8ff); }
.sra-banner-txt b{ display:block; font-size:12.5px; font-weight:700; color:#fff; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.sra-banner-acts{ display:flex; align-items:center; gap:8px; flex-shrink:0; }
.sra-btn-go{
  border:0; height:32px; padding:0 12px; border-radius:9px;
  background:var(--dd-red, #e50914); color:#fff; font:inherit; font-size:12px; font-weight:700; cursor:pointer;
}
html.newlook .sra-btn-go{ background:var(--nl-base-tone, #d3e8ff); color:var(--nl-base-on, #00325a); }
.sra-btn-x{
  width:28px; height:28px; border-radius:50%; border:0;
  background:rgba(255,255,255,.1); color:rgba(255,255,255,.78); display:grid; place-items:center; cursor:pointer;
}
.sra-btn-x:hover{ background:rgba(255,255,255,.2); color:#fff; }
.sra-detail-btn{ display:inline-flex; align-items:center; gap:5px; }
.sra-detail-btn.on{ color:var(--dd-red, #e50914); font-weight:700; }
html.newlook .sra-detail-btn.on{ color:var(--nl-base-tone, #d3e8ff); }

/* VOD Source Version, Year & Release Filename Clarity */
.ns-file{
  font-family:ui-monospace, SFMono-Regular, Consolas, monospace;
  font-size:11px; color:#94a3b8; margin-top:2px; margin-bottom:2px;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.ns-prov.prov-year-ok{
  background:rgba(16,185,129,.16); color:#4ade80; border:1px solid rgba(16,185,129,.35);
}
.ns-prov.prov-year-warn{
  background:rgba(245,158,11,.18); color:#fbbf24; border:1px solid rgba(245,158,11,.4);
}
.ns-prov.prov-edition{
  background:rgba(139,92,246,.18); color:#c4b5fd; border:1px solid rgba(139,92,246,.38);
}
.ns-src.wrong-year{
  border-color:rgba(245,158,11,.28) !important;
}
