/* ============================================================
   AskASD v3 — Virtua.org inspired redesign
   Palette: calm teal primary + warm coral accent, light & airy,
   large sans-serif headings, rounded cards, smile-friendly.
   Single unified stylesheet for ALL pages.
   ============================================================ */
:root {
  color-scheme: light dark;
  --bg: #FFFFFF;
  --surface: #FFFFFF;
  --surface-elevated: #FFFFFF;
  --surface-hover: #F4F8F9;
  --ink: #0F2A36;
  --sub: #3E5A66;
  --muted: #5C737D;          /* 08-27: 白底对比度 5.0:1 过 WCAG AA（原 #7A9099 仅 3.35:1） */
  --brand: #1B4B5A;          /* virtua deep teal */
  --brand-2: #2C6B7A;
  --brand-soft: #EAF1F3;
  --brand-glow: rgba(27,75,90,0.12);
  --warm: #E86A5C;           /* virtua coral */
  --warm-2: #F28B7F;
  --warm-soft: #FCEAE8;
  --sun: #F4B942;            /* 08-28: 琥珀黄行动色，与第4张专题卡同源（CARD_ACCENTS[3]），黄色做配角 */
  --footer-band: var(--warm); /* 08-28: 页尾色带选定 C 珊瑚——青-珊瑚互补首尾（用户选定） */
  --success: #2C6B7A;
  --success-soft: #EAF1F3;
  --line: #E2EAEC;
  --soft: #F1F6F7;
  /* aliases for any leftover news/updates var() fallbacks */
  --accent: #1B4B5A;
  --accent-soft: #EAF1F3;
  --text: #0F2A36;
  --text-mut: #5C737D;
  --border: #E2EAEC;
  --radius-sm: 10px;
  --radius: 16px;
  --radius-lg: 24px;
  --shadow: 0 1px 2px rgba(15,42,54,0.04), 0 8px 24px rgba(15,42,54,0.06);
  --shadow-hover: 0 12px 32px rgba(15,42,54,0.11);
  --max-width: 1040px;

  /* ===== 正文栅格：全站唯一真源（2026-09-20 定案）=====
     桌面（视口够宽）下内容宽 = 1040 - 2×24 = 992，
     1440 视口里的左右基准线 = x224 / x1216。
     页头 logo、导航，以及所有「无卡片外壳」的正文（标题/段落/列表/无框板块）
     都必须落在这条线上；容器一律写：
        max-width:var(--max-width); margin:0 auto; padding:0 var(--rail-pad);
     页面里禁止再硬编码 1040 / 1100 等宽度。校验：check_rail.py
     ── 三类显式豁免（不是正文基准线，不参与对齐）──
       ① 详情页阅读栏：问答详情 / 文章详情用 --read-max 780 居中窄栏
       ② 首页卡片底板 .cardsec--pad 用 --card-max 1140（卡片宽度不改）
       ③ 页脚 .fb2-cols / .fb2-bottom 用 --foot-max 1080
     ================================================ */
  --rail-pad: 24px;
  --read-max: 780px;
  --card-max: 1140px;
  --foot-max: 1080px;
}

[data-theme="dark"] {
  --bg: #0F2027;
  --surface: #162D36;
  --surface-elevated: #1E3A45;
  --surface-hover: #1E3A45;
  --ink: #F0F7F9;
  --sub: #B0C4CA;
  --muted: #8FA6AE;          /* 08-27: 深色主题下对比度 5.6:1（原 #7A9099 仅 4.3:1） */
  --brand: #4FA3B8;
  --brand-2: #6BBCCF;
  --brand-soft: rgba(79,163,184,0.12);
  --brand-glow: rgba(79,163,184,0.18);
  --warm: #F28B7F;
  --warm-2: #F5A69C;
  --warm-soft: rgba(242,139,127,0.12);
  --success: #4FA3B8;
  --success-soft: rgba(79,163,184,0.12);
  --line: rgba(255,255,255,0.08);
  --soft: rgba(255,255,255,0.05);
  --accent: #4FA3B8;
  --accent-soft: rgba(79,163,184,0.12);
  --text: #F0F7F9;
  --text-mut: #8FA6AE;
  --border: rgba(255,255,255,0.08);
  --shadow: 0 4px 24px rgba(0,0,0,0.35);
  --shadow-hover: 0 16px 40px rgba(0,0,0,0.45);
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;overflow-x:hidden;}
body{
  font-family:"Noto Sans SC","Source Han Sans SC","MiSans","HarmonyOS Sans SC",-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  background:var(--bg);color:var(--ink);line-height:1.7;
  -webkit-font-smoothing:antialiased;
  transition: background .25s, color .25s;
}
/* 注意：这里不要给 body 加 overflow-x:hidden。
   html 上已有 overflow-x:hidden（负责裁掉页脚 ::before 满贯色带溢出的部分），
   而 body 一旦也写 overflow-x:hidden，它的 overflow-y 会被计算成 auto，
   body 就自己变成一个滚动容器；只要页脚负边距让 body 内容比自身盒高多出一点，
   body 就会多画出一条竖向滚动条——屏幕上于是同时出现两条滚动条。
   满贯色带仍由 html 的 overflow-x:hidden 裁剪，视觉完全不变。 */
a{color:inherit;text-decoration:none;}
.container{max-width:var(--max-width);margin:0 auto;padding:0 var(--rail-pad);}

/* ===================== Header ===================== */
header{
  max-width:var(--max-width);margin:0 auto;padding:15px var(--rail-pad);
  display:grid;grid-template-columns:1fr auto;align-items:center;
}
.brand{justify-self:start;display:flex;align-items:center;flex-shrink:0;text-decoration:none;}
.brand-logo{height:36px;width:auto;display:block;}
.logo{display:flex;align-items:center;gap:10px;font-weight:800;font-size:18px;}
.logo-badge{
  width:32px;height:32px;border-radius:var(--radius-sm);
  background:var(--surface-elevated);border:1px solid var(--line);
  color:var(--ink);display:flex;align-items:center;justify-content:center;
  font-size:16px;font-weight:800;
}
.logo span{letter-spacing:-0.3px;}
header nav{justify-self:end;display:flex;align-items:center;gap:0;}
header nav a{font-size:15px;color:var(--sub);transition:color .15s;position:relative;padding:8px 14px;line-height:1;font-weight:500;text-decoration:none;}
header nav a:not(:last-child){border-right:1px solid rgba(27,75,90,.18);}
header nav a:hover, header nav a.active{color:var(--brand);}
header nav a.active{font-weight:700;}
header nav a.active::after{content:"";position:absolute;left:14px;right:14px;bottom:-2px;width:auto;height:2.5px;background:var(--brand);border-radius:2px;}
.nav-right{display:flex;align-items:center;gap:12px;}
.theme-toggle{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);
  padding:6px 12px;font-size:12px;color:var(--sub);cursor:pointer;
  transition:all .2s;
}
.theme-toggle:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-soft);}
.mobile-menu-btn{display:none;background:none;border:none;color:var(--ink);font-size:22px;cursor:pointer;}

/* ===================== Home hero (Virtua style, 2-col + shaped smile) ===================== */
.hero{padding:0;position:relative;}
/* 08-28: 方案B 大色块宣言式 —— 满铺品牌深青绿（--brand 原值，零色差），白字大标 */
.smile-hero{background:var(--brand);color:#fff;}
.hero-inner{
  max-width:var(--max-width);margin:0 auto;
  padding:64px 24px 116px;
  display:grid;grid-template-columns:1.15fr 0.85fr;gap:48px;align-items:center;
}
.hero-text{max-width:540px;}
.hero-eyebrow{
  display:inline-block;font-size:12px;font-weight:700;color:var(--brand);
  letter-spacing:1.6px;text-transform:uppercase;margin-bottom:14px;
}
.hero h1{font-size:56px;font-weight:800;letter-spacing:-0.03em;line-height:1.12;margin-bottom:16px;color:#fff;}
.hero h1 em{font-style:normal;color:var(--warm-2);display:block;margin-top:18px;}  /* 深底强调用站内亮珊瑚 --warm-2，对比度达标零色差 */
.hero .tagline{font-size:17px;color:rgba(255,255,255,0.78);max-width:520px;margin:0 0 8px;line-height:1.7;}

/* Virtua-style coral search frame */
/* 08-28: 搜索框改白色药丸（原84px上边距死空隙一并清除） */
.search-label{display:block;font-size:13px;color:rgba(255,255,255,0.6);margin:44px 0 10px;}
.search-frame{
  background:#fff;
  padding:6px;
  border-radius:999px;
  box-shadow:0 16px 36px rgba(0,0,0,0.20);
  max-width:540px;
}
.search-frame .search-wrap{margin:0;}
.search-frame .search-box{
  background:#fff;border:none;border-radius:999px;color:var(--ink);
  padding:15px 62px 15px 22px;
  box-shadow:inset 0 1px 2px rgba(0,0,0,0.04);
}
.search-frame .search-box:focus{box-shadow:inset 0 1px 2px rgba(0,0,0,0.04),0 0 0 4px var(--brand-glow);}
.search-frame .search-icon{
  left:auto;right:18px;
  width:28px;height:28px;
  stroke:var(--warm);stroke-width:2.6;cursor:pointer;   /* 08-28: 图标加大加粗（用户要求） */
  transition:transform .15s;
}
.search-frame .search-icon:hover{transform:scale(1.1);}
.search-frame .search-btn{display:none;}

.hero-figure{position:relative;}
.hero-shape{
  position:relative;
  border-radius:24px;   /* 08-28: 有机圆弧改方框圆角（用户定稿） */
  overflow:hidden;
  background:#fff;
  box-shadow:0 18px 44px rgba(0,0,0,0.22);
}
.hero-shape img{
  width:100%;height:auto;display:block;
  object-fit:cover;aspect-ratio:4/5;
  transition:opacity .5s ease;
}
.hero-figure .ai-tag{
  position:absolute;right:14px;bottom:14px;
  font-size:11px;color:#fff;background:rgba(15,42,54,0.55);
  padding:4px 12px;border-radius:999px;backdrop-filter:blur(4px);
}

/* Quick questions */
.quick-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px;}
.hero-text .quick-links{justify-content:flex-start;}
.quick-link{
  font-size:13px;color:var(--sub);background:var(--surface);
  border:1px solid var(--line);border-radius:999px;padding:8px 16px;
  cursor:pointer;transition:all .15s;font-weight:500;
}
.quick-link:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-soft);}

/* ===================== Inline search (topic pages) ===================== */
.search-wrap{max-width:600px;margin:28px auto 0;position:relative;}
.hero-text .search-wrap{margin-left:0;}
.search-box{
  width:100%;padding:18px 60px 18px 50px;font-size:16px;
  border:1px solid var(--line);border-radius:999px;background:var(--surface);
  outline:none;transition:border-color .2s, box-shadow .2s, background .2s;
  color:var(--ink);box-shadow:var(--shadow);
}
.search-box::placeholder{color:var(--muted);}
.search-box:focus{border-color:var(--brand);box-shadow:0 0 0 4px var(--brand-glow);}
.search-icon{
  position:absolute;left:20px;top:50%;transform:translateY(-50%);
  width:20px;height:20px;stroke:var(--muted);fill:none;
  stroke-width:2;stroke-linecap:round;
}
.search-btn{
  position:absolute;right:6px;top:50%;transform:translateY(-50%);
  border:none;background:var(--brand);color:#fff;
  padding:11px 22px;border-radius:999px;font-size:14px;font-weight:600;
  cursor:pointer;transition:background .2s;
}
.search-btn:hover{background:var(--brand-2);}
.search-btn:active{transform:translateY(-50%) scale(0.96);}

.result-info{text-align:center;font-size:13px;color:var(--sub);min-height:20px;margin-top:14px;}

/* ===================== Q&A search results ===================== */
.qa-results{display:none;max-width:680px;margin:14px auto 0;text-align:left;flex-direction:column;gap:10px;}
.qa-results.show{display:flex;}
.qa-result-item{
  display:block;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:14px 18px;box-shadow:var(--shadow);transition:border-color .2s, transform .2s, box-shadow .2s;
}
.qa-result-item:hover{border-color:var(--brand);transform:translateY(-1px);box-shadow:var(--shadow-hover);}
.qa-result-topic{font-size:11px;font-weight:700;color:var(--brand);letter-spacing:.8px;text-transform:uppercase;margin-bottom:5px;}
.qa-result-q{font-size:15px;font-weight:600;color:var(--ink);line-height:1.5;margin-bottom:8px;}
.qa-result-tags{display:flex;flex-wrap:wrap;gap:6px;}
.qa-result-tag{font-size:11px;color:var(--muted);background:var(--soft);padding:2px 8px;border-radius:4px;}

/* ===================== Trust stats band ===================== */
.trust-stats{
  display:grid;grid-template-columns:repeat(4,1fr);gap:24px;
  margin:-58px 0 40px;padding:24px 28px;   /* 08-28: 负margin压入深色hero下缘，白卡半浸色块 */
  position:relative;z-index:5;
  background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius-lg);box-shadow:0 18px 44px rgba(15,42,54,0.18);
}
.trust-stat{display:flex;flex-direction:column;align-items:center;text-align:center;position:relative;}
.trust-stat:not(:last-child)::after{
  content:"";position:absolute;right:0;top:50%;transform:translateY(-50%);
  width:1px;height:36px;background:var(--line);
}
.trust-stat-num{font-size:32px;font-weight:800;color:var(--brand);line-height:1;letter-spacing:-0.02em;}
.trust-stat-label{font-size:13px;color:var(--sub);margin-top:8px;line-height:1.45;}

@media (max-width:640px){
  .trust-stats{grid-template-columns:repeat(2,1fr);gap:18px 8px;padding:20px;}
  .trust-stat:nth-child(2)::after{display:none;}
  .trust-stat-num{font-size:26px;}
}

/* ===================== Section headers ===================== */
.section-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:16px;padding-top:48px;}
.section-title{font-size:13px;font-weight:800;color:var(--sub);letter-spacing:1.5px;text-transform:uppercase;}
.section-sub{font-size:14px;color:var(--muted);margin-top:4px;}
.section-more{font-size:13px;color:var(--sub);font-weight:600;}

/* ===================== Trust banner ===================== */
.trust-banner{
  background:linear-gradient(135deg,var(--brand-soft),var(--surface));
  border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:22px 28px;margin:24px 0 40px;display:flex;flex-wrap:wrap;gap:24px;align-items:center;justify-content:space-between;
}
.trust-banner p{font-size:14px;color:var(--sub);line-height:1.7;max-width:700px;}
.trust-banner strong{color:var(--ink);font-weight:700;}
.trust-pills{display:flex;flex-wrap:wrap;gap:10px;}
.trust-pill{font-size:12px;color:var(--sub);background:var(--surface);border:1px solid var(--line);padding:5px 12px;border-radius:999px;font-weight:500;}

/* ===================== Updates / news feed ===================== */
.feed{display:flex;flex-direction:column;gap:8px;}
.feed-item{
  display:flex;gap:12px;align-items:center;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:10px 14px;box-shadow:var(--shadow);
  transition:border-color .2s, transform .2s, box-shadow .2s;
}
.feed-item:hover{border-color:var(--brand);transform:translateY(-1px);box-shadow:var(--shadow-hover);}
.feed-date{
  flex-shrink:0;width:42px;text-align:center;
  font-size:11px;font-weight:600;color:var(--muted);line-height:1.3;
}
.feed-date .day{font-size:18px;font-weight:800;color:var(--sub);display:block;line-height:1.1;}
.feed-body{flex:1;min-width:0;}
.feed-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.feed-badge{
  font-size:10px;font-weight:700;color:var(--sub);background:var(--soft);
  padding:2px 6px;border-radius:4px;letter-spacing:.3px;
}
.feed-badge.revise{color:var(--sub);background:var(--soft);border:1px solid var(--line);}
.feed-title{font-size:14px;font-weight:600;color:var(--ink);line-height:1.45;}
.feed-meta, .feed-source{font-size:11px;color:var(--muted);margin-top:3px;}
.feed-arrow{flex-shrink:0;color:var(--muted);font-size:15px;transition:color .15s, transform .15s;}
.feed-item:hover .feed-arrow{color:var(--sub);transform:translateX(2px);}

.feed-item--updates{align-items:stretch;}
.feed-item--updates .feed-date{display:none;}
.feed-item--updates .feed-body{flex:1;min-width:0;display:flex;flex-direction:column;}
.feed-item--updates .feed-title{font-size:14px;font-weight:600;color:var(--ink);line-height:1.45;}
.feed-item--updates .news-meta{font-size:11px;color:var(--muted);margin-top:0;}

.two-col{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
.col{display:flex;flex-direction:column;min-width:0;}
.col-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:12px;}
.col-title{font-size:13px;font-weight:800;color:var(--sub);letter-spacing:1.5px;text-transform:uppercase;}
.col-sub{font-size:13px;color:var(--muted);margin-top:4px;}
.col-more{font-size:12px;color:var(--sub);font-weight:600;background:var(--soft);padding:5px 12px;border-radius:999px;}
.scroller{padding-right:6px;}
.scroller::-webkit-scrollbar{width:5px;}
.scroller::-webkit-scrollbar-track{background:transparent;}
.scroller::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px;}
.scroller::-webkit-scrollbar-thumb:hover{background:var(--muted);}

.news-item{display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--line);}
.news-item:last-child{border-bottom:none;}
.news-dot{flex-shrink:0;width:5px;height:5px;border-radius:50%;background:var(--muted);margin-top:7px;}
.news-body{flex:1;min-width:0;}
.news-title{font-size:13.5px;font-weight:600;color:var(--ink);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.news-title:hover{color:var(--brand);}
.news-meta{font-size:11px;color:var(--muted);margin-top:3px;}

/* ===================== Topic cards (Virtua 4-card style) ===================== */
.topics-heading{
  /* 08-27: 中文大标题去掉 0.12em 宽字距（宽字距是英文手法，中文会拆散字形），
     珊瑚色→墨色、字重 900：层级靠字重与字号立，不靠颜色喊 */
  font-size:36px;font-weight:900;color:var(--ink);letter-spacing:0.02em;
  text-align:center;margin-bottom:36px;
}
.topics-wrap{position:relative;}
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;align-items:stretch;}
.grid.leaving{animation:gridOutLeft .26s ease forwards;}
.grid.entering{animation:gridInRight .32s ease forwards;}
@keyframes gridOutLeft{from{transform:translateX(0);opacity:1;}to{transform:translateX(-42px);opacity:0;}}
@keyframes gridInRight{from{transform:translateX(42px);opacity:0;}to{transform:translateX(0);opacity:1;}}
.card{
  display:flex;flex-direction:column;justify-content:flex-end;min-height:330px;
  background:var(--card-accent, var(--brand));
  border:none;border-radius:20px;
  padding:28px 26px 26px;
  color:#fff;text-decoration:none;
  box-shadow:0 10px 26px rgba(15,42,54,.10);
  transition:transform .2s, box-shadow .2s, filter .2s;
  position:relative;overflow:hidden;
}
.card:hover{
  transform:translateY(-4px);
  box-shadow:0 16px 36px rgba(15,42,54,.16);
  filter:brightness(1.07);
}
/* 08-28：去图标，左上大号半透明序号作视觉锚点（纯文字渲染，无 emoji 缺字风险） */
.card-ghost{
  position:absolute;top:20px;left:26px;
  font-family:ui-monospace,"SF Mono",Consolas,monospace;
  font-size:56px;font-weight:700;line-height:1;
  color:rgba(255,255,255,.30);letter-spacing:.02em;
  pointer-events:none;
}
/* 08-28：标题+一句话沉底（bottom-anchor），上松下紧的编辑式构图 */
.card-body{margin-top:auto;position:relative;}
.card-title{
  font-size:25px;font-weight:800;color:#fff;
  line-height:1.35;letter-spacing:.01em;margin-bottom:12px;
}
.card p{
  font-size:14px;color:rgba(255,255,255,.85);line-height:1.8;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
  min-height:calc(3 * 1.8em);  /* 08-28：预留3行高度，四张卡标题等高对齐 */
}
/* 卡片：分隔线 + 前两个问题（08-24，线上下距文字间距一致 26px、问题区顶部平齐） */
.card-qa{margin-top:26px;padding-top:26px;border-top:1px solid rgba(255,255,255,.22);display:flex;flex-direction:column;gap:9px;}
.card-qa-item{display:flex;align-items:flex-start;gap:8px;font-size:12.5px;line-height:1.6;color:rgba(255,255,255,.78);}
.cq-no{flex:none;font-family:ui-monospace,"SF Mono",Consolas,monospace;font-size:10.5px;color:rgba(255,255,255,.5);margin-top:2px;}
.card-qa-empty{font-size:12px;color:rgba(255,255,255,.5);}

/* ===== 专题主页（V3：大色块卡片，每专题一主题色，2026-08-23） ===== */
.topic-hero{padding:56px 0 12px;text-align:center;position:relative}
.topic-eyebrow{
  display:flex;align-items:center;justify-content:center;gap:14px;
  font-size:12px;font-weight:800;letter-spacing:3px;color:var(--warm);
  margin-bottom:22px;
}
.topic-eyebrow::before,.topic-eyebrow::after{
  content:"";height:1px;width:42px;background:var(--line);
}
.topic-hero-title{
  font-size:56px;font-weight:900;letter-spacing:-0.03em;line-height:1.15;
  color:var(--brand);margin:0 0 18px;
}
.topic-hero-title em{
  font-style:normal;color:var(--warm);display:inline;
}
.topic-hero-sub{
  font-size:16px;color:var(--sub);max-width:560px;margin:0 auto 34px;line-height:1.75;
}
.topic-stats{
  display:flex;justify-content:center;gap:0;flex-wrap:wrap;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  padding:18px 0;
}
.topic-stat{
  flex:0 0 180px;display:flex;flex-direction:column;align-items:center;gap:2px;
}
.topic-stat strong{
  font-size:28px;font-weight:800;color:var(--brand);line-height:1.1;
  font-variant-numeric:tabular-nums;
}
.topic-stat span{font-size:12.5px;color:var(--muted);}

.topic-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:44px;
}
/* 卡片：纯色块 + 白字（08-28 与首页专题卡统一：左上半透明大序号 + 标题/一句话沉底） */
.tcard{
  aspect-ratio:5/4;
  border-radius:18px;padding:26px 26px 22px;
  background:var(--tc);
  color:#fff;text-decoration:none;
  display:flex;flex-direction:column;justify-content:flex-end;
  position:relative;
  box-shadow:0 8px 24px rgba(15,42,54,0.10);
  transition:transform .2s ease, box-shadow .2s ease;
}
.tcard:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(15,42,54,0.16);}
.tcard-ghost{
  position:absolute;top:20px;left:26px;
  font-family:ui-monospace,"SF Mono",Consolas,monospace;
  font-size:56px;font-weight:700;line-height:1;
  color:rgba(255,255,255,.30);letter-spacing:.02em;
  pointer-events:none;
}
.tcard-body{margin-top:auto;position:relative;}
.tcard-name{font-size:25px;font-weight:800;letter-spacing:.01em;line-height:1.3;}
.tcard-intro{font-size:13.5px;opacity:.85;margin-top:12px;line-height:1.75;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
  min-height:calc(3 * 1.75em);}

/* 翻页箭头（08-28 定稿）：空心白描边圆环，垂直居中偏上（44%），贴最外侧卡片边缘；hover 填白、箭头变卡色。颜色沿用 08-24 约定：右蓝左深绿 */
.topics-next{
  position:absolute;right:16px;top:44%;transform:translateY(-50%);z-index:3;
  width:44px;height:44px;border-radius:50%;
  cursor:pointer;color:#fff;
  background:transparent;border:2.5px solid rgba(255,255,255,.95);
  display:flex;align-items:center;justify-content:center;
  transition:transform .2s, background .2s, color .2s;
}
.topics-next svg{width:20px;height:20px;transform:translateX(1px);}
.topics-next:hover{background:#fff;color:#4A90E2;transform:translateY(-50%) translateX(3px);}
.topics-prev{
  position:absolute;left:16px;top:44%;transform:translateY(-50%);z-index:3;
  width:44px;height:44px;border-radius:50%;
  cursor:pointer;color:#fff;
  background:transparent;border:2.5px solid rgba(255,255,255,.95);
  display:flex;align-items:center;justify-content:center;
  transition:transform .2s, background .2s, color .2s;
}
.topics-prev svg{width:20px;height:20px;transform:translateX(-1px);}
.topics-prev:hover{background:#fff;color:#1B4B5A;transform:translateY(-50%) translateX(-3px);}
.empty-tip{display:none;text-align:center;color:var(--sub);padding:60px 0;font-size:15px;}

/* Entrance to full topics page */
.topic-cta{display:flex;justify-content:center;margin-top:36px;}
.btn-enter{
  display:inline-flex;align-items:center;gap:10px;
  background:var(--brand);color:#fff;
  font-size:15px;font-weight:700;
  padding:14px 32px;border-radius:999px;
  box-shadow:var(--shadow);
  transition:background .2s, transform .2s, box-shadow .2s;
}
.btn-enter span{transition:transform .2s;font-size:17px;}
.btn-enter:hover{background:var(--brand-2);transform:translateY(-2px);box-shadow:var(--shadow-hover);}
.btn-enter:hover span{transform:translateX(4px);}

/* ===================== Industry express（08-28 降为浅青调：全页唯一深色大块让给 hero，形成深→白→浅节奏；颜色全用站内变量） ===================== */
.industry-section{
  position:relative;
  background:var(--brand-soft);
  color:var(--ink);
  padding:72px 0;
  margin:72px 0;
}
.industry-inner{
  display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:stretch;
}
.industry-text{
  max-width:420px;display:flex;flex-direction:column;
  justify-content:space-between;gap:44px;padding:8px 0;
}
.industry-eyebrow{
  display:block;font-size:12px;font-weight:700;letter-spacing:1.6px;
  text-transform:uppercase;color:var(--warm);margin-bottom:14px;
}
.industry-text h2{
  font-size:56px;font-weight:900;line-height:1.12;margin-bottom:0;
  color:var(--ink);letter-spacing:-0.03em;
}
.industry-text h2 em{
  font-style:normal;color:var(--warm);display:block;margin-top:26px;
}
.industry-text p{
  font-size:16px;line-height:1.75;color:var(--sub);margin:0 0 18px;
}
.industry-text p strong{color:var(--ink);font-weight:700;}
.industry-links{display:flex;flex-direction:column;gap:14px;align-items:flex-start;}
.industry-links a{
  font-size:15px;font-weight:700;color:var(--brand);
  display:inline-flex;align-items:center;gap:8px;
  border-bottom:1px solid var(--line);padding-bottom:2px;
  transition:border-color .2s;
}
.industry-links a:hover{border-color:var(--brand);}
.industry-links a span{transition:transform .2s;}
.industry-links a:hover span{transform:translateX(4px);}

.industry-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
/* 类别卡（08-24）：无图标无数字，类别名加大、靠上靠左；高度保持原 260px 未动；作为链接跳 research.html?cat= */
.industry-card{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:24px 24px;box-shadow:var(--shadow);
  display:flex;align-items:flex-start;justify-content:flex-start;
  min-height:260px;
  text-decoration:none;color:inherit;
  transition:transform .2s, box-shadow .2s;
}
.industry-card:hover{transform:translateY(-3px);box-shadow:0 16px 36px rgba(15,42,54,0.14);}
.industry-card span{
  font-size:22px;font-weight:800;color:var(--ink);letter-spacing:.01em;
}

/* ===================== Footer ===================== */
/* 旧页脚兜底规则（未升级页面仍可正常显示）；新页脚 .fb2 的每条规则都带 .fb2 前缀，
   特异性 0-2-0 起，整段盖住下列 footer / .foot-* —— 2026-09-19 全站铺开。 */
footer{
  position:relative;
  margin:72px 0 0;
  padding:30px 40px 118px;
  text-align:center;
  background:var(--brand);
  color:rgba(255,255,255,0.85);
  font-size:13.5px;line-height:1.8;
}
.foot-brand{display:flex;align-items:center;justify-content:center;gap:10px;}
.foot-logo{width:32px;height:32px;}
.foot-name{font-size:16px;font-weight:800;color:#fff;letter-spacing:0.01em;}
.foot-links{margin:14px 0 16px;display:flex;justify-content:center;gap:24px;flex-wrap:wrap;}
.foot-links a{color:rgba(255,255,255,0.78);font-size:13px;text-decoration:none;}
.foot-links a:hover{color:#fff;text-decoration:underline;}
.foot-legal{margin:0 auto;max-width:600px;font-size:12px;color:rgba(255,255,255,0.6);line-height:1.8;}
.foot-copy{margin-top:14px;padding-top:14px;border-top:1px solid rgba(255,255,255,0.14);font-size:12px;color:rgba(255,255,255,0.5);}

/* 页脚 · 方案 A（品牌收尾 · 深蓝呼应首屏，2026-09-19 永嘉定稿；09-19 晚搬到外链、全站铺开）
   配色逻辑：首屏渐变顶端 #283199 是整站蓝色系的"锚"，页脚中段取同一个蓝，
   上方提亮 4%（#2B36A6，接上面浅蓝内容不显生硬）、下方压暗 8%（#212A86，收到页底有重量）；
   右上角再叠一层首屏底端青蓝 #1A8AC2 的 32% 光晕，把首屏那抹青顺下来 —— 首尾同源，构成色彩闭环。
   深蓝冷底 + 珊瑚色带 + 金黄强调字 = 冷底暖点，收得住、提得起来。 */
.fb2{position:relative;overflow:hidden;color:#fff;text-align:left;padding:0 0 34px;margin-top:32px;
  background:
    radial-gradient(1100px 420px at 84% -12%, rgba(26,138,194,.32), transparent 62%),
    linear-gradient(180deg,#2B36A6 0%,#283199 46%,#212A86 100%);}
/* 子类一律带 fb2- 前缀：note / cols / bottom / navs / dot 这类通用名会和页面自己的
   内联样式撞车（policy.html 的 .note 就曾把免责说明渲染成一个浅色块），
   加前缀后全站任何页面都不可能命中。 */
.fb2 .fb2-band{height:5px;background:var(--footer-band);}
.fb2 .fb2-cols{max-width:var(--foot-max);margin:0 auto;padding:46px 48px 0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:50px 64px;align-items:start;}
.fb2 .fb2-logo{display:block;width:fit-content;}
.fb2 .fb2-logo img{height:46px;width:auto;display:block;}
.fb2 .fb2-slogan{margin-top:26px;font-size:30px;font-weight:800;letter-spacing:-.01em;line-height:1.25;}
.fb2 .fb2-slogan em{font-style:normal;color:var(--sun);}
.fb2 .fb2-note{margin-top:20px;max-width:434px;font-size:12.5px;line-height:2;color:rgba(255,255,255,.56);}
.fb2 .fb2-navs{display:grid;grid-template-columns:auto auto;gap:0 64px;padding:6px 0 0 60px;border-left:1px solid rgba(255,255,255,.13);}
.fb2 .fb2-h{font-size:11.5px;font-weight:800;letter-spacing:2px;color:rgba(255,255,255,.62);margin-bottom:15px;}
.fb2 .fb2-linkcol a{display:block;font-size:13.5px;color:rgba(255,255,255,.84);margin-bottom:11px;transition:color .15s;}
.fb2 .fb2-linkcol a:hover{color:var(--sun);}
.fb2 .fb2-bottom{max-width:var(--foot-max);margin:36px auto 0;padding:20px 48px 0;border-top:1px solid rgba(255,255,255,.18);
  display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;}
.fb2 .fb2-corp{font-size:12.5px;color:rgba(255,255,255,.72);}
.fb2 .fb2-corp b{color:rgba(255,255,255,.94);font-weight:700;}
.fb2 .fb2-sep{width:3px;height:3px;border-radius:50%;background:rgba(255,255,255,.34);flex:none;}
.fb2 .fb2-icp{font-size:12.5px;color:rgba(255,255,255,.9);border-bottom:1px solid rgba(255,255,255,.34);padding-bottom:1px;}
.fb2 .fb2-icp:hover{color:#fff;border-bottom-color:#fff;}
/* 移动端页脚（方案 A）：收紧内边距、口号降字号、两栏并排铺开。
   注意：媒体查询不加特异性，必须排在桌面规则之后才生效。 */
@media (max-width:760px){
  .fb2{padding-bottom:26px;margin-top:22px;}
  .fb2 .fb2-cols{padding:34px 22px 0;grid-template-columns:1fr;gap:34px;}
  .fb2 .fb2-logo img{height:38px;}
  .fb2 .fb2-slogan{font-size:22px;margin-top:20px;}
  .fb2 .fb2-navs{padding:0;grid-template-columns:auto auto;gap:0 40px;justify-content:space-between;border-left:0;}
  .fb2 .fb2-bottom{padding:18px 22px 0;gap:6px 10px;}
  .fb2 .fb2-sep{display:none;}   /* 窄屏折行后分隔点会孤零零吊在行尾 */
}

/* ===================== Page hero (sub pages) ===================== */
.page-hero{padding:48px 0 32px;text-align:center;}
.page-hero h1{font-size:34px;font-weight:800;letter-spacing:-0.03em;line-height:1.2;margin-bottom:12px;color:var(--ink);}
.page-hero p{font-size:16px;color:var(--sub);max-width:560px;margin:0 auto;line-height:1.7;}
.page-hero .hero-figure{margin:28px auto 0;max-width:420px;}

/* ===================== Topic page common ===================== */
.topic-page .tags{display:flex;align-items:center;gap:8px;margin-bottom:16px;font-size:11px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase;}
.topic-page .tag-cat{color:var(--muted);}
.topic-page .tag-status{color:var(--brand);background:var(--brand-soft);padding:3px 10px;border-radius:var(--radius-sm);letter-spacing:0.5px;font-weight:700;}
.topic-page h1{font-size:38px;font-weight:800;line-height:1.15;margin-bottom:14px;letter-spacing:-0.02em;color:var(--ink);}
.topic-page .subtitle{font-size:17px;color:var(--sub);margin-bottom:24px;line-height:1.7;max-width:720px;}
.topic-page .meta{display:flex;flex-wrap:wrap;gap:18px;font-size:14px;color:var(--sub);margin-bottom:36px;}
.topic-page .meta-item{display:flex;align-items:center;gap:6px;background:var(--surface);border:1px solid var(--line);padding:6px 14px;border-radius:999px;}
.topic-page .meta-item strong{color:var(--ink);font-weight:700;}

/* Smile banner on topic page */
.topic-hero-media{margin:0 0 28px;}
.topic-hero-media img{width:100%;aspect-ratio:21/9;object-fit:cover;border-radius:var(--radius-lg);border:2px solid #fff;box-shadow:var(--shadow);}
[data-theme="dark"] .topic-hero-media img{border-color:var(--surface);}
.topic-hero-media .ai-tag{
  position:relative;float:right;margin:-22px 12px 0 0;
  font-size:11px;color:#fff;background:rgba(24,36,43,0.6);
  padding:3px 10px;border-radius:999px;backdrop-filter:blur(4px);
}

/* ===================== Sticky TOC ===================== */
.toc-wrap{
  position:sticky;top:18px;z-index:50;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:14px 18px;margin-bottom:28px;box-shadow:var(--shadow);
}
.toc-title{font-size:12px;font-weight:700;color:var(--muted);letter-spacing:1px;margin-bottom:10px;display:flex;align-items:center;gap:6px;}
.toc-list{display:flex;flex-wrap:wrap;gap:8px;max-height:120px;overflow:hidden;transition:max-height .3s;}
.toc-list.expanded{max-height:600px;}
.toc-item{font-size:12.5px;color:var(--sub);background:var(--soft);padding:6px 12px;border-radius:999px;cursor:pointer;transition:all .15s;white-space:nowrap;max-width:180px;overflow:hidden;text-overflow:ellipsis;}
.toc-item:hover{color:var(--brand);background:var(--brand-soft);}
.toc-more{font-size:12px;color:var(--brand);background:none;border:none;cursor:pointer;margin-top:10px;font-weight:600;}

/* ===================== QA list =====================
   08-31 方案一改版：问答列与搜索框共轴同宽（640px）。
   ::before 为搜索区与列表间的细分隔线（文字版用户要求已删，仅保留细线）。 */
.qa-section{
  max-width:640px;margin:0 auto;
}
.qa-section::before{
  content:"";
  display:block;height:1px;
  margin:40px 0 6px;
  background:var(--line);
}
.qa-section-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:22px;}
.qa-section-head > div{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;}
.qa-section-title{font-size:22px;font-weight:800;letter-spacing:-0.3px;}
.qa-section-meta{font-size:13px;color:var(--muted);font-weight:500;}
.qa-list{display:flex;flex-direction:column;gap:14px;}

/* QA 共享样式（.qa-num/.qa-q/.qa-points 仍被专题页使用；details.qa 结构已废弃，相关样式于 08-25 清除） */
.qa-num{
  flex:none;width:30px;height:30px;border-radius:var(--radius-sm);
  background:var(--brand-soft);display:flex;align-items:center;justify-content:center;
  font-size:13px;font-weight:700;color:var(--brand);transition:all .2s;
}
.qa-q{flex:1;font-size:17px;font-weight:700;line-height:1.5;color:var(--ink);}
/* 08-28: 问答标题改为链接，点击进入独立详情页 */
.qa-q a.qa-link{color:inherit;text-decoration:none;display:block;position:relative;
  padding-right:26px;transition:color .18s;}
.qa-q a.qa-link::after{content:"";position:absolute;right:2px;top:50%;
  width:7px;height:7px;margin-top:-4px;
  border-right:2px solid var(--brand);border-bottom:2px solid var(--brand);
  transform:rotate(-45deg);opacity:0;transition:opacity .18s,right .18s;}
.qa-q a.qa-link:hover{color:var(--brand);}
.qa-q a.qa-link:hover::after{opacity:.75;right:0;}

.qa-points{list-style:none;margin:0 0 14px;padding:0;}
.qa-points li{position:relative;padding-left:18px;margin-bottom:9px;font-size:15px;line-height:1.8;color:var(--ink);}
.qa-points li::before{content:"";position:absolute;left:2px;top:9px;width:6px;height:6px;border-radius:50%;background:var(--brand);}

.qa-src-block{
  display:block;margin:0 0 18px;padding:10px 14px;
  border-radius:var(--radius-sm);border:1px solid var(--line);border-left:2px solid var(--brand);
  background:var(--soft);font-size:12.5px;color:var(--sub);line-height:1.7;
}
.qa-src-block::before{content:"";}
.qa-src-label{display:block;font-size:11px;font-weight:700;color:var(--brand);letter-spacing:1px;margin-bottom:7px;}
.qa-src-line{display:block;font-size:12.5px;color:var(--sub);line-height:1.7;}
.qa-src-line + .qa-src-line{margin-top:4px;}

.qa-note{
  margin-top:20px;padding:14px 16px;border-radius:var(--radius-sm);
  background:var(--warm-soft);border:1px solid rgba(244,162,89,0.18);
  font-size:13px;color:var(--sub);line-height:1.7;letter-spacing:0.1px;
  display:flex;gap:8px;align-items:flex-start;
}
.qa-note::before{content:"⚠";font-size:14px;flex-shrink:0;color:var(--warm);}

.related{margin-top:48px;padding:28px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow);text-align:center;}
.related-title{font-size:13px;font-weight:800;color:var(--sub);letter-spacing:1.5px;text-transform:uppercase;margin-bottom:18px;}
.related-list{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;}
.related-tag{
  font-size:13.5px;padding:8px 16px;border:1px solid var(--line);border-radius:999px;
  color:var(--ink);background:var(--surface);transition:all .15s;font-weight:500;
}
.related-tag:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-soft);}

.foot{margin-top:72px;padding-top:28px;border-top:1px solid var(--line);text-align:center;color:var(--muted);font-size:12px;line-height:1.9;}

/* Latest / digest */
.latest{
  background:linear-gradient(135deg,var(--brand-soft),var(--surface));
  border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:20px 24px;margin-bottom:32px;box-shadow:var(--shadow);
}
.latest-label{font-size:11px;font-weight:800;color:var(--brand);letter-spacing:1.5px;text-transform:uppercase;margin-bottom:8px;}
.latest-text{font-size:15px;font-weight:600;color:var(--ink);line-height:1.7;}
.latest-time{font-size:12px;color:var(--muted);margin-top:10px;}
.digest-label{font-size:11px;font-weight:800;color:var(--sub);letter-spacing:2px;margin-bottom:8px;}
.digest-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:14px;}
.digest-title{font-size:14px;color:var(--sub);font-weight:700;}
.digest-time{font-size:12px;color:var(--muted);}
.digest p{font-size:15.5px;color:var(--ink);margin-bottom:12px;line-height:1.85;}
.digest-note{font-size:13px;color:var(--sub);margin-top:18px;padding:14px 16px;border-radius:var(--radius-sm);background:var(--soft);border:1px solid var(--line);}

/* QA TOC (JS generated) */
.qa-toc{display:flex;flex-wrap:wrap;gap:8px;}
.qa-toc-item{font-size:12.5px;color:var(--sub);background:var(--soft);padding:6px 12px;border-radius:999px;cursor:pointer;transition:all .15s;white-space:nowrap;max-width:180px;overflow:hidden;text-overflow:ellipsis;}
.qa-toc-item:hover{color:var(--brand);background:var(--brand-soft);}
.qa-more-btn{display:none;margin-top:10px;font-size:13px;color:var(--sub);background:transparent;border:none;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:3px;transition:color .2s;}
.qa-more-btn:hover{color:var(--brand);text-decoration:none;}

.topic-search-wrap{position:relative;margin-bottom:22px;}
.topic-search-icon{
  position:absolute;left:16px;top:50%;transform:translateY(-50%);
  width:18px;height:18px;stroke:var(--muted);fill:none;stroke-width:2;
}
.topic-search-box{
  width:100%;padding:14px 90px 14px 46px;border:1px solid var(--line);
  border-radius:var(--radius);background:var(--surface);color:var(--ink);
  font-size:15px;outline:none;transition:border-color .2s,box-shadow .2s;
}
.topic-search-box:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-glow);}
.topic-search-count{
  position:absolute;right:16px;top:50%;transform:translateY(-50%);
  font-size:12px;color:var(--muted);pointer-events:none;
}

/* 扁平问答（认识自闭症专题：非卡片形式）——右侧内边距 66px 与搜索面板右边缘对齐（08-24） */
.qa-item{
  position:relative;padding:20px 66px 20px 82px;
  border-bottom:1px solid var(--line);
}
.qa-item:first-child{padding-top:6px;}
.qa-item:last-child{border-bottom:none;}
/* 大字水印编号（方案1，2026-08-24 用户选定）：杂志式淡色大数字 */
.qa-item .qa-num{
  position:absolute;left:0;top:20px;
  width:64px;font-size:42px;font-weight:900;line-height:1;letter-spacing:-.04em;
  color:var(--taccent);opacity:.16;font-variant-numeric:tabular-nums;
  pointer-events:none;
}
.qa-item:first-child .qa-num{top:6px;}
.qa-item .qa-q{
  flex:none;font-size:18px;font-weight:700;line-height:1.5;color:var(--ink);
  margin:0 0 10px;
}
.qa-item .qa-full{
  margin-top:14px;font-size:15px;line-height:1.85;color:var(--sub);
  text-align:justify;
}
.qa-item .qa-full h4{
  font-size:15.5px;font-weight:700;color:var(--ink);margin:18px 0 8px;
}
.qa-item .qa-full h4:first-child{margin-top:0;}
.qa-item .qa-full p{margin:0 0 10px;}
.qa-item .qa-full ul, .qa-item .qa-full ol{margin:0 0 10px 1.2em;}
.qa-item .qa-full li{margin-bottom:6px;line-height:1.75;}
/* 2026-08-24：点击标题展开/收起答案（原展开按钮已移除） */
.qa-item .qa-q{cursor:pointer;transition:color .15s;}
.qa-item .qa-q:hover{color:var(--taccent);}
.qa-item.qa-open .qa-q{color:var(--taccent);}
.qa-item .qa-src-block{margin-top:6px;}

.qa-hidden{display:none !important;}

/* ===================== Buttons / forms (about + feedback) ===================== */
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--brand);color:#fff;border:none;border-radius:999px;
  padding:12px 28px;font-size:14px;font-weight:700;cursor:pointer;
  transition:background .2s, transform .1s;
}
.btn:hover{background:var(--brand-2);}
.btn:active{transform:scale(.98);}
.btn-secondary{background:var(--surface);color:var(--ink);border:1px solid var(--line);}
.btn-secondary:hover{background:var(--surface-hover);}

.form-group{margin-bottom:20px;}
.form-label{display:block;font-size:13px;font-weight:700;color:var(--sub);margin-bottom:8px;}
.form-input, .form-textarea{
  width:100%;padding:12px 14px;font-size:15px;
  border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);
  color:var(--ink);outline:none;transition:border-color .2s, box-shadow .2s, background .2s;
}
.form-input:focus, .form-textarea:focus{border-color:var(--brand);box-shadow:0 0 0 4px var(--brand-glow);}
.form-textarea{min-height:160px;resize:vertical;line-height:1.7;}
.form-hint{font-size:12px;color:var(--muted);margin-top:6px;}
.form-note{font-size:12px;color:var(--muted);line-height:1.7;margin-top:24px;padding-top:20px;border-top:1px solid var(--line);}

.upload-zone{
  border:2px dashed var(--line);border-radius:var(--radius);padding:24px;text-align:center;
  background:var(--surface);transition:border-color .2s, background .2s;cursor:pointer;
}
.upload-zone:hover{border-color:var(--brand);background:var(--brand-soft);}
.upload-zone-icon{font-size:28px;margin-bottom:8px;color:var(--muted);}
.upload-zone-text{font-size:13px;color:var(--sub);}
.upload-zone-hint{font-size:12px;color:var(--muted);margin-top:6px;}

/* ===================== About sections ===================== */
.about-section{margin-bottom:36px;}
.about-section h2{font-size:20px;font-weight:800;margin-bottom:14px;color:var(--ink);}
.about-section p{font-size:15px;color:var(--sub);line-height:1.8;margin-bottom:12px;}
.about-section ul{list-style:none;margin:8px 0;}
.about-section li{font-size:14.5px;color:var(--sub);padding:6px 0 6px 22px;position:relative;}
.about-section li::before{content:"•";position:absolute;left:6px;color:var(--brand);font-weight:800;}
.contact-card{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);
}
.contact-card p{margin:0;font-size:14px;color:var(--sub);line-height:1.7;}
.contact-card a{color:var(--brand);font-weight:700;}

/* ===================== Timeline (updates / aihub style) ===================== */
.timeline-day{display:grid;gap:8px;margin-bottom:24px;}
.timeline-day-head{
  display:grid;grid-template-columns:auto 1fr;gap:14px;
  align-items:baseline;position:sticky;top:0;z-index:2;
  background:var(--bg);padding:10px 0 8px;
  border-bottom:1px solid var(--line);
}
.timeline-date{font-size:16px;font-weight:800;color:var(--ink);white-space:nowrap;letter-spacing:-.01em;}
.timeline-day-meta{font-size:12px;color:var(--sub);padding-left:10px;}
.timeline-day-items{position:relative;display:grid;gap:0;padding-top:4px;}
.timeline-day-items::before{
  content:"";position:absolute;
  left:calc(56px + 9px);top:6px;bottom:6px;width:1px;
  background:var(--line);pointer-events:none;
}
.timeline-item{
  display:grid;grid-template-columns:56px 18px minmax(0,1fr);
  gap:0;align-items:start;padding:0 0 14px;color:inherit;text-decoration:none;
}
.timeline-item:last-child{padding-bottom:0;}
.timeline-time{
  padding-top:8px;text-align:right;
  font-family:ui-monospace,"SF Mono",Consolas,monospace;font-size:12.5px;font-weight:600;
  color:var(--sub);white-space:nowrap;
}
.timeline-rail{position:relative;min-height:100%;}
.timeline-dot{
  position:absolute;left:50%;top:8px;
  width:8px;height:8px;border-radius:999px;
  background:var(--brand);transform:translateX(-50%);
  box-shadow:0 0 0 3px var(--bg);
}
.timeline-card{
  display:block;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius);padding:14px 18px;margin-left:12px;
  transition:border-color .15s, transform .15s, box-shadow .15s;
  text-decoration:none;color:inherit;
}
.timeline-card:hover{border-color:var(--brand);transform:translateY(-1px);box-shadow:var(--shadow-hover);text-decoration:none;}
.timeline-card-head{display:flex;align-items:center;gap:8px;margin-bottom:6px;flex-wrap:wrap;font-size:12px;}
.src-cat{display:inline-block;padding:2px 7px;border-radius:3px;background:var(--brand-soft);color:var(--brand);font-size:11px;font-weight:700;}
.src-name{color:var(--sub);font-size:12px;}
.timeline-title{font-size:15px;font-weight:700;color:var(--ink);line-height:1.4;margin-bottom:4px;}
.timeline-summary{font-size:13px;color:var(--sub);line-height:1.65;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word;}

/* ===================== News page (dynamic) ===================== */
.news-page{max-width:var(--max-width);margin:0 auto;padding:48px var(--rail-pad) 80px;}
.news-page h1{font-size:30px;font-weight:800;margin:0 0 6px;color:var(--ink);}
.news-page .lead{color:var(--sub);font-size:14px;margin:0 0 22px;line-height:1.7;}
.news-toolbar{display:flex;gap:10px;align-items:center;margin-bottom:18px;}
.news-toolbar .search-input{flex:1;padding:10px 14px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);font-size:14px;font-family:inherit;color:var(--ink);outline:none;}
.news-toolbar .search-input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-glow);}
.news-toolbar .btn-search{padding:10px 22px;background:var(--brand);color:#fff;border:0;border-radius:var(--radius-sm);cursor:pointer;font-size:14px;font-weight:600;font-family:inherit;transition:background .2s;}
.news-toolbar .btn-search:hover{background:var(--brand-2);}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:28px;overflow-x:auto;}
.tab{padding:10px 14px;background:transparent;border:0;border-bottom:2px solid transparent;cursor:pointer;color:var(--sub);font-size:14px;font-family:inherit;white-space:nowrap;transition:all .15s;}
.tab:hover{color:var(--ink);}
.tab.active{color:var(--brand);border-bottom-color:var(--brand);font-weight:600;}
.tab .cnt{display:inline-block;margin-left:4px;font-size:11px;color:var(--muted);}
.tab.active .cnt{color:var(--brand);}
.day-group{margin-bottom:32px;}
.day-head{display:flex;align-items:baseline;gap:12px;margin-bottom:12px;padding:0 4px;}
.day-head .day-date{font-size:18px;font-weight:700;color:var(--ink);}
.day-head .day-meta{color:var(--muted);font-size:13px;font-weight:400;}
.news-list{display:flex;flex-direction:column;gap:10px;}
.news-row{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:16px 20px;display:flex;gap:16px;align-items:flex-start;transition:all .15s;
  color:var(--ink);text-decoration:none;
}
.news-row:hover{border-color:var(--brand);box-shadow:var(--shadow-hover);text-decoration:none;}
.news-time{font-family:ui-monospace,"SF Mono",Consolas,monospace;font-size:12px;color:var(--muted);min-width:42px;padding-top:4px;}
.news-content{flex:1;min-width:0;}
.news-head{display:flex;align-items:center;gap:8px;margin-bottom:6px;flex-wrap:wrap;}
.news-tag{font-size:11px;padding:2px 8px;border-radius:4px;background:var(--brand-soft);color:var(--brand);font-weight:600;}
.news-tag.pending{background:#FEF3C7;color:#B45309;}
.news-tag.src{background:var(--soft);color:var(--sub);}
.news-title{font-size:15.5px;font-weight:600;color:var(--ink);margin:0 0 4px;line-height:1.4;}
.news-summary{font-size:13px;color:var(--sub);line-height:1.65;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.news-star{background:transparent;border:0;cursor:pointer;color:#d1d5db;font-size:20px;padding:4px 6px;line-height:1;flex-shrink:0;}
.news-star.active{color:var(--warm);}
.news-star:hover{color:var(--warm);}
.load-more{text-align:center;padding:16px;margin-top:20px;}
.load-more button{padding:10px 32px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);cursor:pointer;font-size:14px;color:var(--sub);font-family:inherit;transition:all .15s;}
.load-more button:hover{background:var(--brand-soft);color:var(--brand);border-color:var(--brand);}
.load-more.hidden{display:none;}
.empty-state{text-align:center;color:var(--sub);padding:60px 0;font-size:15px;}
.foot-note{margin-top:32px;padding:14px 16px;background:var(--soft);border-radius:var(--radius-sm);font-size:12.5px;color:var(--muted);font-style:italic;line-height:1.7;}

/* ===================== Responsive ===================== */
@media (prefers-color-scheme: dark){:root:not([data-theme]){color-scheme:dark;}}

@media (max-width:960px){
  .grid{grid-template-columns:repeat(2,1fr);}
  .topic-grid{grid-template-columns:repeat(3,1fr);}
  .industry-inner{grid-template-columns:1fr;gap:36px;}
  .industry-grid{max-width:540px;}
}

@media (max-width:760px){
  header{flex-wrap:wrap;}
  nav{display:none;}
  .mobile-menu-btn{display:block;}
  .two-col{grid-template-columns:1fr;}
  .scroller{max-height:none;}
  .page-hero h1{font-size:28px;}
  .page-hero{padding:32px 0 24px;}
  .timeline-day-items::before{left:calc(56px + 9px);}
  .timeline-item{flex-direction:row;}
  .hero-inner{grid-template-columns:1fr;gap:32px;padding:44px 24px 100px;}
  .grid{grid-template-columns:repeat(2,1fr);}
  .topic-grid{grid-template-columns:repeat(2,1fr);}
  .hero-text{text-align:center;max-width:100%;}
  .hero .tagline{margin-left:auto;margin-right:auto;}
  .search-frame{margin-left:auto;margin-right:auto;}
  .search-label{text-align:center;}
  .hero-text .quick-links{justify-content:center;}
  .hero-figure{order:-1;max-width:360px;margin:0 auto;}
}

@media (max-width:640px){
  .hero h1{font-size:32px;}
  .hero .tagline{font-size:15px;}
  .grid{grid-template-columns:1fr;}
  .topic-grid{grid-template-columns:repeat(2,1fr);gap:14px;}
  .topic-hero-title{font-size:34px;}
  .tcard{padding:16px 16px 14px;border-radius:14px;}
  .tcard-name{font-size:18px;}
  .tcard-emoji{font-size:26px;}
  .tcard-intro{font-size:12px;}
  .topic-hero{padding:38px 0 8px;}
  .topic-stat{flex:0 0 33.33%;}
  .search-box{font-size:15px;padding:16px 50px 16px 44px;}
  .search-btn{padding:9px 16px;font-size:12px;}
  .feed-item{padding:9px 12px;gap:10px;}
  .feed-date{width:38px;}
  .feed-title{font-size:13.5px;}
  .brand-tag{display:none;}
  .topic-page h1{font-size:30px;}
  .industry-section{padding:52px 0;}
  .industry-text h2{font-size:28px;}
  .industry-grid{grid-template-columns:1fr;}
}

/* ===================== Topic page reading width (2026-08-19 spec) ===================== */
@media (min-width:641px){
  .topic-page header{max-width:var(--max-width);}
  .topic-page .container{max-width:var(--max-width);}
  .qa-answer{padding:0 44px 18px 58px;}
  .qa-answer p{font-size:16px;}
}




/* ============================================================
   专题内页 V2（2026-08-23 大字编辑式/杂志式排版）
   每专题一主题色：.topic-theme-basics 等 body 类设定 --taccent
   结构：大字 hero(与专题主页同格式、无背景色)
         -> 暖色块(统计 + 首页同款鲜艳大搜索框) -> 热点问答 -> 具体问题
   ============================================================ */
.topic-theme-basics{
  --taccent:#2D5F6E;
  --taccent-2:#3E7A8C;
  --taccent-soft:#E9F0F2;
  --taccent-glow:rgba(45,95,110,.14);
}

/* ---- Hero：复用专题主页格式，标题用各专题主题色、字号与主页一致（56px/移动34px，覆盖 .topic-page h1 的 38px/30px） ---- */
/* 顶部间距与专题主页一致：返回键紧凑（margin 10）+ hero 顶部留白（26px），合计约等于主页 56px */
.tpage-hero{padding:26px 0 0;}
.topic-page .topic-hero-title{color:var(--taccent);font-size:56px;line-height:1.35;}
.topic-hero-title .th-l1{color:var(--warm);}
.topic-hero-title .th-l2{color:var(--taccent);}
.topic-page .topic-hero-sub{max-width:620px;}

/* 返回专题：所有专题页顶部左侧回退键 */
.tpage-back{
  display:inline-flex;align-items:center;gap:5px;
  font-size:13px;font-weight:600;color:var(--muted);
  text-decoration:none;margin:0 0 10px;
  transition:color .15s;
}
.tpage-back svg{width:15px;height:15px;flex-shrink:0;}
.tpage-back:hover{color:var(--taccent);}

/* ---- 统计 + 搜索区：搜索框升级为左右贯通的长方形卡片（专题主色衍生底色） ---- */
.tpage-panel{
  max-width:780px;margin:0 auto;
  padding:30px 30px;
}
.tpage-stats{display:flex;justify-content:center;flex-wrap:wrap;margin-bottom:26px;}
.tpage-stat{flex:0 0 33.33%;display:flex;flex-direction:column;align-items:center;gap:3px;}
.tpage-stat + .tpage-stat{border-left:1px solid rgba(232,106,92,.16);}
.tpage-stat strong{font-size:27px;font-weight:800;color:var(--ink);line-height:1.15;font-variant-numeric:tabular-nums;}
.tpage-stat span{font-size:12.5px;color:var(--muted);letter-spacing:.5px;}

/* ---- 搜索框：浅底工具面板（方案C，2026-08-24 用户选定）——浅青绿面板 + 白输入 + 主题色搜索按钮 ---- */
.tpage-search{
  max-width:640px;margin:0 auto;
  background:var(--taccent-soft);
  border:1px solid rgba(45,95,110,.12);
  border-radius:16px;padding:10px;
  display:flex;gap:10px;align-items:center;
  box-shadow:0 6px 18px rgba(45,95,110,.08);
}
.tpage-search-wrap{position:relative;flex:1;}
.tpage-search-box{
  width:100%;padding:13px 20px 13px 44px;
  border:1px solid var(--line);border-radius:12px;
  background:#fff;color:var(--ink);
  font-size:15.5px;outline:none;
  transition:border-color .2s, box-shadow .2s;
}
.tpage-search-box::placeholder{color:var(--muted);}
.tpage-search-box:focus{border-color:var(--taccent);box-shadow:0 0 0 3px var(--taccent-glow);}
.tpage-search-icon{
  position:absolute;left:15px;top:50%;transform:translateY(-50%);
  width:17px;height:17px;stroke:var(--taccent);fill:none;stroke-width:2.2;pointer-events:none;
}
.tpage-search-btn{
  flex:none;padding:0 24px;height:46px;
  border:none;border-radius:12px;background:var(--taccent);color:#fff;
  font-size:14px;font-weight:600;cursor:pointer;font-family:inherit;
  transition:background .2s;
}
.tpage-search-btn:hover{background:var(--taccent-2);}
.tpage-search-meta{text-align:center;font-size:12.5px;color:var(--muted);margin-top:14px;}
.tpage-slogan{text-align:center;font-size:13px;color:var(--warm);letter-spacing:.6px;margin-top:12px;font-weight:600;}

/* ---- 问题列表打磨：序号改圆形主题色徽章 ---- */
.topic-theme-basics .qa-section-title{font-size:23px;letter-spacing:-.3px;}
.topic-theme-basics .qa-section-title::before{
  content:"";display:inline-block;width:9px;height:9px;border-radius:50%;
  background:var(--warm);margin:0 10px 3px 2px;
}
.topic-theme-basics .qa-num{
  border-radius:50%;background:var(--taccent-soft);color:var(--taccent);
}
.topic-theme-basics .qa-src-block{border-left-color:var(--taccent);}
.topic-theme-basics .qa-src-label{color:var(--taccent);}
.topic-theme-basics .qa-points li::before{background:var(--taccent);}
.topic-theme-basics .qa-more-btn{
  display:block;margin:10px 0 0;padding:0;text-align:left;
  font-size:13px;color:var(--taccent);
  background:transparent;border:none;cursor:pointer;
  text-decoration:underline;text-underline-offset:3px;
  transition:color .2s;
}
.topic-theme-basics .qa-more-btn:hover{color:var(--taccent);text-decoration:none;}
.topic-theme-basics .related-tag:hover{border-color:var(--taccent);color:var(--taccent);background:var(--taccent-soft);}

/* ---- 专题内页 V2 响应式 ---- */
@media (max-width:760px){
  .tpage-hero{padding:12px 0 0;}
  .tpage-panel{margin:0 auto;padding:24px 16px;}
  .qa-section{margin-top:0;}
  .tpage-stat strong{font-size:23px;}
  .tpage-search-box{padding:12px 18px 12px 42px;font-size:15.5px;}
  .tpage-search-icon{left:14px;width:18px;height:18px;}
  .tpage-search-btn{padding:0 18px;height:44px;font-size:13.5px;}
  .tpage-search-meta{font-size:12px;margin-top:12px;}
}
@media (max-width:640px){
  .tpage-search-box{padding:11px 16px 11px 40px;font-size:15px;}
  .tpage-search-btn{padding:0 15px;height:42px;}
  .topic-page .topic-hero-title{font-size:34px;}
  .qa-item{padding:20px 14px 20px 54px;}
  .qa-item .qa-num{width:46px;font-size:31px;top:20px;}
}

/* ===== 16 专题主题色（TOPICS 数组色，08-24 批量生成） ===== */
.topic-theme-comorbid{
  --taccent:#4F9A9F;
  --taccent-2:#7BB3B7;
  --taccent-soft:#E9F2F3;
  --taccent-glow:rgba(79,154,159,0.14);
}
.topic-theme-sleep{
  --taccent:#D96B5F;
  --taccent-2:#E29087;
  --taccent-soft:#FAEDEB;
  --taccent-glow:rgba(217,107,95,0.14);
}
.topic-theme-aac{
  --taccent:#B07A4F;
  --taccent-2:#C39B7B;
  --taccent-soft:#F5EFE9;
  --taccent-glow:rgba(176,122,79,0.14);
}
.topic-theme-diet{
  --taccent:#B07A4F;
  --taccent-2:#C39B7B;
  --taccent-soft:#F5EFE9;
  --taccent-glow:rgba(176,122,79,0.14);
}
.topic-theme-emotion{
  --taccent:#4F9A9F;
  --taccent-2:#7BB3B7;
  --taccent-soft:#E9F2F3;
  --taccent-glow:rgba(79,154,159,0.14);
}
.topic-theme-language{
  --taccent:#C9853F;
  --taccent-2:#D6A36F;
  --taccent-soft:#F8F0E7;
  --taccent-glow:rgba(201,133,63,0.14);
}
.topic-theme-toileting{
  --taccent:#6E88A5;
  --taccent-2:#92A5BB;
  --taccent-soft:#EDF0F4;
  --taccent-glow:rgba(110,136,165,0.14);
}
.topic-theme-selfcare{
  --taccent:#D96B5F;
  --taccent-2:#E29087;
  --taccent-soft:#FAEDEB;
  --taccent-glow:rgba(217,107,95,0.14);
}
.topic-theme-social{
  --taccent:#8078A8;
  --taccent-2:#9F99BD;
  --taccent-soft:#EFEEF4;
  --taccent-glow:rgba(128,120,168,0.14);
}
.topic-theme-cognition{
  --taccent:#B39B3F;
  --taccent-2:#C6B46F;
  --taccent-soft:#F5F3E7;
  --taccent-glow:rgba(179,155,63,0.14);
}
.topic-theme-medication{
  --taccent:#3E8FA5;
  --taccent-2:#6EABBB;
  --taccent-soft:#E7F1F4;
  --taccent-glow:rgba(62,143,165,0.14);
}
.topic-theme-school{
  --taccent:#A85F6E;
  --taccent-2:#BD8792;
  --taccent-soft:#F4EBED;
  --taccent-glow:rgba(168,95,110,0.14);
}
.topic-theme-screen{
  --taccent:#5477A0;
  --taccent-2:#7E99B7;
  --taccent-soft:#EAEEF3;
  --taccent-glow:rgba(84,119,160,0.14);
}
.topic-theme-intervention{
  --taccent:#3E7A6E;
  --taccent-2:#6E9B92;
  --taccent-soft:#E7EFED;
  --taccent-glow:rgba(62,122,110,0.14);
}
.topic-theme-medical{
  --taccent:#4E74A5;
  --taccent-2:#7A96BB;
  --taccent-soft:#E9EEF4;
  --taccent-glow:rgba(78,116,165,0.14);
}
.topic-theme-family{
  --taccent:#B57F9A;
  --taccent-2:#C79FB3;
  --taccent-soft:#F6EFF2;
  --taccent-glow:rgba(181,127,154,0.14);
}
.topic-theme-gut{
  --taccent:#7A6A52;
  --taccent-2:#9B8F7D;
  --taccent-soft:#EFEDEA;
  --taccent-glow:rgba(122,106,82,0.14);
}

.tpage-empty{
  text-align:center;padding:70px 20px;color:var(--muted);font-size:15px;line-height:1.9;
}

/* 专题主页卡片底部：前两个问题（08-24） */
/* 08-28：tcard-qa/tcard-meta 随卡片改版移除（问答与状态不再上卡） */

/* 左翻动画（08-24）：向右滑出 + 从左侧滑入 */
.grid.leaving-left{animation:gridOutRight .26s ease forwards;}
.grid.entering-left{animation:gridInLeft .32s ease forwards;}
@keyframes gridOutRight{from{transform:translateX(0);opacity:1;}to{transform:translateX(42px);opacity:0;}}
@keyframes gridInLeft{from{transform:translateX(-42px);opacity:0;}to{transform:translateX(0);opacity:1;}}

/* NEW 标签（全站统一）
   08-30 改版：由实心色块改为纯文字上标，落在标题文字左侧偏上（左上）。
   去掉白字与底色，字号 9px、字距拉开，退回配角位置，颜色仍用 --warm 珊瑚色。

   位移用 position:relative + top 精确控制（不用 vertical-align:super）：
   1) super 只上移 0.4em≈4px，底边仍压在字形中线下方，看着是"居中偏上"而非上标；
   2) 新知/更新页是 flex 容器，flex 项直接忽略 vertical-align，会静默失效。
   top 位移在 inline 与 flex 下都生效，两处可独立调。

   实测（Edge，专题页标题 16px/行高 26px，字形顶≈行盒顶+5、字形中线≈行盒顶+13）：
     top:-8px → 徽标顶比字形顶高 3px、底比字形中线高 2px，标准上标位；
     top:-11px → 更强的角标感，顶略出行盒 1px。
   新知/更新页同行是 22.7px 高的胶囊标签，top:-4px 与之构成上标关系。 */
.new-badge{
  display:inline-block;position:relative;top:-8px;margin-right:3px;
  color:var(--warm);
  font-size:9px;font-weight:700;letter-spacing:.1em;line-height:1;
}
.news-head .new-badge,
.timeline-card-head .new-badge{
  top:-4px;
}

/* 08-27: 动效降级 —— 系统开启"减弱动态效果"时，全站动画/过渡退化为直接切换。
   ASD 站的核心用户里有动效敏感人群，这是同类标杆站（autism.org.uk）的标配。 */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
  html{scroll-behavior:auto !important;}
  .card:hover,.tcard:hover,.feed-item:hover,.qa-result-item:hover{transform:none;}
}

/* 内容区最后一节内部的末尾元素不留外边距，避免外边距穿透形成白带 */
.container > section:last-of-type > *:last-child{margin-bottom:0;}
