/* ===== V5 模板基础 ===== */
*{box-sizing:border-box;margin:0;padding:0;}
/* 仅屏幕阅读器/SEO可见(视觉隐藏),用于 H1 等语义必需但不展示的元素 */
.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;}
:root{
  color-scheme:light;
  --brand:#4f7cff;--accent:#7c5cff;
  --ink:#1e2436;--sub:#6b7488;--faint:#9aa3b5;
  --bg:#f6f8fc;--card:#fff;--line:#eef1f7;
  --tint:#eef2ff;--card-hover:#fbfcff;--tint-soft:#f8faff;
  --radius:14px;
  --theme-color:#4f7cff; /* 文章正文标题颜色,可后台配置覆盖 */
}
/* 暗色模式:跟随系统,或手动 [data-theme="dark"] 覆盖(切换按钮写 localStorage) */
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    color-scheme:dark;
    --brand:#5b8cff;--accent:#9d7cff;
    --ink:#e8ecf4;--sub:#9aa3b5;--faint:#6b7488;
    --bg:#131720;--card:#1c2230;--line:#2a3142;
    --tint:rgba(91,140,255,.16);--card-hover:color-mix(in srgb,var(--brand) 12%,var(--card));--tint-soft:rgba(91,140,255,.10);
  }
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --brand:#5b8cff;--accent:#9d7cff;
  --ink:#e8ecf4;--sub:#9aa3b5;--faint:#6b7488;
  --bg:#131720;--card:#1c2230;--line:#2a3142;
  --tint:rgba(91,140,255,.16);--card-hover:color-mix(in srgb,var(--brand) 12%,var(--card));--tint-soft:rgba(91,140,255,.10);
}
:root[data-theme="light"]{color-scheme:light;}
body{font-family:system-ui,"PingFang SC","Microsoft YaHei",sans-serif;background:var(--bg);color:var(--ink);line-height:1.6;}
a{text-decoration:none;color:inherit;}

/* 选区高亮:品牌色半透明,暗色模式下文字仍可读(避免白底白字一片白) */
::selection{background:color-mix(in srgb,var(--brand) 30%,transparent);color:var(--ink);}
::-moz-selection{background:color-mix(in srgb,var(--brand) 30%,transparent);color:var(--ink);}
/* 移动端点击高亮:透明,防止卡片/链接点击时白色闪烁 */
a,button,.art,.rel-card,.rcell,.tag-c,.pg-btn,.ac-item{-webkit-tap-highlight-color:transparent;}

/* 顶栏 */
.hd{position:sticky;top:0;z-index:30;background:var(--card);border-bottom:1px solid var(--line);}
.hd-in{max-width:1180px;margin:0 auto;padding:12px 20px;display:flex;align-items:center;gap:20px;}
.logo{display:flex;align-items:center;gap:10px;font-size:20px;font-weight:800;white-space:nowrap;}
.logo .lm{width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,var(--brand),var(--accent));display:flex;align-items:center;justify-content:center;color:#fff;font-weight:900;font-size:16px;}
.logo .lt{background:linear-gradient(90deg,var(--brand),var(--accent));-webkit-background-clip:text;background-clip:text;color:transparent;}
.logo img{height:30px;width:auto;max-width:160px;object-fit:contain;}
.nav{display:flex;gap:2px;}
.nav a{padding:8px 14px;border-radius:9px;font-size:15px;color:var(--sub);transition:.15s;font-weight:500;}
.nav a.on{color:var(--ink);font-weight:700;}
.nav a.on::after{content:'';display:block;width:18px;height:3px;border-radius:2px;margin:3px auto 0;background:linear-gradient(90deg,var(--brand),var(--accent));}
.nav a:not(.on):hover{background:color-mix(in srgb,var(--brand) 12%,transparent);color:var(--brand);}
.srch{margin-left:auto;display:flex;align-items:center;gap:8px;background:var(--bg);border-radius:20px;padding:8px 16px;width:220px;max-width:30%;min-width:140px;}
.srch-ico{color:var(--faint);display:inline-flex;}
.srch-ico .ic{width:15px;height:15px;}
.srch input{border:none;background:none;outline:none;flex:1;font-size:14px;color:var(--ink);}
.hamb{display:none;font-size:24px;cursor:pointer;color:var(--sub);background:none;border:none;}
.hamb-srch{display:none;font-size:20px;cursor:pointer;color:var(--sub);background:none;border:none;padding:4px 6px;}
.theme-toggle{margin-left:4px;width:34px;height:34px;border-radius:8px;border:none;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--sub);transition:color .15s;}
.theme-toggle:hover{color:var(--brand);}

.wrap{max-width:1180px;margin:22px auto;padding:0 20px;display:grid;grid-template-columns:1fr 290px;gap:18px 24px;}
/* 有顶部资源卡:top 跨全宽第一行,main/side 第二行(侧边栏与最新发布标题对齐) */
.wrap:has(.wrap-top){grid-template-rows:auto 1fr;}
.wrap:has(.wrap-top) .wrap-top{grid-column:1 / -1;grid-row:1;}
.wrap:has(.wrap-top) .main{grid-row:2;}
.wrap:has(.wrap-top) .side{grid-row:2;}
/* 无顶部资源卡(其他页):main/side 同行 */
.wrap:not(:has(.wrap-top)) .main{grid-row:1;}
.wrap:not(:has(.wrap-top)) .side{grid-row:1;}
/* 防溢出(全局,PC+移动端):grid 的 1fr 列默认 min-width:auto 会被宽内容撑爆,
   必须 min-width:0 允许收缩;正文宽元素约束在容器内,避免 .main 超出屏幕 */
.main{min-width:0;}
.wrap{min-width:0;}
.post-nav,.related,.rel-grid,.rel-card,.article-detail{min-width:0;max-width:100%;}
.article-detail .content pre,.article-detail .content table{max-width:100%;overflow-x:auto;}
.article-detail .content img,.article-detail .content video,.article-detail .content iframe{max-width:100%;}
.article-detail .content img{height:auto;}
.article-detail .content a,.article-detail .content p{overflow-wrap:anywhere;word-break:break-word;}

/* 区块标题 */
.sh{display:flex;align-items:center;gap:10px;margin-bottom:14px;}
.sh .bar{width:4px;height:18px;border-radius:3px;background:var(--brand);}
.sh h2,.sh h1{font-size:18px;font-weight:800;}
.sh .more{margin-left:auto;font-size:13px;color:var(--faint);}
.sh .more:hover{color:var(--brand);}

/* 首页"最新发布"定稿:PC负缩进竖条外凸+右侧搜索按钮 */
.sh-feed{position:relative;margin-top:2px;}
.sh-feed .bar{position:absolute;left:-10px;width:5px;height:22px;border-radius:3px;background:linear-gradient(180deg,var(--brand),var(--accent));box-shadow:0 0 10px color-mix(in srgb,var(--brand) 45%,transparent);}
.sh-feed h2{padding-left:5px;}
.sh-feed .sh-search{margin-left:auto;display:flex;align-items:center;gap:5px;font-size:13px;font-weight:600;color:var(--faint);background:var(--card);border:1px solid var(--line);border-radius:8px;padding:6px 12px;cursor:pointer;transition:.15s;}
.sh-feed .sh-search:hover{color:var(--brand);border-color:color-mix(in srgb,var(--brand) 40%,var(--line));background:var(--tint);}
.sh-feed .sh-search svg{transition:transform .15s;}
.sh-feed .sh-search:hover svg{transform:scale(1.1);}
/* 分类归档页描述(标题下方) */
.cat-desc{margin:-6px 0 16px 14px;font-size:13px;line-height:1.7;color:var(--faint);}

/* ============ 资源卡：固定容器 + 左侧取色语言 ============ */
.rbox-wrap{margin-bottom:0;}
.rbox-grid{display:grid;gap:12px;width:100%;height:96px;}

/* ---- 卡片基础 ---- */
.rcell{position:relative;display:flex;align-items:center;gap:12px;
  background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px 16px;
  text-decoration:none;color:inherit;min-width:0;overflow:hidden;
  box-shadow:0 2px 8px rgba(20,30,60,.05);
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
  opacity:0;transform:translateY(8px);animation:rcellIn .4s ease forwards;
  animation-delay:calc(var(--ri,0)*50ms);}
@keyframes rcellIn{to{opacity:1;transform:translateY(0);}}

.rcell:hover{transform:translateY(-3px);
  box-shadow:0 12px 26px color-mix(in srgb,var(--c,#4f7cff) 22%,transparent);
  border-color:color-mix(in srgb,var(--c,#4f7cff) 45%,var(--line));}

/* ---- 图标块 ---- */
.rcell .ri{width:44px;height:44px;border-radius:13px;display:grid;place-items:center;
  font-size:20px;font-weight:800;color:#fff;flex-shrink:0;overflow:hidden;
  background:linear-gradient(140deg,var(--c),color-mix(in srgb,var(--c) 72%,#000 12%));
  box-shadow:0 6px 14px color-mix(in srgb,var(--c) 40%,transparent);}
.rcell .rtxt{min-width:0;display:flex;flex-direction:column;line-height:1.3;flex:1;}
.rcell .rt{font-size:14.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.rcell .rh{font-size:11px;color:var(--faint);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

/* 图片图标：铺满不染色 */
.rcell--image .ri{background:transparent;padding:0;box-shadow:0 4px 12px rgba(20,30,60,.15);}
.rcell--image .ri img{width:100%;height:100%;object-fit:cover;}
/* SVG 图标：与普通图片一致,100% 铺满图标框,不缩放留白 */
.rcell--image .ri img[src$=".svg"],.rcell--image .ri img[src$=".SVG"]{object-fit:cover;padding:0;}
/* emoji：浅渐变底，保留 emoji 自带色 */
.rcell--emoji .ri{background:linear-gradient(140deg,var(--tint),color-mix(in srgb,var(--accent) 20%,var(--card)));color:var(--brand);box-shadow:none;}

/* ============ 单卡 g1：淡取色渐变 banner + 徽标按钮 ============ */
.g1{grid-template-columns:1fr;}
.g1 .rcell{justify-content:flex-start;padding:16px 20px;gap:15px;
  background:linear-gradient(120deg,color-mix(in srgb,var(--c) 16%,var(--card)),var(--card) 65%);
  border-color:color-mix(in srgb,var(--c) 22%,var(--line));}
.g1 .rcell .ri{width:50px;height:50px;font-size:23px;border-radius:14px;}
.g1 .rcell .rt{font-size:16.5px;}
.g1 .rcell .rh{font-size:12px;}
/* 右侧取色徽标按钮（替代原箭头） */
.g1 .rcell .rbadge{margin-left:auto;font-size:12px;font-weight:700;color:#fff;background:var(--c);
  padding:7px 15px;border-radius:20px;flex-shrink:0;
  box-shadow:0 4px 10px color-mix(in srgb,var(--c) 40%,transparent);transition:.2s;}
.g1 .rcell:hover .rbadge{transform:translateX(2px);
  box-shadow:0 6px 14px color-mix(in srgb,var(--c) 50%,transparent);}

/* ============ 多卡横排：左侧取色竖条 ============ */
.g2,.g3,.g4{align-items:stretch;}
.g2 .rcell,.g3 .rcell,.g4 .rcell{padding-left:20px;}
.g2 .rcell::before,.g3 .rcell::before,.g4 .rcell::before{
  content:"";position:absolute;left:7px;top:12px;bottom:12px;width:4px;border-radius:4px;background:var(--c);}

/* 多卡右上角跳转箭头：平时取色淡显提示可点击，hover 高亮右移 */
.rcell .rgo{position:absolute;right:9px;top:50%;transform:translateY(-50%);
  font-size:22px;font-weight:700;line-height:1;color:var(--c);opacity:.55;
  transition:opacity .2s,transform .2s;pointer-events:none;}
.rcell:hover .rgo{opacity:1;transform:translateY(-50%) translateX(3px);}
/* g6 卡片太小，圆点已提示，隐藏箭头避免拥挤 */
.g6 .rcell .rgo{display:none;}
/* is4(4卡) 缩小箭头并给文字留右边距 */
.rbox-grid.is4 .rcell .rgo{font-size:18px;right:6px;}
.rbox-grid.is4 .rt,.rbox-grid.is4 .rh{padding-right:14px;}

/* ============ 五~六卡 g6：左上角取色圆点 + 图标（极简） ============ */
.g6 .rcell{padding:13px 12px;gap:10px;}
.g6 .rcell::before{content:"";position:absolute;left:11px;top:11px;width:8px;height:8px;border-radius:50%;
  background:var(--c);box-shadow:0 0 0 3px color-mix(in srgb,var(--c) 18%,transparent);}
.g6 .rcell .ri{width:34px;height:34px;font-size:15px;border-radius:10px;margin-left:6px;}
.g6 .rcell .rt{font-size:12.5px;}
.g6 .rcell .rh{font-size:10px;margin-top:2px;}

/* ============ 网格分列 ============ */
.g2{grid-template-columns:repeat(2,1fr);}
.g3{grid-template-columns:repeat(3,1fr);}
.g4{grid-template-columns:repeat(4,1fr);}
.g6{grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,1fr);}

/* ============ 分档缩放（容器高度不变，防溢出） ============ */
.rbox-grid.is4 .rcell{padding:10px 8px 10px 18px;gap:8px;}
.rbox-grid.is4 .ri{width:34px;height:34px;font-size:16px;border-radius:10px;}
.rbox-grid.is4 .rt{font-size:12.5px;}
.rbox-grid.is4 .rh{font-size:10px;}

.rbox-grid.is6{height:132px;}      /* g6 横排两行，略高 */

/* ============ 移动端 ============ */
@media(max-width:680px){
  .rbox-grid{height:auto;gap:10px;}
  .g1 .rcell{padding:14px 16px;gap:12px;}
  .g1 .rcell .ri{width:44px;height:44px;font-size:20px;}
  .g1 .rcell .rt{font-size:15px;}
  .rbox-grid.is6{height:auto;grid-template-columns:repeat(3,1fr);}
  .rbox-grid.is6 .rcell{height:60px;}
  /* 多列资源卡(g3)移动端:不规则 mosaic 布局,不滚动,点哪跳哪 */
  /* 第1张大卡占左侧高,第2/3张小卡纵向堆右侧 */
  .g3{
    display:grid;grid-template-columns:1fr 1.4fr;grid-template-rows:repeat(2,56px);
    gap:10px;height:auto;
  }
  .g3 .rcell{padding:10px 12px 10px 18px;gap:8px;border-radius:14px;}
  .g3 .rcell:nth-child(1){grid-column:1;grid-row:1 / span 2;flex-direction:column;
    align-items:flex-start;justify-content:center;gap:6px;padding:14px 14px 14px 20px;}
  .g3 .rcell:nth-child(2){grid-column:2;grid-row:1;}
  .g3 .rcell:nth-child(3){grid-column:2;grid-row:2;}
  .g3 .rcell .ri{width:36px;height:36px;font-size:16px;border-radius:10px;flex-shrink:0;}
  .g3 .rcell:nth-child(1) .ri{width:42px;height:42px;font-size:19px;border-radius:12px;}
  .g3 .rcell .rt{font-size:13.5px;-webkit-line-clamp:1;}
  .g3 .rcell .rh{font-size:11px;margin-top:1px;}
  .g3 .rcell:nth-child(1) .rt{font-size:15px;-webkit-line-clamp:2;white-space:normal;}
  /* g2/g4 移动端:两列等分(不滚动) */
  .g2,.g4,.rbox-grid.is4{display:grid;grid-template-columns:1fr 1fr;gap:10px;height:auto;}
  .g2 .rcell,.g4 .rcell,.rbox-grid.is4 .rcell{padding:11px 12px 11px 18px;gap:8px;height:64px;}
  .g2 .rcell .ri,.g4 .rcell .ri,.rbox-grid.is4 .ri{width:36px;height:36px;font-size:16px;border-radius:10px;}
  .g2 .rcell .rt,.g4 .rcell .rt,.rbox-grid.is4 .rt{font-size:13.5px;}
  .g2 .rcell .rh,.g4 .rcell .rh,.rbox-grid.is4 .rh{font-size:11px;margin-top:1px;}
}


/* 文章卡 */
.art{position:relative;display:flex;gap:14px;background:var(--card);border-radius:var(--radius);padding:14px;margin-bottom:12px;transition:.15s;}
.art:hover{background:var(--card-hover);}
.art .th{width:150px;height:96px;border-radius:11px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:30px;color:#fff;overflow:hidden;}
.art .th img{width:100%;height:100%;object-fit:cover;}
.art .ab{flex:1;min-width:0;display:flex;flex-direction:column;}
.art .at{font-size:16px;font-weight:700;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.art .at:hover{color:var(--brand);}
.art .ad{color:var(--sub);font-size:13px;margin-top:6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.art .af{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;margin-top:auto;padding-top:10px;font-size:12.5px;color:var(--faint);}
.art .af span{white-space:nowrap;}
.art .cat{margin-left:auto;background:var(--tint);color:var(--brand);padding:3px 11px;border-radius:7px;font-weight:600;font-size:12px;}
/* new 标记:卡片右上角角标 */
.bn{position:absolute;top:8px;right:8px;z-index:2;background:#ff5b7f;color:#fff;font-size:10px;font-weight:700;padding:2px 7px;border-radius:8px;line-height:1.3;box-shadow:0 2px 6px rgba(255,91,127,.4);}
.bh{background:var(--brand);color:#fff;font-size:11px;padding:1px 7px;border-radius:5px;margin-right:5px;vertical-align:middle;}

.loadmore{text-align:center;color:var(--faint);font-size:13px;padding:16px;}

/* 侧栏 */
/* 侧栏:统一卡片视觉(边框+轻阴影),弱化各小工具因内容多少不同导致的高度参差 */
.side>div{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;margin-bottom:14px;box-shadow:0 2px 8px rgba(20,30,60,.04);transition:box-shadow .2s,transform .2s;}
.side>div:hover{box-shadow:0 6px 18px rgba(20,30,60,.08);}
/* 侧边栏异步加载骨架 */
.side-skel{min-height:120px;display:flex;align-items:center;justify-content:center;color:var(--faint);font-size:13px;}
.side h3{font-size:15px;font-weight:800;margin-bottom:14px;display:flex;align-items:center;gap:8px;}
/* 站点统计 */
.stat{display:flex;gap:12px;}
.stat .box{flex:1;text-align:center;background:var(--bg);border-radius:11px;padding:14px 8px;}
.stat .n{font-size:20px;font-weight:800;color:var(--brand);}
.stat .l{font-size:11.5px;color:var(--faint);margin-top:2px;}
.rk{list-style:none;}
.rk li{display:flex;align-items:center;gap:11px;padding:9px 0;border-bottom:1px solid var(--line);font-size:14px;}
.rk li:last-child{border:none;}
.rk .no{width:22px;height:22px;border-radius:7px;background:var(--bg);color:var(--faint);font-size:12px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.rk li:nth-child(1) .no{background:#ff5b7f;color:#fff;}.rk li:nth-child(2) .no{background:var(--brand);color:#fff;}.rk li:nth-child(3) .no{background:#ffb443;color:#fff;}
.rk a{color:var(--sub);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.rk a:hover{color:var(--brand);}
.rand a{display:block;color:var(--sub);font-size:14px;padding:9px 0;border-bottom:1px solid var(--line);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.rand a:last-child{border:none;}.rand a:hover{color:var(--brand);}

/* 最新文章小工具 */
.latest{display:flex;flex-direction:column;gap:2px;}
.latest .lt-item{display:flex;align-items:center;gap:9px;padding:9px 0;border-bottom:1px solid var(--line);font-size:13.5px;color:var(--sub);}
.latest .lt-item:last-child{border:none;}
.latest .lt-dot{width:7px;height:7px;border-radius:50%;background:var(--brand);flex-shrink:0;opacity:.35;}
.latest .lt-t{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.latest .lt-d{font-size:11px;color:var(--faint);flex-shrink:0;}
.latest .lt-item:hover .lt-t{color:var(--brand);}.latest .lt-item:hover .lt-dot{opacity:1;}

/* 标签云小工具(按使用数渐变字号,字号由内联 style 控制) */
.tag-cloud{display:flex;flex-wrap:wrap;gap:7px;align-items:center;}
.tag-c{color:var(--sub);padding:4px 11px;border-radius:14px;background:var(--bg);transition:.15s;line-height:1.2;}
.tag-c:hover{color:#fff;background:var(--brand);transform:translateY(-1px);}

/* 分类目录小工具 */
.cat-list{display:flex;flex-direction:column;gap:2px;}
.cat-i{display:flex;align-items:center;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--line);font-size:13.5px;color:var(--sub);}
.cat-i:last-child{border:none;}
.cat-n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.cat-c{font-size:11px;color:var(--faint);background:var(--bg);padding:1px 8px;border-radius:8px;flex-shrink:0;margin-left:8px;}
.cat-i:hover .cat-n{color:var(--brand);}.cat-i:hover .cat-c{background:var(--tint);color:var(--brand);}

/* 侧边栏跟随页面移动(sticky) */
.side-sticky{align-self:start;position:sticky;top:72px;max-height:calc(100vh - 84px);overflow-y:auto;scrollbar-width:thin;}
.side-sticky::-webkit-scrollbar{width:5px;}
.side-sticky::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px;}
@media(max-width:680px){.side-sticky{position:static;max-height:none;overflow:visible;}}

/* 首页"最新发布"移动端:居中、无竖条、左右渐隐线+入场动画 */
@media(max-width:680px){
  .sh-feed{justify-content:center;margin:12px 0 10px;}
  .sh-feed .bar{display:none;}
  .sh-feed h2{padding-left:0;font-size:16px;position:relative;animation:shFeedTitleIn .6s ease both;}
  .sh-feed h2::before,.sh-feed h2::after{content:"";position:absolute;top:50%;width:56px;height:2px;border-radius:2px;animation:shFeedLineIn .6s ease both;}
  .sh-feed h2::before{right:calc(100% + 12px);animation-delay:.1s;background:linear-gradient(90deg,transparent,var(--brand) 60%,var(--brand));}
  .sh-feed h2::after{left:calc(100% + 12px);animation-delay:.1s;background:linear-gradient(90deg,var(--brand),var(--brand) 40%,transparent);}
  .sh-feed .sh-search{display:none;}
  @keyframes shFeedTitleIn{0%{opacity:0;transform:translateY(8px);}100%{opacity:1;transform:translateY(0);}}
  @keyframes shFeedLineIn{0%{opacity:0;width:0;}100%{opacity:1;width:56px;}}
}


/* 友情链接(底部) */
.flinks{max-width:1180px;margin:0 auto 16px;padding:0 20px;}
.flinks .box{padding:10px 0;}
.flinks h3{font-size:12px;font-weight:700;margin-bottom:8px;color:var(--faint);display:flex;align-items:center;gap:5px;}
.flinks .fl{display:flex;flex-wrap:wrap;gap:6px;}
.flinks .fl a{font-size:12px;color:var(--faint);padding:3px 10px;border-radius:6px;transition:all .15s;}
.flinks .fl a:hover{color:var(--brand);background:var(--tint);}

/* ===== 底部 footer(波浪动画 + 多栏 + 渐入) ===== */
.ft-wave{position:relative;height:40px;line-height:0;overflow:hidden;background:transparent;margin-bottom:-1px;}
.ft-wave svg{width:200%;height:100%;display:block;animation:ft-wave-run 8s linear infinite;}
.ft-wave-1{fill:rgba(79,124,255,.45);}
.ft-wave-2{fill:rgba(21,163,127,.40);animation:ft-wave-run 6s linear infinite reverse;}
@keyframes ft-wave-run{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
/* 波浪上下起伏 */
.ft-wave path{animation:ft-bob 3s ease-in-out infinite;}
.ft-wave .ft-wave-2{animation-name:ft-wave-run,ft-bob2;animation-duration:6s,3.5s;animation-iteration-count:infinite,infinite;animation-direction:reverse,normal;animation-timing-function:linear,ease-in-out;}
@keyframes ft-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes ft-bob2{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}
.ft{position:relative;background:linear-gradient(180deg,#1a2138 0%,#141a2b 100%);color:#8b95ac;padding:28px 20px 22px;overflow:hidden;}
.ft-in{max-width:1180px;margin:0 auto 18px;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;
    animation:ft-rise .6s ease both;}
@keyframes ft-rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.ft-brand{display:flex;align-items:center;gap:14px;min-width:0;}
.ft-logo{display:flex;flex-shrink:0;}
.ft-logo img{height:40px;width:auto;object-fit:contain;animation:ft-pulse 3s ease-in-out infinite;}
.ft-logo-emoji{font-size:30px;display:inline-block;animation:ft-pulse 3s ease-in-out infinite;}
@keyframes ft-pulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.08);opacity:.85}}
.ft-brand-txt{min-width:0;}
/* PC 端:有 logo 时品牌区只显示 logo(标题/描述由 SEO 与后台统一管理,不在 footer 重复) */
.ft-name{display:none;}
.ft-desc{margin:0;max-width:360px;font-size:13px;line-height:1.5;color:#8b95ac;}
.ft-nav{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;}
.ft-nav a{position:relative;color:#8b95ac;font-size:13px;padding:4px 0;transition:color .2s;}
.ft-nav a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1.5px;background:var(--brand);transition:width .25s;}
.ft-nav a:hover{color:#fff;}
.ft-nav a:hover::after{width:100%;}
.ft-bot{max-width:1180px;margin:0 auto;padding-top:16px;border-top:1px solid rgba(255,255,255,.06);
    display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;font-size:12px;color:#6b7591;}
.ft-bot a{color:#8b95ac;}
.ft-bot a:hover{color:#fff;}
.ft a{color:#b4bdd0;transition:color .2s;}
.ft a:hover{color:#fff;}

.tabbar{display:none;position:fixed;left:0;right:0;bottom:0;height:56px;
  background:rgba(255,255,255,.55);
  -webkit-backdrop-filter:saturate(180%) blur(24px);
  backdrop-filter:saturate(180%) blur(24px);
  box-shadow:0 -1px 0 rgba(255,255,255,.6) inset,0 -10px 30px -10px rgba(20,30,60,.18),0 -1px 8px rgba(0,0,0,.04);
  border-top:1px solid rgba(255,255,255,.5);
  z-index:999;align-items:center;justify-content:space-around;}
/* Safari 不支持 backdrop-filter 时降级为高不透明背景 */
@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
  .tabbar{background:rgba(245,247,252,.96);}
}
.tabbar a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:#8b95ac;font-size:11px;transition:color .15s;}
.tabbar a.on{color:#4f7cff;font-weight:600;}
.tabbar a.on .ti{transform:translateY(-1px);}
.tabbar .ti{font-size:20px;transition:transform .15s;}
/* 深色模式:tabbar 毛玻璃转深色半透明,匹配深色背景 */
:root[data-theme="dark"] .tabbar{
  background:rgba(28,34,48,.5);
  -webkit-backdrop-filter:saturate(140%) blur(24px);
  backdrop-filter:saturate(140%) blur(24px);
  border-top-color:rgba(255,255,255,.08);
  box-shadow:0 -1px 0 rgba(255,255,255,.06) inset,0 -10px 30px -10px rgba(0,0,0,.5);
}
:root[data-theme="dark"] .tabbar a{color:#7d8699;}
:root[data-theme="dark"] .tabbar a.on{color:#5b8cff;}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .tabbar{
    background:rgba(28,34,48,.5);
    -webkit-backdrop-filter:saturate(140%) blur(24px);
    backdrop-filter:saturate(140%) blur(24px);
    border-top-color:rgba(255,255,255,.08);
    box-shadow:0 -1px 0 rgba(255,255,255,.06) inset,0 -10px 30px -10px rgba(0,0,0,.5);
  }
  :root:not([data-theme="light"]) .tabbar a{color:#7d8699;}
  :root:not([data-theme="light"]) .tabbar a.on{color:#5b8cff;}
}

/* ===== 文章详情页 ===== */
.article-detail{background:var(--card);border-radius:var(--radius);padding:32px;margin-bottom:24px;}
.article-detail h1{font-size:26px;margin-bottom:0;padding-bottom:16px;border-bottom:1px solid var(--line);}
/* 管理员工具条(仅登录管理员可见,前台文章页顶部) */
.admin-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px;padding:10px 14px;background:linear-gradient(90deg,#eef4ff,#f0f7ee);border:1px solid #d8e4ff;border-radius:10px;font-size:13px;}
.admin-bar .ab-edit{display:inline-flex;align-items:center;gap:4px;background:#4f7cff;color:#fff;text-decoration:none;padding:6px 14px;border-radius:8px;font-weight:600;white-space:nowrap;transition:background .15s;}
.admin-bar .ab-edit:hover{background:#3d68e8;}
.admin-bar .ab-stats{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.admin-bar .ab-stat{display:inline-flex;align-items:center;gap:3px;color:#5a6478;background:#fff;padding:4px 10px;border-radius:7px;border:1px solid #e6ecf5;white-space:nowrap;}
.admin-bar .ab-stat.ab-rec{color:#d6336c;background:#fff0f4;border-color:#ffd0dd;font-weight:600;}
.admin-bar .ab-id{margin-left:auto;color:#9aa3b5;font-size:12px;font-family:ui-monospace,monospace;}
:root[data-theme="dark"] .admin-bar{background:linear-gradient(90deg,rgba(91,140,255,.12),rgba(21,163,127,.10));border-color:rgba(91,140,255,.25);}
:root[data-theme="dark"] .admin-bar .ab-stat{background:rgba(255,255,255,.04);color:#9aa3b5;border-color:rgba(255,255,255,.08);}
:root[data-theme="dark"] .admin-bar .ab-stat.ab-rec{background:rgba(214,51,108,.16);color:#ff8fb1;border-color:rgba(214,51,108,.3);}
:root[data-theme="dark"] .admin-bar .ab-id{color:#6b7488;}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .admin-bar{background:linear-gradient(90deg,rgba(91,140,255,.12),rgba(21,163,127,.10));border-color:rgba(91,140,255,.25);}
  :root:not([data-theme="light"]) .admin-bar .ab-stat{background:rgba(255,255,255,.04);color:#9aa3b5;border-color:rgba(255,255,255,.08);}
  :root:not([data-theme="light"]) .admin-bar .ab-stat.ab-rec{background:rgba(214,51,108,.16);color:#ff8fb1;border-color:rgba(214,51,108,.3);}
  :root:not([data-theme="light"]) .admin-bar .ab-id{color:#6b7488;}
}
@media(max-width:680px){
  .admin-bar{font-size:12px;padding:8px 10px;gap:6px;}
  .admin-bar .ab-edit{padding:5px 11px;}
  .admin-bar .ab-id{margin-left:0;width:100%;}
}
.article-detail .content{font-size:16px;line-height:1.9;word-break:break-word;margin-top:16px;}
.article-detail .meta{display:none;}
.article-detail .meta>span{display:flex;align-items:center;gap:4px;}
.article-detail .cat-tag{background:var(--tint);color:var(--brand);padding:3px 11px;border-radius:7px;font-weight:600;font-size:12px;}
.article-detail .tags:not(.tags-bottom){display:none;}
.article-detail .tags a{display:inline-block;background:var(--bg);color:var(--sub);font-size:12px;padding:4px 12px;border-radius:8px;}
.article-detail .tags a:hover{color:var(--brand);background:var(--tint);}
.article-detail .content img{max-width:100%;height:auto;border-radius:8px;}
.article-detail .content p{margin-bottom:14px;}
/* 正文标题 h1-h6:用主题色,层级递减;H1 文章主标题已单独有分隔线样式,这里覆盖 content 内的 h1 */
.article-detail .content h1,.article-detail .content h2,.article-detail .content h3,
.article-detail .content h4,.article-detail .content h5,.article-detail .content h6{
  color:var(--theme-color);font-weight:700;line-height:1.35;margin:22px 0 12px;
}
.article-detail .content h1{font-size:1.5em;padding-bottom:8px;border-bottom:1px solid var(--line);}
.article-detail .content h2{font-size:1.32em;padding-left:10px;border-left:4px solid var(--theme-color);}
.article-detail .content h3{font-size:1.18em;}
.article-detail .content h4{font-size:1.06em;}
.article-detail .content h5,.article-detail .content h6{font-size:1em;opacity:.9;}
.article-detail .content h1:first-child,.article-detail .content h2:first-child,
.article-detail .content h3:first-child{margin-top:0;}
.download-btn{display:inline-block;padding:10px 24px;border-radius:8px;color:#fff;font-weight:600;font-size:14px;text-decoration:none;}
.copyright{margin-top:24px;padding:14px 18px;background:var(--bg);border-left:4px solid var(--theme-color,var(--brand));color:var(--sub);font-size:13px;border-radius:0 8px 8px 0;line-height:1.7;}

/* 分类导航 - 面包屑 */
.cat-nav{margin-bottom:20px;}
.cat-nav a{color:var(--sub);font-size:14px;}
.cat-nav a:hover{color:var(--brand);}
.cat-nav span{color:var(--faint);margin:0 8px;}

/* 分页 */
.pagination{display:flex;gap:6px;align-items:center;justify-content:center;margin-top:24px;flex-wrap:wrap;}
.pg-btn{display:inline-block;padding:8px 16px;border:1px solid var(--line);border-radius:8px;color:var(--brand);font-size:14px;background:var(--card);}
.pg-btn:hover{background:var(--tint);border-color:var(--brand);}
.pg-btn.pg-active{background:var(--brand);color:#fff;border-color:var(--brand);}

/* 无限滚动:PC 端显示分页栏,隐藏加载器;移动端反之 */
.feed-loader{display:none;}
@media(max-width:680px){
  .pg-desktop{display:none !important;}
  .feed-loader{display:block;}
}
.feed-spin{display:inline-block;}
.feed-spin::before{content:'';display:inline-block;width:14px;height:14px;border:2px solid var(--line);border-top-color:var(--brand);border-radius:50%;animation:feedspin .7s linear infinite;vertical-align:-2px;margin-right:6px;}
.feed-done{color:var(--faint,#999);font-size:13px;}
@keyframes feedspin{to{transform:rotate(360deg);}}

/* ===== 响应式 ===== */
@media(max-width:980px){
  .wrap{grid-template-columns:1fr;gap:15px;overflow-x:hidden;}
  .wrap-top{min-width:0;}
  .rbox-wrap{min-width:0;}
  .side{display:grid;grid-template-columns:1fr 1fr;gap:0 16px;}
  .side>div{margin-bottom:0;}
}
@media(max-width:680px){
  .nav,.srch{display:none;}
  .nav.open{display:flex;flex-direction:column;position:absolute;top:56px;right:20px;background:var(--card);padding:12px;border-radius:11px;box-shadow:0 4px 16px rgba(0,0,0,.12);z-index:50;}
  .nav.open a{padding:10px 16px;border-radius:8px;}
  .hamb-srch{display:flex;align-items:center;justify-content:center;height:34px;width:34px;font-size:18px;color:var(--sub);padding:0;margin-left:auto;background:none;border:none;border-radius:0;}
  .hamb{display:flex;align-items:center;justify-content:center;height:34px;width:34px;font-size:22px;color:var(--sub);padding:0;margin-left:-16px;background:none;border:none;border-radius:0;}
  /* 主题按钮:移动端去掉框,纯图标,与搜索/菜单同风格,紧凑间距(负 margin 抵消 hd-in gap) */
  .theme-toggle{margin-left:-16px;display:flex;width:34px;height:34px;background:none;border:none;border-radius:0;padding:0;font-size:16px;}
  /* logo 移动端自适应:防溢出顶栏 */
  .logo{font-size:18px;gap:7px;min-width:0;}
  .logo img{height:26px;max-width:130px;}
  .logo .lm{width:30px;height:30px;font-size:14px;}
  .logo .lt{max-width:38vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .side{display:none;}
  .flinks{display:none;}
  .coll{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px;-webkit-overflow-scrolling:touch;
        /* 右侧渐变遮罩:提示可横向滑动 */
        -webkit-mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 24px),transparent 100%);
        mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 24px),transparent 100);}
  .cbox{flex-shrink:0;}
  .art{padding:10px;gap:11px;align-items:stretch;}
  .art .th{width:96px;height:72px;font-size:22px;border-radius:10px;}
  .art .ab{justify-content:space-between;}
  .art .at{font-size:14px;line-height:1.35;-webkit-line-clamp:2;}
  .art .ad{display:none;}
  .art .af{padding-top:0;margin-top:0;gap:8px;font-size:11.5px;}
  .art .cat{padding:2px 9px;font-size:11px;}
  /* 移动端 new 标记:右上角红点(不显示文字) */
  .bn{width:8px;height:8px;padding:0;font-size:0;border-radius:50%;top:7px;right:7px;}
  .tabbar{display:flex;}
  .ft{padding:0 18px 16px;}
  /* 移动端:footer 只保留波浪 + 版权行,隐藏品牌区/导航 */
  .ft-wave{height:28px;}
  .ft-in{display:none;}
  .ft-bot{border-top:none;padding-top:12px;}
  .article-detail{padding:20px;border-radius:11px;}
  .article-detail h1{font-size:20px;}
  .article-detail .content{font-size:15px;}
}

/* ============================================================
   软件站专属增强 (V5+)
   ============================================================ */

/* 平台徽章 (Win/Mac/Android/iOS/Linux) */
.plat-badges{display:inline-flex;gap:4px;align-items:center;flex-wrap:wrap;}
.plat{display:inline-flex;align-items:center;gap:3px;font-size:11px;font-weight:600;color:#fff;padding:2px 7px;border-radius:5px;line-height:1.4;}
.plat-win{background:#0078d4;}
.plat-mac{background:#555;}
.plat-android{background:#34a853;}
.plat-ios{background:#5ac8fa;color:#003f5c;}
.plat-linux{background:#e95420;}
.plat-multi{background:linear-gradient(90deg,#0078d4,#34a853);}

/* 版本号徽章 */
.ver-badge{display:inline-flex;align-items:center;gap:3px;background:#fff;border:1px solid var(--line);color:var(--brand);font-size:11px;font-weight:600;padding:2px 7px;border-radius:5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;}
.ver-badge .dot{width:6px;height:6px;border-radius:50%;background:var(--brand);}

/* 文件大小 */
.meta-pill{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;color:var(--faint);background:var(--bg);padding:3px 9px;border-radius:8px;}
.meta-pill .ico{font-size:12px;}

/* SVG 图标基础样式(ic() 输出):继承父元素文字色,行内垂直居中,不被 flex 压缩 */
.ic{width:16px;height:16px;flex:none;vertical-align:-3px;}
.af .ic,.meta>span .ic,.bc-date .ic,.ac-title .ic{width:14px;height:14px;}
.dl-count .ic{width:13px;height:13px;vertical-align:-2px;}
.th-dl .ic{width:11px;height:11px;vertical-align:-1px;}
.sug-emoji .ic{width:32px;height:32px;}
.empty-ico .ic{width:48px;height:48px;}
/* 缩略图缺省占位:大号居中图标 */
.th-ph{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:rgba(255,255,255,.85);}
.th-ph-ic{width:40px;height:40px;flex:none;opacity:.85;}

/* 下载量高亮 */
.dl-count{display:inline-flex;align-items:center;gap:4px;color:#ff5b7f;font-weight:600;font-size:12.5px;}
.dl-count .ico{font-size:13px;}

/* 评分星级 */
.rating{display:inline-flex;align-items:center;gap:3px;}
.rating .stars{color:#ffb443;font-size:13px;letter-spacing:1px;}
.rating .score{font-weight:700;color:var(--ink);font-size:13px;}
.rating .rcount{color:var(--faint);font-size:11.5px;}

/* 文章卡:平台徽章行 + 下载量 */
.art .pl{display:flex;align-items:center;gap:6px;margin-top:6px;flex-wrap:wrap;}
.art .dl-count{font-size:12px;}

/* 详情页:面包屑(左) + 文章日期(右对齐) */
.breadcrumb{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13px;color:var(--faint);margin-bottom:14px;flex-wrap:wrap;}
.breadcrumb .bc-crumb{display:flex;align-items:center;gap:6px;flex-wrap:nowrap;min-width:0;}
.breadcrumb .bc-crumb>a,.breadcrumb .sep{flex:none;}
.breadcrumb .bc-date{flex-shrink:0;font-size:12px;color:var(--faint);background:var(--bg);padding:2px 8px;border-radius:6px;white-space:nowrap;}
.breadcrumb a{color:var(--sub);}
.breadcrumb a:hover{color:var(--brand);}
.breadcrumb .sep{color:var(--faint);opacity:.6;}
.breadcrumb .cur{color:var(--sub);font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

/* 详情页:更新日志 */
.changelog{margin:20px 0;padding:16px 20px;background:var(--tint-soft);border:1px solid var(--line);border-left:4px solid var(--brand);border-radius:0 var(--radius) var(--radius) 0;}
.changelog h3{font-size:15px;font-weight:800;margin-bottom:10px;display:flex;align-items:center;gap:6px;}
.changelog ul{list-style:none;font-size:13.5px;color:var(--sub);line-height:1.9;}
.changelog ul li{display:flex;gap:8px;align-items:flex-start;}
.changelog ul li::before{content:'✓';color:#34a853;font-weight:800;flex-shrink:0;}

/* 详情页:相关推荐 */
.related{margin-top:24px;}
/* 标签底部副本:文章结尾展示(全端);用 article-detail 限定提高优先级,避免被 .tags 隐藏规则覆盖 */
.article-detail .tags-bottom{display:flex !important;flex-wrap:wrap;gap:8px;margin-top:18px;}
.article-detail .tags-bottom a{display:inline-block;background:var(--bg);color:var(--sub);font-size:12.5px;padding:5px 13px;border-radius:8px;border:1px solid var(--line);transition:.16s;}
.article-detail .tags-bottom a:hover{color:var(--brand);background:var(--tint);border-color:color-mix(in srgb,var(--brand) 40%,var(--line));transform:translateY(-1px);}
.article-detail .tags-bottom .tags-date{display:none;} /* 桌面端隐藏;移动端移入此行 */
.related h3{font-size:16px;font-weight:800;margin:0 0 14px;display:flex;align-items:center;gap:8px;color:var(--theme-color,var(--brand));}
.related h3 .bar{width:4px;height:16px;border-radius:3px;background:var(--theme-color,var(--brand));}
.rel-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;}
/* 相关推荐异步加载骨架屏 */
.rel-loading{min-height:120px;display:flex;align-items:center;justify-content:center;}
.rel-skel{color:var(--faint);font-size:13px;}
#relatedBox .related{margin-top:24px;}
.rel-card{display:flex;flex-direction:column;background:var(--card);border-radius:11px;overflow:hidden;transition:.15s;border:1px solid var(--line);}
.rel-card:hover{box-shadow:0 4px 16px rgba(79,124,255,.12);transform:translateY(-2px);}
.rel-card .rt{width:100%;height:100px;background:linear-gradient(135deg,var(--brand),var(--accent));display:flex;align-items:center;justify-content:center;font-size:28px;color:#fff;overflow:hidden;}
.rel-card .rt img{width:100%;height:100%;object-fit:cover;}
.rel-card .rb{padding:10px 12px;}
.rel-card .rtt{font-size:13.5px;font-weight:700;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:var(--ink);}
.rel-card .rtt:hover{color:var(--brand);}
.rel-card .rm{font-size:11.5px;color:var(--faint);margin-top:5px;}

/* 详情页:上下篇导航 */
.post-nav{display:flex;justify-content:space-between;gap:12px;margin-top:24px;}
.post-nav a{flex:1;display:flex;flex-direction:column;gap:4px;background:var(--card);border:1px solid var(--line);border-radius:11px;padding:14px 16px;transition:.15s;min-width:0;}
.post-nav a:hover{border-color:var(--brand);box-shadow:0 2px 10px rgba(79,124,255,.1);}
.post-nav a.next{text-align:right;}
.post-nav .pn-lbl{font-size:11.5px;color:var(--faint);}
.post-nav .pn-ttl{font-size:14px;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.post-nav .pn-ttl:hover{color:var(--brand);}

/* 详情页:下载区(网盘 logo + 取色;1链接大卡片/多链接网格/短码卡片) */
.dl-section{margin:22px 0;}
.dl-section .dl-h{font-size:16px;font-weight:800;margin:0 0 14px;display:flex;align-items:center;gap:8px;color:var(--theme-color,var(--brand));}
.dl-section .dl-h .bar{width:4px;height:17px;border-radius:3px;background:var(--theme-color,var(--brand));}
.dl-section .dl-h-sub{font-size:12px;font-weight:400;color:var(--faint);margin-left:4px;}
.dl-section .dl-h-sub--warn{color:#ff8c00;font-weight:600;}
.dl-section .dl-h-sub--warn::before{content:'⚠ ';font-size:11px;}
.dl-section .dl-h-sub--err{color:#ff3b3b;font-weight:600;}
.dl-section .dl-h-sub--err::before{content:'⚠ ';font-size:11px;}
/* 多链接网格按钮:--pc 网盘品牌色驱动 */
.dl-grid{display:flex;flex-wrap:wrap;gap:12px;}
.dl-card{display:flex;align-items:center;gap:11px;padding:13px 16px;border-radius:13px;color:#fff;font-weight:600;text-decoration:none;transition:.18s;position:relative;overflow:hidden;min-width:210px;flex:1;max-width:360px;
  background:linear-gradient(135deg,var(--pc,#4f7cff),color-mix(in srgb,var(--pc,#4f7cff) 75%,#000));
  box-shadow:0 4px 14px color-mix(in srgb,var(--pc,#4f7cff) 28%,transparent);}
.dl-card::before{content:'';position:absolute;inset:0;background:linear-gradient(120deg,rgba(255,255,255,.18),transparent 60%);pointer-events:none;}
.dl-card:hover{transform:translateY(-3px);color:#fff;box-shadow:0 9px 24px color-mix(in srgb,var(--pc,#4f7cff) 42%,transparent);}
.dl-card .dlc-ico{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.92);border-radius:9px;flex-shrink:0;overflow:hidden;}
.dl-card .dlc-ico img{width:22px;height:22px;object-fit:contain;}
.dl-card .dlc-body{display:flex;flex-direction:column;line-height:1.3;flex:1;min-width:0;}
.dl-card .dlc-name{font-size:15px;font-weight:700;}
.dl-card .dlc-hint{font-size:11.5px;opacity:.85;margin-top:2px;}
.dl-card .dlc-arrow{font-size:22px;opacity:.75;flex-shrink:0;transition:.18s;}
.dl-card:hover .dlc-arrow{opacity:1;transform:translateX(3px);}

/* 单链接大卡片(瀑布式):左 logo + 中标题来源 + 右下载按钮,--pc 取色 */
.dl-card-big{display:flex;align-items:center;gap:16px;padding:18px 20px;border-radius:16px;background:var(--card);border:1px solid color-mix(in srgb,var(--pc,#4f7cff) 35%,var(--line));box-shadow:0 4px 18px color-mix(in srgb,var(--pc,#4f7cff) 12%,transparent);transition:.2s;}
.dl-card-big:hover{border-color:var(--pc,#4f7cff);box-shadow:0 8px 26px color-mix(in srgb,var(--pc,#4f7cff) 22%,transparent);transform:translateY(-2px);}
.dlb-ico{width:56px;height:56px;border-radius:14px;background:color-mix(in srgb,var(--pc,#4f7cff) 10%,#fff);display:flex;align-items:center;justify-content:center;flex-shrink:0;border:1px solid color-mix(in srgb,var(--pc,#4f7cff) 22%,transparent);}
.dlb-ico img{width:38px;height:38px;object-fit:contain;}
.dlb-info{flex:1;min-width:0;}
.dlb-name{font-size:17px;font-weight:800;color:var(--ink);display:flex;align-items:center;gap:8px;}
.dlb-hint{font-size:12.5px;color:var(--faint);margin-top:3px;}
.dlb-btn{display:inline-flex;align-items:center;gap:6px;padding:11px 22px;border-radius:11px;background:linear-gradient(135deg,var(--pc,#4f7cff),color-mix(in srgb,var(--pc,#4f7cff) 72%,#000));color:#fff;font-size:14px;font-weight:700;text-decoration:none;flex-shrink:0;transition:.18s;box-shadow:0 4px 12px color-mix(in srgb,var(--pc,#4f7cff) 32%,transparent);}
.dlb-btn:hover{transform:translateY(-2px);box-shadow:0 7px 18px color-mix(in srgb,var(--pc,#4f7cff) 46%,transparent);}
.dlb-arrow{font-size:18px;transition:.18s;}
.dlb-btn:hover .dlb-arrow{transform:translateX(3px);}


/* 短码 [c-downbtn] 渲染的独立下载卡(正文内嵌) */
.sc-download{display:flex;align-items:center;gap:14px;padding:14px 16px;margin:16px 0;border-radius:13px;background:var(--card);border:1px solid color-mix(in srgb,var(--pc,#4f7cff) 32%,var(--line));box-shadow:0 3px 12px color-mix(in srgb,var(--pc,#4f7cff) 10%,transparent);transition:.18s;}
.sc-download:hover{border-color:var(--pc,#4f7cff);box-shadow:0 6px 18px color-mix(in srgb,var(--pc,#4f7cff) 20%,transparent);}
.sc-ico{width:44px;height:44px;border-radius:11px;background:color-mix(in srgb,var(--pc,#4f7cff) 9%,#fff);display:flex;align-items:center;justify-content:center;flex-shrink:0;border:1px solid color-mix(in srgb,var(--pc,#4f7cff) 20%,transparent);}
.sc-ico img{width:30px;height:30px;object-fit:contain;}
.sc-info{flex:1;min-width:0;}
.sc-title{font-size:15px;font-weight:700;}
.sc-title a{color:var(--ink);text-decoration:none;}
.sc-title a:hover{color:var(--pc,#4f7cff);}
.sc-source{font-size:12px;color:var(--faint);margin-top:3px;}
.dlc-pwd-hint{color:var(--pc,#4f7cff);font-weight:600;}
.sc-btn{display:inline-flex;align-items:center;padding:9px 18px;border-radius:10px;background:linear-gradient(135deg,var(--pc,#4f7cff),color-mix(in srgb,var(--pc,#4f7cff) 72%,#000));color:#fff;font-size:13.5px;font-weight:700;text-decoration:none;flex-shrink:0;transition:.18s;box-shadow:0 3px 10px color-mix(in srgb,var(--pc,#4f7cff) 30%,transparent);}
.sc-btn:hover{transform:translateY(-2px);box-shadow:0 6px 16px color-mix(in srgb,var(--pc,#4f7cff) 44%,transparent);}

/* ===== 文章底部操作栏:点赞/打赏/加群/分享/失效反馈 ===== */
.action-bar{display:flex;justify-content:center;gap:28px;padding:24px 0;margin:8px 0 4px;border-top:1px solid var(--line);flex-wrap:wrap;}
.act-btn{display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer;color:var(--sub);transition:color .2s;user-select:none;}
.act-btn:hover{color:var(--brand);}
.act-btn .act-ico{width:46px;height:46px;border-radius:50%;background:var(--bg);display:flex;align-items:center;justify-content:center;transition:.2s;}
.act-btn:hover .act-ico{background:var(--tint);transform:translateY(-2px);}
.act-btn .act-ico svg{width:22px;height:22px;}
.act-btn .act-lbl{font-size:12px;}
.act-btn--liked{color:#f56c6c;}
.act-btn--liked .act-ico{background:rgba(245,108,108,.12);}
.act-btn--liked:hover{color:#f56c6c;}
.act-btn--liked:hover .act-ico{background:rgba(245,108,108,.18);}
.act-btn--group{color:#409eff;}
.act-btn--group .act-ico{background:rgba(64,158,255,.1);}
.act-btn--group:hover{color:#409eff;}
.act-btn--group:hover .act-ico{background:rgba(64,158,255,.18);}
.act-btn--warn{color:#e6a23c;}
.act-btn--warn .act-ico{background:rgba(230,162,60,.1);}
.act-btn--warn:hover{color:#e6a23c;}
.act-btn--warn:hover .act-ico{background:rgba(230,162,60,.18);}

/* 统一弹窗骨架 */
.acm-overlay{position:fixed;inset:0;z-index:10001;display:flex;align-items:center;justify-content:center;pointer-events:none;opacity:0;transition:opacity .25s;}
.acm-overlay.acm-show{pointer-events:auto;opacity:1;}
.acm-overlay::before{content:'';position:absolute;inset:0;background:rgba(0,0,0,.5);backdrop-filter:blur(4px);}
.acm-box{position:relative;background:rgba(255,255,255,.92);backdrop-filter:saturate(4) blur(20px);border-radius:16px;padding:28px 24px 24px;max-width:420px;width:90%;max-height:85vh;overflow-y:auto;box-shadow:0 20px 60px rgba(0,0,0,.3);transform:scale(.9) translateY(20px);transition:transform .25s;}
.acm-overlay.acm-show .acm-box{transform:scale(1) translateY(0);}
.acm-h{display:flex;align-items:center;justify-content:space-between;padding-bottom:12px;margin-bottom:4px;border-bottom:1px solid var(--line);font-size:17px;font-weight:700;}
.acm-x{cursor:pointer;color:var(--faint);font-size:20px;line-height:1;padding:2px 6px;transition:.2s;}
.acm-x:hover{color:var(--ink);}
.acm-close{position:absolute;top:10px;right:14px;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--faint);font-size:22px;line-height:1;transition:.2s;}
.acm-close:hover{background:var(--bg);color:var(--ink);}
.acm-title{font-size:17px;font-weight:700;text-align:center;margin-bottom:14px;}
.acm-title--warn{color:#e6a23c;}
.acm-sub{text-align:center;color:var(--faint);font-size:13px;margin-bottom:16px;}
.acm-tip{text-align:center;color:var(--faint);font-size:12px;margin-top:14px;}

/* 打赏 tab */
.tip-tabs{display:flex;gap:10px;justify-content:center;margin-bottom:16px;flex-wrap:wrap;}
.tip-tab{cursor:pointer;padding:6px 18px;border-radius:8px;font-size:14px;color:var(--sub);background:var(--bg);transition:.2s;}
.tip-tab:hover{background:var(--tint);color:var(--brand);}
.tip-tab.active{background:var(--brand);color:#fff;}
.tip-img-wrap{text-align:center;}
.tip-img{max-width:220px;width:100%;margin:0 auto;display:block;border-radius:10px;box-shadow:0 4px 16px rgba(0,0,0,.1);}

/* 加群 */
.group-grid{display:flex;flex-wrap:wrap;gap:16px;justify-content:center;}
.group-item{text-align:center;padding:12px;border-radius:12px;background:var(--bg);}
.group-item img{width:150px;height:150px;object-fit:cover;border-radius:8px;display:block;}
.group-item p{margin:10px 0 0;font-size:13px;color:var(--sub);}
.scan-tip{margin-top:18px;padding:12px 14px;border-radius:10px;background:linear-gradient(135deg,#f0f7ff,#e8f4ff);}
.scan-tip-t{font-size:13px;font-weight:600;color:var(--brand);margin-bottom:6px;}
.scan-tip ul{margin:0;padding-left:18px;font-size:12px;color:var(--sub);line-height:1.8;}

/* 分享 */
.share-list{display:flex;gap:18px;justify-content:center;flex-wrap:wrap;}
.share-item{display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer;color:var(--sub);text-decoration:none;font-size:12px;transition:color .2s;}
.share-item:hover{color:var(--brand);}
.share-ico{width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:16px;font-weight:700;transition:transform .2s;}
.share-item:hover .share-ico{transform:translateY(-3px);}
.share-ico--qq{background:#12b7f5;}
.share-ico--weibo{background:#e6162d;}
.share-ico--qzone{background:#fdbe3d;color:#7a5100;}
.share-ico--copy{background:linear-gradient(135deg,var(--brand),var(--accent));}

/* 失效反馈 */
.dl-list{display:flex;flex-direction:column;gap:8px;margin-bottom:16px;}
.dl-opt{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;cursor:pointer;transition:.18s;}
.dl-opt:hover{border-color:var(--brand);background:var(--tint-soft);}
.dl-opt input[type=radio]{accent-color:var(--brand);flex-shrink:0;}
.dl-badge{font-size:11px;font-weight:600;color:var(--tc,#409eff);background:color-mix(in srgb,var(--tc,#409eff) 12%,transparent);padding:2px 8px;border-radius:6px;flex-shrink:0;}
.dl-url{font-size:13px;color:var(--sub);word-break:break-all;flex:1;min-width:0;}
.acm-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 22px;border-radius:24px;font-size:14px;font-weight:600;cursor:pointer;border:none;background:var(--bg);color:var(--ink);transition:.18s;}
.acm-btn:hover{background:var(--tint);color:var(--brand);}
.acm-btn--block{width:100%;background:linear-gradient(135deg,var(--brand),var(--accent));color:#fff;}
.acm-btn--block:hover{color:#fff;opacity:.92;transform:translateY(-1px);}

/* toast */
.acm-toast{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(.9);background:rgba(20,28,48,.92);color:#fff;padding:12px 22px;border-radius:10px;font-size:14px;z-index:10002;opacity:0;transition:.3s;pointer-events:none;}
.acm-toast.show{opacity:1;transform:translate(-50%,-50%) scale(1);}

/* 搜索结果 meta */
.search-meta{background:#fffbeb;border:1px solid #fde68a;color:#92400e;padding:8px 14px;border-radius:8px;font-size:13px;margin-bottom:16px;}

/* 空状态 */
.empty-box{text-align:center;padding:60px 20px;background:var(--card);border-radius:var(--radius);border:1px dashed var(--line);}
.empty-box .empty-ico{font-size:56px;opacity:.5;margin-bottom:14px;}
.empty-box .empty-txt{font-size:16px;font-weight:600;color:var(--ink);margin-bottom:6px;}
.empty-box .empty-sub{font-size:13px;color:var(--faint);margin-bottom:18px;}
.btn-brand{display:inline-block;padding:9px 24px;background:var(--brand);color:#fff;border-radius:9px;font-size:14px;font-weight:600;}
.btn-brand:hover{background:var(--accent);color:#fff;}

/* 骨架屏 (加载占位) */
.skeleton{background:linear-gradient(90deg,#eef1f7 25%,#f6f8fc 50%,#eef1f7 75%);background-size:200% 100%;animation:sk 1.4s infinite;}
@keyframes sk{0%{background-position:200% 0;}100%{background-position:-200% 0;}}
.sk-card{background:var(--card);border-radius:var(--radius);padding:14px;margin-bottom:12px;display:flex;gap:14px;}
.sk-thumb{width:150px;height:96px;border-radius:11px;flex-shrink:0;}
.sk-lines{flex:1;display:flex;flex-direction:column;gap:10px;padding-top:6px;}
.sk-line{height:14px;border-radius:7px;}
.sk-line.w60{width:60%;}.sk-line.w40{width:40%;}.sk-line.w80{width:80%;}

/* 移动端快速下载:通栏滑动条(方案C);贴底部导航上方,半透明,用户下滑后才出现 */
.dl-bar{display:none;position:fixed;left:0;right:0;bottom:58px;padding:6px 12px;z-index:39;pointer-events:none;
  transform:translateY(140%);opacity:0;transition:transform .35s cubic-bezier(.22,1,.36,1),opacity .35s;}
.dl-bar--show{transform:translateY(0);opacity:1;}
/* 多链接:跳转下载区按钮(不显示滑动条) */
.dl-bar--jump{pointer-events:none;}
.dl-bar--jump button{pointer-events:auto;width:100%;height:36px;border:none;border-radius:18px;
  display:flex;align-items:center;justify-content:center;gap:6px;
  background:linear-gradient(135deg,var(--brand),var(--accent));color:#fff;font-size:13px;font-weight:600;
  box-shadow:0 3px 12px color-mix(in srgb,var(--brand) 35%,transparent);cursor:pointer;transition:.15s;}
.dl-bar--jump button:active{transform:scale(.97);}
.dl-bar--jump button svg{width:14px;height:14px;}
.dl-bar--jump button .arr{transition:transform .2s;}
.dl-bar--jump button:hover .arr{transform:translateY(2px);}
/* 紧凑滑动条(比之前更小):高度 32,滑块 26 */
.dl-bar .track{position:relative;height:32px;border-radius:16px;overflow:hidden;pointer-events:auto;
  background:color-mix(in srgb,var(--ac,var(--brand)) 14%,#fff);
  border:1px solid color-mix(in srgb,var(--ac,var(--brand)) 30%,var(--line));
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  box-shadow:0 3px 12px color-mix(in srgb,var(--ac,var(--brand)) 18%,transparent);}
.dl-bar .fill{position:absolute;top:0;left:0;height:100%;width:0;border-radius:16px;
  background:linear-gradient(135deg,var(--ac,var(--brand)),var(--ac2,var(--accent)));opacity:.75;transition:width .05s;}
.dl-bar .hint{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:4px;
  font-size:11.5px;font-weight:600;color:var(--ac,var(--brand));pointer-events:none;transition:color .2s;}
.dl-bar .hint svg{width:11px;height:11px;}
.dl-bar .knob{position:absolute;top:3px;left:3px;width:26px;height:26px;border-radius:50%;
  background:linear-gradient(135deg,var(--ac,var(--brand)),var(--ac2,var(--accent)));color:#fff;
  display:grid;place-items:center;box-shadow:0 2px 8px color-mix(in srgb,var(--ac,var(--brand)) 40%,transparent);
  cursor:grab;touch-action:none;z-index:2;transition:transform .12s;}
.dl-bar .knob:active{cursor:grabbing;transform:scale(1.1);}
.dl-bar .knob svg{width:12px;height:12px;}
.dl-bar.done .hint{color:#fff;}
.dl-bar.done .knob{background:linear-gradient(135deg,#52c41a,#389e0d);}

/* 移动端搜索栏(顶栏下方) */
.m-search{display:none;padding:10px 16px;background:var(--card);border-bottom:1px solid var(--line);}
.m-search form{display:flex;align-items:center;gap:8px;background:var(--bg);border-radius:20px;padding:8px 14px;}
.m-search input{border:none;background:none;outline:none;flex:1;font-size:14px;}

/* 开发者模式横幅(前台) */
.dev-bar{position:sticky;top:0;z-index:60;background:#b32d2e;color:#fff;font-size:13px;text-align:center;padding:6px 12px;font-weight:600;letter-spacing:.2px;line-height:1.4;display:flex;align-items:center;justify-content:center;gap:10px;}
.dev-bar .dev-close{flex-shrink:0;background:rgba(255,255,255,.2);border:none;color:#fff;width:20px;height:20px;border-radius:50%;cursor:pointer;font-size:12px;line-height:1;padding:0;display:inline-flex;align-items:center;justify-content:center;}
.dev-bar .dev-close:hover{background:rgba(255,255,255,.35);}
@media(max-width:680px){
  .dev-bar{font-size:11.5px;padding:5px 10px;}
}

/* 移动端搜索弹窗 */
.search-modal{display:none;position:fixed;inset:0;z-index:200;flex-direction:column;align-items:center;justify-content:flex-start;overflow-y:auto;padding-top:14vh;}
.search-modal.show{display:flex;}
.search-modal .sm-mask{position:absolute;inset:0;background:rgba(18,22,38,.55);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);opacity:0;transition:opacity .22s;}
.search-modal.show .sm-mask{opacity:1;}
.search-modal .sm-box{position:relative;display:flex;align-items:center;gap:10px;background:var(--card);padding:12px 14px;box-shadow:0 16px 48px rgba(20,24,48,.28);border-radius:16px;width:calc(100% - 32px);max-width:560px;transform:scale(.92) translateY(-12px);opacity:0;transition:transform .26s cubic-bezier(.2,.8,.2,1),opacity .22s;}
.search-modal.show .sm-box{transform:scale(1) translateY(0);opacity:1;}
.search-modal .sm-ico{font-size:16px;color:var(--faint);flex-shrink:0;}
.search-modal .sm-input{flex:1;border:none;background:var(--bg);border-radius:20px;padding:10px 16px;font-size:15px;outline:none;min-width:0;}
.search-modal .sm-go{flex-shrink:0;background:var(--brand);color:#fff;border:none;border-radius:9px;padding:9px 16px;font-size:14px;font-weight:600;cursor:pointer;}
.search-modal .sm-close{flex-shrink:0;background:none;border:none;font-size:18px;color:var(--faint);cursor:pointer;padding:4px;}

/* PC 搜索框热词下拉 */
.srch{position:relative;}
.srch-hot{position:absolute;top:calc(100% + 8px);right:0;background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:0 12px 36px rgba(20,24,48,.18);padding:10px;z-index:80;width:340px;max-width:90vw;}
.srch-hot[hidden]{display:none;}
.srch-hot-hd{font-size:12px;color:var(--faint);padding:4px 8px 8px;font-weight:600;letter-spacing:.5px;}
.srch-hot-list{display:flex;flex-direction:column;gap:2px;}
.srch-hot-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;text-decoration:none;color:var(--ink);font-size:14px;transition:background .15s;}
.srch-hot-item:hover{background:var(--bg);}
.srch-hot-rank{width:18px;height:18px;border-radius:5px;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;background:var(--faint);flex-shrink:0;}
.srch-hot-rank.rank-1{background:#ff5b7f;}
.srch-hot-rank.rank-2{background:#ff9f43;}
.srch-hot-rank.rank-3{background:#4f7cff;}
.srch-hot-text{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}

/* 移动端搜索弹窗热词 */
.sm-hot{position:relative;width:calc(100% - 32px);max-width:560px;margin:10px auto 0;background:var(--card);border-radius:14px;padding:14px 16px;box-shadow:0 8px 28px rgba(20,24,48,.16);transform:scale(.92) translateY(-12px);opacity:0;transition:transform .26s cubic-bezier(.2,.8,.2,1) .05s,opacity .22s .05s;}
.search-modal.show .sm-hot{transform:scale(1) translateY(0);opacity:1;}
.sm-hot-label{display:block;font-size:12px;color:var(--faint);font-weight:600;margin-bottom:10px;letter-spacing:.5px;}
.sm-hot-tags{display:flex;flex-wrap:wrap;gap:8px;}
.sm-hot-tag{display:inline-block;padding:7px 14px;background:var(--bg);border:1px solid var(--line);border-radius:18px;font-size:13px;color:var(--ink);text-decoration:none;transition:all .15s;}
.sm-hot-tag:hover,.sm-hot-tag:active{background:var(--brand);color:#fff;border-color:var(--brand);}

/* 缩略图下载量角标 */
.art .th{position:relative;}
.th-dl{position:absolute;left:0;bottom:0;background:linear-gradient(90deg,rgba(255,91,127,.92),rgba(255,91,127,.75));color:#fff;font-size:10.5px;font-weight:700;padding:2px 7px;border-radius:0 8px 0 0;backdrop-filter:blur(2px);}
.art .th>span:not(.th-dl){font-size:30px;}

/* ============================================================
   响应式:软件站增强
   ============================================================ */
@media(max-width:680px){
  .rel-grid{grid-template-columns:1fr 1fr;gap:10px;}
  .rel-card .rt{height:80px;}
  .post-nav{flex-direction:column;}
  .post-nav a.next{text-align:left;}
  .dl-grid{flex-direction:column;}
  .dl-card{max-width:100%;min-width:0;}
  /* 单链接大卡片:移动端紧凑 */
  .dl-card-big{flex-wrap:wrap;padding:14px 16px;gap:12px;}
  .dlb-ico{width:48px;height:48px;}
  .dlb-ico img{width:32px;height:32px;}
  .dlb-name{font-size:16px;}
  .dlb-btn{padding:10px 18px;}
  /* 短码卡:移动端紧凑 */
  .sc-download{flex-wrap:wrap;gap:10px;padding:12px 14px;}
  .sc-ico{width:40px;height:40px;}
  .sc-ico img{width:26px;height:26px;}
  /* 操作栏:移动端间距收紧 */
  .action-bar{gap:20px;padding:18px 0;}
  .act-btn .act-ico{width:42px;height:42px;}
  .act-btn .act-ico svg{width:20px;height:20px;}
  /* 弹窗:移动端底部弹出 */
  .acm-overlay{align-items:flex-end;}
  .acm-box{border-radius:16px 16px 0 0;max-width:100%;width:100%;padding:24px 16px 20px;}
  .share-list{gap:14px;}
  .share-ico{width:46px;height:46px;font-size:14px;}
  .group-item img{width:130px;height:130px;}
  .dl-bar{display:block;}        /* 下载条显示(浮在底部导航上方),下滑后才 .dl-bar--show 滑入 */
  /* tabbar 用毛玻璃:内容滚动经过其下方产生模糊透视,故不再给 body 留白;
     不用 padding 撑空白(会留下可下滑的死区),改用 margin 把页脚整体顶出 tabbar 遮挡区,
     页脚底部紧贴 tabbar,无多余空白 */
  body:has(.tabbar) .ft{margin-bottom:56px;}
  body:has(.dl-bar):has(.tabbar) .ft{margin-bottom:104px;}  /* 文章页:tabbar(56)+下载条(48) 叠加 */
  body:has(.dl-bar):not(:has(.tabbar)) .ft{margin-bottom:48px;} /* 无 tabbar:仅下载条 */
  .article-detail{padding-bottom:8px;}
  .m-search{display:none;}
  /* (meta 与 tags 已全局隐藏,标签由 .tags-bottom 在文章结尾展示) */
  /* 移动端日期已移入底部标签区,顶部面包屑的日期不再重复显示(桌面端保留) */
  .breadcrumb .bc-date{display:none;}
  /* 底部标签区:移动端只显示首个标签(左)+ 日期(右),两端对齐单行;桌面端不变 */
  .article-detail .tags-bottom{display:flex !important;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:10px;}
  .article-detail .tags-bottom a:not(:first-child){display:none;} /* 只留首标签 */
  .article-detail .tags-bottom .tags-date{display:inline-flex;align-items:center;gap:4px;flex-shrink:0;font-size:12px;color:var(--faint);background:var(--bg);padding:3px 10px;border-radius:7px;white-space:nowrap;}
  .article-detail .tags-bottom .tags-date .ic{width:13px;height:13px;}
  /* 移动端间距紧凑 */
  .article-detail{margin-bottom:14px;padding:16px;}
  .related,.post-nav,.dl-section,.copyright{margin-top:16px !important;}
  .related h3,.dl-section .dl-h{margin-bottom:10px;}
  .rel-grid{gap:10px;}
  .post-nav{gap:10px;}
  .post-nav a{padding:11px 13px;}
  .changelog{margin:16px 0;padding:13px 15px;}
}


/* ========== 搜索关键词回复卡片(skr) ========== */
.skr-wrap{margin:0 0 16px}
.skr{border-radius:16px;padding:18px 20px;margin-bottom:14px;border:1px solid;position:relative;overflow:hidden;transition:transform .25s,box-shadow .25s}
.skr:hover{transform:translateY(-2px);box-shadow:0 12px 32px rgba(79,124,255,.16)}
/* 光效层(默认隐藏,aurora/solid 启用) */
.skr__glow{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .4s}

/* —— 色调(variant): 定义 --sc1/--sc2/--sb 三个色变量,各风格引用 —— */
.skr--info{--sc1:#eef4ff;--sc2:#f7faff;--sb:#cfe0ff;--si:#4f7cff}
.skr--success{--sc1:#edfcef;--sc2:#f5fef7;--sb:#c7f0d2;--si:#52c41a}
.skr--warning{--sc1:#fff8ec;--sc2:#fffcf3;--sb:#ffe2b8;--si:#fa8c16}

/* —— 风格 1: glass 玻璃渐变(默认,柔和) —— */
.skr--st-glass{background:linear-gradient(135deg,var(--sc1),var(--sc2));border-color:var(--sb)}

/* —— 风格 2: aurora 极光光效(炫酷,流动光斑) —— */
.skr--st-aurora{background:linear-gradient(135deg,var(--sc1),var(--sc2));border-color:var(--sb)}
.skr--st-aurora .skr__glow{opacity:1;background:
  radial-gradient(circle at 15% 20%,color-mix(in srgb,var(--si) 35%,transparent),transparent 45%),
  radial-gradient(circle at 85% 80%,color-mix(in srgb,var(--si) 25%,transparent),transparent 50%);
  animation:skrAurora 6s ease-in-out infinite alternate}
@keyframes skrAurora{0%{transform:translate(-8%,-8%) scale(1)}100%{transform:translate(8%,8%) scale(1.15)}}
.skr--st-aurora .skr__title{background:linear-gradient(120deg,var(--ink),var(--si),var(--ink));background-size:200% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:skrShine 4s linear infinite}
@keyframes skrShine{0%{background-position:0 0}100%{background-position:200% 0}}

/* —— 风格 3: solid 实色填充(强视觉,深色底白字) —— */
.skr--st-solid{background:linear-gradient(135deg,var(--si),color-mix(in srgb,var(--si) 70%,#000));border-color:transparent;color:#fff}
.skr--st-solid .skr__glow{opacity:1;background:radial-gradient(circle at 80% 0%,rgba(255,255,255,.18),transparent 55%)}
.skr--st-solid .skr__title,.skr--st-solid .skr__sub,.skr--st-solid .skr__body,.skr--st-solid .skr__split-text,.skr--st-solid .skr__hint{color:#fff}
.skr--st-solid .skr__sub,.skr--st-solid .skr__hint{opacity:.85}
.skr--st-solid .skr__icon{background:rgba(255,255,255,.2);box-shadow:none}
.skr--st-solid .skr__icon .ic{color:#fff}
.skr--st-solid .skr__tag{background:rgba(255,255,255,.22);color:#fff}
.skr--st-solid .skr__body,.skr--st-solid .skr__split,.skr--st-solid .skr__foot{border-top-color:rgba(255,255,255,.18)}
.skr--st-solid .skr__redirect{background:rgba(255,255,255,.14);color:#fff}
.skr--st-solid .skr__redirect strong{color:#fff}
.skr--st-solid .skr__fb-btn{background:rgba(255,255,255,.16);color:#fff}
.skr--st-solid .skr__btn--ghost{background:rgba(255,255,255,.16);color:#fff;border-color:rgba(255,255,255,.3)}

/* —— 风格 4: neat 简约边框(干净,左色条强调) —— */
.skr--st-neat{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--si)}
.skr--st-neat .skr__tag{background:color-mix(in srgb,var(--si) 12%,transparent);color:var(--si)}

.skr__head{display:flex;align-items:flex-start;gap:12px;position:relative;z-index:1}
.skr__icon{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;flex-shrink:0;background:var(--card);box-shadow:0 2px 8px rgba(0,0,0,.06);color:var(--si)}
.skr--st-solid .skr__icon,.skr--st-glass .skr__icon,.skr--st-aurora .skr__icon{background:color-mix(in srgb,var(--si) 14%,var(--card))}
.skr__icon .ic{width:20px;height:20px}
.skr__fb-btn{display:inline-flex;align-items:center;gap:4px}
.skr__fb-btn .ic{width:13px;height:13px;flex:none}
.skr__headc{min-width:0;flex:1}
.skr__tag{display:inline-block;font-size:11px;padding:2px 8px;border-radius:10px;background:rgba(79,124,255,.12);color:var(--brand);font-weight:600;margin-bottom:4px}
.skr__title{font-size:16px;font-weight:700;margin:0;color:var(--ink);line-height:1.35;position:relative;z-index:1}
.skr__sub{font-size:13px;color:var(--faint);margin-top:3px;line-height:1.4;position:relative;z-index:1}
.skr__body{font-size:14px;color:var(--text);line-height:1.7;margin-top:12px;padding-top:12px;border-top:1px solid rgba(0,0,0,.05);position:relative;z-index:1}
.skr__body p{margin:0 0 8px}.skr__body p:last-child{margin-bottom:0}
.skr__media{margin-top:12px;border-radius:10px;overflow:hidden;position:relative;z-index:1}
.skr__media img{width:100%;display:block}
.skr__split{display:flex;gap:14px;align-items:center;margin-top:12px;padding-top:12px;border-top:1px solid rgba(0,0,0,.05);position:relative;z-index:1}
.skr__split-text{flex:1;font-size:13px;color:var(--faint)}
.skr__qr{width:96px;height:96px;flex-shrink:0;border-radius:8px;overflow:hidden;border:1px solid var(--line);background:#fff}
.skr__qr img{width:100%;height:100%;object-fit:cover}
.skr__redirect{margin-top:12px;padding:10px 12px;background:rgba(255,255,255,.6);border-radius:8px;font-size:13px;color:var(--faint);position:relative;z-index:1}
.skr__redirect strong{color:var(--brand);font-size:16px}
.skr__cd-wrap{display:inline-flex;align-items:center;gap:2px}
.skr__actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;position:relative;z-index:1}
.skr__btn{padding:9px 22px;border-radius:9px;font-size:13.5px;font-weight:600;text-decoration:none;transition:.18s;display:inline-block}
.skr__btn--primary{background:var(--si);color:#fff;box-shadow:0 4px 14px color-mix(in srgb,var(--si) 35%,transparent)}
.skr__btn--primary:hover{filter:brightness(1.08);transform:translateY(-1px)}
.skr__btn--ghost{background:var(--card);color:var(--text);border:1px solid var(--line)}
.skr__btn--ghost:hover{border-color:var(--si);color:var(--si)}
.skr__foot{display:flex;justify-content:space-between;align-items:center;margin-top:14px;padding-top:12px;border-top:1px solid rgba(0,0,0,.05);position:relative;z-index:1}
.skr__hint{font-size:11px;color:var(--faint)}
.skr__fb{display:flex;gap:6px}
.skr__fb-btn{font-size:11px;color:var(--faint);cursor:pointer;padding:3px 8px;border-radius:6px;background:rgba(255,255,255,.6);transition:.15s;text-decoration:none}
.skr__fb-btn:hover{background:var(--card);color:var(--text)}
.skr__fb-btn.active{background:var(--si);color:#fff;pointer-events:none}
@media(max-width:680px){
  .skr{padding:14px 15px}.skr__title{font-size:15px}.skr__split{flex-direction:column;text-align:center}
  .skr__actions{flex-direction:column}.skr__btn{text-align:center}
}


/* ===== 普通文章评论区(article.php,comment_enabled 开启时) ===== */
.art-comments{margin:24px 0 0;padding:20px;background:var(--card);border-radius:12px;border:1px solid var(--line)}
.ac-title{font-size:16px;font-weight:700;margin:0 0 16px;color:var(--ink)}
.ac-form{margin-bottom:20px}
.ac-fields{display:flex;gap:10px;margin-bottom:10px}
.ac-fields .ac-inp{flex:1;min-width:0}
.ac-inp{box-sizing:border-box;height:38px;padding:0 12px;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--ink);font-size:14px;font-family:inherit;transition:border-color .2s}
.ac-inp:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 14%,transparent)}
.ac-form textarea{width:100%;min-height:80px;box-sizing:border-box;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);font-size:14px;resize:vertical;font-family:inherit;transition:border-color .2s}
.ac-form textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 14%,transparent)}
.ac-form-bar{display:flex;justify-content:space-between;align-items:center;margin-top:10px}
.ac-hint{font-size:13px;color:var(--sub);min-height:18px}
.ac-hint.err{color:#dc2626}
.ac-submit{padding:8px 22px;border:none;border-radius:8px;background:var(--accent);color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:background .2s}
.ac-submit:hover{background:var(--brand)}
.ac-list{display:flex;flex-direction:column;gap:14px}
.ac-loading,.ac-empty{text-align:center;color:var(--faint);font-size:14px;padding:20px 0}
.ac-item{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.ac-item:last-child{border-bottom:none}
.ac-avatar{flex-shrink:0;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:15px}
.ac-main{flex:1;min-width:0}
.ac-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}
.ac-row b{font-size:14px;color:var(--ink);font-weight:600}
.ac-time{font-size:12px;color:var(--faint)}
.ac-text{font-size:14px;color:var(--sub);line-height:1.6;word-break:break-word;white-space:pre-wrap}
@media (max-width:640px){
    .art-comments{margin:20px -4px 0;padding:16px;border-radius:10px}
    .ac-fields{flex-direction:column}
}
/* 暗色模式:评论区显式强化(输入框精致可见,边界清晰) */
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .ac-inp,
  :root:not([data-theme="light"]) .ac-form textarea{background:color-mix(in srgb,var(--card) 65%,#000);border-color:var(--line)}
  :root:not([data-theme="light"]) .ac-inp::placeholder,
  :root:not([data-theme="light"]) .ac-form textarea::placeholder{color:var(--faint)}
}
:root[data-theme="dark"] .ac-inp,
:root[data-theme="dark"] .ac-form textarea{background:color-mix(in srgb,var(--card) 65%,#000);border-color:var(--line)}
:root[data-theme="dark"] .ac-inp::placeholder,
:root[data-theme="dark"] .ac-form textarea::placeholder{color:var(--faint)}

/* ===== 暗色模式:硬编码浅色背景适配(弹窗/图标/提示块等) ===== */
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .acm-box{background:color-mix(in srgb,var(--card) 92%,#000);box-shadow:0 20px 60px rgba(0,0,0,.55)}
  :root:not([data-theme="light"]) .dlc-ico{background:color-mix(in srgb,var(--pc,#4f7cff) 14%,var(--card))}
  :root:not([data-theme="light"]) .scan-tip{background:linear-gradient(135deg,color-mix(in srgb,var(--brand) 18%,var(--card)),color-mix(in srgb,var(--accent) 12%,var(--card)))}
  :root:not([data-theme="light"]) .ver-badge{background:color-mix(in srgb,var(--card) 80%,#000);color:var(--brand)}
  :root:not([data-theme="light"]) .search-meta{background:color-mix(in srgb,#92400e 26%,var(--card));border-color:color-mix(in srgb,#fde68a 35%,var(--line));color:#fcd34d}
  :root:not([data-theme="light"]) .skr__redirect,
  :root:not([data-theme="light"]) .skr__fb-btn{background:color-mix(in srgb,var(--card) 60%,#000)}
  /* 友链申请弹窗内联输入框(无 class,按容器定位) */
  :root:not([data-theme="light"]) #linkApplyForm input,
  :root:not([data-theme="light"]) #linkApplyForm textarea{background:color-mix(in srgb,var(--card) 60%,#000);color:var(--ink);border-color:var(--line)}
}
:root[data-theme="dark"] .acm-box{background:color-mix(in srgb,var(--card) 92%,#000);box-shadow:0 20px 60px rgba(0,0,0,.55)}
:root[data-theme="dark"] .dlc-ico{background:color-mix(in srgb,var(--pc,#4f7cff) 14%,var(--card))}
:root[data-theme="dark"] .scan-tip{background:linear-gradient(135deg,color-mix(in srgb,var(--brand) 18%,var(--card)),color-mix(in srgb,var(--accent) 12%,var(--card)))}
:root[data-theme="dark"] .ver-badge{background:color-mix(in srgb,var(--card) 80%,#000);color:var(--brand)}
:root[data-theme="dark"] .search-meta{background:color-mix(in srgb,#92400e 26%,var(--card));border-color:color-mix(in srgb,#fde68a 35%,var(--line));color:#fcd34d}
:root[data-theme="dark"] .skr__redirect,
:root[data-theme="dark"] .skr__fb-btn{background:color-mix(in srgb,var(--card) 60%,#000)}
:root[data-theme="dark"] #linkApplyForm input,
:root[data-theme="dark"] #linkApplyForm textarea{background:color-mix(in srgb,var(--card) 60%,#000);color:var(--ink);border-color:var(--line)}

/* ===== 404 页推荐卡片 ===== */
.sug-wrap{margin-top:36px;text-align:left}
.sug-h{font-size:15px;font-weight:600;margin-bottom:14px;color:var(--sub)}
.sug-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.sug-card{display:flex;gap:10px;padding:10px;background:var(--card);border:1px solid var(--line);border-radius:8px;text-decoration:none;color:inherit;transition:background .2s,border-color .2s}
.sug-card:hover{background:var(--card-hover);border-color:color-mix(in srgb,var(--brand) 30%,var(--line))}
.sug-thumb{width:48px;height:48px;object-fit:cover;border-radius:6px;flex-shrink:0}
.sug-emoji{width:48px;height:48px;border-radius:6px;background:var(--bg);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.sug-title{font-size:13px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
