/* ==========================================================================
   隐私指纹 · 简洁版（fpx-*）
   版式完全沿用 IP 检测卡片：蓝色渐变标题栏 + 左侧 4px 蓝条，
   每一行"左标签(竖分隔线) | 居中结果"，偶数行浅色斑马纹，结果用同一套实色徽标。
   尺寸取自 IP 卡片的实测值(桌面 160px 标签列 / 18px 行内边距，手机 72px / 9px)。
   全部以 #view-fingerprint .fpx 为根、使用独立 fpx- 类名，不受旧的指纹页样式影响；
   颜色只用站点设计变量，日夜间 / 高对比度 / 放大文字自动适配。
   ========================================================================== */

/* 旧样式表给视图容器加了额外内边距，这里清掉，让卡片与 IP 页对齐到同一条边。 */
html body[data-view="fingerprint"] #view-fingerprint{padding:0!important;gap:0!important;width:100%!important;max-width:none!important}

#view-fingerprint .fpx{
  --fx-divider:var(--datum-divider,rgba(37,37,45,.1));
  --fx-stripe:var(--datum-row-stripe,rgba(87,82,186,.035));
  --fx-good:rgba(21,128,61,.94);
  --fx-warn:rgba(194,121,48,.96);
  --fx-bad:rgba(204,73,80,.94);
  --fx-tone:var(--text-faint);
  display:flex;
  flex-direction:column;
  gap:22px;
  width:100%;
  color:var(--text-pure);
  font-family:var(--font-text);
}
html.theme-dark #view-fingerprint .fpx{--fx-good:rgba(27,138,68,.9);--fx-bad:rgba(224,101,108,.88)}
#view-fingerprint .fpx *,#view-fingerprint .fpx *::before,#view-fingerprint .fpx *::after{box-sizing:border-box}

/* ---------- 免责提示条：说明下面的评分只针对当前设备/浏览器环境，跟 IP 检测结果无关 ---------- */
#view-fingerprint .fpx-disclaimer{
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin:0;
  padding:12px 16px;
  border:1px solid rgba(194,121,48,.28);
  border-radius:10px;
  background:rgba(194,121,48,.08);
  box-shadow:none;
}
#view-fingerprint .fpx-disclaimer[hidden]{display:none}
html.theme-dark #view-fingerprint .fpx-disclaimer{border-color:rgba(214,151,88,.32);background:rgba(214,151,88,.1)}
#view-fingerprint .fpx-disclaimer-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  width:18px;
  height:18px;
  margin-top:1px;
  border-radius:50%;
  background:var(--fx-warn);
  color:#fff;
  font-size:12px;
  font-weight:700;
  font-style:italic;
  font-family:var(--font-text);
  line-height:1;
}
#view-fingerprint .fpx-disclaimer-text{
  flex:1 1 auto;
  min-width:0;
  margin:0;
  padding-top:1px;
  font-size:13.5px;
  line-height:1.65;
  color:var(--text-muted);
}
#view-fingerprint .fpx-disclaimer-text strong{color:var(--text-regular);font-weight:600}
#view-fingerprint .fpx-disclaimer-close{
  flex:0 0 auto;
  width:22px;
  height:22px;
  margin:-2px -4px 0 0;
  border:0;
  border-radius:50%;
  background:transparent;
  color:var(--text-faint);
  font-size:18px;
  line-height:1;
  cursor:pointer;
}
#view-fingerprint .fpx-disclaimer-close:hover{background:rgba(120,120,120,.14);color:var(--text-muted)}
#view-fingerprint .fpx-disclaimer-close:focus-visible{outline:2px solid var(--accent-blue);outline-offset:1px}
@media (max-width:650px){
  #view-fingerprint .fpx-disclaimer{padding:10px 12px;gap:8px}
  #view-fingerprint .fpx-disclaimer-text{font-size:12.5px}
}
html.accessibility-large #view-fingerprint .fpx-disclaimer-text{font-size:17px}

/* ---------- 卡片与标题栏 ---------- */
#view-fingerprint .fpx-hero,
#view-fingerprint .fpx-card{
  margin:0;
  border:1px solid var(--line-light);
  border-radius:12px;
  background:var(--bg-card);
  box-shadow:var(--report-shadow,0 4px 20px rgba(28,48,79,.045));
  overflow:hidden;
}
html.theme-dark #view-fingerprint .fpx-hero,
html.theme-dark #view-fingerprint .fpx-card{background:rgba(23,35,51,.94)}
#view-fingerprint .fpx-head{
  position:relative;
  display:flex;
  align-items:center;
  gap:9px;
  min-height:60px;
  padding:15px 24px;
  background:rgba(52,97,214,.13);
  border-bottom:1px solid var(--report-heading-line,var(--line-light));
}
html.theme-dark #view-fingerprint .fpx-head{background:rgba(80,127,240,.20)}
#view-fingerprint .fpx-head h3{
  margin:0;
  font-size:21px;
  font-weight:680;
  line-height:1.4;
  color:var(--text-pure);
}
#view-fingerprint .fpx-head h3::before{
  content:"";
  display:inline-block;
  width:4px;
  height:18px;
  margin-right:10px;
  vertical-align:-2px;
  border-radius:2px;
  background:var(--accent-blue);
}
/* 标题栏右侧的状态文字——贴右对齐 */
#view-fingerprint .fpx-status,
#view-fingerprint .fpx-verdict,
#view-fingerprint .fpx-tag{
  margin-left:auto;
  font-size:14px;
  font-weight:500;
  line-height:1.5;
  color:var(--text-muted);
  white-space:nowrap;
}
#view-fingerprint .fpx-verdict strong{font-weight:inherit;color:inherit}
#view-fingerprint .fpx-status.good,
#view-fingerprint .fpx-tag.active,
#view-fingerprint .fpx-verdict.tone-green{color:#43964f}
#view-fingerprint .fpx-status.ok,
#view-fingerprint .fpx-verdict.tone-blue{color:var(--accent-blue)}
#view-fingerprint .fpx-status.warn,
#view-fingerprint .fpx-tag.warn{color:#b86f22}
#view-fingerprint .fpx-status.bad,
#view-fingerprint .fpx-verdict.tone-red{color:#c94650}

/* ---------- 数据行 ---------- */
#view-fingerprint .fpx-rows{display:block}
#view-fingerprint :is(.fpx-row,.fpx-route,.fpx-signal){
  display:grid;
  grid-template-columns:160px minmax(0,1fr);
  column-gap:18px;
  align-items:center;
  min-height:64px;
  padding:18px 24px;
  border-bottom:1px solid var(--line-light);
  background:transparent;
}
#view-fingerprint .fpx-rows > :is(.fpx-row,.fpx-route,.fpx-signal):nth-child(even of :is(.fpx-row,.fpx-route,.fpx-signal):not([hidden])){background:var(--fx-stripe)}
#view-fingerprint .fpx-rows > :is(.fpx-row,.fpx-route,.fpx-signal):last-child{border-bottom:0}
#view-fingerprint .fpx-label{
  display:flex;
  align-self:stretch;
  align-items:center;
  justify-content:center;
  padding:0 14px;
  border-right:1px solid var(--fx-divider);
  font-size:15px;
  font-weight:500;
  line-height:1.4;
  color:var(--text-muted);
  text-align:center;
}
#view-fingerprint .fpx-value{
  min-width:0;
  font-size:18px;
  font-weight:450;
  line-height:1.6;
  color:var(--text-regular);
  text-align:center;
  overflow-wrap:anywhere;
}
#view-fingerprint .fpx-mono .fpx-value{font-family:var(--font-mono);font-size:14px;font-weight:500;line-height:1.7}

/* ---------- 实色徽标：一致 / 需注意 / 未知，尺寸对齐 IP 检测页"IP 类型(家庭宽带)"徽标家族 ---------- */
#view-fingerprint .fpx-pill,
#view-fingerprint .fpx-signal b{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:132px;
  padding:5px 14px;
  border-radius:8px;
  font-size:13px;
  font-weight:600;
  line-height:19px;
  color:#fff;
  background:rgba(120,132,150,.9);
  white-space:nowrap;
}
#view-fingerprint .fpx-pill.ok,
#view-fingerprint .fpx-signal.is-ok b{background:var(--fx-good)}
#view-fingerprint .fpx-pill.warn,
#view-fingerprint .fpx-signal.is-warn b{background:var(--fx-warn)}
#view-fingerprint .fpx-pill.bad{background:var(--fx-bad)}
#view-fingerprint .fpx-pill:not(.ok):not(.warn):not(.bad):not(.unknown){background:var(--bg-card-subtle);color:var(--text-muted)}

/* ---------- 评分依据行：不一致时整行可点，徽标右侧带「›」，点击跳到下方「环境一致性」对应教程 ---------- */
#view-fingerprint .fpx-check{scroll-margin-top:96px}
@keyframes fpx-flash{0%,60%{background:rgba(194,121,48,.18)}100%{background:transparent}}
#view-fingerprint .fpx-check.is-flash{animation:fpx-flash 1.4s ease-out}

/* ---------- 评分行：分数 + 细进度条 ---------- */
#view-fingerprint .fpx-hero{--fx-tone:var(--text-faint)}
#view-fingerprint .fpx-hero.tone-good{--fx-tone:#43964f}
#view-fingerprint .fpx-hero.tone-ok{--fx-tone:var(--accent-blue)}
#view-fingerprint .fpx-hero.tone-warn{--fx-tone:#c58028}
#view-fingerprint .fpx-hero.tone-bad{--fx-tone:#c94650}
#view-fingerprint .fpx-score-row .fpx-value{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  flex-wrap:wrap;
}
#view-fingerprint .fpx-score{display:inline-flex;align-items:baseline;gap:3px}
#view-fingerprint .fpx-score-num{
  min-width:2ch;
  font-size:30px;
  font-weight:700;
  line-height:1;
  letter-spacing:-.02em;
  font-variant-numeric:tabular-nums;
  color:var(--fx-tone);
  transition:color .4s ease;
}
#view-fingerprint .fpx-score-unit{font-size:13px;font-weight:500;color:var(--text-faint)}
#view-fingerprint .fpx-meter{
  /* 进度条去掉，只保留分数数字；JS 仍然会往 #fpx-meter-fill 上写宽度/颜色，
     这里不删节点，只是不显示，这样计分逻辑完全不用改。去掉以后这一行只剩
     分数数字一个孩子，上面 .fpx-score-row .fpx-value 原有的 justify-content:center
     会自动把它居中，不需要额外加居中样式。 */
  display:none;
}
#view-fingerprint .fpx-meter-fill{
  display:block;
  height:100%;
  max-width:100%;
  border-radius:3px;
  background:var(--fx-tone);
  transition:background .4s ease;
}
#view-fingerprint .fpx-score-reason{font-size:15px;line-height:1.7;color:var(--text-regular)}

/* ---------- 出口路由 ---------- */
#view-fingerprint .fpx-route-to{display:inline-flex;align-items:center;gap:8px}
#view-fingerprint .fpx-route-to::before{
  content:"";
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--text-faint);
}
#view-fingerprint .fpx-route.route-domestic .fpx-route-to::before{background:#43964f}
#view-fingerprint .fpx-route.route-foreign .fpx-route-to::before{background:var(--accent-blue)}
#view-fingerprint .fpx-route.route-pending .fpx-route-to,
#view-fingerprint .fpx-route.route-blocked .fpx-route-to{color:var(--text-muted)}
#view-fingerprint .fpx-note{font-size:14px;line-height:1.7;color:var(--text-muted)}
#view-fingerprint .fpx-note-row:has(.fpx-note:empty){display:none}

/* ---------- 环境一致性 ---------- */
/* 改为上下两行：第一行是"浏览器值 → IP值"，第二行单独放彩色徽标；
   两行都各自水平居中，徽标不再跟文字挤在同一行、也不会被文字长短带偏。 */
#view-fingerprint .fpx-check-value{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
}
#view-fingerprint .fpx-check-text{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  justify-content:center;
  gap:6px 12px;
  min-width:0;
}
#view-fingerprint .fpx-check-browser,
#view-fingerprint .fpx-check-ip{font-family:var(--font-mono);font-size:14px;color:var(--text-regular)}
#view-fingerprint .fpx-check-arrow{color:var(--text-faint);font-size:14px}
#view-fingerprint .fpx-check .fpx-pill{margin-left:0}
#view-fingerprint .fpx-check.is-warn{cursor:pointer}
#view-fingerprint .fpx-check.is-warn:hover,
#view-fingerprint .fpx-check.is-warn[aria-expanded="true"]{background:var(--bg-card-subtle)!important}
/* 展开/收起标记：向右小箭头，收起时轻轻"呼吸"提示可点；展开后转为朝上并停止呼吸 */
#view-fingerprint .fpx-check.is-warn .fpx-pill:not(.pending)::after{
  content:"";
  display:inline-block;
  width:6px;
  height:6px;
  margin-left:8px;
  vertical-align:1px;
  border-right:2px solid currentColor;
  border-top:2px solid currentColor;
  transform:rotate(45deg);
  transition:transform .25s ease;
  animation:fpx-breathe 1.8s ease-in-out infinite;
}
#view-fingerprint .fpx-check.is-warn[aria-expanded="true"] .fpx-pill:not(.pending)::after{
  transform:rotate(-45deg);
  animation:none;
}
@keyframes fpx-breathe{
  0%,100%{opacity:.35;transform:translateX(0) rotate(45deg)}
  50%{opacity:1;transform:translateX(3px) rotate(45deg)}
}
@media (prefers-reduced-motion:reduce){
  #view-fingerprint .fpx-check.is-warn .fpx-pill:not(.pending)::after{animation:none}
}
#view-fingerprint .fpx-check:focus-visible{outline:2px solid var(--accent-blue);outline-offset:-2px}
#view-fingerprint .fpx-check-detail{padding:16px 24px 20px;border-bottom:1px solid var(--line-light);background:var(--bg-card-subtle)}
/* ---- 教程排版：宽松间距 + 圆形步骤序号，所有步骤文字左边缘对齐 ---- */
#view-fingerprint .fpx-check-detail{padding:26px 28px 30px}
#view-fingerprint .fpx-tutorial{max-width:820px;margin:0 auto;font-size:17px;line-height:1.95;color:var(--text-regular)}
#view-fingerprint .fpx-tutorial h4{margin:0 0 18px;padding-left:12px;border-left:3px solid var(--accent-blue);font-size:19px;line-height:1.5;font-weight:650;color:var(--text-pure)}
#view-fingerprint .fpx-tutorial h4.tutorial-h-sub{margin-top:36px}
#view-fingerprint .fpx-tutorial .tutorial-lead{margin:0 0 22px}
#view-fingerprint .fpx-tutorial strong{color:var(--text-pure);font-weight:600}
#view-fingerprint .fpx-tutorial code{font-family:var(--font-mono);font-size:.92em;padding:1px 5px;border-radius:4px;background:var(--line-light)}
/* 步骤：数字放进圆圈，文字统一缩进 */
#view-fingerprint .fpx-tutorial ol{list-style:none;counter-reset:fpx-step;margin:0;padding:0}
#view-fingerprint .fpx-tutorial ol > li{counter-increment:fpx-step;position:relative;padding:0 0 0 44px}
#view-fingerprint .fpx-tutorial ol > li + li{margin-top:20px}
#view-fingerprint .fpx-tutorial ol > li::before{content:counter(fpx-step);position:absolute;left:0;top:.42em;width:28px;height:28px;border-radius:50%;background:rgba(127,142,168,.16);color:var(--accent-blue);font-size:14px;font-weight:650;line-height:28px;text-align:center}
/* 需要特别提醒的一步：整行（含序号）一起加底色 */
#view-fingerprint .fpx-tutorial ol > li.tutorial-hl{padding:12px 18px 12px 62px;border-radius:12px;background:rgba(127,142,168,.12)}
#view-fingerprint .fpx-tutorial ol > li.tutorial-hl::before{left:18px;top:calc(12px + .42em)}
/* 各软件的操作位置：软件名固定一列，操作说明对齐成一列 */
#view-fingerprint .fpx-tutorial .tutorial-apps{list-style:none;margin:14px 0 0;padding:0}
#view-fingerprint .fpx-tutorial .tutorial-apps > li{display:grid;grid-template-columns:132px minmax(0,1fr);column-gap:14px;align-items:baseline;padding:10px 16px;border-radius:10px;background:rgba(127,142,168,.08)}
#view-fingerprint .fpx-tutorial .tutorial-apps > li + li{margin-top:10px}
/* 按设备平台分组：Windows 电脑 / Mac 电脑 / 安卓手机 / 苹果手机 */
#view-fingerprint .fpx-tutorial .tutorial-plat{margin-top:18px}
#view-fingerprint .fpx-tutorial .tutorial-plat:first-child{margin-top:0}
#view-fingerprint .fpx-tutorial ol > li.tutorial-step-plat::before{top:-3px}
#view-fingerprint .fpx-tutorial .tutorial-plat-name{display:flex;align-items:center;gap:8px;margin:0 0 8px 2px;font-size:.86em;font-weight:650;letter-spacing:.02em;line-height:1.4;color:var(--text-muted)}
#view-fingerprint .fpx-tutorial .tutorial-plat-name::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent-blue)}
#view-fingerprint .fpx-tutorial .tutorial-plat .tutorial-apps{margin-top:0}
/* 优点 / 缺点 FAQ：一问一答，点开才显示答案（原生 details，无需脚本） */
#view-fingerprint .fpx-tutorial .tutorial-faq-item{border-radius:12px;background:rgba(127,142,168,.08);transition:background .2s ease}
#view-fingerprint .fpx-tutorial .tutorial-faq-item + .tutorial-faq-item{margin-top:12px}
#view-fingerprint .fpx-tutorial .tutorial-faq-item[open]{background:rgba(127,142,168,.14)}
#view-fingerprint .fpx-tutorial .tutorial-faq-item summary{display:flex;align-items:center;gap:12px;padding:14px 18px;list-style:none;cursor:pointer;border-radius:12px;color:var(--text-pure);font-weight:600;line-height:1.6}
#view-fingerprint .fpx-tutorial .tutorial-faq-item summary::-webkit-details-marker{display:none}
#view-fingerprint .fpx-tutorial .tutorial-faq-item summary::after{content:"+";flex:0 0 auto;margin-left:auto;padding-left:12px;font-size:20px;font-weight:500;line-height:1;color:var(--text-muted)}
#view-fingerprint .fpx-tutorial .tutorial-faq-item[open] summary::after{content:"\2212"}
#view-fingerprint .fpx-tutorial .tutorial-faq-item summary:focus-visible{outline:2px solid var(--accent-blue);outline-offset:-2px}
#view-fingerprint .fpx-tutorial .tutorial-faq-q{flex:1 1 auto;min-width:0}
#view-fingerprint .fpx-tutorial .tutorial-faq-tag{flex:0 0 auto;min-width:46px;padding:2px 10px;border-radius:999px;color:#fff;font-size:12.5px;font-weight:650;line-height:1.7;text-align:center}
#view-fingerprint .fpx-tutorial .tutorial-faq-tag.is-pro{background:var(--fx-good)}
#view-fingerprint .fpx-tutorial .tutorial-faq-tag.is-con{background:var(--fx-warn)}
#view-fingerprint .fpx-tutorial .tutorial-faq-a{padding:0 18px 16px;font-size:.96em;line-height:1.9;color:var(--text-regular)}
/* 手风琴里的分步说明、软件列表：比外层更紧凑 */
#view-fingerprint .fpx-tutorial .tutorial-faq-a ol > li{padding-left:38px}
#view-fingerprint .fpx-tutorial .tutorial-faq-a ol > li + li{margin-top:10px}
#view-fingerprint .fpx-tutorial .tutorial-faq-a ol > li::before{width:24px;height:24px;font-size:13px;line-height:24px;top:.3em}
#view-fingerprint .fpx-tutorial .tutorial-faq-a .tutorial-apps{margin:0}
#view-fingerprint .fpx-tutorial .tutorial-faq-a .tutorial-apps > li{background:rgba(127,142,168,.10)}
#view-fingerprint .fpx-tutorial .tutorial-faq-item summary .tutorial-faq-q{font-size:1em}
#view-fingerprint .fpx-tutorial .tutorial-callout + .tutorial-callout{margin-top:12px}
/* 提示框 */
#view-fingerprint .fpx-tutorial .tutorial-callout{margin:28px 0 0;padding:14px 20px;border-left:3px solid var(--accent-blue);border-radius:10px;background:rgba(127,142,168,.12);font-size:.94em;line-height:1.85}
#view-fingerprint .fpx-tutorial .tutorial-note{margin:20px 0 0;font-size:15px;line-height:1.8;color:var(--text-muted)}
#view-fingerprint .fpx-foot{
  margin:0;
  padding:14px 24px;
  border-top:1px solid var(--line-light);
  font-size:13px;
  line-height:1.7;
  color:var(--text-muted);
  text-align:center;
}

/* ---------- 检测中 / 揭晓：跑分结果出来之前，下面的卡片整个不显示，
   等分数揭晓那一刻再按顺序逐张淡入出现，不是一直显示着只是调暗。 ---------- */
#view-fingerprint.fp-detecting :is(.fpx-reveal,.fpx-hero .fpx-check,.fpx-hero .fpx-check-detail){display:none}
#view-fingerprint :is(.fpx-reveal,.fpx-check).fp-reveal-in{animation:fpx-rise .55s ease-out both;animation-delay:var(--fp-reveal-delay,0s)}
@keyframes fpx-rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
html.accessibility-motion #view-fingerprint .fpx *,
html.accessibility-motion #view-fingerprint .fpx-reveal{animation:none!important;transition:none!important}
@media (prefers-reduced-motion:reduce){
  #view-fingerprint .fpx *,#view-fingerprint .fpx-reveal{animation:none!important;transition:none!important}
}

/* ---------- 放大文字 ---------- */
html.accessibility-large #view-fingerprint .fpx-value,
html.accessibility-large #view-fingerprint .fpx-score-reason{font-size:22px}
html.accessibility-large #view-fingerprint .fpx-label{font-size:19px}
html.accessibility-large #view-fingerprint :is(.fpx-check-browser,.fpx-check-ip,.fpx-note,.fpx-tutorial,.fpx-foot){font-size:17px}
html.accessibility-large #view-fingerprint :is(.fpx-pill,.fpx-signal b){font-size:16px;line-height:24px}

/* ---------- 手机：与 IP 卡片的手机端行距、标签列一致 ---------- */
@media (max-width:650px){
  #view-fingerprint .fpx{gap:16px}
  #view-fingerprint .fpx-head{min-height:52px;padding:13px 16px}
  #view-fingerprint .fpx-head h3{font-size:16px}
  #view-fingerprint .fpx-status,
  #view-fingerprint .fpx-verdict,
  #view-fingerprint .fpx-tag{font-size:13px}
  #view-fingerprint :is(.fpx-row,.fpx-route,.fpx-signal){
    grid-template-columns:72px minmax(0,1fr);
    column-gap:8px;
    min-height:48px;
    padding:9px 14px;
  }
  #view-fingerprint .fpx-label{padding:0 5px;font-size:12px;color:var(--text-pure)}
  #view-fingerprint .fpx-value{font-size:13.5px;line-height:1.5}
  #view-fingerprint .fpx-mono .fpx-value{font-size:10.5px;line-height:1.55}
  #view-fingerprint .fpx-score-row .fpx-value{gap:12px}
  #view-fingerprint .fpx-score-num{font-size:24px}
  #view-fingerprint .fpx-meter{width:min(160px,100%)}
  #view-fingerprint .fpx-score-reason,
  #view-fingerprint .fpx-note{font-size:13px}
  #view-fingerprint .fpx-check-value{gap:4px 8px}
  #view-fingerprint .fpx-check-browser,
  #view-fingerprint .fpx-check-ip,
  #view-fingerprint .fpx-check-arrow{font-size:12px}
  #view-fingerprint .fpx-check .fpx-pill{margin-left:0}
  #view-fingerprint .fpx-pill,
  #view-fingerprint .fpx-signal b{min-width:110px;padding:5px 14px;font-size:13px;line-height:19px}
  #view-fingerprint .fpx-check-detail{padding:18px 16px 22px}
  #view-fingerprint .fpx-tutorial{font-size:14px;line-height:1.85}
  #view-fingerprint .fpx-tutorial h4{margin-bottom:14px;font-size:16px}
  #view-fingerprint .fpx-tutorial h4.tutorial-h-sub{margin-top:28px}
  #view-fingerprint .fpx-tutorial ol > li{padding-left:36px}
  #view-fingerprint .fpx-tutorial ol > li + li{margin-top:16px}
  #view-fingerprint .fpx-tutorial ol > li::before{width:24px;height:24px;font-size:12px;line-height:24px;top:.3em}
  #view-fingerprint .fpx-tutorial ol > li.tutorial-hl{padding:10px 12px 10px 48px}
  #view-fingerprint .fpx-tutorial ol > li.tutorial-hl::before{left:12px;top:calc(10px + .3em)}
  #view-fingerprint .fpx-tutorial .tutorial-apps > li{grid-template-columns:1fr;row-gap:2px;padding:10px 12px}
  #view-fingerprint .fpx-tutorial .tutorial-callout{padding:12px 14px}
  #view-fingerprint .fpx-tutorial .tutorial-faq-item summary{gap:8px;padding:12px 14px}
  #view-fingerprint .fpx-tutorial .tutorial-faq-tag{min-width:40px;padding:1px 8px;font-size:11.5px}
  #view-fingerprint .fpx-tutorial .tutorial-faq-a{padding:0 14px 14px}
  #view-fingerprint .fpx-foot{padding:12px 14px;font-size:12px}
}
/* iOS 的 IP 卡片标签列更宽、字号略大，这里保持一致 */
@media (max-width:650px){
  html.platform-ios #view-fingerprint :is(.fpx-row,.fpx-route,.fpx-signal){grid-template-columns:92px minmax(0,1fr);column-gap:10px;padding:12px 16px;min-height:54px}
  html.platform-ios #view-fingerprint .fpx-label{font-size:12.5px;padding:0 8px}
  html.platform-ios #view-fingerprint .fpx-value{font-size:14px}
}

/* style.css 里有一条 #view-fingerprint #fp-tz / #fp-canvas 的旧规则(双 ID 优先级)，
   会把这两行放大成 16px 等宽字；这里用更高优先级把它们拉回与其它行一致。 */
#view-fingerprint .fpx #fp-tz{font-family:var(--font-text);font-size:18px}
#view-fingerprint .fpx #fp-canvas{font-family:var(--font-mono);font-size:14px}
@media (max-width:650px){
  #view-fingerprint .fpx #fp-tz{font-size:13.5px}
  #view-fingerprint .fpx #fp-canvas{font-size:12px}
  html.platform-ios #view-fingerprint .fpx #fp-tz{font-size:14px}
}
html.accessibility-large #view-fingerprint .fpx #fp-tz{font-size:22px}
/* ---------- 平台访问建议：沿用隐私评分的行样式（左平台名、右五星），点开看原因 ---------- */
#view-fingerprint .fpx-pa-group{padding:11px 24px;border-bottom:1px solid var(--line-light);background:var(--bg-card-subtle);font-size:13.5px;font-weight:650;letter-spacing:.04em;color:var(--text-muted)}
#view-fingerprint .fpx-pa-row{--pc:var(--text-faint);cursor:pointer}
#view-fingerprint .fpx-pa-row.is-ok{--pc:var(--fx-good)}
#view-fingerprint .fpx-pa-row.is-warn{--pc:var(--fx-warn)}
#view-fingerprint .fpx-pa-row.is-bad{--pc:var(--fx-bad)}
#view-fingerprint .fpx-pa-detail{--pc:var(--text-faint)}
#view-fingerprint .fpx-pa-detail.is-ok{--pc:var(--fx-good)}
#view-fingerprint .fpx-pa-detail.is-warn{--pc:var(--fx-warn)}
#view-fingerprint .fpx-pa-detail.is-bad{--pc:var(--fx-bad)}
#view-fingerprint .fpx-pa-row:not(.is-cn):hover,#view-fingerprint .fpx-pa-row[aria-expanded="true"]{background:var(--bg-card-subtle)!important}
/* 出口在中国大陆：不可点、无文字，星星保持灰色 */
#view-fingerprint .fpx-pa-row.is-cn{cursor:default}
#view-fingerprint .fpx-pa-row:focus-visible{outline:2px solid var(--accent-blue);outline-offset:-2px}
#view-fingerprint .fpx-pa-value{display:flex;align-items:center;justify-content:center;gap:14px}
#view-fingerprint .fpx-pa-stars{display:inline-flex;gap:4px}
#view-fingerprint .fpx-pa-stars i{width:22px;height:22px;background:rgba(127,142,168,.3);clip-path:polygon(50% 2%,62% 36%,98% 38%,69% 60%,79% 95%,50% 75%,21% 95%,31% 60%,2% 38%,38% 36%)}
#view-fingerprint .fpx-pa-stars i.on{background:var(--pc)}
#view-fingerprint .fpx-pa-stars i.half{background:linear-gradient(90deg,var(--pc) 0 50%,rgba(127,142,168,.32) 50% 100%)}
/* 不建议：五颗星整体变红（没点亮的部分是淡红色），配合半颗星和红色文字 */
/* 结论文字固定成三个字的宽度：两个字的「推荐 / 谨慎」两端对齐撑满，跟「不建议」一样宽，所有行的星星才能对齐 */
#view-fingerprint .fpx-pa-lb{flex:0 0 auto;width:3.1em;text-align:justify;text-align-last:justify;font-size:15px;font-weight:650;color:var(--pc)}
#view-fingerprint .fpx-pa-detail{padding:22px 28px 26px}
#view-fingerprint .fpx-pa-body{max-width:620px;margin:0 auto;font-size:15.5px;line-height:1.8;color:var(--text-regular)}
#view-fingerprint .fpx-pa-body p{margin:0}
/* 三个数字并排：你的评分 / 推荐线 / 还差几分（达标时显示「已达标」） */
#view-fingerprint .fpx-pa-stats{display:grid;grid-template-columns:repeat(3,1fr);text-align:center}
#view-fingerprint .fpx-pa-stats > div{padding:2px 8px;border-right:1px solid var(--fx-divider)}
#view-fingerprint .fpx-pa-stats > div:last-child{border-right:0}
#view-fingerprint .fpx-pa-stats span{display:block;font-size:13px;line-height:1.5;color:var(--text-muted)}
#view-fingerprint .fpx-pa-stats strong{display:block;margin-top:2px;font-size:25px;font-weight:650;line-height:1.3;color:var(--text-pure)}
#view-fingerprint .fpx-pa-stats .is-gap strong{color:var(--pc)}
/* 进度条：填充是你的评分，竖线是推荐线 */
#view-fingerprint .fpx-pa-track{position:relative;height:8px;margin:18px 0 20px;border-radius:4px;background:rgba(127,142,168,.22)}
#view-fingerprint .fpx-pa-track b{position:absolute;left:0;top:0;bottom:0;border-radius:4px;background:var(--pc)}
#view-fingerprint .fpx-pa-track b::after{content:"";position:absolute;right:-5px;top:50%;width:14px;height:14px;margin-top:-7px;border-radius:50%;background:var(--pc);box-shadow:0 0 0 3px var(--bg-card-subtle)}
#view-fingerprint .fpx-pa-track u{position:absolute;top:-6px;bottom:-6px;width:2px;margin-left:-1px;border-radius:1px;background:var(--text-pure);opacity:.5}
#view-fingerprint .fpx-pa-note{color:var(--text-regular)}
#view-fingerprint .fpx-pa-verdict{margin-top:4px!important;color:var(--text-muted)}
/* 需要先处理的扣分项：小标签 */
#view-fingerprint .fpx-pa-fix{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px;padding-top:14px;border-top:1px dashed var(--fx-divider)}
#view-fingerprint .fpx-pa-fix span{font-size:13.5px;color:var(--text-muted);margin-right:2px}
#view-fingerprint .fpx-pa-fixlist{display:contents}
#view-fingerprint .fpx-pa-fix b{padding:3px 12px;border-radius:999px;border:1.5px solid color-mix(in srgb,var(--pc) 60%,transparent);color:var(--pc);font-size:14px;font-weight:600}
@media (max-width:650px){
  #view-fingerprint .fpx-pa-group{padding:9px 16px}
  #view-fingerprint .fpx-pa-fix span{flex:0 0 100%}
  #view-fingerprint .fpx-pa-fixlist{display:flex;flex-wrap:nowrap;gap:6px;width:100%}
  #view-fingerprint .fpx-pa-fix b{padding:3px 10px;font-size:13.5px;white-space:nowrap;flex:0 1 auto}
  #view-fingerprint .fpx-pa-value{gap:8px}
  #view-fingerprint .fpx-pa-stars{gap:2px}
  #view-fingerprint .fpx-pa-stars i{width:16px;height:16px}
  #view-fingerprint .fpx-pa-lb{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  #view-fingerprint .fpx-pa-detail{padding:18px 16px 22px}
  #view-fingerprint .fpx-pa-body{font-size:14.5px}
  #view-fingerprint .fpx-pa-stats strong{font-size:21px}
  #view-fingerprint .fpx-pa-stats > div{padding:2px 4px}
}
/* 设备指纹：技术详情默认折叠 */
#view-fingerprint .fpx-fold summary{display:flex;align-items:center;justify-content:center;padding:18px 24px;list-style:none;cursor:pointer;font-size:15px;font-weight:500;color:var(--text-muted)}
#view-fingerprint .fpx-fold summary::-webkit-details-marker{display:none}
#view-fingerprint .fpx-fold summary:hover{background:var(--bg-card-subtle)}
#view-fingerprint .fpx-fold[open] summary{border-bottom:1px solid var(--line-light)}


/* ---------- IPv4 卡片顶部的「检测隐私评分」入口条 ---------- */
.fp-hook{display:flex;align-items:center;gap:10px;width:100%;box-sizing:border-box;margin:0;padding:11px 24px;border:0;border-bottom:1px solid var(--line-light);border-radius:inherit;border-bottom-left-radius:0;border-bottom-right-radius:0;background:linear-gradient(90deg,rgba(47,107,255,.10),rgba(47,107,255,.03));color:var(--text-regular);font:inherit;font-size:15px;line-height:1.5;text-align:left;cursor:pointer;transition:background .2s ease}
.fp-hook:hover{background:linear-gradient(90deg,rgba(47,107,255,.16),rgba(47,107,255,.06))}
.fp-hook:focus-visible{outline:2px solid var(--accent-blue);outline-offset:-2px}
.fp-hook-ic{flex:0 0 auto;width:20px;height:20px;color:var(--accent-blue)}
.fp-hook-tx{flex:1 1 auto;min-width:0}
.fp-hook-short{display:none}
.fp-hook-cta{display:inline-flex;align-items:center;gap:8px;flex:0 0 auto;color:var(--accent-blue);font-weight:650;white-space:nowrap}
.fp-hook-cta i{width:7px;height:7px;border-right:2px solid currentColor;border-top:2px solid currentColor;transform:rotate(45deg);animation:fpx-breathe 1.8s ease-in-out infinite}
@media (prefers-reduced-motion:reduce){.fp-hook-cta i{animation:none}}
@media (max-width:650px){
  .fp-hook{padding:10px 16px;gap:8px;font-size:14px}
  .fp-hook-long{display:none}
  .fp-hook-short{display:inline}
}

/* ===== 聚焦模式：点开教程/详情时，除当前行及其教程外，其余全部虚化；当前行整行深色 ===== */
#view-fingerprint .fpx > *,
#view-fingerprint .fpx .fpx-row,
#view-fingerprint .fpx .fpx-head,
#view-fingerprint .fpx .fpx-pa-group,
#view-fingerprint .fpx .fpx-check-detail{transition:opacity .28s ease,filter .28s ease,background .28s ease,color .28s ease,box-shadow .28s ease}
#view-fingerprint.fp-focus .fpx > *:not(.has-focus){opacity:.28;filter:blur(3px) saturate(.5)}
#view-fingerprint.fp-focus .fpx > .has-focus > *:not(.fpx-rows),
#view-fingerprint.fp-focus .fpx > .has-focus .fpx-rows > *:not(.is-focus){opacity:.3;filter:blur(2.5px) saturate(.5)}
#view-fingerprint.fp-focus .fpx > .has-focus{position:relative;z-index:2;box-shadow:0 18px 50px -12px rgba(30,41,90,.4),0 0 0 1.5px rgba(79,70,229,.4)}
/* 当前行：整行深色 */
#view-fingerprint.fp-focus .fpx-row.is-focus{background:#1f2747!important;border-color:transparent}
#view-fingerprint.fp-focus .fpx-row.is-focus .fpx-label{color:#e8ecfa;border-color:rgba(255,255,255,.16)}
#view-fingerprint.fp-focus .fpx-row.is-focus :is(.fpx-check-browser,.fpx-check-ip){color:#f1f4ff}
#view-fingerprint.fp-focus .fpx-row.is-focus .fpx-check-arrow{color:rgba(255,255,255,.55)}
#view-fingerprint.fp-focus .fpx-pa-row.is-focus .fpx-pa-stars i:not(.on):not(.half){background:rgba(255,255,255,.26)}
#view-fingerprint.fp-focus .fpx-pa-row.is-focus .fpx-pa-stars i.half{background:linear-gradient(90deg,var(--pc) 0 50%,rgba(255,255,255,.26) 50% 100%)}
#view-fingerprint.fp-focus .fpx-check-detail.is-focus{background:var(--bg-card,#fff);box-shadow:inset 0 0 0 1px rgba(79,70,229,.14)}
html.theme-dark #view-fingerprint.fp-focus .fpx > *:not(.has-focus){opacity:.2}
html.theme-dark #view-fingerprint.fp-focus .fpx-row.is-focus{background:#0b1226!important}
html.theme-dark #view-fingerprint.fp-focus .fpx > .has-focus{box-shadow:0 18px 50px -12px rgba(0,0,0,.7),0 0 0 1.5px rgba(129,140,248,.45)}
html.theme-dark #view-fingerprint.fp-focus .fpx-check-detail.is-focus{background:rgba(23,35,51,.98)}
@media (prefers-reduced-motion:reduce){#view-fingerprint .fpx > *,#view-fingerprint .fpx .fpx-row,#view-fingerprint .fpx .fpx-head,#view-fingerprint .fpx .fpx-pa-group,#view-fingerprint .fpx .fpx-check-detail{transition:none}}

/* 顶栏「关于本站」是普通链接，沿用标签按钮的样子 */
a.view-switch-btn{display:inline-flex;align-items:center;text-decoration:none;cursor:pointer}
a.mobile-nav-link{display:block;box-sizing:border-box;text-decoration:none}

/* ===== 关于本站视图（首页内的第三个标签）：文档式排版，正文 + 右侧本页目录 ===== */
:is(#view-about,#view-faq,#view-corrections,#view-changelog,#view-contact) .abx{display:block}
:is(#view-about,#view-faq,#view-corrections,#view-changelog,#view-contact) .ab-doc{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:56px;align-items:start;padding:8px 4px 24px}
:is(#view-about,#view-faq,#view-corrections,#view-changelog,#view-contact) .ab-article{max-width:720px;color:var(--text-regular)}
:is(#view-about,#view-faq,#view-corrections,#view-changelog,#view-contact) .ab-article h1{margin:0 0 20px;font-size:36px;line-height:1.25;color:var(--text-pure)}
:is(#view-about,#view-faq,#view-corrections,#view-changelog,#view-contact) .ab-article h2{margin:0 0 16px;font-size:25px;line-height:1.3;color:var(--text-pure);scroll-margin-top:96px}
:is(#view-about,#view-faq,#view-corrections,#view-changelog,#view-contact) .ab-article p{margin:0 0 18px;font-size:17px;line-height:1.95}
:is(#view-about,#view-faq,#view-corrections,#view-changelog,#view-contact) .ab-article ul{margin:0 0 22px;padding-left:26px}
:is(#view-about,#view-faq,#view-corrections,#view-changelog,#view-contact) .ab-article li{margin:0 0 12px;font-size:17px;line-height:1.7}
:is(#view-about,#view-faq,#view-corrections,#view-changelog,#view-contact) .ab-article li::marker{color:var(--text-muted)}
:is(#view-about,#view-faq,#view-corrections,#view-changelog,#view-contact) .ab-article hr{border:0;border-top:1px solid var(--line-light);margin:44px 0 38px}
:is(#view-about,#view-faq,#view-corrections,#view-changelog,#view-contact) .ab-inline{border:0;background:none;padding:0;font:inherit;color:var(--accent-blue);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
:is(#view-about,#view-faq,#view-corrections,#view-changelog,#view-contact) .ab-toc{position:sticky;top:96px;border-left:1px solid var(--line-light);padding:2px 0 2px 22px;display:flex;flex-direction:column;gap:14px}
:is(#view-about,#view-faq,#view-corrections,#view-changelog,#view-contact) .ab-toc-t{font-size:16px;font-weight:650;color:var(--text-pure)}
:is(#view-about,#view-faq,#view-corrections,#view-changelog,#view-contact) .ab-toc a{font-size:15px;color:var(--text-muted);text-decoration:none}
:is(#view-about,#view-faq,#view-corrections,#view-changelog,#view-contact) .ab-toc a:hover{color:var(--accent-blue)}
@media (max-width:860px){
  :is(#view-about,#view-faq,#view-corrections,#view-changelog,#view-contact) .ab-doc{grid-template-columns:1fr}
  :is(#view-about,#view-faq,#view-corrections,#view-changelog,#view-contact) .ab-toc{display:none}
}
@media (max-width:700px){
  :is(#view-about,#view-faq,#view-corrections,#view-changelog,#view-contact) .ab-article h1{font-size:28px}
  :is(#view-about,#view-faq,#view-corrections,#view-changelog,#view-contact) .ab-article h2{font-size:21px}
  :is(#view-about,#view-faq,#view-corrections,#view-changelog,#view-contact) .ab-article p,:is(#view-about,#view-faq,#view-corrections,#view-changelog,#view-contact) .ab-article li{font-size:16px}
  :is(#view-about,#view-faq,#view-corrections,#view-changelog,#view-contact) .ab-article hr{margin:34px 0 30px}
}

/* 平台访问建议：五角星后面不再显示「推荐 / 谨慎 / 不建议」文字（保留给读屏软件） */
#view-fingerprint .fpx-pa-lb{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important;padding:0!important}

/* 「关于本站」页：纯白底，去掉站内其它页的蓝白网格与蓝色光斑 */
html body:is([data-page="about"],[data-page="faq"],[data-page="corrections"],[data-page="changelog"],[data-page="contact"],[data-page="blog"]){background:#fff!important;background-image:none!important}
html.theme-dark body:is([data-page="about"],[data-page="faq"],[data-page="corrections"],[data-page="changelog"],[data-page="contact"],[data-page="blog"]){background:var(--bg-deep,#101925)!important;background-image:none!important}
html body:is([data-page="about"],[data-page="faq"],[data-page="corrections"],[data-page="changelog"],[data-page="contact"],[data-page="blog"]) .view-toolbar{background:#fff}
html.theme-dark body:is([data-page="about"],[data-page="faq"],[data-page="corrections"],[data-page="changelog"],[data-page="contact"],[data-page="blog"]) .view-toolbar{background:var(--bg-card)}
html:has(body:is([data-page="about"],[data-page="faq"],[data-page="corrections"],[data-page="changelog"],[data-page="contact"],[data-page="blog"])){background:#fff}
html.theme-dark:has(body:is([data-page="about"],[data-page="faq"],[data-page="corrections"],[data-page="changelog"],[data-page="contact"],[data-page="blog"])){background:var(--bg-deep,#101925)}
html body:is([data-page="about"],[data-page="faq"],[data-page="corrections"],[data-page="changelog"],[data-page="contact"],[data-page="blog"])::before,html body:is([data-page="about"],[data-page="faq"],[data-page="corrections"],[data-page="changelog"],[data-page="contact"],[data-page="blog"])::after{display:none!important;content:none!important;background:none!important}

/* 「常见问题」页（沿用「关于本站」的文档式布局） */
:is(#view-about,#view-faq,#view-corrections,#view-changelog,#view-contact) .ab-article a.faq-link{color:var(--accent-blue);text-decoration:underline;text-underline-offset:3px}
:is(#view-about,#view-faq,#view-corrections,#view-changelog,#view-contact) .ab-article a.faq-link:hover{opacity:.8}
#view-faq .ab-article h1+p,#view-faq .ab-article .faq-state{color:var(--text-muted)}
#view-faq .ab-article .faq-more{margin:-4px 0 0}
#view-faq .ab-article ul.faq-arts{list-style:none;padding-left:0}
#view-faq .ab-article ul.faq-arts li{margin:0 0 18px}
#view-faq .ab-article .faq-ex{display:block;margin-top:4px;font-size:15px;line-height:1.7;color:var(--text-muted)}
#view-faq .ab-toc a{display:block;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* 电脑端按系统微调：Mac 整体放大一点点、内容宽度与 Windows 一致（1120×1.07≈1200，比 Windows 略宽）；Windows 内容收窄一点（只在桌面宽度生效，手机/平板不变） */
@media (min-width:1100px){
  html.os-mac body{zoom:1.07;min-height:calc(100svh / 1.07)}
  html.os-mac body[data-view] .viewport-shell,
  html.os-mac body[data-view] .view-toolbar-inner{max-width:1120px!important}
  html.os-win body[data-view] .viewport-shell,
  html.os-win body[data-view] .view-toolbar-inner{max-width:1040px!important}
}

/* 深色模式：文档页的大标题不要纯白，柔和一点 */
html.theme-dark :is(#view-about,#view-faq,#view-corrections,#view-changelog,#view-contact) .ab-article :is(h1,h2){color:#cdd6e4}

/* 文档式页面的三个小元素：标题前的「#」、右侧目录高亮、页底翻页卡片 */
:is(#view-about,#view-faq,#view-corrections,#view-changelog,#view-contact) .ab-article :is(h1,h2){position:relative}
:is(#view-about,#view-faq,#view-corrections,#view-changelog,#view-contact) .ab-anchor{position:absolute;left:-1.15em;top:0;width:1em;text-align:center;color:var(--accent-blue);text-decoration:none;font-weight:500;opacity:0;transition:opacity .15s}
:is(#view-about,#view-faq,#view-corrections,#view-changelog,#view-contact) .ab-article :is(h1,h2):hover .ab-anchor,:is(#view-about,#view-faq,#view-corrections,#view-changelog,#view-contact) .ab-anchor:focus-visible{opacity:1}
@media (max-width:860px){:is(#view-about,#view-faq,#view-corrections,#view-changelog,#view-contact) .ab-anchor{display:none}}
:is(#view-about,#view-faq,#view-corrections,#view-changelog,#view-contact) .ab-toc a{position:relative;transition:color .15s}
:is(#view-about,#view-faq,#view-corrections,#view-changelog,#view-contact) .ab-toc a.is-active{color:var(--text-pure)}
:is(#view-about,#view-faq,#view-corrections,#view-changelog,#view-contact) .ab-toc::after{content:"";position:absolute;left:-1px;top:var(--spy-y,0);height:var(--spy-h,0);width:2px;border-radius:2px;background:var(--accent-blue);opacity:0;transition:top .2s,height .2s,opacity .15s}
:is(#view-about,#view-faq,#view-corrections,#view-changelog,#view-contact) .ab-toc.has-active::after{opacity:1}
:is(#view-about,#view-faq,#view-corrections,#view-changelog,#view-contact) .ab-pager{display:flex;justify-content:flex-end;margin-top:-6px}
:is(#view-about,#view-faq,#view-corrections,#view-changelog,#view-contact) .ab-pg{display:flex;flex-direction:column;align-items:flex-end;gap:4px;min-width:230px;padding:14px 20px;border:1px solid var(--line-light);border-radius:12px;background:transparent;font:inherit;text-align:right;cursor:pointer;transition:border-color .15s}
:is(#view-about,#view-faq,#view-corrections,#view-changelog,#view-contact) .ab-pg:hover{border-color:var(--accent-blue)}
:is(#view-about,#view-faq,#view-corrections,#view-changelog,#view-contact) .ab-pg span{font-size:14px;color:var(--text-muted)}
:is(#view-about,#view-faq,#view-corrections,#view-changelog,#view-contact) .ab-pg b{font-size:17px;font-weight:500;color:var(--accent-blue)}
:is(#view-about,#view-faq,#view-corrections,#view-changelog,#view-contact) .ab-pager:has(.ab-pg-prev){justify-content:flex-start}
:is(#view-about,#view-faq,#view-corrections,#view-changelog,#view-contact) .ab-pg-prev{align-items:flex-start;text-align:left}

/* 顶部导航栏（参考 ippure）：①栏内内容比正文更宽，左右两端拉开；②半透明毛玻璃，页面内容从下面滚过时能隐约透出来 */
@media (min-width:1100px){
  html.os-mac body[data-view] .view-toolbar-inner{max-width:1280px!important}
  html.os-win body[data-view] .view-toolbar-inner{max-width:1200px!important}
}
html body[data-view="ip"] .view-toolbar.is-scrolled,
html body[data-view="fingerprint"] .view-toolbar.is-scrolled,
html body:is([data-page="about"],[data-page="faq"],[data-page="corrections"],[data-page="changelog"],[data-page="contact"],[data-page="blog"]) .view-toolbar{
  background:rgba(255,255,255,.34)!important;
  border-bottom:1px solid rgba(205,215,230,.7)!important;
  box-shadow:none!important;
  -webkit-backdrop-filter:blur(4px)!important;
  backdrop-filter:blur(4px)!important;
}
html.theme-dark body[data-view="ip"] .view-toolbar.is-scrolled,
html.theme-dark body[data-view="fingerprint"] .view-toolbar.is-scrolled,
html.theme-dark body:is([data-page="about"],[data-page="faq"],[data-page="corrections"],[data-page="changelog"],[data-page="contact"],[data-page="blog"]) .view-toolbar{
  background:rgba(16,25,37,.4)!important;
  border-bottom:1px solid rgba(111,132,161,.28)!important;
  -webkit-backdrop-filter:blur(4px)!important;
  backdrop-filter:blur(4px)!important;
}

/* 顶栏高度与字号（参考 ippure）：视觉高度 64px，导航文字约 14px、字重中等；Mac 有 1.07 放大，数值相应除以 1.07，Windows 与 Mac 看起来一样大 */
@media (min-width:1100px){
  html body[data-view] .view-toolbar-inner{height:64px!important}
  html body[data-view] .view-switch{height:64px!important;gap:22px!important}
  html body[data-view] .view-switch-btn{font-size:14px!important;font-weight:500!important}
  html body[data-view] .brand{font-size:21px!important}
  html.os-mac body[data-view] .view-toolbar-inner{height:60px!important}
  html.os-mac body[data-view] .view-switch{height:60px!important;gap:20.5px!important}
  html.os-mac body[data-view] .view-switch-btn{font-size:13.1px!important}
  html.os-mac body[data-view] .brand{font-size:19.6px!important}
}

/* 电脑端整体收窄一点：正文 Mac 1060(×1.07≈1130) / Windows 980；顶栏内容保持比正文略宽 */
@media (min-width:1100px){
  html.os-mac body[data-view] .viewport-shell{max-width:1060px!important}
  html.os-win body[data-view] .viewport-shell{max-width:980px!important}
  html.os-mac body[data-view] .view-toolbar-inner{max-width:1220px!important}
  html.os-win body[data-view] .view-toolbar-inner{max-width:1140px!important}
}

/* 电脑端再收窄一档：正文 Mac 960(×1.07≈1030) / Windows 900；顶栏内容 Mac 1120 / Windows 1060 */
@media (min-width:1100px){
  html.os-mac body[data-view] .viewport-shell{max-width:960px!important}
  html.os-win body[data-view] .viewport-shell{max-width:900px!important}
  html.os-mac body[data-view] .view-toolbar-inner{max-width:1120px!important}
  html.os-win body[data-view] .view-toolbar-inner{max-width:1060px!important}
}

/* 电脑端：正文整体缩小约 7%（字体、卡片、间距一起），并把宽度按比例补回去，视觉宽度不变；日夜/无障碍按钮缩小，和顶栏比例协调 */
@media (min-width:1100px){
  html.os-mac body[data-view] .viewport-shell,
  html.os-win body[data-view] .viewport-shell{zoom:.93}
  html.os-mac body[data-view] .viewport-shell{max-width:1032px!important}
  html.os-win body[data-view] .viewport-shell{max-width:968px!important}

  html body[data-view] .toolbar-actions{gap:4px!important}
  html body[data-view] .theme-toggle-btn,
  html body[data-view] .accessibility-toggle{width:34px!important;height:34px!important;flex:0 0 34px!important;border-radius:9px!important}
  html body[data-view] .theme-toggle-btn svg,
  html body[data-view] .accessibility-toggle svg{width:18px!important;height:18px!important}
  html.os-mac body[data-view] .theme-toggle-btn,
  html.os-mac body[data-view] .accessibility-toggle{width:32px!important;height:32px!important;flex:0 0 32px!important}
  html.os-mac body[data-view] .theme-toggle-btn svg,
  html.os-mac body[data-view] .accessibility-toggle svg{width:17px!important;height:17px!important}
}

/* 电脑端：「地址」后面的 IP 与其它结果字号一致（原来明显更大） */
@media (min-width:1100px){
  html body[data-view] #view-ip .address-row .address-link,
  html body[data-view] #view-ip .address-link{font-size:18px!important;font-weight:500!important;letter-spacing:0!important;line-height:1.65!important}
}

/* Windows 与 Mac 视觉比例对齐：Mac 因整体放大 1.07，Windows 的正文/顶栏宽度同步补到同样的 CSS 值，避免 Windows 看起来偏窄 */
@media (min-width:1100px){
  html.os-win body[data-view] .viewport-shell{max-width:1080px!important}
  html.os-win body[data-view] .view-toolbar-inner{max-width:1170px!important}
}

/* 电脑端导航文字更黑：未选中项用接近正文的深色，选中项仍为蓝色；深色模式用更亮的浅灰 */
@media (min-width:900px){
  html body[data-view] .view-switch-btn:not(.active){color:#1c2333!important}
  html body[data-view] .view-switch-btn:not(.active):hover{color:#000!important}
  html.theme-dark body[data-view] .view-switch-btn:not(.active){color:#dcdcdc!important}
  html.theme-dark body[data-view] .view-switch-btn:not(.active):hover{color:#fff!important}
}

/* 输入框聚焦时：渐变边框像布在风中飘动一样流动(仅聚焦时播放；系统开启"减少动态效果"时保持静止) */
@property --ipsb-fx{syntax:'<percentage>';inherits:false;initial-value:0%}
@property --ipsb-fy{syntax:'<percentage>';inherits:false;initial-value:20%}
@keyframes ipsb-border-flow{
  0%{--ipsb-fx:0%;--ipsb-fy:20%}
  25%{--ipsb-fx:55%;--ipsb-fy:85%}
  50%{--ipsb-fx:100%;--ipsb-fy:40%}
  75%{--ipsb-fx:45%;--ipsb-fy:95%}
  100%{--ipsb-fx:0%;--ipsb-fy:20%}
}
html body[data-view] #view-ip .query-bar .ip-search-box#ip-search-box:focus-within{
  background-image:
    linear-gradient(var(--bg-card),var(--bg-card)),
    linear-gradient(115deg,#7f9be4 0%,#315fd3 18%,#5e9c87 36%,#9bb6f2 52%,#315fd3 68%,#5e9c87 84%,#7f9be4 100%)!important;
  background-size:100% 100%,300% 300%!important;
  background-position:0 0,var(--ipsb-fx) var(--ipsb-fy)!important;
  background-origin:padding-box,border-box!important;
  background-clip:padding-box,border-box!important;
  animation:ipsb-border-flow 5.5s ease-in-out infinite;
}
html.theme-dark body[data-view] #view-ip .query-bar .ip-search-box#ip-search-box:focus-within{
  background-image:
    linear-gradient(var(--bg-card),var(--bg-card)),
    linear-gradient(115deg,#5f7fd8 0%,#94b3ff 18%,#4f9a86 36%,#7ea0f5 52%,#94b3ff 68%,#4f9a86 84%,#5f7fd8 100%)!important;
}
@media (prefers-reduced-motion:reduce){
  html body[data-view] #view-ip .query-bar .ip-search-box#ip-search-box:focus-within{animation:none}
}

/* ============ 日夜切换：图标形变 + 圆形扩散过渡 ============ */
html body .theme-toggle-btn .ipsb-morph{transition:none;overflow:visible}
.ipsb-morph .m-moon,.ipsb-morph .m-sun{transform-origin:12px 12px;transition:transform .7s cubic-bezier(.34,1.45,.5,1),opacity .35s ease}
.ipsb-morph .m-sun{opacity:0;transform:rotate(-100deg) scale(.35)}
.ipsb-morph .m-moon{opacity:1;transform:none}
.ipsb-morph .m-star{transition:transform .5s ease .15s,opacity .3s ease}
html.theme-dark .ipsb-morph .m-sun{opacity:1;transform:none}
html.theme-dark .ipsb-morph .m-moon{opacity:0;transform:rotate(70deg) scale(.35)}
html body .theme-toggle-btn:hover .ipsb-morph{transform:rotate(-12deg) scale(1.06)}
html body .theme-toggle-btn .ipsb-morph{transition:transform .35s cubic-bezier(.34,1.56,.64,1)}
html body .theme-toggle-btn:active .ipsb-morph{transform:scale(.82)}
html.theme-dark body .theme-toggle-btn{color:#e7b969!important}
html.theme-dark body .theme-toggle-btn:hover{color:#f6cf86!important}
/* 圆形扩散：浏览器默认的淡入淡出让位给自定义的裁剪动画 */
html.ipsb-theme-vt::view-transition-old(root),
html.ipsb-theme-vt::view-transition-new(root){animation:none!important;mix-blend-mode:normal}
html.ipsb-theme-vt::view-transition-old(root){z-index:1}
html.ipsb-theme-vt::view-transition-new(root){z-index:2}

/* ============ 无障碍按钮图标 ============ */
html body .accessibility-toggle .a11y-icon{width:21px;height:21px;transition:transform .45s cubic-bezier(.34,1.56,.64,1)}
html body .accessibility-toggle:hover .a11y-icon{transform:scale(1.1) rotate(8deg)}
html body .accessibility-toggle:active .a11y-icon{transform:scale(.84)}
.a11y-icon .a11y-ring{fill:currentColor;fill-opacity:.07}

/* ============ 无障碍面板 ============ */
.accessibility-panel{width:min(432px,calc(100% - 28px))!important;max-height:min(720px,calc(100svh - 32px))!important;padding:0!important;overflow:hidden!important;display:none;flex-direction:column}
.accessibility-panel[open]{display:flex}
.accessibility-panel .a11y-head{display:flex;align-items:center;gap:14px;padding:22px 22px 16px;flex:0 0 auto}
.a11y-badge{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;color:var(--accent-blue);background:var(--accent-blue-soft);flex:0 0 44px}
.a11y-title{min-width:0;flex:1}
.a11y-title h2{font-size:18px!important;line-height:1.3;margin:0;color:var(--text-pure)}
.a11y-title p{margin:3px 0 0;font-size:12.5px;line-height:1.5;color:var(--text-muted)}
.a11y-close{display:grid;place-items:center;width:36px;height:36px;padding:0;border:0;border-radius:11px;background:transparent;color:var(--text-muted);cursor:pointer;transition:background .2s,color .2s,transform .25s cubic-bezier(.34,1.56,.64,1)}
.a11y-close:hover{background:var(--bg-card-subtle);color:var(--text-pure);transform:rotate(90deg)}
.a11y-body{flex:1 1 auto;min-height:0;overflow:auto;padding:0 22px 6px;overscroll-behavior:contain}
.a11y-group{padding:14px 0 6px}
.a11y-group+.a11y-group{border-top:1px solid var(--line-light)}
.a11y-group h3{margin:0 0 8px;font-size:11.5px;font-weight:600;letter-spacing:.12em;color:var(--text-muted)}
/* 外观分段选择器：滑块跟随选中项滑动 */
.a11y-seg{--seg-i:0;position:relative;display:grid;grid-template-columns:repeat(3,1fr);padding:4px;border-radius:14px;background:var(--bg-card-subtle);border:1px solid var(--line-light)}
.a11y-seg-pill{position:absolute;top:4px;bottom:4px;left:4px;width:calc((100% - 8px)/3);border-radius:10px;background:var(--bg-card);box-shadow:0 1px 2px rgba(20,30,60,.12),0 4px 12px rgba(20,30,60,.08);transform:translateX(calc(var(--seg-i)*100%));transition:transform .45s cubic-bezier(.3,1.3,.5,1)}
.a11y-seg button{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;height:36px;padding:0 6px;border:0;border-radius:10px;background:transparent;color:var(--text-muted);font:500 13.5px/1 var(--font-text,inherit);cursor:pointer;transition:color .25s}
.a11y-seg button[aria-checked="true"]{color:var(--accent-blue);font-weight:600}
.a11y-seg button:hover{color:var(--text-pure)}
.a11y-seg button[aria-checked="true"]:hover{color:var(--accent-blue)}
/* 开关行 */
.a11y-row{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:58px;padding:9px 10px;margin:0 -10px;border-radius:12px;cursor:pointer;transition:background .2s}
.a11y-row:hover{background:var(--bg-card-subtle)}
.a11y-text{display:flex;flex-direction:column;gap:2px;min-width:0}
.a11y-text b{font-size:15px;font-weight:600;color:var(--text-pure);line-height:1.35}
.a11y-text small{font-size:12.5px;color:var(--text-muted);line-height:1.45}
.a11y-row input[type=checkbox]{appearance:none;-webkit-appearance:none;position:relative;flex:0 0 46px;width:46px;height:28px;margin:0;border-radius:999px;background:var(--line-light);border:0;cursor:pointer;transition:background .3s ease,box-shadow .3s ease;box-shadow:inset 0 0 0 1px rgba(20,30,60,.08)}
.a11y-row input[type=checkbox]::after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.28);transition:transform .4s cubic-bezier(.34,1.56,.64,1),width .2s ease}
.a11y-row input[type=checkbox]:active::after{width:27px}
.a11y-row input[type=checkbox]:checked{background:var(--accent-blue);box-shadow:none}
.a11y-row input[type=checkbox]:checked::after{transform:translateX(18px)}
.a11y-row input[type=checkbox]:checked:active::after{transform:translateX(13px)}
.a11y-row input[type=checkbox]:focus-visible{outline:2px solid var(--accent-blue);outline-offset:3px}
.a11y-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px 22px 20px;border-top:1px solid var(--line-light);flex:0 0 auto;background:var(--bg-card)}
.a11y-hint{margin:0;font-size:12px;color:var(--text-muted)}
.a11y-hint kbd{display:inline-block;min-width:20px;padding:1px 6px;margin:0 1px;border:1px solid var(--line-light);border-bottom-width:2px;border-radius:6px;background:var(--bg-card-subtle);font:500 11.5px/1.5 var(--font-text,inherit);color:var(--text-regular,var(--text-pure));text-align:center}
.accessibility-panel #accessibility-reset{padding:9px 16px;font-size:13.5px;font-weight:500;border:1px solid var(--line-light);color:var(--text-pure);cursor:pointer;transition:background .2s,border-color .2s,transform .2s}
.accessibility-panel #accessibility-reset:hover{border-color:var(--accent-blue);color:var(--accent-blue)}
.accessibility-panel #accessibility-reset:active{transform:scale(.96)}
/* 打开/关闭：轻微缩放 + 上浮，背景虚化渐入 */
.accessibility-panel[open]{animation:ipsb-a11y-in .42s cubic-bezier(.2,.9,.25,1) both}
.accessibility-panel[open].is-closing{animation:ipsb-a11y-out .26s ease-in both}
.accessibility-panel[open]::backdrop{animation:ipsb-a11y-shade-in .4s ease-out both}
.accessibility-panel[open].is-closing::backdrop{animation:ipsb-a11y-shade-out .26s ease-in both}
.accessibility-panel::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}
@keyframes ipsb-a11y-in{from{opacity:0;transform:translateY(14px) scale(.96)}to{opacity:1;transform:none}}
@keyframes ipsb-a11y-out{from{opacity:1;transform:none}to{opacity:0;transform:translateY(8px) scale(.97)}}
@keyframes ipsb-a11y-shade-in{from{background-color:transparent;-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0)}to{background-color:#14213655;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}}
@keyframes ipsb-a11y-shade-out{from{background-color:#14213655;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}to{background-color:transparent;-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0)}}
html.accessibility-motion .accessibility-panel,html.accessibility-motion .accessibility-panel::backdrop,
html.accessibility-motion .a11y-seg-pill,html.accessibility-motion .a11y-row input::after,html.accessibility-motion .ipsb-morph *{animation:none!important;transition:none!important}
@media(prefers-reduced-motion:reduce){.accessibility-panel,.accessibility-panel::backdrop{animation:none!important}.a11y-seg-pill,.a11y-row input::after,.ipsb-morph *{transition:none!important}}
@media(max-width:520px){.accessibility-panel .a11y-head{padding:18px 16px 12px}.a11y-body{padding:0 16px 4px}.a11y-foot{padding:12px 16px 16px}.a11y-hint{display:none}.a11y-foot #accessibility-reset{width:100%}}

/* ============ 新增的无障碍选项 ============ */
html.accessibility-spacing body{letter-spacing:.035em!important;word-spacing:.12em!important}
html.accessibility-spacing :is(p,li,dd,blockquote,.faq-answer,.article-body){line-height:1.9!important}
html.accessibility-links a:not(.brand):not(.view-switch-btn){text-decoration:underline!important;text-decoration-thickness:1.5px!important;text-underline-offset:3px!important}
html.accessibility-focus :focus-visible{outline:3px solid #f59e0b!important;outline-offset:3px!important;box-shadow:0 0 0 7px rgba(245,158,11,.25)!important}
html.accessibility-cursor,html.accessibility-cursor *{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='36' viewBox='0 0 24 24'%3E%3Cpath d='M4 2.5v17l4.6-4.3 3 6.8 3-1.3-3-6.7H18z' fill='%23111' stroke='%23fff' stroke-width='1.6' stroke-linejoin='round'/%3E%3C/svg%3E") 5 3,auto!important}
html.accessibility-cursor :is(a,button,label,summary,select,[role=button],[role=radio],input[type=checkbox],.view-switch-btn),
html.accessibility-cursor :is(a,button,label,summary,select,[role=button],[role=radio],input[type=checkbox]) *{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='38' height='38' viewBox='0 0 24 24'%3E%3Cpath d='M9 11V4.8a1.6 1.6 0 0 1 3.2 0V10l4.4.9c1.5.3 2.4 1.6 2.4 3.1v2.5c0 2.2-1.6 4.1-3.8 4.4l-4.6.5c-1.3.1-2.6-.5-3.3-1.7L4.6 15c-.5-.9.3-2 1.3-1.7L9 14.2z' fill='%23fff' stroke='%23111' stroke-width='1.5' stroke-linejoin='round'/%3E%3C/svg%3E") 12 4,pointer!important}

/* ============ 色觉友好：红绿 → 蓝橙(Okabe-Ito 色盲友好色系) + 形状符号 ============ */
html.accessibility-cvd{--cvd-blue:#0b64a8;--cvd-sky:#56b4e9;--cvd-yellow:#f0e442;--cvd-orange:#e69f00;--cvd-red:#d55e00}
/* IP 页：风控胶囊 */
html.accessibility-cvd body #view-ip .risk-chip.t1[class]{background:#0b64a8!important;color:#fff!important;border-color:rgba(0,40,80,.35)!important}
html.accessibility-cvd body #view-ip .risk-chip.t2[class]{background:#56b4e9!important;color:#06283d!important;border-color:rgba(0,70,110,.3)!important}
html.accessibility-cvd body #view-ip .risk-chip.t3[class]{background:#f0e442!important;color:#4a4300!important;border-color:rgba(120,110,0,.35)!important}
html.accessibility-cvd body #view-ip .risk-chip.t4[class]{background:#e69f00!important;color:#3a2600!important;border-color:rgba(120,70,0,.35)!important}
html.accessibility-cvd body #view-ip .risk-chip.t5[class]{background:#d55e00!important;color:#fff!important;border-color:rgba(90,30,0,.4)!important}
/* 色点 */
html.accessibility-cvd body #view-ip .risk-dot.t1{background:#0b64a8!important}
html.accessibility-cvd body #view-ip .risk-dot.t2{background:#56b4e9!important}
html.accessibility-cvd body #view-ip .risk-dot.t3{background:#f0e442!important}
html.accessibility-cvd body #view-ip .risk-dot.t4{background:#e69f00!important}
html.accessibility-cvd body #view-ip .risk-dot.t5{background:#d55e00!important}
/* 标签：好 / 差 / 共享人数 / 运营商类型 */
html.accessibility-cvd body #view-ip .connection-tag.good[class],
html.accessibility-cvd body #view-ip .provider-kind.isp[class],
html.accessibility-cvd body #view-ip .usage-badge.low[class],
html.accessibility-cvd body #view-ip .usage-badge.excellent[class],
html.accessibility-cvd body .score-pill-badge.isp[class]{background:#0b64a8!important;color:#fff!important;border-color:rgba(0,40,80,.35)!important}
html.accessibility-cvd body #view-ip .usage-badge.medium[class],
html.accessibility-cvd body .score-pill-badge.warn[class]{background:#f0e442!important;color:#4a4300!important;border-color:rgba(120,110,0,.35)!important}
html.accessibility-cvd body #view-ip .connection-tag.bad[class],
html.accessibility-cvd body #view-ip .usage-badge.high[class],
html.accessibility-cvd body .score-pill-badge.severe[class]{background:#d55e00!important;color:#fff!important;border-color:rgba(90,30,0,.4)!important}
/* 形状符号：不靠颜色也能分辨好坏 */
html.accessibility-cvd body #view-ip .risk-chip.t1::before,html.accessibility-cvd body #view-ip .risk-chip.t2::before{content:"✓";font-weight:700}
html.accessibility-cvd body #view-ip .risk-chip.t3::before{content:"!";font-weight:800}
html.accessibility-cvd body #view-ip .risk-chip.t4::before,html.accessibility-cvd body #view-ip .risk-chip.t5::before{content:"✕";font-weight:700}
html.accessibility-cvd body #view-ip .connection-tag.good::before{content:"✓ ";font-weight:700}
html.accessibility-cvd body #view-ip .connection-tag.bad::before{content:"✕ ";font-weight:700}
/* 指纹页：通过 / 注意 / 异常 */
html.accessibility-cvd #view-fingerprint .fpx,html.accessibility-cvd.theme-dark #view-fingerprint .fpx{--fx-good:rgba(11,100,168,.96);--fx-warn:rgba(222,150,0,.98);--fx-bad:rgba(213,94,0,.96)}
html.accessibility-cvd #view-fingerprint .fpx-status.good,html.accessibility-cvd #view-fingerprint .fpx-tag.active,html.accessibility-cvd #view-fingerprint .fpx-verdict.tone-green{color:#0b64a8}
html.accessibility-cvd #view-fingerprint .fpx-status.bad,html.accessibility-cvd #view-fingerprint .fpx-verdict.tone-red{color:#c24f00}
html.accessibility-cvd #view-fingerprint .fpx-hero.tone-bad{--fx-tone:#c24f00}
html.accessibility-cvd #view-fingerprint .fpx-hero.tone-warn{--fx-tone:#d99100}
html.accessibility-cvd.theme-dark #view-fingerprint .fpx-status.good,html.accessibility-cvd.theme-dark #view-fingerprint .fpx-verdict.tone-green{color:#6db8ee}
html.accessibility-cvd.theme-dark #view-fingerprint .fpx-status.bad,html.accessibility-cvd.theme-dark #view-fingerprint .fpx-verdict.tone-red{color:#ff9a4d}
html.accessibility-cvd body #view-fingerprint .consistency-status.ok[class],
html.accessibility-cvd body #view-fingerprint #consistency-summary.active[class]{background:#0b64a8!important;color:#fff!important;border-color:rgba(0,40,80,.35)!important}
html.accessibility-cvd body #view-fingerprint .consistency-status.warn[class],
html.accessibility-cvd body #view-fingerprint #consistency-summary.warn[class]{background:#f0e442!important;color:#4a4300!important;border-color:rgba(120,110,0,.35)!important}
/* 带 ID 的 IP 类型标签(样式表里有按 ID 写死的绿色，这里同样用 ID 压回去) */
html.accessibility-cvd body #view-ip #network-type-badge.good[class],html.accessibility-cvd body #view-ip #v6-network-type.good[class],
html.accessibility-cvd body #view-ip #ip-type-badge.good[class],html.accessibility-cvd body #view-ip #v6-ip-type.good[class]{background:#0b64a8!important;color:#fff!important;border-color:rgba(0,40,80,.35)!important}
html.accessibility-cvd body #view-ip #network-type-badge.bad[class],html.accessibility-cvd body #view-ip #v6-network-type.bad[class],
html.accessibility-cvd body #view-ip #ip-type-badge.bad[class],html.accessibility-cvd body #view-ip #v6-ip-type.bad[class]{background:#d55e00!important;color:#fff!important;border-color:rgba(90,30,0,.4)!important}

/* 关于本站/常见问题：分隔线和右侧目录竖线比普通边框略深一点 */
:is(#view-about,#view-faq,#view-corrections,#view-changelog,#view-contact) .ab-article hr{border-top-color:color-mix(in srgb,var(--line-light) 91%,var(--text-pure) 9%)}
:is(#view-about,#view-faq,#view-corrections,#view-changelog,#view-contact) .ab-toc{border-left-color:color-mix(in srgb,var(--line-light) 91%,var(--text-pure) 9%)}

/* ---- 资料说明各页补充 ---- */
/* 翻页卡片：上一页在左、下一页在右；只有下一页时靠右，只有上一页时靠左 */
:is(#view-about,#view-faq,#view-corrections,#view-changelog,#view-contact) .ab-pager:has(.ab-pg-prev):has(.ab-pg-next){justify-content:space-between;gap:16px}
:is(#view-about,#view-faq,#view-corrections,#view-changelog,#view-contact) .ab-pg-next{align-items:flex-end;text-align:right}
@media (max-width:560px){:is(#view-about,#view-faq,#view-corrections,#view-changelog,#view-contact) .ab-pager:has(.ab-pg-prev):has(.ab-pg-next){flex-direction:column}:is(#view-about,#view-faq,#view-corrections,#view-changelog,#view-contact) .ab-pg{min-width:0;width:100%}}
/* 更新日志日期很多时，右侧目录自己滚动，不超出屏幕 */
:is(#view-about,#view-faq,#view-corrections,#view-changelog,#view-contact) .ab-toc{max-height:calc(100vh - 130px);overflow-y:auto;scrollbar-width:thin}
#view-corrections .co-empty{color:var(--text-muted)}
#view-changelog .ab-article h2{font-variant-numeric:tabular-nums}
a.mobile-nav-link{display:block;box-sizing:border-box;text-decoration:none}

/* 联系方式：邮箱(用 # 代替 @ 防爬虫) + 复制按钮 */
#view-contact .ct-mail{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px}
#view-contact .ct-mail-text{font-size:19px;font-weight:600;color:var(--text-pure);user-select:all;-webkit-user-select:all;letter-spacing:.01em}
#view-contact .ct-mail-note{font-size:14px;color:var(--text-muted)}
.copy-icon-btn{position:relative;width:34px;height:34px;flex:0 0 auto;display:inline-grid;place-items:center;padding:0;border:1px solid var(--line-light);border-radius:10px;background:var(--bg-card);color:var(--text-muted);cursor:pointer;transition:color .2s,border-color .2s,background .2s,transform .2s}
.copy-icon-btn:hover{color:var(--accent-blue);border-color:var(--accent-blue);background:var(--accent-blue-soft)}
.copy-icon-btn:active{transform:scale(.92)}
.copy-icon-btn:focus-visible{outline:2px solid var(--accent-blue);outline-offset:2px}
.copy-icon-btn svg{grid-area:1/1;transition:opacity .2s,transform .3s cubic-bezier(.34,1.56,.64,1)}
.copy-icon-btn .ci-ok{opacity:0;transform:scale(.4)}
.copy-icon-btn.is-done{color:#1f9d62;border-color:#1f9d62;background:rgba(31,157,98,.1)}
.copy-icon-btn.is-done .ci-copy{opacity:0;transform:scale(.4)}
.copy-icon-btn.is-done .ci-ok{opacity:1;transform:none}
.copy-icon-btn.is-fail{color:#c2410c;border-color:#c2410c}
html.accessibility-cvd .copy-icon-btn.is-done{color:#0b64a8;border-color:#0b64a8;background:rgba(11,100,168,.1)}
@media(prefers-reduced-motion:reduce){.copy-icon-btn,.copy-icon-btn svg{transition:none}}
html.accessibility-motion .copy-icon-btn,html.accessibility-motion .copy-icon-btn svg{transition:none}

/* 隐私评分数字：字号不变，换成科技感等宽数字体，字距拉宽 */
#view-fingerprint .fpx-score{gap:5px}
#view-fingerprint .fpx-score-num{
  min-width:3ch;text-align:right;font-family:var(--font-mono);
  font-weight:700;letter-spacing:.12em;margin-right:-.12em;
}
#view-fingerprint .fpx-score-unit{font-family:var(--font-mono);font-weight:500;letter-spacing:.08em}

/* 出口路由：沿用"环境一致性"的两行样式——上行 本机 → 网站，下行实色徽标（直连=绿 / 走代理=蓝 / 打不开=灰） */
#view-fingerprint .fpx-route-to::before{display:none}
#view-fingerprint .fpx-route-to.fpx-check-value{width:100%}
#view-fingerprint .fpx-route.route-domestic .rt-pill{background:var(--fx-good)!important;color:#fff!important}
#view-fingerprint .fpx-route.route-foreign .rt-pill{background:var(--accent-blue)!important;color:#fff!important}
#view-fingerprint .fpx-route.route-blocked .rt-pill{background:rgba(120,132,150,.9)!important;color:#fff!important}
#view-fingerprint .fpx-route-to .rt-pill{min-width:84px}

/* 出口路由：只显示 IP——柔色胶囊 + 状态圆点（国内=绿 / 海外=蓝 / 无=灰），圆点带一圈缓慢呼吸光晕 */
#view-fingerprint .rt-ip{
  --rt:var(--text-faint);
  display:inline-flex;align-items:center;gap:10px;
  padding:6px 16px 6px 13px;border-radius:999px;
  font-family:var(--font-mono);font-size:15px;font-weight:600;letter-spacing:.03em;font-variant-numeric:tabular-nums;
  color:var(--text-pure);
  background:color-mix(in srgb,var(--rt) 9%,transparent);
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--rt) 28%,transparent);
}
#view-fingerprint .rt-ip::before{
  content:"";flex:none;width:8px;height:8px;border-radius:50%;background:var(--rt);
  box-shadow:0 0 0 0 color-mix(in srgb,var(--rt) 45%,transparent);
  animation:rt-breathe 2.6s ease-out infinite;
}
#view-fingerprint .fpx-route.route-domestic .rt-ip{--rt:var(--fx-good)}
#view-fingerprint .fpx-route.route-foreign .rt-ip{--rt:var(--accent-blue)}
#view-fingerprint .fpx-route.route-blocked .rt-ip{color:var(--text-muted);font-weight:500}
#view-fingerprint .fpx-route.route-blocked .rt-ip::before{animation:none}
@keyframes rt-breathe{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--rt) 45%,transparent)}70%,100%{box-shadow:0 0 0 7px transparent}}
@media(prefers-reduced-motion:reduce){#view-fingerprint .rt-ip::before{animation:none}}
html.accessibility-motion #view-fingerprint .rt-ip::before{animation:none}

/* 电脑端顶栏放大一档，和下方大气的内容区匹配：栏高 64→74，导航字 14→16.5，Logo 21→26，右侧按钮 34→40；Mac 有 1.07 放大，数值相应除以 1.07 */
@media (min-width:1100px){
  html body[data-view] .view-toolbar-inner{height:74px!important}
  html body[data-view] .view-switch{height:74px!important;gap:32px!important}
  html body[data-view] .view-switch-btn{font-size:16.5px!important;font-weight:550!important}
  html body[data-view] .brand{font-size:26px!important}
  html body[data-view] .share-site-btn{width:38px!important;height:38px!important}
  html body[data-view] .share-site-btn .share-icon{width:20px!important;height:20px!important}
  html body[data-view] .toolbar-actions{gap:6px!important}
  html body[data-view] .theme-toggle-btn,
  html body[data-view] .accessibility-toggle{width:42px!important;height:42px!important;flex:0 0 42px!important;border-radius:11px!important}
  html body[data-view] .theme-toggle-btn svg,
  html body[data-view] .accessibility-toggle svg{width:22px!important;height:22px!important}
  html.os-mac body[data-view] .view-toolbar-inner{height:69px!important}
  html.os-mac body[data-view] .view-switch{height:69px!important;gap:30px!important}
  html.os-mac body[data-view] .view-switch-btn{font-size:15.4px!important}
  html.os-mac body[data-view] .brand{font-size:24.3px!important}
  html.os-mac body[data-view] .theme-toggle-btn,
  html.os-mac body[data-view] .accessibility-toggle{width:39px!important;height:39px!important;flex:0 0 39px!important}
  html.os-mac body[data-view] .theme-toggle-btn svg,
  html.os-mac body[data-view] .accessibility-toggle svg{width:20.5px!important;height:20.5px!important}
}

/* 前缀标记 BUS（企业 / 商业）：蓝色底，和 ISP 绿、IDC 灰并列 */
html body .provider-kind.bus,
html body #view-ip .provider-kind.bus,
html.theme-dark body .provider-kind.bus{background:#3461d6!important;color:#fff!important;border:0!important}
html.theme-dark body .provider-kind.bus{background:#4673e0!important}


/* ---- 定位权限行：沿用评分行样式，不计分；徽标用蓝色区别于 一致/扣分 ---- */
#view-fingerprint .fpx-pill.info{background:var(--accent-blue)}
html.theme-dark #view-fingerprint .fpx-pill.info{background:#4f78d8}
#view-fingerprint .fpx-check .fpx-pill.info,#view-fingerprint .fpx-pill.info:not(.ok):not(.warn):not(.bad):not(.unknown){background:var(--accent-blue);color:#fff}
html.theme-dark #view-fingerprint .fpx-check .fpx-pill.info{background:#4f78d8}