/*!
 * 策驰影院 · 模板「霓虹戏院」（skin/nihong）样式：首页、列表页、详情页、播放页共用 —— 手机优先（390），768 平板，1024 / 1280 电脑
 * 一条夜里的老戏院街：深酒红幕布做底，四个频道各是一块本色的灯牌（2px 双线灯管，不发光；亮灯 = 实心填色），海报是灯箱
 * 灯管色只用在本频道的招牌、悬停和当前态；全站只用 4 个字号：12 / 14 / 16 / 28；数字等宽；只用系统字体
 */
:root {
  --bg: #22090D;
  --bg2: #1A0609;
  --panel: #34121A;
  --line: #4A1C25;
  --ink: #FFF1E6;
  --ink2: #E3C3BA;
  --frame: rgba(255, 241, 230, .12);
  --rim: rgba(255, 241, 230, .4);
  --dy: #FF5C7A;
  --dsj: #3FE0C5;
  --dm: #FFC247;
  --zy: #9DB0FF;
  --tone: var(--ink);
  --f1: 12px;
  --f2: 14px;
  --f3: 16px;
  --f4: 28px;
  --sans: "PingFang SC", "Microsoft YaHei", "Noto Sans SC", system-ui, sans-serif;
  --mono: ui-monospace, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;
  --gut: 16px;
  --r: 4px;
  color-scheme: dark;
}
.nh-t1 { --tone: var(--dy); }
.nh-t2 { --tone: var(--dsj); }
.nh-t3 { --tone: var(--dm); }
.nh-t4 { --tone: var(--zy); }

/* ---------- 基础 ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scrollbar-color: var(--line) var(--bg2); }
body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font: 400 var(--f2)/1.6 var(--sans);
  font-variant-numeric: tabular-nums;
  caret-color: var(--ink);
  -webkit-tap-highlight-color: transparent;
  overflow-wrap: break-word;
}
::selection { background: var(--ink); color: var(--bg); }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; border: 0; }
img[data-fb] { object-fit: contain !important; }
button { font: inherit; color: inherit; }
h1, h2, h3, p, ol, ul { margin: 0; }
ol, ul { padding: 0; list-style: none; }
:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }
[hidden] { display: none !important; }
::-webkit-scrollbar { width: 10px; height: 8px; }
::-webkit-scrollbar-track { background: var(--bg2); }
::-webkit-scrollbar-thumb { background: var(--line); border-radius: 4px; }
.nh-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.nh-num { font-family: var(--mono); font-variant-numeric: tabular-nums; }
.nh-w { width: 100%; max-width: 1312px; margin-left: auto; margin-right: auto; padding-left: var(--gut); padding-right: var(--gut); }
.nh-main { padding-bottom: 8px; }

/* 片名：结尾是「第二季 / 2024 / 剧场版」时显示不下省略前半截，保留结尾 */
.yx-tt { display: flex; min-width: 0; }
.yx-tt__h { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.yx-tt__t { flex: none; white-space: nowrap; }

/* ---------- 顶栏：站名 + 搜索（52px），频道条（44px） ---------- */
.nh-hd {
  background: repeating-linear-gradient(90deg, rgba(0, 0, 0, 0) 0, rgba(0, 0, 0, .14) 11px, rgba(0, 0, 0, 0) 22px), var(--panel);
  border-bottom: 1px solid var(--line);
}
.nh-hd__in {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  grid-template-areas: "logo sch" "nav nav";
  column-gap: 14px;
  align-items: center;
}
.nh-logo { grid-area: logo; height: 52px; display: flex; align-items: center; font-size: var(--f3); font-weight: 900; letter-spacing: .04em; }
.nh-logo a { display: flex; align-items: center; gap: 8px; min-height: 40px; white-space: nowrap; }
.nh-logo__mk { flex: none; }
.nh-sch { grid-area: sch; position: relative; min-width: 0; }
.nh-sch input {
  display: block;
  width: 100%;
  height: 40px;
  padding: 0 44px 0 14px;
  border: 1px solid var(--rim);
  border-radius: 20px;
  background: var(--bg2);
  color: var(--ink);
  font: 400 var(--f3)/1 var(--sans);
  -webkit-appearance: none;
  appearance: none;
  transition: border-color .15s;
}
.nh-sch input::placeholder { color: var(--ink2); opacity: .85; }
.nh-sch input::-webkit-search-cancel-button, .nh-sch input::-webkit-search-decoration { -webkit-appearance: none; appearance: none; }
.nh-sch input:focus { outline: none; border-color: var(--ink); }
.nh-sch button { position: absolute; top: 0; right: 0; width: 44px; height: 40px; display: grid; place-items: center; border: 0; background: none; cursor: pointer; border-radius: 0 20px 20px 0; }
.nh-hd__app { display: none; }
.nh-nav {
  grid-area: nav;
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(0, 1fr);
  gap: 8px;
  padding: 2px 0 4px;
}
.nh-nav a {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 40px;
  padding: 0 6px;
  border: 6px double var(--tone);
  border-radius: 6px;
  color: var(--tone);
  font-weight: 900;
  white-space: nowrap;
  transition: background-color .15s, color .15s;
}
.nh-nav a.on { background: var(--tone); color: var(--bg); }
@media (hover: hover) { .nh-nav a:hover { background: var(--tone); color: var(--bg); } }

/* ---------- 版块标题行 ---------- */
.nh-sec { margin-top: 32px; }
.nh-sh { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 12px; min-height: 40px; margin-bottom: 10px; }
.nh-sh__t { font-size: var(--f3); font-weight: 900; line-height: 1.3; letter-spacing: .04em; }
.nh-sh__n { font-size: var(--f1); color: var(--ink2); }
.nh-sh__n b { color: var(--ink); font-weight: 700; }
.nh-sh__more { margin-left: auto; display: inline-flex; align-items: center; gap: 2px; min-height: 40px; color: var(--ink2); }
@media (hover: hover) { .nh-sh__more:hover { color: var(--ink); } }
/* 反白小灯牌：暖白实心、酒红字 */
.nh-plate { padding: 0 10px; line-height: 32px; border-radius: 2px; background: var(--ink); color: var(--bg); }

/* ---------- 今晚上映：横滑大海报 ---------- */
.nh-focus { margin-top: 16px; }
.nh-focus .nh-sh { flex-wrap: nowrap; }
.nh-bulbs { display: flex; gap: 6px; }
.nh-bulbs i { width: 8px; height: 8px; border-radius: 50%; box-shadow: inset 0 0 0 1.5px var(--rim); transition: background-color .2s, box-shadow .2s; }
.nh-bulbs i.on { background: var(--ink); box-shadow: none; }
.nh-focus__ctl { margin-left: auto; display: flex; gap: 8px; }
.nh-arw {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid var(--rim);
  border-radius: var(--r);
  background: transparent;
  cursor: pointer;
  transition: background-color .15s, color .15s, opacity .15s;
}
.nh-arw:disabled { opacity: .35; cursor: default; }
@media (hover: hover) { .nh-arw:not(:disabled):hover { background: var(--ink); color: var(--bg); } }
.nh-focus__track {
  position: relative;
  display: flex;
  gap: 12px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-padding: 0 var(--gut);
  overscroll-behavior-x: contain;
  margin: 0 calc(var(--gut) * -1);
  padding: 0 var(--gut);
  scrollbar-width: none;
}
.nh-focus__track::-webkit-scrollbar { display: none; }
.nh-slide {
  position: relative;
  flex: 0 0 calc(100% - 28px);
  scroll-snap-align: start;
  display: flex;
  gap: 14px;
  height: 220px;
  padding: 10px;
  border-radius: var(--r);
  background: var(--panel);
  box-shadow: inset 0 0 0 1px var(--line);
}
.nh-slide__pic { flex: none; width: 150px; height: 200px; border-radius: 2px; background: var(--bg2); box-shadow: 0 0 0 1px var(--frame); overflow: hidden; }
.nh-slide__pic img { width: 100%; height: 100%; object-fit: cover; }
.nh-slide__txt { position: relative; flex: 1; min-width: 0; display: flex; flex-direction: column; padding-top: 2px; }
/* 片名链接铺满整个文字区（点哪里都进详情页），播放按钮浮在上面 */
.nh-slide__h a::after { content: ""; position: absolute; top: 0; right: 0; bottom: 0; left: 0; }
.nh-slide__m { font-size: var(--f1); color: var(--ink2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nh-slide__c { color: var(--ink); font-weight: 700; }
.nh-slide__m b { color: var(--ink); font-weight: 700; }
.nh-slide__h { margin-top: 4px; font-size: var(--f3); font-weight: 900; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.nh-slide__a { margin-top: 4px; font-size: var(--f1); color: var(--ink2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nh-slide__d { margin-top: 4px; color: var(--ink2); line-height: 1.6; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.nh-play {
  position: relative;
  z-index: 1;
  margin-top: auto;
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 40px;
  padding: 0 16px 0 12px;
  border-radius: var(--r);
  background: var(--tone);
  color: var(--bg);
  font-weight: 900;
  white-space: nowrap;
}
@media (hover: hover) {
  .nh-play:hover { background: var(--ink); }
  .nh-slide__h a:hover { color: var(--tone); }
}

/* ---------- 继续观看 / 我的收藏 ---------- */
.nh-my { margin-top: 24px; }
.nh-tabs { display: flex; gap: 8px; }
.nh-tabs button {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  height: 40px;
  padding: 0 12px;
  border: 1px solid var(--rim);
  border-radius: var(--r);
  background: transparent;
  font-weight: 700;
  cursor: pointer;
}
.nh-tabs button[aria-selected="true"] { background: var(--ink); border-color: var(--ink); color: var(--bg); font-weight: 900; }
.nh-tabs small { font-size: var(--f1); }
.nh-tabs small:empty { display: none; }
.nh-my__note { margin-left: auto; }
.nh-myrow {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: 232px;
  gap: 10px;
  overflow-x: auto;
  margin: 0 calc(var(--gut) * -1);
  padding: 0 var(--gut) 2px;
  scroll-padding: 0 var(--gut);
  scroll-snap-type: x proximity;
  scrollbar-width: none;
}
.nh-myrow::-webkit-scrollbar { display: none; }
.nh-mc {
  scroll-snap-align: start;
  display: flex;
  gap: 10px;
  min-width: 0;
  padding: 8px;
  border-radius: var(--r);
  background: var(--panel);
  box-shadow: inset 0 0 0 1px var(--line);
  transition: box-shadow .15s;
}
.nh-mc__pic { flex: none; width: 54px; height: 72px; border-radius: 2px; background: var(--bg2); box-shadow: 0 0 0 1px var(--frame); overflow: hidden; }
.nh-mc__pic img { width: 100%; height: 100%; object-fit: cover; }
.nh-mc__m { flex: 1; min-width: 0; display: flex; flex-direction: column; justify-content: center; gap: 2px; }
.nh-mc__t { font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nh-mc__s { font-size: var(--f1); color: var(--ink2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nh-mc__bar { display: block; height: 2px; margin-top: 6px; background: var(--line); }
.nh-mc__bar s { display: block; height: 100%; background: var(--tone); }
@media (hover: hover) { .nh-mc:hover { box-shadow: inset 0 0 0 2px var(--tone); } }
.nh-my__empty { padding: 14px 0; color: var(--ink2); }

/* ---------- 热搜 ---------- */
.nh-hot { display: flex; align-items: center; gap: 10px; margin-top: 16px; }
.nh-hot__l { flex: none; padding: 0 8px; line-height: 28px; border-radius: 2px; background: var(--ink); color: var(--bg); font-weight: 900; }
.nh-hot__row { display: flex; gap: 0 18px; min-width: 0; overflow-x: auto; scrollbar-width: none; }
.nh-hot__row::-webkit-scrollbar { display: none; }
.nh-hot__row a { flex: none; display: flex; align-items: center; gap: 6px; min-height: 40px; max-width: 13em; }
.nh-hot__row i { font-style: normal; font-family: var(--mono); font-size: var(--f1); color: var(--ink2); }
.nh-hot__row i.is-top { color: var(--ink); font-weight: 700; }
.nh-hot__row span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (hover: hover) { .nh-hot__row a:hover span { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; } }

/* ---------- 海报卡片（灯箱） ---------- */
.nh-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px 10px; }
.nh-cd { display: block; min-width: 0; }
.nh-cd__pic {
  position: relative;
  display: block;
  padding-top: 133.333%;
  border-radius: 2px;
  background: var(--panel);
  box-shadow: 0 0 0 1px var(--frame);
  overflow: hidden;
  transition: box-shadow .15s;
}
.nh-cd__pic img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; }
.nh-cd__bd {
  position: absolute;
  left: 0;
  bottom: 0;
  max-width: 100%;
  padding: 1px 6px;
  border-top-right-radius: 2px;
  background: rgba(26, 6, 9, .88);
  color: var(--ink);
  font-size: var(--f1);
  font-style: normal;
  line-height: 18px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.nh-cd__bd b { font-weight: 700; }
.nh-cd__t { margin-top: 8px; font-size: var(--f2); font-weight: 700; line-height: 1.4; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; transition: color .15s; }
.nh-cd__s { margin-top: 2px; font-size: var(--f1); color: var(--ink2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nh-cd__c { margin-right: 6px; color: var(--ink); font-weight: 700; }
@media (hover: hover) {
  .nh-cd:hover .nh-cd__pic { box-shadow: 0 0 0 2px var(--tone); }
  .nh-cd:hover .nh-cd__t, .nh-cd:hover .nh-cd__c { color: var(--tone); }
}

/* ---------- 频道版块：灯牌（手机横放成灯牌条，电脑竖排贴在左侧） ---------- */
.nh-ch { margin-top: 44px; display: grid; grid-template-columns: minmax(0, 1fr); }
.nh-sign {
  position: relative;
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 64px;
  padding: 4px 12px 4px 16px;
  border: 6px double var(--tone);
  border-radius: 8px;
  color: var(--tone);
  transition: background-color .15s, color .15s;
}
.nh-sign__h { font-size: var(--f4); font-weight: 900; line-height: 1.15; letter-spacing: .12em; }
.nh-sign__h a::after { content: ""; position: absolute; top: -6px; right: -6px; bottom: -6px; left: -6px; border-radius: 8px; }
.nh-sign__n { margin-left: auto; font-size: var(--f1); color: var(--ink2); white-space: nowrap; }
.nh-sign__n b { margin: 0 3px; color: var(--ink); font-size: var(--f2); font-weight: 700; }
.nh-sign__go { display: grid; place-items: center; flex: none; }
.nh-sign__n + .nh-sign__go { margin-left: 0; }
.nh-sign__h + .nh-sign__go { margin-left: auto; }
/* 整块是链接的灯牌（首页频道、详情页栏目）：悬停时亮灯 */
@media (hover: hover) {
  .nh-sign.is-link:hover { background: var(--tone); color: var(--bg); }
  .nh-sign.is-link:hover .nh-sign__n, .nh-sign.is-link:hover .nh-sign__n b { color: var(--bg); }
}
/* 灯牌进入视野时通电闪一下（唯一的动画；系统开了「减少动态效果」时不动） */
@keyframes nh-on {
  0% { opacity: .3; }
  9% { opacity: 1; }
  15% { opacity: .45; }
  24% { opacity: 1; }
  31% { opacity: .7; }
  40%, 100% { opacity: 1; }
}
.nh-sign.is-lit { animation: nh-on .9s steps(1, end) 1; }

/* 子栏目：灯牌下的小灯箱 */
.nh-tags { display: flex; flex-wrap: wrap; gap: 0 8px; margin-top: 6px; }
.nh-tags a { display: flex; align-items: center; min-height: 40px; }
.nh-tags span {
  display: block;
  padding: 0 12px;
  line-height: 30px;
  border-radius: 2px;
  background: var(--panel);
  box-shadow: inset 0 0 0 1px var(--frame);
  white-space: nowrap;
  transition: box-shadow .15s, color .15s;
}
@media (hover: hover) { .nh-tags a:hover span { box-shadow: inset 0 0 0 2px var(--tone); color: var(--tone); } }

.nh-ch__row, .nh-myrow, .nh-hot__row { position: relative; }
.nh-ch__row {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: calc((100% - 20px) / 3.2);
  gap: 10px;
  overflow-x: auto;
  scroll-snap-type: x proximity;
  scroll-padding: 0 var(--gut);
  margin: 10px calc(var(--gut) * -1) 0;
  padding: 2px var(--gut) 4px;
  scrollbar-width: none;
}
.nh-ch__row::-webkit-scrollbar { display: none; }
.nh-ch__row > .nh-cd { scroll-snap-align: start; }

/* 频道热播榜 */
.nh-ch__rank { margin-top: 18px; }
.nh-rkh { display: flex; align-items: center; gap: 8px; min-height: 40px; border-bottom: 1px solid var(--line); }
.nh-rkh h2, .nh-rkh h3 { font-size: var(--f2); font-weight: 900; }
.nh-rkh__n { font-size: var(--f1); color: var(--ink2); }
.nh-rkh a { margin-left: auto; display: inline-flex; align-items: center; gap: 2px; min-height: 40px; font-size: var(--f1); color: var(--ink2); }
@media (hover: hover) { .nh-rkh a:hover { color: var(--tone); } }
.nh-rk { columns: 2; column-gap: 16px; }
.nh-rk li { break-inside: avoid; -webkit-column-break-inside: avoid; }
.nh-rk li.is-f { column-span: all; -webkit-column-span: all; border-bottom: 1px solid var(--line); margin-bottom: 2px; }
.nh-rk a { display: flex; align-items: center; gap: 8px; min-height: 40px; min-width: 0; }
.nh-rk__n {
  flex: none;
  width: 22px;
  height: 22px;
  display: grid;
  place-items: center;
  border-radius: 2px;
  font-style: normal;
  font-family: var(--mono);
  font-size: var(--f1);
  color: var(--ink2);
}
.nh-rk__n.is-top { background: var(--tone); color: var(--bg); font-weight: 700; }
.nh-rk__t { flex: 1; min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; transition: color .15s; }
.nh-rk__s { display: none; flex: none; max-width: 7em; font-size: var(--f1); color: var(--ink2); overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.nh-rk .is-f a { gap: 12px; padding: 10px 0; }
.nh-rk .is-f img { flex: none; width: 60px; height: 80px; object-fit: cover; border-radius: 2px; background: var(--panel); box-shadow: 0 0 0 1px var(--frame); }
.nh-rk__m { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.nh-rk__m b { font-weight: 700; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; transition: color .15s; }
.nh-rk__m small { font-size: var(--f1); color: var(--ink2); overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
@media (hover: hover) { .nh-rk a:hover .nh-rk__t, .nh-rk a:hover .nh-rk__m b { color: var(--tone); } }

/* ---------- 更多更新：翻牌大屏（列宽固定，按时间排，只有内容变） ---------- */
.nh-board { margin-top: 44px; }
.nh-bdh { display: grid; grid-template-columns: minmax(0, 1fr); padding-bottom: 6px; border-bottom: 1px solid var(--line); font-size: var(--f1); color: var(--ink2); }
.nh-bdh__r, .nh-bd a { display: grid; grid-template-columns: 52px 4.6em minmax(0, 1fr) 6.6em; align-items: center; gap: 0 10px; }
.nh-bdh__r > span:nth-child(1) { text-align: center; }
.nh-bdh__r > span:nth-child(4) { text-align: right; }
.nh-bdh__r + .nh-bdh__r { display: none; }
.nh-bd a { height: 44px; border-bottom: 1px solid var(--line); }
.nh-bd time {
  position: relative;
  display: block;
  line-height: 26px;
  border-radius: 2px;
  background: var(--bg2);
  box-shadow: inset 0 0 0 1px var(--line);
  color: var(--ink2);
  font-size: var(--f1);
  text-align: center;
}
.nh-bd time::after { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 1px; background: rgba(0, 0, 0, .55); }
.nh-bd time.is-new { color: var(--ink); font-weight: 700; }
.nh-bd__c { font-size: var(--f1); font-weight: 700; color: var(--ink2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nh-bd__t { min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; transition: color .15s; }
.nh-bd__b { font-size: var(--f1); color: var(--ink2); text-align: right; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (hover: hover) { .nh-bd a:hover .nh-bd__t, .nh-bd a:hover .nh-bd__c { color: var(--tone); } }
.nh-bd.is-fold li:nth-child(n+16) { display: none; }
.nh-more {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  width: 100%;
  height: 44px;
  margin-top: 12px;
  border: 1px solid var(--rim);
  border-radius: var(--r);
  background: transparent;
  font-weight: 700;
  cursor: pointer;
}
@media (hover: hover) { .nh-more:hover { background: var(--ink); color: var(--bg); } }

/* ---------- APP 入口 ---------- */
.nh-app { margin-top: 44px; }
.nh-app__box {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px 16px;
  padding: 14px 14px 14px 18px;
  border: 6px double var(--rim);
  border-radius: 8px;
}
.nh-app__txt p { margin-top: 4px; color: var(--ink2); }
.nh-nw { white-space: nowrap; }
.nh-app__qr { display: none; }
.nh-app__btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 40px;
  padding: 0 16px 0 12px;
  border-radius: var(--r);
  background: var(--ink);
  color: var(--bg);
  font-weight: 900;
  white-space: nowrap;
}

/* ---------- 页脚 ---------- */
.nh-ft { margin-top: 56px; padding: 28px 0 calc(24px + env(safe-area-inset-bottom)); border-top: 1px solid var(--line); background: var(--bg2); color: var(--ink2); }
.nh-ft__cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.nh-ft__col h3 { font-size: var(--f2); font-weight: 900; color: var(--tone); letter-spacing: .08em; }
.nh-ft__col h3 a { display: inline-flex; align-items: center; min-height: 40px; }
.nh-ft__col p { display: flex; flex-wrap: wrap; gap: 0 14px; }
.nh-ft__col p a, .nh-ft__friend a { display: inline-flex; align-items: center; min-height: 40px; }
@media (hover: hover) { .nh-ft a:hover { color: var(--ink); text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; } }
.nh-ft__about { margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--line); }
.nh-ft__about h3 { font-size: var(--f2); font-weight: 900; color: var(--ink); }
.nh-ft__about p { margin-top: 6px; max-width: 42em; line-height: 1.75; text-wrap: pretty; }
.nh-ft__app { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; margin-top: 8px; color: var(--ink); font-weight: 700; }
.nh-ft__friend { display: flex; flex-wrap: wrap; align-items: center; gap: 0 14px; margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--line); }
.nh-ft__friend b { color: var(--ink); font-weight: 900; }
.nh-ft__copy { margin-top: 16px; font-size: var(--f1); line-height: 1.8; }
.nh-ft__copy a { display: inline-block; padding: 10px 0; margin: -10px 0; color: var(--ink); }

/* ---------- 返回顶部、提示条 ---------- */
.nh-top {
  position: fixed;
  right: 16px;
  bottom: calc(16px + env(safe-area-inset-bottom));
  z-index: 20;
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--panel);
  box-shadow: inset 0 0 0 1px var(--rim), 0 6px 16px rgba(0, 0, 0, .4);
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: opacity .2s cubic-bezier(.16, 1, .3, 1), transform .2s cubic-bezier(.16, 1, .3, 1), visibility .2s;
}
.nh-top.is-on { opacity: 1; visibility: visible; transform: none; }
.nh-toast {
  position: fixed;
  left: 50%;
  bottom: calc(76px + env(safe-area-inset-bottom));
  z-index: 30;
  max-width: calc(100% - 32px);
  padding: 10px 16px;
  border-radius: var(--r);
  background: var(--ink);
  color: var(--bg);
  font-weight: 700;
  transform: translate(-50%, 8px);
  opacity: 0;
  transition: opacity .25s cubic-bezier(.16, 1, .3, 1), transform .25s cubic-bezier(.16, 1, .3, 1);
}
.nh-toast.is-on { opacity: 1; transform: translate(-50%, 0); }

/* ---------- 面包屑 ---------- */
.nh-crumb { display: flex; align-items: center; gap: 2px; min-width: 0; font-size: var(--f1); color: var(--ink2); white-space: nowrap; overflow: hidden; }
.nh-crumb a { flex: none; display: inline-flex; align-items: center; min-height: 40px; padding: 0 2px; }
.nh-crumb svg { flex: none; opacity: .7; }
.nh-crumb span { min-width: 0; padding-left: 2px; overflow: hidden; text-overflow: ellipsis; color: var(--ink); }
@media (hover: hover) { .nh-crumb a:hover { color: var(--ink); text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; } }

/* ---------- 小灯牌：栏目名（3px 双线 = 两根 1px 灯管） ---------- */
.nh-chip { position: relative; display: inline-flex; align-items: center; height: 24px; padding: 0 8px; border: 3px double var(--tone); border-radius: 4px; color: var(--tone); font-size: var(--f1); font-weight: 900; line-height: 1; letter-spacing: .06em; white-space: nowrap; transition: background-color .15s, color .15s; }
/* 看上去 24px 高，点按区域 40px */
.nh-chip::after { content: ""; position: absolute; top: -11px; right: -3px; bottom: -11px; left: -3px; }
@media (hover: hover) { .nh-chip:hover { background: var(--tone); color: var(--bg); } }

/* ---------- 通用按钮 ---------- */
.nh-play--lg { height: 44px; padding: 0 20px 0 16px; }
.nh-btn, .nh-ibtn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  height: 44px;
  padding: 0 14px 0 12px;
  border: 1px solid var(--rim);
  border-radius: var(--r);
  background: transparent;
  font-weight: 700;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color .15s, color .15s, border-color .15s;
}
.nh-btn[aria-pressed="true"], .nh-ibtn[aria-pressed="true"] { background: var(--ink); border-color: var(--ink); color: var(--bg); }
.nh-btn[data-nh-fav][aria-pressed="true"] path, .nh-ibtn[data-nh-fav][aria-pressed="true"] path { fill: currentColor; }
@media (hover: hover) { .nh-btn:hover, .nh-ibtn:hover { background: var(--ink); border-color: var(--ink); color: var(--bg); } }
.nh-sh__btn { display: inline-flex; align-items: center; gap: 4px; height: 40px; margin-left: auto; padding: 0 4px 0 8px; border: 0; background: none; color: var(--ink2); cursor: pointer; }
@media (hover: hover) { .nh-sh__btn:hover { color: var(--ink); } }

/* ---------- 列表页：栏目招牌（手机横放成灯牌条，电脑竖排贴在左侧） ---------- */
.nh-lib { margin-top: 2px; }
.nh-sign--lh { min-height: 72px; padding: 6px 14px 6px 16px; }
.nh-sign__ns { margin-left: auto; display: flex; flex-direction: column; align-items: flex-end; gap: 2px; }
.nh-sign__ns .nh-sign__n { margin: 0; }
.nh-lh__d { margin-top: 12px; max-width: 64em; color: var(--ink2); line-height: 1.7; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; text-wrap: pretty; }

/* 类型：小灯箱，当前栏目亮灯 */
.nh-types, .nh-flt__list, .nh-t10, .nh-lines { scrollbar-width: none; }
.nh-types::-webkit-scrollbar, .nh-flt__list::-webkit-scrollbar, .nh-t10::-webkit-scrollbar, .nh-lines::-webkit-scrollbar { display: none; }
.nh-types { display: flex; gap: 8px; margin: 14px calc(var(--gut) * -1) 0; padding: 0 var(--gut); overflow-x: auto; }
.nh-types a {
  flex: none;
  display: flex;
  align-items: center;
  gap: 6px;
  height: 40px;
  padding: 0 14px;
  border-radius: 2px;
  background: var(--panel);
  box-shadow: inset 0 0 0 1px var(--frame);
  font-weight: 700;
  white-space: nowrap;
  transition: box-shadow .15s, color .15s;
}
.nh-types i { font-style: normal; font-family: var(--mono); font-size: var(--f1); font-weight: 400; color: var(--ink2); }
.nh-types a.on { background: var(--tone); box-shadow: none; color: var(--bg); font-weight: 900; }
.nh-types a.on i { color: var(--bg); }
@media (hover: hover) { .nh-types a:not(.on):hover { box-shadow: inset 0 0 0 2px var(--tone); color: var(--tone); } }

/* 地区 / 年份 / 语言、排序：选中项是反白小灯牌（看上去 28px 高，点按区域 40px） */
.nh-flt { margin-top: 10px; }
.nh-flt__row { display: flex; align-items: center; min-width: 0; }
.nh-flt__lab { flex: none; width: 3em; font-size: var(--f1); color: var(--ink2); }
.nh-flt__list { flex: 1; min-width: 0; display: flex; gap: 2px; margin-right: calc(var(--gut) * -1); padding-right: var(--gut); overflow-x: auto; }
.nh-flt__list a, .nh-sort a { position: relative; z-index: 0; flex: none; display: flex; align-items: center; height: 40px; padding: 0 10px; color: var(--ink2); white-space: nowrap; transition: color .15s; }
.nh-flt__list a::before, .nh-sort a::before { content: ""; position: absolute; z-index: -1; top: 6px; right: 0; bottom: 6px; left: 0; border-radius: 2px; transition: background-color .15s, box-shadow .15s; }
.nh-flt__list a.on, .nh-sort a.on { color: var(--bg); font-weight: 700; }
.nh-flt__list a.on::before, .nh-sort a.on::before { background: var(--ink); }
@media (hover: hover) {
  .nh-flt__list a:not(.on):hover, .nh-sort a:not(.on):hover { color: var(--ink); }
  .nh-flt__list a:not(.on):hover::before, .nh-sort a:not(.on):hover::before { box-shadow: inset 0 0 0 1px var(--rim); }
}

/* 热播榜（只在第 1 页；没有生成钩子的旧程序上，第 2 页起靠页码隐藏） */
.yx-top10 { margin-top: 28px; }
.yx-top10[data-pageno]:not([data-pageno=""]):not([data-pageno="1"]) { display: none; }
.nh-t10 { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 20px) / 3.3); gap: 10px; margin: 0 calc(var(--gut) * -1); padding: 2px var(--gut) 4px; overflow-x: auto; scroll-snap-type: x proximity; scroll-padding: 0 var(--gut); }
.nh-t10 li { min-width: 0; scroll-snap-align: start; }
.nh-t10 a { display: block; }
.nh-t10__n {
  position: absolute;
  top: 0;
  left: 0;
  min-width: 26px;
  height: 26px;
  padding: 0 6px;
  border-bottom-right-radius: 2px;
  background: rgba(26, 6, 9, .88);
  color: var(--ink);
  font-family: var(--mono);
  font-size: var(--f2);
  font-style: normal;
  font-weight: 700;
  line-height: 26px;
  text-align: center;
}
.nh-t10__n.is-top { background: var(--tone); color: var(--bg); }
.nh-t10__t { display: block; margin-top: 8px; font-weight: 700; line-height: 1.4; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; transition: color .15s; }
/* 片名结尾是「第二季 / 2024」时：前半截一行，结尾单独一行，同一部剧的几季不会看起来一样 */
.nh-t10__t .yx-tt { flex-direction: column; }
.nh-t10__t .yx-tt__t { overflow: hidden; text-overflow: ellipsis; }
.nh-t10__s { display: block; margin-top: 2px; font-size: var(--f1); color: var(--ink2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (hover: hover) {
  .nh-t10 a:hover .nh-cd__pic { box-shadow: 0 0 0 2px var(--tone); }
  .nh-t10 a:hover .nh-t10__t { color: var(--tone); }
}

/* 结果条、排序、已选条件 */
.nh-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 0 12px; margin-top: 28px; }
.nh-bar__t { font-size: var(--f3); font-weight: 900; line-height: 40px; letter-spacing: .04em; }
.nh-bar__n { font-size: var(--f1); color: var(--ink2); }
.nh-bar__n b { color: var(--ink); font-weight: 700; }
.nh-pno[data-p=""], .nh-pno[data-p="1"] { display: none; }
.nh-sort { display: flex; gap: 2px; width: 100%; border-bottom: 1px solid var(--line); }
.nh-bar__sel { display: flex; flex-wrap: wrap; align-items: center; gap: 0 8px; margin-top: 6px; }
.nh-tag { position: relative; z-index: 0; display: inline-flex; align-items: center; gap: 4px; height: 40px; padding: 0 8px 0 12px; font-weight: 700; transition: color .15s; }
.nh-tag::before { content: ""; position: absolute; z-index: -1; top: 4px; right: 0; bottom: 4px; left: 0; border-radius: 2px; background: var(--panel); box-shadow: inset 0 0 0 1px var(--frame); transition: box-shadow .15s; }
.nh-tag svg { color: var(--ink2); }
.nh-bar__clear { display: inline-flex; align-items: center; height: 40px; padding: 0 4px; color: var(--ink2); text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
@media (hover: hover) {
  .nh-tag:hover, .nh-tag:hover svg { color: var(--tone); }
  .nh-tag:hover::before { box-shadow: inset 0 0 0 2px var(--tone); }
  .nh-bar__clear:hover { color: var(--ink); }
}
.nh-grid--lib { margin-top: 16px; }

/* 空结果：暖白双线框的空灯箱 */
.nh-empty { margin-top: 16px; padding: 36px 16px; border: 6px double var(--rim); border-radius: 8px; text-align: center; color: var(--ink2); }
.nh-empty b { display: block; margin-bottom: 4px; font-size: var(--f3); font-weight: 900; color: var(--ink); }
.nh-empty__btn, .nh-noplay__btn { display: inline-flex; align-items: center; height: 40px; margin-top: 16px; padding: 0 18px; border-radius: var(--r); background: var(--ink); color: var(--bg); font-weight: 900; }
@media (hover: hover) { .nh-empty__btn:hover { background: var(--tone); } }

/* 分页（chrome.php 的 yx_pager_markup 输出）。手机：上一页 · 2 / 36 · 下一页 */
.yx-pg { display: flex; align-items: center; gap: 8px; margin-top: 32px; }
.yx-pg a, .yx-pg span { display: flex; align-items: center; justify-content: center; min-width: 44px; height: 44px; padding: 0 14px; border: 1px solid var(--rim); border-radius: var(--r); font-weight: 700; white-space: nowrap; transition: background-color .15s, color .15s, border-color .15s; }
.yx-pg .on { background: var(--tone); border-color: var(--tone); color: var(--bg); font-family: var(--mono); font-weight: 900; }
.yx-pg a.hide-m:not([rel]) { font-family: var(--mono); }
.yx-pg .dis { border-color: var(--line); color: var(--ink2); cursor: default; }
.yx-pg .num { border: 0; padding: 0 6px; color: var(--ink2); font-family: var(--mono); font-weight: 400; }
.yx-pg .hide-m, .yx-pg .on { display: none; }
.yx-pg > * { flex: 1; }
.yx-pg .num { flex: none; order: 1; }
.yx-pg a[rel="next"], .yx-pg .on ~ span.dis { order: 2; }
.yx-pg__go { display: none; align-items: center; gap: 6px; color: var(--ink2); white-space: nowrap; }
.yx-pg__go input { width: 64px; height: 44px; padding: 0 8px; border: 1px solid var(--rim); border-radius: var(--r); background: var(--bg2); color: var(--ink); font: 400 var(--f2) var(--mono); text-align: center; -moz-appearance: textfield; appearance: textfield; }
.yx-pg__go input::-webkit-inner-spin-button, .yx-pg__go input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.yx-pg__go input:focus { outline: none; border-color: var(--ink); }
.yx-pg__go button { height: 44px; padding: 0 16px; border: 1px solid var(--rim); border-radius: var(--r); background: transparent; font-weight: 700; cursor: pointer; transition: background-color .15s, color .15s; }
@media (hover: hover) { .yx-pg a:hover, .yx-pg__go button:hover { background: var(--ink); border-color: var(--ink); color: var(--bg); } }

/* ---------- 详情页头部：放大的「今晚上映」灯箱板面（电脑上左侧多一块栏目竖招牌） ---------- */
.nh-dt { margin-top: 2px; }
.nh-dt > .nh-sign { display: none; }
.nh-dt__card {
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr);
  grid-template-areas: "hd hd" "pic info" "btns btns" "res res";
  gap: 12px 14px;
  padding: 14px;
  border-radius: var(--r);
  background: var(--panel);
  box-shadow: inset 0 0 0 1px var(--line);
}
.nh-dt__hd { grid-area: hd; min-width: 0; }
.nh-dt__h { font-size: var(--f4); font-weight: 900; line-height: 1.25; letter-spacing: .02em; text-wrap: balance; }
.nh-dt__alias { margin-top: 4px; font-size: var(--f1); color: var(--ink2); }
.nh-dt__pic, .nh-pi__pic { grid-area: pic; position: relative; align-self: start; display: block; padding-top: 133.333%; border-radius: 2px; background: var(--bg2); box-shadow: 0 0 0 1px var(--frame); overflow: hidden; }
.nh-dt__pic img, .nh-pi__pic img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; }
.nh-dt__info { grid-area: info; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
.nh-dt__m, .nh-pbar__m { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; font-size: var(--f1); color: var(--ink2); }
.nh-dt__st { padding: 0 8px; line-height: 26px; border-radius: 2px; background: var(--ink); color: var(--bg); font-weight: 700; }
.nh-dt__st b { font-family: var(--mono); font-weight: 900; }
.nh-dt__dl { align-self: stretch; margin: 0; font-size: var(--f1); line-height: 1.7; }
.nh-dt__dl div { display: flex; gap: 8px; }
.nh-dt__dl div + div { margin-top: 2px; }
.nh-dt__dl dt { flex: none; color: var(--ink2); }
.nh-dt__dl dd { min-width: 0; margin: 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.nh-dt__dl dd i { margin: 0 6px; font-style: normal; color: var(--ink2); }
/* 演员、导演链接：看上去是文字，点按区域上下各加 10px */
.nh-dt__dl a { display: inline-block; padding: 10px 0; margin: -10px 0; }
.nh-dt__dl dd b { font-family: var(--mono); }
@media (hover: hover) { .nh-dt__dl a:hover { color: var(--tone); text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; } }
.nh-dt__d { grid-area: desc; display: none; }
.nh-dt__btns { grid-area: btns; display: flex; gap: 8px; }
.nh-dt__btns .nh-play { flex: 1; justify-content: center; margin: 0; align-self: auto; }
.nh-dt__resume { grid-area: res; font-size: var(--f1); color: var(--ink2); }
.nh-dt__resume b { color: var(--tone); font-weight: 700; }

/* ---------- 详情页 / 播放页：正文 + 侧栏 ---------- */
.nh-dl { display: grid; grid-template-columns: minmax(0, 1fr); }
.nh-dl__main > .nh-sec:first-child { margin-top: 28px; }
.nh-side { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; margin-top: 40px; align-content: start; }
.nh-box { padding: 2px 14px 6px; border-radius: var(--r); background: var(--panel); box-shadow: inset 0 0 0 1px var(--line); }
.nh-bd--side a { grid-template-columns: 52px minmax(0, 1fr) auto; }
.nh-bd--side li:last-child a { border-bottom: 0; }
.nh-bd--side .nh-bd__b { max-width: 7em; }
.nh-box .nh-bd time { background: var(--bg); }

/* 播放线路：选中的线路是反白小灯牌 */
.nh-lines { display: flex; gap: 8px; margin-bottom: 12px; overflow-x: auto; }
.nh-lines button { flex: none; display: inline-flex; align-items: center; gap: 6px; height: 40px; padding: 0 12px; border: 1px solid var(--rim); border-radius: var(--r); background: transparent; font-weight: 700; white-space: nowrap; cursor: pointer; transition: background-color .15s, color .15s; }
.nh-lines small { font-size: var(--f1); font-weight: 400; color: var(--ink2); }
.nh-lines [aria-selected="true"] { background: var(--ink); border-color: var(--ink); color: var(--bg); font-weight: 900; }
.nh-lines [aria-selected="true"] small { color: var(--bg); }
@media (hover: hover) { .nh-lines [aria-selected="false"]:hover { border-color: var(--ink); } }
.nh-line__h { display: none; margin: 18px 0 8px; font-size: var(--f2); font-weight: 900; }

/* 选集：每一集是一个小灯箱；正在播的那集亮灯（实心灯管色），上次看到的那集描灯管色框，看过的变暗 */
.nh-eps { display: grid; grid-template-columns: repeat(auto-fill, minmax(104px, 1fr)); gap: 8px; }
.nh-eps.is-num { grid-template-columns: repeat(auto-fill, minmax(52px, 1fr)); }
.nh-eps a {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 40px;
  padding: 0 8px;
  border-radius: 2px;
  background: var(--panel);
  box-shadow: inset 0 0 0 1px var(--frame);
  font-weight: 700;
  white-space: nowrap;
  transition: box-shadow .15s, color .15s, background-color .15s;
}
.nh-eps.is-num a { font-family: var(--mono); }
.nh-eps__x { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.nh-eps a.is-seen { background: transparent; box-shadow: inset 0 0 0 1px var(--line); color: var(--ink2); font-weight: 400; }
.nh-eps a.is-last { box-shadow: inset 0 0 0 2px var(--tone); color: var(--tone); }
.nh-eps a.is-cur { background: var(--tone); box-shadow: none; color: var(--bg); font-weight: 900; }
.nh-eps__new { position: absolute; top: -7px; right: -3px; padding: 0 4px; border-radius: 2px; background: var(--ink); color: var(--bg); font: 900 var(--f1)/16px var(--sans); font-style: normal; }
@media (hover: hover) { .nh-eps a:not(.is-cur):hover { box-shadow: inset 0 0 0 2px var(--tone); color: var(--tone); } }
.nh-line .nh-more { margin-top: 12px; }
.nh-more .nh-num { margin: 0 3px; }
.nh-noplay { padding: 28px 16px; border: 6px double var(--rim); border-radius: 8px; color: var(--ink2); text-align: center; }
.nh-noplay b { display: block; margin-bottom: 2px; font-size: var(--f3); font-weight: 900; color: var(--ink); }

/* 简介：超过 5 行先折叠 */
.nh-prose { max-width: 46em; line-height: 1.85; text-wrap: pretty; }
.nh-prose p + p { margin-top: 8px; }
.nh-prose p:first-child { color: var(--ink2); }
.nh-prose.is-clamp { display: -webkit-box; -webkit-line-clamp: 5; -webkit-box-orient: vertical; overflow: hidden; }

/* ---------- 播放页：放映区（手机播放器通栏，开始播放后往下翻时吸在顶部） ---------- */
.nh-player { position: relative; margin: 0 calc(var(--gut) * -1); padding-top: 56.25%; background: #0D0305; overflow: hidden; }
#nh-player { position: absolute; top: 0; right: 0; bottom: 0; left: 0; }
.nh-player .dplayer { width: 100%; height: 100%; }
.nh-player.is-playing { position: -webkit-sticky; position: sticky; top: 0; z-index: 35; }
.nh-player__empty { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; height: 100%; padding: 0 24px; text-align: center; }
.nh-player__empty b { font-size: var(--f3); font-weight: 900; }
.nh-player__empty small { font-size: var(--f1); color: var(--ink2); }
.nh-ptip { position: absolute; z-index: 5; top: 10px; left: 10px; display: flex; align-items: center; gap: 10px; max-width: calc(100% - 20px); padding: 2px 2px 2px 12px; border-radius: var(--r); background: rgba(26, 6, 9, .9); box-shadow: inset 0 0 0 1px var(--frame); font-size: var(--f1); }
.nh-ptip span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nh-ptip button { flex: none; height: 40px; padding: 0 12px; border: 0; border-radius: 2px; background: var(--ink); color: var(--bg); font-weight: 700; cursor: pointer; }
.nh-pov { position: absolute; z-index: 6; top: 0; right: 0; bottom: 0; left: 0; display: flex; align-items: center; justify-content: center; padding: 16px; background: rgba(13, 3, 5, .9); text-align: center; }
.nh-pov__msg b { margin-right: 4px; font-size: var(--f4); font-weight: 900; }
.nh-pov__btns { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 14px; }
.nh-pov__btns button { height: 40px; padding: 0 16px; border: 1px solid var(--rim); border-radius: var(--r); background: transparent; font-weight: 700; cursor: pointer; }
.nh-pov__btns button:first-child { background: var(--tone); border-color: var(--tone); color: var(--bg); font-weight: 900; }

/* 片名、上一集 / 下一集 */
.nh-pbar { display: flex; flex-wrap: wrap; align-items: flex-start; column-gap: 12px; padding-top: 12px; }
.nh-pbar__t { flex: 1 1 0; min-width: 0; }
.nh-pbar__h { font-size: var(--f3); font-weight: 900; line-height: 1.4; letter-spacing: .02em; }
.nh-pbar__h span { margin-left: 8px; color: var(--tone); white-space: nowrap; }
@media (hover: hover) { .nh-pbar__h a:hover { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; } }
.nh-pbar__m { margin-top: 6px; }
.nh-pbar__m b { color: var(--ink); font-family: var(--mono); }
.nh-pbar__acts { flex: 1 1 100%; display: flex; align-items: center; gap: 8px; margin-top: 12px; }
.nh-pbar__acts.is-solo { flex: none; margin-top: 0; }
.nh-pnav { display: inline-flex; align-items: center; justify-content: center; gap: 2px; height: 44px; padding: 0 14px 0 8px; border: 1px solid var(--rim); border-radius: var(--r); font-weight: 700; white-space: nowrap; transition: background-color .15s, color .15s; }
.nh-pnav.is-next { padding: 0 8px 0 14px; background: var(--tone); border-color: var(--tone); color: var(--bg); font-weight: 900; }
.nh-pnav.is-dis { opacity: .4; pointer-events: none; }
@media (hover: hover) { .nh-pnav:hover { background: var(--ink); border-color: var(--ink); color: var(--bg); } }
.nh-pbar__r { display: flex; gap: 8px; margin-left: auto; }
.nh-ibtn { width: 44px; padding: 0; }
.nh-ibtn span { display: none; }
.nh-ibtn.is-light { display: none; }

/* 选集面板 */
.nh-pside { margin-top: 24px; }
.nh-pside .nh-sh { flex-wrap: nowrap; }
.nh-switch { position: relative; display: inline-flex; align-items: center; gap: 6px; min-height: 40px; margin-left: auto; font-size: var(--f1); color: var(--ink2); white-space: nowrap; cursor: pointer; -webkit-user-select: none; user-select: none; }
.nh-switch + .nh-sh__btn { margin-left: 4px; }
.nh-switch input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.nh-switch i { position: relative; flex: none; width: 36px; height: 20px; border-radius: 10px; box-shadow: inset 0 0 0 1.5px var(--rim); transition: background-color .2s, box-shadow .2s; }
.nh-switch i::after { content: ""; position: absolute; top: 3px; left: 3px; width: 14px; height: 14px; border-radius: 50%; background: var(--ink2); transition: transform .2s cubic-bezier(.16, 1, .3, 1), background-color .2s; }
.nh-switch input:checked + i { background: var(--tone); box-shadow: none; }
.nh-switch input:checked + i::after { transform: translateX(16px); background: var(--bg); }
.nh-switch input:focus-visible + i { outline: 2px solid var(--ink); outline-offset: 2px; }
.nh-pside__tip { margin-top: 12px; font-size: var(--f1); color: var(--ink2); }
.nh-prel { display: none; }

/* 简介里的海报和资料 */
.nh-pi { display: grid; grid-template-columns: 84px minmax(0, 1fr); gap: 14px; margin-bottom: 14px; }
.nh-pi__pic { grid-area: auto; }

/* 关灯 */
.nh-dim { position: fixed; z-index: 70; top: 0; right: 0; bottom: 0; left: 0; background: rgba(13, 3, 5, .92); }
.nh-lightoff .nh-stage { position: relative; z-index: 71; }

/* ---------- 平板 ≥768 ---------- */
@media (min-width: 768px) {
  :root { --gut: 24px; }
  .nh-hd__in { grid-template-columns: auto minmax(0, 1fr) auto; grid-template-areas: "logo sch app" "nav nav nav"; }
  .nh-sch { justify-self: end; width: 100%; max-width: 400px; }
  .nh-hd__app { grid-area: app; justify-self: end; display: inline-flex; align-items: center; gap: 4px; height: 40px; padding: 0 12px; border: 1px solid var(--rim); border-radius: 20px; font-weight: 700; }
  .nh-nav { grid-auto-columns: minmax(96px, max-content); justify-content: start; padding: 2px 0 8px; }
  .nh-nav a { padding: 0 18px; }
  .nh-slide { flex-basis: calc((100% - 12px) / 2); }
  .nh-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px 14px; }
  .nh-ch__row { grid-auto-columns: calc((100% - 50px) / 5.4); }
  .nh-rk { column-gap: 28px; }
  .nh-rk__s { display: block; }
  .nh-ft__cols { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .nh-app__box {
    grid-template-columns: auto auto;
    grid-template-areas: "qr txt" "qr btn";
    justify-content: center;
    gap: 10px 24px;
    width: -webkit-fit-content;
    width: fit-content;
    max-width: 100%;
    margin: 0 auto;
    padding: 14px 32px 14px 14px;
  }
  .nh-app__txt { grid-area: txt; align-self: end; }
  .nh-app__btn { grid-area: btn; justify-self: start; align-self: start; }
  .nh-app__qr { grid-area: qr; display: flex; flex-direction: column; align-items: center; gap: 4px; font-size: var(--f1); color: var(--ink2); }
  .nh-app__qr svg { display: block; border-radius: 2px; }

  /* 列表页：类型、筛选换行排开；分页显示页码 */
  .nh-types { flex-wrap: wrap; margin: 14px 0 0; padding: 0; overflow: visible; }
  .nh-flt__list { flex-wrap: wrap; margin-right: 0; padding-right: 0; overflow: visible; }
  .nh-t10 { grid-auto-columns: calc((100% - 60px) / 5.5); gap: 12px; }
  .nh-sort { width: auto; margin-left: auto; border-bottom: 0; }
  .nh-grid--lib { margin-top: 12px; }
  .yx-pg { flex-wrap: wrap; justify-content: center; }
  .yx-pg > * { flex: none; }
  .yx-pg .hide-m, .yx-pg .on { display: flex; }
  .yx-pg .num, .yx-pg a[rel="next"], .yx-pg .on ~ span.dis { order: 0; }
  .yx-pg__go { display: flex; margin-left: 8px; }

  /* 详情页：海报在左，资料在右 */
  .nh-dt__card { grid-template-columns: 168px minmax(0, 1fr); grid-template-areas: "pic hd" "pic info" "pic btns" "pic res"; grid-template-rows: auto auto auto 1fr; column-gap: 20px; row-gap: 10px; padding: 16px; }
  .nh-dt__btns .nh-play { flex: none; }
  .nh-side { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
  .nh-pi { grid-template-columns: 96px minmax(0, 1fr); }
  .nh-ibtn { width: auto; padding: 0 14px 0 12px; }
  .nh-ibtn span { display: inline; }
}

/* ---------- 电脑 ≥1024：频道灯牌竖排贴在版块左侧 ---------- */
@media (min-width: 1024px) {
  .nh-hd__in { grid-template-columns: auto minmax(0, 1fr) minmax(200px, 320px) auto; grid-template-areas: "logo nav sch app"; justify-content: stretch; column-gap: 24px; height: 68px; }
  .nh-logo { height: 68px; }
  .nh-sch { max-width: none; }
  .nh-nav { padding: 0; }
  .nh-nav a { padding: 0 16px; }
  .nh-focus { margin-top: 24px; }
  .nh-focus__track { margin: 0 -10px; padding: 0 10px; scroll-padding: 0 10px; }
  .nh-slide { height: 252px; padding: 12px; gap: 16px; }
  .nh-slide__pic { width: 171px; height: 228px; }
  .nh-slide__d { -webkit-line-clamp: 3; }
  .nh-sec { margin-top: 40px; }
  .nh-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 26px 16px; }

  .nh-ch { margin-top: 56px; grid-template-columns: 64px minmax(0, 1fr) 272px; grid-template-rows: auto 1fr; column-gap: 24px; }
  .nh-sign {
    grid-column: 1;
    grid-row: 1 / span 2;
    align-self: start;
    position: -webkit-sticky;
    position: sticky;
    top: 20px;
    writing-mode: vertical-rl;
    flex-direction: row;
    justify-content: flex-start;
    width: 64px;
    min-height: 248px;
    padding: 20px 0 12px;
    gap: 16px;
  }
  .nh-sign__h { letter-spacing: .3em; }
  .nh-sign__n { display: flex; align-items: center; margin: 0; line-height: 1; letter-spacing: .1em; }
  /* 数字放进横写的小号码牌：竖排招牌里几位数都正着读，不会侧躺 */
  .nh-sign__n b { writing-mode: horizontal-tb; margin: 8px 0; line-height: 20px; letter-spacing: 0; white-space: nowrap; }
  .nh-sign__n b.is-long { font-size: var(--f1); }
  .nh-sign__go { margin: auto 0 0 !important; }
  .nh-tags { grid-column: 2; grid-row: 1; margin-top: -4px; }
  .nh-ch__row {
    grid-column: 2;
    grid-row: 2;
    grid-auto-flow: row;
    grid-auto-columns: auto;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px 14px;
    overflow: visible;
    margin: 12px 0 0;
    padding: 0;
    align-content: start;
  }
  .nh-ch__rank { grid-column: 3; grid-row: 1 / span 2; margin-top: 0; padding: 4px 16px 6px; align-self: start; border-radius: var(--r); background: var(--panel); box-shadow: inset 0 0 0 1px var(--line); }
  .nh-rk { columns: auto; }
  .nh-rk li.is-f { margin-bottom: 4px; }

  .nh-bdh { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 40px; }
  .nh-bdh__r + .nh-bdh__r { display: grid; }
  .nh-bdh__r + .nh-bdh__r + .nh-bdh__r { display: none; }
  .nh-bd { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: repeat(var(--r2), auto); grid-auto-flow: column; column-gap: 40px; }
  .nh-bd.nh-bd--side { display: block; }
  .nh-ft__cols { gap: 24px; }

  /* 列表页：栏目招牌竖排贴在左侧（招牌的竖排规则和首页频道版块共用上面的 .nh-sign） */
  .nh-lib { display: grid; grid-template-columns: 64px minmax(0, 1fr); column-gap: 24px; align-items: start; margin-top: 8px; }
  .nh-lib__main { grid-column: 2; grid-row: 1; min-width: 0; }
  .nh-sign--lh { min-height: 280px; }
  .nh-sign__ns { flex-direction: row; align-items: center; gap: 18px; margin: 0; }
  .nh-lh__d { margin-top: 0; }
  .nh-t10 { grid-auto-flow: row; grid-template-columns: repeat(10, minmax(0, 1fr)); grid-auto-columns: auto; margin: 0; padding: 0; overflow: visible; }

  /* 详情页：左边栏目竖招牌（和板面一样高），板面里海报在左、资料在右 */
  .nh-dt { display: grid; grid-template-columns: 64px minmax(0, 1fr); column-gap: 24px; margin-top: 8px; }
  .nh-dt > .nh-sign { display: flex; grid-row: 1; align-self: stretch; position: relative; top: auto; min-height: 0; }
  .nh-dt__card { grid-template-columns: 210px minmax(0, 1fr); grid-template-areas: "pic hd" "pic info" "pic desc" "pic btns" "pic res"; grid-template-rows: auto auto auto auto 1fr; column-gap: 24px; }
  .nh-dt .nh-dt__m .nh-chip { display: none; }
  .nh-dt__info { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 8px 14px; }
  .nh-dt__dl { flex: 1 1 100%; font-size: var(--f2); }
  .nh-dt__d { display: block; max-width: 46em; color: var(--ink2); line-height: 1.75; }
  .nh-dt__d a { display: inline-block; padding: 10px 0; margin: -10px 0; color: var(--ink); white-space: nowrap; }
  .nh-dt__d svg { display: inline-block; vertical-align: -2px; }
  @media (hover: hover) { .nh-dt__d a:hover { color: var(--tone); } }
  .nh-dt__btns { margin-top: 4px; }
  .nh-dl { grid-template-columns: minmax(0, 1fr) 272px; column-gap: 24px; align-items: start; }
  .nh-side { grid-template-columns: minmax(0, 1fr); margin-top: 28px; }
  .nh-dl .nh-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px 14px; }

  /* 播放页：放映区是更深的幕布（竖褶纹和顶栏同一种），播放器和选集面板并排、同高，片名和按钮在下面 */
  .nh-stage { padding: 20px 0 24px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: repeating-linear-gradient(90deg, rgba(0, 0, 0, 0) 0, rgba(0, 0, 0, .2) 14px, rgba(0, 0, 0, 0) 28px), var(--bg2); }
  .nh-stage__in { display: grid; grid-template-columns: minmax(0, 1fr) 344px; grid-template-areas: "player side" "bar bar"; }
  .nh-player { grid-area: player; margin: 0; border-radius: var(--r) 0 0 var(--r); box-shadow: 0 0 0 1px var(--frame); }
  .nh-player.is-playing { position: relative; z-index: auto; }
  .nh-ptip { top: 16px; left: 16px; }
  .nh-pside { grid-area: side; position: relative; margin: 0; border-radius: 0 var(--r) var(--r) 0; background: var(--panel); box-shadow: inset 0 0 0 1px var(--line); }
  .nh-pside__in { position: absolute; top: 0; right: 0; bottom: 0; left: 0; display: flex; flex-direction: column; padding: 6px 16px 0; }
  .nh-pside__in > .nh-sh, .nh-pside__in > .nh-lines { flex: none; }
  .nh-pside .nh-sh { margin-bottom: 6px; }
  .nh-pside__sc { flex: 1; min-height: 0; margin-right: -10px; padding: 7px 10px 20px 0; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; }
  .nh-pside .nh-eps a { background: var(--bg2); }
  .nh-pside .nh-eps a.is-seen { background: transparent; }
  .nh-pside .nh-eps a.is-cur { background: var(--tone); }
  .nh-prel { display: block; margin-top: 20px; padding-top: 10px; border-top: 1px solid var(--line); }
  .nh-prel__h { margin-bottom: 4px; font-size: var(--f2); font-weight: 900; }
  .nh-prel a { display: flex; align-items: center; gap: 12px; padding: 6px 0; }
  .nh-prel img { flex: none; width: 54px; height: 72px; border-radius: 2px; object-fit: cover; background: var(--bg2); box-shadow: 0 0 0 1px var(--frame); }
  .nh-prel a > span { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
  .nh-prel b { font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; transition: color .15s; }
  .nh-prel small { font-size: var(--f1); color: var(--ink2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  @media (hover: hover) { .nh-prel a:hover b { color: var(--tone); } }
  .nh-pbar { grid-area: bar; flex-wrap: nowrap; align-items: center; gap: 24px; padding-top: 18px; }
  .nh-pbar__h { font-size: var(--f4); line-height: 1.25; }
  .nh-pbar__acts { flex: none; margin-top: 0; }
  .nh-ibtn.is-light { display: inline-flex; }
}

/* ---------- 宽屏 ≥1280 ---------- */
@media (min-width: 1280px) {
  .nh-slide { flex-basis: calc((100% - 24px) / 3); }
  .nh-ch { grid-template-columns: 64px minmax(0, 1fr) 296px; column-gap: 28px; }
  .nh-ch__row { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .nh-bdh { grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 36px; }
  .nh-bdh__r + .nh-bdh__r + .nh-bdh__r { display: grid; }
  .nh-bd { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: repeat(var(--r3), auto); column-gap: 36px; }
  .nh-lib { column-gap: 28px; }
  .nh-dt { column-gap: 28px; }
  .nh-dt__card { grid-template-columns: 228px minmax(0, 1fr); }
  .nh-dl { grid-template-columns: minmax(0, 1fr) 296px; column-gap: 28px; }
  .nh-dl .nh-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 24px 14px; }
  .nh-stage__in { grid-template-columns: minmax(0, 1fr) 360px; }
}

/* ---------- 减少动态效果：停掉动画和平滑滚动（自动轮播在 main.js 里停） ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
