/* 浪妹视频 Vue SPA 补充样式  v20260630d */

/* ── 整站限宽480px，所有媒体查询失效 ── */
#lm-app {
  width: 100vw !important;      /* 明确绑定视口宽，防止 flex+margin:auto 撑至480px */
  max-width: 480px !important;
  margin: 0 auto !important;
  overflow-x: clip !important;  /* clip 不创建滚动容器，不破坏 position:sticky */
}

/* Vue SPA header有两行(~90px)，覆盖base CSS的height:69px和body padding-top:69px */
header { height: auto !important; }
body   { padding-top: 92px !important; }

/* header 限宽居中，强制实色背景（原始是渐变→透明，内容会穿透） */
header {
  max-width: 480px !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  width: 100% !important;
  background: #191919 !important;
  z-index: 200 !important;
}

/* .row 强制手机padding，不随viewport缩放 */
#lm-app .row,
#lm-app header .row {
  padding: 0 12px !important;
  max-width: 100% !important;
}

/* header-hide: 条件隐藏（播放页/非播放页切换用） */
.header-hide { display: none !important; }

/* header 第一行：头像 + 搜索 + 图标 */
.lm-header-row1 {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px 6px;
}
.lm-sitename {
  flex-shrink: 0;
  font-size: 18px;
  font-weight: 800;
  color: #fff;
  letter-spacing: 0.5px;
  white-space: nowrap;
}
.lm-sitename em {
  color: #f97316;
  font-style: normal;
}
.lm-search-form {
  flex: 1;
  display: flex;
  align-items: center;
  background: rgba(255,255,255,.08);
  border-radius: 20px;
  padding: 0 6px 0 12px;
  height: 34px;
  min-width: 0;
}
.lm-search-input {
  flex: 1;
  background: none;
  border: none;
  outline: none;
  color: #fff;
  font-size: 13px;
  min-width: 0;
}
.lm-search-input::placeholder { color: rgba(255,255,255,.45); }
.lm-search-btn {
  background: none;
  border: none;
  color: rgba(255,255,255,.7);
  cursor: pointer;
  padding: 4px;
  display: flex;
  align-items: center;
  flex-shrink: 0;
}
.lm-header-icons {
  display: flex;
  align-items: center;
  gap: 4px;
  flex-shrink: 0;
}
.lm-hicon {
  color: rgba(255,255,255,.7);
  font-size: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  text-decoration: none;
}
.lm-hicon:hover { color: #f97316; }

/* 分类标签下划线样式 */
.lm-tab {
  color: rgba(255,255,255,.6);
  font-size: 16px;
  font-weight: 500;
  white-space: nowrap;
  text-decoration: none;
  padding: 4px 12px 6px;
  border-bottom: 2px solid transparent;
  transition: color .15s, border-color .15s;
  flex-shrink: 0;
}
.lm-tab.active {
  color: #f97316;
  font-weight: 700;
  border-bottom-color: #f97316;
}
.lm-tab:hover { color: #fff; }

/* 修复 .card-img position（原始值 sticky 会破坏绝对定位子元素）；
   display:block 是给广告卡片用的——广告card-img有链接时用<a>标签，<a>默认display:inline会导致
   width:100%/padding-top百分比全部塌陷成0，里面的图片跟着变成0×0不可见（VodCard一直用<div>没这问题） */
#lm-app .card-img {
  position: relative !important;
  display: block !important;
}

/* 卡片基础样式（所有页通用） */
#lm-app .myui-vodbox-content {
  padding: 0 !important;
  height: auto !important;
}
#lm-app .myui-vodbox-content .content-card {
  position: relative !important;
  inset: auto !important;
  width: 100% !important;
  height: auto !important;
}
#lm-app .myui-vodbox-content .content-card .card-img {
  padding-top: 56.25% !important;
  position: relative !important;
}

/* ① 首页「最新更新」：竖图（3:4），仅此区块 */
#lm-app .lm-home-latest .myui-vodbox-content .content-card .card-img {
  padding-top: 133% !important;
}
.lm-home-latest .myui-vodlist__thumb {
  position: absolute !important;
  inset: 0 !important;
}

/* ① 首页「最新更新」：横向滑动（仅此区块保留） */
.lm-home-latest .myui-vodbox-item .content {
  overflow-x: auto !important;
  overflow-y: visible !important;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.lm-home-latest .myui-vodbox-item .content::-webkit-scrollbar { display: none; }
.lm-home-latest .myui-vodbox-item .content .card-box {
  flex-wrap: nowrap !important;
}
.lm-home-latest .myui-vodbox-content {
  min-width: 120px !important;
  width: 120px !important;
  flex-shrink: 0 !important;
  margin: 0 5px 4px !important;
}

/* ② 首页各分类区块：第一张全宽 + 其余2列，不横滑 */
.lm-section-grid .myui-vodbox-item .content {
  overflow-x: visible !important;
  overflow-y: visible !important;
}
.lm-section-grid .myui-vodbox-item .content .card-box {
  flex-wrap: wrap !important;
  display: flex !important;
}
/* 默认2列 */
.lm-section-grid .myui-vodbox-content {
  width: calc(50% - 10px) !important;
  min-width: calc(50% - 10px) !important;
  flex-shrink: 1 !important;
  margin: 0 5px 10px !important;
}
/* 第一张独占整行 */
.lm-section-grid .card-box > .myui-vodbox-content:first-child {
  width: calc(100% - 10px) !important;
  min-width: calc(100% - 10px) !important;
  margin-bottom: 8px !important;
}

/* ② 猜你喜欢：2列换行 */
.like-2col .myui-vodbox-item .content {
  overflow: visible !important;
}
.like-2col .myui-vodbox-item .content .card-box {
  flex-wrap: wrap !important;
}
.like-2col .myui-vodbox-content {
  min-width: calc(50% - 10px) !important;
  width: calc(50% - 10px) !important;
  margin: 0 5px 12px !important;
}

/* ③ 列表页/标签页/搜索页：2列换行（必须加display:flex，card-box默认无flex） */
.lm-page-list .card-box,
.lm-page-tag .card-box,
.lm-page-search .card-box {
  display: flex !important;
  flex-wrap: wrap !important;
}
.lm-page-list .myui-vodbox-content,
.lm-page-tag .myui-vodbox-content,
.lm-page-search .myui-vodbox-content {
  min-width: calc(50% - 10px) !important;
  width: calc(50% - 10px) !important;
  margin: 0 5px 12px !important;
}

/* 分类导航独占第二行 */
.lm-nav-row {
  display: flex;
  align-items: center;
  overflow-x: auto;
  padding: 0 12px 10px;
  gap: 4px;
  scrollbar-width: none;
}
.lm-nav-row::-webkit-scrollbar { display: none; }
.lm-nav-row .nav {
  display: flex;
  align-items: center;
  white-space: nowrap;
  padding: 4px 14px;
  height: 30px;
  font-size: 14px;
  font-weight: 600;
  border-radius: 6px;
  margin: 0;
}

/* 骨架屏 */
.lm-skeleton-shine {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,.06) 50%, transparent 100%);
  background-size: 200% 100%;
  animation: lm-shine 1.4s infinite;
}
.lm-skeleton-line {
  height: 12px;
  border-radius: 4px;
  background: var(--top-bg);
  position: relative;
  overflow: hidden;
}
.lm-skeleton-line::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,.06) 50%, transparent 100%);
  background-size: 200% 100%;
  animation: lm-shine 1.4s infinite;
}
@keyframes lm-shine {
  0%   { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

/* 分页 */
.page-box { margin: 20px 0; }
.pagination {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 6px;
}
.pagination .page-item {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 32px;
  height: 32px;
  padding: 0 8px;
  border-radius: 6px;
  background: var(--top-bg);
  color: var(--font-color-6);
  cursor: pointer;
  font-size: 13px;
  text-decoration: none;
  transition: background .15s;
}
.pagination .page-item:hover { background: rgba(249,115,22,.25); color: #f97316; }
.pagination .page-item.active { background: #f97316; color: #fff; cursor: default; }
.pagination .page-item.disabled { opacity: .4; cursor: default; pointer-events: none; }
.pagination .page-dots { align-self: center; color: var(--font-color-5); font-size: 13px; }

/* 广告（adv.518.fun 投放平台）：横幅加载前用固定比例骨架图占位，加载完成后图片按原图比例完整显示（不裁剪，跟188/518/yesege三站一致）；
   "广告"角标只在图片真正加载完成（onAdImgLoad 回调设置 ad._loaded）后才淡入，不再抢跑在图片前面 */
.lm-ad-banner-wrap { width: 100%; }
.lm-ad-banner {
  display: block;
  position: relative;
  width: 100%;
  margin: 6px 0 12px;
}
.lm-ad-banner-box { position: relative; width: 100%; }
.lm-ad-banner-skeleton {
  width: 100%;
  padding-top: 10%; /* 实测广告图实际是1200×120（比例10%），不是后台标注的640×150，仅作加载前占位高度参考，不裁剪真图 */
  border-radius: 8px;
  overflow: hidden;
  position: relative;
  background: var(--top-bg);
}
.lm-ad-banner-img { width: 100%; height: auto; display: block; border-radius: 8px; }
.lm-ad-banner-img--pending {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  pointer-events: none;
}
.lm-ad-badge {
  position: absolute;
  bottom: 0;
  right: 0;
  background: rgba(0,0,0,.4);
  color: rgba(255,255,255,.7);
  border: 1px solid rgba(255,255,255,.25);
  font-size: 9px;
  padding: 1px 5px;
  border-radius: 4px 0 0 0;
  line-height: 1.5;
  z-index: 2;
  transition: opacity .35s ease;
}
/* 短视频底部广告：角标改左下角（其余场景仍是右下角，不动全局 .lm-ad-badge） */
.lm-ad-badge--left { right: auto; left: 0; border-radius: 0 4px 0 0; }
/* 首页：卡片广告独占一行，插在某个随机分类区块下方 */
.lm-ad-card-row .myui-vodbox-content { width: 100% !important; min-width: 100% !important; margin: 0 !important; }

/* 滚动横幅广告（自动轮播，"我的"页历史记录上方等场景用） */
.lm-ad-carousel {
  position: relative;
  width: 100%;
  padding-top: 10%; /* 跟实测广告图1200×120的真实比例一致 */
  border-radius: 8px;
  overflow: hidden;
  margin: 0 0 14px;
  background: var(--top-bg);
}
.lm-ad-carousel-slide {
  position: absolute;
  inset: 0;
  display: block;
  opacity: 0;
  z-index: 0;
  transition: opacity .6s ease;
}
.lm-ad-carousel-slide.active { opacity: 1; z-index: 1; }
.lm-ad-carousel-slide .myui-vodlist__thumb { position: absolute; inset: 0; }
.lm-ad-carousel-slide img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.lm-ad-carousel-dots {
  position: absolute;
  bottom: 6px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 4px;
  z-index: 2;
}
.lm-ad-carousel-dot {
  width: 5px;
  height: 5px;
  border-radius: 3px;
  background: rgba(255,255,255,.4);
  transition: background .2s, width .2s;
}
.lm-ad-carousel-dot.active { background: #fff; width: 12px; }

/* 类型标签徽章 */
.lm-type-badge {
  position: absolute;
  bottom: 0;
  right: 0;
  background: rgba(99,102,241,.88);
  color: #fff;
  font-size: 10px;
  padding: 1px 5px;
  border-radius: 4px 0 0 0;
  line-height: 1.6;
  max-width: 60px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  display: inline-block;
}

/* 播放器加载遮罩 */
.lm-play-loading {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0,0,0,.6);
  z-index: 5;
}
.lm-spinner {
  width: 40px;
  height: 40px;
  border: 3px solid rgba(255,255,255,.2);
  border-top-color: #f97316;
  border-radius: 50%;
  animation: lm-spin .7s linear infinite;
}
@keyframes lm-spin { to { transform: rotate(360deg); } }

/* 每日次数上限遮罩（播放器 / 短视频通用） */
.lm-cap-mask {
  position: absolute;
  inset: 0;
  z-index: 20;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: rgba(10,10,10,.94);
  backdrop-filter: blur(2px);
  color: #fff;
}
.lm-cap-card {
  width: min(300px, 100%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  text-align: center;
  padding: 28px 22px 24px;
  border-radius: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,.07), rgba(255,255,255,.02));
  border: 1px solid rgba(255,255,255,.09);
  box-shadow: 0 10px 32px rgba(0,0,0,.4);
}
/* 播放页专用：卡片完全铺满播放器，无边距无圆角，跟播放器边界严丝合缝 */
.lm-cap-card--wide {
  width: 100%;
  padding: 30px 24px 26px;
  border-radius: 0;
  border: none;
  box-shadow: none;
  background: transparent;
}
.lm-cap-icon {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #f97316, #ec4899);
  box-shadow: 0 8px 20px rgba(249,115,22,.35);
  margin-bottom: 8px;
}
.lm-cap-title { font-size: 16px; font-weight: 700; }
.lm-cap-desc { font-size: 13px; color: rgba(255,255,255,.6); line-height: 1.6; max-width: 260px; }
.lm-cap-desc em {
  font-style: normal;
  font-weight: 800;
  color: #fff;
  background: linear-gradient(135deg, #f97316, #ec4899);
  padding: 1px 7px;
  border-radius: 6px;
  margin: 0 1px;
}
.lm-cap-btn {
  margin-top: 16px;
  padding: 11px 30px;
  display: flex;
  align-items: center;
  gap: 6px;
  background: linear-gradient(135deg, #f97316, #ec4899);
  color: #fff;
  border: none;
  border-radius: 999px;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
  box-shadow: 0 6px 18px rgba(249,115,22,.3);
  transition: transform .1s, opacity .15s;
}
.lm-cap-btn:active { transform: scale(.97); opacity: .9; }
/* 分享 + 检测分享状态 并排 */
.lm-cap-btn-row {
  margin-top: 16px;
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: center;
}
.lm-cap-btn-row .lm-cap-btn { margin-top: 0; }
.lm-cap-btn--ghost {
  background: rgba(255,255,255,.1);
  color: rgba(255,255,255,.85);
  border: 1px solid rgba(255,255,255,.25);
  box-shadow: none;
  padding: 11px 18px;
  font-weight: 600;
}
.lm-cap-btn--ghost:disabled { opacity: .5; cursor: default; }

/* 剧集按钮 */
.lm-ep-btn {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: 4px;
  font-size: 12px;
  border: 1px solid var(--top-bg);
  color: var(--font-color-6);
  cursor: pointer;
  text-decoration: none;
  background: var(--playlist-bg);
  transition: background .15s, color .15s;
}
.lm-ep-btn:hover  { background: rgba(249,115,22,.2); color: #f97316; border-color: #f97316; }
.lm-ep-btn.active { background: #f97316; color: #fff; border-color: #f97316; }

/* screen-head 排序按钮 */
.screen-head .title {
  cursor: pointer;
  color: var(--font-color-5);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  padding: 6px 12px;
  border-radius: 4px;
  font-size: 13px;
  transition: color .15s;
}
.screen-head .title.active,
.screen-head .title:hover { color: var(--font-color); }
.screen-head .title.active span { color: #fff; }

/* filter-ul：子分类换行显示（不横向滚动） */
.filter-ul {
  overflow-x: visible !important;
  flex-wrap: wrap !important;
  gap: 6px;
  padding: 4px 0;
}

/* ── 页面模式：隐藏 header，消除 body 顶部空白 ── */
body.lm-mode-cg   { padding-top: 0 !important; }
body.lm-mode-play { padding-top: 0 !important; }
body.lm-mode-my   { padding-top: 0 !important; }
body.lm-mode-cg header { display: none !important; }
body.lm-mode-cg .lm-list-fixbar { top: 0 !important; }

/* ── 播放页：固定在顶部的视频区 ── */
.lm-player-sticky {
  position: sticky;
  top: 0;
  z-index: 100;
  background: #000;
  margin: 0 -12px;
  width: calc(100% + 24px);
}

/* 剧集选集区 */
.lm-play-eps {
  padding: 10px 0 6px;
  border-bottom: 1px solid rgba(255,255,255,.06);
}

/* ── 播放页：图文详情（吃瓜图文类） ── */
.lm-article-box {
  margin-top: 16px;
  padding: 14px 12px;
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.06);
  border-radius: 10px;
}
.lm-article-box::before {
  content: '图文';
  display: inline-block;
  font-size: 12px;
  font-weight: 600;
  color: #fff;
  background: var(--theme-color, #f97316);
  padding: 2px 10px;
  border-radius: 4px;
  margin-bottom: 10px;
}
.lm-article-h {
  font-size: 16px;
  font-weight: 700;
  color: var(--theme-color, #f97316);
  margin: 14px 0 8px;
}
.lm-article-p {
  font-size: 14px;
  line-height: 1.8;
  color: var(--font-color-2, #ddd);
  margin: 0 0 10px;
}
.lm-article-img {
  display: block;
  width: 100%;
  border-radius: 8px;
  margin: 8px 0;
}

/* ── 骨架屏 ── */
.lm-play-sk-video,
.lm-sk-line,
.lm-sk-label,
.lm-sk-chip,
.lm-sk-meta,
.lm-sk-rec-title {
  background: linear-gradient(90deg,#1a1a2a 25%,#2a2a3e 50%,#1a1a2a 75%);
  background-size: 400% 100%;
  animation: mz-skeleton-shimmer 1.6s ease-in-out infinite;
}
.lm-play-sk-video {
  width: calc(100% + 24px);
  margin: 0 -12px;
  padding-top: 56.25%;
}
.lm-play-sk-body { padding: 16px 0 0; }
.lm-sk-line {
  height: 14px;
  border-radius: 4px;
  margin-bottom: 10px;
}
.lm-sk-title { height: 20px; }
.lm-sk-title + .lm-sk-title { margin-bottom: 16px; }
.lm-sk-text  { height: 12px; }
.lm-sk-tagrow { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; flex-wrap: wrap; }
.lm-sk-label { width: 28px; height: 11px; border-radius: 3px; flex-shrink: 0; }
.lm-sk-chip  { height: 20px; border-radius: 20px; }
.lm-sk-metarow { display: flex; gap: 12px; margin: 4px 0 16px; }
.lm-sk-meta  { width: 48px; height: 12px; border-radius: 4px; }
.lm-sk-rec { margin-top: 20px; }
.lm-sk-rec-title { width: 72px; height: 15px; border-radius: 4px; margin-bottom: 12px; }

/* 播放页悬浮返回按钮（叠在视频左上角） */
.lm-play-back {
  position: absolute;
  top: 10px;
  left: 10px;
  z-index: 30;
  width: 36px;
  height: 36px;
  background: rgba(0,0,0,.45);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255,255,255,.9);
  cursor: pointer;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  transition: background .15s;
}
.lm-play-back:active { background: rgba(0,0,0,.75); }

/* ── 分类页固定栏（子类 + 排序）position:fixed，不受父元素 overflow 影响 ── */
.lm-list-fixbar {
  position: fixed;
  top: 82px;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  max-width: 480px;
  z-index: 90;
  background: #191919;
  box-shadow: 0 2px 10px rgba(0,0,0,.5);
  box-sizing: border-box;
  padding: 6px 12px 0;
}

/* fixbar 内子类：完整换行显示，不横向滚动 */
.lm-list-fixbar .filter-ul {
  display: flex !important;
  flex-wrap: wrap !important;
  overflow: visible !important;
  gap: 6px !important;
  padding: 4px 0 6px !important;
}
/* 子类按钮：固定一行4个、大小一致铺满，不再按文字长度自适应宽度 */
.lm-list-fixbar .filter-li {
  flex: 0 0 calc((100% - 18px) / 4) !important;
  width: calc((100% - 18px) / 4) !important;
  box-sizing: border-box !important;
  text-align: center !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}
.lm-list-fixbar .screen-box {
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
  border: none !important;
}

/* 排序按钮行：下划线 tab 风格 */
.lm-sort-row {
  display: flex;
  border-top: 1px solid rgba(255,255,255,.07);
  margin-top: 2px;
}
.lm-sort-btn {
  flex: 1;
  text-align: center;
  font-size: 13px;
  padding: 7px 4px 6px;
  color: rgba(255,255,255,.45);
  cursor: pointer;
  text-decoration: none;
  border-bottom: 2px solid transparent;
  transition: color .15s, border-color .15s;
  white-space: nowrap;
}
.lm-sort-btn.active {
  color: #f97316;
  font-weight: 600;
  border-bottom-color: #f97316;
}
.lm-sort-btn:hover { color: rgba(255,255,255,.75); }

/* 视频网格：2列 */
.lm-list-grid {
  display: flex !important;
  flex-wrap: wrap !important;
}
.lm-list-grid .myui-vodbox-content {
  min-width: calc(50% - 10px) !important;
  width: calc(50% - 10px) !important;
  margin: 0 5px 12px !important;
}
/* 骨架图内层 card-box 补 flex，否则骨架卡片不是2列 */
.lm-list-grid .card-box {
  display: flex !important;
  flex-wrap: wrap !important;
  width: 100% !important;
}
.lm-list-grid .card-box .myui-vodbox-content {
  min-width: calc(50% - 10px) !important;
  width: calc(50% - 10px) !important;
  margin: 0 5px 12px !important;
}

/* 标签页/搜索页间距 */
.lm-page-tag .card-box,
.lm-page-search .card-box {
  margin-top: 8px;
}

/* ── 首页区块：去掉 box，简洁分隔线风格 ── */
.lm-page-home .item {
  margin-bottom: 0;
  padding-bottom: 18px;
  border-bottom: 1px solid rgba(255,255,255,.06);
}
.lm-page-home .item:last-child { border-bottom: none; }

.lm-page-home .myui-vodbox {
  background: transparent !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding-bottom: 0 !important;
  overflow: visible !important;
}

/* 区块标题：橙色竖线左侧 */
.lm-page-home .myui-vodbox .top {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 14px 0 10px !important;
  margin-bottom: 0 !important;
}
.lm-page-home .myui-vodbox .top .left {
  display: flex;
  align-items: center;
  gap: 8px;
}
.lm-page-home .myui-vodbox .top .left .title {
  font-size: 16px !important;
  font-weight: 700 !important;
  color: #fff !important;
  line-height: 1 !important;
  padding-left: 10px !important;
  position: relative !important;
}
.lm-page-home .myui-vodbox .top .left .title::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 3px;
  height: 15px;
  background: #f97316;
  border-radius: 2px;
}

/* 卡片行：去负边距 */
.lm-page-home .myui-vodbox-item {
  margin: 0 !important;
}
/* 首页卡片标题：更小字体节省垂直空间 */
#lm-app .lm-page-home .myui-vodbox-content .content-card .card-info .title {
  font-size: 12px !important;
  margin-top: 4px !important;
  margin-bottom: 3px !important;
  line-height: 1.3 !important;
  max-height: 2.6em !important;
  white-space: normal !important;
  text-overflow: clip !important;
}

/* 首页SEO H1：占用最小空间 */
.lm-page-home .home-seo-h1 {
  font-size: 10px !important;
  margin: 3px 0 !important;
}


/* ── 卡片标题最多2行（覆盖 mizhiady white-space:nowrap） ── */
#lm-app .card-info .title {
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
  line-height: 1.45 !important;
  max-height: 2.9em !important;
  word-break: break-all !important;
  white-space: normal !important;
  text-overflow: clip !important;
}

/* ── 底部导航栏 ── */
.lm-bottom-nav {
  position: fixed;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  max-width: 480px;
  height: 54px;
  background: var(--top-bg, #1e1e1e);
  border-top: 1px solid rgba(255,255,255,.08);
  display: flex;
  align-items: stretch;
  z-index: 1000;
  box-shadow: 0 -2px 12px rgba(0,0,0,.3);
}
.lm-bottom-nav .bn-item {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  text-decoration: none;
  color: rgba(255,255,255,.45);
  font-size: 10px;
  cursor: pointer;
  transition: color .15s;
}
.lm-bottom-nav .bn-item.router-link-exact-active,
.lm-bottom-nav .bn-item.bn-active { color: #f97316; }
.lm-bottom-nav .bn-icon {
  font-size: 21px;
  line-height: 1;
}

/* main 留底部导航空间 */
#lm-app main { padding-bottom: 60px; }

/* ── 短视频（Swiper 垂直全屏）── */
.lm-short-wrap {
  position: fixed;
  top: 0;
  bottom: 0;         /* 视频延伸到底部，导航栏半透明浮在上方 */
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  max-width: 480px;
  min-width: 0;      /* 防止某些浏览器撑宽 */
  z-index: 200;
  background: #000;
  overflow: hidden;
}
/* Swiper 覆盖：垂直全屏 */
.lm-short-wrap .swiper,
.lm-short-wrap .swiper-wrapper,
.lm-short-wrap .swiper-slide {
  width: 100% !important;
  height: 100% !important;
}
.lm-short-slide {
  width: 100%;
  height: 100%;
  scroll-snap-align: start;
  scroll-snap-stop: always;
  position: relative;
  overflow: hidden;
  background: #111;
}
/* 点击透明层（切换静音） */
.lm-short-tap {
  position: absolute;
  inset: 0;
  z-index: 1;
}
/* 底部渐变遮罩 */
.lm-short-overlay {
  position: absolute;
  inset: 0;
  z-index: 2;
  background: linear-gradient(to top, rgba(0,0,0,.75) 0%, rgba(0,0,0,.2) 35%, transparent 60%);
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  padding: 0 14px 72px;  /* 54px导航 + 18px间距 */
  pointer-events: none;
}
.lm-short-overlay > * { pointer-events: auto; }
.lm-short-info {
  flex: 1;
  min-width: 0;
  padding-right: 12px;
}
.lm-short-name {
  color: #fff;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.45;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin-bottom: 6px;
  text-shadow: 0 1px 3px rgba(0,0,0,.5);
}
.lm-short-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-bottom: 4px;
}
.lm-short-tag {
  background: rgba(255,255,255,.18);
  backdrop-filter: blur(4px);
  color: rgba(255,255,255,.9);
  font-size: 11px;
  padding: 2px 8px;
  border-radius: 10px;
}
.lm-short-meta {
  color: rgba(255,255,255,.55);
  font-size: 11px;
  margin-top: 4px;
}
.lm-short-actions {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 18px;
  padding-bottom: 4px;
}
.lm-short-action {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  cursor: pointer;
  color: rgba(255,255,255,.85);
  font-size: 10px;
  text-shadow: 0 1px 3px rgba(0,0,0,.5);
}

/* 短视频：暂停时中间的播放图标 */
.lm-short-pause-icon {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background: rgba(0,0,0,.35);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
  pointer-events: none;
}

/* 短视频：快进/快退15秒（浅色半透明，不抢戏） */
.lm-short-skip {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  gap: 3px;
  padding: 8px 10px;
  border-radius: 20px;
  background: rgba(0,0,0,.32);
  backdrop-filter: blur(4px);
  border: 1px solid rgba(255,255,255,.25);
  box-shadow: 0 1px 4px rgba(0,0,0,.25);
  color: rgba(255,255,255,.9);
  font-size: 11px;
  z-index: 2;
}
.lm-short-skip--back    { left: 18px; }
.lm-short-skip--forward { right: 18px; }

/* 短视频：底部随机广告横幅（图片铺满整行，"广告"角标在图片左下角，关闭按钮在图片右上角、
   留出边距+大点击区域，避开屏幕物理边缘的手势区，解决之前点不中的问题） */
.lm-short-ad {
  position: absolute;
  left: 10px;
  right: 10px;
  bottom: 56px;
  z-index: 3;
}
.lm-short-ad-link {
  position: relative;
  display: block;
  width: 100%;
  line-height: 0;
  border-radius: 6px;
  overflow: hidden;
}
.lm-short-ad-img { width: 100%; height: auto; display: block; }
.lm-short-ad-close {
  position: absolute;
  top: 4px;
  right: 4px;
  z-index: 4;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  border: none;
  background: rgba(0,0,0,.55);
  color: rgba(255,255,255,.9);
  font-size: 13px;
  line-height: 1;
  cursor: pointer;
  pointer-events: auto;
}

/* 短视频：进度条 */
.lm-short-progress {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 54px;
  height: 2px;
  background: rgba(255,255,255,.2);
  z-index: 3;
}
.lm-short-progress-fill {
  height: 100%;
  background: rgba(255,255,255,.85);
  transition: width .1s linear;
}

/* ── 我的页面 ───────────────────────────────────────────────────────────── */
.lm-page-my {
  padding-bottom: 24px;
  min-height: calc(100vh - 54px);
}

/* 顶部固定区（头像/统计/分享卡片），不随下面的最近观看列表滚动
   注意：「我的」页面header是整个隐藏的(header-hide)，这里没有可见导航栏要避让，top必须是0，
   不能照抄列表页fixbar的top:82px（那是给"下方有可见header"场景用的），否则0-82px这段会露空 */
.lm-my-fixbar {
  position: fixed;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  max-width: 480px;
  z-index: 90;
  background: #191919;
  padding-top: max(env(safe-area-inset-top), 0px);
}

/* 用户信息头部 */
.lm-my-hero {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 22px 16px 26px;
  background: linear-gradient(135deg, rgba(249,115,22,.18) 0%, rgba(99,102,241,.12) 100%);
  margin-bottom: 16px;
}
.lm-my-avatar {
  width: 66px;
  height: 66px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 28px;
  font-weight: 800;
  color: #fff;
  flex-shrink: 0;
  box-shadow: 0 4px 18px rgba(0,0,0,.35);
  text-transform: uppercase;
}
.lm-my-userinfo { flex: 1; min-width: 0; }
.lm-my-uname {
  font-size: 18px;
  font-weight: 700;
  color: #fff;
  margin-bottom: 8px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.lm-my-tag {
  display: inline-block;
  font-size: 11px;
  padding: 2px 10px;
  border-radius: 20px;
}
.lm-my-tag--guest {
  background: rgba(255,255,255,.1);
  color: rgba(255,255,255,.55);
  border: 1px solid rgba(255,255,255,.15);
}
.lm-my-tag--vip {
  background: rgba(249,115,22,.2);
  color: #f97316;
  border: 1px solid rgba(249,115,22,.3);
}

/* 统计卡片 */
.lm-my-stats {
  display: flex;
  gap: 10px;
  padding: 0 12px;
  margin-bottom: 16px;
}
.lm-stat-card {
  flex: 1;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 14px;
  padding: 14px 14px 12px;
}
.lm-stat-num {
  font-size: 30px;
  font-weight: 800;
  color: #fff;
  line-height: 1;
  margin: 8px 0 3px;
}
.lm-stat-num em {
  font-size: 13px;
  font-weight: 400;
  color: rgba(255,255,255,.35);
  font-style: normal;
}
.lm-stat-label {
  font-size: 11px;
  color: rgba(255,255,255,.4);
  margin-bottom: 10px;
}
.lm-stat-bar {
  height: 3px;
  background: rgba(255,255,255,.1);
  border-radius: 2px;
  overflow: hidden;
}
.lm-stat-fill {
  height: 100%;
  background: #f97316;
  border-radius: 2px;
  transition: width .5s ease;
  min-width: 3px;
}
.lm-stat-fill--pink { background: #ec4899; }

/* 账号操作按钮 */
.lm-my-actions {
  padding: 0 12px;
  margin-bottom: 20px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.lm-my-btn {
  width: 100%;
  height: 46px;
  border-radius: 12px;
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  transition: opacity .15s, transform .1s;
}
.lm-my-btn:active { opacity: .75; transform: scale(.98); }
.lm-my-btn--primary { background: #f97316; color: #fff; }
.lm-my-btn--ghost {
  background: rgba(255,255,255,.07);
  color: rgba(255,255,255,.65);
  border: 1px solid rgba(255,255,255,.1);
}
.lm-share-banner {
  margin: -8px 12px 20px;
  padding: 14px;
  display: flex;
  align-items: center;
  gap: 12px;
  border-radius: 14px;
  background: linear-gradient(135deg, #f97316, #ec4899);
  box-shadow: 0 6px 16px rgba(249,115,22,.28);
  cursor: pointer;
  transition: transform .1s, opacity .15s;
}
.lm-share-banner:active { transform: scale(.98); opacity: .92; }
.lm-share-banner-icon {
  flex: none;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: rgba(255,255,255,.2);
  display: flex;
  align-items: center;
  justify-content: center;
}
.lm-share-banner-text { flex: 1; min-width: 0; }
.lm-share-banner-title {
  font-size: 14px;
  font-weight: 700;
  color: #fff;
  margin-bottom: 3px;
}
.lm-share-banner-desc {
  font-size: 12px;
  line-height: 1.5;
  color: rgba(255,255,255,.9);
}
.lm-share-banner-desc em {
  font-style: normal;
  font-weight: 800;
  color: #fff;
  background: rgba(255,255,255,.25);
  padding: 1px 6px;
  border-radius: 6px;
}
.lm-share-banner-arrow { flex: none; color: rgba(255,255,255,.8); }

/* 历史区块 */
.lm-my-section { padding: 0 12px; }
.lm-my-sec-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 4px 12px 12px;
}
.lm-my-sec-title {
  font-size: 15px;
  font-weight: 700;
  color: #fff;
  padding-left: 10px;
  position: relative;
}
.lm-my-sec-title::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 3px;
  height: 14px;
  background: #f97316;
  border-radius: 2px;
}
.lm-my-clear-btn {
  font-size: 12px;
  color: rgba(255,255,255,.3);
  text-decoration: none;
}
.lm-my-clear-btn:hover { color: #f97316; }
.lm-my-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 44px 0;
  color: rgba(255,255,255,.2);
  font-size: 13px;
  gap: 12px;
}

/* 历史列表 */
.lm-hist-list { display: flex; flex-direction: column; }
.lm-hist-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid rgba(255,255,255,.06);
  cursor: pointer;
  transition: opacity .15s;
}
.lm-hist-item:active { opacity: .7; }
.lm-hist-item:last-child { border-bottom: none; }
.lm-hist-thumb {
  width: 92px;
  height: 58px;
  border-radius: 7px;
  overflow: hidden;
  flex-shrink: 0;
  background: rgba(255,255,255,.06);
}
.lm-hist-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.lm-hist-info { flex: 1; min-width: 0; }
.lm-hist-name {
  font-size: 13px;
  color: #fff;
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin-bottom: 5px;
}
.lm-hist-meta { display: flex; align-items: center; gap: 6px; }
.lm-hist-type {
  font-size: 10px;
  color: #f97316;
  background: rgba(249,115,22,.12);
  padding: 1px 5px;
  border-radius: 3px;
}
.lm-hist-time { font-size: 11px; color: rgba(255,255,255,.3); }

/* ── 弹窗系统 ─────────────────────────────────────────────────────────────── */
.lm-mask {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.65);
  z-index: 1100;
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
}
.lm-sheet {
  position: fixed;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%) translateY(100%);
  width: 100%;
  max-width: 480px;
  background: #252525;
  border-radius: 20px 20px 0 0;
  z-index: 1101;
  padding: 0 16px 40px;
  transition: transform .32s cubic-bezier(.32,.72,0,1);
  max-height: 92vh;
  overflow-y: auto;
  box-sizing: border-box;
}
.lm-sheet--open { transform: translateX(-50%) translateY(0); }
.lm-sheet-bar {
  width: 36px;
  height: 4px;
  background: rgba(255,255,255,.18);
  border-radius: 2px;
  margin: 12px auto 18px;
}
.lm-sheet-title {
  font-size: 17px;
  font-weight: 700;
  color: #fff;
  text-align: center;
  margin-bottom: 20px;
}

/* 步骤指示器 */
.lm-steps {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 20px;
}
.lm-step {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: 600;
  background: rgba(255,255,255,.08);
  color: rgba(255,255,255,.35);
  transition: all .25s;
}
.lm-step--on { background: #f97316; color: #fff; }
.lm-step-line {
  flex: 1;
  height: 1px;
  background: rgba(255,255,255,.1);
  margin: 0 8px;
  max-width: 40px;
}
.lm-step-ok {
  text-align: center;
  color: #10b981;
  font-size: 13px;
  margin-bottom: 18px;
  padding: 8px;
  background: rgba(16,185,129,.1);
  border-radius: 8px;
}

/* 表单 */
.lm-fld { margin-bottom: 14px; }
.lm-flabel {
  display: block;
  font-size: 12px;
  color: rgba(255,255,255,.45);
  margin-bottom: 6px;
}
.lm-finput {
  width: 100%;
  height: 46px;
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 10px;
  color: #fff;
  font-size: 14px;
  padding: 0 12px;
  box-sizing: border-box;
  outline: none;
  transition: border-color .15s;
  -webkit-appearance: none;
  appearance: none;
}
.lm-finput:focus { border-color: rgba(249,115,22,.6); }
.lm-finput--ro {
  display: flex;
  align-items: center;
  color: rgba(255,255,255,.55);
  background: rgba(255,255,255,.04);
  cursor: default;
  font-size: 13px;
}
.lm-finput--sel {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='rgba(255,255,255,.4)' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  padding-right: 36px;
  cursor: pointer;
}
.lm-finput--sel option { background: #252525; color: #fff; }
.lm-ferr {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 14px;
  font-weight: 600;
  color: #fff;
  text-align: left;
  line-height: 1.4;
  margin-bottom: 12px;
  padding: 11px 13px;
  background: #e11d48;
  border-radius: 8px;
  box-shadow: 0 2px 10px rgba(225,29,72,.35);
  animation: lm-ferr-shake .4s ease;
}
.lm-ferr::before {
  content: '!';
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: rgba(255,255,255,.25);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: 800;
}
@keyframes lm-ferr-shake {
  0%   { transform: translateX(0);   opacity: 0; }
  15%  { transform: translateX(-6px); opacity: 1; }
  35%  { transform: translateX(5px); }
  55%  { transform: translateX(-4px); }
  75%  { transform: translateX(3px); }
  100% { transform: translateX(0); }
}
.lm-fsubmit {
  width: 100%;
  height: 48px;
  background: #f97316;
  color: #fff;
  border: none;
  border-radius: 12px;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  margin-top: 6px;
  transition: opacity .15s, transform .1s;
  letter-spacing: 2px;
}
.lm-fsubmit:active { opacity: .8; transform: scale(.98); }
.lm-fsubmit:disabled { opacity: .6; cursor: default; }
.lm-flink {
  display: block;
  text-align: center;
  margin-top: 16px;
  font-size: 13px;
  color: rgba(255,255,255,.35);
  text-decoration: none;
}
.lm-flink:hover { color: #f97316; }

/* ── 全局轻提示 ── */
.lm-toast {
  position: fixed;
  left: 50%;
  top: 90px;
  transform: translateX(-50%);
  z-index: 9999;
  background: rgba(20,20,20,.92);
  color: #fff;
  font-size: 13px;
  padding: 10px 20px;
  border-radius: 8px;
  box-shadow: 0 4px 16px rgba(0,0,0,.3);
  max-width: 80vw;
  text-align: center;
  pointer-events: none;
}
.lm-toast-fade-enter-active, .lm-toast-fade-leave-active { transition: opacity .25s, transform .25s; }
.lm-toast-fade-enter-from, .lm-toast-fade-leave-to { opacity: 0; transform: translateX(-50%) translateY(-8px); }
