/* ── 1. 设计变量 ───────────────────────────────── */
:root{
  --ink:#14171c;--ink-2:#3a4049;--ink-3:#5f6673;--ink-4:#8a9099;
  --bg:#f7f7f6;--card:#ffffff;
  --line:#e6e6e2;--line-soft:#f0efeb;
  --brand:#20325c;--brand-2:#16243f;--brand-bg:#eef2f9;
  --risk:#b42318;--risk-deep:#7a271a;--risk-bg:#fef3f2;
  --warn:#b54708;--warn-bg:#fffaeb;
  --good:#067647;--good-bg:#ecfdf3;
  --legal:#4a3f6b;--legal-bg:#f3f0fa;
  --info:#175cd3;--info-bg:#eff8ff;
  --r-sm:6px;--r:8px;--r-lg:10px;--max:1280px;--sidebar-w:300px;
  --shadow-sm:0 1px 2px rgba(20,23,28,.05);
  --shadow-md:0 4px 12px -2px rgba(20,23,28,.08),0 1px 2px rgba(20,23,28,.04);
  --shadow-lg:0 12px 32px -8px rgba(20,23,28,.14),0 2px 6px rgba(20,23,28,.05);
  --serif:"Noto Serif SC","Source Han Serif SC","Source Han Serif CN","Songti SC","STSong","SimSun",serif;
  --sans:"Noto Sans SC",-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,sans-serif;
  --ease:cubic-bezier(.2,.7,.2,1);
  --pal-cols:minmax(0,1fr) 96px 56px 84px;
}

/* ── 2. 基础重置 ───────────────────────────────── */
*{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%;}
html,body{margin:0;padding:0;}
body{
  background:var(--bg);color:var(--ink);font-family:var(--sans);
  font-size:15px;line-height:1.7;-webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;
}
::selection{background:var(--brand-bg);color:var(--brand-2);}
a{color:inherit;text-decoration:none;transition:color .16s var(--ease);}
ul,ol{margin:0;padding:0;list-style:none;}
button{font-family:inherit;cursor:pointer;border:0;background:none;color:inherit;}
img{display:block;max-width:100%;}
h1,h2,h3,h4,p,dl,dd{margin:0;}
:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:3px;}
.wrap{max-width:var(--max);margin:0 auto;padding:0 24px;}
.skip-link{
  position:absolute;left:-9999px;top:0;z-index:200;
  padding:10px 18px;background:var(--brand);color:#fff;
  font-size:14px;font-weight:600;border-radius:0 0 var(--r-sm) 0;
}
.skip-link:focus{left:0;}
.sr-only{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;
}

/* ── 3. 顶部工具条 ─────────────────────────────── */
.topbar{
  background:#f1f1ee;border-top:3px solid var(--brand);
  border-bottom:1px solid var(--line);
  font-size:12.5px;color:var(--ink-3);
}
.topbar .wrap{height:38px;display:flex;align-items:center;gap:20px;}
.topbar .date{flex:0 0 auto;color:var(--ink-2);font-variant-numeric:tabular-nums;}
.topbar .date b{color:var(--ink);font-weight:700;margin-right:6px;}
.notice-scroll{flex:1;min-width:0;display:flex;align-items:center;gap:10px;overflow:hidden;}
.notice-scroll .tag{
  flex:0 0 auto;display:inline-flex;align-items:center;gap:5px;
  color:var(--risk);font-weight:700;font-size:11.5px;
  padding:1px 7px;border-radius:3px;background:var(--risk-bg);line-height:1.6;
}
.pulse-dot{
  width:5px;height:5px;border-radius:50%;background:var(--risk);
  animation:pulse 1.6s ease-in-out infinite;
}
@keyframes pulse{0%,100%{opacity:1;}50%{opacity:.3;}}
.notice-scroll a{
  flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  color:var(--ink-3);
}
.notice-scroll a:hover{color:var(--brand);}
.topbar-links{flex:0 0 auto;display:flex;gap:16px;}
.topbar-links a{padding:9px 0;}
.topbar-links a:hover{color:var(--ink);}

/* ── 4. 头部 ───────────────────────────────────── */
.masthead{background:var(--card);border-bottom:1px solid var(--line);}
.masthead .wrap{padding-top:20px;padding-bottom:20px;display:flex;align-items:center;gap:32px;}
.brand{flex:0 0 auto;display:flex;align-items:center;min-width:0;}
.brand picture{display:flex;align-items:center;}
.brand-logo{height:42px;width:auto;object-fit:contain;}
.brand-fallback{
  display:none;font-family:var(--serif);
  font-size:24px;font-weight:600;letter-spacing:.06em;color:var(--ink);
}
.brand-fallback::after{
  content:"";display:inline-block;width:5px;height:5px;
  background:var(--risk);border-radius:50%;margin-left:7px;vertical-align:6px;
}
/* 检索：整块 .search 即胶囊，按钮宽度随标签自适应，不再写死 padding-right */
.search{
  flex:1 1 auto;min-width:0;max-width:720px;
  display:flex;align-items:center;gap:10px;
  height:44px;padding:0 4px 0 16px;
  background:var(--bg);border:1px solid var(--line);border-radius:100px;
  transition:border-color .2s,background .2s,box-shadow .2s;
}
.search-icon{flex:0 0 16px;width:16px;height:16px;color:var(--ink-4);pointer-events:none;}
.search input{
  flex:1 1 auto;min-width:0;width:100%;height:100%;padding:0;
  border:0;background:transparent;
  font-family:inherit;font-size:14px;color:var(--ink);outline:none;
}
.search input::placeholder{color:var(--ink-4);}
.search:focus-within{
  border-color:var(--brand);background:#fff;
  box-shadow:0 0 0 3px rgba(32,50,92,.10);
}
.search input::-webkit-search-cancel-button{-webkit-appearance:none;}
.search button{
  flex:0 0 auto;height:36px;padding:0 22px;border-radius:100px;
  background:var(--brand);color:#fff;font-size:13.5px;font-weight:600;
  transition:background .16s var(--ease);
}
.search button:hover{background:var(--brand-2);}
.mast-actions{flex:0 0 auto;display:flex;gap:10px;margin-left:auto;}
.mast-actions a{
  font-size:14px;font-weight:500;color:var(--ink-2);
  padding:9px 18px;border:1px solid var(--line);border-radius:100px;
  transition:all .16s var(--ease);white-space:nowrap;
}
.mast-actions a:hover{color:var(--brand);border-color:var(--brand);background:#fff;}
.mast-actions a.primary{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600;}
.mast-actions a.primary:hover{background:var(--brand-2);border-color:var(--brand-2);color:#fff;}

/* ── 5. 主导航 ─────────────────────────────────── */
.mainnav{
  position:sticky;top:0;z-index:40;
  background:rgba(255,255,255,.88);
  -webkit-backdrop-filter:blur(12px) saturate(1.6);
  backdrop-filter:blur(12px) saturate(1.6);
  border-bottom:1px solid var(--line);
}
.mainnav .wrap{
  display:flex;align-items:stretch;height:52px;
  overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;
}
.mainnav .wrap::-webkit-scrollbar{display:none;}
.mainnav a{
  flex:0 0 auto;display:flex;align-items:center;padding:0 16px;
  font-size:14.5px;font-weight:500;color:var(--ink-2);
  position:relative;white-space:nowrap;transition:color .16s var(--ease);
}
.mainnav a:first-child{padding-left:0;}
.mainnav a:hover{color:var(--brand);}
.mainnav a.active{font-weight:700;color:var(--ink);}
.mainnav a.active::after{
  content:"";position:absolute;left:16px;right:16px;bottom:0;
  height:2px;background:var(--brand);border-radius:2px 2px 0 0;
}
.mainnav a:first-child.active::after{left:0;right:16px;}

/* ── 6. 布局骨架 ───────────────────────────────── */
.main{padding-top:24px;padding-bottom:64px;}
.layout{
  display:grid;grid-template-columns:minmax(0,1fr) var(--sidebar-w);
  gap:32px;align-items:start;
}
.content{min-width:0;}
.sidebar{display:flex;flex-direction:column;gap:24px;position:sticky;top:76px;}
@media (min-width:901px) and (max-height:820px){
  .sidebar{position:static;}
}

/* ── 7. 面包屑 ─────────────────────────────────── */
.breadcrumb{
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  font-size:12.5px;color:var(--ink-3);margin-bottom:20px;
}
.breadcrumb a{color:var(--ink-3);}
.breadcrumb a:hover{color:var(--brand);}
.bc-sep{color:var(--ink-4);user-select:none;}
.bc-current{color:var(--ink);font-weight:500;}

/* ── 8. 分类徽章（列表页 / 文章页共用） ────────── */
.cat-badge{
  display:inline-flex;align-items:center;gap:5px;
  font-size:11.5px;font-weight:600;line-height:1;
  padding:4px 9px;border-radius:4px;white-space:nowrap;
}
.cat-badge::before{
  content:"";width:5px;height:5px;border-radius:1.5px;background:currentColor;
}
.cat-risk{background:var(--risk-bg);color:var(--risk);box-shadow:inset 0 0 0 1px #fecdca;}
.cat-legal{background:var(--legal-bg);color:var(--legal);box-shadow:inset 0 0 0 1px #d9d0f0;}
.cat-info{background:var(--info-bg);color:var(--info);box-shadow:inset 0 0 0 1px #b2ddff;}
.cat-good{background:var(--good-bg);color:var(--good);box-shadow:inset 0 0 0 1px #abefc6;}
.cat-warn{background:var(--warn-bg);color:var(--warn);box-shadow:inset 0 0 0 1px #fedf89;}

/* ── 9. 风险等级标签 + 色点 ───────────────────── */
.lv-tag{
  display:inline-flex;align-items:center;gap:5px;
  font-size:12px;font-weight:600;line-height:1;
  padding:5px 9px;border-radius:5px;white-space:nowrap;
}
.lv-tag::before{
  content:"";flex:0 0 6px;width:6px;height:6px;border-radius:2px;
  background:currentColor;
}
.lv-r{background:var(--risk-deep);color:#fff;}
.lv-r::before{background:#fff;}
.lv-d{background:var(--risk-bg);color:var(--risk);box-shadow:inset 0 0 0 1px #fecdca;}
.lv-w{background:var(--warn-bg);color:var(--warn);box-shadow:inset 0 0 0 1px #fedf89;}
.lv-l{background:var(--legal-bg);color:var(--legal);box-shadow:inset 0 0 0 1px #d9d0f0;}
.lv-v{background:var(--good-bg);color:var(--good);box-shadow:inset 0 0 0 1px #abefc6;}
.lv-a{background:var(--info-bg);color:var(--info);box-shadow:inset 0 0 0 1px #b2ddff;}
.lv-t{background:var(--brand-bg);color:var(--brand);box-shadow:inset 0 0 0 1px #d3dcef;}
.lg{width:7px;height:7px;border-radius:2px;flex:0 0 7px;display:inline-block;}
.lg-r{background:var(--risk-deep);}
.lg-d{background:var(--risk);}
.lg-w{background:var(--warn);}
.lg-l{background:var(--legal);}
.lg-v{background:var(--good);}
.lg-info{background:var(--info);}

/* ── 10. Panel 容器 ────────────────────────────── */
.panel{
  background:var(--card);border:1px solid var(--line);
  border-radius:var(--r-lg);box-shadow:var(--shadow-sm);
  margin-bottom:32px;overflow:hidden;padding-bottom:20px;
}
.panel--feature{box-shadow:var(--shadow-md);}
.panel--feature .panel-head{background:var(--ink);border-bottom-color:transparent;}
.panel--feature .panel-head h2{color:#fff;}
.panel--feature .panel-stat{color:rgba(255,255,255,.55);}
.panel--feature .panel-stat b{color:#ff9b8f;}
.panel--feature .panel-stat i{color:rgba(255,255,255,.25);}
.panel--feature .panel-link{color:rgba(255,255,255,.68);}
.panel--feature .panel-link:hover{color:#fff;}
.panel--feature .panel-head :focus-visible,
.panel--feature .pa-toolbar :focus-visible{outline-color:#fff;}
.panel-head{
  display:flex;align-items:center;gap:14px;
  padding:16px 24px;border-bottom:1px solid var(--line);flex-wrap:wrap;
}
.panel-head h2{
  font-size:18px;font-weight:700;letter-spacing:.01em;color:var(--ink);
  display:flex;align-items:center;gap:10px;
}
.panel-head h2::before{
  content:"";width:4px;height:18px;border-radius:2px;
  background:var(--brand);flex:0 0 4px;
}
.panel-stat{font-size:13px;color:var(--ink-3);font-variant-numeric:tabular-nums;}
.panel-stat b{color:var(--ink);font-weight:700;}
.panel-stat i{font-style:normal;margin:0 7px;color:var(--line);}
.panel-link{margin-left:auto;font-size:13.5px;font-weight:600;color:var(--ink-3);}
.panel-link:hover{color:var(--brand);}
.panel-body{padding:24px;}

/* ── 11. 侧栏通用组件（三页共用） ──────────────── */
.widget{
  background:var(--card);border:1px solid var(--line-soft);
  border-radius:var(--r);box-shadow:var(--shadow-sm);
  padding:18px 18px 8px;
}
.w-head{
  display:flex;align-items:baseline;gap:8px;
  padding-bottom:12px;margin-bottom:4px;
  border-bottom:1px solid var(--line-soft);
}
.w-head h3,.w-head h2{font-size:15px;font-weight:700;color:var(--ink);letter-spacing:.01em;}
.w-head span{font-size:12px;color:var(--ink-3);}
.w-head a{margin-left:auto;font-size:12.5px;color:var(--ink-3);}
.w-head a:hover{color:var(--brand);}
.tagcloud{display:flex;flex-wrap:wrap;gap:8px;padding:14px 0;}
.tagcloud a{
  font-size:12.5px;color:var(--ink-2);padding:4px 12px;
  border:1px solid var(--line);border-radius:5px;background:var(--card);
  transition:all .16s var(--ease);
}
.tagcloud a:hover{color:var(--brand);border-color:var(--brand);background:var(--brand-bg);}
/* 侧栏相关文章列表 */
.rel-list li{
  display:flex;align-items:baseline;gap:10px;
  padding:10px 0;border-bottom:1px solid var(--line-soft);
}
.rel-list li:last-child{border-bottom:0;padding-bottom:12px;}
.rel-list a{
  flex:1;min-width:0;font-size:13.5px;line-height:1.6;font-weight:500;color:var(--ink-2);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  overflow:hidden;transition:color .16s var(--ease);
}
.rel-list li:hover a{color:var(--brand);}
.rel-list time{flex:0 0 auto;font-size:11.5px;color:var(--ink-3);font-variant-numeric:tabular-nums;}

/* ── 12. 订阅框（列表页 / 文章页共用） ─────────── */
.subscribe-box{
  background:var(--card);border:1px solid var(--line);
  border-left:3px solid var(--brand);border-radius:var(--r);
  box-shadow:var(--shadow-sm);padding:18px;
}
.sb-title{font-size:15px;font-weight:700;color:var(--ink);margin-bottom:8px;}
.sb-desc{font-size:12.5px;line-height:1.7;color:var(--ink-3);margin-bottom:14px;}
.sb-form{display:flex;gap:8px;}
.sb-form input{
  flex:1 1 auto;min-width:0;height:32px;padding:0 12px;
  border:1px solid var(--line);border-radius:var(--r-sm);
  background:var(--bg);font-family:inherit;font-size:14px;color:var(--ink);
  outline:none;transition:border-color .16s,box-shadow .16s;
}
.sb-form input::placeholder{color:var(--ink-4);}
.sb-form input:focus{
  border-color:var(--brand);background:#fff;
  box-shadow:0 0 0 3px rgba(32,50,92,.10);
}
.sb-form button{
  flex:0 0 auto;height:32px;padding:0 16px;
  background:var(--brand);color:#fff;border-radius:var(--r-sm);
  font-size:14px;font-weight:600;transition:background .16s var(--ease);
}
.sb-form button:hover{background:var(--brand-2);}
/* ── 订阅反馈行（全站通用；首页另有 .page-home 前缀覆盖） ── */
.sb-note{
  font-size:12px;
  line-height:1.6;
  color:var(--ink-4);
  padding:8px 0 2px;
  margin:0;
  transition:color .16s var(--ease);
}
.sb-note.ok{color:var(--good);font-weight:600;}
.sb-note.err{color:var(--risk);font-weight:600;}

/* ── 13. 举报框（列表页 / 文章页共用） ─────────── */
.report-box{
  background:var(--risk-bg);border:1px solid #fecdca;
  border-radius:var(--r);padding:18px;
}
.rb-head{
  display:flex;align-items:center;gap:8px;
  font-size:15px;font-weight:700;color:var(--risk);margin-bottom:8px;
}
.rb-head svg{width:16px;height:16px;}
.rb-desc{font-size:12.5px;line-height:1.7;color:var(--ink-2);margin-bottom:14px;}
.rb-btn{
  display:inline-flex;align-items:center;gap:6px;
  padding:8px 16px;background:var(--risk);color:#fff;
  border-radius:var(--r-sm);font-size:13px;font-weight:600;
  transition:background .16s var(--ease),transform .16s var(--ease);
}
.rb-btn:hover{background:var(--risk-deep);transform:translateX(2px);color:#fff;}

/* ── 14. 页脚（三页统一） ──────────────────────── */
.footer{background:var(--ink);color:rgba(255,255,255,.65);margin-top:16px;}
.footer-main{
  display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;
  gap:40px;padding:48px 0 36px;
}
.footer-brand{display:flex;flex-direction:column;gap:14px;}
.footer-logo-link{display:flex;align-items:center;}
.footer-logo{height:32px;width:auto;object-fit:contain;}
/* 页脚 logo 反白：footer 在明暗两模式下均为深色底（亮=--ink，暗=#0b0d10），故 logo 始终反白显示 */
.footer-logo{filter:brightness(0) invert(1);}
.footer-fallback{
  display:none;font-family:var(--serif);
  font-size:20px;font-weight:600;color:#fff;letter-spacing:.06em;
}
.footer-brand p{font-size:13px;line-height:1.8;color:rgba(255,255,255,.5);}
.footer-col{display:flex;flex-direction:column;gap:10px;}
.footer-col h4{font-size:13px;font-weight:700;color:#fff;letter-spacing:.04em;margin-bottom:2px;}
.footer-col a{
  font-size:13px;color:rgba(255,255,255,.55);width:fit-content;
  transition:color .16s var(--ease);
}
.footer-col a:hover{color:#fff;text-decoration:underline;text-underline-offset:3px;}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.12);padding:18px 0;
  display:flex;align-items:center;justify-content:space-between;
  font-size:12.5px;color:rgba(255,255,255,.42);
}
.footer-bottom .links{display:flex;gap:18px;}
.footer-bottom .links a{color:rgba(255,255,255,.42);}
.footer-bottom .links a:hover{color:#fff;}

/* ── 15. 返回顶部 ──────────────────────────────── */
.back-top{
  position:fixed;right:32px;bottom:32px;width:44px;height:44px;
  border-radius:12px;background:var(--ink);color:#fff;
  display:flex;align-items:center;justify-content:center;
  opacity:0;visibility:hidden;transform:translateY(8px);
  box-shadow:var(--shadow-lg);
  transition:opacity .25s var(--ease),transform .25s var(--ease),
             background .16s var(--ease),visibility .25s var(--ease);
  z-index:100;
}
.back-top.show{opacity:1;visibility:visible;transform:translateY(0);}
.back-top:hover{background:var(--brand);}
.back-top svg{width:17px;height:17px;}

/* ============================================================
   首页专用
   ============================================================ */

/* 今日风险速览 */
.risk-dashboard{
  background:var(--card);border:1px solid var(--line);
  border-top:3px solid var(--ink);border-radius:var(--r-lg);
  box-shadow:var(--shadow-sm);padding:18px 24px;margin-bottom:24px;
  display:flex;flex-wrap:wrap;align-items:center;gap:20px 32px;
}
.rd-head{flex:0 0 auto;display:flex;flex-direction:column;gap:3px;}
.rd-kicker{
  display:inline-flex;align-items:center;gap:8px;
  font-size:14px;font-weight:700;color:var(--ink);
  letter-spacing:.02em;line-height:1.3;
}
.rd-pulse{
  width:7px;height:7px;border-radius:50%;background:var(--risk);
  animation:pulse 1.6s ease-in-out infinite;
}
.rd-sub{font-size:12px;color:var(--ink-3);}
.rd-metrics{
  flex:1 1 auto;display:flex;gap:28px;align-items:center;flex-wrap:wrap;
  padding-left:20px;border-left:1px solid var(--line-soft);
}
.rd-metric{display:flex;flex-direction:column;gap:2px;}
.rd-label{font-size:12px;color:var(--ink-3);}
.rd-num{
  font-size:26px;font-weight:700;line-height:1;
  font-variant-numeric:tabular-nums;letter-spacing:-.02em;color:var(--ink);
}
.rd-num.c-info{color:var(--info);}
.rd-num.c-r{color:var(--risk-deep);}
.rd-num.c-d{color:var(--risk);}
.rd-num.c-w{color:var(--warn);}
.rd-num.c-l{color:var(--legal);}
.rd-num.c-v{color:var(--good);}
.rd-dist{flex:0 0 180px;display:flex;flex-direction:column;gap:6px;}
.rd-dist-label{font-size:11.5px;color:var(--ink-3);}
.rd-bar{display:flex;height:6px;border-radius:3px;overflow:hidden;background:var(--line-soft);}
.rd-bar span{height:100%;}
.rd-bar-r{background:var(--risk-deep);}
.rd-bar-d{background:var(--risk);}
.rd-bar-w{background:var(--warn);}
.rd-bar-l{background:var(--legal);}
.rd-bar-v{background:var(--good);}
.rd-dist-total{font-size:11px;color:var(--ink-3);}
.rd-alert{
  flex:0 0 auto;display:inline-flex;align-items:center;gap:10px;
  padding:10px 14px;border:1px solid #fecdca;border-radius:var(--r);
  background:var(--risk-bg);
  transition:background .16s var(--ease),border-color .16s var(--ease);
}
.rd-alert:hover{background:#fde9e6;border-color:var(--risk);}
.rd-alert-kicker{
  font-size:11px;font-weight:700;color:var(--risk);
  padding:2px 6px;background:#fff;border-radius:3px;letter-spacing:.04em;
}
.rd-alert-name{font-size:14px;font-weight:600;color:var(--ink);}
.rd-alert-meta{font-size:12px;color:var(--ink-3);font-variant-numeric:tabular-nums;}
.rd-alert-arrow{width:15px;height:15px;color:var(--risk);transition:transform .16s var(--ease);}
.rd-alert:hover .rd-alert-arrow{transform:translateX(2px);}

/* 焦点区 */
.hero{
  display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);
  background:var(--card);border:1px solid var(--line);
  border-radius:var(--r-lg);box-shadow:var(--shadow-sm);
  margin-bottom:32px;overflow:hidden;
}
.hero-main{
  padding:32px 32px 24px;border-right:1px solid var(--line);
  display:flex;flex-direction:column;
}
.hm-lead{display:flex;flex-direction:column;}
.hm-kicker{
  display:flex;align-items:center;gap:10px;
  font-size:12.5px;color:var(--ink-3);margin-bottom:16px;
  font-variant-numeric:tabular-nums;
}
.hm-kicker span:not(.hk-tag)::before{content:"·";margin-right:10px;color:var(--ink-4);}
.hk-tag{
  font-size:11.5px;font-weight:700;color:#fff;
  background:var(--risk);padding:2px 10px;border-radius:4px;letter-spacing:.06em;
}
.hm-lead h1{
  font-family:var(--serif);font-size:30px;line-height:1.45;font-weight:600;
  letter-spacing:.01em;color:var(--ink);margin-bottom:16px;
  transition:color .16s var(--ease);
}
.hm-lead:hover h1{color:var(--risk-deep);}
.hm-lead p{
  font-size:14.5px;line-height:1.75;color:var(--ink-3);
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
}
.hm-sub{
  margin-top:24px;padding-top:8px;border-top:1px solid var(--line-soft);
  display:flex;flex-direction:column;
}
.hm-sub a{
  display:flex;align-items:baseline;gap:8px;padding:14px 0;
  border-bottom:1px solid var(--line-soft);
}
.hm-sub a:last-child{border-bottom:0;padding-bottom:0;}
.hms-body{flex:1;min-width:0;}
.hm-sub h3{
  font-size:15.5px;line-height:1.6;font-weight:600;color:var(--ink);
  display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;
  overflow:hidden;margin-bottom:5px;transition:color .16s var(--ease);
}
.hm-sub a:hover h3{color:var(--brand);}
.hms-meta{font-size:12.5px;color:var(--ink-3);font-variant-numeric:tabular-nums;}
.hms-meta time::after{content:"·";margin:0 7px;color:var(--ink-4);}
.hms-meta i{font-style:normal;}
.hero-side{padding:24px;display:flex;flex-direction:column;}
.hs-head{
  display:flex;align-items:center;font-size:14px;font-weight:700;
  color:var(--ink);letter-spacing:.06em;margin-bottom:4px;
}
.hs-head a{margin-left:auto;font-size:12.5px;font-weight:500;color:var(--ink-3);letter-spacing:0;}
.hs-head a:hover{color:var(--brand);}
.hs-item{
  display:flex;gap:12px;align-items:baseline;padding:12px 0;
  border-bottom:1px solid var(--line-soft);
}
.hs-item:last-child{border-bottom:0;}
.hs-item time{flex:0 0 auto;font-size:12px;color:var(--ink-3);font-variant-numeric:tabular-nums;}
.hs-item h3{
  font-size:14.5px;line-height:1.6;font-weight:500;color:var(--ink-2);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  overflow:hidden;transition:color .16s var(--ease);
}
.hs-item:hover h3{color:var(--brand);}

/* 风险快讯时间线 */
.tl-tabs{
  display:flex;gap:2px;padding:2px;background:var(--bg);
  border-radius:var(--r-sm);margin-left:4px;
}
.tl-tab{
  padding:5px 12px;font-size:12.5px;font-weight:500;color:var(--ink-3);
  border-radius:4px;transition:all .16s var(--ease);
}
.tl-tab:hover{color:var(--ink);}
.tl-tab.is-active{background:var(--card);color:var(--ink);font-weight:600;box-shadow:var(--shadow-sm);}
.tl-body{padding:4px 24px 16px;}
.tl-item{
  display:grid;grid-template-columns:76px minmax(0,1fr);
  gap:12px;align-items:center;padding:14px 0;
  border-bottom:1px solid var(--line-soft);
}
.tl-item:last-child{border-bottom:0;}
/* 时间列已移除；等级标签有则输出、无则不输出，标题始终钉在第 2 列，
   这样「有等级」和「无等级」两种行的标题左边缘完全对齐，不会参差不齐 */
.tl-item .lv-tag{grid-column:1;justify-self:start;}
.tl-title{
  grid-column:2;min-width:0;
  font-size:14.5px;font-weight:500;color:var(--ink-2);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  transition:color .16s var(--ease);
}
.tl-item:hover .tl-title{color:var(--brand);}
.tl-item[hidden]{display:none;}

/* 项目风险档案 */
.pa-toolbar{
  display:flex;align-items:center;gap:16px;padding:14px 24px;
  background:#252a33;border-bottom:1px solid #333844;flex-wrap:wrap;
}
.pa-search{position:relative;flex:1 1 240px;max-width:320px;}
.pa-search svg{
  position:absolute;left:12px;top:50%;transform:translateY(-50%);
  width:14px;height:14px;color:#6b7280;pointer-events:none;
}
.pa-search input{
  width:100%;height:34px;padding:0 12px 0 34px;
  border:1px solid #333844;border-radius:var(--r-sm);
  background:#1c2029;font-family:inherit;font-size:13px;color:#e8eaed;
  outline:none;transition:border-color .16s,box-shadow .16s;
}
.pa-search input::placeholder{color:#6b7280;}
.pa-search input:focus{
  border-color:var(--brand);box-shadow:0 0 0 3px rgba(139,164,214,.15);
}
.pa-filters{display:flex;gap:4px;flex-wrap:wrap;flex:1 1 auto;}
.pa-filter{
  display:inline-flex;align-items:center;gap:5px;padding:5px 11px;
  font-size:12.5px;font-weight:500;color:#9aa1ac;
  border:1px solid transparent;border-radius:var(--r-sm);
  transition:all .16s var(--ease);white-space:nowrap;
}
.pa-filter:hover{color:#fff;background:#333844;}
.pa-filter.is-active{background:#3a4150;color:#fff;font-weight:600;border-color:#4a5260;}
.pa-sort{display:flex;align-items:center;gap:6px;font-size:12.5px;color:#9aa1ac;margin-left:auto;}
.pa-sort label{white-space:nowrap;}
.pa-sort select{
  height:30px;padding:0 24px 0 10px;border:1px solid #333844;border-radius:var(--r-sm);
  background:#1c2029;color:#e8eaed;font-family:inherit;font-size:12.5px;cursor:pointer;
}
.pa-wrap{
  display:grid;grid-template-columns:300px minmax(0,1fr);
  gap:24px;align-items:stretch;padding:24px;
}
.pa-feature{
  display:flex;flex-direction:column;background:var(--card);
  border:1px solid var(--line);border-radius:var(--r);overflow:hidden;
  transition:box-shadow .22s var(--ease),transform .22s var(--ease),border-color .22s;
}
.pa-feature:hover{box-shadow:var(--shadow-lg);border-color:#d8d8d2;transform:translateY(-2px);}
.paf-body{padding:20px 20px 0;display:flex;flex-direction:column;flex:1;}
.paf-top{display:flex;align-items:center;gap:8px;margin-bottom:12px;}
.paf-score{margin-left:auto;font-size:12px;color:var(--ink-3);font-variant-numeric:tabular-nums;}
.paf-score b{
  font-family:var(--sans);font-size:24px;font-weight:700;color:var(--risk);
  letter-spacing:-.02em;margin-right:2px;
}
.paf-name{
  font-family:var(--sans);font-size:22px;font-weight:700;color:var(--ink);
  letter-spacing:.01em;margin-bottom:16px;transition:color .16s var(--ease);
}
.pa-feature:hover .paf-name{color:var(--brand);}
.paf-facts{
  display:flex;flex-direction:column;gap:8px;
  border-top:1px solid var(--line-soft);padding-top:14px;margin-bottom:16px;
}
.paf-facts div{display:flex;gap:14px;font-size:13px;line-height:1.6;}
.paf-facts dt{flex:0 0 64px;color:var(--ink-3);}
.paf-facts dd{margin:0;color:var(--ink-2);word-break:normal;overflow-wrap:break-word;min-width:0;}
.paf-facts .dd-risk{color:var(--risk);font-weight:600;}
.paf-facts .dd-advice{color:var(--brand);font-weight:500;padding-left:8px;border-left:2px solid var(--brand);}
.paf-foot{
  margin:auto -20px 0;padding:12px 20px;border-top:1px solid var(--line-soft);
  display:flex;align-items:center;justify-content:space-between;
  font-size:12.5px;color:var(--ink-3);font-variant-numeric:tabular-nums;
}
.paf-go{color:var(--brand);font-weight:600;}
.pa-list{
  background:var(--card);border:1px solid var(--line);
  border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;
}
.pal-head{
  display:grid;grid-template-columns:var(--pal-cols);gap:12px;
  padding:11px 20px;background:#fafaf8;border-bottom:1px solid var(--line);
  font-size:11.5px;color:var(--ink-3);letter-spacing:.06em;
}
.pal-head span:nth-child(2){text-align:center;}
.pal-head span:nth-child(3),
.pal-head span:nth-child(4){text-align:right;}
.pal-body{display:flex;flex-direction:column;}
.pal-body li{display:block;}
.pal-body li[hidden]{display:none;}
.pal-row{
  display:grid;grid-template-columns:var(--pal-cols);gap:12px;
  align-items:center;padding:11px 20px;
  border-bottom:1px solid var(--line-soft);transition:background .15s var(--ease);
}
.pal-row:hover{background:#fafaf8;}
.pal-name{
  font-size:14.5px;font-weight:600;color:var(--ink);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  transition:color .15s var(--ease);
}
.pal-row:hover .pal-name{color:var(--brand);}
.pal-row .lv-tag{justify-self:center;}
.pal-score{
  text-align:right;font-family:var(--sans);font-size:16px;font-weight:700;
  font-variant-numeric:tabular-nums;letter-spacing:-.01em;
}
.s-r{color:var(--risk-deep);}
.s-d{color:var(--risk);}
.s-w{color:var(--warn);}
.s-v{color:var(--good);}
.pal-cnt{text-align:right;font-size:13.5px;color:var(--ink-3);font-variant-numeric:tabular-nums;}
.pal-more{
  display:block;margin-top:auto;padding:13px 20px;
  font-size:13.5px;font-weight:600;color:var(--brand);
  border-top:1px solid var(--line);transition:background .15s var(--ease);
}
.pal-more:hover{background:#fafaf8;}
.pa-hint{padding:0 24px 20px;font-size:12px;line-height:1.7;color:var(--ink-3);}

/* 反诈防骗板块（首页） */
.af-wrap{display:grid;grid-template-columns:340px minmax(0,1fr);gap:32px;padding:24px;}
.af-lead{display:flex;flex-direction:column;padding-right:32px;border-right:1px solid var(--line-soft);}
.afl-kicker{font-size:11.5px;font-weight:700;letter-spacing:.14em;color:var(--risk);margin-bottom:12px;}
.afl-title{
  font-family:var(--sans);font-size:19px;line-height:1.55;font-weight:600;color:var(--ink);
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;
  overflow:hidden;transition:color .16s var(--ease);
}
.afl-title:hover{color:var(--risk-deep);}
.afl-desc{
  margin-top:12px;font-size:14px;line-height:1.75;color:var(--ink-3);
  display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;
}
.afl-meta{
  margin-top:auto;padding-top:16px;display:flex;align-items:center;gap:12px;
  font-size:12.5px;color:var(--ink-3);font-variant-numeric:tabular-nums;
}
.afl-meta a{margin-left:auto;color:var(--brand);font-weight:600;}
.afl-meta a:hover{color:var(--brand-2);}
.af-list{display:flex;flex-direction:column;justify-content:center;}
.afl-row{
  display:flex;gap:14px;align-items:baseline;padding:13px 0;
  border-bottom:1px solid var(--line-soft);
}
.afl-row:last-child{border-bottom:0;}
.afl-row time{flex:0 0 auto;font-size:12.5px;color:var(--ink-3);font-variant-numeric:tabular-nums;}
.afl-row h4{
  flex:1;min-width:0;font-size:14.5px;line-height:1.6;font-weight:500;color:var(--ink-2);
  display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;
  overflow:hidden;transition:color .16s var(--ease);
}
.afl-row:hover h4{color:var(--brand);}

/* 最新发布（首页栏目导览） */
.column-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.col-card{
  display:flex;flex-direction:column;padding:18px;
  border:1px solid var(--line);border-radius:var(--r);background:var(--card);
  transition:box-shadow .2s var(--ease),border-color .2s var(--ease),transform .2s var(--ease);
}
.col-card:hover{box-shadow:var(--shadow-md);border-color:#d8d8d2;transform:translateY(-1px);}
.col-card-head{
  display:flex;align-items:baseline;justify-content:space-between;
  margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--line-soft);
}
.col-name{font-size:14px;font-weight:700;color:var(--ink);}
.col-count{font-size:11.5px;color:var(--ink-3);font-variant-numeric:tabular-nums;}
.col-list{display:flex;flex-direction:column;gap:8px;margin-bottom:14px;}
.col-list li{
  font-size:13px;line-height:1.6;color:var(--ink-2);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  transition:color .16s var(--ease);
}
.col-card:hover .col-list li{color:var(--ink);}
.col-more{
  margin-top:auto;display:inline-flex;align-items:center;gap:4px;
  font-size:12.5px;font-weight:600;color:var(--brand);
}
.col-more svg{width:13px;height:13px;transition:transform .16s var(--ease);}
.col-card:hover .col-more svg{transform:translateX(2px);}

/* 最新发布（列表形式） */
.feed-list{padding:4px 24px 8px;}
.feed-row{
  display:flex;align-items:baseline;gap:14px;
  padding:13px 0;
  border-bottom:1px solid var(--line-soft);
}
.feed-row:last-child{border-bottom:0;}
.fr-cat{
  flex:0 0 76px;
  font-size:11.5px;font-weight:700;
  text-align:center;
  padding:3px 0;border-radius:3px;
  font-feature-settings:"tnum";
}
.c-t8{background:var(--brand-bg);color:var(--brand);}
.c-t6{background:var(--risk-bg);color:var(--risk);}
.c-t1{background:var(--good-bg);color:var(--good);}
.c-t2{background:var(--warn-bg);color:var(--warn);}
.feed-row h3{
  flex:1;min-width:0;
  font-size:14.5px;line-height:1.65;font-weight:500;color:var(--ink-2);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  transition:color .16s var(--ease);
}
.feed-row:hover h3{color:var(--brand);}
.feed-row time{
  flex:0 0 auto;font-size:12.5px;color:var(--ink-3);
  font-variant-numeric:tabular-nums;
}

/* 加载更多按钮 */
.feed-more-wrap{
  display:flex;flex-direction:column;align-items:center;gap:10px;
  padding:8px 24px 20px;
}
.feed-more-btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:10px 28px;
  font-family:inherit;line-height:1.5;cursor:pointer;
  font-size:13.5px;font-weight:600;
  color:var(--ink-2);
  background:var(--card);
  border:1px solid var(--line);
  border-radius:100px;
  box-shadow:var(--shadow-sm);
  transition:all .16s var(--ease);
}
.feed-more-btn[hidden]{display:none;}
.feed-more-btn[disabled]{opacity:.55;cursor:default;box-shadow:none;}
.feed-more-btn.is-loading{opacity:.7;cursor:progress;}
.feed-more-link{
  font-size:12.5px;color:var(--ink-4);text-decoration:none;
}
.feed-more-link:hover{color:var(--brand);text-decoration:underline;text-underline-offset:3px;}
.feed-more-btn:hover{
  color:var(--brand);border-color:var(--brand);
  box-shadow:var(--shadow-md);
}
.feed-more-btn svg{
  width:14px;height:14px;
  transition:transform .16s var(--ease);
}
.feed-more-btn:hover svg{transform:translateX(3px);}

/* 首页侧栏 */
.level-list li{border-bottom:1px solid var(--line-soft);}
.level-list li:last-child{border-bottom:0;padding-bottom:12px;}
.level-list a{
  display:flex;align-items:center;gap:10px;padding:10px 0;
  font-size:13.5px;font-weight:500;color:var(--ink-2);
  transition:color .15s var(--ease);
}
.level-list a:hover{color:var(--brand);}
.level-list span{flex:1;}
.level-list svg{
  width:14px;height:14px;color:var(--ink-4);
  transition:transform .16s var(--ease),color .16s var(--ease);
}
.level-list a:hover svg{transform:translateX(2px);color:var(--brand);}
.fb-list li{padding:12px 0;border-bottom:1px solid var(--line-soft);}
.fb-list li:last-child{border-bottom:0;padding-bottom:12px;}
.fb-text{
  font-size:13.5px;line-height:1.65;color:var(--ink-2);margin-bottom:6px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.fb-meta{display:flex;align-items:center;gap:8px;font-size:12px;flex-wrap:wrap;}
.fb-meta a{
  flex:1 1 100%;color:var(--brand);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.fb-meta a:hover{color:var(--brand-2);}
.fb-meta time{flex:0 0 auto;color:var(--ink-3);font-variant-numeric:tabular-nums;}
.fb-archive{
  flex:0 0 auto;font-size:11px;color:var(--ink-4);
  padding:1px 5px;border:1px solid var(--line);border-radius:3px;line-height:1.4;
}
.fb-item.is-archived .fb-text{color:var(--ink-3);}
.fb-item.is-archived .fb-meta a{color:var(--ink-3);}
.heat-list li{
  display:flex;align-items:center;gap:10px;padding:10px 0;
  border-bottom:1px solid var(--line-soft);
}
.heat-list li:last-child{border-bottom:0;padding-bottom:12px;}
.heat-list i{
  flex:0 0 18px;text-align:center;font-style:normal;
  font-size:13px;font-weight:700;color:var(--ink-4);
  font-variant-numeric:tabular-nums;
}
.heat-list li:nth-child(1) i{color:var(--ink);}
.heat-list li:nth-child(2) i{color:var(--ink-2);}
.heat-list li:nth-child(3) i{color:var(--ink-3);}
.heat-list a{
  flex:1;min-width:0;font-size:14px;font-weight:500;color:var(--ink-2);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  transition:color .15s var(--ease);
}
.heat-list li:hover a{color:var(--brand);}
.heat-list b{flex:0 0 auto;font-size:12.5px;font-weight:600;color:var(--ink-3);font-variant-numeric:tabular-nums;}

/* ============================================================
   列表页专用
   ============================================================ */

/* 页面头 */
.page-header{
  display:flex;align-items:flex-end;justify-content:space-between;
  gap:24px;padding:28px 32px;background:var(--card);
  border:1px solid var(--line);border-top:3px solid var(--brand);
  border-radius:var(--r-lg);box-shadow:var(--shadow-sm);margin-bottom:24px;
}
.ph-main{min-width:0;}
.ph-title{
  font-family:var(--serif);font-size:32px;font-weight:600;line-height:1.35;
  color:var(--ink);letter-spacing:.02em;margin-bottom:10px;
}
.ph-desc{font-size:14.5px;line-height:1.75;color:var(--ink-3);max-width:640px;margin-bottom:16px;}
.ph-stats{display:flex;flex-wrap:wrap;gap:20px;font-size:12.5px;color:var(--ink-3);font-variant-numeric:tabular-nums;}
.ph-stats b{color:var(--ink);font-weight:700;margin-right:4px;font-size:15px;}
.ph-cta{
  flex:0 0 auto;display:inline-flex;align-items:center;gap:8px;
  padding:10px 20px;background:var(--brand);color:#fff;
  border-radius:100px;font-size:14px;font-weight:600;white-space:nowrap;
  transition:background .16s var(--ease),transform .16s var(--ease);
}
.ph-cta:hover{background:var(--brand-2);transform:translateY(-1px);color:#fff;}
.ph-cta svg{width:15px;height:15px;}

/* 筛选工具条 */
.filter-bar{
  display:flex;align-items:center;gap:16px;padding:12px 16px;
  background:var(--card);border:1px solid var(--line);
  border-radius:var(--r);box-shadow:var(--shadow-sm);
  margin-bottom:20px;flex-wrap:wrap;
}
.filter-tabs{
  display:flex;gap:2px;padding:2px;background:var(--bg);
  border-radius:var(--r-sm);flex:1 1 auto;
  overflow-x:auto;scrollbar-width:none;
}
.filter-tabs::-webkit-scrollbar{display:none;}
.filter-tab{
  flex:0 0 auto;padding:7px 16px;
  font-size:13.5px;font-weight:500;color:var(--ink-3);
  border-radius:5px;white-space:nowrap;transition:all .16s var(--ease);
}
.filter-tab:hover{color:var(--ink);}
.filter-tab.is-active{background:var(--card);color:var(--ink);font-weight:600;box-shadow:var(--shadow-sm);}
.filter-sort{
  display:inline-flex;align-items:center;gap:8px;
  font-size:12.5px;color:var(--ink-3);flex:0 0 auto;
}
.filter-sort select{
  height:32px;padding:0 26px 0 10px;
  border:1px solid var(--line);border-radius:var(--r-sm);
  background:var(--card);color:var(--ink-2);font-family:inherit;font-size:12.5px;
  cursor:pointer;transition:border-color .16s;
}
.filter-sort select:hover{border-color:var(--ink-4);}

/* 文章列表 */
.article-list{display:flex;flex-direction:column;gap:12px;margin-bottom:28px;}
.article-item{
  display:flex;gap:20px;padding:20px;background:var(--card);
  border:1px solid var(--line);border-radius:var(--r);
  transition:box-shadow .2s var(--ease),border-color .2s var(--ease),transform .2s var(--ease);
}
.article-item:hover{box-shadow:var(--shadow-md);border-color:#d8d8d2;transform:translateY(-1px);}
.article-item[hidden]{display:none;}
.ai-thumb{
  flex:0 0 200px;aspect-ratio:4/3;border-radius:var(--r-sm);overflow:hidden;
  display:flex;align-items:center;justify-content:center;
  background:repeating-linear-gradient(45deg,#f4f4f1 0 8px,#ecece8 8px 9px);
  border:1px solid var(--line);transition:border-color .2s var(--ease);
}
.article-item:hover .ai-thumb{border-color:#d8d8d2;}
.ai-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.ai-thumb:empty{display:none;}
.ai-thumb-icon{
  width:36px;height:36px;color:var(--ink-4);opacity:.55;
  transition:color .2s var(--ease),opacity .2s var(--ease);
}
.article-item:hover .ai-thumb-icon{color:var(--brand);opacity:.85;}
.ai-body{flex:1;min-width:0;display:flex;flex-direction:column;}
.ai-kicker{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  font-size:12.5px;color:var(--ink-3);margin-bottom:10px;font-variant-numeric:tabular-nums;
}
.ai-kicker time{color:var(--ink-3);}
.ai-hot{
  font-size:11px;font-weight:600;color:var(--risk);
  padding:1px 7px;border-radius:3px;background:var(--risk-bg);letter-spacing:.02em;
}
.ai-title{
  font-size:18px;line-height:1.55;font-weight:600;color:var(--ink);
  margin-bottom:10px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  overflow:hidden;transition:color .16s var(--ease);
}
.ai-title a{color:inherit;}
.article-item:hover .ai-title{color:var(--brand);}
.ai-desc{
  font-size:14px;line-height:1.75;color:var(--ink-3);margin-bottom:14px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.ai-meta{
  margin-top:auto;display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  font-size:12.5px;color:var(--ink-3);font-variant-numeric:tabular-nums;
}
.ai-author{color:var(--ink-2);font-weight:500;}
.ai-stats{display:inline-flex;align-items:center;gap:14px;}
.ai-stats i{font-style:normal;}
.ai-stats i + i::before{content:"·";margin-right:14px;color:var(--ink-4);}
.ai-tags{display:inline-flex;gap:6px;flex-wrap:wrap;margin-left:auto;}
.ai-tags a{
  font-size:11.5px;color:var(--ink-3);padding:2px 9px;
  border:1px solid var(--line-soft);border-radius:100px;background:var(--bg);
  transition:all .16s var(--ease);
}
.ai-tags a:hover{color:var(--brand);border-color:var(--brand);background:var(--brand-bg);}

/* ============================================================
   举报提交页专用
   ============================================================ */

/* ── 步骤条 ────────────────────────────────────── */
.rp-steps{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--r);
  box-shadow:var(--shadow-sm);
  padding:16px 24px;
  margin-bottom:24px;
  overflow-x:auto;
  scrollbar-width:none;
}
.rp-steps::-webkit-scrollbar{display:none;}
.rp-steps-list{
  display:flex;
  align-items:center;
  gap:8px;
  list-style:none;
  min-width:max-content;
}
.rp-step{
  display:flex;
  align-items:center;
  gap:8px;
  flex:0 0 auto;
  color:var(--ink-3);
  font-size:13px;
  transition:color .2s var(--ease);
}
.rp-step-num{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:24px;
  height:24px;
  border-radius:50%;
  background:var(--line-soft);
  color:var(--ink-3);
  font-size:12px;
  font-weight:600;
  font-variant-numeric:tabular-nums;
  transition:all .2s var(--ease);
  flex:0 0 24px;
}
.rp-step-label{
  font-weight:500;
  white-space:nowrap;
}
.rp-step:not(:last-child)::after{
  content:"";
  width:24px;
  height:1px;
  background:var(--line);
  margin-left:8px;
  flex:0 0 24px;
}
.rp-step.is-active{color:var(--ink);}
.rp-step.is-active .rp-step-num{
  background:var(--brand);
  color:#fff;
  box-shadow:0 0 0 3px var(--brand-bg);
}
.rp-step.is-active .rp-step-label{font-weight:600;}
.rp-step.is-done .rp-step-num{
  background:var(--good-bg);
  color:var(--good);
  border:1px solid #abefc6;
}
.rp-step.is-done{color:var(--ink-2);}

/* ── 表单容器 ──────────────────────────────────── */
.rp-form{
  display:flex;
  flex-direction:column;
  gap:0;
}
.rp-form[hidden]{display:none;}

.rp-section{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  box-shadow:var(--shadow-sm);
  padding:28px 32px 32px;
  margin-bottom:20px;
}
.rp-section--last{margin-bottom:24px;}

/* ── report 页：步骤链接 / 校验错误 / 上传提示 / 摘要 / 成功回执 ── */
.rp-step-link{
  display:flex;align-items:center;gap:8px;
  color:inherit;border-radius:100px;
  transition:color .16s var(--ease);
}
.rp-step-link:hover{color:var(--brand);}
.rp-step-link:hover .rp-step-num{background:var(--brand-bg);color:var(--brand);}
.rp-error{
  font-size:12.5px;line-height:1.5;color:var(--risk);
  margin:0;
}
.rp-error[hidden]{display:none;}
.rp-field.is-error .rp-input,
.rp-field.is-error .rp-textarea{border-color:var(--risk);background:var(--risk-bg);}
.rp-checkbox.is-error .rp-checkbox-box{border-color:var(--risk);}
.rp-counter.is-warn{color:var(--risk);font-weight:600;}
.rp-upload-msg{
  font-size:12.5px;line-height:1.6;color:var(--ink-3);
  padding:8px 12px;margin:10px 0 0;
  background:var(--bg);border:1px solid var(--line);border-radius:var(--r-sm);
}
.rp-upload-msg[hidden]{display:none;}
.rp-upload-msg.is-error{color:var(--risk);background:var(--risk-bg);border-color:var(--risk);}
.rp-file-thumb{
  flex:0 0 40px;width:40px;height:40px;object-fit:cover;
  border-radius:var(--r-sm);border:1px solid var(--line);background:var(--bg);
}
.rp-draft-tip{
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  font-size:12.5px;color:var(--brand);
  background:var(--brand-bg);border:1px solid var(--line);
  border-radius:var(--r-sm);padding:9px 14px;margin-bottom:16px;
}
.rp-draft-tip[hidden]{display:none;}
.rp-draft-tip svg{width:14px;height:14px;flex:0 0 14px;}
.rp-draft-clear{
  margin-left:auto;font-size:12px;color:var(--ink-3);
  text-decoration:underline;text-underline-offset:2px;
}
.rp-draft-clear:hover{color:var(--risk);}
.rp-summary{
  display:grid;grid-template-columns:96px minmax(0,1fr);
  gap:8px 16px;margin:0 0 20px;padding:16px 18px;
  background:var(--bg);border:1px solid var(--line);border-radius:var(--r-sm);
  font-size:13px;line-height:1.6;
}
.rp-summary dt{color:var(--ink-3);}
.rp-summary dd{margin:0;color:var(--ink);word-break:break-word;}
.rp-success{
  display:flex;flex-direction:column;align-items:center;text-align:center;
  background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  box-shadow:var(--shadow-sm);padding:40px 28px;margin-bottom:24px;
}
.rp-success[hidden]{display:none;}
.rs-icon{
  width:52px;height:52px;border-radius:50%;
  background:var(--good-bg);color:var(--good);
  display:flex;align-items:center;justify-content:center;margin-bottom:16px;
}
.rs-icon svg{width:26px;height:26px;}
.rs-title{font-size:20px;line-height:1.4;font-weight:700;color:var(--ink);margin:0 0 8px;}
.rs-desc{font-size:14px;line-height:1.75;color:var(--ink-3);max-width:520px;margin:0 0 16px;}
.rs-desc b{color:var(--ink);}
.rs-code{
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:13px;color:var(--ink-3);margin:0 0 20px;
  padding:8px 16px;background:var(--bg);border:1px dashed var(--line);border-radius:var(--r-sm);
}
.rs-code b{color:var(--brand);font-weight:700;letter-spacing:.04em;}
.rs-steps{
  display:flex;flex-direction:column;gap:8px;text-align:left;
  font-size:13px;line-height:1.7;color:var(--ink-2);
  max-width:520px;margin:0 0 24px;padding:0;list-style:none;counter-reset:rs;
}
.rs-steps li{position:relative;padding-left:22px;}
.rs-steps li::before{
  counter-increment:rs;content:counter(rs);
  position:absolute;left:0;top:2px;
  width:16px;height:16px;border-radius:50%;
  background:var(--brand-bg);color:var(--brand);
  font-size:10px;font-weight:700;line-height:16px;text-align:center;
}
.rs-steps b{color:var(--ink);}
.rs-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;}
.rs-btn{
  display:inline-flex;align-items:center;padding:10px 20px;
  font-size:13.5px;font-weight:600;color:var(--ink-2);
  background:var(--card);border:1px solid var(--line);border-radius:100px;
  transition:all .16s var(--ease);
}
.rs-btn:hover{color:var(--brand);border-color:var(--brand);}
.rs-btn--primary{background:var(--brand);border-color:var(--brand);color:#fff;}
.rs-btn--primary:hover{background:var(--brand-2);border-color:var(--brand-2);color:#fff;}


.rp-section-head{
  margin-bottom:24px;
  padding-bottom:20px;
  border-bottom:1px solid var(--line-soft);
}
.rp-section-step{
  display:inline-block;
  font-size:11.5px;
  font-weight:700;
  color:var(--brand);
  letter-spacing:.08em;
  margin-bottom:8px;
}
.rp-section-title{
  font-size:20px;
  font-weight:700;
  color:var(--ink);
  line-height:1.4;
  margin-bottom:6px;
}
.rp-section-desc{
  font-size:13.5px;
  line-height:1.7;
  color:var(--ink-3);
  margin:0;
}
.rp-req{color:var(--risk);font-weight:700;margin-left:2px;}

/* ── 类型卡片 ──────────────────────────────────── */
.rp-types{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
.rp-type{
  position:relative;
  cursor:pointer;
  display:block;
}
.rp-type input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.rp-type-inner{
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:16px 16px 18px;
  border:1.5px solid var(--line);
  border-radius:var(--r);
  background:var(--card);
  transition:all .16s var(--ease);
  height:100%;
}
.rp-type:hover .rp-type-inner{
  border-color:var(--ink-4);
  background:#fafaf8;
}
.rp-type input:checked ~ .rp-type-inner{
  border-color:var(--brand);
  background:var(--brand-bg);
  box-shadow:0 0 0 3px rgba(32,50,92,.08);
}
.rp-type input:focus-visible ~ .rp-type-inner{
  outline:2px solid var(--brand);
  outline-offset:2px;
}
.rp-type-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:32px;
  height:32px;
  border-radius:var(--r-sm);
  background:var(--bg);
  color:var(--ink-3);
  transition:all .16s var(--ease);
}
.rp-type-icon svg{width:18px;height:18px;}
.rp-type input:checked ~ .rp-type-inner .rp-type-icon{
  background:var(--brand);
  color:#fff;
}
.rp-type-name{
  font-size:14px;
  font-weight:600;
  color:var(--ink);
  line-height:1.4;
}
.rp-type-desc{
  font-size:12px;
  line-height:1.55;
  color:var(--ink-3);
}

/* ── 表单字段 ──────────────────────────────────── */
.rp-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:20px;
}
.rp-field{display:flex;flex-direction:column;gap:8px;min-width:0;}
.rp-field--full{grid-column:1 / -1;}

.rp-label{
  font-size:13px;
  font-weight:600;
  color:var(--ink-2);
  display:flex;
  align-items:center;
  gap:2px;
}

.rp-input{
  width:100%;
  height:44px;
  padding:0 14px;
  border:1px solid var(--line);
  border-radius:var(--r-sm);
  background:var(--bg);
  font-family:inherit;
  font-size:14px;
  color:var(--ink);
  outline:none;
  transition:border-color .16s,background .16s,box-shadow .16s;
}
.rp-input::placeholder{color:var(--ink-4);}
.rp-input:hover{border-color:var(--ink-4);}
.rp-input:focus{
  border-color:var(--brand);
  background:#fff;
  box-shadow:0 0 0 3px rgba(32,50,92,.10);
}
.rp-input:invalid:not(:placeholder-shown){
  border-color:#fecdca;
}

.rp-textarea{
  height:auto;
  padding:12px 14px;
  line-height:1.7;
  resize:vertical;
  min-height:140px;
  font-size:14px;
}

.rp-input-group{
  position:relative;
  display:flex;
}
.rp-input-group .rp-input{padding-right:44px;}
.rp-input-suffix{
  position:absolute;
  right:14px;
  top:50%;
  transform:translateY(-50%);
  font-size:13px;
  color:var(--ink-3);
  pointer-events:none;
}

.rp-hint{
  font-size:12px;
  line-height:1.6;
  color:var(--ink-3);
  margin:0;
}
.rp-hint-row{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:12px;
  margin-top:2px;
}
.rp-counter{
  font-size:12px;
  color:var(--ink-3);
  font-variant-numeric:tabular-nums;
  flex:0 0 auto;
}

/* ── 上传区 ────────────────────────────────────── */
.rp-upload{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:36px 24px;
  border:2px dashed var(--line);
  border-radius:var(--r);
  background:var(--bg);
  text-align:center;
  cursor:pointer;
  transition:all .16s var(--ease);
}
.rp-upload:hover,
.rp-upload.is-drag{
  border-color:var(--brand);
  background:var(--brand-bg);
}
.rp-upload-icon{
  width:36px;
  height:36px;
  color:var(--ink-3);
  margin-bottom:4px;
  transition:color .16s;
}
.rp-upload:hover .rp-upload-icon,
.rp-upload.is-drag .rp-upload-icon{color:var(--brand);}
.rp-upload-title{
  font-size:14px;
  font-weight:600;
  color:var(--ink);
}
.rp-upload-desc{
  font-size:12.5px;
  color:var(--ink-3);
  margin-bottom:8px;
}
.rp-upload-btn{
  display:inline-flex;
  align-items:center;
  padding:7px 18px;
  font-size:13px;
  font-weight:600;
  color:var(--brand);
  background:var(--card);
  border:1px solid var(--brand);
  border-radius:100px;
  transition:all .16s var(--ease);
}
.rp-upload-btn:hover{background:var(--brand);color:#fff;}

.rp-file-list{
  display:flex;
  flex-direction:column;
  gap:8px;
  margin-top:12px;
  list-style:none;
}
.rp-file{
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:var(--r-sm);
  background:var(--card);
  font-size:13px;
}
.rp-file-icon{
  flex:0 0 20px;
  width:20px;
  height:20px;
  color:var(--brand);
  display:flex;
  align-items:center;
  justify-content:center;
}
.rp-file-icon svg{width:18px;height:18px;}
.rp-file-name{
  flex:1;
  min-width:0;
  color:var(--ink);
  font-weight:500;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.rp-file-size{
  flex:0 0 auto;
  color:var(--ink-3);
  font-size:12px;
  font-variant-numeric:tabular-nums;
}
.rp-file-remove{
  flex:0 0 24px;
  width:24px;
  height:24px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:18px;
  line-height:1;
  color:var(--ink-3);
  border-radius:4px;
  transition:all .16s;
}
.rp-file-remove:hover{color:var(--risk);background:var(--risk-bg);}

.rp-upload-tips{
  margin-top:20px;
  padding:16px 18px;
  background:var(--bg);
  border-radius:var(--r-sm);
}
.rp-upload-tip-title{
  font-size:13px;
  font-weight:600;
  color:var(--ink-2);
  margin-bottom:8px;
}
.rp-upload-tip-list{
  display:flex;
  flex-direction:column;
  gap:6px;
  padding-left:0;
  list-style:none;
}
.rp-upload-tip-list li{
  font-size:12.5px;
  line-height:1.6;
  color:var(--ink-3);
  padding-left:16px;
  position:relative;
}
.rp-upload-tip-list li::before{
  content:"·";
  position:absolute;
  left:4px;
  top:-1px;
  font-size:16px;
  color:var(--ink-4);
}

/* ── 复选框 ────────────────────────────────────── */
.rp-checkbox{
  display:flex;
  align-items:flex-start;
  gap:12px;
  cursor:pointer;
  padding:12px 0;
  position:relative;
}
.rp-checkbox--block{
  padding:16px;
  margin-bottom:16px;
  background:var(--bg);
  border:1px solid var(--line-soft);
  border-radius:var(--r-sm);
}
.rp-checkbox input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.rp-checkbox-box{
  flex:0 0 20px;
  width:20px;
  height:20px;
  border:1.5px solid var(--ink-4);
  border-radius:4px;
  background:var(--card);
  display:flex;
  align-items:center;
  justify-content:center;
  transition:all .16s var(--ease);
  margin-top:1px;
}
.rp-checkbox-box::after{
  content:"";
  width:10px;
  height:6px;
  border-left:2px solid #fff;
  border-bottom:2px solid #fff;
  transform:rotate(-45deg) translate(1px, -1px);
  opacity:0;
  transition:opacity .16s var(--ease);
}
.rp-checkbox input:checked ~ .rp-checkbox-box{
  background:var(--brand);
  border-color:var(--brand);
}
.rp-checkbox input:checked ~ .rp-checkbox-box::after{opacity:1;}
.rp-checkbox input:focus-visible ~ .rp-checkbox-box{
  outline:2px solid var(--brand);
  outline-offset:2px;
}
.rp-checkbox-text{
  flex:1;
  font-size:13.5px;
  line-height:1.65;
  color:var(--ink-2);
}
.rp-checkbox-text b{
  display:block;
  font-weight:600;
  color:var(--ink);
  margin-bottom:2px;
}
.rp-checkbox-text span{
  display:block;
  font-size:12.5px;
  color:var(--ink-3);
}

/* ── 联系方式区 ────────────────────────────────── */
.rp-contact-fields{
  margin-top:8px;
  padding:20px;
  background:var(--bg);
  border:1px solid var(--line-soft);
  border-radius:var(--r-sm);
}
.rp-contact-fields[hidden]{display:none;}

/* ── 提交区 ────────────────────────────────────── */
.rp-submit-area{
  margin-top:24px;
  display:flex;
  flex-direction:column;
  gap:10px;
  align-items:flex-start;
}
.rp-submit{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:14px 36px;
  background:var(--brand);
  color:#fff;
  border-radius:100px;
  font-size:15px;
  font-weight:600;
  transition:all .16s var(--ease);
}
.rp-submit:hover{background:var(--brand-2);transform:translateY(-1px);box-shadow:var(--shadow-md);}
.rp-submit:disabled{cursor:not-allowed;opacity:.7;transform:none;}
.rp-submit svg{width:16px;height:16px;transition:transform .16s;}
.rp-submit:hover svg{transform:translateX(2px);}
.rp-submit.is-loading{background:var(--brand-2);}
.rp-submit.is-success{background:var(--good);}
.rp-submit-note{
  font-size:12.5px;
  color:var(--ink-3);
  margin:0;
}

/* ── 侧栏：举报须知 ────────────────────────────── */
.rp-notice-box{
  background:var(--risk-bg);
  border:1px solid #fecdca;
  border-radius:var(--r);
  padding:18px;
}
.rpn-head{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:15px;
  font-weight:700;
  color:var(--risk);
  margin-bottom:12px;
}
.rpn-head svg{width:16px;height:16px;}
.rpn-list{
  display:flex;
  flex-direction:column;
  gap:10px;
  list-style:none;
}
.rpn-list li{
  font-size:12.5px;
  line-height:1.65;
  color:var(--ink-2);
  padding-left:14px;
  position:relative;
}
.rpn-list li::before{
  content:"";
  position:absolute;
  left:2px;
  top:8.4px;
  width:4px;
  height:4px;
  border-radius:50%;
  background:var(--risk);
}
.rpn-list b{color:var(--ink);font-weight:600;}

/* ── 侧栏：处理流程 ────────────────────────────── */
.rp-flow-list{
  display:flex;
  flex-direction:column;
  gap:0;
  list-style:none;
}
.rp-flow-list li{
  display:flex;
  align-items:flex-start;
  gap:12px;
  padding:10px 0;
  border-bottom:1px solid var(--line-soft);
}
.rp-flow-list li:last-child{border-bottom:0;padding-bottom:12px;}
.rp-flow-num{
  flex:0 0 22px;
  width:22px;
  height:22px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--brand-bg);
  color:var(--brand);
  border-radius:50%;
  font-size:11px;
  font-weight:700;
  font-variant-numeric:tabular-nums;
  margin-top:1px;
}
.rp-flow-body{
  flex:1;
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:2px;
}
.rp-flow-body b{
  font-size:13.5px;
  font-weight:600;
  color:var(--ink);
}
.rp-flow-body span{
  font-size:12px;
  color:var(--ink-3);
  line-height:1.5;
}

/* ── 侧栏：常见问题（report 作用域：编号 + 圆形开关 + 展开动画） ── */
.rp-faq-list.proj-faq{
  padding:2px 0 8px;
  counter-reset:rpfaq;
}
.rp-faq-list .faq-item{
  counter-increment:rpfaq;
  border-bottom:1px dashed var(--line-soft);
  border-radius:var(--r-sm);
  transition:background .16s var(--ease);
}
.rp-faq-list .faq-item:hover{background:var(--bg);}
.rp-faq-list .faq-item:last-child{border-bottom:0;}
.rp-faq-list .faq-item summary{
  position:relative;
  padding:11px 30px 11px 30px;
  font-size:13.5px;
  line-height:1.55;
}
.rp-faq-list .faq-item summary::before{
  content:counter(rpfaq,decimal-leading-zero);
  position:absolute;
  left:0;
  top:11px;
  width:22px;
  font-size:11px;
  line-height:20.9px; /* 13.5px × 1.55，与问题文字基线对齐 */
  font-weight:700;
  color:var(--ink-4);
  font-variant-numeric:tabular-nums;
  transition:color .16s var(--ease);
}
.rp-faq-list .faq-item summary::after{
  width:18px;
  height:18px;
  font-size:12px;
  line-height:16px;
  text-align:center;
  color:var(--ink-4);
  border:1px solid var(--line);
  border-radius:50%;
}
.rp-faq-list .faq-item[open] summary{color:var(--ink);}
.rp-faq-list .faq-item[open] summary::before{color:var(--brand);}
.rp-faq-list .faq-item[open] summary::after{
  content:"\2212";
  color:var(--brand);
  border-color:var(--brand);
}
.rp-faq-list .faq-item summary:focus-visible{
  outline:2px solid var(--brand);
  outline-offset:-2px;
  border-radius:var(--r-sm);
}
.rp-faq-list .faq-body{
  padding:0 30px 12px 30px;
  font-size:12.5px;
  line-height:1.7;
  color:var(--ink-3);
  animation:rpFaqIn .18s var(--ease);
}
@keyframes rpFaqIn{
  from{opacity:0;transform:translateY(-3px);}
  to{opacity:1;transform:none;}
}

/* 分页 */
.pagination{display:flex;justify-content:center;align-items:center;gap:6px;flex-wrap:wrap;padding:8px 0 4px;}
.page-btn,.page-num{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:38px;height:38px;padding:0 14px;
  font-size:13.5px;font-weight:500;color:var(--ink-2);
  background:var(--card);border:1px solid var(--line);border-radius:var(--r-sm);
  font-variant-numeric:tabular-nums;transition:all .16s var(--ease);
}
.page-btn:hover,.page-num:hover{color:var(--brand);border-color:var(--brand);}
.page-num.is-active{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600;}
.page-num.is-active:hover{color:#fff;}
.page-btn.is-disabled{color:var(--ink-4);cursor:not-allowed;opacity:.6;}
.page-btn.is-disabled:hover{color:var(--ink-4);border-color:var(--line);}
.page-ellipsis{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:38px;height:38px;color:var(--ink-4);font-size:13.5px;user-select:none;
}
/* ============================================================
   风险快讯列表页专用
   ============================================================ */

/* ── 快讯列表容器 ──────────────────────────────── */
.news-list{
  display:flex;
  flex-direction:column;
  gap:20px;
  margin-bottom:24px;
}

.news-group{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--r);
  box-shadow:var(--shadow-sm);
  overflow:hidden;
}
.news-group[hidden]{display:none;}

.news-group-head{
  display:flex;
  align-items:baseline;
  gap:12px;
  padding:14px 20px;
  background:#fafaf8;
  border-bottom:1px solid var(--line);
  flex-wrap:wrap;
}
.news-group-day{
  font-size:15px;
  font-weight:700;
  color:var(--ink);
  letter-spacing:.01em;
}
.news-group-day.is-today{
  color:var(--brand);
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.news-group-day.is-today::before{
  content:"";
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--brand);
  animation:pulse 1.6s ease-in-out infinite;
}
.news-group-date{
  font-size:12.5px;
  color:var(--ink-3);
  font-variant-numeric:tabular-nums;
}
.news-group-count{
  margin-left:auto;
  font-size:12px;
  color:var(--ink-3);
  font-variant-numeric:tabular-nums;
}

.news-items{
  display:flex;
  flex-direction:column;
  list-style:none;
}

.news-item{
  display:grid;
  grid-template-columns:88px minmax(0,1fr);
  gap:20px;
  padding:18px 20px;
  border-bottom:1px solid var(--line-soft);
  transition:background .15s var(--ease);
}
.news-item:last-child{border-bottom:0;}
.news-item:hover{background:#fafaf8;}
.news-item[hidden]{display:none;}

/* 时间列 */
.news-time{
  display:flex;
  flex-direction:column;
  gap:2px;
  padding-top:2px;
  font-variant-numeric:tabular-nums;
}
.news-time b{
  font-size:14px;
  font-weight:700;
  color:var(--ink);
  line-height:1.3;
}
.news-time span{
  font-size:11.5px;
  color:var(--ink-3);
  line-height:1.4;
}

/* 内容列 */
.news-body{min-width:0;}

.news-kicker{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  margin-bottom:8px;
}
.news-tag-inline{
  font-size:12px;
  color:var(--brand);
  font-weight:500;
  padding:2px 8px;
  background:var(--brand-bg);
  border-radius:3px;
}

.news-title{
  font-size:15.5px;
  line-height:1.55;
  font-weight:600;
  color:var(--ink);
  margin-bottom:6px;
  transition:color .16s var(--ease);
}
.news-title a{color:inherit;}
.news-item:hover .news-title{color:var(--brand);}

.news-desc{
  font-size:13.5px;
  line-height:1.7;
  color:var(--ink-3);
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

/* ── 空状态 ────────────────────────────────────── */
.news-empty{
  padding:48px 24px;
  text-align:center;
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--r);
  margin-bottom:24px;
}
.news-empty[hidden]{display:none;}
.news-empty-title{
  font-size:15px;
  font-weight:600;
  color:var(--ink);
  margin-bottom:6px;
}
.news-empty-desc{
  font-size:13px;
  color:var(--ink-3);
  margin-bottom:16px;
}
.news-empty-btn{
  display:inline-flex;
  align-items:center;
  padding:8px 20px;
  font-size:13px;
  font-weight:600;
  color:var(--brand);
  background:var(--brand-bg);
  border-radius:100px;
  transition:background .16s var(--ease),color .16s var(--ease);
}
.news-empty-btn:hover{background:var(--brand);color:#fff;}

/* ── 加载更多 ──────────────────────────────────── */
.news-more-wrap{
  display:flex;
  justify-content:center;
  padding:8px 0 0;
  margin-bottom:32px;
}
.news-more-btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:11px 28px;
  font-size:13.5px;
  font-weight:600;
  color:var(--ink-2);
  background:var(--card);
  border:1px solid var(--line);
  border-radius:100px;
  box-shadow:var(--shadow-sm);
  transition:all .16s var(--ease);
}
.news-more-btn:hover{
  color:var(--brand);
  border-color:var(--brand);
  box-shadow:var(--shadow-md);
}
.news-more-btn:disabled{
  cursor:not-allowed;
  opacity:.7;
}
.news-more-btn svg{
  width:14px;
  height:14px;
  transition:transform .16s var(--ease);
}
.news-more-btn:hover svg{transform:translateY(2px);}

/* ── news 列表页：筛选计数 / 项目名链接 / 归档提示 / FAQ 面板 ── */
.filter-count{
  order:3;flex:0 0 auto;
  font-size:12px;color:var(--ink-3);
  font-variant-numeric:tabular-nums;white-space:nowrap;
}
.filter-sort{order:2;}
a.news-tag-inline{text-decoration:none;transition:background .16s var(--ease),color .16s var(--ease);}
a.news-tag-inline:hover{background:var(--brand);color:#fff;}
.news-list-note{
  font-size:12.5px;line-height:1.8;color:var(--ink-3);
  padding:0 2px;margin:20px 0 0 0;
}
.news-list-note[hidden]{display:none;}
.news-list-note a{color:var(--brand);}
.news-list-note a:hover{text-decoration:underline;}
.faq-panel{
  background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  box-shadow:var(--shadow-sm);padding:20px 24px 12px;margin-bottom:24px;
}
.faq-panel-title{
  font-size:17px;line-height:1.45;font-weight:700;
  color:var(--ink);letter-spacing:.01em;margin-bottom:14px;
}
.faq-panel .proj-faq{padding:0;}

/* ── 侧栏：今日速览 ────────────────────────────── */
.news-today-card{
  background:var(--card);
  border:1px solid var(--line);
  border-top:3px solid var(--ink);
  border-radius:var(--r);
  box-shadow:var(--shadow-sm);
  padding:16px 18px;
}
.ntc-head{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  margin-bottom:14px;
}
.ntc-kicker{
  display:inline-flex;
  align-items:center;
  gap:7px;
  font-size:14px;
  font-weight:700;
  color:var(--ink);
}
.ntc-pulse{
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--risk);
  animation:pulse 1.6s ease-in-out infinite;
}
.ntc-date{
  font-size:12px;
  color:var(--ink-3);
  font-variant-numeric:tabular-nums;
}
.ntc-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:1px;
  background:var(--line-soft);
  border:1px solid var(--line-soft);
  border-radius:var(--r-sm);
  overflow:hidden;
}
.ntc-cell{
  background:var(--card);
  display:flex;
  flex-direction:column;
  align-items:center;
  padding:11px 2px 9px;
}
.ntc-num{
  font-size:20px;
  font-weight:700;
  line-height:1.2;
  font-variant-numeric:tabular-nums;
  letter-spacing:-.02em;
}
.ntc-num.c-r{color:var(--risk-deep);}
.ntc-num.c-d{color:var(--risk);}
.ntc-num.c-w{color:var(--warn);}
.ntc-num.c-l{color:var(--legal);}
.ntc-cell span{
  font-size:11.5px;
  color:var(--ink-3);
  margin-top:2px;
  white-space:nowrap;
}
.ntc-note{
  margin-top:12px;
  font-size:12.5px;
  line-height:1.65;
  color:var(--ink-3);
}

/* ── 侧栏：本周热点 ────────────────────────────── */
.news-hot{
  display:flex;
  flex-direction:column;
  list-style:none;
}
.news-hot li{
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 0;
  border-bottom:1px solid var(--line-soft);
}
.news-hot li:last-child{border-bottom:0;padding-bottom:12px;}
.news-hot a{
  flex:1;
  min-width:0;
  font-size:13.5px;
  font-weight:500;
  color:var(--ink-2);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  transition:color .15s var(--ease);
}
.news-hot li:hover a{color:var(--brand);}
.news-hot b{
  flex:0 0 auto;
  font-size:12.5px;
  font-weight:600;
  color:var(--ink-3);
  font-variant-numeric:tabular-nums;
}

/* ── 侧栏：等级说明 ────────────────────────────── */
.news-level-legend{
  display:flex;
  flex-direction:column;
  gap:12px;
  padding:8px 0 14px;
  list-style:none;
}
.news-level-legend li{
  display:flex;
  align-items:flex-start;
  gap:10px;
  font-size:12.5px;
  line-height:1.6;
  color:var(--ink-3);
}
.news-level-legend .lg{
  flex:0 0 7px;
  margin-top:5px;
}
.news-level-legend b{
  color:var(--ink);
  font-weight:600;
}
/* 列表页侧栏 */
.hot-list li{
  display:flex;align-items:flex-start;gap:10px;padding:11px 0;
  border-bottom:1px solid var(--line-soft);
}
.hot-list li:last-child{border-bottom:0;padding-bottom:12px;}
.hot-rank{
  flex:0 0 20px;font-style:normal;font-size:13px;font-weight:700;
  color:var(--ink-4);font-variant-numeric:tabular-nums;line-height:1.7;text-align:center;
}
.hot-list li:nth-child(1) .hot-rank{color:var(--risk);}
.hot-list li:nth-child(2) .hot-rank{color:var(--risk);opacity:.75;}
.hot-list li:nth-child(3) .hot-rank{color:var(--warn);}
.hot-list a{
  flex:1;min-width:0;font-size:13.5px;line-height:1.6;font-weight:500;color:var(--ink-2);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  overflow:hidden;transition:color .15s var(--ease);
}
.hot-list li:hover a{color:var(--brand);}
.hot-num{
  flex:0 0 auto;font-size:11.5px;font-weight:600;color:var(--ink-3);
  font-variant-numeric:tabular-nums;line-height:1.7;padding-top:1px;
}
.cat-list li{border-bottom:1px solid var(--line-soft);}
.cat-list li:last-child{border-bottom:0;padding-bottom:12px;}
.cat-list a{
  display:flex;align-items:center;gap:10px;padding:10px 0;
  font-size:13.5px;color:var(--ink-2);transition:color .15s var(--ease);
}
.cat-list a:hover{color:var(--brand);}
.cat-list span{flex:1;font-weight:500;}
.cat-list em{font-style:normal;font-size:12px;color:var(--ink-3);font-variant-numeric:tabular-nums;}

/* ============================================================
   项目库页专用
   ============================================================ */

/* 项目表格 */
.db-list{
  --db-cols:minmax(140px,1.6fr) 88px 52px minmax(100px,1fr) 88px 56px;
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--r);
  overflow:hidden;
  margin-bottom:24px;
}
.db-head{
  display:grid;
  grid-template-columns:var(--db-cols);
  gap:12px;
  padding:11px 20px;
  background:#fafaf8;
  border-bottom:1px solid var(--line);
  font-size:11.5px;
  color:var(--ink-3);
  letter-spacing:.06em;
}
.db-head span:nth-child(2),
.db-head span:nth-child(3),
.db-head span:nth-child(6){text-align:center;}
.db-head span:nth-child(4),
.db-head span:nth-child(5){text-align:left;}

.db-body{display:flex;flex-direction:column;}
.db-row{
  display:grid;
  grid-template-columns:var(--db-cols);
  gap:12px;
  align-items:center;
  padding:13px 20px;
  border-bottom:1px solid var(--line-soft);
  transition:background .15s var(--ease);
}
.db-row:last-child{border-bottom:0;}
.db-row:hover{background:#fafaf8;}
.db-row[hidden]{display:none;}

.db-name{
  font-size:14.5px;
  font-weight:600;
  color:var(--ink);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  transition:color .15s var(--ease);
}
.db-row:hover .db-name{color:var(--brand);}

.db-level{display:flex;justify-content:center;}

.db-score{
  text-align:center;
  font-size:16px;
  font-weight:700;
  font-variant-numeric:tabular-nums;
  letter-spacing:-.01em;
}
.s-l{color:var(--legal);}

.db-org{
  font-size:13.5px;
  color:var(--ink-2);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.db-updated{
  font-size:12.5px;
  color:var(--ink-3);
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}
.db-cnt{
  text-align:center;
  font-size:13.5px;
  font-weight:600;
  color:var(--ink-2);
  font-variant-numeric:tabular-nums;
}
.db-cnt.is-zero{color:var(--ink-4);font-weight:400;}

/* 空状态 */
.db-empty{
  padding:48px 24px;
  text-align:center;
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--r);
  margin-bottom:24px;
}
.db-empty[hidden]{display:none;}
.db-empty-title{
  font-size:15px;
  font-weight:600;
  color:var(--ink);
  margin-bottom:6px;
}
.db-empty-desc{
  font-size:13px;
  color:var(--ink-3);
  margin-bottom:16px;
}
.db-empty-btn{
  display:inline-flex;
  align-items:center;
  padding:8px 20px;
  font-size:13px;
  font-weight:600;
  color:var(--brand);
  background:var(--brand-bg);
  border-radius:100px;
  transition:background .16s var(--ease),color .16s var(--ease);
}
.db-empty-btn:hover{background:var(--brand);color:#fff;}

/* 侧栏：风险等级分布 */
.db-dist-list li{border-bottom:1px solid var(--line-soft);}
.db-dist-list li:last-child{border-bottom:0;padding-bottom:12px;}
.db-dist-list a{
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 0;
  font-size:13px;
  transition:color .15s var(--ease);
}
.db-dist-list a:hover{color:var(--brand);}
.db-dist-name{
  flex:0 0 auto;
  font-weight:500;
  color:var(--ink-2);
  min-width:52px;
}
.db-dist-list a:hover .db-dist-name{color:var(--brand);}
.db-dist-bar{
  flex:1;
  height:6px;
  background:var(--line-soft);
  border-radius:3px;
  overflow:hidden;
}
.db-dist-bar span{display:block;height:100%;border-radius:3px;}
.db-dist-bar .b-r{background:var(--risk-deep);}
.db-dist-bar .b-d{background:var(--risk);}
.db-dist-bar .b-w{background:var(--warn);}
.db-dist-bar .b-l{background:var(--legal);}
.db-dist-bar .b-v{background:var(--good);}
.db-dist-num{
  flex:0 0 auto;
  font-size:12.5px;
  font-weight:700;
  color:var(--ink);
  font-variant-numeric:tabular-nums;
  min-width:22px;
  text-align:right;
}

/* 侧栏：最近更新 */
.db-recent li{border-bottom:1px solid var(--line-soft);}
.db-recent li:last-child{border-bottom:0;padding-bottom:12px;}
.db-recent a{
  display:flex;
  align-items:center;
  gap:8px;
  padding:10px 0;
  transition:color .15s var(--ease);
}
.db-recent-name{
  flex:1;
  min-width:0;
  font-size:13.5px;
  font-weight:500;
  color:var(--ink-2);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.db-recent a:hover .db-recent-name{color:var(--brand);}
.db-recent .lv-tag{
  font-size:11px;
  padding:3px 7px;
  gap:4px;
}
.db-recent .lv-tag::before{width:4px;height:4px;flex-basis:4px;}
.db-recent time{
  flex:0 0 auto;
  font-size:11.5px;
  color:var(--ink-3);
  font-variant-numeric:tabular-nums;
}

/* 标签云带数字 */
.tagcloud a b{
  font-weight:600;
  color:var(--ink-3);
  margin-left:4px;
  font-variant-numeric:tabular-nums;
}
.tagcloud a:hover b{color:var(--brand);}

/* ============================================================
   项目详情页专用
   ============================================================ */

/* ── 项目 Hero ─────────────────────────────────── */
.proj-hero{
  background:linear-gradient(135deg,#14171c 0%,#1a1e26 100%);
  color:#fff;
  border-radius:var(--r-lg);
  padding:32px;
  margin-bottom:32px;
  overflow:hidden;
}
.proj-hero-head{
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:20px;
  flex-wrap:wrap;
}
.proj-hero-head .lv-tag{
  font-size:12px;
  padding:5px 10px;
}
.proj-hero-updated{
  font-size:12.5px;
  color:rgba(255,255,255,.55);
  font-variant-numeric:tabular-nums;
  display:inline-flex;
  align-items:center;
}
.proj-hero-updated::before{
  content:"";
  display:inline-block;
  width:4px;height:4px;
  background:rgba(255,255,255,.3);
  border-radius:50%;
  margin-right:8px;
}

.proj-hero-main{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:24px;
  margin-bottom:24px;
  flex-wrap:wrap;
}
.proj-hero-left{min-width:0;flex:1 1 auto;}
.proj-hero-name{
  font-family:var(--serif);
  font-size:38px;
  line-height:1.35;
  font-weight:600;
  color:#fff;
  letter-spacing:.02em;
  margin-bottom:8px;
}
.proj-hero-meta{
  font-size:14px;
  color:rgba(255,255,255,.6);
  line-height:1.6;
}

.proj-hero-score{
  flex:0 0 auto;
  display:flex;
  align-items:baseline;
  gap:4px;
  padding:12px 20px;
  background:rgba(255,123,110,.08);
  border:1px solid rgba(255,123,110,.25);
  border-radius:var(--r);
}
.proj-hero-score-num{
  font-size:48px;
  font-weight:700;
  line-height:1;
  color:#ff7b6e;
  letter-spacing:-.03em;
  font-variant-numeric:tabular-nums;
  font-family:var(--sans);
}
.proj-hero-score-unit{
  font-size:15px;
  color:rgba(255,255,255,.55);
  font-weight:500;
}

.proj-hero-facts{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1px;
  background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.1);
  border-radius:var(--r-sm);
  overflow:hidden;
  margin-bottom:20px;
}
.proj-hero-fact{
  background:rgba(15,17,21,.85);
  padding:14px 16px;
  display:flex;
  flex-direction:column;
  gap:4px;
  min-width:0;
}
.phf-label{
  font-size:11.5px;
  color:rgba(255,255,255,.5);
  letter-spacing:.04em;
}
.phf-value{
  font-size:13.5px;
  color:#fff;
  font-weight:500;
  line-height:1.5;
  word-break:break-word;
}
.phf-value--risk{color:#ff7b6e;}

.proj-hero-advice{
  display:flex;
  gap:12px;
  padding:14px 18px;
  background:rgba(255,123,110,.06);
  border:1px solid rgba(255,123,110,.2);
  border-left:3px solid #ff7b6e;
  border-radius:var(--r-sm);
}
.proj-hero-advice svg{
  flex:0 0 18px;
  width:18px;height:18px;
  color:#ff7b6e;
  margin-top:2px;
}
.proj-hero-advice p{
  font-size:13px;
  line-height:1.7;
  color:rgba(255,255,255,.75);
  margin:0;
}
.proj-hero-advice b{color:#fff;font-weight:600;}
.proj-hero-advice a{
  color:#ffb5aa;
  text-decoration:underline;
  text-underline-offset:3px;
}
.proj-hero-advice a:hover{color:#fff;}

/* ── 标签页 hero：标签身份条 / 风险分档 / 阶段轨道 / 主行动 ── */
.hero-kind{
  font-size:11px;
  font-weight:700;
  letter-spacing:.08em;
  color:rgba(255,255,255,.62);
  padding:4px 9px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:5px;
}
.hero-count{
  font-size:12.5px;
  color:rgba(255,255,255,.55);
  font-variant-numeric:tabular-nums;
}
.hero-count b{ color:#fff; font-weight:600; }

.proj-hero-score{ flex-wrap:wrap; }
.proj-hero-score-band{
  flex:1 0 100%;
  margin-top:3px;
  text-align:right;
  font-size:11px;
  font-weight:600;
  letter-spacing:.04em;
  color:rgba(255,255,255,.5);
}

.proj-hero-stage{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  margin-bottom:20px;
}
.ps-label{ font-size:11.5px; letter-spacing:.04em; color:rgba(255,255,255,.5); }
.ps-track{
  display:flex;
  align-items:center;
  list-style:none;
  margin:0;
  padding:0;
}
.ps-step{
  position:relative;
  display:flex;
  align-items:center;
  gap:7px;
  font-size:12.5px;
  color:rgba(255,255,255,.4);
  white-space:nowrap;
}
.ps-step::before{
  content:"";
  width:6px;
  height:6px;
  border-radius:50%;
  flex:0 0 6px;
  background:rgba(255,255,255,.22);
}
.ps-step + .ps-step{ margin-left:24px; }
.ps-step + .ps-step::after{
  content:"";
  position:absolute;
  left:-18px;
  top:50%;
  width:12px;
  height:1px;
  background:rgba(255,255,255,.14);
}
.ps-step.is-done{ color:rgba(255,255,255,.7); }
.ps-step.is-done::before{ background:rgba(255,255,255,.45); }
.ps-step.is-current{ color:#fff; font-weight:600; }
.ps-step.is-current::before{ background:#ff7b6e; box-shadow:0 0 0 3px rgba(255,123,110,.18); }

.proj-hero-advice .pha-body{ min-width:0; }
.hero-actions{ display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.hero-btn{
  display:inline-flex;
  align-items:center;
  height:34px;
  padding:0 16px;
  border-radius:100px;
  font-size:13px;
  font-weight:600;
  color:#fff;
  text-decoration:none;
  background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.18);
  transition:background .16s var(--ease), border-color .16s var(--ease);
}
.hero-btn:hover{ background:rgba(255,255,255,.18); }
.hero-btn--primary{
  background:#ff7b6e;
  border-color:#ff7b6e;
  color:#1a1e26;
  font-weight:700;
}
.hero-btn--primary:hover{ background:#ff9184; border-color:#ff9184; }

/* ── 档案信息：核实清单与口径注脚 ── */
.verify-strip{
  margin:0 24px 18px;
  padding:15px 18px;
  background:var(--good-bg);
  border:1px solid rgba(6,118,71,.16);
  border-radius:var(--r-sm);
}
.vs-head{
  display:flex;
  align-items:center;
  gap:6px;
  margin-bottom:10px;
  font-size:12.5px;
  font-weight:700;
  letter-spacing:.04em;
  color:#067647;
}
.vs-list{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px 22px;
}
.vs-list li{
  display:flex;
  gap:8px;
  font-size:12.5px;
  line-height:1.65;
  color:var(--ink-2);
}
.vs-list li i{
  flex:0 0 auto;
  width:15px;
  height:15px;
  margin-top:2px;
  border-radius:50%;
  background:var(--good);
  color:#fff;
  font-size:11px;
  font-style:normal;
  display:flex;
  align-items:center;
  justify-content:center;
}
.vs-list li b{ font-weight:600; color:var(--ink); }
.pf-note{
  margin:20px 24px 20px;
  font-size:11.5px;
  line-height:1.75;
  color:var(--ink-4);
}
.pf-note a{ color:var(--brand); border-bottom:1px solid var(--brand-bg); }
.pf-note a:hover{ border-bottom-color:var(--brand); }

/* ── 侧栏：同运营方关联依据 ── */
.proj-same-note{
  margin:-4px 0 12px;
  font-size:11.5px;
  line-height:1.55;
  color:var(--ink-4);
}
.proj-same-note b{ color:var(--ink-3); font-weight:600; }

.proj-tl-item[hidden]{ display:none; }

@media (max-width:760px){
  .proj-hero-stage{ gap:8px; }
  .ps-step{ font-size:12px; }
  .ps-step + .ps-step{ margin-left:16px; }
  .ps-step + .ps-step::after{ left:-12px; width:8px; }
  .vs-list{ grid-template-columns:1fr; }
  .hero-actions .hero-btn{ flex:1 1 auto; justify-content:center; }
}

/* ── 风险时间线 ────────────────────────────────── */
.proj-timeline{
  padding:8px 24px 20px;
  list-style:none;
}
.proj-tl-item{
  display:grid;
  grid-template-columns:24px minmax(0,1fr);
  gap:14px;
  padding:16px 0;
  position:relative;
}
.proj-tl-dot{
  position:relative;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  padding-top:5px;
}
.proj-tl-dot::before{
  content:"";
  width:11px;height:11px;
  border-radius:50%;
  background:var(--card);
  border:2.5px solid var(--ink-4);
  z-index:1;
  flex:0 0 11px;
  box-sizing:border-box;
}
.proj-tl-dot::after{
  content:"";
  position:absolute;
  top:16px;
  left:50%;
  transform:translateX(-50%);
  width:2px;
  bottom:-20px;
  background:var(--line);
}
.proj-tl-item:last-child .proj-tl-dot::after{display:none;}
.proj-tl-item:first-child .proj-tl-dot::before{
  background:#f97066;
  border-color:#f97066;
  box-shadow:0 0 0 4px rgba(249,112,102,.15);
}
.proj-tl-content{min-width:0;padding-top:2px;}
.proj-tl-type{
  display:inline-flex;
  align-items:center;
  gap:5px;
  font-size:11px;
  font-weight:600;
  color:var(--ink-3);
  margin-bottom:6px;
  letter-spacing:.02em;
}
.proj-tl-type--r{color:var(--risk-deep);}
.proj-tl-type--d{color:var(--risk);}
.proj-tl-type--w{color:var(--warn);}
.proj-tl-type--l{color:var(--legal);}
.proj-tl-type--u{color:var(--info);}
.proj-tl-title{
  font-size:15px;
  line-height:1.55;
  font-weight:600;
  color:var(--ink);
  margin-bottom:4px;
}
.proj-tl-desc{
  font-size:13.5px;
  line-height:1.7;
  color:var(--ink-3);
}

/* ── 档案信息 ──────────────────────────────────── */
.proj-facts-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1px;
  background:var(--line-soft);
}
.proj-fact{
  background:var(--card);
  padding:16px 20px;
  display:flex;
  flex-direction:column;
  gap:6px;
  min-width:0;
}
.pf-label{
  font-size:11.5px;
  color:var(--ink-3);
  letter-spacing:.04em;
}
.pf-value{
  font-size:13.5px;
  color:var(--ink);
  font-weight:500;
  line-height:1.5;
  word-break:break-word;
}
.pf-value--risk{color:var(--risk);font-weight:600;}
.pf-value--empty{color:var(--ink-4);font-weight:400;}

/* 行式档案明细：一行一字段，与后台「条目档案」字段对位 */
.proj-facts-list{margin:0;padding:0;border-top:1px solid var(--line-soft);}
.pf-row{
  display:grid;
  grid-template-columns:112px minmax(0,1fr);
  gap:16px;
  padding:13px 20px;
  border-bottom:1px solid var(--line-soft);
}
.pf-row dt{font-size:12.5px;color:var(--ink-3);letter-spacing:.04em;line-height:1.6;}
.pf-row dd{margin:0;font-size:13.5px;color:var(--ink);font-weight:500;line-height:1.6;word-break:break-word;}
.pf-row dd.pf-value--empty{color:var(--ink-4);font-weight:400;}
@media (max-width:560px){
  .pf-row{grid-template-columns:84px minmax(0,1fr);gap:12px;padding:12px 16px;}
}

/* ── 关联文章 ──────────────────────────────────── */
.proj-articles{padding:8px 24px 20px;}
.proj-article{
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:16px 0;
  border-bottom:1px solid var(--line-soft);
}
.proj-article:last-child{border-bottom:0;padding-bottom:8px;}
.proj-article .cat-badge{align-self:flex-start;}
.proj-article h3{
  font-size:15.5px;
  line-height:1.55;
  font-weight:600;
  color:var(--ink);
  transition:color .16s var(--ease);
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.proj-article:hover h3{color:var(--brand);}
/* 标签页：hero 关联标签条 + 内容类型筛选 */
.proj-hero-tags{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  margin-top:18px;
  padding-top:14px;
  border-top:1px dashed var(--line-soft);
}
.pht-label{ font-size:11.5px; font-weight:700; color:var(--ink-4); letter-spacing:.05em; margin-right:4px; }
.proj-hero-tags .tag-pill--sm{ padding:5px 11px; font-size:12px; }
.tc-tabs{
  display:flex;
  flex-wrap:wrap;
  gap:2px;
  padding:2px;
  background:var(--bg);
  border-radius:var(--r-sm);
  margin:14px 24px 0;
}
.proj-article[hidden]{ display:none; }
.panel .tag-more-wrap{ padding:6px 24px 18px; }
.panel .tag-more-wrap[hidden]{ display:none; }
@media (max-width:760px){ .proj-hero-tags{ gap:6px; } }

.proj-article-meta{
  font-size:12px;
  color:var(--ink-3);
  font-variant-numeric:tabular-nums;
}

/* ── 用户反馈 ──────────────────────────────────── */
.proj-feedback{
  padding:0 24px 12px;
  list-style:none;
}
.proj-feedback li{
  padding:16px 0;
  border-bottom:1px solid var(--line-soft);
}
.proj-feedback li:last-child{border-bottom:0;padding-bottom:8px;}
.pf-text{
  font-size:14px;
  line-height:1.7;
  color:var(--ink-2);
  margin-bottom:8px;
}
.pf-meta{
  display:flex;
  align-items:center;
  gap:12px;
  font-size:12px;
  color:var(--ink-3);
  font-variant-numeric:tabular-nums;
  flex-wrap:wrap;
}
.pf-author{font-weight:500;color:var(--ink-2);}
.pf-useful{
  margin-left:auto;
  font-size:12px;
  color:var(--ink-3);
}

/* ── 侧栏：快速操作卡 ──────────────────────────── */
.proj-action-card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--r);
  box-shadow:var(--shadow-sm);
  padding:18px;
}
.pac-title{
  font-size:15px;
  font-weight:700;
  color:var(--ink);
  margin-bottom:14px;
}
.pac-buttons{display:flex;flex-direction:column;gap:8px;}
.pac-btn{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:11px 16px;
  font-size:13.5px;
  font-weight:600;
  border:1px solid var(--line);
  border-radius:var(--r-sm);
  color:var(--ink-2);
  background:var(--card);
  transition:all .16s var(--ease);
}
.pac-btn:hover{
  color:var(--brand);
  border-color:var(--brand);
  background:var(--brand-bg);
}
.pac-btn--primary{
  background:var(--risk);
  border-color:var(--risk);
  color:#fff;
}
.pac-btn--primary:hover{
  background:var(--risk-deep);
  border-color:var(--risk-deep);
  color:#fff;
}

/* ── 侧栏：同运营方 ────────────────────────────── */
.proj-same-list li{border-bottom:1px solid var(--line-soft);}
.proj-same-list li:last-child{border-bottom:0;padding-bottom:12px;}
.proj-same-list a{
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 0;
  transition:color .15s var(--ease);
}
.proj-same-name{
  flex:1;
  min-width:0;
  font-size:13.5px;
  font-weight:500;
  color:var(--ink-2);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.proj-same-list a:hover .proj-same-name{color:var(--brand);}
.proj-same-list .lv-tag{
  font-size:11px;
  padding:3px 7px;
  gap:4px;
}
.proj-same-list .lv-tag::before{width:4px;height:4px;flex-basis:4px;}
/* ============================================================
   搜索结果页专用
   ============================================================ */

/* ── 搜索页头 ──────────────────────────────────── */
.sph-title{
  font-size:12px;font-weight:700;letter-spacing:.1em;
  color:var(--ink-3);text-transform:uppercase;
  margin:0 0 10px;
}
.search-page-head{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  box-shadow:var(--shadow-sm);
  padding:24px 32px;
  margin-bottom:24px;
}

.search-page-form{
  position:relative;
  display:flex;
  align-items:center;
  gap:0;
  max-width:720px;
  margin-bottom:14px;
}
.spf-icon{
  position:absolute;
  left:18px;
  top:50%;
  transform:translateY(-50%);
  width:18px;
  height:18px;
  color:var(--ink-4);
  pointer-events:none;
}
.search-page-form input{
  flex:1;
  min-width:0;
  height:48px;
  padding:0 108px 0 46px;
  border:1.5px solid var(--line);
  border-radius:100px;
  background:var(--bg);
  font-family:inherit;
  font-size:15px;
  color:var(--ink);
  outline:none;
  transition:border-color .2s,background .2s,box-shadow .2s;
}
.search-page-form input::placeholder{color:var(--ink-4);}
.search-page-form input:focus{
  border-color:var(--brand);
  background:#fff;
  box-shadow:0 0 0 3px rgba(32,50,92,.10);
}
.search-page-form input::-webkit-search-cancel-button{-webkit-appearance:none;}
.search-page-form button{
  position:absolute;
  right:5px;
  top:50%;
  transform:translateY(-50%);
  height:38px;
  padding:0 24px;
  border-radius:100px;
  background:var(--brand);
  color:#fff;
  font-size:14px;
  font-weight:600;
  transition:background .16s var(--ease);
}
.search-page-form button:hover{background:var(--brand-2);}

.search-page-meta{
  display:flex;
  flex-direction:column;
  gap:4px;
}
.spm-text{
  font-size:13px;
  color:var(--ink-3);
  margin:0;
  font-variant-numeric:tabular-nums;
}
.spm-text b{
  color:var(--ink);
  font-weight:600;
}
.spm-hint{
  font-size:12.5px;
  color:var(--ink-4);
  margin:0;
}

/* ── 结果类型 tabs + 排序 ──────────────────────── */
.sr-bar{
  display:flex;
  align-items:center;
  gap:16px;
  padding:12px 16px;
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--r);
  box-shadow:var(--shadow-sm);
  margin-bottom:20px;
  flex-wrap:wrap;
}
.sr-types{
  display:flex;
  gap:2px;
  padding:2px;
  background:var(--bg);
  border-radius:var(--r-sm);
  flex:1 1 auto;
  overflow-x:auto;
  scrollbar-width:none;
}
.sr-types::-webkit-scrollbar{display:none;}
.sr-type-tab{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:7px 16px;
  font-size:13.5px;
  font-weight:500;
  color:var(--ink-3);
  border-radius:5px;
  white-space:nowrap;
  transition:all .16s var(--ease);
}
.sr-type-tab:hover{color:var(--ink);}
.sr-type-tab.is-active{
  background:var(--card);
  color:var(--ink);
  font-weight:600;
  box-shadow:var(--shadow-sm);
}
.sr-type-count{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:20px;
  height:18px;
  padding:0 6px;
  font-size:11px;
  font-weight:600;
  color:var(--ink-3);
  background:var(--line-soft);
  border-radius:100px;
  font-variant-numeric:tabular-nums;
  transition:all .16s var(--ease);
}
.sr-type-tab.is-active .sr-type-count{
  background:var(--brand-bg);
  color:var(--brand);
}
.sr-sort{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:12.5px;
  color:var(--ink-3);
  flex:0 0 auto;
}
.sr-sort select{
  height:32px;
  padding:0 26px 0 10px;
  border:1px solid var(--line);
  border-radius:var(--r-sm);
  background:var(--card);
  color:var(--ink-2);
  font-family:inherit;
  font-size:12.5px;
  cursor:pointer;
  transition:border-color .16s;
}
.sr-sort select:hover{border-color:var(--ink-4);}

/* ── 结果列表 ──────────────────────────────────── */
.sr-list{
  display:flex;
  flex-direction:column;
  gap:12px;
  margin-bottom:24px;
}

.sr-item{
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:18px 20px;
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--r);
  transition:box-shadow .2s var(--ease),border-color .2s var(--ease),transform .2s var(--ease);
}
.sr-item:hover{
  box-shadow:var(--shadow-md);
  border-color:#d8d8d2;
  transform:translateY(-1px);
}
.sr-item[hidden]{display:none;}

/* 结果项头部 */
.sr-item-head{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  font-size:12px;
  color:var(--ink-3);
  font-variant-numeric:tabular-nums;
}
.sr-item-type{
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:2px 8px;
  font-size:11.5px;
  font-weight:600;
  border-radius:3px;
  white-space:nowrap;
}
.sr-item-type svg{width:12px;height:12px;}
.sr-item-type--project{
  background:var(--brand-bg);
  color:var(--brand);
}
.sr-item-type--article{
  background:var(--good-bg);
  color:var(--good);
}
.sr-item-type--news{
  background:var(--info-bg);
  color:var(--info);
}

.sr-item-score{
  font-size:12px;
  font-weight:600;
  color:var(--risk);
  font-variant-numeric:tabular-nums;
  padding:2px 7px;
  border-radius:3px;
  background:var(--risk-bg);
}
.sr-item-head time{
  margin-left:auto;
  color:var(--ink-3);
  font-variant-numeric:tabular-nums;
}

/* 结果项标题 */
.sr-item-title{
  font-size:16px;
  line-height:1.55;
  font-weight:600;
  color:var(--ink);
  transition:color .16s var(--ease);
  margin:0;
}
.sr-item:hover .sr-item-title{color:var(--brand);}
.sr-item--project .sr-item-title{font-size:18px;}

/* 关键词高亮 */
.sr-mark{
  background:transparent;
  color:var(--brand);
  font-weight:700;
  padding:0 1px;
}

/* 结果项描述 */
.sr-item-desc{
  font-size:14px;
  line-height:1.7;
  color:var(--ink-3);
  margin:0;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

/* ── 搜索结果：加载更多 ────────────────────────── */
.sr-more-wrap{
  display:flex;justify-content:center;
  padding:8px 0 0;margin-bottom:24px;
}
.sr-more-wrap[hidden]{display:none;}
.sr-more-btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:11px 28px;font-size:13.5px;font-weight:600;color:var(--ink-2);
  background:var(--card);border:1px solid var(--line);border-radius:100px;
  box-shadow:var(--shadow-sm);transition:all .16s var(--ease);
}
.sr-more-btn:hover{color:var(--brand);border-color:var(--brand);box-shadow:var(--shadow-md);}
.sr-more-btn svg{width:14px;height:14px;transition:transform .16s var(--ease);}
.sr-more-btn:hover svg{transform:translateY(2px);}
.sr-more-done{
  text-align:center;font-size:12.5px;line-height:1.6;
  color:var(--ink-4);margin:0 0 24px;
}
.sr-more-done[hidden]{display:none;}
.sr-item-desc .sr-mark{color:var(--ink-2);font-weight:500;}

/* 结果项 meta */
.sr-item-meta{
  display:flex;
  align-items:center;
  gap:14px;
  font-size:12px;
  color:var(--ink-3);
  flex-wrap:wrap;
  font-variant-numeric:tabular-nums;
}
.sr-item-meta span:not(:first-child)::before{
  content:"·";
  margin-right:14px;
  color:var(--ink-4);
}

/* ── 空状态 ────────────────────────────────────── */
.sr-empty{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  box-shadow:var(--shadow-sm);
  padding:56px 32px;
  text-align:center;
  margin-bottom:24px;
}
.sr-empty[hidden]{display:none;}
.sr-empty-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:64px;
  height:64px;
  background:var(--bg);
  border-radius:50%;
  color:var(--ink-4);
  margin-bottom:16px;
}
.sr-empty-icon svg{width:28px;height:28px;}
.sr-empty-title{
  font-size:20px;
  font-weight:700;
  color:var(--ink);
  margin-bottom:8px;
}
.sr-empty-desc{
  font-size:13.5px;
  line-height:1.7;
  color:var(--ink-3);
  max-width:520px;
  margin:0 auto 20px;
}
.sr-empty-desc a{
  color:var(--brand);
  text-decoration:underline;
  text-underline-offset:3px;
}
.sr-empty-suggest{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  flex-wrap:wrap;
  margin-bottom:24px;
}
.sr-empty-suggest-label{
  font-size:12.5px;
  color:var(--ink-3);
}
.sr-empty-suggest a{
  font-size:12.5px;
  color:var(--brand);
  padding:4px 12px;
  background:var(--brand-bg);
  border-radius:100px;
  transition:all .16s var(--ease);
}
.sr-empty-suggest a:hover{background:var(--brand);color:#fff;}
.sr-empty-actions{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  flex-wrap:wrap;
}
.sr-empty-btn{
  display:inline-flex;
  align-items:center;
  padding:10px 24px;
  font-size:13.5px;
  font-weight:600;
  color:var(--ink-2);
  background:var(--card);
  border:1px solid var(--line);
  border-radius:100px;
  transition:all .16s var(--ease);
}
.sr-empty-btn:hover{
  color:var(--brand);
  border-color:var(--brand);
  background:var(--brand-bg);
}
.sr-empty-btn--primary{
  background:var(--brand);
  border-color:var(--brand);
  color:#fff;
}
.sr-empty-btn--primary:hover{
  background:var(--brand-2);
  border-color:var(--brand-2);
  color:#fff;
}

/* ── 侧栏：相关搜索 ────────────────────────────── */
.sr-related-tags{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  padding:12px 0 14px;
}
.sr-related-tags a{
  font-size:12.5px;
  color:var(--ink-2);
  padding:5px 12px;
  background:var(--bg);
  border:1px solid var(--line-soft);
  border-radius:100px;
  transition:all .16s var(--ease);
}
.sr-related-tags a:hover{
  color:var(--brand);
  border-color:var(--brand);
  background:var(--brand-bg);
}

/* ── 侧栏：热门搜索 ────────────────────────────── */
.sr-hot-list{
  display:flex;
  flex-direction:column;
  list-style:none;
}
.sr-hot-list li{
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 0;
  border-bottom:1px solid var(--line-soft);
}
.sr-hot-list li:last-child{border-bottom:0;padding-bottom:12px;}
.sr-hot-list i{
  flex:0 0 20px;
  text-align:center;
  font-style:normal;
  font-size:13px;
  font-weight:700;
  color:var(--ink-4);
  font-variant-numeric:tabular-nums;
}
.sr-hot-list li:nth-child(1) i{color:var(--risk);}
.sr-hot-list li:nth-child(2) i{color:var(--risk);opacity:.75;}
.sr-hot-list li:nth-child(3) i{color:var(--warn);}
.sr-hot-list a{
  flex:1;
  min-width:0;
  font-size:13.5px;
  font-weight:500;
  color:var(--ink-2);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  transition:color .15s var(--ease);
}
.sr-hot-list li:hover a{color:var(--brand);}
.sr-hot-hot{
  flex:0 0 auto;
  font-size:11px;
  font-weight:700;
  color:#fff;
  background:var(--risk);
  padding:1px 5px;
  border-radius:2px;
  line-height:1.4;
}

/* ============================================================
   404 页面专用
   ============================================================ */

/* ── 404 主卡片 ────────────────────────────────── */
.nf-hero{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  box-shadow:var(--shadow-sm);
  padding:56px 32px 48px;
  margin-bottom:24px;
  text-align:center;
  position:relative;
  overflow:hidden;
}

/* 大数字 404 */
.nf-code{
  display:inline-flex;
  align-items:baseline;
  justify-content:center;
  gap:0;
  margin-bottom:16px;
  font-family:var(--serif);
  line-height:1;
  user-select:none;
}
.nf-code-num{
  font-size:120px;
  font-weight:600;
  color:var(--ink);
  letter-spacing:-.02em;
  font-variant-numeric:tabular-nums;
}
.nf-code-num--center{
  color:var(--risk);
  position:relative;
}
/* 中间的 0 加一点视觉变化，像一个"空洞" */
.nf-code-num--center::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%, -50%);
  width:44px;
  height:44px;
  border-radius:50%;
  background:var(--risk-bg);
  z-index:-1;
}

/* 标题 */
.nf-title{
  font-family:var(--serif);
  font-size:30px;
  line-height:1.4;
  font-weight:600;
  color:var(--ink);
  letter-spacing:.02em;
  margin-bottom:12px;
}

/* 描述 */
.nf-desc{
  font-size:14.5px;
  line-height:1.8;
  color:var(--ink-3);
  max-width:520px;
  margin:0 auto 32px;
}

/* ── 页面内搜索 ────────────────────────────────── */
.nf-search{
  position:relative;
  display:flex;
  align-items:center;
  max-width:520px;
  margin:0 auto 32px;
}
.nf-search-icon{
  position:absolute;
  left:18px;
  top:50%;
  transform:translateY(-50%);
  width:17px;
  height:17px;
  color:var(--ink-4);
  pointer-events:none;
}
.nf-search input{
  flex:1;
  min-width:0;
  height:48px;
  padding:0 104px 0 46px;
  border:1.5px solid var(--line);
  border-radius:100px;
  background:var(--bg);
  font-family:inherit;
  font-size:14.5px;
  color:var(--ink);
  outline:none;
  transition:border-color .2s,background .2s,box-shadow .2s;
}
.nf-search input::placeholder{color:var(--ink-4);}
.nf-search input:focus{
  border-color:var(--brand);
  background:#fff;
  box-shadow:0 0 0 3px rgba(32,50,92,.10);
}
.nf-search input::-webkit-search-cancel-button{-webkit-appearance:none;}
.nf-search button{
  position:absolute;
  right:5px;
  top:50%;
  transform:translateY(-50%);
  height:38px;
  padding:0 24px;
  border-radius:100px;
  background:var(--brand);
  color:#fff;
  font-size:13.5px;
  font-weight:600;
  transition:background .16s var(--ease);
}
.nf-search button:hover{background:var(--brand-2);}

/* ── 快捷出口 ──────────────────────────────────── */
.nf-links{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  flex-wrap:wrap;
  max-width:720px;
  margin:0 auto;
}
.nf-link{
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:9px 16px;
  font-size:13.5px;
  font-weight:500;
  color:var(--ink-2);
  background:var(--card);
  border:1px solid var(--line);
  border-radius:100px;
  transition:all .16s var(--ease);
}
.nf-link svg{width:14px;height:14px;opacity:.7;}
.nf-link:hover{
  color:var(--brand);
  border-color:var(--brand);
  background:var(--brand-bg);
}
.nf-link:hover svg{opacity:1;}
.nf-link--primary{
  background:var(--brand);
  border-color:var(--brand);
  color:#fff;
  font-weight:600;
}
.nf-link--primary svg{opacity:.85;}
.nf-link--primary:hover{
  background:var(--brand-2);
  border-color:var(--brand-2);
  color:#fff;
}

/* ── 你可能在找 ────────────────────────────────── */
.nf-recommend{
  margin-bottom:24px;
}
.nf-rec-head{
  display:flex;
  align-items:baseline;
  gap:12px;
  margin-bottom:16px;
  flex-wrap:wrap;
}
.nf-rec-title{
  font-size:18px;
  font-weight:700;
  color:var(--ink);
  letter-spacing:.01em;
}
.nf-rec-desc{
  font-size:13px;
  color:var(--ink-3);
  margin:0;
}

.nf-rec-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
}
.nf-rec-card{
  display:flex;
  flex-direction:column;
  gap:10px;
  padding:18px;
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--r);
  transition:box-shadow .2s var(--ease),border-color .2s var(--ease),transform .2s var(--ease);
}
.nf-rec-card:hover{
  box-shadow:var(--shadow-md);
  border-color:#d8d8d2;
  transform:translateY(-2px);
}
.nf-rec-card-head{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.nf-rec-type{
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:2px 8px;
  font-size:11.5px;
  font-weight:600;
  border-radius:3px;
}
.nf-rec-type--project{background:var(--brand-bg);color:var(--brand);}
.nf-rec-type--news{background:var(--info-bg);color:var(--info);}
.nf-rec-type--article{background:var(--good-bg);color:var(--good);}

.nf-rec-card-title{
  font-size:15.5px;
  line-height:1.5;
  font-weight:600;
  color:var(--ink);
  transition:color .16s var(--ease);
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.nf-rec-card:hover .nf-rec-card-title{color:var(--brand);}
.nf-rec-card-desc{
  font-size:13px;
  line-height:1.7;
  color:var(--ink-3);
  margin:0;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.nf-rec-card-more{
  margin-top:auto;
  padding-top:6px;
  font-size:12.5px;
  font-weight:600;
  color:var(--brand);
  transition:transform .16s var(--ease);
  display:inline-flex;
  align-items:center;
  gap:2px;
}
.nf-rec-card:hover .nf-rec-card-more{transform:translateX(2px);}

/* ── 兜底提示 ──────────────────────────────────── */
.nf-footer-tip{
  text-align:center;
  padding:16px 0 8px;
}
.nf-tip-text{
  font-size:12.5px;
  line-height:1.7;
  color:var(--ink-3);
  margin:0;
}
.nf-tip-text a{
  color:var(--brand);
  text-decoration:underline;
  text-underline-offset:3px;
}
.nf-tip-text a:hover{color:var(--brand-2);}

/* ============================================================
   文章页专用
   ============================================================ */

/* 阅读进度条 */
.reading-progress{
  position:fixed;top:0;left:0;right:0;height:2px;
  background:transparent;z-index:120;pointer-events:none;
}
.reading-progress span{
  display:block;height:100%;width:0;
  background:var(--brand);transition:width .1s linear;
}

/* 文章主体 */
.post{
  background:var(--card);border:1px solid var(--line);
  border-radius:var(--r-lg);box-shadow:var(--shadow-sm);
  margin-bottom:24px;overflow:hidden;
}
.post-header{padding:36px 40px 28px;border-bottom:1px solid var(--line-soft);}
.post-kicker{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  font-size:12.5px;color:var(--ink-3);margin-bottom:18px;font-variant-numeric:tabular-nums;
}
.pk-dot{color:var(--ink-4);user-select:none;}
.post-title{
  font-family:var(--serif);font-size:32px;line-height:1.45;font-weight:600;
  letter-spacing:.01em;color:var(--ink);margin-bottom:18px;text-wrap:balance;
}
.post-lead{
  font-size:16px;line-height:1.75;color:var(--ink-2);
  padding-left:16px;border-left:3px solid var(--brand);margin-bottom:24px;
}
.post-meta{
  display:flex;align-items:center;justify-content:space-between;
  gap:20px;flex-wrap:wrap;padding-top:18px;border-top:1px solid var(--line-soft);
}
.pm-author{display:flex;align-items:center;gap:12px;}
.pm-avatar{
  width:38px;height:38px;border-radius:50%;
  background:var(--brand-bg);color:var(--brand);
  display:flex;align-items:center;justify-content:center;
  font-size:15px;font-weight:700;flex:0 0 38px;
}
.pm-info{display:flex;flex-direction:column;gap:3px;}
.pm-info b{font-size:14px;font-weight:600;color:var(--ink);}
.pm-info span{font-size:12px;color:var(--ink-3);font-variant-numeric:tabular-nums;}
.pm-stats{display:flex;gap:18px;font-size:12.5px;color:var(--ink-3);font-variant-numeric:tabular-nums;}
.pm-stats i{font-style:normal;font-weight:700;color:var(--ink-2);margin-right:3px;}

/* 正文 */
.prose{
  overflow-wrap:break-word;
  padding:32px 20px 28px 40px;
  font-size:17px;line-height:1.85;color:var(--ink-2);max-width:860px;
}
.prose > * + *{margin-top:1.4em;}
.prose [id]{scroll-margin-top:80px;}
.prose h2{
  font-size:22px;line-height:1.5;font-weight:700;color:var(--ink);
  margin-top:2em;padding-top:.2em;scroll-margin-top:80px;
}
.prose h2:first-child{margin-top:0;}
.prose p{margin:0;}
/* 段落间距：.prose p{margin:0} 特异性(0,1,1)压过 .prose > * + * (0,1,0)，导致正文段间为 0；
   此处按同特异性、更靠后的源顺序补回 1.4em（标题后首个段落仍由下方 h2+p .8em 规则接管） */
.prose > p{margin-top:1.4em;}
.prose > p:first-child{margin-top:0;}
.prose b,.prose strong{color:var(--ink);font-weight:600;}
.prose a{color:var(--brand);border-bottom:1px solid var(--brand-bg);transition:border-color .16s;}
.prose a:hover{border-bottom-color:var(--brand);}
.prose blockquote{
  margin:1.6em 0;padding:18px 24px;background:var(--bg);
  border-left:3px solid var(--ink-4);border-radius:0 var(--r-sm) var(--r-sm) 0;
}
.prose blockquote p{font-size:16px;line-height:1.75;color:var(--ink-2);margin:0;}
.prose blockquote cite{display:block;margin-top:10px;font-size:13px;font-style:normal;color:var(--ink-3);}
.prose .post-list-ul,
.prose .post-list-ol{padding-left:0;display:flex;flex-direction:column;gap:12px;}
.prose .post-list-ul li{position:relative;padding-left:22px;font-size:16px;line-height:1.8;}
.prose .post-list-ul li::before{
  content:"";position:absolute;left:4px;top:.75em;
  width:6px;height:6px;background:var(--brand);border-radius:50%;
}
.prose .post-list-ol{counter-reset:ol;}
.prose .post-list-ol li{
  position:relative;padding-left:32px;counter-increment:ol;
  font-size:16px;line-height:1.8;
}
.prose .post-list-ol li::before{
  content:counter(ol);position:absolute;left:0;top:.15em;
  width:22px;height:22px;display:flex;align-items:center;justify-content:center;
  background:var(--brand-bg);color:var(--brand);font-size:12px;font-weight:700;
  border-radius:50%;font-variant-numeric:tabular-nums;
}
/* 裸 <ul>/<ol>（元素无 class）沿用 post-list 设计语言：品牌圆点 / 圆形序号 */
.prose ul:not([class]),
.prose ol:not([class]){padding-left:0;display:flex;flex-direction:column;gap:12px;}
.prose ul:not([class]) > li{position:relative;padding-left:22px;font-size:16px;line-height:1.8;}
.prose ul:not([class]) > li::before{
  content:"";position:absolute;left:4px;top:.78em;
  width:6px;height:6px;background:var(--brand);border-radius:50%;
}
.prose ol:not([class]){counter-reset:proseol;}
.prose ol:not([class]) > li{
  position:relative;padding-left:32px;counter-increment:proseol;
  font-size:16px;line-height:1.8;
}
.prose ol:not([class]) > li::before{
  content:counter(proseol);position:absolute;left:0;top:.18em;
  width:22px;height:22px;display:flex;align-items:center;justify-content:center;
  background:var(--brand-bg);color:var(--brand);font-size:12px;font-weight:700;
  border-radius:50%;font-variant-numeric:tabular-nums;
}
.prose li > ul:not([class]),
.prose li > ol:not([class]){margin-top:.7em;gap:9px;}
.prose li > ul:not([class]) > li,
.prose li > ol:not([class]) > li{font-size:15px;}
.post-figure{margin:2em 0;}
.pf-media{
  aspect-ratio:16/9;border-radius:var(--r);overflow:hidden;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;
  background:repeating-linear-gradient(45deg,#f4f4f1 0 8px,#ecece8 8px 9px);
  border:1px solid var(--line);color:var(--ink-4);
  font-size:12px;letter-spacing:.06em;
}
.pf-media svg{width:38px;height:38px;opacity:.5;}
.post-figure figcaption{
  margin-top:10px;font-size:12.5px;line-height:1.7;color:var(--ink-3);text-align:center;
}
.post-alert{
  margin:2em 0;display:flex;gap:14px;padding:18px 20px;
  background:var(--risk-bg);border:1px solid #fecdca;
  border-left:3px solid var(--risk);border-radius:var(--r-sm);
}
.pa-icon{
  flex:0 0 26px;width:26px;height:26px;
  display:flex;align-items:center;justify-content:center;
  background:var(--risk);color:#fff;border-radius:50%;
  font-size:14px;font-weight:700;line-height:1;
}
.pa-body b{display:block;font-size:14px;font-weight:700;color:var(--risk);margin-bottom:6px;}
.pa-body p{font-size:14.5px;line-height:1.75;color:var(--ink-2);}
.post-table-wrap{margin:2em 0;overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);}
.post-table{width:100%;border-collapse:collapse;font-size:14px;line-height:1.6;min-width:520px;}
.post-table th{
  background:var(--bg);font-weight:700;color:var(--ink);
  text-align:left;padding:12px 16px;border-bottom:1px solid var(--line);
  white-space:nowrap;font-size:13px;
}
.post-table td{
  padding:12px 16px;border-bottom:1px solid var(--line-soft);
  color:var(--ink-2);vertical-align:top;
}
.post-table tr:last-child td{border-bottom:0;}
.post-table tbody tr:hover{background:#fafaf8;}

/* 文章底部 */
.post-footer{padding:0 40px 32px;max-width:760px;}
.post-tags{
  display:flex;flex-wrap:wrap;gap:8px;padding:20px 0;
  border-top:1px solid var(--line-soft);
}
.post-tags a{
  font-size:12.5px;color:var(--ink-3);padding:4px 12px;
  border:1px solid var(--line);border-radius:100px;background:var(--card);
  transition:all .16s var(--ease);
}
.post-tags a:hover{color:var(--brand);border-color:var(--brand);background:var(--brand-bg);}
.post-actions{display:flex;flex-wrap:wrap;gap:10px;padding-top:20px;border-top:1px solid var(--line-soft);}
.action-btn{
  display:inline-flex;align-items:center;gap:7px;padding:9px 16px;
  font-size:13.5px;font-weight:500;color:var(--ink-2);
  background:var(--card);border:1px solid var(--line);border-radius:100px;
  transition:all .16s var(--ease);
}
.action-btn svg{width:15px;height:15px;}
.action-btn:hover{color:var(--brand);border-color:var(--brand);background:var(--brand-bg);}
.action-btn--report{margin-left:auto;}
.action-btn--report:hover{color:var(--risk);border-color:var(--risk);background:var(--risk-bg);}

/* 风险提示 */
.risk-notice{
  display:flex;gap:12px;padding:16px 20px;
  background:var(--bg);border:1px solid var(--line);
  border-radius:var(--r);margin-bottom:32px;
}
.risk-notice svg{
  flex:0 0 16px;width:16px;height:16px;
  color:var(--ink-3);margin-top:2px;
}
.risk-notice p{font-size:12.5px;line-height:1.75;color:var(--ink-3);margin:0;}
.risk-notice a{color:var(--brand);}
.risk-notice a:hover{text-decoration:underline;}

/* 相关阅读 */
.related{margin-bottom:32px;}
.rel-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:16px;}
.rel-head h2{font-size:19px;font-weight:700;color:var(--ink);}
.rel-head a{font-size:13px;font-weight:600;color:var(--ink-3);}
.rel-head a:hover{color:var(--brand);}
.rel-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;}
.rel-card{
  display:flex;flex-direction:column;gap:10px;padding:18px;
  background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  transition:box-shadow .2s var(--ease),border-color .2s var(--ease),transform .2s var(--ease);
}
.rel-card:hover{box-shadow:var(--shadow-md);border-color:#d8d8d2;transform:translateY(-2px);}
.rel-card .cat-badge{align-self:flex-start;}
.rel-card h3{
  font-size:15px;line-height:1.6;font-weight:600;color:var(--ink);
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;
  overflow:hidden;transition:color .16s var(--ease);
}
.rel-card:hover h3,.rel-card:focus-within h3{color:var(--brand);}
.rel-card:focus-within{border-color:var(--brand);}
.proj-article:focus-within{background:var(--brand-bg);}
.rel-meta{margin-top:auto;font-size:12px;color:var(--ink-3);font-variant-numeric:tabular-nums;}

/* 评论区 */
.comments{
  background:var(--card);border:1px solid var(--line);
  border-radius:var(--r-lg);box-shadow:var(--shadow-sm);
  padding:24px;margin-bottom:32px;
}
.cm-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;}
.cm-head h2{font-size:18px;font-weight:700;color:var(--ink);display:flex;align-items:baseline;gap:8px;}
.cm-count{font-size:13px;font-weight:500;color:var(--ink-3);font-variant-numeric:tabular-nums;}
.cm-sort{
  height:32px;padding:0 26px 0 10px;
  border:1px solid var(--line);border-radius:var(--r-sm);
  background:var(--card);color:var(--ink-2);font-family:inherit;font-size:12.5px;cursor:pointer;
}
.cm-form{margin-bottom:24px;}
.cm-form textarea{
  width:100%;padding:12px 14px;border:1px solid var(--line);
  border-radius:var(--r);background:var(--bg);
  font-family:inherit;font-size:14px;line-height:1.7;color:var(--ink);
  resize:vertical;outline:none;transition:border-color .16s,box-shadow .16s;
}
.cm-form textarea::placeholder{color:var(--ink-4);}
.cm-form textarea:focus{
  border-color:var(--brand);background:#fff;
  box-shadow:0 0 0 3px rgba(32,50,92,.10);
}
.cm-form-foot{
  display:flex;align-items:center;justify-content:space-between;
  gap:16px;flex-wrap:wrap;margin-top:10px;
}
.cm-tip{font-size:12px;color:var(--ink-3);font-variant-numeric:tabular-nums;}
.cm-form-foot button{
  padding:8px 20px;font-size:13.5px;font-weight:600;
  color:#fff;background:var(--brand);border-radius:100px;
  transition:background .16s var(--ease);
}
.cm-form-foot button:hover{background:var(--brand-2);}
.cm-list{display:flex;flex-direction:column;border-top:1px solid var(--line-soft);}
.cm-item{padding:20px 0;border-bottom:1px solid var(--line-soft);list-style:none;}
.cm-item:last-child{border-bottom:0;padding-bottom:8px;}
.cm-main{display:flex;gap:12px;}
.cm-avatar{
  flex:0 0 36px;width:36px;height:36px;
  display:flex;align-items:center;justify-content:center;
  background:var(--bg);color:var(--ink-2);border:1px solid var(--line);
  border-radius:50%;font-size:14px;font-weight:700;user-select:none;
}
.cm-avatar--sm{flex-basis:26px;width:26px;height:26px;font-size:11px;}
.cm-body{flex:1;min-width:0;}
.cm-meta{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin-bottom:6px;}
.cm-author{font-size:13.5px;font-weight:600;color:var(--ink);}
.cm-text{font-size:14px;line-height:1.7;color:var(--ink-2);margin-bottom:8px;word-break:break-word;}
.cm-at{color:var(--brand);font-weight:500;}
.cm-at:hover{text-decoration:underline;}
.cm-actions{display:flex;align-items:center;gap:14px;font-size:12px;}
.cm-time{font-size:12px;color:var(--ink-3);font-variant-numeric:tabular-nums;}
.cm-reply-btn{
  font-size:12.5px;font-weight:500;color:var(--ink-3);
  padding:2px 4px;border-radius:3px;transition:color .16s var(--ease);
}
.cm-reply-btn:hover{color:var(--ink);}
.cm-like-btn{
  margin-left:auto;display:inline-flex;align-items:center;gap:4px;
  padding:2px 6px;font-size:12.5px;color:var(--ink-3);border-radius:3px;
  transition:color .16s var(--ease),background .16s var(--ease);
}
.cm-like-btn svg{width:14px;height:14px;transition:fill .16s var(--ease),stroke .16s var(--ease);}
.cm-like-btn:hover,
.cm-like-btn.is-liked{color:var(--risk);}
.cm-like-btn.is-liked svg{fill:var(--risk);stroke:var(--risk);}
.cm-like-count{font-variant-numeric:tabular-nums;font-weight:500;}
.cm-replies{
  list-style:none;margin:12px 0 0 48px;padding:12px 14px;
  background:var(--bg);border-radius:var(--r-sm);
  display:flex;flex-direction:column;gap:14px;
}
.cm-reply{display:flex;gap:10px;}
.cm-reply[hidden]{display:none;}
.cm-expand{
  display:inline-flex;align-items:center;margin:10px 0 0 48px;
  padding:4px 10px;font-size:12.5px;font-weight:500;
  color:var(--brand);border-radius:4px;transition:background .16s var(--ease);
}
.cm-expand::before{
  content:"";width:0;height:0;
  border-left:4px solid transparent;border-right:4px solid transparent;
  border-top:5px solid currentColor;margin-right:6px;
  transition:transform .16s var(--ease);
}
.cm-expand.is-open::before{border-top:0;border-bottom:5px solid currentColor;}
.cm-expand:hover{background:var(--brand-bg);}
.cm-reply-form{
  margin:12px 0 0 48px;padding:12px;
  background:var(--bg);border-radius:var(--r-sm);
}
.cm-reply-form[hidden]{display:none;}
.cm-reply-form textarea{
  width:100%;padding:10px 12px;
  border:1px solid var(--line);border-radius:var(--r-sm);
  background:var(--card);font-family:inherit;font-size:13.5px;line-height:1.6;
  color:var(--ink);resize:vertical;outline:none;
  transition:border-color .16s,box-shadow .16s;
}
.cm-reply-form textarea::placeholder{color:var(--ink-4);}
.cm-reply-form textarea:focus{
  border-color:var(--brand);box-shadow:0 0 0 3px rgba(32,50,92,.10);
}
.cm-reply-form-foot{display:flex;justify-content:flex-end;gap:8px;margin-top:8px;}
.cm-cancel,
.cm-reply-form-foot button[type="submit"]{
  padding:6px 14px;font-size:12.5px;font-weight:600;border-radius:4px;
  transition:background .16s var(--ease),color .16s var(--ease);
}
.cm-cancel{color:var(--ink-3);}
.cm-cancel:hover{color:var(--ink);background:var(--line-soft);}
.cm-reply-form-foot button[type="submit"]{background:var(--brand);color:#fff;}
.cm-reply-form-foot button[type="submit"]:hover{background:var(--brand-2);}
.cm-more{
  display:block;width:100%;margin-top:16px;padding:12px;text-align:center;
  font-size:13.5px;font-weight:600;color:var(--brand);font-family:inherit;line-height:1.5;
  background:var(--brand-bg);border:0;border-radius:var(--r-sm);cursor:pointer;
  transition:background .16s var(--ease);
}
.cm-more:hover{background:#e0e7f4;}
.cm-more[disabled]{opacity:.6;cursor:default;}

/* 文章目录 */
.toc-widget{padding-bottom:14px;}
.toc ol{display:flex;flex-direction:column;counter-reset:toc;}
.toc li{counter-increment:toc;}
.toc-link{
  display:block;padding:9px 0 9px 26px;
  font-size:13px;line-height:1.6;color:var(--ink-3);
  border-left:2px solid transparent;position:relative;
  transition:all .16s var(--ease);
}
.toc-link::before{
  content:counter(toc);position:absolute;left:0;top:9px;
  width:18px;font-size:11px;font-weight:700;color:var(--ink-4);
  font-variant-numeric:tabular-nums;text-align:center;
}
.toc-link:hover{color:var(--brand);border-left-color:var(--brand-bg);}
.toc-link.is-active{
  color:var(--brand);font-weight:600;
  border-left-color:var(--brand);background:var(--brand-bg);
  border-radius:0 var(--r-sm) var(--r-sm) 0;
}
.toc-link.is-active::before{color:var(--brand);}
/* ============================================================
   关于页面专用
   ============================================================ */

/* ── 区块容器 ──────────────────────────────────── */
.about-section{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  scroll-margin-top:80px;
  box-shadow:var(--shadow-sm);
  padding:32px 36px 36px;
  margin-bottom:24px;
  scroll-margin-top:80px;
}
.about-section--last{margin-bottom:32px;}

.about-section-head{
  margin-bottom:24px;
  padding-bottom:20px;
  border-bottom:1px solid var(--line-soft);
}
.about-kicker{
  display:inline-block;
  font-size:12px;
  font-weight:700;
  color:var(--ink-4);
  letter-spacing:.1em;
  font-variant-numeric:tabular-nums;
  margin-bottom:8px;
}
.about-title{
  font-family:var(--serif);
  font-size:26px;
  line-height:1.35;
  font-weight:600;
  color:var(--ink);
  letter-spacing:.01em;
  margin-bottom:12px;
}
.about-lead{
  font-size:14.5px;
  line-height:1.8;
  color:var(--ink-2);
  margin:0;
}
.about-lead b{color:var(--ink);font-weight:600;}

.about-h3{
  font-size:16px;
  line-height:1.5;
  font-weight:700;
  color:var(--ink);
  margin-top:28px;
  margin-bottom:14px;
  display:flex;
  align-items:center;
  gap:10px;
}
.about-h3::before{
  content:"";
  width:6px;
  height:6px;
  border-radius:2px;
  background:var(--brand);
  flex:0 0 6px;
}
.about-h3:first-of-type{margin-top:8px;}

.about-text{
  font-size:14px;
  line-height:1.8;
  color:var(--ink-2);
  margin:0 0 16px;
}

/* ── 能力卡片（4 格） ──────────────────────────── */
.about-cap-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin-bottom:8px;
}
.about-cap{
  padding:20px;
  background:var(--bg);
  border:1px solid var(--line-soft);
  border-radius:var(--r);
  transition:border-color .2s var(--ease),background .2s var(--ease);
}
.about-cap:hover{
  border-color:var(--line);
  background:var(--card);
}
.about-cap-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:36px;
  height:36px;
  border-radius:var(--r-sm);
  background:var(--brand-bg);
  color:var(--brand);
  margin-bottom:12px;
}
.about-cap-icon svg{width:20px;height:20px;}
.about-cap-title{
  font-size:15px;
  font-weight:700;
  color:var(--ink);
  margin-bottom:6px;
}
.about-cap-desc{
  font-size:13px;
  line-height:1.7;
  color:var(--ink-3);
  margin:0;
}

/* ── 流程步骤（4 步） ─────────────────────────── */
.about-steps{
  display:flex;
  flex-direction:column;
  gap:0;
  list-style:none;
  padding:0;
  margin:0;
}
.about-step{
  display:flex;
  gap:16px;
  padding:16px 0;
  border-bottom:1px solid var(--line-soft);
}
.about-step:last-child{border-bottom:0;padding-bottom:0;}
.about-step-num{
  flex:0 0 32px;
  width:32px;
  height:32px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--brand-bg);
  color:var(--brand);
  border-radius:50%;
  font-size:14px;
  font-weight:700;
  font-variant-numeric:tabular-nums;
  margin-top:1px;
}
.about-step-body{flex:1;min-width:0;}
.about-step-body b{
  display:block;
  font-size:14.5px;
  font-weight:600;
  color:var(--ink);
  margin-bottom:4px;
}
.about-step-body p{
  font-size:13.5px;
  line-height:1.7;
  color:var(--ink-3);
  margin:0;
}

/* ── 等级卡片（5 格） ──────────────────────────── */
.about-level-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin-bottom:8px;
}
.about-level{
  padding:16px 18px;
  background:var(--bg);
  border:1px solid var(--line-soft);
  border-radius:var(--r);
}
.about-level-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:10px;
}
.about-level-score{
  font-size:16px;
  font-weight:700;
  font-variant-numeric:tabular-nums;
  letter-spacing:-.01em;
  font-family:var(--sans);
}
.about-level-desc{
  font-size:12.5px;
  line-height:1.7;
  color:var(--ink-3);
  margin:0;
}

/* ── 权重表 ────────────────────────────────────── */
.about-weight-table{
  border:1px solid var(--line);
  border-radius:var(--r);
  overflow:hidden;
  margin-bottom:8px;
}
.about-weight-row{
  display:grid;
  grid-template-columns:140px 80px minmax(0,1fr);
  gap:16px;
  padding:12px 18px;
  border-bottom:1px solid var(--line-soft);
  font-size:13.5px;
  line-height:1.6;
  align-items:center;
}
.about-weight-row:last-child{border-bottom:0;}
.about-weight-row--head{
  background:#fafaf8;
  font-size:12px;
  font-weight:600;
  color:var(--ink-3);
  letter-spacing:.04em;
  padding-top:10px;
  padding-bottom:10px;
}
.about-weight-row span:first-child{
  font-weight:600;
  color:var(--ink);
}
.about-weight-row b{
  font-weight:700;
  color:var(--brand);
  font-variant-numeric:tabular-nums;
  font-size:14px;
}
.about-weight-row span:last-child{
  color:var(--ink-3);
  font-size:13px;
}

/* ── 边界两栏 ──────────────────────────────────── */
.about-boundary-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  margin-bottom:20px;
}
.about-boundary{
  padding:20px;
  border-radius:var(--r);
  border:1px solid var(--line);
}
.about-boundary--do{
  background:var(--good-bg);
  border-color:#abefc6;
}
.about-boundary--dont{
  background:var(--risk-bg);
  border-color:#fecdca;
}
.about-boundary-title{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:15px;
  font-weight:700;
  margin-bottom:14px;
}
.about-boundary--do .about-boundary-title{color:var(--good);}
.about-boundary--dont .about-boundary-title{color:var(--risk);}
.about-boundary-title svg{width:16px;height:16px;flex:0 0 16px;}
.about-boundary-list{
  display:flex;
  flex-direction:column;
  gap:10px;
  padding:0;
  margin:0;
  list-style:none;
}
.about-boundary-list li{
  font-size:13px;
  line-height:1.65;
  color:var(--ink-2);
  padding-left:18px;
  position:relative;
}
.about-boundary--do .about-boundary-list li::before{
  content:"";
  position:absolute;
  left:4px;
  top:8px;
  width:6px;
  height:6px;
  background:var(--good);
  border-radius:50%;
}
.about-boundary--dont .about-boundary-list li::before{
  content:"";
  position:absolute;
  left:4px;
  top:8px;
  width:6px;
  height:6px;
  background:var(--risk);
  border-radius:50%;
}

/* ── 免责声明 ──────────────────────────────────── */
.about-disclaimer{
  display:flex;
  gap:12px;
  padding:16px 20px;
  background:var(--bg);
  border:1px solid var(--line);
  border-left:3px solid var(--warn);
  border-radius:var(--r-sm);
}
.about-disclaimer svg{
  flex:0 0 18px;
  width:18px;
  height:18px;
  color:var(--warn);
  margin-top:2px;
}
.about-disclaimer p{
  font-size:13px;
  line-height:1.75;
  color:var(--ink-2);
  margin:0;
}
.about-disclaimer b{color:var(--ink);font-weight:600;}
.about-disclaimer a{color:var(--brand);}
.about-disclaimer a:hover{text-decoration:underline;}

/* ── 隐私卡片（2 格） ──────────────────────────── */
.about-privacy-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin-bottom:8px;
}
.about-privacy-card{
  padding:18px 20px;
  background:var(--bg);
  border:1px solid var(--line-soft);
  border-radius:var(--r);
}
.about-privacy-title{
  font-size:13.5px;
  font-weight:700;
  color:var(--ink);
  margin-bottom:10px;
}
.about-privacy-list{
  display:flex;
  flex-direction:column;
  gap:6px;
  padding:0;
  margin:0;
  list-style:none;
}
.about-privacy-list li{
  font-size:12.5px;
  line-height:1.65;
  color:var(--ink-3);
  padding-left:14px;
  position:relative;
}
.about-privacy-list li::before{
  content:"·";
  position:absolute;
  left:2px;
  top:-1px;
  font-size:16px;
  color:var(--ink-4);
}

/* ── 使用清单 ──────────────────────────────────── */
.about-privacy-uses,
.about-privacy-protect{
  display:flex;
  flex-direction:column;
  gap:10px;
  padding:0;
  margin:0;
  list-style:none;
}
.about-privacy-uses li,
.about-privacy-protect li{
  font-size:13.5px;
  line-height:1.7;
  color:var(--ink-2);
  padding-left:24px;
  position:relative;
}
.about-privacy-uses li::before,
.about-privacy-protect li::before{
  content:"";
  position:absolute;
  left:4px;
  top:9px;
  width:12px;
  height:2px;
  background:var(--brand);
  border-radius:1px;
}
.about-privacy-uses b,
.about-privacy-protect b{
  color:var(--ink);
  font-weight:600;
}

/* ── 权利网格 ──────────────────────────────────── */
.about-rights-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
}
.about-right{
  padding:14px 16px;
  background:var(--bg);
  border:1px solid var(--line-soft);
  border-radius:var(--r-sm);
  display:flex;
  flex-direction:column;
  gap:4px;
}
.about-right b{
  font-size:13.5px;
  font-weight:700;
  color:var(--brand);
}
.about-right span{
  font-size:12px;
  line-height:1.6;
  color:var(--ink-3);
}
.about-right a{color:var(--brand);}
.about-right a:hover{text-decoration:underline;}

/* ── 联系网格 ──────────────────────────────────── */
.about-contact-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin-bottom:24px;
}
.about-contact{
  display:flex;
  align-items:flex-start;
  gap:14px;
  padding:18px;
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--r);
  transition:box-shadow .2s var(--ease),border-color .2s var(--ease),transform .2s var(--ease);
}
.about-contact:hover{
  box-shadow:var(--shadow-md);
  border-color:#d8d8d2;
  transform:translateY(-2px);
}
.about-contact-icon{
  flex:0 0 40px;
  width:40px;
  height:40px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--brand-bg);
  color:var(--brand);
  border-radius:var(--r-sm);
}
.about-contact-icon svg{width:20px;height:20px;}
.about-contact-body{flex:1;min-width:0;}
.about-contact-body h4{
  font-size:14.5px;
  font-weight:700;
  color:var(--ink);
  margin-bottom:4px;
}
.about-contact-body p{
  font-size:12.5px;
  line-height:1.65;
  color:var(--ink-3);
  margin:0 0 8px;
}
.about-contact-link{
  font-size:12.5px;
  font-weight:600;
  color:var(--brand);
  display:inline-flex;
  align-items:center;
  transition:transform .16s var(--ease);
}
.about-contact:hover .about-contact-link{transform:translateX(2px);}

/* ── 联系信息 ──────────────────────────────────── */
.about-contact-meta{
  padding:18px 20px;
  background:var(--bg);
  border-radius:var(--r);
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px 24px;
}
.about-contact-meta p{
  font-size:12.5px;
  line-height:1.7;
  color:var(--ink-3);
  margin:0;
}
.about-contact-meta b{
  color:var(--ink-2);
  font-weight:600;
  margin-right:4px;
}

/* ── 侧栏：页面目录 ────────────────────────────── */
.about-toc-widget{padding-bottom:14px;}
.about-toc ol{
  display:flex;
  flex-direction:column;
  counter-reset:atoc;
  list-style:none;
  padding:0;
  margin:0;
}
.about-toc li{counter-increment:atoc;}
.about-toc li + li{border-top:1px dashed var(--line-soft);}
.about-toc-link{
  display:block;
  padding:10px 8px 10px 28px;
  font-size:13px;
  line-height:1.6;
  color:var(--ink-3);
  border-left:2px solid transparent;
  border-radius:0 var(--r-sm) var(--r-sm) 0;
  position:relative;
  transition:all .16s var(--ease);
}
.about-toc-link::before{
  content:counter(atoc,decimal-leading-zero);
  position:absolute;
  left:0;
  top:10px;
  width:20px;
  font-size:11px;
  line-height:20.8px; /* 与文字 13px x 1.6 基线对齐 */
  font-weight:700;
  color:var(--ink-4);
  font-variant-numeric:tabular-nums;
  text-align:center;
  transition:color .16s var(--ease);
}
.about-toc-link:hover{
  color:var(--brand);
  background:var(--bg);
}
.about-toc-link:hover::before{color:var(--brand);}
.about-toc-link:focus-visible{
  outline:2px solid var(--brand);
  outline-offset:-2px;
  color:var(--brand);
}
.about-toc-link.is-active{
  color:var(--brand);
  font-weight:600;
  border-left-color:var(--brand);
  background:var(--brand-bg);
}
.about-toc-link.is-active::before{color:var(--brand);}

/* ── 侧栏：快捷入口 ────────────────────────────── */
.about-quick-links{list-style:none;padding:0;margin:0;}
.about-quick-links li{border-bottom:1px solid var(--line-soft);}
.about-quick-links li:last-child{border-bottom:0;padding-bottom:12px;}
.about-quick-links a{
  display:flex;
  align-items:center;
  gap:8px;
  padding:10px 0;
  font-size:13.5px;
  font-weight:500;
  color:var(--ink-2);
  transition:color .15s var(--ease);
}
.about-quick-links a:hover{color:var(--brand);}
.about-quick-links span{
  margin-left:auto;
  font-size:11.5px;
  color:var(--ink-3);
  font-variant-numeric:tabular-nums;
  font-weight:400;
}
/* ============================================================
   标签聚合页专用
   ============================================================ */

/* ── 标签分组 ──────────────────────────────────── */
.tag-group{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  box-shadow:var(--shadow-sm);
  padding:22px 24px 24px;
  margin-bottom:20px;
}
.tag-group[hidden]{display:none;}

.tag-group-head{
  display:flex;
  align-items:baseline;
  gap:12px;
  padding-bottom:14px;
  margin-bottom:18px;
  border-bottom:1px solid var(--line-soft);
  flex-wrap:wrap;
}
.tag-group-title{
  font-size:16px;
  font-weight:700;
  color:var(--ink);
  letter-spacing:.01em;
  display:flex;
  align-items:baseline;
  gap:8px;
}
.tag-group-hint{
  font-size:11.5px;
  font-weight:500;
  color:var(--ink-4);
  letter-spacing:0;
}
.tag-group-count{
  margin-left:auto;
  font-size:12px;
  color:var(--ink-3);
  font-variant-numeric:tabular-nums;
}

/* ── 标签云基础 ────────────────────────────────── */
.tag-cloud{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
}
.tag-cloud--xl{gap:12px;}
.tag-cloud--lg{gap:10px;}
.tag-cloud--md{gap:8px;}
.tag-cloud--sm{gap:6px;}

/* ── 标签胶囊基础 ──────────────────────────────── */
.tag-pill{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 16px;
  border-radius:100px;
  font-weight:500;
  text-decoration:none;
  transition:all .18s var(--ease);
  border:1px solid transparent;
  white-space:nowrap;
}
.tag-pill[hidden]{display:none;}

.tag-count{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:22px;
  height:18px;
  padding:0 6px;
  font-size:11px;
  font-weight:600;
  border-radius:100px;
  font-variant-numeric:tabular-nums;
  background:rgba(0,0,0,.06);
  color:inherit;
  opacity:.75;
  transition:all .18s var(--ease);
}
.tag-pill:hover .tag-count{
  background:rgba(255,255,255,.3);
  opacity:1;
  color:#fff;
}

/* ── S 级 XL（≥100 篇） ────────────────────────── */
.tag-pill--xl{
  padding:12px 22px;
  font-size:17px;
  font-weight:600;
  letter-spacing:-.01em;
}
.tag-pill--xl .tag-count{
  min-width:28px;
  height:20px;
  font-size:11px;
  padding:0 8px;
}

/* ── A 级 LG（30–100 篇） ──────────────────────── */
.tag-pill--lg{
  padding:9px 18px;
  font-size:15px;
  font-weight:500;
}

/* ── B 级 MD（10–30 篇） ───────────────────────── */
.tag-pill--md{
  padding:7px 15px;
  font-size:13.5px;
  font-weight:500;
}

/* ── C 级 SM（<10 篇） ─────────────────────────── */
.tag-pill--sm{
  padding:6px 13px;
  font-size:12.5px;
  font-weight:500;
}
.tag-pill--sm .tag-count{
  min-width:18px;
  height:16px;
  font-size:11px;
  padding:0 5px;
}

/* ── 四种分类色 ────────────────────────────────── */
/* 项目类型：品牌蓝 */
.tag-pill--type{
  background:var(--brand-bg);
  color:var(--brand);
  border-color:transparent;
}
.tag-pill--type:hover{
  background:var(--brand);
  color:#fff;
  transform:translateY(-1px);
  box-shadow:var(--shadow-md);
}

/* 风险状态：风险红 */
.tag-pill--status{
  background:var(--risk-bg);
  color:var(--risk);
  border-color:transparent;
}
.tag-pill--status:hover{
  background:var(--risk);
  color:#fff;
  transform:translateY(-1px);
  box-shadow:var(--shadow-md);
}

/* 项目名称：中性墨 */
.tag-pill--project{
  background:#f4f4f1;
  color:var(--ink);
  border-color:var(--line);
}
.tag-pill--project:hover{
  background:var(--ink);
  color:#fff;
  border-color:var(--ink);
  transform:translateY(-1px);
  box-shadow:var(--shadow-md);
}

/* 话题关键词：琥珀 */
.tag-pill--topic{
  background:var(--warn-bg);
  color:var(--warn);
  border-color:transparent;
}
.tag-pill--topic:hover{
  background:var(--warn);
  color:#fff;
  transform:translateY(-1px);
  box-shadow:var(--shadow-md);
}

/* ── 空状态 ────────────────────────────────────── */
.tag-empty{
  padding:48px 24px;
  text-align:center;
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--r);
  margin-bottom:24px;
}
.tag-empty[hidden]{display:none;}
.tag-empty-title{
  font-size:15px;
  font-weight:600;
  color:var(--ink);
  margin-bottom:6px;
}
.tag-empty-desc{
  font-size:13px;
  color:var(--ink-3);
  margin-bottom:16px;
}
.tag-empty-btn{
  display:inline-flex;
  align-items:center;
  padding:8px 20px;
  font-size:13px;
  font-weight:600;
  color:var(--brand);
  background:var(--brand-bg);
  border-radius:100px;
  transition:background .16s var(--ease),color .16s var(--ease);
}
.tag-empty-btn:hover{background:var(--brand);color:#fff;}

/* ── 加载更多 ──────────────────────────────────── */
.tag-more-wrap{
  display:flex;
  justify-content:center;
  padding:8px 0 12px;
}
.tag-more-btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:11px 28px;
  font-size:13.5px;
  font-weight:600;
  color:var(--ink-2);
  background:var(--card);
  border:1px solid var(--line);
  border-radius:100px;
  box-shadow:var(--shadow-sm);
  transition:all .16s var(--ease);
}
.tag-more-btn:hover{
  color:var(--brand);
  border-color:var(--brand);
  box-shadow:var(--shadow-md);
}
.tag-more-btn:disabled{
  cursor:not-allowed;
  opacity:.7;
}
.tag-more-btn svg{
  width:14px;
  height:14px;
  transition:transform .16s var(--ease);
}
.tag-more-btn:hover svg{transform:translateY(2px);}

/* ── 侧栏：标签分类图例 ────────────────────────── */
.tag-legend{
  display:flex;
  flex-direction:column;
  gap:0;
  list-style:none;
  padding:0;
  margin:0;
}
.tag-legend li{
  display:flex;
  align-items:flex-start;
  gap:12px;
  padding:12px 0;
  border-bottom:1px solid var(--line-soft);
}
.tag-legend li:last-child{border-bottom:0;padding-bottom:14px;}
.tag-legend-dot{
  flex:0 0 10px;
  width:10px;
  height:10px;
  border-radius:3px;
  margin-top:5px;
}
.tag-legend-dot--type{background:var(--brand);}
.tag-legend-dot--status{background:var(--risk);}
.tag-legend-dot--project{background:var(--ink-2);}
.tag-legend-dot--topic{background:var(--warn);}
.tag-legend-body{
  flex:1;
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:2px;
}
.tag-legend-body b{
  font-size:13.5px;
  font-weight:600;
  color:var(--ink);
}
.tag-legend-body span{
  font-size:12px;
  line-height:1.5;
  color:var(--ink-3);
}
.tag-legend .tl-item{
  display:flex;
  align-items:flex-start;
  gap:12px;
  flex:1;
  min-width:0;
  text-decoration:none;
  transition:color .15s var(--ease);
}
.tag-legend .tl-item:hover .tag-legend-body b{ color:var(--brand); }

/* ── 列表页：标签索引卡（tags.html 与项目档案表同页） ── */
.tag-index{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--r);
  box-shadow:var(--shadow-sm);
  padding:18px 20px 20px;
  margin-bottom:18px;
}
.ti-head{
  display:flex;
  align-items:center;
  gap:10px;
  padding-bottom:14px;
  margin-bottom:16px;
  border-bottom:1px solid var(--line-soft);
}
.ti-title{ font-size:17px; line-height:1.45; font-weight:700; color:var(--ink); letter-spacing:.01em; }
.ti-meta{ font-size:12px; color:var(--ink-4); font-variant-numeric:tabular-nums; }
.ti-toggle{
  margin-left:auto;
  display:inline-flex;
  align-items:center;
  gap:6px;
  height:30px;
  padding:0 13px;
  border:1px solid var(--line);
  border-radius:100px;
  background:var(--card);
  color:var(--ink-2);
  font-family:inherit;
  font-size:12.5px;
  font-weight:500;
  cursor:pointer;
  transition:border-color .16s var(--ease), color .16s var(--ease), background .16s var(--ease);
}
.ti-toggle:hover{ border-color:var(--brand); color:var(--brand); background:var(--brand-bg); }
.ti-toggle svg{ width:13px; height:13px; transition:transform .2s var(--ease); }
.tag-index.is-open .ti-toggle svg{ transform:rotate(180deg); }

.ti-hot{ display:flex; flex-wrap:wrap; gap:8px; }
.ti-body{
  display:flex;
  flex-direction:column;
  gap:14px;
  margin-top:18px;
  padding-top:18px;
  border-top:1px solid var(--line-soft);
}
.ti-body[hidden]{ display:none; }
.ti-row{ display:grid; grid-template-columns:92px minmax(0,1fr); gap:14px; align-items:start; }
.ti-label{
  display:flex;
  align-items:center;
  gap:6px;
  padding-top:7px;
  font-size:12px;
  font-weight:600;
  color:var(--ink-3);
  white-space:nowrap;
}
.ti-label i{
  font-style:normal;
  font-size:11px;
  font-weight:500;
  color:var(--ink-4);
  background:var(--bg);
  border-radius:100px;
  padding:1px 6px;
  font-variant-numeric:tabular-nums;
}
.ti-pills{ display:flex; flex-wrap:wrap; gap:8px; }
.ti-note{ font-size:11.5px; line-height:1.6; color:var(--ink-4); }

/* 项目表：项目名后的类型标签 */
.db-type{ margin-left:8px; font-size:11px; font-weight:400; color:var(--ink-4); letter-spacing:0; }
.db-row:hover .db-type{ color:var(--ink-3); }

@media (max-width:760px){
  .ti-head{ flex-wrap:wrap; }
  .ti-toggle{ margin-left:0; }
  .ti-row{ grid-template-columns:1fr; gap:8px; }
  .ti-label{ padding-top:0; }
}

/* ── 侧栏：本周上升最快 ────────────────────────── */
.tag-rising{
  display:flex;
  flex-direction:column;
  list-style:none;
  padding:0;
  margin:0;
}
.tag-rising li{
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 0;
  border-bottom:1px solid var(--line-soft);
}
.tag-rising li:last-child{border-bottom:0;padding-bottom:12px;}
.tag-rise-rank{
  flex:0 0 20px;
  text-align:center;
  font-style:normal;
  font-size:13px;
  font-weight:700;
  color:var(--ink-4);
  font-variant-numeric:tabular-nums;
}
.tag-rising li:nth-child(1) .tag-rise-rank{color:var(--risk);}
.tag-rising li:nth-child(2) .tag-rise-rank{color:var(--risk);opacity:.75;}
.tag-rising li:nth-child(3) .tag-rise-rank{color:var(--warn);}
.tag-rising a{
  flex:1;
  min-width:0;
  font-size:13.5px;
  font-weight:500;
  color:var(--ink-2);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  transition:color .15s var(--ease);
}
.tag-rising li:hover a{color:var(--brand);}
.tag-rise-up{
  flex:0 0 auto;
  font-size:11.5px;
  font-weight:700;
  color:var(--good);
  font-variant-numeric:tabular-nums;
  padding:2px 6px;
  background:var(--good-bg);
  border-radius:3px;
}

/* ── 侧栏：标签使用说明 ────────────────────────── */
.tag-tips-box{
  background:var(--card);
  border:1px solid var(--line);
  border-left:3px solid var(--brand);
  border-radius:var(--r);
  box-shadow:var(--shadow-sm);
  padding:18px;
}
.ttb-head{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:15px;
  font-weight:700;
  color:var(--ink);
  margin-bottom:12px;
}
.ttb-head svg{width:16px;height:16px;color:var(--brand);}
.ttb-list{
  display:flex;
  flex-direction:column;
  gap:10px;
  list-style:none;
  padding:0;
  margin:0;
}
.ttb-list li{
  font-size:12.5px;
  line-height:1.65;
  color:var(--ink-3);
  padding-left:14px;
  position:relative;
}
.ttb-list li::before{
  content:"·";
  position:absolute;
  left:2px;
  top:-1px;
  font-size:16px;
  color:var(--brand);
}
.ttb-list b{color:var(--ink-2);font-weight:600;}
/* ============================================================
   响应式
   ============================================================ */
@media (max-width:1120px){
  :root{--sidebar-w:276px;}
  .layout{gap:24px;}
  .masthead .wrap{gap:20px;}

  /* 首页 */
  .hero{grid-template-columns:1fr;}
  .hero-main{border-right:0;border-bottom:1px solid var(--line);}
  .pa-wrap{grid-template-columns:1fr;}
  .af-wrap{grid-template-columns:1fr;gap:24px;}
  .af-lead{border-right:0;border-bottom:1px solid var(--line-soft);padding-right:0;padding-bottom:24px;}
  .risk-dashboard{gap:16px 24px;}
  .rd-metrics{gap:20px;padding-left:16px;}
  .rd-dist{flex-basis:160px;}

  /* 列表页 */
  .page-header{padding:24px 24px;}
  .ph-title{font-size:28px;}
  .ai-thumb{flex-basis:170px;}
  /* 举报页 */
  .rp-section{padding:24px 24px 28px;}
  .rp-types{grid-template-columns:repeat(2,minmax(0,1fr));}
  /* 文章页 */
  .post-header{padding:28px 28px 24px;}
  .post-title{font-size:28px;}
  .prose{padding:28px 28px 24px;font-size:16.5px;}
  .post-footer{padding:0 28px 28px;}
  .rel-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  /* 关于页 */
  .about-section{padding:28px 28px 30px;}
  .about-title{font-size:24px;}
  .about-rights-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
    /* 项目详情 */
  .proj-hero{padding:28px;}
  .proj-hero-name{font-size:32px;}
  .proj-hero-score-num{font-size:42px;}
  .proj-hero-facts{grid-template-columns:repeat(2,minmax(0,1fr));}
  .proj-facts-grid{grid-template-columns:repeat(2,minmax(0,1fr));}


}

@media (max-width:920px){
  .layout{grid-template-columns:1fr;}
  .sidebar{
    position:static;display:grid;grid-template-columns:1fr 1fr;
    gap:24px;align-items:start;
  }
  .footer-main{grid-template-columns:1fr 1fr;gap:32px;}

  /* 首页 */
  .risk-dashboard{gap:16px;}
  .rd-dist{flex:1 1 100%;}
  .column-grid{grid-template-columns:1fr;}
  /* 关于页 */
  .about-toc-widget{display:none;}
  .about-cap-grid{grid-template-columns:1fr;}
  .about-level-grid{grid-template-columns:1fr;}
  .about-contact-grid{grid-template-columns:1fr;}
  .about-contact-meta{grid-template-columns:1fr;}
  /* 列表页 */
  .page-header{flex-direction:column;align-items:stretch;gap:20px;}
  .ph-cta{align-self:flex-start;}
  .article-item{gap:16px;}
  .ai-thumb{flex-basis:150px;}
  .ai-title{font-size:17px;}
  /* 404 */
  .nf-rec-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .nf-rec-grid .nf-rec-card:last-child{grid-column:1 / -1;}
  /* 文章页 */
  .post-title{font-size:26px;}
  .post-meta{flex-direction:column;align-items:flex-start;gap:14px;}
  .toc-widget{display:none;}
}

@media (max-width:760px){
  body{font-size:14.5px;}
  .wrap{padding:0 16px;}
  .main{padding-top:20px;padding-bottom:48px;}
  .topbar .wrap{gap:14px;}
  .topbar-links{display:flex;gap:10px;}
  .mainnav .wrap{
    height:48px;
    -webkit-mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 28px),transparent);
    mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 28px),transparent);
  }

  /* 首页 */
  .risk-dashboard{padding:16px;gap:14px;flex-direction:column;align-items:stretch;}
  .rd-head{flex-direction:row;align-items:center;justify-content:space-between;}
  .rd-metrics{
    padding-left:0;border-left:0;gap:18px;justify-content:space-between;
    padding-top:12px;border-top:1px solid var(--line-soft);
  }
  .rd-num{font-size:22px;}
  .rd-alert{justify-content:center;}
  .hero-main{padding:24px 18px 20px;}
  .hm-lead h1{font-size:24px;line-height:1.5;}
  .hero-side{padding:18px;}
  .panel{margin-bottom:24px;}
  .panel-head{padding:14px 16px;gap:10px;}
  .panel-head h2{font-size:16.5px;}
  .panel-body{padding:16px;}
  .pa-wrap{padding:16px;gap:16px;}
  .af-wrap{padding:16px;}
  .pa-hint{padding:0 16px 16px;}
  .pa-toolbar{flex-wrap:wrap;gap:10px;padding:12px 16px;}
  .pa-search{flex:1 1 100%;max-width:none;}
  .pa-search input{font-size:16px;}
  .pa-filters{
    flex:1 1 100%;flex-wrap:nowrap;overflow-x:auto;
    scrollbar-width:none;padding-bottom:2px;
  }
  .pa-filters::-webkit-scrollbar{display:none;}
  .pa-sort{display:none;}
  .tl-body{padding:4px 16px 12px;}
  .tl-item{grid-template-columns:68px minmax(0,1fr);gap:10px;padding:12px 0;}
  .tl-title{font-size:14px;}
  .tl-tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;}
  .tl-tabs::-webkit-scrollbar{display:none;}
  .pal-head,.pal-row{padding-left:14px;padding-right:14px;}
  .pal-more{padding:12px 14px;}
  .sidebar{grid-template-columns:1fr;gap:20px;}
  .footer-main{grid-template-columns:1fr;gap:28px;padding:36px 0 28px;}
  .footer-bottom{flex-direction:column;gap:10px;text-align:center;}
  .back-top{right:18px;bottom:18px;}
  /* 最新发布 移动端 */
  .feed-list{padding:4px 16px 8px;}
  .feed-row{
    padding:12px 0;
    gap:10px;
    flex-wrap:wrap;
  }
  .fr-cat{flex-basis:64px;font-size:11px;}
  .feed-row h3{
    flex:1 1 calc(100% - 74px);
    white-space:normal;
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
    overflow:hidden;
    font-size:14px;
  }
  .feed-row time{
    flex:0 0 auto;
    margin-left:auto;
    font-size:12px;
  }
  .feed-more-wrap{padding:8px 16px 16px;}
  .feed-more-btn{padding:9px 24px;font-size:13px;}
  /* 列表页 */
  .breadcrumb{font-size:12px;margin-bottom:16px;}
  .page-header{padding:20px 18px;margin-bottom:20px;}
  .ph-title{font-size:24px;}
  .ph-desc{font-size:13.5px;}
  .ph-stats{gap:14px;font-size:12px;}
  .ph-stats b{font-size:14px;}
  .filter-bar{padding:10px 12px;gap:10px;}
  .filter-tabs{padding:2px;flex:1 1 100%;}
  .filter-sort{width:100%;justify-content:flex-end;}
  .article-item{flex-direction:column;gap:14px;padding:16px;}
  .ai-thumb{flex-basis:auto;width:100%;aspect-ratio:16/9;}
  .ai-thumb-icon{width:30px;height:30px;}
  .ai-title{font-size:16.5px;line-height:1.55;}
  .ai-desc{font-size:13.5px;-webkit-line-clamp:3;}
  .ai-meta{gap:10px;}
  .ai-tags{margin-left:0;flex-basis:100%;}
  .pagination{gap:4px;}
  .page-btn,.page-num{min-width:34px;height:34px;padding:0 10px;font-size:13px;}
  .page-ellipsis{min-width:34px;height:34px;}
  .sb-form{flex-direction:column;}
  .sb-form button{width:100%;}
  /* 风险快讯 移动端 */
  .news-list{gap:16px;}
  .news-group-head{
    padding:12px 16px;
    gap:8px;
  }
  .news-group-day{font-size:14px;}
  .news-group-date{font-size:11.5px;}
  .news-item{
    grid-template-columns:1fr;
    grid-template-areas:"time" "body";
    gap:8px;
    padding:14px 16px;
  }
  .news-time{
    grid-area:time;
    flex-direction:row;
    align-items:baseline;
    gap:8px;
    padding-top:0;
  }
  .news-time b{font-size:13px;}
  .news-time span{font-size:11px;}
  .news-body{grid-area:body;}
  .news-title{font-size:14.5px;}
  .news-desc{font-size:13px;-webkit-line-clamp:3;}
  .news-empty{padding:36px 18px;}
  .news-more-wrap{padding:4px 0 8px;}
  .news-more-btn{padding:10px 24px;font-size:13px;}

  .news-today-card{padding:14px 16px;}
  .ntc-num{font-size:18px;}
  .ntc-cell span{font-size:11px;}
  /* 举报页 */
  .rp-steps{padding:14px 16px;margin-bottom:16px;}
  .rp-step-label{display:none;}
  .rp-step.is-active .rp-step-label{display:inline;}
  .rp-step:not(:last-child)::after{width:14px;flex-basis:14px;margin-left:4px;}
  .rp-section{padding:20px 18px 24px;margin-bottom:16px;}
  .rp-section-title{font-size:17px;}
  .rp-section-desc{font-size:13px;}
  .rp-types{grid-template-columns:1fr;gap:10px;}
  .rp-type-inner{flex-direction:row;align-items:center;padding:14px;}
  .rp-type-icon{flex:0 0 32px;}
  .rp-type-name{flex:1;font-size:13.5px;}
  .rp-type-desc{display:none;}
  .rp-grid{grid-template-columns:1fr;gap:16px;}
  .rp-input{font-size:16px;}
  .rp-textarea{font-size:16px;}
  .rp-upload{padding:28px 16px;}
  .rp-submit{width:100%;justify-content:center;padding:14px 24px;}
  .rp-contact-fields{padding:16px;}
  /* 404 */
  .nf-hero{padding:40px 20px 36px;margin-bottom:20px;}
  .nf-code-num{font-size:88px;}
  .nf-code-num--center::after{width:32px;height:32px;}
  .nf-title{font-size:24px;margin-bottom:10px;}
  .nf-desc{font-size:13.5px;margin-bottom:24px;}
  .nf-search{max-width:none;margin-bottom:24px;}
  .nf-search input{height:44px;padding:0 90px 0 40px;font-size:16px;}
  .nf-search button{height:34px;padding:0 18px;font-size:13px;}
  .nf-search-icon{left:14px;width:15px;height:15px;}
  .nf-links{gap:8px;}
  .nf-link{padding:8px 14px;font-size:13px;}
  .nf-link svg{width:13px;height:13px;}

  .nf-rec-grid{grid-template-columns:1fr;}
  .nf-rec-grid .nf-rec-card:last-child{grid-column:auto;}
  .nf-rec-card{padding:16px;}
  .nf-rec-title{font-size:16.5px;}
  /* 项目库 移动端卡片化 */
  .db-head{display:none;}
  .db-row{
    grid-template-columns:minmax(0,1fr) auto auto;
    grid-template-areas:
      "name name level"
      "org  upd  cnt";
    gap:6px 10px;
    padding:14px 16px;
  }
  .db-name{grid-area:name;font-size:15px;}
  .db-level{grid-area:level;justify-content:flex-end;}
  .db-score{display:none;}
  .db-org{grid-area:org;font-size:12.5px;color:var(--ink-3);}
  .db-updated{grid-area:upd;font-size:12px;color:var(--ink-3);}
  .db-updated::before{content:"· ";color:var(--ink-4);}
  .db-cnt{grid-area:cnt;font-size:12px;color:var(--ink-3);font-weight:400;}
  .db-cnt::before{content:"内容 ";font-weight:400;}
  .db-empty{padding:36px 18px;}
  .db-dist-list a{padding:9px 0;}

    /* 项目详情 */
  .proj-hero{padding:20px 18px;margin-bottom:24px;}
  .proj-hero-head{margin-bottom:14px;}
  .proj-hero-name{font-size:24px;margin-bottom:6px;}
  .proj-hero-main{gap:16px;margin-bottom:18px;}
  .proj-hero-meta{font-size:13px;}
  .proj-hero-score{padding:10px 14px;gap:3px;}
  .proj-hero-score-num{font-size:36px;}
  .proj-hero-score-unit{font-size:13px;}
  .proj-hero-facts{grid-template-columns:1fr;margin-bottom:16px;}
  .proj-hero-fact{padding:12px 14px;}
  .phf-label{font-size:11px;}
  .phf-value{font-size:13px;}
  .proj-hero-advice{padding:12px 14px;gap:10px;}
  .proj-hero-advice svg{width:16px;height:16px;flex-basis:16px;}
  .proj-hero-advice p{font-size:12.5px;}

  .proj-timeline{padding:4px 16px 12px;}
  .proj-tl-item{
    grid-template-columns:1fr;
    grid-template-areas:"content";
    gap:6px;
    padding:14px 0 14px 20px;
    border-left:2px solid var(--line-soft);
    margin-left:4px;
  }
  .proj-tl-dot{display:none;}
  .proj-tl-content{grid-area:content;padding-top:0;}
  .proj-tl-title{font-size:14.5px;}
  .proj-tl-desc{font-size:13px;}

  .proj-facts-grid{grid-template-columns:1fr;}
  .proj-fact{padding:12px 16px;}

  .proj-articles{padding:4px 16px 12px;}
  .proj-article{padding:14px 0;}
  .proj-article h3{font-size:14.5px;}

  .proj-feedback{padding:0 16px 8px;}
  .proj-feedback li{padding:14px 0;}
  .pf-text{font-size:13.5px;}

  .proj-action-card{padding:16px;}
  .pac-btn{padding:10px 14px;}
  /* 搜索结果 */
  .search-page-head{padding:18px 18px;margin-bottom:16px;}
  .search-page-form{max-width:none;margin-bottom:10px;}
  .search-page-form input{height:44px;padding:0 96px 0 42px;font-size:16px;}
  .search-page-form button{height:34px;padding:0 18px;font-size:13px;}
  .spf-icon{left:14px;width:16px;height:16px;}
  .spm-text{font-size:12.5px;}
  .spm-hint{font-size:11.5px;}

  .sr-bar{padding:10px 12px;gap:10px;}
  .sr-types{padding:2px;flex:1 1 100%;}
  .sr-sort{width:100%;justify-content:flex-end;}

  .sr-item{padding:14px 16px;}
  .sr-item-title{font-size:15px;}
  .sr-item--project .sr-item-title{font-size:16.5px;}
  .sr-item-desc{font-size:13px;-webkit-line-clamp:3;}
  .sr-item-meta{gap:10px;font-size:11.5px;}
  .sr-item-meta span:not(:first-child)::before{margin-right:10px;}

  .sr-empty{padding:40px 20px;}
  .sr-empty-icon{width:56px;height:56px;}
  .sr-empty-icon svg{width:24px;height:24px;}
  .sr-empty-title{font-size:17px;}
  .sr-empty-desc{font-size:13px;}
  .sr-empty-btn{padding:9px 20px;font-size:13px;}
    /* 标签聚合 移动端 */
  .tag-group{padding:18px 16px 20px;margin-bottom:16px;}
  .tag-group-head{padding-bottom:12px;margin-bottom:14px;}
  .tag-group-title{font-size:15px;}
  .tag-group-hint{font-size:11px;}
  .tag-group-count{font-size:11.5px;}

  .tag-cloud{gap:8px;}
  .tag-cloud--xl{gap:10px;}
  .tag-cloud--lg{gap:8px;}
  .tag-cloud--md{gap:7px;}
  .tag-cloud--sm{gap:6px;}

  .tag-pill--xl{padding:10px 18px;font-size:15px;}
  .tag-pill--xl .tag-count{min-width:24px;height:18px;font-size:11px;}
  .tag-pill--lg{padding:8px 15px;font-size:14px;}
  .tag-pill--md{padding:6px 13px;font-size:13px;}
  .tag-pill--sm{padding:5px 11px;font-size:12px;}

  .tag-empty{padding:36px 18px;}
  .tag-more-wrap{padding:4px 0 8px;}
  .tag-more-btn{padding:10px 24px;font-size:13px;}
  /* 关于页 */
  .about-section{padding:22px 20px 24px;margin-bottom:20px;}
  .about-section-head{margin-bottom:20px;padding-bottom:16px;}
  .about-title{font-size:21px;}
  .about-lead{font-size:13.5px;line-height:1.75;}
  .about-h3{font-size:15px;margin-top:24px;margin-bottom:12px;}
  .about-text{font-size:13.5px;}
  .about-cap{padding:16px;}
  .about-cap-icon{width:32px;height:32px;}
  .about-cap-icon svg{width:18px;height:18px;}
  .about-cap-title{font-size:14px;}
  .about-cap-desc{font-size:12.5px;}
  .about-step-num{flex-basis:28px;width:28px;height:28px;font-size:13px;}
  .about-step-body b{font-size:13.5px;}
  .about-step-body p{font-size:12.5px;}
  .about-level{padding:14px 16px;}
  .about-level-score{font-size:15px;}
  .about-level-desc{font-size:12px;}

  .about-weight-row{grid-template-columns:1fr;gap:4px;padding:12px 14px;}
  .about-weight-row--head{display:none;}
  .about-weight-row span:first-child{font-size:13.5px;margin-bottom:2px;}
  .about-weight-row b{font-size:12.5px;display:inline-block;margin-bottom:2px;}

  .about-boundary-grid{grid-template-columns:1fr;gap:12px;}
  .about-boundary{padding:16px;}
  .about-boundary-title{font-size:14px;margin-bottom:12px;}
  .about-boundary-list li{font-size:12.5px;}
  .about-disclaimer{padding:14px 16px;gap:10px;}
  .about-disclaimer svg{width:16px;height:16px;flex-basis:16px;}
  .about-disclaimer p{font-size:12.5px;}

  .about-privacy-grid{grid-template-columns:1fr;}
  .about-privacy-card{padding:16px;}
  .about-privacy-uses li,
  .about-privacy-protect li{font-size:13px;padding-left:20px;}
  .about-rights-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .about-right{padding:12px 14px;}
  .about-right b{font-size:13px;}
  .about-right span{font-size:11.5px;}

  .about-contact{padding:16px;gap:12px;}
  .about-contact-icon{flex-basis:36px;width:36px;height:36px;}
  .about-contact-icon svg{width:18px;height:18px;}
  .about-contact-body h4{font-size:13.5px;}
  .about-contact-body p{font-size:12px;}
  .about-contact-link{font-size:12px;}
  .about-contact-meta{padding:14px 16px;gap:8px;}
  .about-contact-meta p{font-size:12px;}
  /* 文章页 */
  .post-header{padding:24px 20px 20px;}
  .post-title{font-size:23px;line-height:1.5;}
  .post-lead{font-size:14.5px;padding-left:12px;}
  .post-kicker{font-size:12px;gap:8px;}
  .prose{padding:24px 20px 20px;font-size:16px;line-height:1.8;}
  .prose h2{font-size:19px;margin-top:1.8em;}
  .prose .post-list-ul li,
  .prose .post-list-ol li{font-size:15px;}
  .post-footer{padding:0 20px 24px;}
  .post-actions{gap:8px;}
  .action-btn{padding:8px 13px;font-size:13px;}
  .action-btn--report{margin-left:0;}
  .rel-grid{grid-template-columns:1fr;}
  .comments{padding:18px;}
  .cm-item{padding:16px 0;}
  .cm-avatar{flex-basis:32px;width:32px;height:32px;font-size:13px;}
  .cm-avatar--sm{flex-basis:24px;width:24px;height:24px;font-size:11px;}
  .cm-form-foot button{width:100%;}
  .cm-replies{margin-left:42px;padding:10px 12px;}
  .cm-expand{margin-left:42px;}
  .cm-reply-form{margin-left:42px;}
  .post-figure .pf-media svg{width:30px;height:30px;}
  .post-table{font-size:13px;}
  .post-table th,.post-table td{padding:10px 12px;}
  .risk-notice{padding:14px 16px;}
}

@media (max-width:480px){
  :root{--pal-cols:minmax(0,1fr) 82px 46px 58px;}

  /* 首页 */
  .pal-head,.pal-row{gap:8px;padding-left:12px;padding-right:12px;}
  .pal-head{font-size:11px;letter-spacing:.02em;}
  .lv-tag{font-size:11.5px;padding:4px 7px;gap:4px;}
  .lv-tag::before{width:5px;height:5px;flex-basis:5px;}
  .pal-name{font-size:13.5px;}
  .pal-score{font-size:14px;}
  .hs-item h3,.afl-row h4{font-size:13.5px;}
  .hm-lead h1{font-size:21px;}
  .tl-item{grid-template-columns:68px minmax(0,1fr);gap:10px;padding:12px 0;align-items:start;}
  .tl-item .lv-tag{margin-top:2px;}
  .tl-title{
    white-space:normal;
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
    overflow:hidden;
  }
  .rd-metrics{gap:12px;}
  .rd-label{font-size:11px;}
  .rd-num{font-size:19px;}
  .mast-actions{gap:6px;}
  .mast-actions a{padding:7px 12px;font-size:13px;}
  .brand-logo{height:36px;}
  .column-grid{gap:12px;}
  .col-card{padding:14px;}
  /* 404 */
  .nf-hero{padding:32px 16px 28px;}
  .nf-code-num{font-size:72px;}
  .nf-code-num--center::after{width:26px;height:26px;}
  .nf-title{font-size:21px;}
  .nf-desc{font-size:13px;}
  .nf-search input{font-size:16px;padding:0 80px 0 38px;}
  .nf-search button{padding:0 14px;font-size:12.5px;}
  .nf-search-icon{left:12px;width:14px;height:14px;}
  .nf-links{flex-direction:column;align-items:stretch;max-width:280px;margin:0 auto;}
  .nf-link{justify-content:center;}
  .nf-link--primary{order:-1;}

  .nf-rec-title{font-size:16px;}
  .nf-rec-desc{font-size:12px;}
  .nf-rec-card-title{font-size:14.5px;}
  .nf-rec-card-desc{font-size:12.5px;}
  /* 列表页 */
  .page-header{padding:18px 16px;}
  .ph-title{font-size:22px;}
  .ph-desc{font-size:13px;line-height:1.7;}
  .ph-stats{flex-direction:column;gap:6px;font-size:12px;}
  .ph-cta{width:100%;justify-content:center;}
  .filter-tab{padding:6px 12px;font-size:13px;}
  .filter-sort select{width:100%;}
  .article-item{padding:14px;}
  .ai-title{font-size:16px;}
  .ai-desc{font-size:13px;-webkit-line-clamp:2;}
  .ai-stats{gap:10px;}
  .ai-stats i + i::before{margin-right:10px;}
  .page-num:nth-child(4),
  .page-ellipsis{display:none;}
  .hot-list a{font-size:13px;}
    /* 标签聚合 */
  .tag-group{padding:16px 14px 18px;}
  .tag-group-title{font-size:14.5px;flex-wrap:wrap;}
  .tag-group-hint{display:block;flex-basis:100%;margin-top:2px;}

  .tag-cloud{gap:6px;}
  .tag-pill--xl{padding:8px 15px;font-size:14px;gap:6px;}
  .tag-pill--xl .tag-count{min-width:22px;height:16px;font-size:11px;padding:0 6px;}
  .tag-pill--lg{padding:7px 13px;font-size:13.5px;}
  .tag-pill--md{padding:6px 12px;font-size:12.5px;}
  .tag-pill--sm{padding:5px 10px;font-size:12px;gap:6px;}
  .tag-pill--sm .tag-count{min-width:16px;height:14px;font-size:11px;}
  /* 举报页 */
  .rp-steps{padding:12px 14px;}
  .rp-step-num{width:22px;height:22px;flex-basis:22px;font-size:11px;}
  .rp-section{padding:16px 14px 20px;}
  .rp-section-title{font-size:16px;}
  .rp-label{font-size:12.5px;}
  .rp-type-inner{padding:12px;}
  .rp-upload-title{font-size:13px;}
  .rp-upload-desc{font-size:12px;}
  .rp-file{padding:8px 10px;font-size:12px;}
  .rp-file-size{display:none;}
  .rp-upload-tips{padding:14px;}
  .rp-upload-tip-list li{font-size:12px;}
    /* 风险快讯 */
  .news-group-head{padding:10px 14px;}
  .news-item{padding:12px 14px;}
  .news-title{font-size:14px;}
  .news-desc{font-size:12.5px;-webkit-line-clamp:2;}
  .news-kicker{gap:6px;margin-bottom:6px;}
  .news-tag-inline{font-size:11px;padding:2px 6px;}
  .ntc-num{font-size:16px;}
  .ntc-cell{padding:9px 2px 7px;}
    /* 搜索结果 */
  .search-page-head{padding:16px 14px;}
  .search-page-form input{font-size:16px;padding:0 84px 0 38px;}
  .search-page-form button{padding:0 14px;font-size:12.5px;}
  .spf-icon{left:12px;width:15px;height:15px;}

  .sr-type-tab{padding:6px 12px;font-size:13px;}
  .sr-type-count{font-size:11px;height:16px;min-width:18px;}

  .sr-item{padding:12px 14px;}
  .sr-item-title{font-size:14.5px;}
  .sr-item--project .sr-item-title{font-size:15.5px;}
  .sr-item-desc{font-size:12.5px;-webkit-line-clamp:2;}
  .sr-item-head{font-size:11.5px;gap:6px;}
  .sr-item-type{font-size:11px;padding:2px 6px;}
  .sr-item-type svg{width:11px;height:11px;}

  .sr-empty{padding:32px 16px;}
  .sr-empty-actions{flex-direction:column;width:100%;}
  .sr-empty-btn{width:100%;justify-content:center;}
  /* 文章页 */
  .post-header{padding:20px 16px 18px;}
  .post-title{font-size:21px;}
  .post-lead{font-size:14px;}
  .pm-info span{font-size:11.5px;}
  .pm-stats{gap:14px;font-size:12px;}
  .prose{padding:20px 16px 16px;font-size:15.5px;}
  .prose h2{font-size:18px;}
  .post-footer{padding:0 16px 20px;}
  .post-actions{flex-wrap:wrap;}
  .action-btn{flex:1 1 calc(50% - 4px);justify-content:center;}
  .action-btn--report{flex-basis:100%;}
  .post-figure .pf-media{aspect-ratio:4/3;}
  .post-figure figcaption{font-size:12px;}
  .post-alert{padding:14px 16px;flex-direction:column;gap:10px;}
  .pa-icon{width:24px;height:24px;flex-basis:24px;}
  .comments{padding:14px;}
  .cm-head h2{font-size:16px;}
  .cm-sort{font-size:12px;}
  .cm-replies{margin-left:0;padding:10px;background:var(--line-soft);}
  .cm-expand{margin-left:0;}
  .cm-reply-form{margin-left:0;}
  .cm-actions{gap:10px;}
  .cm-like-btn{padding:2px 4px;}
    /* 关于页 */
  .about-section{padding:18px 16px 20px;}
  .about-title{font-size:19px;}
  .about-lead{font-size:13px;}
  .about-h3{font-size:14.5px;}
  .about-cap{padding:14px;}
  .about-boundary-list li{font-size:12px;}
  .about-rights-grid{grid-template-columns:1fr;}
}

/* ============================================================
   暗色模式
   ============================================================ */
@media (prefers-color-scheme: dark){
  :root{
    --ink:#e8eaed;--ink-2:#c2c7cf;--ink-3:#9aa1ac;--ink-4:#8b93a0;
    --bg:#0f1115;--card:#16191f;
    --line:#272b33;--line-soft:#1e222a;
    --brand:#8ba4d6;--brand-2:#b4c6e8;--brand-bg:#1c2433;
    --risk:#f97066;--risk-deep:#912018;--risk-bg:#2a1512;
    --warn:#fdb022;--warn-bg:#2a1f0d;
    --good:#5ad38a;--good-bg:#0f2419;
    --legal:#b4a5d6;--legal-bg:#1f1a2e;
    --info:#84caff;--info-bg:#132133;
    --shadow-sm:0 1px 2px rgba(0,0,0,.4);
    --shadow-md:0 4px 12px -2px rgba(0,0,0,.5);
    --shadow-lg:0 12px 32px -8px rgba(0,0,0,.65);
  }

  /* 全局 */
  .topbar{background:#13161b;}
  .mainnav{background:rgba(15,17,21,.86);}
  .footer{background:#0b0d10;}
  .back-top{background:#272b33;}
  .back-top:hover{background:var(--brand);}
  .brand-fallback{color:var(--ink);}
  .footer-fallback{color:#fff;}
  .search:focus-within{background:#1c2029;}
  .mast-actions a:hover{background:#1c2029;}

  /* 面板 / 侧栏 */
  .panel--feature .panel-head{background:#1c2029;}
  .panel--feature .pa-toolbar{background:#1a1e26;border-bottom-color:#272b33;}
  .pa-search input,.pa-sort select{background:#11141a;border-color:#2a2f38;}
  .pal-head,.pal-row:hover,.pal-more:hover,.col-card:hover{background:#1c2029;}
  .pa-feature:hover,.col-card:hover{border-color:#333844;}
  .tl-tab.is-active{background:#1c2029;}
  .lv-d{box-shadow:inset 0 0 0 1px #4a2220;}
  .lv-w{box-shadow:inset 0 0 0 1px #4a3417;}
  .lv-l{box-shadow:inset 0 0 0 1px #3a2f52;}
  .lv-v{box-shadow:inset 0 0 0 1px #1a3d2a;}
.lv-a{box-shadow:inset 0 0 0 1px #1d3a5f;}
.lv-t{box-shadow:inset 0 0 0 1px #2a3a55;}

  /* 首页暗色补丁 */
  .risk-dashboard{border-top-color:#e8eaed;}
  .rd-alert{border-color:#3d1f1c;background:#1f1412;}
  .rd-alert:hover{background:#2a1a17;border-color:var(--risk);}
  .rd-alert-kicker{background:#1a1110;}

  /* 分类徽章暗色 */
  .cat-risk{box-shadow:inset 0 0 0 1px #4a2220;}
  .cat-legal{box-shadow:inset 0 0 0 1px #3a2f52;}
  .cat-info{box-shadow:inset 0 0 0 1px #1c3a5c;}
  .cat-good{box-shadow:inset 0 0 0 1px #1a3d2a;}
  .cat-warn{box-shadow:inset 0 0 0 1px #4a3417;}

  /* 列表页 */
  .ai-thumb{
    background:repeating-linear-gradient(45deg,#1c2029 0 8px,#1a1e26 8px 9px);
    border-color:var(--line);
  }
  .article-item:hover .ai-thumb{border-color:#333844;}
  .article-item:hover{border-color:#333844;}
  .filter-tab.is-active{background:#1c2029;}
  .ai-tags a{background:#1c2029;border-color:#2a2f38;}
  .page-btn,.page-num{background:#1c2029;border-color:#2a2f38;}
  .page-num.is-active{background:var(--brand);border-color:var(--brand);}
  .page-btn:hover,.page-num:hover{border-color:var(--brand);}
  .ph-cta{background:var(--brand);}
  .ph-cta:hover{background:var(--brand-2);}
  /* 项目库 暗色 */
  .db-head{background:#1c2029;}
  .db-row:hover{background:#1c2029;}
  .db-empty{background:var(--card);}
  .db-empty-btn{background:var(--brand-bg);color:var(--brand);}
  .db-empty-btn:hover{background:var(--brand);color:#0f1115;}

  /* 项目详情 暗色 */
  .proj-hero{
    background:linear-gradient(135deg,#1c2029 0%,#252a33 100%);
    border:1px solid #333844;
  }
  .proj-hero-fact{background:rgba(11,13,16,.6);}
  .proj-tl-dot::before{background:#1a1e26;border-color:#4a5260;}
  .proj-tl-item:first-child .proj-tl-dot::before{
    background:#f97066;border-color:#f97066;
    box-shadow:0 0 0 4px rgba(249,112,102,.2);
  }
  .proj-tl-dot::after{background:#2a2f38;}
  .pac-btn{background:#1c2029;border-color:#2a2f38;}
  .pac-btn:hover{background:#252a33;border-color:var(--brand);}
  .pac-btn--primary{background:var(--risk);border-color:var(--risk);}
  .pac-btn--primary:hover{background:var(--risk-deep);border-color:var(--risk-deep);}
  /* 最新发布 暗色 */
  .feed-more-btn{background:#1c2029;border-color:#2a2f38;}
  .feed-more-btn:hover{background:#252a33;border-color:var(--brand);}
  .c-t8{background:var(--brand-bg);color:var(--brand);}
  .c-t6{background:var(--risk-bg);color:var(--risk);}
  .c-t1{background:var(--good-bg);color:var(--good);}
  .c-t2{background:var(--warn-bg);color:var(--warn);}
    /* 标签聚合 暗色 */
  .tag-pill--type{background:var(--brand-bg);color:var(--brand);}
  .tag-pill--type:hover{background:var(--brand);color:#0f1115;}
  .tag-pill--status{background:var(--risk-bg);color:var(--risk);}
  .tag-pill--status:hover{background:var(--risk);color:#0f1115;}
  .tag-pill--project{background:#1c2029;color:var(--ink-2);border-color:#2a2f38;}
  .tag-pill--project:hover{background:var(--ink-2);color:#0f1115;border-color:var(--ink-2);}
  .tag-pill--topic{background:var(--warn-bg);color:var(--warn);}
  .tag-pill--topic:hover{background:var(--warn);color:#0f1115;}

  .tag-count{background:rgba(255,255,255,.08);}
  .tag-pill:hover .tag-count{background:rgba(0,0,0,.15);color:inherit;}

  .tag-empty-btn{background:var(--brand-bg);color:var(--brand);}
  .tag-empty-btn:hover{background:var(--brand);color:#0f1115;}

  .tag-more-btn{background:#1c2029;border-color:#2a2f38;}
  .tag-more-btn:hover{background:#252a33;border-color:var(--brand);}

  .tag-tips-box{background:var(--card);}
  .tag-rise-up{background:var(--good-bg);color:var(--good);}
  /* 举报页 暗色 */
  .rp-step.is-active .rp-step-num{box-shadow:0 0 0 3px rgba(139,164,214,.2);}
  .rp-step.is-done .rp-step-num{border-color:#1a3d2a;}
  .rp-type:hover .rp-type-inner{background:#1c2029;}
  .rp-type input:checked ~ .rp-type-inner{
    box-shadow:0 0 0 3px rgba(139,164,214,.15);
  }
  .rp-input:focus{background:#1c2029;}
  .rp-upload{background:#13161b;}
  .rp-upload:hover,
  .rp-upload.is-drag{background:#1c2433;}
  .rp-upload-btn{background:var(--card);}
  .rp-upload-btn:hover{background:var(--brand);color:#0f1115;}
  .rp-file{background:var(--card);}
  .rp-upload-tips{background:#13161b;}
  .rp-checkbox--block{background:#13161b;border-color:#1e222a;}
  .rp-contact-fields{background:#13161b;border-color:#1e222a;}
  .rp-submit{background:var(--brand);}
  .rp-submit:hover{background:var(--brand-2);}
  .rp-submit.is-success{background:var(--good);color:#0f1115;}
  .rp-notice-box{background:#1f1412;border-color:#3d1f1c;}
  .rp-flow-num{background:var(--brand-bg);color:var(--brand);}
  /* 订阅 / 举报 */
  .sb-form input{background:#1c2029;}
  .sb-form input:focus{background:#1c2029;}
  .subscribe-box{background:var(--card);}
  .report-box{background:#1f1412;border-color:#3d1f1c;}
  .rb-btn{background:var(--risk-deep);color:#fff;}
  .rb-btn:hover{background:var(--risk);color:#0f1115;}
  /* 风险快讯 暗色 */
  .news-group-head{background:#1c2029;}
  .news-item:hover{background:#1c2029;}
  .news-empty{background:var(--card);}
  .news-empty-btn{background:var(--brand-bg);color:var(--brand);}
  .news-empty-btn:hover{background:var(--brand);color:#0f1115;}
  .news-more-btn{background:#1c2029;border-color:#2a2f38;}
  .news-more-btn:hover{background:#252a33;border-color:var(--brand);}
  .news-today-card{border-top-color:#e8eaed;}
  .ntc-cell{background:var(--card);}
    /* 搜索结果 暗色 */
  .search-page-form input:focus{background:#1c2029;}
  .sr-type-tab.is-active{background:#1c2029;}
  .sr-type-count{background:#1e222a;color:#9aa1ac;}
  .sr-type-tab.is-active .sr-type-count{background:var(--brand-bg);color:var(--brand);}
  .sr-item:hover{border-color:#333844;}
  .sr-mark{color:var(--brand);}
  .sr-item-desc .sr-mark{color:var(--ink-2);}
  .sr-empty-btn{background:#1c2029;border-color:#2a2f38;}
  .sr-empty-btn:hover{background:#252a33;border-color:var(--brand);}
  .sr-empty-btn--primary{background:var(--brand);border-color:var(--brand);}
  .sr-empty-btn--primary:hover{background:var(--brand-2);border-color:var(--brand-2);}
  .sr-related-tags a{background:#1c2029;border-color:#2a2f38;}
  .sr-empty-icon{background:#1c2029;}
    /* 404 暗色 */
  .nf-code-num{color:var(--ink);}
  .nf-code-num--center{color:var(--risk);}
  .nf-code-num--center::after{background:rgba(249,112,102,.1);}
  .nf-search input:focus{background:#1c2029;}
  .nf-link{background:#1c2029;border-color:#2a2f38;}
  .nf-link:hover{background:#252a33;border-color:var(--brand);}
  .nf-link--primary{background:var(--brand);border-color:var(--brand);}
  .nf-link--primary:hover{background:var(--brand-2);border-color:var(--brand-2);}
  .nf-rec-card:hover{border-color:#333844;}
    /* 关于页 暗色 */
  .about-cap{background:#13161b;border-color:#1e222a;}
  .about-cap:hover{background:var(--card);border-color:#272b33;}
  .about-cap-icon{background:var(--brand-bg);color:var(--brand);}
  .about-level{background:#13161b;border-color:#1e222a;}
  .about-weight-row--head{background:#1c2029;}
  .about-boundary--do{background:#0f2419;border-color:#1a3d2a;}
  .about-boundary--dont{background:#1f1412;border-color:#3d1f1c;}
  .about-disclaimer{background:#13161b;border-color:#272b33;}
  .about-privacy-card{background:#13161b;border-color:#1e222a;}
  .about-right{background:#13161b;border-color:#1e222a;}
  .about-contact{background:var(--card);border-color:#272b33;}
  .about-contact:hover{border-color:#333844;}
  .about-contact-icon{background:var(--brand-bg);color:var(--brand);}
  .about-contact-meta{background:#13161b;}
  .about-toc-link.is-active{background:var(--brand-bg);}
  /* 文章页 */
  .prose blockquote{background:#1c2029;}
  .post-figure .pf-media{
    background:repeating-linear-gradient(45deg,#1c2029 0 8px,#1a1e26 8px 9px);
    border-color:var(--line);
  }
  .post-table th{background:#1c2029;}
  .post-table tbody tr:hover{background:#1c2029;}
  .post-alert{background:#1f1412;border-color:#3d1f1c;}
  .pa-icon{background:var(--risk);}
  .action-btn{background:#1c2029;border-color:#2a2f38;}
  .action-btn:hover{background:#252a33;border-color:var(--brand);}
  .action-btn--report:hover{background:#2a1a17;border-color:var(--risk);}
  .post-tags a{background:#1c2029;border-color:#2a2f38;}
  .post-tags a:hover{background:#1c2433;}
  .risk-notice{background:#13161b;border-color:var(--line);}
  .rel-card{background:var(--card);}
  .rel-card:hover{border-color:#333844;}
  .cm-form textarea{background:#1c2029;}
  .cm-form textarea:focus{background:#1c2029;}
  .cm-avatar{background:#1c2029;border-color:var(--line);color:var(--ink-2);}
  .cm-avatar--sm{background:#252a33;}
  .cm-replies{background:#1c2029;}
  .cm-reply-form{background:#1c2029;}
  .cm-reply-form textarea{background:#252a33;border-color:#2a2f38;}
  .cm-reply-form textarea:focus{background:#252a33;}
  .cm-cancel:hover{background:#252a33;}
  .cm-more{background:#1c2433;}
  .cm-more:hover{background:#22304a;}
  .toc-link.is-active{background:#1c2433;}
  .reading-progress span{background:var(--brand);}
}

/* ============================================================
   减少动画
   ============================================================ */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  .pn-card,.pn-arrow,.action-btn,.rel-card,.faq-item summary,.toc-link,.toc-mobile,.cm-more{transition:none;}
  .pn-card:hover,.rel-card:hover{transform:none;}
  .rel-card:hover{box-shadow:none;}
  .pulse-dot,.rd-pulse{animation:none;}
  .pa-feature{transition:none;}
  .pa-feature:hover{transform:none;}
  .col-card{transition:none;}
  .col-card:hover{transform:none;}
  .back-top{transition:none;}
  .rd-alert-arrow,.col-more svg,.level-list svg{transition:none;}
  .rd-alert:hover .rd-alert-arrow,
  .col-card:hover .col-more svg,
  .level-list a:hover svg{transform:none;}
  .article-item{transition:none;}
  .article-item:hover{transform:none;}
  .ai-thumb-icon{transition:none;}
  .ph-cta{transition:none;}
  .ph-cta:hover{transform:none;}
  .rb-btn{transition:none;}
  .rb-btn:hover{transform:none;}
  .reading-progress span{transition:none;}
  .rel-card{transition:none;}
  .rel-card:hover{transform:none;}
  .action-btn{transition:none;}
  .toc-link{transition:none;}
  .cm-like-btn{transition:none;}
  .cm-like-btn svg{transition:none;}
  .cm-expand::before{transition:none;}
}


/* ══════════════════════════════════════════════════════════════════════════
   合并自增强层（原 home.css / article.css / list.css）— 已按页面作用域隔离，
   等价于原先按页加载的增强层，避免全局泄漏。v10 统一后仅保留 css.css 一个文件。
   ── 作用域根类：.page-home（首页） / .page-article（文章页） / .page-list（列表·资讯页）
   ═════════════════════════════════════════════════════════════════════════ */


/* ── 首页增强层（作用域 .page-home） ── */
:root { --v10-max: 1320px;
  --v10-sp: clamp(20px, 3vw, 40px);
  --v10-gap: clamp(20px, 2.4vw, 32px);
  --v10-serif: "Noto Serif SC", "Source Han Serif SC", serif;
  --v10-ease: cubic-bezier(.16, 1, .3, 1); } .page-home .main { padding-top: clamp(28px, 3.2vw, 44px); padding-bottom: clamp(64px, 7vw, 104px); } .page-home .layout { gap: var(--v10-gap); } .page-home .layout { grid-template-columns: minmax(0, 1fr) 308px; }     .page-home .spotlight { display: grid;
  grid-template-columns: minmax(0, 1.62fr) minmax(0, 1fr);
  gap: var(--v10-gap);
  margin-bottom: var(--v10-gap); } .page-home .sp-lead { min-width: 0; } .page-home .sp-cover { position: relative;
  display: block;
  overflow: hidden;
  border-radius: var(--r-lg);
  background: var(--brand-2);
  box-shadow: var(--shadow-md);
  min-height: 400px;
  height: clamp(400px, 34vw, 496px); } .page-home .sp-cover img { width: 100%; height: 100%;
  object-fit: cover; object-position: center 42%;
  display: block;
  transition: transform .7s var(--v10-ease); } .page-home .sp-cover:hover img { transform: scale(1.035); } .page-home .sp-cover::after { content: ""; position: absolute; inset: 0;
  
  background: linear-gradient(180deg,
    rgba(12, 19, 33, .02) 0%,
    rgba(12, 19, 33, .16) 30%,
    rgba(12, 19, 33, .74) 50%,
    rgba(12, 19, 33, .90) 74%,
    rgba(12, 19, 33, .96) 100%);
  pointer-events: none; } .page-home .sp-cover-tag { position: absolute; top: 20px; left: 20px; z-index: 2;
  display: inline-flex; align-items: center;
  padding: 6px 12px; border-radius: 4px;
  background: var(--brand); color: #fff;
  font-size: 12px; font-weight: 700; letter-spacing: .08em; } .page-home .sp-cover-body { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2;
  padding: clamp(22px, 3vw, 38px);
  color: #fff; } .page-home .sp-cover-body h2 { font-family: var(--v10-serif);
  /* 摘要与「阅读全文」已移除，标题独占封面文字区；字号固定 24px（各断点同步，见媒体查询） */
  font-size: 24px;
  line-height: 1.45; font-weight: 700; letter-spacing: -.01em;
  margin: 0;
  text-shadow: 0 1px 12px rgba(0, 0, 0, .22); } .page-home .sp-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 10px;
  padding: 14px 2px 0;
  font-size: 12.5px; color: var(--ink-3);
  font-variant-numeric: tabular-nums; } .page-home .sp-meta span + span::before { content: "·"; margin-right: 8px; color: var(--ink-4); } .page-home .sp-meta-tag { margin-left: auto; padding: 3px 10px; border-radius: 4px;
  background: var(--brand-bg); color: var(--brand); font-weight: 600; } .page-home .sp-meta-tag::before { display: none; } .page-home .sp-side { display: flex; flex-direction: column;
  background: var(--card); border: 1px solid var(--line);
  border-radius: var(--r-lg); box-shadow: var(--shadow-sm);
  padding: 22px 22px 18px; min-width: 0; } .page-home .sp-side-head { display: flex; align-items: baseline; gap: 12px;
  padding-bottom: 14px; border-bottom: 1px solid var(--line-soft); } .page-home .sp-side-head h2 { font-size: 17px; font-weight: 700; letter-spacing: .02em; } .page-home .sp-side-head a { margin-left: auto; font-size: 13px; font-weight: 600; color: var(--brand); } .page-home .sp-side-head a:hover { text-decoration: underline; text-underline-offset: 3px; } .page-home .sp-headlines { flex: 1; display: flex; flex-direction: column; } .page-home .sp-headlines li { border-bottom: 1px dashed var(--line-soft); } .page-home .sp-headlines li:last-child { border-bottom: 0; } .page-home .sp-headlines a { display: block; padding: 12px 0; } .page-home .sp-hl-meta { display: flex; align-items: center; justify-content: space-between;
  gap: 10px; margin-top: 7px; } .page-home .sp-headlines time { font-size: 12px; color: var(--ink-4); font-variant-numeric: tabular-nums; line-height: 1; } .page-home .sp-cat { align-self: flex-start;
  font-size: 11px; font-weight: 600; line-height: 1;
  padding: 3px 7px; border-radius: 4px; white-space: nowrap;
  letter-spacing: .02em; } .page-home .cat-analysis { background: var(--brand-bg); color: var(--brand); } .page-home .cat-risk { background: #fdeceb; color: #c3271e; } .page-home .cat-news { background: #e9f3ee; color: #067647; } .page-home .sp-headlines h3 { font-size: 14.5px; line-height: 1.55; font-weight: 500; color: var(--ink-2);
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
  transition: color .18s var(--v10-ease); } .page-home .sp-headlines a:hover h3 { color: var(--brand); } .page-home .sublead { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--v10-gap); margin-bottom: var(--v10-gap); } .page-home .sl-item { display: block; padding: 22px 24px;
  background: var(--card); border: 1px solid var(--line);
  border-radius: var(--r-lg); box-shadow: var(--shadow-sm);
  transition: transform .22s var(--v10-ease), box-shadow .22s var(--v10-ease), border-color .22s var(--v10-ease); } .page-home .sl-item:hover { transform: translateY(-3px);
  box-shadow: var(--shadow-md);
  border-color: rgba(32, 50, 92, .28); } .page-home .sl-tag { display: inline-block; margin-bottom: 10px;
  font-size: 11.5px; font-weight: 700; letter-spacing: .06em;
  color: var(--brand); background: var(--brand-bg);
  padding: 3px 9px; border-radius: 4px; } .page-home .sl-item h3 { font-family: var(--v10-serif); font-size: 18px; line-height: 1.55;
  font-weight: 700; color: var(--ink); margin-bottom: 8px; } .page-home .sl-item p { font-size: 13.5px; line-height: 1.8; color: var(--ink-3);
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; } .page-home .sl-meta { display: block; margin-top: 12px; font-size: 12px; color: var(--ink-4); } .page-home .panel-head h2 { font-family: var(--v10-serif); font-size: 21px; font-weight: 700; letter-spacing: -.01em; } .page-home .panel { border-radius: var(--r-lg); } .page-home .tl-tabs .tl-tab b { font-weight: 700; margin-left: 3px; opacity: .65; } .page-home .tl-tabs .tl-tab.is-active b { opacity: 1; } .page-home .panel-link { color: var(--brand); } .page-home .panel-link:hover { text-decoration: underline; text-underline-offset: 3px; } .page-home .insight-panel .panel-head { padding: 18px 24px; } .page-home .insight-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));  gap: 1px; background: var(--line-soft); } .page-home .insight-card { display: flex; flex-direction: column;
  padding: 22px; background: var(--card);
  transition: background .2s var(--v10-ease); } .page-home .insight-card:hover { background: #fcfcfa; } .page-home .ic-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; } .page-home .ic-score { font-size: 12px; color: var(--ink-3); font-variant-numeric: tabular-nums; } .page-home .ic-score b { font-family: var(--v10-serif); font-size: 20px; font-weight: 700; color: var(--ink); margin-right: 2px; } .page-home .ic-name { font-family: var(--v10-serif); font-size: 22px; font-weight: 700;
  letter-spacing: -.01em; color: var(--ink); margin: 14px 0 12px; } .page-home .ic-facts { margin: 0 0 14px; padding: 12px 0; border-top: 1px solid var(--line-soft); border-bottom: 1px solid var(--line-soft); } .page-home .ic-facts > div { display: flex; gap: 10px; padding: 3px 0; font-size: 12.5px; line-height: 1.6; } .page-home .ic-facts dt { flex: 0 0 62px; color: var(--ink-4); } .page-home .ic-facts dd { margin: 0; color: var(--ink-2); min-width: 0; } .page-home .ic-note { font-size: 13px; line-height: 1.8; color: var(--ink-3); margin-bottom: 16px; flex: 1; } .page-home .ic-go { display: inline-flex; align-items: center; gap: 6px;
  font-size: 13px; font-weight: 700; color: var(--brand); } .page-home .ic-go svg { width: 14px; height: 14px; transition: transform .2s var(--v10-ease); } .page-home .insight-card:hover .ic-go svg { transform: translateX(4px); } .page-home .sidebar { gap: 20px; } .page-home .quick-lookup .ql-hint { font-size: 12.5px; line-height: 1.7; color: var(--ink-3); padding: 12px 0 10px; } .page-home .ql-form { display: flex; gap: 6px; } .page-home .ql-form input { flex: 1; min-width: 0; height: 42px; padding: 0 12px;
  border: 1px solid var(--line); border-radius: 6px;
  font-size: 13px; color: var(--ink); background: var(--bg);
  transition: border-color .18s var(--v10-ease), box-shadow .18s var(--v10-ease); } .page-home .ql-form input:focus { outline: 0; border-color: var(--brand); box-shadow: 0 0 0 3px rgba(32, 50, 92, .10); } .page-home .ql-form button { flex: 0 0 auto; min-height: 42px; padding: 0 14px;
  border-radius: 6px; background: var(--brand); color: #fff;
  font-size: 13px; font-weight: 700;
  transition: background .18s var(--v10-ease); } .page-home .ql-form button:hover { background: var(--brand-2); } .page-home .ql-result { font-size: 12px; line-height: 1.7; color: var(--brand); padding: 8px 0 0; } .page-home .ql-result:empty { display: none; } .page-home .ql-levels { padding-top: 10px; margin-top: 10px; border-top: 1px solid var(--line-soft); } .page-home .subscribe .sb-desc { font-size: 12.5px; line-height: 1.75; color: var(--ink-3); padding: 12px 0; } .page-home .sb-form { display: flex; gap: 6px; } .page-home .sb-form input { flex: 1; min-width: 0; height: 42px; padding: 0 12px;
  border: 1px solid var(--line); border-radius: 6px;
  font-size: 13px; color: var(--ink); background: var(--bg); } .page-home .sb-form input:focus { outline: 0; border-color: var(--brand); box-shadow: 0 0 0 3px rgba(32, 50, 92, .10); } .page-home .sb-form button { flex: 0 0 auto; min-height: 42px; padding: 0 14px; border-radius: 6px;
  background: var(--brand); color: #fff; font-size: 13px; font-weight: 700; } .page-home .sb-form button:hover { background: var(--brand-2); } .page-home .sb-note { font-size: 11.5px; color: var(--ink-4); padding: 10px 0 8px; } .page-home .sb-note.ok { color: var(--good); font-weight: 600; } .page-home .sb-note.err { color: var(--risk); } .page-home .feed-more-btn { text-decoration: none; } .page-home .feed-more-btn:hover { border-color: var(--brand); color: var(--brand); } .page-home .ni-list { padding: 4px 24px 8px; } .page-home .ni-row { display: grid;
  grid-template-columns: 200px minmax(0, 1fr);
  gap: 22px;
  align-items: center;
  padding: 20px 0;
  border-bottom: 1px solid var(--line-soft); } .page-home .ni-row:last-child { border-bottom: 0; } .page-home .ni-thumb { display: block; overflow: hidden; border-radius: 6px;
  background: var(--line-soft); aspect-ratio: 16 / 10; } .page-home .ni-thumb img { width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform .5s var(--v10-ease); } .page-home .ni-row:hover .ni-thumb img { transform: scale(1.05); } .page-home .ni-body { display: flex; flex-direction: column; min-width: 0; } .page-home .ni-kicker { display: flex; align-items: center; gap: 12px; margin-bottom: 9px; } .page-home .ni-kicker .fr-cat { flex: 0 0 auto; } .page-home .ni-kicker time { font-size: 12px; color: var(--ink-4); font-variant-numeric: tabular-nums; } .page-home .ni-title { font-family: var(--v10-serif);
  font-size: 19px; line-height: 1.55; font-weight: 700;
  letter-spacing: -.01em; color: var(--ink);
  transition: color .18s var(--v10-ease); } .page-home .ni-row:hover .ni-title { color: var(--brand); } .page-home .ni-desc { margin-top: 7px; font-size: 13.5px; line-height: 1.8; color: var(--ink-3);
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; } .page-home .ni-meta { display: inline-flex; align-items: center; gap: 6px; margin-top: 10px;
  font-size: 12px; color: var(--ink-4); } .page-home .ni-meta svg { width: 13px; height: 13px; transition: transform .2s var(--v10-ease); } .page-home .ni-row:hover .ni-meta svg { transform: translateX(4px); } @media (max-width: 1120px) { .page-home .ni-row { grid-template-columns: 168px minmax(0, 1fr); gap: 18px; } .page-home .ni-title { font-size: 18px; } } @media (max-width: 760px) { .page-home .ni-list { padding: 2px 16px 6px; } .page-home .ni-row { grid-template-columns: 116px minmax(0, 1fr); gap: 14px; padding: 16px 0; align-items: start; } .page-home .ni-title { font-size: 15.5px; line-height: 1.5; -webkit-line-clamp: 2; display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; } .page-home .ni-desc { display: none; } .page-home .ni-kicker { margin-bottom: 6px; gap: 8px; } .page-home .ni-kicker .fr-cat { font-size: 11px; padding: 2px 7px; } .page-home .ni-meta { margin-top: 8px; font-size: 11.5px; } .page-home .ni-thumb { border-radius: 4px; } } @media (max-width: 400px) { .page-home .ni-row { grid-template-columns: 96px minmax(0, 1fr); gap: 12px; } .page-home .ni-title { font-size: 15px; } .page-home .ni-kicker time { display: none; } } @media (prefers-reduced-motion: reduce) { .page-home .ni-thumb img, .page-home .ni-meta svg { transition-duration: .01ms; } .page-home .ni-row:hover .ni-thumb img { transform: none; } } @media (max-width: 1120px) { .page-home .layout { grid-template-columns: minmax(0, 1fr) 280px; } .page-home .spotlight { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); } .page-home .insight-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .page-home .insight-card:last-child { grid-column: 1 / -1; } } @media (max-width: 900px) { .page-home .layout { grid-template-columns: minmax(0, 1fr); } .page-home .sidebar { position: static; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; } .page-home .spotlight { grid-template-columns: minmax(0, 1fr); } .page-home .sp-cover { height: clamp(320px, 52vw, 440px); min-height: 320px; } .page-home .sp-side { padding: 20px; } .page-home .sp-headlines { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 20px; } } @media (max-width: 760px) { .page-home .main { padding-top: 20px; } .page-home .sublead { grid-template-columns: minmax(0, 1fr); gap: 14px; } .page-home .insight-grid { grid-template-columns: minmax(0, 1fr); } .page-home .insight-card:last-child { grid-column: auto; } .page-home .sp-headlines { grid-template-columns: minmax(0, 1fr); } .page-home .sp-cover { height: 340px; min-height: 340px; } .page-home .sp-cover-body h2 { font-size: 24px; } .page-home .sp-meta-tag { margin-left: 0; } .page-home .sidebar { grid-template-columns: minmax(0, 1fr); } .page-home .panel-head { padding: 15px 18px; gap: 10px; } .page-home .panel-head h2 { font-size: 19px; } .page-home .tl-tabs { width: 100%; overflow-x: auto; } .page-home .insight-card, .page-home .sl-item { padding: 18px; } } @media (max-width: 760px) { .page-home .sp-headlines { display: block; } } @media (max-width: 480px) { .page-home .sp-cover { height: 320px; min-height: 320px; } .page-home .sp-cover-body { padding: 20px; } .page-home .sp-cover-body h2 { font-size: 24px; line-height: 1.45; } .page-home .sp-cover-tag { top: 14px; left: 14px; } .page-home .sp-meta { gap: 6px 8px; font-size: 12px; } .page-home .sp-meta span + span::before { margin-right: 7px; } } @media (prefers-reduced-motion: reduce) { .page-home .sp-cover img, .page-home .sl-item, .page-home .ic-go svg { transition-duration: .01ms; } .page-home .sp-cover:hover img { transform: none; } .page-home .sl-item:hover { transform: none; } } @media (prefers-contrast: more) { .page-home .sp-cover::after { background: linear-gradient(180deg, rgba(16,24,39,.1), rgba(16,24,39,.97)); } .page-home .sl-item, .page-home .insight-card { border-color: var(--ink-3); } }
/* ── 文章页增强层（作用域 .page-article） ── */
.page-article .prose h3 { font-size:19px;line-height:1.5;font-weight:700;color:var(--ink);
  margin-top:1.9em;padding-top:.2em;scroll-margin-top:80px; } .page-article .prose h4 { font-size:16.5px;line-height:1.5;font-weight:700;color:var(--ink);margin-top:1.5em; } .page-article .prose h5 { font-size:15px;font-weight:700;color:var(--ink-2);margin-top:1.3em; } .page-article .prose h6 { font-size:13.5px;font-weight:700;color:var(--ink-3);margin-top:1.2em;letter-spacing:.02em; } .page-article .prose hr { border:0;border-top:1px solid var(--line-soft);margin:2.4em 0; } .page-article .prose code { font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;
  font-size:.88em;background:var(--bg);border:1px solid var(--line);
  padding:.12em .42em;border-radius:5px;color:var(--brand);word-break:break-word; } .page-article .prose pre { margin:1.8em 0;background:var(--bg);border:1px solid var(--line);
  border-radius:var(--r);padding:16px 18px;overflow-x:auto; } .page-article .prose pre code { font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;
  font-size:13.5px;line-height:1.7;background:none;border:0;padding:0;color:var(--ink-2);
  display:block;white-space:pre; } .page-article .prose kbd { font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.82em;
  background:var(--card);border:1px solid var(--line);border-bottom-width:2px;
  border-radius:5px;padding:.1em .45em;color:var(--ink); } .page-article .prose mark { background:#fff3a8;color:#4a3b00;padding:.05em .3em;border-radius:3px; } .page-article .prose del { color:var(--ink-4);text-decoration:line-through; } .page-article .prose ins { color:var(--good);text-decoration:underline; } .page-article .prose small { font-size:.82em;color:var(--ink-3); } .page-article .prose sub, .page-article .prose sup { font-size:.72em; } .page-article .prose abbr[title] { text-decoration:underline dotted;cursor:help;border-bottom:1px dotted var(--ink-4); } .page-article .prose img { max-width:100%;height:auto;border-radius:var(--r-sm);border:1px solid var(--line);margin:.4em 0; } .page-article .prose dl { margin:1.6em 0;display:grid;grid-template-columns:max-content 1fr;gap:10px 22px; } .page-article .prose dt { font-weight:700;color:var(--ink); } .page-article .prose dd { margin:0;color:var(--ink-2); } .page-article .prose details { border:1px solid var(--line);border-radius:var(--r-sm);padding:4px 16px;margin:1.8em 0;background:var(--card); } .page-article .prose summary { cursor:pointer;font-weight:600;color:var(--brand);padding:9px 0;list-style:none; } .page-article .prose summary::-webkit-details-marker { display:none; } .page-article .prose summary::before { content:"▸";display:inline-block;margin-right:8px;transition:transform .15s; } .page-article .prose details[open] summary::before { transform:rotate(90deg); } .page-article .prose details[open] summary { padding-bottom:9px;border-bottom:1px solid var(--line-soft); } .page-article .prose details[open] > :not(summary) { margin-top:12px; } .page-article .prose ul ul, .page-article .prose ol ol, .page-article .prose ul ol, .page-article .prose ol ul { margin-top:10px;gap:10px; } .page-article .prose .pullquote { font-family:var(--serif);font-size:21px;line-height:1.7;color:var(--ink);
  border:0;border-left:3px solid var(--brand);padding:4px 0 4px 20px;margin:1.8em 0;font-weight:600; } .page-article .infobox { margin:1.8em 0;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--card); } .page-article .ib-head { background:var(--brand-bg);color:var(--brand);font-weight:700;font-size:13px;padding:10px 16px;letter-spacing:.04em; } .page-article .fact-table { width:100%;border-collapse:collapse;font-size:14px; } .page-article .fact-table th { text-align:left;font-weight:600;color:var(--ink-3);padding:11px 16px;width:30%;vertical-align:top;border-bottom:1px solid var(--line-soft); } .page-article .fact-table td { padding:11px 16px;color:var(--ink-2);border-bottom:1px solid var(--line-soft);vertical-align:top; } .page-article .fact-table tr:last-child th, .page-article .fact-table tr:last-child td { border-bottom:0; } .page-article .fact-table td .pill { margin-right:6px; } .page-article .pill { display:inline-block;font-size:12px;font-weight:700;padding:2px 10px;border-radius:100px;line-height:1.6; } .page-article .pill--danger { background:var(--risk-bg);color:var(--risk); } .page-article .pill--watch { background:var(--warn-bg);color:#9a6700; } .page-article .pill--good { background:var(--good-bg);color:var(--good); } .page-article .callout { display:flex;gap:14px;padding:16px 18px;border-radius:var(--r-sm);margin:1.8em 0;border:1px solid var(--line);background:var(--bg);border-left:3px solid var(--ink-4); } .page-article .callout .co-icon { flex:0 0 24px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--ink-4);color:#fff;font-weight:700;font-size:13px;line-height:1; } .page-article .callout .co-body b { display:block;font-size:14px;font-weight:700;margin-bottom:5px; } .page-article .callout .co-body p { font-size:14.5px;line-height:1.75;margin:0;color:var(--ink-2); } .page-article .callout .co-body p + p { margin-top:8px; } .page-article .callout--info { border-left-color:var(--brand);background:var(--brand-bg); } .page-article .callout--info .co-icon { background:var(--brand); } .page-article .callout--info .co-body b { color:var(--brand); } .page-article .callout--warning { border-left-color:var(--warn);background:var(--warn-bg); } .page-article .callout--warning .co-icon { background:var(--warn); } .page-article .callout--warning .co-body b { color:#9a6700; } .page-article .callout--danger { border-left-color:var(--risk);background:var(--risk-bg); } .page-article .callout--danger .co-icon { background:var(--risk); } .page-article .callout--danger .co-body b { color:var(--risk); } .page-article .callout--tip { border-left-color:var(--good);background:var(--good-bg); } .page-article .callout--tip .co-icon { background:var(--good); } .page-article .callout--tip .co-body b { color:#067647; } .page-article .risk-meter { margin:1.8em 0;padding:20px 22px;border:1px solid var(--line);border-radius:var(--r);background:var(--card);box-shadow:var(--shadow-sm); } .page-article .rm-label { font-size:12.5px;font-weight:700;letter-spacing:.06em;color:var(--ink-3);margin-bottom:8px;text-transform:uppercase; } .page-article .rm-score { display:flex;align-items:baseline;gap:6px;margin-bottom:4px; } .page-article .rm-num { font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:44px;font-weight:800;line-height:1;color:var(--risk); } .page-article .rm-max { font-family:ui-monospace,monospace;font-size:13px;color:var(--ink-4);font-weight:700; } .page-article .rm-bar { height:8px;background:var(--bg);border-radius:4px;overflow:hidden;margin:10px 0 8px; } .page-article .rm-fill { display:block;height:100%;background:var(--risk);border-radius:4px;transition:width .6s var(--ease); } .page-article .rm-status { font-size:13px;font-weight:700;color:var(--risk);display:flex;align-items:center;gap:6px; } .page-article .rm-status::before { content:"";width:7px;height:7px;border-radius:50%;background:currentColor; } .page-article .risk-meter.watch .rm-num, .page-article .risk-meter.watch .rm-status { color:var(--warn); } .page-article .risk-meter.watch .rm-fill { background:var(--warn); } .page-article .risk-meter.filed .rm-num, .page-article .risk-meter.filed .rm-status { color:var(--good); } .page-article .risk-meter.filed .rm-fill { background:var(--good); } .page-article .bar-chart { margin:1.8em 0;display:flex;flex-direction:column;gap:14px; } .page-article .bar-row { display:grid;grid-template-columns:150px 1fr 44px;align-items:center;gap:14px; } .page-article .bar-label { font-size:14px;color:var(--ink-2);text-align:right; } .page-article .bar-track { height:12px;background:var(--bg);border-radius:6px;overflow:hidden;border:1px solid var(--line-soft); } .page-article .bar-fill { display:block;height:100%;background:linear-gradient(90deg,var(--brand),#5b7cc4);border-radius:6px; } .page-article .bar-val { font-family:ui-monospace,monospace;font-size:13px;font-weight:700;color:var(--ink-2);text-align:right;font-variant-numeric:tabular-nums; } .page-article .stat-grid { margin:1.8em 0;display:grid;grid-template-columns:repeat(4,1fr);gap:14px; } .page-article .stat-card { border:1px solid var(--line);border-radius:var(--r);padding:18px 16px;background:var(--card);text-align:center; } .page-article .sc-num { font-size:24px;font-weight:800;color:var(--brand);line-height:1.2;font-variant-numeric:tabular-nums; } .page-article .sc-label { font-size:12.5px;color:var(--ink-3);margin-top:6px; } .page-article .stat-card.danger .sc-num { color:var(--risk); } @media (max-width:680px) { .page-article .stat-grid { grid-template-columns:repeat(2,1fr); } } .page-article .timeline { position:relative;padding-left:22px;margin:1.8em 0; } .page-article .timeline::before { content:"";position:absolute;left:5px;top:6px;bottom:6px;width:2px;background:var(--line); } .page-article .tl-item { position:relative;padding-bottom:18px; } .page-article .tl-item:last-child { padding-bottom:0; } .page-article .tl-item::before { content:"";position:absolute;left:-22px;top:5px;width:11px;height:11px;border-radius:50%;background:var(--card);border:2px solid var(--line); } .page-article .tl-item.high::before { border-color:var(--risk);background:var(--risk-bg); } .page-article .tl-item.watch::before { border-color:var(--warn);background:var(--warn-bg); } .page-article .tl-date { font-family:ui-monospace,monospace;font-size:12px;color:var(--ink-4);margin-bottom:2px;letter-spacing:.04em; } .page-article .tl-title { font-size:15px;font-weight:700;color:var(--ink);line-height:1.5;margin-bottom:2px; } .page-article .tl-desc { font-size:14px;color:var(--ink-3);line-height:1.7; } .page-article .evidence-list { list-style:none;margin:1.8em 0; } .page-article .evidence-item { display:grid;grid-template-columns:68px 1fr;gap:14px;padding:12px 0;border-bottom:1px dashed var(--line);align-items:start; } .page-article .evidence-item:last-child { border-bottom:none; } .page-article .ev-type { font-size:11px;font-weight:700;letter-spacing:.04em;padding:3px 6px;border-radius:5px;text-align:center;white-space:nowrap;background:var(--brand-bg);color:var(--brand);line-height:1.4; } .page-article .ev-type.official { background:var(--risk-bg);color:var(--risk); } .page-article .ev-type.judicial { background:var(--warn-bg);color:#9a6700; } .page-article .ev-type.media { background:var(--good-bg);color:var(--good); } .page-article .ev-type.user { background:var(--bg);color:var(--ink-3); } .page-article .ev-body { min-width:0; } .page-article .ev-body h3, .page-article .ev-body h4 { font-size:15px;font-weight:700;color:var(--ink);line-height:1.55;margin:0 0 3px; } .page-article .ev-body p { font-size:14px;color:var(--ink-3);line-height:1.65;margin:0; } @media (prefers-color-scheme: dark) { .page-article .prose code, .page-article .prose pre { background:#11151c;border-color:#272b33; } .page-article .prose pre code { color:#c2c7cf; } .page-article .prose mark { background:#5a4d00;color:#ffe27a; } .page-article .prose kbd { background:#1c2029;border-color:#272b33; } .page-article .prose details { background:#16191f; } .page-article .callout { background:#16191f; } .page-article .callout--info { background:var(--brand-bg); } .page-article .callout--warning { background:var(--warn-bg); } .page-article .callout--danger { background:var(--risk-bg); } .page-article .callout--tip { background:var(--good-bg); } .page-article .rm-bar, .page-article .bar-track { background:#11151c;border-color:#272b33; } .page-article .stat-card, .page-article .infobox { background:#16191f; } .page-article .timeline::before { background:#272b33; } .page-article .evidence-item { border-bottom-color:#272b33; } .page-article .prose img { border-color:#272b33; } }

/* ── 列表 / 资讯页增强层（作用域 .page-list） ── */
.page-list .page-header { position:relative; } .page-list .page-header::before { content:"";position:absolute;left:0;top:18px;bottom:18px;width:3px;
  background:linear-gradient(180deg,var(--brand),var(--brand-2));
  border-radius:3px; } .page-list .ph-title { position:relative;padding-bottom:12px; } .page-list .ph-title::after { content:"";position:absolute;left:0;bottom:0;width:52px;height:3px;border-radius:3px;
  background:linear-gradient(90deg,var(--brand),var(--brand-2)); } @media (min-width:981px) { .page-list .filter-bar { position:sticky;top:12px;z-index:6; } .page-list .filter-bar .filter-tabs { flex:1 1 auto; } } .page-list .article-item { position:relative; } .page-list .article-item::before { content:"";position:absolute;left:-1px;top:-1px;bottom:-1px;width:3px;
  background:linear-gradient(180deg,var(--brand),var(--brand-2));
  border-radius:var(--r) 0 0 var(--r);
  opacity:0;transform:scaleY(.35);transform-origin:top;
  transition:opacity .2s var(--ease),transform .2s var(--ease); } .page-list .article-item:hover::before { opacity:1;transform:scaleY(1); } .page-list .cat-badge { letter-spacing:.02em; } @media (prefers-color-scheme: dark) { .page-list .page-header::before { background:linear-gradient(180deg,var(--brand),var(--brand-2)); } .page-list .ph-title::after { background:linear-gradient(90deg,var(--brand),var(--brand-2)); } .page-list .article-item::before { background:linear-gradient(180deg,var(--brand),var(--brand-2)); } }

/* ── 文章页正文纵向节奏精修（v10 · 仅文章页，避免影响其它 .prose 页面）── */
.page-article .prose > :first-child { margin-top: 0; }
.page-article .prose h2 { margin-top: 2.2em; }
.page-article .prose h3 { margin-top: 1.6em; }
.page-article .prose h2 + p,
.page-article .prose h3 + p,
.page-article .prose h4 + p { margin-top: .8em; }

/* ── 每周情报 订阅框 · 移动端兼容性重做（v10）─────────────────────────────────
   目标：① iOS 聚焦不缩放（输入字号 >=16px） ② 触控区 >=44px ③ 任意宽度零溢出
        ④ 手机（<=760）整块单列、输入与按钮各 100% 宽；>=761 单行紧凑          */
.page-home .widget.subscribe .sb-form{
  display:flex; flex-direction:row; align-items:stretch; gap:8px;
}
.page-home .widget.subscribe .sb-form input{
  flex:1 1 auto; min-width:0; width:100%; height:32px; padding:0 12px;
  font-size:14px; line-height:1.4; color:var(--ink);
  background:var(--bg); border:1px solid var(--line); border-radius:var(--r-sm);
  box-sizing:border-box; -webkit-appearance:none; appearance:none;
  transition:border-color .16s, box-shadow .16s, background .16s;
}
.page-home .widget.subscribe .sb-form input::placeholder{ color:var(--ink-4); }
.page-home .widget.subscribe .sb-form input:focus{
  outline:0; border-color:var(--brand); background:#fff;
  box-shadow:0 0 0 3px rgba(32,50,92,.10);
}
.page-home .widget.subscribe .sb-form button{
  flex:0 0 auto; height:32px; min-height:32px; padding:0 16px; white-space:nowrap;
  font-size:14px; font-weight:700; color:#fff; background:var(--brand);
  border:0; border-radius:var(--r-sm); box-sizing:border-box; cursor:pointer;
  transition:background .16s;
}
.page-home .widget.subscribe .sb-form button:hover{ background:var(--brand-2); }

@media (max-width:760px){
  .page-home .widget.subscribe{ padding:16px 16px 12px; }
  .page-home .widget.subscribe .sb-desc{ font-size:13.5px; line-height:1.7; padding:10px 0; }
  .page-home .widget.subscribe .sb-form{ flex-direction:column; gap:10px; }
  .page-home .widget.subscribe .sb-form input{ height:32px; }
  .page-home .widget.subscribe .sb-form button{ width:100%; height:32px; font-size:14px; }
  .page-home .widget.subscribe .sb-note{ font-size:12px; padding:8px 0 2px; }
}


/* ── 头部 · 平板/手机两行布局（≤820 品牌+入口一行，检索整行） ── */
@media (max-width:820px){
  .masthead .wrap{display:grid;grid-template-columns:auto auto;justify-content:space-between;
    align-items:center;gap:12px 16px;padding-top:16px;padding-bottom:16px;}
  .masthead .brand{grid-column:1;grid-row:1;min-width:0;}
  .masthead .mast-actions{grid-column:2;grid-row:1;justify-self:end;margin-left:0;}
  .masthead .search{grid-column:1 / -1;grid-row:2;max-width:none;width:100%;order:0;flex-basis:auto;}
  .search input{font-size:16px;}
  .search button{height:38px;padding:0 18px;}
}

/* ── 头部 · 移动端收敛（全站统一，替代原先各页零散规则） ────────── */
@media (max-width:420px){
  .masthead .wrap{gap:10px 12px;padding-top:14px;padding-bottom:14px;}
  .brand-logo{height:32px;}
  .mast-actions{gap:6px;}
  .mast-actions a{padding:7px 11px;font-size:12.5px;}
  .masthead .search{height:42px;padding-left:14px;gap:8px;}
  .masthead .search button{height:34px;padding:0 14px;font-size:13px;}
}
@media (max-width:352px){
  .mast-actions a:not(.primary){display:none;}
  .brand-logo{height:30px;}
}


/* ── 筛选工具条 · 移动端（≤760 标签换行不裁切，排序标签不拆字） ── */
@media (max-width:760px){
  .filter-bar{ gap:10px; align-items:flex-start; }
  .filter-tabs{ flex:1 1 100%; min-width:0; flex-wrap:wrap; overflow:visible; }
  .filter-tab{ padding:6px 12px; font-size:13px; }
  .filter-sort{ white-space:nowrap; }
  .filter-sort select{ flex:0 0 auto; width:auto; min-width:112px; max-width:200px; }
}
/* ── SEO 语义化：列表项 h3>a 拉伸链接 + 反馈引述 + FAQ ── */
.proj-article{position:relative;}
.proj-article h3 a{color:inherit;text-decoration:none;}
.proj-article h3 a::after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;inset:0;z-index:1;}
.pa-quote{
  margin:0;
  padding:11px 15px;
  background:var(--bg);
  border-left:3px solid var(--line);
  border-radius:0 var(--r-sm) var(--r-sm) 0;
  font-size:13.5px;
  line-height:1.75;
  color:var(--ink-2);
}
.proj-faq{padding:4px 24px 20px;}
.faq-item{border-bottom:1px solid var(--line-soft);}
.faq-item:last-child{border-bottom:0;}
.faq-item summary{
  cursor:pointer;
  list-style:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:14px 0;
  font-size:15px;
  font-weight:600;
  color:var(--ink);
  transition:color .16s var(--ease);
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:"+";font-size:19px;font-weight:400;color:var(--ink-4);flex:none;line-height:1;}
.faq-item[open] summary::after{content:"\2212";}
.faq-item summary:hover{color:var(--brand);}
.faq-body{padding:0 24px 16px 0;font-size:14px;line-height:1.8;color:var(--ink-2);}
.faq-body p{margin:0 0 8px;}
.faq-body p:last-child{margin:0;}
.faq-body a{color:var(--brand);}
.faq-body a:hover{text-decoration:underline;text-underline-offset:3px;}
@media (max-width:760px){
  .proj-faq{padding:2px 16px 14px;}
  .faq-item summary{font-size:14px;padding:12px 0;}
  .faq-body{padding:0 8px 14px 0;}
}
/* ── 文章页优化：相关卡片拉伸链接 + 文末核实/CTA + 移动端目录 + 操作态 ── */
.rel-card{position:relative;}
.rel-card h3 a{color:inherit;text-decoration:none;}
.rel-card h3 a::after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;inset:0;z-index:1;}
.verify-strip--post{margin:32px 20px 0;}
.vs-note{margin:10px 0 0;font-size:11.5px;line-height:1.75;color:var(--ink-4);}
.vs-note a{color:var(--brand);}
.vs-note a:hover{text-decoration:underline;text-underline-offset:3px;}
.post-cta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:20px 20px 0;}

/* CTA 与文末 footer 之间必须有段间距（否则两个板块视觉粘连） */
.post-cta + .post-footer{padding-top:28px;}
/* footer 首行统一加顶部细线（两页首行均为 .post-tags） */
.post-cta + .post-footer > :first-child{padding-top:18px;border-top:1px solid var(--line-soft);}
.pn-card{
  position:relative;
  display:flex;
  flex-direction:column;
  gap:5px;
  padding:18px 44px 18px 20px;
  background:var(--bg);
  border:1px solid var(--line);
  border-radius:var(--r);
  text-decoration:none;
  transition:border-color .16s var(--ease),transform .16s var(--ease),box-shadow .16s var(--ease);
}
.pn-card:hover{border-color:var(--brand);transform:translateY(-2px);box-shadow:var(--shadow-sm);}
.pn-kicker{font-size:12px;font-weight:600;color:var(--ink-3);letter-spacing:.02em;}
.pn-title{font-size:15px;font-weight:700;color:var(--ink);line-height:1.5;}
.pn-arrow{position:absolute;right:18px;bottom:16px;font-size:15px;color:var(--ink-4);transition:color .16s var(--ease),transform .16s var(--ease);}
.pn-card:hover .pn-arrow{color:var(--brand);transform:translateX(2px);}
.pn-card--primary{background:var(--brand-bg);border-color:transparent;}
.pn-card--primary:hover{border-color:var(--brand);}
.pn-card--primary .pn-kicker{color:var(--brand);}
.action-btn.is-active{color:var(--brand);border-color:var(--brand);background:var(--brand-bg);}
.action-btn--report.is-active{color:var(--risk);border-color:var(--risk);background:var(--risk-bg);}
.toc-mobile{display:none;margin:24px 0 0;padding:14px 18px;background:var(--bg);border:1px solid var(--line);border-radius:var(--r);}
.toc-mobile summary{
  cursor:pointer;
  list-style:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  font-size:14px;
  font-weight:700;
  color:var(--ink);
}
.toc-mobile summary::-webkit-details-marker{display:none;}
.toc-mobile summary::after{content:"+";font-size:18px;font-weight:400;color:var(--ink-4);line-height:1;}
.toc-mobile[open] summary::after{content:"\2212";}
.toc-mobile ol{margin:12px 0 0;padding-left:22px;font-size:13.5px;line-height:1.8;color:var(--ink-2);}
.toc-mobile a{color:var(--ink-2);}
.toc-mobile a:hover{color:var(--brand);}
@media (max-width:760px){
  .toc-mobile{display:block;}
  .post-cta{grid-template-columns:1fr;margin:16px 0 0;}
  .verify-strip--post{margin:24px 0 0;}
  .verify-strip--post .vs-list{grid-template-columns:1fr;}
  .action-btn{min-height:42px;}
  .post-tags a{padding:7px 14px;font-size:13px;}
  .toc-mobile summary{min-height:44px;}
  .cm-more{display:flex;align-items:center;justify-content:center;min-height:44px;}
}

/* ── 暗色：修正硬编码低对比色（核实清单/警示/状态徽标） ── */
@media (prefers-color-scheme: dark){
  .verify-strip{border-color:rgba(90,211,138,.28);}
  .vs-head{color:var(--good);}
  .vs-note{color:var(--ink-3);}
  .pill--watch,.callout--warning .co-body b,.ev-type.judicial{color:var(--warn);}
  .pn-card--primary .pn-kicker{color:var(--brand-2);}
  .toc-mobile{background:#16191f;}
  .pa-quote{background:#16191f;border-left-color:#272b33;}
  .faq-item summary{color:var(--ink);}
}

/* ── 打印：文章页存证输出（隐藏导航/交互，正文全宽，外链显 URL） ── */
@media print{
  body{background:#fff;color:#000;}
  .topbar,.masthead,.mainnav,.sidebar,.back-top,.reading-progress,.skip-link,
  .post-actions,.post-cta,.post-tags,.comments,.cm-form,.cm-sort,
  .subscribe-box,.report-box,.toc-mobile,.footer,.breadcrumb,.search{display:none!important;}
  .layout{display:block;}
  .content{max-width:100%;}
  .post,.risk-notice,.related,.infobox,.callout,.verify-strip,.risk-meter{box-shadow:none;break-inside:avoid;}
  .prose a{color:#000;}
  .prose a[href^="http"]::after{content:" (" attr(href) ")";font-size:11px;color:#555;}
  .post-title{font-size:24px;}
}

/* ── 暗色模式：首页洞察卡 hover 修正（基础段硬编码 #fcfcfa 在暗色下近白断裂） ── */
@media (prefers-color-scheme: dark){
  .page-home .insight-card:hover{background:#1c2029;}

  /* ── 暗色巡检修复（2026-11-05） ── */
  /* 主按钮：白字 × 浅紫蓝底(暗色 --brand #8ba4d6)对比度 ~1.9 → 深蓝底（白字 7.9:1） */
  .mast-actions a.primary{background:#2f4d8f;border-color:#2f4d8f;}
  .mast-actions a.primary:hover{background:#3d61b3;border-color:#3d61b3;}
  .search button{background:#2f4d8f;}
  .search button:hover{background:#3d61b3;}
  .sb-form button{background:#2f4d8f;}
  .sb-form button:hover{background:#3d61b3;}
  .page-home .sb-form button{background:#2f4d8f;}
  .page-home .sb-form button:hover{background:#3d61b3;}
  .page-home .widget.subscribe .sb-form button{background:#2f4d8f;}
  .page-home .widget.subscribe .sb-form button:hover{background:#3d61b3;}
  .page-home .ql-form button{background:#2f4d8f;}
  .page-home .ql-form button:hover{background:#3d61b3;}
  /* 输入框聚焦白底（浅字不可读）→ 卡片底 + 品牌光晕 */
  .search:focus-within{background:var(--card);box-shadow:0 0 0 3px rgba(139,164,214,.14);}
  .sb-form input:focus{background:var(--card);box-shadow:0 0 0 3px rgba(139,164,214,.14);}
  .page-home .widget.subscribe .sb-form input:focus{background:var(--card);box-shadow:0 0 0 3px rgba(139,164,214,.14);}
  .rp-input:focus{background:var(--card);box-shadow:0 0 0 3px rgba(139,164,214,.14);}
  .search-page-form input:focus{background:var(--card);box-shadow:0 0 0 3px rgba(139,164,214,.14);}
  .nf-search input:focus{background:var(--card);box-shadow:0 0 0 3px rgba(139,164,214,.14);}
  .cm-form textarea:focus{background:var(--card);box-shadow:0 0 0 3px rgba(139,164,214,.14);}
  /* 首页分类徽章硬编码浅底 → token（反诈防骗/首码头条） */
  .page-home .cat-risk{background:var(--risk-bg);color:var(--risk);box-shadow:inset 0 0 0 1px #4a2220;}
  .page-home .cat-news{background:var(--good-bg);color:var(--good);box-shadow:inset 0 0 0 1px #1a3d2a;}
  .page-home .cat-analysis{box-shadow:inset 0 0 0 1px #2a3550;}
  /* 档案页搜索占位硬编码灰 → token */
  .pa-search input::placeholder{color:var(--ink-4);}

  /* 主按钮家族（background:var(--brand)+白字）全站统一深蓝底：
     浅紫蓝底白字对比度 ~1.9 → 深蓝 #2f4d8f 7.9:1，hover #3d61b3 5.9:1 */
  .skip-link{background:#2f4d8f;}
  .ph-cta{background:#2f4d8f;}
  .rp-step.is-active .rp-step-num{background:#2f4d8f;}
  .rs-btn--primary{background:#2f4d8f;}
  .rp-type input:checked ~ .rp-type-inner .rp-type-icon{background:#2f4d8f;}
  .rp-submit{background:#2f4d8f;}
  .page-num.is-active{background:#2f4d8f;}
  .search-page-form button{background:#2f4d8f;}
  .sr-empty-btn--primary{background:#2f4d8f;}
  .nf-search button{background:#2f4d8f;}
  .nf-link--primary{background:#2f4d8f;}
  .cm-form-foot button{background:#2f4d8f;}
  .cm-reply-form-foot button[type="submit"]{background:#2f4d8f;}
  .page-home .sp-cover-tag{background:rgba(15,17,21,.72);}
  .rp-upload-btn:hover{background:#3d61b3;}
  .news-empty-btn:hover{background:#3d61b3;}
  a.news-tag-inline:hover{background:#3d61b3;}
  .db-empty-btn:hover{background:#3d61b3;}
  .sr-empty-suggest a:hover{background:#3d61b3;}
  .tag-pill--type:hover{background:#3d61b3;}
  .tag-empty-btn:hover{background:#3d61b3;}
}

/* ── 首页新增板块：栏目列表（最新首码 / 推广实战） ─────────────── */
.page-home .nc-list{
  display:flex;flex-direction:column;
  padding:4px 24px 8px;margin:0;list-style:none;
}
.page-home .nc-list li{
  display:flex;align-items:center;gap:14px;
  padding:12px 0;border-bottom:1px dashed var(--line-soft);
}
.page-home .nc-list li:last-child{border-bottom:0;}
.page-home .nc-title{
  flex:1 1 auto;min-width:0;
  font-size:14.5px;font-weight:500;color:var(--ink-2);text-decoration:none;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  transition:color .15s var(--v10-ease);
}
.page-home .nc-title:hover{color:var(--brand);}
.page-home .nc-time{
  flex:0 0 auto;font-size:12.5px;color:var(--ink-4);
  font-variant-numeric:tabular-nums;
}
@media (max-width:720px){
  .page-home .nc-list{padding:4px 16px 8px;}
  .page-home .nc-list li{gap:10px;}
  .page-home .nc-title{font-size:14px;}
}

/* ═══ 阶段4：详情页补充（评论空态 / 关闭态 / 验证码 / 状态提示） ═══ */
.cm-list-wrap{margin-top:2px;}
.cm-empty{padding:26px 0 10px;font-size:14px;line-height:1.8;color:var(--ink-3);}
.comments-closed{
  margin:14px 0 20px;padding:12px 16px;
  font-size:13.5px;line-height:1.7;color:var(--ink-2);
  background:var(--bg);border:1px solid var(--line);border-radius:var(--r);
}
.comments-closed a{color:var(--brand);font-weight:600;}
.cm-form-foot .cm-code{
  margin-left:auto;width:92px;padding:8px 10px;
  border:1px solid var(--line);border-radius:var(--r);
  background:var(--bg);font-family:inherit;font-size:13.5px;color:var(--ink);outline:none;
  transition:border-color .16s,box-shadow .16s;
}
.cm-form-foot .cm-code:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-bg);}
.cm-form-foot .cm-code-img{
  width:92px;height:34px;border:1px solid var(--line);
  border-radius:var(--r);cursor:pointer;background:#fff;
}
.cm-note{margin:8px 0 0;font-size:12.5px;line-height:1.7;color:var(--ink-3);}
.cm-note.ok{color:var(--good);}
.cm-note.err{color:var(--risk);}
@media (max-width:640px){
  .cm-form-foot .cm-code{margin-left:0;width:76px;}
  .cm-form-foot .cm-code-img{width:76px;}
}

/* 详情页操作按钮：窄屏改 2×2 等宽，避免「分享」「举报」各自独占一行 */
@media (max-width:640px){
  .post-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));}
  .action-btn{justify-content:center;}
  .action-btn--report{margin-left:0;}
}

/* ═══════════════════════════════════════════════════════════
   举报 / 线索页（/report）
   补两处 style.css 未覆盖的：验证码行、提交区错误提示
   ═══════════════════════════════════════════════════════════ */
.rp-input-group--code{gap:10px;align-items:center;}
.rp-input-group--code .rp-input{flex:1 1 auto;padding-right:14px;}
/* 验证码原始尺寸 90×30（apps/vdimgck.php），按 3:1 等比放大到 108×36。
   不要用 object-fit:cover —— 会裁掉字符，出现「只看到半个字」的情况 */
.rp-code-img{
  flex:0 0 108px;width:108px;height:36px;display:block;
  border:1px solid var(--line);border-radius:var(--r-sm);
  background:#fff;cursor:pointer;transition:border-color .16s;
}
.rp-code-img:hover{border-color:var(--brand);}
.rp-submit-area .rp-error{margin-top:10px;}
@media (max-width:640px){
  .rp-code-img{flex:0 0 90px;width:90px;height:30px;}
}


/* ═══ 首页整改 2026-11-05：焦点轮播 ═══
   帧由 JsSpotSlides(3) 输出，只有 1 帧时 .sp-ctrl 保持 hidden（app.js 按帧数放开）。 */
.page-home .sp-slider{position:relative;min-width:0;}
.page-home .sp-slides{position:relative;}
.page-home .sp-slide{display:none;}
.page-home .sp-slide.is-active{display:block;animation:spFade .45s var(--v10-ease);}
@keyframes spFade{from{opacity:.55}to{opacity:1}}
.page-home .sp-ctrl{
  display:flex;align-items:center;justify-content:center;gap:12px;
  padding:12px 0 0;
}
.page-home .sp-ctrl[hidden]{display:none;}
.page-home .sp-arrow{
  display:inline-flex;align-items:center;justify-content:center;
  width:30px;height:30px;padding:0;flex:0 0 30px;
  border:1px solid var(--line);border-radius:50%;
  background:var(--card);color:var(--ink-3);cursor:pointer;
  transition:color .16s var(--ease),border-color .16s var(--ease),background .16s var(--ease);
}
.page-home .sp-arrow:hover{color:var(--brand);border-color:var(--brand);background:var(--brand-bg);}
.page-home .sp-arrow:focus-visible,.page-home .sp-dot:focus-visible{outline:2px solid var(--brand);outline-offset:2px;}
.page-home .sp-arrow svg{width:14px;height:14px;}
.page-home .sp-dots{display:flex;align-items:center;gap:7px;min-width:0;}
.page-home .sp-dot{
  width:7px;height:7px;padding:0;border:0;border-radius:50%;
  background:var(--ink-4);opacity:.4;cursor:pointer;
  transition:all .2s var(--ease);
}
.page-home .sp-dot:hover{opacity:.75;}
.page-home .sp-dot.is-active{width:22px;border-radius:4px;background:var(--brand);opacity:1;}
@media (prefers-reduced-motion: reduce){
  .page-home .sp-slide.is-active{animation:none;}
}

/* ═══ 首页整改 2026-11-05：最新动态底部留白 ═══
   .sp-side 被网格拉伸到与 .sp-lead 等高，原来 5 条 li 挤在上方、底部空一大块。
   这里把富余高度均分给每一行并垂直居中，空白被分散到条目之间。 */
.page-home .sp-headlines li{flex:1 1 auto;display:flex;align-items:center;min-height:0;}
.page-home .sp-headlines a{width:100%;}


/* ═══ 首页整改 2026-11-06 第二轮：无缩略图的头条行 ═══
   RenderPostItem() 判定 litpic 为空 / 脏路径时输出 .ni-row--noimg 且不渲染 .ni-thumb。
   这里用 3 类选择器覆盖 1120/760/400 三个断点里的两列 grid，让正文占满整行。 */
.page-home .ni-list .ni-row--noimg{grid-template-columns:minmax(0,1fr);gap:0;}
.page-home .ni-list .ni-row--noimg .ni-body{padding-right:0;}


/* ═══════════════════════════════════════════════════════════
   频道封面页（.page-channel）—— 由 _proto/jrsm/index_article.html
   的内联 <style id="channel-css"> 去重、去冗余后融入（2026-11-06）。
   删减：与 base 相同的 ch-stats 三列声明、暗色里重复的两条声明、
   无效果的单列 grid、写死的 5/3 列分类栅格（改 auto-fit 适配真实 2 个子栏目）；
   .ai-thumb img 提升为基础组件规则（见 .ai-thumb 段）。
   作用域统一 .page-channel，不影响首页 / 列表 / 详情页。
   ═══════════════════════════════════════════════════════════ */
/* ── 1. 频道头 ─────────────────────────────────── */
.page-channel .ch-hero{
  position:relative;
  overflow:hidden;
  display:grid;
  grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);
  gap:36px;
  align-items:center;
  padding:40px 44px;
  border-radius:var(--r-lg);
  background:linear-gradient(135deg,#141d31 0%,#1c2b4a 48%,#24406f 100%);
  color:#fff;
  box-shadow:var(--shadow-md);
  margin-bottom:20px;
}
.page-channel .ch-hero::before{
  content:"";
  position:absolute;
  right:-140px;top:-170px;
  width:480px;height:480px;border-radius:50%;
  background:radial-gradient(circle,rgba(139,164,214,.30),transparent 65%);
  pointer-events:none;
}
.page-channel .ch-hero::after{
  content:"";
  position:absolute;inset:0;
  pointer-events:none;
  background-image:
    linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);
  background-size:44px 44px;
  -webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.55),transparent 72%);
  mask-image:linear-gradient(180deg,rgba(0,0,0,.55),transparent 72%);
}
.page-channel .ch-hero-main,
.page-channel .ch-hero-side{position:relative;z-index:1;min-width:0;}

.page-channel .ch-kicker{
  display:inline-flex;align-items:center;gap:8px;
  font-size:11.5px;font-weight:700;letter-spacing:.14em;
  color:rgba(255,255,255,.66);
  padding:4px 12px;
  border:1px solid rgba(255,255,255,.20);
  border-radius:100px;
  margin-bottom:18px;
}
.page-channel .ch-kicker-dot{
  width:6px;height:6px;border-radius:50%;
  background:#8ba4d6;
  box-shadow:0 0 0 3px rgba(139,164,214,.22);
}
.page-channel .ch-title{
  font-family:var(--serif);
  font-size:40px;line-height:1.25;font-weight:600;
  letter-spacing:.02em;color:#fff;
  margin-bottom:12px;
}
.page-channel .ch-desc{
  font-size:14.5px;line-height:1.85;
  color:rgba(255,255,255,.74);
  max-width:560px;
  margin-bottom:24px;
}
.page-channel .ch-hero-actions{display:flex;flex-wrap:wrap;gap:10px;}
.page-channel .ch-btn{
  display:inline-flex;align-items:center;gap:8px;
  min-height:42px;padding:0 20px;
  border-radius:100px;
  font-size:14px;font-weight:600;
  transition:all .16s var(--ease);
}
/* 白底按钮的文字/悬浮底色必须固定：--brand-2 在暗色主题下是浅蓝，
   直接用变量会变成「白底浅蓝字」不可读；--brand-bg 在暗色下是深色，hover 同样会翻车 */
.page-channel .ch-btn--light{
  background:#fff;color:#16243f;
}
.page-channel .ch-btn--light:hover{background:#eef2f9;color:#16243f;transform:translateY(-1px);}
.page-channel .ch-btn--ghost{
  color:#fff;
  border:1px solid rgba(255,255,255,.28);
  background:rgba(255,255,255,.04);
}
.page-channel .ch-btn--ghost:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.45);}

.page-channel .ch-stats{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1px;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.12);
  border-radius:var(--r);
  overflow:hidden;
}
.page-channel .ch-stat{
  background:rgba(11,15,24,.42);
  padding:16px 14px;
  display:flex;flex-direction:column;gap:4px;
}
.page-channel .ch-stat b{
  font-size:24px;line-height:1;
  font-weight:700;
  font-variant-numeric:tabular-nums;
  letter-spacing:-.02em;
  color:#fff;
}
.page-channel .ch-stat span{
  font-size:12px;
  color:rgba(255,255,255,.55);
}
.page-channel .ch-side-note{
  margin-top:14px;
  font-size:12px;line-height:1.7;
  color:rgba(255,255,255,.46);
}

/* ── 2. 子分类导航（吸顶胶囊） ─────────────────── */
.page-channel .ch-subnav{
  position:sticky;
  top:56px;
  z-index:30;
  display:flex;
  gap:2px;
  padding:5px;
  margin-bottom:24px;
  background:rgba(255,255,255,.92);
  -webkit-backdrop-filter:blur(12px) saturate(1.6);
  backdrop-filter:blur(12px) saturate(1.6);
  border:1px solid var(--line);
  border-radius:100px;
  box-shadow:var(--shadow-sm);
  overflow-x:auto;
  scrollbar-width:none;
}
.page-channel .ch-subnav::-webkit-scrollbar{display:none;}
.page-channel .ch-subnav a{
  flex:0 0 auto;
  display:inline-flex;align-items:center;gap:6px;
  padding:8px 16px;
  border-radius:100px;
  font-size:13.5px;font-weight:500;
  color:var(--ink-2);
  white-space:nowrap;
  transition:all .16s var(--ease);
}
.page-channel .ch-subnav a:hover{color:var(--brand);background:var(--brand-bg);}
.page-channel .ch-subnav a.is-active{
  background:var(--brand);
  color:#fff;
  font-weight:600;
}
.page-channel .ch-subnav .ch-sub-count{
  font-size:11px;
  font-weight:600;
  font-variant-numeric:tabular-nums;
  opacity:.7;
}

/* ── 3. 焦点区 + 频道热榜 ──────────────────────── */
.page-channel .ch-spotlight{
  display:grid;
  grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);
  gap:24px;
  margin-bottom:24px;
  align-items:stretch;
}
.page-channel .ch-feature{
  position:relative;
  display:block;
  overflow:hidden;
  min-height:380px;
  border-radius:var(--r-lg);
  background:linear-gradient(135deg,#1c2b4a,#24406f);
  box-shadow:var(--shadow-sm);
}
.page-channel .ch-feature img{
  position:absolute;inset:0;
  width:100%;height:100%;
  object-fit:cover;object-position:center 42%;
  transition:transform .7s cubic-bezier(.16,1,.3,1);
}
.page-channel .ch-feature:hover img{transform:scale(1.035);}
.page-channel .ch-feature::after{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(180deg,
    rgba(12,19,33,.05) 0%,
    rgba(12,19,33,.22) 32%,
    rgba(12,19,33,.78) 66%,
    rgba(12,19,33,.94) 100%);
  pointer-events:none;
}
.page-channel .ch-feature-body{
  position:absolute;left:0;right:0;bottom:0;
  z-index:1;
  padding:30px 32px;
  color:#fff;
}
.page-channel .ch-feature-body .cat-badge{margin-bottom:12px;}
.page-channel .ch-feature-body h2{
  font-family:var(--serif);
  font-size:26px;line-height:1.5;font-weight:600;
  letter-spacing:.01em;
  color:#fff;
  margin-bottom:10px;
  text-wrap:balance;
  text-shadow:0 1px 12px rgba(0,0,0,.22);
}
.page-channel .ch-feature-body p{
  font-size:13.5px;line-height:1.75;
  color:rgba(255,255,255,.78);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  margin-bottom:14px;
}
.page-channel .ch-feature-meta{
  display:flex;flex-wrap:wrap;gap:8px 18px;
  font-size:12px;
  color:rgba(255,255,255,.58);
  font-variant-numeric:tabular-nums;
}
.page-channel .ch-feature-meta span + span::before{
  content:"·";margin-right:18px;color:rgba(255,255,255,.28);
}

.page-channel .ch-rank{
  display:flex;flex-direction:column;
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  box-shadow:var(--shadow-sm);
  padding:22px 24px 16px;
  min-width:0;
}
.page-channel .ch-rank-head{
  display:flex;align-items:baseline;gap:10px;
  padding-bottom:12px;
  border-bottom:1px solid var(--line-soft);
}
.page-channel .ch-rank-head h2{
  font-size:16px;font-weight:700;color:var(--ink);
  display:flex;align-items:center;gap:8px;
}
.page-channel .ch-rank-head h2::before{
  content:"";width:4px;height:16px;border-radius:2px;background:var(--brand);
}
.page-channel .ch-rank-head span{font-size:12px;color:var(--ink-3);}
.page-channel .ch-rank ol{
  flex:1;
  display:flex;flex-direction:column;
  justify-content:space-evenly;
}
.page-channel .ch-rank li{
  display:flex;align-items:baseline;gap:10px;
  padding:11px 0;
  border-bottom:1px solid var(--line-soft);
}
.page-channel .ch-rank li:last-child{border-bottom:0;}
.page-channel .ch-rank i{
  flex:0 0 20px;
  text-align:center;
  font-style:normal;
  font-size:13px;font-weight:700;
  color:var(--ink-4);
  font-variant-numeric:tabular-nums;
}
.page-channel .ch-rank li:nth-child(1) i{color:var(--risk);}
.page-channel .ch-rank li:nth-child(2) i{color:var(--risk);opacity:.78;}
.page-channel .ch-rank li:nth-child(3) i{color:var(--warn);}
.page-channel .ch-rank a{
  flex:1;min-width:0;
  font-size:13.5px;line-height:1.6;font-weight:500;
  color:var(--ink-2);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  transition:color .16s var(--ease);
}
.page-channel .ch-rank li:hover a{color:var(--brand);}
.page-channel .ch-rank b{
  flex:0 0 auto;
  font-size:11.5px;font-weight:600;
  color:var(--ink-3);
  font-variant-numeric:tabular-nums;
}
.page-channel .ch-rank-more{
  margin-top:10px;
  padding-top:12px;
  border-top:1px solid var(--line-soft);
  font-size:12.5px;font-weight:600;
  color:var(--brand);
  display:inline-flex;align-items:center;gap:4px;
}
.page-channel .ch-rank-more:hover{text-decoration:underline;text-underline-offset:3px;}

/* ── 4. 分类速览 ───────────────────────────────── */
.page-channel .ch-cats{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:12px;
  margin-bottom:24px;
}
.page-channel .ch-cat{
  display:flex;flex-direction:column;gap:6px;
  padding:16px 18px;
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--r);
  box-shadow:var(--shadow-sm);
  transition:border-color .16s var(--ease),transform .16s var(--ease),box-shadow .16s var(--ease);
}
.page-channel .ch-cat:hover{
  border-color:var(--brand);
  transform:translateY(-2px);
  box-shadow:var(--shadow-md);
}
.page-channel .ch-cat-top{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
}
.page-channel .ch-cat-name{
  font-size:14px;font-weight:700;color:var(--ink);
}
.page-channel .ch-cat-arrow{
  width:14px;height:14px;color:var(--ink-4);
  transition:transform .16s var(--ease),color .16s var(--ease);
}
.page-channel .ch-cat:hover .ch-cat-arrow{color:var(--brand);transform:translateX(2px);}
.page-channel .ch-cat-count{
  font-size:12px;color:var(--ink-3);
  font-variant-numeric:tabular-nums;
}
.page-channel .ch-cat-bar{
  height:4px;border-radius:2px;background:var(--line-soft);overflow:hidden;margin-top:2px;
}
.page-channel .ch-cat-bar span{display:block;height:100%;border-radius:2px;}

/* ── 5. 编辑精选 ───────────────────────────────── */
.page-channel .ch-picks{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
  margin-bottom:24px;
}
.page-channel .ch-pick{
  position:relative;
  display:flex;flex-direction:column;gap:10px;
  padding:20px;
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--r);
  box-shadow:var(--shadow-sm);
  transition:border-color .16s var(--ease),transform .16s var(--ease),box-shadow .16s var(--ease);
}
.page-channel .ch-pick:hover{
  border-color:#d8d8d2;
  transform:translateY(-2px);
  box-shadow:var(--shadow-md);
}
.page-channel .ch-pick .cat-badge{align-self:flex-start;}
.page-channel .ch-pick h3{
  font-size:15.5px;line-height:1.6;font-weight:600;color:var(--ink);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  transition:color .16s var(--ease);
}
.page-channel .ch-pick:hover h3{color:var(--brand);}
.page-channel .ch-pick p{
  font-size:13px;line-height:1.7;color:var(--ink-3);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.page-channel .ch-pick-meta{
  margin-top:auto;
  padding-top:10px;
  border-top:1px solid var(--line-soft);
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  font-size:12px;color:var(--ink-3);
  font-variant-numeric:tabular-nums;
}
.page-channel .ch-pick-meta b{font-weight:600;color:var(--ink-2);}
/* 拉伸链接：整卡可点 */
.page-channel .ch-pick h3 a{color:inherit;text-decoration:none;}
.page-channel .ch-pick h3 a::after{content:"";position:absolute;inset:0;z-index:1;}

/* ── 6. 分类行式列表（面板内） ─────────────────── */
.page-channel .ch-rows{
  display:flex;flex-direction:column;
  padding:4px 24px 10px;
}
.page-channel .ch-row{
  display:flex;align-items:baseline;gap:14px;
  padding:13px 0;
  border-bottom:1px solid var(--line-soft);
}
.page-channel .ch-row:last-child{border-bottom:0;}
.page-channel .ch-row time{
  flex:0 0 auto;
  font-size:12.5px;color:var(--ink-3);
  font-variant-numeric:tabular-nums;
}
.page-channel .ch-row h3{
  flex:1;min-width:0;
  font-size:15px;line-height:1.6;font-weight:500;
  color:var(--ink-2);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  transition:color .16s var(--ease);
}
.page-channel .ch-row:hover h3{color:var(--brand);}
.page-channel .ch-row-meta{
  flex:0 0 auto;
  font-size:12px;color:var(--ink-3);
  font-variant-numeric:tabular-nums;
}
.page-channel .ch-row-meta i{font-style:normal;}
.page-channel .ch-row-meta i + i::before{content:"·";margin:0 8px;color:var(--ink-4);}

/* ── 7. 侧栏补充 ───────────────────────────────── */
.page-channel .ch-about-box{
  background:var(--card);
  border:1px solid var(--line);
  border-left:3px solid var(--brand);
  border-radius:var(--r);
  box-shadow:var(--shadow-sm);
  padding:18px;
}
.page-channel .ch-about-box h3{
  font-size:15px;font-weight:700;color:var(--ink);
  margin-bottom:8px;
}
.page-channel .ch-about-box p{
  font-size:12.5px;line-height:1.75;color:var(--ink-3);
}
.page-channel .ch-about-box p + p{margin-top:8px;}
.page-channel .ch-about-box b{color:var(--ink-2);font-weight:600;}

/* ── 8. 响应式 ─────────────────────────────────── */
@media (max-width:1120px){
  .page-channel .ch-hero{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:28px;padding:34px 32px;}
  .page-channel .ch-title{font-size:34px;}
  .page-channel .ch-spotlight{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);}
  .page-channel .ch-feature{min-height:340px;}
  .page-channel .ch-feature-body h2{font-size:23px;}
}
@media (max-width:920px){
  .page-channel .ch-hero{grid-template-columns:minmax(0,1fr);gap:24px;}
  .page-channel .ch-title{font-size:30px;}
  .page-channel .ch-spotlight{grid-template-columns:minmax(0,1fr);}
  .page-channel .ch-feature{min-height:320px;}
  .page-channel .ch-picks{grid-template-columns:repeat(2,minmax(0,1fr));}
  .page-channel .ch-picks .ch-pick:last-child{grid-column:1 / -1;}
}
@media (max-width:760px){
  .page-channel .ch-hero{padding:26px 22px;border-radius:var(--r);}
  .page-channel .ch-title{font-size:26px;}
  .page-channel .ch-desc{font-size:13.5px;margin-bottom:18px;}
  .page-channel .ch-stat{padding:12px 10px;}
  .page-channel .ch-stat b{font-size:20px;}
  .page-channel .ch-stat span{font-size:11px;}
  .page-channel .ch-side-note{display:none;}
  .page-channel .ch-subnav{position:static;margin-bottom:18px;border-radius:var(--r);}
  .page-channel .ch-spotlight{gap:16px;margin-bottom:18px;}
  .page-channel .ch-feature{min-height:300px;}
  .page-channel .ch-feature-body{padding:20px;}
  .page-channel .ch-feature-body h2{font-size:20px;}
  .page-channel .ch-feature-body p{display:none;}
  .page-channel .ch-cats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
  .page-channel .ch-picks{grid-template-columns:minmax(0,1fr);gap:12px;}
  .page-channel .ch-picks .ch-pick:last-child{grid-column:auto;}
  .page-channel .ch-rows{padding:2px 16px 8px;}
  .page-channel .ch-row{
    flex-wrap:wrap;
    gap:4px 10px;
    padding:12px 0;
  }
  .page-channel .ch-row h3{
    flex:1 1 100%;
    white-space:normal;
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
    font-size:14px;
  }
  .page-channel .ch-row time{font-size:12px;}
  .page-channel .ch-row-meta{margin-left:auto;font-size:11.5px;}
}
@media (max-width:480px){
  .page-channel .ch-hero{padding:22px 16px;}
  .page-channel .ch-kicker{font-size:10.5px;padding:3px 10px;margin-bottom:14px;}
  .page-channel .ch-title{font-size:23px;}
  .page-channel .ch-btn{width:100%;justify-content:center;}
  .page-channel .ch-feature{min-height:260px;}
  .page-channel .ch-feature-body{padding:16px;}
  .page-channel .ch-feature-body h2{font-size:18px;}
  .page-channel .ch-feature-meta{font-size:11.5px;gap:6px 12px;}
  .page-channel .ch-feature-meta span + span::before{margin-right:12px;}
  .page-channel .ch-rank{padding:18px 16px 12px;}
  .page-channel .ch-cats{grid-template-columns:minmax(0,1fr);}
  .page-channel .ch-cat{flex-direction:row;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;}
  .page-channel .ch-cat-top{flex:1;min-width:0;}
  .page-channel .ch-cat-bar{display:none;}
  .page-channel .ch-cat-count{flex:0 0 auto;}
}

/* ── 9. 暗色模式补丁 ──────────────────────────── */
@media (prefers-color-scheme: dark){
  .page-channel .ch-hero{
    background:linear-gradient(135deg,#101722 0%,#182338 48%,#1f3357 100%);
    border:1px solid #272b33;
  }
  .page-channel .ch-subnav{background:rgba(22,25,31,.92);}
  .page-channel .ch-subnav a.is-active{color:#0f1115;}
  .page-channel .ch-feature{background:linear-gradient(135deg,#1c2029,#252a33);}
  .page-channel .ch-pick:hover{border-color:#333844;}
}

/* ── 10. 减少动态效果 ──────────────────────────── */
@media (prefers-reduced-motion: reduce){
  .page-channel .ch-feature img,
  .page-channel .ch-cat,
  .page-channel .ch-pick,
  .page-channel .ch-cat-arrow,
  .page-channel .ch-btn{transition:none;}
  .page-channel .ch-feature:hover img{transform:none;}
  .page-channel .ch-cat:hover,
  .page-channel .ch-pick:hover,
  .page-channel .ch-btn--light:hover{transform:none;}
}

/* ── 11. 频道模板补充（真实数据下的版式兜底） ──── */
.page-channel .ch-feed-list{padding:20px 24px;margin-bottom:0;}
.page-channel .feed-more-wrap{flex-direction:row;flex-wrap:wrap;gap:12px;}
.page-channel .ch-about-box a{color:var(--brand);}
.page-channel .ch-about-box a:hover{text-decoration:underline;text-underline-offset:3px;}
@media (max-width:760px){
  .page-channel .ch-feed-list{padding:16px 16px 0;}
}


/* ═══ 单项目档案页 tag_list.htm 补全（2026-11-06） ═══
   .proj-cover 已随板块修正移除：原型档案信息板块无图。 */
.proj-article[hidden]{display:none;}
.pht-empty{font-size:12.5px;color:var(--ink-4);}
.pac-note{margin:8px 0 0;font-size:12px;line-height:1.6;color:var(--brand);min-height:1em;}
