/* ═══════ 视频课件（第22应用）═══════ */
/* 页头沿用全工具统一 .tool-hero，此处仅覆写专属配色（玫红→深红，呼应视频课件） */
.tool-hero.is-course {
  --tool-hero: linear-gradient(118deg, #be123c 0%, #e11d48 48%, #f43f5e 100%);
  --tool-shadow: rgba(225, 29, 72, .26);
}

/* 登录 / VIP 引导条 */
.cv-guide {
  margin: 0 16px 6px;
  padding: 9px 12px;
  border-radius: 12px;
  background: #fff7f8;
  border: 1px solid #ffe1e6;
  color: #a1505f;
  font-size: 12px;
  line-height: 1.55;
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.cv-guide b { color: #be123c; font-weight: 600; }
.cv-guide a { color: #be123c; font-weight: 600; text-decoration: underline; }

/* 分类 chips */
.cv-chips { display: flex; gap: 8px; overflow-x: auto; padding: 6px 16px 12px; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
.cv-chips::-webkit-scrollbar { display: none; }
.cv-chip { flex: none; font-size: 12px; padding: 5px 13px; border-radius: 14px; border: 1px solid var(--bd, #e3e8f0); background: var(--card, #fff); color: #465065; cursor: pointer; white-space: nowrap; }
.cv-chip.is-on { background: var(--brand, #e11d48); border-color: var(--brand, #e11d48); color: #fff; font-weight: 600; }

/* 影视卡：手机 1 列大横卡 → 平板 2 列 → PC 3 列 */
.cv-feed { display: grid; grid-template-columns: repeat(1, 1fr); gap: 12px; padding: 4px 16px 26px; align-items: start; }
@media (min-width: 560px) { .cv-feed { grid-template-columns: repeat(2, 1fr); gap: 14px; padding: 6px 20px 30px; } }
@media (min-width: 960px) { .cv-feed { grid-template-columns: repeat(3, 1fr); gap: 16px; max-width: 1180px; margin-left: auto; margin-right: auto; } }
.cv-card { position: relative; width: 100%; border-radius: 16px; overflow: hidden; border: none; padding: 0; cursor: pointer; box-shadow: 0 6px 20px rgba(30, 20, 60, .12); background: #101722; display: block; text-align: left; }
.cv-card.is-cur { outline: 2px solid var(--brand, #e11d48); outline-offset: 2px; }
.cv-cover { position: relative; display: block; width: 100%; aspect-ratio: 16/9; background: linear-gradient(135deg, #241726, #4a1330); overflow: hidden; }
.cv-cover::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,12,20,.05) 30%, rgba(10,12,20,.5) 100%); }
.cv-play { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 52px; height: 52px; border-radius: 50%; background: rgba(255,255,255,.92); color: #be123c; display: flex; align-items: center; justify-content: center; z-index: 2; }
.cv-play svg { width: 24px; height: 24px; margin-left: 2px; }
.cv-dur { position: absolute; right: 8px; bottom: 8px; z-index: 2; font-size: 11px; color: #fff; background: rgba(0,0,0,.55); padding: 2px 7px; border-radius: 8px; font-variant-numeric: tabular-nums; }
.cv-info { padding: 10px 12px 12px; background: var(--card, #fff); display: flex; flex-direction: column; gap: 3px; }
.cv-title { font-size: 14px; font-weight: 600; color: #18202f; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; white-space: normal; }
.cv-meta { font-size: 11px; color: var(--mut, #8a94a6); display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.cv-cat { font-style: normal; background: #f2f4f8; color: #6b7688; padding: 1px 7px; border-radius: 8px; }
.cv-empty { grid-column: 1 / -1; width: 100%; padding: 60px 20px; text-align: center; color: var(--mut, #8a94a6); font-size: 13px; line-height: 1.8; }
.cv-empty-ic { font-size: 30px; opacity: .5; margin-bottom: 6px; }
.cv-empty-sub { margin: 0; color: #9aa3b3; }

/* 全屏播放器 */
.cv-player-mask { position: fixed; inset: 0; z-index: 62; background: rgba(6, 8, 14, .94); display: none; flex-direction: column; }
.cv-player-mask.is-on { display: flex; }
.cv-player { display: flex; flex-direction: column; height: 100%; }
.cv-player-hd { display: flex; align-items: center; gap: 10px; padding: 12px 14px 10px; color: #fff; }
.cv-player-title { flex: 1; min-width: 0; font-size: 14px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cv-close { flex: none; width: 32px; height: 32px; border-radius: 50%; border: 1px solid rgba(255,255,255,.25); background: rgba(255,255,255,.08); color: #fff; font-size: 20px; line-height: 1; cursor: pointer; }
.cv-player-body { flex: 1; overflow: hidden; display: flex; align-items: center; justify-content: center; background: #000; }
.cv-video { width: 100%; height: 100%; max-height: 100%; object-fit: contain; background: #000; }
.cv-player-ft { padding: 12px 16px calc(16px + env(safe-area-inset-bottom)); display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
.cv-dl { display: inline-flex; align-items: center; gap: 8px; padding: 11px 26px; border-radius: 24px; border: none; background: var(--brand, #e11d48); color: #fff; font-size: 14px; font-weight: 600; cursor: pointer; }
.cv-dl svg { width: 17px; height: 17px; }
.cv-dl.is-lock { background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.25); }
.cv-dl:active { transform: scale(.97); }
