/**
 * BastionLog pages — 页面级组件层(TASK-147 UI P3;消费 tokens.css 的 var(--bv-*))。
 * 分层:tokens(vendored 令牌)→ app-shell(外壳+通用件)→ 本表(逐页区块)。
 * 色彩法则(ADR-025):常态中性;amber/red 仅有源注意;任何绿色禁止。
 */

/* ---- Page 1: Landing(U2a TASK-174:全宽横向 banding)----
 * banding = 全宽长条带自上而下引导视线;py-24/32 级留白(space-12/16);
 * 交替 白 / 冰川 底 + 1px 边界线。零碎方块(九宫格/示例卡)已删。 */
.lp-band {
  padding: var(--bv-space-12) 0;
}
.lp-band--alt {
  background: var(--bv-color-surface);
  border-top: 1px solid var(--bv-color-border);
  border-bottom: 1px solid var(--bv-color-border);
}
.lp-band--hero {
  padding: var(--bv-space-12) 0 var(--bv-space-16);
}
.lp-band__kicker {
  text-align: center;
}
.lp-band__title {
  margin: var(--bv-space-2) 0 var(--bv-space-8);
  text-align: center;
  font-family: var(--bv-font-serif);
  font-size: var(--bv-text-2xl);
  font-weight: var(--bv-weight-extrabold);
  letter-spacing: var(--bv-tracking-tight);
  color: var(--bv-color-title);
  text-wrap: balance;
}

/* Hero:居中命题 + 宽大单行查档框(单一 CTA) */
.lp-hero {
  text-align: center;
}
.lp-hero__title {
  font-family: var(--bv-font-serif);
  font-size: clamp(2rem, 4.5vw, var(--bv-text-3xl));
  line-height: 1.22;
  font-weight: var(--bv-weight-extrabold);
  letter-spacing: var(--bv-tracking-tight);
  color: var(--bv-color-title);
  margin: var(--bv-space-3) 0 0;
  text-wrap: balance;
}
.lp-hero__lead {
  max-width: 42rem;
  margin: var(--bv-space-4) auto 0;
}
/* TASK-266:双线定位一句话(主线+跟踪 / 副线工具阵列)*/
.lp-hero__dual {
  max-width: 44rem;
  margin: var(--bv-space-3) auto 0;
  font-size: var(--bv-text-md);
  font-weight: var(--bv-weight-medium);
  color: var(--bv-color-ink-2);
}
/* TASK-266:landing 贸易工具 teaser 网格(副线露出) */
.lp-toolgrid {
  list-style: none;
  margin: var(--bv-space-6) 0 0;
  padding: 0;
  display: grid;
  gap: var(--bv-space-4);
}
@media (min-width: 640px) {
  .lp-toolgrid {
    grid-template-columns: 1fr 1fr;
  }
}
.lp-toolgrid__item {
  display: flex;
  flex-direction: column;
  gap: var(--bv-space-1);
  padding: var(--bv-space-4);
  background: var(--bv-color-canvas);
  border: 1px solid var(--bv-color-border);
  border-left: var(--bv-anchor-width) solid var(--bv-color-brand);
  border-radius: var(--bv-radius-md);
}
.lp-toolgrid__name {
  font-weight: var(--bv-weight-semibold);
  color: var(--bv-color-title);
}
.lp-toolgrid__desc {
  font-size: var(--bv-text-sm);
  line-height: var(--bv-leading-normal);
}
.lp-lookup {
  max-width: 46rem;
  margin: var(--bv-space-10) auto 0; /* U4-④ 与主标题拉大间距 */
  text-align: left;
}
.lp-lookup__title {
  margin: 0 0 var(--bv-space-2);
  font-weight: var(--bv-weight-semibold);
  color: var(--bv-color-title);
}
.lp-lookup__bar {
  display: flex;
  align-items: center;
  gap: var(--bv-space-2);
  padding: var(--bv-space-3) var(--bv-space-3) var(--bv-space-3) var(--bv-space-4); /* U4-④ py-5/px-6 级 */
  background: var(--bv-color-canvas);
  border: 1px solid var(--bv-color-border-strong);
  border-radius: var(--bv-radius-md);
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.05);
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.lp-lookup__bar:focus-within {
  border-color: var(--bv-color-action);
  box-shadow: 0 2px 12px rgba(53, 104, 255, 0.12);
}
.lp-lookup__bar .app-field {
  border: 0;
  background: transparent;
}
.lp-lookup__bar .app-field:focus {
  outline: none; /* 外框 focus-within 承担焦点指示 */
}
.lp-lookup__input {
  flex: 2 1 12rem;
  font-size: var(--bv-text-lg); /* U4-④ text-lg 命令行感 */
}
/* U4-④ 内嵌搜索图标 */
.lp-lookup__icon {
  flex: none;
  width: 20px;
  height: 20px;
  color: var(--bv-color-ink-3);
}
.lp-lookup__select {
  flex: 1.2 1 10rem;
  border-left: 1px solid var(--bv-color-border) !important;
  border-radius: 0;
}
.lp-lookup__btn {
  flex: none;
  padding: var(--bv-space-2) var(--bv-space-5);
  font-size: var(--bv-text-base);
}
@media (max-width: 720px) {
  .lp-lookup__bar {
    flex-wrap: wrap;
  }
  .lp-lookup__select {
    border-left: 0 !important;
  }
  .lp-lookup__btn {
    width: 100%;
    justify-content: center;
  }
}
.lp-lookup__hint {
  margin: var(--bv-space-2) 0 0;
  font-size: var(--bv-text-xs);
  text-align: center;
}
.lp-lookup__result {
  margin-top: var(--bv-space-4);
  padding: var(--bv-space-5);
  background: var(--bv-color-surface);
  border: 0; /* U4-② 空间色差替描边 */
  border-radius: var(--bv-radius-md);
}

/* 功能路径:横向 3 节点图标流(线条审计风;节点间箭头) */
.lp-flow {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--bv-space-6);
}
@media (min-width: 820px) {
  .lp-flow {
    grid-template-columns: repeat(3, 1fr);
    gap: var(--bv-space-8);
  }
  .lp-flow__node:not(:last-child)::after {
    content: "→";
    position: absolute;
    right: calc(-1 * var(--bv-space-8) / 2 - 0.5em);
    top: 56px;
    color: var(--bv-color-border-strong);
    font-size: var(--bv-text-lg);
  }
}
.lp-flow__node {
  position: relative;
  text-align: center;
  padding: var(--bv-space-6) var(--bv-space-5);
  background: var(--bv-color-canvas);
  border: 1px solid rgba(226, 232, 240, 0.6); /* U5-④ #E2E8F0/60 暗淡描边 */
  border-radius: var(--bv-radius-lg);
  box-shadow: var(--app-shadow-feather); /* U5-② 羽化阴影 */
  transition: box-shadow 0.15s ease;
}
.lp-flow__node:hover {
  box-shadow: 0 4px 14px rgba(15, 23, 42, 0.08);
}
.lp-flow__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  border: 1px solid var(--bv-color-border);
  border-radius: 50%;
  background: var(--bv-color-brand-soft);
  color: var(--bv-color-action); /* U5-④ 图标统一亮化 #3568FF */
}
.lp-flow__icon svg {
  width: 26px;
  height: 26px;
}
.lp-flow__step {
  display: block;
  margin-top: var(--bv-space-3);
  color: var(--bv-color-ink-3);
  letter-spacing: 0.08em;
}
.lp-flow__name {
  margin: var(--bv-space-1) 0 0;
  font-size: var(--bv-text-md);
  font-weight: var(--bv-weight-semibold);
  color: var(--bv-color-title);
}
.lp-flow__desc {
  margin: var(--bv-space-2) auto 0;
  max-width: 20rem;
  font-size: var(--bv-text-sm);
  color: var(--bv-color-ink-2);
}

.lp-section {
  margin-top: var(--bv-space-8);
}
.lp-prose {
  max-width: 46rem;
  color: var(--bv-color-ink-2);
}
.lp-prose p {
  margin: 0 0 var(--bv-space-3);
}
.lp-compare-wrap {
  overflow-x: auto;
  border: 1px solid var(--bv-color-border);
  border-radius: var(--bv-radius-md);
  background: var(--bv-color-surface);
}
.lp-compare {
  min-width: 640px;
}
.lp-compare th[scope="row"] {
  color: var(--bv-color-ink-3);
  font-weight: var(--bv-weight-semibold);
  font-size: var(--bv-text-xs);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  white-space: nowrap;
}
/* U5-⑤:交替淡蓝清洗为纯白;BL 列强调改走表头蓝字 + 行内 medium 字重 */
.lp-compare td.lp-compare__bl {
  background: transparent;
  color: var(--bv-color-ink);
  font-weight: var(--bv-weight-medium);
}
.lp-compare thead th {
  background: var(--bv-color-surface); /* U5-⑤ 表头 #F8FAFC 浅冷灰打底 */
}
.lp-compare td {
  padding-top: var(--bv-space-4);
  padding-bottom: var(--bv-space-4);
  line-height: 1.7; /* leading-relaxed */
}
.lp-compare-wrap {
  background: var(--bv-color-canvas); /* 表体纯白 */
}
.lp-compare thead th.lp-compare__bl {
  color: var(--bv-color-brand);
}
/* (U2a:九项差异化便当格 + 右侧示例卡样式已删——被 3 节点流/单行查档框取代,spec §6) */
/* U5-⑥:去外部矩形框,裸露在冰川横栏上;左侧 4px 行动蓝粗线聚焦 */
.lp-tiers {
  list-style: none;
  margin: var(--bv-space-4) 0 0;
  padding: 0 0 0 var(--bv-space-5);
  border: 0;
  border-left: 4px solid var(--bv-color-action);
  border-radius: 0;
  background: transparent;
  overflow: visible;
}
.lp-tiers__row {
  display: flex;
  align-items: baseline;
  gap: var(--bv-space-4);
  padding: var(--bv-space-4) 0;
  border-bottom: 1px solid var(--bv-color-border);
}
.lp-tiers__row:last-child {
  border-bottom: 0;
}
.lp-tiers__num {
  font-size: var(--bv-text-lg);
  font-weight: var(--bv-weight-semibold);
  color: var(--bv-color-brand);
}
.lp-tiers__text {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.lp-tiers__text strong {
  color: var(--bv-color-title);
}
.lp-tiers__text span {
  color: var(--bv-color-ink-3);
  font-size: var(--bv-text-sm);
}
.lp-tiers__closing {
  margin-top: var(--bv-space-3);
  padding-left: var(--bv-space-3);
  border-left: var(--bv-anchor-width) solid var(--bv-color-brand);
  color: var(--bv-color-ink-2);
  font-size: var(--bv-text-sm);
}
.lp-icp {
  margin-bottom: var(--bv-space-6);
}
.lp-icp__inner {
  border: 1px solid var(--bv-color-border);
  border-radius: var(--bv-radius-md);
  background: var(--bv-color-surface-sunken);
  padding: var(--bv-space-5);
  max-width: 56rem;
}
.lp-icp__inner p {
  margin: var(--bv-space-3) 0 0;
}

/* ---- Page 1: TASK-151 信任堆叠(数据源徽标墙 + 数字条 + AEO)---- */
.lp-sourcewall__lede {
  margin: var(--bv-space-2) 0 var(--bv-space-4);
  max-width: 46rem;
}
.lp-sourcewall__grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: var(--bv-space-2);
}
.lp-sourcewall__chip {
  display: inline-flex;
  align-items: baseline;
  gap: var(--bv-space-2);
  padding: var(--bv-space-2) var(--bv-space-3);
  border: 1px solid var(--bv-color-border);
  border-radius: var(--bv-radius-sm);
  background: var(--bv-color-surface);
  font-size: var(--bv-text-sm);
}
.lp-sourcewall__name {
  color: var(--bv-color-title);
  font-weight: var(--bv-weight-medium);
}
.lp-sourcewall__code {
  color: var(--bv-color-ink-3);
  font-size: var(--bv-text-xs);
}

.lp-stats__row {
  display: grid;
  gap: var(--bv-space-4);
  grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
  margin-top: var(--bv-space-4);
}
.lp-stat {
  display: flex;
  flex-direction: column;
  gap: var(--bv-space-1);
  padding: var(--bv-space-4);
  border: 1px solid var(--bv-color-border);
  border-radius: var(--bv-radius-md);
  background: var(--bv-color-surface);
}
.lp-stat__big {
  font-family: var(--bv-font-serif);
  font-size: var(--bv-text-xl);
  font-weight: var(--bv-weight-semibold);
  color: var(--bv-color-title);
  line-height: 1.3;
  font-variant-numeric: tabular-nums;
}
.lp-stat__big.app-mono {
  font-family: var(--bv-font-mono);
  font-size: var(--bv-text-sm);
  font-weight: var(--bv-weight-medium);
}
.lp-stat__label {
  color: var(--bv-color-ink);
  font-weight: var(--bv-weight-medium);
  font-size: var(--bv-text-sm);
}
.lp-stat__sub {
  font-size: var(--bv-text-xs);
}

.lp-aeo__lede {
  margin: var(--bv-space-2) 0 var(--bv-space-4);
  max-width: 46rem;
  color: var(--bv-color-ink-2);
}
.lp-aeo__card {
  padding: var(--bv-space-4);
  border: 1px solid var(--bv-color-border);
  border-left: 3px solid var(--bv-color-brand);
  border-radius: var(--bv-radius-md);
  background: var(--bv-color-surface-sunken);
}
.lp-aeo__hint {
  margin: 0 0 var(--bv-space-3);
  color: var(--bv-color-ink-2);
  font-size: var(--bv-text-sm);
}
.lp-aeo__prompt {
  margin: 0;
  padding: var(--bv-space-3) var(--bv-space-4);
  background: var(--bv-color-surface);
  border: 1px solid var(--bv-color-border);
  border-radius: var(--bv-radius-sm);
  font-family: var(--bv-font-mono);
  font-size: var(--bv-text-xs);
  line-height: 1.55;
  color: var(--bv-color-ink);
  white-space: pre-wrap;
  word-break: break-word;
}
.lp-aeo__note {
  margin: var(--bv-space-3) 0 0;
  color: var(--bv-color-ink-3);
  font-size: var(--bv-text-xs);
}

/* ---- Page 8: Auth(register / login / verify-email)---- */
/* U2a(TASK-174):冰川全宽底 + 中央悬浮纯白卡;输入框聚焦平滑过渡行动蓝 */
.auth-band {
  background: var(--bv-color-surface);
  border-bottom: 1px solid var(--bv-color-border);
  padding: var(--bv-space-12) 0 var(--bv-space-16);
}
/* auth 页:冰川带直贴 footer,消除中间白条 */
main:has(.auth-band) + .app-footer {
  margin-top: 0;
  border-top: 0;
}
.auth {
  max-width: 26rem;
  margin: 0 auto;
}
.auth .auth__card {
  background: var(--bv-color-canvas); /* 悬浮纯白卡 */
  border-color: var(--bv-color-border);
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
}
.auth .app-field {
  border-color: var(--bv-color-border); /* 默认 #E2E8F0 */
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.auth .app-field:focus {
  outline: none;
  border-color: var(--bv-color-action); /* 聚焦 #3568FF */
  box-shadow: 0 0 0 3px var(--bv-color-brand-soft);
}
.auth__brand {
  text-align: center;
  margin-bottom: var(--bv-space-5);
}
/* TASK-266:auth 页盾徽(文字签名之上;金属灰品牌件)*/
.auth__logo-img {
  height: 4rem;
  width: auto;
  display: block;
  margin: 0 auto var(--bv-space-3);
}
.auth__logo {
  margin: 0;
  font-family: var(--bv-font-serif);
  font-size: var(--bv-text-xl);
  font-weight: var(--bv-weight-bold);
  color: var(--bv-color-title);
  letter-spacing: -0.01em;
}
.auth__sub {
  margin: var(--bv-space-1) 0 0;
  font-family: var(--bv-font-serif);
  font-size: var(--bv-text-sm);
  color: var(--bv-color-ink-3);
}
.auth__card {
  padding: var(--bv-space-6) var(--bv-space-5);
}
.auth__card--center {
  text-align: center;
}
.auth__title {
  margin: 0 0 var(--bv-space-2);
  font-family: var(--bv-font-serif);
  font-size: var(--bv-text-xl);
  font-weight: var(--bv-weight-semibold);
  color: var(--bv-color-title);
}
.auth__alt {
  margin: var(--bv-space-4) 0 0;
}
.auth__icon {
  width: 48px;
  height: 48px;
  color: var(--bv-color-ink-3);
  margin: 0 auto var(--bv-space-3);
  display: block;
}

/* ---- Page 6: Pricing ---- */
.pr-balance {
  margin-top: var(--bv-space-6);
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: var(--bv-space-4);
}
.pr-balance__num {
  display: flex;
  align-items: baseline;
  gap: var(--bv-space-2);
}
.pr-balance__credits {
  font-family: var(--bv-font-mono);
  font-size: var(--bv-text-2xl);
  font-weight: var(--bv-weight-bold);
  color: var(--bv-color-title);
  font-variant-numeric: tabular-nums;
}
/* U5-⑨:CTA 视觉升级(灰按钮废除)——Trader 蓝实心 / 其余蓝细描边空心;
 * 文案合规(GM 硬线):Stripe HOLD 期禁「立即充值」,措辞=「即将开通 · 公测特惠」,
 * 按钮保持 disabled(诚实呈现)。 */
.pr-tier__buy--ghost {
  border: 1px solid var(--bv-color-action);
  color: var(--bv-color-action);
  background: var(--bv-color-canvas);
}
.pr-tier__buy:disabled {
  opacity: 0.75;
}
/* U4-⑫:两暗一明——普通档纯白+shadow-sm 去描边;推荐档 scale-105+行动蓝标签 */
.pr-tier {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--bv-space-2);
  background: var(--bv-color-canvas);
  border-color: transparent;
  box-shadow: var(--app-shadow-feather); /* U5-② */
}
.pr-tier--rec {
  border: 1px solid var(--bv-color-action);
  box-shadow: 0 8px 24px rgba(53, 104, 255, 0.15);
  transform: scale(1.05);
  position: relative;
  z-index: 1;
}
.pr-tier--rec .app-badge--logged {
  background: var(--bv-color-action);
  color: #ffffff;
  border-radius: 999px; /* U5-⑩ 精致圆角胶囊 */
  padding: 2px var(--bv-space-3);
  font-weight: var(--bv-weight-semibold);
  letter-spacing: 0.02em;
}
.pr-tier__name {
  margin: 0;
  font-family: var(--bv-font-serif);
  font-size: var(--bv-text-lg);
  font-weight: var(--bv-weight-semibold);
  color: var(--bv-color-title);
}
.pr-tier__price {
  margin: 0;
  font-family: var(--bv-font-serif);
  font-size: var(--bv-text-2xl);
  font-weight: var(--bv-weight-bold);
  color: var(--bv-color-title);
}
.pr-tier__credits {
  margin: 0;
  display: flex;
  align-items: baseline;
  gap: var(--bv-space-2);
  color: var(--bv-color-ink-2);
}
.pr-tier__buy {
  width: 100%;
  justify-content: center;
  margin-top: auto;
}
.pr-tier__buy:disabled {
  cursor: not-allowed;
  opacity: 0.65;
}
.pr-table-wrap {
  margin-top: var(--bv-space-4);
  border: 1px solid var(--bv-color-border);
  border-radius: var(--bv-radius-md);
  background: var(--bv-color-surface);
  overflow-x: auto;
}
/* U4-⑬:表头 uppercase+tracking-wider+bold;行分割线减淡为极弱冷灰 */
.pr-table-wrap .app-table th {
  letter-spacing: 0.08em;
  font-weight: var(--bv-weight-bold);
}
.pr-table-wrap .app-table td {
  border-bottom-color: var(--bv-color-surface-sunken);
}
.pr-num {
  text-align: right;
  white-space: nowrap;
}
th.pr-num {
  text-align: right;
}
.pr-strike {
  color: var(--bv-color-ink-3);
}

/* ---- Compare pages trio (TASK-150): BL column brand-soft highlight (no green) ---- */
.cmp-bl {
  background: var(--bv-color-brand-soft);
  font-weight: var(--bv-weight-medium, 500);
}
.cmp-see-also {
  list-style: disc;
}
.cmp-see-also a {
  color: var(--bv-color-brand);
  text-decoration: none;
}
.cmp-see-also a:hover {
  text-decoration: underline;
}

/* ---- Page 3/7: Query 表单 · 过载遮罩 · 拖拽上传 · 勾选页 ---- */
/* U2b:查询表单 = 冰川带上的悬浮白卡(与 auth 同语汇);输入聚焦行动蓝 */
.q-form {
  background: var(--bv-color-canvas);
  border-color: var(--bv-color-border);
  border-radius: 16px; /* U4-⑨ rounded-2xl 级(令牌无 xl 档,页面层换算) */
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
}
/* U4-⑪ 主 CTA:亮蓝 + text-base + py-3/px-8 级 */
.q-form .app-btn--action {
  font-size: var(--bv-text-base);
  padding: var(--bv-space-3) var(--bv-space-6);
}
.q-form .app-field {
  border-color: var(--bv-color-border);
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.q-form .app-field:focus {
  outline: none;
  border-color: var(--bv-color-action);
  box-shadow: 0 0 0 3px var(--bv-color-brand-soft);
}
.q-mono-field {
  font-family: var(--bv-font-mono);
  font-size: var(--bv-text-sm);
}
.q-monitor {
  display: flex;
  align-items: flex-start;
  gap: var(--bv-space-3);
  border: 1px solid var(--bv-color-border);
  border-radius: var(--bv-radius-sm);
  background: var(--bv-color-surface-sunken);
  padding: var(--bv-space-3);
  cursor: pointer;
}
.q-overlay {
  position: fixed;
  inset: 0;
  z-index: 60;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(15, 23, 42, 0.45);
  padding: var(--bv-space-5);
}
.q-overlay[hidden] {
  display: none;
}
.q-overlay__card {
  width: 100%;
  max-width: 24rem;
  text-align: center;
}
.q-overlay__title {
  margin: 0 0 var(--bv-space-2);
  font-family: var(--bv-font-serif);
  font-size: var(--bv-text-lg);
  font-weight: var(--bv-weight-semibold);
  color: var(--bv-color-title);
}
.q-overlay__step {
  margin: 0 0 var(--bv-space-4);
  color: var(--bv-color-ink-3);
  white-space: normal;
}
.q-overlay__bar {
  height: 3px;
  border-radius: 2px;
  background: var(--bv-color-border);
  overflow: hidden;
}
.q-overlay__bar span {
  display: block;
  height: 100%;
  width: 40%;
  border-radius: 2px;
  background: var(--bv-color-action);
  animation: q-indeterminate 1.6s ease-in-out infinite;
}
@keyframes q-indeterminate {
  0% {
    transform: translateX(-100%);
  }
  100% {
    transform: translateX(350%);
  }
}
.up-dropzone {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--bv-space-2);
  padding: var(--bv-space-6) var(--bv-space-5);
  border: 1.5px dashed var(--bv-color-border-strong);
  border-radius: var(--bv-radius-md);
  background: var(--bv-color-surface-sunken);
  text-align: center;
  cursor: pointer;
}
.up-dropzone--over {
  border-color: var(--bv-color-action);
  background: var(--bv-color-brand-soft);
}
.up-dropzone__icon {
  width: 40px;
  height: 40px;
  color: var(--bv-color-ink-3);
}
.up-dropzone__hint {
  font-weight: var(--bv-weight-medium);
  color: var(--bv-color-ink);
}
.up-dropzone__files {
  white-space: normal;
  word-break: break-all;
}
.up-dropzone__input {
  margin-top: var(--bv-space-2);
  font-size: var(--bv-text-xs);
  color: var(--bv-color-ink-3);
  max-width: 100%;
}
.sel-list {
  list-style: none;
  margin: 0;
  padding: 0;
  border: 1px solid var(--bv-color-border);
  border-radius: var(--bv-radius-md);
  overflow: hidden;
}
.sel-list__row {
  border-bottom: 1px solid var(--bv-color-border);
}
.sel-list__row:last-child {
  border-bottom: 0;
}
.sel-list__label {
  display: flex;
  gap: var(--bv-space-3);
  align-items: baseline;
  padding: var(--bv-space-4) var(--bv-space-5);
  cursor: pointer;
}
/* U2b 顺带:勾选态行高亮(流程态 brand-soft,非判定色) */
.sel-list__row:has(input:checked) {
  background: var(--bv-color-brand-soft);
}
.sel-list__label:hover {
  background: var(--bv-color-surface-sunken);
}
.sel-list__text {
  display: flex;
  gap: var(--bv-space-2);
  align-items: baseline;
  flex-wrap: wrap;
}
.sel-gate {
  align-items: flex-start;
  gap: var(--bv-space-2);
  flex-wrap: nowrap;
  margin-top: var(--bv-space-4);
  padding-top: var(--bv-space-3);
  border-top: 1px solid var(--bv-color-border);
  cursor: pointer;
}

/* ---- Page 2: Dashboard ---- */
/* U4-②⑦:bento 降噪(空间色差,无描边)+ p-8 级内边距;U5-② 羽化阴影 */
.db-stat,
.db-action,
.db-snap {
  border-color: transparent;
  padding: var(--bv-space-6);
  box-shadow: var(--app-shadow-feather);
}
.ap-band--alt .db-action,
.ap-band--alt .db-snap {
  background: var(--bv-color-canvas); /* 冰川带上反白,靠色差分层 */
}
/* U5-⑧:现代 SaaS 仪表盘布局——核心数字右上角,标题/描述/行动居左 */
.db-stat {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: var(--bv-space-3);
  align-items: start;
}
.db-stat > .app-kicker {
  grid-column: 1;
  align-self: center;
}
.db-stat__num {
  grid-column: 2;
  grid-row: 1;
  justify-self: end;
}
.db-stat > .app-muted,
.db-stat > .db-stat__alert,
.db-stat > .app-row {
  grid-column: 1 / -1;
}
.db-stat__num {
  margin: 0;
  display: flex;
  align-items: baseline;
  gap: var(--bv-space-2);
  flex-wrap: wrap;
}
.db-stat__big {
  font-family: var(--bv-font-mono);
  font-size: var(--bv-text-2xl);
  font-weight: var(--bv-weight-bold);
  color: var(--bv-color-title);
  font-variant-numeric: tabular-nums;
}
/* U4-③ 免费额度耗尽:红框→琥珀续费提示(底 attn-soft + 深琥珀字;
 * 同事稿 #FFF7ED/#C2410C 语义换算为 attn 令牌族;额度=有源注意项,amber 合 ADR-025) */
.db-stat--alert {
  border-color: transparent;
  border-radius: var(--bv-radius-lg); /* U5-⑦ rounded-xl */
  background: rgba(254, 247, 224, 0.45); /* U5-⑦ 微白底(attn-soft 45% 淡化换算) */
}
.db-stat--alert .db-stat__big {
  color: var(--bv-color-attn-ink);
}
.db-stat__alert {
  margin: 0;
  color: var(--bv-color-attn-ink);
  font-size: var(--bv-text-sm);
}
.db-action {
  display: flex;
  flex-direction: column;
  gap: var(--bv-space-1);
  text-decoration: none;
  padding: var(--bv-space-5);
}
.db-action:hover {
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.08);
}
.db-action__title {
  font-weight: var(--bv-weight-bold);
  color: var(--bv-color-title);
  font-size: var(--bv-text-lg);
}

/* ---- U2b(TASK-175): app 页全宽 banding ----
 * 与 landing 的 lp-band 同语汇,app 页节奏稍紧(space-10);交替 白/冰川 + 1px 边界。
 * R2a 数据装置内容不动,只升版式(大字号/留白/横向长条带)。 */
.ap-band {
  padding: var(--bv-space-10) 0;
}
.ap-band--alt {
  background: var(--bv-color-surface);
  border-top: 1px solid var(--bv-color-border);
  border-bottom: 1px solid var(--bv-color-border);
}
.ap-band--head {
  padding-bottom: var(--bv-space-8);
}
.ap-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--bv-space-4);
  flex-wrap: wrap;
}
.ap-head__sub {
  margin: 0;
  color: var(--bv-color-ink-3);
}
/* 大字号升级:band 内区块标题升一档 */
.ap-band .app-section-title {
  font-size: var(--bv-text-xl);
}
/* app 页 banding 后 footer 直贴(最后一条 band 自带节奏) */
main:has(.ap-band) + .app-footer {
  margin-top: 0;
}

/* ---- R2a(TASK-170): Dashboard 监控快照 + 覆盖能力速览 ---- */
.db-snap {
  display: flex;
  flex-direction: column;
  gap: var(--bv-space-3);
  align-items: flex-start;
}
.db-snap__stats {
  margin: 0;
  display: flex;
  gap: var(--bv-space-6);
  flex-wrap: wrap;
}
.db-snap__stat dt {
  font-size: var(--bv-text-xs);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--bv-color-ink-3);
  margin-bottom: var(--bv-space-1);
}
.db-snap__stat dd {
  margin: 0;
  display: flex;
  align-items: baseline;
  gap: var(--bv-space-2);
}
.db-snap__num {
  font-family: var(--bv-font-mono);
  font-size: var(--bv-text-xl);
  font-weight: var(--bv-weight-bold);
  color: var(--bv-color-title);
  font-variant-numeric: tabular-nums;
}
.db-snap__note {
  margin: 0;
  font-size: var(--bv-text-xs);
}
.db-cov__chips {
  display: flex;
  flex-wrap: wrap;
  gap: var(--bv-space-2);
}
/* U4-⑧:低饱和浅底 + 高饱和深字(精密科技芯片感) */
.db-cov__chip {
  display: inline-flex;
  align-items: baseline;
  gap: var(--bv-space-2);
  max-width: 100%;
  padding: 2px var(--bv-space-3);
  border: 0;
  border-radius: 999px;
  background: var(--bv-color-neutral-soft);
  font-size: var(--bv-text-xs);
}
.db-cov__code {
  font-family: var(--bv-font-mono);
  font-weight: var(--bv-weight-semibold);
  color: var(--bv-color-ink);
}
.db-cov__registry {
  color: var(--bv-color-ink-2);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 16rem;
}
.db-empty {
  padding: var(--bv-space-4) 0;
}

/* ---- Page 5: Monitoring ---- */
.mo-grid {
  display: grid;
  gap: var(--bv-space-5);
  align-items: start;
}
@media (min-width: 880px) {
  .mo-grid {
    grid-template-columns: 1.1fr 0.9fr;
  }
}
.mo-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.mo-list__row {
  display: flex;
  justify-content: space-between;
  gap: var(--bv-space-4);
  align-items: baseline;
  padding: var(--bv-space-3) 0;
  border-bottom: 1px solid var(--bv-color-border);
}
.mo-list__row:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}
.mo-list__row:first-child {
  padding-top: 0;
}
.mo-list__main {
  display: flex;
  gap: var(--bv-space-2);
  align-items: baseline;
  flex-wrap: wrap;
  min-width: 0;
}
.mo-list__main strong {
  color: var(--bv-color-ink);
}

/* ---- R2a(TASK-170): Monitoring 空态示例装置 + 字段级 delta 表 ---- */
/* 示例行 = 虚线隔离 + 显式「示例」标注(与报告 AI 围栏同「非事实层」语汇) */
.mo-example {
  margin-top: var(--bv-space-4);
  padding: var(--bv-space-3) var(--bv-space-4);
  border: 1px dashed var(--bv-color-border-strong);
  border-radius: var(--bv-radius-sm);
  background: var(--bv-color-surface-sunken);
}
.mo-example__k {
  margin: 0 0 var(--bv-space-2);
  font-family: var(--bv-font-mono);
  font-size: var(--bv-text-xs);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--bv-color-ink-3);
}
/* delta 值:mono 中性呈现,旧值→新值只陈述不判定(162;零定性) */
.mo-delta__field {
  word-break: break-all;
}
.mo-delta__val {
  font-family: var(--bv-font-mono);
  font-size: var(--bv-text-xs);
  background: var(--bv-color-surface-sunken);
  border: 1px solid var(--bv-color-border);
  border-radius: var(--bv-radius-sm);
  padding: 0.1em 0.4em;
  word-break: break-all;
}
.mo-delta__arrow {
  color: var(--bv-color-ink-3);
}

/* ---- R2a(TASK-170): Query 覆盖预告 + 采集维度预览 ---- */
.q-cov {
  margin: var(--bv-space-2) 0 0;
  font-size: var(--bv-text-xs);
  color: var(--bv-color-ink-2);
}
.q-cov__k {
  font-family: var(--bv-font-mono);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--bv-color-ink-3);
  margin-right: var(--bv-space-2);
}
.q-sources {
  padding: var(--bv-space-4);
  border: 1px solid var(--bv-color-border);
  border-radius: var(--bv-radius-md);
  background: var(--bv-color-surface-sunken);
}
.q-sources__title {
  margin: 0 0 var(--bv-space-3);
  font-size: var(--bv-text-sm);
  font-weight: var(--bv-weight-semibold);
  color: var(--bv-color-ink-2);
}
/* U4-⑩:纯文本堆 → 轻量双列网格;左列维度信息蓝(非判定色),右列来源加深 */
.q-sources__grid {
  margin: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--bv-space-3);
}
@media (min-width: 720px) {
  .q-sources__grid {
    grid-template-columns: 1fr 1fr;
  }
}
.q-sources__row {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: var(--bv-space-3) var(--bv-space-4);
  background: var(--bv-color-canvas);
  border-radius: var(--bv-radius-sm);
}
.q-sources__row dt {
  font-family: var(--bv-font-mono);
  font-size: var(--bv-text-xs);
  font-weight: var(--bv-weight-semibold);
  color: var(--bv-color-info);
}
.q-sources__row dd {
  margin: 0;
  font-size: var(--bv-text-sm);
  color: var(--bv-color-ink);
}

/* ---- R2a(TASK-170): History 按月分组 ---- */
.hi-month {
  margin-top: var(--bv-space-6);
}
.ap-band .hi-month:first-of-type {
  margin-top: 0;
}
/* U2b:冰川带上的月分组卡走白底 */
.hi-month .app-card,
.hi-empty {
  background: var(--bv-color-canvas);
}
.hi-month__label {
  margin: 0 0 var(--bv-space-2);
  display: flex;
  align-items: baseline;
  gap: var(--bv-space-2);
  font-size: var(--bv-text-sm);
}
.sel-list__regno {
  color: var(--bv-color-ink-3);
  font-size: var(--bv-text-xs);
}

/* ---- Page: Coverage Tool (TASK-149;U3 精细化:纯白卡 + 1px 描边 + 放大) ---- */
.cov-grid {
  display: grid;
  gap: var(--bv-space-5);
  grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
}
/* U3:冰川带上的纯白卡 + 1px #E2E8F0 精密描边 */
.cov-card {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 0;
  overflow: hidden;
  background: var(--bv-color-canvas);
  border-color: var(--bv-color-border);
}
.cov-card__head strong,
.cov-card .cov-fact strong {
  font-size: var(--bv-text-md);
}
.cov-card__head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--bv-space-3);
  padding: var(--bv-space-3) var(--bv-space-4);
  border-bottom: 1px solid var(--bv-color-border);
}
.cov-card__body {
  padding: var(--bv-space-3) var(--bv-space-4);
  flex: 1;
}
.cov-card__foot {
  display: flex;
  align-items: center;
  gap: var(--bv-space-3);
  padding: var(--bv-space-3) var(--bv-space-4);
  border-top: 1px solid var(--bv-color-border);
  background: var(--bv-color-surface-sunken);
}
.cov-fact {
  display: flex;
  align-items: baseline;
  gap: var(--bv-space-2);
  font-size: var(--bv-text-sm);
}
.cov-pillars {
  margin-top: var(--bv-space-2);
}
.cov-pillars__toggle {
  cursor: pointer;
  font-size: var(--bv-text-sm);
  color: var(--bv-color-ink-2);
  user-select: none;
}
.cov-pillars__list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.cov-pillar {
  display: flex;
  align-items: baseline;
  gap: var(--bv-space-2);
  padding: var(--bv-space-1) 0;
  font-size: var(--bv-text-sm);
  border-bottom: 1px solid var(--bv-color-border);
}
.cov-pillar:last-child {
  border-bottom: 0;
}
.cov-pillar__icon {
  width: 16px;
  text-align: center;
  font-size: var(--bv-text-xs);
  flex-shrink: 0;
}
.cov-pillar--on .cov-pillar__icon { color: var(--bv-color-ink); }
.cov-pillar--off .cov-pillar__icon { color: var(--bv-color-ink-3); }
.cov-pillar--off .cov-pillar__label { color: var(--bv-color-ink-3); }
.cov-pillar__label {
  font-weight: var(--bv-weight-medium);
  min-width: 0;
}
.cov-pillar__src {
  font-size: var(--bv-text-xs);
  margin-left: auto;
  text-align: right;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.cov-states {
  margin-top: var(--bv-space-2);
}
.cov-states__toggle {
  cursor: pointer;
  font-size: var(--bv-text-sm);
  color: var(--bv-color-ink-2);
  user-select: none;
}
.cov-states__list {
  margin: 0;
  padding: 0;
  list-style: none;
}
.cov-states__list li {
  padding: var(--bv-space-1) 0;
  border-bottom: 1px solid var(--bv-color-border);
}
.cov-states__list li:last-child { border-bottom: 0; }
.cov-jump {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--bv-space-2);
  padding: var(--bv-space-2) 0;
  border-bottom: 1px solid var(--bv-color-border);
}

/* ── Landing Hero Demo Result ── */
.cov-result {
  animation: cov-fade-in 0.3s ease;
}
@keyframes cov-fade-in {
  from { opacity: 0; transform: translateY(-4px); }
  to { opacity: 1; transform: translateY(0); }
}
.cov-mini {
  font-size: var(--bv-text-sm);
}
.cov-mini > div {
  margin-bottom: var(--bv-space-1);
}
.cov-mini > div:last-child {
  margin-bottom: 0;
}

/* ── TASK-151: Landing 信任堆叠 ── */
/* 1) 数据源徽标墙 —— hairline 文字徽章,禁用官方 logo 图片 */
.lp-sourcewall__lede {
  margin: 0 0 var(--bv-space-4);
  max-width: 46rem;
  color: var(--bv-color-ink-3);
  font-size: var(--bv-text-sm);
}
.lp-sourcewall__grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--bv-space-3);
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
}
.lp-sourcewall__chip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--bv-space-3);
  padding: var(--bv-space-3) var(--bv-space-4);
  border: 1px solid var(--bv-color-border);
  border-radius: var(--bv-radius-md);
  background: var(--bv-color-surface);
  font-size: var(--bv-text-sm);
}
.lp-sourcewall__name {
  color: var(--bv-color-ink);
  font-weight: var(--bv-weight-medium);
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.lp-sourcewall__code {
  color: var(--bv-color-ink-3);
  font-size: var(--bv-text-xs);
  flex-shrink: 0;
  letter-spacing: 0.04em;
}

/* 2) 过程性真实数字条 —— 零定性:数字全真,失败显「—」/「更新中」 */
.lp-stats__row {
  display: grid;
  gap: var(--bv-space-4);
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  margin-top: var(--bv-space-4);
  padding: var(--bv-space-5);
  border: 1px solid var(--bv-color-border);
  border-radius: var(--bv-radius-md);
  background: var(--bv-color-surface);
}
.lp-stat {
  display: flex;
  flex-direction: column;
  gap: var(--bv-space-1);
  min-width: 0;
}
.lp-stat__big {
  font-family: var(--bv-font-mono);
  font-size: var(--bv-text-xl);
  font-weight: var(--bv-weight-bold);
  color: var(--bv-color-title);
  font-variant-numeric: tabular-nums;
  word-break: break-word;
  line-height: var(--bv-leading-tight);
}
.lp-stat__label {
  color: var(--bv-color-ink-2);
  font-weight: var(--bv-weight-medium);
  font-size: var(--bv-text-sm);
}
.lp-stat__sub {
  color: var(--bv-color-ink-3);
  font-size: var(--bv-text-xs);
}

/* 3) AEO 区块 —— 引导用户 AI 逐条核对来源链接(无 verified/mismatch 裁决) */
.lp-aeo__lede {
  margin: 0 0 var(--bv-space-4);
  max-width: 56rem;
  color: var(--bv-color-ink-2);
}
.lp-aeo__panel {
  border: 1px solid var(--bv-color-border);
  border-radius: var(--bv-radius-md);
  background: var(--bv-color-surface-sunken);
  padding: 0;
  overflow: hidden;
}
.lp-aeo__summary {
  cursor: pointer;
  padding: var(--bv-space-3) var(--bv-space-4);
  font-weight: var(--bv-weight-semibold);
  color: var(--bv-color-ink);
  list-style: none;
}
.lp-aeo__summary::-webkit-details-marker {
  display: none;
}
.lp-aeo__summary::before {
  content: "▸ ";
  color: var(--bv-color-ink-3);
  display: inline-block;
  width: 1em;
}
.lp-aeo__panel[open] .lp-aeo__summary::before {
  content: "▾ ";
}
.lp-aeo__prompt {
  margin: 0;
  padding: var(--bv-space-4);
  border-top: 1px solid var(--bv-color-border);
  background: var(--bv-color-surface);
  color: var(--bv-color-ink-2);
  font-size: var(--bv-text-sm);
  line-height: var(--bv-leading-normal);
  white-space: pre-wrap;
  word-break: break-word;
  max-height: 24rem;
  overflow: auto;
}
.lp-aeo__note {
  margin: var(--bv-space-3) 0 0;
  font-size: var(--bv-text-sm);
  max-width: 56rem;
}

/* =====================================================================
 * TASK-266 UI Refresh v2 — /tools 工具阵列 hub + /support 客服页
 * 中性设计系统;icon = 结构装饰(ink-2 线条);绿禁;三态事实语汇。
 * ===================================================================== */
.tl-group__kicker {
  margin: 0 0 var(--bv-space-4);
}
.tl-icon {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  color: var(--bv-color-ink-2);
  background: var(--bv-color-surface-sunken);
  border: 1px solid var(--bv-color-border);
  border-radius: var(--bv-radius-md);
}
.tl-icon svg {
  width: 1.5rem;
  height: 1.5rem;
}
.tl-icon--sm {
  width: 2.25rem;
  height: 2.25rem;
}
.tl-icon--sm svg {
  width: 1.25rem;
  height: 1.25rem;
}
.tl-feature {
  display: flex;
  flex-direction: column;
  gap: var(--bv-space-4);
}
.tl-feature + .tl-feature,
.tl-feature--scenario {
  margin-top: var(--bv-space-4);
}
.tl-feature__body {
  display: flex;
  gap: var(--bv-space-4);
  align-items: flex-start;
}
.tl-feature__text {
  min-width: 0;
}
.tl-card__head {
  display: flex;
  align-items: center;
  gap: var(--bv-space-3);
  flex-wrap: wrap;
}
.tl-card__name {
  margin: 0;
  font-size: var(--bv-text-lg);
  font-weight: var(--bv-weight-semibold);
  color: var(--bv-color-title);
}
.tl-card__value {
  margin: var(--bv-space-2) 0 0;
  font-weight: var(--bv-weight-medium);
  color: var(--bv-color-ink);
}
.tl-facts {
  margin: var(--bv-space-3) 0 0;
}
.tl-facts__row {
  display: grid;
  gap: 0 var(--bv-space-3);
  padding: var(--bv-space-2) 0;
  border-top: 1px solid var(--bv-color-border);
}
@media (min-width: 560px) {
  .tl-facts__row {
    grid-template-columns: 8.5rem 1fr;
  }
}
.tl-facts__row dt {
  font-size: var(--bv-text-xs);
  font-weight: var(--bv-weight-semibold);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--bv-color-ink-3);
}
.tl-facts__row dd {
  margin: 0;
  color: var(--bv-color-ink-2);
  font-size: var(--bv-text-sm);
  line-height: var(--bv-leading-normal);
}
.tl-card__note {
  margin: var(--bv-space-3) 0 0;
  font-size: var(--bv-text-xs);
}
.tl-grid {
  display: grid;
  gap: var(--bv-space-4);
  margin-top: var(--bv-space-4);
}
@media (min-width: 760px) {
  .tl-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
.tl-card {
  display: flex;
  flex-direction: column;
}
.tl-card .tl-card__head {
  margin-bottom: var(--bv-space-1);
}
.tl-card .tl-card__name {
  font-size: var(--bv-text-md);
}
.tl-grid__note {
  margin: var(--bv-space-4) 0 0;
  font-size: var(--bv-text-xs);
}

/* ---- /support 客服页 ---- */
.sp-card {
  display: flex;
  flex-direction: column;
  gap: var(--bv-space-2);
}
.sp-card__lead {
  margin: var(--bv-space-1) 0;
}
.sp-card__email {
  font-size: var(--bv-text-md);
  color: var(--bv-color-action);
  word-break: break-all;
}
