/* ============================================================
   chaofeng 画像分析 · 正式版样式（F 杂志感）
   高端杂志/品牌感：超大留白 + 极细大标题 + 克制色彩 + 编辑式排版
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;1,300;1,400;1,500&family=Noto+Serif+SC:wght@200;300;400;500;600&family=Inter:wght@300;400;500&display=swap');

:root{
  /* 浅色（默认）*/
  --bg:#FBFAF6;
  --bg-2:#F4ECE0;
  --paper:#FFFFFF;
  --nav-bg:rgba(251,250,246,.82);
  --paper-soft:#FBF7F1;
  --bg-elevated:#FFFFFF;
  --bg-hover:#FBF7F1;
  --ink:#1C1B17;
  --ink-2:#4A4640;
  --ink-3:#8E887E;
  --ink-4:#B8B2A6;
  --line:#E7E2D6;
  --line-2:#D6CFBF;
  --border:rgba(0,0,0,.06);
  --border-strong:rgba(0,0,0,.10);
  --accent:#8B5A3C;
  --accent-2:#6B3D24;
  --accent-soft:#EDE0D4;
  --accent-muted:rgba(139,90,60,.14);
  --sage:#7E9B7E;
  --sage-soft:#D8E0D4;
  --shadow-card:0 1px 0 var(--line);
  --shadow-hover:0 1px 0 var(--line),0 12px 32px rgba(28,27,23,.06);
  --serif:'Cormorant Garamond','Noto Serif SC','Songti SC',serif;
  --cn:'Noto Serif SC','Songti SC','STSong',serif;
  --sans:'Inter','PingFang SC',-apple-system,sans-serif;
  color-scheme:light;
}

/* 深色模式：纯调色，不动浅色框架。
   触发：① 跟随系统 @media prefers-color-scheme: dark
         ② 手动按钮 [data-theme="dark"]（覆盖系统）
   浅色强制：[data-theme="light"]（用户点了浅色按钮，覆盖系统的深色）*/
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#18181B;
    --bg-2:#212124;
    --paper:#212124;
    --paper-soft:#26262A;
    --bg-elevated:#212124;
    --bg-hover:#26262A;
    --nav-bg:rgba(24,24,27,.88);
    --ink:#FAFAF9;
    --ink-2:#A1A1AA;
    --ink-3:#71717A;
    --ink-4:#52525B;
    --line:rgba(255,255,255,.06);
    --line-2:rgba(255,255,255,.10);
    --border:rgba(255,255,255,.06);
    --border-strong:rgba(255,255,255,.10);
    --accent:#E8A47C;
    --accent-2:#F2B894;
    --accent-soft:rgba(232,164,124,.16);
    --accent-muted:rgba(232,164,124,.16);
    --sage:#86A878;
    --sage-soft:rgba(134,168,120,.16);
    --shadow-card:0 1px 0 var(--line);
    --shadow-hover:0 1px 0 var(--line),0 12px 32px rgba(0,0,0,.3);
    color-scheme:dark;
  }
}

/* 手动深色（按钮触发，最高优先级，覆盖系统）*/
:root[data-theme="dark"]{
    --bg:#18181B;
    --bg-2:#212124;
    --paper:#212124;
    --paper-soft:#26262A;
    --bg-elevated:#212124;
    --bg-hover:#26262A;
    --nav-bg:rgba(24,24,27,.88);
    --ink:#FAFAF9;
    --ink-2:#A1A1AA;
    --ink-3:#71717A;
    --ink-4:#52525B;
    --line:rgba(255,255,255,.06);
    --line-2:rgba(255,255,255,.10);
    --border:rgba(255,255,255,.06);
    --border-strong:rgba(255,255,255,.10);
    --accent:#E8A47C;
    --accent-2:#F2B894;
    --accent-soft:rgba(232,164,124,.16);
    --accent-muted:rgba(232,164,124,.16);
    --sage:#86A878;
    --sage-soft:rgba(134,168,120,.16);
    --shadow-card:0 1px 0 var(--line);
    --shadow-hover:0 1px 0 var(--line),0 12px 32px rgba(0,0,0,.3);
    color-scheme:dark;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--sans);background:var(--bg);color:var(--ink);line-height:1.7;-webkit-font-smoothing:antialiased;letter-spacing:.01em;min-height:100vh}

/* ===== 通用动画 ===== */
@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeInFast{from{opacity:0}to{opacity:1}}
@keyframes ring{0%{transform:scale(.5);opacity:.7}100%{transform:scale(2);opacity:0}}

/* ===== Nav ===== */
.nav{position:sticky;top:0;z-index:50;background:var(--nav-bg);backdrop-filter:blur(24px) saturate(140%);-webkit-backdrop-filter:blur(24px) saturate(140%);border-bottom:1px solid var(--line)}
.nav-in{max-width:820px;margin:0 auto;padding:20px 40px;display:flex;justify-content:space-between;align-items:center}
.brand{font-family:var(--serif);font-size:24px;font-weight:400;letter-spacing:2px;cursor:default;min-width:84px;transition:color .22s ease,letter-spacing .22s ease}
.brand b{color:var(--accent);font-weight:500;font-style:italic}
.brand.brand-toc{font-family:var(--cn);font-size:15px;font-weight:400;letter-spacing:3px;color:var(--accent);cursor:pointer}
.brand.brand-toc:hover{color:var(--accent-2);letter-spacing:4px}
.nav-meta{font-family:var(--serif);font-style:italic;font-size:14px;color:var(--ink-3)}

/* ===== View 切换 ===== */
.view{display:none}
.view.active{display:block;animation:fadeIn .5s ease}

/* ===== Stage 主容器 ===== */
.stage{max-width:760px;margin:0 auto;padding:80px 48px 120px}
@media(max-width:680px){.stage{padding:56px 24px 80px}}

/* ===== 通用文字层级 ===== */
.cover-mark{font-family:var(--serif);font-style:italic;font-size:13px;color:var(--accent);letter-spacing:.15em;margin-bottom:30px;display:flex;align-items:center;gap:14px}
.cover-mark::before{content:"";width:32px;height:1px;background:var(--accent)}
.h1{font-family:var(--cn);font-weight:300;font-size:52px;line-height:1.15;letter-spacing:2px;color:var(--ink);margin-bottom:30px}
.h1 .accent{font-family:var(--serif);font-style:italic;font-weight:400;color:var(--accent)}
.h1 .break{display:block}
@media(max-width:680px){.h1{font-size:38px}}
.lede{font-family:var(--cn);font-weight:300;font-size:17px;line-height:1.95;color:var(--ink-2);max-width:540px;margin-bottom:60px}

/* ===== 欢迎页 hero（标题文字 + 性格星图，两栏） ===== */
.stage-hero{max-width:1180px;min-height:calc(100vh - 66px);display:flex;flex-direction:column;justify-content:center;padding-top:56px;padding-bottom:56px}
.hero-grid{display:grid;grid-template-columns:1.05fr 0.95fr;gap:56px;align-items:center;width:100%}
.hero-text{min-width:0}
.stage-hero .btn-hero{width:auto;min-width:260px;margin-top:8px}

/* 性格星图（globe.js 渲染）：纯 Canvas，可见性由 globe.js 按 view 切换控制 */
.hero-globe{display:flex;flex-direction:column;align-items:center;gap:20px}
.hero-globe canvas{width:100%;max-width:460px;aspect-ratio:1/1;display:block;cursor:grab;touch-action:none}
.hero-globe canvas:active{cursor:grabbing}
.globe-caption{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center}
.globe-caption .gc-no{font-family:var(--sans);font-size:10px;letter-spacing:2.5px;text-transform:uppercase;color:var(--accent);font-weight:600}
.globe-caption .gc-txt{font-family:var(--serif);font-style:italic;font-size:14.5px;color:var(--ink-3);letter-spacing:.5px}
.globe-caption .gc-hint{font-family:var(--sans);font-size:10.5px;letter-spacing:1.5px;text-transform:uppercase;color:var(--ink-4);margin-top:3px}

/* 响应式：窄屏单栏，文字在上、星图在下 */
@media(max-width:920px){
  .hero-grid{grid-template-columns:1fr;gap:36px}
}
@media(max-width:680px){
  .stage-hero{min-height:0;justify-content:flex-start;padding-top:48px}
  .hero-globe canvas{max-width:330px}
  .stage-hero .btn-hero{width:100%}
}

/* ===== 介绍页（开始之前）：返回首页链接 ===== */
.back-link{background:none;border:none;font-family:var(--serif);font-style:italic;font-size:14px;color:var(--ink-3);cursor:pointer;padding:0 0 4px;margin-bottom:48px;border-bottom:1px solid var(--line);transition:all .25s;letter-spacing:.5px}
.back-link:hover{color:var(--accent);border-color:var(--accent)}

/* 章节头 */
.chapter{display:flex;align-items:baseline;gap:22px;margin:0 0 40px;border-top:1px solid var(--ink);padding-top:26px}
.chapter .no{font-family:var(--serif);font-style:italic;font-size:18px;color:var(--accent);font-weight:400;min-width:30px}
.chapter .ct{font-family:var(--cn);font-size:26px;font-weight:400;letter-spacing:3px;color:var(--ink)}
.chapter .en{margin-left:auto;font-family:var(--sans);font-size:10px;letter-spacing:3px;color:var(--ink-4);text-transform:uppercase;align-self:center}
@media(max-width:680px){.chapter .ct{font-size:22px}}

/* 开始页专属标题：左侧棕色细竖线 + 文字左对齐
   （公共 .chapter 是横排+英文靠右；开始页只有一个标题，用侧边竖线更有编辑设计感。
    单独 .chapter-intro，不影响报告页的 .chapter。）*/
.chapter-intro{display:flex;gap:18px;align-items:stretch;margin:0 0 40px}
.chapter-intro .intro-bar{width:2px;background:var(--accent);flex-shrink:0;border-radius:1px}
.chapter-intro .intro-txt{display:flex;flex-direction:column;justify-content:center}
.chapter-intro .ct{font-family:var(--cn);font-size:26px;font-weight:400;letter-spacing:3px;color:var(--ink);line-height:1.2}
.chapter-intro .en{font-family:var(--sans);font-size:10px;letter-spacing:3px;text-transform:uppercase;color:var(--ink-4);margin-top:8px;display:block}
@media(max-width:680px){.chapter-intro .ct{font-size:22px}}

/* ===== 欢迎页：入口卡片 ===== */
.entry-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:44px}
@media(max-width:680px){.entry-grid{grid-template-columns:1fr}}
.entry-card{background:var(--paper);border:1.5px solid var(--line);border-radius:4px;padding:28px 20px;cursor:pointer;transition:all .35s cubic-bezier(.2,.8,.2,1);text-align:center;position:relative}
.entry-card:hover{border-color:var(--accent);transform:translateY(-3px);box-shadow:0 12px 30px rgba(28,27,23,.08)}
.entry-card.sel{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 8px 24px var(--accent-muted)}
.entry-card.sel::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--accent)}
.entry-card .ico{font-family:var(--serif);font-style:italic;font-size:32px;color:var(--accent);margin-bottom:12px;line-height:1}
.entry-card .et{font-family:var(--cn);font-weight:500;font-size:15px;color:var(--ink);margin-bottom:6px;letter-spacing:1px}
.entry-card .ed{font-size:12.5px;color:var(--ink-3);line-height:1.6}

/* 输入框 */
.field-block{margin-bottom:36px}
.field-label{font-family:var(--sans);font-size:11px;letter-spacing:2.5px;text-transform:uppercase;color:var(--ink-3);font-weight:500;margin-bottom:14px;display:flex;align-items:center;gap:10px}
.field-label::before{content:"";width:18px;height:1px;background:var(--ink-4)}
.input-field,.textarea-field{width:100%;background:var(--paper);border:1px solid var(--line);border-radius:4px;padding:16px 18px;font-family:var(--cn);font-size:16px;color:var(--ink);transition:all .25s;resize:none;font-weight:300}
.input-field::placeholder,.textarea-field::placeholder{color:var(--ink-4)}
.input-field:focus,.textarea-field:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-muted)}
.input-field.is-invalid,.textarea-field.is-invalid{border-color:#C0492C;box-shadow:0 0 0 3px rgba(192,73,44,.08)}
.textarea-field{min-height:90px;line-height:1.8}
.char-limit-wrap{position:relative;width:100%}
.char-limit-wrap .input-field,.char-limit-wrap .textarea-field,.char-limit-wrap .textarea-answer{padding-right:82px}
.char-limit-wrap .textarea-answer{margin-bottom:0}
.answer-limit-wrap{margin-bottom:48px}
.char-counter{position:absolute;right:12px;bottom:8px;display:none;font-family:var(--cn);font-size:12px;line-height:1;color:#C0492C;background:var(--paper);border:1px solid rgba(192,73,44,.28);border-radius:999px;padding:4px 7px;pointer-events:none}
.char-counter.visible{display:block}

/* 表单校验轻提示：不用浏览器原生弹窗，保持纸张式编辑风格 */
.ui-notice{position:fixed;left:50%;top:96px;z-index:300;display:flex;align-items:center;gap:12px;width:max-content;max-width:min(420px,calc(100vw - 32px));padding:14px 18px;background:var(--paper);color:var(--ink);border:1px solid var(--line);border-left:2px solid var(--accent);border-radius:4px;box-shadow:var(--shadow-hover);font-family:var(--cn);font-size:14px;font-weight:300;line-height:1.65;letter-spacing:.4px;opacity:0;pointer-events:none;transform:translate(-50%,-10px);transition:opacity .22s ease,transform .22s ease}
.ui-notice.show{opacity:1;transform:translate(-50%,0)}
.ui-notice-mark{font-family:var(--serif);font-style:italic;font-size:17px;color:var(--accent);flex-shrink:0}

/* 主按钮 */
.btn-line{background:none;border:none;font-family:var(--cn);font-size:15px;color:var(--ink);cursor:pointer;padding:0 0 6px;border-bottom:1px solid var(--ink);letter-spacing:3px;transition:all .35s;font-weight:300;display:inline-flex;align-items:center;gap:8px}
.btn-line:hover{color:var(--accent);border-color:var(--accent);letter-spacing:5px}
.btn-line .arr{font-family:var(--serif);font-style:italic;display:inline-block;transition:transform .3s}
.btn-line:hover .arr{transform:translateX(5px)}
.btn-line:disabled{color:var(--ink-4);border-color:var(--ink-4);cursor:not-allowed;opacity:.6}

/* 实心主按钮（欢迎页用） */
.btn-solid{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--ink);color:var(--bg);border:none;font-family:var(--cn);font-size:15px;font-weight:300;letter-spacing:3px;padding:16px 0;width:100%;border-radius:4px;cursor:pointer;transition:all .3s}
.btn-solid:hover{background:var(--accent-2);letter-spacing:5px}
.btn-solid:disabled{background:var(--ink-4);cursor:not-allowed;letter-spacing:3px}
.btn-solid .arr{font-family:var(--serif);font-style:italic;transition:transform .3s}
.btn-solid:hover:not(:disabled) .arr{transform:translateX(5px)}

/* ===== 开始前说明：把产品边界做成一次短暂、可读的对齐 ===== */
.expectation-stage{max-width:820px;padding-top:72px}
.expectation-heading{margin-bottom:34px}
.expectation-title{max-width:680px;margin-bottom:20px;font-family:var(--cn);font-size:34px;font-weight:300;line-height:1.55;letter-spacing:1px;color:var(--ink)}
.expectation-title span{color:var(--accent)}
.expectation-intro{max-width:620px;margin-bottom:46px;font-family:var(--cn);font-size:16px;font-weight:300;line-height:1.9;color:var(--ink-2)}
.expectation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:42px;border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2)}
.expectation-item{min-width:0;padding:30px 34px 32px 0}
.expectation-item + .expectation-item{padding-right:0;padding-left:34px;border-left:1px solid var(--line)}
.expectation-label{display:flex;align-items:baseline;gap:12px;margin-bottom:18px}
.expectation-label span{font-family:var(--serif);font-size:13px;font-style:italic;color:var(--accent)}
.expectation-label h3{font-family:var(--cn);font-size:15px;font-weight:500;line-height:1.5;letter-spacing:1px;color:var(--ink)}
.expectation-item p{font-family:var(--cn);font-size:14.5px;font-weight:300;line-height:1.95;color:var(--ink-2)}
.expectation-limit p{color:var(--ink-3)}
.expectation-anchor{margin:0 0 22px;padding:2px 0 2px 24px;border-left:2px solid var(--accent);font-family:var(--cn);font-size:19px;font-weight:300;line-height:1.9;color:var(--ink)}
.expectation-agency{margin:0 0 48px;padding-left:26px;font-family:var(--cn);font-size:13.5px;font-weight:300;line-height:1.8;color:var(--ink-3)}
.expectation-actions{display:flex;align-items:center;justify-content:space-between;gap:28px}
.expectation-actions .btn-line{flex:0 0 auto}
.expectation-actions .btn-solid{width:min(100%,430px);min-height:56px;padding-left:20px;padding-right:20px}
.expectation-actions .btn-solid:hover:not(:disabled){letter-spacing:3px}

@media(max-width:680px){
  .expectation-stage{padding-top:48px}
  .expectation-heading{margin-bottom:30px}
  .expectation-title{font-size:27px;line-height:1.55;margin-bottom:18px}
  .expectation-intro{font-size:15px;margin-bottom:36px}
  .expectation-grid{grid-template-columns:1fr;margin-bottom:34px}
  .expectation-item{padding:24px 0 26px}
  .expectation-item + .expectation-item{padding:24px 0 26px;border-top:1px solid var(--line);border-left:0}
  .expectation-anchor{padding-left:18px;font-size:17px;line-height:1.85}
  .expectation-agency{padding-left:20px;margin-bottom:38px}
  .expectation-actions{flex-direction:column-reverse;align-items:stretch;gap:24px}
  .expectation-actions .btn-solid{width:100%;min-height:54px;letter-spacing:1.5px}
  .expectation-actions .btn-solid:hover:not(:disabled){letter-spacing:1.5px}
  .expectation-actions .btn-line{align-self:center}
}

@media(max-width:380px){
  .expectation-title{font-size:24px}
  .expectation-actions .btn-solid{font-size:13.5px}
}

/* ===== 进度思考态 ===== */
.thinking-block{padding:20px 0}
.thinking{display:flex;align-items:center;gap:20px;margin-bottom:18px}
.pulse{width:10px;height:10px;border-radius:50%;background:var(--accent);position:relative;flex-shrink:0}
.pulse::after{content:"";position:absolute;inset:-7px;border-radius:50%;border:1px solid var(--accent);animation:ring 2.6s ease-out infinite;opacity:0}
.thinking .t{font-family:var(--cn);font-size:17px;font-weight:300;color:var(--ink-2)}
.thinking .meta{margin-left:auto;font-family:var(--serif);font-style:italic;font-size:14px;color:var(--accent);font-variant-numeric:tabular-nums}
.progress-line{height:1px;background:var(--line);position:relative;margin-bottom:8px;overflow:hidden}
.progress-line i{position:absolute;left:0;top:0;height:100%;background:var(--ink);transition:width .8s cubic-bezier(.2,.8,.2,1)}
.thinking-sub{font-family:var(--serif);font-style:italic;font-size:14px;color:var(--ink-3);margin-top:14px}

/* ===== 当前轮次：嵌在会话页开头，随正文滚动离开视口 ===== */
#view-session{position:relative}
.session-round-track{position:absolute;z-index:1;top:20px;right:max(40px,calc((100vw - 820px) / 2 + 40px));pointer-events:none;white-space:nowrap;animation:fadeInFast .35s ease}
.session-round-current{display:block;min-width:16px;font-family:var(--serif);font-style:normal;font-size:18px;font-weight:400;line-height:1;letter-spacing:0;text-align:right;color:var(--accent);opacity:.82;font-variant-numeric:proportional-nums}
/* 旧的思考栏内轮次号由右上角轨迹统一承接，避免重复。*/
.thinking .meta{display:none}

/* 空状态提示（等待时显示） */
.waiting-hint{text-align:center;padding:60px 20px}
.waiting-hint .big{font-family:var(--cn);font-size:24px;font-weight:300;color:var(--ink-2);margin-bottom:12px}
.waiting-hint .small{font-family:var(--serif);font-style:italic;font-size:15px;color:var(--ink-3)}

/* ===== 题目区 ===== */
.q-label{font-family:var(--serif);font-style:italic;font-size:15px;color:var(--accent);margin-bottom:22px;display:flex;align-items:center;gap:10px}
.q-label .hint{font-family:var(--sans);font-style:normal;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--ink-4)}
.q-title{font-family:var(--cn);font-weight:400;font-size:25px;line-height:1.55;color:var(--ink);margin-bottom:42px;letter-spacing:.5px}
@media(max-width:680px){.q-title{font-size:21px}}

/* 选择题 */
.opt-list{list-style:none;border-top:1px solid var(--line);margin-bottom:48px}
.opt{display:flex;align-items:center;gap:26px;padding:24px 0;border-bottom:1px solid var(--line);cursor:pointer;transition:all .35s cubic-bezier(.2,.8,.2,1);position:relative}
.opt::before{content:"";position:absolute;left:0;top:0;bottom:0;width:0;background:var(--accent);transition:width .35s cubic-bezier(.2,.8,.2,1)}
.opt:hover{padding-left:22px}
.opt:hover::before{width:2px}
.opt .idx{font-family:var(--serif);font-style:italic;font-size:17px;color:var(--ink-4);width:28px;transition:color .3s;font-variant-numeric:tabular-nums;flex-shrink:0}
.opt .txt{font-family:var(--cn);font-size:17px;font-weight:300;color:var(--ink-2);flex:1;transition:color .3s;line-height:1.5}
.opt .mark{width:16px;height:16px;border:1px solid var(--ink-4);border-radius:50%;transition:all .35s;flex-shrink:0}
.opt:hover .idx{color:var(--accent)}
.opt:hover .txt{color:var(--ink)}
.opt.sel{padding-left:22px}
.opt.sel::before{width:2px}
.opt.sel .idx{color:var(--accent)}
.opt.sel .txt{color:var(--ink);font-weight:400}
.opt.sel .mark{border-color:var(--accent);background:radial-gradient(circle at center,var(--accent) 42%,transparent 44%)}

/* 排序题 */
.rank-hint{font-family:var(--serif);font-style:italic;font-size:14px;color:var(--ink-3);margin-bottom:20px}
.rank-list{display:flex;flex-direction:column;gap:10px;margin-bottom:48px}
.rank-item{display:flex;align-items:center;gap:18px;padding:18px 20px;background:var(--paper);border:1px solid var(--line);border-radius:4px;cursor:pointer;transition:all .3s;font-family:var(--cn);font-size:16px;color:var(--ink-2);font-weight:300}
.rank-item:hover{border-color:var(--accent);color:var(--ink)}
.rank-item.picked{border-color:var(--accent);background:var(--accent-soft)}
.rank-num{flex-shrink:0;width:32px;height:32px;border:1px dashed var(--ink-3);color:var(--ink-3);font-family:var(--serif);font-style:italic;font-size:16px;display:flex;align-items:center;justify-content:center;transition:all .3s}
.rank-item.picked .rank-num{border:1px solid var(--accent);background:var(--accent);color:var(--bg);border-style:solid}
.rank-item .rt{flex:1}
/* 已选项的 ↑↓ 箭头（方案 A：选中后微调顺序） */
.rank-arrows{display:flex;gap:5px;flex-shrink:0}
.rank-arrow{width:30px;height:30px;border:1px solid var(--line);background:var(--paper);border-radius:4px;cursor:pointer;color:var(--ink-3);font-size:14px;font-family:var(--serif);display:flex;align-items:center;justify-content:center;transition:all .2s;padding:0;line-height:1}
.rank-arrow:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:var(--bg-hover)}
.rank-arrow:disabled{opacity:.25;cursor:not-allowed}
/* 已选项不再整体 hover 位移（避免和箭头交互冲突） */
.rank-item.has-arrows{cursor:default}
.rank-item.has-arrows:hover{transform:none}

/* 简答题 */
.textarea-answer{width:100%;background:var(--paper);border:1px solid var(--line);border-radius:4px;padding:18px;font-family:var(--cn);font-size:16px;color:var(--ink);resize:vertical;min-height:120px;line-height:1.8;font-weight:300;margin-bottom:48px;transition:all .25s}
.textarea-answer:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-muted)}
.textarea-answer::placeholder{color:var(--ink-4)}

/* 提交行 */
.submit-row{margin-top:8px;display:flex;justify-content:flex-end;align-items:center;gap:16px}
.submit-row .skip{font-family:var(--serif);font-style:italic;font-size:14px;color:var(--ink-3);background:none;border:none;cursor:pointer;border-bottom:1px dotted var(--ink-4);padding-bottom:2px;transition:color .25s}
.submit-row .skip:hover{color:var(--accent)}

/* ===== 报告页 ===== */
.report-cover{text-align:left;margin-bottom:60px;padding-top:20px}
.report-cover .type-tag{display:inline-block;font-family:var(--sans);font-size:10px;letter-spacing:2.5px;text-transform:uppercase;color:var(--accent);border:1px solid var(--accent);padding:4px 12px;border-radius:2px;margin-bottom:24px;font-weight:500}
.report-cover h1{font-family:var(--cn);font-weight:300;font-size:48px;line-height:1.15;letter-spacing:2px;color:var(--ink);margin-bottom:14px}
.report-cover h1 em{font-family:var(--serif);font-style:italic;font-weight:400;color:var(--accent)}
.report-cover .sub{font-family:var(--cn);font-weight:300;font-size:16px;color:var(--ink-2);max-width:520px;line-height:1.9}
@media(max-width:680px){.report-cover h1{font-size:34px}}

/* 引文块 */
.pull-quote{position:relative;padding:8px 0 8px 44px;margin-bottom:56px}
.pull-quote::before{content:"\201C";font-family:var(--serif);font-size:110px;color:var(--line-2);position:absolute;left:-12px;top:-36px;line-height:1;font-weight:400}
.quote-text{font-family:var(--cn);font-size:22px;line-height:1.78;font-weight:300;color:var(--ink);letter-spacing:.5px}
@media(max-width:680px){.quote-text{font-size:18px}}

/* 报告卡片通用 */
.r-section{margin-bottom:72px}
.r-section:last-child{margin-bottom:0}

/* 资料网格 */
.attr-grid{margin-bottom:40px}
.attr-row{display:grid;grid-template-columns:180px 1fr;gap:40px;padding:22px 0;border-top:1px solid var(--line)}
.attr-row:last-child{border-bottom:1px solid var(--line)}
.attr-row .k{font-family:var(--sans);font-size:10px;letter-spacing:2.5px;text-transform:uppercase;color:var(--ink-3);align-self:start;font-weight:500;padding-top:2px}
.attr-row .v{font-family:var(--cn);font-size:16px;color:var(--ink-2);font-weight:300;line-height:1.8}
.attr-row .v em{font-family:var(--serif);font-style:italic;color:var(--accent);font-size:15px}
@media(max-width:680px){.attr-row{grid-template-columns:1fr;gap:6px}}

/* 列表（擅长/挑战） */
.list-label{font-family:var(--serif);font-style:italic;font-size:17px;color:var(--accent);margin-bottom:4px;display:flex;align-items:center;gap:12px}
.list-label::before{content:"";width:20px;height:1px;background:var(--accent)}
.list-label.warn{color:var(--ink)}
.list-label.warn::before{background:var(--ink)}
.item-line{display:flex;gap:20px;padding:16px 0;border-bottom:1px solid var(--line);font-family:var(--cn);font-size:16px;font-weight:300;color:var(--ink-2);align-items:baseline}
.item-line:last-child{border-bottom:none}
.item-line .sym{font-family:var(--serif);color:var(--accent);width:16px;font-size:19px;font-style:italic;flex-shrink:0}
.item-line.warn .sym{color:var(--ink)}

/* 领域块（你怎么过日子） */
.domain-block{padding:24px 0;border-top:1px solid var(--line)}
.domain-block:first-of-type{border-top:none}
.domain-title{font-family:var(--cn);font-weight:500;font-size:17px;color:var(--accent);margin-bottom:14px;letter-spacing:1px}
.domain-row{font-family:var(--cn);font-size:15px;font-weight:300;color:var(--ink-2);line-height:1.8;margin-bottom:8px;padding-left:0}
.domain-row .k{font-family:var(--sans);font-size:11px;letter-spacing:1px;color:var(--ink-3);text-transform:uppercase;font-weight:500;margin-right:8px}
.reliability{display:inline-block;font-family:var(--serif);font-style:italic;font-size:13px;color:var(--sage);margin-top:6px}

/* 动态叙事报告：内容可变，但正文阅读节奏统一 */
.narrative-p{font-family:var(--cn);font-size:15.5px;line-height:1.95;font-weight:300;color:var(--ink-2);letter-spacing:.2px;margin:0 0 18px}
.narrative-p:last-child{margin-bottom:0}

/* 卡点块 */
.block-item{background:var(--paper);border:1px solid var(--line);border-left:2px solid var(--accent);border-radius:0 4px 4px 0;padding:22px 24px;margin-bottom:16px}
.block-item .bi-title{font-family:var(--cn);font-weight:500;font-size:16px;color:var(--ink);margin-bottom:8px;letter-spacing:.5px}
.block-item .bi-desc{font-family:var(--cn);font-size:15px;font-weight:300;line-height:1.85;color:var(--ink-2);margin-bottom:10px}
.evidence-list{list-style:none;padding:0;margin-top:8px}
.evidence-list li{font-family:var(--sans);font-size:12.5px;color:var(--ink-3);line-height:1.8;padding-left:18px;position:relative;margin-bottom:3px;letter-spacing:.02em}
.evidence-list li::before{content:"—";position:absolute;left:0;color:var(--accent)}

/* 解决方案块（与卡点块 block-item 完全统一的风格，不额外突出）*/
.solution-item{background:var(--paper);border:1px solid var(--line);border-left:2px solid var(--accent);border-radius:0 4px 4px 0;padding:22px 24px;margin-bottom:16px}
.solution-num{font-family:var(--serif);font-style:italic;font-size:14px;color:var(--accent);letter-spacing:1px}
.solution-area{font-family:var(--cn);font-weight:500;font-size:18px;color:var(--ink);margin:4px 0 18px;letter-spacing:.5px}
.tool-line{font-family:var(--cn);font-size:15px;line-height:1.8;color:var(--ink);background:var(--bg-2);border-radius:4px;padding:16px 18px;margin-bottom:14px;border-left:2px solid var(--accent);font-weight:300}
.tool-line .lead{font-family:var(--serif);font-style:italic;color:var(--accent);font-weight:500}
.bound-row{font-family:var(--cn);font-size:14.5px;line-height:1.8;color:var(--ink-2);margin-bottom:8px;padding-left:0;font-weight:300}
.bound-row .bk{font-family:var(--sans);font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--ink-3);font-weight:500;margin-right:8px}
.action-line{display:flex;gap:12px;font-family:var(--cn);font-size:14.5px;line-height:1.75;color:var(--ink-2);margin-bottom:8px;font-weight:300}
.action-line .sym{font-family:var(--serif);color:var(--accent);width:18px;flex-shrink:0;font-style:italic}
.action-group{margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}
.action-group-label{font-family:var(--serif);font-style:italic;font-size:15px;color:var(--accent);letter-spacing:.5px;margin-bottom:12px;display:flex;align-items:center;gap:10px}
.action-group-label::before{content:"";width:18px;height:1px;background:var(--accent)}

/* 矛盾呈现 */
.vs-item{padding:22px 0;border-top:1px solid var(--line)}
.vs-item:first-of-type{border-top:none}
.vs-pair{display:flex;gap:16px;align-items:stretch;margin-bottom:14px}
@media(max-width:680px){.vs-pair{flex-direction:column}}
.vs-side{flex:1;font-family:var(--cn);font-size:15px;line-height:1.75;color:var(--ink-2);background:var(--bg-2);border-radius:4px;padding:14px 16px;font-weight:300}
.vs-mid{display:flex;align-items:center;font-family:var(--serif);font-style:italic;font-size:13px;color:var(--accent);font-weight:500}
.vs-explain{font-family:var(--cn);font-size:14.5px;color:var(--ink-3);line-height:1.8;padding-top:12px;border-top:1px dashed var(--line);font-weight:300}

/* 收尾段 */
.closing-line{font-family:var(--cn);font-size:15.5px;line-height:1.95;color:var(--ink-2);margin-bottom:18px;padding-left:18px;border-left:2px solid var(--accent-soft);font-weight:300}
.closing-line .cl-label{font-family:var(--serif);font-style:italic;font-weight:500;color:var(--accent);display:block;margin-bottom:4px;font-size:15px}

/* 深入方向 */
.direction-line{display:flex;gap:14px;padding:14px 0;border-bottom:1px solid var(--line);font-family:var(--cn);font-size:15px;font-weight:300;color:var(--ink-2);line-height:1.75}
.direction-line:last-child{border-bottom:none}
.direction-line .sym{font-family:var(--serif);font-style:italic;color:var(--accent);flex-shrink:0}

/* 信息边界/局限 */
.ic-row{display:flex;gap:20px;padding:12px 0;border-bottom:1px solid var(--line);font-family:var(--cn);font-size:14.5px;font-weight:300;color:var(--ink-2)}
.ic-row:last-child{border-bottom:none}
.ic-row .k{font-family:var(--sans);font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--ink-3);width:160px;flex-shrink:0;font-weight:500;padding-top:3px}

/* 版权收尾 */
.colophon{margin-top:100px;padding-top:30px;border-top:1px solid var(--ink);display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:12px}
.colophon .l{font-family:var(--cn);font-size:17px;color:var(--ink-2);font-weight:300}
.colophon .l em{font-family:var(--serif);font-style:italic;color:var(--accent)}
.colophon .r{font-family:var(--sans);font-size:10px;letter-spacing:3px;text-transform:uppercase;color:var(--ink-4)}

/* 导出 PDF（报告最底部，屏幕可见 / 打印隐藏） */
.export-bar{margin-top:80px;padding-top:40px;text-align:center}
.export-bar .export-rule{width:48px;height:1px;background:var(--line-2);margin:0 auto 30px}
.btn-export{display:inline-flex;align-items:center;gap:10px;background:var(--ink);color:var(--bg);border:none;font-family:var(--cn);font-size:14px;font-weight:300;letter-spacing:3px;padding:14px 34px;border-radius:4px;cursor:pointer;transition:background .3s,letter-spacing .3s}
.btn-export:hover{background:var(--accent-2);letter-spacing:5px}
.btn-export .ex-ico{transition:transform .3s}
.btn-export:hover .ex-ico{transform:translateY(2px)}
.export-hint{font-family:var(--serif);font-style:italic;font-size:13px;color:var(--ink-3);margin-top:20px;line-height:1.7}

/* ===== 错误态 ===== */
.error-block{text-align:center;padding:80px 20px}
.error-block .em{font-family:var(--serif);font-style:italic;font-size:48px;color:var(--accent);margin-bottom:20px}
.error-block .et{font-family:var(--cn);font-size:22px;font-weight:300;color:var(--ink);margin-bottom:12px}
.error-block .ed{font-family:var(--cn);font-size:15px;color:var(--ink-3);line-height:1.8;margin-bottom:32px;max-width:440px;margin-left:auto;margin-right:auto}

/* 加载小转圈（拉报告时） */
.mini-spinner{display:inline-block;width:14px;height:14px;border:1.5px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:sp .8s linear infinite;vertical-align:-2px}
@keyframes sp{to{transform:rotate(360deg)}}

/* ============================================================
   报告页优化：目录导航 / 进度条 / 章节动画 / 一句话画像 / 怎么办加强 / 折叠
   ============================================================ */

/* —— 顶部进度条（滚动时显示读到第几章）—— */
.report-progress{position:fixed;top:0;left:0;height:2px;background:var(--accent);z-index:200;width:0;transition:width .15s ease}

/* —— 左侧目录导航（固定侧边栏，可折叠）—— */
.report-toc{position:fixed;left:32px;top:50%;transform:translateY(-50%);z-index:40;width:180px;max-height:70vh;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none}
.report-toc::-webkit-scrollbar{display:none}
.report-toc-inner{display:flex;flex-direction:column;gap:2px;padding:14px 0}
/* 折叠/展开开关 */
.toc-toggle{display:flex;align-items:center;gap:8px;font-family:var(--sans);font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--accent);font-weight:600;cursor:pointer;padding:8px 14px;border:none;background:none;text-align:left;width:100%;transition:color .2s}
.toc-toggle:hover{color:var(--accent-2)}
.toc-toggle .toc-toggle-icon{display:inline-block;transition:transform .3s;font-family:var(--serif);font-style:italic;font-size:13px}
.report-toc.collapsed .toc-toggle-icon{transform:rotate(-90deg)}
.report-toc.collapsed .toc-toggle-label::after{content:"（已收起）";font-family:var(--serif);font-style:italic;font-size:11px;color:var(--ink-3);font-weight:400;text-transform:none;letter-spacing:0;margin-left:4px}
/* 折叠态：只显示开关，藏起链接 */
.report-toc.collapsed .toc-link{display:none}
/* 链接（竖排）*/
.toc-link{font-family:var(--cn);font-size:13px;color:var(--ink-3);text-decoration:none;padding:7px 14px;border-radius:4px;transition:all .2s;font-weight:300;letter-spacing:.5px;cursor:pointer;border-left:2px solid transparent;line-height:1.5}
.toc-link:hover{color:var(--ink);background:rgba(255,255,255,.5)}
.toc-link.active{color:var(--accent);font-weight:500;border-left-color:var(--accent);background:rgba(237,224,212,.4)}
/* 中等屏（平板/手机横屏切桌面模式）：左侧竖排，和桌面端一致，只是贴左一点 */
@media(max-width:1100px){
  .report-toc{left:12px;top:50%;transform:translateY(-50%);width:150px;max-height:60vh}
  .report-toc-inner{flex-direction:column;gap:2px;padding:10px 0}
  .toc-link{border-left:2px solid transparent;border-bottom:none;padding:6px 12px}
  .toc-link.active{border-left-color:var(--accent);border-bottom:none;background:var(--accent-soft)}
}
@media(max-width:680px){
  /* 手机端：单独的目录按钮已去掉，功能折到 logo（portrait）上。*/
  .toc-toggle{display:none !important}
  /* report-toc 容器：收起时完全不占空间（width:0;height:0），
     绝不挡导航条。展开时浮层自己 fixed 定位。*/
  .report-toc{position:fixed !important;left:0 !important;top:52px !important;transform:none !important;width:0 !important;height:0 !important;max-width:0 !important;max-height:0 !important;z-index:55 !important;padding:0 !important;margin:0 !important;overflow:visible !important;pointer-events:none}
  /* 章节列表：浮层，从导航条下方滑下 */
  .report-toc-inner{position:fixed;top:52px;left:8px;right:8px;flex-direction:column;gap:0;background:var(--nav-bg);backdrop-filter:blur(20px) saturate(140%);-webkit-backdrop-filter:blur(20px) saturate(140%);border:1px solid var(--border-strong);border-radius:8px;padding:6px;max-height:0;overflow:hidden;transition:max-height .3s ease,opacity .2s;opacity:0;box-shadow:0 12px 32px rgba(0,0,0,.2);pointer-events:none;z-index:55}
  .report-toc:not(.collapsed) .report-toc-inner{max-height:60vh;overflow-y:auto;opacity:1;pointer-events:auto}
  .toc-link{border-left:none;border-bottom:1px solid var(--line);border-radius:6px;padding:12px 14px;font-size:14px}
  .toc-link:last-child{border-bottom:none}
  .toc-link:hover{background:var(--bg-hover) !important}
  .toc-link.active{border-left:none;background:var(--accent-soft)}
  .report-toc.collapsed .report-toc-inner{max-height:0;opacity:0;pointer-events:none}
}

/* —— 核心洞察（跨领域关联前置）—— */
.core-insight{margin:-8px 0 60px;padding:30px 32px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:4px;position:relative;box-shadow:var(--shadow-card)}
.core-insight::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--accent)}
.core-insight-label{font-family:var(--sans);font-size:10px;letter-spacing:2.5px;text-transform:uppercase;color:var(--accent);font-weight:600;margin-bottom:18px}
.insight-item{padding:14px 0;border-top:1px dashed var(--accent-soft)}
.insight-item:first-of-type{border-top:none;padding-top:0}
.insight-item:last-of-type{padding-bottom:0}
.insight-pattern{font-family:var(--cn);font-size:16.5px;line-height:1.75;color:var(--ink);font-weight:400;letter-spacing:.3px}
.insight-domains{font-family:var(--serif);font-style:italic;font-size:13px;color:var(--accent);margin-top:6px}

/* —— 章节进入动画（IntersectionObserver 触发）—— */
.r-chapter.reveal{opacity:0;transform:translateY(36px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.8,.2,1)}
.r-chapter.reveal.in-view{opacity:1;transform:translateY(0)}

/* —— 折叠 / 展开（证据、适用边界、对照表）—— */
details.ev-details,details.sol-details{margin-top:10px}
details.ev-details > summary,details.sol-details > summary{font-family:var(--serif);font-style:italic;font-size:13.5px;color:var(--accent);cursor:pointer;list-style:none;padding:6px 0;transition:color .2s;user-select:none}
details.ev-details > summary::-webkit-details-marker,details.sol-details > summary::-webkit-details-marker{display:none}
details.ev-details > summary::before{content:"＋ ";font-style:normal;font-family:var(--sans);font-size:12px;margin-right:2px}
details.ev-details[open] > summary::before{content:"－ "}
details.sol-details > summary::before{content:"＋ ";font-style:normal;font-family:var(--sans);font-size:12px;margin-right:2px}
details.sol-details[open] > summary::before{content:"－ "}
details.ev-details > summary:hover,details.sol-details > summary:hover{color:var(--accent-2)}
details.ev-details[open] > summary{margin-bottom:8px}

/* ============================================================
   手机端优化（<680px）
   深色 + 浅色共用：导航简化、间距收紧、卡片适配
   ============================================================ */
@media(max-width:680px){
  /* 导航：藏掉次要的 meta 文字，只留品牌 + 开关 */
  .nav-in{padding:14px 18px}
  .nav-meta{display:none}
  .brand{font-size:20px;letter-spacing:1.5px;min-width:74px}
  .brand.brand-toc{font-size:14px;letter-spacing:2.5px}
  .session-round-track{top:12px;right:18px}
  .session-round-current{font-size:17px}
  /* 主内容区收紧 */
  .stage{padding:48px 20px 72px}
  /* 大标题再小一点 */
  .h1{font-size:32px;letter-spacing:1px}
  .report-cover h1{font-size:28px}
  /* 核心洞察：padding 收紧 */
  .core-insight{padding:22px 22px;margin-bottom:48px}
  .core-insight-label{margin-bottom:16px}
  .insight-pattern{font-size:15px}
  /* 章节间距收紧 */
  .chapter{margin-bottom:32px;gap:16px}
  .chapter .ct{font-size:20px;letter-spacing:2px}
  /* 引文收紧 */
  .pull-quote{padding-left:20px;margin-bottom:36px}
  .pull-quote::before{font-size:80px;left:-8px;top:-24px}
  .quote-text{font-size:17px}
  /* 卡点/方案块收紧 */
  .block-item,.solution-item{padding:20px 20px;margin-bottom:12px}
  .solution-area{font-size:16px}
  .tool-line{padding:14px 16px}
  .narrative-p{font-size:15px;line-height:1.9;margin-bottom:16px}
  /* vs 对比块：上下堆叠（已有，确认）+ 收紧 */
  .vs-pair{flex-direction:column;gap:10px}
  .vs-mid{justify-content:center;padding:2px 0}
  .vs-side{padding:12px 14px;font-size:14.5px}
  /* 资料网格：单列 */
  .attr-row{grid-template-columns:1fr;gap:4px;padding:16px 0}
  .attr-row .k{padding-top:0}
  /* 收尾 */
  .colophon{margin-top:72px;padding-top:24px;flex-direction:column;align-items:flex-start;gap:8px}
  /* 输入框/文本框：字号 >=16px 防 iOS 自动放大 */
  .input-field,.textarea-field,.textarea-answer{font-size:16px}
  /* 题目标题 */
  .q-title{font-size:19px;margin-bottom:32px}
  .opt{padding:20px 0;gap:18px}
  .opt .txt{font-size:15.5px}
  /* 排序题 */
  .rank-item{padding:14px 16px;gap:14px;font-size:15px}
  .rank-num{width:28px;height:28px;font-size:14px}
  .rank-arrow{width:28px;height:28px}
  /* 提交按钮 */
  .btn-solid{padding:14px 0;font-size:14px;letter-spacing:2px}
  .btn-line{font-size:14px;letter-spacing:2px}
  .ui-notice{top:76px;left:16px;right:16px;width:auto;max-width:none;transform:translateY(-10px)}
  .ui-notice.show{transform:translateY(0)}
}

/* 超小屏（<380px，老款手机）*/
@media(max-width:380px){
  .stage{padding:36px 16px 60px}
  .h1{font-size:27px}
  .report-cover h1{font-size:24px}
  .core-insight{padding:18px}
}

/* ============================================================
   主题切换按钮（导航条右上角，F 风格的细线圆圈图标）
   ============================================================ */
.theme-toggle{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--border-strong);background:transparent;border-radius:50%;cursor:pointer;padding:0;transition:all .25s;line-height:1;color:var(--ink-3)}
.theme-toggle:hover{border-color:var(--accent);color:var(--accent);background:var(--bg-hover)}
.theme-icon{display:none}
/* 浅色模式（默认或手动 light）：显示月亮（提示"可切到深色"）*/
.theme-icon-moon{display:block}
.theme-icon-sun{display:none}
/* 深色模式（手动 dark）：显示太阳（提示"可切回浅色"）*/
:root[data-theme="dark"] .theme-icon-moon{display:none}
:root[data-theme="dark"] .theme-icon-sun{display:block}
/* 系统深色（非手动）：也显示太阳 */
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .theme-icon-moon{display:none}
  :root:not([data-theme="light"]) .theme-icon-sun{display:block}
}
/* 手机端：按钮缩小一点 */
@media(max-width:680px){
  .theme-toggle{width:30px;height:30px;margin-left:8px}
}

/* ============================================================
   深色模式下的交互反馈微调（只动深色，浅色一字不碰）
   原则：hover 用背景微亮（不靠陶土边框）；selected 用陶土左线 + 极淡底。
   同时覆盖"跟随系统深色"和"手动深色"两种触发。
   ============================================================ */

/* ---- 深色 hover：背景微亮，去掉陶土整圈边框 ---- */
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .entry-card:hover,
  :root:not([data-theme="light"]) .rank-item:hover{
    border-color:var(--border-strong);
    background:var(--bg-hover);
  }
  :root:not([data-theme="light"]) .entry-card:hover{box-shadow:0 8px 24px rgba(0,0,0,.3)}
  /* 选项的陶土左线在 hover 时减弱成中性 */
  :root:not([data-theme="light"]) .opt:hover .idx{color:var(--ink-2)}
  /* 目录链接 hover：背景微亮（已经是 var(--paper)，深色下是 elevated）*/
  :root:not([data-theme="light"]) .toc-link:hover{background:var(--bg-hover)}
}
:root[data-theme="dark"] .entry-card:hover,
:root[data-theme="dark"] .rank-item:hover{
  border-color:var(--border-strong);
  background:var(--bg-hover);
}
:root[data-theme="dark"] .entry-card:hover{box-shadow:0 8px 24px rgba(0,0,0,.3)}
:root[data-theme="dark"] .opt:hover .idx{color:var(--ink-2)}
:root[data-theme="dark"] .toc-link:hover{background:var(--bg-hover)}

/* ---- 深色 selected：陶土左线 2px + 极淡底（去掉整圈陶土边框的张扬）---- */
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .entry-card.sel{
    border-color:var(--border-strong);
    border-left:2px solid var(--accent);
    background:var(--accent-soft);
    box-shadow:none;
  }
  :root:not([data-theme="light"]) .rank-item.picked{
    border-color:var(--border-strong);
    border-left:2px solid var(--accent);
    background:var(--accent-soft);
  }
}
:root[data-theme="dark"] .entry-card.sel{
  border-color:var(--border-strong);
  border-left:2px solid var(--accent);
  background:var(--accent-soft);
  box-shadow:none;
}
:root[data-theme="dark"] .rank-item.picked{
  border-color:var(--border-strong);
  border-left:2px solid var(--accent);
  background:var(--accent-soft);
}

/* ---- 深色 focus（输入框）：浅灰边框 + 极淡底，不用陶土 ---- */
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .input-field:focus,
  :root:not([data-theme="light"]) .textarea-field:focus,
  :root:not([data-theme="light"]) .textarea-answer:focus{
    border-color:var(--border-strong);
    box-shadow:0 0 0 3px rgba(255,255,255,.04);
  }
}
:root[data-theme="dark"] .input-field:focus,
:root[data-theme="dark"] .textarea-field:focus,
:root[data-theme="dark"] .textarea-answer:focus{
  border-color:var(--border-strong);
  box-shadow:0 0 0 3px rgba(255,255,255,.04);
}

/* ============================================================
   打印 / 导出 PDF（window.print → 另存为 PDF）
   原则：导出的就是当前报告页本身，所以默认已经和 UI 对齐。
        这里只做"打印专属优化"——隐藏屏幕交互件、强制浅色、
        展开折叠和入场动画，让 PDF 内容完整、干净。
   ============================================================ */
@media print{
  @page{ size:A4; margin:14mm 12mm }
  /* 强制浅色（不管用户当前是深色主题，PDF 都按浅色纸张出）*/
  :root{ --bg:#FBFAF6; --ink:#1C1B17; --ink-2:#3A3833; --ink-3:#6B6862;
         --ink-4:#9C9890; --line:#E8E3D8; --line-2:#D6CFBF;
         --accent:#8B5A3C; --accent-2:#6B3D24; --accent-soft:#EDE0D4 }
  body{ background:#fff !important; color:#1C1B17 !important }
  /* 隐藏屏幕交互件：导航、目录、滚动进度条、导出按钮自身 */
  .nav,.report-toc,#report-progress-bar,.no-print{ display:none !important }
  /* 报告页铺满，去掉最大宽度限制和居中约束 */
  .view,.view.active{ display:block !important; animation:none !important }
  .stage{ max-width:none !important; margin:0 !important; padding:4px 2px 32px !important }
  /* 入场动画在 PDF 里全部直接显示（不等滚动）*/
  .reveal{ opacity:1 !important; transform:none !important }
  /* 折叠的证据/边界全部展开，PDF 里看得完整 */
  details{ open:true }
  details > *{ display:block !important }
  details > summary{ list-style:none }
  /* 卡片底色强制白底，避免深色主题的浅灰背景被打印 */
  .core-insight,.block-item,.solution-item{ background:#fff !important }
  /* 分页：重要区块不要被切断 */
  .block-item,.solution-item,.vs-item,.core-insight,.domain-block,
  .pull-quote,.closing-line,.ic-row,.attr-row,.insight-item,
  .report-cover,.colophon{ break-inside:avoid; page-break-inside:avoid }
  .chapter,.r-chapter{ break-after:avoid; page-break-after:avoid }
}
