/* CMS - 依赖 tokens.css + front-theme.css */
.cms-body{margin:0;background:var(--sa-bg);color:var(--sa-text);font-family:"PingFang SC","Microsoft YaHei",sans-serif;}
.cms-wrap{width:min(var(--sa-wrap,1160px),calc(100% - 32px));margin:0 auto;}
.cms-header{background:#fff;border-bottom:1px solid var(--sa-line);position:sticky;top:0;z-index:20;}
.cms-header-inner{display:flex;align-items:center;gap:20px;min-height:64px;}
.cms-logo{font-size:20px;font-weight:700;color:var(--sa-text-title);text-decoration:none;white-space:nowrap;}
.cms-nav{display:flex;flex-wrap:wrap;gap:8px 14px;flex:1;}
.cms-nav-item{color:var(--sa-text-secondary);text-decoration:none;padding:6px 0;}
.cms-nav-item:hover{color:var(--sa-brand);}
/* 首页不再内嵌搜索（全站头已有搜索） */
.cms-search,.cms-search-inline{display:none!important;}
.cms-main{padding:20px 0 48px;}
.cms-meta-cat{color:var(--sa-brand);font-weight:500;}
/* 旧版顶部 nav 隐藏；分类条按问答样式展示 */
.cms-nav{display:none!important;}
.cms-cat-bar{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
    flex-wrap:wrap;
    background:#fff;
    border:1px solid var(--sa-line);
    border-radius:12px;
    padding:12px 14px;
    margin-bottom:16px;
}
.cms-cat-list{display:flex;flex-wrap:wrap;gap:6px;flex:1;min-width:0;}
.cms-cat-item{
    display:inline-flex;
    align-items:center;
    height:30px;
    padding:0 14px;
    border-radius:4px;
    border:1px solid var(--sa-line);
    background:#fff;
    color:var(--sa-text-secondary);
    text-decoration:none;
    font-size:13px;
    line-height:28px;
    transition:all .15s ease;
}
.cms-cat-item:hover{color:var(--sa-brand);border-color:var(--sa-brand-soft-2);}
.cms-cat-item.is-on{
    background:var(--sa-brand);
    border-color:var(--sa-brand);
    color:#fff;
}
.cms-cat-actions{display:flex;flex-wrap:wrap;gap:8px;flex-shrink:0;}
.cms-subcats{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px;}
.cms-footer{border-top:1px solid var(--sa-line);background:#fff;color:var(--sa-muted);padding:18px 0;text-align:center;font-size:13px;}

.cms-hero{display:grid;grid-template-columns:1.1fr 1fr;gap:18px;background:linear-gradient(135deg,var(--sa-brand-soft),#fff 55%);border:1px solid var(--sa-brand-soft-2);border-radius:14px;padding:28px;margin-bottom:20px;}
.cms-hero h1{margin:0 0 8px;font-size:30px;color:var(--sa-text-title);}
.cms-hero p{margin:0 0 16px;color:var(--sa-muted);line-height:1.7;}
.cms-hero-actions{display:flex;flex-wrap:wrap;gap:10px;}
.cms-hero-slides{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-content:start;}
.cms-slide-card{display:block;background:#fff;border:1px solid var(--sa-line-soft);border-radius:10px;overflow:hidden;text-decoration:none;color:var(--sa-text-title);transition:.2s;}
.cms-slide-card:hover{border-color:var(--sa-brand-soft-2);box-shadow:var(--sa-shadow-sm);}
.cms-slide-cover{height:88px;background:var(--sa-line-soft);display:flex;align-items:center;justify-content:center;}
.cms-slide-cover img{width:100%;height:100%;object-fit:cover;display:block;}
.cms-slide-ph{color:var(--sa-brand);font-weight:700;letter-spacing:1px;}
.cms-slide-title{padding:8px 10px;font-size:13px;line-height:1.4;height:44px;overflow:hidden;}

.cms-section{background:#fff;border:1px solid var(--sa-line);border-radius:12px;padding:18px 20px;margin-bottom:16px;}
.cms-section-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;}
.cms-section-title{margin:0 0 12px;font-size:17px;color:var(--sa-text-title);}
.cms-section-hd .cms-section-title{margin:0;}
.cms-more{color:var(--sa-brand);text-decoration:none;font-size:13px;}
.cms-grid{display:grid;grid-template-columns:1fr 300px;gap:16px;align-items:start;}
.cms-col-side{
  position:sticky;
  top:calc(var(--sa-header, 112px) + 16px);
  max-height:calc(100vh - var(--sa-header, 112px) - 32px);
  overflow-y:auto;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:thin;
}
.cms-col-side::-webkit-scrollbar{width:4px;}
.cms-col-side::-webkit-scrollbar-thumb{background:rgba(15,23,42,.15);border-radius:4px;}
.cms-pager{display:flex;gap:8px;align-items:center;justify-content:center;margin-top:18px;flex-wrap:wrap;}
.cms-pager a{color:var(--sa-brand);text-decoration:none;padding:4px 10px;border:1px solid var(--sa-line);border-radius:6px;min-width:34px;text-align:center;}
.cms-pager a:hover{border-color:var(--sa-brand);background:var(--sa-brand-soft);}
.cms-pager-num.is-on,.cms-pager a.is-on{background:var(--sa-brand);border-color:var(--sa-brand);color:#fff;}
.cms-pager span{color:var(--sa-muted);font-size:13px;}
.cms-col-main{min-width:0;}

.cms-article-list{list-style:none;margin:0;padding:0;}
.cms-article-item{display:flex;gap:14px;padding:14px 0;border-bottom:1px solid var(--sa-line-soft);align-items:stretch;}
.cms-article-item:last-child{border-bottom:0;}
.cms-article-thumb{flex:0 0 140px;width:140px;height:92px;border-radius:8px;overflow:hidden;background:var(--sa-line-soft);margin-left:auto;align-self:center;}
.cms-article-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.cms-article-body{flex:1;min-width:0;display:flex;flex-direction:column;min-height:92px;}
.cms-article-title{font-size:17px;color:var(--sa-text-title);text-decoration:none;font-weight:600;line-height:1.45;}
.cms-article-title:hover{color:var(--sa-brand);}
.cms-article-title .cms-badge{display:inline-block;margin-right:6px;padding:0 6px;border-radius:4px;background:var(--sa-brand,#1890ff);color:#fff;font-size:12px;font-weight:500;vertical-align:middle;}
.cms-article-desc{margin:8px 0;color:var(--sa-muted);line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.cms-article-body .cms-meta{margin-top:auto;padding-top:8px;justify-content:flex-start;}
.cms-meta{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;color:var(--sa-text-hint);font-size:13px;}
.cms-meta-info{display:flex;flex-wrap:wrap;gap:12px;align-items:center;}
.cms-meta-actions{display:flex;gap:8px;flex-wrap:wrap;margin-left:auto;}
.cms-act-btn{display:inline-flex;align-items:center;justify-content:center;padding:6px 14px;border-radius:6px;background:#e6f4ff;color:var(--sa-brand,#1890ff);text-decoration:none;font-size:13px;font-weight:500;border:1px solid #91caff;line-height:1.2;}
.cms-act-btn:hover{background:#bae0ff;color:var(--sa-brand,#1890ff);}
.cms-act-btn-primary{background:var(--sa-brand,#1890ff);color:#fff;border-color:var(--sa-brand,#1890ff);}
.cms-act-btn-primary:hover{opacity:.9;color:#fff;}
.cms-pay-tag{display:inline-block;margin-left:6px;padding:0 6px;border-radius:4px;background:var(--sa-hot-soft,#fff2e8);color:var(--sa-hot,#ff5722);font-size:12px;font-weight:500;vertical-align:middle;}

.cms-side-list{list-style:none;margin:0;padding:0;}
.cms-side-list li{padding:8px 0;border-bottom:1px dashed var(--sa-line-soft);display:flex;gap:8px;align-items:flex-start;}
.cms-side-list a{color:var(--sa-text-secondary);text-decoration:none;flex:1;line-height:1.45;}
.cms-side-list a:hover{color:var(--sa-brand);}
.cms-side-list em{font-style:normal;color:var(--sa-text-hint);font-size:12px;white-space:nowrap;}
.cms-rank-n{flex:0 0 18px;width:18px;height:18px;border-radius:4px;background:var(--sa-line-soft);color:var(--sa-muted);font-size:12px;display:inline-flex;align-items:center;justify-content:center;}
.cms-rank li:nth-child(-n+3) .cms-rank-n{background:var(--sa-brand);color:#fff;}

.cms-tags{display:flex;flex-wrap:wrap;gap:8px;}
.cms-tags a{display:inline-flex;gap:6px;align-items:center;background:var(--sa-line-soft);color:var(--sa-text-secondary);text-decoration:none;border-radius:999px;padding:4px 10px;font-size:13px;}
.cms-tags a:hover{background:var(--sa-brand-soft);color:var(--sa-brand);}
.cms-tags a em{font-style:normal;color:var(--sa-text-hint);}

.cms-flash-list{list-style:none;margin:0;padding:0;}
.cms-flash-list li{padding:9px 0;border-bottom:1px dashed var(--sa-line-soft);display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:start;}
.cms-flash-list a,.cms-flash-list span{color:var(--sa-text);text-decoration:none;line-height:1.45;font-size:14px;}
.cms-flash-list a:hover{color:var(--sa-brand);}
.cms-flash-list em{font-style:normal;color:var(--sa-text-hint);font-size:12px;white-space:nowrap;}
.cms-hot{display:inline-block;background:var(--sa-hot,#ff5722);color:#fff;font-size:10px;border-radius:3px;padding:1px 4px;font-style:normal;line-height:1.4;}

.cms-top-list{list-style:none;margin:0;padding:0;}
.cms-top-list li{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px dashed var(--sa-line-soft);}
.cms-top-list a{flex:1;color:var(--sa-text);text-decoration:none;}
.cms-top-list a:hover{color:var(--sa-brand);}
.cms-top-list em{font-style:normal;color:var(--sa-text-hint);font-size:12px;}
.cms-badge{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:4px;background:var(--sa-brand);color:#fff;font-size:12px;flex:0 0 20px;}

.cms-topic-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;}
.cms-topic-card{display:block;border:1px solid var(--sa-line-soft);border-radius:10px;overflow:hidden;text-decoration:none;background:#fff;transition:.2s;}
.cms-topic-card:hover{border-color:var(--sa-brand-soft-2);box-shadow:var(--sa-shadow-sm);}
.cms-topic-cover{height:110px;background:linear-gradient(135deg,var(--sa-brand),var(--sa-brand-active));display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;}
.cms-topic-cover img{width:100%;height:100%;object-fit:cover;display:block;}
.cms-topic-info{padding:12px;}
.cms-topic-info strong{display:block;color:var(--sa-text-title);margin-bottom:6px;}
.cms-topic-info p{margin:0;color:var(--sa-muted);font-size:13px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.cms-topic-banner{border-radius:14px;overflow:hidden;background:linear-gradient(135deg,var(--sa-brand),#096dd9);background-size:cover;background-position:center;margin-bottom:16px;position:relative;}
.cms-topic-banner::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.55),rgba(0,0,0,.25));}
.cms-topic-banner-inner{position:relative;padding:36px 28px;color:#fff;}
.cms-topic-banner h1{margin:8px 0;font-size:28px;}
.cms-topic-banner p{margin:0;opacity:.9;max-width:640px;line-height:1.7;}

.cms-links .cms-link-list{display:flex;flex-wrap:wrap;gap:10px 16px;}
.cms-link-list a{color:var(--sa-text-secondary);text-decoration:none;font-size:13px;}
.cms-link-list a:hover{color:var(--sa-brand);}
.cms-link-list img{height:28px;vertical-align:middle;}

.cms-breadcrumb{color:var(--sa-text-hint);font-size:13px;margin-bottom:10px;}
.cms-breadcrumb a{color:var(--sa-muted);text-decoration:none;}
.cms-breadcrumb a:hover{color:var(--sa-brand);}
.cms-page-title{margin:0 0 10px;font-size:26px;line-height:1.35;color:var(--sa-text-title);}
.cms-page-desc{color:var(--sa-muted);margin:0 0 16px;line-height:1.7;}
.cms-article-head{display:flex;gap:18px;align-items:stretch;margin:0 0 8px;}
.cms-article-head-main{flex:1;min-width:0;display:flex;flex-direction:column;}
.cms-article-head-main .cms-page-title{margin-bottom:auto;padding-bottom:12px;}
.cms-article-head-main .cms-meta{margin-top:auto;padding-top:8px;}
.cms-article-head-thumb{flex:0 0 180px;width:180px;height:120px;border-radius:8px;overflow:hidden;background:var(--sa-line-soft);align-self:center;}
.cms-article-head-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.cms-subcats{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px;}
.cms-subcats a{display:inline-block;padding:4px 12px;border-radius:999px;background:var(--sa-line-soft);color:var(--sa-text-secondary);text-decoration:none;font-size:13px;}
.cms-subcats a:hover{background:var(--sa-brand-soft);color:var(--sa-brand);}
.cms-content{line-height:1.85;font-size:16px;color:var(--sa-text);margin-top:18px;word-break:break-word;}
.cms-content img{max-width:100%;height:auto;border-radius:6px;cursor:zoom-in;}
.cms-content table{display:none !important;}
.cms-content h2,.cms-content h3{margin:1.4em 0 .6em;color:var(--sa-text-title);}
.cms-content p{margin:.8em 0;}
.cms-content pre{background:#0f172a;color:#e2e8f0;padding:14px;border-radius:8px;overflow:auto;}
.cms-content code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92em;}
.cms-content blockquote{margin:1em 0;padding:8px 14px;border-left:3px solid var(--sa-brand);background:var(--sa-brand-soft);color:var(--sa-text-secondary);}
.cms-download{
  margin-top:20px;padding:16px 18px;border:1px solid var(--sa-line-soft);border-radius:12px;
  background:linear-gradient(180deg,#f8fbff,#fff);display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
}
.cms-download-main{display:flex;align-items:center;gap:12px;min-width:0;}
.cms-download-main .layui-icon{font-size:28px;color:var(--sa-brand);}
.cms-download-main strong{display:block;color:var(--sa-text-title);font-size:15px;}
.cms-download-main p{margin:4px 0 0;color:var(--sa-muted);font-size:13px;}
.cms-download .layui-btn{border-radius:8px;flex-shrink:0;}
.cms-nearby{margin-top:24px;padding-top:16px;border-top:1px solid var(--sa-line-soft);display:flex;gap:16px;justify-content:space-between;align-items:stretch;color:var(--sa-muted);}
.cms-nearby-prev,.cms-nearby-next{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px;}
.cms-nearby-next{text-align:right;align-items:flex-end;}
.cms-nearby span{font-size:12px;color:var(--sa-text-hint,#94a3b8);}
.cms-nearby a{color:var(--sa-brand);text-decoration:none;font-size:14px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.cms-nearby em{font-style:normal;color:var(--sa-text-hint,#94a3b8);font-size:13px;}
.cms-comment-block{margin-top:28px;padding-top:20px;border-top:1px solid var(--sa-line-soft);width:100%;box-sizing:border-box;}
.cms-comment-block .cms-comment-form,.cms-comment-block .cms-comment-list{width:100%;}
.cms-comment-login{padding:20px;text-align:center;background:var(--sa-bg-soft,#f8fafc);border:1px dashed var(--sa-line);border-radius:10px;}
.cms-comment-login p{margin:0 0 12px;color:var(--sa-muted);}
@media (max-width:640px){
  .cms-article-item{flex-direction:column;}
  .cms-article-thumb{width:100%;flex:none;height:160px;margin-left:0;}
  .cms-meta{flex-direction:column;align-items:flex-start;}
  .cms-meta-actions{margin-left:0;}
  .cms-article-head{flex-direction:column;}
  .cms-article-head-thumb{width:100%;flex:none;height:180px;}
}
.cms-actions{display:flex;gap:10px;flex-wrap:wrap;}

.cms-paywall{margin:20px 0;border:1px dashed var(--sa-brand-soft-2);border-radius:12px;background:linear-gradient(180deg,var(--sa-brand-soft),#fff);padding:28px 20px;text-align:center;}
.cms-paywall h3{margin:0 0 8px;color:var(--sa-text-title);}
.cms-paywall p{margin:0 0 14px;color:var(--sa-muted);}
.cms-pay-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;}

.cms-comment-list{list-style:none;margin:0 0 20px;padding:0;}
.cms-comment-list li{padding:12px 0;border-bottom:1px solid var(--sa-line-soft);}
.cms-comment-hd{display:flex;justify-content:space-between;gap:12px;margin-bottom:6px;color:var(--sa-muted);}
.cms-comment-bd{color:var(--sa-text);line-height:1.7;white-space:pre-wrap;}
.cms-comment-form .layui-input,.cms-comment-form .layui-textarea{margin-bottom:4px;}
.cms-tip{margin-left:10px;color:var(--sa-text-hint);font-size:13px;}
.cms-pager{display:flex;gap:8px;align-items:center;justify-content:center;margin-top:18px;flex-wrap:wrap;}
.cms-pager a{color:var(--sa-brand);text-decoration:none;padding:4px 10px;border:1px solid var(--sa-line);border-radius:6px;min-width:34px;text-align:center;}
.cms-pager a:hover{border-color:var(--sa-brand);background:var(--sa-brand-soft);}
.cms-pager-num.is-on,.cms-pager a.is-on{background:var(--sa-brand);border-color:var(--sa-brand);color:#fff;}
.cms-pager span{color:var(--sa-muted);font-size:13px;}
@media (max-width:992px){
  .cms-col-side{position:static;max-height:none;overflow:visible;}
}
.cms-empty{color:var(--sa-text-hint);padding:18px 0;}
.cms-mt{margin-top:16px;}
.cms-ad-box img{max-width:100%;height:auto;border-radius:8px;display:block;}
.cms-ad-text{display:block;padding:10px 12px;background:var(--sa-brand-soft);border-radius:8px;color:var(--sa-brand);text-decoration:none;}
.cms-contribute-form .layui-form-label{width:70px;}
.cms-contribute-form .layui-input-block{margin-left:100px;}
.cms-audit-0{color:#faad14;}
.cms-audit-1{color:#52c41a;}
.cms-audit-2{color:#ff4d4f;}

@media (max-width:900px){
  .cms-hero{grid-template-columns:1fr;padding:22px 18px;}
  .cms-hero-slides{grid-template-columns:1fr 1fr;}
  .cms-grid{grid-template-columns:1fr;}
  .cms-article-thumb{flex-basis:110px;width:110px;height:74px;}
  .cms-hero h1,.cms-page-title{font-size:22px;}
  .cms-topic-grid{grid-template-columns:1fr 1fr;}
  .cms-contribute-form .layui-form-label{width:auto;float:none;display:block;text-align:left;padding:0 0 6px;}
  .cms-contribute-form .layui-input-block{margin-left:0;}
  .cms-flash-list li{grid-template-columns:auto 1fr;gap:6px;}
  .cms-flash-list em{grid-column:2;}
  .cms-nearby{flex-direction:column;}
  .cms-nearby-next{text-align:left;align-items:flex-start;}
}
@media (max-width:560px){
  .cms-article-item{flex-direction:column;}
  .cms-article-thumb{width:100%;height:160px;flex-basis:auto;}
  .cms-hero-slides{grid-template-columns:1fr;}
  .cms-topic-grid{grid-template-columns:1fr;}
  .cms-hero-actions .layui-btn{width:100%;}
}


/* 二级分类条 */
.cms-cat-wrap{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;width:100%;}
.cms-subcat-list{display:flex;flex-wrap:wrap;align-items:center;gap:6px;width:100%;margin-top:10px;padding-top:10px;border-top:1px dashed var(--sa-line-soft);}
.cms-subcat-label{font-size:12px;color:var(--sa-text-hint);margin-right:4px;}
.cms-subcat-list .cms-cat-item{height:28px;line-height:26px;padding:0 12px;font-size:12px;}
body.has-page-banner .cms-main{padding-top:16px;}
/* CMS 头图：居中大气排版 + 与导航拉开间距 */
body.has-page-banner .sa-page-banner--cms,
body.cms-body.has-page-banner .cms-banner {
  padding: calc(var(--sa-header, 112px) + 72px) 24px 56px !important;
  min-height: max(320px, calc(var(--sa-header, 112px) + 240px));
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.cms-banner-inner {
  position: relative;
  z-index: 2;
  width: min(720px, 100%);
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.cms-banner-kicker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 5px 14px;
  margin-bottom: 16px;
  border-radius: 999px;
  background: rgba(255,255,255,.82);
  border: 1px solid rgba(24,144,255,.22);
  color: var(--sa-brand, #1890ff);
  font-size: 13px;
  font-weight: 600;
  backdrop-filter: blur(8px);
}
.cms-banner.has-image .cms-banner-kicker {
  background: rgba(255,255,255,.16);
  border-color: rgba(255,255,255,.28);
  color: #fff;
}
.cms-banner-title {
  margin: 0 0 12px;
  font-size: clamp(28px, 4vw, 42px);
  font-weight: 800;
  letter-spacing: .02em;
  line-height: 1.2;
  color: var(--sa-text-title, #0f172a);
}
.cms-banner.has-image .cms-banner-title {
  color: #fff;
  text-shadow: 0 2px 18px rgba(0,0,0,.28);
}
.cms-banner-title::after {
  content: "";
  display: block;
  width: 48px;
  height: 3px;
  margin: 14px auto 0;
  border-radius: 2px;
  background: var(--sa-brand, #1890ff);
}
.cms-banner.has-image .cms-banner-title::after {
  background: rgba(255,255,255,.85);
}
.cms-banner-sub {
  margin: 0;
  max-width: 520px;
  font-size: 15px;
  line-height: 1.75;
  color: var(--sa-muted, #64748b);
}
.cms-banner.has-image .cms-banner-sub {
  color: rgba(255,255,255,.88);
}
.cms-banner-actions { margin-top: 22px; }
.cms-banner-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 120px;
  height: 40px;
  padding: 0 22px;
  border-radius: 8px;
  background: var(--sa-brand, #1890ff);
  color: #fff !important;
  text-decoration: none;
  font-size: 14px;
  font-weight: 600;
}
.cms-banner-btn:hover { opacity: .92; color: #fff !important; }
.cms-banner.has-image .cms-banner-btn {
  background: #fff;
  color: var(--sa-brand, #1890ff) !important;
}
