/* =============================================================================
   UNIVERSO ANIMES — Design System · ua-components.css  (Fase 0: biblioteca)
   Classes .ua-* prontas para substituir progressivamente os blocos do core
   nos template parts (Fases 1-3). Não dependem do markup legado.
   ============================================================================= */

/* ---------- Botões ---------- */
.ua-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--ua-sp-2);
  min-height:var(--ua-tap-min);padding:12px 22px;border-radius:var(--ua-r-pill);
  font:var(--ua-fw-semibold) var(--ua-fs-base)/1 var(--ua-font-text);
  border:0;cursor:pointer;text-decoration:none;white-space:nowrap;
  transition:background-color var(--ua-dur) var(--ua-ease),color var(--ua-dur) var(--ua-ease);}
.ua-btn--primary{background:#fff;color:#0A0B0E;}
.ua-btn--primary:hover{background:var(--ua-accent);color:var(--ua-accent-ink);}
.ua-btn--accent{background:var(--ua-accent);color:var(--ua-accent-ink);}
.ua-btn--accent:hover{background:var(--ua-accent-hover);color:var(--ua-accent-ink);}
.ua-btn--ghost{background:rgba(255,255,255,.12);color:var(--ua-text);backdrop-filter:blur(var(--ua-blur-sm));-webkit-backdrop-filter:blur(var(--ua-blur-sm));}
.ua-btn--ghost:hover{background:rgba(255,255,255,.2);color:var(--ua-text);}
/* botões 100% sólidos: sem movimento, sombra ou glow (hover só muda a cor) */

/* ---------- Card com progresso ---------- */
.ua-card{position:relative;display:block;border-radius:var(--ua-r-md);overflow:hidden;
  background:var(--ua-surface-1);box-shadow:var(--ua-shadow-1);text-decoration:none;
  transition:transform var(--ua-dur) var(--ua-ease),box-shadow var(--ua-dur) var(--ua-ease);
  will-change:transform;}
.ua-card:hover,.ua-card:focus-within{transform:translateY(-4px);box-shadow:var(--ua-shadow-3);}
.ua-card__media{position:relative;aspect-ratio:2/3;background:var(--ua-surface-2);}
.ua-card__media img{width:100%;height:100%;object-fit:cover;display:block;
  transition:transform var(--ua-dur-slow) var(--ua-ease);}
.ua-card:hover .ua-card__media img{transform:scale(1.06);}
.ua-card__media::after{content:"";position:absolute;inset:0;background:var(--ua-scrim-card);pointer-events:none;}
.ua-card__badges{position:absolute;top:var(--ua-sp-2);left:var(--ua-sp-2);right:var(--ua-sp-2);
  display:flex;gap:var(--ua-sp-1);flex-wrap:wrap;z-index:2;}
.ua-card__body{position:absolute;left:0;right:0;bottom:0;padding:var(--ua-sp-3);z-index:2;}
.ua-card__title{font-family:var(--ua-font-display);font-size:var(--ua-fs-sm);font-weight:var(--ua-fw-semibold);
  color:var(--ua-text);line-height:var(--ua-lh-snug);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.ua-card__meta{margin-top:var(--ua-sp-1);font-size:var(--ua-fs-xs);color:var(--ua-text-3);
  display:flex;align-items:center;gap:var(--ua-sp-2);}
.ua-card__progress{position:absolute;left:0;right:0;bottom:0;height:4px;background:rgba(255,255,255,.15);z-index:3;}
.ua-card__progress>i{display:block;height:100%;width:var(--p,0%);background:var(--ua-accent);box-shadow:0 0 8px var(--ua-accent);}

/* ---------- Badges & Pills (lime sempre como superfície) ---------- */
.ua-badge{display:inline-flex;align-items:center;gap:4px;
  font:var(--ua-fw-semibold) var(--ua-fs-xs)/1 var(--ua-font-text);
  letter-spacing:var(--ua-tracking-caps);text-transform:uppercase;
  padding:5px 9px;border-radius:var(--ua-r-pill);}
.ua-badge--ongoing{color:var(--ua-ok);background:var(--ua-ok-soft);}
.ua-badge--new,.ua-badge--rating{color:var(--ua-accent-ink);background:var(--ua-accent);}
.ua-badge--dub{color:var(--ua-info);background:var(--ua-info-soft);}
.ua-badge--quality{color:var(--ua-text);background:rgba(0,0,0,.55);
  backdrop-filter:blur(var(--ua-blur-sm));-webkit-backdrop-filter:blur(var(--ua-blur-sm));border:1px solid var(--ua-border-hi);}

.ua-pill{display:inline-flex;align-items:center;font:var(--ua-fw-medium) var(--ua-fs-sm)/1 var(--ua-font-text);
  color:var(--ua-text-2);padding:6px 14px;border-radius:var(--ua-r-pill);
  background:var(--ua-surface-2);border:1px solid var(--ua-border);
  transition:color var(--ua-dur-fast) var(--ua-ease),background-color var(--ua-dur-fast) var(--ua-ease),border-color var(--ua-dur-fast) var(--ua-ease);
  text-decoration:none;min-height:32px;}
.ua-pill:hover{color:var(--ua-text);border-color:var(--ua-border-hi);background:var(--ua-surface-3);}
.ua-pill[aria-pressed="true"]{color:var(--ua-accent-ink);background:var(--ua-accent);border-color:transparent;}

/* ---------- Hero (carousel + header de single) ---------- */
.ua-hero{position:relative;width:100%;min-height:clamp(380px,46vw,560px);
  display:flex;align-items:flex-end;overflow:hidden;background:var(--ua-bg-1);}
.ua-hero__media{position:absolute;inset:0;z-index:0;}
.ua-hero__media img{width:100%;height:100%;object-fit:cover;transform:scale(1.02);
  transition:transform 8s var(--ua-ease);}
.ua-hero:hover .ua-hero__media img{transform:scale(1.07);}
.ua-hero__media::before{content:"";position:absolute;inset:0;background:var(--ua-scrim-hero);z-index:1;}
.ua-hero__media::after{content:"";position:absolute;inset:0;background:var(--ua-scrim-hero-side);z-index:1;}
.ua-hero__inner{position:relative;z-index:2;max-width:var(--ua-container);margin:0 auto;width:100%;
  padding:var(--ua-sp-6) var(--ua-sp-5) var(--ua-sp-7);}
.ua-hero__title{font:var(--ua-fw-bold) var(--ua-fs-display)/var(--ua-lh-tight) var(--ua-font-display);
  color:var(--ua-text);max-width:18ch;letter-spacing:var(--ua-tracking-tight);
  text-shadow:0 2px 18px rgba(0,0,0,.6);}
.ua-hero__meta{display:flex;align-items:center;gap:var(--ua-sp-3);margin:var(--ua-sp-3) 0;flex-wrap:wrap;
  color:var(--ua-text-2);font-size:var(--ua-fs-sm);}
.ua-hero__desc{max-width:62ch;color:var(--ua-text-2);font-size:var(--ua-fs-base);line-height:var(--ua-lh-normal);}
.ua-hero__actions{display:flex;gap:var(--ua-sp-3);margin-top:var(--ua-sp-4);}
@media (max-width:768px){
  .ua-hero__media::after{background:none;}
  .ua-hero__actions{flex-direction:column;}
  .ua-hero__actions .ua-btn{width:100%;}
}

/* ---------- Tabs / segmented control ---------- */
.ua-tabs{display:flex;gap:var(--ua-sp-2);overflow-x:auto;scroll-snap-type:x proximity;
  -webkit-overflow-scrolling:touch;padding-bottom:var(--ua-sp-1);}
.ua-tab{flex:0 0 auto;min-height:var(--ua-tap-min);display:inline-flex;align-items:center;padding:10px 16px;
  border-radius:var(--ua-r-pill);background:var(--ua-surface-2);border:1px solid var(--ua-border);
  color:var(--ua-text-2);font-size:var(--ua-fs-sm);scroll-snap-align:center;text-decoration:none;white-space:nowrap;}
.ua-tab:hover{color:var(--ua-text);background:var(--ua-surface-3);}
.ua-tab[aria-current="page"],.ua-tab[aria-selected="true"]{
  background:var(--ua-accent);color:var(--ua-accent-ink);border-color:transparent;font-weight:var(--ua-fw-semibold);}

/* ---------- Inputs ---------- */
.ua-input{background:var(--ua-surface-2);border:1px solid var(--ua-border);border-radius:var(--ua-r-sm);
  color:var(--ua-text);padding:10px 14px;font:var(--ua-fw-regular) var(--ua-fs-base) var(--ua-font-text);
  min-height:var(--ua-tap-min);width:100%;box-sizing:border-box;}
.ua-input::placeholder{color:var(--ua-text-3);}
.ua-input:focus{border-color:var(--ua-border-accent);outline:none;box-shadow:0 0 0 3px var(--ua-accent-soft);}

/* ---------- Bottom-nav mobile (Fase 1) ---------- */
.ua-tabbar{position:fixed;bottom:0;inset-inline:0;z-index:999;display:flex;
  background:var(--ua-bg-0);border-top:1px solid var(--ua-border);padding-bottom:env(safe-area-inset-bottom);}
.ua-tabbar__item{flex:1;min-height:var(--ua-tap-min);display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:4px;color:var(--ua-text-2);text-decoration:none;font-size:var(--ua-fs-xs);padding:6px 2px;}
.ua-tabbar__item[aria-current="page"]{color:var(--ua-accent);}
.ua-tabbar__item .ua-icon{font-size:20px;line-height:1;}

/* ---------- Skeleton (shimmer) ---------- */
.ua-skeleton{position:relative;overflow:hidden;background:var(--ua-surface-2);border-radius:var(--ua-r-md);}
.ua-skeleton::after{content:"";position:absolute;inset:0;transform:translateX(-100%);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.06),transparent);
  animation:ua-shimmer 1.3s infinite;}
@keyframes ua-shimmer{100%{transform:translateX(100%);}}

/* ---------- Reveal no scroll (IntersectionObserver adiciona .is-visible) ---------- */
[data-reveal]{opacity:0;transform:translateY(var(--reveal-y,16px));
  transition:opacity var(--ua-dur-slow) var(--ua-ease-out),transform var(--ua-dur-slow) var(--ua-ease-out);}
[data-reveal].is-visible{opacity:1;transform:none;}

/* ---------- Card de catálogo (.item) — pôster LIMPO + título ABAIXO (estilo referência) ----------
   v2 (revisado): nada de texto sobreposto na arte; título e meta sutis abaixo do pôster. */
.item .ua-pcard{display:block;text-decoration:none;}
.item .poster{position:relative;float:none !important;border-radius:var(--ua-r-md);overflow:hidden;
  background:var(--ua-surface-2);box-shadow:var(--ua-shadow-1);
  transition:transform var(--ua-dur) var(--ua-ease),box-shadow var(--ua-dur) var(--ua-ease);}
.item .ua-pcard:hover .poster{box-shadow:var(--ua-shadow-2);}
.item .poster img{display:block;transition:transform var(--ua-dur-slow) var(--ua-ease);}
.item .ua-pcard:hover .poster img{transform:scale(1.05);}  /* zoom interno da imagem (contido no frame overflow:hidden) — MANTIDO */
/* [UA] SKELETON SHIMMER no pôster: gradiente animado NO PRÓPRIO fundo do .poster (sobre o surface-2),
   ATRÁS da img (os pseudos ::before/::after já são usados pelo tema — scrim de hover + gradiente legado).
   A img opaca cobre ao carregar; graceful se o JS falhar (shimmer fica atrás da img, nunca por cima).
   O JS (ua-search.js) adiciona .is-loaded (para a animação, perf) + .ua-imgin (fade-in) no load da img. */
.item .poster{
  background-image:linear-gradient(100deg,transparent 34%,rgba(255,255,255,.06) 50%,transparent 66%);
  background-size:220% 100%;background-repeat:no-repeat;
  animation:ua-shimmer-bg 1.5s ease-in-out infinite;
}
.item .poster.is-loaded{animation:none;background-image:none;}
.item .poster img.ua-imgin{animation:ua-img-fade .4s ease;}
@keyframes ua-shimmer-bg{0%{background-position:160% 0;}100%{background-position:-60% 0;}}
@media (prefers-reduced-motion:reduce){ .item .poster{animation:none;background-image:none;} .item .poster img.ua-imgin{animation:none;} }
/* Fileira PRÉ-owl limpa: não transbordar à direita antes do owl inicializar (evita flash/scroll-x). */
.items.owl-carousel:not(.owl-loaded){overflow:hidden;}
.item .ua-pcard__info{padding:var(--ua-sp-2) 2px 0;}
.item .ua-pcard__title{margin:0;font-family:var(--ua-font-display);font-weight:var(--ua-fw-semibold);
  font-size:var(--ua-fs-sm);line-height:var(--ua-lh-snug);color:var(--ua-text);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.item .ua-pcard:hover .ua-pcard__title{color:var(--ua-accent-text);}
/* esconde o painel hover legado (.dtinfo) — título agora vive abaixo do pôster */
.item .dtinfo{display:none !important;}
/* o .item do dooplay tinha altura fixa (= só o pôster) + float -> o título abaixo
   transbordava e era coberto pela linha seguinte. Solta a altura e reserva 2 linhas
   no título p/ manter as alturas alinhadas no grid float. */
.item{height:auto !important;margin-bottom:var(--ua-sp-4);}

/* =============================================================================
   CARD v5 (recomendação da equipe) — catálogo: +ano +badge qualidade glass
   episódio: landscape 16:9 + qualidade + DUB/LEG + play overlay
   ============================================================================= */

/* --- Catálogo: ano sutil abaixo do título (14px/600 p/ passar AA com --ua-text-3) --- */
.item .ua-pcard__meta{margin-top:var(--ua-sp-1);font-size:var(--ua-fs-xs);font-weight:600;color:var(--ua-text-2);}

/* --- Badge de qualidade glass (vence o .quality legado por especificidade) --- */
.item .poster .ua-badge--quality,
.ua-ecard__thumb .ua-badge--quality{
  background:rgba(0,0,0,.68);-webkit-backdrop-filter:blur(var(--ua-blur-sm));backdrop-filter:blur(var(--ua-blur-sm));
  border:1px solid var(--ua-border-hi);color:var(--ua-text);
  font:var(--ua-fw-bold) var(--ua-fs-xs)/1 var(--ua-font-text);text-transform:uppercase;letter-spacing:var(--ua-tracking-caps);
  padding:4px 9px;border-radius:var(--ua-r-pill);}
.item .poster .mepo{position:absolute;top:var(--ua-sp-2);left:var(--ua-sp-2);right:auto;bottom:auto;z-index:3;margin:0;padding:0;}

/* --- Card de EPISÓDIO landscape 16:9 --- */
.ua-ecard a{display:block;text-decoration:none;}
.ua-ecard__thumb{position:relative;aspect-ratio:16/9;border-radius:var(--ua-r-sm);overflow:hidden;
  background:var(--ua-surface-2);box-shadow:var(--ua-shadow-1);
  transition:transform var(--ua-dur) var(--ua-ease),box-shadow var(--ua-dur) var(--ua-ease);}
.ua-ecard:hover .ua-ecard__thumb{box-shadow:var(--ua-shadow-2);}
.ua-ecard__thumb img{width:100%;height:100%;object-fit:cover;display:block;
  transition:transform var(--ua-dur-slow) var(--ua-ease);}
.ua-ecard:hover .ua-ecard__thumb img{transform:scale(1.05);}  /* zoom interno da imagem (contido) — MANTIDO */
.ua-ecard__thumb .ua-badge--quality{position:absolute;top:var(--ua-sp-2);left:var(--ua-sp-2);z-index:3;}
/* badge "EP N" glass dentro do thumb (canto inferior-esquerdo) — mesmo idioma visual do badge de qualidade */
.ua-ecard__thumb .ua-badge--ep{position:absolute;left:var(--ua-sp-2);bottom:var(--ua-sp-2);z-index:3;
  background:rgba(0,0,0,.68);-webkit-backdrop-filter:blur(var(--ua-blur-sm));backdrop-filter:blur(var(--ua-blur-sm));
  border:1px solid var(--ua-border-hi);color:var(--ua-text);
  font:var(--ua-fw-bold) var(--ua-fs-xs)/1 var(--ua-font-text);text-transform:uppercase;letter-spacing:var(--ua-tracking-caps);
  padding:4px 9px;border-radius:var(--ua-r-pill);}
/* play overlay glass (sem glow) — MESMO mecanismo de hover no catálogo e no episódio */
.ua-ecard__play,.ua-pcard__play{position:absolute;inset:0;margin:auto;width:50px;height:50px;z-index:4;border-radius:var(--ua-r-pill);
  background:rgba(0,0,0,.62);-webkit-backdrop-filter:blur(var(--ua-blur-md));backdrop-filter:blur(var(--ua-blur-md));
  border:1px solid var(--ua-border-hi);opacity:0;transition:opacity var(--ua-dur-fast) var(--ua-ease);}
.ua-ecard__play::before,.ua-pcard__play::before{content:"";position:absolute;top:50%;left:54%;transform:translate(-50%,-50%);
  border-style:solid;border-width:7px 0 7px 12px;border-color:transparent transparent transparent var(--ua-text);}
.ua-ecard:hover .ua-ecard__play,.ua-ecard:focus-within .ua-ecard__play,
.item .ua-pcard:hover .ua-pcard__play,.item .ua-pcard:focus-within .ua-pcard__play{opacity:1;}
.ua-ecard__info{padding:var(--ua-sp-2) 2px 0;}
.ua-ecard__title{margin:0;font-family:var(--ua-font-display);font-weight:var(--ua-fw-semibold);
  font-size:var(--ua-fs-sm);line-height:var(--ua-lh-snug);color:var(--ua-text);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color var(--ua-dur-fast) var(--ua-ease);}
.ua-ecard:hover .ua-ecard__title{color:var(--ua-accent-text);}
.ua-ecard__meta{margin-top:3px;font-size:var(--ua-fs-sm);font-weight:600;color:var(--ua-text-2);}
/* Mobile 2-up: card landscape estreito → deixa o nome da série quebrar em até 2 linhas
   (em vez de cortar nomes longos tipo "BAKI-DOU: O Samurai Invencível"). Desktop fica 1 linha. */
@media (max-width:520px){
  .ua-ecard__title{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
    line-clamp:2;min-height:calc(1.3em * 2);}
}

/* =============================================================================
   v7 — hover scrim: mídia LIMPA por padrão; gradiente escuro sobe SÓ no hover,
   com o play ACIMA dele (z-index 4 > scrim 2). Vale p/ pôster e thumb de ep.
   ============================================================================= */
.item .poster::before{display:none !important;}  /* mata o gradiente permanente legado (no-overlay/core) */
.item .poster::after,
.ua-ecard__thumb::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
  background:linear-gradient(to top, rgba(7,8,10,.82) 0%, rgba(7,8,10,.34) 50%, rgba(7,8,10,.10) 100%);
  opacity:0;transition:opacity var(--ua-dur) var(--ua-ease);}
.item .ua-pcard:hover .poster::after,.item .ua-pcard:focus-within .poster::after,
.ua-ecard:hover .ua-ecard__thumb::after,.ua-ecard:focus-within .ua-ecard__thumb::after{opacity:1;}

/* =============================================================================
   Bloco de info do episódio (#info) — centralizado, tags de gênero visíveis (SEO),
   descrição discreta e CTA "todos os episódios". Escopo #info.ua-epinfo p/ vencer o core.
   ============================================================================= */
#info.ua-epinfo{text-align:center;max-width:980px;margin:0 auto;padding:var(--ua-sp-6) var(--ua-sp-4) var(--ua-sp-3);}
/* o core flutua os filhos do #info (float:left) -> some o float p/ centralizar */
#info.ua-epinfo .ua-epinfo__title,#info.ua-epinfo .ua-epinfo__tags,
#info.ua-epinfo .ua-epinfo__desc,#info.ua-epinfo .ua-epinfo__all{float:none;width:auto;}
#info.ua-epinfo .ua-epinfo__title{margin:0 0 var(--ua-sp-4);}
#info.ua-epinfo .ua-epinfo__tags{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--ua-sp-2);margin:0 0 var(--ua-sp-4);}
#info.ua-epinfo .ua-epinfo__tags .ua-pill{color:var(--ua-text-2);text-decoration:none;}
#info.ua-epinfo .ua-epinfo__tags .ua-pill:hover{color:var(--ua-text);}
#info.ua-epinfo .ua-epinfo__desc{max-width:72ch;margin:0 auto var(--ua-sp-5);}
#info.ua-epinfo .ua-epinfo__desc p{margin:0;color:var(--ua-text-3);font-size:var(--ua-fs-sm);line-height:var(--ua-lh-normal);}
/* CTA "todos os episódios": rótulo longo (título + texto) PODE quebrar — sem white-space:nowrap
   do .ua-btn estourava a largura e jogava o site pra fora do eixo (overflow-x). */
#info.ua-epinfo .ua-epinfo__all{margin:0 auto;text-decoration:none;max-width:100%;white-space:normal;height:auto;line-height:var(--ua-lh-snug);text-align:center;}

/* =============================================================================
   [UA] Episódio DENSO (Conceito C2) — #info.ua-epinfo--dense. Realinha a meta à ESQUERDA na
   largura da .content (acaba o "solto no meio"), H1 + CTA na MESMA linha (.ua-epinfo__head),
   gêneros inline, descrição em 1 linha (clamp; texto íntegro no DOM), ritmo único. Compacta
   ~330-380px SEM perder SEO. Vence o .ua-epinfo base por +1 classe (1,2,0) + ordem. Sem !important.
   Correções do red-team: H1 fixo ~24px (NÃO --ua-fs-h1, que iria a 36px); text-align:left explícito
   (o core força center em h1.epih1); align-items:center no head (não baseline); H1 menor no mobile.
   ============================================================================= */
/* +.sbox na especificidade (1,2,0) p/ vencer o core `#single .content .sbox{padding:20px;float:left}`
   (mesma espec., carrega depois) — senão o padding lateral de 20px desalinha o H1 do player */
/* clear:both → o #info LIMPA o float do player (player é float dentro da .content); senão o padding-top
   fica "atrás" do player e o conteúdo cola no fundo dele. padding-top sp-6 = respiro player→meta. */
#info.sbox.ua-epinfo--dense{text-align:left;max-width:none;width:100%;float:none;clear:both;margin:0 0 var(--ua-sp-5);padding:var(--ua-sp-6) 0 0;}
#info.ua-epinfo--dense .ua-epinfo__head{display:flex;flex-wrap:wrap;align-items:center;column-gap:var(--ua-sp-4);row-gap:var(--ua-sp-2);width:100%;float:none;clear:both;box-sizing:border-box;}
#info.ua-epinfo--dense .ua-epinfo__title{flex:1 1 auto;min-width:0;float:none;margin:0;text-align:left;font-family:var(--ua-font-display);font-weight:var(--ua-fw-bold);font-size:1.5rem;line-height:var(--ua-lh-snug);}
#info.ua-epinfo--dense .ua-epinfo__all{flex:0 0 auto;margin:0 0 0 auto;width:auto;min-height:36px;padding:var(--ua-sp-2) var(--ua-sp-4);font-size:var(--ua-fs-sm);white-space:nowrap;text-align:center;}
#info.ua-epinfo--dense .ua-epinfo__tags{justify-content:flex-start;gap:var(--ua-sp-2);margin:var(--ua-sp-3) 0 0;width:100%;}
#info.ua-epinfo--dense .ua-epinfo__desc{max-width:none;margin:var(--ua-sp-2) 0 0;width:100%;}
#info.ua-epinfo--dense .ua-epinfo__desc p{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;text-align:left;}
@media (max-width:768px){
  #info.ua-epinfo--dense .ua-epinfo__title{flex:1 1 100%;font-size:1.25rem;}
  #info.ua-epinfo--dense .ua-epinfo__all{flex:1 1 100%;width:100%;margin:var(--ua-sp-3) 0 0;min-height:var(--ua-tap-min);}
  /* MOBILE: gutter lateral 16px no conteúdo (player/navegador seguem full-bleed) + aperta o gap
     descrição→seletor de eps (era 102px) + clareia o bottom-nav fixo (não cola o Discord na navbar). */
  #info.sbox.ua-epinfo--dense{padding-left:var(--ua-sp-4);padding-right:var(--ua-sp-4);}
  body.single-episodes #single .sidebar{margin-top:0;padding:0 var(--ua-sp-4);}
  body.single-episodes #single .sidebar .ep-widget{margin-top:0;}
  #single{padding-bottom:var(--ua-sp-6);}  /* clearance do bottom-nav fixo em TODAS as singles (era só-episódio → no anime o Discord colava na navbar) */
}
@media (max-width:480px){
  #info.ua-epinfo--dense .ua-epinfo__desc p{-webkit-line-clamp:2;}
}
/* [UA] Episódio: respiro do TOPBAR p/ a sidebar de eps (estava colada no menu, gap 0) — alinha com o
   navegador (que também recebe sp-6). E remove o border-bottom do #single (colors.dark.min.css:346),
   só no episódio (espec. 1,0,1 vence o #single 1,0,0 do core). */
/* respiro do TOPBAR p/ a sidebar SÓ no desktop (≥769). No mobile a sidebar é movida p/ baixo do #info,
   onde margin-top:0 (definido no @media≤768 acima) — sem o min-width, esta regra venceria por vir depois. */
@media (min-width:769px){ body.single-episodes #single .sidebar{margin-top:var(--ua-sp-6);} }
#single{border-bottom-width:0;}  /* TODAS as singles: era a "linha solta" no fim do #single (abaixo do Discord no anime) */
/* remove a outra linha solta (border-top do breadcrumb inferior, abaixo do share). A fonte não está em
   CSS legível (provável DB "CSS personalizado") e venceu minha regra (1,2,0) → uso espec. maior + !important
   (paridade justificada: fonte inalcançável + linha rejeitada pelo dono). */
#dt_contenedor #single .dt-breadcrumb.breadcrumb_bottom{border-top:0 !important;}

/* =============================================================================
   Hero de arquivo/taxonomia/404 — backdrop borrado + scrim + eyebrow/H1/subtítulo
   ============================================================================= */
.ua-arc-hero{position:relative;margin:0 0 var(--ua-sp-5);border-radius:var(--ua-r-lg);overflow:hidden;
  background:var(--ua-bg-1);background-size:cover;background-position:50% 30%;}
.ua-arc-hero.has-bg::before{content:"";position:absolute;inset:0;backdrop-filter:saturate(1.1);-webkit-backdrop-filter:saturate(1.1);}
.ua-arc-hero__inner{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;min-height:clamp(150px,20vw,250px);padding:var(--ua-sp-7) var(--ua-sp-5);}
.ua-arc-hero__eyebrow{font:var(--ua-fw-semibold) var(--ua-fs-xs)/1 var(--ua-font-text);text-transform:uppercase;
  letter-spacing:var(--ua-tracking-caps);color:var(--ua-text-2);margin-bottom:var(--ua-sp-2);}
.ua-arc-hero__title{margin:0;font-family:var(--ua-font-display);font-weight:var(--ua-fw-bold);
  font-size:var(--ua-fs-display);line-height:var(--ua-lh-tight);letter-spacing:var(--ua-tracking-tight);
  color:var(--ua-text);text-shadow:0 2px 18px rgba(0,0,0,.5);}
.ua-arc-hero__sub{margin:var(--ua-sp-2) 0 0;color:var(--ua-text-2);font-size:var(--ua-fs-base);}

/* [UA] BACKDROP UNIFICADO estilo concorrente (loveflix) — FAIXA DE FUNDO (.ua-topbg) atrás de TODO o
   conteúdo, NÃO um hero/divisor. O conteúdo (título + grade) flui POR CIMA sem ser empurrado/engessado.
   z-index:-1 dentro do stacking context de #contenedor (isolation) → aparece atrás do conteúdo (containers
   transparentes) e acima do bg opaco do #dt_contenedor. ESCURO/sutil (mood), funde em --ua-bg-0.
   Páginas body.ua-immersive: episódio (série) + genéricas (destaque). Anime/filme usam .ua-shero. */
body.ua-immersive #contenedor{position:relative;isolation:isolate;}
/* EPISÓDIO: fora do imersivo por completo (ua_top_backdrop()='' p/ episódio) → sem faixa de topo, header
   sólido, #contenedor com a folga padrão do core (margin-top). Página limpa/preta, "como estava". */
.ua-topbg{
  position:absolute;top:0;left:50%;transform:translateX(-50%);width:100vw;z-index:-1;pointer-events:none;
  height:clamp(360px,48vh,540px);
}
/* LAYER 0 — imagem esmagada em MOOD escuro (mesmo idioma do rodapé: brightness baixo + saturate) */
.ua-topbg::before{
  content:"";position:absolute;inset:0;
  background-image:var(--ua-topbg-img);
  background-size:cover;background-position:center 16%;background-repeat:no-repeat;
  filter:brightness(.42) saturate(.9);
}
/* LAYER 1 — scrim vertical: degradê MAIOR/integrado, fecha em --ua-bg-0 (funde com a página) */
.ua-topbg::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,
    rgba(7,8,10,.30) 0%, rgba(7,8,10,.28) 20%, rgba(7,8,10,.52) 48%,
    rgba(7,8,10,.82) 76%, var(--ua-bg-0) 100%);
}
@media (max-width:768px){ .ua-topbg{height:clamp(280px,46vh,420px);} .ua-topbg::before{background-position:center 14%;} }

/* Hero de arquivo = só o bloco de TÍTULO, transparente, SOBRE a faixa de fundo (não é caixa, não empurra
   o conteúdo). Só o respiro do header transparente + respiro inferior. Backdrop vem do .ua-topbg. */
body.ua-immersive .ua-arc-hero{background:transparent;border-radius:0;margin:0;overflow:visible;}
body.ua-immersive .ua-arc-hero.has-bg::before{content:none;}
body.ua-immersive .ua-arc-hero__inner{
  padding-top:calc(var(--ua-header-h,70px) + var(--ua-sp-5));padding-bottom:var(--ua-sp-5);min-height:0;
}
@media (max-width:768px){
  /* MOBILE: o conteúdo já começa abaixo do header (o core reserva ~53px no #contenedor p/ o header fixo),
     então o padding-top NÃO precisa re-limpar o header — só um respiro pequeno. Sem isso sobra um vão
     grande de backdrop acima do eyebrow (apontado pelo dono). Desktop mantém a folga cheia (header fixed). */
  body.ua-immersive .ua-arc-hero__inner{padding-top:var(--ua-sp-4);}
}

/* 404 — full-width centralizado */
.ua-404 .content{max-width:820px;margin:0 auto;float:none;text-align:center;}
.ua-404__actions{display:flex;gap:var(--ua-sp-3);justify-content:center;flex-wrap:wrap;margin:0 0 var(--ua-sp-5);}
.ua-404__search{max-width:440px;margin:0 auto var(--ua-sp-7);}

/* =============================================================================
   Página de Gêneros (/generos/) — grid dinâmico de cards de gênero
   Hover: só zoom sutil da imagem (sem glow/lift/sombra).
   ============================================================================= */
.ua-genres .content{float:none;}
.ua-genres__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:var(--ua-sp-3);}
.ua-genre-card{position:relative;display:flex;align-items:flex-end;min-height:130px;
  border-radius:var(--ua-r-md);overflow:hidden;text-decoration:none;background:var(--ua-surface-2);
  padding:var(--ua-sp-3);}
.ua-genre-card__media{position:absolute;inset:0;z-index:0;background-size:cover;background-position:50% 35%;
  transition:transform var(--ua-dur-slow) var(--ua-ease);}
.ua-genre-card:hover .ua-genre-card__media{transform:scale(1.05);}
.ua-genre-card::after{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(7,8,10,.25) 0%,rgba(7,8,10,.55) 55%,rgba(7,8,10,.86) 100%);}
.ua-genre-card__name{position:relative;z-index:2;font-family:var(--ua-font-display);font-weight:var(--ua-fw-bold);
  font-size:var(--ua-fs-lg);line-height:var(--ua-lh-tight);color:var(--ua-text);text-shadow:0 1px 8px rgba(0,0,0,.6);}
.ua-genre-card:hover .ua-genre-card__name{color:var(--ua-accent-text);}
.ua-genre-card__count{position:absolute;top:var(--ua-sp-2);right:var(--ua-sp-2);z-index:2;
  font:var(--ua-fw-semibold) var(--ua-fs-xs)/1 var(--ua-font-text);color:var(--ua-text);
  background:rgba(0,0,0,.55);-webkit-backdrop-filter:blur(var(--ua-blur-sm));backdrop-filter:blur(var(--ua-blur-sm));
  border:1px solid var(--ua-border-hi);padding:4px 8px;border-radius:var(--ua-r-pill);}
@media (max-width:520px){.ua-genres__grid{grid-template-columns:repeat(2,1fr);}}

/* =============================================================================
   OVERLAY DE BUSCA — full-screen premium-dark, reusa a live-search do tema.
   Sem glow/sombra; foco/hover por cor (regra de ouro do lime). Mídia pode scrim.
   ============================================================================= */
body.ua-search-open{overflow:hidden;}
.ua-search-overlay{position:fixed;inset:0;z-index:1200;display:flex;flex-direction:column;
  padding:max(7vh,44px) 16px 24px;opacity:0;pointer-events:none;
  transition:opacity var(--ua-dur) var(--ua-ease);}
.ua-search-overlay[hidden]{display:none;}            /* vence o display:flex acima quando fechado */
/* WP admin bar (logado): campo logo abaixo da barra c/ gap padrão (não somar o 7vh → ficava longe demais) */
body.admin-bar .ua-search-overlay{padding-top:calc(46px + var(--ua-sp-4));}
@media screen and (min-width:783px){body.admin-bar .ua-search-overlay{padding-top:calc(32px + var(--ua-sp-4));}}
.ua-search-overlay.is-open{opacity:1;pointer-events:auto;}  /* só captura cliques quando aberto */
.ua-search-overlay__backdrop{position:absolute;inset:0;background:rgba(7,8,10,.88);
  -webkit-backdrop-filter:blur(var(--ua-blur-lg));backdrop-filter:blur(var(--ua-blur-lg));cursor:pointer;}
.ua-search-overlay__panel{position:relative;z-index:1;width:100%;max-width:760px;margin:0 auto;
  display:flex;flex-direction:column;gap:var(--ua-sp-3);
  transform:translateY(-8px);transition:transform var(--ua-dur) var(--ua-ease);}
.ua-search-overlay.is-open .ua-search-overlay__panel{transform:none;}

/* Campo de busca */
.ua-search-overlay__form{position:relative;display:flex;align-items:center;gap:var(--ua-sp-2);
  background:var(--ua-surface-1);border:1px solid var(--ua-border);border-radius:var(--ua-r-lg);
  padding:0 16px;transition:border-color var(--ua-dur-fast) var(--ua-ease);}
.ua-search-overlay__form:focus-within{border-color:var(--ua-accent);}
.ua-search-overlay__icon{color:var(--ua-text-3);font-size:18px;flex:0 0 auto;}
.ua-search-overlay__input{flex:1 1 auto;min-width:0;background:0 0;border:0;outline:0;color:var(--ua-text);
  font-family:var(--ua-font-display);font-weight:var(--ua-fw-semibold);
  font-size:clamp(18px,2.6vw,24px);line-height:1.2;padding:18px 0;}
.ua-search-overlay__input::placeholder{color:var(--ua-text-3);font-weight:var(--ua-fw-medium);}
.ua-search-overlay__input::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none;}
.ua-search-overlay__close{flex:0 0 auto;width:38px;height:38px;display:grid;place-items:center;
  background:0 0;border:0;border-radius:var(--ua-r-md);color:var(--ua-text-2);font-size:18px;cursor:pointer;
  transition:color var(--ua-dur-fast) var(--ua-ease),background var(--ua-dur-fast) var(--ua-ease);}
.ua-search-overlay__close:hover{color:var(--ua-text);background:var(--ua-surface-2);}

/* Resultados (markup vindo da live-search: ul>li>a>.poster/.title/.imdb + li.ctsx>.more) */
.ua-search-overlay__results{position:static;float:none;top:auto;left:auto;right:auto;width:100%;opacity:1;
  max-height:62vh;overflow-y:auto;overflow-x:hidden;border-radius:var(--ua-r-md);}
.ua-search-overlay__results ul{list-style:none;margin:0;padding:0;float:none;box-shadow:none;background:0 0;
  display:flex;flex-direction:column;gap:2px;}
.ua-search-overlay__results ul:hover li{opacity:1;}
.ua-search-overlay__results li,.ua-search-overlay__results ul li{position:static;margin:0;padding:0;
  float:none;width:auto;background:0 0;border:0;opacity:1;}
.ua-search-overlay__results ul li:hover{background:0 0;}
.ua-search-overlay__results li a{display:flex;align-items:center;gap:var(--ua-sp-3);
  padding:8px 10px;border-radius:var(--ua-r-md);color:var(--ua-text-2);text-decoration:none;
  transition:background var(--ua-dur-fast) var(--ua-ease),color var(--ua-dur-fast) var(--ua-ease);}
.ua-search-overlay__results li a:hover,.ua-search-overlay__results li a:focus-visible{
  background:var(--ua-surface-2);color:var(--ua-text);}
.ua-search-overlay__results .poster{flex:0 0 46px;width:46px;height:69px;margin:0;float:none;border-radius:var(--ua-r-sm);
  overflow:hidden;background:var(--ua-surface-3);}
.ua-search-overlay__results .poster::before{display:none !important;}
.ua-search-overlay__results .poster img{width:46px;height:69px;object-fit:cover;display:block;}
.ua-search-overlay__results .title{flex:1 1 auto;min-width:0;
  font-family:var(--ua-font-display);font-weight:var(--ua-fw-semibold);font-size:15px;line-height:1.3;
  color:var(--ua-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ua-search-overlay__results .title .release{display:inline;margin-left:6px;
  font-family:var(--ua-font-text);font-weight:var(--ua-fw-medium);font-size:13px;color:var(--ua-text-3);}
.ua-search-overlay__results .imdb{flex:0 0 auto;margin-left:auto;
  font-size:13px;font-weight:var(--ua-fw-semibold);color:var(--ua-text-2);}
.ua-search-overlay__results .imdb .fa-star,.ua-search-overlay__results .imdb .fas{color:var(--ua-accent-text);}
/* CTA "Ver todos os resultados" */
.ua-search-overlay__results li.ctsx{margin-top:var(--ua-sp-2);}
.ua-search-overlay__results li.ctsx a,.ua-search-overlay__results .more{display:flex;justify-content:center;
  align-items:center;gap:8px;padding:13px;border-radius:var(--ua-r-md);
  background:var(--ua-accent);color:var(--ua-accent-ink);font-family:var(--ua-font-display);
  font-weight:var(--ua-fw-bold);font-size:14px;cursor:pointer;}
.ua-search-overlay__results li.ctsx a:hover,.ua-search-overlay__results .more:hover{
  background:var(--ua-accent-hover);color:var(--ua-accent-ink);}
.ua-search-overlay__results .more .icon-search-1{font-weight:var(--ua-fw-semibold);opacity:.85;}
.ua-search-overlay__results li.ctsx a::after{content:"";}

.ua-search-overlay__loading,.ua-search-overlay__empty{padding:22px 12px;text-align:center;
  font-family:var(--ua-font-text);font-size:14px;font-weight:var(--ua-fw-medium);color:var(--ua-text-3);}
.ua-search-overlay__hint{text-align:center;font-size:var(--ua-fs-xs);color:var(--ua-text-3);
  font-weight:var(--ua-fw-medium);}
.ua-search-overlay__hint kbd{font-family:var(--ua-font-text);font-size:11px;font-weight:var(--ua-fw-semibold);
  color:var(--ua-text-2);background:var(--ua-surface-2);border:1px solid var(--ua-border);
  border-radius:var(--ua-r-xs);padding:1px 6px;}

@media (max-width:520px){
  .ua-search-overlay{padding:16px 12px 16px;}
  .ua-search-overlay__results{max-height:none;flex:1 1 auto;}
}

/* =============================================================================
   TOPBAR — transparente sobre o hero → glass sólido no scroll (.ua-scrolled).
   Vence o core (header.main 0,1,1) via header#header.main (1,1,1) + ordem.
   Altura travada em --ua-header-h → ZERO CLS. (--ua-header-h vive em ua-tokens.)
   ============================================================================= */
header#header.main{
  height:var(--ua-header-h);
  background:transparent;box-shadow:none;
  border-bottom:1px solid transparent;        /* reserva a borda → sem reflow no scroll */
  -webkit-backdrop-filter:none;backdrop-filter:none;
  transition:background-color var(--ua-dur) var(--ua-ease),
             border-color var(--ua-dur) var(--ua-ease),
             -webkit-backdrop-filter var(--ua-dur) var(--ua-ease),
             backdrop-filter var(--ua-dur) var(--ua-ease);
}
/* véu superior p/ legibilidade do nav sobre arte clara (só no topo). z-index:0 (não -1, frágil no Safari). */
header#header.main::before{
  content:"";position:absolute;inset:0 0 auto 0;height:170%;z-index:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(7,8,10,.78) 0%,rgba(7,8,10,.30) 55%,rgba(7,8,10,0) 100%);
  opacity:1;transition:opacity var(--ua-dur) var(--ua-ease);
}
header#header.main .hbox{position:relative;z-index:1;max-width:var(--ua-container);}
header#header.main.ua-scrolled{
  background:var(--ua-glass);border-bottom-color:var(--ua-border);
  -webkit-backdrop-filter:blur(var(--ua-blur-md)) saturate(var(--ua-backdrop-saturate));
  backdrop-filter:blur(var(--ua-blur-md)) saturate(var(--ua-backdrop-saturate));
}
header#header.main.ua-scrolled::before{opacity:0;}
/* logo centralizado verticalmente no header (core deixava ~4px alto: padding-top 14 + img 34 ≠ centro) */
header#header.main .logo{display:flex;align-items:center;height:var(--ua-header-h);}
header#header.main .logo a img{display:block;height:34px;width:auto;}

/* ---------- Nav: tipografia Inter calma; mata os ícones coloridos ---------- */
header#header.main .head-main-nav ul.main-header > li > a{
  display:inline-flex;align-items:center;height:var(--ua-header-h);
  font-family:var(--ua-font-text);font-size:var(--ua-fs-sm);font-weight:var(--ua-fw-semibold);
  letter-spacing:0;text-transform:none;color:var(--ua-text-2);
  padding:0 14px;position:relative;line-height:1;
  transition:color var(--ua-dur-fast) var(--ua-ease);
}
header#header.main .head-main-nav ul.main-header > li > a:hover,
header#header.main .head-main-nav ul.main-header > li > a:focus-visible,
header#header.main .head-main-nav ul.main-header > li.current-menu-item > a,
header#header.main .head-main-nav ul.main-header > li.current-menu-ancestor > a,
header#header.main .head-main-nav ul.main-header > li.current_page_item > a{color:var(--ua-text);}
/* sublinhado lime 2px = SUPERFÍCIE. Usa ::before (o caret do dropdown é ::after f0dd no core). */
header#header.main .head-main-nav ul.main-header > li > a::before{
  content:"";position:absolute;left:14px;right:14px;bottom:16px;height:2px;border-radius:var(--ua-r-pill);
  background:var(--ua-accent);transform:scaleX(0);transform-origin:left;
  transition:transform var(--ua-dur) var(--ua-ease);
}
header#header.main .head-main-nav ul.main-header > li > a:hover::before,
header#header.main .head-main-nav ul.main-header > li.current-menu-item > a::before,
header#header.main .head-main-nav ul.main-header > li.current-menu-ancestor > a::before,
header#header.main .head-main-nav ul.main-header > li.current_page_item > a::before{transform:scaleX(1);}
/* neutraliza ícones coloridos inconsistentes (lista/play/máscaras/etc.) → currentColor */
header#header.main .head-main-nav ul.main-header > li > a i,
header#header.main .head-main-nav ul.main-header > li > a svg,
header#header.main .head-main-nav ul.main-header > li > a [class^="icon-"],
header#header.main .head-main-nav ul.main-header > li > a [class*=" icon-"],
header#header.main .head-main-nav ul.main-header > li > a [class^="fa-"],
header#header.main .head-main-nav ul.main-header > li > a [class*=" fa-"]{
  color:currentColor !important;font-size:13px;margin-right:7px;opacity:.9;
}
/* caret do dropdown (::after f0dd do core) discreto — recolore o pseudo REAL */
header#header.main .head-main-nav ul.main-header > li.menu-item-has-children > a:after{color:var(--ua-text-3);}

/* dropdown / submenu: superfície elevada, sem glow */
header#header.main .head-main-nav ul.main-header li ul{
  background:var(--ua-surface-3);border:1px solid var(--ua-border);
  border-radius:var(--ua-r-md);box-shadow:none;overflow:hidden;padding:6px;
}
header#header.main .head-main-nav ul.main-header li ul li a{
  color:var(--ua-text-2);font-size:var(--ua-fs-sm);text-transform:none;height:auto;
  padding:10px 14px;border-radius:var(--ua-r-sm);
  transition:color var(--ua-dur-fast) var(--ua-ease),background var(--ua-dur-fast) var(--ua-ease);
}
header#header.main .head-main-nav ul.main-header li ul li a::before{display:none;}
header#header.main .head-main-nav ul.main-header li ul li a:hover{color:var(--ua-text);background:var(--ua-surface-2);}

/* ---------- Alinhamento: busca + histórico centralizados na altura do header ----------
   (o core dá .htcr{padding:24px 0} e .search{padding:14px 0} → desalinhados; aqui zera e centra) */
header#header.main .headitems{
  display:flex;align-items:center;justify-content:flex-end;gap:var(--ua-sp-3);
  height:var(--ua-header-h);width:auto;
}
header#header.main .headitems .search{float:none;padding:0;}
header#header.main .headitems .htcr{float:none;padding:0;display:flex;align-items:center;}

/* ---------- Busca: pill surface-2; borda lime só no focus-within ---------- */
header#header.main .headitems .search #searchform{
  position:relative;display:flex;align-items:center;
  background:var(--ua-surface-2);border:1px solid var(--ua-border);border-radius:var(--ua-r-pill);
  transition:border-color var(--ua-dur-fast) var(--ua-ease),background var(--ua-dur-fast) var(--ua-ease);
}
header#header.main .headitems .search #searchform:hover{border-color:var(--ua-border-hi);}
header#header.main .headitems .search #searchform:focus-within{border-color:var(--ua-border-accent);background:var(--ua-surface-3);}
/* no topo (transparente): glass ESCURO p/ garantir contraste AA sobre arte clara (não branco translúcido) */
header#header.main:not(.ua-scrolled) .headitems .search #searchform{
  background:rgba(7,8,10,.45);border-color:var(--ua-border-hi);
  -webkit-backdrop-filter:blur(var(--ua-blur-sm));backdrop-filter:blur(var(--ua-blur-sm));
}
header#header.main .headitems .search #s{
  background:0 0;border:0;color:var(--ua-text);height:40px;padding:0 76px 0 16px;min-width:220px;
  font:var(--ua-fw-medium) var(--ua-fs-sm) var(--ua-font-text);
}
header#header.main .headitems .search #s::placeholder{color:var(--ua-text-2);}  /* text-2 ~9:1, AA garantido */
header#header.main .headitems .search #s:focus{outline:none;}
/* botões lupa + dado: monocromáticos + reposiciona absoluto (o <style> inline removido fazia isso) */
header#header.main .headitems .search #searchform button.search-button{
  position:absolute;top:0;right:0;height:40px;display:flex;align-items:center;padding:0 14px;
  border:0;background:0 0;cursor:pointer;color:var(--ua-text-2);
  transition:color var(--ua-dur-fast) var(--ua-ease);
}
header#header.main .headitems .search #searchform button.search-button:hover{color:var(--ua-text);}
header#header.main .headitems .search #searchform button.search-button[style*="right: 40px"]{right:40px;}

/* histórico: botão-ícone circular (40×40). padding:0 zera o padding:25px 20px do core que
   inflava p/ 40×50 (oval) via box-sizing:border-box. */
header#header.main .headitems .htcr .openHist{
  display:inline-flex;align-items:center;justify-content:center;
  width:40px;height:40px;padding:0;box-sizing:border-box;line-height:1;
  border-radius:50%;color:var(--ua-text-2);background:transparent;font-size:16px;
  transition:color var(--ua-dur-fast) var(--ua-ease),background var(--ua-dur-fast) var(--ua-ease);
}
header#header.main .headitems .htcr .openHist:hover{color:var(--ua-text);background:var(--ua-surface-2);}

/* ---------- Header MOBILE (.responsive) — mesmo idioma sólido ---------- */
header.responsive{
  background:var(--ua-glass);border-bottom:1px solid var(--ua-border);
  -webkit-backdrop-filter:blur(var(--ua-blur-md)) saturate(var(--ua-backdrop-saturate));
  backdrop-filter:blur(var(--ua-blur-md)) saturate(var(--ua-backdrop-saturate));
}
/* posicionamento + cor da lupa/dado mobile (migrado do <style> inline removido do header.php) */
form.form-resp-ab{position:relative;}
form.form-resp-ab button{position:absolute;top:0;right:0;border:0;background:0 0;padding:14px 13px;cursor:pointer;}
form.form-resp-ab button[style*="right: 40px"]{right:40px;}
.form-resp-ab button span,form.form-resp-ab .search-button span{color:var(--ua-text-2);}
.form-resp-ab button:hover span,form.form-resp-ab .search-button:hover span{color:var(--ua-text);}

/* =============================================================================
   FOOTER HERO — backdrop de anime + scrim premium (desktop E mobile).
   O topo do scrim esvanece da COR DA PÁGINA (--ua-bg-0) → integra com a seção acima
   sem corte (mesmo princípio do hero). Conteúdo legível sobre o scrim.
   ============================================================================= */
footer.main.ua-foot-hero{
  position:relative;
  isolation:isolate;
  background-color:var(--ua-bg-0);
}
@media (min-width:1px){ /* [UA] backdrop do rodapé em TODAS as larguras (desktop + mobile) */
  /* LAYER 0 — backdrop esmagado em TEXTURA/MOOD escuro, nunca foto nítida.
     brightness/saturate baixos + blur dissolvem o detalhe ANTES do scrim.
     mask-image esvanece topo e base → a própria mídia derrete na página
     (mata a linha de corte e a banda clara) SEM transform:scale, então nada
     vaza do footer e overflow:hidden é desnecessário (back-to-top nunca corta). */
  footer.main.ua-foot-hero::before{
    content:"";position:absolute;inset:0;z-index:0;
    background-image:var(--ua-foot-bg);
    background-size:cover;background-position:center 30%;background-repeat:no-repeat;
    filter:brightness(.5) saturate(.88) contrast(1.0) blur(2px);
    -webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 22%,#000 72%,transparent 100%);
            mask-image:linear-gradient(180deg,transparent 0%,#000 22%,#000 72%,transparent 100%);
    pointer-events:none;
  }
  /* LAYER 1 — scrim sobre a mídia: vinheta radial (escurece bordas, suaviza o
     centro onde ficam logo/copy/botões) + scrim vertical fechando em --ua-bg-0
     em 0% E 100% (redundante com a mask p/ fusão perfeita). Mantém contraste AA. */
  footer.main.ua-foot-hero::after{
    content:"";position:absolute;inset:0;z-index:1;
    background-image:
      radial-gradient(120% 130% at 50% 38%,
        rgba(7,8,10,.20) 0%, rgba(7,8,10,.50) 52%, rgba(7,8,10,.82) 100%),
      linear-gradient(180deg,
        var(--ua-bg-0) 0%, rgba(7,8,10,.80) 12%, rgba(7,8,10,.56) 42%,
        rgba(7,8,10,.64) 70%, rgba(7,8,10,.88) 88%, var(--ua-bg-0) 100%);
    pointer-events:none;
  }
  footer.main.ua-foot-hero .fbox{
    position:relative;z-index:2;
    padding-top:var(--ua-sp-7);padding-bottom:var(--ua-sp-5);
  }
}

/* Conteúdo acima das camadas de mídia em qualquer largura. */
footer.main.ua-foot-hero .fbox,
footer.main.ua-foot-hero .fcmpbox,
footer.main.ua-foot-hero .copy,
footer.main.ua-foot-hero .top-page,
footer.main.ua-foot-hero .fmenu{position:relative;z-index:2;}

/* Copyright legível sobre o scrim (AA); back-to-top como pílula neutra. */
footer.main.ua-foot-hero .fbox .copy{
  float:left;padding:var(--ua-sp-5) 0;
  color:var(--ua-text-2);font-family:var(--ua-font-text);font-size:var(--ua-fs-sm);
}
footer.main.ua-foot-hero .fbox .copy strong{color:var(--ua-text);font-weight:var(--ua-fw-semibold);}
footer.main.ua-foot-hero .fbox span.top-page{position:relative;z-index:3;padding:var(--ua-sp-5) 0;}
footer.main.ua-foot-hero .fbox span.top-page > a#top-page{
  display:inline-flex;align-items:center;justify-content:center;
  width:40px;height:40px;border-radius:var(--ua-r-pill);
  background-color:var(--ua-surface-2);border:1px solid var(--ua-border-hi);color:var(--ua-text);cursor:pointer;
  transition:background-color var(--ua-dur) var(--ua-ease),border-color var(--ua-dur) var(--ua-ease),color var(--ua-dur) var(--ua-ease);
}
footer.main.ua-foot-hero .fbox span.top-page > a#top-page:hover,
footer.main.ua-foot-hero .fbox span.top-page > a#top-page:focus-visible{
  background-color:var(--ua-surface-3);border-color:var(--ua-border-hi);color:var(--ua-text);
}

/* Botões de PARCEIROS (Hazeflix/Hypeflix) — menu "footer1" em .columenu .item ul.
   Vinham como pílulas-fantasma contornadas (border:2px solid #c8c8c8; bg translúcido;
   radius:20px). Viram pílulas SÓLIDAS neutras (parceiros = secundário, NUNCA lime),
   flat — hover só troca de cor (sem glow/lift). Especificidade (0,4,4) vence a origem;
   ua-components carrega por último entre as folhas do tema. */
footer.main.ua-foot-hero .fbox .columenu .item ul{
  display:flex;align-items:center;justify-content:center;flex-wrap:wrap;
  gap:var(--ua-sp-2);margin:var(--ua-sp-3) 0 0;padding:0;list-style:none;
}
footer.main.ua-foot-hero .fbox .columenu .item ul li{float:none;margin:0;padding:0;border:0;list-style:none;}
footer.main.ua-foot-hero .fbox .columenu .item ul li a{
  display:inline-flex;align-items:center;justify-content:center;
  padding:10px 20px;border-radius:var(--ua-r-pill);
  background-color:var(--ua-surface-2);border:1px solid var(--ua-border-hi);color:var(--ua-text);
  font-family:var(--ua-font-text);font-size:var(--ua-fs-sm);font-weight:var(--ua-fw-semibold);
  line-height:1;letter-spacing:.01em;white-space:nowrap;text-decoration:none;
  transition:background-color var(--ua-dur) var(--ua-ease),border-color var(--ua-dur) var(--ua-ease),color var(--ua-dur) var(--ua-ease);
}
footer.main.ua-foot-hero .fbox .columenu .item ul li a:hover,
footer.main.ua-foot-hero .fbox .columenu .item ul li a:focus-visible{background-color:var(--ua-surface-3);border-color:var(--ua-border-hi);color:var(--ua-text);}
footer.main.ua-foot-hero .fbox .columenu .item ul li a:focus-visible{outline:2px solid var(--ua-border-hi);outline-offset:2px;}

/* =============================================================================
   HERO SINGLE TVSHOWS (.ua-shero) — "Cinema Lateral"
   Backdrop full-bleed sob o topbar transparente · poster destacado à esquerda +
   infos à direita · scrim fechando em --ua-bg-0 (sem corte) · escopo ESTRITO
   body.single-tvshows (Filmes intactos) · namespace próprio (NÃO reusa .ua-hero).
   ============================================================================= */
body.ua-immersive{overflow-x:hidden;}                   /* full-bleed 100vw sem scroll-x (anime/filme/genéricas) */
/* o overflow-x:hidden no BODY não impede o html de rolar ~5px (o 100vw do hero inclui a largura da
   scrollbar → 5px de cada lado). Clipa no HTML também (só páginas imersivas) → zero scroll-x. clip não
   cria container de rolagem nem afeta o header fixo; o eixo Y segue normal. */
html:has(body.ua-immersive){overflow-x:clip;}
body.ua-immersive #contenedor{margin-top:0;}            /* hero/faixa sobe p/ baixo do header fixo transparente */
/* remove o traço reto entre o hero e "Temporadas e episódios": o .single_tabs vazio tinha
   border-bottom:3px → linha. Zera no escopo tvshows p/ fusão uniforme. */
body.single-tvshows .single_tabs{border:0;margin:0;height:0;padding:0;}
/* badges sem conteúdo (sem badge semanal) não deixam gap fantasma */
:is(body.single-tvshows, body.single-movies) .ua-shero__badges:empty{display:none;margin:0;}

:is(body.single-tvshows, body.single-movies) .ua-shero{
  position:relative;isolation:isolate;
  width:100vw;max-width:none;margin-left:calc(-50vw + 50%);margin-right:calc(-50vw + 50%);
  min-height:clamp(460px,62vh,640px);
  display:flex;align-items:flex-end;
  background-color:var(--ua-bg-0);                       /* fundo p/ o conteúdo que ultrapassa a arte (Ler mais) */
  font-family:var(--ua-font-text);
}
/* BACKDROP em CAMADA DE ALTURA FIXA (ancorada no topo, altura baseada em viewport — NÃO no conteúdo).
   Antes o backdrop era background-image na <section> com cover: ao expandir a sinopse (Ler mais) a
   <section> crescia e o "cover" reescalava/deslocava a imagem (zoom). Aqui a arte tem altura fixa =
   altura do hero recolhido → nunca reescala; texto que ultrapassa flui sobre --ua-bg-0 (sólido). */
:is(body.single-tvshows, body.single-movies) .ua-shero::before{
  content:"";position:absolute;top:0;left:0;right:0;z-index:0;pointer-events:none;
  height:clamp(460px,62vh,640px);
  background-color:var(--ua-bg-1);                       /* placeholder enquanto a arte carrega */
  background-image:var(--ua-shero-bg);                   /* setada inline na <section> */
  background-size:cover;background-position:center 18%;background-repeat:no-repeat;
}
/* scrim: MESMA altura fixa da arte (acompanha a camada, não a <section>) → lateral esq (legibilidade)
   + vertical fechando 100% em --ua-bg-0 exatamente na base da arte → funde sem corte nem costura */
:is(body.single-tvshows, body.single-movies) .ua-shero .ua-shero__scrim{
  position:absolute;top:0;left:0;right:0;height:clamp(460px,62vh,640px);z-index:1;pointer-events:none;
  background:
    var(--ua-scrim-hero-side),
    linear-gradient(180deg,
      rgba(7,8,10,.22) 0%, rgba(7,8,10,0) 24%,
      rgba(7,8,10,.46) 56%, rgba(7,8,10,.86) 84%, var(--ua-bg-0) 100%);
}
:is(body.single-tvshows, body.single-movies) .ua-shero__inner{
  position:relative;z-index:2;width:100%;max-width:var(--ua-container);margin:0 auto;
  display:grid;grid-template-columns:minmax(178px,232px) 1fr;gap:var(--ua-sp-7);align-items:end;
  padding:calc(var(--ua-header-h,70px) + var(--ua-sp-5)) var(--ua-sp-5) clamp(32px,6vh,56px);
}
/* Poster destacado: raio SUTIL = mesmo dos pôsteres do owl/catálogo (--ua-r-md, 14px);
   moldura discreta; SEM sombra/glow no desktop. */
:is(body.single-tvshows, body.single-movies) .ua-shero__poster{position:relative;align-self:end;}
:is(body.single-tvshows, body.single-movies) .ua-shero__poster img{
  display:block;width:100%;height:auto;aspect-ratio:2/3;object-fit:cover;
  border-radius:var(--ua-r-md);border:1px solid var(--ua-border-hi);background:var(--ua-surface-2);
}
:is(body.single-tvshows, body.single-movies) .ua-shero__data{min-width:0;}
/* CONTRATO ÚNICO DE CHIP — nota, ano, gêneros e badge semanal com a MESMA caixa
   (altura 28px, padding sp-3, raio pill, peso semibold). Ênfase por SUPERFÍCIE, não por
   ruído tipográfico. Os seletores específicos abaixo definem só cor/superfície (+ a nota mantém fs-sm). */
:is(body.single-tvshows, body.single-movies) .ua-shero .semanal,
:is(body.single-tvshows, body.single-movies) .ua-shero .diasemanal,
:is(body.single-tvshows, body.single-movies) .ua-shero .rating,
:is(body.single-tvshows, body.single-movies) .ua-shero__genres a{
  display:inline-flex;align-items:center;height:28px;padding:0 var(--ua-sp-3);
  border-radius:var(--ua-r-pill);line-height:1;box-sizing:border-box;font-weight:var(--ua-fw-semibold);
}
/* Badges (semanal + dia) */
:is(body.single-tvshows, body.single-movies) .ua-shero__badges{display:flex;align-items:center;flex-wrap:wrap;gap:var(--ua-sp-2);margin-bottom:var(--ua-sp-3);}
:is(body.single-tvshows, body.single-movies) .ua-shero .type-badge{
  display:inline-flex;align-items:center;
  font:var(--ua-fw-semibold) var(--ua-fs-xs)/1 var(--ua-font-text);
  color:var(--ua-text);text-transform:uppercase;letter-spacing:var(--ua-tracking-caps);
  background:rgba(0,0,0,.5);border:1px solid var(--ua-border-hi);
  -webkit-backdrop-filter:blur(var(--ua-blur-sm));backdrop-filter:blur(var(--ua-blur-sm));
  padding:5px 9px;border-radius:var(--ua-r-pill);
}
:is(body.single-tvshows, body.single-movies) .ua-shero .eptags{display:inline-flex;align-items:center;gap:var(--ua-sp-1);margin:0;}
:is(body.single-tvshows, body.single-movies) .ua-shero .semanal,
:is(body.single-tvshows, body.single-movies) .ua-shero .diasemanal{
  font-size:var(--ua-fs-xs);text-transform:uppercase;letter-spacing:var(--ua-tracking-caps);margin:0;max-width:none;
}
/* Badges SEMANAL + DIA — MESMO material (placa de vidro ESCURA + aro + blur), estrutura IDÊNTICA → par
   coeso ("mesmo estilo/estrutura"). O dia é marcado por um PONTO lime (lime só como superfície) em vez de
   pílula lime cheia — que destoava do rótulo e, por ser clara, parecia MAIOR (irradiação). Legível sobre
   qualquer backdrop. Flat, sem glow. Vale desktop + mobile. */
:is(body.single-tvshows, body.single-movies) .ua-shero .semanal,
:is(body.single-tvshows, body.single-movies) .ua-shero .diasemanal{
  background:rgba(7,8,10,.78);color:var(--ua-text);border:1px solid var(--ua-border-hi);
  -webkit-backdrop-filter:blur(var(--ua-blur-md)) saturate(1.1);backdrop-filter:blur(var(--ua-blur-md)) saturate(1.1);
}
:is(body.single-tvshows, body.single-movies) .ua-shero .diasemanal{gap:6px;}
:is(body.single-tvshows, body.single-movies) .ua-shero .diasemanal::before{
  content:"";width:6px;height:6px;border-radius:50%;background:var(--ua-accent);flex:0 0 auto;
}
/* Título */
:is(body.single-tvshows, body.single-movies) .ua-shero__title{
  font:var(--ua-fw-bold) var(--ua-fs-display)/var(--ua-lh-tight) var(--ua-font-display);
  color:var(--ua-text);letter-spacing:var(--ua-tracking-tight);max-width:18ch;margin:0 0 var(--ua-sp-2);
  text-wrap:balance;text-shadow:0 1px 3px rgba(0,0,0,.7);
}
/* Meta: pílula de nota lime + ano + estrelas */
:is(body.single-tvshows, body.single-movies) .ua-shero__meta{
  display:flex;align-items:center;flex-wrap:wrap;gap:var(--ua-sp-2);margin-bottom:var(--ua-sp-3);
  font-size:var(--ua-fs-sm);color:var(--ua-text-2);
}
/* nota DES-limada (vidro escuro) p/ desktop+mobile → metadado calmo; SÁBADO fica o ÚNICO lime
   do hero (evita 2 chips lime competindo em animes com lançamento semanal). */
:is(body.single-tvshows, body.single-movies) .ua-shero .rating{
  gap:var(--ua-sp-1);background:rgba(7,8,10,.78);color:var(--ua-text);font-size:var(--ua-fs-sm);
  border:1px solid var(--ua-border-hi);
  -webkit-backdrop-filter:blur(var(--ua-blur-sm)) saturate(1.05);backdrop-filter:blur(var(--ua-blur-sm)) saturate(1.05);
}
:is(body.single-tvshows, body.single-movies) .ua-shero .rating .star{font-size:11px;color:var(--ua-text-2);}
/* ano = metadado calmo, MESMO tamanho do texto da nota (fs-sm/14px) → proporcional, sem "estourar" ao
   lado da pílula de nota (antes fs-lg/18px, destoava). Texto solto (sem fundo), text-2. */
:is(body.single-tvshows, body.single-movies) .ua-shero .year{
  color:var(--ua-text-2);font-weight:var(--ua-fw-semibold);font-size:var(--ua-fs-sm);
}
/* Avaliação interativa (plugin starstruck) restyled — inline/compacta; estrelas douradas
   (#FFD400 padrão do plugin → mantém o lime EXCLUSIVO de CTA/pílula). */
:is(body.single-tvshows, body.single-movies) .ua-shero .starstruck-ptype,
:is(body.single-tvshows, body.single-movies) .ua-shero .starstruck-ptype > div,
:is(body.single-tvshows, body.single-movies) .ua-shero .starstruck-wrap,
:is(body.single-tvshows, body.single-movies) .ua-shero .dt_rating_data{display:inline-flex;align-items:center;gap:var(--ua-sp-2);margin:0;float:none;}
:is(body.single-tvshows, body.single-movies) .ua-shero .starstruck.starstruck-main{display:inline-flex;align-items:center;line-height:1;}
:is(body.single-tvshows, body.single-movies) .ua-shero .starstruck-main i{font-size:15px;}
:is(body.single-tvshows, body.single-movies) .ua-shero .star-off-png::before{color:var(--ua-text-3);}
:is(body.single-tvshows, body.single-movies) .ua-shero .starstruck-rating{display:inline-flex;align-items:center;gap:5px;color:var(--ua-text-3);font-size:var(--ua-fs-xs);float:none;}
/* neutraliza a "caixa" grande do número agregado (27px + fundo translúcido do plugin) → inline discreto */
/* o plugin posiciona o número agregado ABSOLUTO (jogava o "10" p/ antes das estrelas, flutuando).
   position:static traz de volta ao fluxo, dentro do .starstruck-rating, junto do contador de votos. */
:is(body.single-tvshows, body.single-movies) .ua-shero .starstruck-rating .dt_rating_vgs{
  position:static;left:auto;right:auto;top:auto;bottom:auto;
  color:var(--ua-text);font-weight:var(--ua-fw-bold);font-size:var(--ua-fs-sm);
  background:transparent;padding:0;border-radius:0;width:auto;height:auto;line-height:1;float:none;margin:0;
}
:is(body.single-tvshows, body.single-movies) .ua-shero .starstruck-rating .rating-count{color:var(--ua-text-2);}
/* "Sua avaliação: 0" (.starstruck-rating-wrap) é um bloco com fundo translúcido que quebra a linha
   e não é essencial (as estrelas clicáveis já avaliam) → oculto p/ um meta limpo em desktop e mobile. */
:is(body.single-tvshows, body.single-movies) .ua-shero .starstruck-rating-wrap{display:none;}
/* Gêneros como g-pills glass */
:is(body.single-tvshows, body.single-movies) .ua-shero__genres{display:flex;flex-wrap:wrap;gap:var(--ua-sp-2);margin-bottom:var(--ua-sp-5);}
:is(body.single-tvshows, body.single-movies) .ua-shero__genres a{
  color:var(--ua-text-2);font-size:var(--ua-fs-xs);
  background:rgba(255,255,255,.10);border:1px solid var(--ua-border-hi);
  -webkit-backdrop-filter:blur(var(--ua-blur-sm));backdrop-filter:blur(var(--ua-blur-sm));
  text-decoration:none;
  transition:color var(--ua-dur-fast) var(--ua-ease),background var(--ua-dur-fast) var(--ua-ease);
}
:is(body.single-tvshows, body.single-movies) .ua-shero__genres a:hover{color:var(--ua-text);background:rgba(255,255,255,.16);}
/* cap visual em 3 gêneros (idiom streaming) — sem tocar no PHP */
:is(body.single-tvshows, body.single-movies) .ua-shero__genres a:nth-child(n+4){display:none;}
/* Sinopse — legibilidade sobre a imagem (padrão Netflix/Disney+/Crunchyroll): texto CLARO (near-white),
   medida controlada, entrelinha confortável, sombra fechada (contraste sem borrar). O clamp de 3 linhas +
   "Ler mais" são aplicados via JS (ua-search.js) → sem JS o texto aparece completo. Vale anime E filme. */
:is(body.single-tvshows, body.single-movies) .ua-shero__desc{
  max-width:62ch;color:var(--ua-text);font-size:var(--ua-fs-base);line-height:1.6;
  margin:0 0 var(--ua-sp-5);text-shadow:0 1px 3px rgba(7,8,10,.8);
}
/* clamp de 3 linhas (classe adicionada pelo JS só quando o texto excede) */
:is(body.single-tvshows, body.single-movies) .ua-shero__desc.ua-clamp{
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;
}
:is(body.single-tvshows, body.single-movies) .ua-shero__desc.ua-clamp.is-expanded{
  -webkit-line-clamp:unset;overflow:visible;display:block;
}
/* quando há "Ler mais" logo abaixo, o texto cola nele (o botão dá o respiro até as ações) */
:is(body.single-tvshows, body.single-movies) .ua-shero__desc.ua-hasmore{margin-bottom:0;}
/* "Ler mais/menos" — texto flat, sem lime (lime nunca em texto), foco azul; chevron gira ao expandir */
:is(body.single-tvshows, body.single-movies) .ua-shero__more{
  display:inline-flex;align-items:center;gap:6px;margin:var(--ua-sp-2) 0 var(--ua-sp-5);
  padding:0;background:none;border:0;cursor:pointer;
  color:var(--ua-text);font:var(--ua-fw-semibold) var(--ua-fs-sm)/1 var(--ua-font-text);text-shadow:0 1px 3px rgba(7,8,10,.8);
}
:is(body.single-tvshows, body.single-movies) .ua-shero__more::after{
  content:"";width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;
  transform:translateY(-2px) rotate(45deg);transition:transform var(--ua-dur-fast) var(--ua-ease);
}
:is(body.single-tvshows, body.single-movies) .ua-shero__more[aria-expanded="true"]::after{transform:translateY(1px) rotate(-135deg);}
:is(body.single-tvshows, body.single-movies) .ua-shero__more:hover{color:#fff;}
:is(body.single-tvshows, body.single-movies) .ua-shero__more:focus-visible{outline:2px solid var(--ua-focus-ring);outline-offset:3px;border-radius:var(--ua-r-xs);}
/* CTAs — idioma .hbtn da home (sólidos, hover só de cor; sem lift/scale/shadow) */
:is(body.single-tvshows, body.single-movies) .ua-shero__actions{display:flex;flex-wrap:wrap;gap:var(--ua-sp-3);margin:0;}
:is(body.single-tvshows, body.single-movies) .ua-shero .hbtn{
  display:inline-flex;align-items:center;justify-content:center;gap:var(--ua-sp-2);
  height:48px;min-height:0;margin:0;padding:0 22px;box-sizing:border-box;border-radius:var(--ua-r-pill);width:auto;
  font:var(--ua-fw-semibold) var(--ua-fs-base)/1 var(--ua-font-text);text-transform:none;
  border:1px solid transparent;cursor:pointer;text-decoration:none;white-space:nowrap;vertical-align:middle;
  transition:background-color var(--ua-dur) var(--ua-ease),color var(--ua-dur) var(--ua-ease),border-color var(--ua-dur) var(--ua-ease);
}
:is(body.single-tvshows, body.single-movies) .ua-shero .hbtn--primary{background:#fff;color:var(--ua-accent-ink);}
:is(body.single-tvshows, body.single-movies) .ua-shero .hbtn--primary:hover{background:var(--ua-accent);color:var(--ua-accent-ink);}
:is(body.single-tvshows, body.single-movies) .ua-shero .hbtn--ghost{
  background:rgba(255,255,255,.12);color:var(--ua-text);border:1px solid var(--ua-border-hi);
  -webkit-backdrop-filter:blur(var(--ua-blur-sm));backdrop-filter:blur(var(--ua-blur-sm));
}
:is(body.single-tvshows, body.single-movies) .ua-shero .hbtn--ghost:hover{background:rgba(255,255,255,.22);color:var(--ua-text);}
/* favoritado: lime sólido + tinta preta (regra de ouro: lime = superfície sólida) */
:is(body.single-tvshows, body.single-movies) .ua-shero .btn-favoritar.active{background:var(--ua-accent);color:var(--ua-accent-ink);border-color:transparent;}
:is(body.single-tvshows, body.single-movies) .ua-shero .hbtn svg,
:is(body.single-tvshows, body.single-movies) .ua-shero .hbtn i{flex:0 0 auto;font-size:16px;line-height:1;width:auto;height:auto;margin:0;}

/* ============================================================================
   HERO MOBILE — single-tvshows · SÓ @media ≤768px · escopo body.single-tvshows.
   Direção "backdrop imersivo bottom-anchored" sobre o DOM real: header mobile
   TRANSPARENTE integrado ao backdrop + layout compacto (poster + coluna) sem
   espaço morto. Desktop intocado. Sem !important. Só tokens. No-glow. Lime só superfície.
   ============================================================================ */
@media (max-width:768px){
  body.ua-immersive{overflow-x:hidden;}
  body.ua-immersive #contenedor{margin-top:0;}

  /* 1. HEADER MOBILE TRANSPARENTE (páginas imersivas: anime/episódio/genéricas). Sobrescreve o glass de
     header.responsive (0,0,1) por especificidade (0,3,1) — zera bg + blur + borda. */
  body.ua-immersive .fixheadresp{position:relative;z-index:3;}
  body.ua-immersive .fixheadresp header.responsive{
    background:transparent;border-bottom-color:transparent;box-shadow:none;  /* mata a linha/divisória do core */
    -webkit-backdrop-filter:none;backdrop-filter:none;
    position:relative;z-index:6;   /* z>painel do drawer (z:4) → o X fica sempre clicável */
  }
  /* (itens do header já ficam acima do scrim pelo z-index:3 do header.responsive;
     NÃO sobrescrever position deles — são absolute nativamente e empilhariam) */
  body.ua-immersive .fixheadresp header.responsive .logo img{filter:drop-shadow(0 1px 6px rgba(7,8,10,.6));}
  /* scrim de topo: AA dos glifos (os <a.aresp> são vazios → contraste vem do gradiente) */
  body.ua-immersive .fixheadresp::before{
    content:"";position:absolute;inset:0 0 auto 0;
    height:calc(var(--ua-header-h,70px) + var(--ua-sp-5));z-index:1;pointer-events:none;
    background:linear-gradient(180deg,rgba(7,8,10,.88) 0%,rgba(7,8,10,.5) 50%,rgba(7,8,10,0) 100%);
  }

  /* 2. BACKDROP sobe ATRÁS do header (header em fluxo → pull-up negativo).
     Camada ::before de altura FIXA no mobile também (mesmo motivo do desktop: Ler mais não reescala
     a arte). min-height casa com a altura da camada → arte cobre o hero recolhido; o que passar
     disso (sinopse expandida) flui sobre --ua-bg-0. */
  :is(body.single-tvshows, body.single-movies) .ua-shero{
    margin-top:calc(-1 * var(--ua-header-h,70px));
    min-height:clamp(340px,52vh,460px);align-items:flex-end;
  }
  :is(body.single-tvshows, body.single-movies) .ua-shero::before{
    height:clamp(340px,52vh,460px);background-position:center 14%;
    background-image:var(--ua-shero-bg-m,var(--ua-shero-bg)); /* mobile: w780 (LCP); fallback p/ desktop */
  }
  /* scrim mais ESCURO no mobile: máscara preta plana de base (rgba .50) — depth tipo LoveFlix:
     a arte vira textura sutil sob o conteúdo, sem lavar em backdrops claros. GARANTE um piso de
     escurecimento em QUALQUER imagem, somado ao gradiente direcional que fecha em --ua-bg-0.
     Efetivo: topo ~65%, miolo ~76%, base funde sem corte (arte ainda perceptível). */
  :is(body.single-tvshows, body.single-movies) .ua-shero .ua-shero__scrim{
    height:clamp(340px,52vh,460px);                    /* acompanha a camada da arte no mobile */
    background:
      linear-gradient(180deg,
        rgba(7,8,10,.30) 0%, rgba(7,8,10,.22) 22%,
        rgba(7,8,10,.52) 56%, rgba(7,8,10,.88) 85%, var(--ua-bg-0) 100%),
      rgba(7,8,10,.50);
  }

  /* 3. Grid de topo: poster compacto + coluna data, ancorados à base (sem vão lateral) */
  :is(body.single-tvshows, body.single-movies) .ua-shero__inner{
    display:block;                                  /* float layout (poster esq + infos fluem à direita/abaixo) */
    padding:calc(var(--ua-header-h,70px) + var(--ua-sp-4)) var(--ua-sp-4) clamp(24px,5vh,40px);
  }
  :is(body.single-tvshows, body.single-movies) .ua-shero__inner::after{content:"";display:table;clear:both;}  /* contém o float */
  :is(body.single-tvshows, body.single-movies) .ua-shero__poster{float:left;width:132px;margin:0 var(--ua-sp-4) var(--ua-sp-3) 0;}
  /* SEPARAÇÃO MODERNA do poster (substitui a "mat" preta sólida que ficava pesada/feia):
     borda hairline clara crisp + sombra suave de profundidade — estilo concorrente. O scrim
     escurecido (acima) já garante o contraste com backdrops vívidos; a sombra só dá relevo.
     Sombra em pôster = idioma .ua-pcard aceito (não é glow nem lift de botão). */
  :is(body.single-tvshows, body.single-movies) .ua-shero__poster::before{content:none;}
  :is(body.single-tvshows, body.single-movies) .ua-shero__poster img{
    border-color:rgba(255,255,255,.18);
    box-shadow:0 8px 24px rgba(0,0,0,.5);
  }

  /* 4. CONSERTO-CHAVE: .ua-shero__data como FLEX COLUMN → netos empilham e ocupam o 1fr
     (grid-column/order em netos é inerte no DOM real). Mata o vazio à direita de verdade. */
  :is(body.single-tvshows, body.single-movies) .ua-shero__data{display:block;min-width:0;}
  /* badges + nota menores no mobile (estavam grandes) */
  :is(body.single-tvshows, body.single-movies) .ua-shero .semanal,
  :is(body.single-tvshows, body.single-movies) .ua-shero .diasemanal{height:22px;padding:0 var(--ua-sp-2);font-size:10px;}
  /* nota: menor + DES-limada no mobile (placa de vidro escura) → metadado calmo, não botão.
     Resolve "8.5 estridente" e o excesso de lime (SÁBADO continua sendo o único lime do hero). */
  :is(body.single-tvshows, body.single-movies) .ua-shero .rating{
    height:22px;padding:0 9px;font-size:12px;
    background:rgba(7,8,10,.78);color:var(--ua-text);border:1px solid var(--ua-border-hi);
    -webkit-backdrop-filter:blur(var(--ua-blur-sm)) saturate(1.05);backdrop-filter:blur(var(--ua-blur-sm)) saturate(1.05);
  }
  :is(body.single-tvshows, body.single-movies) .ua-shero .rating .star{color:var(--ua-text-2);font-size:11px;}
  :is(body.single-tvshows, body.single-movies) .ua-shero__badges{margin:0 0 var(--ua-sp-2);}
  :is(body.single-tvshows, body.single-movies) .ua-shero__title{
    max-width:100%;margin:0 0 var(--ua-sp-2);
    font-size:clamp(1.375rem,5.6vw,1.75rem);line-height:var(--ua-lh-tight);
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  }
  :is(body.single-tvshows, body.single-movies) .ua-shero__meta{margin:0 0 var(--ua-sp-2);gap:var(--ua-sp-2);}
  /* ano: MESMO tamanho do texto da nota no mobile (12px) → proporcional; text-shadow p/ legibilidade */
  :is(body.single-tvshows, body.single-movies) .ua-shero .year{font-size:12px;font-weight:var(--ua-fw-semibold);text-shadow:0 1px 3px rgba(7,8,10,.85);}
  :is(body.single-tvshows, body.single-movies) .ua-shero__genres{margin:0;}

  /* 5. Sinopse full-width abaixo do poster (clear:both); clamp 3 linhas + "Ler mais" via JS (.ua-clamp) */
  :is(body.single-tvshows, body.single-movies) .ua-shero__desc{
    clear:both;display:block;
    color:var(--ua-text);font-size:var(--ua-fs-sm);line-height:1.6;max-width:100%;margin:var(--ua-sp-4) 0 0;
  }
  /* "Ler mais" no mobile: alvo de toque ≥44px (min-height + o inline-flex/align-items:center centra o texto,
     e o espaço interno acima do texto já faz o respiro do parágrafo). */
  :is(body.single-tvshows, body.single-movies) .ua-shero__more{margin:var(--ua-sp-1) 0 0;min-height:44px;}

  /* 6. CTAs full-width lado a lado abaixo (empilham se faltar largura) */
  :is(body.single-tvshows, body.single-movies) .ua-shero__actions{clear:both;width:100%;margin:var(--ua-sp-4) 0 0;gap:var(--ua-sp-3);flex-wrap:wrap;}
  :is(body.single-tvshows, body.single-movies) .ua-shero .hbtn{flex:1 1 0;min-width:0;}

  /* breadcrumb inferior oculto no mobile (poluição) */
  body.single-tvshows .dt-breadcrumb.breadcrumb_bottom{display:none;}

  /* 7. Legado starstruck (votação removida do PHP) — inerte se ausente */
  :is(body.single-tvshows, body.single-movies) .ua-shero .starstruck-main i{font-size:13px;}
  :is(body.single-tvshows, body.single-movies) .ua-shero__meta,
  :is(body.single-tvshows, body.single-movies) .ua-shero .starstruck-ptype,
  :is(body.single-tvshows, body.single-movies) .ua-shero .starstruck-ptype > div,
  :is(body.single-tvshows, body.single-movies) .ua-shero .starstruck-wrap,
  :is(body.single-tvshows, body.single-movies) .ua-shero .dt_rating_data{flex-wrap:wrap;}
}

/* =============================================================================
   HERO FILME — body.single-movies. Agora NO TOPO, sob o menu transparente, IGUAL ao anime: o filme é
   imersivo (body.ua-immersive via body_class) e HERDA do :is(tvshows,movies) base todo o topo — full-bleed
   100vw + scrim + grid + poster + o padding-top com header-clearance (desktop) e o pull-up negativo sob o
   header (mobile). O PLAYER vem DEPOIS do hero, dentro da página. Aqui só encurtamos um pouco a altura
   (p/ o player ficar acessível) e damos respiro até o player. Sem !important. Só tokens. No-glow.
   ============================================================================= */
body.single-movies #single .ua-shero{
  min-height:clamp(360px,48vh,520px);   /* prominente, porém menor que o hero do anime (640) → player acessível logo abaixo */
  margin-bottom:var(--ua-sp-6);         /* respiro até o player abaixo (o full-bleed 100vw do :is base é preservado) */
}
@media (max-width:768px){
  body.single-movies #single .ua-shero{margin-bottom:var(--ua-sp-5);}                             /* herda o pull-up -header do base; só ajusta o respiro inferior */
  body.single-movies .dt-breadcrumb.breadcrumb_bottom{display:none;}                              /* breadcrumb inferior oculto (poluição) */
}

/* .ua-prose — tipografia de corpo (sinopse do filme). As props vão NO <p> (não só no container)
   p/ vencer o core `.resumotemp p{font-size:13px;color:#888484;line-height:1.3em}` (0,1,1) via #single (1,1,0). */
#single .ua-prose{max-width:70ch;color:var(--ua-text-2);text-align:left;}
#single .ua-prose p{margin:0 0 var(--ua-sp-3);font-size:var(--ua-fs-base);line-height:var(--ua-lh-normal);color:var(--ua-text-2);text-align:left;}
#single .ua-prose p:last-child{margin-bottom:0;}
#single .ua-prose a{color:var(--ua-text);text-decoration:underline;text-underline-offset:2px;}

/* Corpo do filme (escopo body.single-movies): títulos de seção + tags. */
/* Player: DENTRO da página, ABAIXO do hero. Largura CONFORTÁVEL (container centrado) em vez de edge-to-edge —
   o hero é que é full-bleed, não o vídeo. float:none p/ o margin:auto centralizar + clear:both p/ cair abaixo
   do hero full-bleed (que é position:relative, não float, mas garante que nada suba ao lado). */
body.single-movies #single .dooplay_player{float:none;clear:both;max-width:var(--ua-container);margin-left:auto;margin-right:auto;}
/* âncora do CTA "Assistir" do hero: scroll-margin clareia o header fixo (70px) ao rolar até o player */
body.single-movies #single #assistir{display:block;height:0;scroll-margin-top:calc(var(--ua-header-h,70px) + var(--ua-sp-4));}
/* Título de seção (Sinopse) em Sora — vence .sbox h2 (0,1,1) e .resumotemp h2 (0,1,1) do core. */
body.single-movies #single .resumotemp .ua-sec-title{
  float:none;width:auto;
  font:var(--ua-fw-bold) 1.375rem/var(--ua-lh-tight) var(--ua-font-display);
  color:var(--ua-text);letter-spacing:var(--ua-tracking-tight);margin:0 0 var(--ua-sp-4);
}
/* Tags = chips .ua-pill em linha (substitui o <center>/border #777/9px/fundo-preto legado) */
body.single-movies #single .ua-tags{display:flex;flex-wrap:wrap;align-items:center;gap:var(--ua-sp-2);clear:both;width:100%;margin:var(--ua-sp-5) 0 0;}
body.single-movies #single .ua-tags__label{color:var(--ua-text-3);font-size:var(--ua-fs-sm);margin-right:var(--ua-sp-1);}

/* Downloads (box_links/links.php) — tokenizado p/ quando houver dt_links no filme. Estrutura real:
   .linktabs(h2 + ul.idTabs) + #download/#torrent/#videos/#buy.sbox > .links_table > table.
   NOTA: hoje NENHUM filme do site tem dt_links → estes seletores não casam nada (inerte/zero risco);
   ativam só se downloads forem adicionados. JS/form do publisher intactos. Sem !important. Só tokens. */
body.single-movies #single .linktabs > h2{
  float:none;width:auto;font:var(--ua-fw-bold) 1.375rem/var(--ua-lh-tight) var(--ua-font-display);
  color:var(--ua-text);letter-spacing:var(--ua-tracking-tight);margin:0 0 var(--ua-sp-4);
}
/* Abas (idTabs) → pílulas; ativa (.selected, classe do plugin) = lime sólido + tinta (mata o azul legado) */
body.single-movies #single .idTabs{display:flex;flex-wrap:wrap;gap:var(--ua-sp-2);list-style:none;margin:0 0 var(--ua-sp-4);padding:0;}
body.single-movies #single .idTabs li{margin:0;float:none;list-style:none;}
body.single-movies #single .idTabs a{
  display:inline-flex;align-items:center;min-height:36px;padding:0 var(--ua-sp-4);
  border-radius:var(--ua-r-pill);background:var(--ua-surface-2);color:var(--ua-text-2);
  border:1px solid var(--ua-border);font:var(--ua-fw-semibold) var(--ua-fs-sm)/1 var(--ua-font-text);
  text-decoration:none;transition:background-color var(--ua-dur-fast) var(--ua-ease),color var(--ua-dur-fast) var(--ua-ease);
}
body.single-movies #single .idTabs a:hover{background:var(--ua-surface-3);color:var(--ua-text);}
body.single-movies #single .idTabs a.selected{background:var(--ua-accent);color:var(--ua-accent-ink);border-color:transparent;}
/* Tabela de links em superfícies */
body.single-movies #single .links_table table{width:100%;border-collapse:collapse;background:var(--ua-surface-1);border:1px solid var(--ua-border);border-radius:var(--ua-r-md);overflow:hidden;}
body.single-movies #single .links_table th{background:var(--ua-surface-2);color:var(--ua-text-3);font:var(--ua-fw-semibold) var(--ua-fs-xs)/1 var(--ua-font-text);text-transform:uppercase;letter-spacing:var(--ua-tracking-caps);text-align:left;padding:var(--ua-sp-3) var(--ua-sp-4);}
body.single-movies #single .links_table td{padding:var(--ua-sp-3) var(--ua-sp-4);border-top:1px solid var(--ua-border);color:var(--ua-text-2);font-size:var(--ua-fs-sm);vertical-align:middle;}
body.single-movies #single .links_table tr:hover td{background:var(--ua-surface-2);}
body.single-movies #single .links_table td a{color:var(--ua-text);text-decoration:none;}
body.single-movies #single .links_table td a:hover{text-decoration:underline;}
body.single-movies #single .links_table td .quality,
body.single-movies #single .links_table td strong.quality{display:inline-block;padding:2px var(--ua-sp-2);border-radius:var(--ua-r-xs);background:var(--ua-surface-3);color:var(--ua-text);font-size:var(--ua-fs-xs);font-weight:var(--ua-fw-semibold);}

/* =============================================================================
   MENU MOBILE (drawer hambúrguer) — #arch-menu / .menuresp · redesign premium-dark
   GLOBAL (todas as páginas) · só @media ≤768px · sem !important · só tokens.
   Conserta o drawer legado (absoluto, meia-altura, translúcido, azul #408bea) →
   OVERLAY FIXO full-screen, sólido (zero vazamento), ritmo premium, ícones lime,
   submenu sem o float 2-colunas + marcador "-", animação de abrir/fechar suave.
   O ID #arch-menu vence o core por especificidade (sem !important).
   ESTRATÉGIA DE EMPILHAMENTO: painel top:0 (full-screen) FICA ATRÁS do header → a
   faixa do topo (logo/X/busca) lê limpa sobre o painel escuro SEM precisar pintar o
   header (preserva o header transparente imersivo do /animes/). z: header(6) > busca(5)
   > painel(4), tudo dentro de .fixheadresp (acima do conteúdo, abaixo da bottom bar z:99999).
   ============================================================================= */
@media (max-width:768px){
  /* wrapper SEMPRE renderizado: o core .menuresp{display:none} (0,1,0) tirava o painel
     do fluxo antes do fade de fechar. #arch-menu.menuresp (1,2,0) vence; .sidblock{display:block!important}
     do core continua forçando block ao abrir (sem conflito). Inofensivo no layout: .menu é fixed
     e, fechado, fica visibility:hidden (não intercepta toque). */
  #arch-menu.menuresp{display:block;position:relative;z-index:auto;float:none;width:auto;}

  /* contexto: header acima do conteúdo da página (carrossel etc.), abaixo da bottom bar e dos modais */
  .fixheadresp{position:relative;z-index:100;}
  .fixheadresp .search_responsive{position:relative;z-index:5;}
  .fixheadresp header.responsive{z-index:6;}
  /* X (fechar): feedback lime quando ativo (o glifo ☰→✕ já alterna no tema) */
  .fixheadresp header.responsive .nav a.nav-resp{transition:color var(--ua-dur-fast) var(--ua-ease);}
  .fixheadresp header.responsive .nav a.nav-resp.active{color:var(--ua-accent);}
  /* ALINHAMENTO vertical do header mobile: os ícones .nav/.search eram ancorados ao topo
     (caixa ~56px num header de ~66px) → glifos ~5px altos, com mais "margem" embaixo, fora
     de eixo com a logo. Estica os wrappers à altura total + centra os 3 (hambúrguer/logo/busca). */
  .fixheadresp header.responsive .nav,
  .fixheadresp header.responsive .search{
    top:0;bottom:0;height:auto;display:flex;align-items:center;
  }
  .fixheadresp header.responsive .logo{display:flex;align-items:center;justify-content:center;}
  /* img inline tinha baseline-gap (~5px) → ficava no topo do <a> (cy 30, não 33). block elimina o gap. */
  .fixheadresp header.responsive .logo a,
  .fixheadresp header.responsive .logo img{display:block;}

  /* PAINEL: overlay fixo full-screen, sólido (--ua-bg-0). top:0 → fica atrás do header.
     #arch-menu .menu (1,1,0) vence core .menuresp .menu (0,2,0); zera o box-shadow do core. */
  #arch-menu .menu{
    position:fixed;top:0;left:0;right:0;bottom:0;
    width:auto;height:auto;z-index:4;box-sizing:border-box;
    display:flex;flex-direction:column;
    overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;
    background:var(--ua-bg-0);
    background-image:linear-gradient(180deg,var(--ua-surface-1) 0%,rgba(7,8,10,0) 280px);
    box-shadow:none;border:0;
    padding:calc(var(--ua-header-h,70px) + var(--ua-sp-3)) 0 calc(65px + var(--ua-sp-4) + env(safe-area-inset-bottom));
    opacity:0;visibility:hidden;transform:translateY(-8px);
    transition:opacity var(--ua-dur) var(--ua-ease),transform var(--ua-dur) var(--ua-ease),visibility 0s linear var(--ua-dur);
  }
  #arch-menu.sidblock .menu{
    opacity:1;visibility:visible;transform:none;
    transition:opacity var(--ua-dur) var(--ua-ease),transform var(--ua-dur) var(--ua-ease),visibility 0s;
  }
  #arch-menu.menuresp.sidblock{transition:none;}   /* anula transition:top .4s do core (top não se move) */
  /* logado: o card de conta é um bloco mais "pesado" → precisa de mais respiro abaixo do header */
  body.logged-in #arch-menu .menu{padding-top:calc(var(--ua-header-h,70px) + var(--ua-sp-5));}
  /* WP admin bar (46px no mobile): empurra o painel pra baixo da barra (só p/ logado-admin) */
  body.admin-bar #arch-menu .menu{top:46px;}

  /* CARD DE CONTA (logado): avatar + "Minha conta" + Sair (pílula neutra, nunca lime) */
  #arch-menu.menuresp .menu .user{
    float:none;width:auto;display:flex;align-items:center;gap:var(--ua-sp-3);
    margin:0 var(--ua-sp-4) var(--ua-sp-3);padding:var(--ua-sp-3);
    background:var(--ua-surface-1);border:1px solid var(--ua-border);border-radius:var(--ua-r-md);
  }
  #arch-menu.menuresp .menu .user .gravatar{float:none;display:flex;align-items:center;gap:var(--ua-sp-3);min-width:0;flex:1 1 auto;}
  #arch-menu.menuresp .menu .user .gravatar a{display:flex;align-items:center;gap:var(--ua-sp-3);min-width:0;text-decoration:none;color:var(--ua-text);}
  #arch-menu.menuresp .menu .user .gravatar img{float:none;width:40px;height:40px;border-radius:var(--ua-r-pill);object-fit:cover;border:1px solid var(--ua-border-hi);}
  #arch-menu.menuresp .menu .user .gravatar span{float:none;padding:0;font:var(--ua-fw-semibold) var(--ua-fs-base)/1.2 var(--ua-font-display);color:var(--ua-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  #arch-menu.menuresp .menu .user .logout{float:none;padding:0;flex:0 0 auto;}
  #arch-menu.menuresp .menu .user .logout a{
    display:inline-flex;align-items:center;height:34px;padding:0 14px;
    background:var(--ua-surface-3);border:1px solid var(--ua-border-hi);border-radius:var(--ua-r-pill);
    color:var(--ua-text-2);font:var(--ua-fw-semibold) var(--ua-fs-xs)/1 var(--ua-font-text);text-decoration:none;
    transition:background var(--ua-dur-fast) var(--ua-ease),color var(--ua-dur-fast) var(--ua-ease);
  }
  #arch-menu.menuresp .menu .user .logout a:hover{background:var(--ua-surface-2);color:var(--ua-text);}
  /* deslogado: Login neutro + Cadastrar (lime, único CTA via :last-of-type) */
  #arch-menu.menuresp .menu .user a.ctgs{
    float:none;width:auto;flex:1 1 0;margin:0;display:inline-flex;align-items:center;justify-content:center;
    min-height:var(--ua-tap-min);padding:0 16px;border-radius:var(--ua-r-sm);
    font:var(--ua-fw-semibold) var(--ua-fs-sm)/1 var(--ua-font-text);text-decoration:none;text-align:center;
    background:var(--ua-surface-2);border:1px solid var(--ua-border-hi);color:var(--ua-text);
    transition:background var(--ua-dur-fast) var(--ua-ease),color var(--ua-dur-fast) var(--ua-ease);
  }
  #arch-menu.menuresp .menu .user a.ctgs:hover{background:var(--ua-surface-3);color:var(--ua-text);}
  #arch-menu.menuresp .menu .user a.ctgs:last-of-type{background:var(--ua-accent);border-color:transparent;color:var(--ua-accent-ink);}
  #arch-menu.menuresp .menu .user a.ctgs:last-of-type:hover{background:var(--ua-accent-hover);color:var(--ua-accent-ink);}

  /* LISTA primária: linhas premium (≥52px), ícones lime em coluna de 22px, divisórias --ua-border */
  #arch-menu.menuresp .menu ul.resp{float:none;width:auto;list-style:none;margin:0;padding:0 var(--ua-sp-3);}
  #arch-menu.menuresp .menu ul.resp li{float:none;width:auto;padding:0;border-bottom:1px solid var(--ua-border);}
  #arch-menu.menuresp .menu ul.resp li:last-child{border-bottom:0;}
  #arch-menu.menuresp .menu ul.resp li a{
    float:none;width:auto;display:flex;align-items:center;gap:var(--ua-sp-3);
    min-height:52px;padding:14px var(--ua-sp-3);color:var(--ua-text);
    font:var(--ua-fw-medium) var(--ua-fs-lg)/1.2 var(--ua-font-text);
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-radius:var(--ua-r-sm);scroll-margin:var(--ua-sp-2);
    transition:background var(--ua-dur-fast) var(--ua-ease),color var(--ua-dur-fast) var(--ua-ease);
  }
  #arch-menu .menu ul.resp li a:focus-visible{outline-offset:-2px;}   /* aro de foco não cortado pelo overflow */
  #arch-menu.menuresp .menu ul.resp li a i{color:var(--ua-accent);font-size:18px;padding:0;width:22px;text-align:center;flex:0 0 22px;}
  #arch-menu.menuresp .menu ul.resp li a:hover,
  #arch-menu.menuresp .menu ul.resp li a:focus-visible{background:var(--ua-surface-2);color:var(--ua-text);}
  #arch-menu.menuresp .menu ul.resp li.current-menu-item>a,
  #arch-menu.menuresp .menu ul.resp li.current_page_item>a{color:var(--ua-text);font-weight:var(--ua-fw-semibold);background:var(--ua-surface-1);}

  /* SUBMENU (LEGENDADO/DUBLADO): mata float:left/50% (2 colunas tortas) + marcador "-";
     vira sub-linhas full-width indentadas alinhadas após a coluna de ícone (49px). */
  /* SUBMENU como CHIPS inline (compacto, sem a barra "|" solta + sem o "-" do core):
     LEGENDADO · DUBLADO lado a lado, indentados sob o rótulo ANIMES. */
  #arch-menu.menuresp .menu ul.resp li ul.sub-menu{
    float:none;width:auto;display:flex;flex-wrap:wrap;gap:var(--ua-sp-2);
    margin:0;padding:var(--ua-sp-3) var(--ua-sp-3) var(--ua-sp-3) 46px;
  }
  #arch-menu.menuresp .menu ul.resp li ul.sub-menu li{float:none;width:auto;border-bottom:0;}
  #arch-menu.menuresp .menu ul.resp li ul.sub-menu li a{
    float:none;width:auto;display:inline-flex;align-items:center;
    height:32px;min-height:0;padding:0 14px;color:var(--ua-text-2);
    background:var(--ua-surface-2);border:1px solid var(--ua-border);border-radius:var(--ua-r-pill);
    font:var(--ua-fw-medium) var(--ua-fs-sm)/1 var(--ua-font-text);text-decoration:none;scroll-margin:var(--ua-sp-2);
    transition:background var(--ua-dur-fast) var(--ua-ease),color var(--ua-dur-fast) var(--ua-ease);
  }
  #arch-menu.menuresp .menu ul.resp li ul.sub-menu li a:before{content:none;}   /* mata o marcador "-" do core */
  #arch-menu .menu ul.resp li ul.sub-menu li a:focus-visible{outline-offset:0;}
  #arch-menu.menuresp .menu ul.resp li ul.sub-menu li a:hover,
  #arch-menu.menuresp .menu ul.resp li ul.sub-menu li a:focus-visible{background:var(--ua-surface-3);color:var(--ua-text);}
}
/* reduced-motion: garante painel aberto sem slide (durações já zeradas pela regra-mestre em ua-tokens) */
@media (max-width:768px) and (prefers-reduced-motion:reduce){
  #arch-menu.sidblock .menu{transform:none;}
}

/* =============================================================================
   HOME MOBILE — header transparente integrado ao backdrop do CARROSSEL (igual /animes/).
   Escopo body.home · ≤768px. O carrossel sobe ATRÁS do header transparente (mesmo recurso
   do hero de tvshows) + scrim de topo p/ legibilidade dos glifos. Mata a barra preta + a
   linha de divisória. Header é relative/in-flow → rola junto (legibilidade ok ao rolar).
   ============================================================================= */
@media (max-width:768px){
  /* header como OVERLAY (out of flow): o carrossel sobe atrás e preenche o topo. O margin negativo
     no carrossel COLAPSAVA (margin-collapse com #contenedor) e não funcionava — daí o overlay.
     Mantém o z-index:100 da regra global do menu (só sobrescrevo position). */
  body.home .fixheadresp{position:absolute;top:0;left:0;right:0;}
  /* WP admin bar (46px): a barra é fixed no topo e empurra o <html> 46px; o header overlay (absolute,
     relativo ao viewport) precisa descer 46px p/ não ficar ATRÁS da barra (só p/ logado-admin) */
  body.admin-bar.home .fixheadresp{top:46px;}
  body.home #contenedor{margin-top:0;}
  /* margin-bottom negativo: puxa a seção seguinte ("Continue assistindo") p/ perto das dots,
     ocupando o backdrop vazio (já esmaecido p/ --ua-bg-0) abaixo delas → distância carrossel→seção
     igual à distância entre seções (~25px), em vez do gap grande de ~62px.
     FIX (overlap/clip): a CAIXA do .carousel-container vai ~35px ABAIXO das dots (padding inferior
     do hero p/ o .slide-content). Sem z-index, a seção puxada p/ dentro dessa caixa era PINTADA POR
     BAIXO do .slide-content → o título "Continue assistindo" saía cortado/encaixotado. Solução: as
     .module (irmãs do carrossel sob #contenedor) sobem no empilhamento e pintam SOBRE essa cauda
     vazia do hero (as dots ficam ACIMA do topo da seção, então seguem visíveis). */
  body.home .carousel-container{margin-top:0;margin-bottom:-24px;position:relative;z-index:0;}
  body.home #contenedor > .module{position:relative;z-index:1;}
  body.home .fixheadresp header.responsive{
    background:transparent;border-bottom-color:transparent;box-shadow:none;
    -webkit-backdrop-filter:none;backdrop-filter:none;
  }
  body.home .fixheadresp header.responsive .logo img{filter:drop-shadow(0 1px 6px rgba(7,8,10,.6));}
  /* scrim de topo um pouco mais forte (suave) p/ legibilidade dos glifos sobre o backdrop */
  body.home .fixheadresp::before{
    content:"";position:absolute;inset:0 0 auto 0;
    height:calc(var(--ua-header-h,70px) + var(--ua-sp-5));z-index:1;pointer-events:none;
    background:linear-gradient(180deg,rgba(7,8,10,.88) 0%,rgba(7,8,10,.5) 50%,rgba(7,8,10,0) 100%);
  }
}

/* =============================================================================
   PAGINAÇÃO — botões uniformes premium-dark. Números E seta com a MESMA caixa
   (40px), página atual em lime sólido, rótulo "Página X de Y" como texto discreto.
   Vence o core (.pagination a/span 0,2,0 · a.arrow_pag 0,1,1 · span.current 0,2,1) por
   ordem/especificidade, sem !important. Substitui o legado #000/#408bea.
   ============================================================================= */
.pagination{
  float:none;width:100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;
  gap:var(--ua-sp-2);margin:var(--ua-sp-6) 0;font-size:var(--ua-fs-sm);
}
/* rótulo "Página X de Y" — LINHA PRÓPRIA (flex:0 0 100%), centrado. Tira o rótulo
   da disputa de largura com os botões: assim prev+números+next cabem numa única
   fileira centrada abaixo, sem a seta quebrar sozinha (bug com nº grande tipo 1246). */
.pagination > span:not(.current){
  float:none;flex:0 0 100%;order:-1;text-align:center;margin:0 0 var(--ua-sp-2);padding:0;border:0;
  color:var(--ua-text-3);font-size:var(--ua-fs-sm);font-weight:var(--ua-fw-medium);
}
/* botões (números + seta) — caixas IDÊNTICAS */
.pagination a,
.pagination span.current{
  float:none;margin:0;box-sizing:border-box;
  display:inline-flex;align-items:center;justify-content:center;
  min-width:40px;height:40px;padding:0 var(--ua-sp-3);
  border:1px solid var(--ua-border-hi);border-radius:var(--ua-r-sm);
  font-size:var(--ua-fs-sm);font-weight:var(--ua-fw-semibold);line-height:1;
  color:var(--ua-text-2);background:var(--ua-surface-1);text-decoration:none;
  transition:background var(--ua-dur-fast) var(--ua-ease),color var(--ua-dur-fast) var(--ua-ease),border-color var(--ua-dur-fast) var(--ua-ease);
}
.pagination a:hover,.pagination a:focus-visible{background:var(--ua-surface-2);color:var(--ua-text);}
/* página atual — lime sólido + tinta PRETA. Prefixo "body" eleva a especificidade (0,2,2) p/
   vencer a regra inline do doo_customizer (.pagination span.current{color:maincolor=#f4f4f4}),
   que deixava o número branco/ilegível sobre o lime. */
body .pagination span.current{background:var(--ua-accent);color:var(--ua-accent-ink);border-color:transparent;}
/* paginação responsiva ANTIGA (botão ">" largo) — redundante agora que .pagination funciona no
   mobile; o tema a mostrava em ≤768px, gerando duplicidade. Escondida. */
.resppages{display:none;}
/* seta: mesma caixa dos números; mata o font-size:20px/padding:7px 25px do core */
.pagination a.arrow_pag{padding:0;font-size:var(--ua-fs-sm);font-weight:var(--ua-fw-semibold);}
.pagination a.arrow_pag i{font-size:15px;line-height:1;color:inherit;margin:0;}
/* mobile: caixas/gap menores → cabem mais botões por fileira (páginas profundas com
   números de 4 dígitos). Se ainda assim faltar espaço, o flex-wrap+center quebra o
   GRUPO de forma centrada (nunca uma seta solta desalinhada). */
@media (max-width:480px){
  .pagination{gap:var(--ua-sp-1);}
  .pagination a,.pagination span.current{min-width:38px;height:38px;padding:0 var(--ua-sp-2);}
}

/* ============================================================================
   COMPARTILHAMENTO (.dt_social_single) — páginas single (#single universal:
   series/post/peliculas/temporadas/episodios). Markup core (doo_init.php:719):
   .sbox > .dt_social_single > span + a.whatsapp.dt_social + a.facebook + a.twitter
   DECISÃO (painel UI/UX): NEUTRALIZAR a marca — chips sólidos neutros; a cor da
   rede vive SÓ no <i>. Flat/no-glow. Lime NUNCA como linha/texto/foco. Sem !important.
   Fixes da verificação adversarial: (P1) label em text-2 (era text-3, ~4.5:1 no limite);
   (P1) chip SÓLIDO surface-2 (não glass) → contraste de ícone estável e mensurável;
   (P1) seletor `a` genérico (1,1,1) cobre QUALQUER anchor (vence o brand-bg do core
   a.whatsapp=0,2,0 pelo +1 id) e impede texto-fino-lime herdado do <a> global;
   (P1) ícones recalibrados p/ AA sobre surface-2 (#1A1E26).
   ============================================================================ */
/* DIVISORES da single: 3px (front.style.min.css:1411 #single .content .sbox, espec. 1,2,0) →
   hairline 1px premium. Mesma especificidade da fonte; ua-components carrega depois (ua-transitions
   NÃO toca .sbox) → vence por ORDEM, sem !important. Cor já é --ua-border (colors.dark:670). */
/* SEM divisores entre seções da single (a pedido): as "linhas" (acima do FAQ via #cast, acima do
   Discord via .srelacionados) davam impressão de "colado/mal disposto". Separação fica só por
   espaço/margem. */
#single .content .sbox{border-bottom-width:0;}
/* .sbox do compartilhar = CARD premium DIFERENCIADO (surface-1 + borda + raio): destaca a seção
   sutilmente, sem perder o flat/modernidade. Os chips (surface-2, mais claros) ganham profundidade
   sobre o card (surface-1). Borda completa + raio anulam o hairline-só-embaixo do .sbox. */
/* share INTEGRADO (a pedido): SEM card — sem fundo/borda/raio (também elimina as "bordas arredondadas
   no mobile"). Vira uma fileira discreta na página; os chips (surface-2) já se destacam sozinhos. */
#single .content .sbox--share{
  float:none;clear:both;width:auto;
  margin:var(--ua-sp-3) 0;padding:0;
  background:transparent;border:0;border-radius:0;
}

/* CENTRALIZADO p/ casar com o #info.ua-epinfo centralizado acima (mata o "solto" à esquerda). */
#single .dt_social_single{
  float:none;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;
  gap:var(--ua-sp-2);width:100%;padding:0;margin:0;
  font-family:var(--ua-font-text);
}
/* Label "Compartilhar" — caption neutra com hairline divisor à direita */
#single .dt_social_single > span{
  float:none;display:inline-flex;align-items:center;gap:var(--ua-sp-2);
  margin:0 var(--ua-sp-1) 0 0;padding:0 var(--ua-sp-3) 0 0;
  border-right:1px solid var(--ua-border);
  font-size:var(--ua-fs-xs);font-weight:var(--ua-fw-semibold);
  letter-spacing:var(--ua-tracking-caps);text-transform:uppercase;
  color:var(--ua-text-2);line-height:1;
}
#single .dt_social_single > span i{font-size:var(--ua-fs-base);color:var(--ua-text-2);}
/* Chip neutro SÓLIDO. `#single .dt_social_single a` (1,1,1) vence o brand-bg do core
   (.dt_social_single a.whatsapp = 0,2,0) pelo +1 id, neutraliza float/radius/padding e
   garante que todo anchor da toolbar seja neutro (nunca herda o lime de `a` global). */
/* chips SEM caixa (integrado): só ícone + label como link; sem fundo/borda/raio (era surface-2 boxed,
   parecia um 2º bloco de botões abaixo do card do Discord). Cor da marca só no ícone. */
#single .dt_social_single a{
  float:none;display:inline-flex;align-items:center;justify-content:center;
  gap:var(--ua-sp-2);margin:0;padding:0 var(--ua-sp-3);
  min-height:var(--ua-tap-min);
  background:transparent;
  border:0;border-radius:0;
  color:var(--ua-text-2);
  font-size:var(--ua-fs-sm);font-weight:var(--ua-fw-medium);line-height:1;
  text-decoration:none;white-space:nowrap;
  transition:color var(--ua-dur-fast) var(--ua-ease);
}
#single .dt_social_single a b{float:none;margin:0;font-weight:var(--ua-fw-medium);line-height:1;color:inherit;}
/* Ícone = único portador da cor de marca. Sobrescreve .dt_social_single a i {float:left;
   font-size:16px} do core. Hex recalibrados p/ AA sobre surface-2 (exceção consciente:
   são cores de MARCA, não do design system). */
#single .dt_social_single a i{float:none;margin:0;font-size:var(--ua-fs-lg);line-height:1;}
#single .dt_social_single a.whatsapp i{color:#25D366;}
#single .dt_social_single a.facebook i{color:#5A92FF;}
#single .dt_social_single a.twitter  i{color:#5FB4F5;}
/* hover — sem caixa: só clareia o label (ícone mantém a cor da marca) */
#single .dt_social_single a:hover{color:var(--ua-text);background:transparent;}
/* foco — anel azul do DS, NUNCA lime */
#single .dt_social_single a:focus-visible{
  color:var(--ua-text);
  outline:2px solid var(--ua-focus-ring);outline-offset:2px;border-radius:var(--ua-r-sm);
}
/* contador (b#social_count), se presente: caption neutra à direita */
#single .dt_social_single b#social_count{
  float:none;margin:0;font-weight:var(--ua-fw-semibold);
  font-size:var(--ua-fs-sm);color:var(--ua-text-3);
}
/* MOBILE ≤768px — label "Compartilhar" centralizado em linha própria (SEM a linha/divisor que
   ficava feio), chips 3-up logo abaixo, dentro do card. */
@media (max-width:768px){
  /* label INLINE na mesma linha dos ícones (compacto), não em linha própria */
  #single .dt_social_single > span{
    flex:0 0 auto;justify-content:center;margin:0 var(--ua-sp-2) 0 0;padding:0;
    border-right:0;border-bottom:0;
  }
  /* chips INTEGRADOS no mobile (a pedido): sem caixa/borda/raio → só os ícones de marca, centrados,
     com área de toque 44px. Antes eram 3 botões arredondados grandes. */
  #single .dt_social_single a{flex:0 0 auto;min-width:var(--ua-tap-min);min-height:var(--ua-tap-min);padding:0 var(--ua-sp-2);background:transparent;border:0;border-radius:0;}
  #single .dt_social_single a b{display:none;}
  #single .dt_social_single b#social_count{display:none;}
}
@media (prefers-reduced-motion:reduce){#single .dt_social_single a{transition:none;}}

/* ============================================================================
   TÍTULOS SEMELHANTES (.srelacionados / #single_relacionados) — single pages
   Markup core (relacionados.php): .sbox.srelacionados > h2 + #single_relacionados
       > article > a > img  (até 12). ua_poster()=poster TMDB vertical 2/3 sempre.
   BUG: <img> sem aspect-ratio (core: img{width:100%}) + article{float:left} ⇒ cada
       pôster na razão nativa ⇒ grade serrilhada.
   FIX (painel UI/UX): grade uniforme aspect-ratio 2/3 (idioma de .ua-card__media),
       object-fit:cover, gap por token, hover FLAT (só borda + brilho de cor).
   NOTA P0 (verificação): #single_relacionados era um Owl Carousel (auto-rotativo,
       reestruturava o DOM em .owl-item de largura inline ⇒ grade não renderizava).
       O init do owl foi REMOVIDO em inc/doo_scripts.php; agora o container é um bloco
       simples e este `display:grid` (especificidade #single .srelacionados
       #single_relacionados = 2,1,0) o exibe como grade. Sem !important. Tokens.
   ============================================================================ */
#single .content .srelacionados{
  float:none;width:100%;
  padding:var(--ua-sp-5) var(--ua-sp-5) var(--ua-sp-6);
}
#single .srelacionados h2{
  margin:0 0 var(--ua-sp-4);font-family:var(--ua-font-display);
  font-size:var(--ua-fs-h3);font-weight:var(--ua-fw-semibold);color:var(--ua-text);
}
/* container = grid (owl removido no JS); mobile-first 3 col */
#single .srelacionados #single_relacionados{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--ua-sp-3);
  float:none;width:100%;
}
/* Cards = card PADRÃO DO CATÁLOGO .ua-pcard (relacionados.php agora usa get_template_part('item')
   → poster + play no hover + scrim + TÍTULO + meta). .item = célula do grid: neutraliza
   float/altura/scale/margin do core .item (mesmo padrão de #favorites-container). O margin-bottom
   global (.item, sem !important) sobraria na célula → zerado. */
#single .srelacionados #single_relacionados .item{float:none;width:auto;height:auto;margin:0;padding:0;min-width:0;}
#single .srelacionados #single_relacionados .item:hover{transform:none;}
/* GOTCHA (verificado): a proporção 2/3 do catálogo vem de `.module .content .items .item .poster
   {padding-top:140%}` (front.style:890) + `.module .items .item .poster{aspect-ratio:2/3}`
   (ua-transitions:71) — AMBAS ancoradas em .module/.items. #single_relacionados NÃO tem essa cadeia
   (favoritos tem) → o .poster COLAPSARIA (altura 0). Reestabelece o quadro 2/3. */
#single .srelacionados #single_relacionados .item .poster{aspect-ratio:2/3;padding-top:0;}
#single .srelacionados #single_relacionados .item .poster img{position:absolute;inset:0;width:100%;height:100%;margin:0;object-fit:cover;}
/* hover (scale/scrim/play/título→accent) HERDA das globais .item .ua-pcard (L125-208); foco azul
   vem do *:focus-visible global (ua-tokens:138) emoldurando o card inteiro (o <a> envolve poster+título). */
/* DESKTOP — 4 col ≥769px, 6 col ≥1100px (12 itens = 2 linhas limpas) */
@media (min-width:769px){
  #single .srelacionados #single_relacionados{grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--ua-sp-4);}
}
@media (min-width:1100px){
  #single .srelacionados #single_relacionados{grid-template-columns:repeat(6,minmax(0,1fr));}
}
@media (prefers-reduced-motion:reduce){
  #single .srelacionados #single_relacionados .item .poster img,
  #single .srelacionados #single_relacionados .item .ua-pcard__title{transition:none;}
}

/* ============================================================================
   VEJA TAMBÉM (.ua-seealso) — agora TRILHO no RODAPÉ do FILME (full-width, sem sidebar), "adicionados
   recentemente" reusando o card .ua-pcard. Mesmo idioma de grade dos "Títulos semelhantes". Escopado
   body.single-movies #single. Espelha .srelacionados: fora de .module/.items o .poster COLAPSA →
   reancorar 2/3 + img absolute. OCULTO no mobile (redundante c/ "Títulos semelhantes" logo acima).
   ============================================================================ */
body.single-movies #single .ua-seealso{float:none;clear:both;width:100%;margin:var(--ua-sp-6) 0 0;}
body.single-movies #single .ua-seealso__title{
  margin:0 0 var(--ua-sp-4);font-family:var(--ua-font-display);
  font-size:var(--ua-fs-h3);font-weight:var(--ua-fw-semibold);color:var(--ua-text);
  letter-spacing:var(--ua-tracking-tight);
}
body.single-movies #single .ua-seealso__rail{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--ua-sp-3);float:none;width:100%;
}
@media (min-width:769px){
  body.single-movies #single .ua-seealso__rail{grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--ua-sp-4);}
}
/* célula = card .ua-pcard: neutraliza float/altura/scale/margin do core .item */
body.single-movies #single .ua-seealso__rail .item{float:none;width:auto;height:auto;margin:0;padding:0;min-width:0;}
body.single-movies #single .ua-seealso__rail .item:hover{transform:none;}
/* GOTCHA (idêntico a .srelacionados): reancorar o quadro 2/3 (senão o pôster colapsa fora de .module/.items) */
body.single-movies #single .ua-seealso__rail .item .poster{aspect-ratio:2/3;padding-top:0;}
body.single-movies #single .ua-seealso__rail .item .poster img{position:absolute;inset:0;width:100%;height:100%;margin:0;object-fit:cover;}
/* hover (scale/scrim/play/título→accent) HERDA das globais .ua-pcard; foco azul do *:focus-visible global */
@media (prefers-reduced-motion:reduce){
  body.single-movies #single .ua-seealso__rail .item .poster img,
  body.single-movies #single .ua-seealso__rail .item .ua-pcard__title{transition:none;}
}
/* MOBILE: oculto (redundante c/ "Títulos semelhantes" logo acima — a pedido do dono). */
@media (max-width:768px){
  body.single-movies #single .ua-seealso{display:none;}
}

/* ============================================================================
   COMPONENTE COMPARTILHADO — EMPTY STATE premium (.ua-empty)
   Usado pelo overlay de Histórico e pela página de Favoritos (fonte única;
   evita drift de tamanho/idioma). Ícone via tamanho do modificador no consumidor.
   ============================================================================ */
.ua-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;gap:var(--ua-sp-3);padding:var(--ua-sp-6) var(--ua-sp-4);color:var(--ua-text-2);}
.ua-empty__icon{width:64px;height:64px;display:grid;place-items:center;border-radius:var(--ua-r-pill);
  background:var(--ua-surface-2);border:1px solid var(--ua-border);color:var(--ua-text-3);font-size:26px;}
.ua-empty h3{margin:0;font-family:var(--ua-font-display);font-weight:var(--ua-fw-bold);
  font-size:var(--ua-fs-lg);color:var(--ua-text);}
.ua-empty p{margin:0;max-width:38ch;font-size:var(--ua-fs-sm);color:var(--ua-text-3);}
.ua-empty .ua-btn{margin-top:var(--ua-sp-1);}
/* variante danger (erro de carregamento) */
.ua-empty--error .ua-empty__icon{color:var(--ua-danger);}

/* ============================================================================
   UNDO TOAST (.ua-toast) — snackbar reversível p/ remoção (histórico/favoritos).
   Definido 1x (historico.js carrega global). Acima do drawer (z 1300 > overlay 1200).
   "Desfazer" = ação positiva → lime sólido + accent-ink (regra de ouro OK).
   ============================================================================ */
.ua-toast{position:fixed;left:50%;bottom:calc(64px + var(--ua-sp-4));z-index:1300;
  transform:translateX(-50%) translateY(14px);
  display:flex;align-items:center;gap:var(--ua-sp-3);max-width:92vw;
  padding:var(--ua-sp-2) var(--ua-sp-2) var(--ua-sp-2) var(--ua-sp-4);
  background:var(--ua-surface-3);border:1px solid var(--ua-border-hi);border-radius:var(--ua-r-pill);
  color:var(--ua-text);font:var(--ua-fw-medium) var(--ua-fs-sm)/1.2 var(--ua-font-text);
  opacity:0;pointer-events:none;
  transition:opacity var(--ua-dur) var(--ua-ease),transform var(--ua-dur) var(--ua-ease);}
.ua-toast.is-visible{opacity:1;transform:translateX(-50%);pointer-events:auto;}
.ua-toast__msg{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ua-toast__action{flex:0 0 auto;min-height:36px;padding:0 var(--ua-sp-3);border:0;border-radius:var(--ua-r-pill);
  background:var(--ua-accent);color:var(--ua-accent-ink);cursor:pointer;
  font:var(--ua-fw-bold) var(--ua-fs-sm)/1 var(--ua-font-text);}
.ua-toast__action:hover{background:var(--ua-accent-hover);}
.ua-toast__action:focus-visible{outline:3px solid var(--ua-focus-ring);outline-offset:2px;}
@media (prefers-reduced-motion:reduce){.ua-toast{transition:opacity var(--ua-dur) linear;}}

/* ============================================================================
   OVERLAY 'CONTINUE ASSISTINDO' — drawer premium (vence front.style.min.css por
   ORDEM + especificidade; ZERO !important). Espelha o padrão #ua-search-overlay:
   container fixo transparente + scrim filho + painel deslizante.
   z-index:1200 (igual ao search) → ABAIXO do #wpadminbar (99999) p/ não cobrir a
   barra, ACIMA da .ua-tabbar (999). [fix P1 wpadminbar — Opção B do painel]
   ============================================================================ */
body.ua-hist-open{overflow:hidden;padding-right:var(--ua-sbw,0);}

#historyOverlay.history-overlay{
  position:fixed;inset:0;
  display:flex;align-items:center;justify-content:center;      /* CENTRA o painel (antes era drawer) */
  background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;
  z-index:1200;
  pointer-events:none;visibility:hidden;transition:visibility 0s linear var(--ua-dur);}
#historyOverlay.history-overlay.open{pointer-events:auto;visibility:visible;transition:visibility 0s;}

/* SCRIM (filho SSR: <div class=history-overlay__scrim data-hist-close>) — bem ESCURO + blur forte
   p/ o modal destacar de verdade (dono: o overlay estava claro demais, baixa visibilidade) */
.history-overlay__scrim{position:absolute;inset:0;z-index:0;cursor:pointer;
  background:rgba(7,8,10,.92);
  -webkit-backdrop-filter:blur(var(--ua-blur-lg));backdrop-filter:blur(var(--ua-blur-lg));
  opacity:0;transition:opacity var(--ua-dur) var(--ua-ease);}
#historyOverlay.open .history-overlay__scrim{opacity:1;}

/* MODAL CENTRAL (antes drawer à direita — dono pediu central/premium, sensação "de onde parei"):
   diálogo centrado que entra com fade + leve scale-up (não desliza de lado). O scrim (inset:0) cobre
   a viewport atrás; o painel centra via flex do container. */
.history-overlay__panel{position:relative;z-index:1;
  width:min(880px,94vw);max-height:86vh;display:flex;flex-direction:column;overflow:hidden;
  /* superfície ELEVADA (mais clara que a base) → o painel lê como card SÓLIDO/opaco e destaca do
     scrim escuro; antes usava --ua-surface-1 (#13161C), quase = ao scrim → parecia translúcido */
  background:var(--ua-surface-2);border:1px solid var(--ua-border-hi);border-radius:var(--ua-r-lg);
  opacity:0;transform:translateY(14px) scale(.985);
  transition:opacity var(--ua-dur) var(--ua-ease),transform var(--ua-dur) var(--ua-ease);will-change:transform,opacity;}
#historyOverlay.open .history-overlay__panel{opacity:1;transform:none;}

/* HEADER sticky */
.history-overlay__head{position:sticky;top:0;z-index:2;flex:0 0 auto;
  display:flex;align-items:center;gap:var(--ua-sp-3);
  padding:var(--ua-sp-4) var(--ua-sp-4) var(--ua-sp-3);
  background:var(--ua-surface-2);border-bottom:1px solid var(--ua-border);}
#historyOverlay.history-overlay .history-overlay__head h2{
  margin:0;flex:1 1 auto;min-width:0;text-align:left;display:inline-flex;align-items:center;gap:var(--ua-sp-2);
  font-family:var(--ua-font-display);font-weight:var(--ua-fw-bold);
  font-size:var(--ua-fs-lg);line-height:var(--ua-lh-tight);color:var(--ua-text);
  letter-spacing:var(--ua-tracking-tight);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.history-overlay__count{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;
  min-width:24px;height:24px;padding:0 8px;border-radius:var(--ua-r-pill);
  background:var(--ua-surface-3);color:var(--ua-text-2);
  font:var(--ua-fw-bold) var(--ua-fs-xs)/1 var(--ua-font-text);}
.history-overlay__count:empty{display:none;}
.history-overlay__actions{flex:0 0 auto;display:flex;align-items:center;gap:var(--ua-sp-2);}

/* BOTÕES header — matam o .header-btn LIME do core (NUNCA lime; neutro→danger no hover) */
.history-overlay__head .header-btn{display:inline-flex;align-items:center;justify-content:center;
  min-width:var(--ua-tap-min);min-height:var(--ua-tap-min);width:auto;height:auto;
  padding:0 var(--ua-sp-3);border-radius:var(--ua-r-md);
  background:var(--ua-surface-2);border:1px solid var(--ua-border);color:var(--ua-text-2);
  font-size:16px;cursor:pointer;
  transition:background-color var(--ua-dur-fast) var(--ua-ease),color var(--ua-dur-fast) var(--ua-ease),border-color var(--ua-dur-fast) var(--ua-ease);}
.history-overlay__head .header-btn:hover{background:var(--ua-surface-3);color:var(--ua-text);border-color:var(--ua-border-hi);}
.history-overlay__head .header-btn--clear{gap:var(--ua-sp-2);font:var(--ua-fw-semibold) var(--ua-fs-sm)/1 var(--ua-font-text);}
.history-overlay__head .header-btn--clear:hover{color:var(--ua-danger);border-color:var(--ua-danger-soft);background:var(--ua-surface-3);}
.history-overlay__head .header-btn--close{width:var(--ua-tap-min);padding:0;}
/* modal central é largo → "Limpar" mostra o rótulo (não é mais ícone-only como no drawer estreito) */
.history-overlay__head .header-btn--clear .label{display:inline;}
/* mas em telas estreitas (modal ~94vw) o rótulo aperta o título → volta a ícone-only no mobile */
@media (max-width:520px){
  .history-overlay__head .header-btn--clear{padding:0;width:var(--ua-tap-min);}
  .history-overlay__head .header-btn--clear .label{display:none;}
}

/* LISTA → GRADE de pôsteres (mata flex/center/wrap do core .history-scroll) */
#historyOverlay.history-overlay .history-scroll{flex:1 1 auto;display:grid;
  grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--ua-sp-5) var(--ua-sp-4);
  align-content:start;justify-content:initial;flex-wrap:initial;
  padding:var(--ua-sp-5);overflow-y:auto;overflow-x:hidden;
  -webkit-overflow-scrolling:touch;overscroll-behavior:contain;}
#historyOverlay.history-overlay .history-scroll.is-empty{display:flex;}

/* CARD — idioma .ua-pcard (mesmo do catálogo/home). Reseta o .history-card legado. */
#historyOverlay.history-overlay .history-card{position:relative;display:block;width:auto;max-width:none;
  background:transparent;border-radius:0;overflow:visible;transition:none;margin:0;}
#historyOverlay.history-overlay .history-card:hover{transform:none;box-shadow:none;}
#historyOverlay .history-card .ua-pcard{display:block;text-decoration:none;}
#historyOverlay .history-card .poster{position:relative;border-radius:var(--ua-r-md);overflow:hidden;
  aspect-ratio:2/3;background:var(--ua-surface-2);box-shadow:var(--ua-shadow-1);
  transition:box-shadow var(--ua-dur) var(--ua-ease);}
#historyOverlay .history-card .poster img{display:block;width:100%;height:100%;object-fit:cover;margin:0;
  transition:transform var(--ua-dur-slow) var(--ua-ease);}
#historyOverlay .history-card .ua-pcard:hover .poster{box-shadow:var(--ua-shadow-2);}
#historyOverlay .history-card .ua-pcard:hover .poster img{transform:scale(1.05);}  /* zoom interno da imagem — MANTIDO */
#historyOverlay .history-card .poster::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
  background:linear-gradient(to top,rgba(7,8,10,.82) 0%,rgba(7,8,10,.34) 50%,rgba(7,8,10,.10) 100%);
  opacity:0;transition:opacity var(--ua-dur) var(--ua-ease);}
#historyOverlay .history-card .ua-pcard:hover .poster::after,
#historyOverlay .history-card .ua-pcard:focus-within .poster::after{opacity:1;}
#historyOverlay .history-card .ua-pcard:hover .ua-pcard__play,
#historyOverlay .history-card .ua-pcard:focus-within .ua-pcard__play{opacity:1;}
#historyOverlay.history-overlay .history-card .ua-pcard__info{padding:var(--ua-sp-2) 2px 0;}
#historyOverlay.history-overlay .history-card .ua-pcard__title{margin:0;padding:0;min-height:0;text-align:left;
  font-family:var(--ua-font-display);font-weight:var(--ua-fw-semibold);
  font-size:var(--ua-fs-sm);line-height:var(--ua-lh-snug);color:var(--ua-text);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  transition:color var(--ua-dur-fast) var(--ua-ease);}
#historyOverlay .history-card .ua-pcard:hover .ua-pcard__title{color:var(--ua-accent-text);}

/* AÇÃO POR ITEM: × remover. Desktop hover/focus; touch sempre visível. ≥44px via ::before. */
.history-card__remove{position:absolute;top:6px;right:6px;z-index:5;
  width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;
  border-radius:var(--ua-r-pill);border:1px solid var(--ua-border-hi);
  background:rgba(7,8,10,.72);-webkit-backdrop-filter:blur(var(--ua-blur-sm));backdrop-filter:blur(var(--ua-blur-sm));
  color:var(--ua-text);font-size:13px;line-height:1;cursor:pointer;padding:0;opacity:0;transform:scale(.9);
  transition:opacity var(--ua-dur-fast) var(--ua-ease),background-color var(--ua-dur-fast) var(--ua-ease),transform var(--ua-dur-fast) var(--ua-ease);}
.history-card:hover .history-card__remove,
.history-card:focus-within .history-card__remove,
.history-card__remove:focus-visible{opacity:1;transform:none;}
.history-card__remove:hover{background:var(--ua-danger);color:var(--ua-accent-ink);border-color:transparent;}
.history-card__remove::before{content:"";position:absolute;inset:-7px;}
/* foco AZUL c/ halo escuro p/ contraste >=3:1 sobre QUALQUER pôster [fix P1] */
.history-card__remove:focus-visible{outline:3px solid var(--ua-focus-ring);outline-offset:1px;box-shadow:0 0 0 2px var(--ua-bg-0);}
@media (hover:none){.history-card__remove{opacity:1;transform:none;}}

/* EMPTY/ERRO do overlay (usam .ua-empty compartilhado) */
.history-overlay__empty{flex:1 1 auto;margin:auto 0;}
.history-overlay__empty p{max-width:34ch;}

/* SKELETON enquanto a img carrega (reusa keyframes ua-shimmer/ua-img-fade de ua-transitions) */
#historyOverlay .history-card .poster.is-loading::after{content:"";position:absolute;inset:0;z-index:1;opacity:1;
  background:linear-gradient(90deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.06) 50%,rgba(255,255,255,0) 100%);
  transform:translateX(-100%);animation:ua-shimmer 1.4s ease-in-out infinite;}
#historyOverlay .history-card .poster img.ua-imgin{animation:ua-img-fade .35s ease;}

.history-overlay__head .header-btn:focus-visible,
.history-overlay__panel a:focus-visible{outline:3px solid var(--ua-focus-ring);outline-offset:2px;}

@media (prefers-reduced-motion:reduce){
  .history-overlay__panel,.history-overlay__scrim{transition:none;}
  #historyOverlay .history-card .poster.is-loading::after{animation:none;}
  #historyOverlay .history-card .ua-pcard:hover .poster img{transform:none;}
  #historyOverlay .history-card .poster::after{transition:none;}
}

/* ============================================================================
   PÁGINA DE FAVORITOS — 'Meus Favoritos' premium (vence o <style> inline da
   página por ORDEM + especificidade; mantém só o .module .content.full{width}).
   ============================================================================ */
.favoritos-header{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:var(--ua-sp-3);margin:0 0 var(--ua-sp-5);}
/* toolbar (contador + "Limpar tudo") alinhada À DIREITA, encostada na borda da grade. O padding:0
   PRECISA desta especificidade (.module .content header = 0,2,1) p/ vencer o padding:15px 10px base;
   NÃO uso essa specificity no resto p/ não quebrar o .favoritos-header:has(...) que esconde no vazio. */
.module .content header.favoritos-header{padding:0;}
/* SEM border-bottom: era a ÚNICA página com essa linha divisória flutuando no meio do conteúdo
   (os demais headers .module .content header não têm borda) → removida p/ consistência. Além disso,
   com a lista VAZIA o JS deixa o #favCount sem texto + o botão em display:none → o header fica sem
   conteúdo visível; escondê-lo elimina o vão/linha residual. */
.favoritos-header:has(.favoritos-header__count:empty){display:none;}
.favoritos-header h1{margin:0;flex:1 1 auto;min-width:0;display:inline-flex;align-items:center;gap:var(--ua-sp-3);
  font-family:var(--ua-font-display);font-weight:var(--ua-fw-bold);
  font-size:var(--ua-fs-h1);line-height:var(--ua-lh-tight);color:var(--ua-text);
  letter-spacing:var(--ua-tracking-tight);}
.favoritos-header__count{display:inline-flex;align-items:center;justify-content:center;
  min-width:26px;height:26px;padding:0 9px;border-radius:var(--ua-r-pill);
  background:var(--ua-surface-3);color:var(--ua-text-2);font:var(--ua-fw-bold) var(--ua-fs-sm)/1 var(--ua-font-text);}
.favoritos-header__count:empty{display:none;}
/* 'Limpar tudo' — pílula NEUTRA → danger no hover (mata #5b5b5a + hover-lime do <style> inline) */
.favoritos-header .clear-favorites{display:inline-flex;align-items:center;gap:var(--ua-sp-2);
  min-height:var(--ua-tap-min);padding:0 var(--ua-sp-4);
  background:var(--ua-surface-2);border:1px solid var(--ua-border);border-radius:var(--ua-r-pill);
  color:var(--ua-text-2);text-transform:none;
  font:var(--ua-fw-semibold) var(--ua-fs-sm)/1 var(--ua-font-text);cursor:pointer;
  transition:background-color var(--ua-dur-fast) var(--ua-ease),color var(--ua-dur-fast) var(--ua-ease),border-color var(--ua-dur-fast) var(--ua-ease);}
.favoritos-header .clear-favorites:hover{color:var(--ua-danger);border-color:var(--ua-danger-soft);background:var(--ua-surface-3);}
.favoritos-header .clear-favorites:focus-visible{outline:3px solid var(--ua-focus-ring);outline-offset:2px;}

/* GRADE — #favorites-container vira o grid; .item perde float dentro dele [fix gotcha] */
#favorites-container{min-height:300px;position:relative;display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--ua-sp-5) var(--ua-sp-3);align-content:start;}
@media (min-width:480px){#favorites-container{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media (min-width:768px){#favorites-container{grid-template-columns:repeat(4,minmax(0,1fr));}}
@media (min-width:1024px){#favorites-container{grid-template-columns:repeat(5,minmax(0,1fr));}}
@media (min-width:1320px){#favorites-container{grid-template-columns:repeat(6,minmax(0,1fr));}}
#favorites-container .item{float:none;width:auto;padding:0;margin:0;position:relative;}

/* AÇÃO POR ITEM: × desfavoritar (JS injeta .item__remove mapeado ao id=post-N) */
.item__remove{position:absolute;top:10px;right:10px;z-index:6;
  width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;
  border-radius:var(--ua-r-pill);border:1px solid var(--ua-border-hi);
  background:rgba(7,8,10,.72);-webkit-backdrop-filter:blur(var(--ua-blur-sm));backdrop-filter:blur(var(--ua-blur-sm));
  color:var(--ua-text);font-size:14px;line-height:1;cursor:pointer;padding:0;opacity:0;transform:scale(.9);
  transition:opacity var(--ua-dur-fast) var(--ua-ease),background-color var(--ua-dur-fast) var(--ua-ease),transform var(--ua-dur-fast) var(--ua-ease);}
.item:hover .item__remove,.item:focus-within .item__remove,.item__remove:focus-visible{opacity:1;transform:none;}
.item__remove:hover{background:var(--ua-danger);color:var(--ua-accent-ink);border-color:transparent;}
.item__remove::before{content:"";position:absolute;inset:-6px;}
.item__remove:focus-visible{outline:3px solid var(--ua-focus-ring);outline-offset:1px;box-shadow:0 0 0 2px var(--ua-bg-0);}
@media (hover:none){.item__remove{opacity:1;transform:none;}}
.item.is-removing{opacity:0;transition:opacity var(--ua-dur) var(--ua-ease);pointer-events:none;}

/* SKELETON grid no load */
.fav-skel{position:relative;}
.fav-skel__poster{aspect-ratio:2/3;border-radius:var(--ua-r-md);background:var(--ua-surface-1);overflow:hidden;position:relative;}
.fav-skel__poster::after{content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.06) 50%,rgba(255,255,255,0) 100%);
  transform:translateX(-100%);animation:ua-shimmer 1.4s ease-in-out infinite;}
.fav-skel__line{height:12px;margin-top:var(--ua-sp-2);border-radius:var(--ua-r-xs);background:var(--ua-surface-1);width:80%;}

/* EMPTY/ERRO de favoritos ocupam a grade inteira (usam .ua-empty compartilhado) */
.favoritos-empty,.favoritos-error{grid-column:1/-1;min-height:300px;}
.favoritos-empty .ua-empty__icon{width:72px;height:72px;font-size:30px;}
.favoritos-empty h3{font-size:var(--ua-fs-h3);}
.favoritos-empty p{max-width:42ch;font-size:var(--ua-fs-base);}

@media (prefers-reduced-motion:reduce){
  .fav-skel__poster::after{animation:none;}
  .item.is-removing{transition:none;}
  .item__remove,.favoritos-header .clear-favorites{transition:none;}
}

/* ============================================================================
   MARGEM LATERAL DAS ARCHIVES/LISTAGENS — padronizar com a HOME.
   A home usa .content.full_width_layout (padding lateral 10px). As archives
   (/episodios, /animes, gêneros, busca…) usam .content.right (padding 20px) →
   margem lateral MAIOR, cards menores, fora do padrão. Igualo o padding lateral
   ao da home (10px), mantendo o vertical. Escopo: body.archive + body.search.
   ============================================================================ */
body.archive .module > .content,
body.search .module > .content{
  padding-left:10px;padding-right:10px;
}
/* SIDEBAR fora das archives: o tema usa .content.right (margin-right:360px p/ a sidebar +
   border-right = a LINHA VERTICAL divisória). Nas archives/busca NÃO há sidebar (só filme-single
   e episódio-single usam) → some o espaço reservado e a linha, e o conteúdo ocupa a largura toda,
   centralizado/simétrico (sem o deslocamento à esquerda). Singles NÃO são afetados (escopo body.archive/search). */
body.archive .module > .content.right,
body.search .module > .content.right{
  margin-right:0;border-right:0;width:auto;
}

/* ============================================================================
   FUNDO ÚNICO DO SITE (sem "caixa" encaixotada). colors.dark.min.css faz
   `.module{ background-color:rgba(0,0,0,.1); backdrop-filter:blur(4px) }` — um véu
   de 10% de preto que deixava a área de conteúdo ~mais escura que o body (--ua-bg-0
   #07080A), criando uma caixa visível em TODAS as páginas. Zero o véu → o conteúdo
   herda o mesmo --ua-bg-0 do body, fundo contínuo. (0,1,1) vence .module (0,1,0) + ordem. */
body .module{ background-color:transparent; -webkit-backdrop-filter:none; backdrop-filter:none; }

/* ============================================================================
   CALENDÁRIO (/calendario) — rebrand premium. Tudo escopado em .ua-cal p/ não
   vazar (catálogo/arquivos também usam .item/.ua-pcard/.ua-tabs). Reusa .ua-pcard,
   .ua-tabs, .ua-badge, .ua-arc-hero, .ua-empty. Tokens, flat/no-glow, sem !important
   novo, lime SÓ superfície sólida + accent-ink, foco azul herdado. Horário é opcional.
   ============================================================================ */
/* utilitário de leitor de tela (clip-path:inset(50%) evita estourar o layout/scrollWidth) */
.ua-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0;}

/* HERO: o .ua-arc-hero tem bg-1+raio (vira caixa). Sobre o fundo contínuo --ua-bg-0,
   torná-lo transparente + sem raio + compacto (não é uma caixa, é o cabeçalho da página). */
/* o tema faz `.module .content header{float:left;width:100%}` (0,2,1) → o header flutua e empurra
   a nav/nota p/ a fresta da direita. Des-flutuar (0,3,0 vence) + nav/nota full-width que LIMPAM o float. */
.content.ua-cal .ua-arc-hero{float:none;clear:both;width:100%;background:transparent;border-radius:0;overflow:visible;margin:0 0 var(--ua-sp-4);}
.ua-cal .ua-arc-hero__inner{min-height:0;padding:calc(var(--ua-header-h,70px) + var(--ua-sp-5)) 0 var(--ua-sp-5);}
.content.ua-cal .ua-arc-hero__title{font-size:var(--ua-fs-h1);text-shadow:none;}
.content.ua-cal .ua-cal-days,
.content.ua-cal .ua-cal-note{float:none;clear:both;width:100%;}

/* SELETOR DE DIAS — estende .ua-tabs (scroll-x, snap, 44px, foco azul, ativo lime).
   Dias FIXOS da semana (sem data/número): só o nome do dia. HOJE = dot lime sólido. */
/* barra de rolagem OCULTA (continua rolável; o usuário percebe pela aba parcial/scroll-snap) */
.ua-cal-days{margin:0 0 var(--ua-sp-3);padding-bottom:0;scrollbar-width:none;-ms-overflow-style:none;}
.ua-cal-days::-webkit-scrollbar{display:none;height:0;}
/* position:relative CONTÉM o sr-only "Hoje" absoluto dentro da aba (senão escapa → overflow-x) */
.ua-cal-days .ua-cal-day{position:relative;gap:7px;padding:10px 18px;}
.ua-cal-day__name{font:var(--ua-fw-semibold) var(--ua-fs-sm)/1 var(--ua-font-text);}
.ua-cal-day[aria-current="page"] .ua-cal-day__name{color:var(--ua-accent-ink);}
/* HOJE: DOT lime sólido (lime como SUPERFÍCIE, nunca borda/linha/texto). Sobre o dia ATIVO
   (preenchido lime) o dot vira accent-ink p/ continuar visível. */
.ua-cal-day__dot{flex:0 0 auto;width:6px;height:6px;border-radius:var(--ua-r-pill);background:var(--ua-accent);}
.ua-cal-day[aria-current="page"] .ua-cal-day__dot{background:var(--ua-accent-ink);}

/* GRADE em CSS GRID (não float). O float do tema "prendia" os cards da última fileira em
   cards mais altos acima (título 1-2 linhas + horário opcional) → falsa centralização/espaço
   vazio. Grid dá fileiras uniformes e SEMPRE alinhadas à esquerda. (0,3,0)=core, vence por ordem. */
.content.ua-cal .items{float:none;clear:both;width:100%;display:grid;align-content:start;
  grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--ua-sp-5) var(--ua-sp-3);}
@media (min-width:520px){.content.ua-cal .items{grid-template-columns:repeat(4,minmax(0,1fr));}}
@media (min-width:768px){.content.ua-cal .items{grid-template-columns:repeat(5,minmax(0,1fr));}}
@media (min-width:1100px){.content.ua-cal .items{grid-template-columns:repeat(6,minmax(0,1fr));}}
/* célula = .item: anula float/width(calc 100%/N)/margin do core. O core usa
   `.module .content .items.full .item` (0,5,0) → preciso de ≥ p/ a célula preencher
   a coluna do grid (senão o item vira 1/6 da célula → pôster minúsculo). 0,6,0 vence. */
.module .content.ua-cal .items.full .item{float:none;width:auto;min-width:0;margin:0;padding:0;}
.content.ua-cal .ua-cal-empty{grid-column:1/-1;}

/* NOTA discreta (substitui a caixa lime chapada) — info, sem lime. */
.ua-cal-note{display:flex;align-items:center;gap:var(--ua-sp-2);margin:0 0 var(--ua-sp-5);
  color:var(--ua-text-3);font-size:var(--ua-fs-sm);}
.ua-cal-note i{color:var(--ua-text-3);font-size:var(--ua-fs-base);}

/* BADGE DE HORÁRIO (glass, canto inf-esq do pôster) — clona o idioma do .ua-ecard__badge--ep.
   z-3 (acima do scrim z2, abaixo do play z4). Decorativo (aria-hidden); texto acessível na meta. */
.ua-cal .ua-cal-time{position:absolute;left:var(--ua-sp-2);bottom:var(--ua-sp-2);z-index:3;
  display:inline-flex;align-items:center;gap:5px;
  background:rgba(0,0,0,.68);-webkit-backdrop-filter:blur(var(--ua-blur-sm));backdrop-filter:blur(var(--ua-blur-sm));
  border:1px solid var(--ua-border-hi);color:var(--ua-text);
  font:var(--ua-fw-bold) var(--ua-fs-xs)/1 var(--ua-font-text);
  padding:4px 9px;border-radius:var(--ua-r-pill);}
.ua-cal .ua-cal-time i{font-size:11px;}
/* HORÁRIO repetido como meta-texto abaixo do título (acessível/SEO, independe da arte). */
.ua-cal .ua-cal-meta{display:flex;align-items:center;gap:5px;margin-top:3px;
  color:var(--ua-text-2);font-size:var(--ua-fs-sm);font-weight:var(--ua-fw-semibold);}
.ua-cal .ua-cal-meta i{font-size:11px;color:var(--ua-text-3);}

/* STATUS temporal (canto sup-esq). "Já saiu" = .ua-badge--ongoing (ok-soft). "Em breve" = neutro. */
.ua-cal .ua-cal-status{position:absolute;top:var(--ua-sp-2);left:var(--ua-sp-2);z-index:3;}
.ua-cal .ua-cal-status--soon{color:var(--ua-text-2);background:var(--ua-surface-3);border:1px solid var(--ua-border);}

/* DESTAQUE (canto sup-direito) — pílula lime sólida + accent-ink, só a estrela. */
.ua-cal .ua-cal-featured{position:absolute;top:var(--ua-sp-2);right:var(--ua-sp-2);z-index:3;padding:5px 7px;}

/* EMPTY STATE — estica na grade float (.items) ocupando a largura toda. */
.ua-cal-empty{width:100%;min-height:300px;}
.ua-cal-empty .ua-empty__icon{width:72px;height:72px;font-size:30px;}

/* =============================================================================
   CALENDÁRIO DINÂMICO (troca de dia sem reload) — fade + skeleton + paginação AJAX.
   ============================================================================= */
/* fade breve da lista durante o fetch (só quando responde rápido; se demorar, entra o skeleton) */
#ua-cal-items.is-loading{opacity:.45;transition:opacity var(--ua-dur-fast) var(--ua-ease);}
/* skeleton shimmer no lugar dos cards (reusa @keyframes ua-shimmer-bg); vira célula do mesmo grid */
.ua-cal-skel{display:flex;flex-direction:column;gap:var(--ua-sp-2);}
.ua-cal-skel__poster,
.ua-cal-skel__line{background-color:var(--ua-surface-2);
  background-image:linear-gradient(100deg,transparent 34%,rgba(255,255,255,.06) 50%,transparent 66%);
  background-size:220% 100%;animation:ua-shimmer-bg 1.5s ease-in-out infinite;}
.ua-cal-skel__poster{aspect-ratio:2/3;border-radius:var(--ua-r-md);}
.ua-cal-skel__line{height:12px;width:78%;border-radius:var(--ua-r-xs);}
/* paginação numerada (só se >1 página) — chips flat, ativo lime-superfície, foco azul */
.ua-cal-pag{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--ua-sp-2);margin:var(--ua-sp-6) 0 0;}
.ua-cal-pag__link{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;padding:0 var(--ua-sp-3);
  border:1px solid var(--ua-border);border-radius:var(--ua-r-md);background:var(--ua-surface-1);color:var(--ua-text-2);
  font:var(--ua-fw-semibold) var(--ua-fs-sm)/1 var(--ua-font-text);text-decoration:none;
  transition:background var(--ua-dur-fast) var(--ua-ease),color var(--ua-dur-fast) var(--ua-ease);}
.ua-cal-pag__link:hover{background:var(--ua-surface-2);color:var(--ua-text);}
.ua-cal-pag__link[aria-current="page"]{background:var(--ua-accent);color:var(--ua-accent-ink);border-color:transparent;}
.ua-cal-pag__link:focus-visible{outline:2px solid var(--ua-focus-ring);outline-offset:2px;}
@media (prefers-reduced-motion:reduce){
  #ua-cal-items.is-loading{transition:none;}
  .ua-cal-skel__poster,.ua-cal-skel__line{animation:none;}
}

/* =============================================================================
   LISTAS DINÂMICAS (SPA-like) — ARQUIVOS (/animes /filmes /episodios) + BUSCA (abas de tipo).
   Loading (fade + skeleton) + paginação numerada. Genérico (ua-list.js), reusa @keyframes ua-shimmer-bg.
   ============================================================================= */
[data-ualist-region="items"].is-loading{opacity:.45;transition:opacity var(--ua-dur-fast) var(--ua-ease);}
[data-ualist-region="items"] > .ua-empty{grid-column:1/-1;}   /* empty-state ocupa a largura toda do grid */
.ua-skel-card{display:flex;flex-direction:column;gap:var(--ua-sp-2);}
.ua-skel-card__poster,
.ua-skel-card__line{background-color:var(--ua-surface-2);
  background-image:linear-gradient(100deg,transparent 34%,rgba(255,255,255,.06) 50%,transparent 66%);
  background-size:220% 100%;animation:ua-shimmer-bg 1.5s ease-in-out infinite;}
.ua-skel-card__poster{aspect-ratio:2/3;border-radius:var(--ua-r-md);}
.ua-skel-card__line{height:12px;width:78%;border-radius:var(--ua-r-xs);}
/* wrapper da paginação: clear:both p/ cair ABAIXO da grade (as archives usam .item float:left → sem
   clear o paginador ficava espremido a 0 de largura ao lado do float e empilhava vertical na direita). */
[data-ualist-region="pagination"]{clear:both;width:100%;}
.ua-pag{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--ua-sp-2);margin:var(--ua-sp-6) 0 var(--ua-sp-2);}
.ua-pag__gap{color:var(--ua-text-3);padding:0 var(--ua-sp-1);}
.ua-pag__link{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;padding:0 var(--ua-sp-3);
  border:1px solid var(--ua-border);border-radius:var(--ua-r-md);background:var(--ua-surface-1);color:var(--ua-text-2);
  font:var(--ua-fw-semibold) var(--ua-fs-sm)/1 var(--ua-font-text);text-decoration:none;
  transition:background var(--ua-dur-fast) var(--ua-ease),color var(--ua-dur-fast) var(--ua-ease);}
.ua-pag__link:hover{background:var(--ua-surface-2);color:var(--ua-text);}
.ua-pag__link[aria-current="page"]{background:var(--ua-accent);color:var(--ua-accent-ink);border-color:transparent;}
.ua-pag__link:focus-visible{outline:2px solid var(--ua-focus-ring);outline-offset:2px;}
@media (prefers-reduced-motion:reduce){
  [data-ualist-region="items"].is-loading{transition:none;}
  .ua-skel-card__poster,.ua-skel-card__line{animation:none;}
}

/* Episódio SPA (ua-episode.js) — fade breve do .content durante a troca de episódio sem reload. */
.content[data-ua-episode].is-loading{opacity:.5;transition:opacity var(--ua-dur-fast) var(--ua-ease);}
@media (prefers-reduced-motion:reduce){ .content[data-ua-episode].is-loading{transition:none;} }

/* MOBILE: título do card quebra em 2 linhas (cards estreitos). */
@media (max-width:520px){
  .ua-cal .ua-pcard__title{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
}

/* =============================================================================
   EPISODE SINGLE — sidebar do seletor de episódios (era uma "caixa" gigante e vazia).
   A .sidebar do episode é position:absolute com height:100% (core .dtsingle .sidebar) →
   esticava à altura INTEIRA do #single (~1494px), mas o widget seletor é curto (~600px).
   CORREÇÃO (sem mudar o tamanho do widget): a sidebar passa a ter ALTURA = CONTEÚDO.
   O scroll do seletor é o NATIVO da .ep-list (overflow:auto, 450px). O malihu foi REMOVIDO
   só desta sidebar no template (tiramos a classe "scrolling" em episodios.php), porque era
   redundante e ainda CAPTURAVA o mouse-wheel (preventDefault) + criava um trilho lateral
   fantasma (.mCSB_scrollTools) e um anel de foco no wrapper (tabindex=0).
   Escopo ESTRITO body.single-episodes → sidebar de FILMES (single-movies) e arquivos intactas. */
:is(body.single-episodes, body.single-movies) #single .sidebar.right{height:auto;}  /* mata a caixa esticada/scroll fantasma da .sidebar absolute do core (episódio + filme) */

/* =============================================================================
   FAQ (AEO) — anime single. Acordeão NATIVO (<details>/<summary>), flat, só tokens, sem glow.
   O texto visível vem do plugin (ua_seo_faq_items) — mesma fonte do schema FAQPage.
   ============================================================================= */
#single .sbox.ua-faq{float:none;clear:both;width:auto;margin:var(--ua-sp-5) 0;padding:0;background:transparent;border:0;}
.ua-faq__title{font:var(--ua-fw-bold) var(--ua-fs-h3)/1.2 var(--ua-font-display);color:var(--ua-text);letter-spacing:var(--ua-tracking-tight);margin:0 0 var(--ua-sp-4);}
.ua-faq__item{background:var(--ua-surface-1);border:1px solid var(--ua-border);border-radius:var(--ua-r-md);margin-bottom:var(--ua-sp-3);overflow:hidden;}
.ua-faq__item:last-child{margin-bottom:0;}
.ua-faq__q{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:var(--ua-sp-3);
  padding:var(--ua-sp-4) var(--ua-sp-5);font:var(--ua-fw-semibold) var(--ua-fs-base)/var(--ua-lh-snug) var(--ua-font-text);color:var(--ua-text);}
.ua-faq__q::-webkit-details-marker{display:none;}
.ua-faq__q::after{content:"+";flex:0 0 auto;font-size:22px;line-height:1;color:var(--ua-text-3);font-weight:var(--ua-fw-regular);transition:color var(--ua-dur) var(--ua-ease);}
.ua-faq__item[open] .ua-faq__q::after{content:"\2212";color:var(--ua-text);}  /* − (minus) */
.ua-faq__q:hover{color:var(--ua-text);}
.ua-faq__q:focus-visible{outline:2px solid var(--ua-focus-ring);outline-offset:-2px;}
/* padding-top separa a resposta da pergunta (antes 0 → "linhas coladas"); horizontal casa com a pergunta (sp-5) */
.ua-faq__a{padding:var(--ua-sp-3) var(--ua-sp-5) var(--ua-sp-4);color:var(--ua-text-2);font-size:var(--ua-fs-sm);line-height:var(--ua-lh-normal);}
.ua-faq__a p{margin:0;}
/* MOBILE: gutter lateral 16px no FAQ (estava colado nas bordas) */
@media (max-width:768px){ #single .sbox.ua-faq{padding-left:var(--ua-sp-4);padding-right:var(--ua-sp-4);} }

/* =============================================================================
   BUSCA (?s=) — "busca-como-catálogo": grade premium estilo /animes, escopo .content.csearch.
   Reusa .ua-arc-hero + .ua-pcard/.ua-ecard + .ua-tabs + .ua-empty + .pagination. Sidebar removida
   no template; a regra body.search .content.right (já existente) centraliza após o fix do typo.
   ============================================================================= */
/* Coluna SEMPRE full-width (sem sidebar): com 0 resultados não há grade p/ esticar o float, então
   a coluna encolhia p/ ~40%. (0,4,0) vence o body.search .content.right{width:auto} (0,3,1). */
.module .content.right.csearch{width:100%;float:none;}
/* Form de busca premium — pill surface-1, lupa à esquerda, borda lime SÓ no :focus-within. */
.content.csearch .ua-search-rebar{display:flex;align-items:center;gap:var(--ua-sp-2);width:100%;max-width:640px;margin:0 auto var(--ua-sp-4);
  background:var(--ua-surface-1);border:1px solid var(--ua-border);border-radius:var(--ua-r-pill);padding:6px 6px 6px var(--ua-sp-4);
  transition:border-color var(--ua-dur) var(--ua-ease);}
.content.csearch .ua-search-rebar:focus-within{border-color:var(--ua-accent);}
.content.csearch .ua-search-rebar__icon{flex:0 0 auto;color:var(--ua-text-3);font-size:16px;line-height:1;}
.content.csearch .ua-search-rebar__input{flex:1 1 auto;min-width:0;height:40px;border:0;outline:0;background:transparent;
  color:var(--ua-text);font:var(--ua-fw-medium) var(--ua-fs-base)/1 var(--ua-font-text);}
.content.csearch .ua-search-rebar__input::placeholder{color:var(--ua-text-3);}
.content.csearch .ua-search-rebar__submit{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;
  width:40px;height:40px;border:0;border-radius:var(--ua-r-pill);cursor:pointer;background:#fff;color:var(--ua-accent-ink);
  transition:background-color var(--ua-dur) var(--ua-ease);}
.content.csearch .ua-search-rebar__submit:hover{background:var(--ua-accent);}
.content.csearch .ua-search-rebar__submit:focus-visible{outline:2px solid var(--ua-focus-ring);outline-offset:2px;}
/* Abas de tipo — centralizadas no desktop, scroll-x no mobile (idioma .ua-tabs). */
.content.csearch .csearch-tabs{margin:0 0 var(--ua-sp-5);}
@media (min-width:768px){.content.csearch .csearch-tabs{justify-content:center;}}
/* GRADE (clona o /calendario): 3 → 4 → 5 → 6 colunas. */
.content.csearch .items{float:none;clear:both;width:100%;display:grid;align-content:start;
  grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--ua-sp-5) var(--ua-sp-3);}
@media (min-width:520px){.content.csearch .items{grid-template-columns:repeat(4,minmax(0,1fr));}}
@media (min-width:768px){.content.csearch .items{grid-template-columns:repeat(5,minmax(0,1fr));}}
@media (min-width:1100px){.content.csearch .items{grid-template-columns:repeat(6,minmax(0,1fr));}}
.module .content.csearch .items.full .item{float:none;width:auto;min-width:0;margin:0;padding:0;}
/* Chip de tipo (glass) no canto sup-DIREITO do pôster (a qualidade .mepo já ocupa o sup-esquerdo). */
.content.csearch .item .poster .ua-type-badge{position:absolute;top:var(--ua-sp-2);right:var(--ua-sp-2);left:auto;bottom:auto;z-index:3;}
/* Estado vazio ocupa a linha toda do grid. */
.content.csearch .csearch-empty{grid-column:1/-1;width:100%;min-height:300px;}
/* Mobile: título do card em 2 linhas (cards estreitos). */
@media (max-width:520px){.content.csearch .ua-pcard__title{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}}

/* =============================================================================
   HOVER DOS CARDS — o frame NÃO cresce (a pedido). O CORE (front.style) escala o CARD inteiro
   em scale(1.05) nos itens de carrossel/slider/relacionados/top-imdb → o item ficava maior que os
   vizinhos. Aqui zeramos o transform DO CARD (mesma especificidade, mas ua-components carrega depois
   → vence sem !important). O zoom INTERNO da imagem (.poster>img / .ua-pcard / .ua-ecard) continua.
   ============================================================================= */
.owl-carousel .item:hover,
.slider article.item:hover,
.srelacionados article:hover,
.top-imdb-item:hover,
.galeria .g-item:hover{transform:none;}

/* =============================================================================
   [UA] Navegador de episódios (.pag_episodes) — toolbar segmentada COLADA ao player.
   Float→Flex (mata a line-box de ~16px que aparecia como "linha vazia" entre os botões e o
   player). Tratamento premium on-brand. Markup/links/.nonex/filtro doo_episode_navigator intactos.
   Escopo body .content .pag_episodes (alta especificidade + camada ua carrega por último → vence
   o legado sem !important novo, EXCETO no hover por PARIDADE com o color:#fff!important do core).
   ============================================================================= */
body .content .pag_episodes{
  display:flex;float:none;width:100%;
  margin:var(--ua-sp-6) 0 0;   /* respiro do topbar (não cola no menu) + colado no player embaixo */
  gap:0;
  background:var(--ua-surface-1);
  /* SEM borda externa: o hover preenche a célula de ponta a ponta. A moldura de 3 lados
     (top/lados, sem bottom) emoldurava o lime em cima e o deixava "vazar" embaixo — era o que
     parecia "linha a mais / cobrindo além". Definição vem do contraste surface-1 sobre o player. */
  border-radius:var(--ua-r-md) var(--ua-r-md) 0 0;
  overflow:hidden;
}
/* margin:0 anula o .item{margin-bottom:var(--ua-sp-4)} do catálogo (era a "linha vazia" de 16px) */
body .content .pag_episodes .item{flex:1;float:none;min-width:0;margin:0;text-align:center;}
/* sem divisores entre botões (a pedido): a divisão já fica clara no hover/clique (segmento acende lime) */
body .content .pag_episodes .item + .item{border-left:0;}
body .content .pag_episodes .item a{
  display:flex;float:none;align-items:center;justify-content:center;gap:var(--ua-sp-2);
  width:100%;min-height:var(--ua-tap-min);padding:0 var(--ua-sp-3);box-sizing:border-box;
  background:transparent;color:var(--ua-text-2);
  font-family:var(--ua-font-text);font-size:var(--ua-fs-sm);font-weight:600;line-height:1;text-decoration:none;
  transition:background-color var(--ua-dur-fast) var(--ua-ease),color var(--ua-dur-fast) var(--ua-ease);
}
body .content .pag_episodes .item a i{font-size:16px;padding:0;color:inherit;}
body .content .pag_episodes .item a span{font-size:var(--ua-fs-sm);}
/* Os 3 botões compartilham o MESMO fundo/estilo. O ☰ NÃO recebe destaque de superfície —
   um fundo mais claro passava falsa sensação de "ativo" (a pedido do usuário). */
/* HOVER on-brand: segmento ativável → lime sólido + tinta preta. Paridade com o !important do core. */
body .content .pag_episodes .item a:not(.nonex):hover,
body .content .pag_episodes .item a:not(.nonex):hover i{
  background:var(--ua-accent) !important;color:var(--ua-accent-ink) !important;border-radius:0;
}
body .content .pag_episodes .item a:not(.nonex):active{background:var(--ua-accent-press) !important;}
/* FOCO: anel azul INSET (não vaza da barra colada) */
body .content .pag_episodes .item a:focus-visible{outline:3px solid var(--ua-focus-ring);outline-offset:-3px;border-radius:0;}
/* DISABLED (.nonex): mantém o sinal visual e torna inerte */
body .content .pag_episodes .item a.nonex{opacity:.3;cursor:not-allowed;pointer-events:none;}
body .content .pag_episodes .item a.nonex:focus-visible{outline:none;}
/* Player NÃO arredondado (a pedido): só cola na barra (sem gap), sem cantos arredondados */
body .content .pag_episodes + .dooplay_player,
body .content .dooplay_player{margin-top:0;}
/* MOBILE: compacto (cola no topbar, sem gap) + barra sem cantos arredondados (a pedido) */
@media (max-width:768px){
  body .content .pag_episodes{margin-top:0;border-radius:0;}
  body .content .pag_episodes .item a{min-height:48px;}
  body .content .pag_episodes .item a i{font-size:18px;}
}
@media (max-width:420px){
  /* setas: oculta o rótulo visualmente mas mantém acessível (sr-only, não display:none) */
  body .content .pag_episodes .item:nth-child(1) a span,
  body .content .pag_episodes .item:nth-child(3) a span{
    position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;
  }
}

/* =============================================================================
   [UA] Episódio: COMPARTILHAMENTO social REMOVIDO por completo (a pedido — irrelevante,
   concorrentes também não têm). E remove a LINHA DIVISÓRIA abaixo do #info (entre a info do
   episódio e o card do Discord): a `.sbox` do core tem border-bottom 1px; zeramos SÓ no
   episódio (`.sbox.ua-epinfo` = espec. 1,3,0 > o 1,2,0 do core) — filmes/séries seguem com o divisor.
   ============================================================================= */
#single .content .sbox.ua-epinfo{border-bottom-width:0;}
