/* ==========================================================================
   曝曝堂 · 子页面共享样式层 v1.0
   与 index.html 主站共用同一套设计令牌（克莱因蓝 #1E40AF）
   只加载本文件 + site.js 即可产出与首页一致的页面外壳
   ========================================================================== */

:root{
  color-scheme:light;
  --bg:#FFFFFF;
  --bg-soft:#FAFAFA;
  --bg-tint:#EFF6FF;   /* 与主页一致：通知横幅用蓝色 tint（原 #FFF7ED 橙色已弃，与克莱因蓝主色冲突） */
  --fg:#0A0A0A;
  --fg-2:#18181B;
  --fg-3:#6B7280;
  --fg-4:#707780;
  --border:#E5E5E5;
  --border-soft:#F2F4F5;
  --brand:#1E40AF;
  --brand-text:#1E3A8A;
  --brand-hover:#2563EB;
  --brand-soft:#EFF6FF;
  --brand-tint:#DBEAFE;
  --on-brand:#FFFFFF;
  --on-brand-soft:#1E3A8A;
  --rank-bg:#1E40AF;
  --rank-fg:#FFFFFF;
  --link:#1E40AF;
  --link-hover:#1E3A8A;
  --gold:#B45309;
  --danger:#B91C1C;
  --danger-soft:#FEF2F2;
  --ok:#047857;
  --ok-soft:#ECFDF5;
  --warn-soft:#FFFBEB;
  --sh-sm:0 1px 2px rgba(0,0,0,0.04);
  --sh-md:0 2px 8px rgba(0,0,0,0.06);
  --sh-lg:0 4px 16px rgba(0,0,0,0.08);
  --sh-btn:0 1px 2px rgba(30,64,175,0.20);
  --sh-btn-hover:0 4px 12px rgba(30,64,175,0.30);
  --r-sm:6px;
  --r-md:8px;
  --r-lg:12px;
  --r-xl:16px;
  --r-pill:999px;
  --t-xs:12px;
  --t-sm:13px;
  --t-base:14px;
  --t-md:15px;
  --t-lg:18px;
  --t-xl:24px;
  --t-hero:48px;
  --sp-1:4px;
  --sp-2:8px;
  --sp-3:12px;
  --sp-4:16px;
  --sp-5:20px;
  --sp-6:24px;
  --sp-8:32px;
  --sp-10:40px;
  --sp-12:48px;
  --sp-16:64px;
  --maxw:1100px;
  --ease:cubic-bezier(0.2, 0.8, 0.2, 1);
  --t-fast:140ms;
  --t-base-d:200ms;
  --t-slow:320ms;
}

[data-theme="dark"]{
  color-scheme:dark;   /* 修正暗色下原生 select / 滚动条的默认配色 */
  --bg:#0A0A0A;
  --bg-soft:#111111;
  --bg-tint:#0F172A;
  --fg:#FAFAFA;
  --fg-2:#E5E5E5;
  --fg-3:#9CA3AF;
  --fg-4:#A1A1AA;
  --border:#262626;
  --border-soft:#1F1F1F;
  --brand:#3B82F6;
  --brand-text:#93C5FD;
  --brand-hover:#2563EB;  /* 原为 #FDBA74 橙色，与克莱因蓝主色漂移；对齐主页：悬停取深蓝阶（按钮文字为白，变浅会掉对比度） */
  --brand-soft:#0F172A;
  --brand-tint:#1E293B;
  --on-brand:#FFFFFF;
  --gold:#FBBF24;
  --danger:#F87171;
  --danger-soft:#1F1416;
  --ok:#34D399;
  --ok-soft:#0F1F1A;
  --warn-soft:#1F1A0F;
  --sh-sm:0 1px 2px rgba(0,0,0,0.4);
  --sh-md:0 2px 8px rgba(0,0,0,0.5);
  --sh-lg:0 4px 16px rgba(0,0,0,0.6);
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
html,body{background:var(--bg);color:var(--fg)}
body{
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI','PingFang SC','Hiragino Sans GB','Microsoft YaHei',sans-serif;
  font-size:var(--t-base);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:var(--r-sm)}
.mono{font-family:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;font-variant-numeric:tabular-nums}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* 跳到主要内容：默认离屏，键盘聚焦（Tab）时滑入；鼠标点击不触发，不打扰普通用户。
   以前用 left:-9999px 离屏法，聚焦后仍在屏幕外（WEB-H2）。统一收口到 .skip-link。 */
.skip-link{position:absolute;left:50%;top:0;transform:translate(-50%,-250%);
  background:var(--brand);color:#fff;padding:var(--sp-2) var(--sp-4);z-index:200;
  border-radius:0 0 var(--r-md) var(--r-md);font-weight:600;
  transition:transform var(--t-fast) var(--ease)}
.skip-link:focus-visible{transform:translate(-50%,0)}

a{color:var(--link);text-decoration:none;transition:color var(--t-fast) var(--ease)}
a:hover{color:var(--link-hover);text-decoration:underline}
h1,h2,h3,h4{line-height:1.3;font-weight:700;letter-spacing:-0.01em;text-wrap:balance}
code{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:12.5px;background:var(--bg-soft);border:1px solid var(--border-soft);padding:1px 5px;border-radius:var(--r-sm);color:var(--brand-text)}

/* ============ 页面外壳 ============ */
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--sp-6)}

.site-head{
  position:sticky;top:0;z-index:50;
  background:color-mix(in srgb,var(--bg) 88%,transparent);
  backdrop-filter:saturate(180%) blur(12px);
  -webkit-backdrop-filter:saturate(180%) blur(12px);
  border-bottom:1px solid var(--border-soft);
}
.site-head .wrap{display:flex;align-items:center;gap:var(--sp-6);height:60px}
.brand{display:inline-flex;align-items:center;gap:var(--sp-2);font-weight:800;font-size:var(--t-md);color:var(--fg);letter-spacing:-0.02em;flex-shrink:0}
.brand:hover{text-decoration:none;color:var(--fg)}
.brand .dot{width:8px;height:8px;border-radius:50%;background:var(--brand);display:inline-block}
.brand .cn-badge{font-size:10px;font-weight:700;color:var(--brand-text);background:var(--brand-soft);border:1px solid var(--brand-tint);border-radius:var(--r-sm);padding:0 4px;line-height:16px}
.head-nav{display:flex;align-items:center;gap:var(--sp-5);margin-left:auto;flex-wrap:wrap}
.head-nav a{font-size:var(--t-sm);font-weight:500;color:var(--fg-3)}
.head-nav a:hover,.head-nav a[aria-current="page"]{color:var(--fg);text-decoration:none}
.head-nav a[aria-current="page"]{font-weight:700}
.icon-btn{
  display:inline-flex;align-items:center;justify-content:center;
  width:34px;height:34px;border-radius:var(--r-md);
  background:var(--bg-soft);border:1px solid var(--border);color:var(--fg-2);
  cursor:pointer;touch-action:manipulation;
  transition:background var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease);
}
.icon-btn:hover{background:var(--brand-soft);border-color:var(--brand-tint);color:var(--brand)}
[data-theme="dark"] .icon-btn .moon{display:none}
[data-theme="light"] .icon-btn .sun{display:none}
.lang-toggle{display:inline-flex;align-items:center;gap:2px;padding:2px;border-radius:var(--r-md);background:var(--bg-soft);border:1px solid var(--border)}
.lang-btn{font-family:inherit;font-size:var(--t-xs);font-weight:600;line-height:1;color:var(--fg-2);
  background:transparent;border:0;padding:6px 8px;border-radius:calc(var(--r-md) - 2px);cursor:pointer;touch-action:manipulation}
.lang-btn[aria-pressed="true"]{background:var(--brand);color:var(--on-brand)}
.lang-btn:focus-visible{outline:2px solid var(--bg);outline-offset:1px}
/* 语言正文双块：按 html[lang] 显示其一（默认 zh-CN，en 时隐藏中文块）。 */
html[lang="en"] .lang-zh{display:none}
html[lang="zh-CN"] .lang-en{display:none}
/* 地区徽章只在中国版显示（出海版隐藏）。 */
html[lang="en"] .cn-badge{display:none}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);
  height:38px;padding:0 var(--sp-5);border-radius:var(--r-md);
  font-size:var(--t-sm);font-weight:600;border:1px solid transparent;
  cursor:pointer;touch-action:manipulation;font-family:inherit;
  transition:background var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease),transform var(--t-fast) var(--ease),color var(--t-fast) var(--ease);
}
.btn-primary{background:var(--brand);color:var(--on-brand);box-shadow:var(--sh-btn)}
.btn-primary:hover{background:var(--brand-hover);box-shadow:var(--sh-btn-hover);transform:translateY(-1px);text-decoration:none;color:var(--on-brand)}
.btn-ghost{background:var(--bg);border-color:var(--border);color:var(--fg-2)}
.btn-ghost:hover{background:var(--bg-soft);border-color:var(--fg-4);text-decoration:none;color:var(--fg)}
.btn:active{transform:scale(0.97)}

/* ============ 页头 Hero ============ */
.page-hero{padding:var(--sp-12) 0 var(--sp-8);border-bottom:1px solid var(--border-soft)}
.page-hero .eyebrow{
  display:inline-block;font-size:var(--t-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--brand-text);background:var(--brand-soft);border:1px solid var(--brand-tint);
  padding:3px 10px;border-radius:var(--r-pill);margin-bottom:var(--sp-4);
}
/* 字号上限 40px → 34px。
   原来的 clamp(28px,4vw,40px) 在宽屏下会一路顶到 40px —— 子页标题比首页 Hero
   主标题（34px）还大，隐私政策/用户协议这类长文页面出现「内页比首页更响」的
   比例倒挂。改用 3vw 斜率：1024px 处约 31px、1133px 起封顶 34px，与首页 Hero
   对齐；窄屏两档取值不变（仍是 28px）。上限由 validate_ui.py 第 9 节钉住。 */
.page-hero h1{font-size:clamp(28px,3vw,34px);margin-bottom:var(--sp-3)}
.page-hero .lede{font-size:var(--t-md);color:var(--fg-3);max-width:640px}
.page-hero .meta{margin-top:var(--sp-4);font-size:var(--t-xs);color:var(--fg-4)}
.breadcrumb{font-size:var(--t-xs);color:var(--fg-4);margin-bottom:var(--sp-4)}
.breadcrumb a{color:var(--fg-3)}
.breadcrumb .sep{margin:0 6px;color:var(--border)}

/* ============ 正文排版 ============ */
.doc{padding:var(--sp-10) 0 var(--sp-16)}
.doc-layout{display:grid;grid-template-columns:200px 1fr;gap:var(--sp-12);align-items:start}
.doc h2{font-size:var(--t-xl);margin:var(--sp-10) 0 var(--sp-4);scroll-margin-top:80px}
.doc h2:first-child{margin-top:0}
.doc h3{font-size:var(--t-lg);margin:var(--sp-6) 0 var(--sp-3);scroll-margin-top:80px}
.doc h4{font-size:var(--t-md);margin:var(--sp-5) 0 var(--sp-2)}
.doc p{margin-bottom:var(--sp-4);color:var(--fg-2)}
.doc ul,.doc ol{margin:0 0 var(--sp-4) var(--sp-5);color:var(--fg-2)}
.doc li{margin-bottom:var(--sp-2)}
.doc strong{color:var(--fg);font-weight:600}

/* 侧边目录 */
.doc-toc{position:sticky;top:80px;font-size:var(--t-sm)}
.doc-toc h5{font-size:var(--t-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--fg-4);margin-bottom:var(--sp-3)}
.doc-toc ol{list-style:none;margin:0;padding:0}
.doc-toc li{margin:0}
.doc-toc a{display:block;padding:5px 10px;border-left:2px solid var(--border-soft);color:var(--fg-3);font-size:var(--t-sm)}
.doc-toc a:hover{color:var(--brand-text);border-left-color:var(--brand);background:var(--brand-soft);text-decoration:none}
.doc-toc a.active{color:var(--brand-text);border-left-color:var(--brand);font-weight:600;background:var(--brand-soft)}

/* ============ 卡片 / 网格 ============ */
.grid{display:grid;gap:var(--sp-5)}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}
.card{
  background:var(--bg);border:1px solid var(--border);border-radius:var(--r-xl);
  padding:var(--sp-6);
  transition:box-shadow var(--t-base-d) var(--ease),border-color var(--t-base-d) var(--ease);
}
.card:hover{box-shadow:var(--sh-md);border-color:var(--brand-tint)}
.card h3{font-size:var(--t-md);margin-bottom:var(--sp-2)}
.card p{font-size:var(--t-sm);color:var(--fg-3);margin:0}
.card .card-ico{width:34px;height:34px;border-radius:var(--r-md);background:var(--brand-soft);color:var(--brand-text);display:inline-flex;align-items:center;justify-content:center;margin-bottom:var(--sp-3)}

/* 价格卡 */
.plan{position:relative;display:flex;flex-direction:column}
.plan.featured{border-color:var(--brand);box-shadow:var(--sh-md)}
.plan .tag{
  position:absolute;top:-10px;left:var(--sp-6);
  background:var(--brand);color:var(--on-brand);font-size:10px;font-weight:700;
  padding:2px 8px;border-radius:var(--r-pill);letter-spacing:.04em;
}
.plan .name{font-size:var(--t-sm);font-weight:700;color:var(--fg-3);text-transform:uppercase;letter-spacing:.06em}
.plan .price{font-size:36px;font-weight:800;letter-spacing:-0.03em;margin:var(--sp-2) 0 var(--sp-1);color:var(--fg);font-variant-numeric:tabular-nums}
.plan .price small{font-size:var(--t-sm);font-weight:500;color:var(--fg-3);letter-spacing:0}
.plan .desc{font-size:var(--t-sm);color:var(--fg-3);min-height:42px;margin-bottom:var(--sp-4)}
.plan ul{list-style:none;margin:0 0 var(--sp-5);padding:0;font-size:var(--t-sm);color:var(--fg-2)}
.plan li{display:flex;gap:var(--sp-2);align-items:flex-start;margin-bottom:var(--sp-2)}
.plan li svg{flex-shrink:0;margin-top:4px;color:var(--ok)}
.plan .btn{width:100%;margin-top:auto}

/* 表格 */
.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--r-lg);margin-bottom:var(--sp-6)}
table{width:100%;border-collapse:collapse;font-size:var(--t-sm)}
th,td{padding:var(--sp-3) var(--sp-4);text-align:left;border-bottom:1px solid var(--border-soft)}
th{background:var(--bg-soft);font-weight:700;color:var(--fg-2);font-size:var(--t-xs);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}
tbody tr:last-child td{border-bottom:0}
tbody tr:hover{background:var(--bg-soft)}
td.num{font-variant-numeric:tabular-nums;font-family:'JetBrains Mono',monospace}

/* ============ 提示条 ============ */
.callout{
  display:flex;gap:var(--sp-3);padding:var(--sp-4);border-radius:var(--r-lg);
  border:1px solid var(--border);background:var(--bg-soft);margin-bottom:var(--sp-5);
  font-size:var(--t-sm);color:var(--fg-2);
}
.callout svg{flex-shrink:0;margin-top:2px}
.callout.info{background:var(--brand-soft);border-color:var(--brand-tint);color:var(--brand-text)}
.callout.warn{background:var(--warn-soft);border-color:#FDE68A;color:#92400E}
.callout.danger{background:var(--danger-soft);border-color:#FECACA;color:var(--danger)}
.callout p{margin:0;color:inherit}
.callout p + p{margin-top:var(--sp-2)}
[data-theme="dark"] .callout.warn{color:#FCD34D;border-color:#78350F}
[data-theme="dark"] .callout.danger{border-color:#7F1D1D}

/* 徽章 */
.badge{display:inline-block;font-size:11px;font-weight:700;padding:2px 8px;border-radius:var(--r-pill);letter-spacing:.02em;vertical-align:middle}
.badge-blue{background:var(--brand-soft);color:var(--brand-text);border:1px solid var(--brand-tint)}
.badge-red{background:var(--danger-soft);color:var(--danger);border:1px solid #FECACA}
.badge-green{background:var(--ok-soft);color:var(--ok);border:1px solid #A7F3D0}
.badge-gray{background:var(--bg-soft);color:var(--fg-3);border:1px solid var(--border)}
[data-theme="dark"] .badge-red{border-color:#7F1D1D}
[data-theme="dark"] .badge-green{border-color:#065F46}

/* ============ FAQ 折叠 ============ */
.faq{border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;margin-bottom:var(--sp-3)}
.faq details{border-bottom:1px solid var(--border-soft)}
.faq details:last-child{border-bottom:0}
.faq summary{
  cursor:pointer;padding:var(--sp-4) var(--sp-5);font-weight:600;font-size:var(--t-md);
  list-style:none;display:flex;align-items:center;gap:var(--sp-3);color:var(--fg);
  transition:background var(--t-fast) var(--ease);
}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{background:var(--bg-soft)}
.faq summary::after{
  content:'';margin-left:auto;flex-shrink:0;width:8px;height:8px;
  border-right:2px solid var(--fg-3);border-bottom:2px solid var(--fg-3);
  transform:rotate(45deg);transition:transform var(--t-fast) var(--ease);
}
.faq details[open] summary::after{transform:rotate(-135deg)}
.faq details[open] summary{background:var(--bg-soft);border-bottom:1px solid var(--border-soft)}
.faq .answer{padding:var(--sp-4) var(--sp-5);font-size:var(--t-sm);color:var(--fg-2)}
.faq .answer > :last-child{margin-bottom:0}

/* ============ 代码块 ============ */
.code{
  background:var(--bg-soft);border:1px solid var(--border);border-radius:var(--r-lg);
  padding:var(--sp-4);overflow-x:auto;margin-bottom:var(--sp-4);position:relative;
}
.code .lang{
  position:absolute;top:var(--sp-2);right:var(--sp-3);font-size:10px;font-weight:700;
  color:var(--fg-4);text-transform:uppercase;letter-spacing:.06em;
}
.code pre{font-family:'JetBrains Mono',ui-monospace,monospace;font-size:12.5px;line-height:1.7;color:var(--fg-2);margin:0}
.code pre .k{color:var(--brand-text);font-weight:600}
.code pre .s{color:var(--ok)}
.code pre .c{color:var(--fg-4)}

/* ============ 表单 ============ */
.form-grid{display:grid;gap:var(--sp-5);grid-template-columns:repeat(2,1fr)}
.field{display:flex;flex-direction:column;gap:var(--sp-2);margin-bottom:var(--sp-5)}
.field.full{grid-column:1 / -1}
.field label{font-size:var(--t-sm);font-weight:600;color:var(--fg-2)}
.field label .req{color:var(--danger);margin-left:2px}
.field .hint{font-size:var(--t-xs);color:var(--fg-4)}
.field input,.field select,.field textarea{
  font-family:inherit;font-size:var(--t-base);color:var(--fg);
  background:var(--bg);border:1px solid var(--border);border-radius:var(--r-md);
  padding:10px var(--sp-3);width:100%;
  transition:border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease);
}
.field textarea{min-height:120px;resize:vertical;line-height:1.6}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-tint);
}
.field input[aria-invalid="true"],.field textarea[aria-invalid="true"]{border-color:var(--danger)}
.err{font-size:var(--t-xs);color:var(--danger);min-height:16px;display:block}
.field input[type="file"]{padding:var(--sp-3);font-size:var(--t-sm)}
.checks{display:flex;flex-direction:column;gap:var(--sp-3)}
.check{display:flex;gap:var(--sp-3);align-items:flex-start;font-size:var(--t-sm);color:var(--fg-2);cursor:pointer}
.check input{margin-top:3px;accent-color:var(--brand);width:16px;height:16px;flex-shrink:0}

/* 步骤条 */
.steps{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-8);flex-wrap:wrap}
.step{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--t-sm);color:var(--fg-4)}
.step .n{
  width:26px;height:26px;border-radius:50%;background:var(--bg-soft);border:1px solid var(--border);
  display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--t-xs);flex-shrink:0;
}
.step.done .n{background:var(--ok);border-color:var(--ok);color:#fff}
.step.done{color:var(--fg-2)}
.step.active .n{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}
.step.active{color:var(--fg);font-weight:700}
.step-line{flex:1;height:1px;background:var(--border);min-width:20px}

/* 结果提示 */
.alert{display:none;padding:var(--sp-4);border-radius:var(--r-lg);margin-bottom:var(--sp-5);font-size:var(--t-sm)}
.alert.show{display:block}
.alert.ok{background:var(--ok-soft);border:1px solid #A7F3D0;color:var(--ok)}
.alert.err-box{background:var(--danger-soft);border:1px solid #FECACA;color:var(--danger)}
[data-theme="dark"] .alert.ok{border-color:#065F46}
[data-theme="dark"] .alert.err-box{border-color:#7F1D1D}

/* ============ 上传区 ============ */
.drop{
  border:2px dashed var(--border);border-radius:var(--r-lg);padding:var(--sp-8);
  text-align:center;background:var(--bg-soft);cursor:pointer;touch-action:manipulation;
  transition:border-color var(--t-base-d) var(--ease),background var(--t-base-d) var(--ease);
}
.drop:hover,.drop.over{border-color:var(--brand);background:var(--brand-soft)}
.drop svg{color:var(--brand-text);margin-bottom:var(--sp-3)}
.drop .t{font-size:var(--t-sm);font-weight:600;color:var(--fg-2);margin-bottom:var(--sp-1)}
.drop .s{font-size:var(--t-xs);color:var(--fg-4)}
.file-list{list-style:none;margin:var(--sp-4) 0 0;padding:0}
.file-list li{
  display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3);
  border:1px solid var(--border);border-radius:var(--r-md);margin-bottom:var(--sp-2);font-size:var(--t-sm);
}
.file-list .fname{font-weight:600;color:var(--fg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.file-list .fsize{color:var(--fg-4);font-size:var(--t-xs);margin-right:auto;flex-shrink:0}
.file-list .rm{background:none;border:0;color:var(--danger);cursor:pointer;font-size:var(--t-xs);font-family:inherit;flex-shrink:0}
.file-list .rm:hover{text-decoration:underline}

/* ============ 底部 ============ */
.site-foot{border-top:1px solid var(--border);background:var(--bg-soft);padding:var(--sp-10) 0 var(--sp-8);margin-top:var(--sp-16)}
.foot-cols{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-8);margin-bottom:var(--sp-8)}
.foot-cols h4{font-size:var(--t-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--fg-4);margin-bottom:var(--sp-3)}
.foot-cols ul{list-style:none;padding:0;margin:0}
.foot-cols li{margin-bottom:var(--sp-2)}
.foot-cols a{font-size:var(--t-sm);color:var(--fg-3)}
.foot-meta{font-size:var(--t-xs);color:var(--fg-4);border-top:1px solid var(--border);padding-top:var(--sp-5);display:flex;flex-wrap:wrap;gap:var(--sp-3);align-items:center}
.foot-meta .sep{color:var(--border)}
.foot-copy{font-size:var(--t-xs);color:var(--fg-4);margin-top:var(--sp-3);line-height:1.7}

/* ============ 响应式 ============ */
@media (max-width:900px){
  .doc-layout{grid-template-columns:1fr;gap:var(--sp-6)}
  .doc-toc{position:static;margin-bottom:var(--sp-6);padding:var(--sp-4);background:var(--bg-soft);border-radius:var(--r-lg);border:1px solid var(--border-soft)}
  .grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}
  .foot-cols{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:640px){
  .wrap{padding:0 var(--sp-4)}
  .head-nav{display:none}
  .grid-2,.grid-3,.grid-4{grid-template-columns:1fr}
  .form-grid{grid-template-columns:1fr}
  .page-hero{padding:var(--sp-8) 0 var(--sp-6)}
  .foot-cols{grid-template-columns:1fr}
  .steps{font-size:var(--t-xs)}
}

/* ============ 桌面端断点（向上） ============
   上面两组都是 max-width，只能向下收缩 —— 此前本文件对宽屏没有任何声明。
   这里补一层向上断点。注意**刻意不抬 --maxw**：1100px 下单栏正文列已有 792px
   （14px 字号约 56 个汉字/行），再放宽只会拉长每行字数、更难读。
   宽屏该做的是「让既有栅格舒展」，不是「把内容铺满屏幕」。 */
@media (min-width:1024px){
  /* 48px 的 Hero 顶留白在宽屏上显得头重，收到 40 与首页 Hero 取齐 */
  .page-hero{padding:var(--sp-10) 0 var(--sp-8)}
  /* 侧栏目录加宽到 220px；正文列改用 minmax(0,1fr) ——
     1fr 的最小值是 auto，遇到长英文串/长 URL 会把栅格顶破，0 才是安全下界 */
  .doc-layout{grid-template-columns:220px minmax(0,1fr);gap:var(--sp-10)}
  /* 长文页在宽屏上有更多纵向空间，正文上下留白同步放大 */
  .doc{padding:var(--sp-12) 0 var(--sp-16)}
}
@media (min-width:1280px){
  /* 卡片栅格与页脚四列在宽屏下留更足的间隔 */
  .grid{gap:var(--sp-6)}
  .foot-cols{gap:var(--sp-10)}
}

@media (prefers-reduced-motion:reduce){
  *{animation-duration:.01ms !important;transition-duration:.01ms !important;scroll-behavior:auto}
}

/* ==========================================================================
   v1.1 排名引擎整改配套（依据《AI 能力榜 · 出海全量战略与落地手册》）
   商家中心与指标看板共用的控件样式。首页不加载本表，所以首页专用控件
   （.decay-chip / .tb / .settle-seg / .proxy-row / .engine-box）仍留在 index.html。
   ========================================================================== */

/* 商家中心：我的占位卡（有效权重 / 名次 / 累计投入） */
.my-slot{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-soft);
         padding:var(--sp-4)}
.my-slot .rank-line{display:flex;align-items:baseline;gap:var(--sp-3);flex-wrap:wrap}
.my-slot .rank-line .rk{font-size:32px;font-weight:800;letter-spacing:-.03em;
                        font-variant-numeric:tabular-nums;color:var(--fg)}
.my-slot .rank-line .wb{font-size:var(--t-lg);font-weight:800;color:var(--brand-text);
                        font-variant-numeric:tabular-nums}
.my-slot .rank-line .cb{font-size:var(--t-sm);color:var(--fg-4);font-variant-numeric:tabular-nums}

/* 被反超后的差价补投提示 */
.reclaim{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap;
         margin-top:var(--sp-3);padding-top:var(--sp-3);border-top:1px dashed var(--border)}
.reclaim .amt{font-weight:800;color:var(--brand-text);font-variant-numeric:tabular-nums}

/* 名次变动时间线 */
.timeline{list-style:none;margin:var(--sp-2) 0 0;padding:0;font-size:var(--t-sm)}
.timeline li{display:flex;gap:var(--sp-3);padding:6px 0;border-bottom:1px solid var(--border-soft);
             color:var(--fg-2);font-variant-numeric:tabular-nums}
.timeline li:last-child{border-bottom:0}
.timeline li .when{color:var(--fg-4);flex-shrink:0;min-width:72px}
.timeline li .tag{flex-shrink:0;font-weight:700}
.timeline li .tag.up{color:#047857}
.timeline li .tag.down{color:#B91C1C}
[data-theme="dark"] .timeline li .tag.up{color:#6EE7B7}
[data-theme="dark"] .timeline li .tag.down{color:#FCA5A5}

/* 指标看板：KPI 卡（指标名 / 口径 / 当前状态三段式） */
.kpi{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-soft);
     padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-2)}
.kpi .k-name{font-size:var(--t-sm);font-weight:700;color:var(--fg-3);letter-spacing:.01em}
.kpi .k-val{font-size:28px;font-weight:800;letter-spacing:-.03em;line-height:1.1;
            font-variant-numeric:tabular-nums;color:var(--fg)}
.kpi .k-val small{font-size:var(--t-sm);font-weight:600;color:var(--fg-4);margin-left:4px}
.kpi .k-cal{font-size:var(--t-xs);color:var(--fg-3);line-height:1.65}
.kpi .k-cal b{color:var(--fg-2)}
.kpi .k-state{font-size:var(--t-xs);color:var(--fg-3);margin-top:auto;
              padding-top:var(--sp-2);border-top:1px solid var(--border-soft);
              display:flex;align-items:center;gap:6px}
.kpi.ready{border-color:var(--brand)}
.kpi.ready .k-val{color:var(--brand-text)}
.dot-state{width:7px;height:7px;border-radius:50%;background:var(--fg-4);flex-shrink:0}
.dot-state.on{background:var(--brand)}
