/* ============================================================
   AI增长卡点诊断 V1 · 全屏流程
   暖白 / 米金 / 深黑，低饱和，编辑型杂志感
   ============================================================ */
.dx{
  position:fixed; inset:0; z-index:90;
  background:var(--bg); color:var(--ink);
  visibility:hidden; opacity:0;
  transition:opacity .3s var(--ease), visibility .3s;
}
.dx.is-on{ visibility:visible; opacity:1; }
.dx-bar-wrap{ position:absolute; left:0; right:0; top:0; height:2px; background:var(--line); z-index:3; }
.dx-bar{ height:2px; }
.dx-bar i{ display:block; height:2px; background:var(--gold); width:0; transition:width .45s var(--ease); }

.dx-x{
  position:absolute; right:20px; top:20px; z-index:5;
  width:40px; height:40px; border:0; background:none; cursor:pointer;
  font-size:26px; line-height:1; color:var(--ink-3); border-radius:50%;
  transition:color .2s var(--ease);
}
.dx-x:hover{ color:var(--ink); }

.dx-scroll{ position:absolute; inset:0; overflow-y:auto; -webkit-overflow-scrolling:touch; }
.dx-pane{ min-height:100%; display:flex; align-items:center; justify-content:center; padding:80px 24px 72px; }
.dx-pane[hidden]{ display:none; }

/* ---------- 按钮 ---------- */
.dx-btn{
  display:inline-flex; align-items:center; gap:10px;
  padding:15px 30px; border:1px solid var(--ink); background:var(--ink); color:var(--bg);
  font-family:var(--sans); font-size:15px; font-weight:700; letter-spacing:.02em;
  cursor:pointer; border-radius:2px;
  transition:opacity .2s var(--ease), transform .2s var(--ease), background .2s var(--ease), color .2s var(--ease);
  text-decoration:none;
}
.dx-btn:hover{ opacity:.86; }
.dx-btn:active{ transform:translateY(1px); }
.dx-btn:disabled{ opacity:.28; cursor:not-allowed; }
.dx-btn .arw{ transition:transform .25s var(--ease); }
.dx-btn:hover .arw{ transform:translateX(4px); }
.dx-btn--ghost{ background:transparent; color:var(--ink); border-color:var(--line-2); }
.dx-btn--ghost:hover{ border-color:var(--ink); opacity:1; }
.dx-btn--solid{ background:var(--ink); color:var(--bg); border-color:var(--ink); }

/* ---------- 阶段1 · 测评首页 ---------- */
.dx-intro-in{ width:min(720px,100%); }
.dx-eyebrow{
  font-size:12px; letter-spacing:.24em; color:var(--gold-d); font-weight:700;
  margin-bottom:22px;
}
.dx-h1{
  font-size:clamp(28px,5.2vw,46px); font-weight:800;
  line-height:1.28; letter-spacing:-.02em; margin-bottom:22px;
}
.dx-lead{
  font-size:clamp(15px,1.6vw,17px); color:var(--ink-2); line-height:1.95;
  padding-bottom:30px; border-bottom:1px solid var(--line);
}
.dx-gain{ margin:30px 0 34px; }
.dx-gain-t{ font-size:12px; letter-spacing:.2em; color:var(--ink-3); margin-bottom:16px; }
.dx-gain-list{ list-style:none; padding:0; margin:0; }
.dx-gain-list li{
  position:relative; padding:9px 0 9px 24px;
  font-size:15.5px; color:var(--ink); line-height:1.6;
  border-bottom:1px solid var(--line);
}
.dx-gain-list li::before{
  content:""; position:absolute; left:2px; top:20px;
  width:8px; height:1px; background:var(--gold);
}
.dx-privacy{ margin-top:20px; font-size:12.5px; color:var(--ink-3); }

/* ---------- 阶段2 · 基础信息 ---------- */
.dx-base-in{ width:min(720px,100%); }
.dx-step-t{ font-size:12px; letter-spacing:.2em; color:var(--gold-d); font-weight:700; margin-bottom:16px; }
.dx-h2{ font-size:clamp(21px,3vw,28px); font-weight:800; line-height:1.45; margin-bottom:34px; letter-spacing:-.01em; }
.dx-fields{ display:grid; gap:30px; margin-bottom:38px; }
.dx-field-h{ display:flex; align-items:baseline; gap:14px; margin-bottom:14px; }
.dx-field-no{ font-family:var(--serif); font-size:13px; letter-spacing:.2em; color:var(--gold); }
.dx-field-l{ font-size:17px; font-weight:700; }
.dx-field-opts{ display:flex; flex-wrap:wrap; gap:9px; }
.dx-chip{
  padding:11px 20px; border:1px solid var(--line-2); background:var(--white);
  font-family:var(--sans); font-size:14.5px; color:var(--ink-2); cursor:pointer; border-radius:2px;
  transition:border-color .2s var(--ease), color .2s var(--ease), background .2s var(--ease);
}
.dx-chip:hover{ border-color:var(--gold); color:var(--ink); }
.dx-chip.is-picked{ border-color:var(--gold); background:var(--gold-soft); color:var(--ink); font-weight:700; }
.dx-nav{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; }

/* ---------- 阶段3 · 答题 ---------- */
.dx-quiz-in{ width:min(760px,100%); }
.dx-qmeta{ display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:20px; }
.dx-stepno{ font-size:12px; letter-spacing:.18em; color:var(--gold-d); font-weight:700; }
.dx-qmod{ font-size:11.5px; letter-spacing:.14em; color:var(--ink-3); }
.dx-q{
  font-size:clamp(20px,3.4vw,30px); font-weight:800; line-height:1.5;
  letter-spacing:-.01em; margin-bottom:30px;
}
.dx-opts{ display:grid; gap:12px; margin-bottom:32px; }
.dx-opt{
  display:flex; align-items:flex-start; gap:16px; width:100%; text-align:left; cursor:pointer;
  background:var(--white); border:1px solid var(--line-2); border-radius:2px;
  padding:17px 20px;
  transition:border-color .2s var(--ease), background .2s var(--ease);
}
.dx-opt:hover{ border-color:var(--gold); }
.dx-opt.is-picked{ border-color:var(--gold); background:var(--gold-soft); }
.dx-opt-l{
  flex:none; width:26px; height:26px; border:1px solid var(--line-2); border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:12px; font-weight:700; color:var(--ink-3); margin-top:1px;
}
.dx-opt.is-picked .dx-opt-l{ border-color:var(--gold); background:var(--gold); color:#fff; }
.dx-opt-t{ font-size:15.5px; line-height:1.75; color:var(--ink-2); }
.dx-opt.is-picked .dx-opt-t{ color:var(--ink); }

/* ---------- 阶段4 · 生成中 ---------- */
.dx-loading-in{ text-align:center; }
.dx-loading-in p{ margin-top:20px; font-size:14px; color:var(--ink-3); letter-spacing:.06em; }
.dx-spin{
  width:34px; height:34px; margin:0 auto; border-radius:50%;
  border:1px solid var(--line-2); border-top-color:var(--gold);
  animation:dxspin .9s linear infinite;
}
@keyframes dxspin{ to{ transform:rotate(360deg); } }

/* ---------- 阶段5 · 诊断报告 ---------- */
.dx-report{ align-items:flex-start; padding-top:0; }
.dx-report-in{
  width:min(780px,100%); margin:0 auto; padding:74px 0 90px;
}
.dx-rpt-head{ padding-bottom:26px; border-bottom:2px solid var(--ink); margin-bottom:0; }
.dx-rpt-brand{ display:flex; align-items:baseline; gap:9px; margin-bottom:26px; }
.dx-rpt-logo{ font-size:15px; font-weight:800; letter-spacing:.06em; }
.dx-rpt-brand-en{ font-size:10.5px; letter-spacing:.24em; color:var(--gold-d); }
.dx-rpt-title{ font-size:clamp(26px,4.6vw,38px); font-weight:800; letter-spacing:-.02em; line-height:1.3; }
.dx-rpt-meta{ display:flex; flex-wrap:wrap; gap:30px; margin-top:20px; }
.dx-rpt-m{ display:flex; flex-direction:column; gap:6px; }
.dx-rpt-mk{ font-size:11px; letter-spacing:.2em; color:var(--ink-3); }
.dx-rpt-mv{ font-size:16px; font-weight:700; }
.dx-rpt-mv i{ font-style:normal; font-size:12px; font-weight:400; color:var(--ink-3); }

.dx-rpt-top{ padding:38px 0 34px; border-bottom:1px solid var(--line); }
.dx-rpt-stage{ display:flex; align-items:baseline; gap:14px; margin-bottom:30px; }
.dx-rpt-stage-k{ font-size:11.5px; letter-spacing:.2em; color:var(--ink-3); }
.dx-rpt-stage-v{ font-size:clamp(19px,2.6vw,24px); font-weight:800; color:var(--gold-d); }
.dx-rpt-focus-k{ font-size:12px; letter-spacing:.2em; color:var(--gold-d); font-weight:700; margin-bottom:12px; }
.dx-rpt-focus-v{
  font-size:clamp(34px,7.4vw,62px); font-weight:800; line-height:1.1;
  letter-spacing:-.03em; margin-bottom:16px;
}
.dx-rpt-focus-s{ font-size:clamp(15px,1.9vw,18px); color:var(--ink-2); line-height:1.8; max-width:36ch; }
.dx-rpt-second{ display:flex; align-items:baseline; gap:14px; margin-top:30px; padding-top:24px; border-top:1px solid var(--line); }
.dx-rpt-second-k{ font-size:11.5px; letter-spacing:.2em; color:var(--ink-3); }
.dx-rpt-second-v{ font-size:18px; font-weight:800; }

.dx-rpt-scores{ padding:34px 0; border-bottom:1px solid var(--line); }
.dx-rpt-sec-h{ font-size:13px; font-weight:700; letter-spacing:.04em; }
.dx-rpt-sec-note{ margin:8px 0 24px; font-size:12.5px; color:var(--ink-3); }
.dx-score{ margin-bottom:20px; }
.dx-score:last-child{ margin-bottom:0; }
.dx-score-h{ display:flex; align-items:baseline; justify-content:space-between; margin-bottom:9px; }
.dx-score-m{ font-size:14.5px; color:var(--ink-2); }
.dx-score.is-first .dx-score-m{ color:var(--ink); font-weight:700; }
.dx-score-v{ font-size:13px; color:var(--ink-3); font-family:var(--serif); letter-spacing:.06em; }
.dx-score.is-first .dx-score-v{ color:var(--gold-d); font-weight:700; }
.dx-score-bar{ height:6px; background:var(--bg-2); border-radius:3px; overflow:hidden; }
.dx-score-bar i{ display:block; height:100%; background:var(--line-2); }
.dx-score.is-first .dx-score-bar i{ background:var(--gold); }

.dx-rpt-sec{ padding:40px 0; border-bottom:1px solid var(--line); }
.dx-rpt-no{
  font-family:var(--serif); font-size:12px; letter-spacing:.24em;
  color:var(--gold); margin-bottom:14px;
}
.dx-rpt-h2{ font-size:clamp(19px,2.8vw,24px); font-weight:800; letter-spacing:-.01em; margin-bottom:22px; }
.dx-rpt-lead{ font-size:clamp(16px,2.1vw,19px); font-weight:700; line-height:1.7; margin-bottom:16px; }
.dx-rpt-p{ font-size:15.5px; line-height:2.05; color:var(--ink-2); }
.dx-rpt-p--why{ margin-top:18px; padding-top:18px; border-top:1px dashed var(--line-2); color:var(--ink); }

.dx-why{ list-style:none; padding:0; margin:0; }
.dx-why-item{ display:flex; gap:14px; padding:15px 0; border-bottom:1px solid var(--line); }
.dx-why-item:last-child{ border-bottom:0; }
.dx-why-tag{
  flex:none; align-self:flex-start; padding:4px 10px;
  background:var(--gold-soft); color:var(--gold-d);
  font-size:11.5px; font-weight:700; letter-spacing:.04em; border-radius:2px;
}
.dx-why-txt{ font-size:15.5px; line-height:1.85; color:var(--ink-2); }

.dx-acts{ list-style:none; padding:0; margin:0; }
.dx-act{ display:flex; gap:16px; padding:14px 0; border-bottom:1px solid var(--line); }
.dx-act:last-child{ border-bottom:0; }
.dx-act-n{
  flex:none; width:24px; height:24px; border-radius:50%;
  border:1px solid var(--gold); color:var(--gold-d);
  display:flex; align-items:center; justify-content:center;
  font-size:12px; font-weight:700; margin-top:1px;
}
.dx-act-t{ font-size:15.5px; line-height:1.8; color:var(--ink); font-weight:500; }

.dx-rpt-sec--wait .dx-waits{ list-style:none; padding:0; margin:0; }
.dx-wait{ position:relative; padding:11px 0 11px 26px; font-size:15px; line-height:1.8; color:var(--ink-2); border-bottom:1px solid var(--line); }
.dx-wait:last-child{ border-bottom:0; }
.dx-wait::before{ content:"×"; position:absolute; left:2px; top:11px; color:var(--gold); font-size:15px; font-weight:700; }

.dx-ai-top{ display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:16px; }
.dx-ai-card{
  padding:24px 22px; background:var(--ink); color:var(--bg); border-radius:2px;
  display:flex; flex-direction:column; gap:12px;
}
.dx-ai-k{ font-size:11px; letter-spacing:.2em; color:var(--gold-soft); }
.dx-ai-v{ font-size:clamp(16px,2.2vw,20px); font-weight:800; line-height:1.5; }
.dx-ai-rest{ font-size:13.5px; color:var(--ink-3); line-height:1.8; }

.dx-second-k{ font-size:16px; font-weight:700; color:var(--ink); margin-bottom:14px; }
.dx-rpt-sec--next .dx-rpt-p{ max-width:42ch; }
.dx-next-t{ font-size:clamp(18px,2.6vw,22px); font-weight:800; margin-bottom:14px; }
.dx-rpt-cta{ display:flex; flex-wrap:wrap; gap:12px; margin-top:28px; }

.dx-save{ padding:40px 0 0; text-align:center; }
.dx-save-btn{ width:100%; justify-content:center; }
.dx-save-tip{ margin-top:14px; font-size:12.5px; color:var(--ink-3); line-height:1.8; }
.dx-rpt-foot{
  margin-top:44px; padding-top:20px; border-top:1px solid var(--line);
  font-size:11.5px; color:var(--ink-3); text-align:center; letter-spacing:.06em;
}

/* ---------- 手机端 ---------- */
@media (max-width:720px){
  .dx-pane{ padding:70px 18px 60px; align-items:flex-start; }
  .dx-intro{ align-items:center; }
  .dx-x{ right:12px; top:12px; }
  .dx-h1{ font-size:27px; line-height:1.34; }
  .dx-lead{ font-size:14.5px; line-height:1.9; }
  .dx-gain-list li{ font-size:14.5px; }
  .dx-h2{ font-size:20px; }
  .dx-field-l{ font-size:15.5px; }
  .dx-chip{ padding:10px 16px; font-size:13.5px; }
  .dx-q{ font-size:20px; line-height:1.55; margin-bottom:24px; }
  .dx-opt{ padding:15px 16px; gap:13px; }
  .dx-opt-t{ font-size:14.5px; line-height:1.7; }
  .dx-nav .dx-btn{ flex:1 1 auto; justify-content:center; }
  .dx-report-in{ padding:64px 0 70px; }
  .dx-rpt-focus-v{ font-size:38px; }
  .dx-rpt-cta .dx-btn,
  .dx-save-btn{ width:100%; justify-content:center; }
  .dx-ai-top{ grid-template-columns:1fr; }
}

/* ============================================================
   打印 / 保存为 PDF（A4）
   只输出诊断报告，隐藏导航、关闭按钮、进度条、CTA、重新测
   ============================================================ */
@media print{
  @page{ size:A4; margin:14mm 15mm; }
  html,body{ background:#fff !important; }
  body{ overflow:visible !important; }

  /* 隐藏站点全部内容 */
  body > *{ display:none !important; }

  /* 只显示诊断层与报告 */
  body > .dx{
    display:block !important; position:static !important;
    inset:auto !important; background:#fff !important;
    visibility:visible !important; opacity:1 !important;
  }
  .dx-bar-wrap,
  .dx-x,
  .dx-scroll > .dx-pane:not(#dxReport){ display:none !important; }
  .dx-scroll{ position:static !important; overflow:visible !important; inset:auto !important; }
  .dx-pane{ display:none !important; }
  #dxReport{ display:block !important; min-height:0 !important; padding:0 !important; }
  .dx-report-in{ width:100% !important; max-width:none !important; padding:0 !important; margin:0 !important; }

  .dx-rpt-head{ border-bottom:1.5pt solid #191917; }
  .dx-rpt-top,
  .dx-rpt-scores,
  .dx-rpt-sec{ break-inside:avoid; page-break-inside:avoid; }
  .dx-rpt-sec{ padding:16pt 0; }
  .dx-rpt-scores{ padding:14pt 0; }
  .dx-score-bar{ border:1px solid #D8D4C9; }
  .dx-ai-card{
    background:#191917 !important; color:#fff !important;
    -webkit-print-color-adjust:exact; print-color-adjust:exact;
  }
  .dx-wait::before{ color:#A98A50; }
  .dx-rpt-cta,
  .dx-save,
  .dx-x{ display:none !important; }
  .dx-rpt-foot{ margin-top:18pt; }
}
