/* ============================================================
   DONGHUAFLIX — FASE FINAL (parches de integración)
   Cargar DESPUÉS de dfx.css en el <head>.
   ============================================================ */

/* Hero: aire entre sinopsis y botones (evita solapamientos) */
.hero .hero-content p#heroSyn { margin-bottom: 6px; }
.hero .hero-btns { margin-top: 16px; }

/* Episodios: el check se ve siempre; tenue si aún no está visto */
.watched-btn { opacity: .38; transition: opacity .15s ease; }
.watched-btn.on { opacity: 1; }

/* Botones de chip deshabilitados / informativos */
.dfxChip[disabled] { opacity: .45; pointer-events: none; }

/* El FAB de catálogo (móvil) por encima de píldora y toast */
.catalog-wrap { z-index: 80; }

/* Cabecera: nada se encoge ni desaparece al cargar */
.nav-actions, .catalog-wrap { flex-shrink: 0; }
.nav { gap: 12px; }

/* ============================================================
   FASE FINAL v2 — Hero nítido + ambiente de color (estilo clásico)
   ============================================================ */

/* HERO: la portada se ve REAL, sin nube. Sombra inferior para el texto. */
.hero::before{
  filter:blur(0) brightness(.82) saturate(1.18) !important;
  transform:none !important;
  animation:none !important;
}
.hero .hero-shade{
  background:linear-gradient(180deg,
    rgba(0,0,0,.10) 0%,
    rgba(0,0,0,0) 30%,
    rgba(0,0,0,.55) 62%,
    rgba(0,0,0,.92) 100%) !important;
}
.hero h1, .hero .hero-meta, .hero p#heroSyn{
  text-shadow:0 3px 18px rgba(0,0,0,.85);
}

/* AMBIENTE: la página entera se tiñe del color dominante del póster
   (dfx-polish.js ya calcula --dfx-glow: aquí lo hacemos visible) */
#dfxGlow{
  opacity:.55 !important;
  filter:blur(110px) saturate(1.7) !important;
}
body{
  background:linear-gradient(180deg,
    color-mix(in srgb, var(--dfx-glow, #e50914) 24%, #0a0a0c) 0%,
    #0a0a0c 62%) fixed !important;
}

/* === FASE FINAL v3 === */

/* PORTADAS: toda imagen (horizontal o vertical) rellena su tarjeta.
   Acaba con las franjas negras de "Monarca Malvado", etc. */
.card .poster img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:top center;
}

/* HERO: portada nítida (sin nube) + degradado para leer el texto.
   Si se ve pixelado es que el póster fuente es pequeño: se avisa abajo. */
.hero::before{
  filter:blur(0) brightness(.72) saturate(1.2) !important;
}
.hero .hero-shade{
  background:linear-gradient(180deg,
    rgba(0,0,0,.05) 0%,
    rgba(0,0,0,0) 28%,
    rgba(0,0,0,.62) 60%,
    rgba(0,0,0,.95) 100%) !important;
}

/* FAB multi-catálogo: por encima de todo lo fijo en móvil */
@media (max-width:900px){
  .catalog-wrap{
    z-index:96 !important;
    right:12px !important;
    bottom:calc(150px + env(safe-area-inset-bottom)) !important;
  }
}

/* === FASE FINAL v4 — Selector multi-catálogo blindado === */

/* El FAB SIEMPRE visible en móvil (el !important del CSS gana al
   style="display:none" inline cuando la sonda ya confirmó catálogos).
   Si aún no hay datos, renderCatBar lo vuelve a ocultar. */
@media (max-width:900px){
  #catalogWrap{
    position:fixed !important;
    left:auto !important;
    top:auto !important;
    right:12px !important;
    bottom:calc(150px + env(safe-area-inset-bottom)) !important;
    z-index:96 !important;
    margin:0 !important;
    display:block !important;
  }
}
#catalogWrap .catalog-fab{
  width:50px !important;
  height:50px !important;
  border-radius:50% !important;
  background:#14141a !important;
  border:1px solid #3a3a44 !important;
  display:flex !important;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  box-shadow:0 10px 26px rgba(0,0,0,.65);
  overflow:hidden;
}
#catalogWrap .catalog-fab img{
  width:34px !important;
  height:34px !important;
  border-radius:50% !important;
  object-fit:cover !important;
}
#catalogWrap .fab-caret{
  position:absolute;
  right:2px;
  bottom:2px;
  width:16px;
  height:16px;
  background:#e50914;
  border-radius:50%;
  stroke:#fff;
  padding:2px;
}
#catalogWrap .catalog-menu{
  position:absolute;
  right:0;
  bottom:56px;
  min-width:170px;
}

/* === FASE FINAL v5 — Header blindado === */

/* La fila de pestañas puede hacer scroll horizontal si es estrecha,
   pero las acciones de la derecha NUNCA se salen del viewport. */
.nav{
  flex-wrap:nowrap !important;
}
.nav nav{
  flex:1 1 auto !important;
  min-width:0 !important;
  overflow-x:auto !important;
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
}
.nav nav::-webkit-scrollbar{ display:none; }
.nav nav a{ white-space:nowrap; flex:none; }
.nav-actions{
  flex:none !important;
  margin-left:auto !important;
}
#catalogWrap{
  flex:none !important;
  margin-left:0 !important;
}
/* Menú de catálogos por encima de cualquier capa */
#catalogWrap .catalog-menu{
  z-index:97 !important;
}

/* === FASE FINAL v6 — Selector de catálogos EN LA NAVBAR (móvil) ===
   Se anula el FAB flotante: el selector queda fijo en la fila superior,
   a la derecha de las pestañas y antes de la lupa, igual que en escritorio. */
@media (max-width:900px){
  #catalogWrap{
    position:relative !important;
    left:auto !important;
    right:auto !important;
    top:auto !important;
    bottom:auto !important;
    display:flex !important;
    align-items:center;
    margin:0 !important;
    z-index:auto !important;
    flex:none !important;
  }
  #catalogWrap .catalog-fab{
    position:relative !important;
    width:38px !important;
    height:38px !important;
    box-shadow:0 4px 14px rgba(0,0,0,.5);
  }
  #catalogWrap .catalog-fab img{
    width:26px !important;
    height:26px !important;
  }
  #catalogWrap .catalog-menu{
    position:absolute !important;
    top:calc(100% + 10px) !important;
    right:0 !important;
    bottom:auto !important;
    left:auto !important;
    min-width:180px;
  }
}


/* === Descubrir (CSS recuperado de la fase 7) === */
/* ============================================================
   DONGHUAFLIX RENACER — FASE 7: Descubrir (estilos)
   ============================================================ */
.dfx7-page{
  max-width:1280px;margin:0 auto;padding:24px 16px 80px;
  background:linear-gradient(#0b0b0f,#000);color:#fff;min-height:100vh;
}
/* Cabecera */
.dfx7-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:20px}
.dfx7-head h1{margin:0;font-size:34px;font-weight:800;letter-spacing:-.02em}
.dfx7-tagline{margin:4px 0 0;color:#b7b7c2;font-size:14px;max-width:520px}
.dfx7-surprise{
  border:none;cursor:pointer;font-weight:700;font-size:14px;color:#fff;
  padding:12px 22px;border-radius:999px;
  background:linear-gradient(135deg,#e50914,#b00610);
  box-shadow:0 6px 18px rgba(229,9,20,.35);
  transition:transform .15s ease,box-shadow .15s ease;
}
.dfx7-surprise:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(229,9,20,.45)}
.dfx7-surprise:active{transform:translateY(0)}

/* Secciones */
.dfx7-section{margin-top:28px}
.dfx7-sec-head{display:flex;align-items:baseline;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.dfx7-sec-head h2{margin:0;font-size:20px;font-weight:700}
.dfx7-sec-sub{color:#8b8b96;font-size:13px}

/* Rail horizontal */
.dfx7-rail{display:flex;gap:14px;overflow-x:auto;padding:4px 2px 10px;scroll-snap-type:x mandatory}
.dfx7-rail::-webkit-scrollbar{height:6px}
.dfx7-rail::-webkit-scrollbar-thumb{background:#2a2a33;border-radius:3px}
.dfx7-rail>.dfx7-card{scroll-snap-align:start}

/* Card */
.dfx7-card{flex:0 0 150px;text-decoration:none;color:#fff;display:block}
.dfx7-card-poster{
  position:relative;aspect-ratio:2/3;border-radius:12px;overflow:hidden;
  background:#17171c;border:1px solid rgba(255,255,255,.06);
  transition:transform .18s ease,box-shadow .18s ease;
}
.dfx7-card:hover .dfx7-card-poster{transform:translateY(-4px) scale(1.02);box-shadow:0 10px 24px rgba(0,0,0,.6)}
.dfx7-card-poster img{width:100%;height:100%;object-fit:cover;display:block}
.dfx7-card-cat{
  position:absolute;top:8px;left:8px;font-size:10px;font-weight:600;
  padding:3px 8px;border-radius:999px;background:rgba(0,0,0,.65);
  border:1px solid rgba(255,255,255,.15);backdrop-filter:blur(4px);
}
.dfx7-card-badge{
  position:absolute;bottom:8px;left:8px;font-size:10px;font-weight:700;
  padding:3px 8px;border-radius:6px;background:#e50914;color:#fff;
}
.dfx7-card-play{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-size:22px;color:#fff;opacity:0;background:rgba(0,0,0,.35);transition:opacity .15s ease;
}
.dfx7-card:hover .dfx7-card-play{opacity:1}
.dfx7-card-title{margin-top:8px;font-size:13px;font-weight:600;line-height:1.25;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.dfx7-card-meta{margin-top:2px;font-size:11px;color:#8b8b96}

/* Skeletons */
.dfx7-sk{background:#17171c;border-radius:12px;border:1px solid rgba(255,255,255,.05);
  animation:dfx7pl 1.4s ease-in-out infinite}
.dfx7-sk-card{flex:0 0 150px}
.dfx7-sk-card .dfx7-sk{aspect-ratio:2/3}
.dfx7-sk-line{height:12px;margin-top:8px;border-radius:6px}
@keyframes dfx7pl{0%,100%{opacity:.55}50%{opacity:1}}

/* Filtros */
.dfx7-filters{
  display:flex;flex-direction:column;gap:10px;margin-bottom:16px;
  padding:14px;border-radius:14px;background:#101015;border:1px solid rgba(255,255,255,.06);
}
.dfx7-fgroup{display:flex;align-items:flex-start;gap:10px}
.dfx7-flabel{flex:0 0 64px;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#8b8b96;padding-top:7px}
.dfx7-chips{display:flex;gap:6px;flex-wrap:wrap}
.dfx7-chip{
  border:1px solid rgba(255,255,255,.15);background:transparent;color:#cfcfda;
  font-size:12px;padding:6px 12px;border-radius:999px;cursor:pointer;transition:all .12s ease;
}
.dfx7-chip:hover{border-color:#fff;color:#fff}
.dfx7-chip.on{background:#fff;color:#000;border-color:#fff;font-weight:600}
.dfx7-clear{
  align-self:flex-start;border:1px dashed rgba(255,255,255,.25);background:transparent;
  color:#8b8b96;font-size:12px;padding:6px 12px;border-radius:8px;cursor:pointer;
}
.dfx7-clear:hover{color:#fff;border-color:#fff}

/* Grid */
.dfx7-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:14px}
.dfx7-grid .dfx7-card{flex:none}
.dfx7-more{grid-column:1/-1;text-align:center;color:#8b8b96;font-size:13px;padding:10px}

/* Empty */
.dfx7-empty{
  text-align:center;padding:48px 20px;color:#8b8b96;
  border:1px dashed rgba(255,255,255,.15);border-radius:14px;margin:8px 0;
}
.dfx7-empty-icon{font-size:28px;margin-bottom:8px;color:#e50914}
.dfx7-empty p{margin:0;font-size:14px;max-width:420px;margin-inline:auto}

/* Responsive */
@media (max-width:768px){
  .dfx7-head h1{font-size:26px}
  .df7-surprise,.dfx7-surprise{width:100%}
  .dfx7-card,.dfx7-sk-card{flex-basis:124px}
  .dfx7-fgroup{flex-direction:column;gap:6px}
  .dfx7-flabel{padding-top:0}
  .dfx7-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px}
}
@media (prefers-reduced-motion:reduce){
  .dfx7-sk{animation:none}
  .dfx7-card-poster,.dfx7-surprise{transition:none}
}

/* === Zoom discreto dentro del reproductor === */
.player{position:relative}
.zoom-fab{
  position:absolute;left:14px;bottom:14px;z-index:6;
  width:38px;height:38px;border-radius:50%;
  background:rgba(15,15,20,.85);border:1px solid rgba(255,255,255,.25);
  color:#fff;display:flex;align-items:center;justify-content:center;
  cursor:pointer;backdrop-filter:blur(6px);transition:border-color .15s ease,transform .15s ease;
}
.zoom-fab:hover{border-color:#e50914;transform:scale(1.06)}
.zoom-fab svg{width:18px;height:18px}
.zoom-pop{
  position:absolute;left:14px;bottom:60px;z-index:7;
  display:flex;align-items:center;gap:6px;
  background:rgba(15,15,20,.92);border:1px solid rgba(255,255,255,.22);
  border-radius:99px;padding:6px 10px;backdrop-filter:blur(8px);
  box-shadow:0 10px 30px rgba(0,0,0,.6);
}
.zoom-pop[hidden]{display:none}
.zoom-pop .zbtn{
  min-width:32px;height:32px;border-radius:50%;
  border:1px solid rgba(255,255,255,.2);background:transparent;color:#fff;
  font-size:15px;cursor:pointer;display:flex;align-items:center;justify-content:center;
  padding:0 6px;transition:border-color .15s ease;
}
.zoom-pop .zbtn:hover{border-color:#e50914}
.zoom-pop .zbtn-wide{width:auto;border-radius:99px;font-size:12px;padding:0 12px}
.zoom-pop #zoomLabel{
  font-size:12px;min-width:40px;text-align:center;color:#ddd;
  font-variant-numeric:tabular-nums;
}

/* Pantalla completa propia: siempre visible y por encima del zoom */
.player .fs-btn{position:absolute !important;right:14px !important;bottom:14px !important;z-index:6 !important}

/* === Reproductor: barra de controles integrada (v29) === */
.player{position:relative;overflow:hidden}
.pl-overlay{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;justify-content:space-between;transition:opacity .25s ease;pointer-events:none}
.pl-overlay>*{pointer-events:auto}
.pl-top{display:flex;justify-content:space-between;gap:8px;padding:10px 12px;background:linear-gradient(rgba(0,0,0,.65),transparent);font-size:11px}
.pl-chip{padding:3px 9px;border-radius:99px;background:rgba(0,0,0,.55);border:1px solid rgba(255,255,255,.18);color:#eee;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:55%}
.pl-bottom{padding:10px 12px;background:linear-gradient(transparent,rgba(0,0,0,.85))}
.pl-prog{height:4px;border-radius:99px;background:rgba(255,255,255,.25);overflow:hidden;margin-bottom:8px}
.pl-prog i{display:block;height:100%;background:#e50914;width:0%;transition:width .5s linear}
.pl-ctrl{display:flex;align-items:center;gap:8px}
.pl-btn{height:32px;min-width:32px;border-radius:99px;border:1px solid rgba(255,255,255,.25);background:rgba(15,15,20,.82);color:#fff;font-size:12px;display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:0 10px;cursor:pointer;backdrop-filter:blur(6px);font-family:inherit}
.pl-btn svg{width:15px;height:15px}
.pl-btn:hover{border-color:#e50914}
.pl-time{font-size:11px;color:#ddd;font-variant-numeric:tabular-nums;white-space:nowrap}
#player.pl-idle{cursor:none}
#player.pl-idle .pl-overlay{opacity:0}
#player.pl-idle .pl-overlay *{pointer-events:none !important}

/* === Pagina de episodio: contenido + panel lateral === */
.ep-layout{display:grid;grid-template-columns:1fr;gap:16px}
@media(min-width:900px){.ep-layout{grid-template-columns:1fr 320px}}
.ep-side{border:1px solid rgba(255,255,255,.1);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;background:#101015;max-height:560px}
.ep-side-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.08)}
.ep-side-head b{font-size:14px}
.ep-count{font-size:11px;color:#8b8b96}
.ep-side-tools{display:flex;gap:5px;padding:8px 10px;border-bottom:1px solid rgba(255,255,255,.08);flex-wrap:wrap}
.ep-side .tbtn{font-size:11px;padding:4px 10px;border-radius:99px;border:1px solid rgba(255,255,255,.14);background:transparent;color:#9a9aa5;cursor:pointer}
.ep-side .tbtn.on{color:#fff;border-color:#fff}
.ep-side-list{overflow-y:auto;padding:6px}
.ep-side-list .eprow{display:flex;align-items:center;gap:9px;padding:7px 8px;border-radius:8px;text-decoration:none;color:inherit}
.ep-side-list .eprow:hover{background:#1a1a20}
.ep-side-list .eprow.cur{background:#1a1a20;border:1px solid rgba(255,255,255,.12)}
.ep-side-list .eprow.hide{display:none}
.ep-side-list .enum{flex:none;width:26px;height:26px;border-radius:7px;background:#17171c;border:1px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600}
.ep-side-list .eprow.cur .enum{background:#e50914;border-color:#e50914;color:#fff}
.ep-side-list .einfo{flex:1;min-width:0}
.ep-side-list .einfo b{display:block;font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ep-side-list .einfo span{font-size:10px;color:#8b8b96}
.ep-side-list .es{display:flex;gap:3px}
.ep-side-list .es i{font-style:normal;font-size:9px;padding:1px 5px;border-radius:5px;border:1px solid rgba(255,255,255,.12);color:#8b8b96}
.ep-side-list .est{flex:none;width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:9px;border:1px solid rgba(255,255,255,.14);color:#8b8b96}
.ep-side-list .est.ok{background:#e50914;border-color:#e50914;color:#fff}
.ep-side-list .newb{font-size:8.5px;font-weight:700;padding:1px 5px;border-radius:5px;background:#e50914;color:#fff}

/* Acciones compactas bajo el reproductor */
.ep-actions{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0 4px}
.ep-actions .abtn{font-size:12px;padding:6px 13px;border-radius:99px;border:1px solid rgba(255,255,255,.15);background:transparent;color:#cfcfda;cursor:pointer;text-decoration:none;font-family:inherit}
.ep-actions .abtn:hover{border-color:#fff;color:#fff}
.ep-actions .abtn[disabled]{opacity:.4;pointer-events:none}

/* === La navbar NO se traga el contenido ===
   --navh la mide dfx-core.js con la altura real de la barra. */
.page-top{padding-top:calc(var(--navh, 60px) + 16px) !important}
.detail-v2{padding-top:calc(var(--navh, 60px) + 12px) !important}

/* === Temporadas: pestañas + progreso (v31) === */
.season-pills{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:16px 0 10px}
.season-pills .spill{padding:8px 15px;border-radius:99px;border:1px solid rgba(255,255,255,.15);background:transparent;color:#cfcfda;font-size:13px;cursor:pointer;font-family:inherit;transition:border-color .15s ease}
.season-pills .spill small{opacity:.65}
.season-pills .spill:hover{border-color:#fff;color:#fff}
.season-pills .spill.on{background:#e50914;border-color:#e50914;color:#fff;font-weight:600}
.season-pills .sbar{flex:1;min-width:90px;height:6px;border-radius:99px;background:#1d1d24;overflow:hidden}
.season-pills .sbar i{display:block;height:100%;background:#e50914;border-radius:99px;transition:width .4s ease}
.season-pills .smeta{font-size:11.5px;color:#8b8b96;white-space:nowrap}
.season-pills .sbtn{font-size:11.5px;padding:7px 13px;border-radius:99px;border:1px solid rgba(255,255,255,.18);background:transparent;color:#cfcfda;cursor:pointer;font-family:inherit;white-space:nowrap}
.season-pills .sbtn:hover{border-color:#fff;color:#fff}

.ep-filters{display:flex;gap:5px;margin:0 0 10px;flex-wrap:wrap}
.ep-filters .fbtn,.ep-ranges .fbtn{font-size:11.5px;padding:5px 11px;border-radius:99px;border:1px solid rgba(255,255,255,.14);background:transparent;color:#9a9aa5;cursor:pointer;font-family:inherit}
.ep-filters .fbtn.on,.ep-ranges .fbtn.on{color:#fff;border-color:#fff}
.ep-ranges{display:flex;gap:5px;margin:0 0 10px;flex-wrap:wrap;align-items:center}

/* === Episodios: mosaico numérico === */
.ep-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(56px,1fr));gap:8px}
.eptile{position:relative;aspect-ratio:1;border-radius:10px;border:1px solid rgba(255,255,255,.1);background:#14141a;display:flex;align-items:center;justify-content:center;transition:transform .12s ease,border-color .12s ease}
.eptile:hover{transform:translateY(-2px);border-color:#e50914}
.eptile.seen{background:#e50914;border-color:#e50914}
.eptile-link{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;text-decoration:none;font-size:14px;font-weight:600}
.eptile.seen .eptile-link{color:#fff}
.eptile-check{position:absolute;top:3px;right:3px;width:16px;height:16px;border-radius:50%;border:1px solid rgba(255,255,255,.35);background:rgba(0,0,0,.55);color:transparent;font-size:9px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;line-height:1}
.eptile-check.on{background:#fff;border-color:#fff;color:#e50914;font-weight:800}
.eptile-new{position:absolute;bottom:3px;left:50%;transform:translateX(-50%);font-size:7.5px;font-weight:800;padding:1px 4px;border-radius:4px;background:#fff;color:#e50914;letter-spacing:.03em;pointer-events:none}
@media(max-width:640px){
  .ep-tiles{grid-template-columns:repeat(auto-fill,minmax(46px,1fr));gap:6px}
  .eptile{border-radius:8px}
  .eptile-link{font-size:12.5px}
}
