/* 本季时刻表：无封面 / 封面加载失败的占位（由 schedule.js 引入，首页与子页通用）
   尺寸沿用 site.css 中 .sch-cover-fallback 的 42×60（子页 48×68），不产生位移 */
.sch-cover-fallback.sch-ph {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  overflow: hidden;
  background:
    repeating-linear-gradient(135deg, rgba(15,118,110,.07) 0 4px, transparent 4px 8px),
    #e6efec;
  border: 1px solid rgba(15,118,110,.28);
  color: #0f766e;
  font-family: var(--site-serif);
  user-select: none;
}
.sch-ph-initial {
  font-size: 20px;
  font-weight: 700;
  line-height: 1;
}
.sch-ph-label {
  font-family: var(--site-sans);
  font-size: 9px;
  line-height: 1.1;
  letter-spacing: 0;
  color: #0b5a54;
  text-align: center;
  white-space: nowrap;
}
.sch-row-page .sch-ph-initial { font-size: 22px; }
.sch-row-page .sch-ph-label { font-size: 10px; }

/* 播出平台标签：细描边小型大写标签，只在数据含 platform 时由 schedule.js 插入
   文字 #4d4d4d：在白 / 斑马纹 #f0eee8 / 在追底 #e8f1ef 上均 ≥ 6.8:1 */
.sch-plat {
  display: inline-block;
  max-width: 10em;
  margin-left: 6px;
  padding: 0 4px;
  border: 1px solid rgba(18,18,18,.28);   /* 2026-10-23：描边略减淡（.38 → .28），文字色不变 */
  border-radius: var(--radius-sm, 4px);
  font: 600 12px/14px var(--site-sans);   /* UI QA：10.5px → 12px；盒高仍 16px，落在 20px 行框内 */
  font-variant-caps: all-small-caps;
  letter-spacing: .04em;
  color: #4d4d4d;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  vertical-align: top;   /* 16px 高的盒子顶对齐，落在原 20px 行框内，不增高行、不产生位移 */
  margin-top: 2px;
  font-variant-numeric: normal;
}
.sch-plat-line .sch-plat,
.sch-sub > .sch-plat:first-child { margin-left: 0; }
.sch-plat-line { margin-top: 3px; line-height: 18px; }
.sch-mine-name.has-plat { display: flex; align-items: center; min-width: 0; }
.sch-mine-nm { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sch-mine-name.has-plat .sch-plat { flex: 0 0 auto; margin-top: 0; }
.sch-mine-go:hover .sch-mine-name.has-plat { text-decoration: none; }
.sch-mine-go:hover .sch-mine-nm { text-decoration: underline; text-underline-offset: 3px; }

/* ===== 题材标签（行内）=====
   与平台标签区分：平台 = 描边小型大写；题材 = 无框灰字，「·」分隔。
   首页与 ≤640px 只显示前 2 个（读屏仍读全部「题材：…」），子页桌面显示全部。
   副信息行一律单行省略，不增加行高。 */
.sch-js .sch-sub,
.sch-js .sch-row-page > .sch-score {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
}
.sch-gts {
  margin-left: 8px;
  font: 400 12px/20px var(--site-sans);
  color: var(--site-muted);
  letter-spacing: 0;
}
.sch-sub > .sch-gts:first-child { margin-left: 0; }
.sch-gt { display: inline-block; }   /* 行内块：省略号截断时整项（连同它前面的「·」）一起隐去，不留悬空分隔点 */
.sch-gt + .sch-gt::before { content: "·"; content: "·" / ""; margin: 0 4px; color: var(--site-muted); }
.sch-plat-line .sch-gts { line-height: 18px; }
.sch-gt-more { margin-left: 4px; color: var(--site-muted); display: none; font-variant-numeric: tabular-nums; }
.sch-gts.is-cap .sch-gt-more.m2 { display: inline; }   /* 首页行 / 在追：只渲染 2 个 */
.sch-gt.is-hit { color: var(--site-anime); font-weight: 600; }   /* 命中当前筛选的题材，排在最前 */
@media (max-width: 640px) {
  /* 子页：最多 2 个 + 「+k」（第 1 个子元素是读屏文字，故从第 4 个子元素起隐藏） */
  .sch-row-page .sch-gt:nth-child(n+4) { display: none; }
  .sch-row-page .sch-gt-more.m2 { display: inline; }
  /* 有平台标签的行（首页与子页）：只显示 1 个题材 + 「+k」，避免平台 + 2 个题材被省略号截断、「+k」看不到 */
  .sch-plat ~ .sch-gts .sch-gt:nth-child(n+3) { display: none; }
  .sch-plat ~ .sch-gts .sch-gt-more.m2 { display: none; }
  .sch-plat ~ .sch-gts .sch-gt-more.m1 { display: inline; }
  /* 副信息行改为单行弹性布局：放不下时先压缩平台名（省略号），评分、冷门、题材与「+k」保持完整 */
  .sch-js .sch-sub,
  .sch-js .sch-row-page > .sch-score,
  .sch-js .sch-row-page .sch-plat-line { display: flex; align-items: flex-start; }
  .sch-js .sch-sub > *,
  .sch-js .sch-row-page > .sch-score > *,
  .sch-js .sch-row-page .sch-plat-line > * { flex: 0 0 auto; }
  .sch-js .sch-sub > .sch-plat,
  .sch-js .sch-row-page > .sch-score > .sch-plat,
  .sch-js .sch-row-page .sch-plat-line > .sch-plat { flex: 0 1 auto; min-width: 2.5em; }
  /* 「我在追」：标题优先，手机上不显示题材（读屏文字也一并隐藏，标题本身已可读） */
  .sch-mine .sch-gts { display: none; }
}
/* 「我在追」标题放不下时由 JS 依次加 fit-g / fit-p / fit-n：收起题材、平台、冷门 */
.sch-mine-name.fit-g .sch-gts,
.sch-mine-name.fit-p .sch-plat,
.sch-mine-name.fit-n .sch-niche { display: none; }
.sch-mine-name.has-plat .sch-gts { flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; font-weight: 400; }
.sch-mine-name.has-plat .sch-plat + .sch-gts { margin-left: 6px; }

/* ===== 题材筛选栏 =====
   固定 44px 高（JS 先用内联样式占位），横向滚动 + 两端渐隐提示，右侧为计数与「清除」。 */
.sch-filter {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  font-family: var(--site-sans);
  border-bottom: 1px solid var(--site-line);
}
.sch-filter-l {
  flex: 0 0 auto;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .08em;
  color: var(--site-muted);
}
.sch-filter-scroll {
  flex: 1 1 auto;
  min-width: 0;
  height: 44px;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: none;
  overscroll-behavior-x: contain;
  scroll-padding: 0 32px;   /* = 渐隐宽 28px + 4px：键盘聚焦的标签用 scrollIntoView 滚到渐隐之外 */
  scroll-padding-inline: 32px;
}
.sch-filter-scroll::-webkit-scrollbar { display: none; }
.sch-filter.fade-r .sch-filter-scroll { -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - 28px), transparent); mask-image: linear-gradient(90deg, #000 calc(100% - 28px), transparent); }
.sch-filter.fade-l .sch-filter-scroll { -webkit-mask-image: linear-gradient(90deg, transparent, #000 28px); mask-image: linear-gradient(90deg, transparent, #000 28px); }
.sch-filter.fade-l.fade-r .sch-filter-scroll { -webkit-mask-image: linear-gradient(90deg, transparent, #000 28px, #000 calc(100% - 28px), transparent); mask-image: linear-gradient(90deg, transparent, #000 28px, #000 calc(100% - 28px), transparent); }
.sch-filter-track { display: flex; align-items: center; gap: 8px; height: 44px; width: max-content; }
.sch-filter-chips { display: flex; align-items: center; gap: 0; height: 44px; width: max-content; }
.sch-fchip {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 3px;
  height: 44px;                 /* 触控区 44px，视觉胶囊由 ::before 画 28px 高 */
  padding: 0 10px;
  border: 0;
  background: transparent;
  color: var(--site-ink);
  font: 500 13px/1 var(--site-sans);
  white-space: nowrap;
  cursor: pointer;
}
.sch-fchip::before {
  content: "";
  position: absolute;
  left: 3px; right: 3px; top: 8px; bottom: 8px;
  border: 1px solid rgba(18,18,18,.22);
  border-radius: var(--radius-sm, 4px);   /* 2026-10-23：胶囊 → 小圆角（不用 App 式大圆角） */
  background: transparent;
  z-index: -1;
}
.sch-filter-chips { position: relative; z-index: 0; }
.sch-fchip-n { font-size: 11px; color: var(--site-muted); font-variant-numeric: tabular-nums; }
.sch-fchip:hover::before { border-color: var(--site-anime); }
.sch-fchip[aria-pressed="true"] { color: #fff; }
.sch-fchip[aria-pressed="true"]::before { background: var(--site-anime); border-color: var(--site-anime); }
.sch-fchip[aria-pressed="true"] .sch-fchip-n { color: #d7efeb; }
.sch-fchip:focus-visible { outline: none; }
.sch-fchip:focus-visible::before { outline: 2px solid var(--site-anime); outline-offset: 2px; }
.sch-filter-status { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 2px; }
.sch-fcount { font-size: 12px; color: var(--site-anime); font-weight: 600; font-variant-numeric: tabular-nums; }
.sch-fcount:empty { display: none; }
.sch-fclear,
.sch-fempty-clear {
  min-height: 44px;
  min-width: 44px;
  padding: 0 6px;
  border: 0;
  background: transparent;
  color: var(--site-anime);
  font: 600 13px/1 var(--site-sans);
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}
.sch-fclear[hidden] { display: none; }
.sch-fclear:focus-visible,
.sch-fempty-clear:focus-visible { outline: 2px solid var(--site-anime); outline-offset: -2px; }
.sch-filter.is-loading .sch-filter-l { opacity: .6; }

/* 筛选生效时：星期计数变青色，0 部的星期变灰；空状态 */
.sch-js .sch-tab.is-zero .sch-tab-n,
.sch-daynav a.is-zero .sch-tab-n { color: #6f6f6f; }
.sch-js .is-active ~ .sch-switch .sch-tab-n,
.sch-js .sch-filter.is-active ~ .sch-daynav .sch-tab-n { color: var(--site-anime); font-weight: 600; }
.sch-js .sch-filter.is-active ~ .sch-daynav a.is-zero .sch-tab-n,
.sch-js .is-active ~ .sch-switch .sch-tab.is-zero .sch-tab-n { color: #6f6f6f; font-weight: 500; }
.sch-count-all { color: var(--site-muted); font-weight: 400; }
.sch-fempty {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0 6px;
  margin: 8px 0;
  font-size: 14px;
  color: var(--site-muted);
}
.sch-fempty ~ .sch-now { display: none; }
.sch-row.is-forced { outline: 1px dashed var(--site-anime); outline-offset: -1px; }

/* 子页：无 JS 首帧预留（我在追 + 筛选栏 + 星期导航），JS 插入后不位移 */
.anime-sched-page:not(.sch-js) .anime-sched-hero { margin-bottom: 164.5px; }   /* = JS 态 hero 底到首个星期的实测距离（与 .sch-week 外边距折叠） */

/* ===== 「冷门」标记（id niche）=====
   与平台（描边小型大写）、题材（无框灰字）区分：青色浅底实心小标，无描边。
   文字 #0b5a54 于 rgba(15,118,110,.12) 叠在白/斑马纹/在追底上 ≥ 6.5:1。盒高 16px，不增行高。 */
.sch-niche {
  display: inline-block;
  margin-left: 6px;
  margin-top: 2px;
  padding: 0 5px;
  border-radius: var(--radius-sm, 4px);
  background: rgba(15,118,110,.12);
  color: #0b5a54;
  font: 600 12px/16px var(--site-sans);
  vertical-align: top;
  white-space: nowrap;
}
.sch-sub > .sch-niche:first-child,
.sch-plat-line > .sch-niche:first-child { margin-left: 0; }
.sch-mine-name.has-plat .sch-niche { flex: 0 0 auto; margin-top: 0; }
.sch-niche + .sch-plat { margin-left: 4px; }
/* 筛选栏里的冷门开关：独立在题材标签左侧，用竖线隔开 */
.sch-fniche { flex: 0 0 auto; margin-right: 2px; }
.sch-fniche[hidden] { display: none; }
.sch-fniche::before { border-style: dashed; border-color: rgba(15,118,110,.6); }
.sch-fniche:not([hidden]) + .sch-filter-l { padding-left: 10px; border-left: 1px solid var(--site-line-strong); }
.sch-fniche { isolation: isolate; }
/* ≤640px：「题材」字样只留给读屏（筛选组仍以它命名），竖线改画在题材标签区左侧，题材标签多出约 40px */
@media (max-width: 640px) {
  .sch-filter-l {
    position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; border: 0;
    overflow: hidden; clip-path: inset(50%); white-space: nowrap;
  }
  .sch-fniche:not([hidden]) ~ .sch-filter-chips { padding-left: 4px; border-left: 1px solid var(--site-line-strong); height: 28px; }
}
