/* ============================================================
   App 专属样式层（黄河大保护客户端）
   仅当 <html> 含 .app-shell 时生效（客户端按 UA=hhdbhApp 注入）
   不影响手机版网页 / PC 端。绿色主题、卡片化、舒适间距。
   ============================================================ */
.app-shell {
  --hh: #1f8a4c;
  --hh-d: #176e3c;
  --hh-l: #e9f5ee;
  --bg: #f4f7f5;
  --card: #ffffff;
  --line: #e6efe9;
  --txt: #2b3a32;
  --sub: #7c8c83;
  --radius: 14px;
  --shadow: 0 2px 12px rgba(20,60,38,.07);
}
.app-shell body { background: var(--bg); }
.app-shell .content,
.app-shell .cont_ny { background: var(--bg); }

/* ---------- App 专属顶栏（头条风：绿底 + 搜索行 + 栏目行） ---------- */
.app-shell #chbnav_touch { display: none !important; }  /* 隐藏手机版默认顶栏与侧滑菜单 */
.app-shell .app-topbar {
  position: sticky; top: 0; z-index: 9000;
  display: flex; flex-direction: column;
  background: #176e3c;  /* 纯色，与 App 壳状态栏 statusBarColor 0xFF176E3C 完全一致 */
  box-shadow: 0 1px 4px rgba(20,60,38,.18);
  padding-top: env(safe-area-inset-top);
}
/* 第一行：logo + 搜索框 + 发布/分享 */
.app-shell .app-srow {
  display: flex; align-items: center; gap: 10px;
  height: 56px; padding: 0 12px;
}
.app-shell .app-logo2 {
  flex: 0 0 auto; display: flex; align-items: center; justify-content: center;
  width: 34px; height: 34px; box-sizing: border-box; text-decoration: none;
}
.app-shell .app-logo2 img {
  width: 34px; height: 34px; display: block; object-fit: contain; border-radius: 50%;
}
.app-shell .app-search {
  flex: 1 1 auto; min-width: 0; height: 36px;
  background: #fff; border-radius: 10px;
  display: flex; align-items: center; gap: 8px;
  padding: 0 12px;
}
.app-shell .app-search svg { width: 17px; height: 17px; color: #8b9690; flex: 0 0 auto; }
.app-shell .app-search input {
  flex: 1 1 auto; min-width: 0; border: 0; outline: 0; background: transparent;
  font-size: 15px; color: #333; height: 100%;
}
.app-shell .app-search input::placeholder { color: #9aa79f; }
.app-shell .app-search input::-webkit-search-cancel-button { display: none; }
/* ＋ 发布按钮：白底绿加号（头条同款位置，内容页为 ⋯ 分享） */
.app-shell .app-add {
  flex: 0 0 auto; width: 42px; height: 32px; border-radius: 10px;
  background: #fff; color: var(--hh-d);
  display: flex; align-items: center; justify-content: center;
  font-size: 24px; font-weight: 700; line-height: 1;
  text-decoration: none; -webkit-tap-highlight-color: transparent;
}
.app-shell .app-add .dots { color: #55605a; font-size: 20px; letter-spacing: 1px; margin-top: -6px; }
/* 头像（豆包位）：圆形，未登录灰色人形占位，登录后显示会员头像 */
.app-shell .app-avatar {
  flex: 0 0 auto; width: 34px; height: 34px; border-radius: 50%;
  overflow: hidden; display: flex; text-decoration: none;
  -webkit-tap-highlight-color: transparent;
}
.app-shell .app-avatar svg, .app-shell .app-avatar img {
  width: 100%; height: 100%; display: block; object-fit: cover;
}
/* 第二行：栏目横滑（绿底白字，比顶栏更鲜亮，形成两色层次） */
.app-shell .app-channels {
  display: flex; align-items: center; gap: 20px;
  padding: 0 12px;
  background: #1f9d54;  /* 比顶栏 #176e3c 更鲜亮，区别于上方颜色 */
  overflow-x: auto; -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.app-shell .app-channels::-webkit-scrollbar { display: none; }
.app-shell .app-channels a {
  flex: 0 0 auto; white-space: nowrap;
  font-size: 15px; color: rgba(255,255,255,.78); text-decoration: none;
  padding: 10px 0 11px; position: relative;
}
.app-shell .app-channels a.active { color: #fff; font-size: 17px; font-weight: 800; }
.app-shell .app-channels a.active::after {
  content: ''; position: absolute; left: 50%; transform: translateX(-50%);
  bottom: 5px; width: 18px; height: 3px; border-radius: 3px; background: #fff;
}

/* ---------- 隐藏网页专属元素（App 内不需要） ---------- */
.app-shell .gsgg,
.app-shell .newscontl,
.app-shell .hh-actside,
.app-shell .hh-sideshare,
.app-shell .contentd,
.app-shell .contentd_touch,
.app-shell .scene-bar.sb-app,
.app-shell .contentb,
.app-shell .contentcls { display: none !important; }

/* ---------- 内容容器卡片化 ---------- */
.app-shell .contenta,
.app-shell .contentc,
.app-shell .contentcl,
.app-shell .contentcr,
.app-shell .contente,
.app-shell .contente2l,
.app-shell .contente2r,
.app-shell .contentf,
.app-shell .contentclt,
.app-shell .contentcrt,
.app-shell .newscont {
  background: var(--card);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  margin: 10px 12px;
}
.app-shell .contenta { padding: 0; overflow: hidden; }
.app-shell .contentcl,
.app-shell .contentcr,
.app-shell .contente,
.app-shell .contente2l,
.app-shell .contente2r,
.app-shell .contentf,
.app-shell .contentclt,
.app-shell .contentcrt { padding: 14px; }
.app-shell .contentc > .contentcl,
.app-shell .contentc > .contentcr,
.app-shell .contentcl > .contentclt,
.app-shell .contente2 > .contente2l,
.app-shell .contente2 > .contente2r { margin: 0 0 12px; }
.app-shell .contentc > .contentcl:last-child,
.app-shell .contente2 > .contente2l:last-child { margin-bottom: 0; }

/* 区块标题绿色化（沿用结构） */
.app-shell .contentartls,
.app-shell .bt,
.app-shell .contentcltl .bt,
.app-shell .contentcrtb .bt,
.app-shell .newscontrtl {
  color: var(--hh-d);
  font-weight: 700;
  border-left: 4px solid var(--hh);
  padding-left: 10px;
  line-height: 1.3;
}
.app-shell .contentartrs a,
.app-shell .contentartr a,
.app-shell .contentcltl .contentartr a { color: var(--sub); font-size: 13px; }

/* ---------- 列表项 App 化 ---------- */
.app-shell .contentcltb ul li,
.app-shell .newscontrb ul li,
.app-shell .contentcrtbb ul li { border-bottom: 1px solid var(--line); }
.app-shell .contentcltb ul li:last-child,
.app-shell .newscontrb ul li:last-child,
.app-shell .contentcrtbb ul li:last-child { border-bottom: 0; }
.app-shell .contentcltb ul li a,
.app-shell .newscontrb ul li a,
.app-shell .contentcrtbb ul li a {
  display: flex;
  align-items: center;
  min-height: 52px;
  padding: 10px 4px;
  color: var(--txt);
  font-size: 16px;
  text-decoration: none;
}
.app-shell .contentcltbl,
.app-shell .newscontrbt,
.app-shell .contentcrtbbt,
.app-shell .contentcrtbbb { font-size: 17px; color: var(--txt); line-height: 1.45; }
.app-shell .contentcltbr,
.app-shell .newscontrbb,
.app-shell .contentcrtbb .contentcrtbbb { color: var(--sub); font-size: 13px; margin-left: auto; padding-left: 10px; flex: 0 0 auto; }
.app-shell .contentcltb ul li a:hover .contentcltbl,
.app-shell .newscontrb ul li a:hover .newscontrbt { color: var(--hh); padding-left: 4px; }

/* 栏目列表：右侧缩略图（左文右图，保留原链接与分页） */
.app-shell .newscontrb ul li { position: relative; }
.app-shell .newscontrb ul li.app-li-hasimg > a { padding-right: 112px; min-height: 78px; }
.app-shell .newscontrb ul li.app-li-hasimg .newscontrbt { -webkit-line-clamp: 2; display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; }
.app-shell .app-li-thumb {
  position: absolute; right: 10px; top: 50%; transform: translateY(-50%);
  width: 88px; height: 64px; border-radius: 8px; overflow: hidden;
  background: #eef3f0; pointer-events: none;
}
.app-shell .app-li-thumb img { width: 100% !important; height: 100% !important; object-fit: cover; display: block; }

/* 搜索无结果提示 */
.app-shell .app-noresult {
  padding: 46px 18px; text-align: center;
  font-size: 15px; color: var(--txt); line-height: 2;
}
.app-shell .app-noresult:before {
  content: '🔍'; display: block; font-size: 34px; line-height: 1; margin-bottom: 12px; opacity: .55;
}
.app-shell .app-noresult span { display: block; font-size: 13px; color: var(--sub); margin-top: 6px; }

/* ---------- 首页轮播 / 活动栏 ---------- */
.app-shell .contental { margin: 10px 12px; border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); }
.app-shell .contental .am-slides li { height: 200px; }
.app-shell .contental .am-slides li img { height: 200px; object-fit: cover; }
.app-shell .contentar { background: var(--hh-l); border-radius: var(--radius); margin: 10px 12px; box-shadow: none; }
.app-shell .contentar .contentarbt { padding: 14px; }
.app-shell .hab-li { padding: 12px 14px; }
.app-shell .hab-title { font-size: 15px; }

/* ---------- 生态保护横条保留并 App 化 ---------- */
.app-shell .scene-bar { margin: 10px 12px; height: 60px; border-radius: var(--radius); }
.app-shell .scene-bar .sb-txt { font-size: 17px; letter-spacing: 3px; }
.app-shell .contentcls_touch, .app-shell .contentd_touch { margin: 0; }

/* ---------- 详情页 ---------- */
/* 卡片满宽（与首页卡片 24px 边距一致），内层内容由 12px 内边距承担，避免「窄一截」 */
html.app-shell .newscont.cont-single .cgcont,
html.app-shell .newscont.newscont { padding: 12px 0 20px !important; }
.app-shell .newscont > * { margin-left: 12px; margin-right: 12px; }
.app-shell .newscont > .newscontr { margin-left: 0; margin-right: 0; }
.app-shell .newscontrb ul li a { padding: 10px 12px; }
.app-shell .app-li-thumb { right: 12px; }
.app-shell .tybt { font-size: 22px; line-height: 1.5; color: var(--txt); text-align: left; margin-bottom: 10px; }
.app-shell .tybs { color: var(--sub); font-size: 13px; text-align: left; }
.app-shell .cgcont { padding-top: 14px; }
.app-shell .tynr, .app-shell .cgcont .tynr { color: var(--txt); }
.app-shell .tynr p { line-height: 1.85; margin: 12px 0; color: var(--txt); }
.app-shell .tynr p img { border-radius: 10px; margin: 8px auto; }
.app-shell .newshow_source { color: var(--sub); font-size: 12px; }
.app-shell .newscontrt { border-bottom: 1px solid var(--line); }

/* ---------- 表单 / 通用卡片（会员、活动、留言等复用） ---------- */
.app-shell .card-panel,
.app-shell .member-box,
.app-shell .form-wrap,
.app-shell .ad-card,
.app-shell .ad-cover { background: var(--card); border-radius: var(--radius); box-shadow: var(--shadow); margin: 10px 12px; padding: 16px; }
/* 会员中心 / 登录卡片与首页同宽：box 已有 12px 内边距，卡片再缩进 12px */
.app-shell .ct-card, .app-shell .login-card { margin-left: 12px; margin-right: 12px; }
/* 发布页去掉「返回活动列表」（App 由底部 Tab 导航） */
.app-shell .ad-back { display: none !important; }
.app-shell .btn,
.app-shell .am-btn { background: var(--hh); border-color: var(--hh); border-radius: 24px; }
.app-shell input, .app-shell textarea, .app-shell select { border-radius: 10px; border-color: var(--line); }
.app-shell .tabs a { color: var(--sub); }
.app-shell .tabs a.active { color: var(--hh); border-bottom-color: var(--hh); }

/* ---------- 页脚精简（App 内由底部 Tab 栏替代） ---------- */
.app-shell .footer { display: none !important; }
.app-shell .footert { display: none !important; }
.app-shell .footerb { background: transparent; text-align: center; color: var(--sub); font-size: 12px; line-height: 1.7; padding-top: 4px; }
.app-shell .footerbrt, .app-shell .footerbrs, .app-shell .footerbrb, .app-shell .footerbrb2, .app-shell .footerbrz { color: var(--sub); font-size: 12px; }

/* ---------- 安全区适配（刘海屏） + 为底部 Tab 栏留白 ---------- */
.app-shell body { padding-bottom: calc(58px + env(safe-area-inset-bottom)); }
@supports (padding: env(safe-area-inset-bottom)) {
  .app-shell body { padding-bottom: calc(58px + env(safe-area-inset-bottom)); }
}

/* ---------- App 底部 Tab 栏（极简线性 SVG 图标） ---------- */
.app-shell .hh-tabbar {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 9000;
  height: 56px; padding-bottom: env(safe-area-inset-bottom);
  display: flex; background: #fff; box-shadow: 0 -1px 0 var(--line);
  border-top: 1px solid var(--line);
}
.app-shell .hh-tab {
  flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center;
  color: #9CA3AF; text-decoration: none; font-size: 11px; line-height: 1.2; -webkit-tap-highlight-color: transparent;
  transition: color .18s ease;
}
.app-shell .hh-tab .hh-tabi {
  height: 24px; margin-bottom: 3px;
  display: flex; align-items: center; justify-content: center;
}
.app-shell .hh-tab .hh-tabi svg {
  width: 24px; height: 24px; display: block;
  transition: transform .18s ease, opacity .18s ease;
}
.app-shell .hh-tab.active { color: var(--hh); }
.app-shell .hh-tab.active .hh-tabi svg { transform: translateY(-1px); }

/* ---------- 发布 Tab：中间凸起悬浮圆钮 ---------- */
.app-shell .hh-tab.tab-mid {
  position: relative;
  justify-content: flex-end;
  padding-bottom: 7px;
}
.app-shell .hh-tab.tab-mid .hh-tabi {
  position: absolute;
  top: -16px;
  left: 50%;
  transform: translateX(-50%);
  width: 46px;
  height: 46px;
  background: linear-gradient(135deg, #25a85c, var(--hh));
  color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 3px solid #fff;
  box-shadow: 0 4px 12px rgba(31, 138, 76, .45);
  margin-bottom: 0;
}
.app-shell .hh-tab.tab-mid .hh-tabi svg {
  width: 22px; height: 22px;
}
.app-shell .hh-tab.tab-mid.active .hh-tabi {
  background: linear-gradient(135deg, var(--hh), var(--hh-d));
  box-shadow: 0 4px 14px rgba(23, 110, 60, .55);
}
.app-shell .hh-tab.tab-mid.active { color: var(--hh); }

/* ====================== App 专属首页头部（仅首页 + App UA 注入） ====================== */
.app-shell .app-home-top { margin-bottom: 2px; }
.app-shell .app-home-hero {
  margin: 10px 12px 0;
  border-radius: var(--radius);
  background: linear-gradient(135deg, #25a85c 0%, #176e3c 100%);
  color: #fff;
  padding: 20px 18px 18px;
  box-shadow: var(--shadow);
  position: relative;
  overflow: hidden;
}
.app-shell .app-home-hero::after {
  content: '';
  position: absolute;
  right: -30px; top: -30px;
  width: 120px; height: 120px;
  background: rgba(255, 255, 255, .12);
  border-radius: 50%;
}
.app-shell .app-home-hero h1 {
  margin: 0 0 6px;
  font-size: 22px;
  font-weight: 800;
  letter-spacing: 1px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.app-shell .app-home-hero .leaf { font-size: 24px; }
.app-shell .app-home-hero .sub { font-size: 13px; opacity: .92; position: relative; z-index: 1; }
.app-shell .app-home-quick {
  margin: 12px 12px 0;
  background: var(--card);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 14px 6px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}
.app-shell .app-home-quick a {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 7px;
  text-decoration: none;
  color: var(--txt);
  font-size: 13px;
}
.app-shell .app-home-quick .qi {
  width: 46px;
  height: 46px;
  border-radius: 14px;
  background: var(--hh-l);
  color: var(--hh);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
}
.app-shell .app-home-quick a:nth-child(2) .qi { background: #eaf3ff; color: #2f7de0; }
.app-shell .app-home-quick a:nth-child(3) .qi { background: #fff3e6; color: #e08a2f; }
.app-shell .app-home-quick a:nth-child(4) .qi { background: #fdeaf2; color: #d84a8a; }
.app-shell .app-home-links {
  margin: 12px 12px 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.app-shell .app-home-links a {
  flex: 1 1 calc(25% - 8px);
  min-width: calc(25% - 8px);
  text-align: center;
  font-size: 13px;
  color: var(--sub);
  background: var(--card);
  border-radius: 99px;
  padding: 8px 6px;
  text-decoration: none;
  box-shadow: var(--shadow);
}

/* ===================== App 信息流（头条式混合随机） ===================== */
/* 栏目页/内容页：统一 border-box，宽度自适应（width:auto 才会扣掉左右 margin），
   否则 width:100% + margin:12px 会让内容整体右移 12px、右边缘贴屏被裁 */
.app-shell *, .app-shell *::before, .app-shell *::after { box-sizing: border-box; }
.app-shell .contenta, .app-shell .contentc, .app-shell .contentcl, .app-shell .contentcr,
.app-shell .contente, .app-shell .contente2, .app-shell .contente2l, .app-shell .contente2r,
.app-shell .contentf, .app-shell .contentclt, .app-shell .newscont, .app-shell .cont_ny,
.app-shell .box, .app-shell .newscontr, .app-shell .newscontl, .app-shell .newscontrb,
.app-shell .contentcltb, .app-shell .contentcrtbb { width: auto !important; max-width: 100% !important; }

/* 首页：隐藏与信息流重复的桌面区块，仅保留轮播 + 信息流 */
.app-shell .contentar, .app-shell .contentc, .app-shell .contente2, .app-shell .contentf { display: none !important; }

/* 会员风采等 .fclist 卡片：补左右留白 + 圆角，避免图片贴边导致侧边弧角被切 */
.app-shell .cont_ny > .box { padding-left: 12px !important; padding-right: 12px !important; }
.app-shell .fclist { margin: 8px 12px 16px; }
.app-shell .fclist > li {
  background: var(--card); border-radius: var(--radius); overflow: hidden;
  box-shadow: var(--shadow); margin-bottom: 12px; list-style: none;
}
.app-shell .fclist .fcl-img { display: block !important; height: 186px !important; padding-bottom: 0 !important; overflow: hidden; font-size: 0; line-height: 0; }
.app-shell .fclist .fcl-img img { width: 100% !important; height: 186px !important; object-fit: cover; display: block; }
.app-shell .fclist .fcl-body { padding: 12px 14px 14px; }
.app-shell .fclist .fcl-title { font-size: 17px; line-height: 1.45; margin: 0 0 8px; font-weight: 700; }
.app-shell .fclist .fcl-desc { font-size: 15px; line-height: 1.7; color: var(--sub); margin: 0 0 10px; }
.app-shell .fclist .fcl-foot { display: flex; align-items: center; justify-content: space-between; font-size: 13px; color: var(--sub); }
.app-shell .fclist .fcl-more { color: var(--hh); text-decoration: none; }

/* App 内隐藏全站面包屑「我的位置：首页 > xxx」：
   .newscontrtr 列表/文章页、.fc-crumbs 会员风采、.newscontrt 旧拼写一并覆盖 */
.app-shell .newscontrtr,
.app-shell .fc-crumbs,
.app-shell .newscontrt,
.app-shell .breadcrumb,
.app-shell .crumb { display: none !important; }
/* 面包屑隐掉后，列表卡片与顶栏贴太近，补一点上间距 */
.app-shell .newscont .newscontrb { margin-top: 2px; }
.app-shell .fclist { margin-top: 10px; }
.app-shell .newscont { padding-top: 14px !important; padding-bottom: 18px !important; }
.app-shell .tybt { margin-bottom: 12px !important; font-size: 21px !important; }
.app-shell .tynr p, .app-shell .cgcont p { font-size: 17px !important; line-height: 1.8 !important; }
.app-shell .contentcltb ul li a, .app-shell .newscontrb ul li a { font-size: 17px !important; }

/* 文章页：封面图放正文内首位（通栏圆角），不再浮在标题处
   注意：站内 `html.is-mobi .cgcont img{width:auto!important;height:auto!important}`
   优先级高于 .app-shell .app-art-cover，这里必须用更高权重的选择器压过它 */
html.app-shell .cgcont img.app-art-cover,
html.app-shell .tynr img.app-art-cover,
html.app-shell .newscontr img.app-art-cover {
  display: block !important;
  float: none !important;
  width: 100% !important;
  height: auto !important;
  max-width: 100% !important;
  max-height: none !important;
  min-width: 0 !important;
  object-fit: cover !important;
  border-radius: 8px !important;
  margin: 3px 0 8px 12px !important;
  padding: 0 !important; border: 0 !important;
}
.app-shell .tybt { overflow: hidden; }

/* ---- 信息流容器 ---- */
.app-shell .app-feed { margin: 10px 12px 0; }
/* 资讯页：feed 挂在 .newscont 内，已有 16px 内边距，去掉这层 12px 外边距，与其他列表对齐 */
.app-shell .newscont .app-feed { margin-left: 0; margin-right: 0; }
.app-shell .app-feed-hd { display: flex; align-items: center; justify-content: space-between; padding: 6px 2px 10px; }
.app-shell .app-feed-hd .t { font-size: 16px; font-weight: 800; color: var(--txt); }
.app-shell .app-feed-refresh {
  display: inline-flex; align-items: center; gap: 4px;
  background: #eef2f0; color: #6c7a73; border: 0; border-radius: 99px;
  font-size: 13px; padding: 5px 12px; cursor: pointer; -webkit-tap-highlight-color: transparent;
}
.app-shell .app-feed-refresh:active { background: #e2e8e4; }
.app-shell .app-feed-list { display: block; }
.app-shell .app-feed-loading, .app-shell .app-feed-empty { padding: 30px 10px; text-align: center; color: var(--sub); font-size: 14px; }

/* ---- 信息流卡片：左文右图 ---- */
.app-shell .fc-card {
  display: flex; align-items: stretch; gap: 12px;
  background: var(--card); border-radius: var(--radius); box-shadow: var(--shadow);
  padding: 12px; margin-bottom: 10px; text-decoration: none;
}
.app-shell .fc-text { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; }
.app-shell .fc-title {
  font-size: 17px; line-height: 1.45; color: var(--txt); font-weight: 600;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.app-shell .fc-digest {
  font-size: 14px; line-height: 1.6; color: var(--sub); margin-top: 6px;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
/* 视频卡：标题在上、视频封面在下（16:9） */
.app-shell .fc-card.fc-vcard { display: block; }
.app-shell .fc-vthumb { position: relative; margin-top: 10px; border-radius: 10px; overflow: hidden; background: #eef3f0; height: 180px; }
.app-shell .fc-vthumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.app-shell .fc-play-big { width: 46px; height: 46px; font-size: 19px; background: rgba(0,0,0,.5); border: 2px solid rgba(255,255,255,.65); }
.app-shell .fc-meta { margin-top: auto; display: flex; align-items: center; flex-wrap: wrap; gap: 8px; padding-top: 10px; font-size: 12px; color: var(--sub); }
.app-shell .fc-tag { background: var(--hh-l); color: var(--hh-d); border-radius: 4px; padding: 1px 7px; font-size: 11px; }
.app-shell .fc-status { background: #e8f6ee; color: #1f8a4c; border-radius: 4px; padding: 1px 7px; font-size: 11px; }
.app-shell .fc-exc { background: #fff3d6; color: #b8860b; border-radius: 4px; padding: 1px 7px; font-size: 11px; font-weight: bold; }
.app-shell .fc-date { color: var(--sub); }
.app-shell .fc-thumb { position: relative; flex: 0 0 112px; width: 112px; height: 84px; border-radius: 8px; overflow: hidden; background: #eef3f0; }
.app-shell .fc-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.app-shell .fc-nopic { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: #b9c7bf; font-size: 14px; }
.app-shell .fc-play {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
  width: 30px; height: 30px; border-radius: 50%; background: rgba(0,0,0,.45);
  display: flex; align-items: center; justify-content: center; color: #fff; font-size: 13px;
}
/* 无配图卡片：标题 + 摘要（上下结构） */
.app-shell .fc-card.fc-noimg { display: block; min-height: 0; }
.app-shell .fc-card.fc-noimg .fc-title { -webkit-line-clamp: 2; }
.app-shell .fc-card.fc-noimg .fc-meta { padding-top: 8px; }
.app-shell .fc-card.fc-noimg .fc-digest:last-of-type { margin-bottom: 2px; }
