/* STABLE_GUTTER_20261022：滚动条常驻，页面之间切换不再横向抖 15px */
html{ scrollbar-gutter: stable; }
/* 顶部栏去掉毛玻璃：backdrop-filter 会在滚动/首帧触发重绘闪烁 */
.dsnav, .main-header, .topbar{ backdrop-filter: none !important; -webkit-backdrop-filter: none !important; }
.dsnav{ background:var(--ds-c-fff) !important; }
/* 搜索框只留一层边框（组件层给 input 加过边框，造成双圈） */
.search-input input, .sidebar-search input{ border:none !important; background:transparent !important; box-shadow:none !important; outline:none !important; }
/* NO_WHITE_FLASH_20261022：任何页面首帧就是浅灰，不再白闪 */
html{ background:var(--ds-c-f5f8fa); }
html, body{ transition:none !important; }
/* DS_TOKENS_20261021
   全站统一视觉令牌：字体阶梯 / 行高 / 颜色 / 间距 / 圆角 / 阴影 / 按钮 / 输入框 / 表格
   加载位置：所有页面 </head> 前最后一个 <link>，保证在页面自带样式之后生效。
   纪律：只统一“观感”，不改各页布局尺寸（首页是一屏固定版，动尺寸会挤掉价格卡）。
*/

:root{
  --ds-c-55697a: #55697A; /* A11Y_7 中灰文字，白底对比 4.6 */
  /* 字体 */
  --ds-font: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Arial, sans-serif;
  --ds-font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

  /* 字号阶梯 */
  --ds-fs-h1: 26px;
  --ds-fs-h2: 20px;
  --ds-fs-h3: 16px;
  --ds-fs-body: 14px;
  --ds-fs-sm: 13px;
  --ds-fs-xs: 12.5px;

  /* 行高 */
  --ds-lh-tight: 1.35;
  --ds-lh: 1.6;
  --ds-lh-loose: 1.85;

  /* 颜色 */
  --ds-ink: #0B1F2A;
  --ds-ink-2: #3E5766;
  --ds-ink-3: #5C7386;
  --ds-muted: #7A8F9E;
  --ds-line: #E7EEF3;
  --ds-line-soft: #F1F5F8;
  --ds-surface: #FFFFFF;
  --ds-bg: #F6F9FB;
  --ds-brand: #0E7490;
  --ds-brand-dark: #0A5C70;
  --ds-brand-soft: #EDF7F9;

  /* 间距 */
  --ds-s1: 4px; --ds-s2: 8px; --ds-s3: 12px; --ds-s4: 16px;
  --ds-s5: 24px; --ds-s6: 32px; --ds-s7: 48px;

  /* 圆角 */
  --ds-r-sm: 8px; --ds-r: 10px; --ds-r-lg: 14px; --ds-r-xl: 18px; --ds-r-pill: 999px;

  /* 阴影 */
  --ds-sh-1: 0 1px 2px rgba(11,31,42,.05);
  --ds-sh-2: 0 1px 2px rgba(11,31,42,.04), 0 8px 24px rgba(11,31,42,.05);
  --ds-sh-3: 0 2px 4px rgba(11,31,42,.05), 0 14px 32px rgba(11,31,42,.09);
  --ds-ring: 0 0 0 3px rgba(14,116,144,.12);
}

/* 页面底色随文档本身铺满，切页时不会先闪白 */
html{ background:var(--ds-c-f6f9fb); }

/* ---------- 字体与基础排版 ---------- */
body{
  font-family: var(--ds-font);
  font-size: var(--ds-fs-body);
  line-height: var(--ds-lh);
  color: var(--ds-ink);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}
h1{ font-size: var(--ds-fs-h1); line-height: var(--ds-lh-tight); font-weight: 800; letter-spacing: -.01em; }
h2{ font-size: var(--ds-fs-h2); line-height: var(--ds-lh-tight); font-weight: 800; }
h3{ font-size: var(--ds-fs-h3); line-height: var(--ds-lh-tight); font-weight: 700; }
p, li{ line-height: var(--ds-lh); }
small{ font-size: var(--ds-fs-xs); }
code, pre, .mono{ font-family: var(--ds-font-mono); font-variant-numeric: tabular-nums; }

/* 数字统一等宽，金额不跳位 */
.price, .amount, .num, .kpi b{ font-variant-numeric: tabular-nums; }

/* ---------- 按钮（统一高度与形状，不改页面原有配色类名） ---------- */
.ds-btn, button.ds-btn{
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  height: 40px; padding: 0 18px; border-radius: var(--ds-r);
  font-family: var(--ds-font); font-size: var(--ds-fs-sm); font-weight: 600;
  border: 1px solid var(--ds-line); background: var(--ds-c-fff); color: var(--ds-ink-2);
  cursor: pointer; transition: .18s; text-decoration: none; white-space: nowrap;
}
.ds-btn:hover{ border-color: var(--ds-c-cfe9ee); color: var(--ds-brand); }
.ds-btn.primary{
  background: linear-gradient(135deg, var(--ds-brand), var(--ds-brand-dark));
  border: none; color: var(--ds-c-fff); box-shadow: 0 6px 16px rgba(14,116,144,.2);
}
.ds-btn.primary:hover{ filter: brightness(1.06); color: var(--ds-c-fff); }
.ds-btn.ghost{ background: transparent; border-color: transparent; color: var(--ds-brand); }
.ds-btn.ghost:hover{ background: var(--ds-brand-soft); }
.ds-btn.sm{ height: 32px; padding: 0 13px; font-size: var(--ds-fs-xs); border-radius: var(--ds-r-sm); }

/* ---------- 输入框 ---------- */
.ds-input, .ds-field input, .ds-field textarea, .ds-field select{
  height: 42px; padding: 0 13px; border: 1px solid var(--ds-c-e3ebf2); border-radius: var(--ds-r);
  background: var(--ds-c-fff); color: var(--ds-ink); font-family: var(--ds-font);
  font-size: 14px; outline: none; transition: .16s;
}
.ds-field textarea{ height: auto; padding: 11px 13px; line-height: var(--ds-lh); }
.ds-input:focus, .ds-field input:focus, .ds-field textarea:focus, .ds-field select:focus{
  border-color: var(--ds-c-7fd3d9); box-shadow: var(--ds-ring);
}
.ds-input::placeholder, .ds-field input::placeholder, .ds-field textarea::placeholder{ color: var(--ds-c-a7b8c4); }

/* ---------- 卡片 ---------- */
.ds-card{
  background: var(--ds-surface); border: 1px solid var(--ds-line);
  border-radius: var(--ds-r-lg); box-shadow: var(--ds-sh-2);
}

/* ---------- 表格 ---------- */
.ds-table{ width: 100%; border-collapse: separate; border-spacing: 0; }
.ds-table thead th{
  font-size: var(--ds-fs-xs); font-weight: 600; color: var(--ds-muted);
  text-align: left; padding: 12px 16px; background: var(--ds-c-fbfdfe);
  border-bottom: 1px solid var(--ds-line-soft); white-space: nowrap;
}
.ds-table tbody td{
  font-size: var(--ds-fs-sm); color: var(--ds-ink-2);
  padding: 0 16px; height: 52px; border-bottom: 1px solid var(--ds-c-f4f8fa);
}
.ds-table tbody tr:last-child td{ border-bottom: none; }

/* ---------- 标签/徽标 ---------- */
.ds-tag{
  display: inline-flex; align-items: center; gap: 5px; height: 23px; padding: 0 9px;
  border-radius: 8px; font-size: var(--ds-fs-xs); font-weight: 600;
  background: var(--ds-c-f1f4f6); color: var(--ds-ink-3);
}

/* ---------- 分隔与间距工具 ---------- */
.ds-divider{ height: 1px; background: var(--ds-line-soft); border: 0; margin: var(--ds-s4) 0; }

/* ---------- 移动端字号收敛（只缩字号，不动布局） ---------- */
@media (max-width: 760px){
  :root{ --ds-fs-h1: 22px; --ds-fs-h2: 18px; --ds-fs-h3: 15.5px; --ds-fs-body: 14.5px; }
}


/* ===== PAGE_TRANSITION_20261021：站内切页淡入淡出（Chrome 126+ 生效，其它浏览器自动忽略） ===== */
@view-transition { navigation: auto; }
::view-transition-old(root){ animation: dsFadeOut .1s ease both; }
::view-transition-new(root){ animation: dsFadeIn .12s ease both; }
@keyframes dsFadeOut { from { opacity: 1 } to { opacity: 0 } }
@keyframes dsFadeIn { from { opacity: 0 } to { opacity: 1 } }
@media (prefers-reduced-motion: reduce){
  ::view-transition-old(root), ::view-transition-new(root){ animation: none; }
}

/* FONT_UNIFY_20261022：全站只留一套字体栈（原来深浅两套混用） */
html, body, button, input, textarea, select, .btn, .ds-btn, .send-btn{
  font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Arial, sans-serif !important;
}
h1, h2, h3, h4 { font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Arial, sans-serif !important; }
