/* ============================================================
   TIFOSERIA · 足球主题模板样式层（沿用【模版1】设计系统）
   - 12 套配色 (theme-1 ~ theme-12)，一站一色
   - 12 种首页版式 (layout-1 ~ layout-12) × 4 种首屏形态 × 3 种卡片皮肤
   - 深色/浅色两种头部 (head-dark / head-light)
   配色与版式由站点域名哈希在 main.html 中自动分配，
   配色与版式在 main.html 里按域名显式登记，因此同一套模板在 12 个站呈现互不重复的外观。
   ============================================================ */

/* ---------- 配色变量 ---------- */
body.tf { --brand:#0c7a52; --brand-2:#075238; --accent:#e8b13a; --header:#05261b; --header-text:#e9f6ef; --bg:#eef7f2; --card:#ffffff; --text:#0d2a20; --muted:#44685c; --line:#d5ebe0; --tf-glow:#35c48a; --tf-surface:#dff0e7; --tf-heading:#075238; --tf-ink:#0d2a20; --tf-accent-ink:#075238; }
/* 12 套配色：一站一色，全部经 _tf_palette.php 的 WCAG 数值自检（文字对底 >=4.5:1，图标对底 >=3:1）
   --tf-heading/--tf-ink/--tf-accent-ink 为主题级墨色收敛变量，避免“浅字压白卡”隐形文字 */
body.tf.theme-1 { --brand:#0c7a52; --brand-2:#075238; --accent:#e8b13a; --header:#05261b; --header-text:#e9f6ef; --bg:#eef7f2; --card:#ffffff; --text:#0d2a20; --muted:#44685c; --line:#d5ebe0; --tf-glow:#35c48a; --tf-surface:#dff0e7; --tf-heading:#075238; --tf-ink:#0d2a20; --tf-accent-ink:#075238; }
body.tf.theme-2 { --brand:#1558a6; --brand-2:#0d3a6f; --accent:#f0a83c; --header:#071f38; --header-text:#e6f0fb; --bg:#eaf1fa; --card:#ffffff; --text:#0b2338; --muted:#46617a; --line:#d2e2f2; --tf-glow:#5aa0e6; --tf-surface:#dde9f7; --tf-heading:#0d3a6f; --tf-ink:#0b2338; --tf-accent-ink:#0d3a6f; }
body.tf.theme-3 { --brand:#96153c; --brand-2:#65102a; --accent:#dcbb86; --header:#2c0a14; --header-text:#f8e8ee; --bg:#fbf0f3; --card:#ffffff; --text:#2c0c15; --muted:#76505b; --line:#f0d3dc; --tf-glow:#d9567c; --tf-surface:#f4dbe3; --tf-heading:#65102a; --tf-ink:#2c0c15; --tf-accent-ink:#65102a; }
body.tf.theme-4 { --brand:#c24a12; --brand-2:#7d2c08; --accent:#ffd166; --header:#2b1405; --header-text:#fbeade; --bg:#fdf1e9; --card:#ffffff; --text:#31150a; --muted:#7a5347; --line:#f4d9c9; --tf-glow:#ff8a4c; --tf-surface:#f8e2d1; --tf-heading:#7d2c08; --tf-ink:#31150a; --tf-accent-ink:#7d2c08; }
body.tf.theme-5 { --brand:#0f6f88; --brand-2:#0a4b5c; --accent:#f7b955; --header:#062a33; --header-text:#e6f5f9; --bg:#e9f5f8; --card:#ffffff; --text:#08282f; --muted:#456a73; --line:#c8e6ee; --tf-glow:#3cb9d0; --tf-surface:#d6eef4; --tf-heading:#0a4b5c; --tf-ink:#08282f; --tf-accent-ink:#0a4b5c; }
body.tf.theme-6 { --brand:#6328c9; --brand-2:#421a8c; --accent:#f2c94c; --header:#1e0e42; --header-text:#eee8fd; --bg:#f1ecfe; --card:#ffffff; --text:#20113c; --muted:#574d7f; --line:#ddd2fa; --tf-glow:#a585ff; --tf-surface:#e5dcfc; --tf-heading:#421a8c; --tf-ink:#20113c; --tf-accent-ink:#421a8c; }
body.tf.theme-7 { --brand:#0b8f72; --brand-2:#06604d; --accent:#ffb547; --header:#042a22; --header-text:#e5f7f1; --bg:#e7f8f3; --card:#ffffff; --text:#082a23; --muted:#426b63; --line:#c8ecdf; --tf-glow:#36d6ac; --tf-surface:#d2f0e6; --tf-heading:#06604d; --tf-ink:#082a23; --tf-accent-ink:#06604d; }
body.tf.theme-8 { --brand:#4e6d1c; --brand-2:#354a0d; --accent:#cfe755; --header:#18210a; --header-text:#eff4e3; --bg:#f2f6e9; --card:#ffffff; --text:#1c280d; --muted:#56683c; --line:#dde7c7; --tf-glow:#8fbb2a; --tf-surface:#e5eed2; --tf-heading:#354a0d; --tf-ink:#1c280d; --tf-accent-ink:#354a0d; }
body.tf.theme-9 { --brand:#3840b5; --brand-2:#232a80; --accent:#ffc94d; --header:#11143a; --header-text:#e9ecfc; --bg:#eef0fc; --card:#ffffff; --text:#15193b; --muted:#4a4f7f; --line:#d5daf4; --tf-glow:#7f88ff; --tf-surface:#e0e4fb; --tf-heading:#232a80; --tf-ink:#15193b; --tf-accent-ink:#232a80; }
body.tf.theme-10 { --brand:#a8402a; --brand-2:#742a16; --accent:#f0c14b; --header:#2a1108; --header-text:#fbebe1; --bg:#fbf1ea; --card:#ffffff; --text:#2f150c; --muted:#77503f; --line:#f0d7c8; --tf-glow:#e07a52; --tf-surface:#f6e1d3; --tf-heading:#742a16; --tf-ink:#2f150c; --tf-accent-ink:#742a16; }
body.tf.theme-11 { --brand:#0a6ea8; --brand-2:#074b74; --accent:#ff7a59; --header:#04202f; --header-text:#e5f3fb; --bg:#e8f4fa; --card:#ffffff; --text:#082430; --muted:#43667a; --line:#c6e3f1; --tf-glow:#39b6e0; --tf-surface:#d3ecf7; --tf-heading:#074b74; --tf-ink:#082430; --tf-accent-ink:#074b74; }
body.tf.theme-12 { --brand:#a81a5c; --brand-2:#74103f; --accent:#f5c542; --header:#2c0a19; --header-text:#f8e7f0; --bg:#fbeef5; --card:#ffffff; --text:#2d0c1a; --muted:#784a60; --line:#f2d2e2; --tf-glow:#e85f9c; --tf-surface:#f4d9e7; --tf-heading:#74103f; --tf-ink:#2d0c1a; --tf-accent-ink:#74103f; }

/* ---------- 基础 ---------- */
body.tf { background: var(--bg); color: var(--text); font-family: "Segoe UI", Roboto, "Helvetica Neue", "PingFang SC", "Microsoft YaHei", sans-serif; }
body.tf a { color: var(--text); }
body.tf a:hover { color: var(--brand); }
.mipcms-main { margin-top: 70px; }

/* ---------- 锚点跳转：平滑滚动 + 给吸顶导航让位 ----------
   首屏 CTA(#news-3 / #judge-3 / #judge-7) 与页脚锚点若不预留 scroll-padding，
   跳转后 section 顶部会被 sticky 导航盖住，标题看不见。 */
html { scroll-behavior: smooth; scroll-padding-top: 84px; }
@media (max-width: 991px) { html { scroll-padding-top: 74px; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* ---------- 头部 ---------- */
body.tf .mipmb-header-default { background: var(--header); height: 70px; box-shadow: 0 2px 12px rgba(0,0,0,.18); }
body.tf .mipmb-header-default .logo-text { display:inline-flex; align-items:center; }
body.tf .mipmb-header-default .logo-text a { display:inline-flex; align-items:center; color: var(--header-text); font-weight:800; font-size:22px; letter-spacing:.3px; }
body.tf .mipmb-header-default .logo-text .logo-mark { height:40px; width:auto; margin-right:10px; display:inline-block; vertical-align:middle; }
body.tf .mipmb-header-default .mipmb-menu, body.tf .mipmb-header-default .mipmb-menu > li.active, body.tf .mipmb-header-default .mipmb-menu > li > a:hover { background: transparent; }
body.tf .mipmb-header-default .mipmb-menu > li > a { color: var(--header-text); line-height:70px; opacity:.9; font-weight:600; }
body.tf .mipmb-header-default .mipmb-menu > li > a:hover { color:#fff; background: rgba(255,255,255,.08); }
body.tf .mipmb-header-default .mipmb-menu > li.active > a { color:#fff; background: var(--brand); border-radius:6px; }
/* 浅色头部变体 */
body.tf.head-light .mipmb-header-default { background:#fff; box-shadow:0 1px 10px rgba(0,0,0,.08); border-bottom:1px solid var(--line); }
body.tf.head-light .mipmb-header-default .logo-text a { color: var(--brand-2); }
body.tf.head-light .mipmb-header-default .mipmb-menu > li > a { color:#39424f; }
body.tf.head-light .mipmb-header-default .mipmb-menu > li > a:hover { color: var(--brand); background:#f4f7f5; }
body.tf.head-light .mipmb-header-default .mipmb-menu > li.active > a { color:#fff; background: var(--brand); }

/* ---------- 区块通用卡片 ---------- */
body.tf .mip-box { background: var(--card); border:1px solid var(--line); border-radius:12px; box-shadow:0 1px 4px rgba(16,24,40,.04); margin-bottom:20px; overflow:hidden; }
body.tf .mip-box-heading { border-bottom:1px solid var(--line); padding:14px 18px; position:relative; }
body.tf .mip-box-heading h3, body.tf .mip-box-heading h1 { font-size:18px; font-weight:800; margin:0; padding-left:12px; }
body.tf .mip-box-heading h3::before, body.tf .mip-box-heading h1::before { content:""; position:absolute; left:0; top:14px; width:4px; height:20px; border-radius:3px; background:linear-gradient(var(--brand),var(--accent)); }
body.tf .mip-box-body { padding:16px 18px; }
body.tf .li-box-list { padding:10px 0; border-bottom:1px dashed var(--line); }
body.tf .li-box-list:last-child { border-bottom:0; }
body.tf .li-box-list p { color:var(--muted); font-size:12px; margin:4px 0 0; }
body.tf .list-time { padding:9px 0; border-bottom:1px dashed var(--line); overflow:hidden; }
body.tf .list-time time { color:var(--muted); font-size:12px; }

/* ---------- 首页 Hero ---------- */
body.tf .hero-wrap { margin:0 0 22px; }
body.tf .hero-lead { position:relative; border-radius:14px; overflow:hidden; height:400px; box-shadow:0 8px 24px rgba(0,0,0,.16); }
body.tf .hero-lead .caption { position:absolute; left:0; right:0; bottom:0; padding:22px 22px 18px; background:linear-gradient(transparent, rgba(4,10,7,.85)); }
body.tf .hero-lead .caption h3 { color:#fff; font-size:24px; font-weight:800; margin:8px 0 0; line-height:1.35; }
body.tf .hero-lead .caption h3 a { color:#fff; }
body.tf .hero-lead .caption .time { color:#dfe; font-size:12px; background:var(--brand); padding:3px 10px; border-radius:20px; }
body.tf .hero-side { display:flex; flex-direction:column; gap:14px; height:400px; }
body.tf .hero-side .cell { position:relative; flex:1; border-radius:12px; overflow:hidden; min-height:124px; box-shadow:0 4px 14px rgba(0,0,0,.12); }
body.tf .hero-side .cell img, body.tf .hero-side .cell .mip-img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
body.tf .hero-side .cell .caption { position:absolute; left:0; right:0; bottom:0; padding:10px 14px; background:linear-gradient(transparent, rgba(4,10,7,.86)); }
body.tf .hero-side .cell .caption a { color:#fff; font-weight:700; font-size:15px; line-height:1.4; display:block; }

/* layout-1: 左大右三; layout-2: 顶部通栏大图 + 下方三列; layout-3: 网格拼图 */
body.tf.layout-2 .hero-lead { height:440px; margin-bottom:14px; }
body.tf.layout-2 .hero-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
body.tf.layout-2 .hero-cards .cell { position:relative; height:180px; border-radius:12px; overflow:hidden; box-shadow:0 4px 14px rgba(0,0,0,.12); }
body.tf.layout-2 .hero-cards .cell .caption { position:absolute; left:0;right:0;bottom:0; padding:10px 14px; background:linear-gradient(transparent, rgba(4,10,7,.86)); }
body.tf.layout-2 .hero-cards .cell .caption a { color:#fff; font-weight:700; }
body.tf.layout-3 .hero-grid { display:grid; grid-template-columns:2fr 1fr 1fr; grid-template-rows:220px 220px; gap:14px; }
body.tf.layout-3 .hero-grid .cell { position:relative; border-radius:12px; overflow:hidden; box-shadow:0 4px 14px rgba(0,0,0,.12); }
body.tf.layout-3 .hero-grid .cell:first-child { grid-row:1 / span 2; }
body.tf.layout-3 .hero-grid .cell .caption { position:absolute; left:0;right:0;bottom:0; padding:10px 14px; background:linear-gradient(transparent, rgba(4,10,7,.86)); }
body.tf.layout-3 .hero-grid .cell .caption a { color:#fff; font-weight:700; }

/* ---------- 分类列表卡片 (block/article-card) ---------- */
body.tf .card-list { display:grid; grid-template-columns:repeat(2,1fr); gap:16px; }
body.tf .news-card { background:var(--card); border:1px solid var(--line); border-radius:12px; overflow:hidden; transition:transform .18s ease, box-shadow .18s ease; }
body.tf .news-card:hover { transform:translateY(-3px); box-shadow:0 10px 24px rgba(16,24,40,.12); }
body.tf .news-card .thumb { display:block; height:160px; overflow:hidden; background:#eef1ef; }
body.tf .news-card .thumb img { width:100%; height:100%; object-fit:cover; }
body.tf .news-card .body { padding:12px 14px 14px; }
body.tf .news-card .body h4 { font-size:16px; margin:0 0 6px; line-height:1.4; font-weight:700; }
body.tf .news-card .body h4 a { color:var(--text); }
body.tf .news-card .body .desc { color:var(--muted); font-size:13px; line-height:1.6; height:40px; overflow:hidden; }
body.tf .news-card .body .meta { color:var(--muted); font-size:12px; margin-top:8px; display:flex; justify-content:space-between; }

/* ---------- 详情页 ---------- */
body.tf .detail-title { font-size:28px; font-weight:800; line-height:1.4; margin:6px 0 12px; }
body.tf .mip-box-main .info ul { margin:0; padding:0; }
body.tf .mip-box-main .info li { color:var(--muted); font-size:13px; margin-right:16px; display:inline-block; }
body.tf .mipcms-detail-body { font-size:16px; line-height:1.9; color:#2a333f; }
body.tf .mipcms-detail-body p { margin:0 0 16px; }
body.tf .mipcms-detail-body img { max-width:100%; height:auto; border-radius:10px; margin:8px 0; }
body.tf .mipcms-detail-body h2, body.tf .mipcms-detail-body h3 { font-weight:800; margin:22px 0 12px; }
body.tf .tags, body.tf ul.tags { margin:0; padding:0; list-style:none; display:flex; flex-wrap:wrap; gap:8px; }
body.tf .tags li, body.tf ul.tags li { display:block; margin:0; }
body.tf .tags li a, body.tf ul.tags li a { display:inline-block; background:#f0f3f1; border:1px solid var(--line); color:var(--text); padding:4px 13px; border-radius:999px; font-size:12px; line-height:1.7; white-space:nowrap; transition:background .15s,color .15s; }
body.tf .tags li a:hover, body.tf ul.tags li a:hover { background:var(--brand); color:#fff; border-color:var(--brand); }
body.tf .item-up-down-page .mipmb-page-item { width:48%; }
body.tf .breadcrumb { font-size:13px; color:var(--muted); }

/* ---------- 侧栏热门 / TAG（flex 均匀药丸） ---------- */
body.tf .mip-box-main .info { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px 16px; }
body.tf .mip-box-main .info > ul { margin:0; padding:0; }
body.tf .mip-box-main .info ul.tags { float:none !important; }

/* ---------- 分页 ---------- */
body.tf .pagination { margin-top:18px; }
body.tf .pagination .page-link { color:var(--brand); border-color:var(--line); }
body.tf .pagination .active .page-link { background:var(--brand); border-color:var(--brand); color:#fff; }

/* ---------- 页脚 ---------- */
body.tf footer.mipui-footer { background: var(--header); color: rgba(255,255,255,.72); padding:26px 0; margin-top:28px; }
body.tf footer.mipui-footer a { color: rgba(255,255,255,.82); }
body.tf footer.mipui-footer a:hover { color:#fff; }
body.tf footer.mipui-footer .friend-link ul { list-style:none; padding:0; margin:0 0 12px; display:flex; flex-wrap:wrap; }
body.tf footer.mipui-footer .friend-link li { margin:0 14px 8px 0; font-size:13px; }
body.tf footer.mipui-footer .mip-footer { color:rgba(255,255,255,.6); font-size:13px; margin:6px 0 0; }

/* ---------- 面包屑/杂项点缀 ---------- */
body.tf .section-title-strip { background:linear-gradient(90deg,var(--brand),var(--brand-2)); color:#fff; border-radius:12px; padding:14px 18px; margin-bottom:16px; font-weight:800; font-size:18px; }
body.tf .no-data-block { text-align:center; color:var(--muted); padding:40px 0; }

/* ---------- 移动端适配 ---------- */
@media (max-width: 991px) {
  .mipcms-main { margin-top:64px; }
  body.tf .hero-lead { height:auto; aspect-ratio:16/9; min-height:200px; }
  body.tf .hero-side { height:auto; gap:12px; }
  body.tf .hero-side .cell { min-height:150px; }
  body.tf.layout-3 .hero-grid { grid-template-columns:1fr 1fr; grid-template-rows:auto; }
  body.tf.layout-3 .hero-grid .cell:first-child { grid-row:auto; grid-column:1 / span 2; }
}
@media (max-width: 767px) {
  body.tf .card-list { grid-template-columns:1fr; }
  body.tf .detail-title { font-size:22px; }
  body.tf .mipcms-detail-body { font-size:16px; }
  .mipcms-main { margin-top:60px; }
  body.tf .mipmb-header-default { height:60px; }
}
/* 首页缩略图（让列表项带图，丰富首页视觉） */
body.tf .list-time.has-thumb { display:flex; gap:10px; align-items:flex-start; }
body.tf .li-box-list.has-thumb { display:flex; gap:10px; align-items:flex-start; }
body.tf .lt-thumb { position:relative; flex:0 0 84px; width:84px; height:60px; border-radius:6px; overflow:hidden; display:block; background:#0d1b12; }
body.tf .lt-thumb img { width:100%; height:100%; object-fit:cover; }
body.tf .lt-txt { flex:1 1 auto; min-width:0; }
body.tf .li-box-list.has-thumb p { margin-top:2px; }
@media (max-width:400px){ body.tf .lt-thumb { flex-basis:64px; width:64px; height:46px; } }

/* ---------- 去 MIP 后：普通 <img> 铺满规则（替代原 mip-img layout=fill/container） ---------- */
body.tf .hero-lead, body.tf .hero-cards .cell, body.tf .hero-grid .cell { position:relative; }
body.tf .hero-lead > img,
body.tf .hero-cards .cell > img,
body.tf .hero-grid .cell > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }

/* 分类列表卡片（block/article-list）图左文右 —— 覆盖 mipcms.css 的 float/absolute 遗留布局 */
body.tf .mipui-category-list-001 .mipui-category-list-item { display:flex; gap:16px; align-items:flex-start; position:relative; float:none; min-height:0; padding:16px 0; margin-bottom:0; border-bottom:1px solid var(--line); overflow:hidden; }
body.tf .mipui-category-list-001 .item-media { position:relative !important; float:none !important; top:auto !important; left:auto !important; flex:0 0 auto; width:220px; height:150px; overflow:hidden; border-radius:12px; background:#eef1ef; }
body.tf .mipui-category-list-001 .item-media .item-link { display:block; position:relative; height:150px !important; transition:none; transform:none !important; }
body.tf .mipui-category-list-001 .item-media .item-link:hover { transform:none !important; }
body.tf .mipui-category-list-001 .item-media img { position:absolute !important; inset:0 !important; top:0 !important; left:0 !important; margin:0 !important; transform:none !important; width:100% !important; height:100% !important; max-width:none !important; min-width:0 !important; object-fit:cover; display:block; }
body.tf .mipui-category-list-001 .item-content { padding-left:0 !important; flex:1 1 auto; min-width:0; }
body.tf .mipui-category-list-001 .item-content h4 { font-size:18px; font-weight:800; margin:0 0 8px; line-height:1.4; }
body.tf .mipui-category-list-001 .item-content h4 a { white-space:normal; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
body.tf .mipui-category-list-001 .item-content p { padding-left:0 !important; color:var(--muted); font-size:13px; margin:0 0 4px; }
@media (max-width:575px){ body.tf .mipui-category-list-001 .item-media, body.tf .mipui-category-list-001 .item-media .item-link { width:120px; height:90px; } body.tf .mipui-category-list-001 .item-content h4 { font-size:15px; } }

/* 图集详情页主图 */
body.tf .page-img { max-width:100%; height:auto; border-radius:12px; box-shadow:0 6px 20px rgba(0,0,0,.10); }

/* 回到顶部 */
body.tf .tf-totop { position:fixed; right:18px; bottom:22px; width:44px; height:44px; line-height:42px; text-align:center; border-radius:50%; background:var(--brand); color:#fff; font-size:22px; box-shadow:0 6px 18px rgba(0,0,0,.22); opacity:0; visibility:hidden; transform:translateY(10px); transition:.25s; z-index:1040; }
body.tf .tf-totop.show { opacity:1; visibility:visible; transform:none; }
body.tf .tf-totop:hover { background:var(--brand-2); color:#fff; }

/* ---------- BS5 升级 / 去 MIP 后的渲染修正（实测验证） ---------- */
/* 1) .hero-lead 是 <a>(inline)，height 对其无效 → 必须 block 化，否则 Hero 大图 0×0 */
body.tf a.hero-lead { display:block; }
body.tf .hero-side .cell, body.tf .hero-cards .cell, body.tf .hero-grid .cell { display:block; }
/* 2) 抵消 mipcms.css 遗留 .list-time a{padding-right:80px;width:100%} 对缩略图/标题的挤压 */
body.tf .list-time.has-thumb a.lt-thumb { padding:0 !important; }
body.tf .list-time.has-thumb .lt-txt > a { padding:0 !important; width:auto !important; }
body.tf .list-time.has-thumb .lt-txt { padding-right:46px; }
body.tf .li-box-list.has-thumb a.lt-thumb { padding:0 !important; }
/* 3) Bootstrap5 移除了 .pull-right，补回日期右浮 */
body.tf .pull-right { float:right !important; }
body.tf .list-time .lt-txt time, body.tf .list-time time { color:var(--muted); font-size:12px; }

/* ---------- 正文插图（上端头图 / FAQ前配图）高端样式 ---------- */
body.tf .mipcms-detail-body figure.art-lead { margin:10px 0 22px; }
body.tf .mipcms-detail-body figure.art-lead img { width:100%; height:auto; border-radius:14px; box-shadow:0 12px 28px rgba(0,0,0,.16); display:block; }
body.tf .mipcms-detail-body figure.art-lead figcaption { margin-top:8px; text-align:center; color:var(--muted); font-size:12px; letter-spacing:.3px; }

/* ---------- 顶部导航对齐 & 新 logo 适配 ---------- */
/* 导航栏背景与 logo 底色同色，融合无缝；导航项/按钮强制单行，消除换行错位 */
body.tf #header-2 { background:#282530; }
body.tf #header-2 .navbar { flex-wrap:nowrap; min-height:64px; }
body.tf #header-2 .navbar-brand { flex:0 1 auto; min-width:0; }
body.tf #header-2 .navbar-brand span { white-space:nowrap; font-size:15px; }
body.tf #header-2 .navbar-collapse { flex:1 1 auto; }
body.tf #header-2 .navbar-nav { align-items:center; }
body.tf #header-2 .navbar-nav .nav-link { white-space:nowrap; padding:.45rem .55rem; line-height:1.2; font-size:15px; }
body.tf #header-2 .btn-warning { white-space:nowrap; }
@media (min-width: 992px) {
  body.tf #header-2 .navbar > .container { flex-wrap:nowrap; }
  body.tf #header-2 .navbar-collapse { min-width:0; }
}
@media (max-width: 991px) {
  body.tf #header-2 .navbar-nav .nav-link { white-space:normal; }
}
@media (min-width: 992px) and (max-width: 1199px) {
  body.tf #header-2 .navbar-brand span { font-size:13px; }
}
@media (min-width: 1200px) and (max-width: 1399px) {
  body.tf #header-2 .navbar-brand span { font-size:14px; }
  body.tf #header-2 .navbar-brand img { height:38px !important; max-height:38px !important; }
  body.tf #header-2 .navbar-nav .nav-link { padding:.4rem .45rem; font-size:13px; }
  body.tf #header-2 .btn-warning { font-size:13px; padding:.35rem .6rem; }
}
/* ---------- 品牌名标记：不使用黄色高亮，保持普通文字颜色 ---------- */
body.tf mark.tf-brand { background:transparent; color:inherit; padding:0; border-radius:0; font-weight:inherit; }
body.tf #header-2 mark.tf-brand { background:transparent; color:inherit; }

/* ============================================================
   首页版式差异化部件（layout-2 / layout-3）
   框架与 layout-1 一致，仅首屏形态、section 顺序与「球迷好评」样式不同。
   module.css 先于本文件加载？—— 不，加载顺序为 mipcms → tifoseria → module，
   故此处一律用 body.tf + id 提升优先级，确保盖过参照站规则。
   ============================================================ */

/* ---------- 首屏：幽灵按钮 / 亮点徽章 / 迷你数据条 ---------- */
body.tf #hero-5 .btn-hero5.tf-btn-ghost { background:#fff; color:#1a1a1a; border:2px solid #417fff; }
body.tf #hero-5 .btn-hero5.tf-btn-ghost:hover { background:#417fff; color:#fff; }
body.tf .tf-hero-badges li { font-size:.95rem; color:#3d4757; font-weight:600; }
body.tf .tf-hero-badges li i { margin-right:.35rem; }
body.tf .tf-hero-mini li { border-left:3px solid var(--accent); padding-left:.6rem; text-align:left; }
body.tf .tf-hero-mini li strong { display:block; font-size:1.15rem; line-height:1.2; color:var(--brand); }

/* ---------- 好评区通用：头像 / 星级 / 评分胶囊 ---------- */
body.tf .tf-avatar { flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center; width:46px; height:46px; border-radius:50%; color:#fff; font-size:18px; box-shadow:0 4px 10px rgba(16,24,40,.16); }
body.tf .tf-av-1 { background:linear-gradient(135deg,#0b7a3b,#3ddc84); }
body.tf .tf-av-2 { background:linear-gradient(135deg,#16568f,#4d9de0); }
body.tf .tf-av-3 { background:linear-gradient(135deg,#b3122e,#f2545b); }
body.tf .tf-av-4 { background:linear-gradient(135deg,#c2410c,#fb923c); }
body.tf .tf-av-5 { background:linear-gradient(135deg,#5b2bb6,#a78bfa); }
body.tf .tf-av-6 { background:linear-gradient(135deg,#0f766e,#2dd4bf); }
body.tf .tf-stars { color:#f59e0b; letter-spacing:2px; font-size:.9rem; }
body.tf .tf-rate-pill { background:#fff; border:1px solid #e3e7ed; border-radius:999px; padding:.5rem 1.2rem; box-shadow:0 4px 14px rgba(16,24,40,.06); }
body.tf .tf-rate-pill strong { font-size:1.05rem; }

/* ---------- judge-7：球迷好评横滑卡（版式B） ---------- */
body.tf #judge-7 .scroll-wrapper { display:flex; gap:1rem; overflow-x:auto; padding:.25rem .25rem 1rem; }
body.tf #judge-7 .review-card { flex:0 0 320px; width:320px; background:#fff; border-radius:14px; padding:1.25rem; box-shadow:0 2px 10px rgba(16,24,40,.05); }
body.tf #judge-7 .review-card p { font-size:.95rem; line-height:1.75; }
body.tf #judge-7 .review-footer .tf-avatar { margin-right:12px; width:44px; height:44px; font-size:17px; }
body.tf #judge-7 .review-footer h6 { font-size:.95rem; }
body.tf #judge-7 .scroll-wrapper::-webkit-scrollbar { height:8px; }
body.tf #judge-7 .scroll-wrapper::-webkit-scrollbar-track { background:#eef3f8; border-radius:4px; }
body.tf #judge-7 .scroll-wrapper::-webkit-scrollbar-thumb { background:#c9d6e3; border-radius:4px; }

/* ---------- judge-3：球迷好评 + 热读榜双栏（版式C） ---------- */
body.tf #judge-3 .comment-header .tf-avatar { margin-right:15px; width:50px; height:50px; font-size:19px; }
body.tf #judge-3 .comment-header h5 { display:flex; align-items:center; flex-wrap:wrap; }
body.tf #judge-3 .rank-list li { gap:.5rem; }
body.tf #judge-3 .rank-list .rank-info strong { color:#0d6efd; font-size:1.05rem; }
/* 文章标题是长尾 SEO 标题，榜单里必须截断两行，否则撑破卡片 */
body.tf #judge-3 .rank-list .rank-info a { color:#333; font-size:.92rem; line-height:1.45; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
body.tf #judge-3 .rank-list .rank-info a:hover { color:#0d6efd; }
body.tf #judge-3 .rank-list .badge { flex:0 0 auto; white-space:nowrap; }

@media (max-width: 767px) {
  body.tf #judge-7 .review-card { flex:0 0 82vw; width:82vw; padding:1rem; }
  body.tf .tf-rate-pill { flex-wrap:wrap; justify-content:center; padding:.5rem .9rem; }
  body.tf .tf-hero-mini li { border-left-width:2px; }
}


/* ============================================================
   TIFOSERIA 扩展层：自定义导航 / 首屏四形态 / 战报条 / APP 好评
   焦点看板 / 球星卡 / 联赛卡 / 图集 / 时间轴 / 投票 / 标签云
   品牌宣言 / FAQ / 页脚 / 卡片皮肤 / 版式微调 / 移动端
   全部走 CSS 变量，禁止内联硬编码色，确保 12 套配色都能正确跟随。
   ============================================================ */

/* ---------- 通用容器与标题 ---------- */
body.tf .tf-accent-bar { height:4px; background:linear-gradient(90deg,var(--brand),var(--accent) 55%,var(--brand-2)); }
body.tf .tf-sec { padding:4.25rem 0; background:var(--card); }
body.tf .tf-sec + .tf-sec { border-top:1px solid var(--line); }
body.tf .tf-sec-soft { background:var(--bg); }
body.tf .tf-sec-tint { background:linear-gradient(180deg,var(--tf-surface),var(--card) 70%); }
body.tf .tf-sec-dark { background:linear-gradient(135deg,var(--header) 0%,var(--brand-2) 100%); color:#fff; }
body.tf .tf-sec-head { max-width:820px; margin:0 auto 2.25rem; text-align:center; }
body.tf .tf-sec-head h2 { font-size:1.85rem; font-weight:800; color:var(--tf-heading); margin:.35rem 0 .75rem; }
body.tf .tf-sec-head h2 i { color:var(--brand); margin-right:.35rem; }
body.tf .tf-sec-head p { color:var(--muted); font-size:1.02rem; line-height:1.85; margin:0; }
body.tf .tf-eyebrow { display:inline-block; font-size:.74rem; font-weight:800; letter-spacing:.16em; color:var(--tf-accent-ink); background:var(--tf-surface); border:1px solid var(--line); border-radius:999px; padding:.3rem .8rem; }
body.tf .tf-sec-head-left { text-align:left; margin-left:0; }
body.tf .tf-sec-dark .tf-sec-head h2, body.tf .tf-sec-dark h2 { color:#fff; }
body.tf .tf-sec-dark .tf-sec-head p, body.tf .tf-sec-dark p { color:rgba(255,255,255,.82); }
body.tf .tf-sec-dark .tf-eyebrow { color:#fff; background:rgba(255,255,255,.14); border-color:rgba(255,255,255,.28); }
body.tf .tf-sec-dark .tf-sec-head h2 i { color:var(--accent); }

/* ---------- 按钮族（白字一律压 brand-2/head 深色端，不用 brand 做白字底） ---------- */
body.tf .tf-btn { display:inline-flex; align-items:center; justify-content:center; font-weight:700; font-size:.95rem; border-radius:10px; padding:.68rem 1.35rem; border:2px solid transparent; text-decoration:none; transition:transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease; }
body.tf .tf-btn:hover { transform:translateY(-2px); }
body.tf .tf-btn-solid { background:var(--brand-2); color:#fff; box-shadow:0 6px 18px rgba(0,0,0,.16); }
body.tf .tf-btn-solid:hover { color:#fff; background:var(--header); }
body.tf .tf-btn-line { background:transparent; border-color:var(--brand); color:var(--tf-accent-ink); }
body.tf .tf-btn-line:hover { background:var(--brand); color:#fff; border-color:var(--brand); }
body.tf .tf-btn-soft { background:var(--tf-surface); color:var(--tf-accent-ink); border-color:var(--line); }
body.tf .tf-btn-soft:hover { background:var(--brand-2); color:#fff; }
body.tf .tf-btn-ghost { background:var(--card); color:var(--tf-accent-ink); border-color:var(--line); box-shadow:0 2px 8px rgba(16,24,40,.06); }
body.tf .tf-btn-ghost:hover { color:#fff; background:var(--brand-2); border-color:var(--brand-2); }
body.tf .tf-sec-dark .tf-btn-line { border-color:rgba(255,255,255,.6); color:#fff; }
body.tf .tf-sec-dark .tf-btn-line:hover { background:#fff; color:var(--brand-2); }

/* ---------- 头部导航（自定义结构，不依赖 module.css 的 header-N） ---------- */
body.tf #tf-header { background:var(--header); box-shadow:0 2px 14px rgba(0,0,0,.2); }
body.tf #tf-header .navbar { padding:.55rem 0; }
body.tf .tf-logo { height:42px; width:auto; max-height:42px; max-width:160px; border-radius:9px; background:transparent; }
body.tf .tf-brand-text { color:var(--header-text); font-weight:800; font-size:1.2rem; letter-spacing:.3px; max-width:34vw; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
body.tf #tf-header .nav-link { color:var(--header-text); opacity:.9; font-weight:600; padding:.5rem .8rem; border-radius:8px; white-space:nowrap; }
body.tf #tf-header .nav-link:hover { color:#fff; background:rgba(255,255,255,.1); opacity:1; }
body.tf #tf-header .nav-link.active { color:#fff; background:var(--brand-2); }
body.tf .tf-cta { background:var(--accent); color:#231a06; border:0; font-weight:800; box-shadow:0 4px 14px rgba(0,0,0,.18); }
body.tf .tf-cta:hover { color:#231a06; filter:brightness(1.06); }
body.tf .tf-cta-ghost { background:transparent; border:1px solid rgba(255,255,255,.45); color:var(--header-text); font-weight:700; }
body.tf .tf-cta-ghost:hover { background:#fff; color:var(--brand-2); }
/* 顶栏防挤压：品牌段可收缩并省略号，动作区与按钮一律不折行（长站名站点此前会把「最新赛事」挤成两行） */
body.tf #tf-header .navbar-brand { min-width:0; flex-shrink:1; }
body.tf .tf-brand-text { min-width:0; flex:0 1 auto; max-width:20ch; }
body.tf .tf-header-act { flex:0 0 auto; }
body.tf .tf-cta, body.tf .tf-cta-ghost, body.tf .tf-app-btn, body.tf .tf-btn { white-space:nowrap; }
body.tf #tf-header .navbar-nav { flex-wrap:nowrap; }
body.tf .tf-icon-btn { display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px; border-radius:10px; color:var(--header-text); background:rgba(255,255,255,.1); text-decoration:none; }
body.tf .tf-icon-btn:hover { background:rgba(255,255,255,.22); color:#fff; }
body.tf #tf-header .navbar-toggler { border-color:rgba(255,255,255,.45); background:rgba(255,255,255,.08); }
body.tf #tf-header .navbar-toggler-icon { --bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255,255,255,0.9%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2.4' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); width:1.7em; height:1.4em; }
body.tf #tf-header .navbar-toggler:focus { box-shadow:0 0 0 .2rem rgba(255,255,255,.35); }
/* 浅色头部版式：图标与文字换成深墨色，避免白字压浅底 */
body.tf.head-light #tf-header { background:var(--card); border-bottom:1px solid var(--line); box-shadow:0 1px 10px rgba(16,24,40,.07); }
body.tf.head-light .tf-brand-text { color:var(--tf-heading); }
body.tf.head-light #tf-header .nav-link { color:var(--tf-ink); opacity:1; }
body.tf.head-light #tf-header .nav-link:hover { color:var(--brand); background:var(--tf-surface); }
body.tf.head-light #tf-header .nav-link.active { color:#fff; background:var(--brand-2); }
body.tf.head-light .tf-icon-btn { color:var(--tf-accent-ink); background:var(--tf-surface); }
body.tf.head-light .tf-icon-btn:hover { color:#fff; background:var(--brand-2); }
body.tf.head-light .tf-cta-ghost { border-color:var(--line); color:var(--tf-accent-ink); }
body.tf.head-light .tf-cta-ghost:hover { background:var(--brand-2); color:#fff; }
body.tf.head-light #tf-header .navbar-toggler { border-color:var(--line); background:var(--tf-surface); }
body.tf.head-light #tf-header .navbar-toggler-icon { --bs-navbar-toggler-icon-bg:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2823,32,42,0.78%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2.4' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); }
/* 折叠后的移动菜单：暗色头给深底，浅色头给白底，菜单项在手机上必须可读可点 */
@media (max-width:991px){
  body.tf #tf-header .navbar-collapse { background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.16); border-radius:12px; padding:.5rem .75rem; margin-top:.6rem; }
  body.tf #tf-header .nav-link { line-height:1.4; padding:.6rem .5rem; }
  body.tf.head-light #tf-header .navbar-collapse { background:var(--bg); border-color:var(--line); }
}

/* ---------- 首屏四形态 ---------- */
body.tf .tf-hero { padding:3.4rem 0 3.6rem; background:var(--card); position:relative; }
body.tf .tf-hero-eyebrow { display:inline-block; font-size:.76rem; font-weight:800; letter-spacing:.14em; color:var(--tf-accent-ink); background:var(--tf-surface); border-radius:999px; padding:.32rem .85rem; margin-bottom:.9rem; }
body.tf .tf-hero-title { font-size:2.4rem; font-weight:900; line-height:1.24; color:var(--tf-heading); margin:0 0 1rem; }
body.tf .tf-hero-mark { color:var(--brand); }
body.tf .tf-hero-sub { color:var(--muted); font-size:1.05rem; line-height:1.9; max-width:640px; margin:0 0 1.4rem; }
body.tf .tf-hero-note { font-size:.85rem; color:var(--muted); background:var(--bg); border:1px dashed var(--line); border-radius:10px; padding:.6rem .9rem; display:inline-block; }
body.tf .tf-hero-img, body.tf .tf-hero-wide { border-radius:16px; box-shadow:0 18px 42px rgba(16,24,40,.18); width:100%; height:auto; }
body.tf .tf-hero-wide { max-height:430px; object-fit:cover; }
body.tf .tf-hero-media { position:relative; }
body.tf .tf-hero-img { max-height:420px; object-fit:cover; }
body.tf .tf-hero-float { position:absolute; left:14px; bottom:14px; background:rgba(255,255,255,.94); color:var(--brand-2); font-weight:800; font-size:.85rem; padding:.5rem .85rem; border-radius:10px; box-shadow:0 6px 18px rgba(0,0,0,.16); }
body.tf .tf-hero-mini { gap:.6rem 1.4rem; }
body.tf .tf-hero-mini li { padding-left:.9rem; border-left:3px solid var(--brand); }
body.tf .tf-hero-mini strong { color:var(--tf-heading); font-size:1.05rem; display:block; }
body.tf .tf-hero-mini span { color:var(--muted); font-size:.84rem; }
body.tf .tf-hero-badges li { background:var(--tf-surface); color:var(--tf-accent-ink); border:1px solid var(--line); border-radius:999px; padding:.45rem .95rem; font-weight:700; font-size:.88rem; }
body.tf .tf-hero-card { background:var(--card); border:1px solid var(--line); border-radius:18px; overflow:hidden; box-shadow:0 20px 46px rgba(16,24,40,.16); }
body.tf .tf-hero-card img { width:100%; height:300px; object-fit:cover; display:block; }
body.tf .tf-hero-card-foot { display:flex; flex-wrap:wrap; gap:.5rem; align-items:center; justify-content:space-between; padding:.9rem 1.1rem; background:var(--header); color:var(--header-text); font-size:.88rem; font-weight:700; }
body.tf .tf-hero-card-foot em { font-style:normal; color:var(--accent); font-size:.82rem; }
/* 形态 4：全幅实拍底 + 深色遮罩（白字压遮罩，非压亮底） */
body.tf .tf-hero-band { padding:0; min-height:520px; display:flex; align-items:center; overflow:hidden; background:var(--header); }
body.tf .tf-hero-bg { position:absolute; inset:0; z-index:0; }
body.tf .tf-hero-bg img { width:100%; height:100%; object-fit:cover; }
body.tf .tf-hero-mask { position:absolute; inset:0; z-index:1; background:linear-gradient(105deg,rgba(6,10,14,.92) 0%,rgba(6,10,14,.74) 45%,rgba(6,10,14,.45) 100%); }
body.tf .tf-hero-in { z-index:2; padding:4rem 0; color:#fff; }
body.tf .tf-hero-band .tf-hero-title { color:#fff; max-width:760px; }
body.tf .tf-hero-band .tf-hero-sub { color:rgba(255,255,255,.88); }
body.tf .tf-hero-band .tf-hero-eyebrow { color:#fff; background:rgba(255,255,255,.16); }
body.tf .tf-hero-strip { display:flex; flex-wrap:wrap; gap:0; border:1px solid rgba(255,255,255,.24); border-radius:14px; overflow:hidden; max-width:760px; }
body.tf .tf-hero-strip li { flex:1 1 220px; padding:.9rem 1.1rem; background:rgba(255,255,255,.08); }
body.tf .tf-hero-strip strong { display:block; color:#fff; font-size:1.15rem; }
body.tf .tf-hero-strip span { color:rgba(255,255,255,.8); font-size:.82rem; }
body.tf .tf-hero-center { background:linear-gradient(180deg,var(--card),var(--bg)); }

/* ---------- 即时战报条 ---------- */
body.tf .tf-ticker { background:linear-gradient(90deg,var(--header),var(--brand-2)); color:#fff; padding:.55rem 0; }
body.tf .tf-ticker-inner { display:flex; align-items:center; gap:1rem; }
body.tf .tf-ticker-label { flex:0 0 auto; background:var(--accent); color:#231a06; font-weight:800; font-size:.85rem; padding:.4rem .9rem; border-radius:8px; margin-left:12px; }
body.tf .tf-ticker-view { overflow:hidden; flex:1 1 auto; mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent); -webkit-mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent); }
body.tf .tf-ticker-track { display:flex; gap:2.2rem; width:max-content; animation:tfTicker 42s linear infinite; }
@keyframes tfTicker { from { transform:translateX(0); } to { transform:translateX(-50%); } }
body.tf .tf-ticker-item { display:inline-flex; align-items:center; gap:.5rem; color:rgba(255,255,255,.92); text-decoration:none; font-size:.9rem; white-space:nowrap; padding:.15rem .2rem; border-bottom:1px dashed transparent; }
body.tf .tf-ticker-item:hover { color:#fff; border-bottom-color:var(--accent); }
body.tf .tf-ticker-time { color:var(--accent); font-weight:800; font-size:.8rem; }
body.tf .tf-ticker-views { opacity:.72; font-size:.78rem; }
body.tf .tf-ticker-more { flex:0 0 auto; margin-right:12px; color:#fff; text-decoration:none; font-weight:700; font-size:.85rem; border:1px solid rgba(255,255,255,.4); border-radius:8px; padding:.35rem .8rem; }
body.tf .tf-ticker-more:hover { background:#fff; color:var(--brand-2); }

/* ---------- APP 好评与客户端入口 ---------- */
body.tf .tf-app-panel { background:linear-gradient(160deg,var(--header),var(--brand-2)); color:#fff; border-radius:20px; padding:1.6rem; height:100%; box-shadow:0 18px 40px rgba(16,24,40,.2); }
body.tf .tf-app-top { display:flex; align-items:center; gap:.85rem; }
body.tf .tf-app-icon { width:52px; height:52px; border-radius:14px; background:rgba(255,255,255,.14); display:inline-flex; align-items:center; justify-content:center; font-size:1.4rem; color:var(--accent); }
body.tf .tf-app-name { font-size:1.12rem; }
body.tf .tf-app-sub { display:block; font-size:.82rem; color:rgba(255,255,255,.75); }
body.tf .tf-app-rate { display:flex; align-items:center; gap:.7rem; margin:1.15rem 0 .9rem; padding-bottom:.9rem; border-bottom:1px solid rgba(255,255,255,.16); }
body.tf .tf-app-score { font-size:2rem; font-weight:900; color:var(--accent); line-height:1; }
body.tf .tf-app-stars { color:var(--accent); font-size:.9rem; letter-spacing:1px; }
body.tf .tf-app-rate-note { font-size:.8rem; color:rgba(255,255,255,.72); margin-left:auto; }
body.tf .tf-app-feat li { display:flex; gap:.7rem; align-items:flex-start; margin-bottom:.7rem; font-size:.92rem; }
body.tf .tf-app-feat li i { color:var(--accent); margin-top:.2rem; }
body.tf .tf-app-feat strong { display:block; }
body.tf .tf-app-feat em { display:block; font-style:normal; font-size:.82rem; color:rgba(255,255,255,.75); }
body.tf .tf-app-btns { display:flex; flex-wrap:wrap; gap:.6rem; margin:1.1rem 0 .6rem; }
body.tf .tf-app-btn { background:var(--accent); color:#231a06; font-weight:800; font-size:.88rem; border-radius:10px; padding:.6rem .95rem; text-decoration:none; }
body.tf .tf-app-btn:hover { color:#231a06; filter:brightness(1.06); }
body.tf .tf-app-btn-alt { background:rgba(255,255,255,.16); color:#fff; }
body.tf .tf-app-btn-alt:hover { background:#fff; color:var(--brand-2); filter:none; }
body.tf .tf-app-btn-line { background:transparent; border:1px solid rgba(255,255,255,.5); color:#fff; }
body.tf .tf-app-btn-line:hover { background:#fff; color:var(--brand-2); }
body.tf .tf-app-note { font-size:.78rem; color:rgba(255,255,255,.7); margin:0; }
body.tf .tf-rev-card { background:var(--card); border:1px solid var(--line); border-radius:14px; padding:1.05rem 1.15rem; height:100%; box-shadow:0 4px 14px rgba(16,24,40,.05); }
body.tf .tf-rev-head { display:flex; align-items:center; gap:.7rem; }
body.tf .tf-rev-head > div { flex:1 1 auto; min-width:0; }
body.tf .tf-rev-head strong { font-size:.95rem; color:var(--tf-heading); }
body.tf .tf-rev-stars { color:var(--accent); font-size:.78rem; letter-spacing:1px; display:block; }
body.tf .tf-rev-score { font-style:normal; font-weight:900; color:var(--brand); font-size:1.05rem; }
body.tf .tf-rev-body { color:var(--muted); font-size:.9rem; line-height:1.8; margin:.7rem 0 .55rem; }
body.tf .tf-rev-foot { display:flex; align-items:center; font-size:.78rem; color:var(--muted); border-top:1px dashed var(--line); padding-top:.5rem; }
body.tf .tf-app-foot { display:flex; flex-wrap:wrap; gap:.7rem; justify-content:center; margin-top:1.2rem; }
/* 渐变头像（零网络请求，不会断链） */
body.tf .tf-avatar { flex:0 0 auto; width:44px; height:44px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; color:#fff; font-size:16px; }
body.tf .tf-av-1 { background:linear-gradient(135deg,var(--brand),var(--brand-2)); }
body.tf .tf-av-2 { background:linear-gradient(135deg,var(--brand-2),var(--header)); }
body.tf .tf-av-3 { background:linear-gradient(135deg,var(--tf-glow),var(--brand)); }
body.tf .tf-av-4 { background:linear-gradient(135deg,var(--accent),var(--brand)); color:#231a06; }
body.tf .tf-av-5 { background:linear-gradient(135deg,var(--header),var(--brand)); }
body.tf .tf-av-6 { background:linear-gradient(135deg,var(--brand),var(--accent)); color:#231a06; }

/* ---------- 焦点看板 ---------- */
body.tf .tf-focus-card { display:flex; flex-direction:column; height:100%; background:var(--card); border:1px solid var(--line); border-radius:16px; overflow:hidden; text-decoration:none; box-shadow:0 6px 18px rgba(16,24,40,.07); transition:transform .2s ease, box-shadow .2s ease; }
body.tf .tf-focus-card:hover { transform:translateY(-4px); box-shadow:0 16px 34px rgba(16,24,40,.14); }
body.tf .tf-focus-media { position:relative; display:block; }
body.tf .tf-focus-media img { width:100%; height:170px; object-fit:cover; display:block; }
body.tf .tf-focus-rank { position:absolute; left:10px; top:10px; background:var(--brand-2); color:#fff; font-style:normal; font-weight:800; font-size:.76rem; padding:.25rem .6rem; border-radius:7px; }
body.tf .tf-focus-body { padding:.9rem 1rem 1rem; display:flex; flex-direction:column; gap:.45rem; flex:1 1 auto; }
body.tf .tf-focus-body strong { color:var(--tf-heading); font-size:.95rem; line-height:1.5; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
body.tf .tf-focus-body em { font-style:normal; color:var(--muted); font-size:.82rem; line-height:1.6; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
body.tf .tf-focus-foot { margin-top:auto; display:flex; align-items:center; gap:.35rem; color:var(--muted); font-size:.78rem; }
body.tf .tf-focus-foot b { margin-left:auto; color:var(--tf-accent-ink); font-weight:700; }
body.tf .tf-focus-extra { margin-top:1rem; display:flex; flex-direction:column; gap:.6rem; }
body.tf .tf-focus-mini { display:flex; align-items:center; gap:.75rem; background:var(--bg); border:1px solid var(--line); border-radius:12px; padding:.7rem .9rem; text-decoration:none; }
body.tf .tf-focus-mini:hover { border-color:var(--brand); }
body.tf .tf-focus-mini-tag { flex:0 0 auto; background:var(--accent); color:#231a06; font-size:.74rem; font-weight:800; border-radius:6px; padding:.2rem .5rem; }
body.tf .tf-focus-mini strong { color:var(--tf-heading); font-size:.9rem; line-height:1.5; flex:1 1 auto; min-width:0; display:-webkit-box; -webkit-line-clamp:1; -webkit-box-orient:vertical; overflow:hidden; }
body.tf .tf-focus-mini em { font-style:normal; color:var(--muted); font-size:.78rem; flex:0 0 auto; }
body.tf .tf-rank-box { background:var(--card); border:1px solid var(--line); border-radius:16px; padding:1.1rem 1.2rem; margin-bottom:1rem; }
body.tf .tf-rank-title { font-size:1.05rem; font-weight:800; color:var(--tf-heading); margin-bottom:.85rem; }
body.tf .tf-rank-title i { color:var(--brand); margin-right:.4rem; }
body.tf .tf-rank-list { list-style:none; margin:0; padding:0; }
body.tf .tf-rank-list li { display:flex; align-items:flex-start; gap:.6rem; padding:.55rem 0; border-bottom:1px dashed var(--line); }
body.tf .tf-rank-list li:last-child { border-bottom:0; }
body.tf .tf-rank-no { flex:0 0 auto; width:22px; height:22px; border-radius:6px; background:var(--tf-surface); color:var(--tf-accent-ink); font-size:.76rem; font-weight:800; display:inline-flex; align-items:center; justify-content:center; }
body.tf .tf-rank-no.top { background:var(--brand-2); color:#fff; }
body.tf .tf-rank-list a { flex:1 1 auto; min-width:0; color:var(--tf-ink); font-size:.88rem; line-height:1.5; text-decoration:none; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
body.tf .tf-rank-list a:hover { color:var(--brand); }
body.tf .tf-rank-list em { flex:0 0 auto; font-style:normal; color:var(--muted); font-size:.76rem; }
body.tf .tf-rank-box-late .tf-late-list { list-style:none; margin:0; padding:0; }
body.tf .tf-late-list li { display:flex; gap:.6rem; align-items:baseline; padding:.5rem 0; border-bottom:1px dashed var(--line); }
body.tf .tf-late-list li:last-child { border-bottom:0; }
body.tf .tf-late-list a { flex:1 1 auto; min-width:0; color:var(--tf-ink); font-size:.87rem; line-height:1.5; text-decoration:none; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
body.tf .tf-late-list a:hover { color:var(--brand); }
body.tf .tf-late-list span { flex:0 0 auto; color:var(--muted); font-size:.76rem; }

/* ---------- 精选球星卡 ---------- */
body.tf .tf-star-card { display:flex; flex-direction:column; height:100%; background:var(--card); border:1px solid var(--line); border-radius:16px; overflow:hidden; text-decoration:none; box-shadow:0 6px 16px rgba(16,24,40,.06); transition:transform .2s ease, box-shadow .2s ease; }
body.tf .tf-star-card:hover { transform:translateY(-4px); box-shadow:0 18px 36px rgba(16,24,40,.14); }
body.tf .tf-star-media { position:relative; display:block; }
body.tf .tf-star-media img { width:100%; height:150px; object-fit:cover; display:block; }
body.tf .tf-star-badge { position:absolute; right:10px; top:10px; background:rgba(255,255,255,.92); color:var(--brand-2); font-size:.74rem; font-weight:800; border-radius:7px; padding:.24rem .55rem; }
body.tf .tf-star-body { padding:.85rem .95rem 1rem; display:flex; flex-direction:column; gap:.4rem; flex:1 1 auto; }
body.tf .tf-star-body strong { color:var(--tf-heading); font-size:.9rem; line-height:1.5; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
body.tf .tf-star-desc { font-style:normal; color:var(--muted); font-size:.8rem; line-height:1.6; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
body.tf .tf-star-foot { margin-top:auto; padding-top:.55rem; border-top:1px dashed var(--line); display:flex; align-items:center; gap:.3rem; color:var(--muted); font-size:.78rem; }
body.tf .tf-star-foot b { margin-left:auto; color:var(--tf-accent-ink); font-weight:800; }
body.tf .tf-star-card:hover .tf-star-foot b { color:var(--brand); }

/* ---------- 联赛与赛事速览卡 ---------- */
body.tf .tf-lg-card { position:relative; height:100%; display:flex; flex-direction:column; gap:.4rem; background:var(--card); border:1px solid var(--line); border-left:4px solid var(--brand); border-radius:14px; padding:1rem 1.1rem; transition:transform .18s ease, box-shadow .18s ease; }
body.tf .tf-lg-card:hover { transform:translateY(-3px); box-shadow:0 14px 30px rgba(16,24,40,.12); }
body.tf .tf-lg-lead { background:linear-gradient(160deg,var(--tf-surface),var(--card)); border-left-color:var(--accent); }
body.tf .tf-lg-icon { width:38px; height:38px; border-radius:11px; background:var(--tf-surface); color:var(--tf-accent-ink); display:inline-flex; align-items:center; justify-content:center; font-size:1.05rem; }
body.tf .tf-lg-lead .tf-lg-icon { background:var(--brand-2); color:#fff; }
body.tf .tf-lg-name { color:var(--tf-heading); font-size:1.02rem; }
body.tf .tf-lg-note { font-style:normal; color:var(--muted); font-size:.82rem; line-height:1.6; }
body.tf .tf-lg-link { display:block; margin-top:.25rem; color:var(--tf-accent-ink); font-size:.84rem; line-height:1.55; text-decoration:none; border-top:1px dashed var(--line); padding-top:.55rem; }
body.tf .tf-lg-link:hover { color:var(--brand); }
body.tf .tf-lg-cut { display:-webkit-box; -webkit-line-clamp:1; -webkit-box-orient:vertical; overflow:hidden; }
body.tf .tf-lg-all { font-size:.78rem; color:var(--muted); text-decoration:none; }
body.tf .tf-lg-all:hover { color:var(--brand); }
body.tf .tf-lg-bar { display:flex; flex-wrap:wrap; gap:.8rem; justify-content:space-between; align-items:center; margin-top:1.6rem; padding:.9rem 1.2rem; border-radius:14px; background:var(--bg); border:1px solid var(--line); color:var(--muted); font-size:.88rem; }
body.tf .tf-lg-bar-a { color:var(--tf-accent-ink); font-weight:800; text-decoration:none; }
body.tf .tf-lg-bar-a:hover { color:var(--brand); }

/* ---------- 赛场图集 ---------- */
body.tf .tf-gallery { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); grid-auto-rows:150px; gap:.8rem; }
body.tf .tf-gal-item { position:relative; display:block; overflow:hidden; border-radius:14px; text-decoration:none; }
body.tf .tf-gal-big { grid-column:span 2; grid-row:span 2; }
body.tf .tf-gal-item img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .35s ease; }
body.tf .tf-gal-item:hover img { transform:scale(1.06); }
body.tf .tf-gal-cap { position:absolute; inset:auto 0 0 0; padding:1.5rem .9rem .7rem; background:linear-gradient(180deg,rgba(4,8,12,0),rgba(4,8,12,.86)); color:#fff; }
body.tf .tf-gal-cap strong { display:block; font-size:.86rem; line-height:1.45; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
body.tf .tf-gal-big .tf-gal-cap strong { font-size:1.02rem; }
body.tf .tf-gal-cap em { font-style:normal; font-size:.76rem; opacity:.85; }

/* ---------- 更新时间轴 ---------- */
body.tf .tf-tl { position:relative; padding-left:1.4rem; }
body.tf .tf-tl::before { content:""; position:absolute; left:.42rem; top:.4rem; bottom:.4rem; width:2px; background:linear-gradient(var(--brand),var(--accent)); opacity:.5; }
body.tf .tf-tl-item { position:relative; display:flex; gap:1rem; align-items:flex-start; padding:.9rem 1rem; margin-bottom:.7rem; background:var(--card); border:1px solid var(--line); border-radius:14px; text-decoration:none; transition:transform .18s ease, box-shadow .18s ease; }
body.tf .tf-tl-item:hover { transform:translateX(4px); box-shadow:0 10px 24px rgba(16,24,40,.1); }
body.tf .tf-tl-dot { position:absolute; left:-1.18rem; top:1.3rem; width:12px; height:12px; border-radius:50%; background:var(--card); border:3px solid var(--brand); }
body.tf .tf-tl-date { flex:0 0 58px; text-align:center; background:var(--tf-surface); border-radius:10px; padding:.35rem .2rem; }
body.tf .tf-tl-date strong { display:block; font-size:1.1rem; color:var(--tf-heading); line-height:1.1; }
body.tf .tf-tl-date em { font-style:normal; font-size:.74rem; color:var(--muted); }
body.tf .tf-tl-body { flex:1 1 auto; min-width:0; }
body.tf .tf-tl-title { display:block; color:var(--tf-heading); font-size:.95rem; line-height:1.55; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
body.tf .tf-tl-desc { display:block; color:var(--muted); font-size:.83rem; line-height:1.7; margin-top:.2rem; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
body.tf .tf-tl-meta { display:flex; align-items:center; color:var(--muted); font-size:.78rem; margin-top:.35rem; }
body.tf .tf-tl-meta i { color:var(--brand); }
body.tf .tf-tl-foot { display:flex; flex-wrap:wrap; gap:.8rem; align-items:center; justify-content:space-between; margin-top:1.2rem; }
body.tf .tf-tl-note { color:var(--muted); font-size:.82rem; }

/* ---------- 球迷投票 ---------- */
body.tf .tf-poll-intro h2 { font-size:1.6rem; font-weight:800; color:var(--tf-heading); margin:.35rem 0 .7rem; }
body.tf .tf-poll-intro h2 i { color:var(--brand); margin-right:.4rem; }
body.tf .tf-poll-intro p { color:var(--muted); line-height:1.85; }
body.tf .tf-poll-note li { color:var(--tf-ink); font-size:.88rem; margin-bottom:.45rem; }
body.tf .tf-poll-note i { color:var(--brand); }
body.tf .tf-poll-box { background:var(--card); border:1px solid var(--line); border-radius:18px; padding:1.4rem 1.5rem; height:100%; box-shadow:0 10px 26px rgba(16,24,40,.07); }
body.tf .tf-poll-q { font-size:1.12rem; font-weight:800; color:var(--tf-heading); margin-bottom:1.1rem; line-height:1.5; }
body.tf .tf-poll-opt { position:relative; display:flex; align-items:center; gap:.8rem; padding:.7rem .9rem; border:1px solid var(--line); border-radius:12px; margin-bottom:.6rem; cursor:pointer; overflow:hidden; background:var(--bg); }
body.tf .tf-poll-opt:hover { border-color:var(--brand); }
body.tf .tf-poll-opt input { position:absolute; opacity:0; pointer-events:none; }
body.tf .tf-poll-bar { position:absolute; inset:0 auto 0 0; width:100%; }
body.tf .tf-poll-fill { display:block; height:100%; width:0; background:var(--tf-surface); transition:width .5s ease; }
body.tf .tf-poll-opt.picked .tf-poll-fill { background:var(--tf-surface); }
body.tf .tf-poll-opt.picked { border-color:var(--brand); box-shadow:inset 0 0 0 1px var(--brand); }
body.tf .tf-poll-label { position:relative; flex:1 1 auto; color:var(--tf-ink); font-weight:700; font-size:.93rem; }
body.tf .tf-poll-pct { position:relative; flex:0 0 auto; font-weight:800; color:var(--tf-accent-ink); font-size:.9rem; min-width:44px; text-align:right; }
body.tf .tf-poll-actions { display:flex; flex-wrap:wrap; gap:.7rem; align-items:center; margin-top:.9rem; }
body.tf .tf-poll-total { margin-left:auto; color:var(--muted); font-size:.85rem; }
body.tf .tf-poll-total strong { color:var(--brand); font-size:1.05rem; }
body.tf .tf-poll-tip { margin:.7rem 0 0; font-size:.8rem; color:var(--muted); }

/* ---------- 话题标签云 ---------- */
body.tf .tf-tagcloud { display:flex; flex-wrap:wrap; gap:.55rem; }
body.tf .tf-tag { background:var(--bg); border:1px solid var(--line); color:var(--tf-ink); border-radius:999px; padding:.42rem .95rem; font-size:.88rem; text-decoration:none; transition:all .16s ease; }
body.tf .tf-tag:hover { background:var(--brand-2); color:#fff; border-color:var(--brand-2); transform:translateY(-2px); }
body.tf .tf-tag-foot { display:flex; flex-wrap:wrap; gap:.7rem; margin-top:1.1rem; }

/* ---------- 品牌宣言 ---------- */
body.tf .tf-manifesto { text-align:center; max-width:1000px; margin:0 auto; }
body.tf .tf-manifesto h2 { font-size:1.9rem; font-weight:900; color:#fff; margin:.5rem 0 .8rem; }
body.tf .tf-manifesto-lead { color:rgba(255,255,255,.85); font-size:1.02rem; line-height:1.9; max-width:760px; margin:0 auto; }
body.tf .tf-manifesto-item { background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.18); border-radius:16px; padding:1.3rem 1.2rem; height:100%; text-align:left; }
body.tf .tf-manifesto-icon { width:44px; height:44px; border-radius:12px; background:var(--accent); color:#231a06; display:inline-flex; align-items:center; justify-content:center; font-size:1.1rem; margin-bottom:.8rem; }
body.tf .tf-manifesto-item strong { display:block; color:#fff; font-size:1.02rem; margin-bottom:.4rem; }
body.tf .tf-manifesto-item p { color:rgba(255,255,255,.78); font-size:.88rem; line-height:1.8; margin:0; }
body.tf .tf-manifesto-foot { display:flex; flex-wrap:wrap; gap:.6rem 1.6rem; justify-content:center; margin-top:1.6rem; padding-top:1.2rem; border-top:1px solid rgba(255,255,255,.16); color:rgba(255,255,255,.75); font-size:.84rem; }

/* ---------- FAQ ---------- */
body.tf .tf-accordion { border-radius:16px; overflow:hidden; }
body.tf .tf-accordion .accordion-item { border:1px solid var(--line); margin-bottom:.6rem; border-radius:12px; overflow:hidden; background:var(--card); }
body.tf .tf-accordion .accordion-button { background:var(--card); color:var(--tf-heading); font-weight:800; font-size:1rem; box-shadow:none; padding:1rem 1.1rem; text-align:left; }
body.tf .tf-accordion .accordion-button:not(.collapsed) { background:var(--tf-surface); color:var(--tf-heading); }
body.tf .tf-accordion .accordion-button:focus { box-shadow:0 0 0 .2rem rgba(0,0,0,.08); }
body.tf .tf-accordion .accordion-body { color:var(--muted); font-size:.93rem; line-height:1.9; background:var(--card); padding:.9rem 1.1rem 1.1rem; }
body.tf .tf-faq-no { flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center; width:24px; height:24px; border-radius:7px; background:var(--brand-2); color:#fff; font-size:.78rem; margin-right:.7rem; }

/* ---------- 页脚 ---------- */
body.tf #tf-footer { position:relative; background:var(--header); padding-top:3.2rem; }
body.tf .tf-footer-photo { position:absolute; inset:0; z-index:0; }
body.tf .tf-footer-photo img { width:100%; height:100%; object-fit:cover; opacity:.28; }
body.tf .tf-footer-in { z-index:1; }
body.tf #tf-footer::after { content:""; position:absolute; inset:0; background:rgba(4,8,12,.72); z-index:0; }
body.tf .tf-foot-title { color:#fff; font-weight:800; font-size:.95rem; letter-spacing:.04em; margin-bottom:1rem; position:relative; z-index:1; }
body.tf .tf-foot-title i { color:var(--accent); }
body.tf .tf-foot-list { position:relative; z-index:1; }
body.tf .tf-foot-list li { margin-bottom:.5rem; }
body.tf .tf-foot-list a { color:rgba(255,255,255,.72); text-decoration:none; font-size:.88rem; }
body.tf .tf-foot-list a:hover { color:#fff; }
body.tf .tf-foot-desc { position:relative; z-index:1; color:rgba(255,255,255,.72); font-size:.88rem; line-height:1.85; }
body.tf .tf-foot-meta { position:relative; z-index:1; color:rgba(255,255,255,.72); font-size:.85rem; }
body.tf .tf-foot-meta li { margin-bottom:.4rem; }
body.tf .tf-foot-meta i { color:var(--accent); }
body.tf .link-clean { color:rgba(255,255,255,.72); text-decoration:none; }
body.tf .link-clean:hover { color:#fff; }
body.tf .tf-foot-brand { position:relative; z-index:1; color:#fff; font-weight:800; }
body.tf .tf-foot-bottom { position:relative; z-index:1; margin-top:1.4rem; padding-top:1.1rem; border-top:1px solid rgba(255,255,255,.14); color:rgba(255,255,255,.6); font-size:.82rem; gap:.5rem 1.5rem; }
body.tf .tf-foot-note { opacity:.85; }

/* ---------- 卡片皮肤（同一版式在不同皮肤下的圆角/边框/投影/间距节奏） ---------- */
body.tf.style-1 { --tf-radius:18px; --tf-shadow:0 10px 26px rgba(16,24,40,.08); }
body.tf.style-2 { --tf-radius:6px;  --tf-shadow:0 2px 0 rgba(16,24,40,.06); }
body.tf.style-3 { --tf-radius:26px; --tf-shadow:0 18px 40px rgba(16,24,40,.12); }
body.tf .tf-focus-card, body.tf .tf-star-card, body.tf .tf-rank-box, body.tf .tf-poll-box, body.tf .tf-rev-card, body.tf .tf-lg-card, body.tf .tf-tl-item, body.tf .tf-manifesto-item, body.tf .tf-hero-card { border-radius:var(--tf-radius); }
body.tf.style-2 .tf-sec { padding:3.2rem 0; }
body.tf.style-2 .tf-focus-card, body.tf.style-2 .tf-star-card, body.tf.style-2 .tf-rank-box, body.tf.style-2 .tf-poll-box, body.tf.style-2 .tf-rev-card, body.tf.style-2 .tf-lg-card, body.tf.style-2 .tf-tl-item { border-width:2px; border-color:var(--brand-2); box-shadow:none; }
body.tf.style-2 .tf-lg-card { border-left-width:6px; }
body.tf.style-3 .tf-sec { padding:5rem 0; }
body.tf.style-3 .tf-focus-card, body.tf.style-3 .tf-star-card, body.tf.style-3 .tf-rev-card, body.tf.style-3 .tf-lg-card { box-shadow:var(--tf-shadow); border-color:transparent; }
body.tf.style-1 .tf-app-panel { border-radius:22px; }

/* ---------- 版式微调：让 12 套编排在视觉上再分档 ---------- */
body.tf.layout-1 .tf-sec-head h2, body.tf.layout-5 .tf-sec-head h2, body.tf.layout-9 .tf-sec-head h2 { font-size:2rem; }
body.tf.layout-2 .tf-hero-title, body.tf.layout-6 .tf-hero-title, body.tf.layout-10 .tf-hero-title { font-size:2.15rem; }
body.tf.layout-3 .tf-sec, body.tf.layout-7 .tf-sec, body.tf.layout-11 .tf-sec { padding:3.6rem 0; }
body.tf.layout-4 .tf-gallery, body.tf.layout-8 .tf-gallery, body.tf.layout-12 .tf-gallery { grid-template-columns:repeat(3,minmax(0,1fr)); grid-auto-rows:170px; }
body.tf.layout-4 .tf-hero, body.tf.layout-8 .tf-hero, body.tf.layout-12 .tf-hero { padding-top:2.6rem; }
body.tf.theme-2 .tf-gallery, body.tf.theme-7 .tf-gallery { grid-template-columns:repeat(3,minmax(0,1fr)); }

/* ---------- 内页与详情页适配（栏目/标签/搜索/详情共用） ---------- */
body.tf .mipcms-main { background:var(--bg); }
body.tf .detail-title { color:var(--tf-heading); font-size:1.65rem; line-height:1.45; font-weight:900; }
body.tf .mipcms-detail-body { color:var(--tf-ink); font-size:1.02rem; line-height:2; }
body.tf .mipcms-detail-body h2, body.tf .mipcms-detail-body h3 { color:var(--tf-heading); font-weight:800; margin:1.9rem 0 .8rem; padding-left:.75rem; border-left:4px solid var(--brand); }
body.tf .mipcms-detail-body h3 { font-size:1.12rem; border-left-width:3px; }
body.tf .mipcms-detail-body p { margin:0 0 1.1rem; }
body.tf .mipcms-detail-body ul, body.tf .mipcms-detail-body ol { margin:0 0 1.2rem; padding-left:1.35rem; }
body.tf .mipcms-detail-body li { margin-bottom:.5rem; line-height:1.9; }
body.tf .mipcms-detail-body strong { color:var(--tf-heading); }
body.tf .mipcms-detail-body a { color:var(--brand); }
body.tf .mipcms-detail-body table { width:100%; border-collapse:collapse; margin:0 0 1.3rem; font-size:.95rem; }
body.tf .mipcms-detail-body th, body.tf .mipcms-detail-body td { border:1px solid var(--line); padding:.6rem .75rem; text-align:left; }
body.tf .mipcms-detail-body th { background:var(--tf-surface); color:var(--tf-heading); }
/* 正文插图：头图与文中配图统一圆角+阴影+图注 */
body.tf .art-lead { margin:1.5rem 0 1.8rem; text-align:center; }
body.tf .art-lead img { width:100%; height:auto; max-height:440px; object-fit:cover; border-radius:16px; box-shadow:0 14px 32px rgba(16,24,40,.14); }
body.tf .art-lead figcaption { margin-top:.6rem; font-size:.84rem; color:var(--muted); }
body.tf .tags a { background:var(--bg); border:1px solid var(--line); color:var(--tf-ink); border-radius:999px; padding:.3rem .8rem; font-size:.84rem; text-decoration:none; }
body.tf .tags a:hover { background:var(--brand-2); color:#fff; }
body.tf .pagination a, body.tf .mip-page-pagination a { border-radius:10px; }

/* ---------- 移动端 ---------- */
@media (max-width:991px){
  body.tf .tf-hero { padding:2.4rem 0 2.6rem; }
  body.tf .tf-hero-title { font-size:1.85rem; }
  body.tf .tf-hero-band { min-height:440px; }
  body.tf .tf-hero-in { padding:2.6rem 0; }
  body.tf .tf-sec { padding:2.8rem 0; }
  body.tf .tf-sec-head { margin-bottom:1.6rem; }
  body.tf .tf-sec-head h2 { font-size:1.5rem; }
  body.tf .tf-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); grid-auto-rows:130px; }
  body.tf .tf-ticker-label { margin-left:8px; }
  body.tf .tf-ticker-more { display:none; }
  body.tf .tf-app-panel { padding:1.25rem; }
  body.tf .tf-poll-box { padding:1.1rem 1.15rem; }
  body.tf .tf-brand-text { max-width:52vw; }
}
@media (max-width:575px){
  body.tf .tf-hero-strip li { flex:1 1 100%; }
  body.tf .tf-hero-card img { height:220px; }
  body.tf .tf-tl-item { gap:.6rem; padding:.75rem .8rem; }
  body.tf .tf-gal-big { grid-column:span 2; grid-row:span 1; }
  body.tf .tf-rev-head strong { font-size:.9rem; }
  body.tf .detail-title { font-size:1.32rem; }
  body.tf .mipcms-detail-body { font-size:.98rem; }
}
/* 减少动效偏好 */
@media (prefers-reduced-motion:reduce){
  body.tf .tf-ticker-track { animation:none; }
  body.tf .tf-gal-item img, body.tf .tf-btn, body.tf .tf-focus-card, body.tf .tf-star-card, body.tf .tf-tl-item { transition:none; }
}

/* ---------- 详情页工具条与阅读进度 ---------- */
body.tf .tf-progress { position:sticky; top:0; z-index:1030; height:3px; background:var(--line); border-radius:2px; margin-bottom:.9rem; overflow:hidden; }
body.tf .tf-progress span { display:block; height:100%; width:0; background:linear-gradient(90deg,var(--brand),var(--accent)); transition:width .12s linear; }
body.tf .tf-art-tools { display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; margin-top:.9rem; padding-top:.85rem; border-top:1px dashed var(--line); }
body.tf .tf-art-tool-label { color:var(--muted); font-size:.82rem; margin-right:.15rem; }
body.tf .tf-size-btn { min-width:38px; height:32px; border:1px solid var(--line); background:var(--bg); color:var(--tf-accent-ink); border-radius:8px; font-weight:800; font-size:.85rem; cursor:pointer; }
body.tf .tf-size-btn:hover { border-color:var(--brand); }
body.tf .tf-size-btn.is-on { background:var(--brand-2); color:#fff; border-color:var(--brand-2); }
body.tf .tf-copy-btn { height:32px; border:1px solid var(--line); background:var(--bg); color:var(--tf-accent-ink); border-radius:8px; padding:0 .8rem; font-weight:700; font-size:.84rem; cursor:pointer; }
body.tf .tf-copy-btn:hover { background:var(--brand-2); color:#fff; border-color:var(--brand-2); }
body.tf .tf-tool-link { display:inline-flex; align-items:center; height:32px; border:1px solid var(--line); border-radius:8px; padding:0 .8rem; font-size:.84rem; font-weight:700; color:var(--tf-accent-ink); text-decoration:none; background:var(--bg); }
body.tf .tf-tool-link:hover { background:var(--brand-2); color:#fff; border-color:var(--brand-2); }
body.tf .tf-copy-tip { font-size:.8rem; color:var(--brand); }
body.tf .mipcms-detail-body { font-size:1.02rem; }
