/* ============================================================
   Qaksez 影视站 — 全端框架样式
   手机 / 平板 / 电脑 / 电视 四种形态
   ============================================================ */

/* ---------- 字体 ---------- */
@font-face{
  font-family:'UyghurFont';
  src:url('/fonts/uyghur.woff2') format('woff2');
  font-display:swap;
  font-weight:400; font-style:normal;
  unicode-range:U+0000-00FF,U+0600-06FF,U+0750-077F,U+2000-206F,
    U+20A0-20CF,U+FB50-FDFF,U+FE70-FEFF;
}
/* 中文楷体（实为 TTF，101KB）。只在页面真的出现汉字时才下载：
   unicode-range 限定到 CJK 区段，维吾尔语页面一个字节都不会下。 */
@font-face{
  font-family:'KaiFont';
  src:url('/fonts/kai.woff2') format('truetype');
  font-display:swap;
  font-weight:400; font-style:normal;
  unicode-range:U+2E80-2EFF,U+3000-303F,U+3400-4DBF,U+4E00-9FFF,
    U+F900-FAFF,U+FE30-FE4F,U+FF00-FFEF;
}
/* 维吾尔语正文（首选）：UKIJ Tuz —— UKIJ 维吾尔语自由字体，
   Debian fonts-ukij-uyghur 收录；已按维语字符集子集化，仅 23KB。
   字形是地道维吾尔写法（ۇ/ۆ/ۈ/ۋ/ې/ڭ/گ/چ/پ/ژ 全部完整） */
@font-face{
  font-family:'UKIJTuz';
  src:url('/fonts/ukij-tuz.woff2') format('woff2');
  font-display:swap;
  font-weight:400; font-style:normal;
  unicode-range:U+0000-00FF,U+0600-06FF,U+0750-077F,U+2000-206F,
    U+20A0-20CF,U+FB50-FDFF,U+FE70-FEFF;
}
/* 维吾尔语粗体：UKIJ Tuz Bold（标题 / 强调 / 数字） */
@font-face{
  font-family:'UKIJTuzB';
  src:url('/fonts/ukij-tuz-bold.woff2') format('woff2');
  font-display:swap;
  font-weight:700; font-style:normal;
  unicode-range:U+0000-00FF,U+0600-06FF,U+0750-077F,U+2000-206F,
    U+20A0-20CF,U+FB50-FDFF,U+FE70-FEFF;
}
/* 维吾尔语正文：Noto Naskh Arabic（OFL 开源，字符完整、正文明体清晰） */
@font-face{
  font-family:'UyghurNaskh';
  src:url('/fonts/notonaskh-arabic.woff2') format('woff2');
  font-display:swap;
  font-weight:400; font-style:normal;
  unicode-range:U+0600-06FF,U+0750-077F,U+0870-0891,U+0897-08E1,U+08E3-08FF,
    U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC;
}
/* 维吾尔语标题：Lateef（OFL 开源，书法风格） */
@font-face{
  font-family:'UyghurLateef';
  src:url('/fonts/lateef-arabic.woff2') format('woff2');
  font-display:swap;
  font-weight:400; font-style:normal;
  unicode-range:U+0600-06FF,U+0750-077F,U+0870-0891,U+0897-08E1,U+08E3-08FF,
    U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC;
}

:root{
  --green:#7ed957; --green-d:#4caf50;
  --blue:#3b9dff;  --blue-d:#2b7fe0;
  --purple:#7c4dff; --orange:#ff7043; --gold:#f5a623;
  --ink:#1f2430; --ink2:#414756; --muted:#8b90a3;
  --line:#e8eaee; --card:#fff;
  /* 主题相关变量：三套主题各自覆盖，见文末 THEME */
  --bg1:#e9f8ea; --bg2:#eef7fb; --bg3:#f4f0fb; --bg4:#fdf3ef;
  --bg-wide:#dfe3ea;      /* 大屏时 body 的底色 */
  --bg-solid:#fff;        /* 全屏遮罩/详情页这类整屏背景 */
  --card2:#fff;           /* 次级卡面（输入框等） */
  --tab-bg:rgba(255,255,255,.95);
  --tab-line:rgba(0,0,0,.06);
  --top-bg:rgba(255,255,255,.82);
  --notice-bg:rgba(255,255,255,.9);
  --shade:rgba(0,0,0,.06);
  --safe-t:env(safe-area-inset-top,0px);
  --safe-b:env(safe-area-inset-bottom,0px);

  /* 字号随视口缩放，手机到电视自动放大 */
  --fs-xs:12px; --fs-sm:13px; --fs-md:15px; --fs-lg:18px; --fs-xl:23px;
  --gap:10px;
  --tabh:56px;
  --maxw:520px;
  --radius:14px;
  --shadow:0 2px 10px rgba(0,0,0,.08);
}
html[lang="zh-CN"]{
  /* 中文优先用系统字体（苹方/雅黑/思源），KaiFont 只有 325 个汉字，
     排第一会导致缺字、同一行字形混杂，故降为兜底 */
  --font-cn:'PingFang SC','Microsoft YaHei','Noto Sans SC','Hiragino Sans GB',
    'Heiti SC','Source Han Sans SC','楷体',sans-serif;
  /* 关键：维吾尔语字体栈必须始终是维语字体。
     原来这里以 KaiFont(楷体) 开头，而楷体不含任何维文字符，
     导致中文界面下的维文片名无字形、显示缺字 */
  --font-ug:'UKIJTuz','UyghurNaskh','ALKATIPTalik','UyghurFont','UyghurLateef',
    'Noto Naskh Arabic','Noto Sans Arabic','UKIJ Tuz','UKIJ','Tahoma',sans-serif;
}
html[lang="ug"]{
  --font-cn:'PingFang SC','Microsoft YaHei','Noto Sans SC','Hiragino Sans GB',
    'Heiti SC','Source Han Sans SC','楷体',sans-serif;
  --font-ug:'UKIJTuz','UyghurNaskh','ALKATIPTalik','UyghurFont','UyghurLateef',
    'Noto Naskh Arabic','Noto Sans Arabic','UKIJ Tuz','UKIJ','Tahoma',sans-serif;
}
/* 标题用书法体，正文用清晰明体；原 ALKATIP Talik 保留为回退 */
html[lang="ug"] h1,html[lang="ug"] h2,html[lang="ug"] h3,
html[lang="ug"] .sitebrand,html[lang="ug"] .brand,
html[lang="ug"] [class*="ttl"],
html[lang="ug"] [class*="title"],html[lang="ug"] [class*="name"]{
  /* 末尾接中文栈，标题含中文时也能正常显示 */
  /* 维语标题统一 UKIJ Tuz：Lateef 缺少数维语字形，
     排第一会让同一行出现 Lateef+UKIJ 两种字形混杂 */
  font-family:'UKIJTuz','UKIJTuzB','ALKATIPTalik','UyghurFont','UyghurNaskh',
    'UyghurLateef',var(--font-cn);
}
html[lang="ug"] body.ug{font-family:var(--font-ug),var(--font-cn);}
/* 中文界面也要带维语兜底：中文字符用中文栈，
   维文字符自动落到维语字体，避免片名显示缺字 */
html[lang="zh-CN"] body{font-family:var(--font-cn),var(--font-ug);}

/* 双向文本：按文本自身语种定方向，而非整页方向
   维吾尔语(Arabic 字母) -> 右起(RTL)；中文(CJK) -> 左起(LTR) */
h1,h2,h3,h4,h5,h6,p,li,blockquote,figcaption,label,td,th,
[class*="tt"],[class*="nm"],[class*="st"],[class*="lbl"],[class*="cat"],
[class*="ln"],[class*="sl"],[class*="cap"],[class*="desc"],[class*="title"],
[class*="name"],[class*="info"],[class*="txt"],[class*="sub"],[class*="brand"],
[class*="hcard"],[class*="gcard"],[class*="bitem"],[class*="menu"],[class*="tab"]{
  unicode-bidi:plaintext;
}
/* JS 把中文片段包进此 span，强制左起，确保维文界面里中文也左对齐 */
.cjk-ltr{direction:ltr;unicode-bidi:isolate;}

*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
/* 锁定横向：html 也要 overflow-x:hidden（只给 body 设在某些机型不生效），
   宽度硬性 100%，页面不允许出现横向滚动/摆动 */
html,body{margin:0;padding:0;width:100%;max-width:100%;overflow-x:hidden;}
/* 安卓单手滑动修复（2026-10-11）
   1) html 必须显式允许纵向滚动，否则部分安卓 WebView 只认 overflow-x:hidden
      把整页当成不可滚动
   2) body 用 pan-y：明确告诉浏览器「纵向手势归页面」，
      横向手势交给下面声明 touch-action:auto 的横滑区（后代 auto 会覆盖祖先） */
html{overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-y:auto;}
body{touch-action:pan-y;-webkit-overflow-scrolling:touch;overscroll-behavior-y:auto;}
body{
  font-family:var(--font-cn);
  color:var(--ink);
  background:linear-gradient(180deg,
    var(--bg1) 0%,var(--bg2) 26%,var(--bg3) 55%,var(--bg4) 100%);
  /* 2026-10-13：一律 scroll。fixed 在 iOS Safari 滚动时会反复重绘背景，
     表现为首页上下滑动"抖动/一顿一顿"；渐变是 4 段柔和浅色，滚动时视觉无差。 */
  background-attachment:scroll;
  min-height:100vh; line-height:1.6;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
/* 触屏设备：background-attachment:fixed 在安卓上会让滚动变得极卡甚至像卡死，
   这里一律改成 scroll（视觉上几乎没差别） */
@media (max-width:900px),(hover:none){
  body{background-attachment:scroll;}
  .app{background-attachment:scroll;}
}

/* 大屏时给 body 一个浅灰底，凸显中间的内容区 */
@media (min-width:1100px){
  body{background:var(--bg-wide);}
}

/* ============================================================
   设备适配：手机（基准）/ 平板 / 电脑 / 电视
   ============================================================ */

/* --- 手机：基准样式已在上面，这里只做小屏微调 --- */
@media (max-width:360px){
  :root{--gap:8px;--tabh:52px;}
  .cats{gap:6px;}
  .cat .cir{width:46px;height:46px;font-size:20px;}
  .banner{margin:8px 8px 0;}
  .notice{margin:10px 8px;padding:8px 10px;}
  .grid3,.rows{padding:0 8px;}
  .hscroll{padding-left:8px;padding-right:8px;}
  .sect{margin-left:8px;margin-right:8px;}
  .eps{padding:0 8px;gap:6px;}
  .topbar{padding-left:10px;padding-right:10px;}
}

/* --- 小平板竖屏：两列更舒服 --- */
@media (min-width:480px) and (max-width:699px){
  .grid3{grid-template-columns:repeat(3,minmax(0,1fr));}
  .vgrid{grid-template-columns:repeat(3,minmax(0,1fr));}
  .rewgrid{grid-template-columns:repeat(3,minmax(0,1fr));}
  .eps{grid-template-columns:repeat(6,minmax(0,1fr));}
}

/* --- 平板：>= 700px，网格变 4 列，卡片变大 --- */
@media (min-width:700px){
  :root{
    --fs-xs:13px; --fs-sm:14px; --fs-md:16px; --fs-lg:20px; --fs-xl:26px;
    --gap:14px; --tabh:64px; --maxw:900px; --radius:16px;
  }
  .grid3{grid-template-columns:repeat(4,minmax(0,1fr)) !important;}
  .hcard{flex-basis:150px !important;}
  .hcard .pv{width:150px !important;height:214px !important;}
  .cats{grid-template-columns:repeat(4,minmax(0,1fr)) !important;gap:16px !important;}
  .cat .cir{width:70px !important;height:70px !important;font-size:32px !important;}
  .cat .nm{font-size:var(--fs-sm) !important;}
  .big{height:340px !important;}
  .big .bitem{width:236px !important;height:326px !important;}
}

/* --- 电脑：>= 1100px，6 列 + 顶部导航（不显示底部导航） --- */
@media (min-width:1100px){
  :root{
    --fs-xs:14px; --fs-sm:15px; --fs-md:17px; --fs-lg:22px; --fs-xl:30px;
    --gap:16px; --tabh:66px; --maxw:1280px; --radius:18px;
  }

  /* 电脑端隐藏底部导航，改用顶部导航 */
  .tabbar{display:none !important;}
  .app{padding-bottom:28px;}

  /* ---------- 顶部导航 ---------- */
  .topnav{
    display:block;position:sticky;top:0;z-index:55;
    background:rgba(255,255,255,.9);
    backdrop-filter:saturate(180%) blur(14px);
    -webkit-backdrop-filter:saturate(180%) blur(14px);
    border-bottom:1px solid rgba(0,0,0,.06);
    box-shadow:0 1px 8px rgba(0,0,0,.04);
  }
  .tn-inner{
    max-width:var(--maxw);margin:0 auto;
    display:flex;align-items:center;gap:18px;
    padding:0 24px;height:62px;
  }
  .tn-back{display:none;}
  html[dir="rtl"] .tn-back svg{transform:scaleX(-1);}
  .tn-brand{
    font-size:var(--fs-lg);font-weight:700;color:var(--ink);
    text-decoration:none;white-space:nowrap;flex:0 0 auto;
    letter-spacing:.3px;
  }
  .tn-links{display:flex;align-items:center;gap:4px;flex:1;min-width:0;}
  html[dir="rtl"] .tn-links{flex-direction:row-reverse;}
  .tn-links .tab{
    flex:0 0 auto;height:auto;flex-direction:row;gap:7px;
    padding:8px 14px;border-radius:10px;font-size:var(--fs-sm);
    color:var(--muted);transition:background .15s,color .15s;
  }
  html[dir="rtl"] .tn-links .tab{flex-direction:row-reverse;}
  .tn-links .tab svg{width:19px;height:19px;stroke-width:1.9;flex:0 0 auto;}
  .tn-links .tab .lbl{max-width:none;padding:0;font-size:inherit;}
  .tn-links .tab:hover{background:rgba(59,157,255,.08);color:var(--blue-d);}
  .tn-links .tab.on{background:rgba(59,157,255,.12);color:var(--blue);font-weight:700;}

  /* 顶部搜索框 */
  .tn-search{
    display:flex;align-items:center;gap:8px;flex:0 1 260px;min-width:150px;
    background:rgba(0,0,0,.04);border-radius:20px;padding:7px 14px;
    transition:background .15s;
  }
  .tn-search:focus-within{background:var(--card);
    box-shadow:0 0 0 2px rgba(59,157,255,.35);}
  .tn-search svg{width:16px;height:16px;stroke:var(--muted);fill:none;
    stroke-width:2;stroke-linecap:round;flex:0 0 auto;}
  .tn-search input{flex:1;border:0;outline:none;background:transparent;
    font-size:var(--fs-sm);font-family:inherit;color:var(--ink);min-width:0;padding:0;}
  .tn-search input::placeholder{color:var(--muted);}

  /* 桌面端卡片/布局微调 */
  .grid3{grid-template-columns:repeat(6,minmax(0,1fr)) !important;}
  .hcard{flex-basis:170px !important;}
  .hcard .pv{width:170px !important;height:242px !important;}
  .big{height:400px !important;}
  .big .bitem{width:276px !important;height:380px !important;}
  .cats{grid-template-columns:repeat(8,minmax(0,1fr)) !important;}

  /* 桌面端：内容区居中，卡片浮起+悬停效果 */
  .gcard:hover .pv,.hcard:hover .pv{transform:translateY(-4px);
    box-shadow:0 10px 24px rgba(0,0,0,.16);}
  .gcard .pv,.hcard .pv{transition:transform .2s ease,box-shadow .2s ease;}
  .row:hover{background:var(--card);box-shadow:var(--shadow);}
  .tab{transition:color .15s;}
  .tab:hover{color:var(--blue-d);}
  /* 桌面端键盘可达 */
  .tab:focus-visible,.chip:focus-visible,.gcard:focus-visible{
    outline:2px solid var(--blue);outline-offset:2px;}
}

/* --- 电视：>= 1600px，超大字号 + 遥控器焦点框 --- */
@media (min-width:1600px){
  :root{
    --fs-xs:20px; --fs-sm:22px; --fs-md:26px; --fs-lg:32px; --fs-xl:42px;
    --gap:24px; --tabh:92px; --maxw:1800px; --radius:22px;
  }
  .grid3{grid-template-columns:repeat(8,minmax(0,1fr)) !important;}
  .hcard{flex-basis:230px !important;}
  .hcard .pv{width:230px !important;height:328px !important;}
  .big{height:520px !important;}
  .big .bitem{width:358px !important;height:492px !important;}
  .cats{grid-template-columns:repeat(8,minmax(0,1fr)) !important;gap:30px !important;}
  .cat .cir{width:110px !important;height:110px !important;font-size:52px !important;}
  .sect .txt .u{font-size:30px !important;}
  .sect .txt .b{font-size:24px !important;}

  /* 电视端顶部导航放大（仍不显示底部导航） */
  .tabbar{display:none !important;}
  .app{padding-bottom:40px;}
  .topnav{position:sticky;}
  .tn-inner{height:96px;padding:0 40px;gap:28px;}
  .tn-brand{font-size:34px;}
  .tn-links{gap:8px;}
  .tn-links .tab{padding:12px 22px;font-size:22px;gap:10px;border-radius:14px;}
  .tn-links .tab svg{width:28px;height:28px;}
  .tn-search{flex-basis:380px;padding:11px 20px;border-radius:26px;}
  .tn-search input{font-size:22px;}
  .tn-search svg{width:22px;height:22px;}

  /* 电视：焦点必须非常明显（遥控器方向键） */
  .tab:focus-visible,.chip:focus-visible,.gcard:focus-visible,
  .vcard:focus-visible,.actcard:focus-visible,.ep:focus-visible,
  .hcard:focus-visible,.quick:focus-visible{
    outline:4px solid var(--gold);
    outline-offset:4px;
    transform:scale(1.06);
    box-shadow:0 0 0 10px rgba(245,166,35,.25);
  }
  .gcard .pv,.hcard .pv{transition:transform .2s,box-shadow .2s;}
  .ep{min-height:96px;font-size:var(--fs-lg);}
  .badge-r{font-size:var(--fs-sm);}
  .badge-d{font-size:var(--fs-xs);}
}

/* --- 横屏矮屏（手机横放）：压缩纵向占用 --- */
@media (max-height:520px) and (orientation:landscape){
  :root{--tabh:48px;}
  .big{height:200px !important;}
  .big .bitem{height:180px !important;width:128px !important;}
  .hero{padding:14px !important;}
}

/* --- 低端设备/省流：关掉动画 --- */
@media (prefers-reduced-motion:reduce){
  *{animation:none !important;transition:none !important;}
}

/* ============================================================
   通用组件
   ============================================================ */
.app{
  max-width:var(--maxw);margin:0 auto;min-height:100vh;
  position:relative;
  background:linear-gradient(180deg,
    var(--bg1) 0%,var(--bg2) 26%,var(--bg3) 55%,var(--bg4) 100%);
  /* 2026-10-13：同 body，fixed → scroll（iOS 滚动重绘抖动）。
     注意：此前 @media 里的 .app{scroll} 写在本规则之前会被它覆盖，
     等于没修 —— 所以这里直接改成本体。 */
  background-attachment:scroll;
  padding-bottom:calc(var(--tabh) + var(--safe-b) + 16px);
}

/* 顶栏 */
.topbar{
  position:sticky;top:0;z-index:50;
  display:flex;align-items:center;gap:10px;
  padding:calc(8px + var(--safe-t)) 14px 8px;
  background:var(--top-bg);
  backdrop-filter:saturate(180%) blur(14px);
  -webkit-backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid var(--tab-line);
}
.iconbtn{
  width:34px;height:34px;border:0;background:transparent;cursor:pointer;
  display:flex;align-items:center;justify-content:center;padding:0;flex:0 0 auto;
  border-radius:8px;
}
.iconbtn:focus-visible{outline:2px solid var(--blue);}
.iconbtn svg{width:21px;height:21px;stroke:var(--ink);fill:none;
  stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.sitebrand{
  flex:1;text-align:center;font-size:var(--fs-lg);font-weight:700;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.2;
}
.langsw{display:flex;background:var(--card2);border-radius:16px;padding:2px;flex:0 0 auto;}
.langsw button{
  border:0;background:transparent;font-size:var(--fs-xs);font-weight:700;
  color:var(--muted);padding:5px 11px;border-radius:14px;cursor:pointer;
  font-family:inherit;
}
.langsw button.on{background:var(--blue);color:#fff;}

/* Banner 轮播 */
.banner{
  margin:10px 12px 0;border-radius:var(--radius);overflow:hidden;
  position:relative;aspect-ratio:16/10;background:var(--card2);
  box-shadow:0 4px 16px rgba(0,0,0,.08);
}
.banner .track{display:flex;height:100%;
  transition:transform .45s cubic-bezier(.4,0,.2,1);}
.banner .slide{min-width:100%;height:100%;position:relative;cursor:pointer;}
.banner .slide img{width:100%;height:100%;object-fit:cover;display:block;}
.banner .slide .ph,.actcard .thumb,.gcard .pv .ph,.hcard .pv .ph,
.rewcard .thumb,.vcard .cover .ph,.row .pv .ph{
  width:100%;height:100%;display:flex;align-items:center;justify-content:center;
  font-size:2em;color:#fff;background:linear-gradient(135deg,#5a6b8c,#2f3a52);
}
.banner .cap{
  position:absolute;left:0;right:0;bottom:0;padding:24px 14px 10px;color:#fff;
  font-size:var(--fs-md);font-weight:700;
  background:linear-gradient(180deg,transparent,rgba(0,0,0,.72));
}
.banner .dots{position:absolute;bottom:6px;left:0;right:0;
  display:flex;justify-content:center;gap:5px;}
.banner .dots i{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.5);}
.banner .dots i.on{width:18px;border-radius:3px;background:var(--card);}

/* 通知条 */
.notice{display:flex;align-items:center;gap:8px;margin:12px;padding:9px 12px;
  background:var(--notice-bg);border-radius:12px;font-size:var(--fs-sm);
  border:1px solid var(--tab-line);}
.notice .bell{flex:0 0 auto;font-size:1.15em;}
.notice .tx{flex:1;overflow:hidden;white-space:nowrap;position:relative;height:1.6em;}
.notice .tx span{position:absolute;white-space:nowrap;display:block;
  line-height:1.6;animation:mv 18s linear infinite;}
@keyframes mv{0%{transform:translateX(100%)}100%{transform:translateX(-100%)}}

/* 圆形分类 */
.cats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--gap);
  padding:6px 12px 4px;}
.cat{display:flex;flex-direction:column;align-items:center;gap:7px;cursor:pointer;
  border:0;background:transparent;padding:0;font-family:inherit;}
.cat .cir{width:54px;height:54px;border-radius:50%;display:flex;align-items:center;
  justify-content:center;font-size:24px;color:#fff;
  box-shadow:0 4px 12px rgba(0,0,0,.14);transition:transform .15s;}
.cat:active .cir{transform:scale(.9);}
/* 2026-10-13 按压反馈：点卡片即时缩放 + 去掉 300ms 点击延迟，
   消除"点了没反应"的观感（iOS/安卓均生效） */
.hcard .pv,.gcard .pv,.vcard .cover,.row .pv{transition:transform .12s ease;}
.hcard:active .pv,.gcard:active .pv{transform:scale(.95);}
.vcard:active .cover,.row:active .pv{transform:scale(.97);}
.hcard,.gcard,.vcard,.row,.cat,.ep,.btn{touch-action:manipulation;}
.cat .nm{font-size:var(--fs-xs);text-align:center;line-height:1.3;}

/* //装饰分区标题 */
.sect{margin:22px 12px 10px;display:flex;align-items:center;gap:8px;}
.sect .ln{flex:1;height:3px;border-radius:2px;
  background:linear-gradient(90deg,var(--blue),#7ec8ff);}
.sect .ln.r{background:linear-gradient(270deg,var(--blue),#7ec8ff);}
.sect .sl{color:var(--blue);font-size:1.4em;font-weight:900;
  letter-spacing:-3px;line-height:1;flex:0 0 auto;}
.sect .txt{flex:0 0 auto;text-align:center;min-width:110px;}
.sect .txt .u{display:block;font-size:var(--fs-lg);font-weight:700;line-height:1.25;}
.sect .txt .b{display:block;font-size:var(--fs-md);font-weight:700;
  color:var(--blue);font-family:var(--font-ug),Arial,sans-serif;line-height:1.3;}

/* 横向海报卡 */
.hscroll{display:flex;gap:var(--gap);overflow-x:auto;padding:2px 12px 6px;
  -webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;}
@media (hover:none){
  /* 触屏上不要 snap：它会把斜着/竖着的手势也判定成横向，
     手指放在海报行上就滑不动页面了 */
  .hscroll,.filters,.sorts,.tabs{scroll-snap-type:none;}
}
.hscroll::-webkit-scrollbar{display:none;}
.hcard{flex:0 0 116px;scroll-snap-align:start;cursor:pointer;}
.hcard .pv{width:116px;height:168px;border-radius:10px;overflow:hidden;
  position:relative;background:#dfe3ea;box-shadow:0 2px 8px rgba(0,0,0,.1);}
.hcard .pv img,.gcard .pv img,.vcard .cover img,.row .pv img,
.rewcard .thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.hcard .tt{margin-top:6px;font-size:var(--fs-xs);font-weight:600;text-align:center;
  line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;
  -webkit-box-orient:vertical;overflow:hidden;}
.hcard .st{margin-top:2px;font-size:calc(var(--fs-xs) - 2px);color:var(--muted);
  text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

/* 角标 */
.badge-r{position:absolute;top:0;left:0;background:var(--green-d);color:#fff;
  font-size:var(--fs-xs);font-weight:700;padding:2px 6px;
  border-radius:0 0 8px 0;line-height:1.4;font-family:var(--font-cn),var(--font-ug),Arial,sans-serif;}
.badge-d{position:absolute;top:0;right:0;background:var(--blue);color:#fff;
  font-size:calc(var(--fs-xs) - 2px);font-weight:700;padding:2px 6px;
  border-radius:0 0 0 8px;line-height:1.5;}

/* 大图轮播 */
.bigwrap{position:relative;padding:8px 0 4px;overflow:hidden;}
.big{display:flex;align-items:center;justify-content:center;height:250px;position:relative;}
.big .bitem{position:absolute;width:172px;height:238px;border-radius:12px;
  overflow:hidden;cursor:pointer;
  transition:transform .5s cubic-bezier(.4,0,.2,1),opacity .5s;
  box-shadow:0 6px 20px rgba(0,0,0,.22);background:#dfe3ea;}
.big .bitem img{width:100%;height:100%;object-fit:cover;display:block;}
.big .bitem .no{position:absolute;top:6px;left:8px;font-size:22px;font-weight:800;
  color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.6);font-family:var(--font-cn),var(--font-ug),Arial,sans-serif;}
.big .bitem .nm{position:absolute;left:0;right:0;bottom:0;padding:16px 6px 6px;
  color:#fff;font-size:var(--fs-xs);font-weight:600;text-align:center;
  background:linear-gradient(180deg,transparent,rgba(0,0,0,.78));}

/* 三列网格 */
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap);padding:0 12px;}
.gcard{cursor:pointer;}
.gcard .pv{position:relative;width:100%;aspect-ratio:3/4.2;border-radius:9px;
  overflow:hidden;background:#dfe3ea;box-shadow:0 2px 8px rgba(0,0,0,.12);}
.gcard .tt{margin-top:5px;font-size:var(--fs-xs);font-weight:600;line-height:1.3;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.gcard .st{font-size:calc(var(--fs-xs) - 2px);color:var(--muted);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

/* 活动卡 */
.actgrid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--gap);}
.actcard{background:var(--card);border-radius:var(--radius);padding:12px;
  display:flex;gap:12px;align-items:center;cursor:pointer;}
.actcard .thumb{width:80px;height:80px;border-radius:10px;flex:0 0 auto;
  font-size:22px;}
.actcard .body{flex:1;min-width:0;}
.actcard h4{margin:0 0 4px;font-size:var(--fs-md);}
.actcard p{margin:0;font-size:var(--fs-xs);color:var(--muted);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.actcard .reward{font-size:var(--fs-xs);color:var(--orange);margin-top:4px;}

/* 奖励卡 */
.rewgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gap);}
.rewcard{background:var(--card);border-radius:var(--radius);overflow:hidden;text-align:center;}
.rewcard .thumb{height:90px;font-size:26px;}
.rewcard h4{margin:8px 6px 4px;font-size:var(--fs-sm);}
.rewcard p{margin:0 6px 8px;font-size:var(--fs-xs);color:var(--muted);}
.rewcard .pts{font-size:var(--fs-xs);color:var(--blue);font-weight:700;padding-bottom:8px;}
@media (min-width:700px){ .rewgrid{grid-template-columns:repeat(4,minmax(0,1fr));} }

/* 视频卡 */
.vgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gap);}
@media (min-width:700px){ .vgrid{grid-template-columns:repeat(4,minmax(0,1fr));} }
@media (min-width:1100px){ .vgrid{grid-template-columns:repeat(6,minmax(0,1fr));} }
.vcard{background:var(--card);border-radius:var(--radius);overflow:hidden;cursor:pointer;}
.vcard .cover{height:110px;position:relative;font-size:30px;
  background:linear-gradient(135deg,#ff9a6c,#ff6a88);background-size:cover;
  background-position:center;}
.vcard .cover .play{position:absolute;inset:0;margin:auto;width:38px;height:38px;
  border-radius:50%;background:rgba(0,0,0,.35);display:flex;align-items:center;
  justify-content:center;color:#fff;font-size:16px;}
.vcard .vt{padding:8px 10px;font-size:var(--fs-xs);line-height:1.35;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}

/* 列表行 */
.rows{padding:0 12px;}
.row{display:flex;gap:11px;align-items:center;background:rgba(255,255,255,.94);
  border-radius:12px;padding:10px;margin-bottom:9px;cursor:pointer;}
.row .pv{position:relative;width:62px;height:86px;border-radius:8px;
  overflow:hidden;flex:0 0 auto;background:#dfe3ea;}
.row .info{flex:1;min-width:0;}
.row .info h3{margin:0 0 4px;font-size:var(--fs-md);line-height:1.35;
  overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;
  -webkit-box-orient:vertical;}
.row .info p{margin:0;font-size:var(--fs-xs);color:var(--muted);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.row .go{color:var(--muted);font-size:1.2em;flex:0 0 auto;}
@media (min-width:700px){ .rows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;} }

/* 选集 */
.eps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;padding:0 12px;}
@media (min-width:700px){ .eps{grid-template-columns:repeat(8,minmax(0,1fr));} }
@media (min-width:1100px){ .eps{grid-template-columns:repeat(12,minmax(0,1fr));} }
@media (min-width:1600px){ .eps{grid-template-columns:repeat(16,minmax(0,1fr));} }
.ep{aspect-ratio:1/.78;border:1px solid var(--line);border-radius:9px;background:var(--card);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:2px;font-size:var(--fs-sm);cursor:pointer;font-family:inherit;
  color:var(--ink);padding:0;overflow:hidden;}
.ep small{font-size:.65em;color:var(--muted);max-width:100%;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap;padding:0 3px;}
.ep.on{background:linear-gradient(135deg,var(--blue),var(--blue-d));color:#fff;
  border-color:transparent;font-weight:700;}
.ep.on small{color:rgba(255,255,255,.85);}

/* 按钮 */
.btn{display:inline-block;border:0;border-radius:24px;padding:11px 22px;
  font-size:var(--fs-md);font-weight:700;cursor:pointer;font-family:inherit;
  transition:transform .15s,opacity .15s;}
.btn:active{transform:scale(.97);}
.btn-primary{background:linear-gradient(135deg,var(--blue),var(--blue-d));
  color:#fff;width:100%;text-align:center;}
.btn-light{background:var(--card);color:var(--orange);}
.btn-sm{padding:7px 16px;font-size:var(--fs-sm);}

/* 芯片/筛选 */
.filters,.sorts,.tabs{display:flex;gap:7px;overflow-x:auto;padding:6px 12px 12px;}
.filters::-webkit-scrollbar,.sorts::-webkit-scrollbar,.tabs::-webkit-scrollbar{display:none;}
.chip,.sorts button,.tabs button{
  border:1px solid rgba(0,0,0,.06);background:rgba(255,255,255,.92);color:var(--ink2);
  border-radius:20px;padding:7px 14px;font-size:var(--fs-sm);white-space:nowrap;
  cursor:pointer;font-family:inherit;flex:0 0 auto;
}
.chip.on,.sorts button.on,.tabs button.on{
  background:linear-gradient(135deg,var(--blue),var(--blue-d));color:#fff;
  border-color:transparent;font-weight:700;}
.sorts button{border:0;background:transparent;border-radius:8px;
  color:var(--muted);padding:3px 8px;}
.sorts button.on{background:rgba(255,255,255,.92);}
.tabs button{flex:1;}

/* 表单 */
label{display:block;font-size:var(--fs-xs);color:var(--muted);margin:12px 0 5px;}
input,textarea,select{width:100%;padding:11px 13px;border:1px solid var(--line);
  border-radius:10px;font-size:var(--fs-md);font-family:inherit;background:var(--card);
  color:var(--ink);}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--blue);}
textarea{min-height:70px;resize:vertical;}
.hint{font-size:var(--fs-xs);color:var(--muted);line-height:1.7;
  background:#f7f8fc;border-radius:8px;padding:9px 11px;margin:8px 0;}

/* 底部导航 —— 5 项：首页 / 电视剧 / 活动 / 类型 / 我的
   注意：html[dir=ltr] 时按 LTR 从左到右排列；RTL 语种镜像成从右到左 */
/* 底部导航
   用 inset-inline + margin:auto 居中，避免 left:50%+translateX
   在 RTL 环境下参照系错乱（曾导致桌面上缩成右下角一小块） */
.tabbar{
  position:fixed;bottom:0;left:0;right:0;
  margin:0 auto;
  width:100%;max-width:var(--maxw);
  z-index:60;
  height:calc(var(--tabh) + var(--safe-b));padding-bottom:var(--safe-b);
  display:flex;align-items:center;justify-content:space-around;
  background:var(--tab-bg);
  backdrop-filter:saturate(180%) blur(14px);
  -webkit-backdrop-filter:saturate(180%) blur(14px);
  border-top:1px solid var(--tab-line);
  box-shadow:0 -2px 14px rgba(0,0,0,.06);
}
html[dir="rtl"] .tabbar{flex-direction:row-reverse;}
.tab{
  flex:1;height:100%;display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:3px;cursor:pointer;border:0;background:transparent;
  color:var(--muted);font-size:calc(var(--fs-xs) - 1px);
  font-family:inherit;padding:0;position:relative;
}
.tab svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.8;
  stroke-linecap:round;stroke-linejoin:round;}
.tab.on{color:var(--blue);font-weight:700;}
.tab.on svg{stroke-width:2.4;}
.tab .lbl{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;
  padding:0 2px;}
@media (min-width:1600px){ .tab svg{width:34px;height:34px;} }

/* ============================================================
   顶部导航（电脑端专用；<1100px 隐藏，>=1100px 显示并隐藏底部导航）
   ============================================================ */
.topnav{display:none;}

/* 详情页遮罩 */
.overlay{position:fixed;inset:0;background:var(--bg-solid);z-index:70;display:none;
  flex-direction:column;}
.overlay.show{display:flex;}
.overlay .obar{display:flex;align-items:center;gap:10px;
  padding:calc(10px + var(--safe-t)) 14px 10px;border-bottom:1px solid var(--line);}
.overlay .obody{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:16px;}
.overlay h2{margin:0 0 10px;font-size:var(--fs-xl);line-height:1.4;}
.overlay .cover-img{width:100%;border-radius:var(--radius);margin-bottom:14px;
  max-height:40vh;object-fit:cover;}
.article-body{font-size:var(--fs-md);line-height:1.85;}
.article-body p{margin:0 0 12px;}

/* 空态 / 加载 */
.empty{text-align:center;color:var(--muted);font-size:var(--fs-sm);padding:34px 12px;}
.empty .ic{font-size:2.4em;display:block;margin-bottom:8px;opacity:.5;}
.loadmore{margin:18px 12px 8px;text-align:center;}
.loadmore button{border:1px solid var(--line);background:rgba(255,255,255,.92);
  color:var(--muted);border-radius:22px;padding:9px 26px;font-size:var(--fs-sm);
  cursor:pointer;font-family:inherit;}

.toast{position:fixed;left:50%;top:40%;transform:translate(-50%,-50%);
  background:rgba(0,0,0,.82);color:#fff;padding:10px 18px;border-radius:10px;
  font-size:var(--fs-sm);z-index:99;opacity:0;pointer-events:none;
  transition:.2s;max-width:80%;text-align:center;}
.toast.show{opacity:1;}

/* TV 端：模拟遥控器方向键的焦点提示条 */
.tv-hint{display:none;}
@media (min-width:1600px){
  .tv-hint{display:flex;align-items:center;justify-content:center;gap:18px;
    padding:8px;font-size:var(--fs-xs);color:var(--muted);
    background:rgba(0,0,0,.04);}
  .tv-hint kbd{background:var(--card);border:1px solid var(--line);border-radius:5px;
    padding:2px 8px;font-family:Arial,sans-serif;margin:0 2px;
    box-shadow:0 1px 2px rgba(0,0,0,.08);}
}

/* H5 lock: disable zoom / rubber-band / double-tap / long-press callout */
html,body{overscroll-behavior:none;}
/* 触摸只允许纵向滚动：彻底锁死页面左右拖动/摆动（橡皮筋效应）。
   横向滚动的组件（海报轮播、筛选条）单独恢复 pan-x */
/* touch-action 会在命中链上求交集：祖先 pan-y × 元素 pan-x = 空，
   结果横向滚动区既不能横滑、纵向手势也传不出去。
   改成 manipulation（横竖都允许 + 禁双击缩放），横向容器交给浏览器自己判断方向。 */
/* 安卓单手滑动：body 明确 pan-y（纵向手势一定归页面），
   横滑容器用 auto（横竖都行），不会出现「手指在海报行上滑不动页面」 */
body{touch-action:pan-y;-webkit-touch-callout:none;-webkit-user-select:none;}
.hscroll,.filters,.sorts,.tabs{touch-action:auto;overscroll-behavior-x:contain;}
/* 网格/弹性卡片不允许把列撑宽：配合 minmax(0,1fr) 保证每列严格等宽，
   长片名在格内省略号截断 —— 修复 390px 下三列 108/118/132 宽度不一 */
.gcard,.hcard,.vcard,.rewcard,.row,.cat,.ep{min-width:0;max-width:100%;}
input,textarea,select{-webkit-user-select:auto;}
*{ -webkit-tap-highlight-color:transparent; }

/* ============================================================
   双语阅读方向：中文(ltr) 从左开始，维吾尔语(rtl) 从右开始
   —— 通知跑马灯也跟着界面方向滚动
   ============================================================ */
html[dir="rtl"] .notice .tx span{animation-name:mv-ltr;}
@keyframes mv-ltr{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}

/* 通知文本按阅读方向对齐 */
html[dir="ltr"] .notice{text-align:left;}
html[dir="rtl"] .notice{text-align:right;}

/* ============================================================
   THEME 主题切换：白(默认) / 黑(dark) / 素蓝(azure)
   切换方式：html[data-theme="dark"] 由 App.setTheme() 设置，
   选择保存在 localStorage，全站页面生效。
   ============================================================ */
html[data-theme="dark"]{
  --bg1:#0e1014; --bg2:#121419; --bg3:#14161c; --bg4:#171a21;
  --bg-wide:#08090c; --bg-solid:#0f1116;
  --card:#1a1e26; --card2:#232833;
  --ink:#e8eef5; --ink2:#c3ccd9; --muted:#8b96a6;
  --line:#2c323d;
  --tab-bg:rgba(16,19,24,.94); --tab-line:rgba(255,255,255,.08);
  --top-bg:rgba(14,16,20,.86); --notice-bg:rgba(30,34,42,.9);
  --shade:rgba(0,0,0,.5);
  --shadow:0 2px 10px rgba(0,0,0,.5);
  color-scheme:dark;
}
html[data-theme="azure"]{
  --bg1:#b9d3ea; --bg2:#c0d9ef; --bg3:#b4cfe8; --bg4:#c6dcf0;
  --bg-wide:#9dbdda; --bg-solid:#cfe4f5;
  --card:#ffffff; --card2:#d4e8f6;
  --ink:#0d1f33; --ink2:#274560; --muted:#54718d;
  --line:#9dbdda;
  --tab-bg:rgba(196,222,242,.96); --tab-line:rgba(13,31,51,.14);
  --top-bg:rgba(184,212,236,.90); --notice-bg:rgba(233,245,253,.95);
  --shade:rgba(13,31,51,.14);
  color-scheme:light;
}
/* 深色下常见的浅色残块：图片占位、加载骨架、分隔色块 */
html[data-theme="dark"] .pv,
html[data-theme="dark"] .cover,
html[data-theme="dark"] .thumb,
html[data-theme="dark"] .dailytop .ico{background:#232833 !important;}
html[data-theme="dark"] img{-webkit-filter:brightness(.92);filter:brightness(.92);}
html[data-theme="dark"] .hero,html[data-theme="dark"] .ubanner{
  -webkit-filter:brightness(.95);filter:brightness(.95);}

/* ---------- 主题切换按钮 / 弹层 ---------- */
.themebtn{position:fixed;bottom:calc(var(--tabh) + var(--safe-b) + 14px);
  z-index:65;inset-inline-end:10px;
  width:34px;height:34px;border-radius:50%;border:0;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  background:var(--tab-bg);color:var(--ink2);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  box-shadow:0 2px 10px var(--shade);font-size:16px;line-height:1;padding:0;}
.themebtn:active{transform:scale(.92);}
.themesheet{position:fixed;inset:0;z-index:120;display:none;
  align-items:flex-end;justify-content:center;background:rgba(0,0,0,.4);}
.themesheet.show{display:flex;}
.themesheet .box{width:100%;max-width:var(--maxw);background:var(--card);
  border-radius:18px 18px 0 0;padding:16px 16px calc(18px + var(--safe-b));
  box-shadow:0 -4px 24px rgba(0,0,0,.18);}
.themesheet .hd{font-size:var(--fs-md);font-weight:800;color:var(--ink);
  margin-bottom:14px;text-align:center;}
.themesheet .opts{display:flex;gap:10px;}
.themesheet .opt{flex:1;border:1.5px solid var(--line);border-radius:14px;
  padding:14px 6px;text-align:center;cursor:pointer;background:var(--card2);
  color:var(--ink2);font-size:var(--fs-sm);font-weight:700;}
.themesheet .opt .sw{width:100%;height:52px;border-radius:10px;margin-bottom:8px;
  border:1px solid var(--line);}
.themesheet .opt.on{border-color:var(--blue);color:var(--blue);
  box-shadow:0 0 0 2px rgba(59,157,255,.15);}
.themesheet .cancel{margin-top:14px;width:100%;border:0;background:var(--card2);
  color:var(--ink2);border-radius:12px;padding:12px;font-size:var(--fs-sm);
  font-weight:700;cursor:pointer;font-family:inherit;}
/* 示例色块 */
.sw-white{background:linear-gradient(180deg,#e9f8ea 0%,#eef7fb 60%,#fff 100%);}
.sw-dark{background:linear-gradient(180deg,#14161c 0%,#1a1e26 60%,#232833 100%);}
.sw-azure{background:linear-gradient(180deg,#b9d3ea 0%,#c0d9ef 60%,#fff 100%);}

/* ---------- 后台可换的图标（「文案与图标」里可上传图片或填 emoji） ---------- */
.ic-img{width:22px;height:22px;object-fit:contain;display:inline-block;
  vertical-align:middle;}
.ic-emo{font-size:18px;line-height:1;display:inline-block;vertical-align:middle;}
/* 底部导航：图片 / emoji 图标与内置 SVG 尺寸对齐 */
.tab .ic-img,.tn-links .tab .ic-img{width:22px;height:22px;display:block;}
.tab .ic-emo,.tn-links .tab .ic-emo{font-size:19px;line-height:22px;display:block;
  text-align:center;}
