:root{
  --c-bg:#f4f7fb;
  --c-card:#ffffff;
  --c-text:#1f2937;
  --c-sub:#6b7280;
  --c-line:#e5e9f0;
  --c-blue:#2563eb;
  --c-blue-2:#3b82f6;
  --c-blue-dark:#1e3a8a;
  --c-accent:#f59e0b;
  --c-warm:#fff7ed;
  --c-warm-line:#fed7aa;
  --c-grad:linear-gradient(135deg,#1e3a8a 0%,#2563eb 60%,#3b82f6 100%);
  --c-grad-soft:linear-gradient(135deg,#eef2ff 0%,#f5f7fb 100%);
  --r-card:14px;
  --r-pill:999px;
  --sh-card:0 1px 3px rgba(15,23,42,.04),0 6px 16px rgba(15,23,42,.06);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--c-bg);
  color:var(--c-text);
  font:15px/1.7 -apple-system,"PingFang SC","Microsoft YaHei",Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.container{max-width:1200px;margin:0 auto;padding:0 20px}

/* ===== 顶部深蓝导航 ===== */
.top-nav{
  background:var(--c-grad);
  color:#fff;
  position:sticky;top:0;z-index:50;
  box-shadow:0 2px 12px rgba(30,58,138,.18);
}
.top-nav .nav-inner{
  max-width:1200px;margin:0 auto;
  height:64px;padding:0 20px;
  display:flex;align-items:center;gap:32px;
}
.brand{display:flex;align-items:center;flex-shrink:0;gap:10px}
.brand-mark{
  font-size:22px;font-weight:800;letter-spacing:1px;color:#fff;
}
.brand-suffix{
  font-size:18px;font-weight:500;color:#bfdbfe;margin-left:6px;letter-spacing:2px;
}
.brand-logo{display:block;height:32px;width:auto;max-height:100%;}
.brand-short-name{
  font-size:18px;font-weight:700;color:#fff;letter-spacing:1px;
  white-space:nowrap;
}
.nav-menu{display:flex;gap:6px;flex:1;justify-content:center;align-items:center}
.nav-menu > .nav-item,
.nav-menu > a{
  position:relative;
  padding:6px 14px;font-size:15px;color:#e0e7ff;
  border-radius:8px;transition:all .2s;
}
/* 覆盖 shop/style.css 遗留的 .nav-link{color:#444}（0,2,0 > 0,1,0）：
   有子菜单的父项里是 <a class="nav-link">，不覆盖会渲染成深灰、比同级菜单暗一截 */
.nav-menu .nav-link{color:#e0e7ff}
.nav-menu a:hover{color:#fff;background:rgba(255,255,255,.08)}
.nav-menu a.active{color:#fff;font-weight:600}
.nav-menu a.active::after{
  content:"";position:absolute;left:50%;bottom:-22px;transform:translateX(-50%);
  width:24px;height:3px;background:var(--c-accent);border-radius:2px;
}
.nav-menu .nav-item.has-children{position:relative;padding:0}
.nav-menu .nav-item.has-children > .nav-link{padding:6px 14px;display:inline-block}
.nav-menu .nav-item.has-children:hover > .nav-sub{display:block}
.nav-menu .nav-item.has-children.active > .nav-link{color:#fff;font-weight:600}
.nav-menu .nav-item.has-children.active > .nav-link::after{
  content:"";position:absolute;left:50%;bottom:-22px;transform:translateX(-50%);
  width:24px;height:3px;background:var(--c-accent);border-radius:2px;
}
.nav-menu .nav-sub{
  display:none;position:absolute;top:100%;left:50%;transform:translateX(-50%);
  margin-top:6px;background:#fff;color:#334155;border-radius:8px;
  box-shadow:0 4px 20px rgba(0,0,0,.15);min-width:160px;padding:6px 0;z-index:200;
}
.nav-menu .nav-sub .nav-sub-link{
  display:block;padding:8px 16px;color:#334155;font-size:14px;border-radius:0;
  white-space:nowrap;
}
.nav-menu .nav-sub .nav-sub-link:hover{background:#f1f5f9;color:var(--c-accent)}
.nav-title{cursor:default}
.nav-right{display:flex;align-items:center;gap:14px;flex-shrink:0}
.search-btn{
  width:36px;height:36px;border-radius:50%;
  border:0;background:rgba(255,255,255,.10);color:#fff;
  display:flex;align-items:center;justify-content:center;cursor:pointer;
  transition:background .2s;
}
.search-btn:hover{background:rgba(255,255,255,.20)}
.login-btn{
  padding:8px 22px;border-radius:var(--r-pill);
  background:linear-gradient(135deg,#3b82f6,#1d4ed8);
  color:#fff;border:1px solid rgba(255,255,255,.4);
  font-size:14px;font-weight:500;cursor:pointer;
  box-shadow:0 2px 8px rgba(29,78,216,.4);
  transition:transform .15s,box-shadow .15s;
}
.login-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(29,78,216,.55)}

/* ===== 页面主区 ===== */
.page{padding:24px 0 56px}

/* ===== Hero 行：左大banner + 右侧两小卡 ===== */
.hero-row{
  display:grid;grid-template-columns:1fr 360px;gap:20px;margin-bottom:24px;
}
@media (max-width:980px){.hero-row{grid-template-columns:1fr}}

/* Hero 大banner */
.hero-card{
  position:relative;overflow:hidden;
  background:radial-gradient(circle at 80% 30%,#1e40af 0%,#1e3a8a 45%,#0c1e4f 100%);
  border-radius:var(--r-card);
  min-height:340px;
  display:flex;align-items:center;
  padding:48px 48px;
  color:#fff;
  box-shadow:0 8px 28px rgba(30,58,138,.32);
}
.hero-card::before{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(transparent 95%,rgba(96,165,250,.18) 95%) 0 0/40px 40px,
    linear-gradient(90deg,transparent 95%,rgba(96,165,250,.18) 95%) 0 0/40px 40px,
    radial-gradient(circle at 15% 90%,rgba(59,130,246,.35),transparent 35%);
  opacity:.55;pointer-events:none;
}
.hero-text{position:relative;z-index:2;max-width:60%}
.hero-card h1,.hero-card .hero-h2{
  font-size:36px;line-height:1.25;font-weight:800;
  margin:0 0 16px;letter-spacing:.5px;
  text-shadow:0 2px 12px rgba(0,0,0,.25);
}
.hero-card .hero-desc{
  font-size:15px;line-height:1.85;color:#cbd5e1;
  margin:0 0 28px;max-width:520px;
}
.hero-cta{
  display:inline-flex;align-items:center;gap:6px;
  padding:10px 22px;border-radius:var(--r-pill);
  background:linear-gradient(135deg,#f59e0b,#fb923c);
  color:#1f2937;font-weight:600;font-size:14px;
  box-shadow:0 4px 14px rgba(245,158,11,.45);
  transition:transform .15s;
}
.hero-cta:hover{transform:translateX(2px)}
.hero-deco{
  position:absolute;right:32px;top:50%;transform:translateY(-50%);
  width:300px;height:280px;z-index:1;pointer-events:none;
}
.hero-deco svg,.hero-deco img{
  display:block;width:100%;height:100%;
  filter:drop-shadow(0 10px 28px rgba(59,130,246,.45));
}
.hero-deco img{border:0;-webkit-user-drag:none}

/* ============ 广告位轮播：同一广告位多条广告滚动播放 ============ */
/* 容器接管 hero-card 在 .hero-row 网格中的位置，阴影移到容器上
   （容器 overflow:hidden 会裁掉子元素阴影，故由容器自己投射） */
.hero-row>.ad-slider{
  min-width:0;
  /* 保持与原 .hero-card 相同的网格拉伸行为，与右侧卡片等高 */
  box-shadow:0 8px 28px rgba(30,58,138,.32);
}
.ad-slider{
  position:relative;overflow:hidden;
  border-radius:var(--r-card);
  /* grid 让 track 自动撑满容器高度（容器被 .hero-row 拉伸时不留空白） */
  display:grid;
}
.ad-slider-track{
  display:flex;
  transition:transform .6s cubic-bezier(.4,0,.2,1);
  will-change:transform;
}
.ad-slider-track>*{flex:0 0 100%;min-width:0}
/* 帧内 hero-card 撑满容器高度（内容仍垂直居中），圆角由容器统一提供 */
.ad-slider-track .hero-card{height:100%;border-radius:0;box-shadow:none}
.ad-slider-dots{
  position:absolute;left:48px;bottom:14px;z-index:5;
  display:flex;align-items:center;gap:8px;
}
.ad-slider-dots button{
  display:block;width:8px;height:8px;padding:0;margin:0;
  border:0;border-radius:99px;
  background:rgba(255,255,255,.42);
  box-shadow:0 0 0 1px rgba(15,23,42,.12);
  cursor:pointer;
  transition:width .3s ease,background .3s ease;
}
.ad-slider-dots button:hover{background:rgba(255,255,255,.7)}
.ad-slider-dots button.on{width:22px;background:#f59e0b}
@media (prefers-reduced-motion:reduce){
  .ad-slider-track{transition:none}
}

/* 右侧 Sidebar */
.hero-side{display:flex;flex-direction:column;gap:16px}
.side-card{
  background:var(--c-card);border-radius:var(--r-card);
  padding:18px 18px 16px;box-shadow:var(--sh-card);
  display:flex;align-items:flex-start;gap:14px;
  position:relative;transition:transform .2s,box-shadow .2s;
}
.side-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(15,23,42,.10)}
.side-icon{
  width:48px;height:48px;border-radius:12px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:#2563eb;
}
.side-body{flex:1;min-width:0}
.side-body h3{margin:0 0 6px;font-size:16px;font-weight:700;color:#1f2937}
.side-body p{margin:0;font-size:13px;color:#6b7280;line-height:1.55;
  overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.side-meta{font-size:12px;color:#94a3b8;margin-top:6px !important}
.side-arrow{
  font-size:22px;color:#cbd5e1;font-weight:300;align-self:center;flex-shrink:0;
}
.weekly-card{flex-direction:column;padding:20px 20px 18px}
.weekly-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.weekly-head h3{margin:0;font-size:17px;font-weight:700}
.badge{
  padding:4px 10px;border-radius:var(--r-pill);
  background:linear-gradient(135deg,#3b82f6,#1d4ed8);
  color:#fff;font-size:12px;font-weight:500;
  box-shadow:0 2px 6px rgba(29,78,216,.35);
}
.weekly-list{list-style:none;margin:0;padding:0}
.weekly-list li{padding:9px 0;border-bottom:1px dashed var(--c-line);font-size:14px}
.weekly-list li:last-child{border-bottom:0}
.weekly-list a{color:#374151;display:flex;gap:8px;align-items:center}
.weekly-list a:hover{color:var(--c-blue)}
.weekly-list .num{
  width:18px;height:18px;border-radius:50%;background:#eef2ff;color:#2563eb;
  font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;
  flex-shrink:0;
}

/* ===== 三栏功能卡 ===== */
.feature-row{
  display:grid;grid-template-columns:repeat(3,1fr);gap:18px;
  margin-bottom:28px;
}
@media (max-width:980px){.feature-row{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.feature-row{grid-template-columns:1fr}}
.feature-card{
  background:var(--c-card);border-radius:var(--r-card);
  padding:22px 24px;box-shadow:var(--sh-card);
  display:flex;flex-direction:column;gap:14px;min-height:160px;
  position:relative;overflow:hidden;
  transition:transform .2s,box-shadow .2s;
}
.feature-card:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(15,23,42,.10)}
.feature-card h3{
  font-size:18px;font-weight:700;margin:0;color:#1f2937;line-height:1.4;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.feature-tags{display:flex;gap:8px;align-items:center;font-size:12px;color:#94a3b8}
.feature-tags .sep{color:#cbd5e1}
.feature-tags span.tag{
  background:#f1f5f9;color:#475569;padding:2px 8px;border-radius:var(--r-pill);font-size:11px;
}
.feature-icon{
  position:absolute;right:18px;bottom:18px;width:72px;height:72px;
  opacity:.85;pointer-events:none;
}

/* ===== 最新资讯 + 商城广告位 ===== */
.latest-row{
  display:grid;grid-template-columns:1fr 340px;gap:20px;
  margin-bottom:28px;align-items:start;
}
@media (max-width:980px){.latest-row{grid-template-columns:1fr}}
.latest-main,.ad-slot{
  background:var(--c-card);border-radius:var(--r-card);
  padding:22px 24px;box-shadow:var(--sh-card);
}
/* 右栏容器：内部多个运营位卡片竖直排列
   （.latest-row 是两列 grid，多块必须共用一个 grid item，否则第二块会掉到左列） */
.latest-side{display:flex;flex-direction:column;gap:20px;min-width:0}
.row-head{
  display:flex;align-items:baseline;gap:10px;
  border-bottom:1px solid var(--c-line);padding-bottom:12px;margin-bottom:16px;
}
.row-title{margin:0;font-size:20px;font-weight:800;color:#1f2937;letter-spacing:.5px}
.row-sub{font-size:11px;color:#94a3b8;letter-spacing:2px;font-weight:600}
.latest-list{list-style:none;margin:0;padding:0}
.latest-list li{
  display:flex;gap:14px;align-items:flex-start;
  padding:12px 0;border-bottom:1px dashed var(--c-line);
}
.latest-list li:last-child{border-bottom:0}
.latest-thumb{
  width:96px;height:64px;border-radius:8px;overflow:hidden;flex-shrink:0;
  background:linear-gradient(135deg,#eef2ff,#dbeafe);
  display:flex;align-items:center;justify-content:center;
}
.latest-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .25s}
.latest-list li:hover .latest-thumb img{transform:scale(1.06)}
.thumb-ph{
  font-size:26px;font-weight:700;color:#60a5fa;
  background:linear-gradient(135deg,#60a5fa,#2563eb);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
}
.latest-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.latest-title{
  font-size:15px;line-height:1.5;color:#1f2937;font-weight:600;
  overflow:hidden;text-overflow:ellipsis;display:-webkit-box;
  -webkit-line-clamp:2;-webkit-box-orient:vertical;
  transition:color .15s;
}
.latest-title:hover{color:var(--c-blue)}
.latest-meta{display:flex;gap:14px;align-items:center;font-size:12px;color:#94a3b8}
.latest-meta .lm-author{color:#64748b}

/* 广告位（商城推荐） */
.ad-list{display:flex;flex-direction:column;gap:14px}
.ad-card{
  display:flex;gap:12px;align-items:center;
  background:#f8fafc;border:1px solid #eef2f7;border-radius:12px;
  padding:10px 12px;transition:transform .2s,border-color .2s,box-shadow .2s;
}
.ad-card:hover{transform:translateY(-2px);border-color:#bfdbfe;box-shadow:0 6px 16px rgba(37,99,235,.10)}
.ad-thumb{
  position:relative;width:64px;height:64px;border-radius:10px;overflow:hidden;flex-shrink:0;
  background:linear-gradient(135deg,#1e3a8a,#2563eb);
  display:flex;align-items:center;justify-content:center;
}
.ad-thumb img{width:100%;height:100%;object-fit:cover}
.ad-ph{font-size:22px;background:linear-gradient(135deg,#93c5fd,#bfdbfe);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.ad-new{
  position:absolute;top:3px;right:3px;
  background:linear-gradient(135deg,#f59e0b,#fb923c);
  color:#fff;font-size:9px;font-style:normal;font-weight:700;
  padding:1px 6px;border-radius:8px;letter-spacing:.5px;
}
.ad-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.ad-name{
  font-size:14px;font-weight:600;color:#1f2937;line-height:1.4;
  overflow:hidden;text-overflow:ellipsis;display:-webkit-box;
  -webkit-line-clamp:2;-webkit-box-orient:vertical;
}
.ad-price{display:flex;align-items:baseline;gap:8px;font-size:12px}
.ad-price b{color:#e11d48;font-size:15px}
.ad-price s{color:#94a3b8}
.ad-btn{
  align-self:flex-start;margin-top:4px;
  font-size:11px;color:#2563eb;background:#eef2ff;
  padding:2px 10px;border-radius:999px;font-weight:600;
  transition:background .15s,color .15s;
}
.ad-card:hover .ad-btn{background:var(--c-blue);color:#fff}
.ad-empty{color:#94a3b8;font-size:14px;text-align:center;padding:32px 0}

/* ===== 详情页：左内容 + 右广告位 ===== */
.article-row{
  display:grid;grid-template-columns:1fr 320px;gap:20px;align-items:start;
}
@media (max-width:980px){.article-row{grid-template-columns:1fr}}
.article-main{
  background:var(--c-card);border-radius:var(--r-card);
  padding:28px 32px 32px;box-shadow:var(--sh-card);
  min-width:0;
}
@media (max-width:640px){.article-main{padding:20px}}
.crumb{
  font-size:13px;color:#94a3b8;
  display:flex;align-items:center;gap:6px;flex-wrap:wrap;
  padding-bottom:12px;border-bottom:1px solid var(--c-line);margin-bottom:18px;
}
.crumb a{color:#2563eb;transition:color .15s}
.crumb a:hover{color:#1d4ed8}
.crumb .sep{color:#cbd5e1}
.crumb .cur{color:#64748b;max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.a-title{
  font-size:30px;line-height:1.35;font-weight:800;color:#111827;
  margin:0 0 14px;letter-spacing:.3px;
}
.a-meta{
  display:flex;flex-wrap:wrap;gap:16px;align-items:center;
  font-size:13px;color:#94a3b8;
  padding-bottom:16px;border-bottom:1px solid var(--c-line);margin-bottom:22px;
}
.a-meta span{display:inline-flex;align-items:center;gap:5px}
.a-meta .mi{width:14px;height:14px;color:#b6c2d4}
.geo-box{
  margin:20px 0;padding:14px 18px;
  background:#f8fafc;border-left:3px solid var(--c-blue);
  border-radius:0 8px 8px 0;
}
.geo-box h2{font-size:15px;font-weight:700;margin:0 0 8px;color:#1f2937}
.geo-box p{margin:0;color:#4b5563;line-height:1.8}
.geo-box ul{margin:8px 0 0;padding-left:20px;color:#4b5563;line-height:1.9}
.geo-box li{margin:2px 0}
.a-content{
  font-size:16px;line-height:1.95;color:#374151;
  word-break:break-word;overflow-wrap:break-word;
}
.a-content h2,.a-content h3{
  color:#111827;line-height:1.4;margin:1.6em 0 .6em;
}
.a-content h2{font-size:22px;border-bottom:1px solid var(--c-line);padding-bottom:8px}
.a-content h3{font-size:18px}
.a-content p{margin:.8em 0}
.a-content img{max-width:100%;height:auto;border-radius:8px;margin:.6em 0}
.a-content blockquote{
  margin:1em 0;padding:10px 16px;color:#6b7280;
  background:#f8fafc;border-left:3px solid #d1d9e6;border-radius:0 6px 6px 0;
}
.a-content pre{
  background:#0f172a;color:#e2e8f0;padding:14px 16px;border-radius:8px;
  overflow-x:auto;font-size:13px;line-height:1.7;
}
.a-content code{font-family:Consolas,"Courier New",monospace;font-size:.92em}
.a-content a{color:#2563eb;text-decoration:underline}
/* GEO 区块 */
.geo-tags .tag{
  display:inline-block;margin:0 6px 6px 0;padding:2px 12px;
  font-size:13px;color:#2563eb;background:#eef2ff;border-radius:999px;
}
.faq-item{margin:12px 0}
.faq-q{font-size:15px;margin:0 0 4px;color:#1f2937}
.faq-a p{margin:0;color:#6b7280}
.a-keywords{margin-top:20px;padding:10px 14px;background:#f8fafc;border-radius:8px;font-size:13px;color:#6b7280}
.a-foot{margin-top:26px;padding-top:16px;border-top:1px solid var(--c-line)}
.a-foot a{font-size:13px;color:#2563eb;transition:color .15s}
.a-foot a:hover{color:#1d4ed8}

/* 右侧广告位（复用 ad-* 基础样式，附补充） */
.article-aside{display:flex;flex-direction:column;gap:16px;min-width:0}
.aside-box{
  background:var(--c-card);border-radius:var(--r-card);
  padding:20px;box-shadow:var(--sh-card);
}
.aside-box .ad-card{margin-bottom:0}
.aside-box .ad-list{display:flex;flex-direction:column;gap:12px}
.aside-quote p{font-size:13px;color:#6b7280;line-height:1.8;margin:0 0 14px}
.aside-cta{
  display:block;text-align:center;
  padding:9px 0;border-radius:999px;
  background:var(--c-grad);color:#fff;font-size:13px;font-weight:600;
  box-shadow:0 3px 10px rgba(30,58,138,.3);
  transition:transform .15s,box-shadow .15s;
}
.aside-cta:hover{transform:translateY(-1px);box-shadow:0 5px 14px rgba(30,58,138,.42)}

/* ===== 分类列表页头部 ===== */
.list-hero{
  background:var(--c-card);border-radius:var(--r-card);
  padding:22px 28px 18px;box-shadow:var(--sh-card);
  margin-bottom:20px;
}
.list-title{
  font-size:28px;line-height:1.3;font-weight:800;color:#111827;
  margin:0 0 14px;letter-spacing:.5px;
}
.list-hero .crumb{border-bottom:0;padding-bottom:0;margin-bottom:16px}
.cat-nav{display:flex;flex-wrap:wrap;gap:8px}
.cat-nav a{
  padding:6px 16px;font-size:13px;color:#475569;
  border:1px solid var(--c-line);border-radius:999px;
  background:#fff;transition:all .15s;
}
.cat-nav a:hover{border-color:#93c5fd;color:var(--c-blue)}
.cat-nav a.active{
  background:var(--c-blue);border-color:var(--c-blue);color:#fff;font-weight:600;
  box-shadow:0 2px 8px rgba(37,99,235,.35);
}

/* 分页导航（最新资讯内嵌版） */
.pagination{
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  margin-top:18px;padding-top:14px;border-top:1px dashed var(--c-line);
}
.pagination-inside{margin-top:18px}
.pg-btn{
  padding:7px 14px;border-radius:8px;font-size:13px;
  color:#475569;background:#f1f5f9;transition:all .15s;
}
.pg-btn:hover{background:#e2e8f0;color:#1f2937}
.pg-btn.pg-disabled{color:#cbd5e1;background:#f8fafc;cursor:not-allowed}
.pg-num{
  min-width:34px;height:34px;padding:0 6px;border-radius:8px;
  display:flex;align-items:center;justify-content:center;
  font-size:13px;color:#475569;background:#fff;border:1px solid var(--c-line);
  transition:all .15s;
}
.pg-num:hover{border-color:#93c5fd;color:var(--c-blue)}
.pg-num.active{
  background:var(--c-blue);border-color:var(--c-blue);color:#fff;font-weight:600;
  box-shadow:0 2px 8px rgba(37,99,235,.35);
}
.pg-info{font-size:12px;color:#94a3b8;margin-left:auto}

/* ===== 底部筛选条：tabs + tags ===== */
.filter-bar{
  background:var(--c-card);border-radius:var(--r-card);
  padding:14px 20px;box-shadow:var(--sh-card);
  display:flex;flex-direction:column;gap:12px;
}
.filter-tabs{display:flex;gap:6px;flex-wrap:wrap;border-bottom:1px solid var(--c-line);padding-bottom:12px}
.filter-tabs a{
  padding:6px 16px;font-size:14px;color:#475569;border-radius:var(--r-pill);
  transition:all .15s;
}
.filter-tabs a:hover{background:#f1f5f9;color:#1f2937}
.filter-tabs a.active{color:#fff;background:var(--c-blue)}
.filter-tags{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.filter-tags .lbl{font-size:12px;color:#94a3b8;margin-right:4px}
.filter-tags a{
  font-size:13px;color:#64748b;
  padding:4px 12px;border-radius:var(--r-pill);
  transition:all .15s;
}
.filter-tags a:hover{background:#eef2ff;color:#2563eb}
.filter-tags a.active{background:#eef2ff;color:#2563eb;font-weight:600}

/* ===== 顶部搜索框：默认收起，点击放大镜向左展开 ===== */
.search-form{
  position:relative;display:flex;align-items:center;
  height:36px;flex-shrink:0;
  transition:width .35s cubic-bezier(.4,0,.2,1);
}
.search-form .search-btn{
  position:absolute;left:0;top:0;z-index:2;
  width:36px;height:36px;border-radius:50%;
  border:0;background:rgba(255,255,255,.10);color:#fff;
  display:flex;align-items:center;justify-content:center;cursor:pointer;
  transition:background .2s;
}
.search-form .search-btn:hover{background:rgba(255,255,255,.20)}
.search-form .search-input{
  width:0;height:36px;padding:0 0 0 36px;
  border:0;background:rgba(255,255,255,.10);color:#fff;
  border-radius:18px;font-size:14px;
  outline:0;opacity:0;pointer-events:none;
  transition:width .35s cubic-bezier(.4,0,.2,1),padding .35s,opacity .25s,background .2s;
}
.search-form .search-input::placeholder{color:rgba(255,255,255,.55)}
.search-form .search-input:focus{background:rgba(255,255,255,.20)}
.search-form .search-submit,
.search-form .search-close{
  position:absolute;right:6px;top:50%;transform:translateY(-50%);
  width:24px;height:24px;border-radius:50%;border:0;
  background:transparent;color:#fff;display:flex;align-items:center;justify-content:center;
  cursor:pointer;opacity:0;pointer-events:none;transition:opacity .2s,background .15s;
}
.search-form .search-close{background:rgba(255,255,255,.10)}
.search-form .search-submit:hover,
.search-form .search-close:hover{background:rgba(255,255,255,.25)}
/* 展开状态 */
.search-form.is-open{width:280px}
.search-form.is-open .search-input{
  width:280px;padding:0 60px 0 36px;opacity:1;pointer-events:auto;
}
.search-form.is-open .search-submit{opacity:1;pointer-events:auto;right:32px}
.search-form.is-open .search-close{opacity:1;pointer-events:auto;right:6px}
@media (max-width:640px){
  .search-form.is-open{width:200px}
  .search-form.is-open .search-input{width:200px}
}

/* ===== 搜索结果页 ===== */
.search-result{
  background:var(--c-card);border-radius:var(--r-card);
  padding:24px 28px;box-shadow:var(--sh-card);
  min-height:50vh;
}
@media (max-width:640px){.search-result{padding:18px}}
.search-list{list-style:none;margin:8px 0 0;padding:0}
.search-list li{
  display:flex;gap:16px;align-items:flex-start;
  padding:18px 0;border-bottom:1px solid var(--c-line);
}
.search-list li:last-child{border-bottom:0}
.sr-thumb{
  width:140px;height:90px;border-radius:10px;overflow:hidden;flex-shrink:0;
  background:linear-gradient(135deg,#eef2ff,#dbeafe);
  display:flex;align-items:center;justify-content:center;
  transition:transform .25s;
}
.sr-thumb img{width:100%;height:100%;object-fit:cover}
.search-list li:hover .sr-thumb img{transform:scale(1.06)}
.sr-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.sr-title{
  font-size:17px;font-weight:700;color:#1f2937;line-height:1.4;
  transition:color .15s;
}
.sr-title:hover{color:var(--c-blue)}
.sr-desc{font-size:13px;color:#64748b;line-height:1.6;margin:0;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
.sr-meta{display:flex;gap:14px;align-items:center;font-size:12px;color:#94a3b8;flex-wrap:wrap}
.sr-meta time{font-size:12px}
.search-empty{
  padding:60px 20px;text-align:center;color:#94a3b8;font-size:15px;
}
.search-empty p{margin:.4em 0}
.search-empty strong{color:var(--c-blue);margin:0 4px}
.search-empty .hint{font-size:13px;color:#cbd5e1}

/* ===== 页脚 ===== */
.site-footer{background:#0c1e4f;color:#94a3b8;padding:36px 0 28px;margin-top:40px}
.footer-top{display:flex;flex-wrap:wrap;gap:32px;justify-content:space-between;align-items:flex-start;border-bottom:1px solid rgba(148,163,184,.2);padding-bottom:20px;margin-bottom:16px}
.footer-brand{font-size:18px;font-weight:700;color:#fff;letter-spacing:1px;display:flex;align-items:center;flex-wrap:wrap;gap:10px}
.footer-brand .brand-word{font-size:20px;font-weight:800;color:#fff;letter-spacing:.5px;line-height:1.2}
.footer-brand .footer-logo{height:30px;display:block}
.footer-brand .suffix{color:#bfdbfe;font-weight:500;font-size:13px;letter-spacing:.5px}
.footer-sub{font-size:13px;color:#94a3b8;margin-top:6px}
.footer-friend-links{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px 24px;padding:14px 0 4px;border-bottom:1px solid rgba(148,163,184,.2);margin-bottom:14px;font-size:13px}
.footer-friend-links .fl-label{color:#94a3b8}
.footer-friend-links a{color:#cbd5e1;transition:color .15s}
.footer-friend-links a:hover{color:#fff}
.footer-friend-links a.fl-underline{text-decoration:underline;text-underline-offset:3px}
.footer-links{display:flex;gap:18px;font-size:13px}
.footer-links a{color:#cbd5e1;transition:color .15s}
.footer-links a:hover{color:#fff}
.footer-cols{display:flex;flex-wrap:wrap;gap:36px}
.footer-col{min-width:140px}
.footer-col-title{font-size:15px;font-weight:700;color:#fff;margin:0 0 12px;letter-spacing:1px}
.footer-col-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.footer-col-list a{color:#cbd5e1;font-size:13px;transition:color .15s}
.footer-col-list a:hover{color:#fff}
.footer-copy{font-size:12px;color:#64748b;text-align:center}
.footer-copy .footer-icp{color:inherit;margin-left:8px;text-decoration:none;transition:color .15s}
.footer-copy .footer-icp:hover{color:#93a4c4;text-decoration:underline;text-underline-offset:3px}

/* ===== 热搜关键词 ===== */
.hotwords-bar{
  background:var(--c-card);border-radius:var(--r-card);
  padding:18px 24px;box-shadow:var(--sh-card);margin-bottom:24px;
}
.hotwords-bar .row-head{margin-bottom:12px}
.hotwords{
  display:flex;flex-wrap:wrap;gap:10px;
}
.hotword{
  display:inline-flex;align-items:center;gap:6px;
  padding:6px 14px;border-radius:var(--r-pill,999px);
  background:#f1f5f9;color:#334155;font-size:14px;
  border:1px solid var(--c-line);transition:all .15s;
}
.hotword:hover{background:#e0ecff;color:#1d4ed8;border-color:#93c5fd;transform:translateY(-1px)}
.hw-rank{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:18px;height:18px;padding:0 4px;border-radius:6px;
  font-size:11px;font-weight:700;color:#fff;background:#cbd5e1;
}
.hw-rank.top{background:linear-gradient(135deg,#f97316,#ef4444);}
.hw-text{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ========== 评论组件 ========== */
.comment-wrap{margin-top:28px;padding:20px;border:1px solid #e5e7eb;border-radius:12px;background:#fff;}
.comment-head{display:flex;align-items:baseline;gap:10px;margin-bottom:14px;}
.comment-title{margin:0;font-size:17px;font-weight:700;color:#0f172a;}
.comment-sub{font-size:12px;color:#94a3b8;}
.comment-form .comment-form-row{margin-bottom:10px;}
.comment-input{width:100%;max-width:260px;height:36px;padding:0 12px;border:1px solid #e2e8f0;border-radius:8px;font-size:13px;color:#334155;box-sizing:border-box;outline:none;transition:border-color .2s;}
.comment-input:focus,.comment-textarea:focus{border-color:#2563eb;}
.comment-textarea{width:100%;min-height:90px;padding:10px 12px;border:1px solid #e2e8f0;border-radius:8px;font-size:13px;color:#334155;line-height:1.6;box-sizing:border-box;outline:none;resize:vertical;transition:border-color .2s;}
.comment-form-actions{display:flex;align-items:center;gap:12px;margin-top:10px;}
.comment-btn{height:34px;padding:0 20px;border:none;border-radius:8px;font-size:13px;font-weight:600;color:#fff;background:linear-gradient(135deg,#3b82f6,#2563eb);cursor:pointer;transition:opacity .2s;}
.comment-btn:hover{opacity:.9;}
.comment-btn:disabled{opacity:.6;cursor:not-allowed;}
.comment-tip{font-size:12px;color:#94a3b8;}
.comment-tip.is-error{color:#ef4444;}
.comment-tip.is-ok{color:#16a34a;}
.comment-list{margin-top:18px;}
.comment-empty{padding:24px 0;text-align:center;font-size:13px;color:#94a3b8;}
.cm-item{display:flex;gap:10px;padding:14px 0;border-bottom:1px dashed #eef2f7;}
.cm-item:last-child{border-bottom:none;}
.cm-avatar{flex:none;width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#60a5fa,#8b5cf6);color:#fff;font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center;}
.cm-avatar-sm{width:26px;height:26px;font-size:12px;}
.cm-body{flex:1;min-width:0;}
.cm-meta{display:flex;align-items:center;gap:8px;margin-bottom:4px;}
.cm-name{font-size:13px;font-weight:600;color:#334155;}
.cm-badge{font-size:11px;color:#2563eb;border:1px solid #bfdbfe;border-radius:4px;padding:0 4px;}
.cm-time{font-size:11px;color:#94a3b8;}
.cm-content{font-size:13px;color:#475569;line-height:1.7;word-break:break-word;}
.cm-actions{margin-top:6px;}
.cm-reply-btn{border:none;background:none;padding:0;font-size:12px;color:#64748b;cursor:pointer;}
.cm-reply-btn:hover{color:#2563eb;}
.cm-replies{margin-top:10px;padding:10px 12px;background:#f8fafc;border-radius:8px;}
.cm-reply-item{padding:10px 0;}
/* 嵌套回复层：去掉外框，仅保留内边距与缩进 */
.cm-replies .cm-replies{background:transparent;padding:0 0 0 4px;border-radius:0;}
/* 评论回复标识：昵称后「回复 @谁」 */
.cm-reply-to{color:#94a3b8;font-size:12px;margin-left:6px;}
/* 分页器 */
.comment-pager{display:flex;align-items:center;justify-content:center;gap:10px;padding:16px 0 4px;font-size:13px;color:#64748b;}
.cm-page-btn{height:28px;padding:0 12px;border:1px solid #e2e8f0;border-radius:6px;background:#fff;color:#334155;font-size:12px;cursor:pointer;transition:all .2s;}
.cm-page-btn:hover:not(:disabled){border-color:#2563eb;color:#2563eb;}
.cm-page-btn:disabled{opacity:.5;cursor:not-allowed;background:#f8fafc;}
.cm-page-info{color:#94a3b8;}
/* 评论提示内嵌登录链接 */
.tip-login-link{color:#2563eb;text-decoration:underline;margin-left:6px;}
.tip-login-link:hover{color:#1d4ed8;}
/* 顶部右上角登录/注册小按钮 */
.nav-auth{display:flex;align-items:center;gap:6px;margin-left:6px;}
.auth-btn{display:inline-flex;align-items:center;height:28px;padding:0 12px;border-radius:14px;font-size:12px;font-weight:500;text-decoration:none;transition:all .2s;white-space:nowrap;}
.auth-btn-login{color:#475569;border:1px solid #e2e8f0;background:#fff;}
.auth-btn-login:hover{color:#2563eb;border-color:#2563eb;background:#fff;}
.auth-btn-register{color:#fff;background:linear-gradient(135deg,#3b82f6,#2563eb);border:1px solid transparent;}
.auth-btn-register:hover{opacity:.92;color:#fff;}
/* 已登录态（nav-auth.js 渲染）：购物车 / 我的订单 / 头像（统一白底） */
.auth-btn-cart{height:28px;padding:0 10px;color:#475569;border:1px solid #e2e8f0;background:#fff;gap:4px;}
.auth-btn-cart:hover{color:#2563eb;border-color:#2563eb;background:#fff;}
.auth-btn-cart svg{width:14px;height:14px;flex:0 0 14px;}
.auth-btn-cart .auth-cart-text{font-size:12px;font-weight:500;line-height:1;}
.auth-btn-avatar{padding:0;width:34px;height:34px;border-radius:50%;overflow:hidden;background:#f1f5f9;border:1px solid #e2e8f0;justify-content:center;position:relative;}
.auth-btn-avatar:hover{border-color:#2563eb;box-shadow:0 0 0 2px rgba(37,99,235,.18);background:#f1f5f9;}
.auth-btn-avatar .auth-avatar-img,
.auth-btn-avatar .auth-avatar-default{width:100%;height:100%;display:block;object-fit:cover;}
.auth-btn-avatar .auth-avatar-default{padding:0;}

/* 移动端：右侧操作区（搜索+购物车/我的订单/头像）换行，避免撑开整页 */
@media (max-width:640px){
  .top-nav .nav-inner{flex-wrap:wrap;height:auto;padding-top:10px;padding-bottom:10px;}
  .brand-short-name{font-size:15px;}
  .brand-logo{height:28px;}
  .nav-menu{justify-content:flex-start;flex:1;min-width:0;flex-wrap:wrap;gap:4px 10px;}
  .nav-menu > .nav-item,
  .nav-menu > a,
  .nav-menu .nav-item.has-children > .nav-link{padding:4px 8px;font-size:14px;}
  .nav-menu a.active::after,
  .nav-menu .nav-item.has-children.active > .nav-link::after{display:none;}
  .nav-right{width:100%;justify-content:flex-end;margin-top:8px;gap:10px;}
  .search-form{order:0;}
  .nav-auth{order:1;margin-left:0;}
}

/* 评论赞/踩 */
.cm-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
.cm-votes{display:inline-flex;align-items:center;gap:4px;margin-left:auto;}
.cm-vote{display:inline-flex;align-items:center;gap:4px;border:none;background:none;padding:2px 8px;font-size:12px;color:#94a3b8;cursor:pointer;border-radius:6px;transition:color .2s,background .2s;}
.cm-vote:hover{color:#2563eb;background:#f1f5f9;}
.cm-vote.is-active{color:#2563eb;font-weight:600;}
.cm-vote-dislike:hover{color:#ef4444;}
.cm-vote-dislike.is-active{color:#ef4444;}
.cm-vote-ico{width:15px;height:15px;flex:none;vertical-align:-2px;}
.cm-vote-num{min-width:10px;text-align:center;}

/* ===== 相关AI工具（资讯详情右栏，数据来自后台内容「相关AI工具」） =====
   ⚠️⚠️ 作用域必须是 .aside-tools，不能写成裸 .at-*：
   本文件被 common/header.html **全局引入**，而这批 .at-* 与会员中心
   shop/css/ucenter.css 的 .at-*（AI工具收录页 / 我的收藏页）**同名但语义不同**。
   同 specificity 时，后加载的 ucenter.css 只能覆盖它声明过的属性，漏过来的会生效 ——
   实测 .at-logo 的 width:42px;height:42px;overflow:hidden;background:#eef2ff 漏进
   「添加收录申请」弹窗，把 96×96 的 LOGO 上传框压成 42×42 且裁掉预览，提示文字被挤成窄柱。
   加 .aside-tools 前缀后 specificity 升到 0,2,0，且只在资讯详情右栏（news/info.html:101）
   命中；aitool / favorite 页无 .aside-tools 祖先，天然隔离。 */
.aside-tools .at-list{display:flex;flex-direction:column;gap:10px}
.aside-tools .at-card{
  display:flex;gap:10px;align-items:center;padding:8px;border-radius:10px;
  border:1px solid #eef2f7;background:#fff;text-decoration:none;
  transition:border-color .18s,box-shadow .18s,transform .18s;
}
.aside-tools .at-card:hover{border-color:#bfdbfe;box-shadow:0 4px 14px rgba(37,99,235,.10);transform:translateY(-1px)}
.aside-tools .at-logo{
  flex:none;width:42px;height:42px;border-radius:10px;overflow:hidden;background:#eef2ff;
  display:flex;align-items:center;justify-content:center;
}
.aside-tools .at-logo img{width:100%;height:100%;object-fit:cover;display:block}
.aside-tools .at-letter{font-size:16px;font-weight:800;color:var(--c-blue)}
.aside-tools .at-info{min-width:0;display:flex;flex-direction:column;gap:2px}
.aside-tools .at-name{font-size:13px;font-weight:700;color:#1f2937;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.aside-tools .at-card:hover .at-name{color:var(--c-blue)}
.aside-tools .at-slogan{
  font-size:12px;color:#6b7280;line-height:1.5;
  display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;
}
.aside-tools .at-meta{font-size:11px;color:#9ca3af}
.aside-tools .at-empty{font-size:13px;color:#9ca3af;line-height:1.8;padding:10px 0;text-align:center}
.aside-tools .at-empty a{color:var(--c-blue);font-weight:600}
