/* ============================================================
   topic-v7.css — 2026-09-02（由 topic-basics-v7.css 泛化，作用域 .topic-page，全专题通用）
   专题页 V7 卡片网格改版（V6 设计稿落地方）· 全专题共享版
   规则限定在 .topic-page（body 类），只影响专题页，不影响首页/文章页
   定稿要求：无「N 个问题」统计行 / 无主题筛选行 / 卡片无主题胶囊
   ============================================================ */

/* ===================== Hero（V6 版式，搜索融入 hero） ===================== */
.topic-page .v7-hero{
  display:grid;grid-template-columns:1.15fr 1fr;gap:56px;align-items:center;
  max-width:none;padding:44px 0 48px;
}
/* ---- 排行榜卡 · 最新收录问答（2026-09-02 二稿：与问答卡同款设计语言；数据源 data.js UPDATES） ---- */
.topic-page .v7-art{position:relative;height:440px;}
.topic-page{
  --rank-green:#3F8556;
  --rank-amber:#B97E14;
  --rank-plum:#9A5C7D;
}
[data-theme="dark"] .topic-page{
  --rank-green:#6FB08A;
  --rank-amber:var(--sun);
  --rank-plum:#C08CAD;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme]) .topic-page{
    --rank-green:#6FB08A;
    --rank-amber:var(--sun);
    --rank-plum:#C08CAD;
  }
}
.topic-page .rank-card{
  position:absolute;inset:0;display:flex;flex-direction:column;
  background:var(--surface);border:1.5px solid rgba(232,106,92,.42);border-radius:24px;
  padding:22px 24px 14px;overflow:hidden;
}
.topic-page .rank-head{display:flex;align-items:baseline;gap:9px;padding-bottom:12px;border-bottom:1px solid var(--line);}
.topic-page .rank-dot{width:8px;height:8px;border-radius:50%;background:var(--warm);align-self:center;flex:0 0 auto;}
.topic-page .rank-head b{font-size:16.5px;font-weight:700;color:var(--ink);}
.topic-page .rank-head small{margin-left:auto;font-size:11.5px;color:var(--muted);font-weight:500;}
.topic-page .rank-list{list-style:none;margin:0;padding:0;flex:1 1 0;min-height:0;overflow:hidden;display:flex;flex-direction:column;}
.topic-page .rank-list li{flex:1;min-height:0;border-bottom:1px dashed var(--line);}
.topic-page .rank-list li:last-child{border-bottom:none;}
.topic-page .rank-list a{
  display:flex;align-items:center;gap:13px;height:100%;padding:4px 2px;
  text-decoration:none;transition:background .2s;border-radius:10px;
}
.topic-page .rank-list a:hover{background:var(--surface-hover);}
.topic-page .rank-num{
  font-family:Georgia,"Times New Roman",serif;font-style:italic;font-weight:700;
  font-size:22px;line-height:1;flex:0 0 32px;text-align:center;letter-spacing:-1px;
}
.topic-page .rank-list li:nth-child(1) .rank-num{color:var(--warm);}
.topic-page .rank-list li:nth-child(2) .rank-num{color:var(--brand-2);}
.topic-page .rank-list li:nth-child(3) .rank-num{color:var(--rank-green);}
.topic-page .rank-list li:nth-child(4) .rank-num{color:var(--rank-amber);}
.topic-page .rank-list li:nth-child(5) .rank-num{color:var(--rank-plum);}
.topic-page .rank-body{flex:1;min-width:0;}
.topic-page .rank-q{
  font-size:13.5px;font-weight:700;color:var(--ink);line-height:1.45;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  transition:color .2s;
}
.topic-page .rank-list a:hover .rank-q{color:var(--warm);}
.topic-page .rank-meta{margin-top:2px;font-size:11px;color:var(--muted);}
.topic-page .rank-meta em{font-style:normal;color:var(--warm);font-weight:700;margin-right:8px;}
.topic-page .rank-arrow{flex:0 0 auto;color:var(--muted);opacity:0;transform:translateX(-6px);transition:opacity .2s,transform .2s;}
.topic-page .rank-arrow svg{width:15px;height:15px;display:block;}
.topic-page .rank-list a:hover .rank-arrow{opacity:1;transform:translateX(0);color:var(--warm);}
.topic-page .rank-foot{
  display:flex;align-items:center;justify-content:center;gap:5px;flex:0 0 auto;
  padding:9px 0 4px;border-top:1px solid var(--line);
  font-size:12px;font-weight:600;color:var(--sub);text-decoration:none;transition:color .2s;
}
.topic-page .rank-foot:hover{color:var(--warm);}
.topic-page .rank-foot svg{width:13px;height:13px;transition:transform .2s;}
.topic-page .rank-foot:hover svg{transform:translateX(3px);}
.topic-page .v7-title{
  font-size:clamp(32px,4.4vw,48px);line-height:1.28;font-weight:800;
  letter-spacing:-.01em;color:var(--ink);margin:0;
}
.topic-page .v7-title em{
  font-style:normal;color:var(--warm);position:relative;white-space:nowrap;
}
.topic-page .v7-title em::after{
  content:"";position:absolute;left:0;right:0;bottom:3px;height:12px;
  background:var(--warm-soft);z-index:-1;border-radius:4px;
}
.topic-page .v7-sub{
  margin-top:16px;font-size:15.5px;color:var(--sub);max-width:32em;line-height:1.8;
}
.topic-page .v7-sub strong{color:var(--ink);font-weight:700;}

.topic-page .v7-search{
  margin-top:26px;display:flex;max-width:500px;background:var(--surface);
  border:1.5px solid var(--line);border-radius:16px;padding:6px;
  transition:border-color .2s,box-shadow .2s;
}
.topic-page .v7-search:focus-within{
  border-color:var(--brand);box-shadow:0 6px 24px var(--brand-glow);
}
.topic-page .v7-search input{
  flex:1;border:0;outline:0;font-size:14.5px;background:transparent;
  color:var(--ink);min-width:0;padding:0 12px;font-family:inherit;
}
.topic-page .v7-search input::placeholder{color:var(--muted);}
.topic-page .v7-search button{
  flex:none;border:0;cursor:pointer;background:var(--brand);color:#fff;
  font-size:14px;font-weight:600;padding:11px 26px;border-radius:12px;
  transition:background .2s;font-family:inherit;
}
.topic-page .v7-search button:hover{background:var(--brand-2);}

.topic-page .qa-section{padding-top:6px;max-width:none;width:100%;}
.topic-page header{max-width:var(--max-width);}
.topic-page .container{max-width:var(--max-width);}
.topic-page .qa-section::before{display:none;}
.topic-page .qa-list{
  display:grid;grid-template-columns:repeat(3,1fr);gap:18px;
}

/* ---------- 单张问答卡 ---------- */
.topic-page .qa-item{
  position:relative;display:flex;flex-direction:column;
  background:var(--surface);border:1.5px solid var(--line);border-radius:24px;
  padding:24px 24px 20px;min-height:190px;overflow:hidden;cursor:pointer;
  transition:transform .25s cubic-bezier(.22,.61,.36,1),box-shadow .25s,border-color .2s;
}
.topic-page .qa-item:hover{
  transform:translateY(-4px);box-shadow:0 12px 32px rgba(15,42,54,.11);
}
/* 序号：右上角衬线斜体水印（替代旧圆形徽章） */
.topic-page .qa-item .qa-num{
  position:absolute;top:10px;right:16px;left:auto;width:auto;height:auto;
  font-family:Georgia,"Times New Roman",serif;font-style:italic;
  font-size:52px;font-weight:700;line-height:1;opacity:.13;letter-spacing:-2px;
  background:none;color:var(--qacc,var(--brand-2));border-radius:0;padding:0;
}
/* 排行榜空态（本专题暂无收录时） */
.topic-page .rank-empty{
  padding:14px 24px 16px;
  font-size:13.5px;line-height:1.6;color:#9aa7ad;
}
/* NEW 徽标（JS 按 UPDATES badge=新增 注入，左上角） */
.topic-page .qa-item .qa-new{
  position:absolute;top:26px;left:24px;
  font-size:11px;font-weight:800;letter-spacing:1.5px;
  color:var(--warm);
}
/* 标题 */
.topic-page .qa-item .qa-q{
  font-size:16.5px;font-weight:700;line-height:1.55;color:var(--ink);cursor:pointer;
  margin:44px 0 0;padding-right:0;
  /* 2026-09-16：卡片标题兜底截断。卡片显示的是「短标题」（16–28字），正常最多 2 行；
     但窄屏（2 列/1 列）或将来短标题写长了会撑高整卡、与相邻卡片不齐。
     这里限 3 行（正常永不触发），保证同一行卡片高度始终一致。
     完整长题干存在 data-q-full，详情页标题不受任何影响。 */
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.topic-page .qa-item .qa-q:hover{color:inherit;}
.topic-page .qa-item.qa-open .qa-q{color:var(--qacc,var(--brand-2));}
.topic-page .qa-item .qa-q a.qa-link{color:inherit;}
.topic-page .qa-item .qa-q a.qa-link::after{display:none;}
/* 答案预告（JS 注入，取 qa-full 首段） */
.topic-page .qa-item .qa-preview{
  margin-top:8px;font-size:13.5px;color:var(--sub);line-height:1.6;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}
/* hover 出现的「阅读答案」 */
.topic-page .qa-item::after{
  content:"阅读答案 →";margin-top:14px;font-size:13px;font-weight:600;
  color:var(--muted);opacity:0;transform:translateX(-4px);transition:all .25s;
}
.topic-page .qa-item:hover::after{opacity:1;transform:none;color:var(--qacc,var(--brand-2));}
.topic-page .qa-item.qa-open::after{display:none;}

/* ---------- 五色分类轮换（JS 按 index 加 qacc-0..4） ---------- */
.topic-page .qa-item.qacc-0{--qacc:#E86A5C;border-color:rgba(232,106,92,.42);}
.topic-page .qa-item.qacc-0:hover{border-color:#E86A5C;}
.topic-page .qa-item.qacc-1{--qacc:#2C6B7A;border-color:rgba(44,107,122,.42);}
.topic-page .qa-item.qacc-1:hover{border-color:#2C6B7A;}
.topic-page .qa-item.qacc-2{--qacc:#3F8556;border-color:rgba(63,133,86,.42);}
.topic-page .qa-item.qacc-2:hover{border-color:#3F8556;}
.topic-page .qa-item.qacc-3{--qacc:#B97E14;border-color:rgba(185,126,20,.45);}
.topic-page .qa-item.qacc-3:hover{border-color:#B97E14;}
.topic-page .qa-item.qacc-4{--qacc:#9A5C7D;border-color:rgba(154,92,125,.42);}
.topic-page .qa-item.qacc-4:hover{border-color:#9A5C7D;}

/* ---------- 「加载更多」→ 品牌深青反白卡 ---------- */
.topic-page .qa-more-btn{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;
  text-align:center;background:var(--brand);color:#fff;border:none;border-radius:24px;
  min-height:190px;padding:24px;cursor:pointer;font-size:14px;font-weight:600;
  font-family:inherit;text-decoration:none;margin-top:0;
  transition:background .2s,transform .25s,box-shadow .25s;
}
.topic-page .qa-more-btn:hover{
  background:var(--warm);color:#fff;transform:translateY(-4px);
  box-shadow:0 12px 32px rgba(15,42,54,.11);text-decoration:none;
}

/* ===================== 响应式 ===================== */
@media (max-width:960px){
  .topic-page .v7-hero{grid-template-columns:1fr;padding-top:28px;}
  .topic-page .v7-art{display:none;}
  .topic-page .qa-list{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:600px){
  .topic-page .qa-list{grid-template-columns:1fr;}
}

/* ---------- 09-14 展开态排版修复 ----------
   根因：.qa-list 是 3 列网格，.qa-more-btn（"展开全部"深色按钮）也是它的网格子项。
   展开项若仍占 1/3 宽，会把整行撑到极高，同行的深色按钮被拉成一大块空洞。
   修法：展开项独占整行，正文限制阅读宽度。 */
.topic-page .qa-item.qa-open{grid-column:1/-1;}
.topic-page .qa-item.qa-open .qa-full,.topic-page .qa-item.qa-open .qa-full>p,.topic-page .qa-item.qa-open .qa-full>h4,.topic-page .qa-item.qa-open .qa-src-block,.topic-page .qa-item.qa-open .qa-note{max-width:860px;}
@media (max-width:900px){
  .topic-page .qa-item.qa-open{grid-column:1/-1;}
}
