/* template: heritage style: parchment */
/* 在线测试 - 浏览器本地测试记录按钮与弹窗样式 */
.yb-quiz-history-toggle { position: relative; width: 36px; height: 36px; border: none; background: rgba(26,58,42,0.06); border-radius: 8px; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; color: #1a3a2a; transition: background 0.15s; }
.yb-quiz-history-toggle:hover { background: rgba(26,58,42,0.12); }
.yb-quiz-history-toggle svg { width: 20px; height: 20px; }
.yb-quiz-history-badge { position: absolute; top: -4px; right: -4px; min-width: 18px; height: 18px; padding: 0 5px; background: #e74c3c; color: #fff; border-radius: 9px; font-size: 11px; font-weight: 800; display: none; align-items: center; justify-content: center; box-shadow: 0 1px 3px rgba(0,0,0,0.2); }
.yb-quiz-history-popup { position: fixed; top: 58px; right: 12px; width: min(360px, calc(100vw - 24px)); max-height: min(520px, calc(100vh - 80px)); background: #fff; border-radius: 12px; box-shadow: 0 12px 40px rgba(15,23,42,0.15); border: 1px solid rgba(0,0,0,0.06); z-index: 2000; display: flex; flex-direction: column; opacity: 0; transform: translateY(-8px); pointer-events: none; transition: opacity 0.2s, transform 0.2s; }
.yb-quiz-history-popup.open { opacity: 1; transform: translateY(0); pointer-events: auto; }
.yb-quiz-history-header { display: flex; align-items: center; justify-content: space-between; padding: 14px 16px; border-bottom: 1px solid rgba(0,0,0,0.06); }
.yb-quiz-history-header span { font-size: 15px; font-weight: 800; color: #1f2937; }
.yb-quiz-history-header button { width: 28px; height: 28px; border: none; background: transparent; border-radius: 6px; cursor: pointer; color: #64748b; display: inline-flex; align-items: center; justify-content: center; }
.yb-quiz-history-header button:hover { background: rgba(0,0,0,0.04); color: #1f2937; }
.yb-quiz-history-body { overflow-y: auto; padding: 8px; flex: 1; }
.yb-quiz-history-empty { padding: 32px 16px; text-align: center; color: #94a3b8; font-size: 14px; }
.yb-quiz-history-item { display: block; padding: 12px 14px; border-radius: 10px; text-decoration: none; color: inherit; transition: background 0.15s; }
.yb-quiz-history-item:hover { background: rgba(26,58,42,0.04); }
.yb-quiz-history-item-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 8px; }
.yb-quiz-history-item-title { font-size: 14px; font-weight: 700; color: #1f2937; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.yb-quiz-history-item-status { font-size: 11px; font-weight: 700; padding: 3px 8px; border-radius: 10px; white-space: nowrap; }
.yb-quiz-history-item-status.completed { background: rgba(58,107,74,0.1); color: #3a6b4a; }
.yb-quiz-history-item-status.progress { background: rgba(245,158,11,0.12); color: #b45309; }
.yb-quiz-history-item-bottom { display: flex; align-items: center; gap: 10px; font-size: 12px; color: #64748b; }
.yb-quiz-history-result { font-weight: 700; color: #4A7C59; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 160px; }
.yb-quiz-history-view-result { margin-left: auto; font-size: 12px; font-weight: 600; color: #1a3a2a; text-decoration: underline; text-underline-offset: 2px; white-space: nowrap; }
.yb-quiz-history-item:hover .yb-quiz-history-view-result { color: #4A7C59; }
.yb-quiz-history-progress-wrap { flex: 1; height: 5px; background: rgba(0,0,0,0.06); border-radius: 3px; overflow: hidden; min-width: 80px; }
.yb-quiz-history-progress-bar { height: 100%; background: linear-gradient(90deg, #4A7C59, #6b9e7a); border-radius: 3px; transition: width 0.3s; }
.yb-quiz-history-progress-text { font-weight: 700; min-width: 34px; text-align: right; }
.yb-quiz-history-time { margin-left: auto; font-size: 11px; color: #94a3b8; }
.yb-quiz-history-footer { padding: 10px 12px; border-top: 1px solid rgba(0,0,0,0.06); text-align: center; }
.yb-quiz-history-clear { border: none; background: transparent; color: #94a3b8; font-size: 13px; font-weight: 600; cursor: pointer; padding: 6px 12px; border-radius: 6px; }
.yb-quiz-history-clear:hover { color: #e74c3c; background: rgba(231,76,60,0.06); }
@media (max-width: 420px) { .yb-quiz-history-popup { right: 8px; width: calc(100vw - 16px); top: 54px; max-height: calc(100vh - 70px); } .yb-quiz-history-result { max-width: 110px; } }

/* ============================================================
   HERITAGE 模板 · 浅色护眼设计系统「肠道手记 GUT JOURNAL」
   说明：本文件是模板唯一视觉来源（manifest 声明 independent）。
   设计语言：宣纸米色底 + 白纸面板 + 橄榄绿主色 + 赭红印章点缀，
   杂志编辑式排版（细线分区、衬线编号、大留白），拒绝卡片堆砌感。
   字根体系：移动端 13px，768px→14px，1300px→16px，1930px→18px；
   所有尺寸一律 rem，移动优先，大屏自动放大，主容器上限 1800px。
   ============================================================ */

/* ---------- 字根（响应式缩放核心，移动端 13px 为设计基准） ---------- */
html {font-size: 13px;}
/* 清掉浏览器默认的 body 外边距：不清的话页面顶部（导航上方）会多出 8px 缝隙，
   粘性进度条也会跟着错位，看起来像被什么东西挡住了 */
body.qz-test, body.qz-result, body.qz-intro, body.qz-quick {margin: 0;}
@media (min-width: 768px) {html {font-size: 14px;}}
@media (min-width: 1300px) {html {font-size: 16px;}}
@media (min-width: 1930px) {html {font-size: 18px;}}

/* ---------- 设计变量（护眼纸色系） ---------- */
:root {
  --gc-bg: #F5F1E6;                 /* 宣纸米底（护眼） */
  --gc-bg-2: #EFE9DA;               /* 深一档纸色（交替分区） */
  --gc-paper: #FFFEFA;              /* 白纸面板 */
  --gc-paper-2: #FBF8EF;            /* 米白面板（次级） */
  --gc-ink: #33302A;                /* 墨色主文字 */
  --gc-ink-2: #6C675A;              /* 次级文字 */
  --gc-ink-3: #99937F;              /* 弱文字 */
  --gc-green: #5E7D57;              /* 橄榄绿（主色，护眼） */
  --gc-green-2: #45603F;            /* 深绿 */
  --gc-rust: #B4552E;               /* 赭红（印章 / CTA / 强调） */
  --gc-gold: #A8853F;               /* 黄芪金（中医板块） */
  --gc-pink: #C07A6B;               /* 陶粉（Bong 卡） */
  --gc-grad: linear-gradient(100deg, #5E7D57, #7FA070 60%, #A8853F);
  --gc-line: #E0D9C5;               /* 纸边线 */
  --gc-line-soft: #EAE4D3;
  --gc-panel: var(--gc-paper);
  --gc-panel-hover: #FBF8EF;
  --gc-glass: rgba(250,247,239,.88);
  --gc-shadow: 0 .1rem .3rem rgba(90,78,45,.04), 0 .7rem 1.8rem -.7rem rgba(90,78,45,.14);
  --gc-serif: Georgia, 'Times New Roman', 'Noto Serif SC', 'Noto Serif TC', 'Songti SC', 'SimSun', serif;
  --gc-sans: 'Inter', 'Noto Sans SC', 'Noto Sans TC', -apple-system, 'PingFang SC', 'Segoe UI', sans-serif;
  --gc-shell: 1800px;               /* 大屏上限 */
  --gc-read: 56rem;                 /* 阅读区宽度 */
  --gc-radius: .6rem;
  --gc-radius-lg: .8rem;
  --gc-ease: cubic-bezier(.22,.8,.32,1);
  /* 图表库（charts.js）读取的变量，映射到纸色系 */
  --qz-m-primary: #5E7D57;
  --qz-m-accent: #A8853F;
  --qz-m-text-light: #8A8474;
  --qz-m-border: #E0D9C5;
}

/* ---------- 应用底座：宣纸底 + 顶部纸纹渐变 ---------- */
.qz-m-app {position: relative; overflow-x: clip; background: var(--gc-bg); color: var(--gc-ink); font-family: var(--gc-sans); font-size: 1rem; line-height: 1.85; -webkit-font-smoothing: antialiased;}
.qz-m-app *, .qz-m-app *::before, .qz-m-app *::after {box-sizing: border-box;}
.qz-m-app::before {content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none; background-image: radial-gradient(1px 1px at 18% 24%, rgba(120,105,60,.10), transparent 60%), radial-gradient(1px 1px at 66% 12%, rgba(120,105,60,.07), transparent 60%), radial-gradient(1.2px 1.2px at 84% 38%, rgba(120,105,60,.08), transparent 60%), radial-gradient(1px 1px at 38% 62%, rgba(120,105,60,.06), transparent 60%); background-size: 27rem 27rem, 21rem 21rem, 35rem 35rem, 19rem 19rem; opacity: .8;}
.qz-m-app > * {position: relative; z-index: 1;}

/* ---------- 布局容器 ---------- */
.gc-shell {width: 100%; max-width: var(--gc-shell); margin-inline: auto; padding-inline: clamp(1.15rem, 4vw, 5rem);}
.gc-sr-only {position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;}

/* ---------- 通用文字件 ---------- */
.gc-grad-text {background: var(--gc-grad); -webkit-background-clip: text; background-clip: text; color: transparent;}
.gc-kicker {display: flex; align-items: center; gap: .7rem; margin: 0; font-size: .78rem; font-weight: 700; letter-spacing: .26em; text-transform: uppercase; color: var(--gc-green-2);}
.gc-kicker .gc-kicker-no {display: inline-grid; place-items: center; min-width: 1.7rem; height: 1.7rem; padding: 0 .3rem; border: 1px solid var(--gc-green); border-radius: .35rem; font-family: var(--gc-serif); font-style: italic; font-weight: 700; font-size: .85rem; letter-spacing: .04em; color: var(--gc-green-2); background: rgba(94,125,87,.07);}
.gc-kicker::before {content: ""; flex: none; width: 1.6rem; height: 1px; background: var(--gc-green); opacity: .55;}
.gc-sec {padding-block: clamp(3rem, 6vw, 6rem);}
.gc-sec-head {display: flex; flex-direction: column; gap: .85rem; margin-bottom: clamp(1.9rem, 3.6vw, 3rem); max-width: 48rem; padding: 1rem 1rem 0;}
.gc-sec-title {margin: 0; font-family: var(--gc-serif); font-weight: 700; font-size: clamp(1.65rem, 3.4vw, 2.5rem); line-height: 1.3; letter-spacing: .01em; color: var(--gc-ink);}
.gc-sec-title em {font-style: normal; color: var(--gc-rust);}
.gc-sec-sub {margin: 0; color: var(--gc-ink-2); font-size: .98rem; max-width: 42rem;}

/* ---------- 按钮 ---------- */
.gc-btn {display: inline-flex; align-items: center; justify-content: center; gap: .55rem; padding: .95rem 2.1rem; border-radius: .35rem; border: 1px solid transparent; font-family: var(--gc-sans); font-size: .98rem; font-weight: 700; line-height: 1.2; text-decoration: none; cursor: pointer; transition: transform .25s var(--gc-ease), box-shadow .25s, border-color .25s, background .25s, color .25s;}
.gc-btn svg {width: 1rem; height: 1rem; flex: none;}
.gc-btn-main {background: var(--gc-rust); color: #FFF9F0; box-shadow: 0 .55rem 1.6rem -.6rem rgba(180,85,46,.55);}
.gc-btn-main:hover {transform: translateY(-2px); box-shadow: 0 .8rem 2rem -.6rem rgba(180,85,46,.6); color: #FFF9F0;}
.gc-btn-ghost {background: transparent; border-color: var(--gc-line); color: var(--gc-ink);}
.gc-btn-ghost:hover {border-color: var(--gc-green); color: var(--gc-green-2); transform: translateY(-2px); background: rgba(94,125,87,.05);}
.gc-btn-ink {background: var(--gc-ink); border-color: var(--gc-ink); color: #F5F1E6;}
.gc-btn-ink:hover {background: #48443B; color: #FFF; transform: translateY(-2px);}
.gc-cta-row {display: flex; flex-wrap: wrap; gap: .9rem;}

/* ---------- 白纸卡（通用：细边 + 柔影，纸质感） ---------- */
.gc-card {position: relative; background: var(--gc-paper); border: 1px solid var(--gc-line); border-radius: var(--gc-radius-lg); box-shadow: var(--gc-shadow); overflow: hidden;}

/* ============================================================
   介绍页 INTRO
   ============================================================ */

/* ---------- HERO：编辑式大标题 + 竖排维度 + 印章编号 ---------- */
.gc-hero {position: relative; padding-block: clamp(3.5rem, 8vw, 7rem) clamp(3rem, 6vw, 5.5rem); border-bottom: 1px solid var(--gc-line); background: linear-gradient(180deg, #FAF7EE 0%, var(--gc-bg) 100%);}
/* 免责声明：英雄区最上方的一行小字（非医疗建议），手记风格用 ※ 引导 */
.gc-hero-disclaimer {display: flex; align-items: baseline; gap: .5rem; margin: 0 0 1.15rem; font-size: .78rem; line-height: 1.5; color: var(--gc-ink-2); opacity: .92;}
.gc-hero-disclaimer::before {content: "※"; flex: none; color: var(--gc-rust); font-size: .82rem; line-height: 1;}
.gc-hero-grid {display: grid; gap: clamp(2.5rem, 5vw, 4.5rem); align-items: center;}
.gc-hero-badge {display: inline-flex; align-items: center; gap: .5rem; margin: 0 0 1.4rem; padding: .38rem 1.1rem; border: 1px solid rgba(180,85,46,.35); border-radius: 999px; background: rgba(180,85,46,.06); color: var(--gc-rust); font-size: .8rem; letter-spacing: .06em;}
.gc-hero-badge::before {content: ""; width: .45rem; height: .45rem; border-radius: 50%; background: var(--gc-rust); animation: gcPulse 2.6s ease-in-out infinite;}
@keyframes gcPulse {0%, 100% {opacity: 1;} 50% {opacity: .35;}}
.gc-hero-kicker {margin: 0 0 1rem; font-size: .84rem; letter-spacing: .3em; text-transform: uppercase; color: var(--gc-ink-2);}
.gc-hero-kicker b {color: var(--gc-green-2); font-weight: 700;}
.gc-hero-title {margin: 0 0 1.4rem; font-family: var(--gc-serif); font-weight: 700; font-size: clamp(2.2rem, 5.6vw, 4rem); line-height: 1.22; letter-spacing: .02em; color: var(--gc-ink);}
.gc-hero-sub {margin: 0 0 2rem; max-width: 38rem; color: var(--gc-ink-2); font-size: clamp(1rem, 1.8vw, 1.12rem); line-height: 2;}
.gc-hero-stats {display: flex; flex-wrap: wrap; gap: clamp(1.6rem, 3.5vw, 3.2rem); margin-bottom: 2.2rem; padding-bottom: 1.6rem; border-bottom: 1px solid var(--gc-line);}
.gc-stat {display: flex; flex-direction: column; gap: .1rem;}
.gc-stat b {display: flex; align-items: baseline; gap: .3rem; font-family: var(--gc-serif); font-size: clamp(1.7rem, 3vw, 2.3rem); font-weight: 700; line-height: 1.1; color: var(--gc-green-2);}
.gc-stat b i {font-style: normal; font-family: var(--gc-sans); font-size: .82rem; font-weight: 500; color: var(--gc-ink-3); letter-spacing: .05em;}
.gc-stat span {font-size: .8rem; color: var(--gc-ink-3); letter-spacing: .12em;}
.gc-cta-row {display: flex; flex-wrap: wrap; align-items: center; gap: .9rem 1rem;}

/* 右栏：主封面图（肠道手记 flat lay）+ 印章角标；无封面图时 fallback 竹签挂饰+PC-only；移动端整栏隐藏 */
.gc-hero-figure {position: relative; display: none; margin: 0; align-self: stretch; padding: clamp(1.4rem, 2.6vw, 2.2rem); border: 1px solid var(--gc-line); border-radius: var(--gc-radius-lg); background: var(--gc-paper); box-shadow: var(--gc-shadow); flex-direction: column; gap: 1.4rem;}
.gc-hero-figure::before {content: ""; position: absolute; inset: .5rem; border: 1px solid var(--gc-line-soft); border-radius: .5rem; pointer-events: none;}
/* 封面主图：16:9 flat lay，卡片内再套米纸外框，印章贴在图左下 */
.gc-hero-cover {position: relative; overflow: hidden; border-radius: var(--gc-radius); border: 1px solid var(--gc-line); background: var(--gc-paper-2); box-shadow: 0 .9rem 2rem -.8rem rgba(120,95,50,.35);}
.gc-hero-cover img {display: block; width: 100%; height: auto; aspect-ratio: 16/9; object-fit: cover;}
/* 盖在封面图左下角的赭红印章（overlay 版：略缩小、旋转 -3°，白色内边框增强辨识度） */
.gc-hero-seal--overlay {position: absolute; left: 1rem; bottom: 1rem; z-index: 2; min-width: 4.3rem; min-height: 4.3rem; padding: .35rem .95rem; transform: rotate(-3deg);}
.gc-hero-seal--overlay b {font-size: 1.75rem;}
.gc-hero-seal--overlay i {font-size: .55rem; letter-spacing: .22em;}
/* 无封面图时的竹签挂饰——顶部印章 + 挂杆 + 垂绳竹签（维度名） */
.gc-hero-figure-top {display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-bottom: 1.2rem; margin-bottom: 1.5rem; border-bottom: 1px solid var(--gc-line);}
.gc-hero-seal {display: inline-flex; flex-direction: column; align-items: center; justify-content: center; min-width: 4.8rem; min-height: 4.8rem; padding: .4rem 1.1rem; background: var(--gc-rust); color: #FFF6EC; box-shadow: inset 0 0 0 .15rem rgba(255,246,236,.35), 0 .4rem 1rem -.4rem rgba(180,85,46,.5); transform: rotate(-2deg);}
.gc-hero-seal b {display: block; font-family: var(--gc-serif); font-size: 2rem; font-weight: 700; line-height: 1;}
.gc-hero-seal i {font-style: normal; font-size: .6rem; letter-spacing: .28em; text-transform: uppercase; opacity: .85;}
.gc-hero-figure-cap {font-family: var(--gc-serif); font-size: .74rem; letter-spacing: .3em; text-transform: uppercase; color: var(--gc-ink-3); writing-mode: vertical-rl; max-height: 4.8rem;}
/* 挂杆（竹竿）+ 垂绳竹签：签身纸感渐变，签头打孔穿绳，签脚圆角；lat 模式 5 签等宽自适应，避免长词撑出卡片 */
.gc-hero-dims {position: relative; margin: 0; padding: 1.7rem .2rem 0; list-style: none; display: flex; justify-content: space-between; align-items: flex-start; gap: .8rem; flex: 1; min-height: 0; font-family: var(--gc-serif); color: var(--gc-ink-2);}
.gc-hero-dims::before {content: ""; position: absolute; top: 0; left: -.2rem; right: -.2rem; height: .32rem; border-radius: 999px; background: linear-gradient(90deg, #B8975A, #C9A56E 30%, #A9854E); box-shadow: 0 .12rem .28rem rgba(120,95,50,.3);}
.gc-hero-dims li {position: relative; display: flex; align-items: center; justify-content: center; padding: 1.55rem .65rem 1.15rem; border: 1px solid var(--gc-line); border-radius: .45rem .45rem .95rem .95rem; background: linear-gradient(180deg, #FFFDF6, #FBF4E4); box-shadow: 0 .4rem 1rem -.55rem rgba(120,95,50,.32), inset 0 -.22rem 0 rgba(169,133,63,.13); transition: transform .3s var(--gc-ease), box-shadow .3s;}
.gc-hero-dims li:hover {transform: translateY(-.3rem); box-shadow: 0 .8rem 1.4rem -.6rem rgba(120,95,50,.4), inset 0 -.22rem 0 rgba(169,133,63,.13);}
.gc-hero-dims li::before {content: ""; position: absolute; top: -1.7rem; left: 50%; width: 1px; height: 1.7rem; background: linear-gradient(180deg, rgba(169,133,63,.5), rgba(169,133,63,.95));}
.gc-hero-dims li::after {content: ""; position: absolute; top: .48rem; left: 50%; transform: translateX(-50%); width: .42rem; height: .42rem; border-radius: 50%; border: 1.5px solid rgba(169,133,63,.5); background: var(--gc-paper);}
.gc-hero-dims li:first-child span {color: var(--gc-green-2); font-weight: 700;}
/* CJK：竖排文字（自上而下，传统竹签式） */
.gc-hero-dims--cjk li span {writing-mode: vertical-rl; font-size: 1.18rem; letter-spacing: .3em; line-height: 1.15;}
/* 拉丁：签身等宽铺满，文字换行居中，长连字符词智能断行，字号比中文略缩适配 5 签布局 */
.gc-hero-dims--lat {justify-content: stretch; gap: .55rem;}
.gc-hero-dims--lat li {flex: 1 1 0; min-width: 0; padding: 1.55rem .4rem 1.05rem;}
.gc-hero-dims--lat li span {display: block; min-width: 0; max-width: 100%; text-align: center; font-size: .82rem; letter-spacing: .02em; line-height: 1.45; hyphens: auto; word-break: break-word; overflow-wrap: anywhere;}
@media (min-width: 1100px) {.gc-hero-grid {grid-template-columns: minmax(0, 1.15fr) minmax(0, .95fr);} .gc-hero-figure {display: flex; flex-direction: column;}}
@media (min-width: 1500px) {.gc-hero-grid {grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);} .gc-hero-dims--lat {gap: .8rem;} .gc-hero-dims--lat li span {font-size: .88rem; line-height: 1.5;}}

/* ---------- 为什么值得测（编辑部四格：顶部墨线 + 编号，无卡片底） ---------- */
.gc-feat-grid {display: grid; gap: 0;}
@media (min-width: 768px) {.gc-feat-grid {grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(1.5rem, 3vw, 2.5rem);}}
@media (min-width: 1300px) {.gc-feat-grid {grid-template-columns: repeat(4, minmax(0, 1fr));}}
.gc-feat {position: relative; display: flex; flex-direction: column; gap: .7rem; padding: 1.4rem .2rem 1.8rem; border-top: 2px solid var(--gc-ink);}
.gc-feat-no {font-family: var(--gc-serif); font-style: italic; font-size: 1.05rem; letter-spacing: .12em; color: var(--gc-rust);}
.gc-feat h3 {margin: 0; font-size: 1.08rem; font-weight: 700; color: var(--gc-ink);}
.gc-feat p {margin: 0; font-size: .88rem; line-height: 1.85; color: var(--gc-ink-2);}

/* ---------- 五维（横向编号行，细线分区） ---------- */
.gc-dim-grid {display: grid; gap: 0;}
@media (min-width: 768px) {.gc-dim-grid {grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(1.5rem, 3vw, 3rem);}}
@media (min-width: 1300px) {.gc-dim-grid {grid-template-columns: repeat(5, minmax(0, 1fr));}}
.gc-dim {display: flex; flex-direction: column; gap: .55rem; padding: 1.3rem .2rem 1.6rem; border-top: 1px solid var(--gc-line);}
.gc-dim-no {font-family: var(--gc-serif); font-style: italic; font-size: 1.15rem; letter-spacing: .1em; color: var(--gc-green);}
.gc-dim h3 {margin: 0; font-size: 1.06rem; font-weight: 700; color: var(--gc-ink);}
.gc-dim p {margin: 0; font-size: .85rem; line-height: 1.8; color: var(--gc-ink-2);}

/* ---------- 三步流程（目录式三行，衬线大编号） ---------- */
.gc-flow {display: grid; gap: 0;}
@media (min-width: 900px) {.gc-flow {grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: clamp(1.5rem, 3vw, 2.5rem);}}
.gc-step {position: relative; display: flex; gap: 1.1rem; padding: 1.5rem .2rem 1.7rem; border-top: 1px solid var(--gc-line);}
.gc-step-no {flex: none; width: 2.6rem; height: 2.6rem; display: grid; place-items: center; border: 1px solid var(--gc-green); border-radius: 50%; font-family: var(--gc-serif); font-style: italic; font-weight: 700; font-size: 1.15rem; color: var(--gc-green-2); background: rgba(94,125,87,.06);}
.gc-step h4 {margin: .2rem 0 .4rem; font-size: 1.02rem; font-weight: 700; color: var(--gc-ink);}
.gc-step p {margin: 0; font-size: .87rem; line-height: 1.8; color: var(--gc-ink-2);}

/* ---------- 六型图鉴（目录式列表行：编号色标 + 标题摘要 + 箭头圆钮） ---------- */
.gc-res-grid {display: grid; gap: 0; border-top: 1px solid var(--gc-line);}
.gc-res-card {position: relative; display: grid; grid-template-columns: auto auto minmax(0, 1fr) auto; align-items: center; column-gap: 1.4rem; padding: 1.5rem .4rem; border-bottom: 1px solid var(--gc-line); background: transparent; text-decoration: none; color: var(--gc-ink); transition: background .25s, padding .25s var(--gc-ease);}
.gc-res-card::before {content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: var(--gc-res-accent, var(--gc-green)); transform: scaleY(0); transform-origin: top; transition: transform .3s var(--gc-ease);}
.gc-res-card:hover {background: var(--gc-paper); padding-left: 1.2rem; padding-right: 1rem;}
.gc-res-card:hover::before {transform: scaleY(1);}
.gc-res-figure {flex: none; width: 4.3rem; height: 4.3rem; border-radius: 50%; overflow: hidden; border: 1px solid var(--gc-line); background: var(--gc-paper-2); transition: border-color .25s, transform .3s var(--gc-ease);}
.gc-res-figure img {width: 100%; height: 100%; object-fit: cover; display: block;}
.gc-res-card:hover .gc-res-figure {border-color: var(--gc-res-accent, var(--gc-green)); transform: translateY(-.15rem);}
/* 六型各自的主题色（编号色标与箭头随行变化，互相区分） */
.gc-res-card:nth-child(6n+1) {--gc-res-accent: #5E7D57;}
.gc-res-card:nth-child(6n+2) {--gc-res-accent: #A8853F;}
.gc-res-card:nth-child(6n+3) {--gc-res-accent: #B4552E;}
.gc-res-card:nth-child(6n+4) {--gc-res-accent: #7A8AA0;}
.gc-res-card:nth-child(6n+5) {--gc-res-accent: #8B7CF6;}
.gc-res-card:nth-child(6n+6) {--gc-res-accent: #C07A6B;}
.gc-res-no {display: flex; align-items: center; gap: 1.1rem; font-family: var(--gc-serif); font-style: italic; font-size: .95rem; letter-spacing: .16em; color: var(--gc-res-accent, var(--gc-green)); white-space: nowrap;}
.gc-res-no::after {content: ""; width: 1px; height: 2.4rem; background: var(--gc-line);}
.gc-res-body {display: flex; flex-direction: column; gap: .3rem; min-width: 0;}
.gc-res-card h3 {margin: 0; font-family: var(--gc-serif); font-size: 1.28rem; font-weight: 700; color: var(--gc-ink);}
.gc-res-card p {margin: 0; font-size: .87rem; line-height: 1.75; color: var(--gc-ink-2);}
.gc-res-more {display: inline-flex; align-items: center; justify-content: center; width: 2.4rem; height: 2.4rem; border: 1px solid var(--gc-line); border-radius: 50%; color: var(--gc-ink-3); background: var(--gc-bg); transition: all .25s var(--gc-ease);}
.gc-res-more svg {width: .95rem; height: .95rem; transition: transform .25s var(--gc-ease);}
.gc-res-card:hover .gc-res-more {border-color: var(--gc-res-accent, var(--gc-green)); color: var(--gc-res-accent, var(--gc-green)); background: var(--gc-paper);}
.gc-res-card:hover .gc-res-more svg {transform: translateX(.2rem);}
@media (max-width: 900px) {.gc-res-card {grid-template-columns: auto minmax(0, 1fr) auto; column-gap: .9rem; padding: 1.2rem .5rem;} .gc-res-no {gap: .7rem; font-size: .82rem; letter-spacing: .12em;} .gc-res-no::after {height: 1.8rem;} .gc-res-figure {width: 3.4rem; height: 3.4rem;} .gc-res-card h3 {font-size: 1.08rem;} .gc-res-card p {font-size: .8rem; line-height: 1.6;}}
@media (max-width: 600px) {.gc-res-card {grid-template-columns: auto minmax(0, 1fr) auto; grid-template-rows: auto auto; column-gap: .6rem; row-gap: .4rem; padding: .9rem .1rem;} .gc-res-no {grid-column: 1 / -1; margin: 0 0 .1rem; gap: .5rem; font-size: .76rem; letter-spacing: .1em;} .gc-res-no::after {height: 1rem;} .gc-res-figure {grid-column: 1; grid-row: 2; width: 2.8rem; height: 2.8rem;} .gc-res-body {grid-column: 2; grid-row: 2; min-width: 0;} .gc-res-more {grid-column: 3; grid-row: 2; align-self: start; margin-top: .2rem; width: 2rem; height: 2rem;} .gc-res-more svg {width: .8rem; height: .8rem;} .gc-res-card h3 {font-size: .98rem; margin-bottom: .05rem;} .gc-res-card p {font-size: .76rem; line-height: 1.5; -webkit-line-clamp: 2; display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden;}}

/* ---------- 适用与边界（双栏白纸） ---------- */
.gc-who-grid {display: grid; gap: 1.2rem;}
@media (min-width: 900px) {.gc-who-grid {grid-template-columns: repeat(2, minmax(0, 1fr));}}
.gc-who-card {padding: 1.7rem 1.6rem; border-radius: var(--gc-radius-lg); border: 1px solid var(--gc-line); background: var(--gc-paper); box-shadow: var(--gc-shadow);}
.gc-who-card h3 {display: flex; align-items: center; gap: .6rem; margin: 0 0 1rem; font-size: 1.05rem; font-weight: 700;}
.gc-who-card h3 svg {width: 1.25rem; height: 1.25rem; flex: none;}
.gc-who-card ul {margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: .55rem;}
.gc-who-card li {position: relative; padding-left: 1.3rem; font-size: .9rem; line-height: 1.75; color: var(--gc-ink-2);}
.gc-who-card li::before {content: ""; position: absolute; left: 0; top: .72em; width: .45rem; height: .45rem; border-radius: 50%;}
.gc-who-yes li::before {background: var(--gc-green);}
.gc-who-no li::before {background: var(--gc-rust);}
.gc-who-yes h3 {color: var(--gc-green-2);}
.gc-who-no h3 {color: var(--gc-rust);}

/* ---------- 科学依据（白纸卡 + 衬线金编号 + 顶部金线，编号用 CSS 计数器） ---------- */
.gc-science-pts {margin: 0 0 1.6rem; padding: 0; list-style: none; display: grid; gap: 1rem; counter-reset: gcsci;}
@media (min-width: 900px) {.gc-science-pts {grid-template-columns: repeat(2, minmax(0, 1fr));}}
.gc-science-pts li {position: relative; padding: 1.35rem 1.4rem 1.4rem 4.6rem; background: var(--gc-paper); border: 1px solid var(--gc-line); border-radius: var(--gc-radius-lg); box-shadow: var(--gc-shadow); font-size: .9rem; line-height: 1.8; color: var(--gc-ink-2); counter-increment: gcsci; overflow: hidden; transition: border-color .3s, transform .3s var(--gc-ease);}
.gc-science-pts li::before {content: ""; position: absolute; top: 0; left: 1.4rem; width: 2.2rem; height: 3px; background: var(--gc-gold);}
.gc-science-pts li::after {content: counter(gcsci, decimal-leading-zero); position: absolute; left: 1.4rem; top: 1.5rem; font-family: var(--gc-serif); font-style: italic; font-size: 1.7rem; font-weight: 700; line-height: 1; color: var(--gc-gold); opacity: .85;}
.gc-science-pts li:hover {border-color: rgba(168,133,63,.55); transform: translateY(-.2rem);}
.gc-science-pts strong {display: block; margin-bottom: .25rem; color: var(--gc-ink); font-size: .98rem;}
.gc-intro-rich {margin-bottom: 1.6rem; max-width: 46rem; color: var(--gc-ink-2); font-size: .93rem; line-height: 2;}
.gc-intro-rich p {margin: 0 0 .9rem;}

/* ---------- 隐私三栏（白纸） ---------- */
.gc-privacy-grid {display: grid; gap: 1.1rem;}
@media (min-width: 768px) {.gc-privacy-grid {grid-template-columns: repeat(3, minmax(0, 1fr));}}
.gc-privacy-card {display: flex; flex-direction: column; gap: .6rem; padding: 1.5rem 1.4rem; background: var(--gc-paper); border: 1px solid var(--gc-line); border-radius: var(--gc-radius-lg); box-shadow: var(--gc-shadow);}
.gc-privacy-card h3 {margin: 0; font-size: 1rem; font-weight: 700; color: var(--gc-ink);}
.gc-privacy-card p {margin: 0; font-size: .87rem; line-height: 1.8; color: var(--gc-ink-2);}

/* ---------- FAQ 手风琴（整体居中，标记用 CSS 画十字，旋转 45° 变叉，绝对居中不歪） ---------- */
.gc-faq {display: flex; flex-direction: column; gap: .85rem; max-width: 52rem; margin-inline: auto;}
.gc-faq details {background: var(--gc-paper); border: 1px solid var(--gc-line); border-radius: var(--gc-radius); box-shadow: var(--gc-shadow); overflow: hidden; transition: border-color .3s;}
.gc-faq details[open] {border-color: var(--gc-green);}
.gc-faq summary {display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.15rem 1.4rem; cursor: pointer; font-size: .98rem; font-weight: 600; color: var(--gc-ink); list-style: none;}
.gc-faq summary::-webkit-details-marker {display: none;}
.gc-faq-mark {flex: none; position: relative; width: 1.6rem; height: 1.6rem; border-radius: 50%; border: 1px solid var(--gc-line); transition: transform .3s var(--gc-ease), background .3s, border-color .3s;}
.gc-faq-mark::before, .gc-faq-mark::after {content: ""; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); border-radius: 1px; background: var(--gc-green-2); transition: background .3s;}
.gc-faq-mark::before {width: .72rem; height: 1.5px;}
.gc-faq-mark::after {width: 1.5px; height: .72rem;}
.gc-faq details[open] .gc-faq-mark {transform: rotate(45deg); background: rgba(94,125,87,.1); border-color: var(--gc-green);}
.gc-faq-body {padding: 0 1.4rem 1.3rem; font-size: .89rem; line-height: 1.9; color: var(--gc-ink-2);}

/* ---------- 最终 CTA（深绿墨底，纸感反色） ---------- */
.gc-final {position: relative; padding: clamp(2.6rem, 6vw, 5rem) clamp(1.5rem, 5vw, 5rem); text-align: center; border-radius: var(--gc-radius-lg); background: linear-gradient(160deg, #3C5537, #2E4229); color: #F2EEDF; overflow: hidden;}
.gc-final::before {content: ""; position: absolute; inset: .6rem; border: 1px solid rgba(242,238,223,.22); border-radius: .5rem; pointer-events: none;}
.gc-final h2 {position: relative; margin: .4rem 0 1rem; font-family: var(--gc-serif); font-size: clamp(1.7rem, 3.8vw, 2.6rem); font-weight: 700; color: #FBF8EE;}
.gc-final p {position: relative; margin: 0 auto 1.8rem; max-width: 34rem; color: rgba(242,238,223,.82); font-size: .98rem;}
.gc-final .gc-cta-row {position: relative; justify-content: center;}
.gc-final .gc-btn-main {background: #E8B44C; color: #33302A; box-shadow: none;}
.gc-final .gc-btn-main:hover {background: #F0BE5C; color: #33302A;}
.gc-final .gc-btn-ghost {border-color: rgba(242,238,223,.35); color: #F2EEDF;}
.gc-final .gc-btn-ghost:hover {border-color: rgba(242,238,223,.7); color: #FFF; background: transparent;}

/* ---------- 信任条 ---------- */
.gc-trust {display: flex; flex-wrap: wrap; justify-content: center; gap: .8rem 1.1rem; padding-block: 1.8rem 2.6rem;}
.gc-trust-item {display: inline-flex; align-items: center; gap: .5rem; padding: .55rem 1.2rem; border: 1px solid var(--gc-line); border-radius: 999px; background: var(--gc-paper); font-size: .84rem; color: var(--gc-ink-2);}
.gc-trust-item svg {width: 1rem; height: 1rem; color: var(--gc-green);}

/* ============================================================
   做题页 TEST
   ============================================================ */
.gc-exam {display: flex; flex-direction: column; min-height: 68vh;}
/* 进度细线：sticky 方案——页面在顶部时天然紧贴导航下方（文档流内），
   向下滚动后吸在 top:--gc-nav-h（导航下沿），彻底杜绝 fixed 定位被导航挡住的问题 */
.gc-exam-line {position: sticky; top: var(--gc-nav-h, 3.8rem); z-index: 99; height: 3px; background: var(--gc-line-soft); pointer-events: none; box-shadow: 0 1px 2px rgba(90,78,45,.06);}
.gc-exam-line i {display: block; width: 0; height: 100%; background: linear-gradient(90deg, #5E7D57, #7FA070); transition: width .5s var(--gc-ease);}

.gc-exam-main {flex: 1; width: 100%; max-width: var(--gc-read); margin-inline: auto; padding-inline: clamp(1.15rem, 4vw, 2.5rem); padding-block: clamp(2.2rem, 5vw, 4rem);}
.gc-q {animation: gcQIn .5s var(--gc-ease);}
@keyframes gcQIn {from {opacity: 0; transform: translateY(1.1rem);} to {opacity: 1; transform: none;}}
.gc-q-meta {display: flex; align-items: center; gap: .9rem; margin-bottom: 1.3rem;}
.gc-q-no {font-family: var(--gc-serif); font-style: italic; font-size: .95rem; letter-spacing: .14em; color: var(--gc-rust);}
.gc-q-total {font-size: .8rem; color: var(--gc-ink-3); letter-spacing: .1em;}
.gc-q-back {display: inline-flex; align-items: center; gap: .4rem; margin-left: auto; padding: .32rem .8rem; border: 1px solid transparent; border-radius: 999px; color: var(--gc-ink-3); font-size: .82rem; text-decoration: none; white-space: nowrap; transition: color .25s, border-color .25s, background .25s;}
.gc-q-back:hover {color: var(--gc-green-2); border-color: var(--gc-green); background: var(--gc-paper);}
.gc-q-back svg {width: .85rem; height: .85rem; flex: none;}
.qz-q-title {margin: 0 0 1.5rem; font-family: var(--gc-serif); font-size: clamp(1.45rem, 3.2vw, 1.95rem); font-weight: 700; line-height: 1.55; color: var(--gc-ink);}
.qz-q-desc {margin: -.7rem 0 1.5rem; color: var(--gc-ink-2); font-size: .95rem;}
.qz-q-hint {display: flex; align-items: flex-start; gap: .55rem; margin: -.4rem 0 1.8rem; padding: .9rem 1.15rem; border: 1px solid rgba(168,133,63,.3); border-radius: var(--gc-radius); background: rgba(168,133,63,.06); color: var(--gc-ink-2); font-size: .87rem; line-height: 1.8;}
.qz-q-hint svg {flex: none; width: 1rem; height: 1rem; margin-top: .25em; color: var(--gc-gold);}

/* 选项：白纸行式卡 */
.qz-q-options {display: flex; flex-direction: column; gap: .7rem;}
.qz-option {position: relative; display: flex; align-items: center; gap: 1rem; padding: 1.05rem 1.35rem; border: 1px solid var(--gc-line); border-radius: var(--gc-radius); background: var(--gc-paper); cursor: pointer; transition: border-color .22s, background .22s, transform .22s var(--gc-ease), box-shadow .22s;}
.qz-option:hover {border-color: var(--gc-green); background: var(--gc-paper-2); transform: translateX(.35rem); box-shadow: -0.3rem 0 1.2rem -0.6rem rgba(94,125,87,.3);}
.qz-option-key {flex: none; width: 2rem; height: 2rem; display: grid; place-items: center; border: 1px solid var(--gc-line); border-radius: 50%; font-family: var(--gc-serif); font-size: .88rem; color: var(--gc-ink-2); background: var(--gc-bg); transition: all .22s;}
.qz-option-label {font-size: .98rem; color: var(--gc-ink); line-height: 1.65;}
.qz-option-desc {display: block; margin-top: .12rem; font-size: .8rem; color: var(--gc-ink-3);}
.qz-option.selected {border-color: var(--gc-green); background: #F4F7EF; box-shadow: 0 .5rem 1.6rem -.8rem rgba(94,125,87,.4);}
.qz-option.selected .qz-option-key {border-color: var(--gc-green-2); background: var(--gc-green); color: #FFF; font-weight: 700;}
.qz-option.selected .qz-option-label {color: var(--gc-green-2); font-weight: 600;}
.qz-option.selected::after {content: ""; position: absolute; right: 1.35rem; width: .5rem; height: .95rem; border: solid var(--gc-green-2); border-width: 0 .18rem .18rem 0; transform: rotate(45deg);}

/* 底部操作条 */
.gc-exam-nav {position: sticky; bottom: 0; z-index: 40; background: var(--gc-glass); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border-top: 1px solid var(--gc-line);}
.gc-exam-nav-in {display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-block: .9rem; padding-inline: clamp(1.15rem, 4vw, 2.5rem); max-width: var(--gc-read); margin-inline: auto;}
.gc-exam-nav button {display: inline-flex; align-items: center; gap: .5rem; padding: .9rem 1.9rem; border: 1px solid var(--gc-line); border-radius: .35rem; background: var(--gc-paper); color: var(--gc-ink); font-family: var(--gc-sans); font-size: .95rem; font-weight: 600; cursor: pointer; transition: all .25s var(--gc-ease);}
.gc-exam-nav button svg {width: .95rem; height: .95rem;}
.gc-exam-nav button:hover:not(:disabled) {border-color: var(--gc-green); color: var(--gc-green-2); transform: translateY(-2px);}
.gc-exam-nav button:disabled {opacity: .3; cursor: not-allowed;}
.gc-exam-nav .qz-btn-submit {background: var(--gc-rust); border-color: var(--gc-rust); color: #FFF9F0; font-weight: 700; box-shadow: 0 .5rem 1.6rem -.6rem rgba(180,85,46,.55);}
.gc-exam-nav .qz-btn-submit:hover:not(:disabled) {color: #FFF9F0;}

/* 快速版提示条 */
.gc-quick-banner {display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.2rem; margin: 0 auto clamp(1.8rem, 4vw, 2.8rem); max-width: var(--gc-read); padding: 1.05rem 1.35rem; border: 1px solid rgba(168,133,63,.35); border-radius: var(--gc-radius); background: rgba(168,133,63,.07); font-size: .89rem; color: var(--gc-ink-2);}
.gc-quick-badge {flex: none; padding: .22rem .85rem; border-radius: 999px; background: var(--gc-gold); color: #FFFDF6; font-size: .74rem; font-weight: 700; letter-spacing: .08em;}
.gc-quick-banner p {flex: 1; min-width: 12rem; margin: 0;}
.gc-quick-banner a {color: #8A6D2E; font-weight: 600; text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: .08rem;}

/* ============================================================
   结果页 RESULT
   ============================================================ */

/* ---------- 档案头（米纸英雄区 + 巨型编号水印） ---------- */
.gc-rpt-hero {position: relative; overflow: hidden; border-bottom: 1px solid var(--gc-line); background: linear-gradient(180deg, #FAF7EE 0%, var(--gc-bg) 100%);}
.gc-rpt-hero-grid {position: relative; display: grid; gap: 2.5rem; padding-block: clamp(2.6rem, 5vw, 4.8rem) clamp(2.2rem, 4vw, 3.8rem);}
@media (min-width: 1100px) {.gc-rpt-hero-grid {grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); align-items: center; gap: 3.5rem;}}
.gc-rpt-hero-badge {display: inline-flex; align-items: center; gap: .5rem; margin: 0 0 1.2rem; padding: .35rem 1.05rem; border: 1px solid rgba(180,85,46,.35); border-radius: 999px; background: rgba(180,85,46,.06); color: var(--gc-rust); font-size: .8rem; letter-spacing: .06em;}
.gc-rpt-hero-title {margin: 0 0 1.1rem; font-family: var(--gc-serif); font-size: clamp(2rem, 4.6vw, 3.4rem); font-weight: 700; line-height: 1.25; color: var(--gc-ink);}
.gc-rpt-hero-summary {margin: 0 0 1.8rem; max-width: 36rem; color: var(--gc-ink-2); font-size: 1rem; line-height: 2;}
.gc-rpt-hero-meta {display: flex; flex-wrap: wrap; gap: clamp(1.2rem, 3vw, 2.6rem); margin-bottom: 2rem; padding-bottom: 1.4rem; border-bottom: 1px solid var(--gc-line);}
.gc-rpt-meta-item {display: flex; flex-direction: column; gap: .12rem;}
.gc-rpt-meta-item b {font-family: var(--gc-serif); font-size: 1.45rem; font-weight: 700; line-height: 1.2; color: var(--gc-green-2);}
.gc-rpt-meta-item i {font-style: normal; font-size: .78rem; color: var(--gc-ink-3); letter-spacing: .12em;}
.gc-rpt-hero-no {position: absolute; right: clamp(.5rem, 4vw, 4rem); bottom: -2.5rem; font-family: var(--gc-serif); font-style: italic; font-size: clamp(7rem, 18vw, 15rem); font-weight: 700; line-height: 1; color: var(--gc-ink); opacity: .05; pointer-events: none; user-select: none;}

/* 五维读数面板（右侧白纸） */
/* 类型档案照：手记里贴的"拍立得"——纸质边框 + 轻微倾斜 + 底部留白写编号，融入宣纸主题 */
.gc-rpt-photo {position: relative; margin: 0 auto 1.8rem; max-width: 13.5rem; padding: .5rem .5rem 2.3rem; border: 1px solid var(--gc-line); border-radius: .45rem; background: var(--gc-paper); box-shadow: var(--gc-shadow); transform: rotate(-1.6deg); transition: transform .4s var(--gc-ease);}
.gc-rpt-photo:hover {transform: rotate(0deg) scale(1.03);}
.gc-rpt-photo img {display: block; width: 100%; aspect-ratio: 1; border-radius: .25rem; object-fit: cover;}
.gc-rpt-photo::after {content: "FILE · " attr(data-no); position: absolute; left: 0; right: 0; bottom: .65rem; text-align: center; font-family: var(--gc-serif); font-size: .68rem; letter-spacing: .22em; color: var(--gc-ink-3);}
.gc-readout {position: relative; padding: 1.6rem 1.5rem 1.4rem; border: 1px solid var(--gc-line); border-radius: var(--gc-radius-lg); background: var(--gc-paper); box-shadow: var(--gc-shadow);}
.gc-readout::before {content: ""; position: absolute; top: 0; left: 1.2rem; width: 2.2rem; height: 3px; background: var(--gc-green);}
.gc-readout-head {display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin-bottom: 1.2rem;}
.gc-readout-head span {font-size: .95rem; font-weight: 700; color: var(--gc-ink);}
.gc-readout-head small {font-size: .75rem; color: var(--gc-ink-3); letter-spacing: .08em;}
.gc-readout-row {display: grid; grid-template-columns: 5.5rem 1fr 2.2rem; align-items: center; gap: .8rem; padding-block: .5rem;}
.gc-readout-name {font-size: .85rem; color: var(--gc-ink-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis;}
.gc-readout-track {height: .42rem; border-radius: 999px; background: var(--gc-line-soft); overflow: hidden;}
.gc-readout-track i {display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, #5E7D57, #7FA070);}
.gc-readout-val {text-align: right; font-family: var(--gc-serif); font-size: 1.02rem; font-weight: 700; color: var(--gc-green-2);}
.gc-readout-note {margin: 1rem 0 0; padding-top: .9rem; border-top: 1px solid var(--gc-line-soft); font-size: .82rem; color: var(--gc-ink-3);}
.gc-readout-note b {color: var(--gc-rust); font-weight: 600;}

/* ---------- 结果页正文 ---------- */
/* 大白话：结果页各章节之间的距离由父容器的 gap 统一控制，
   章节自身不再吃 padding，避免"间距叠加"把页面撑得稀稀拉拉。 */
.gc-rpt-body {display: flex; flex-direction: column; gap: clamp(2rem, 3.2vw, 3rem); padding-block: clamp(2.2rem, 4vw, 3.5rem);}
.gc-rpt-body .gc-sec {padding-block: 0;}
.gc-rpt-body .gc-sec-head {margin-bottom: clamp(1.3rem, 2.4vw, 1.9rem);}

/* 一致性环形：标题在上，评分环+说明并排，冲突明细整行铺底 */
/* ---------- 答题一致性：左分数环 + 右冲突明细 的 grid 布局 ---------- */
.gc-consistency {display: flex; flex-direction: column; gap: 1.3rem; padding: 1.6rem 1.8rem;}
.gc-consistency-head {display: flex; align-items: center; justify-content: space-between; gap: .8rem; padding-bottom: 1.1rem; border-bottom: 1px solid var(--gc-line-soft);}
.gc-consistency-title {margin: 0; font-size: 1.08rem; font-weight: 700; color: var(--gc-ink);}
.gc-consistency-level {flex: none; padding: .28rem .9rem; border-radius: 999px; background: rgba(94,125,87,.12); color: var(--gc-green-2); font-size: .82rem; font-weight: 700; letter-spacing: .04em;}
.gc-consistency-level--medium {background: rgba(168,133,63,.14); color: #8A6D2E;}
.gc-consistency-level--low {background: rgba(180,85,46,.12); color: var(--gc-rust);}
.gc-consistency-grid {display: grid; grid-template-columns: 1fr; gap: 1.4rem;}
@media (min-width: 900px) {.gc-consistency-grid {grid-template-columns: 16rem minmax(0, 1fr); gap: 2rem; align-items: start;}}
/* 未答题时的收起态：板块保留标题，正文只显示一行"未检测到答题信息"提示 */
.gc-consistency-empty {display: flex; align-items: center; gap: .65rem; padding: .35rem .2rem 0; font-size: .88rem; line-height: 1.7; color: var(--gc-ink-3);}
.gc-consistency-empty-dot {flex: none; width: .5rem; height: .5rem; border-radius: 50%; background: var(--gc-gold); box-shadow: 0 0 0 .22rem rgba(168,133,63,.14);}
.gc-consistency-empty p {margin: 0;}
.gc-consistency-score {display: flex; flex-direction: column; align-items: center; gap: 1rem; padding: 1.2rem 1rem; border: 1px solid var(--gc-line-soft); border-radius: var(--gc-radius); background: var(--gc-paper-2);}
.gc-consistency-ring {position: relative; flex: none; width: 8.5rem; height: 8.5rem;}
.gc-consistency-ring svg {width: 100%; height: 100%; transform: rotate(-90deg);}
.gc-consistency-track {fill: none; stroke: var(--gc-line-soft); stroke-width: 3;}
.gc-consistency-progress {fill: none; stroke: var(--gc-green); stroke-width: 3; stroke-linecap: round; transition: stroke-dasharray .8s var(--gc-ease);}
.gc-consistency-progress--medium {stroke: var(--gc-gold);}
.gc-consistency-progress--low {stroke: var(--gc-rust);}
.gc-consistency-ring-txt {position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .05rem;}
.gc-consistency-ring-txt b {font-family: var(--gc-serif); font-size: 2.3rem; font-weight: 700; line-height: 1; color: var(--gc-ink);}
.gc-consistency-ring-txt i {font-style: normal; font-size: .72rem; letter-spacing: .14em; color: var(--gc-ink-3);}
.gc-consistency-desc {margin: 0; font-size: .86rem; line-height: 1.85; color: var(--gc-ink-2); text-align: center;}
/* 可信度低时的"建议重测"提醒：赭红小字，温和但醒目 */
.gc-consistency-retest {color: var(--gc-rust); font-weight: 600;}
/* 冲突明细（右侧栏）：每对冲突一张卡，头部组名+相差档数，卡内两道题原文与回答 */
.gc-consistency-conflicts {min-width: 0;}
.gc-conflicts-head {margin: 0 0 .3rem; font-size: .98rem; font-weight: 700; color: var(--gc-ink);}
.gc-conflicts-note {margin: 0 0 1rem; font-size: .82rem; line-height: 1.7; color: var(--gc-ink-3);}
.gc-conflicts-list {display: grid; gap: .85rem; max-height: 26rem; overflow-y: auto; padding-right: .3rem;}
.gc-conflict-card {padding: 1rem 1.1rem; border: 1px solid var(--gc-line-soft); border-radius: var(--gc-radius); background: var(--gc-paper-2);}
.gc-conflict-head {display: flex; align-items: center; justify-content: space-between; gap: .6rem; margin-bottom: .8rem; padding-bottom: .65rem; border-bottom: 1px dashed var(--gc-line);}
.gc-conflict-group {font-size: .84rem; font-weight: 700; color: var(--gc-ink-2);}
.gc-conflict-gap {flex: none; padding: .18rem .65rem; border-radius: 999px; background: rgba(180,85,46,.1); color: var(--gc-rust); font-size: .74rem; font-weight: 700;}
.gc-conflict-q {display: flex; gap: .7rem; align-items: flex-start;}
.gc-conflict-q + .gc-conflict-q {margin-top: .7rem; padding-top: .7rem; border-top: 1px solid var(--gc-line-soft);}
.gc-conflict-qno {flex: none; font-family: var(--gc-serif); font-size: .82rem; font-weight: 700; color: var(--gc-rust); line-height: 1.7;}
.gc-conflict-qbody {min-width: 0;}
.gc-conflict-qtext {margin: 0 0 .3rem; font-size: .84rem; line-height: 1.7; color: var(--gc-ink);}
.gc-conflict-answer {display: inline-block; padding: .12rem .6rem; border-radius: .3rem; background: rgba(94,125,87,.1); color: var(--gc-green-2); font-size: .78rem; font-weight: 600;}

/* 图表双卡 */
.gc-chart-grid {display: grid; gap: 1.1rem;}
@media (min-width: 1000px) {.gc-chart-grid {grid-template-columns: repeat(2, minmax(0, 1fr));}}
.gc-chart-box {margin: 0; padding: 1.4rem 1.4rem 1.2rem; border: 1px solid var(--gc-line); border-radius: var(--gc-radius-lg); background: var(--gc-paper); box-shadow: var(--gc-shadow); position: relative; overflow: hidden;}
.gc-chart-box::before {content: ""; position: absolute; top: 0; left: 1.2rem; width: 2.2rem; height: 3px; background: var(--gc-green);}
.gc-chart-box figcaption {margin-bottom: .9rem; font-size: .8rem; letter-spacing: .18em; text-transform: uppercase; color: var(--gc-ink-3);}
.gc-chart-box canvas {display: block; width: 100%; height: auto;}

/* 类型速览：共情大字引言 + 比喻高亮框 + 正文 + 目的收尾条（编辑式排版，非卡片堆砌） */
.gc-traits {position: relative; padding: clamp(1.7rem, 4vw, 2.6rem) clamp(1.5rem, 4vw, 2.8rem); font-size: .95rem; line-height: 2; color: var(--gc-ink-2);}
.gc-traits::before {content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--gc-grad);}
.gc-traits p {margin: 0 0 .8rem;}
.gc-traits ul, .gc-traits ol {margin: .4rem 0 .8rem; padding-left: 1.3rem;}
.gc-traits strong {color: var(--gc-ink);}
.gc-traits-lead {position: relative; margin: 0 0 1.4rem !important; font-family: var(--gc-serif); font-size: clamp(1.12rem, 2.3vw, 1.42rem) !important; font-weight: 700; line-height: 1.95; color: var(--gc-ink) !important;}
.gc-traits-mark {color: var(--gc-green);}
.gc-traits-metaphor {position: relative; margin: 0 0 1.5rem !important; padding: 1.05rem 1.3rem; border-left: 3px solid var(--gc-green); border-radius: 0 var(--gc-radius) var(--gc-radius) 0; background: var(--gc-paper-2); font-size: .98rem; line-height: 2; color: var(--gc-green-2) !important;}
.gc-traits-metaphor::after {content: "Metaphor"; position: absolute; top: -0.6rem; right: 1rem; padding: .05rem .6rem; border-radius: 999px; background: var(--gc-green); color: #FFFEFA; font-size: .68rem; letter-spacing: .18em; line-height: 1.6;}
.gc-traits-body {margin-bottom: 1.3rem;}
.gc-traits-body:last-of-type {margin-bottom: 0;}
.gc-traits-purpose {display: flex; align-items: flex-start; gap: .65rem; margin: 0 !important; padding: 1.05rem 1.3rem; border: 1px dashed rgba(94,125,87,.5); border-radius: var(--gc-radius); background: rgba(94,125,87,.04); font-size: .92rem; line-height: 1.95; color: var(--gc-ink-2) !important;}
.gc-traits-purpose svg {flex: none; margin-top: .4rem; color: var(--gc-rust);}

/* 优势人格化：标签徽章 + 破折号解释 + 弱色注解（中文不适用斜体，用弱色+引号代替） */
.gc-strength-list {margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 0;}
.gc-strength-item {display: flex; flex-direction: column; gap: .35rem; padding: .95rem 0; border-bottom: 1px dashed var(--gc-line);}
.gc-strength-item:first-child {padding-top: .1rem;}
.gc-strength-item:last-child {border-bottom: 0; padding-bottom: .1rem;}
.gc-strength-tag {display: inline-flex; align-items: center; gap: .5rem; align-self: flex-start; padding: .16rem .8rem; border-radius: 999px; background: rgba(94,125,87,.12); color: var(--gc-green-2); font-size: .88rem; font-weight: 700; letter-spacing: .02em;}
.gc-strength-tag::before {content: ""; width: .35rem; height: .35rem; border-radius: 50%; background: var(--gc-green);}
.gc-strength-note {font-size: .9rem; line-height: 1.85; color: var(--gc-ink-2);}
.gc-strength-em {font-style: normal; font-size: .84rem; line-height: 1.8; color: var(--gc-ink-3);}
.gc-strength-em::before {content: "❝ "; color: var(--gc-gold); font-size: .95rem;}

/* 照护方案：温度标题下的斜体感导语（中文用弱色细字代替斜体） */
.gc-plan-lead {margin: -.35rem 0 1.1rem; padding-left: 1.1rem; border-left: 2px solid var(--gc-line); font-size: .88rem; line-height: 1.9; color: var(--gc-ink-3);}

/* 古籍 / 中医引文的白话共鸣句 */
.gc-quote-note {margin: 1.1rem auto 0; max-width: 44rem; text-align: center; font-size: .88rem; line-height: 1.95; color: var(--gc-ink-3);}
.gc-quote-note--tcm {margin: .75rem 0 0; max-width: none; text-align: left;}

/* 优势 / 注意（双卡） */
.gc-duo {display: grid; gap: 1.1rem;}
@media (min-width: 900px) {.gc-duo {grid-template-columns: repeat(2, minmax(0, 1fr));}}
.gc-duo-card {position: relative; padding: 1.6rem 1.6rem; border: 1px solid var(--gc-line); border-radius: var(--gc-radius-lg); background: var(--gc-paper); box-shadow: var(--gc-shadow); overflow: hidden;}
.gc-duo-card::before {content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px;}
.gc-duo-yes::before {background: var(--gc-green);}
.gc-duo-no::before {background: var(--gc-rust);}
.gc-duo-card h3 {display: flex; align-items: center; gap: .55rem; margin: 0 0 1rem; font-size: 1.02rem; font-weight: 700;}
.gc-duo-yes h3 {color: var(--gc-green-2);}
.gc-duo-no h3 {color: var(--gc-rust);}
.gc-duo-diet h3 {color: var(--gc-green-2);}
.gc-duo-move h3 {color: var(--gc-gold);}
.gc-duo-card ul {margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: .6rem;}
.gc-duo-card li {position: relative; padding-left: 1.25rem; font-size: .9rem; line-height: 1.8; color: var(--gc-ink-2);}
.gc-duo-yes li::before {content: ""; position: absolute; left: 0; top: .68em; width: .42rem; height: .42rem; border-radius: 50%; background: var(--gc-green);}
.gc-duo-no li::before {content: ""; position: absolute; left: 0; top: .68em; width: .42rem; height: .42rem; border-radius: 50%; background: var(--gc-rust);}

/* 一日节律时间线（大屏双列卡片阵：时间胶囊 + 标题 + 描述） */
.gc-timeline {margin: 0; padding: 0; list-style: none; display: grid; gap: .95rem;}
@media (min-width: 1000px) {.gc-timeline {grid-template-columns: repeat(2, minmax(0, 1fr));}}
.gc-tl-item {position: relative; display: flex; flex-direction: column; gap: .55rem; padding: 1.5rem 1.5rem 1.55rem; border: 1px solid var(--gc-line); border-radius: var(--gc-radius-lg); background: var(--gc-paper); box-shadow: var(--gc-shadow); overflow: hidden; transition: border-color .3s, transform .3s var(--gc-ease), box-shadow .3s;}
.gc-tl-item::before {content: ""; position: absolute; top: 0; left: 1.5rem; width: 2.2rem; height: 3px; background: var(--gc-green); border-radius: 0 0 .2rem .2rem;}
.gc-tl-item:hover {border-color: var(--gc-green); transform: translateY(-.25rem); box-shadow: 0 .9rem 1.8rem -.8rem rgba(90,78,45,.25);}
.gc-tl-time {display: inline-flex; align-self: flex-start; align-items: center; gap: .45rem; padding: .3rem .95rem; border-radius: 999px; background: rgba(94,125,87,.09); color: var(--gc-green-2); font-family: var(--gc-serif); font-size: .9rem; font-weight: 700; letter-spacing: .03em;}
.gc-tl-time::before {content: ""; width: .4rem; height: .4rem; border-radius: 50%; background: var(--gc-green);}
.gc-tl-body h3 {margin: 0 0 .3rem; font-size: 1.02rem; font-weight: 700; color: var(--gc-ink);}
.gc-tl-body p {margin: 0; font-size: .88rem; line-height: 1.85; color: var(--gc-ink-2);}

/* 富文本通用（饮食/运动/深读/食疗） */
.gc-rich {font-size: .93rem; line-height: 2; color: var(--gc-ink-2);}
.gc-rich p {margin: 0 0 .85rem;}
.gc-rich ul, .gc-rich ol {margin: .3rem 0 .85rem; padding-left: 1.3rem;}
.gc-rich strong {color: var(--gc-ink);}

/* 深读板块（大屏双列铺满 + 右上角衬线幽灵编号 + 绿渐变左条） */
.gc-deep {display: grid; gap: 1.1rem; counter-reset: gcdeep;}
@media (min-width: 900px) {.gc-deep {grid-template-columns: repeat(2, minmax(0, 1fr));}}
.gc-deep-item {position: relative; padding: 1.55rem 1.6rem 1.65rem; border: 1px solid var(--gc-line); border-radius: var(--gc-radius-lg); background: var(--gc-paper); box-shadow: var(--gc-shadow); overflow: hidden; counter-increment: gcdeep; transition: border-color .3s, transform .3s var(--gc-ease);}
.gc-deep-item::before {content: counter(gcdeep, decimal-leading-zero); position: absolute; top: 1.05rem; right: 1.35rem; font-family: var(--gc-serif); font-style: italic; font-size: 2.5rem; font-weight: 700; line-height: 1; color: rgba(94,125,87,.16); pointer-events: none;}
.gc-deep-item::after {content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: linear-gradient(180deg, var(--gc-green), rgba(94,125,87,.15));}
.gc-deep-item:hover {border-color: var(--gc-green); transform: translateY(-.25rem);}
.gc-deep-item h3 {margin: 0 0 .7rem; padding-right: 3.6rem; font-family: var(--gc-serif); font-size: 1.12rem; font-weight: 700; color: var(--gc-ink);}

/* 行动清单（图标与标题同行） */
.gc-advice-grid {display: grid; gap: 1.1rem;}
@media (min-width: 768px) {.gc-advice-grid {grid-template-columns: repeat(2, minmax(0, 1fr));}}
@media (min-width: 1300px) {.gc-advice-grid {grid-template-columns: repeat(4, minmax(0, 1fr));}}
.gc-advice-card {position: relative; padding: 1.5rem 1.5rem; border: 1px solid var(--gc-line); border-radius: var(--gc-radius-lg); background: var(--gc-paper); box-shadow: var(--gc-shadow); transition: border-color .3s, transform .3s var(--gc-ease); overflow: hidden;}
.gc-advice-card:hover {border-color: var(--gc-gold); transform: translateY(-.3rem);}
.gc-advice-card h3 {display: flex; align-items: center; gap: .55rem; margin: 0 0 .75rem; font-size: 1.02rem; font-weight: 700; color: var(--gc-ink);}
.gc-advice-icon {display: inline-grid; place-items: center; flex: none; width: 2rem; height: 2rem; border-radius: .55rem; background: rgba(168,133,63,.12); font-size: 1rem; color: var(--gc-gold);}
.gc-advice-card ul {margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: .5rem;}
.gc-advice-card li {position: relative; padding-left: 1.15rem; font-size: .88rem; line-height: 1.75; color: var(--gc-ink-2);}
.gc-advice-card li::before {content: ""; position: absolute; left: 0; top: .66em; width: .4rem; height: .4rem; border-radius: 50%; background: var(--gc-gold);}

/* 红旗信号（赭红警示区：自查的边界，就医的底线） */
.gc-sec--redflag {background: linear-gradient(180deg, rgba(180,85,46,.05), transparent 65%);}
.gc-redflag {display: grid; gap: 1.2rem;}
@media (min-width: 900px) {.gc-redflag {grid-template-columns: repeat(2, minmax(0, 1fr));}}
.gc-redflag-list {padding: 1.3rem 1.4rem; border: 1px solid rgba(180,85,46,.3); border-left: 3px solid var(--gc-rust); border-radius: var(--gc-radius); background: var(--gc-paper); box-shadow: var(--gc-shadow);}
.gc-redflag-list h3 {display: flex; align-items: center; gap: .5rem; margin: 0 0 .8rem; font-size: .98rem; font-weight: 700; color: var(--gc-rust);}
.gc-redflag-list h3::before {content: ""; flex: none; width: .85rem; height: .85rem; border-radius: .2rem; background: var(--gc-rust); clip-path: polygon(0 0, 100% 0, 100% 100%);}
.gc-redflag-list ul {margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: .55rem;}
.gc-redflag-list li {position: relative; padding-left: 1.05rem; font-size: .88rem; line-height: 1.75; color: var(--gc-ink-2);}
.gc-redflag-list li::before {content: ""; position: absolute; left: 0; top: .62em; width: .4rem; height: .4rem; border-radius: .12rem; background: rgba(180,85,46,.65);}
.gc-redflag-list--type {background: linear-gradient(150deg, #FDF6F1, #FAF0E9 70%, #F8EAE0);}
.gc-redflag-note {grid-column: 1 / -1; margin: 0; padding: 1rem 1.3rem; border-radius: var(--gc-radius); background: rgba(180,85,46,.07); font-size: .84rem; line-height: 1.9; color: #8A5744;}

/* 中医视角（金色调米纸卡） */
.gc-tcm {position: relative; padding: clamp(1.6rem, 4vw, 2.6rem); border: 1px solid rgba(168,133,63,.4); border-radius: var(--gc-radius-lg); background: linear-gradient(150deg, #FBF6E9, #F7F0DD 70%, #F4ECD6); overflow: hidden;}
.gc-tcm::before {content: ""; position: absolute; top: 0; left: 1.5rem; width: 2.4rem; height: 3px; background: var(--gc-gold);}
.gc-tcm-callout {margin: 0 0 1.3rem; font-family: var(--gc-serif); font-size: 1rem; line-height: 2; color: #6E5A2E;}
.gc-tcm-organs {display: flex; flex-wrap: wrap; gap: .6rem; margin-bottom: 1.4rem;}
.gc-tcm-organ {display: inline-flex; align-items: baseline; gap: .4rem; padding: .35rem .95rem; border: 1px solid rgba(168,133,63,.45); border-radius: 999px; background: rgba(255,253,246,.7); font-size: .85rem; color: #6E5A2E; transition: background .25s, border-color .25s;}
.gc-tcm-organ:hover {background: rgba(168,133,63,.12); border-color: var(--gc-gold);}
.gc-tcm-organ b {font-size: .72rem; font-weight: 600; color: var(--gc-gold); letter-spacing: .1em;}
.gc-tcm-cols {display: grid; gap: 1.3rem;}
@media (min-width: 900px) {.gc-tcm-cols {grid-template-columns: repeat(2, minmax(0, 1fr));}}
.gc-tcm-col {padding: 1.2rem 1.3rem; border: 1px solid rgba(168,133,63,.25); border-radius: var(--gc-radius); background: rgba(255,253,246,.6);}
.gc-tcm-col h3 {display: flex; align-items: center; gap: .5rem; margin: 0 0 .7rem; font-size: .98rem; font-weight: 700; color: #8A6D2E;}
.gc-tcm-col h3::before {content: ""; width: 1.4rem; height: 1px; background: rgba(168,133,63,.6);}
.gc-tcm-quote {margin: 1.5rem 0 0; padding: 1.1rem 1.4rem; border-left: 3px solid var(--gc-gold); font-family: var(--gc-serif); font-style: italic; font-size: .98rem; line-height: 2; color: #6E5A2E; background: rgba(255,253,246,.6); border-radius: 0 var(--gc-radius) var(--gc-radius) 0;}

/* 古籍智慧（大引文） */
.gc-quote {position: relative; margin: 0; padding: clamp(1.8rem, 5vw, 3rem) clamp(1.5rem, 5vw, 4rem); border: 1px solid var(--gc-line); border-radius: var(--gc-radius-lg); background: var(--gc-paper); box-shadow: var(--gc-shadow); text-align: center; font-family: var(--gc-serif); font-size: clamp(1.1rem, 2.6vw, 1.5rem); line-height: 2.1; color: var(--gc-ink);}
.gc-quote-mark {display: block; margin-bottom: .4rem; font-size: 2.2rem; line-height: 1; color: var(--gc-gold);}

/* 人群分布 */
.gc-population {display: grid; gap: 1.5rem; align-items: center;}
@media (min-width: 1000px) {.gc-population {grid-template-columns: minmax(0, 1fr) minmax(0, .9fr);}}
.gc-population-chart {padding: 0.5rem; border: 1px solid var(--gc-line); border-radius: var(--gc-radius-lg); background: var(--gc-paper); box-shadow: var(--gc-shadow);}
.gc-population-chart canvas {display: block; width: 100%; height: auto;}
.gc-population-legend {display: flex; flex-direction: column; gap: .55rem;}

/* Bong 碎碎念（陶粉调米纸卡） */
.gc-bong {position: relative; display: flex; gap: 1.4rem; padding: 1.7rem 1.8rem; border: 1px solid rgba(192,122,107,.4); border-radius: var(--gc-radius-lg); background: linear-gradient(150deg, #FBF2EF, #F7EBE6 70%, #F4E5DF); overflow: hidden;}
.gc-bong::before {content: ""; position: absolute; top: 0; left: 1.5rem; width: 2.4rem; height: 3px; background: var(--gc-pink);}
.gc-bong-avatar {flex: none; width: 3.6rem; height: 3.6rem; border-radius: 50%; overflow: hidden; border: 2px solid rgba(192,122,107,.5);}
.gc-bong-avatar img {width: 100%; height: 100%; object-fit: cover; display: block;}
.gc-bong-content {min-width: 0; font-size: .93rem; line-height: 2; color: #6B5A54;}
.gc-bong-content p {margin: 0 0 .7rem;}
.gc-bong-content p:last-child {margin-bottom: 0;}
.gc-bong-from {margin-top: .7rem; padding-top: .6rem; border-top: 1px dashed rgba(192,122,107,.45); font-size: .8rem; color: #98857E; letter-spacing: .06em;}

/* AI 追问 */
.gc-ai {padding: 1.6rem;}
.gc-ai-text {display: block; width: 100%; min-height: 9.5rem; padding: 1.05rem 1.2rem; border: 1px solid var(--gc-line); border-radius: var(--gc-radius); background: var(--gc-paper-2); color: var(--gc-ink-2); font-family: var(--gc-sans); font-size: .86rem; line-height: 1.8; resize: vertical;}
.gc-ai-text:focus {outline: none; border-color: var(--gc-green);}

/* 未测试提醒 */
.gc-untested {display: flex; flex-wrap: wrap; align-items: center; gap: 1.2rem; justify-content: space-between; padding: 1.5rem 1.7rem; border: 1px solid rgba(168,133,63,.4); border-radius: var(--gc-radius-lg); background: rgba(168,133,63,.07);}
.gc-untested-body strong {display: block; margin-bottom: .3rem; font-size: 1rem; color: #8A6D2E;}
.gc-untested-body p {margin: 0; font-size: .88rem; color: var(--gc-ink-2);}

/* 重测 CTA（深绿墨底） */
.gc-retake {position: relative; padding: clamp(2.2rem, 5vw, 3.8rem) clamp(1.5rem, 4vw, 4rem); text-align: center; border-radius: var(--gc-radius-lg); background: linear-gradient(160deg, #3C5537, #2E4229); color: #F2EEDF; overflow: hidden;}
.gc-retake::before {content: ""; position: absolute; inset: .6rem; border: 1px solid rgba(242,238,223,.22); border-radius: .5rem; pointer-events: none;}
.gc-retake h3 {margin: 0 0 .6rem; font-family: var(--gc-serif); font-size: clamp(1.4rem, 3vw, 1.9rem); font-weight: 700; color: #FBF8EE;}
.gc-retake p {margin: 0 auto 1.6rem; max-width: 32rem; font-size: .93rem; color: rgba(242,238,223,.82);}
.gc-retake .gc-btn-main {background: #E8B44C; color: #33302A; box-shadow: none;}
.gc-retake .gc-btn-main:hover {background: #F0BE5C; color: #33302A;}

/* 其他类型 */
.gc-others {display: grid; gap: .9rem;}
@media (min-width: 768px) {.gc-others {grid-template-columns: repeat(2, minmax(0, 1fr));}}
@media (min-width: 1300px) {.gc-others {grid-template-columns: repeat(3, minmax(0, 1fr));}}
.gc-other-item {display: flex; align-items: center; gap: 1rem; padding: .95rem 1.2rem; border: 1px solid var(--gc-line); border-radius: var(--gc-radius); background: var(--gc-paper); color: var(--gc-ink); text-decoration: none; font-size: .94rem; font-weight: 600; transition: border-color .25s, transform .25s var(--gc-ease), background .25s;}
.gc-other-figure {flex: none; width: 3.6rem; height: 3.6rem; border-radius: 50%; overflow: hidden; border: 1px solid var(--gc-line); background: var(--gc-paper-2); transition: border-color .25s, transform .3s var(--gc-ease);}
.gc-other-figure img {display: block; width: 100%; height: 100%; object-fit: cover;}
.gc-other-item:hover .gc-other-figure {border-color: var(--gc-green); transform: scale(1.06);}
.gc-other-name {flex: 1; min-width: 0;}
.gc-other-item:hover {border-color: var(--gc-green); transform: translateY(-2px); background: var(--gc-paper-2); color: var(--gc-green-2);}
.gc-other-item svg {flex: none; width: .9rem; height: .9rem; color: var(--gc-green); transition: transform .25s var(--gc-ease);}
.gc-other-item:hover svg {transform: translateX(.25rem);}

/* 档案脚注 */
.gc-rpt-foot {padding: 1.4rem 1.6rem; border: 1px dashed var(--gc-line); border-radius: var(--gc-radius); font-size: .82rem; line-height: 1.9; color: var(--gc-ink-3); text-align: center;}

/* ============================================================
   公共组件兼容（ai-prompt / 浮动导航 / 提示 / 图例）
   ============================================================ */

/* AI 提示词公共片段（intro/test 页引入，qz-m-ai-*） */
.qz-m-ai-section {max-width: var(--gc-read); margin-inline: auto; padding: 0 1rem 5rem;}
.qz-m-ai-section .qz-m-section-title {margin: 0 0 .8rem; font-family: var(--gc-serif); font-size: clamp(1.5rem, 3vw, 2.1rem); font-weight: 700; color: var(--gc-ink);}
.qz-m-ai-desc {margin: 0 0 1.4rem; color: var(--gc-ink-2); font-size: .95rem; line-height: 1.9;}
.qz-m-ai-box {display: flex; flex-direction: column; gap: .9rem;}
.qz-m-ai-text {width: 100%; min-height: 10rem; padding: 1.05rem 1.2rem; border: 1px solid var(--gc-line); border-radius: var(--gc-radius); background: var(--gc-paper-2); color: var(--gc-ink-2); font-family: var(--gc-sans); font-size: .86rem; line-height: 1.8; resize: vertical;}
.qz-m-ai-copy {display: inline-flex; align-items: center; gap: .5rem; align-self: flex-start; padding: .8rem 1.7rem; border: none; border-radius: .35rem; background: var(--gc-rust); color: #FFF9F0; font-family: var(--gc-sans); font-size: .92rem; font-weight: 700; cursor: pointer; transition: transform .25s var(--gc-ease), box-shadow .25s;}
.qz-m-ai-copy:hover {transform: translateY(-2px); box-shadow: 0 .7rem 1.8rem -.6rem rgba(180,85,46,.55);}
.qz-m-ai-cta {margin-top: 1.3rem;}
.qz-m-ai-cta-btn {display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .3rem; width: 100%; padding: 1.3rem 1.5rem; border: 1px solid var(--gc-green); border-radius: var(--gc-radius-lg); background: rgba(94,125,87,.05); text-decoration: none; text-align: center; transition: border-color .25s, background .25s, transform .25s var(--gc-ease);}
.qz-m-ai-cta-btn:hover {background: rgba(94,125,87,.1); transform: translateY(-2px);}
.qz-m-ai-cta-main {font-size: 1.2rem; font-weight: 700; color: var(--gc-ink);}
.qz-m-ai-cta-sub {font-size: .82rem; color: var(--gc-ink-3);}

/* 复制提示 toast（runtime 动态插入） */
.qz-m-share-tip {position: fixed; left: 50%; bottom: 2.2rem; z-index: 9999; transform: translateX(-50%) translateY(1.2rem); padding: .7rem 1.5rem; border: 1px solid var(--gc-green); border-radius: 999px; background: var(--gc-glass); backdrop-filter: blur(12px); color: var(--gc-green-2); font-size: .88rem; font-weight: 600; opacity: 0; pointer-events: none; transition: opacity .3s, transform .3s var(--gc-ease); box-shadow: var(--gc-shadow);}
.qz-m-share-tip.show {opacity: 1; transform: translateX(-50%) translateY(0);}

/* 人群分布 tooltip 与图例（charts.js 动态生成；图例大色块 + 名称 + 比例条 + 百分比） */
.qz-m-population-tip {position: fixed; z-index: 999; padding: .5rem .9rem; border: 1px solid var(--gc-line); border-radius: .6rem; background: var(--gc-paper); color: var(--gc-ink); font-size: .85rem; font-weight: 600; pointer-events: none; opacity: 0; transition: opacity .2s; box-shadow: var(--gc-shadow);}
.qz-m-population-tip.show {opacity: 1;}
.qz-m-population-tip small {display: block; color: var(--gc-green-2); font-size: .78rem;}
.qz-m-population-legend {display: flex; flex-direction: column; gap: .7rem;}
.qz-m-population-legend-item {display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .95rem; padding: .85rem 1.1rem; border: 1px solid var(--gc-line); border-radius: var(--gc-radius); background: var(--gc-paper); box-shadow: var(--gc-shadow); font-size: .9rem; transition: border-color .25s, transform .25s var(--gc-ease);}
.qz-m-population-legend-item:hover {transform: translateX(.25rem);}
.qz-m-population-legend-item--current {border-color: var(--gc-green); background: rgba(94,125,87,.06);}
.qz-m-population-dot {flex: none; width: 1.8rem; height: 1.8rem; border-radius: .5rem; box-shadow: inset 0 0 0 1px rgba(0,0,0,.05);}
.qz-m-population-info {display: flex; flex-direction: column; gap: .42rem; min-width: 0;}
.qz-m-population-label {color: var(--gc-ink-2); font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;}
.qz-m-population-legend-item--current .qz-m-population-label {color: var(--gc-ink);}
.qz-m-population-bar {display: block; height: .5rem; border-radius: 999px; background: var(--gc-line-soft); overflow: hidden;}
.qz-m-population-bar i {display: block; height: 100%; border-radius: 999px; transition: width .6s var(--gc-ease);}
.qz-m-population-value {font-family: var(--gc-serif); font-size: 1.18rem; font-weight: 700; color: var(--gc-green-2);}

/* 一致性等级色（runtime 切换类） */
.qz-m-consistency-high {color: var(--gc-green-2);}
.qz-m-consistency-medium {color: var(--gc-gold);}
.qz-m-consistency-low {color: var(--gc-rust);}
path.qz-m-consistency-high {stroke: var(--gc-green);}
path.qz-m-consistency-medium {stroke: var(--gc-gold);}
path.qz-m-consistency-low {stroke: var(--gc-rust);}

/* ---------- 浮动章节导航（结果页右侧；白纸面板 + 衬线编号目录，手记风） ---------- */
.qz-m-float-nav {position: fixed; right: 1.1rem; bottom: 1.4rem; z-index: 60; display: flex; flex-direction: column; align-items: flex-end; gap: .7rem;}
.qz-m-float-nav-toggle, .qz-m-float-nav-top {display: grid; place-items: center; width: 3.4rem; height: 3.4rem; border: 1px solid var(--gc-line); border-radius: 50%; background: var(--gc-glass); backdrop-filter: blur(12px); color: var(--gc-ink-2); cursor: pointer; box-shadow: var(--gc-shadow); transition: border-color .25s, color .25s, transform .25s var(--gc-ease);}
.qz-m-float-nav-toggle:hover, .qz-m-float-nav-top:hover {border-color: var(--gc-green); color: var(--gc-green-2); transform: translateY(-2px);}
/* 打开状态：隐藏展开按钮（面板头部已有关闭按钮，避免两个按钮叠在角上难看） */
.qz-m-float-nav:has(.qz-m-float-nav-panel.open) .qz-m-float-nav-toggle {display: none;}
/* 面板悬停在角标按钮上方：底边 = 容器底 + 返回顶部钮高 + 间隙，展开时不会盖住按钮 */
.qz-m-float-nav-panel {position: fixed; right: 1.1rem; bottom: 5.5rem; width: min(17.5rem, calc(100vw - 2.2rem)); max-height: min(72vh, 36rem); overflow-y: auto; padding: 1.35rem 1.15rem 1.2rem; border: 1px solid var(--gc-line); border-radius: var(--gc-radius-lg); background: var(--gc-glass); backdrop-filter: blur(18px); box-shadow: 0 1.4rem 3rem -.8rem rgba(80,70,40,.3); opacity: 0; transform: translateY(.8rem) scale(.97); pointer-events: none; transition: opacity .3s, transform .3s var(--gc-ease); scrollbar-width: thin; scrollbar-color: rgba(94,125,87,.35) transparent;}
.qz-m-float-nav-panel::-webkit-scrollbar {width: 3px;}
.qz-m-float-nav-panel::-webkit-scrollbar-track {background: transparent;}
.qz-m-float-nav-panel::-webkit-scrollbar-thumb {border-radius: 999px; background: rgba(94,125,87,.35);}
.qz-m-float-nav-panel::-webkit-scrollbar-thumb:hover {background: rgba(94,125,87,.55);}
.qz-m-float-nav-panel.open {opacity: 1; transform: none; pointer-events: auto;}
.qz-m-float-nav-head {display: flex; align-items: center; justify-content: space-between; gap: .6rem; margin-bottom: .85rem; padding-bottom: .75rem; border-bottom: 1px solid var(--gc-line);}
.qz-m-float-nav-brand {display: flex; flex-direction: column; gap: .12rem; font-size: .88rem; font-weight: 700; color: var(--gc-ink); letter-spacing: .08em;}
.qz-m-float-nav-brand small {font-family: var(--gc-serif); font-size: .62rem; font-weight: 400; font-style: italic; letter-spacing: .24em; color: var(--gc-ink-3); text-transform: uppercase;}
.qz-m-float-nav-close {display: grid; place-items: center; width: 1.9rem; height: 1.9rem; border: none; border-radius: 50%; background: transparent; color: var(--gc-ink-3); cursor: pointer; transition: color .2s, background .2s;}
.qz-m-float-nav-close:hover {color: var(--gc-green-2); background: rgba(94,125,87,.1);}
.qz-m-float-nav-list {margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: .1rem; counter-reset: gcnav;}
.qz-m-float-nav-list a {display: flex; align-items: baseline; gap: .6rem; padding: .52rem .7rem; border-radius: .5rem; color: var(--gc-ink-2); font-size: .86rem; text-decoration: none; transition: background .2s, color .2s;}
.qz-m-float-nav-list a::before {content: counter(gcnav, decimal-leading-zero); counter-increment: gcnav; flex: none; font-family: var(--gc-serif); font-style: italic; font-size: .7rem; letter-spacing: .08em; color: var(--gc-ink-3); transition: color .2s;}
.qz-m-float-nav-list a:hover {background: rgba(94,125,87,.09); color: var(--gc-ink);}
.qz-m-float-nav-list a.active {background: rgba(94,125,87,.14); color: var(--gc-green-2); font-weight: 600;}
.qz-m-float-nav-list a.active::before {color: var(--gc-green);}
@media (min-width: 1300px) {.qz-m-float-nav {right: 1.6rem; bottom: 2rem;} .qz-m-float-nav-panel {position: fixed; right: 1.6rem; bottom: 6.1rem; width: 18.5rem;}}

/* 更新日志容器（tpl 外层） */
.gc-updlog {max-width: var(--gc-read); margin-inline: auto; padding-block: 1.5rem 3rem;}

/* ---------- 动效偏好：减少动画 ---------- */
@media (prefers-reduced-motion: reduce) {.gc-hero-badge::before {animation: none;} .gc-btn, .gc-feat, .gc-dim, .gc-res-card, .gc-option, .qz-option {transition: none;}}

/* ---------- 打印：白底黑字 ---------- */
@media print {.qz-m-app {background: #fff; color: #111;} .qz-m-app::before, .qz-m-app::after, .qz-m-float-nav {display: none !important;}}
