:root {
  /* 白天：OKX 式纯白底板 + 白卡片轻阴影分层；主字近黑，次要字略深灰（避免灰蒙蒙） */
  --bg: #ffffff;
  --panel: #ffffff;
  --panel-2: #f5f5f5;
  --ink: #000000;
  --muted: #4d4d4d;
  --line: rgba(0, 0, 0, 0.12);
  --card-line: color-mix(in srgb, var(--ink, #111) 12%, transparent);
  --sheet: #ffffff;
  --sheet-2: #f5f5f5;
  --sheet-dim: rgba(6, 10, 16, 0.58);
  /* 弹层遮罩：仅压暗，不加雾化（新弹窗统一用此变量） */
  --modal-scrim: rgba(6, 10, 16, 0.55);
  --sheet-shadow: 0 12px 40px rgba(15, 24, 32, 0.22);
  --shadow: 0 3px 14px rgba(0, 0, 0, 0.08), 0 1px 3px rgba(0, 0, 0, 0.05);
  /* 交易页堆叠卡：轻抬升，避免在 10px 边距 + overflow clip 下阴影被裁成「方框晕」 */
  --card-home-elev: 0 1px 2px rgba(0, 0, 0, 0.05);
  /* 实色点缀：白天近黑（贴 OKX），夜间用实色亮绿仅作选中点缀，不作洗底 */
  --teal: #000000;
  --teal-bg: #f5f5f5;
  /* 涨跌默认=工具旧色（偏重）；颜色设置可切 OKX 原色，全局 --up/--down */
  --ct-mm-gate-on: #0f7a6a;
  --up: #0f7a6a;
  --up-solid: #0a5c50;
  --down: #c0392b;
  --down-solid: #a83228;
  --warn: #b7791f;
  --chip-bg: #f5f5f5;
  --chip-hover: #ebebeb;
  --solid-bg: #e8e8e8;
  --solid-fg: #000000;
  --ok-soft: #f5f5f5;
  --ok-border: rgba(0, 0, 0, 0.12);
  --font: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", "Figtree", sans-serif;
  --font-en: "Figtree", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --safe-b: env(safe-area-inset-bottom, 0px);
  /* 底栏高度预留；可视间隙不宜过大，短页会显得空 */
  --dock-h: 68px;
  --dock-gap: 12px;
  /* 层叠：氛围图 < 主内容 < hero按钮 < 展开气泡 < 模态
   * 手机抽屉（仓位/明细）= 12080；body 挂载气泡须更高，否则沉到抽屉下 */
  --z-deco: 0;
  --z-main: 2;
  --z-hero: 5;
  --z-hero-cta: 7;
  --z-tip-escape: 45;
  /* 气泡须高于手机抽屉(12080)与杠杆/账单层(13120) */
  --z-tip-fixed: 13250;
  --z-drawer-mobile: 12080;
  --z-modal-above-drawer: 13120;
  -webkit-font-smoothing: antialiased;
  /* 禁双击放大；配合 viewport user-scalable=no 锁死手机缩放 */
  touch-action: manipulation;
  /* 电脑触控板双指左右滑留给页面内平移，不触发浏览器返回/前进箭头 */
  overscroll-behavior-x: none;
}

html[data-locale="en"],
html[data-locale="ja"],
html[data-locale="ko"],
html[data-locale="vi"],
html[data-locale="en"] body,
html[data-locale="ja"] body,
html[data-locale="ko"] body,
html[data-locale="vi"] body,
html[data-locale="en"] .app,
html[data-locale="ja"] .app,
html[data-locale="ko"] .app,
html[data-locale="vi"] .app,
html[data-locale="en"] .data-hub,
html[data-locale="ja"] .data-hub,
html[data-locale="ko"] .data-hub,
html[data-locale="vi"] .data-hub {
  font-family: var(--font-en);
}

/* 挂 body 的说明气泡：默认跟 --z-tip-fixed；打开弹层时由 resolveStackZ 再抬到「当前最顶层 + 40」 */
body > .fold-tip.fold-tip-portal,
body > .ui-help-tip.ui-help-tip-portal,
body > .info-pop.info-pop-portal,
body > .bias-tip.bias-tip-fixed,
body > .pos-heal-pop-portal,
body > .hold-heal-pop-portal,
body > .run-stats-pop-portal,
body > .status-bubble-portal {
  z-index: var(--z-tip-fixed, 13250) !important;
}

body {
  background: var(--bg);
}
/* 手机端：填写框 / 下拉字号约 14px，浏览更合适（原 16px 偏大易挤窄） */


@media (max-width: 899px) {
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]):not([type="hidden"]):not([type="button"]):not([type="submit"]):not([type="reset"]),
  select:not(.flow-filter-select):not(.pnl-account-select):not(.pnl-range-select):not(.radar-symbol-sel):not(.radar-venue-sel):not(.radar-win-sel):not(.radar-regime-sel):not(.okx-factor-sel):not(.me-pnl-account-select):not(.kline-acct-sel):not(.kline-period-sel),
  textarea {
    font-size: 14px !important;
  }
}

.shell { min-height: 100vh; display: flex; justify-content: center; }
/* 默认隐藏侧栏（管理/进化页）；工具首页含 .dock 时手机用 contents 只露出底栏 */

.brand-rail { display: none; }
.brand-rail:has(> .dock) { display: contents; }
.brand-rail-identity { display: none; }

.app {
  position: relative;
  width: 100%;
  max-width: min(460px, 100%);
  min-width: 0;
  min-height: 100vh;
  overflow-x: clip;
  /* 必须大于底栏高度，否则最后一张卡会贴栏；勿再小于旧值 92px */
  padding: 18px 10px calc(var(--dock-h) + var(--dock-gap) + var(--safe-b));
  isolation: isolate;
  container-type: inline-size;
  container-name: fund-app;
}
/* 右上角：简化盈亏走势（原 ETH 装饰位，同尺寸可点） */


.hero-kline {
  position: absolute;
  top: -6px;
  right: -20px;
  width: min(320px, 88vw);
  height: 240px;
  z-index: 0;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  pointer-events: none;
  opacity: 0.9;
  -webkit-mask-image: linear-gradient(
    to top right,
    #000 0%,
    rgba(0, 0, 0, 0.88) 34%,
    rgba(0, 0, 0, 0.45) 62%,
    rgba(0, 0, 0, 0.12) 82%,
    transparent 96%
  );
  mask-image: linear-gradient(
    to top right,
    #000 0%,
    rgba(0, 0, 0, 0.88) 34%,
    rgba(0, 0, 0, 0.45) 62%,
    rgba(0, 0, 0, 0.12) 82%,
    transparent 96%
  );
  filter: blur(0.35px);
}
/* 氛围图垫底；主区/按钮必须压在其上（勿用过低负层级，部分浏览器会穿模） */

#hero-eth-deco.hero-kline {
  z-index: 0;
  pointer-events: none;
  /* 略缩小一档；白天再压低存在感 */
  width: 308px;
  min-width: 308px;
  height: 231px;
  min-height: 231px;
  flex-shrink: 0;
  /* 白天：整体再压低显示度 */
  opacity: 0.48;
  filter: brightness(0.92) saturate(0.95) contrast(1.02);
}
/* 夜间：整体再压低显示度，仍弱于正文 */

html[data-theme="dark"] #hero-eth-deco.hero-kline {
  z-index: 0;
  opacity: 0.4;
  filter: brightness(1.7) saturate(0.65) contrast(1.02) blur(0.2px);
  -webkit-mask-image: linear-gradient(
    to top right,
    #000 0%,
    rgba(0, 0, 0, 0.92) 40%,
    rgba(0, 0, 0, 0.58) 68%,
    rgba(0, 0, 0, 0.22) 86%,
    transparent 98%
  );
  mask-image: linear-gradient(
    to top right,
    #000 0%,
    rgba(0, 0, 0, 0.92) 40%,
    rgba(0, 0, 0, 0.58) 68%,
    rgba(0, 0, 0, 0.22) 86%,
    transparent 98%
  );
}
/* 电脑端：与持仓雷达同幅向左（right 同档），避免产品/帮助右上仍贴边 */

@media (min-width: 900px) {
  #hero-eth-deco.hero-kline {
    top: clamp(-6px, -1cqi, -2px);
    right: clamp(2px, 1.2cqi, 10px);
    width: 308px;
    min-width: 308px;
    height: 231px;
    min-height: 231px;
  }
}
@supports not (width: 1cqi) {
  @media (min-width: 900px) {
    #hero-eth-deco.hero-kline {
      top: -4px;
      right: 6px;
      width: 308px;
      min-width: 308px;
      height: 231px;
      min-height: 231px;
    }
  }
}
/* 手机：固定 308×231，略缩小 */

@media (max-width: 720px) {
  #hero-eth-deco.hero-kline {
    top: -6px;
    right: -12px;
    width: 308px;
    min-width: 308px;
    height: 231px;
    min-height: 231px;
    aspect-ratio: auto;
    /* 白天手机：整体再淡 */
    opacity: 0.42;
    filter: brightness(0.94) saturate(0.98) contrast(1.04);
    -webkit-mask-image: linear-gradient(
      to top right,
      #000 0%,
      rgba(0, 0, 0, 0.94) 40%,
      rgba(0, 0, 0, 0.58) 68%,
      rgba(0, 0, 0, 0.2) 86%,
      transparent 97%
    );
    mask-image: linear-gradient(
      to top right,
      #000 0%,
      rgba(0, 0, 0, 0.94) 40%,
      rgba(0, 0, 0, 0.58) 68%,
      rgba(0, 0, 0, 0.2) 86%,
      transparent 97%
    );
  }
  html[data-theme="dark"] #hero-eth-deco.hero-kline {
    opacity: 0.36;
    /* 夜间手机：整体再淡 */
    filter: brightness(1.65) saturate(0.62) contrast(1.02);
    -webkit-mask-image: linear-gradient(
      to top right,
      #000 0%,
      rgba(0, 0, 0, 0.9) 38%,
      rgba(0, 0, 0, 0.5) 66%,
      rgba(0, 0, 0, 0.16) 86%,
      transparent 98%
    );
    mask-image: linear-gradient(
      to top right,
      #000 0%,
      rgba(0, 0, 0, 0.9) 38%,
      rgba(0, 0, 0, 0.5) 66%,
      rgba(0, 0, 0, 0.16) 86%,
      transparent 98%
    );
  }
  #hero-eth-deco.hero-kline svg {
    width: 308px;
    height: 231px;
    display: block;
    max-width: none;
    max-height: none;
    flex-shrink: 0;
    object-fit: contain;
    shape-rendering: geometricPrecision;
    overflow: visible;
  }
}
.hero-kline[hidden] {
  display: none !important;
}
/* 桌面最大档：比原 384×288 收一档；略向左，STRUCT 与下方持仓卡右缘对齐 */


@media (min-width: 900px) {
  html:has(#tab-home.on) #hero-kline-spark.hero-kline-spark {
    top: clamp(-8px, -1cqi, -2px);
    right: clamp(0px, 0.6cqi, 8px);
    width: clamp(318px, min(32vw, 38cqi), 400px);
    height: clamp(72px, min(14vw, 18cqi), 276px);
    padding:
      clamp(8px, 1.4cqi, 12px)
      clamp(8px, 1.5cqi, 12px)
      0
      clamp(12px, 2cqi, 16px);
  }
}
@media (max-width: 899px) {
  html:has(#tab-home.on) #hero-kline-spark.hero-kline-spark {
    display: block;
    visibility: visible;
    pointer-events: none;
    top: 12px;
    right: -2px;
    width: clamp(158px, 48vw, 196px);
    height: clamp(92px, 26vw, 122px);
    padding: 5px 7px 0 12px;
    z-index: var(--z-hero-cta);
    filter: none;
    opacity: 0.92;
  }
  html:has(#tab-home.on) .app > .hero .earn-block,
  html:has(#tab-accounts.on) .app > .hero .earn-block {
    box-sizing: border-box;
    padding-right: var(--earn-pnl-reserve, clamp(142px, 42vw, 188px));
  }
  html:has(#tab-accounts.on) .app > .hero .earn-block {
    padding-right: var(--earn-pnl-reserve, clamp(158px, 48vw, 210px));
  }
  html:has(#tab-home.on) .app > .hero #total-pnl.earn,
  html:has(#tab-accounts.on) .app > .hero #total-pnl.earn {
    display: block;
    width: 100%;
    max-width: none;
    white-space: nowrap;
    overflow: visible;
    box-sizing: border-box;
    padding-inline-end: 0.08em;
    font-size: clamp(32px, 9.6vw, 48px);
    letter-spacing: -0.035em;
    text-overflow: clip;
  }
}
@supports not (width: 1cqi) {
  @media (min-width: 900px) {
    html:has(#tab-home.on) #hero-kline-spark.hero-kline-spark {
      top: -6px;
      right: 4px;
      width: clamp(318px, 30vw, 400px);
      height: clamp(72px, 14vw, 276px);
      padding: 10px 10px 0 14px;
    }
  }
}
/* 持仓页：全部开始/停止与产品、账户页同比例（1.4fr / 1fr）；桌面跟主区同宽 */


@media (min-width: 900px) {
  html:has(#tab-home.on) .hero-cta,
  html:has(#tab-strategy.on) .hero-cta,
  html:has(#tab-accounts.on) .hero-cta,
  html:has(#tab-guide.on) .hero-cta {
    max-width: none;
    width: 100%;
    grid-template-columns: 1fr 1fr;
    max-width: min(640px, 100%);
  }
  /* 交易页：停止钮略窄，避免顶到右上角走势；走势左右位置不动 */
  html:has(#tab-home.on) .hero-cta {
    grid-template-columns: 1.4fr 1fr;
  }
}
/* 账户页盈亏走势：位置固定右上角
   手机：top 兜底；精确位置由 alignPnlHeroSparkToEarn 把画布底与 #total-pnl 底对齐。
   桌面见下方 min-width:900。 */


.hero-kline-pnl {
  top: clamp(-10px, -1cqi, 0px);
  right: clamp(-10px, -3cqi, -2px);
  width: clamp(200px, 54cqi, 248px);
  /* 略矮：折线底更容易与盈亏数字底齐，避免大画布上空下空 */
  height: clamp(112px, 32cqi, 148px);
  padding:
    clamp(6px, 2cqi, 10px)
    clamp(8px, 2.5cqi, 12px)
    clamp(4px, 1.5cqi, 8px)
    clamp(12px, 4cqi, 20px);
  pointer-events: none;
  cursor: default;
  opacity: 0.92;
  filter: none;
  overflow: visible;
  /* 须高于 .app > .main（--z-main:2），否则透明热区也点不穿 */
  z-index: var(--z-hero-cta);
  -webkit-mask-image: none;
  mask-image: none;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}
/* 资产页盈亏缩略：不依赖 :has，hidden 时仍不参与点击 */

#pnl-hero-hit.hero-kline-pnl:not([hidden]) {
  z-index: var(--z-hero-cta);
  pointer-events: none;
}
/* 对齐用的大按钮框可盖住左侧 hero；仅折线画布接收点击 */
#pnl-hero-hit:not([hidden]) .pnl-hero-canvas,
#hero-kline-spark:not([hidden]) .pnl-hero-canvas {
  pointer-events: auto;
  cursor: pointer;
  touch-action: manipulation;
}
@supports not (width: 1cqi) {
  .hero-kline-pnl {
    top: -6px;
    right: max(-16px, calc(-4vw));
    width: clamp(200px, 58vw, 248px);
    height: clamp(112px, 34vw, 148px);
    padding: 8px 10px 6px 18px;
  }
}
/* 缩略图周期角标已去掉（周期仍：手机24h / 电脑7天） *//* 桌面：缩略图略收一档（近7天横轴） */


@media (min-width: 900px) {
  .hero-kline-pnl {
    top: clamp(-4px, -0.8cqi, -1px);
    right: clamp(2px, 1.2cqi, 10px);
    width: clamp(252px, min(27vw, 32cqi), 308px);
    height: clamp(124px, min(13vw, 15cqi), 152px);
    padding:
      clamp(8px, 1.5cqi, 12px)
      clamp(10px, 1.8cqi, 14px)
      clamp(10px, 1.9cqi, 14px)
      clamp(12px, 2cqi, 16px);
  }
  html:has(#tab-accounts.on) .hero-kline-pnl {
    width: clamp(252px, min(27vw, 32cqi), 308px);
    height: clamp(124px, min(13vw, 15cqi), 152px);
  }
}
@supports not (width: 1cqi) {
  @media (min-width: 900px) {
    .hero-kline-pnl {
      top: -3px;
      right: 6px;
      width: clamp(252px, 25vw, 308px);
      height: clamp(124px, 12vw, 152px);
      padding: 10px 12px 12px 14px;
    }
  }
}
.hero-kline-pnl:hover {
  opacity: 1;
}
.hero-kline-pnl:focus-visible {
  outline: 2px solid var(--teal);
  outline-offset: 2px;
}
.pnl-hero-spark,
.hero-kline svg {
  display: block;
  width: 100%;
  height: 100%;
  opacity: 1;
}
/* 交易页 Mark 缩略：禁止 SVG 光晕/filter，与资产页盈亏荧光区分 */
#hero-kline-spark .pnl-hero-spark,
#hero-kline-spark-svg,
#hero-kline-spark-svg path {
  filter: none !important;
}
.pnl-hero-canvas {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
}
.pnl-hero-tips {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: visible;
}
.hero-kline-pnl:hover {
  opacity: 1;
}
/* 盈亏中版：嵌在「今日净盈亏」下方，与账户卡同宽，页面底板作背景 */


.pnl-mid-sheet {
  display: none;
  width: 100%;
  margin: 0 0 4px;
  padding: 0;
  box-sizing: border-box;
  background: transparent;
  border: 0;
  box-shadow: none;
}
.pnl-mid-sheet.on {
  display: block;
}
.pnl-mid-sheet[hidden] {
  display: none !important;
}
body.pnl-mid-open #pnl-hero-hit {
  visibility: hidden;
  pointer-events: none;
}
body.pnl-mid-open #pnl-hero-tips,
.hero-kline-pnl .pnl-hero-tips {
  display: none !important;
  pointer-events: none !important;
}
/* 展开后贴紧数字，手机/电脑同一套间距 */

body.pnl-mid-open .app > .hero .earn-block,
body.pnl-mid-open .app > .hero .earn {
  margin-bottom: 0;
  padding-bottom: 0;
}
.pnl-mid-chart {
  appearance: none;
  display: block;
  width: 100%;
  height: clamp(118px, 18vh, 156px);
  border: 0;
  padding: 0;
  margin: 0;
  background: transparent;
  cursor: pointer;
  border-radius: 0;
  overflow: hidden;
}
.pnl-mid-spark {
  display: block;
  width: 100%;
  height: 100%;
}
.pnl-mid-ranges {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 6px;
  margin-top: 10px;
}
.pnl-mid-range {
  appearance: none;
  border: 0;
  background: transparent;
  color: var(--muted, #8a97a3);
  font: inherit;
  font-size: 13px;
  font-weight: 650;
  padding: 6px 12px;
  border-radius: 999px;
  cursor: pointer;
}
.pnl-mid-range.on {
  color: var(--ink, #e8eef4);
  background: color-mix(in srgb, #ffffff 10%, transparent);
}
html:not([data-theme="dark"]) .pnl-mid-range.on {
  background: var(--chip-bg, #f5f5f5);
  color: var(--muted, #4d4d4d);
}
.pnl-mid-fold {
  appearance: none;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin-top: 2px;
  padding: 6px 0 2px;
  border: 0;
  background: none;
  color: var(--muted, #8a97a3);
  cursor: pointer;
}
.pnl-mid-fold:hover {
  color: var(--ink, #e8eef4);
}

.hero-kline-pnl.is-lifted,
body.pnl-mid-open .hero-kline-pnl {
  z-index: 7;
  overflow: visible;
}
.pnl-anchor {
  position: absolute;
  width: 36px;
  height: 36px;
  margin: -18px 0 0 -18px;
  border: 0;
  padding: 0;
  background: transparent;
  pointer-events: auto;
  cursor: pointer;
  z-index: 8;
  color: #d4535c;
}
.pnl-anchor.tone-up { color: var(--up); }
.pnl-anchor.tone-down { color: var(--down); }
.pnl-anchor::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 8px;
  height: 8px;
  margin: -4px 0 0 -4px;
  border-radius: 50%;
  background: currentColor;
  border: 1.5px solid var(--panel, #fff);
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.08);
  opacity: 0;
  transform: scale(0.85);
  transition: opacity 0.12s ease, transform 0.12s ease;
  pointer-events: none;
}
.pnl-anchor:hover::before,
.pnl-anchor:focus-visible::before,
.pnl-anchor.is-on::before {
  opacity: 1;
  transform: scale(1);
}
.pnl-tip {
  position: absolute;
  left: 50%;
  top: calc(100% + 8px);
  transform: translateX(-50%);
  --pnl-tip-arrow-dx: 0px;
  min-width: 76px;
  max-width: 130px;
  padding: 5px 8px;
  border-radius: 8px;
  background: #000;
  color: #f4faf8;
  font-size: 10px;
  line-height: 1.3;
  font-weight: 600;
  letter-spacing: 0.01em;
  white-space: nowrap;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.4);
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.12s ease;
  z-index: 9;
}
.pnl-anchor:hover .pnl-tip,
.pnl-anchor:focus-visible .pnl-tip,
.pnl-anchor.is-on .pnl-tip {
  opacity: 1;
  visibility: visible;
}
.pnl-tip b {
  display: block;
  font-size: 11px;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
}
.pnl-tip.up b { color: #7ddec8; }
.pnl-tip.down b { color: #f0a09a; }
.pnl-tip::after {
  content: "";
  position: absolute;
  /* 气泡被贴边平移时，箭头反向补偿，始终对准圆点 */
  left: calc(50% + var(--pnl-tip-arrow-dx, 0px));
  top: -5px;
  bottom: auto;
  width: 0;
  height: 0;
  margin-left: 0;
  background: none;
  border-style: solid;
  border-width: 0 6px 6px 6px;
  border-color: transparent transparent #000 transparent;
  border-radius: 0;
  transform: translateX(-50%);
  box-shadow: none;
  pointer-events: none;
}
.pnl-tip.is-above {
  top: auto;
  bottom: calc(100% + 8px);
}
.pnl-tip.is-above::after {
  top: auto;
  bottom: -5px;
  border-width: 6px 6px 0 6px;
  border-color: #000 transparent transparent transparent;
  transform: translateX(-50%);
}
.pnl-pop-chart-wrap {
  position: relative;
  width: 100%;
  margin: 0;
  padding: 0 0 2px;
  border-radius: 0;
  /* 与盈亏弹窗顶栏/底栏同色，整窗一体；勿用 panel-2 嵌套面 */
  background: var(--panel);
  min-height: 0;
  box-sizing: border-box;
  overflow: hidden;
  transition: opacity 0.18s ease;
}
.pnl-pop-chart-wrap.is-soft-loading,
#pnl-hub-rates.is-soft-loading {
  opacity: 0.72;
  pointer-events: none;
}
.pnl-pop-chart-wrap.is-soft-loading::after,
#pnl-hub-rates.is-soft-loading::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(
    100deg,
    transparent 30%,
    color-mix(in srgb, var(--accent, #3d8bfd) 8%, transparent) 50%,
    transparent 70%
  );
  background-size: 200% 100%;
  animation: pnl-soft-shimmer 1.1s ease-in-out infinite;
}
@keyframes pnl-soft-shimmer {
  0% { background-position: 100% 0; }
  100% { background-position: -100% 0; }
}
#pnl-hub-rates {
  position: relative;
}
.pnl-pop-chart-wrap .pnl-spark-lg {
  width: 100%;
  height: clamp(280px, 48vh, 520px);
  min-height: 260px;
  display: block;
  background: transparent;
  border-radius: 0;
  overflow: hidden;
}
.pnl-fee-toggle {
  position: static;
  flex: 0 0 auto;
  height: 28px;
  min-width: 28px;
  padding: 0 8px;
  border: 1px solid rgba(122, 136, 148, 0.35);
  border-radius: 8px;
  background: transparent;
  color: #7a8894;
  font: inherit;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.02em;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 2;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
  user-select: none;
}
.pnl-fee-toggle:hover,
.pnl-fee-toggle:focus-visible {
  color: #d97706;
  border-color: rgba(217, 119, 6, 0.5);
  outline: none;
}
.pnl-fee-toggle.on {
  color: #d97706;
  border-color: rgba(217, 119, 6, 0.55);
  background: rgba(245, 158, 11, 0.12);
}
.pnl-gross-toggle {
  position: static;
  flex: 0 0 auto;
  height: 28px;
  min-width: 28px;
  padding: 0 8px;
  border: 1px solid rgba(122, 136, 148, 0.35);
  border-radius: 8px;
  background: transparent;
  color: #7a8894;
  font: inherit;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.02em;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 2;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
  user-select: none;
}
.pnl-gross-toggle:hover,
.pnl-gross-toggle:focus-visible {
  color: #64748b;
  border-color: rgba(100, 116, 139, 0.5);
  outline: none;
}
.pnl-gross-toggle.on {
  color: #475569;
  border-color: rgba(100, 116, 139, 0.55);
  background: rgba(148, 163, 184, 0.18);
  border-style: dashed;
}
.pnl-fee-hud {
  position: absolute;
  left: 10px;
  top: 8px;
  z-index: 6;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  max-width: min(72%, 280px);
  padding: 3px 8px;
  border-radius: 6px;
  background: rgba(225, 29, 72, 0.12);
  border: 1px solid rgba(225, 29, 72, 0.35);
  color: #e11d48;
  font-size: 11px;
  font-weight: 800;
  line-height: 1.2;
  font-variant-numeric: tabular-nums;
  pointer-events: none;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  box-sizing: border-box;
}
.pnl-fee-hud[hidden] {
  display: none !important;
}
.pnl-fee-hud-sep {
  opacity: 0.55;
  font-weight: 600;
}
.pnl-fee-hud-ratio {
  color: #be123c;
  font-weight: 700;
}
html[data-theme="dark"] .pnl-fee-hud {
  background: rgba(225, 29, 72, 0.16);
  border-color: rgba(251, 113, 133, 0.4);
  color: #fb7185;
}
html[data-theme="dark"] .pnl-fee-hud-ratio {
  color: #fda4af;
}
@media (max-width: 720px) {
  .pnl-fee-hud {
    left: 6px;
    top: 6px;
    padding: 2px 6px;
    font-size: 10px;
    max-width: min(78%, 220px);
  }
}
.pnl-chart-zoom {
  position: static;
  flex: 0 0 auto;
  width: 32px;
  height: 32px;
  min-width: 32px;
  padding: 0;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #7a8894;
  box-shadow: none !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 2;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}
.pnl-chart-zoom svg {
  width: 18px;
  height: 18px;
  display: block;
  pointer-events: none;
}
.pnl-chart-zoom:hover,
.pnl-chart-zoom:focus-visible {
  color: var(--up);
  background: transparent !important;
  outline: none;
}
.pnl-chart-zoom.is-out {
  background: transparent !important;
  box-shadow: none !important;
  color: var(--up);
}
.pnl-hub-subbar {
  display: flex;
  align-items: center;
  justify-content: flex-start !important;
  gap: 4px;
  padding: 0 12px 2px;
  flex: 0 0 auto;
  min-width: 0;
  width: 100%;
  box-sizing: border-box;
  position: relative;
  z-index: 2;
  background: transparent;
}
.pnl-hub-subbar[hidden] {
  display: none !important;
}
.pnl-hub-subbar .pnl-pop-delta {
  display: none !important;
}
/* 未全屏：图例靠最左；放大镜单独贴右 */

.pnl-hub-subbar .pnl-series-legend {
  margin-left: 0;
  margin-right: auto;
  order: 0;
  justify-content: flex-start;
}
.pnl-hub-subbar .pnl-chart-zoom {
  order: 2;
  margin-left: auto;
}
.pnl-series-legend {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  flex: 0 0 auto !important;
  width: auto !important;
  max-width: none;
  min-width: 0;
  padding: 0;
  margin: 0;
  border: 0;
  border-radius: 0;
  background: transparent !important;
  box-shadow: none !important;
  box-sizing: border-box;
}
.pnl-leg-item {
  appearance: none;
  border: 0;
  background: transparent !important;
  color: #7a8894;
  font: inherit;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.01em;
  line-height: 1;
  height: 28px;
  padding: 0 2px;
  border-radius: 0;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  cursor: pointer;
  white-space: nowrap;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
  user-select: none;
  box-shadow: none !important;
  transition: color 0.15s ease, opacity 0.15s ease;
}
.pnl-leg-item:hover,
.pnl-leg-item:focus-visible {
  background: transparent !important;
  outline: none;
}
.pnl-leg-item.off {
  opacity: 0.38;
  color: #7a8894;
}
.pnl-leg-item.on {
  opacity: 1;
  background: transparent !important;
}
.pnl-leg-swatch {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  display: inline-block;
  flex: 0 0 auto;
  box-shadow: none;
}
.pnl-leg-swatch.is-net { background: var(--up); }
.pnl-leg-swatch.is-gross { background: #12b76a; }
.pnl-leg-swatch.is-vol { background: #3b82f6; }
.pnl-leg-swatch.is-fee { background: #d97706; }
.pnl-leg-item.is-net.on { color: var(--up); }
.pnl-leg-item.is-gross.on { color: #12b76a; }
.pnl-leg-item.is-vol.on { color: #3b82f6; }
.pnl-leg-item.is-fee.on { color: #d97706; }
.pnl-leg-name { font-weight: 700; }
html[data-theme="dark"] .pnl-series-legend {
  background: transparent;
  border: 0;
}
html[data-theme="dark"] .pnl-leg-item { color: var(--muted); }
html[data-theme="dark"] .pnl-leg-item.on {
  background: transparent !important;
}
html[data-theme="dark"] .pnl-leg-item.off { color: #7a8894; }
html[data-theme="dark"] .pnl-leg-item.is-net.on { color: #2dd4bf; }
html[data-theme="dark"] .pnl-leg-item.is-gross.on { color: #34d399; }
html[data-theme="dark"] .pnl-leg-item.is-vol.on { color: #60a5fa; }
html[data-theme="dark"] .pnl-leg-item.is-fee.on { color: #fbbf24; }
.pnl-hub-head-right .pnl-series-legend {
  margin-right: 2px;
}
@media (max-width: 720px) {
  .pnl-leg-item { padding: 0 1px; font-size: 11px; height: 26px; gap: 4px; }
  .pnl-series-legend { gap: 8px; }
}
.pnl-fee-toggle,
.pnl-gross-toggle { display: none !important; }
/* 放大态：仍保留顶栏两排；第二排继续左累计 / 右放大退出，不改浮到角落 */

.pnl-hub-card.pnl-chart-zoomed {
  position: relative;
}
.pnl-hub-card.pnl-chart-zoomed .pnl-hub-head {
  display: flex !important;
  flex-shrink: 0;
}
.pnl-hub-card.pnl-chart-zoomed .pnl-hub-subbar {
  position: relative !important;
  top: auto !important;
  right: auto !important;
  left: auto !important;
  width: 100% !important;
  padding: 0 12px 2px !important;
  display: flex !important;
  align-items: center;
  justify-content: flex-end !important;
  background: transparent;
  z-index: 3;
}
/* 全屏：跟盈亏弹窗同底（夜间 --bg #000，白天白） */

.pnl-hub-card.pnl-chart-zoomed .pnl-hub-head,
.pnl-hub-card.pnl-chart-zoomed .pnl-hub-body,
.pnl-hub-card.pnl-chart-zoomed .pnl-hub-subbar,
.pnl-hub-card.pnl-chart-zoomed .pnl-pop-chart-wrap,
.pnl-hub-card.pnl-chart-zoomed #pnl-hub-trend,
.pnl-hub-card.pnl-chart-zoomed .pnl-pop-chart-wrap .pnl-spark-lg,
.fee-tip-modal.pnl-hub-sheet.is-page,
.fee-tip-modal.pnl-hub-sheet.is-page .pnl-hub-head,
.fee-tip-modal.pnl-hub-sheet.is-page .pnl-hub-body,
.fee-tip-modal.pnl-hub-sheet.is-page .pnl-pop-chart-wrap,
.fee-tip-modal.pnl-hub-sheet.is-page #pnl-hub-trend,
.fee-tip-modal.pnl-hub-sheet.is-page .pnl-pop-chart-wrap .pnl-spark-lg,
.fee-tip-modal.pnl-hub-sheet.is-page .fee-sheet.pnl-hub-card {
  background: var(--bg) !important;
}
.pnl-hub-card.pnl-chart-zoomed .pnl-hub-subbar .pnl-pop-delta {
  display: none !important;
  visibility: hidden !important;
}
.pnl-hub-card.pnl-chart-zoomed .pnl-hub-body {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  padding-bottom: 0;
  position: relative;
}
.pnl-hub-card.pnl-chart-zoomed #pnl-hub-trend {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.pnl-hub-card.pnl-chart-zoomed .pnl-pop-chart-wrap {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  align-items: stretch;
  justify-content: stretch;
  padding: 0 0 max(8px, env(safe-area-inset-bottom, 0px));
}
.pnl-hub-card.pnl-chart-zoomed .pnl-pop-chart-wrap .pnl-spark-lg {
  max-height: none;
  min-height: 0;
  height: 100%;
  width: 100%;
  aspect-ratio: auto;
}
.pnl-pop-hover-tip {
  position: absolute;
  z-index: 5;
  pointer-events: none;
  min-width: 88px;
  padding: 6px 8px;
  border-radius: 8px;
  background: rgba(20, 36, 44, 0.92);
  color: #fff;
  font-size: 11px;
  line-height: 1.35;
  font-weight: 600;
  transform: translate(-50%, calc(-100% - 10px));
  opacity: 0;
  visibility: hidden;
}
.pnl-pop-hover-tip.on {
  opacity: 1;
  visibility: visible;
}
.pnl-pop-hover-tip b {
  display: block;
  font-size: 12px;
  font-weight: 800;
}
.pnl-pop-hover-tip.up b { color: #7ddec8; }
.pnl-pop-hover-tip.down b { color: #f0a09a; }

.pnl-pop-chart-wrap.pnl-chart-interactive {
  cursor: crosshair;
  touch-action: none;
  -webkit-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
}
.pnl-pop-chart-wrap.pnl-chart-interactive .pnl-spark-lg {
  touch-action: none;
  -webkit-user-select: none;
  user-select: none;
}
.pnl-pop-chart-wrap.pnl-chart-interactive.is-panning {
  cursor: grabbing;
}
.pnl-pop-chart-wrap.pnl-chart-interactive.is-y-scale {
  cursor: ns-resize;
}
/* 右侧纵轴：十字线针值（对齐 K 线 axisPointer 灰底白字） */

.pnl-y-badge {
  position: absolute;
  right: 4px;
  z-index: 6;
  transform: translateY(-50%);
  margin: 0;
  padding: 3px 7px 2px;
  min-width: 58px;
  max-width: calc(100% - 8px);
  box-sizing: border-box;
  text-align: center;
  font-size: 10px;
  font-weight: 700;
  line-height: 1.25;
  font-variant-numeric: tabular-nums;
  color: #fff;
  background: rgba(30, 41, 59, 0.88);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 2px;
  pointer-events: none;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.22);
  white-space: nowrap;
}
html[data-theme="dark"] .pnl-y-badge {
  background: rgba(20, 26, 34, 0.92);
  border-color: rgba(255, 255, 255, 0.1);
}
.pnl-y-badge.is-up,
.pnl-y-badge.is-down {
  background: rgba(30, 41, 59, 0.88);
  color: #fff;
}
html[data-theme="dark"] .pnl-y-badge.is-up,
html[data-theme="dark"] .pnl-y-badge.is-down {
  background: rgba(20, 26, 34, 0.92);
}
/* 底部横轴：十字线时间（对齐 K 线 axisPointer） */

.pnl-x-badge {
  position: absolute;
  z-index: 6;
  transform: translate(-50%, -50%);
  margin: 0;
  padding: 3px 6px 2px;
  box-sizing: border-box;
  text-align: center;
  font-size: 10px;
  font-weight: 700;
  line-height: 1.25;
  font-variant-numeric: tabular-nums;
  color: #fff;
  background: rgba(30, 41, 59, 0.88);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 2px;
  pointer-events: none;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.22);
  white-space: nowrap;
}
html[data-theme="dark"] .pnl-x-badge {
  background: rgba(20, 26, 34, 0.92);
  border-color: rgba(255, 255, 255, 0.1);
}
/* 实时净盈亏钉在右轴：数字变长时像深灰针签一样向左延伸，不锁死在右轴 gutter 宽 */

.pnl-live-badge {
  position: absolute;
  right: 4px;
  z-index: 7;
  transform: translateY(-50%);
  margin: 0;
  padding: 3px 7px 2px;
  min-width: 58px;
  width: auto;
  max-width: min(46%, 220px);
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1px;
  text-align: center;
  font-size: 10px;
  font-weight: 700;
  line-height: 1.2;
  font-variant-numeric: tabular-nums;
  color: #fff;
  background: transparent;
  border-radius: 2px;
  pointer-events: none;
  box-shadow: none;
  white-space: nowrap;
}
/* display:flex 会盖掉 UA 的 [hidden]，关系列时针签必须真正消失 */

.pnl-live-badge[hidden] {
  display: none !important;
}
.pnl-live-badge.is-up,
.pnl-live-badge.is-down {
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.24);
}
.pnl-live-badge-val {
  display: block;
  font-size: 10px;
  font-weight: 700;
  line-height: 1.2;
}
.pnl-live-badge-time {
  display: block;
  font-size: 9px;
  font-weight: 600;
  line-height: 1.1;
  opacity: 0.92;
  letter-spacing: 0.02em;
}
.pnl-live-badge.is-up { background: var(--up-solid, var(--up)); color: #fff !important; }
.pnl-live-badge.is-down { background: var(--down-solid, var(--down)); color: #fff !important; }
.pnl-live-badge.is-vol {
  background: #3b82f6;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.22);
  gap: 1px;
  flex-direction: column;
  align-items: center;
  padding: 3px 7px 2px;
  min-width: 58px;
}
html:not([data-theme="dark"]) .pnl-live-badge.is-vol { background: #2563eb; }
/* 管理员分佣：值在上、时间在下（勿跟工具端手续费签的横向 lab+val） */

#admin-rebate-chart-wrap.pnl-pop-chart-wrap {
  overflow: visible;
}
#admin-rebate-svg.pnl-spark-lg {
  overflow: visible;
}
#admin-rebate-chart-wrap .pnl-live-badge {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center;
  gap: 1px;
  text-align: center;
  padding: 3px 7px 2px;
  min-width: 58px;
}
#admin-rebate-chart-wrap .pnl-live-badge-val,
#admin-rebate-chart-wrap .pnl-live-badge-time {
  display: block !important;
  width: 100%;
  text-align: center;
  white-space: nowrap;
}
.pnl-live-badge.is-fee {
  background: #d97706;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.22);
  gap: 2px;
  flex-direction: row;
  align-items: center;
  padding: 2px 6px;
  min-width: 0;
}
.pnl-live-badge.is-fee .pnl-live-badge-lab {
  font-size: 9px;
  font-weight: 800;
  opacity: 0.92;
  letter-spacing: 0.04em;
}
.pnl-live-badge.is-fee .pnl-live-badge-val {
  font-size: 10px;
}
.pnl-live-badge.is-left {
  right: auto;
  left: 0;
  border-radius: 0 2px 2px 0;
}
html:not([data-theme="dark"]) .pnl-live-badge.is-up { background: var(--up-solid, var(--up)); }
html:not([data-theme="dark"]) .pnl-live-badge.is-down { background: var(--down-solid, var(--down)); }
html:not([data-theme="dark"]) .pnl-live-badge.is-fee { background: #d97706; }
/* 手机：实时针线签左右收紧，仅贴内容宽（桌面不变） */


@media (max-width: 720px) {
  .pnl-live-badge {
    right: 2px;
    padding: 1px 3px 1px;
    min-width: 0 !important;
    max-width: min(38%, 118px);
    gap: 0;
    border-radius: 2px;
    font-size: 8px;
    line-height: 1.1;
    letter-spacing: -0.01em;
  }
  .pnl-live-badge-val {
    font-size: 8px;
    font-weight: 700;
    line-height: 1.1;
  }
  .pnl-live-badge-time {
    font-size: 7px;
    font-weight: 600;
    line-height: 1;
    opacity: 0.9;
    letter-spacing: 0;
  }
  .pnl-hub-sheet .pnl-live-badge,
  .pnl-pop-chart-wrap .pnl-live-badge {
    right: 2px;
    padding: 1px 3px 1px;
  }
}

.pnl-live-mark {
  pointer-events: none;
}
.pnl-live-core {
  opacity: 1;
}
.pnl-live-ring {
  opacity: 0.4;
  transform-box: fill-box;
  transform-origin: center;
  animation: pnl-live-pulse 1.35s ease-out infinite;
}
@keyframes pnl-live-pulse {
  0% {
    opacity: 0.5;
    transform: scale(0.55);
  }
  70% {
    opacity: 0.12;
    transform: scale(1.65);
  }
  100% {
    opacity: 0;
    transform: scale(1.9);
  }
}
.pnl-chart-tip {
  position: absolute;
  z-index: 6;
  pointer-events: none;
  box-sizing: border-box;
  width: max-content;
  min-width: 132px;
  max-width: none;
  padding: 8px 12px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.97);
  border: 1px solid rgba(21, 32, 43, 0.1);
  box-shadow: 0 8px 24px rgba(21, 32, 43, 0.12), 0 2px 6px rgba(21, 32, 43, 0.06);
  transform: translate(-50%, calc(-100% - 14px));
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.12s ease;
  white-space: nowrap;
}
.pnl-chart-tip.on {
  opacity: 1;
  visibility: visible;
}
.pnl-chart-tip.flip-below {
  transform: translate(-50%, 14px);
}
.pnl-chart-tip-time {
  font-size: 11px;
  font-weight: 600;
  color: #667788;
  letter-spacing: 0.02em;
  margin-bottom: 4px;
  white-space: nowrap;
}
.pnl-chart-tip-val {
  display: flex;
  flex-wrap: nowrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  font-size: 11px;
  color: #8899aa;
  white-space: nowrap;
}
.pnl-chart-tip-val span {
  flex: 0 0 auto;
  white-space: nowrap;
}
.pnl-chart-tip-val b {
  flex: 0 0 auto;
  font-size: 13px;
  font-weight: 800;
  color: #15202b;
  white-space: nowrap;
}
.pnl-chart-tip.up .pnl-chart-tip-val b { color: var(--up); }
.pnl-chart-tip.down .pnl-chart-tip-val b { color: #d4535c; }
.app > :not(.hero-kline) {
  position: relative;
  z-index: var(--z-main);
}
/* 主操作区 / 卡片明确压在氛围图之上 */

.app > .hero {
  position: relative;
  z-index: var(--z-hero);
}
.app > .panel,
.app .holding,
.app .product {
  position: relative;
  z-index: var(--z-main);
}
/* 底栏必须 fixed（手机）；桌面侧栏内由 @media 覆盖为 relative */

.dock {
  z-index: 200;
}
/* main 必须压过右上角 hero-kline 热区（雷达/盈亏图），否则点折叠箭头会误开研判 */

.app > .main {
  position: relative;
  z-index: var(--z-main);
  isolation: isolate;
}
.hero-cta {
  position: relative;
  z-index: var(--z-hero-cta);
  isolation: isolate;
}
/* 全部开始 / 全部停止：不透明底 + 更高层，盖住右上角图案 */

.hero-cta .btn {
  position: relative;
  z-index: var(--z-hero-cta);
  isolation: isolate;
}
/* 未登录：主按钮变为「登录」，隐藏开始三角 */

#btn-start.is-guest-login .btn-ico,
#btn-start.is-guest-login .btn-spin {
  display: none !important;
}
/*
 * 气泡错层总修复：hero（开始/停止）默认高于 main，导致 main 内 absolute 气泡
 * 再高 z-index 也被压住。任意气泡展开时把 main 抬到 hero 之上。
 */


html:has(.bias-metric.tip-on) .app > .main,
html:has(.bias-metric:hover) .app > .main,
html:has(.fold-q:hover) .app > .main,
html:has(.fold-q:focus-visible) .app > .main,
html:has(.lh-stepper-lab-tip[data-tip-pinned="1"]) .app > .main,
html:has(.ui-help-wrap:hover) .app > .main,
html:has(.ui-help-q:focus-visible) .app > .main,
html:has(.help-q:hover) .app > .main,
html:has(.help-q:focus-visible) .app > .main,
html:has(.radar-kpi-chip:hover) .app > .main,
html:has(.radar-kpi-chip:focus-visible) .app > .main,
html:has(body > .bias-tip.bias-tip-fixed) .app > .main,
html:has(body > .radar-kpi-tip.is-on) .app > .main,
html:has(body > .fold-tip.fold-tip-portal) .app > .main,
html:has(body > .run-stats-pop.run-stats-pop-portal) .app > .main,
html:has(body > .holding-status-bubble.status-bubble-portal) .app > .main,
html:has(body > .hold-heal-pop.hold-heal-pop-portal) .app > .main,
html:has(body > .info-pop.info-pop-portal) .app > .main {
  z-index: var(--z-tip-escape);
}
html:has(.bias-metric.tip-on) .app > .hero,
html:has(.bias-metric:hover) .app > .hero,
html:has(.fold-q:hover) .app > .hero,
html:has(.fold-q:focus-visible) .app > .hero,
html:has(.lh-stepper-lab-tip[data-tip-pinned="1"]) .app > .hero,
html:has(body > .bias-tip.bias-tip-fixed) .app > .hero,
html:has(body > .fold-tip.fold-tip-portal) .app > .hero,
html:has(body > .run-stats-pop.run-stats-pop-portal) .app > .hero,
html:has(body > .holding-status-bubble.status-bubble-portal) .app > .hero,
html:has(body > .hold-heal-pop.hold-heal-pop-portal) .app > .hero,
html:has(body > .info-pop.info-pop-portal) .app > .hero {
  z-index: calc(var(--z-tip-escape) - 10);
}
html:has(.bias-metric.tip-on) .hero-cta,
html:has(.bias-metric:hover) .hero-cta,
html:has(body > .bias-tip.bias-tip-fixed) .hero-cta,
html:has(body > .fold-tip.fold-tip-portal) .hero-cta,
html:has(body > .run-stats-pop.run-stats-pop-portal) .hero-cta,
html:has(body > .holding-status-bubble.status-bubble-portal) .hero-cta,
html:has(body > .hold-heal-pop.hold-heal-pop-portal) .hero-cta,
html:has(body > .info-pop.info-pop-portal) .hero-cta,
html:has(.bias-metric.tip-on) .hero-cta .btn,
html:has(.bias-metric:hover) .hero-cta .btn,
html:has(body > .bias-tip.bias-tip-fixed) .hero-cta .btn,
html:has(body > .fold-tip.fold-tip-portal) .hero-cta .btn,
html:has(body > .run-stats-pop.run-stats-pop-portal) .hero-cta .btn,
html:has(body > .holding-status-bubble.status-bubble-portal) .hero-cta .btn,
html:has(body > .hold-heal-pop.hold-heal-pop-portal) .hero-cta .btn,
html:has(body > .info-pop.info-pop-portal) .hero-cta .btn {
  z-index: 1;
  isolation: auto;
}
.hero-cta .btn.main {
  background: var(--ink);
  background-color: var(--ink);
}
.hero-cta .btn.stop {
  background: #fff;
  background-color: #fff;
  color: var(--down-solid, #c04450);
  box-shadow: inset 0 0 0 1.5px rgba(192, 57, 43, 0.45);
  font-weight: 750;
}
html[data-theme="dark"] .hero-cta .btn.main {
  background: #fff !important;
  background-color: #fff !important;
  color: #12171e !important;
}
html[data-theme="dark"] .hero-cta .btn.stop {
  background: var(--solid-bg) !important;
  background-color: var(--solid-bg) !important;
}
/* 未登录 hero「登录」：昼黑底白字 / 夜白底黑字（全局，避免仅 mobile 块未命中） */
html:not([data-theme="dark"]) #btn-start.is-guest-login.btn.main {
  background: #121417 !important;
  background-color: #121417 !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  border: 0 !important;
  box-shadow: none !important;
}
html[data-theme="dark"] #btn-start.is-guest-login.btn.main {
  background: #ffffff !important;
  background-color: #ffffff !important;
  color: #121417 !important;
  -webkit-text-fill-color: #121417 !important;
  border: 0 !important;
  box-shadow: none !important;
}

.hero-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  position: relative;
  min-height: 48px;
  overflow: hidden;
}
/* 手机非账户页：顶栏搜索已迁到盈亏行图标，整块 hero-top 收起 */

@media (max-width: 899px) {
  html:not(:has(#tab-accounts.on)) .app > .hero .hero-top {
    display: none !important;
    min-height: 0;
  }
}

.brand-wrap { display: flex; align-items: center; gap: 10px; }
/* 顶栏品牌文案隐藏（侧栏仍有品牌） */

.hero .brand-wrap .brand {
  display: none !important;
}
/* 交易顶栏：账户搜索（手机铺满；电脑顶栏隐藏见下方） */

.hero-hold-search-wrap {
  position: relative;
  z-index: 6;
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  max-width: 100%;
  flex: 1 1 auto;
  min-width: 0;
  min-height: 40px;
  height: 40px;
  padding: 0 12px;
  border-radius: 12px;
  --mkt-search-bg: var(--panel-2);
  background: var(--mkt-search-bg);
  border: 1px solid var(--line);
  box-shadow: none;
  color: var(--muted);
  pointer-events: auto;
  box-sizing: border-box;
}
.hero-hold-search-ico {
  display: grid;
  place-items: center;
  color: inherit;
  flex-shrink: 0;
  opacity: 1;
}
.hero-hold-search-ico svg {
  width: 18px;
  height: 18px;
}
.hero-hold-search {
  flex: 1;
  min-width: 0;
  border: 0 !important;
  outline: none;
  background: transparent !important;
  background-color: transparent !important;
  box-shadow: none !important;
  color: var(--ink) !important;
  font: inherit;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.2;
  padding: 0;
  -webkit-appearance: none;
  appearance: none;
}
.hero-hold-search::placeholder {
  color: var(--muted);
  font-weight: 400;
  opacity: 1;
}
.hero-hold-search::-webkit-search-decoration,
.hero-hold-search::-webkit-search-cancel-button,
.hero-hold-search::-webkit-search-results-button {
  -webkit-appearance: none;
  appearance: none;
}
html[data-theme="light"] .hero-hold-search-wrap,
html:not([data-theme="dark"]) .hero-hold-search-wrap {
  --mkt-search-bg: #fff;
  background: var(--mkt-search-bg);
}
html[data-theme="dark"] .hero-hold-search-wrap {
  --mkt-search-bg: var(--panel-2);
  background: var(--panel-2);
}
html[data-theme="dark"] .app input.hero-hold-search,
html[data-theme="dark"] .app .hero-hold-search-wrap .hero-hold-search,
html[data-theme="light"] .app input.hero-hold-search {
  background: transparent !important;
  background-color: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  color: var(--ink) !important;
}
.hero-hold-search-wrap:focus-within {
  border-color: var(--line);
}
.hero-inline-search {
  display: none;
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  align-items: center;
}
.hero-inline-search-wrap {
  width: 100%;
  max-width: none;
}
.hero-acc-tools.is-searching,
.earn-quick-tools.is-searching {
  gap: 0;
}
.hero-acc-tools.is-searching .hero-acc-tool,
.earn-quick-tools.is-searching .earn-tool-btn {
  display: none;
}
.hero-acc-tools.is-searching .hero-inline-search,
.earn-quick-tools.is-searching .hero-inline-search {
  display: flex;
  animation: hero-inline-search-in 0.22s cubic-bezier(0.22, 1, 0.36, 1);
}
@keyframes hero-inline-search-in {
  from {
    opacity: 0;
    transform: translateX(18px) scaleX(0.84);
    transform-origin: right center;
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  .hero-acc-tools.is-searching .hero-inline-search,
  .earn-quick-tools.is-searching .hero-inline-search {
    animation: none;
  }
}
html:has(#tab-home.on) .app > .hero .earn-head.is-inline-search {
  padding-right: 0;
  flex-wrap: nowrap;
  align-items: center;
}
html:has(#tab-home.on) .earn-head.is-inline-search .earn-label {
  flex: 0 0 auto;
  min-width: max-content;
  white-space: nowrap;
}
html:has(#tab-home.on) .app > .hero .earn-head.is-inline-search .earn-quick-tools.is-searching {
  position: relative;
  top: auto;
  right: auto;
  left: auto;
  flex: 1 1 auto;
  min-width: 0;
  margin-left: 10px;
  width: auto;
  max-width: none;
  align-self: stretch;
}
html:has(#tab-home.on) .earn-head.is-inline-search .hero-inline-search,
html:has(#tab-home.on) .earn-head.is-inline-search .hero-inline-search-wrap {
  flex: 1 1 auto;
  width: 100%;
  min-width: 0;
  max-width: none;
}
#accounts.is-search-flat .plat-cred-stage,
#accounts.is-search-flat .plat-cred-stack,
#accounts.is-search-flat .plat-cred-track {
  display: flex !important;
  flex-direction: column;
  width: 100% !important;
  max-width: none !important;
  transform: none !important;
  height: auto !important;
  min-height: 0 !important;
}
#accounts.is-search-flat .plat-cred-slide {
  position: static !important;
  opacity: 1 !important;
  filter: none !important;
  transform: none !important;
  width: 100% !important;
  flex: 0 0 auto !important;
  pointer-events: auto !important;
}
#accounts.is-search-flat .plat-cred-slide.is-clone,
#accounts.is-search-flat .plat-cred-slide.is-search-hide,
#accounts.is-search-empty .plat-cred-stage {
  display: none !important;
}
#bots.is-search-empty {
  min-height: 0;
}
/* 账户页：三图标默认隐藏；账户页时叠在「今日净盈亏」上方 */

.hero-acc-tools {
  display: none;
  align-items: center;
  gap: 2px;
  position: relative;
  z-index: 6;
  flex-shrink: 0;
}
.hero-acc-tool,
.earn-tool-btn {
  appearance: none;
  border: 0;
  background: transparent;
  /* 色阶对齐底栏未选中态；线宽对齐 .me-gear */
  color: var(--muted, #8a97a3);
  width: 36px;
  height: 36px;
  min-width: 36px;
  min-height: 36px;
  display: grid;
  place-items: center;
  border-radius: 0;
  cursor: pointer;
  padding: 0;
  -webkit-tap-highlight-color: transparent;
  transition: transform 0.16s ease, color 0.12s ease;
  transform-origin: center center;
}
.hero-acc-tool svg,
.earn-tool-btn svg {
  width: 24px;
  height: 24px;
  display: block;
  pointer-events: none;
}
.earn-tool-btn .earn-ico-handcoin {
  width: 24px;
  height: 24px;
  display: block;
}
/* 新手教学：手托古币（参考图遮罩，跟 currentColor） */

.earn-ico-handcoin {
  background-color: currentColor;
  -webkit-mask-image: url("/fund/static/ico-hand-coin.png");
  mask-image: url("/fund/static/ico-hand-coin.png");
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  transform: scaleX(-1);
}
@media (hover: hover) and (pointer: fine) {
  .hero-acc-tool:hover,
  .earn-tool-btn:hover {
    transform: scale(1.16);
    color: var(--ink, #e8eef4);
  }
}
.hero-acc-tool:active,
.earn-tool-btn:active,
.earn-tool-btn.is-on {
  color: var(--ink, #e8eef4);
  background: transparent;
  transform: scale(1.24);
  transition-duration: 0.08s;
}
@media (prefers-reduced-motion: reduce) {
  .hero-acc-tool,
  .earn-tool-btn {
    transition: none;
  }
  .hero-acc-tool:hover,
  .earn-tool-btn:hover,
  .hero-acc-tool:active,
  .earn-tool-btn:active {
    transform: none;
  }
}
html[data-theme="dark"] .hero-acc-tool,
html[data-theme="dark"] .earn-tool-btn {
  color: #c8d2dc;
}
html[data-theme="dark"] .hero-acc-tool:active,
html[data-theme="dark"] .earn-tool-btn:active,
html[data-theme="dark"] .earn-tool-btn.is-on {
  color: #fff;
  background: rgba(255, 255, 255, 0.06);
}
html[data-theme="light"] .hero-acc-tool,
html[data-theme="light"] .earn-tool-btn,
html:not([data-theme="dark"]) .earn-tool-btn,
html[data-theme="light"] .me-acc-tools .hero-acc-tool,
html:not([data-theme="dark"]) .me-acc-tools .hero-acc-tool,
html[data-theme="light"] .me-gear,
html:not([data-theme="dark"]) .me-gear {
  color: #000;
}
html[data-theme="light"] .hero-acc-tool:active,
html[data-theme="light"] .earn-tool-btn:active,
html[data-theme="light"] .earn-tool-btn.is-on,
html:not([data-theme="dark"]) .me-acc-tools .hero-acc-tool:active,
html:not([data-theme="dark"]) .me-gear:active {
  color: #000;
}
/* 账户页顶栏：手机与电脑统一 — 三图标；隐藏开始停止/底栏添加 *//* 账户页：三快捷独占一行，压在「今日净盈亏」上方 */


html:has(#tab-accounts.on) .earn-head {
  flex-wrap: wrap;
  align-items: flex-start;
  row-gap: 6px;
}
html:has(#tab-accounts.on) .hero-acc-tools {
  display: inline-flex !important;
  flex: 0 0 100%;
  width: 100%;
  justify-content: flex-start;
  align-items: center;
  margin-right: 0;
  margin-bottom: 0;
  gap: 2px;
  transition: margin-bottom 0.22s cubic-bezier(0.22, 1, 0.36, 1);
}
html:has(#tab-accounts.on) .hero-acc-tools.is-searching {
  margin-bottom: 10px;
  z-index: 8;
}
html:has(#tab-accounts.on) .earn-head .earn-label {
  flex: 1 1 auto;
  min-width: 0;
}
html:has(#tab-accounts.on) .hero-cta {
  display: none !important;
}
html:has(#tab-accounts.on) .meta-row {
  display: none !important;
}
html:has(#tab-accounts.on) .acc-add-row {
  display: none !important;
}
/* 三键已迁入 earn-head，空 hero-top 收起 */

html:has(#tab-accounts.on) .hero-top {
  display: none !important;
  min-height: 0;
}
html:has(#tab-accounts.on) #run-msg.toast:empty {
  display: none;
}
@media (max-width: 899px) {
  .hero-acc-tools,
  .earn-quick-tools {
    gap: 2px;
  }
  .hero-acc-tool,
  .earn-tool-btn,
  .earn-quick-tools .earn-tool-btn {
    width: 36px;
    height: 36px;
    min-width: 36px;
    min-height: 36px;
    border-radius: 0;
  }
  /* 账户页顶栏：客服 / 添加 / 搜索 — 手机略加大触控 */
  html:has(#tab-accounts.on) .hero-acc-tools {
    gap: 4px;
  }
  html:has(#tab-accounts.on) .hero-acc-tool {
    width: 40px;
    height: 40px;
    min-width: 40px;
    min-height: 40px;
  }
  html:has(#tab-accounts.on) .hero-acc-tool svg,
  html:has(#tab-accounts.on) #hero-acc-cs svg {
    width: 26px;
    height: 26px;
  }
  .hero-acc-tool svg,
  .earn-tool-btn svg {
    width: 24px;
    height: 24px;
  }
  .earn-tool-btn .earn-ico-handcoin {
    width: 24px;
    height: 24px;
  }
  #hero-acc-cs svg {
    width: 24px;
    height: 24px;
  }
  /* 今日净盈亏 CNY：手机端字号加大 */
  .earn-label {
    font-size: 15px;
  }
  .earn-fiat-btn {
    font-size: 14px;
  }
}
/* 非账户页：桌面不占顶栏三图标 */

@media (min-width: 900px) {
  html:not(:has(#tab-accounts.on)) .hero-acc-tools {
    display: none !important;
  }
}
/* —— 账户页独立搜索页（对齐参考站：历史 + 热门） —— */


.acc-search-sheet {
  position: fixed;
  inset: 0;
  z-index: 33050;
  display: none;
  flex-direction: column;
  background: #0b0e11;
  color: #e8eef4;
  padding-top: env(safe-area-inset-top, 0px);
}
.acc-search-sheet.on {
  display: flex;
}
body.acc-search-open {
  overflow: hidden;
}
body.acc-search-open .dock {
  visibility: hidden;
  pointer-events: none;
}
/* 添加/编辑账户：手机底部抽屉 · 电脑居中弹窗 */


.acc-add-sheet {
  position: fixed;
  inset: 0;
  z-index: 33100;
  display: none;
  pointer-events: none;
}
.acc-add-sheet.on {
  display: block;
  pointer-events: auto;
}
.acc-add-sheet[hidden] {
  display: none !important;
}
body.acc-add-open {
  overflow: hidden;
}
body.acc-add-open .dock {
  visibility: hidden !important;
  pointer-events: none !important;
}
.acc-add-sheet-mask {
  position: absolute;
  inset: 0;
  border: 0;
  padding: 0;
  margin: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.55);
  cursor: pointer;
  appearance: none;
}
.acc-add-sheet .acc-add-panel.acc-add-sheet-card {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  top: auto;
  display: flex;
  flex-direction: column;
  max-height: min(88vh, 720px);
  overflow: hidden;
  background: #fff;
  color: var(--ink, #12202a);
  border: 0;
  border-radius: 16px 16px 0 0;
  margin: 0;
  padding: 6px 16px calc(16px + env(safe-area-inset-bottom, 0px));
  box-shadow: 0 -12px 40px rgba(0, 0, 0, 0.28);
  pointer-events: auto;
}
.acc-add-sheet-handle {
  display: block;
  width: 36px;
  height: 4px;
  border-radius: 99px;
  background: #c5ced6;
  margin: 6px auto 10px;
}
.acc-add-sheet-handle,
.acc-add-sheet-head {
  flex-shrink: 0;
}
.acc-add-sheet-head {
  display: grid;
  grid-template-columns: 40px 1fr 40px;
  align-items: center;
  gap: 8px;
  margin: 0 0 12px;
  position: relative;
  z-index: 2;
  flex-shrink: 0;
  background: inherit;
}
.acc-add-sheet-head h3 {
  margin: 0;
  font-size: 16px;
  font-weight: 750;
  line-height: 1.25;
  text-align: center;
  min-width: 0;
}
.acc-add-sheet-head-spacer {
  width: 40px;
  height: 40px;
  flex-shrink: 0;
}
.acc-add-sheet-back {
  margin-left: -6px;
}
.acc-add-sheet-x {
  display: none !important;
}
@media (max-width: 899px) {
  body.acc-add-open #wenli-top,
  body.acc-add-open #brand-rail {
    visibility: hidden !important;
    pointer-events: none !important;
  }
  /* 添加 / 编辑：整页底；暗色纯黑底，灰块留给内容 */
  body.acc-add-open {
    background: var(--bg, #f4f6f8);
  }
  body.acc-add-open .acc-add-sheet .acc-add-panel.acc-add-sheet-card,
  body.acc-add-open #acc-add.acc-add-panel.acc-add-sheet-card {
    background: var(--sheet, #fff) !important;
    border: 0 !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    border-top: 0 !important;
    margin: 0 !important;
  }
  html[data-theme="dark"] body.acc-add-open {
    background: #000 !important;
  }
  html[data-theme="dark"] body.acc-add-open .acc-add-sheet .acc-add-panel.acc-add-sheet-card,
  html[data-theme="dark"] body.acc-add-open #acc-add.acc-add-panel.acc-add-sheet-card {
    /* 页面底纯黑；灰留给输入/API 卡 */
    background: #000 !important;
  }
  /* 手机：全屏抽屉页（无遮罩，与账户页同级） */
  .acc-add-sheet.on .acc-add-sheet-mask {
    display: none;
  }
  html[data-theme="light"] .acc-add-sheet.on,
  html:not([data-theme="dark"]) .acc-add-sheet.on {
    background: #ffffff !important;
  }
  .acc-add-sheet-head::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: calc(-1 * env(safe-area-inset-top, 0px));
    height: env(safe-area-inset-top, 0px);
    background: inherit;
    pointer-events: none;
  }
  .acc-add-sheet .acc-add-panel.acc-add-sheet-card {
    top: 0 !important;
    bottom: 0 !important;
    max-height: none !important;
    height: 100% !important;
    height: 100dvh !important;
    border-radius: 0 !important;
    padding-top: max(10px, env(safe-area-inset-top, 0px));
    /* 与交易页 .app 左右沟槽一致 */
    padding-left: max(var(--fund-mobile-pad-x, 12px), env(safe-area-inset-left, 0px));
    padding-right: max(var(--fund-mobile-pad-x, 12px), env(safe-area-inset-right, 0px));
    padding-bottom: max(12px, env(safe-area-inset-bottom, 0px));
    box-sizing: border-box;
  }
  .acc-add-sheet-handle {
    display: none;
  }
  html[data-theme="dark"] .acc-add-sheet .acc-add-panel.acc-add-sheet-card {
    border: 0 !important;
    box-shadow: none !important;
  }
}
html[data-theme="dark"] .acc-add-sheet .acc-add-panel.acc-add-sheet-card {
  background: var(--sheet) !important;
  color: var(--ink);
  border: 0 !important;
  border-top: 1px solid rgba(255, 255, 255, 0.14) !important;
  border-left: 0 !important;
  border-right: 0 !important;
  border-bottom: 0 !important;
  border-radius: 16px 16px 0 0 !important;
  box-shadow: 0 -18px 48px rgba(0, 0, 0, 0.55) !important;
}
html[data-theme="dark"] .acc-add-sheet-handle {
  background: var(--chip-hover);
}
@media (min-width: 900px) {
  .acc-add-sheet.on {
    display: flex !important;
    align-items: center;
    justify-content: center;
    padding: 24px 16px;
    box-sizing: border-box;
  }
  .acc-add-sheet .acc-add-panel.acc-add-sheet-card {
    position: relative !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    top: auto !important;
    width: min(560px, 92vw);
    max-height: min(82vh, 720px);
    border-radius: 16px !important;
    padding: 16px 18px 18px;
    box-shadow: 0 20px 56px rgba(0, 0, 0, 0.4);
  }
  .acc-add-sheet-handle {
    display: none;
  }
  html[data-theme="dark"] .acc-add-sheet .acc-add-panel.acc-add-sheet-card {
    border: 1px solid var(--card-line) !important;
    border-radius: 16px !important;
    box-shadow: 0 20px 56px rgba(0, 0, 0, 0.4) !important;
  }
}

.acc-search-top {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px 8px;
  flex-shrink: 0;
}
.acc-search-field {
  flex: 1;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 8px;
  height: 40px;
  padding: 0 12px;
  border-radius: 999px;
  background: #1a1f27;
  color: #8a97a3;
}
.acc-search-field input {
  flex: 1;
  min-width: 0;
  border: 0;
  outline: none;
  background: transparent !important;
  background-color: transparent !important;
  color: #e8eef4 !important;
  font: inherit;
  font-size: 14px;
  box-shadow: none !important;
}
.acc-search-cancel {
  appearance: none;
  border: 0;
  background: none;
  color: #e8eef4;
  font: inherit;
  font-size: 15px;
  font-weight: 600;
  padding: 8px 4px;
  cursor: pointer;
  flex-shrink: 0;
}
.acc-search-body {
  flex: 1;
  min-height: 0;
  overflow: auto;
  padding: 8px 16px calc(24px + env(safe-area-inset-bottom, 0px));
}
.acc-search-sec {
  margin-bottom: 22px;
}
.acc-search-sec-h {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
}
.acc-search-sec-h b {
  font-size: 15px;
  font-weight: 750;
}
.acc-search-clear {
  appearance: none;
  border: 0;
  background: none;
  color: #8a97a3;
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  cursor: pointer;
  border-radius: 8px;
  -webkit-tap-highlight-color: transparent;
}
.acc-search-clear svg {
  display: block;
}
.acc-search-clear:active {
  color: #e8eef4;
}
.acc-search-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.acc-search-tags button {
  appearance: none;
  border: 0;
  background: #1a1f27;
  color: #e8eef4;
  border-radius: 8px;
  padding: 8px 12px;
  font: inherit;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
}
.acc-search-hot {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.acc-search-hot-row {
  appearance: none;
  width: 100%;
  border: 0;
  background: none;
  color: inherit;
  display: grid;
  grid-template-columns: 28px 36px minmax(0, 1fr) auto 28px;
  align-items: center;
  gap: 10px;
  padding: 10px 2px;
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.acc-search-hot-row .rk {
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  color: #c8d0d8;
}
.acc-search-hot-row:nth-child(-n+3) .rk {
  color: #f0b90b;
}
.acc-search-hot-row img {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: #1a1f27;
}
.acc-search-hot-row .nm {
  font-weight: 750;
  font-size: 15px;
}
.acc-search-hot-row .px {
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.acc-search-hot-row .px b {
  display: block;
  font-size: 14px;
}
.acc-search-hot-row .px em {
  display: block;
  font-style: normal;
  font-size: 12px;
  font-weight: 650;
}
.acc-search-hot-row .px em.is-up { color: var(--up); }
.acc-search-hot-row .px em.is-down { color: var(--down); }
.acc-search-hot-row .star {
  color: #8b95a5;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  line-height: 0;
}
.star,
.mkt-star,
.mkt-coin-star {
  color: #8b95a5;
}
.star .mkt-star-ico {
  width: 18px;
  height: 18px;
  display: block;
}
.acc-search-hot-row .star .mkt-star-ico path,
.star .mkt-star-ico path,
.mkt-star .mkt-star-ico path,
.mkt-coin-star .mkt-star-ico path {
  fill: currentColor;
  stroke: currentColor;
}
.acc-search-hot-row .star.on,
.star.on,
.mkt-star.on,
.mkt-coin-star.on {
  color: #f5c518;
}
.acc-search-result .acc-search-hit {
  appearance: none;
  width: 100%;
  border: 0;
  background: none;
  color: inherit;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 12px 2px;
  border-bottom: 1px solid #1e252e;
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.acc-search-result .acc-search-hit b {
  font-size: 15px;
}
.acc-search-result .acc-search-hit em {
  font-style: normal;
  font-size: 12px;
  color: #8a97a3;
}
.acc-search-empty {
  margin: 8px 0;
  color: #8a97a3;
  font-size: 13px;
}
/* 旧游动 Logo 关键保留但默认不再挂载 */

.hero .brand-wrap-swim {
  display: none !important;
}
.hero .brand-logo-swim {
  position: absolute;
  left: 0;
  top: 50%;
  margin-top: -22px;
  animation: brand-swim-move 4.8s linear infinite;
  will-change: left, opacity;
}
.hero .brand-swim-trail {
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.hero .brand-swim-trail i {
  position: absolute;
  top: 50%;
  left: 0;
  width: 5px;
  height: 5px;
  margin-top: -2.5px;
  border-radius: 50%;
  background: var(--ink);
  opacity: 0;
  animation: brand-swim-dot 4.8s linear infinite;
}
.hero .brand-swim-trail i:nth-child(1) { animation-delay: 0s; width: 6px; height: 6px; margin-top: -3px; }
.hero .brand-swim-trail i:nth-child(2) { animation-delay: 0.18s; }
.hero .brand-swim-trail i:nth-child(3) { animation-delay: 0.36s; width: 4px; height: 4px; margin-top: -2px; }
.hero .brand-swim-trail i:nth-child(4) { animation-delay: 0.54s; }
.hero .brand-swim-trail i:nth-child(5) { animation-delay: 0.72s; width: 3px; height: 3px; margin-top: -1.5px; }
.hero .brand-swim-trail i:nth-child(6) { animation-delay: 0.9s; width: 3px; height: 3px; margin-top: -1.5px; }
html[data-theme="dark"] .hero .brand-swim-trail i {
  background: #e8e8e8;
}
@keyframes brand-swim-move {
  0% {
    left: 0;
    opacity: 1;
  }
  78% {
    opacity: 1;
  }
  100% {
    left: calc(100% - 48px);
    opacity: 0;
  }
}
@keyframes brand-swim-dot {
  0% {
    left: 12px;
    opacity: 0;
  }
  8% {
    opacity: 0.55;
  }
  70% {
    opacity: 0.28;
  }
  100% {
    left: calc(100% - 52px);
    opacity: 0;
  }
}
@media (prefers-reduced-motion: reduce) {
  .hero .brand-logo-swim,
  .hero .brand-swim-trail i {
    animation: none !important;
  }
  .hero .brand-logo-swim {
    position: relative;
    left: auto;
    top: auto;
    margin-top: 0;
    opacity: 1;
    transform: translateY(2px);
  }
  .hero .brand-swim-trail {
    display: none;
  }
  .hero .brand-wrap-swim {
    width: auto;
    max-width: none;
    flex: 0 0 auto;
  }
}
.brand-logo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 32px;
  height: 32px;
  color: var(--teal);
  line-height: 0;
  transform: none;
}
.kline-title-logo,
.radar-title-logo,
.yield-title-logo,
.pnl-hub-title-logo,
.okx-factor-title-logo,
.custom-train-logo {
  transform: none;
}
.brand-logo .logo-mc {
  display: block;
  width: 48px;
  height: 48px;
  color: inherit;
}
.brand-logo .logo-mc.logo-wenli-fish,
.logo-mark .logo-mc.logo-wenli-fish,
.auth-logo-mark .logo-mc.logo-wenli-fish {
  width: 48px;
  height: 48px;
  object-fit: contain;
  display: block;
  /* 取消旧 MC 立体挤出；仅轻阴影 */
  filter: drop-shadow(0 2px 4px rgba(15, 24, 32, 0.18)) !important;
}
.logo-mark .logo-mc.logo-wenli-fish {
  width: 40px;
  height: 40px;
}
.auth-logo-mark .logo-mc.logo-wenli-fish {
  width: 56px;
  height: 56px;
}
.kline-title-logo .logo-mc.logo-wenli-fish,
.radar-title-logo .logo-mc.logo-wenli-fish,
.yield-title-logo .logo-mc.logo-wenli-fish,
.pnl-hub-title-logo .logo-mc.logo-wenli-fish,
.okx-factor-title-logo .logo-mc.logo-wenli-fish,
.custom-train-logo .logo-mc.logo-wenli-fish {
  width: 32px;
  height: 32px;
}
/* 带圆底：黑圆 + 白符号居中，圆略小 */

/* MA 原图已自带圆环，不再套黑底圆盘（否则双圈） */
.kline-title-logo .logo-mc.logo-wenli-fish,
.radar-title-logo .logo-mc.logo-wenli-fish,
.yield-title-logo .logo-mc.logo-wenli-fish,
.pnl-hub-title-logo .logo-mc.logo-wenli-fish,
.okx-factor-title-logo .logo-mc.logo-wenli-fish,
.custom-train-logo .logo-mc.logo-wenli-fish,
.logo-mark .logo-mc.logo-wenli-fish,
.auth-logo-mark .logo-mc.logo-wenli-fish,
.brand-logo .logo-mc.logo-wenli-fish {
  background: transparent;
  border-radius: 0;
  padding: 0;
  box-sizing: border-box;
  object-fit: contain;
  object-position: center;
}
/* 弹窗顶栏 LOGO：略小于控件，垂直对齐 */

.fee-tip-modal .brand-logo,
.fee-tip-modal .kline-title-logo,
.fee-tip-modal .radar-title-logo,
.fee-tip-modal .yield-title-logo,
.fee-tip-modal .pnl-hub-title-logo,
.fee-tip-modal .okx-factor-title-logo,
.fee-tip-modal .custom-train-logo,
.pos-float.kline-float .kline-title-logo {
  transform: none !important;
  width: 26px !important;
  height: 26px !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  align-items: center;
  justify-content: center;
}
.fee-tip-modal .brand-logo .logo-mc,
.fee-tip-modal .kline-title-logo .logo-mc,
.fee-tip-modal .radar-title-logo .logo-mc,
.fee-tip-modal .yield-title-logo .logo-mc,
.fee-tip-modal .pnl-hub-title-logo .logo-mc,
.fee-tip-modal .okx-factor-title-logo .logo-mc,
.fee-tip-modal .custom-train-logo .logo-mc,
.pos-float.kline-float .kline-title-logo .logo-mc {
  width: 26px !important;
  height: 26px !important;
  padding: 4px !important;
}
/* 夜间弹窗：红底 + 白符号（同头像） */

html[data-theme="dark"] .fee-tip-modal .brand-logo .logo-mc.logo-wenli-fish,
html[data-theme="dark"] .fee-tip-modal .kline-title-logo .logo-mc.logo-wenli-fish,
html[data-theme="dark"] .fee-tip-modal .radar-title-logo .logo-mc.logo-wenli-fish,
html[data-theme="dark"] .fee-tip-modal .yield-title-logo .logo-mc.logo-wenli-fish,
html[data-theme="dark"] .fee-tip-modal .pnl-hub-title-logo .logo-mc.logo-wenli-fish,
html[data-theme="dark"] .fee-tip-modal .okx-factor-title-logo .logo-mc.logo-wenli-fish,
html[data-theme="dark"] .fee-tip-modal .custom-train-logo .logo-mc.logo-wenli-fish,
html[data-theme="dark"] .pos-float.kline-float .kline-title-logo .logo-mc.logo-wenli-fish,
.radar-sheet .radar-title-logo .logo-mc.logo-wenli-fish,
.okx-data-sheet .okx-factor-title-logo .logo-mc.logo-wenli-fish {
  background: transparent !important;
}
img.logo-mc.logo-wenli-fish {
  background: transparent;
}
/* 鱼形标：明确关掉立体多层 drop-shadow */

.brand-logo .logo-mc.logo-wenli-fish:not(.logo-mc-pop),
.auth-logo-mark .logo-mc.logo-wenli-fish:not(.logo-mc-pop),
.logo-mark .logo-mc.logo-wenli-fish:not(.logo-mc-pop),
.kline-title-logo .logo-mc.logo-wenli-fish,
.radar-title-logo .logo-mc.logo-wenli-fish,
.yield-title-logo .logo-mc.logo-wenli-fish,
.pnl-hub-title-logo .logo-mc.logo-wenli-fish {
  filter: none !important;
}
html[data-theme="dark"] .brand-logo .logo-mc.logo-wenli-fish,
html[data-theme="dark"] .logo-mark .logo-mc.logo-wenli-fish,
html[data-theme="dark"] .auth-logo-mark .logo-mc.logo-wenli-fish,
html[data-theme="dark"] img.logo-mc.logo-wenli-fish {
  filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.45)) !important;
}
.brand-logo .logo-mc g:not(.logo-mc-shadow):not(.logo-mc-extrude),
.logo-mark .logo-mc g:not(.logo-mc-shadow):not(.logo-mc-extrude),
.auth-logo-mark .logo-mc g:not(.logo-mc-shadow):not(.logo-mc-extrude) {
  fill: currentColor;
}
.logo-mark .logo-mc-shadow,
.brand-logo .logo-mc-shadow,
.auth-logo-mark .logo-mc-shadow,
.logo-mark .logo-mc-extrude,
.brand-logo .logo-mc-extrude,
.auth-logo-mark .logo-mc-extrude,
.logo-mark .logo-mc-extrude use,
.logo-mark .logo-mc-extrude g {
  fill: #0a322c !important;
}
.logo-mark .logo-mc-face,
.brand-logo .logo-mc-face,
.auth-logo-mark .logo-mc-face {
  fill: currentColor;
}
/* 漫画一体挤出：密排同色硬边，避免「字+影子」两层感 */

.logo-mc-pop,
.logo-mark .logo-mc {
  overflow: visible;
}
.brand-logo .logo-mc:not(.logo-mc-pop),
.auth-logo-mark .logo-mc:not(.logo-mc-pop),
.logo-mark .logo-mc:not(.logo-mc-pop) {
  /* 约 2.5px 厚度：一体但不抢戏 */
  filter:
    drop-shadow(0.8px 0.8px 0 #0a322c)
    drop-shadow(1.6px 1.6px 0 #0a322c)
    drop-shadow(2.4px 2.4px 0 #0a322c);
}
.auth-logo-mark .logo-mc:not(.logo-mc-pop) {
  /* 登录弹窗更小，再薄一点 */
  filter:
    drop-shadow(0.7px 0.7px 0 #0a322c)
    drop-shadow(1.4px 1.4px 0 #0a322c)
    drop-shadow(2.1px 2.1px 0 #0a322c);
}
.logo-dot {
  width: 10px; height: 10px; border-radius: 50%;
  background: var(--teal);
  box-shadow: 0 0 0 4px var(--chip-bg);
}
.brand {
  font-size: 20px;
  font-weight: 800;
  letter-spacing: -0.03em;
}
/* 桌面有左侧品牌栏：隐藏账户搜索（仅手机显示）；收紧顶栏间距 */


@media (min-width: 900px) {
  .app > .hero .hero-top {
    display: none !important;
  }
  .app > .hero .earn-block {
    margin-top: 0;
  }
  .app > .hero .earn {
    font-size: 42px;
  }
}

.chip {
  font-size: 11px;
  font-weight: 700;
  padding: 6px 10px;
  border-radius: 999px;
  background: var(--chip-bg);
  color: var(--teal);
}

.earn-block { margin-top: 18px; }
.earn-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
  min-width: 0;
}
.earn-head .earn-label {
  flex: 1 1 auto;
  min-width: 0;
}
/* 手机：今日净盈亏右侧三图标；电脑：紧挨 00:00 时间标签右侧（JS 迁入 #meta-clock-tools） */

.earn-quick-tools {
  display: none;
  flex-direction: row-reverse;
  align-items: flex-start;
  gap: 0;
  flex-shrink: 0;
  margin-left: auto;
  margin-top: -1px;
}
.meta-clock-tools {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  flex-wrap: nowrap;
  min-width: 0;
}
.earn-hold-search-panel {
  margin: 8px 0 2px;
}
.earn-hold-search-panel[hidden] {
  display: none !important;
}
.earn-hold-search-panel .hero-hold-search-wrap {
  width: 100%;
  max-width: none;
  flex: 1 1 auto;
}
/* 手机：搜索跟电脑一样钉在 00:00 右侧；不再占「今日净盈亏」行 */
@media (max-width: 899px) {
  html:has(#tab-home.on) .app > .hero .earn-head {
    position: relative;
    padding-right: 0;
  }
  html:has(#tab-home.on) .earn-quick-tools {
    position: static;
    top: auto;
    right: auto;
    margin-top: 0;
  }
  html:has(#tab-home.on) .app > .hero .earn,
  html:has(#tab-accounts.on) .app > .hero .earn {
    margin-top: 6px;
  }
  .earn-quick-tools {
    display: none;
  }
  html:has(#tab-home.on) .meta-clock-tools .earn-quick-tools {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    align-self: center;
    gap: 0;
    margin: 0;
    flex-shrink: 0;
  }
  html:has(#tab-home.on) .meta-clock-tools .earn-tool-btn {
    width: 32px;
    height: 32px;
    min-width: 32px;
    min-height: 32px;
  }
  html:has(#tab-home.on) .meta-clock-tools .earn-tool-btn svg {
    width: 20px;
    height: 20px;
  }
  html:has(#tab-home.on) .meta-clock-tools .earn-quick-tools.is-searching {
    flex: 1 1 132px;
    min-width: 112px;
    max-width: min(220px, 52vw);
  }
  html:has(#tab-accounts.on) .earn-quick-tools,
  html:has(#tab-accounts.on) .earn-hold-search-panel,
  html:has(#tab-data.on) .earn-quick-tools,
  html:has(#tab-data.on) .earn-hold-search-panel,
  html:has(#tab-strategy.on) .earn-quick-tools,
  html:has(#tab-strategy.on) .earn-hold-search-panel {
    display: none !important;
  }
}
@media (min-width: 900px) {
  html:has(#tab-home.on) .meta-clock-tools .earn-quick-tools {
    display: inline-flex;
    align-items: center;
    align-self: center;
    gap: 0;
    margin: 0;
    position: static;
    flex-shrink: 0;
  }
  html:has(#tab-home.on) .meta-clock-tools .earn-tool-btn,
  html:has(#tab-home.on) .meta-clock-tools .earn-quick-tools .earn-tool-btn {
    width: 35px;
    height: 35px;
    min-width: 35px;
    min-height: 35px;
  }
  html:has(#tab-home.on) .meta-clock-tools .earn-tool-btn svg,
  html:has(#tab-home.on) .meta-clock-tools .earn-tool-btn .earn-ico-handcoin {
    width: 24px;
    height: 24px;
  }
  html:has(#tab-home.on) .meta-clock-tools .earn-quick-tools.is-searching {
    flex: 1 1 200px;
    min-width: 160px;
    max-width: 260px;
  }
  html:has(#tab-home.on) .meta-clock-tools .hero-hold-search-wrap,
  html:has(#tab-home.on) .meta-clock-tools .hero-inline-search-wrap {
    min-height: 32px;
    height: 32px;
    padding: 0 10px;
    border-radius: 999px;
  }
}
/*
 * 手机：持仓/产品/账户/帮助正文整体上移。
 * 不动：蜘蛛因子、盈亏缩略、右上装饰。
 */

/* 手机：页面不跟浏览器滚到顶栏下面。盈亏留在上面，资料卡和下面的账户卡同一层滚动，不显示滚动条。 */
@media (max-width: 899px) {
  :root {
    /* 市场/分析/交易/策略/资产：统一左右沟槽（勿在各 Tab 再叠一层 padding） */
    --fund-mobile-pad-x: 12px;
  }
  html,
  body {
    height: 100%;
    overflow: hidden;
    overscroll-behavior: none;
  }
  .shell {
    height: 100dvh;
    max-height: 100dvh;
    min-height: 0;
    overflow: hidden;
  }
  .app {
    height: 100dvh;
    max-height: 100dvh;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: none;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding-left: max(var(--fund-mobile-pad-x, 12px), env(safe-area-inset-left, 0px));
    padding-right: max(var(--fund-mobile-pad-x, 12px), env(safe-area-inset-right, 0px));
  }
  .app::-webkit-scrollbar {
    display: none;
  }
  html:has(#tab-accounts.on) .app {
    display: flex;
    flex-direction: column;
    overflow: hidden;
  }
  html:has(#tab-accounts.on) .app > .hero {
    flex: 0 0 auto;
  }
  html:has(#tab-accounts.on) .app > .main {
    flex: 1 1 auto;
    min-height: 0;
    margin-top: 10px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
  }
  html:has(#tab-accounts.on) #tab-accounts.panel.on {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
  }
  html:has(#tab-accounts.on) #me-page.acc-panel {
    flex: 1 1 auto;
    min-height: 0;
    overflow-x: clip !important;
    overflow-y: auto !important;
    overscroll-behavior: none;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    display: flex;
    flex-direction: column;
  }
  html:has(#tab-accounts.on) #me-page.acc-panel::-webkit-scrollbar,
  html:has(#tab-accounts.on) .acc-panel-trade::-webkit-scrollbar {
    display: none;
  }
  /* 账户卡右缘要和上面总余额卡齐，不能被列表内边距或滚动层裁掉 */
  html:has(#tab-accounts.on) .acc-panel .acc-list.plat-cred-rail {
    padding-left: 0;
    padding-right: 0;
  }
  html:has(#tab-accounts.on) #accounts .plat-cred-stage.is-mobile,
  html:has(#tab-accounts.on) #accounts .plat-cred-stage.is-mobile.is-pile,
  html:has(#tab-accounts.on) #accounts .plat-cred-stage.is-mobile.is-spread {
    padding-left: 0 !important;
    padding-right: 0 !important;
    overflow: visible !important;
  }
  html:has(#tab-accounts.on) .acc-panel-head,
  html:has(#tab-accounts.on) .acc-panel-trade {
    flex: 0 0 auto;
    min-height: 0;
    overflow: visible;
  }
  /*
   * 交易页（手机）：今日盈亏～停止 钉住；盯盘条 + 持仓只在 .home-trade-split 内滚。
   */
  html:has(#tab-home.on) .app {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    padding-bottom: 0;
    padding-top: calc(28px + env(safe-area-inset-top, 0px));
  }
  html:has(#tab-home.on) .app > .hero {
    flex: 0 0 auto;
  }
  html:has(#tab-home.on) .app > .main {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
  }
  html:has(#tab-home.on) #tab-home.panel.on.home-stack {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    padding-bottom: 0;
    box-sizing: border-box;
  }
  html:has(#tab-home.on) .home-trade-split {
    flex: 1 1 auto;
    min-height: 0;
    overflow-x: clip;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    -ms-overflow-style: none;
    padding-bottom: calc(var(--dock-h) + var(--dock-gap) + var(--safe-b) + 36px);
    box-sizing: border-box;
  }
  html:has(#tab-home.on) .home-trade-split::-webkit-scrollbar {
    display: none;
  }
  /* 产品页：#tab-strategy flex 壳；滚动在 .pro-ops-scroll（含底栏创建按钮） */
  html:has(#tab-strategy.on) .app {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    padding-bottom: 0;
  }
  html:has(#tab-strategy.on) .app > .main {
    flex: 1 1 auto;
    min-height: 0;
    margin-top: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
  }
  html:has(#tab-strategy.on) #tab-strategy.panel.on {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    padding-bottom: 0;
    box-sizing: border-box;
  }
}
@media (max-width: 720px) {
  .app > .hero .earn-block {
    margin-top: 8px;
  }
  .app > .hero .meta-row {
    margin: 6px 0 8px;
  }
  .app > .main {
    margin-top: 6px;
  }
  .panel.on.home-stack {
    gap: 8px !important;
  }
}
.earn-label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--ink);
  font-size: 15px;
  font-weight: 600;
}
.earn-label .ico { width: 14px; height: 14px; opacity: 1; color: var(--ink); }
/* 今日净盈亏旁：法币选择（币安式 CNY ▼ + 下方下拉） */

.earn-fiat-wrap {
  position: relative;
  display: inline-flex;
  align-items: center;
  margin-left: 2px;
  z-index: 8;
}
.earn-fiat-btn {
  appearance: none;
  display: inline-flex;
  align-items: center;
  gap: 2px;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--muted);
  font: inherit;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.03em;
  line-height: 1;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.earn-fiat-btn:active {
  opacity: 0.72;
}
.earn-fiat-btn.is-open .earn-fiat-chev {
  transform: rotate(180deg);
}
.earn-fiat-code {
  font-variant-numeric: tabular-nums;
}
.earn-fiat-chev {
  display: inline-flex;
  align-items: center;
  transition: transform 0.15s ease;
}
@media (max-width: 899px) {
  .earn-fiat-btn .pro-ops-chev {
    font-size: 15px;
    font-weight: 500;
    transform: translateY(0);
  }
  .earn-fiat-btn.is-open .earn-fiat-chev {
    transform: rotate(180deg);
  }
}
.earn-fiat-dd {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  z-index: 60;
  min-width: 88px;
  max-height: min(52vh, 320px);
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  padding: 4px 0;
  border-radius: 10px;
  background: var(--panel, #fff);
  border: 1px solid rgba(120, 130, 145, 0.18);
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.14);
  scrollbar-width: none; /* Firefox */
  -ms-overflow-style: none; /* IE/Edge */
}
.earn-fiat-dd::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}
html[data-theme="dark"] .earn-label {
  color: #ffffff;
}
html[data-theme="dark"] .hs,
html[data-theme="dark"] #accounts .plat-cred-mask {
  color: var(--muted);
}
html[data-theme="dark"] .earn-fiat-dd {
  background: #000000;
  border-color: rgba(255, 255, 255, 0.14);
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.55);
}
.earn-fiat-list {
  display: flex;
  flex-direction: column;
}
.earn-fiat-grab {
  display: none;
}
.earn-fiat-list .earn-fiat-opt.mkt-pick-item {
  justify-content: center;
}
.earn-fiat-list .earn-fiat-opt .mkt-pick-mark {
  display: none;
}
.earn-fiat-opt {
  appearance: none;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin: 0;
  padding: 10px 14px;
  border: 0;
  background: transparent;
  color: var(--ink);
  font: inherit;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-align: center;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.earn-fiat-opt:hover,
.earn-fiat-opt:active {
  background: rgba(120, 130, 145, 0.1);
}
/* 选中：白天黑底白字 · 夜间深灰抬升面（勿用浅 --solid-bg，避免发白块） */

.earn-fiat-opt.on {
  background: #111827;
  color: #fff;
}
html[data-theme="dark"] .earn-fiat-opt {
  color: #6e6e6e;
}
html[data-theme="dark"] .earn-fiat-opt:hover,
html[data-theme="dark"] .earn-fiat-opt:active,
html[data-theme="dark"] .earn-fiat-opt:focus-visible {
  background: rgba(255, 255, 255, 0.06);
  color: #ffffff;
}
html[data-theme="dark"] .earn-fiat-opt.on {
  background: rgba(255, 255, 255, 0.06);
  color: #ffffff;
  font-weight: 700;
}
/* 电脑/平板：法币选择居中弹窗（手机 ≤719px 仍为底部抽屉，见 06-market.css） */
@media (min-width: 720px) {
  body.earn-fiat-picker-open {
    overflow: hidden;
  }
  body.earn-fiat-picker-open::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 32150;
    background: var(--modal-scrim, rgba(6, 10, 16, 0.55));
    pointer-events: auto;
  }
  body.earn-fiat-picker-open .earn-fiat-dd {
    position: fixed !important;
    inset: 0 !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    z-index: 32160 !important;
    display: flex !important;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 100% !important;
    min-width: 0;
    max-height: none !important;
    margin: 0;
    padding: 16px;
    box-sizing: border-box;
    overflow: visible;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    pointer-events: auto;
    color: var(--ink);
  }
  body.earn-fiat-picker-open .earn-fiat-grab {
    display: none !important;
  }
  body.earn-fiat-picker-open .earn-fiat-scroll {
    flex: 0 1 auto;
    width: min(360px, 92vw);
    max-height: min(72vh, 480px);
    overflow: auto;
    -webkit-overflow-scrolling: touch;
    padding: 8px 0 12px;
    border-radius: 16px;
    background: var(--panel, #fff);
    border: 1px solid rgba(15, 24, 32, 0.1);
    box-shadow: 0 12px 40px rgba(15, 24, 32, 0.22);
    scrollbar-width: none;
  }
  body.earn-fiat-picker-open .earn-fiat-scroll::-webkit-scrollbar {
    display: none;
  }
  html[data-theme="dark"] body.earn-fiat-picker-open .earn-fiat-scroll {
    background: #101820;
    border-color: rgba(255, 255, 255, 0.14);
    box-shadow: 0 20px 56px rgba(0, 0, 0, 0.55);
  }
  body.earn-fiat-picker-open .earn-fiat-list .earn-fiat-opt.mkt-pick-item {
    justify-content: space-between;
    gap: 12px;
    padding: 12px 18px;
    font-size: 15px;
    text-align: left;
  }
  body.earn-fiat-picker-open .earn-fiat-list .earn-fiat-opt .mkt-pick-mark {
    display: block;
    flex: 0 0 auto;
  }
  body.earn-fiat-picker-open .earn-fiat-opt.on {
    background: transparent;
    color: var(--ink);
    font-weight: 800;
  }
  html[data-theme="dark"] body.earn-fiat-picker-open .earn-fiat-opt.mkt-pick-item {
    color: #a8b0bc;
  }
  html[data-theme="dark"] body.earn-fiat-picker-open .earn-fiat-opt.mkt-pick-item.on {
    color: #fff;
    background: transparent;
  }
}
.earn-pulse {
  display: none !important; /* 去掉今日净盈亏旁绿点 */
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
  background: #0ecb81;
  box-shadow: 0 0 0 0 rgba(14, 203, 129, 0.55);
  animation: earn-pulse-breath 1.7s ease-in-out infinite;
}
.earn-pulse.is-down {
  background: #f6465d;
  box-shadow: 0 0 0 0 rgba(246, 70, 93, 0.55);
  animation-name: earn-pulse-breath-down;
}
html[data-theme="dark"] .earn-pulse {
  background: #2dd4a8;
  box-shadow: 0 0 0 0 rgba(45, 212, 168, 0.5);
}
html[data-theme="dark"] .earn-pulse.is-down {
  background: #f07178;
  box-shadow: 0 0 0 0 rgba(240, 113, 120, 0.5);
}
@keyframes earn-pulse-breath {
  0%, 100% {
    transform: scale(1);
    box-shadow: 0 0 0 0 rgba(14, 203, 129, 0.5);
    opacity: 1;
  }
  50% {
    transform: scale(1.18);
    box-shadow: 0 0 0 7px rgba(14, 203, 129, 0);
    opacity: 0.88;
  }
}
@keyframes earn-pulse-breath-down {
  0%, 100% {
    transform: scale(1);
    box-shadow: 0 0 0 0 rgba(246, 70, 93, 0.5);
    opacity: 1;
  }
  50% {
    transform: scale(1.18);
    box-shadow: 0 0 0 7px rgba(246, 70, 93, 0);
    opacity: 0.88;
  }
}
.earn {
  margin-top: 0;
  font-size: 48px;
  font-weight: 800;
  letter-spacing: -0.04em;
  line-height: 1.05;
  font-variant-numeric: tabular-nums;
}
.earn.up { color: var(--up); }
.earn.down { color: var(--down); }

.meta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 12px 0 16px;
}
.tag {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 12px;
  font-weight: 700;
  padding: 5px 9px;
  border-radius: 999px;
  background: var(--chip-bg);
  color: var(--muted);
}
/* 运行中与 OKX 等 soft 标签同款灰描边，勿用青绿 */

.tag.on {
  font-weight: 600;
  background: transparent;
  color: var(--muted);
  box-shadow: inset 0 0 0 1px var(--line);
}
.tag.soft { font-weight: 600; background: transparent; box-shadow: inset 0 0 0 1px var(--line); }
#market-tag {
  cursor: pointer;
  user-select: none;
}
#market-tag:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--ink) 35%, transparent);
  outline-offset: 2px;
}

.hero-cta { display: grid; grid-template-columns: 1.4fr 1fr; gap: 10px; }
.btn {
  border: 0;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
  padding: 13px 12px;
  border-radius: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}
.btn svg.btn-ico { width: 16px; height: 16px; }
/* 全部开始 / 全部停止：图标略大于字号，仍不抢文案 */

.hero-cta .btn svg.btn-ico {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}
.btn.main { background: var(--ink); color: #fff; }
.btn.soft {
  background: var(--chip-bg);
  color: var(--ink);
  box-shadow: none;
}
.btn.soft:hover:not(:disabled) {
  background: var(--chip-hover);
}
.btn.stop {
  background: var(--panel);
  color: var(--down);
  box-shadow: inset 0 0 0 1.5px rgba(192, 57, 43, 0.35);
}
.btn-spin {
  display: none;
  width: 14px;
  height: 14px;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: btn-spin 0.7s linear infinite;
  flex-shrink: 0;
}
.btn.busy .btn-ico { display: none; }
.btn.busy .btn-spin { display: inline-block; }
.btn.busy { opacity: 0.92; cursor: wait; }
@keyframes btn-spin {
  to { transform: rotate(360deg); }
}
.btn.ghost {
  background: var(--panel);
  color: var(--ink);
  box-shadow: inset 0 0 0 1px var(--line);
  padding: 8px 10px;
  font-size: 12px;
  border-radius: 10px;
}
.btn.tiny {
  background: color-mix(in srgb, var(--bg) 80%, var(--panel));
  color: var(--muted);
  padding: 7px 9px;
  font-size: 12px;
  border-radius: 8px;
}
.btn:disabled { opacity: 0.4; cursor: not-allowed; }

.toast { min-height: 0; margin: 0; font-size: 12px; color: var(--muted); }
.toast:not(:empty) { min-height: 16px; margin: 8px 0 0; }
.toast.ok { color: var(--up); }
.toast.err { color: var(--down); }

.fund-center-toast {
  position: fixed;
  inset: 0;
  z-index: 30000; /* above admin sheets */
  display: grid;
  place-items: center;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.22s ease, visibility 0.22s ease;
}
.fund-center-toast.on {
  opacity: 1;
  visibility: visible;
}
.fund-center-toast.is-sticky {
  pointer-events: none;
}
.fund-center-toast.is-sticky .fund-center-toast-card {
  pointer-events: auto;
  cursor: pointer;
  max-width: min(86vw, 340px);
}
.fund-center-toast-card {
  pointer-events: none;
  min-width: 0;
  max-width: min(86vw, 300px);
  padding: 12px 18px;
  border-radius: 10px;
  /* 昼夜统一纯黑，短提示一眼可辨 */
  background: rgba(18, 18, 18, 0.94) !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.35) !important;
  text-align: center;
  transform: translateY(8px);
  opacity: 0;
  transition: transform 0.24s ease, opacity 0.24s ease;
}
.fund-center-toast.on.show .fund-center-toast-card {
  transform: translateY(0);
  opacity: 1;
}
.fund-center-toast-title {
  margin: 0;
  font-size: 14px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.96) !important;
  line-height: 1.4;
  letter-spacing: 0.01em;
}
.fund-center-toast-detail {
  margin: 5px 0 0;
  font-size: 12px;
  font-weight: 450;
  color: rgba(255, 255, 255, 0.58) !important;
  line-height: 1.35;
}
.fund-center-toast-detail[hidden] {
  display: none;
}
.fund-center-toast.tone-err .fund-center-toast-title {
  color: rgba(255, 255, 255, 0.96) !important;
}
.fund-center-toast.tone-err .fund-center-toast-detail {
  color: rgba(255, 255, 255, 0.72) !important;
}

.app > .main {
  margin-top: 18px;
  /* 双保险：主内容区再垫一层，避免只靠 app padding 时视觉仍贴栏 */
  padding-bottom: 4px;
}
.panel { display: none; }
.panel.on { display: block; animation: in .24s ease; }
/* 压过 .panel.on 的 display:block；间距只用 gap，避免与 margin 叠算 */

.panel.on.home-stack {
  display: block !important;
  min-width: 0;
  overflow: visible;
}
.home-stack .home-trade-split {
  min-width: 0;
  max-width: 100%;
}
.home-stack .home-trade-hold-col {
  display: grid;
  gap: 10px;
  align-content: start;
  min-width: 0;
}
.home-stack .home-trade-hold-col > .holdings {
  min-width: 0;
  max-width: 100%;
}
@keyframes in {
  from { opacity: 0; transform: translateY(4px); }
  to { opacity: 1; transform: none; }
}

.sec-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
}
.sec-title {
  margin: 0 0 8px;
  font-size: 16px;
  font-weight: 800;
}
.sec-row .sec-title { margin: 0; }

.insight {
  background: var(--panel);
  border-radius: 14px;
  padding: 12px 14px;
  margin-bottom: 10px;
  box-shadow: 0 1px 0 var(--line);
}
.insight ul { margin: 0; padding-left: 1.1em; font-size: 13px; line-height: 1.55; }
.insight .src { margin: 8px 0 0; font-size: 11px; color: var(--muted); }

.holdings, .products { display: grid; gap: 10px; }
.holding-skeleton {
  min-height: 88px;
  opacity: 0.72;
  pointer-events: none;
}
.holding-skeleton .holding-head {
  padding: 16px;
  color: var(--muted);
  font-size: 13px;
  font-weight: 650;
}

.bias-card {
  background: var(--panel);
  border-radius: 16px;
  margin: 0;
  /* 白底白页需完整描边；不要背后投影 */
  border: 1px solid var(--line);
  box-shadow: none;
  overflow: visible;
  position: relative;
  z-index: 2;
}
.home-stack .holdings {
  margin: 0;
}
.bias-card.open {
  z-index: 3;
}
.bias-top {
  display: flex;
  align-items: center;
  gap: 2px;
  padding-right: 2px;
}
.bias-head {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
  flex: 1;
  min-width: 0;
  margin: 0;
  padding: 11px 4px 11px 10px;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  cursor: default;
  text-align: left;
}
.bias-head-left {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
  position: relative;
  cursor: pointer;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  -webkit-tap-highlight-color: transparent;
}
.bias-brief {
  /* 宽度跟字走；maxWidth 由 fitBiasBriefText 设为行内可用宽，能放下就不省略 */
  flex: 0 1 auto;
  min-width: 0;
  width: max-content;
  max-width: 100%;
  margin: 0;
  padding: 0;
  font-size: 13px;
  font-weight: 550;
  line-height: 1.35;
  color: var(--muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  letter-spacing: 0.01em;
  pointer-events: auto;
  cursor: pointer;
  border-radius: 0;
  text-align: left;
}
.bias-brief:hover,
.bias-brief:focus-visible {
  color: var(--ink);
  outline: none;
}
.bias-brief.up { color: var(--up); }
.bias-brief.down { color: rgba(176, 58, 58, 0.9); }
.bias-brief.warn { color: rgba(183, 121, 31, 0.95); }
.bias-top-trail {
  display: inline-flex;
  align-items: center;
  gap: 0;
  flex-shrink: 0;
  padding-right: 2px;
  position: relative;
  z-index: 6;
  isolation: isolate;
}
.bias-fold-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  position: relative;
  z-index: 6;
}
.bias-fold-btn:focus-visible { outline: none; }
.bias-fold-btn:hover,
.bias-fold-btn:active { background: transparent; }
.bias-ico { display: inline-flex; color: var(--teal); flex-shrink: 0; align-items: center; }
.bias-ico .bias-radar-svg,
.bias-ico .bias-horn-svg {
  width: 18px;
  height: 18px;
  display: block;
}
.bias-score {
  font-size: 15px;
  font-weight: 800;
  color: var(--muted);
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
}
.bias-score[hidden],
.bias-pulse[hidden] {
  display: none !important;
}
.bias-score.up { color: var(--up); }
.bias-score.down { color: var(--down); }
.bias-pulse {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--teal);
  flex-shrink: 0;
  box-shadow: 0 0 0 3px var(--chip-bg);
}
.bias-pulse.warn {
  background: var(--warn);
  box-shadow: 0 0 0 3px rgba(183, 121, 31, 0.16);
}
.bias-pulse.down {
  background: var(--down);
  box-shadow: 0 0 0 3px rgba(192, 57, 43, 0.12);
}
.bias-chevron {
  width: 8px;
  height: 8px;
  border-right: 2px solid var(--muted);
  border-bottom: 2px solid var(--muted);
  transform: rotate(45deg);
  opacity: 0.7;
  transition: transform 0.18s ease;
  flex-shrink: 0;
  margin-top: -3px;
}
.bias-card:not(.open) .bias-chevron { transform: rotate(-45deg); margin-top: 2px; }
/* 首页盯行情卡（对齐币安：标题 + 定性/折线 + 资金条 + 双币行情） */
/* 手机：盯行情 pulse 展开 → 收起顶部净盈亏区，把可视区留给行情卡 */
@media (max-width: 899px) {
  body.bias-pulse-focus:has(#tab-home.on) .app > .hero {
    display: none;
  }
  body.bias-pulse-focus:has(#tab-home.on) #pnl-hero-hit:not([hidden]),
  body.bias-pulse-focus:has(#tab-home.on) #hero-kline-spark:not([hidden]) {
    display: none !important;
  }
  body.bias-pulse-focus:has(#tab-home.on) .app {
    padding-top: calc(10px + env(safe-area-inset-top, 0px));
  }
}
.bias-card.is-pulse-layout {
  background: transparent;
  border: 0;
  box-shadow: none;
  overflow: visible;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  padding: 0;
  margin: 0;
  align-self: stretch;
  justify-self: stretch;
}
.bias-card.is-pulse-layout #bias-watch {
  display: block;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}
.bias-card.is-pulse-layout:not(.open) .bias-watch-body {
  display: none;
}
.bias-card.is-pulse-layout .bias-watch-top {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  margin: 0 0 10px;
  padding: 0;
}
.bias-card.is-pulse-layout:not(.open) .bias-watch-top {
  margin-bottom: 0;
}
.bias-card.is-pulse-layout:not(.open) .bias-watch-shell {
  padding: 5px 10px 5px;
  border-radius: 14px;
}
.bias-card.is-pulse-layout:not(.open) .bias-watch-horn-btn {
  width: 26px;
  height: 26px;
}
.bias-card.is-pulse-layout:not(.open) .bias-brief {
  font-size: 11px;
  line-height: 1.2;
}
@media (max-width: 720px) {
  .bias-card.is-pulse-layout:not(.open) .bias-watch-shell {
    padding: 3px 10px 3px;
    border-radius: 12px;
  }
  .bias-card.is-pulse-layout:not(.open) .bias-watch-horn-btn {
    width: 24px;
    height: 24px;
  }
  .bias-card.is-pulse-layout:not(.open) .bias-watch-horn-btn .bias-horn-svg {
    width: 16px;
    height: 16px;
  }
  .bias-card.is-pulse-layout:not(.open) .bias-brief {
    font-size: 10.5px;
    line-height: 1.15;
  }
  /* 展开：盯行情区内字号整体缩小，适配手机一屏 */
  .bias-card.is-pulse-layout.open .bias-watch-shell {
    padding: 9px 10px 8px;
  }
  .bias-card.is-pulse-layout.open .bias-watch-top {
    margin-bottom: 8px;
  }
  .bias-card.is-pulse-layout.open .bias-brief {
    font-size: 10px;
    line-height: 1.2;
  }
  .bias-card.is-pulse-layout .bias-watch-body {
    gap: 9px;
  }
  .bias-card.is-pulse-layout .bias-watch-sym {
    font-size: 10px;
    margin-bottom: 2px;
  }
  .bias-card.is-pulse-layout .bias-watch-regime {
    font-size: 19px;
    line-height: 1.05;
  }
  .bias-card.is-pulse-layout .bias-watch-regime-row {
    column-gap: 3px;
  }
  .bias-card.is-pulse-layout .bias-watch-spark {
    height: 38px;
  }
  .bias-card.is-pulse-layout .bias-watch-flow-bar {
    height: 8px;
  }
  .bias-card.is-pulse-layout .bias-watch-flow-row {
    margin-top: 6px;
    font-size: 12px;
    line-height: 1.35;
    gap: 6px;
  }
  .bias-card.is-pulse-layout .bias-watch-stream {
    margin-top: 0;
  }
  .bias-card.is-pulse-layout .bias-watch-quote {
    gap: 2px;
    padding: 0 3px;
  }
  .bias-card.is-pulse-layout .bias-watch-quote-top {
    gap: 4px;
  }
  .bias-card.is-pulse-layout .bias-watch-quote .sym,
  .bias-card.is-pulse-layout .bias-watch-quote .px {
    font-size: 13px;
    font-weight: 600;
  }
  .bias-card.is-pulse-layout .bias-watch-quote .chg {
    font-size: 9.5px;
    font-weight: 500;
    gap: 0 3px;
  }
  .bias-card.is-pulse-layout .bias-watch-quote .chg-tri i {
    border-left-width: 3px;
    border-right-width: 3px;
  }
  .bias-card.is-pulse-layout .bias-watch-quote .chg-tri.is-up i {
    border-bottom-width: 4px;
  }
  .bias-card.is-pulse-layout .bias-watch-quote .chg-tri.is-down i {
    border-top-width: 4px;
  }
}
.bias-card.is-pulse-layout .bias-watch-horn-btn {
  flex: 0 0 auto;
  width: 32px;
  height: 32px;
  margin: 0;
  padding: 0;
  color: rgba(255, 255, 255, 0.92);
}
html[data-theme="light"] .bias-card.is-pulse-layout .bias-watch-horn-btn {
  color: rgba(22, 26, 31, 0.9);
}
.bias-card.is-pulse-layout .bias-watch-horn-btn .bias-horn-svg {
  width: 18px;
  height: 18px;
  display: block;
}
.bias-card.is-pulse-layout .bias-head {
  flex: 1;
  min-width: 0;
  padding: 0;
  cursor: default;
}
.bias-card.is-pulse-layout .bias-brief {
  color: #848e9c;
  font-size: 12px;
  font-weight: 550;
  cursor: pointer;
}
.bias-card.is-pulse-layout .bias-brief.up { color: var(--up); }
.bias-card.is-pulse-layout .bias-brief.down { color: var(--down); }
.bias-card.is-pulse-layout .bias-brief.chop { color: #c9b24a; }
.bias-card.is-pulse-layout .bias-brief.warn { color: #c9b24a; }
.bias-card.is-pulse-layout .bias-brief:hover,
.bias-card.is-pulse-layout .bias-brief:focus-visible {
  color: inherit;
  opacity: 0.92;
}
.bias-card.is-pulse-layout .bias-brief.up:hover,
.bias-card.is-pulse-layout .bias-brief.up:focus-visible { color: var(--up); }
.bias-card.is-pulse-layout .bias-brief.down:hover,
.bias-card.is-pulse-layout .bias-brief.down:focus-visible { color: var(--down); }
.bias-card.is-pulse-layout .bias-brief.chop:hover,
.bias-card.is-pulse-layout .bias-brief.chop:focus-visible,
.bias-card.is-pulse-layout .bias-brief.warn:hover,
.bias-card.is-pulse-layout .bias-brief.warn:focus-visible { color: #c9b24a; }
@media (min-width: 721px) {
  .bias-card.is-pulse-layout .bias-brief {
    font-size: 12.5px;
    line-height: 1.35;
  }
}
.bias-card.is-pulse-layout .bias-watch-horn-btn .bias-chevron {
  display: none !important;
}
.bias-brief-sr {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
}
.bias-watch-shell {
  display: block;
  width: 100%;
  max-width: 100%;
  margin: 0;
  color: var(--ink);
  text-align: left;
  font: inherit;
  -webkit-tap-highlight-color: transparent;
}
.bias-card.is-pulse-layout .bias-watch-shell {
  width: 100%;
  max-width: 100%;
}
.bias-watch-hd {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  width: 100%;
  margin: 0 0 12px;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.bias-watch-hd:focus-visible {
  outline: 2px solid rgba(240, 185, 11, 0.55);
  outline-offset: 2px;
  border-radius: 6px;
}
/* 浅色：底板/线框与 .holding-main 同源令牌，正文色跟 --ink/--muted */
html[data-theme="light"] .bias-watch-shell .bias-watch-regime:not(.is-up):not(.is-down),
html[data-theme="light"] .bias-watch-shell .bias-watch-hd-t,
html[data-theme="light"] .bias-watch-shell .bias-watch-quote .sym,
html[data-theme="light"] .bias-watch-shell .bias-watch-quote .px {
  color: var(--ink);
}
html[data-theme="light"] .bias-watch-shell .bias-watch-sym,
html[data-theme="light"] .bias-watch-shell .bias-watch-hd-chev {
  color: var(--muted);
}
.bias-watch-hd-t {
  font-size: 15px;
  font-weight: 600;
  color: #eaecef;
  letter-spacing: 0.01em;
}
.bias-watch-hd-chev {
  flex-shrink: 0;
  color: #848e9c;
  opacity: 0.95;
}
.bias-watch-body {
  display: flex;
  flex-direction: column;
  gap: 14px;
  width: 100%;
}
.bias-watch-main {
  display: block;
  width: 100%;
}
.bias-watch-copy {
  display: block;
  width: 100%;
  min-width: 0;
}
.bias-watch-regime-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  column-gap: 4px;
  min-width: 0;
  width: 100%;
  margin-right: 0;
}
.bias-watch-sym {
  display: block;
  font-size: 12px;
  font-weight: 500;
  color: #848e9c;
  line-height: 1.2;
  margin-bottom: 4px;
}
.bias-watch-regime {
  display: block;
  flex: 0 0 auto;
  font-size: 26px;
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: #eaecef;
  white-space: nowrap;
}
.bias-watch-regime.is-down { color: var(--down); }
.bias-watch-regime.is-up { color: var(--up); }
.bias-watch-spark {
  flex: 1 1 0;
  width: 100%;
  min-width: 0;
  max-width: none;
  height: 52px;
  display: block;
  overflow: visible;
  align-self: center;
  shape-rendering: geometricPrecision;
}
#bias-watch-spark,
#bias-watch-spark path {
  filter: none !important;
}
.bias-watch-spark.is-down { color: var(--down); }
.bias-watch-spark.is-up { color: var(--up); }
.bias-watch-spark.is-flat { color: #848e9c; }
.bias-watch-flow {
  display: block;
}
.bias-watch-flow-bar {
  display: flex;
  height: 10px;
  border-radius: 999px;
  overflow: hidden;
  background: color-mix(in srgb, var(--down) 35%, transparent);
}
.bias-watch-flow-in {
  display: block;
  height: 100%;
  background: var(--up-solid, var(--up));
  transition: width 0.35s ease;
  min-width: 0;
}
.bias-watch-flow-out {
  display: block;
  height: 100%;
  flex: 1 1 auto;
  background: var(--down-solid, var(--down));
  min-width: 0;
}
.bias-watch-flow-row {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  margin-top: 8px;
  font-size: 13px;
  line-height: 1.4;
  font-variant-numeric: tabular-nums;
}
.bias-watch-flow-in-lab {
  color: var(--up);
}
.bias-watch-flow-out-lab {
  color: var(--down);
  text-align: right;
}
.bias-watch-flow-row em {
  font-style: normal;
  font-weight: 500;
}
.bias-watch-flow-row b {
  font-weight: 600;
}
.bias-watch-stream {
  --watch-cols: 6;
  --watch-slot: 16.666%;
  display: block;
  width: 100%;
  margin-top: 2px;
  touch-action: pan-x;
}
.bias-watch-stream-scroller {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x proximity;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  cursor: grab;
  user-select: none;
}
.bias-watch-stream-scroller::-webkit-scrollbar {
  display: none;
}
.bias-watch-stream-scroller.is-dragging {
  cursor: grabbing;
  scroll-snap-type: none;
  scroll-behavior: auto;
}
.bias-watch-stream.is-static .bias-watch-stream-scroller {
  overflow-x: hidden;
  cursor: default;
}
.bias-watch-quote {
  display: flex;
  flex-direction: column;
  gap: 4px;
  flex: 0 0 var(--watch-slot);
  width: var(--watch-slot);
  max-width: var(--watch-slot);
  min-width: 0;
  box-sizing: border-box;
  padding: 0 6px;
  scroll-snap-align: start;
  font-variant-numeric: tabular-nums;
}
.bias-watch-stream.is-static .bias-watch-quote {
  flex: 1 1 0;
  width: auto;
  max-width: none;
}
.bias-watch-quote-top {
  display: flex;
  align-items: baseline;
  gap: 6px;
  min-width: 0;
  line-height: 1.2;
}
.bias-watch-quote .sym {
  font-size: 18px;
  font-weight: 600;
  color: #eaecef;
  letter-spacing: -0.02em;
  flex-shrink: 0;
}
.bias-watch-quote .px {
  font-size: 18px;
  font-weight: 600;
  color: #eaecef;
  letter-spacing: -0.02em;
  min-width: 0;
}
.bias-watch-quote .chg {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0 5px;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.3;
}
.bias-watch-quote .chg.is-up,
.bias-watch-tick .chg.is-up { color: var(--up); }
.bias-watch-quote .chg.is-down,
.bias-watch-tick .chg.is-down { color: var(--down); }
.bias-watch-quote .chg-pct,
.bias-watch-quote .chg-abs {
  font-variant-numeric: tabular-nums;
}
.bias-watch-quote .chg-tri {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: 2px;
  flex-shrink: 0;
}
.bias-watch-quote .chg-tri i {
  display: block;
  width: 0;
  height: 0;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  font-style: normal;
}
.bias-watch-quote .chg-tri.is-up i {
  margin-top: 1px;
  border-bottom: 5px solid var(--up);
}
.bias-watch-quote .chg-tri.is-down i {
  margin-bottom: 1px;
  border-top: 5px solid var(--down);
}
/* 首页已移除五格旧多空指标，仅保留盯行情卡 */
.bias-metrics {
  display: none !important;
}
.bias-metric {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  margin: 0;
  padding: 6px 2px 4px;
  border: 0;
  border-right: 1px solid var(--line);
  background: transparent;
  color: inherit;
  font: inherit;
  cursor: help;
  -webkit-tap-highlight-color: transparent;
}
.bias-metric:last-child { border-right: 0; }
.bias-metric:focus-visible {
  outline: 2px solid rgba(0,0,0,0.2);
  outline-offset: 1px;
  border-radius: 8px;
}
.bias-m-ico {
  display: inline-flex;
  color: var(--muted);
  opacity: 0.9;
}
.bias-m-ico svg {
  width: 18px;
  height: 18px;
}
html[data-theme="dark"] .bias-m-ico {
  color: #fff;
  opacity: 0.95;
}
/* 雷达头：左侧图标 + 摘要文案夜间纯白（覆盖 .up/.down 青绿） */

html[data-theme="dark"] .bias-ico {
  color: #fff;
}
html[data-theme="dark"] .bias-score,
html[data-theme="dark"] .bias-score.up,
html[data-theme="dark"] .bias-score.down {
  color: #fff;
}
html[data-theme="dark"] .bias-brief,
html[data-theme="dark"] .bias-brief.up,
html[data-theme="dark"] .bias-brief.down,
html[data-theme="dark"] .bias-brief.warn,
html[data-theme="dark"] .bias-brief:hover,
html[data-theme="dark"] .bias-brief:focus-visible {
  color: #fff;
}
html[data-theme="dark"] .bias-metric.focus .bias-m-ico {
  color: var(--teal);
}
html[data-theme="dark"] .bias-metric.focus.lean-down .bias-m-ico {
  color: var(--down);
}
html[data-theme="dark"] .bias-metric.focus.lean-up .bias-m-ico {
  color: var(--teal);
}
html[data-theme="dark"] .bias-metric.focus.lean-flat .bias-m-ico {
  color: #fff;
}
.bias-metric b {
  font-size: 13px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: var(--ink);
  line-height: 1;
}
.bias-metric.focus .bias-m-ico { color: var(--teal); }
.bias-metric.focus b {
  font-size: 14px;
  font-weight: 800;
  color: var(--teal);
}
.bias-metric.focus.lean-down .bias-m-ico,
.bias-metric.focus.lean-down b { color: var(--down); }
.bias-metric.focus.lean-up .bias-m-ico,
.bias-metric.focus.lean-up b { color: var(--teal); }
.bias-metric.focus.lean-flat .bias-m-ico { color: var(--muted); }
.bias-metric.focus.lean-flat b { color: var(--ink); }

.bias-tip {
  position: absolute;
  bottom: calc(100% + 8px);
  left: 50%;
  transform: translateX(-50%) translateY(4px);
  width: min(236px, 72vw);
  padding: 10px 11px 12px;
  border-radius: 12px;
  background: #000;
  color: #f5f8fa;
  text-align: left;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.35);
  filter: none;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s;
  z-index: var(--z-tip-fixed);
}
/* 底边真三角尖：纯气泡箭头，非旋转菱形 */

.bias-tip::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -5px;
  top: auto;
  width: 0;
  height: 0;
  margin-left: 0;
  background: none;
  border-style: solid;
  border-width: 6px 6px 0 6px;
  border-color: #000 transparent transparent transparent;
  border-radius: 0;
  transform: translateX(-50%);
  box-shadow: none;
  filter: none;
  pointer-events: none;
  z-index: 2;
}
.bias-tip strong {
  display: block;
  font-size: 12px;
  font-weight: 800;
  margin-bottom: 4px;
}
.bias-tip-now {
  display: block;
  font-style: normal;
  font-size: 11px;
  font-weight: 700;
  color: #9fe0d3;
  margin-bottom: 6px;
  font-variant-numeric: tabular-nums;
}
.bias-tip-now.bias-tip-rich {
  color: inherit;
  font-weight: 500;
}
.bias-tip-val {
  font-size: 12px;
  font-weight: 800;
  color: #9fe0d3;
  margin-bottom: 4px;
  font-variant-numeric: tabular-nums;
}
.bias-tip-cmp {
  font-size: 10.5px;
  font-weight: 650;
  color: rgba(245, 248, 250, 0.72);
  margin-bottom: 4px;
  line-height: 1.4;
}
.bias-tip-read {
  font-size: 10.5px;
  font-weight: 600;
  color: rgba(245, 248, 250, 0.88);
  line-height: 1.45;
}
.bias-tip > span {
  display: block;
  font-size: 10.5px;
  line-height: 1.45;
  color: rgba(245, 248, 250, 0.62);
  font-weight: 500;
  margin-top: 6px;
  padding-top: 6px;
  border-top: 1px solid rgba(245, 248, 250, 0.12);
}
.bias-tip-flow {
  width: max-content;
  max-width: min(268px, calc(100vw - 24px));
  overflow: visible;
  z-index: var(--z-tip-fixed);
  bottom: calc(100% + 8px);
  top: auto;
  padding: 0;
}
.bias-tip-flow-scroll {
  padding: 9px 10px 10px;
  max-height: none;
  overflow: visible;
}
.bias-tip.bias-tip-fixed {
  position: fixed !important;
  bottom: auto !important;
  top: auto;
  width: max-content;
  max-width: min(240px, calc(100vw - 24px));
  pointer-events: auto;
  opacity: 1 !important;
  visibility: visible !important;
  transform: translateX(-50%) !important;
  overflow: visible !important;
  z-index: var(--z-tip-fixed) !important;
}
.bias-tip.bias-tip-flow.bias-tip-fixed {
  transform: translateX(-50%) !important;
}
.bias-tip.bias-tip-fixed::after {
  content: "" !important;
  display: block !important;
  left: var(--arrow-x, 50%) !important;
  right: auto !important;
  margin-left: 0 !important;
  top: auto !important;
  bottom: -5px !important;
  width: 0 !important;
  height: 0 !important;
  background: none !important;
  border-style: solid !important;
  border-width: 6px 6px 0 6px !important;
  border-color: #000 transparent transparent transparent !important;
  border-radius: 0 !important;
  transform: translateX(-50%) !important;
  box-shadow: none !important;
  pointer-events: none;
  z-index: 2;
}
/* 气泡在锚点下方：三角尖朝上 */

.bias-tip.bias-tip-fixed.is-below::after {
  top: -5px !important;
  bottom: auto !important;
  border-width: 0 6px 6px 6px !important;
  border-color: transparent transparent #000 transparent !important;
  transform: translateX(-50%) !important;
}
.bias-tip.bias-tip-flow.bias-tip-fixed::after {
  /* 跟随 JS --arrow-x，勿锁死 50%（贴边平移后要对准图标） */
  left: var(--arrow-x, 50%) !important;
  margin-left: 0 !important;
}
.bias-metric.tip-on {
  z-index: 50;
}
.bias-card:has(.bias-metric.tip-on) {
  z-index: 12;
}
.bias-metric.tip-on .bias-tip-flow {
  pointer-events: auto;
}
.bias-tip-now.bias-flow-dynamic {
  margin-bottom: 0;
  color: #e8f2f7;
  font-weight: 600;
}
.bias-flow-tip-score {
  font-size: 13px;
  font-weight: 800;
  color: #9fe0d3;
  margin-bottom: 2px;
  font-variant-numeric: tabular-nums;
}
.bias-flow-tip-meta {
  font-size: 10px;
  font-weight: 600;
  color: rgba(245, 248, 250, 0.5);
  margin-bottom: 6px;
  line-height: 1.35;
}
.bias-flow-tip-sec {
  font-size: 10px;
  font-weight: 750;
  color: rgba(245, 248, 250, 0.55);
  letter-spacing: 0.04em;
  margin: 2px 0 4px;
}
.bias-flow-tip-row {
  margin-bottom: 4px;
}
.bias-flow-tip-row:last-of-type {
  margin-bottom: 0;
}
.bias-flow-tip-lbl {
  display: block;
  font-size: 10px;
  font-weight: 700;
  color: rgba(245, 248, 250, 0.55);
  margin-bottom: 2px;
  letter-spacing: 0.02em;
}
.bias-flow-tip-val {
  display: block;
  font-size: 10.5px;
  line-height: 1.42;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.bias-flow-sep {
  color: rgba(245, 248, 250, 0.35);
  margin: 0 2px;
}
.bias-flow-in {
  color: #7ee8c8;
}
.bias-flow-out {
  color: #f5a8a8;
}
.bias-flow-tip-judge {
  margin-top: 6px;
  padding-top: 6px;
  border-top: 1px solid rgba(245, 248, 250, 0.12);
  font-size: 10.5px;
  line-height: 1.45;
  font-weight: 600;
  color: rgba(245, 248, 250, 0.88);
}
.bias-flow-tip-judge b {
  display: inline;
  margin-right: 4px;
  color: rgba(245, 248, 250, 0.55);
  font-weight: 750;
}
/* 多空指标气泡：可见性由 JS 挂 body + .bias-tip-fixed 控制 */


.bias-hint {
  margin: 8px 0 0;
  font-size: 11px;
  color: var(--muted);
  line-height: 1.45;
}
.bias-metric b.up { color: var(--up); }
.bias-metric b.down { color: var(--down); }
.bias-label-sr { display: none; }

@container fund-app (max-width: 360px) {
  .bias-brief { font-size: 11px; }
  .target-end { font-size: 12px; }
  .target-bar-lane { gap: 6px; }
}
@container fund-app (max-width: 300px) {
  .bias-brief { font-size: 10px; }
  .target-end { font-size: 11px; }
  .target-bar-lane { gap: 4px; }
}
/* 手机雷达条：固定字号单行；挤左右占位，勿换行、勿缩字 */


@media (max-width: 899px) {
  .bias-card .bias-top {
    align-items: center;
    gap: 0;
  }
  .bias-card .bias-head {
    align-items: center;
    gap: 5px;
    min-height: 0;
    padding: 5px 0 5px 10px;
    min-width: 0;
  }
  .bias-card .bias-head-left {
    align-items: center;
    gap: 6px;
    margin-top: 0;
    flex-shrink: 0;
  }
  .bias-card .bias-ico.bias-ico-radar .bias-radar-svg,
  .bias-card .bias-ico.bias-ico-horn .bias-horn-svg {
    width: 16px;
    height: 16px;
  }
  .bias-card .bias-score {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1.25;
    flex-shrink: 0;
  }
  .bias-card .bias-pulse {
    width: 6px;
    height: 6px;
    margin: 0;
    flex-shrink: 0;
    align-self: center;
    box-shadow: 0 0 0 2px var(--chip-bg);
  }
  .bias-card .bias-pulse.warn {
    box-shadow: 0 0 0 2px rgba(183, 121, 31, 0.16);
  }
  .bias-card .bias-pulse.down {
    box-shadow: 0 0 0 2px rgba(192, 57, 43, 0.12);
  }
  .bias-card .bias-brief {
    flex: 1 1 0;
    min-width: 0;
    width: auto !important;
    max-width: none !important;
    font-size: 12px !important;
    font-weight: 550;
    line-height: 1.25;
    letter-spacing: 0;
    white-space: nowrap !important;
    overflow: hidden;
    text-overflow: ellipsis;
    word-break: normal;
  }
  .bias-card .bias-top-trail {
    padding-top: 0;
    padding-right: 0;
  }
  .bias-card .bias-fold-btn {
    width: 28px;
    height: 28px;
  }
  .bias-card.open .bias-body {
    margin-top: 0;
    padding-top: 2px;
  }
}

@media (max-width: 360px) {
  .bias-metrics { grid-template-columns: repeat(5, 1fr); gap: 0; }
  .bias-metric { padding: 6px 1px 4px; border-bottom: 0; }
  .bias-metric:nth-child(n) { padding-top: 4px; }
  .bias-metric b { font-size: 11px; }
  .bias-m-ico svg { width: 15px; height: 15px; }
}

.holding, .product {
  background: var(--panel);
  border-radius: 16px;
  padding: 14px;
  box-shadow: 0 1px 0 var(--line);
  border: 0;
  width: 100%;
  text-align: left;
  font: inherit;
  color: inherit;
  cursor: pointer;
}
.product.on { outline: 2px solid rgba(0,0,0,0.2); }

.holding {
  display: block;
  cursor: default;
  padding: 0;
  overflow: visible;
  position: relative;
  z-index: 1;
  /* 卡片外观挪到 .holding-main；外壳透明以便明细提手挂在下方 */
  background: transparent;
  box-shadow: none;
  border-radius: 0;
  margin-bottom: 0;
}
.holding-main,
.bias-watch-shell {
  background: var(--panel);
  border-radius: 16px;
  padding: 14px 11px;
  box-shadow: var(--shadow);
  border: 1px solid var(--line);
  position: relative;
  z-index: 1;
  box-sizing: border-box;
}
/* 盯盘条：与夜间一致，描边为主、不叠第二层大阴影（避免与下方持仓卡阴影糊成一条） */
.bias-card.is-pulse-layout .bias-watch-shell.holding-main {
  box-shadow: none;
  border-color: var(--card-line, var(--line));
}
.home-stack .holdings .holding-main {
  box-shadow: var(--card-home-elev, var(--shadow));
  border-color: var(--card-line, var(--line));
}
@media (min-width: 900px) {
  #tab-home.on .home-trade-unified-card,
  body.fund-tab-home-on .home-trade-unified-card {
    border: 1px solid var(--card-line, var(--line));
    border-radius: 16px;
    box-shadow: var(--card-home-elev, var(--shadow));
    background: var(--panel);
    overflow: hidden;
  }
  #tab-home.on .home-trade-unified-body,
  body.fund-tab-home-on .home-trade-unified-body {
    display: grid;
    grid-template-columns: minmax(0, 6fr) minmax(0, 4fr);
    min-height: 0;
    max-height: 100%;
  }
  #tab-home.on .home-trade-unified-card .holding-main,
  body.fund-tab-home-on .home-trade-unified-card .holding-main {
    border: 0 !important;
    box-shadow: none !important;
    border-radius: 0 !important;
  }
}
/* 明细展开：主卡与明细连成一体（下沿圆角交给尾巴） */

.holding:has(> .holding-detail-tail[open]) .holding-main,
.holding:has(.holding-main > .holding-detail-tail[open]) .holding-main {
  border-radius: 16px 16px 0 0;
  box-shadow: none;
  border-bottom: 0;
  padding-bottom: 10px;
}
.holding:has(.info-btn.on) {
  z-index: 8;
}

.holding-head {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 4px;
  margin-bottom: 12px;
  width: 100%;
}
.holding-title-row {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 8px 10px;
  width: 100%;
  min-width: 0;
  max-width: 100%;
}
.holding-title-row .hn {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 0;
  line-height: 1.25;
  min-height: 0;
  padding-bottom: 0;
}
.holding-head-actions {
  display: flex;
  align-items: center;
  align-self: center;
  flex-shrink: 0;
  margin-left: auto;
  padding-bottom: 0;
  /* 微调：再微微上移 */
  transform: translate(4px, -11px);
}
.hold-tool-btn.hold-run-ico-btn {
  box-sizing: border-box;
  width: 16px;
  height: 16px;
  min-width: 16px;
  min-height: 16px;
  max-width: none;
  max-height: none;
  padding: 0;
  border: 2px solid currentColor;
  border-radius: 50%;
  aspect-ratio: 1;
  flex-shrink: 0;
  background: transparent;
  display: inline-grid;
  place-items: center;
  cursor: pointer;
  color: var(--ink);
}
.hold-tool-btn.hold-run-ico-btn .hold-tool-svg {
  width: 8px;
  height: 8px;
}
.hold-run-ico-slot {
  display: inline-block;
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  min-width: 16px;
  min-height: 16px;
  visibility: hidden;
  pointer-events: none;
}
.hold-run-ico-btn.hold-session-closed {
  opacity: 0.55;
  pointer-events: none;
  cursor: default;
}
.hold-tool-btn.hold-run-ico-btn svg {
  display: block;
}
.hold-run-ico-btn.start svg,
.hold-run-ico-btn.resume svg {
  display: block;
}
.hold-run-ico-btn.start,
.hold-run-ico-btn.resume,
.hold-run-ico-btn.pause {
  color: var(--ink);
  border: 2px solid currentColor;
  border-radius: 50%;
  background: transparent;
}
.hold-run-ico-btn.start:hover,
.hold-run-ico-btn.start:focus-visible,
.hold-run-ico-btn.resume:hover,
.hold-run-ico-btn.resume:focus-visible,
.hold-run-ico-btn.pause:hover,
.hold-run-ico-btn.pause:focus-visible {
  background: transparent;
}
.hold-run-ico-btn.paused-active {
  color: var(--down, #d4535c);
  border: 2px solid currentColor;
  border-radius: 50%;
  background: transparent;
  animation: hold-roll-breathe 2.4s ease-in-out infinite;
}
/* 暂停态：轻微呼吸灯，极少光晕 */

@keyframes hold-roll-breathe {
  0%,
  100% {
    opacity: 1;
    box-shadow: 0 0 0 0 rgba(212, 83, 92, 0);
    filter: none;
  }
  50% {
    opacity: 0.88;
    box-shadow: 0 0 3px 0.5px rgba(212, 83, 92, 0.22);
    filter: none;
  }
}
@keyframes hold-roll-pulse {
  0%,
  100% {
    opacity: 1;
    box-shadow: 0 0 0 0 rgba(212, 83, 92, 0);
  }
  50% {
    opacity: 0.88;
    box-shadow: 0 0 3px 0.5px rgba(212, 83, 92, 0.22);
  }
}
.hold-run-ico-btn.paused-active:hover,
.hold-run-ico-btn.paused-active:focus-visible {
  background: transparent;
  color: var(--down-solid, #c04450);
}
@media (prefers-reduced-motion: reduce) {
  .hold-run-ico-btn.paused-active {
    animation: none;
    opacity: 1;
    box-shadow: none;
  }
}
.hold-run-ico-btn.stop {
  color: var(--down);
  border: 2px solid currentColor;
  border-radius: 50%;
  background: transparent;
}
.hold-run-ico-btn.stop:hover,
.hold-run-ico-btn.stop:focus-visible {
  background: transparent;
}
.hold-run-ico-btn:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}
.holding-info {
  position: relative;
  align-self: center;
  display: flex;
  align-items: center;
  gap: 2px;
  z-index: 6;
}
.holding-info.is-col {
  flex-direction: column;
  align-self: flex-start;
  align-items: center;
}
.holding-info.is-row {
  flex-direction: row;
  flex-shrink: 0;
  align-self: center;
  align-items: center;
  gap: 2px;
}
/* 持仓卡顶栏七钮：统一缩小一档 */

.holding-info .hold-tool-svg,
.holding-info .hold-tool-btn:not(.hold-run-ico-btn) svg,
.holding-info .hold-tool-btn:not(.hold-run-ico-btn) .hold-tool-svg,
.holding-info .pos-btn svg,
.holding-info .kline-btn .hold-tool-svg,
.holding-info .hold-tool-btn.params-settings-btn svg,
.holding-info .hold-tool-btn.params-settings-btn .hold-tool-svg,
.holding-info .info-btn svg,
.holding-info .info-btn .hold-tool-svg {
  width: 18px !important;
  height: 18px !important;
}
.holding-info .hold-tool-btn:not(.hold-run-ico-btn):not(.ai-ico-btn) {
  padding: 0;
  min-width: 28px;
  min-height: 28px;
  width: 28px;
  height: 28px;
  display: inline-grid;
  place-items: center;
  background: transparent;
  border: 0;
  border-radius: 0;
  color: var(--ink);
}
.holding-info .ai-ico-btn.hold-tool-btn,
.holding-info .ai-ico-btn {
  min-width: 32px;
  min-height: 32px;
  width: 32px;
  height: 32px;
  padding: 0;
  display: inline-grid;
  place-items: center;
  background: transparent;
  border: 0;
  border-radius: 0;
  color: var(--ink);
}
.holding-info .ai-ico-btn .ai-ico-lab {
  font-size: 16px;
}
.holding-info .hold-tool-btn.hold-run-ico-btn,
.holding-head-actions .holding-info .hold-tool-btn.hold-run-ico-btn,
.holding-info .hold-run-ico-slot {
  width: 16px !important;
  height: 16px !important;
  min-width: 16px !important;
  min-height: 16px !important;
}
.holding-info .hold-tool-btn.hold-run-ico-btn .hold-tool-svg,
.holding-head-actions .holding-info .hold-tool-btn.hold-run-ico-btn .hold-tool-svg {
  width: 8px !important;
  height: 8px !important;
}
/* 持仓顶栏全局线稿默认（非持仓卡工具行仍可用） */

.hold-tool-svg,
.hold-tool-btn svg {
  display: block;
  width: 22px;
  height: 22px;
  flex-shrink: 0;
  pointer-events: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.holding-info .hold-tool-btn:hover,
.holding-info .ai-ico-btn:hover {
  color: var(--teal, #14b8a6);
}
.holding-info .hold-tool-btn.on,
.holding-info .ai-ico-btn.on {
  color: var(--teal, #14b8a6);
}
.ai-ico-btn {
  border: 0;
  background: transparent;
  color: var(--ink);
  font-family: var(--font);
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0.04em;
  line-height: 1;
  padding: 2px;
  margin: 0;
  min-width: 26px;
  min-height: 26px;
  cursor: pointer;
  border-radius: 0;
  display: inline-grid;
  place-items: center;
}
.ai-ico-btn .ai-ico-lab {
  display: block;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1;
  font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  color: inherit;
  transform: translateY(0.5px);
}
@media (max-width: 899px) {
  .holding-info .ai-ico-btn.hold-tool-btn,
  .holding-info .ai-ico-btn {
    min-width: 32px;
    min-height: 32px;
    width: 32px;
    height: 32px;
  }
  .holding-info .ai-ico-btn .ai-ico-lab {
    font-size: 16px;
  }
}
.ai-ico-btn:hover,
.ai-ico-btn.on {
  color: #127a68;
}
@media (max-width: 720px) {
  .hold-tool-svg,
  .hold-tool-btn svg {
    width: 22px;
    height: 22px;
  }
  /* 手机：K 线 / 更多 加大触控区；其它工具钮仍紧凑 */
  .holding-info .kline-btn,
  .holding-info .hold-more-btn {
    min-width: 40px;
    min-height: 40px;
    width: 40px;
    height: 40px;
  }
  .holding-info .kline-btn .hold-tool-svg,
  .holding-info .hold-more-btn .hold-tool-svg,
  .holding-info .kline-btn svg,
  .holding-info .hold-more-btn svg {
    width: 26px !important;
    height: 26px !important;
  }
  .holding-info .hold-tool-svg,
  .holding-info .hold-tool-btn:not(.hold-run-ico-btn):not(.kline-btn):not(.hold-more-btn) svg,
  .holding-info .hold-tool-btn:not(.hold-run-ico-btn):not(.kline-btn):not(.hold-more-btn) .hold-tool-svg,
  .holding-info .pos-btn svg,
  .holding-info .hold-tool-btn.params-settings-btn svg,
  .holding-info .hold-tool-btn.params-settings-btn .hold-tool-svg,
  .holding-info .info-btn svg,
  .holding-info .info-btn .hold-tool-svg {
    width: 18px !important;
    height: 18px !important;
  }
  .holding-info .hold-tool-btn:not(.hold-run-ico-btn):not(.ai-ico-btn):not(.kline-btn):not(.hold-more-btn) {
    min-width: 28px;
    min-height: 28px;
    width: 28px;
    height: 28px;
  }
  .holding-info .ai-ico-btn.hold-tool-btn,
  .holding-info .ai-ico-btn {
    min-width: 32px;
    min-height: 32px;
    width: 32px;
    height: 32px;
  }
  .hold-tool-btn.hold-run-ico-btn,
  .hold-run-ico-slot,
  .holding-head-actions .hold-tool-btn.hold-run-ico-btn,
  .holding-info .hold-tool-btn.hold-run-ico-btn {
    width: 16px;
    height: 16px;
    min-width: 16px;
    min-height: 16px;
    border-radius: 50%;
    border-width: 2px;
  }
  .holding-head-actions .hold-tool-btn.hold-run-ico-btn .hold-tool-svg,
  .hold-tool-btn.hold-run-ico-btn .hold-tool-svg,
  .holding-info .hold-tool-btn.hold-run-ico-btn .hold-tool-svg {
    width: 8px;
    height: 8px;
  }
  .holding-info.is-row {
    gap: 4px;
  }
  .holding-info.is-col {
    gap: 6px;
  }
  .holding-info .hold-more-dot {
    width: 7px;
    height: 7px;
    top: 5px;
    right: 5px;
  }
}
.holding-head-idle {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-bottom: 0;
  grid-template-columns: none;
  min-height: 88px;
  padding: 8px 0 4px;
}
.holding-idle-msg {
  flex: 1;
  min-width: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.45;
  text-align: center;
  padding: 8px 48px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}
.holding-idle-msg strong {
  display: block;
  font-size: 15px;
  font-weight: 800;
  color: var(--ink);
  letter-spacing: 0.02em;
}
.holding-idle-msg span {
  display: block;
  font-size: 12px;
  font-weight: 500;
  color: var(--muted);
}
.holding-idle {
  min-height: 96px;
}
.holding-idle .holding-info {
  position: absolute;
  top: 0;
  right: 0;
}
.info-btn {
  width: auto;
  height: auto;
  min-width: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--muted);
  cursor: pointer;
  display: grid;
  place-items: center;
  padding: 2px;
}
/* 说明 i：持仓卡统一 18（与旁侧七钮同档） */

.info-btn svg,
.info-btn .hold-tool-svg,
.holding-info .info-btn svg,
.holding-info .info-btn .hold-tool-svg {
  width: 18px;
  height: 18px;
}
.info-btn.on,
.info-btn:hover {
  background: transparent;
  color: var(--teal);
}
/* 气泡锚定在 i 按钮上方（大屏竖排时不再漂到整列顶上） */

.info-wrap {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  z-index: 7;
}
.info-pop {
  position: absolute;
  top: auto;
  bottom: calc(100% + 10px);
  right: 0;
  left: auto;
  width: min(320px, 82vw);
  z-index: var(--z-tip-fixed);
  transform: none;
  pointer-events: none;
}
.info-pop.info-pop-portal {
  position: fixed !important;
  z-index: var(--z-tip-fixed, 13250) !important;
  display: block !important;
  pointer-events: auto;
  bottom: auto !important;
  right: auto !important;
}
.info-pop[hidden] { display: none !important; }
.info-pop-inner {
  position: relative;
  background: #000;
  color: #e8eef2;
  border-radius: 12px;
  padding: 12px 13px 13px;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.45);
  border: 0;
}
.info-pop-inner::before {
  content: "";
  position: absolute;
  top: auto;
  bottom: -5px;
  left: var(--info-arrow-x, 50%);
  right: auto;
  width: 0;
  height: 0;
  margin-left: 0;
  background: none;
  border-style: solid;
  border-width: 6px 6px 0 6px;
  border-color: #000 transparent transparent transparent;
  border-radius: 0;
  transform: translateX(-50%);
  box-shadow: none;
  pointer-events: none;
}
.info-pop.info-pop-below .info-pop-inner::before {
  top: -5px;
  bottom: auto;
  border-width: 0 6px 6px 6px;
  border-color: transparent transparent #000 transparent;
  transform: translateX(-50%);
}
.info-pop-title {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: rgba(232, 238, 242, 0.55);
  margin-bottom: 8px;
}
.info-pop.is-train-explain .info-pop-title {
  color: rgba(232, 238, 242, 0.72);
  letter-spacing: 0.06em;
}
.info-pop.is-train-explain .info-pop-k {
  color: rgba(232, 238, 242, 0.55);
}
.info-pop-account {
  font-size: 11px;
  opacity: 0.55;
  margin-bottom: 8px;
}
.info-pop ul {
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.45;
}
.info-pop li {
  margin: 0;
  padding: 7px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  color: #f3f6f8;
}
.info-pop li:first-child {
  border-top: 0;
  padding-top: 0;
}
.info-pop li:last-child { padding-bottom: 0; }
.info-pop-rows li {
  display: grid;
  grid-template-columns: 3.5em minmax(0, 1fr);
  gap: 8px 10px;
  align-items: start;
  padding: 8px 0;
}
.info-pop-rows li:first-child { padding-top: 0; }
.info-pop-rows li:last-child { padding-bottom: 0; }
.info-pop-k {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: rgba(232, 238, 242, 0.48);
  line-height: 1.45;
  padding-top: 1px;
}
.info-pop-v {
  font-size: 12.5px;
  font-weight: 600;
  color: #f3f6f8;
  line-height: 1.5;
}
.info-pop-hint {
  margin-top: 10px;
  padding-top: 8px;
  border-top: 1px solid rgba(255,255,255,0.12);
  font-size: 11px;
  opacity: 0.65;
  line-height: 1.4;
}

.ai-link-btn {
  border: 0;
  background: transparent;
  color: var(--teal);
  font: inherit;
  font-size: 12px;
  font-weight: 700;
  padding: 0;
  cursor: pointer;
}
.ai-link-btn:hover { text-decoration: underline; }
/* AI 解读：与仓位同款外挂悬浮窗 */


.ai-float-layer {
  z-index: 60;
}
.ai-float {
  /* 默认错开仓位窗，方便同时看 */
  left: auto;
  right: 16px;
  top: 10%;
  transform: none;
  width: min(380px, calc(100vw - 24px));
  height: min(520px, calc(100vh - 80px));
}
.ai-float-body {
  flex: 1;
  min-height: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  padding: 0;
}
.ai-float-scroll {
  flex: 1;
  min-height: 0;
  overflow: auto;
  padding: 0 12px 10px;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.ai-float-scroll::-webkit-scrollbar { width: 0; height: 0; }
@media (min-width: 768px) {
  .ai-float-scroll {
    scrollbar-width: thin;
    scrollbar-color: #cbd5e1 transparent;
  }
  .ai-float-scroll::-webkit-scrollbar { width: 8px; }
  .ai-float-scroll::-webkit-scrollbar-thumb {
    background: #cbd5e1;
    border-radius: 8px;
  }
}
.ai-float .ai-summary { margin-bottom: 10px; }
.ai-float .ai-chat {
  flex: none;
  min-height: 0;
  max-height: none;
  overflow: visible;
}
.ai-chat-dock {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 8px 12px 12px;
  border-top: 1px solid var(--line);
  background: #fff;
}

.pos-btn {
  border: 0;
  background: transparent;
  color: var(--teal);
  padding: 4px;
  margin: 0;
  display: inline-grid;
  place-items: center;
  cursor: pointer;
  border-radius: 0;
  box-shadow: none;
}
.pos-btn svg { width: 18px; height: 18px; display: block; }
.pos-btn:hover,
.pos-btn:active,
.pos-btn.on,
.pos-btn:focus,
.pos-btn:focus-visible {
  background: transparent;
  box-shadow: none;
  outline: none;
  color: #127a68;
}
.hold-tool-btn:not(.hold-run-ico-btn) {
  border: 0;
  background: transparent;
  color: var(--teal);
  padding: 0;
  margin: 0;
  display: inline-grid;
  place-items: center;
  cursor: pointer;
  border-radius: 0;
  box-shadow: none;
  position: relative;
  min-width: 36px;
  min-height: 36px;
  width: 36px;
  height: 36px;
}
.hold-tool-btn:not(.hold-run-ico-btn) svg {
  width: 22px;
  height: 22px;
  display: block;
}
.hold-tool-btn:not(.hold-run-ico-btn):hover,
.hold-tool-btn:not(.hold-run-ico-btn):focus-visible,
.hold-tool-btn:not(.hold-run-ico-btn).on {
  background: transparent;
  outline: none;
  color: #127a68;
}
/* 持仓卡工具行：悬停 / 点击放大 */

.holding-info .hold-tool-btn,
.holding-info .ai-ico-btn {
  transition: transform 0.16s ease;
  transform-origin: center center;
  will-change: transform;
}
@media (hover: hover) and (pointer: fine) {
  .holding-info .hold-tool-btn:hover:not(:disabled):not(.hold-session-closed),
  .holding-info .ai-ico-btn:hover:not(:disabled),
  .holding-info .hold-tool-btn:focus-visible:not(:disabled):not(.hold-session-closed),
  .holding-info .ai-ico-btn:focus-visible:not(:disabled) {
    transform: scale(1.16);
  }
}
.holding-info .hold-tool-btn:active:not(:disabled):not(.hold-session-closed),
.holding-info .ai-ico-btn:active:not(:disabled) {
  transform: scale(1.24);
  transition-duration: 0.08s;
}
@media (prefers-reduced-motion: reduce) {
  .holding-info .hold-tool-btn,
  .holding-info .ai-ico-btn {
    transition: none;
    will-change: auto;
  }
  .holding-info .hold-tool-btn:hover:not(:disabled),
  .holding-info .ai-ico-btn:hover:not(:disabled),
  .holding-info .hold-tool-btn:focus-visible:not(:disabled),
  .holding-info .ai-ico-btn:focus-visible:not(:disabled),
  .holding-info .hold-tool-btn:active:not(:disabled),
  .holding-info .ai-ico-btn:active:not(:disabled) {
    transform: none;
  }
}
.hold-tool-btn.run-stats-btn.warn,
.hold-tool-btn.run-stats-btn.warn:hover {
  color: #e11d48;
}
/* 持仓卡顶栏工具：默认同色（AI / 线稿 / 预警图标体）；预警仍靠红点 */

.holding-info .hold-tool-btn:not(.hold-run-ico-btn),
.holding-info .ai-ico-btn,
.holding-info .ai-ico-btn.hold-tool-btn,
.holding-info .pos-btn,
.holding-info .info-btn,
.holding-info .kline-btn,
.holding-info .run-stats-btn,
.holding-info .run-stats-btn.warn,
.holding-info .run-stats-btn.warn:hover,
.holding-info .fleet-tool-btn {
  color: var(--ink);
}
.holding-info .hold-tool-btn:not(.hold-run-ico-btn):hover,
.holding-info .hold-tool-btn:not(.hold-run-ico-btn):focus-visible,
.holding-info .hold-tool-btn:not(.hold-run-ico-btn).on,
.holding-info .ai-ico-btn:hover,
.holding-info .ai-ico-btn.on,
.holding-info .ai-ico-btn:focus-visible,
.holding-info .pos-btn:hover,
.holding-info .pos-btn.on,
.holding-info .info-btn:hover,
.holding-info .info-btn.on,
.holding-info .kline-btn:hover,
.holding-info .kline-btn.on,
.holding-info .run-stats-btn:hover,
.holding-info .run-stats-btn.on,
.holding-info .fleet-tool-btn:hover,
.holding-info .fleet-tool-btn.on {
  color: var(--ink);
}
.hold-tool-btn.params-settings-btn svg,
.holding-info .hold-tool-btn.params-settings-btn svg,
.holding-info .hold-tool-btn.params-settings-btn .hold-tool-svg {
  width: 18px;
  height: 18px;
}
/* 暂停/继续：16px 圆框（与七钮统一缩小） */

.holding-head-actions .hold-tool-btn.hold-run-ico-btn {
  box-sizing: border-box;
  width: 16px;
  height: 16px;
  min-width: 16px;
  min-height: 16px;
  max-width: none;
  max-height: none;
  padding: 0;
  margin: 0;
  border: 2px solid currentColor;
  border-radius: 50%;
  aspect-ratio: 1;
  flex-shrink: 0;
  display: inline-grid;
  place-items: center;
  cursor: pointer;
  background: transparent;
  color: var(--ink);
}
/* 暂停态：圆框+播放图标必须红色（盖过上方 ink） */

.holding-head-actions .hold-tool-btn.hold-run-ico-btn.paused-active,
.holding-info .hold-tool-btn.hold-run-ico-btn.paused-active,
.hold-tool-btn.hold-run-ico-btn.resume.paused-active {
  color: var(--down, #d4535c) !important;
  border-color: currentColor;
}
.holding-head-actions .hold-tool-btn.hold-run-ico-btn.paused-active:hover,
.holding-head-actions .hold-tool-btn.hold-run-ico-btn.paused-active:focus-visible,
.holding-info .hold-tool-btn.hold-run-ico-btn.paused-active:hover,
.holding-info .hold-tool-btn.hold-run-ico-btn.paused-active:focus-visible {
  color: var(--down-solid, #c04450) !important;
}
.holding-head-actions .hold-tool-btn.hold-run-ico-btn .hold-tool-svg {
  width: 8px;
  height: 8px;
}
.holding-head-actions .hold-tool-btn.hold-run-ico-btn svg {
  display: block;
}
.holding-head-actions .hold-tool-btn.hold-run-ico-btn.resume svg,
.holding-head-actions .hold-tool-btn.hold-run-ico-btn.start svg {
  display: block;
}
/* 电脑端：持仓卡右上角工具图标统一放大；手机端见文件末尾 hold-tool-mobile-touch */

@media (min-width: 721px) {
  .hold-tool-btn.kline-btn .hold-tool-svg {
    width: 24px;
    height: 24px;
  }
  .holding-info.is-row,
  .holding-head-actions .holding-info {
    gap: 6px;
  }
  .holding-info .hold-tool-svg,
  .holding-info .hold-tool-btn:not(.hold-run-ico-btn) svg,
  .holding-info .hold-tool-btn:not(.hold-run-ico-btn) .hold-tool-svg,
  .holding-info .pos-btn svg,
  .holding-info .kline-btn .hold-tool-svg,
  .holding-info .hold-tool-btn.params-settings-btn svg,
  .holding-info .hold-tool-btn.params-settings-btn .hold-tool-svg,
  .holding-info .info-btn svg,
  .holding-info .info-btn .hold-tool-svg,
  .hold-tool-btn.kline-btn .hold-tool-svg,
  .hold-tool-btn.params-settings-btn svg {
    width: 24px !important;
    height: 24px !important;
  }
  .holding-info .hold-tool-btn:not(.hold-run-ico-btn):not(.ai-ico-btn) {
    min-width: 36px;
    min-height: 36px;
    width: 36px;
    height: 36px;
  }
  .holding-info .ai-ico-btn.hold-tool-btn,
  .holding-info .ai-ico-btn {
    min-width: 36px;
    min-height: 36px;
    width: 36px;
    height: 36px;
  }
  .holding-info .ai-ico-btn .ai-ico-lab {
    font-size: 18px;
  }
}
.holding:has(.run-stats-btn.on),
.holding:has(.run-stats-wrap.locked) {
  z-index: 8;
}
/* 外挂缩小窗：可拖拽 / 可缩放，默认小尺寸 */


.pos-float-layer {
  position: fixed;
  inset: 0;
  z-index: 60;
  pointer-events: none;
  background: transparent;
}
.pos-float-layer[hidden] { display: none !important; }
.pos-float-layer.on { display: block; }

.pos-float {
  position: absolute;
  left: 50%;
  top: 10%;
  width: min(328px, calc(100vw - 24px));
  height: min(420px, calc(100vh - 72px));
  min-width: 328px;
  min-height: 420px;
  max-width: min(920px, calc(100vw - 16px));
  max-height: calc(100vh - 24px);
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid rgba(15, 24, 32, 0.16);
  border-radius: 14px;
  box-shadow: 0 12px 40px rgba(15, 24, 32, 0.22);
  pointer-events: auto;
  overflow: hidden;
  transform: translateX(-50%);
  /* 整窗 touch-action:none 会让标题栏里的 ±/全屏点不中；拖拽只锁在标题条 */
  touch-action: manipulation;
}
.pos-float.dragging,
.pos-float.resizing {
  user-select: none;
}

.pos-float-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 12px 12px 8px;
  cursor: grab;
  flex-shrink: 0;
  touch-action: none;
}
.pos-float-head:active { cursor: grabbing; }
.pos-float-head h3 {
  margin: 0;
  font-size: 16px;
  font-weight: 800;
  letter-spacing: -0.02em;
}
.pos-float-title-row {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-width: 0;
  flex: 1 1 auto;
}
.pos-float-tools {
  display: flex;
  align-items: center;
  gap: 0;
  touch-action: manipulation;
  position: relative;
  z-index: 2;
}
.pos-float-tools button,
.pos-float-head select,
.pos-float-head input,
.pos-float-head label,
.pos-scale-btn,
.pos-float-tools .fee-x {
  touch-action: manipulation;
}
.pos-scale-btn,
.pos-float-tools .fee-x {
  width: 32px;
  height: 32px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--muted);
  font-size: 22px;
  font-weight: 400;
  line-height: 1;
  cursor: pointer;
  padding: 0;
  box-shadow: none;
}
.pos-scale-btn:hover,
.pos-float-tools .fee-x:hover {
  color: var(--ink);
  background: transparent;
}
.pos-scale-btn:active,
.pos-float-tools .fee-x:active {
  background: transparent;
  opacity: 0.7;
}
#cs-sheet .pos-float-tools .pos-scale-btn,
#ai-sheet .pos-float-tools .pos-scale-btn {
  width: 28px;
  height: 28px;
  font-size: 18px;
}

.pos-tabs {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 6px;
  padding: 8px 12px;
  border-bottom: 1px solid var(--line);
  flex-shrink: 0;
  font-size: 14px;
  font-weight: 700;
  color: var(--muted);
}
.pos-tabs-left {
  display: flex;
  align-items: center;
  gap: 4px;
  min-width: 0;
  flex: 0 0 auto;
}
.pos-tabs-left button {
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  font-size: 14px;
  font-weight: 700;
  padding: 6px 12px;
  cursor: pointer;
  position: relative;
  border-radius: 8px;
  line-height: 1.2;
  box-sizing: border-box;
  min-height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
}
.pos-tab-main {
  display: inline-flex;
  align-items: center;
  gap: 2px;
}
.pos-tab-pos-wrap {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 2px;
  min-width: 0;
  position: relative;
}
.pos-tab-pos-wrap #tab-pos {
  flex: 0 1 auto;
}
.pos-tab-pos-wrap .pos-heal-alert {
  margin-left: 0;
  position: relative;
  z-index: 12;
}
.pos-tab-pos-wrap .pos-heal-bang svg {
  width: 16px;
  height: 16px;
}
.pos-bill-btn {
  border: 0;
  background: transparent;
  color: var(--muted);
  padding: 4px;
  margin-left: 4px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  flex: 0 0 auto;
  line-height: 0;
  min-width: 36px;
  min-height: 32px;
  box-sizing: border-box;
}
.pos-bill-btn:hover,
.pos-bill-btn:active {
  color: var(--ink);
  background: transparent;
  opacity: 0.92;
}
.pos-bill-btn svg {
  display: block;
  width: 28px;
  height: 28px;
}
.pos-bill-btn .pos-bill-clock-disk {
  fill: var(--panel);
}
.pos-tabs-left button.on {
  color: #111827;
}
.pos-tabs-left button.on::after {
  content: "";
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: 0;
  height: 2px;
  background: #111827;
  border-radius: 2px;
}
.pos-tabs-left b {
  font-weight: 800;
  margin-left: 2px;
}
.pos-sheet-grab {
  display: none;
}
/* 无障碍：仅读屏可见（仓位窗 #pos-sheet-title 等） */
.sr-only,
#pos-sheet #pos-sheet-title {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
/* 仓位标题旁异常 ! ：同持仓卡右侧 i 形态；独立气泡（不复用 .info-pop，避免被 closeAllInfoPops 拆掉） */

.pos-float-title-row {
  overflow: visible;
  position: relative;
  z-index: 9;
}
.pos-float-head {
  overflow: visible;
}
.pos-heal-alert {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  z-index: 12;
  margin: 0;
}
.pos-heal-alert[hidden] { display: none !important; }
.pos-heal-bang {
  appearance: none;
  width: auto;
  height: auto;
  min-width: 0;
  margin: 0;
  padding: 2px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--down);
  cursor: pointer;
  display: grid;
  place-items: center;
  animation: posHealFlash 1.1s ease-in-out infinite;
}
.pos-heal-bang svg {
  width: 20px;
  height: 20px;
  display: block;
}
.pos-heal-bang:hover,
.pos-heal-bang[aria-expanded="true"] {
  color: #a3281c;
}
.pos-heal-bang:focus-visible {
  outline: 2px solid rgba(192, 57, 43, 0.45);
  outline-offset: 2px;
}
@keyframes posHealFlash {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.55; }
}
.pos-heal-pop {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  width: min(300px, 78vw);
  z-index: 30;
  padding: 0;
  margin: 0;
  border: 0;
  background: transparent;
  pointer-events: auto;
}
.pos-heal-pop[hidden] { display: none !important; }
/* 挂 body：避开 .pos-float { overflow:hidden } 裁切；left/top 由 JS 写入，勿写 auto（会落到视口左上） */

.pos-heal-pop.pos-heal-pop-portal {
  position: fixed !important;
  z-index: var(--z-tip-fixed, 13250) !important;
  width: min(300px, 78vw);
  max-width: min(300px, calc(100vw - 20px));
  margin: 0;
  transform: none !important;
}
.pos-heal-pop-card {
  position: relative;
  background: #000;
  color: #e8eef2;
  border-radius: 12px;
  padding: 12px 13px 13px;
  border: 1px solid rgba(255, 255, 255, 0.24);
  box-shadow: none;
  filter: none;
}
/* 顶边三角，尖对准 ! 中心（bang≈24px → 12px） */

.pos-heal-pop-arrow {
  position: absolute;
  top: -6px;
  left: 12px;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0 6px 6px 6px;
  border-color: transparent transparent #000 transparent;
  pointer-events: none;
}
.pos-heal-pop-above .pos-heal-pop-arrow {
  top: auto;
  bottom: -6px;
  border-width: 6px 6px 0 6px;
  border-color: #000 transparent transparent transparent;
}
.pos-heal-pop-kicker {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: rgba(232, 238, 242, 0.55);
  margin-bottom: 6px;
}
.pos-heal-pop-txt {
  margin: 0 0 10px;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.45;
  color: #f3f6f8;
}
.pos-heal-pop-acts {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.pos-heal-pop-acts button {
  appearance: none;
  border: 0;
  border-radius: 8px;
  padding: 7px 12px;
  font-size: 12px;
  font-weight: 750;
  cursor: pointer;
  background: var(--teal);
  color: #fff;
}
html[data-theme="dark"] .pos-heal-bang {
  color: #f07178;
}
html[data-theme="dark"] .pos-heal-bang:hover,
html[data-theme="dark"] .pos-heal-bang[aria-expanded="true"] {
  color: #ff8e7a;
}
html[data-theme="dark"] .pos-heal-pop-acts button {
  background: var(--solid-bg);
  color: #fff;
}
.pos-tabs-actions {
  display: flex;
  align-items: center;
  gap: 6px;
  flex: 0 0 auto;
  flex-wrap: wrap;
}
/* 与「委托 / 仓位」同高同字号；颜色仍各自保留 */
.pos-resume-btn,
.pos-flat-btn,
.pos-open-btn {
  flex-shrink: 0;
  font: inherit;
  font-size: 14px;
  font-weight: 700;
  padding: 6px 12px;
  min-height: 32px;
  box-sizing: border-box;
  text-align: center;
  border-radius: 8px;
  cursor: pointer;
  line-height: 1.2;
  white-space: nowrap;
}
.pos-resume-btn {
  border: 1px solid rgba(0, 0, 0, 0.14);
  background: #fff;
  color: var(--teal);
}
.pos-resume-btn:hover {
  background: rgba(0, 0, 0, 0.04);
}
.pos-resume-btn:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}
.pos-flat-btn {
  border: 1px solid rgba(192, 57, 43, 0.35);
  background: #fff;
  color: var(--down);
  min-width: 4.75em;
}
.pos-flat-btn:hover {
  background: rgba(192, 57, 43, 0.06);
}
.pos-flat-btn:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.pos-open-btn {
  border: 1px solid transparent;
  background: var(--up);
  color: #fff;
  min-width: 4.75em;
}

.pos-open-btn:hover:not(:disabled) {
  background: var(--up-solid);
  color: #fff;
}

.pos-open-btn:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

/* 仓位窗（桌面浮窗 + 手机抽屉）共用：CEX 下划线页签 + 第二排铺满操作轨 */
#pos-sheet .pos-tabs {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  flex-wrap: nowrap;
  gap: 10px;
  /* 顶排直接是委托/仓位/账单/关闭 */
  padding: 8px 10px 10px 14px;
  border-bottom: 0;
  cursor: grab;
  touch-action: none;
}
#pos-sheet .pos-tabs:active { cursor: grabbing; }
#pos-sheet .pos-tabs-left {
  /* flex：委托/仓位 + 槽筛选 + 账单 + 关闭 共 5 项，grid 4 列会把 × 挤到第二行 */
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  width: 100%;
  flex: none;
  gap: 0;
  min-width: 0;
  background: transparent !important;
  border-radius: 0 !important;
  padding: 0 !important;
  border-bottom: 0;
}
#pos-sheet .pos-tabs-left > #tab-ord {
  flex: 1 1 0;
  min-width: 0;
}
#pos-sheet .pos-tab-pos-wrap {
  flex: 1 1 0;
  min-width: 0;
}
#pos-sheet .pos-tabs-tool-icons {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: flex-start;
  align-self: flex-start;
  gap: 0;
  margin-top: 10px;
  margin-left: 2px;
}
#pos-sheet .pos-tabs-tool-icons:has(#pos-ord-slot-filter-btn[hidden]) {
  margin-left: 0;
}
#pos-sheet .pos-tab-pos-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  width: 100%;
  min-width: 0;
  position: relative;
}
#pos-sheet .pos-tabs-left > #tab-ord,
#pos-sheet .pos-tab-pos-wrap > #tab-pos {
  width: 100%;
  min-height: 0 !important;
  padding: 10px 6px 12px !important;
  border-radius: 0 !important;
  background: transparent !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  color: var(--muted) !important;
  justify-content: center;
}
#pos-sheet .pos-tab-pos-wrap > #tab-pos {
  width: auto;
  flex: 0 1 auto;
  padding-right: 2px !important;
}
#pos-sheet .pos-tabs-left > #tab-ord.on,
#pos-sheet .pos-tab-pos-wrap > #tab-pos.on {
  background: transparent !important;
  color: var(--ink) !important;
}
#pos-sheet .pos-tabs-left > #tab-ord.on::after,
#pos-sheet .pos-tab-pos-wrap:has(#tab-pos.on)::after {
  content: "";
  display: block !important;
  position: absolute;
  left: 18%;
  right: 18%;
  bottom: 0;
  height: 2.5px;
  border-radius: 2px;
  background: var(--ink) !important;
}
#pos-sheet .pos-tabs-left > #tab-ord {
  position: relative;
}
#pos-sheet .pos-tab-pos-wrap > #tab-pos.on::after {
  display: none !important;
}
#pos-sheet .pos-tabs-left button.on b,
#pos-sheet .pos-tabs-left button b {
  color: inherit !important;
}
#pos-sheet .pos-tab-pos-wrap .pos-heal-bang {
  color: #f05a72 !important;
  background: transparent !important;
  width: auto !important;
  min-width: 28px !important;
  min-height: 28px !important;
  padding: 4px !important;
  border-radius: 0 !important;
  flex: 0 0 auto !important;
  position: relative;
  z-index: 5;
  pointer-events: auto !important;
}
#pos-sheet .pos-tab-pos-wrap .pos-heal-bang svg {
  width: 16px;
  height: 16px;
  color: inherit !important;
  fill: currentColor !important;
}
#pos-sheet .pos-tabs-tool-icons .pos-bill-btn,
#pos-sheet .pos-tabs-tool-icons .pos-ord-slot-filter-btn {
  flex: 0 0 auto;
  align-self: flex-start;
  margin: 0 !important;
  padding: 0 !important;
  min-width: 36px !important;
  min-height: 28px !important;
  height: 28px;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--ink) !important;
  position: relative;
  z-index: 5;
  touch-action: manipulation;
  cursor: pointer;
  display: inline-flex;
  align-items: flex-start;
  justify-content: center;
  line-height: 0;
  box-sizing: border-box;
}
#pos-sheet .pos-ord-slot-filter-btn.is-active {
  color: #2563eb !important;
}
html[data-theme="dark"] #pos-sheet .pos-ord-slot-filter-btn.is-active {
  color: #93c5fd !important;
}
#pos-sheet .pos-tabs-tool-icons .pos-bill-btn svg,
#pos-sheet .pos-tabs-tool-icons .pos-ord-slot-filter-btn svg {
  width: 28px;
  height: 28px;
  display: block;
  flex-shrink: 0;
}
#pos-sheet .pos-bill-btn .pos-bill-clock-disk {
  fill: var(--panel);
}
#pos-sheet .pos-tabs-actions {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
  width: 100%;
  gap: 0;
  padding: 3px;
  border-radius: 10px;
  background: var(--chip-bg);
  box-sizing: border-box;
}
#pos-sheet .pos-resume-btn,
#pos-sheet .pos-flat-btn,
#pos-sheet .pos-open-btn {
  width: 100%;
  min-width: 0 !important;
  min-height: 40px;
  margin: 0;
  padding: 10px 8px !important;
  border-radius: 8px !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  letter-spacing: 0.01em;
  border: 0 !important;
  box-shadow: none !important;
}
#pos-sheet .pos-resume-btn {
  background: transparent !important;
  color: var(--muted) !important;
}
#pos-sheet .pos-resume-btn:hover:not(:disabled) {
  background: transparent !important;
  color: var(--ink) !important;
}
#pos-sheet .pos-flat-btn {
  background: #f05a72 !important;
  color: #fff !important;
}
#pos-sheet .pos-open-btn {
  background: var(--up) !important;
  color: #fff !important;
}

/* 桌面：仓位窗固定红框尺寸；无标题 / 无 ± / 无拖角缩放 */
@media (min-width: 900px) {
  /* 遮罩可点空白关闭；#pos-float 仍 absolute + 顶栏拖拽，勿 grid 居中 */
  #pos-sheet.pos-float-layer.on:not(.is-coin-docked):not(.is-acc-embedded) {
    pointer-events: auto !important;
    background: var(--modal-scrim, rgba(6, 10, 16, 0.55));
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }
  #pos-sheet.is-acc-embedded #pos-float {
    width: 100% !important;
    height: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    max-width: none !important;
    max-height: none !important;
  }
  #pos-sheet #pos-float {
    width: 420px !important;
    height: 580px !important;
    min-width: 420px !important;
    min-height: 580px !important;
    max-width: 420px !important;
    max-height: min(580px, calc(100vh - 48px)) !important;
  }
  #pos-sheet .pos-float-title-row,
  #pos-sheet .pos-float-head,
  #pos-sheet #pos-scale-up,
  #pos-sheet #pos-scale-down,
  #pos-sheet .pos-resize {
    display: none !important;
  }
  #pos-sheet .pos-tabs {
    padding-top: 10px;
  }
}

/* 手机：仓位窗底部抽屉外壳（内页布局见上方共用规则） */
@media (max-width: 899px) {
  #pos-sheet.pos-float-layer.on {
    display: flex !important;
    align-items: flex-end !important;
    justify-content: stretch !important;
    pointer-events: auto !important;
    background: var(--modal-scrim, rgba(6, 10, 16, 0.55));
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    z-index: var(--z-drawer-mobile, 12080) !important;
  }
  #pos-sheet.on #pos-float {
    position: relative !important;
    left: auto !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    transform: none !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    height: min(78vh, calc(100dvh - 48px)) !important;
    min-height: min(420px, 70dvh) !important;
    max-height: min(78vh, calc(100dvh - 48px)) !important;
    margin: 0 !important;
    border-radius: 18px 18px 0 0 !important;
    border-bottom: 0 !important;
    box-shadow: 0 -12px 40px rgba(12, 20, 28, 0.22);
    align-self: flex-end;
    animation: me-drawer-up 0.3s cubic-bezier(0.22, 1, 0.36, 1);
    padding-bottom: env(safe-area-inset-bottom, 0px);
  }
  #pos-sheet .pos-sheet-grab {
    display: block;
    width: 36px;
    height: 4px;
    margin: 8px auto 2px;
    border-radius: 999px;
    background: rgba(21, 32, 43, 0.18);
    flex-shrink: 0;
  }
  #pos-sheet .pos-float-head {
    display: none !important;
  }
  /* 手机抽屉：无 ×；关闭靠下滑/点遮罩。× 仅桌面浮窗 */
  #pos-sheet .pos-sheet-close,
  #pos-sheet #pos-sheet-close {
    display: none !important;
  }
  #pos-sheet .pos-tabs-left {
    flex-wrap: nowrap;
  }
  #pos-sheet .pos-resize,
  #pos-sheet #pos-scale-up,
  #pos-sheet #pos-scale-down {
    display: none !important;
  }
  #pos-sheet .pos-tabs-left > #tab-ord,
  #pos-sheet .pos-tab-pos-wrap > #tab-pos {
    font-size: 16px !important;
  }
  #pos-sheet .pos-resume-btn,
  #pos-sheet .pos-flat-btn,
  #pos-sheet .pos-open-btn {
    min-height: 44px;
    padding: 11px 8px !important;
  }
}
/* 开多/开空：未选中中性干净；选中与确认钮同色 */


.open-side-tabs .open-side-tab[data-open-side="long"],
.open-side-tabs .open-side-tab[data-open-side="short"] {
  color: var(--muted);
  border: 0;
  background: transparent;
  box-shadow: none;
}
html:not([data-theme="dark"]) .open-side-tabs .open-side-tab[data-open-side="long"]:not(.on),
html:not([data-theme="dark"]) .open-side-tabs .open-side-tab[data-open-side="short"]:not(.on) {
  color: var(--muted) !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.open-side-tabs .open-side-tab[data-open-side="long"].on {
  background: var(--up) !important;
  color: #fff !important;
  border-color: transparent !important;
  box-shadow: none !important;
}
.open-side-tabs .open-side-tab[data-open-side="short"].on {
  background: var(--down) !important;
  color: #fff !important;
  border-color: transparent !important;
  box-shadow: none !important;
}
html[data-theme="dark"] .open-side-tabs .open-side-tab[data-open-side="long"]:not(.on),
html[data-theme="dark"] .open-side-tabs .open-side-tab[data-open-side="short"]:not(.on) {
  color: var(--muted) !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
html[data-theme="dark"] .open-side-tabs .open-side-tab[data-open-side="long"].on {
  background: var(--up) !important;
  color: #fff !important;
  border-color: transparent !important;
}
html[data-theme="dark"] .open-side-tabs .open-side-tab[data-open-side="short"].on {
  background: #d4535c !important;
  color: #fff !important;
  border-color: transparent !important;
}

.pos-flat-msg {
  margin: 8px 12px 0;
  padding: 0;
  font-size: 12px;
  line-height: 1.35;
  color: var(--muted);
  flex-shrink: 0;
}
.pos-flat-msg.is-banner {
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding: 9px 11px;
  border-radius: 8px;
  border: 1px solid var(--line);
  background: var(--panel-2);
  color: var(--ink);
}
.pos-flat-msg.is-banner.ok {
  border-color: var(--line);
  background: var(--chip-bg);
  color: var(--ink);
}
.pos-flat-msg.is-banner.err {
  border-color: rgba(192, 57, 43, 0.34);
  background: rgba(192, 57, 43, 0.09);
  color: var(--ink);
  font-weight: 600;
}
.pos-flat-msg.is-banner.err.sticky {
  font-weight: 700;
}
.pos-flat-msg-main {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.01em;
  color: var(--ink);
}
.pos-flat-msg.is-banner.ok .pos-flat-msg-main {
  color: var(--teal);
}
.pos-flat-msg.is-banner.err .pos-flat-msg-main {
  color: var(--down);
}
.pos-flat-msg-sub {
  font-size: 11px;
  font-weight: 550;
  color: var(--muted);
  opacity: 1;
}
.pos-flat-msg:not(.is-banner).ok { color: var(--teal); }
.pos-flat-msg:not(.is-banner).err { color: var(--down); }
.pos-flat-msg:not(.is-banner).err.sticky { font-weight: 700; }
/* 夜间：提高对比，避免浅字贴浅底 */


html[data-theme="dark"] .pos-flat-msg.is-banner {
  border-color: rgba(148, 163, 184, 0.22);
  background: rgba(148, 163, 184, 0.12);
  color: #e8eef3;
}
html[data-theme="dark"] .pos-flat-msg.is-banner.ok {
  border-color: rgba(255, 255, 255, 0.18);
  background: rgba(255, 255, 255, 0.08);
  color: #e8eef3;
}
html[data-theme="dark"] .pos-flat-msg.is-banner.err {
  border-color: rgba(248, 113, 113, 0.4);
  background: rgba(248, 113, 113, 0.12);
  color: #e8eef3;
}
html[data-theme="dark"] .pos-flat-msg-main {
  color: #e8eef3;
}
html[data-theme="dark"] .pos-flat-msg.is-banner.ok .pos-flat-msg-main {
  color: #5eead4;
}
html[data-theme="dark"] .pos-flat-msg.is-banner.err .pos-flat-msg-main {
  color: #fca5a5;
}
html[data-theme="dark"] .pos-flat-msg-sub {
  color: var(--muted);
}

.pos-risk-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px 10px;
  margin-top: 8px;
  font-size: 11px;
  font-weight: 600;
  color: var(--muted);
}
.pos-risk-hint {
  margin: 8px 0 0;
  font-size: 11px;
  line-height: 1.45;
  color: var(--muted);
  font-weight: 500;
}
.pos-liq-note {
  margin: 6px 0 0;
  font-size: 11px;
  color: var(--muted);
  line-height: 1.4;
}
.pos-liq-cross {
  color: var(--muted);
  font-weight: 700;
  border-bottom: 1px dotted rgba(107, 114, 128, 0.45);
  cursor: help;
}

.pos-scroll {
  flex: 1;
  min-height: 0;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  padding: 0 12px 12px;
  /* 手机默认隐藏滚动条；大屏再用 media 显示 */
  scrollbar-width: none;
}
.pos-scroll::-webkit-scrollbar { width: 0; height: 0; }

@media (min-width: 768px) {
  .pos-scroll {
    scrollbar-width: thin;
    scrollbar-color: #cbd5e1 transparent;
  }
  .pos-scroll::-webkit-scrollbar {
    width: 8px;
    height: 8px;
  }
  .pos-scroll::-webkit-scrollbar-thumb {
    background: #cbd5e1;
    border-radius: 8px;
  }
}

.pos-list {
  display: grid;
  gap: 12px;
  padding-top: 10px;
  padding-bottom: 8px;
}
.pos-card {
  border-top: 1px solid var(--line);
  padding-top: 12px;
}
.pos-card:first-child { border-top: 0; padding-top: 0; }
.pos-card-top {
  display: flex;
  justify-content: flex-start;
  gap: 10px;
  align-items: center;
}
.pos-sym {
  font-size: 14px;
  font-weight: 800;
  color: var(--ink);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  min-width: 0;
}
.pos-badge {
  font-size: 11px;
  font-weight: 800;
  padding: 1px 6px;
  border-radius: 4px;
  line-height: 1.4;
}
.pos-badge.long {
  background: var(--up, #10b981);
  color: #fff;
}
.pos-badge.short {
  background: var(--down, #e11d48);
  color: #fff;
}
.pos-meta-tag {
  font-size: 11px;
  color: var(--muted);
  font-weight: 600;
}
button.pos-meta-tag {
  border: 0;
  background: transparent;
  padding: 0;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 2px;
  color: var(--muted);
}
button.pos-meta-tag:hover { color: var(--ink); }
button.pos-slot-freeze-btn {
  margin-left: 6px;
  border: 0;
  background: transparent;
  padding: 0;
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;
  color: var(--muted);
  text-decoration: underline dashed;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
}
button.pos-slot-freeze-btn.is-frozen {
  color: var(--warn, #d97706);
}
button.pos-slot-freeze-btn:hover { color: var(--ink); }
button.pos-side-flat-btn:disabled,
button.pos-side-flat-btn.is-slot-frozen {
  opacity: 0.45;
  cursor: not-allowed;
}
.pos-slot-frozen-badge {
  margin-left: 4px;
  font-size: 10px;
  font-weight: 700;
  color: var(--warn, #d97706);
}
.pos-slot-chip {
  display: inline-flex;
  align-items: stretch;
  max-width: min(100%, 360px);
  border-radius: 4px;
  border: 1px solid var(--slot-chip-edge, rgba(100, 116, 139, 0.45));
  font-size: 11px;
  line-height: 1.35;
  overflow: hidden;
  vertical-align: middle;
  box-sizing: border-box;
  background: transparent;
}
.pos-slot-chip.is-long {
  --slot-chip-edge: color-mix(in srgb, var(--up, #0f7a6a) 62%, transparent);
}
.pos-slot-chip.is-short {
  --slot-chip-edge: color-mix(in srgb, var(--down, #c0392b) 58%, transparent);
}
html[data-theme="dark"] .pos-slot-chip.is-long {
  --slot-chip-edge: color-mix(in srgb, var(--up, #0f7a6a) 50%, transparent);
}
html[data-theme="dark"] .pos-slot-chip.is-short {
  --slot-chip-edge: color-mix(in srgb, var(--down, #c0392b) 48%, transparent);
}
.pos-slot-chip-side {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  padding: 1px 6px;
  font-weight: 800;
  color: #fff;
  border-right: 1px solid var(--slot-chip-edge, rgba(100, 116, 139, 0.45));
}
.pos-slot-chip.is-long .pos-slot-chip-side {
  background: var(--up, #10b981);
}
.pos-slot-chip.is-short .pos-slot-chip-side {
  background: var(--down, #e11d48);
}
.pos-slot-chip-text {
  padding: 1px 6px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
  font-weight: 650;
  color: var(--ink, #0f172a);
}
html[data-theme="dark"] .pos-slot-chip-text {
  color: #e8eef4;
}
.pos-slot-tag.pos-slot-chip {
  display: inline-block;
  max-width: min(100%, 320px);
  padding: 1px 6px;
  font-weight: 650;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--ink, #0f172a);
}
html[data-theme="dark"] .pos-slot-tag.pos-slot-chip {
  color: #e8eef4;
}
.open-pos-slot-target {
  display: block;
  margin-top: 6px;
  color: var(--muted);
  font-style: normal;
  font-weight: 500;
  font-size: 11px;
  line-height: 1.35;
}
.pos-manual-engine-warn {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin-top: 8px;
  padding: 8px 10px;
  border-radius: 6px;
  background: rgba(220, 38, 38, 0.08);
  border: 1px solid rgba(220, 38, 38, 0.35);
}
.pos-manual-engine-warn-ico {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #dc2626;
  color: #fff;
  font-size: 12px;
  font-weight: 800;
  line-height: 18px;
  text-align: center;
  animation: pos-warn-breathe 1.6s ease-in-out infinite;
}
.pos-manual-engine-warn-t {
  flex: 1;
  min-width: 0;
  color: #b91c1c;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.4;
  font-style: normal;
}
html[data-theme="dark"] .pos-manual-engine-warn-t {
  color: #fca5a5;
}
@keyframes pos-warn-breathe {
  0%,
  100% {
    transform: scale(1);
    box-shadow: 0 0 0 0 rgba(220, 38, 38, 0.45);
  }
  50% {
    transform: scale(1.08);
    box-shadow: 0 0 0 6px rgba(220, 38, 38, 0);
  }
}
.pos-slot-relay-strip {
  margin: 0 0 8px;
  padding: 8px 10px;
  border-radius: 8px;
  background: rgba(59, 130, 246, 0.08);
  border: 1px solid rgba(59, 130, 246, 0.22);
  font-size: 12px;
  line-height: 1.45;
  color: var(--ink);
}
.pos-slot-relay-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px 10px;
}
.pos-slot-relay-inner strong {
  font-size: 12px;
  font-weight: 800;
  color: #2563eb;
}
.pos-slot-relay-halt {
  color: #dc2626;
  font-weight: 700;
}
.pos-slot-relay-oids {
  color: var(--muted);
  font-family: ui-monospace, monospace;
  font-size: 11px;
}
.pos-ord-slot-dd {
  appearance: none;
  -webkit-appearance: none;
  height: 28px;
  min-width: 76px;
  max-width: 110px;
  margin: 0 2px 0 4px;
  padding: 0 22px 0 8px;
  font-size: 12px;
  font-weight: 700;
  border-radius: 8px;
  border: 0;
  color: var(--ink, #e8edf2);
  background-color: var(--solid-bg, #1c1c1c);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%238b95a5' d='M1 1l4 4 4-4'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 8px center;
  cursor: pointer;
  flex-shrink: 0;
}
.pos-ord-slot-dd[hidden] {
  display: none !important;
}
.pos-ord-slot-filters {
  display: none !important;
}
.pos-ord-slot-chip {
  border: 1px solid rgba(148, 163, 184, 0.4);
  background: rgba(148, 163, 184, 0.08);
  color: var(--ink);
  font-size: 11px;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 999px;
  cursor: pointer;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.pos-ord-slot-chip.on {
  border-color: rgba(37, 99, 235, 0.55);
  background: rgba(37, 99, 235, 0.12);
  color: #2563eb;
}
html[data-theme="dark"] .pos-ord-slot-chip.on {
  color: #93c5fd;
}
.pos-open-slot-field {
  margin-top: 0;
}
.pos-open-slot-field select.pos-open-slot-select {
  margin-top: 0;
}
/* 高级 = 贴盘：仅去原生 appearance，尺寸走 .flat-manual-all */
.pos-desk-slot-adv.flat-manual-all {
  appearance: none;
  -webkit-appearance: none;
}
.pos-desk-slot-adv.is-on {
  color: inherit;
  border-color: transparent;
}
select.pos-open-slot-select {
  width: 100%;
  max-width: 100%;
  margin-top: 0;
  padding: 8px 10px;
  font-size: 12px;
  border-radius: 8px;
  border: 1px solid rgba(148, 163, 184, 0.45);
  background: var(--panel, #fff);
  color: var(--ink);
  appearance: none;
  -webkit-appearance: none;
}
html[data-theme="dark"] select.pos-open-slot-select {
  background: #0e141b;
  border-color: rgba(148, 163, 184, 0.35);
}
.pos-upl-main {
  display: flex;
  flex-wrap: nowrap;
  align-items: baseline;
  gap: 8px;
  min-width: 0;
}
.pos-upl {
  display: inline-flex;
  flex-wrap: nowrap;
  align-items: baseline;
  gap: 6px;
  white-space: nowrap;
  font-size: 15px;
  font-weight: 800;
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
}
.pos-upl-pct {
  font-size: 13px;
  font-weight: 700;
  opacity: 0.92;
}
.pos-upl.up { color: #10b981; }
.pos-upl.down { color: #f43f5e; }
.pos-upl-label {
  flex-shrink: 0;
  font-size: 11px;
  color: var(--muted);
  font-weight: 600;
}
.pos-flat-cell {
  display: flex;
  align-items: center;
  justify-content: flex-start;
}
.pos-side-flat-btn {
  flex-shrink: 0;
  border: 1px solid rgba(192, 57, 43, 0.35);
  background: #fff;
  color: var(--down);
  font: inherit;
  font-size: 12px;
  font-weight: 800;
  padding: 5px 20px;
  min-width: 64px;
  border-radius: 999px;
  cursor: pointer;
  line-height: 1.2;
  margin: 0;
  text-align: center;
}
.pos-side-flat-btn:hover {
  background: rgba(192, 57, 43, 0.06);
}
.pos-side-flat-btn:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}
.pos-metrics {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 10px 8px;
  margin-top: 10px;
  align-items: start;
}
.pos-metrics > .pos-upl-main {
  grid-column: 1 / span 2;
  align-self: center;
}
.pos-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 10px 8px;
  margin-top: 10px;
}
.pos-metrics > div > span {
  display: block;
  font-size: 11px;
  color: var(--muted);
}
.pos-metrics > div > b {
  display: block;
  margin-top: 2px;
  font-size: 13px;
  font-weight: 700;
  color: var(--ink);
  font-variant-numeric: tabular-nums;
}
.pos-grid > div span {
  display: block;
  font-size: 11px;
  color: var(--muted);
}
.pos-grid > div b {
  display: block;
  margin-top: 2px;
  font-size: 13px;
  font-weight: 700;
  color: var(--ink);
  font-variant-numeric: tabular-nums;
}
.pos-mgn-rate-btn {
  display: block;
  margin-top: 2px;
  padding: 0;
  border: 0;
  background: transparent;
  font-size: 13px;
  font-weight: 800;
  color: var(--up);
  font-variant-numeric: tabular-nums;
  text-align: left;
  cursor: pointer;
  text-decoration: underline;
  text-decoration-color: var(--line);
  text-underline-offset: 2px;
}
.pos-mgn-rate-btn.is-safe,
.pos-metrics > div > b.pos-liq-val.is-safe {
  color: var(--up);
}
.pos-mgn-rate-btn.is-warn,
.pos-metrics > div > b.pos-liq-val.is-warn {
  color: var(--warn);
}
.pos-mgn-rate-btn.is-danger,
.pos-metrics > div > b.pos-liq-val.is-danger {
  color: var(--down);
}
.pos-mgn-lab {
  display: inline-flex !important;
  align-items: center;
  gap: 4px;
}
.pos-help-q {
  cursor: pointer;
}
.pos-risk-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  font-weight: 700;
  color: var(--ink);
}
.pos-risk-grid span b {
  font-weight: 800;
  color: var(--ink);
  font-variant-numeric: tabular-nums;
}
.pos-risk-rate-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid rgba(15, 24, 32, 0.06);
  font-size: 12px;
  font-weight: 600;
  color: var(--muted);
}
.pos-risk-rate-row .pos-mgn-rate-btn {
  display: inline;
  margin: 0;
  font-size: 13px;
}
/* 维持保证金说明：手机底抽屉 / 桌面居中 */
#app-mgn-tip.fee-tip-modal.mgn-tip-modal.is-mobile-drawer:not(.is-desk-pop) {
  display: flex !important;
  align-items: flex-end !important;
  justify-content: stretch !important;
  place-items: unset !important;
  padding: 0 !important;
  background: var(--modal-scrim, rgba(6, 10, 16, 0.55));
}
#app-mgn-tip.fee-tip-modal.mgn-tip-modal.is-mobile-drawer .fee-sheet.mgn-sheet {
  position: relative !important;
  left: auto !important;
  top: auto !important;
  transform: none !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: min(86dvh, calc(100dvh - env(safe-area-inset-top, 0px) - 12px)) !important;
  margin: 0 !important;
  align-self: flex-end !important;
  border-radius: 18px 18px 0 0 !important;
  border: 0 !important;
  border-top: 1px solid var(--card-line, var(--line)) !important;
  border-left: 0 !important;
  border-right: 0 !important;
  border-bottom: 0 !important;
  box-shadow: none !important;
  animation: me-drawer-up 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}
#app-mgn-tip.fee-tip-modal.mgn-tip-modal.is-mobile-drawer .mgn-sheet-grab {
  display: block;
}
#app-mgn-tip.fee-tip-modal.mgn-tip-modal.is-desk-pop {
  display: grid !important;
  place-items: center !important;
  padding: 16px !important;
  background: var(--modal-scrim, rgba(6, 10, 16, 0.55));
}
#app-mgn-tip.fee-tip-modal.mgn-tip-modal.is-desk-pop .fee-sheet.mgn-sheet {
  position: relative !important;
  left: auto !important;
  top: auto !important;
  transform: none !important;
  width: min(400px, calc(100vw - 32px)) !important;
  max-height: min(86vh, calc(100vh - 32px)) !important;
  margin: 0 !important;
  border-radius: 18px !important;
}
#app-mgn-tip.fee-tip-modal.mgn-tip-modal.is-desk-pop .mgn-sheet-grab {
  display: none;
}
.mgn-sheet .mgn-body {
  padding-top: 0;
  padding-bottom: 0;
  display: grid;
  gap: 8px;
}
.mgn-sec {
  margin: 0;
  padding: 10px 12px;
  border-radius: 12px;
  background: var(--panel-2);
  border: 1px solid var(--line);
}
.mgn-sec-h {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 10px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: var(--muted);
  text-transform: none;
}
.mgn-status {
  font-style: normal;
  font-size: 11px;
  font-weight: 800;
  color: var(--teal);
  background: var(--chip-bg);
  padding: 2px 8px;
  border-radius: 999px;
}
.mgn-kv {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px 12px;
}
.mgn-kv div {
  display: grid;
  gap: 2px;
}
.mgn-kv span {
  font-size: 11px;
  font-weight: 600;
  color: var(--muted);
}
.mgn-kv b {
  font-size: 14px;
  font-weight: 800;
  color: var(--ink);
  font-variant-numeric: tabular-nums;
}
.mgn-kv-wide { grid-column: 1 / -1; }
.mgn-kv-cell {
  display: grid;
  gap: 2px;
  min-width: 0;
}
.mgn-risk-val {
  font-size: 14px;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  text-align: left;
}
.mgn-risk-val.is-safe { color: var(--up); }
.mgn-risk-val.is-warn { color: var(--warn); }
.mgn-risk-val.is-danger { color: var(--down); }
.mgn-risk-val .pos-liq-missing {
  color: inherit;
  opacity: 0.75;
}
.mgn-status.is-safe {
  color: var(--teal);
  background: var(--chip-bg);
}
.mgn-status.is-warn {
  color: var(--warn);
  background: rgba(183, 121, 31, 0.12);
}
.mgn-status.is-danger {
  color: var(--down);
  background: rgba(192, 57, 43, 0.12);
}
.mgn-foot-note {
  margin: 10px 0 0;
  font-size: 11px;
  color: var(--muted);
  font-weight: 600;
}
.mgn-sheet .mgn-actions {
  display: flex;
  grid-template-columns: none;
  justify-content: flex-end;
  gap: 10px;
}
.mgn-sheet .mgn-ok {
  width: auto;
  min-width: 112px;
  height: 44px;
  border-radius: 12px;
  padding: 0 18px;
  font-size: 14px;
  font-weight: 800;
  background: var(--ink);
  color: #fff;
}
.mgn-list {
  margin: 0;
  padding: 0 0 0 18px;
  display: grid;
  gap: 8px;
  font-size: 13px;
  line-height: 1.5;
  color: var(--ink);
}
.mgn-list strong { font-weight: 800; }
.mgn-official {
  margin: 0;
  font-size: 11px;
  line-height: 1.45;
  color: var(--muted);
  font-weight: 500;
}
.pos-risk-top .pos-mgn-rate-btn {
  display: inline;
  margin: 0;
  font-size: 12px;
  font-weight: 700;
  color: inherit;
}
.pos-risk-top .pos-mgn-rate-btn em {
  font-style: normal;
  color: var(--teal);
}
.mgn-tip-line {
  margin: 0 0 8px;
  font-size: 13px;
  line-height: 1.5;
  color: var(--ink);
  font-weight: 500;
}
.mgn-tip-line:last-child { margin-bottom: 0; }
.pos-empty {
  text-align: center;
  color: var(--muted);
  font-size: 13px;
  padding: 28px 12px;
}
.pos-ord-row {
  display: grid;
  gap: 8px;
  padding: 12px 0;
  border-top: 1px solid var(--line);
}
.pos-ord-row:first-child { border-top: 0; padding-top: 2px; }
.pos-ord-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.pos-ord-title {
  font-size: 14px;
  font-weight: 800;
  color: var(--ink);
}
.pos-ord-tags {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin-top: 2px;
}
.pos-ord-badge {
  font-size: 11px;
  font-weight: 800;
  padding: 1px 6px;
  border-radius: 4px;
  line-height: 1.4;
}
.pos-ord-badge.open-long,
.pos-ord-badge.close-short {
  background: var(--up, #10b981);
  color: #fff;
}
.pos-ord-badge.open-short,
.pos-ord-badge.close-long {
  background: var(--down, #e11d48);
  color: #fff;
}
.pos-ord-type {
  font-size: 11px;
  color: var(--muted);
  font-weight: 600;
}
.pos-ord-status {
  font-size: 12px;
  font-weight: 700;
  color: var(--muted);
}
.pos-ord-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px 12px;
  flex: 1;
  min-width: 0;
}
.pos-ord-body {
  display: flex;
  align-items: stretch;
  gap: 10px;
}
.pos-ord-actions {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 6px;
  flex-shrink: 0;
  width: 76px;
}
.pos-ord-act {
  appearance: none;
  box-sizing: border-box;
  width: 100%;
  margin: 0;
  padding: 8px 6px;
  border-radius: 8px;
  font: inherit;
  font-size: 11px;
  font-weight: 800;
  line-height: 1.2;
  cursor: pointer;
  text-align: center;
}
.pos-ord-act:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}
.pos-ord-act-cancel {
  border: 1px solid rgba(15, 24, 32, 0.14);
  background: #fff;
  color: #12171e;
}
.pos-ord-act-amend {
  border: 1px solid transparent;
  background: #12171e;
  color: #fff;
}
.pos-ord-act-amend:hover {
  background: #000;
}
.pos-ord-grid span {
  display: block;
  font-size: 11px;
  color: var(--muted);
}
.pos-ord-grid b {
  display: block;
  margin-top: 2px;
  font-size: 13px;
  font-weight: 700;
  color: var(--ink);
  font-variant-numeric: tabular-nums;
}
.pos-ord-grid b.pos-ord-est.is-up { color: var(--up); }
.pos-ord-grid b.pos-ord-est.is-down { color: var(--down); }
.pos-ord-grid b.pos-ord-est.is-flat { color: var(--muted); }

.pos-resize {
  position: absolute;
  right: 2px;
  bottom: 2px;
  width: 18px;
  height: 18px;
  cursor: nwse-resize;
  touch-action: none;
  background:
    linear-gradient(135deg, transparent 50%, var(--muted) 50%) no-repeat,
    linear-gradient(135deg, transparent 65%, var(--muted) 65%) no-repeat;
  background-size: 10px 10px, 10px 10px;
  background-position: right 4px bottom 4px, right 4px bottom 4px;
  opacity: 0.7;
}

.lever-pop {
  position: fixed;
  inset: 0;
  z-index: 100;
  background: var(--modal-scrim, rgba(6, 10, 16, 0.55));
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  display: grid;
  place-items: center;
  padding: 16px;
}
.lever-pop[hidden] { display: none; }
.lever-pop-grab {
  display: none;
}
.lever-pop-card {
  width: min(360px, calc(100vw - 32px));
  background: var(--panel);
  color: var(--ink);
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 16px;
  box-shadow: 0 16px 40px rgba(15, 24, 32, 0.22);
  box-sizing: border-box;
}
/* 手机：底部抽屉（同仓位/明细） */
@media (max-width: 899px) {
  .lever-pop:not([hidden]) {
    z-index: var(--z-modal-above-drawer, 13120) !important;
    display: flex !important;
    align-items: flex-end !important;
    justify-content: stretch !important;
    place-items: unset;
    padding: 0 !important;
    box-sizing: border-box;
  }
  .lever-pop-card {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    border-radius: 18px 18px 0 0 !important;
    border-bottom: 0 !important;
    padding: 6px 16px calc(16px + env(safe-area-inset-bottom, 0px)) !important;
    box-shadow: 0 -12px 40px rgba(12, 20, 28, 0.22);
    align-self: flex-end;
    animation: me-drawer-up 0.3s cubic-bezier(0.22, 1, 0.36, 1);
  }
  .lever-pop-grab {
    display: block;
    width: 36px;
    height: 4px;
    margin: 4px auto 10px;
    border-radius: 999px;
    background: rgba(21, 32, 43, 0.18);
    flex-shrink: 0;
  }
  .lever-pop-card header {
    margin-bottom: 10px;
  }
  /* 抽屉无 ×：点遮罩关闭 */
  #lever-pop #lever-pop-close,
  #lever-pop .lever-pop-card > header .fee-x {
    display: none !important;
  }
  .lever-pop-card .btn.main {
    min-height: 44px;
  }
}
/*
 * 手机底部抽屉统一：隐藏 × 字符关闭（靠顶条/点遮罩/下滑）。
 * 电脑居中弹窗仍保留 ×。已带 is-mobile-drawer / is-drawer 标记的一并覆盖。
 */
@media (max-width: 899px) {
  #pos-sheet .pos-sheet-close,
  #pos-sheet #pos-sheet-close,
  #lever-pop #lever-pop-close,
  #lever-pop .fee-x,
  #hold-detail-sheet .fee-x,
  #hold-detail-sheet .book-day-x,
  #app-cycle-bills .book-day-x,
  #app-cycle-bills .fee-x,
  .fee-tip-modal.is-mobile-drawer .fee-x,
  .fee-tip-modal.is-mobile-drawer .book-day-x,
  .fee-tip-modal.is-drawer .fee-x,
  .fee-tip-modal.is-drawer .book-day-x,
  .vb-pnl-layer.is-drawer .book-day-x,
  .vb-pnl-layer.is-drawer .fee-x,
  .vb-order-layer.is-page .book-day-x,
  .vb-order-layer.is-drawer .book-day-x,
  .vb-filter-layer .book-day-x,
  .vb-filter-layer .fee-x,
  .vb-dir-layer .book-day-x,
  .vb-dir-layer .fee-x,
  .mkt-coin-venue-sheet .fee-x,
  .mkt-coin-venue-sheet .book-day-x,
  .acc-add-sheet .acc-add-sheet-x,
  #me-asset-layer .me-sheet-x,
  .acc-card-menu-modal.is-mobile-drawer .acc-card-menu-close,
  .teach-sheet.is-mobile-drawer .teach-sheet-x,
  .teach-sheet.is-mobile-drawer .fee-x,
  .rules-sheet.is-mobile-drawer .rules-sheet-x,
  .rules-sheet.is-mobile-drawer .rules-sheet-back,
  .rules-sheet.is-mobile-drawer .fee-x {
    display: none !important;
  }
}
.lever-pop-card header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
  gap: 8px;
}
.lever-title-row {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
}
.lever-pop-card h4 {
  margin: 0;
  font-size: 16px;
  font-weight: 800;
  color: var(--ink);
}
.lever-mgn-help {
  flex: 0 0 auto;
  color: var(--muted);
}
.lever-mgn-help:hover,
.lever-mgn-help:focus-visible {
  color: var(--ink);
}
.fold-tip.fold-tip-lever {
  width: 268px;
  max-width: min(280px, 86vw);
  font-weight: 500;
}
.fold-tip.fold-tip-lever .fold-tip-note {
  margin-top: 8px;
  opacity: 0.78;
  font-size: 10.5px;
  line-height: 1.4;
}
.lever-mode {
  margin: 0 0 10px;
  font-size: 12px;
  color: var(--muted);
}
.lever-chips {
  display: flex;
  flex-wrap: nowrap;
  gap: 8px;
  margin: 0 0 12px;
  padding: 2px 2px 6px;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
  scrollbar-width: none;
  touch-action: pan-x;
  cursor: grab;
  user-select: none;
}
.lever-chips.is-panning { cursor: grabbing; }
.lever-chips::-webkit-scrollbar { width: 0; height: 0; }
.lever-chips button {
  flex: 0 0 auto;
  min-width: 52px;
  border: 1px solid var(--line);
  background: var(--chip-bg);
  color: var(--ink);
  border-radius: 8px;
  padding: 10px 14px;
  font: inherit;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
}
.lever-chips button.on {
  border-color: var(--ink);
  background: var(--ink);
  color: var(--panel);
}
.lever-custom {
  display: grid;
  gap: 6px;
  font-size: 12px;
  font-weight: 700;
  color: var(--muted);
  margin-bottom: 8px;
}
.lever-custom-row {
  display: flex;
  align-items: stretch;
  gap: 8px;
}
.lever-mgn-field {
  position: relative;
  flex: 0 0 auto;
  display: flex;
  align-items: stretch;
  min-width: 88px;
  max-width: 42%;
}
body .lever-mgn-field > .lever-mgn-chev {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
}
@media (max-width: 899px) {
  body .lever-mgn-field > .lever-mgn-chev,
  body .earn-fiat-btn > .earn-fiat-chev {
    font-size: 15px;
    font-weight: 500;
  }
}
.lever-mgn-select {
  flex: 0 0 auto;
  width: 100%;
  min-width: 88px;
  max-width: none;
  border: 0;
  background: var(--panel-2);
  border-radius: 10px;
  padding: 11px 28px 11px 12px;
  font: inherit;
  font-size: 14px;
  font-weight: 700;
  color: var(--ink);
  box-sizing: border-box;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  background-image: none;
}
.lever-custom-row input,
.lever-custom input {
  border: 0;
  background: var(--panel-2);
  border-radius: 10px;
  padding: 11px 12px;
  font: inherit;
  font-size: 15px;
  font-weight: 700;
  color: var(--ink);
  width: 100%;
  box-sizing: border-box;
}
.lever-custom-row input {
  flex: 1 1 auto;
  min-width: 0;
}
.lever-msg {
  min-height: 18px;
  margin: 0 0 8px;
  font-size: 12px;
  color: var(--down);
}
.lever-pop-card .btn.main {
  width: 100%;
}
/* 调整杠杆：夜间与参数设置同款深色分层 */


html[data-theme="dark"] .lever-pop {
  background: rgba(0, 0, 0, 0.55);
}
html[data-theme="dark"] .lever-pop-card {
  background: var(--panel) !important;
  color: var(--ink) !important;
  border-color: var(--line) !important;
  box-shadow: var(--shadow) !important;
}
@media (max-width: 899px) {
  html[data-theme="dark"] .lever-pop-card {
    box-shadow: 0 -18px 48px rgba(0, 0, 0, 0.55) !important;
    border-top: 1px solid rgba(255, 255, 255, 0.14) !important;
  }
  html[data-theme="dark"] .lever-pop-grab {
    background: rgba(255, 255, 255, 0.28);
  }
}
html[data-theme="dark"] .lever-pop-card h4 {
  color: var(--ink) !important;
}
html[data-theme="dark"] .lever-pop-card .fee-x {
  color: #fff !important;
  opacity: 0.92;
}
html[data-theme="dark"] .lever-mode,
html[data-theme="dark"] .lever-custom {
  color: var(--muted) !important;
}
html[data-theme="dark"] .lever-mgn-help {
  color: var(--muted) !important;
}
html[data-theme="dark"] .lever-chips button {
  background: var(--chip-bg) !important;
  border-color: var(--line) !important;
  color: var(--ink) !important;
}
html[data-theme="dark"] .lever-chips button.on {
  background: #fff !important;
  border-color: #fff !important;
  color: #12171e !important;
}
html[data-theme="dark"] .lever-mgn-select,
html[data-theme="dark"] .lever-custom input,
html[data-theme="dark"] .lever-custom-row input {
  background: var(--panel-2) !important;
  color: var(--ink) !important;
  border: 1px solid var(--line) !important;
  -webkit-text-fill-color: var(--ink);
}
html[data-theme="dark"] .lever-mgn-select {
  background-image: none !important;
}
html[data-theme="dark"] .lever-pop-card .btn.main {
  background: #fff !important;
  color: #12171e !important;
}

.ai-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}
.ai-head h3 {
  margin: 0;
  font-size: 18px;
  font-weight: 800;
  letter-spacing: -0.02em;
}
.ai-sub {
  margin: 4px 0 10px;
  font-size: 12px;
  color: var(--muted);
  line-height: 1.5;
}
.ai-mode-tabs,
.ai-mode-tab {
  display: none !important;
}
#ai-sheet.is-orch .ai-summary,
#ai-sheet.is-orch .ai-summary.is-orch-ctx {
  display: none !important;
}
#ai-sheet.is-orch .ai-msg.bot {
  border: 1px solid var(--line);
  background: var(--panel-2, #151a1f);
}
#ai-sheet.is-orch .ai-chat .ai-msg.bot:first-child {
  border-color: var(--line);
  box-shadow: inset 3px 0 0 var(--ink);
  font-size: 13px;
  line-height: 1.55;
}
#ai-sheet.is-orch .ai-chips button {
  font-weight: 650;
  letter-spacing: 0.01em;
}
.ai-orch-apply {
  margin: 8px 0 4px;
  padding: 10px 10px 8px;
  border-radius: 12px;
  border: 1px solid var(--line, rgba(0, 0, 0, 0.1));
  background: var(--panel-2, rgba(37, 99, 235, 0.06));
}
.ai-orch-apply[hidden] {
  display: none !important;
}
.ai-orch-apply-sum {
  margin: 0 0 8px;
  font-size: 12px;
  line-height: 1.45;
  color: var(--muted);
  white-space: pre-wrap;
  max-height: 120px;
  overflow: auto;
}
.ai-orch-apply-acts {
  display: flex;
  gap: 8px;
  justify-content: flex-end;
}
.ai-orch-apply-acts .btn {
  min-height: 32px;
  padding: 6px 12px;
  font-size: 12px;
}
#ai-sheet.is-guest-qa .ai-summary {
  display: none !important;
}
#ai-sheet.is-guest-qa .ai-float-scroll {
  padding-top: 2px;
}
/* 快速上手标题行右侧：在线客服（非 fixed 浮层） */


.help-sec-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin: 0 0 8px;
}
.help-sec-head .help-sec-title {
  margin: 0;
  flex: 1 1 auto;
  min-width: 0;
}
.cs-fab {
  position: static;
  flex: 0 0 auto;
  /* 与账户页 .me-gear 同尺寸的图标按钮 */
  width: 36px;
  height: 36px;
  margin: 0;
  margin-inline-start: auto;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: var(--ink);
  display: grid;
  place-items: center;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  filter: none;
  transition: color 0.12s ease, transform 0.1s ease, opacity 0.12s ease;
}
.cs-fab[hidden] {
  display: none !important;
}
.cs-fab:hover,
.cs-fab:focus-visible {
  color: var(--teal);
  background: transparent;
  outline: none;
  transform: none;
}
.cs-fab:active {
  transform: scale(0.96);
  opacity: 0.75;
  background: transparent;
}
.cs-fab svg {
  display: block;
  width: 22px;
  height: 22px;
  pointer-events: none;
  overflow: visible;
}
html.cs-sheet-open .cs-fab,
html:has(#cs-sheet.on:not([hidden])) .cs-fab {
  color: var(--teal);
}
/* 在线客服桌面浮窗：默认略宽，排队卡/转人工卡可横向铺满内容区 */
#cs-float.pos-float.cs-float:not(.is-page) {
  width: min(420px, calc(100vw - 24px));
  min-width: min(360px, calc(100vw - 24px));
}
#cs-sheet .ai-float-scroll {
  padding-top: 2px;
}
#cs-sheet .cs-chat {
  max-height: none;
  flex: 1;
  min-height: 180px;
}
#cs-sheet .ai-msg.system,
#cs-float .ai-msg.system {
  align-self: center;
  max-width: 92%;
  margin: 10px auto;
  padding: 8px 12px;
  border-radius: 8px;
  font-size: 12px;
  line-height: 1.5;
  text-align: center;
  color: var(--muted, #888);
  background: color-mix(in srgb, var(--line, #ddd) 35%, transparent);
}
#cs-sheet .cs-chat-trans-hint,
#cs-float .cs-chat-trans-hint,
#cs-sheet .cs-chat-orig,
#cs-float .cs-chat-orig {
  margin: 6px 0 0;
  font-size: 11px;
  line-height: 1.45;
  color: var(--muted, #888);
  opacity: 0.92;
}
#cs-sheet .cs-chat-orig-fold,
#cs-float .cs-chat-orig-fold {
  margin-top: 6px;
  font-size: 11px;
  color: var(--muted, #888);
}
#cs-sheet .cs-chat-orig-fold summary,
#cs-float .cs-chat-orig-fold summary {
  cursor: pointer;
  user-select: none;
}
/* 邀请结束：全宽确认卡（类电商客服 / 拼多多式） */
#cs-sheet .cs-end-invite-wrap,
#cs-float .cs-end-invite-wrap {
  align-self: stretch;
  width: 100%;
  max-width: 100%;
  margin: 10px 0 14px;
  padding: 0 2px;
  background: transparent !important;
  border-radius: 0;
}
#cs-sheet .cs-end-invite-card,
#cs-float .cs-end-invite-card {
  box-sizing: border-box;
  width: 100%;
  padding: 14px 14px 12px;
  border-radius: 12px;
  background: #fff;
  color: #1a1a1a;
  border: 1px solid color-mix(in srgb, #e8e8e8 80%, #ffb4a8);
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.06);
}
html[data-theme="dark"] #cs-sheet .cs-end-invite-card,
html[data-theme="dark"] #cs-float .cs-end-invite-card {
  background: #1c2229;
  color: #f2f4f6;
  border-color: rgba(255, 120, 90, 0.35);
  box-shadow: 0 6px 22px rgba(0, 0, 0, 0.35);
}
#cs-sheet .cs-end-invite-card.is-urgent,
#cs-float .cs-end-invite-card.is-urgent {
  border-color: color-mix(in srgb, #e54545 55%, #e8e8e8);
}
#cs-sheet .cs-end-invite-head,
#cs-float .cs-end-invite-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 10px;
}
#cs-sheet .cs-end-invite-badge,
#cs-float .cs-end-invite-badge {
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 750;
  letter-spacing: 0.02em;
  color: #e54545;
  background: linear-gradient(90deg, rgba(229, 69, 69, 0.12), rgba(255, 149, 64, 0.1));
}
#cs-sheet .cs-end-invite-from,
#cs-float .cs-end-invite-from {
  font-size: 11px;
  color: var(--muted, #888);
  flex-shrink: 0;
}
#cs-sheet .cs-end-invite-text,
#cs-float .cs-end-invite-text {
  margin: 0 0 12px;
  font-size: 14px;
  line-height: 1.55;
  color: inherit;
}
#cs-sheet .cs-end-invite-timer,
#cs-float .cs-end-invite-timer {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin: 0 0 12px;
  padding: 8px 10px;
  border-radius: 8px;
  font-size: 12px;
  line-height: 1.45;
  color: #666;
  background: #f7f8fa;
}
html[data-theme="dark"] #cs-sheet .cs-end-invite-timer,
html[data-theme="dark"] #cs-float .cs-end-invite-timer {
  background: rgba(255, 255, 255, 0.06);
  color: #aab2bd;
}
#cs-sheet .cs-end-invite-timer.is-urgent,
#cs-float .cs-end-invite-timer.is-urgent {
  color: #c93434;
  background: rgba(229, 69, 69, 0.08);
}
#cs-sheet .cs-end-invite-timer-ico,
#cs-float .cs-end-invite-timer-ico {
  width: 16px;
  height: 16px;
  margin-top: 1px;
  flex-shrink: 0;
  border-radius: 50%;
  border: 2px solid currentColor;
  border-top-color: transparent;
  animation: cs-end-invite-spin 0.9s linear infinite;
}
@keyframes cs-end-invite-spin {
  to {
    transform: rotate(360deg);
  }
}
#cs-sheet .cs-end-invite-timer-copy strong,
#cs-float .cs-end-invite-timer-copy strong {
  font-size: 18px;
  font-weight: 800;
  color: #e54545;
  margin-right: 2px;
  font-variant-numeric: tabular-nums;
}
#cs-sheet .cs-end-invite-actions,
#cs-float .cs-end-invite-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
#cs-sheet .cs-end-invite-actions--single,
#cs-float .cs-end-invite-actions--single {
  grid-template-columns: 1fr;
}
#cs-sheet .cs-end-invite-btn,
#cs-float .cs-end-invite-btn {
  min-height: 44px;
  border-radius: 22px;
  padding: 10px 12px;
  font-size: 14px;
  font-weight: 650;
  cursor: pointer;
  transition: opacity 0.12s ease, transform 0.08s ease;
}
#cs-sheet .cs-end-invite-btn:active:not(:disabled),
#cs-float .cs-end-invite-btn:active:not(:disabled) {
  transform: scale(0.98);
}
#cs-sheet .cs-end-invite-btn.is-ghost,
#cs-float .cs-end-invite-btn.is-ghost {
  border: 1px solid #d8dce3;
  background: #fff;
  color: #333;
}
html[data-theme="dark"] #cs-sheet .cs-end-invite-btn.is-ghost,
html[data-theme="dark"] #cs-float .cs-end-invite-btn.is-ghost {
  border-color: rgba(255, 255, 255, 0.18);
  background: transparent;
  color: #e8ecf0;
}
#cs-sheet .cs-end-invite-btn.is-primary,
#cs-float .cs-end-invite-btn.is-primary {
  border: 0;
  background: linear-gradient(135deg, #ff6034, #e54545);
  color: #fff;
  box-shadow: 0 4px 12px rgba(229, 69, 69, 0.35);
}
#cs-sheet .cs-end-invite-btn:disabled,
#cs-float .cs-end-invite-btn:disabled {
  opacity: 0.42;
  cursor: not-allowed;
  box-shadow: none;
}
#cs-sheet .cs-end-invite-result,
#cs-float .cs-end-invite-result {
  margin-top: 4px;
  padding: 10px 12px;
  border-radius: 8px;
  text-align: center;
  font-size: 13px;
  font-weight: 650;
  color: #666;
  background: #f3f5f7;
}
html[data-theme="dark"] #cs-sheet .cs-end-invite-result,
html[data-theme="dark"] #cs-float .cs-end-invite-result {
  background: rgba(255, 255, 255, 0.06);
  color: #b8c0c8;
}
#cs-sheet .cs-faq-bubble {
  max-width: 96%;
  padding: 12px;
}
#cs-sheet .cs-faq-hi {
  margin: 0 0 8px;
  font-size: 14px;
  line-height: 1.55;
  color: inherit;
  font-weight: 500;
}
#cs-sheet .cs-faq-bubble .cs-faq-list {
  margin-top: 2px;
}
#cs-sheet .cs-faq-menu {
  margin: 0;
  padding: 0;
  border-radius: 0;
  background: transparent;
}
/* 在线客服 / AI 问答：与电脑浮窗一致，顶栏与底栏不要通栏分割线 */
#cs-sheet .pos-float-head,
#ai-sheet .pos-float-head {
  border-bottom: 0 !important;
}
#cs-sheet .ai-chat-dock,
#cs-float .ai-chat-dock,
#ai-sheet .ai-chat-dock {
  border-top: 0 !important;
  box-shadow: none !important;
}
#cs-float .ai-float-scroll,
#cs-sheet .ai-float-scroll {
  overflow-x: hidden;
  overflow-y: auto;
}
#cs-float .cs-chat,
#cs-sheet .cs-chat {
  max-width: 100%;
  overflow-x: hidden;
  word-wrap: break-word;
  overflow-wrap: anywhere;
}
#cs-float .ai-ask input,
#cs-sheet .ai-ask input {
  border: 1px solid color-mix(in srgb, var(--line, #d8dce3) 88%, #c5cad3);
  background: var(--panel, #fff);
  box-shadow: inset 0 1px 2px rgba(15, 24, 32, 0.04);
}
#cs-float .ai-ask input:focus,
#cs-sheet .ai-ask input:focus {
  border-color: color-mix(in srgb, var(--teal, #14c8be) 55%, var(--line, #d8dce3));
  box-shadow:
    inset 0 1px 2px rgba(15, 24, 32, 0.03),
    0 0 0 3px color-mix(in srgb, var(--teal, #14c8be) 14%, transparent);
  outline: none;
}
html[data-theme="dark"] #cs-float .ai-ask input,
html[data-theme="dark"] #cs-sheet .ai-ask input {
  border-color: rgba(255, 255, 255, 0.16);
  background: rgba(255, 255, 255, 0.06);
  box-shadow: none;
}
html[data-theme="dark"] #cs-float .ai-ask input:focus,
html[data-theme="dark"] #cs-sheet .ai-ask input:focus {
  border-color: color-mix(in srgb, var(--teal, #14c8be) 45%, rgba(255, 255, 255, 0.2));
  box-shadow: 0 0 0 3px rgba(20, 200, 190, 0.12);
}
/* 客服 / AI 全屏顶栏：返回旁黑圆白标 + 标题 */
.chat-sheet-head-brand {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #000;
  display: grid;
  place-items: center;
  line-height: 0;
}
.chat-sheet-head-brand img {
  width: 16px;
  height: 16px;
  display: block;
  object-fit: contain;
}
#cs-sheet .chat-sheet-title-row,
#ai-sheet .chat-sheet-title-row {
  gap: 8px;
}
#cs-sheet .cs-faq-menu {
  margin-top: 4px;
  padding: 10px 10px 8px;
  border-radius: 12px;
  background: var(--chip-bg, rgba(0, 0, 0, 0.04));
}
#cs-sheet .cs-faq-menu-head {
  margin-bottom: 6px;
}
#cs-sheet .cs-faq-menu-title {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--muted, #6b7280);
  text-transform: none;
}
#cs-sheet .cs-faq-menu-hint,
#cs-sheet .cs-faq-crumb {
  margin: 0 0 8px;
  font-size: 12px;
  line-height: 1.45;
  color: var(--muted, #6b7280);
}
#cs-sheet .cs-faq-crumb {
  font-weight: 600;
  color: inherit;
}
#cs-sheet .cs-faq-back {
  display: block;
  width: 100%;
  margin: 0 0 6px;
  padding: 6px 8px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--teal);
  font: inherit;
  font-size: 12px;
  font-weight: 650;
  text-align: left;
  cursor: pointer;
}
#cs-sheet .cs-faq-list,
#cs-float .cs-faq-list {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin: 0;
  padding: 0;
  border: 0;
}
#cs-sheet .cs-faq-item,
#cs-float .cs-faq-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  width: 100%;
  margin: 0;
  padding: 6px 9px;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: inherit;
  font: inherit;
  font-size: 12.5px;
  font-weight: 500;
  line-height: 1.45;
  text-align: left;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: background 0.12s ease, color 0.12s ease;
}
#cs-sheet .cs-faq-item-label,
#cs-float .cs-faq-item-label {
  flex: 1;
  min-width: 0;
}
#cs-sheet .cs-faq-chev,
#cs-float .cs-faq-chev {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  margin-left: 2px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--line, #d1d5db) 42%, transparent);
  color: color-mix(in srgb, var(--muted, #6b7280) 88%, #374151);
  opacity: 1;
  transition: background 0.12s ease, color 0.12s ease, transform 0.12s ease;
}
#cs-sheet .cs-faq-chev svg,
#cs-float .cs-faq-chev svg {
  display: block;
  width: 14px;
  height: 14px;
}
#cs-sheet .cs-faq-item--branch:hover .cs-faq-chev,
#cs-sheet .cs-faq-item--branch:focus-visible .cs-faq-chev,
#cs-float .cs-faq-item--branch:hover .cs-faq-chev,
#cs-float .cs-faq-item--branch:focus-visible .cs-faq-chev {
  background: color-mix(in srgb, var(--teal, #14c8be) 16%, transparent);
  color: var(--teal, #0d9488);
}
#cs-sheet .cs-faq-item--branch:active .cs-faq-chev,
#cs-float .cs-faq-item--branch:active .cs-faq-chev {
  transform: translateX(1px);
}
html[data-theme="dark"] #cs-sheet .cs-faq-chev,
html[data-theme="dark"] #cs-float .cs-faq-chev {
  background: rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.55);
}
html[data-theme="dark"] #cs-sheet .cs-faq-item--branch:hover .cs-faq-chev,
html[data-theme="dark"] #cs-sheet .cs-faq-item--branch:focus-visible .cs-faq-chev,
html[data-theme="dark"] #cs-float .cs-faq-item--branch:hover .cs-faq-chev,
html[data-theme="dark"] #cs-float .cs-faq-item--branch:focus-visible .cs-faq-chev {
  background: color-mix(in srgb, var(--teal, #14c8be) 22%, transparent);
  color: #5eead4;
}
#cs-sheet .cs-faq-item--leaf {
  font-weight: 500;
}
#cs-sheet .cs-faq-item:hover,
#cs-sheet .cs-faq-item:focus-visible,
#cs-float .cs-faq-item:hover,
#cs-float .cs-faq-item:focus-visible {
  outline: none;
  background: var(--chip-bg);
  color: inherit;
}
#cs-sheet .cs-faq-item.on,
#cs-sheet .cs-faq-item:active,
#cs-float .cs-faq-item.on,
#cs-float .cs-faq-item:active {
  background: var(--chip-bg) !important;
  color: var(--teal) !important;
  border-radius: 10px;
  font-weight: 650;
}
#cs-float .cs-chat.ai-chat,
#cs-sheet .cs-chat.ai-chat {
  width: 100%;
  align-items: stretch;
  box-sizing: border-box;
}
#cs-sheet .cs-queue-waiting-wrap.ai-msg.bot,
#cs-float .cs-queue-waiting-wrap.ai-msg.bot {
  align-self: stretch;
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0;
  background: transparent !important;
  border-radius: 0;
  box-shadow: none;
}
#cs-sheet .cs-queue-waiting-wrap,
#cs-float .cs-queue-waiting-wrap {
  align-self: stretch;
  width: 100%;
  max-width: 100%;
}
#cs-sheet .cs-queue-waiting-card,
#cs-float .cs-queue-waiting-card {
  box-sizing: border-box;
  width: 100%;
  padding: 12px 14px 10px;
  border-radius: 12px;
  border: 1px solid color-mix(in srgb, var(--teal, #14c8be) 28%, var(--line, #d8dce3));
  background: linear-gradient(
    135deg,
    color-mix(in srgb, var(--teal, #14c8be) 8%, var(--panel, #fff)),
    color-mix(in srgb, var(--panel, #fff) 92%, transparent)
  );
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.04);
}
#cs-sheet .cs-queue-waiting-card.is-connecting,
#cs-float .cs-queue-waiting-card.is-connecting {
  border-color: color-mix(in srgb, var(--teal, #14c8be) 42%, var(--line, #d8dce3));
}
#cs-sheet .cs-queue-waiting-head,
#cs-float .cs-queue-waiting-head {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 6px;
}
#cs-sheet .cs-queue-waiting-title,
#cs-float .cs-queue-waiting-title {
  font-size: 13px;
  font-weight: 750;
  letter-spacing: 0.02em;
  color: var(--ink, inherit);
}
#cs-sheet .cs-queue-waiting-badge,
#cs-float .cs-queue-waiting-badge {
  font-size: 11px;
  font-weight: 650;
  padding: 2px 8px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--teal, #14c8be) 14%, transparent);
  color: color-mix(in srgb, var(--teal, #0d9488) 88%, #0f766e);
}
#cs-sheet .cs-queue-waiting-line,
#cs-float .cs-queue-waiting-line {
  margin: 0;
  font-size: 12.5px;
  line-height: 1.5;
  color: var(--muted, #6b7280);
  word-wrap: break-word;
  overflow-wrap: anywhere;
}
#cs-sheet .cs-queue-waiting-pulse,
#cs-float .cs-queue-waiting-pulse {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  height: 18px;
}
#cs-sheet .cs-queue-waiting-pulse i,
#cs-float .cs-queue-waiting-pulse i {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--teal, #14c8be);
  animation: cs-queue-dot 1.2s ease-in-out infinite;
}
#cs-sheet .cs-queue-waiting-pulse i:nth-child(2),
#cs-float .cs-queue-waiting-pulse i:nth-child(2) {
  animation-delay: 0.15s;
}
#cs-sheet .cs-queue-waiting-pulse i:nth-child(3),
#cs-float .cs-queue-waiting-pulse i:nth-child(3) {
  animation-delay: 0.3s;
}
@keyframes cs-queue-dot {
  0%,
  80%,
  100% {
    transform: translateY(0);
    opacity: 0.35;
  }
  40% {
    transform: translateY(-3px);
    opacity: 1;
  }
}
#cs-sheet .cs-queue-waiting-card,
#cs-float .cs-queue-waiting-card {
  overflow: hidden;
}
html[data-theme="dark"] #cs-sheet .cs-queue-waiting-card,
html[data-theme="dark"] #cs-float .cs-queue-waiting-card {
  background: linear-gradient(135deg, rgba(20, 200, 190, 0.12), rgba(255, 255, 255, 0.04));
  border-color: rgba(94, 234, 212, 0.22);
}
#cs-sheet .cs-handoff-wrap,
#cs-float .cs-handoff-wrap {
  align-self: stretch;
  width: 100%;
  max-width: 100%;
  margin: 8px 0 12px;
  padding: 0 2px;
  background: transparent !important;
}
#cs-sheet .cs-queue-waiting-card.has-confirm,
#cs-float .cs-queue-waiting-card.has-confirm {
  padding-bottom: 14px;
}
#cs-sheet .cs-queue-waiting-card.is-confirm-urgent,
#cs-float .cs-queue-waiting-card.is-confirm-urgent {
  border-color: color-mix(in srgb, #d97706 32%, var(--teal, #14c8be) 28%, var(--line, #d8dce3));
}
#cs-sheet .cs-queue-confirm,
#cs-float .cs-queue-confirm {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid color-mix(in srgb, var(--line, #d8dce3) 55%, transparent);
}
#cs-sheet .cs-queue-confirm-hint,
#cs-float .cs-queue-confirm-hint {
  margin: 0 0 10px;
  font-size: 12.5px;
  line-height: 1.5;
  color: var(--muted, #6b7280);
}
#cs-sheet .cs-queue-confirm-timer,
#cs-float .cs-queue-confirm-timer {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin: 2px 0 14px;
  padding: 0;
  border: none;
  background: transparent;
  box-shadow: none;
}
#cs-sheet .cs-queue-countdown-digits,
#cs-float .cs-queue-countdown-digits {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 4px;
  line-height: 1;
}
#cs-sheet .cs-queue-countdown-sec,
#cs-float .cs-queue-countdown-sec {
  font-size: clamp(40px, 11vw, 48px);
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.03em;
  color: var(--ink, #111827);
}
#cs-sheet .cs-queue-countdown-unit,
#cs-float .cs-queue-countdown-unit {
  font-size: 15px;
  font-weight: 700;
  color: var(--muted, #6b7280);
  transform: translateY(-2px);
}
#cs-sheet .cs-queue-countdown-caption,
#cs-float .cs-queue-countdown-caption {
  margin: 8px 0 0;
  font-size: 12px;
  line-height: 1.4;
  text-align: center;
  color: var(--muted, #6b7280);
}
#cs-sheet .cs-queue-confirm-timer.is-urgent .cs-queue-countdown-sec,
#cs-float .cs-queue-confirm-timer.is-urgent .cs-queue-countdown-sec {
  color: #d97706;
}
html[data-theme="dark"] #cs-sheet .cs-queue-countdown-sec,
html[data-theme="dark"] #cs-float .cs-queue-countdown-sec {
  color: #f3f4f6;
}
#cs-sheet .cs-queue-confirm-btn,
#cs-float .cs-queue-confirm-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 42px;
  padding: 0 16px;
  border: none;
  border-radius: 21px;
  font-size: 14px;
  font-weight: 700;
  color: #fff;
  cursor: pointer;
  background: linear-gradient(
    180deg,
    color-mix(in srgb, var(--teal, #14c8be) 90%, #fff) 0%,
    var(--teal, #14c8be) 100%
  );
  box-shadow: 0 2px 10px color-mix(in srgb, var(--teal, #14c8be) 28%, transparent);
  transition: filter 0.12s ease, transform 0.08s ease, opacity 0.12s ease;
}
#cs-sheet .cs-queue-confirm-btn:hover:not(:disabled),
#cs-float .cs-queue-confirm-btn:hover:not(:disabled) {
  filter: brightness(1.05);
}
#cs-sheet .cs-queue-confirm-btn:active:not(:disabled),
#cs-float .cs-queue-confirm-btn:active:not(:disabled) {
  transform: scale(0.99);
}
#cs-sheet .cs-queue-confirm-btn:disabled,
#cs-float .cs-queue-confirm-btn:disabled {
  opacity: 0.45;
  cursor: not-allowed;
  box-shadow: none;
}
#cs-sheet .cs-handoff-card,
#cs-float .cs-handoff-card {
  box-sizing: border-box;
  width: 100%;
  padding: 14px 14px 12px;
  border-radius: 12px;
  background: #fff;
  color: #1a1a1a;
  border: 1px solid color-mix(in srgb, var(--teal, #14c8be) 28%, #e8e8e8);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.05);
}
html[data-theme="dark"] #cs-sheet .cs-handoff-card,
html[data-theme="dark"] #cs-float .cs-handoff-card {
  background: #1c2229;
  color: #e8edf3;
  border-color: color-mix(in srgb, var(--teal, #14c8be) 35%, #2a3340);
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.35);
}
#cs-sheet .cs-handoff-head,
#cs-float .cs-handoff-head {
  display: flex;
  align-items: center;
  margin-bottom: 8px;
}
#cs-sheet .cs-handoff-badge,
#cs-float .cs-handoff-badge {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 0 8px;
  border-radius: 6px;
  font-size: 12px;
  font-weight: 700;
  color: var(--teal, #0f766e);
  background: color-mix(in srgb, var(--teal, #14c8be) 16%, transparent);
}
#cs-sheet .cs-handoff-main,
#cs-float .cs-handoff-main {
  margin: 0 0 6px;
  font-size: 14px;
  line-height: 1.55;
  font-weight: 600;
  color: inherit;
}
#cs-sheet .cs-handoff-hint,
#cs-float .cs-handoff-hint {
  margin: 0 0 12px;
  font-size: 13px;
  line-height: 1.5;
  color: var(--muted, #6b7280);
}
#cs-sheet .cs-handoff-btn,
#cs-float .cs-handoff-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin: 0;
  min-height: 44px;
  padding: 0 16px;
  border-radius: 22px;
  border: none;
  background: linear-gradient(180deg, color-mix(in srgb, var(--teal, #14c8be) 92%, #fff) 0%, var(--teal, #14c8be) 100%);
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 2px 8px color-mix(in srgb, var(--teal, #14c8be) 35%, transparent);
}
#cs-sheet .cs-handoff-btn:hover,
#cs-float .cs-handoff-btn:hover {
  filter: brightness(1.04);
}
#cs-sheet .cs-handoff-btn:active,
#cs-float .cs-handoff-btn:active {
  transform: scale(0.99);
}
/* 夜间 --teal 为浅灰点缀色，勿用于实心 CTA（否则会白字+浅底不可读） */
html[data-theme="dark"] #cs-sheet .cs-handoff-btn,
html[data-theme="dark"] #cs-float .cs-handoff-btn,
html[data-theme="dark"] #cs-sheet .cs-queue-confirm-btn,
html[data-theme="dark"] #cs-float .cs-queue-confirm-btn {
  background: linear-gradient(180deg, #3dbaa0 0%, #0f766e 100%);
  color: #fff;
  box-shadow: 0 2px 10px rgba(61, 186, 160, 0.28);
}
html[data-theme="dark"] #cs-sheet .cs-handoff-badge,
html[data-theme="dark"] #cs-float .cs-handoff-badge {
  color: #5eead4;
  background: rgba(61, 186, 160, 0.18);
}
#cs-sheet .cs-evidence-wrap,
#cs-float .cs-evidence-wrap {
  align-self: stretch;
  width: 100%;
  margin: 8px 0 12px;
  padding: 0 2px;
  background: transparent !important;
}
#cs-sheet .cs-evidence-card,
#cs-float .cs-evidence-card {
  width: 100%;
  box-sizing: border-box;
  padding: 14px;
  border-radius: 12px;
  background: #fff;
  border: 1px solid color-mix(in srgb, #6b8cff 30%, #e8e8e8);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.05);
}
html[data-theme="dark"] #cs-sheet .cs-evidence-card,
html[data-theme="dark"] #cs-float .cs-evidence-card {
  background: #1c2229;
  border-color: color-mix(in srgb, #6b8cff 35%, #2a3340);
}
#cs-sheet .cs-evidence-head,
#cs-float .cs-evidence-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
}
#cs-sheet .cs-evidence-badge,
#cs-float .cs-evidence-badge {
  font-size: 12px;
  font-weight: 700;
  color: #3b5bdb;
}
#cs-sheet .cs-evidence-count,
#cs-float .cs-evidence-count {
  font-size: 12px;
  color: var(--muted, #6b7280);
  font-variant-numeric: tabular-nums;
}
#cs-sheet .cs-evidence-prompt,
#cs-float .cs-evidence-prompt {
  margin: 0 0 8px;
  font-size: 13px;
  line-height: 1.55;
}
#cs-sheet .cs-evidence-timer,
#cs-float .cs-evidence-timer {
  margin: 0 0 10px;
  font-size: 13px;
  color: var(--muted, #6b7280);
}
#cs-sheet .cs-evidence-remain,
#cs-float .cs-evidence-remain {
  color: #e54545;
  font-weight: 800;
  margin-right: 4px;
}
#cs-sheet .cs-evidence-thumbs,
#cs-float .cs-evidence-thumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 10px;
}
#cs-sheet .cs-evidence-thumb img,
#cs-float .cs-evidence-thumb img,
#cs-sheet .cs-chat-img,
#cs-float .cs-chat-img {
  max-width: 160px;
  max-height: 160px;
  border-radius: 8px;
  object-fit: cover;
  display: block;
}
#cs-sheet .cs-evidence-btn,
#cs-float .cs-evidence-btn {
  width: 100%;
  min-height: 44px;
  border-radius: 22px;
  border: none;
  background: linear-gradient(180deg, #4c6ef5 0%, #3b5bdb 100%);
  color: #fff;
  font-weight: 700;
  cursor: pointer;
}
#cs-sheet .cs-evidence-hint,
#cs-float .cs-evidence-hint {
  margin: 8px 0 0;
  font-size: 11px;
  color: var(--muted, #9ca3af);
  text-align: center;
}
#cs-sheet .cs-chat-img-msg,
#cs-float .cs-chat-img-msg {
  padding: 4px !important;
  background: transparent !important;
}
/* 智能客服：连接中中间页（帮助中心 / 悬浮钮 → 会话前） */
.cs-connect-sheet {
  --fund-connect-cycle-ms: 1800ms;
  position: fixed;
  inset: 0;
  z-index: 33118;
  display: flex;
  flex-direction: column;
  background: var(--bg, #fff);
  color: var(--ink, #111827);
  pointer-events: auto;
}
.cs-connect-sheet[hidden] {
  display: none !important;
}
body.cs-connect-open,
html.cs-connect-open {
  overflow: hidden;
}
.cs-connect-head {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  padding: 12px clamp(10px, 3.2vw, 16px);
  padding-top: max(12px, env(safe-area-inset-top, 0px));
}
.cs-connect-head > .ui-page-back {
  margin-left: -6px;
}
.cs-connect-body {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 24px 20px 18vh;
  text-align: center;
  min-height: 0;
}
.cs-connect-logo {
  width: 72px;
  height: 72px;
  border-radius: 50%;
}
.cs-connect-logo img {
  width: 40px;
  height: 40px;
}
.cs-connect-title {
  margin: 22px 0 0;
  font-size: clamp(18px, 4.8vw, 22px);
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.25;
}
.cs-connect-bar {
  position: relative;
  width: min(168px, 52vw);
  height: 4px;
  margin: 28px 0 18px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--ink, #111827) 12%, transparent);
  overflow: hidden;
}
.cs-connect-bar-pulse {
  position: absolute;
  left: 0;
  top: 0;
  width: 42%;
  height: 100%;
  border-radius: inherit;
  background: color-mix(in srgb, var(--ink, #111827) 72%, transparent);
  animation: cs-connect-bar-loop var(--fund-connect-cycle-ms, 1800ms) ease-in-out infinite;
}
.cs-connect-sheet.is-over-chat {
  z-index: 33170 !important;
}
@keyframes cs-connect-bar-loop {
  0% {
    transform: translateX(-110%);
  }
  50% {
    transform: translateX(240%);
  }
  100% {
    transform: translateX(-110%);
  }
}
.cs-connect-hint {
  margin: 0;
  max-width: 20em;
  font-size: clamp(13px, 3.5vw, 14px);
  line-height: 1.55;
  color: var(--muted, #6b7280);
  font-weight: 500;
}
/* WebClip / 手机：状态栏安全区与 --chrome-fill 同色（防与白页分层） */
@media (max-width: 899px) {
  html.omx-native-shell::before,
  html.wenli-mobile-boot::before {
    content: "";
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: env(safe-area-inset-top, 0px);
    background: var(--chrome-fill, var(--bg, #ffffff));
    z-index: 2147483646;
    pointer-events: none;
  }
  html.fund-chrome-light-page {
    color-scheme: light !important;
    background-color: #ffffff !important;
  }
  html.fund-chrome-light-page::before {
    background: #ffffff !important;
  }
  body.acc-add-open::before,
  body.cycle-bills-open::before {
    content: "";
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: env(safe-area-inset-top, 0px);
    background: var(--chrome-fill, var(--bg, #ffffff));
    z-index: 33150;
    pointer-events: none;
  }
}
html.omx-native-shell .cs-connect-hint[hidden] {
  display: none !important;
}
html.omx-native-shell:not(.omx-app-ready) body {
  visibility: hidden;
}
html.omx-native-shell.omx-app-ready body {
  visibility: visible;
}
/* 描述文件 / 独立模式：黑底居中 Logo（与手机浏览器 wenli-mobile-boot 同款） */
html.omx-native-shell:not(.omx-app-ready) .wenli-mobile-boot-splash {
  display: flex !important;
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: none;
}
html.omx-native-shell.omx-app-ready .wenli-mobile-boot-splash {
  display: none !important;
}
html.omx-native-shell:not(.omx-app-ready) .dock,
html.omx-native-shell:not(.omx-app-ready) .wenli-top,
html.omx-native-shell:not(.omx-app-ready) .shell {
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
html.omx-native-shell body.auth-boot-pending .dock,
html.omx-native-shell body.auth-boot-pending .shell {
  visibility: hidden !important;
}
/* 手机浏览器：黑底闪屏盖在页上；勿对 body 用 visibility:hidden（会连闪屏里的 Logo 一起藏掉） */
html.wenli-mobile-boot:not(.wenli-boot-ready) .dock,
html.wenli-mobile-boot:not(.wenli-boot-ready) .wenli-top,
html.wenli-mobile-boot:not(.wenli-boot-ready) .shell,
html.wenli-mobile-boot:not(.wenli-boot-ready) .panel,
html.wenli-mobile-boot:not(.wenli-boot-ready) .auth-layer {
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
.wenli-mobile-boot-splash {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 2147483000;
  align-items: center;
  justify-content: center;
  background: #0b0e11;
  pointer-events: none;
  visibility: visible !important;
  opacity: 1 !important;
}
html.wenli-mobile-boot:not(.wenli-boot-ready) .wenli-mobile-boot-splash {
  display: flex;
}
html.wenli-boot-ready .wenli-mobile-boot-splash {
  display: none !important;
}
/* 手机浏览器闪屏：居中白标略小于满屏图标感，避免过大 */
.wenli-mobile-boot-splash img {
  width: clamp(112px, 28vmin, 162px);
  height: clamp(112px, 28vmin, 162px);
  max-width: min(38vw, 162px);
  max-height: min(38vw, 162px);
  object-fit: contain;
  -webkit-user-select: none;
  user-select: none;
}
html[data-theme="dark"] .cs-connect-sheet {
  background: var(--bg, #0b1220);
}

/* 手机端：智能客服独立全屏页 */


@media (max-width: 720px) {
  body.cs-page-open,
  html.cs-page-open {
    overflow: hidden;
  }
  body.cs-page-open .dock {
    visibility: hidden !important;
    pointer-events: none !important;
  }
  body.cs-page-open .shell,
  body.cs-page-open .app {
    pointer-events: none;
  }
  #cs-sheet.on.is-page,
  #cs-sheet.is-page {
    position: fixed !important;
    inset: 0 !important;
    z-index: 33120 !important;
    pointer-events: auto !important;
    background: var(--bg, #0b1220);
    display: block !important;
  }
  #cs-sheet.is-page .cs-float,
  #cs-float.is-page {
    position: fixed !important;
    inset: 0 !important;
    left: 0 !important;
    top: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100vw !important;
    width: 100dvw !important;
    height: 100vh !important;
    height: 100dvh !important;
    min-width: 0 !important;
    min-height: 0 !important;
    max-width: none !important;
    max-height: none !important;
    transform: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    border: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    padding-bottom: env(safe-area-inset-bottom, 0);
    --cs-page-pad: clamp(10px, 3.2vw, 16px);
    --cs-page-fs: clamp(13px, 3.6vw, 15px);
    --cs-page-fs-sm: clamp(12px, 3.2vw, 13.5px);
  }
  #cs-sheet.is-page .pos-resize,
  #cs-sheet.is-page #cs-scale-up,
  #cs-sheet.is-page #cs-scale-down,
  #cs-float.is-page .pos-resize,
  #cs-float.is-page #cs-scale-up,
  #cs-float.is-page #cs-scale-down {
    display: none !important;
  }
  #cs-sheet.is-page .pos-float-head,
  #cs-float.is-page .pos-float-head {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 12px var(--cs-page-pad);
    padding-top: max(12px, env(safe-area-inset-top, 0px));
    cursor: default;
  }
  #cs-sheet.is-page .pos-float-head .chat-sheet-title-row,
  #cs-float.is-page .pos-float-head .chat-sheet-title-row {
    flex: 1;
    min-width: 0;
  }
  #cs-sheet.is-page .pos-float-head h3,
  #cs-float.is-page .pos-float-head h3,
  #ai-sheet.is-page .pos-float-head h3,
  #ai-float.is-page .pos-float-head h3 {
    font-size: clamp(15px, 4.2vw, 17px);
    font-weight: 800;
    margin: 0;
    flex: 1;
    min-width: 0;
  }
  /* 手机全屏：左侧返回箭头，隐藏右侧 × */
  .cs-page-back {
    display: none;
  }
  #cs-sheet.is-page .cs-page-back,
  #cs-float.is-page .cs-page-back {
    display: grid !important;
  }
  #cs-sheet.is-page .pos-float-tools .fee-x,
  #cs-float.is-page .pos-float-tools .fee-x {
    display: none !important;
  }
  #cs-sheet.is-page .fee-x,
  #cs-float.is-page .fee-x {
    width: 36px;
    height: 36px;
    font-size: 22px;
  }
  #cs-sheet.is-page .ai-float-body,
  #cs-float.is-page .ai-float-body {
    flex: 1 1 auto;
    min-height: 0;
  }
  #cs-sheet.is-page .ai-float-scroll,
  #cs-float.is-page .ai-float-scroll {
    padding: 8px var(--cs-page-pad) 12px;
    font-size: var(--cs-page-fs);
  }
  #cs-sheet.is-page .cs-faq-hi,
  #cs-float.is-page .cs-faq-hi {
    font-size: var(--cs-page-fs);
    line-height: 1.5;
  }
  #cs-sheet.is-page .cs-faq-item,
  #cs-float.is-page .cs-faq-item {
    font-size: var(--cs-page-fs-sm);
    padding: 8px 10px;
    border-radius: 10px;
    min-height: 36px;
  }
  #cs-sheet.is-page .ai-ask input,
  #cs-float.is-page .ai-ask input {
    padding: 9px 11px;
    font-size: 13px;
    border-radius: 10px;
  }
  #cs-sheet.is-page .ai-ask button,
  #cs-float.is-page .ai-ask button {
    padding: 0 13px;
    font-size: 13px;
    border-radius: 10px;
    min-height: 38px;
  }
  #cs-sheet.is-page .ai-chat-dock,
  #cs-float.is-page .ai-chat-dock {
    flex-shrink: 0;
    padding: 8px var(--cs-page-pad) calc(12px + env(safe-area-inset-bottom, 0px));
    background: var(--panel);
  }
  html[data-theme="dark"] #cs-sheet.is-page {
    background: var(--bg, #0b1220);
  }
  html[data-theme="dark"] #cs-sheet.is-page .cs-float,
  html[data-theme="dark"] #cs-float.is-page {
    background: var(--bg, #0b1220);
    box-shadow: none;
    border: 0;
  }
  html[data-theme="dark"] #cs-sheet.is-page .ai-chat-dock,
  html[data-theme="dark"] #cs-float.is-page .ai-chat-dock {
    background: var(--panel, #121a22);
  }
}

/* 手机端：AI 解读独立全屏页，顶栏返回箭头 */
@media (max-width: 899px) {
  body.ai-page-open,
  html.ai-page-open {
    overflow: hidden;
    overscroll-behavior: none;
  }
  body.ai-page-open .dock {
    visibility: hidden !important;
    pointer-events: none !important;
  }
  /* 盖住「更多」毛玻璃底，避免和整页叠层在滚动时狂闪 */
  body.ai-page-open #hold-more-sheet,
  body.ai-page-open #hold-more-sheet.on,
  body.ai-page-open #hold-more-sheet.fee-tip-modal.on,
  body.ai-page-open #hold-more-sheet.hold-more-sheet.on {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }
  body.ai-page-open .shell,
  body.ai-page-open .app {
    pointer-events: none;
  }
  #ai-sheet.on.is-page,
  #ai-sheet.is-page {
    position: fixed !important;
    inset: 0 !important;
    z-index: 33160 !important;
    pointer-events: auto !important;
    background: var(--bg, #0b1220);
    display: block !important;
    overflow: hidden;
  }
  body.hold-more-open #ai-sheet.is-page,
  body.hold-more-open #ai-sheet.on.is-page {
    z-index: 33160 !important;
  }
  #ai-sheet.is-page .ai-float,
  #ai-float.is-page {
    position: absolute !important;
    inset: 0 !important;
    left: 0 !important;
    top: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: auto !important;
    height: auto !important;
    min-width: 0 !important;
    min-height: 0 !important;
    max-width: none !important;
    max-height: none !important;
    transform: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    border: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    padding-bottom: 0;
    --ai-page-pad: clamp(10px, 3.2vw, 16px);
  }
  #ai-sheet.is-page #ai-scale-up,
  #ai-sheet.is-page #ai-scale-down,
  #ai-float.is-page #ai-scale-up,
  #ai-float.is-page #ai-scale-down,
  #ai-sheet.is-page .pos-resize {
    display: none !important;
  }
  #ai-sheet.is-page .pos-float-head,
  #ai-float.is-page .pos-float-head {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 12px var(--ai-page-pad);
    padding-top: max(12px, env(safe-area-inset-top, 0px));
    cursor: default;
  }
  #ai-sheet.is-page .pos-float-head .chat-sheet-title-row,
  #ai-float.is-page .pos-float-head .chat-sheet-title-row {
    flex: 1;
    min-width: 0;
  }
  #ai-sheet.is-page .pos-float-head h3,
  #ai-float.is-page .pos-float-head h3 {
    font-size: clamp(15px, 4.2vw, 17px);
    font-weight: 800;
    margin: 0;
    flex: 1;
    min-width: 0;
  }
  .ai-page-back {
    display: none;
  }
  #ai-sheet.is-page .ai-page-back,
  #ai-float.is-page .ai-page-back {
    display: grid !important;
  }
  #ai-sheet.is-page .pos-float-tools .fee-x,
  #ai-float.is-page .pos-float-tools .fee-x,
  #ai-sheet.is-page #ai-sheet-close {
    display: none !important;
  }
  #ai-sheet.is-page .ai-float-body,
  #ai-float.is-page .ai-float-body {
    flex: 1 1 auto;
    min-height: 0;
  }
  #ai-sheet.is-page .ai-float-scroll,
  #ai-float.is-page .ai-float-scroll {
    padding: 8px var(--ai-page-pad) 12px;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }
  #ai-sheet.is-page .ai-chat-dock,
  #ai-float.is-page .ai-chat-dock {
    padding: 8px var(--ai-page-pad) calc(12px + env(safe-area-inset-bottom, 0px));
  }
  html[data-theme="dark"] #ai-sheet.is-page {
    background: var(--bg, #0b1220);
  }
  html[data-theme="dark"] #ai-sheet.is-page .ai-float,
  html[data-theme="dark"] #ai-float.is-page {
    background: var(--bg, #0b1220);
    box-shadow: none;
    border: 0;
  }
  html[data-theme="dark"] #ai-sheet.is-page .ai-chat-dock,
  html[data-theme="dark"] #ai-float.is-page .ai-chat-dock {
    background: var(--panel, #121a22);
  }
}

.ai-summary {
  background: var(--panel-2);
  border-radius: 12px;
  padding: 12px;
  margin-bottom: 12px;
}
.ai-summary-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-top: 8px;
  min-height: 20px;
}
.ai-link {
  border: 0;
  background: transparent;
  color: var(--teal);
  font: inherit;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}
.ai-link:disabled { opacity: 0.5; cursor: wait; }
.ai-refresh-ico {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--teal);
  cursor: pointer;
}
.ai-refresh-ico:hover {
  background: rgba(0, 0, 0, 0.05);
}
.ai-refresh-ico:disabled {
  opacity: 0.45;
  cursor: wait;
}
.ai-refresh-ico.is-busy svg {
  animation: ai-refresh-spin 0.85s linear infinite;
}
@keyframes ai-refresh-spin {
  to { transform: rotate(360deg); }
}
.ai-bullets {
  margin: 0;
  padding-left: 1.1em;
  font-size: 13px;
  line-height: 1.55;
  color: var(--ink);
}
.ai-bullets li { margin-bottom: 6px; }
.ai-bullets li:last-child { margin-bottom: 0; }
.ai-hint {
  flex: 1;
  min-width: 0;
  margin: 0;
  font-size: 11px;
  color: var(--muted);
  line-height: 1.4;
}

.ai-chat-wrap {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.ai-chat {
  flex: 1;
  min-height: 140px;
  max-height: 240px;
  overflow: auto;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 4px 2px;
}
.ai-msg {
  max-width: 92%;
  padding: 10px 12px;
  border-radius: 12px;
  font-size: 13px;
  line-height: 1.5;
}
.ai-msg-plain {
  white-space: pre-wrap;
  word-break: break-word;
}
.ai-msg-md {
  word-break: break-word;
}
.ai-msg-md > p {
  margin: 0 0 0.7em;
}
.ai-msg-md > p:last-child {
  margin-bottom: 0;
}
.ai-msg-md .ai-md-h {
  margin: 0.9em 0 0.35em;
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--ink);
  line-height: 1.35;
}
.ai-msg-md .ai-md-h:first-child {
  margin-top: 0.15em;
}
.ai-msg-md h3.ai-md-h {
  font-size: 13px;
}
.ai-msg-md .ai-md-ul {
  margin: 0.15em 0 0.75em;
  padding: 0 0 0 1.15em;
  list-style: disc;
}
.ai-msg-md .ai-md-ul li {
  margin: 0.28em 0;
  padding-left: 0.1em;
}
.ai-msg-md .ai-md-ul li::marker {
  color: var(--muted, #6b7a86);
}
.ai-msg-md strong {
  font-weight: 700;
}
.ai-msg.user {
  align-self: flex-end;
  background: var(--chip-bg);
  color: var(--ink);
  border-bottom-right-radius: 4px;
}
.ai-msg.bot {
  align-self: flex-start;
  background: #eef2f5;
  color: var(--ink);
  border-bottom-left-radius: 4px;
}
.ai-msg.sys {
  align-self: stretch;
  background: transparent;
  color: var(--muted);
  padding: 4px 2px;
  font-size: 12px;
}
/* 客服 / AI 问答：回复前动态流水线（类 OKX 智能客服） */
.ai-msg-pipeline {
  align-self: stretch;
  max-width: 100%;
  background: transparent !important;
  padding: 6px 2px 8px;
  border-radius: 0;
}
.ai-pipeline-head {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}
.ai-pipeline-head .chat-sheet-head-brand.ai-pipeline-logo {
  width: 22px;
  height: 22px;
  flex-shrink: 0;
}
.ai-pipeline-head .chat-sheet-head-brand.ai-pipeline-logo img {
  width: 13px;
  height: 13px;
}
.ai-pipeline-phase {
  font-size: 13px;
  font-weight: 650;
  color: var(--ink);
  letter-spacing: 0.01em;
  animation: ai-pipe-phase-pulse 1.15s ease-in-out infinite;
}
@keyframes ai-pipe-phase-pulse {
  0%,
  100% {
    opacity: 1;
  }
  50% {
    opacity: 0.55;
  }
}
.ai-pipeline-query {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  margin: 6px 0 0 30px;
  font-size: 12px;
  line-height: 1.45;
  color: var(--muted);
  min-width: 0;
}
.ai-pipeline-query svg {
  flex-shrink: 0;
  margin-top: 1px;
  opacity: 0.72;
}
.ai-pipeline-query em {
  font-style: normal;
  font-weight: 600;
  color: var(--ink);
  word-break: break-word;
}
.ai-msg-typing .ai-msg-plain::after {
  content: "";
  display: inline-block;
  width: 2px;
  height: 1em;
  margin-left: 2px;
  vertical-align: text-bottom;
  background: var(--ink);
  opacity: 0.65;
  animation: ai-type-caret 0.85s step-end infinite;
}
@keyframes ai-type-caret {
  0%,
  100% {
    opacity: 0;
  }
  50% {
    opacity: 0.75;
  }
}

.ai-faq {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  margin-top: 2px;
  padding: 0 2px 4px;
}
.ai-faq-q {
  max-width: 92%;
  margin: 0;
  padding: 9px 12px;
  border: 1px solid var(--line);
  border-radius: 14px 14px 14px 4px;
  background: var(--chip-bg);
  color: var(--ink);
  font: inherit;
  font-size: 12.5px;
  font-weight: 650;
  line-height: 1.45;
  text-align: left;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.ai-faq-q:hover,
.ai-faq-q:focus-visible {
  background: rgba(0, 0, 0, 0.06);
  border-color: rgba(0, 0, 0, 0.22);
  outline: none;
}
.ai-faq-q:active {
  transform: translateY(0.5px);
}

.ai-chips {
  display: flex;
  flex-wrap: nowrap;
  gap: 4px;
  width: 100%;
}
.ai-chips button {
  flex: 1 1 0;
  min-width: 0;
  border: 1px solid var(--line);
  background: #fff;
  color: var(--ink);
  border-radius: 8px;
  padding: 5px 2px;
  font: inherit;
  font-size: 10px;
  font-weight: 600;
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  cursor: pointer;
  text-align: center;
}
.ai-chips button:hover {
  background: #15202b;
  color: #fff;
  border-color: transparent;
}

.ai-ask {
  display: flex;
  gap: 8px;
}
.ai-ask input {
  flex: 1;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 11px 12px;
  font: inherit;
  font-size: 14px;
  outline: none;
  background: #fff;
}
.ai-ask input:focus {
  border-color: var(--line);
}
.ai-ask button {
  border: 0;
  border-radius: 12px;
  padding: 0 16px;
  background: var(--teal);
  color: #fff;
  font: inherit;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
}
.ai-ask button:disabled {
  opacity: 0.55;
  cursor: wait;
}

@media (min-width: 900px) {
  .ai-float {
    width: min(420px, calc(100vw - 40px));
    height: min(560px, calc(100vh - 48px));
  }
}

.holding-title .hn,
.holding-title-row .hn {
  font-weight: 800;
  font-size: 16px;
  letter-spacing: 0.01em;
}
@media (max-width: 720px) {
  /* 手机：持仓卡标题约 14px（中英文） */
  .holding-title .hn,
  .holding-title-row .hn,
  .hn {
    font-size: 14px;
    letter-spacing: 0;
    line-height: 1.3;
  }
  /* 给右侧图标留位；标题文字单行省略，避免叠到齿轮/仓位钮 */
  .holding-title-row .hn {
    max-width: calc(100% - 118px);
    overflow: hidden;
  }
  .holding-title-row .hn-text {
    display: block;
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .holding:not(.is-custom-product):not([data-train="1"]):not([data-custom="1"]) .holding-title-row .hn {
    flex-wrap: nowrap;
  }
}
.holding-status {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  width: fit-content;
  max-width: 100%;
  margin-top: 4px;
  font-size: 12px;
  font-weight: 600;
  color: var(--muted);
}
.holding-status i {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--muted);
  flex-shrink: 0;
  margin: 0;
}
.holding-status.tone-ok i { background: var(--teal); }
.holding-status.tone-busy i {
  background: #d19a3a;
  box-shadow: 0 0 0 3px rgba(209, 154, 58, 0.18);
}
.holding-status.tone-warn i { background: var(--down); }
.holding-status.tone-done i { background: var(--teal); }
.holding-status-hit {
  appearance: none;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  width: fit-content;
  max-width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  font-weight: inherit;
  line-height: inherit;
  text-align: left;
  cursor: pointer;
  border-radius: 4px;
}
.holding-status-hit:focus-visible {
  outline: 2px solid rgba(0, 0, 0, 0.28);
  outline-offset: 2px;
}
html[data-theme="dark"] .holding-status-hit:focus-visible {
  outline-color: rgba(255, 255, 255, 0.35);
}
.holding-status-lab {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: min(100%, 52vw);
}
.holding-status.has-bubble {
  cursor: default;
}
.holding-status.has-bubble .holding-status-hit {
  cursor: pointer;
}
.holding-status-bubble {
  position: absolute;
  left: 0;
  top: calc(100% + 8px);
  z-index: var(--z-tip-fixed);
  width: max-content;
  max-width: min(300px, 86vw);
  padding: 8px 10px;
  border-radius: 10px;
  border: 1px solid rgba(21, 32, 43, 0.14);
  background: #111827;
  color: #f8fafc;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.45;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.22);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-4px);
  transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s;
  pointer-events: none;
}
.holding-status-bubble::before {
  content: "";
  position: absolute;
  left: 18px;
  top: -5px;
  width: 0;
  height: 0;
  background: none;
  border-style: solid;
  border-width: 0 6px 6px 6px;
  border-color: transparent transparent #111827 transparent;
  border-radius: 0;
  transform: none;
  pointer-events: none;
}
/* 可见性由 JS status-bubble-portal 控制 */

.holding-status-bubble.status-bubble-portal {
  position: fixed !important;
  z-index: var(--z-tip-fixed, 13250) !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transform: none !important;
}
@media (hover: none) {
  .holding-status.has-bubble .holding-status-hit { cursor: pointer; }
}

.holding-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.9fr);
  gap: 8px 18px;
  align-items: end;
  margin: 2px 0 0;
}
.holding-hero-col {
  min-width: 0;
}
.holding-hero-col:not(.holding-hero-mark) .holding-pnl-label {
  /* 文案不可点开明细，仅数字可点 */
  pointer-events: none;
  cursor: default;
}
.holding-hero-mark {
  text-align: right;
}
.holding-hero-mark.is-mark-static {
  cursor: default;
}
.holding-hero-mark.is-mark-static .holding-mark {
  cursor: default;
}
.holding-mark-hit {
  display: inline-block;
  max-width: 100%;
  margin: 0;
  padding: 2px 4px;
  border: 0;
  background: transparent;
  cursor: pointer;
  border-radius: 8px;
  -webkit-tap-highlight-color: transparent;
  text-align: right;
}
.holding-mark-hit:hover .holding-mark {
  filter: brightness(0.96);
}
.holding-mark-hit:focus-visible {
  outline: 2px solid rgba(0, 0, 0, 0.22);
  outline-offset: 2px;
}
.holding-hero-mark .holding-pnl-label {
  pointer-events: none;
}
.holding-pnl {
  display: inline-block;
  width: max-content;
  max-width: 100%;
  font-size: 32px;
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1.05;
  font-variant-numeric: tabular-nums;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  border-radius: 6px;
  user-select: none;
}
.holding-pnl:hover {
  filter: brightness(0.96);
}
.holding-pnl:focus-visible {
  outline: 2px solid rgba(0, 0, 0, 0.28);
  outline-offset: 2px;
}
.holding-pnl.up { color: var(--up); }
.holding-pnl.down { color: var(--down); }
.holding-mark {
  font-size: 24px;
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.05;
  font-variant-numeric: tabular-nums;
}
.holding-mark.is-up { color: var(--up); }
.holding-mark.is-down { color: var(--down); }
.holding-mark.tick-flat { color: var(--ink); }
.holding-mark.lean-long { color: var(--up); }
.holding-mark.lean-short { color: var(--down); }
.holding-mark.lean-flat { color: var(--ink); }
.holding-pnl-label {
  margin-top: 2px;
  margin-bottom: 2px;
  font-size: 12px;
  color: var(--muted);
  font-weight: 600;
}
.holding-pnl-sub {
  margin: 0 0 10px;
  font-size: 11px;
  font-weight: 600;
  color: var(--muted);
  font-variant-numeric: tabular-nums;
}
.holding-hero-mark .holding-pnl-label {
  margin-bottom: 10px;
}

.av {
  width: 40px; height: 40px; border-radius: 12px;
  display: grid; place-items: center;
  background: var(--chip-bg); color: var(--teal);
}
.av svg { width: 20px; height: 20px; }
.av.demo { background: #e8eef5; color: #3d5a80; }
.av.av-plain {
  background: transparent;
  box-shadow: none;
  border-radius: 0;
  color: var(--teal);
}
.av.av-plain svg { width: 26px; height: 26px; }

.hn { font-weight: 800; font-size: 15px; color: var(--ink); }
.hs { font-size: 12px; color: var(--muted); font-weight: 600; }

.holding-soft {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin: 16px 0 14px;
  font-size: 12px;
  color: var(--muted);
  font-weight: 600;
}

.folds { margin-top: 8px; display: grid; gap: 0; }
.folds:not(:has(*)) {
  margin-top: 0;
  display: none;
}
.fold {
  border-radius: 0;
  background: transparent;
  border-top: 1px solid var(--line);
  overflow: visible;
}
/* 持仓卡「明细」：无标题行/分割线/箭头；点浮动盈亏展开收起 */

.holding > .holding-detail-tail,
.holding-main > .holding-detail-tail {
  border-top: 0;
  margin: 0;
  position: relative;
  z-index: 0;
}
.holding > .holding-detail-tail:not([open]),
.holding-main > .holding-detail-tail:not([open]),
.holding-main .holding-detail-tail:not([open]) {
  display: none !important;
}
.holding > .holding-detail-tail[open] {
  background: var(--panel);
  border-radius: 0 0 16px 16px;
  padding: 4px 11px 8px;
  border: 1px solid var(--line);
  border-top: 0;
  box-shadow: var(--shadow);
  margin-top: 0;
}
.holding-main > .holding-detail-tail[open] {
  background: transparent;
  border-radius: 0;
  padding: 4px 0 8px;
  border: 0;
  border-top: 1px solid var(--line);
  box-shadow: none;
  margin-top: 8px;
}
.holding > .holding-detail-tail > summary,
.holding-main > .holding-detail-tail > summary,
.holding-main .holding-detail-tail > summary {
  display: none !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 0 !important;
  pointer-events: none !important;
}
.holding-detail-tail.fold-detail > summary::after {
  display: none !important;
  content: none !important;
}
/* 手机：点浮动盈亏 → 底部抽屉（明细节点挂到 #hold-detail-sheet） */

#hold-detail-sheet.fee-tip {
  z-index: var(--z-drawer-mobile, 12080);
}
/* 明细抽屉内挂 body 的气泡走 --z-tip-fixed(13050)，须高于本层 */
#hold-detail-sheet[hidden] {
  display: none !important;
}
#hold-detail-sheet.on {
  display: flex !important;
  align-items: flex-end !important;
  justify-content: stretch !important;
  place-items: unset !important;
  padding: 0 !important;
  box-sizing: border-box;
  pointer-events: auto;
}
#hold-detail-sheet .hold-detail-sheet-panel.fee-sheet {
  position: relative !important;
  left: auto !important;
  top: auto !important;
  transform: none !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  min-height: 0 !important;
  height: auto !important;
  margin: 0 !important;
  border-radius: 18px 18px 0 0 !important;
  border: 1px solid rgba(21, 32, 43, 0.08);
  border-bottom: 0;
  background: #f4f6f8 !important;
  box-shadow: 0 -12px 40px rgba(12, 20, 28, 0.22);
  padding: 6px 14px calc(14px + env(safe-area-inset-bottom, 0px));
  max-height: none;
  /* 手机：高度随内容，不在抽屉内二次滚动 */
  display: flex !important;
  flex-direction: column !important;
  overflow: visible !important;
  align-self: flex-end;
  touch-action: manipulation !important;
  animation: me-drawer-up 0.3s cubic-bezier(0.22, 1, 0.36, 1);
  box-sizing: border-box;
}
.hold-detail-grab {
  display: block;
  width: 36px;
  height: 4px;
  margin: 2px auto 10px;
  border-radius: 999px;
  background: rgba(21, 32, 43, 0.18);
  flex-shrink: 0;
}
.hold-detail-sheet-title {
  margin: 0 2px 10px;
  font-size: 15px;
  font-weight: 800;
  letter-spacing: 0.02em;
  color: var(--ink);
  flex-shrink: 0;
}
#hold-detail-sheet .hold-detail-sheet-host {
  flex: 0 0 auto;
  min-height: 0;
  min-width: 0;
  width: 100%;
  overflow: visible !important;
  touch-action: manipulation;
}
#hold-detail-sheet .fold-flow,
#hold-detail-sheet details[data-fold$="-flow"] {
  display: none !important;
}
#hold-detail-sheet .holding-detail-tail,
#hold-detail-sheet .holding-detail-tail[open] {
  display: block !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  position: relative;
  max-width: 100%;
  overflow-x: hidden !important;
}
#hold-detail-sheet .holding-detail-tail > summary {
  display: none !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 0 !important;
  pointer-events: none !important;
}
#hold-detail-sheet .holding-detail-tail .fold-body {
  padding: 0 2px 4px;
  max-width: 100%;
  overflow-x: hidden !important;
}
/* 流水行按钮：抽屉内禁止左右滑，改为换行铺满 */
#hold-detail-sheet .fold-flow-summary {
  flex-wrap: wrap;
  max-width: 100%;
}
#hold-detail-sheet .flow-inline-bar {
  overflow: hidden !important;
  overflow-x: hidden !important;
  max-width: 100%;
  flex-wrap: wrap;
  margin-right: 0;
}
#hold-detail-sheet .fold-body-flow,
#hold-detail-sheet .mini-list {
  overflow-x: hidden !important;
  max-width: 100%;
}
/* 手机盈亏明细抽屉：贴内容高度，禁止内层滚动与橡皮筋空滚 */
@media (max-width: 899px) {
  body.hold-detail-sheet-on {
    overflow: hidden;
  }
  body.hold-detail-sheet-on .app > .main,
  body.hold-detail-sheet-on #tab-home {
    overflow: hidden !important;
  }
  #hold-detail-sheet.fee-tip-modal.on {
    overflow: hidden !important;
    overscroll-behavior: none;
    touch-action: none;
  }
  #hold-detail-sheet.fee-tip-modal .hold-detail-sheet-panel.fee-sheet,
  #hold-detail-sheet .hold-detail-sheet-panel.fee-sheet {
    width: 100% !important;
    min-height: 0 !important;
    height: auto !important;
    max-height: calc(100dvh - env(safe-area-inset-top, 0px) - 8px) !important;
    overflow: visible !important;
    touch-action: manipulation !important;
    flex: 0 0 auto;
  }
  #hold-detail-sheet .hold-detail-sheet-host,
  #hold-detail-sheet .holding-detail-tail,
  #hold-detail-sheet .holding-detail-tail[open],
  #hold-detail-sheet .holding-detail-tail .fold-body,
  #hold-detail-sheet .fold-sec-rows {
    overflow: visible !important;
    max-height: none !important;
    -webkit-overflow-scrolling: auto;
  }
}
@media (min-width: 900px) {
  #hold-detail-sheet.on {
    display: none !important;
  }
}
.fold > summary {
  list-style: none;
  cursor: pointer;
  padding: 12px 0;
  font-size: 13px;
  font-weight: 700;
  color: var(--ink);
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 6px;
  -webkit-tap-highlight-color: transparent;
}
.fold > summary::-webkit-details-marker { display: none; }
.fold-sum-main {
  font-weight: 800;
  letter-spacing: 0.01em;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.fold-sync-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--ink);
  box-shadow: 0 0 0 0 rgba(43, 187, 138, 0.55);
  animation: fold-sync-pulse 1.1s ease-out infinite;
}
@keyframes fold-sync-pulse {
  0% { box-shadow: 0 0 0 0 rgba(43, 187, 138, 0.5); opacity: 1; }
  100% { box-shadow: 0 0 0 8px rgba(43, 187, 138, 0); opacity: 0.55; }
}
.fold-fee-sync small {
  margin-left: 6px;
  font-size: 11px;
  font-weight: 600;
  color: var(--muted);
}
.fold-sum-sub {
  margin-left: auto;
  margin-right: 2px;
  font-size: 11px;
  font-weight: 600;
  color: var(--muted);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 58%;
  text-align: right;
}
.fold > summary::after {
  content: "";
  width: 7px;
  height: 7px;
  margin-left: auto;
  border-right: 2px solid var(--muted);
  border-bottom: 2px solid var(--muted);
  /* 与雷达卡一致：收起 > ，展开 v */
  transform: rotate(-45deg);
  margin-top: 2px;
  transition: transform .15s ease;
  flex-shrink: 0;
}
.fold[open] > summary::after {
  transform: rotate(45deg);
  margin-top: -2px;
}
.fold[open] .fold-sum-sub { opacity: 0.55; }
.fold-body { padding: 0 0 6px; display: block; }
.fold-sec {
  margin: 0 0 14px;
  padding: 0;
  position: relative;
  z-index: 1;
}
.fold-sec:last-child { margin-bottom: 2px; }
.fold-sec:hover,
.fold-sec:focus-within { z-index: 6; }
.fold-body > .fold.fold-flow {
  margin: 4px 0 0;
  border-top: 1px solid var(--line);
}
.fold-flow > summary {
  padding: 12px 0 10px;
}
.fold-body-flow {
  padding: 0 0 4px;
}
.fold-sec-title {
  margin: 0 0 8px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--muted);
}
.fold-expo {
  display: none;
}
.fold-tug {
  position: relative;
  width: 100%;
  margin: 0 0 4px;
  padding-top: 0;
}
.fold-tug-bar-stage {
  position: relative;
  margin: 0 0 2px;
  padding-top: 0;
  overflow: visible;
}
.fold-tug-bar-wrap {
  position: relative;
  z-index: 8;
  padding-top: 34px;
  overflow: visible;
}
.fold-tug-head {
  position: relative;
  min-height: 0;
  margin: 0;
}
.fold-tug-float {
  margin: 0;
  gap: 4px 12px;
  align-items: end;
  min-height: 40px;
}
.fold-tug-float > div {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}
.fold-tug-float .fold-k {
  line-height: 1.1;
}
.fold-tug-float b {
  margin-top: 1px;
  font-size: 14px;
  line-height: 1.15;
}
.fold-tug-float .fold-k-right {
  text-align: right;
  align-items: flex-end;
}
.fold-tug-float .fold-k-right .fold-k {
  text-align: right;
}
.fold-tug-bar {
  display: flex;
  width: 100%;
  height: 10px;
  border-radius: 999px;
  overflow: hidden;
  background: var(--chip-bg);
}
.fold-tug-long,
.fold-tug-short {
  display: block;
  height: 100%;
  min-width: 0;
  transition: width 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}
.fold-tug-long { background: var(--up); }
.fold-tug-short { background: var(--down); }
/* 与 target-bubble 同结构：外壳定位，内层着色+箭头，夜间才看得见 */

.fold-tug-bubble {
  position: absolute;
  top: auto;
  bottom: calc(10px + 6px);
  left: var(--seam-pct, 50%);
  transform: translateX(-50%);
  z-index: 30;
  max-width: min(200px, 70vw);
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: inherit;
  display: inline-block;
  width: max-content;
  overflow: visible;
  pointer-events: none;
  --bubble-fill: #111827;
  --arrow-x: 50%;
  /* 阴影跟整块外形（框+箭头），不会在接缝处断一刀 */
  filter: drop-shadow(0 4px 10px rgba(17, 24, 39, 0.22));
  transition: left 0.45s cubic-bezier(0.4, 0, 0.2, 1), transform 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}
.fold-tug-bubble-txt {
  position: relative;
  display: block;
  z-index: 1;
  padding: 4px 9px 6px;
  border-radius: 8px;
  background: var(--bubble-fill, #111827);
  color: #f3f6f8;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
  box-shadow: none;
  overflow: visible;
  isolation: isolate;
}
/* 不再用 ::before 方块填缝（会与三角叠成「上下双箭头」菱形） */

.fold-tug-bubble-txt::before {
  content: none;
  display: none;
}
/* 唯一箭头：旋转方块，上半被气泡底色盖住，只露出朝下尖 */

.fold-tug-bubble-txt::after {
  content: "";
  position: absolute;
  left: var(--arrow-x, 50%);
  bottom: -5px;
  top: auto;
  width: 10px;
  height: 10px;
  margin: 0;
  background: var(--bubble-fill, #111827);
  border: 0;
  border-radius: 1px;
  box-shadow: none;
  transform: translateX(-50%) rotate(45deg);
  z-index: -1;
  pointer-events: none;
  transition: left 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}
.fold-tug-bubble.tone-long { --bubble-fill: var(--up); }
.fold-tug-bubble.tone-short { --bubble-fill: var(--down); }
.fold-tug-bubble.tone-flat { --bubble-fill: #111827; }
.fold-expo-labs {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  margin-top: 6px;
  font-variant-numeric: tabular-nums;
}
.fold-expo-stack {
  align-items: flex-start;
}
.expo-stack {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
}
.expo-stack.expo-short {
  align-items: flex-end;
  text-align: right;
}
.expo-stack .fold-k {
  font-size: 14px;
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: -0.02em;
  color: var(--muted);
}
.expo-stack .fold-k.fold-k-side {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 0;
  line-height: 0;
}
.expo-stack .fold-k-side .side-fish-ico {
  width: 18px;
  height: 18px;
  display: block;
  flex-shrink: 0;
}
.expo-stack .fold-k-side .fold-k-n {
  font-style: normal;
  font-size: 14px;
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: -0.02em;
  color: var(--muted);
  font-variant-numeric: tabular-nums;
}
.expo-stack.expo-long .fold-k-side {
  color: var(--up);
}
.expo-stack.expo-short .fold-k-side {
  color: var(--down);
}
.expo-stack.expo-short .fold-k-side {
  flex-direction: row-reverse;
}
.expo-stack b {
  margin-top: 1px;
  font-size: 14px;
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: -0.02em;
}
.expo-stack b.up {
  color: var(--up);
}
.expo-stack b.down {
  color: var(--down);
}
.fold-expo-labs .lab-long { color: var(--up); }
.fold-expo-labs .lab-short { color: var(--down); }
.fold-hint {
  display: none;
}
.fold-grid {
  display: grid;
  gap: 10px 12px;
}
.fold-grid-2 {
  grid-template-columns: 1fr 1fr;
}
.fold-grid > div { min-width: 0; }
.fold-k {
  display: block;
  font-size: 11px;
  font-weight: 600;
  color: var(--muted);
}
.fold-grid b {
  display: block;
  margin-top: 3px;
  font-size: 15px;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
  color: var(--ink);
}
.fold-grid b.up,
.fold-row b.up { color: var(--up); }
.fold-grid b.down,
.fold-row b.down { color: var(--down); }
.fold-lab {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.fold-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 9px 0;
  border-top: 1px solid var(--line);
}
.fold-sec-rows .fold-row:first-of-type {
  border-top: 0;
  padding-top: 2px;
}
.fold-row > span {
  min-width: 0;
  font-size: 12px;
  font-weight: 600;
  color: var(--muted);
}
.fold-row b {
  margin-top: 0;
  text-align: right;
  font-size: 14px;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  color: var(--ink);
}
.fold-ref {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px 10px;
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px dashed #e8eef2;
  align-items: stretch;
}
.fold-ref-item {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
  height: 100%;
}
.fold-ref-item > b,
.fold-ref-item > .fold-ref-fills-hit {
  margin-top: auto;
}
.fold-ref-item .fold-lab {
  font-size: 11px;
  font-weight: 600;
  color: var(--muted);
}
.fold-ref-item .fold-lab-txt {
  letter-spacing: 0.02em;
}
.fold-ref-item b {
  font-size: 13px;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  color: var(--ink);
  line-height: 1.2;
  min-height: 1.2em;
}
.fold-ref-item b.up { color: var(--up); }
.fold-ref-item b.down { color: var(--down); }
.fold-ref-fills-hit {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  font-size: 13px;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  color: var(--ink);
  line-height: 1.2;
  min-height: 1.2em;
  text-align: left;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.fold-ref-fills-hit:hover,
.fold-ref-fills-hit:focus-visible {
  color: var(--teal, #0d9488);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.fold-ref-item-fills .fold-ref-fills-hit small {
  margin-left: 2px;
  font-size: 10px;
  font-weight: 700;
  color: var(--muted);
}
.fold-ref.is-idle .fold-ref-item .fold-ref-fills-hit {
  color: #9aadb8;
}
.fold-ref-item b small {
  margin-left: 2px;
  font-size: 10px;
  font-weight: 700;
  color: var(--muted);
}
.fold-ref.is-idle .fold-ref-item b {
  color: #9aadb8;
}
.fold-ref.is-idle .fold-ref-item b.up,
.fold-ref.is-idle .fold-ref-item b.down {
  color: #9aadb8;
}
.fold-foot-meta {
  margin: 8px 0 0;
  font-size: 11px;
  font-weight: 600;
  color: var(--muted);
  line-height: 1.4;
  font-variant-numeric: tabular-nums;
}
@media (max-width: 520px) {
  .fold-ref {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 380px) {
  .fold-ref {
    gap: 8px 6px;
  }
  .fold-ref-item b {
    font-size: 12px;
  }
}
.fold-q {
  position: relative;
  font-style: normal;
  cursor: help;
}
.fold-q:hover,
.fold-q:focus-visible {
  outline: none;
}
.fold-tip {
  position: absolute;
  /* 略向左移，仍主要在白卡片内；宽度固定约 200 */
  left: -28px;
  top: calc(100% + 8px);
  bottom: auto;
  transform: none;
  z-index: var(--z-tip-fixed);
  width: 200px;
  max-width: min(200px, 82vw);
  padding: 9px 12px 11px;
  border-radius: 8px;
  background: #000;
  color: #e8eef2;
  font-size: 11px;
  font-weight: 600;
  font-style: normal;
  line-height: 1.45;
  text-align: left;
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.35);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.12s ease;
  overflow: visible;
}
.fold-tip.fold-tip-portal {
  position: fixed !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto;
  /* 必须带 fallback：无变量时 !important+invalid var 会把 z-index 打成 auto，沉到杠杆层下 */
  z-index: var(--z-tip-fixed, 13250) !important;
  /* 由 JS 写 left（左缘），勿 translate 居中，否则贴边步骤会裁切 */
  transform: none !important;
  left: auto;
  right: auto;
  max-width: min(300px, calc(100vw - 20px)) !important;
  box-sizing: border-box;
}
/* 杠杆说明：挂 body 后仍须压过 #lever-pop */
body > .fold-tip.fold-tip-lever.fold-tip-portal {
  z-index: var(--z-tip-fixed, 13250) !important;
  width: min(280px, calc(100vw - 20px)) !important;
  max-width: min(280px, calc(100vw - 20px)) !important;
}
.fold-tip.fold-tip-portal::after {
  left: var(--arrow-x, 50%) !important;
  right: auto !important;
  margin-left: 0 !important;
  top: -5px !important;
  bottom: auto !important;
  width: 0 !important;
  height: 0 !important;
  background: none !important;
  border-style: solid !important;
  border-width: 0 6px 6px 6px !important;
  border-color: transparent transparent #000 transparent !important;
  border-radius: 0 !important;
  transform: translateX(-50%) !important;
  box-shadow: none !important;
  pointer-events: none;
}
.fold-tip.fold-tip-portal.is-above::after {
  top: auto !important;
  bottom: -5px !important;
  border-width: 6px 6px 0 6px !important;
  border-color: #000 transparent transparent transparent !important;
  transform: translateX(-50%) !important;
}
.fold-tip::after {
  content: "";
  position: absolute;
  top: -5px;
  left: 34px;
  width: 0;
  height: 0;
  margin-left: 0;
  background: none;
  border-style: solid;
  border-width: 0 6px 6px 6px;
  border-color: transparent transparent #000 transparent;
  border-radius: 0;
  transform: none;
  pointer-events: none;
}
/* fold 帮助气泡：由 JS .fold-tip-portal 控制 */

.fold-tip.fold-tip-fee {
  left: 0;
  width: min(248px, 86vw);
  max-width: min(248px, 86vw);
  padding: 10px 12px 12px;
  z-index: var(--z-tip-fixed);
}
.fold-tip.fold-tip-fee::after {
  left: 18px;
}
.fold-ref-item:last-child .fold-tip.fold-tip-fee {
  left: auto;
  right: 0;
}
.fold-ref-item:last-child .fold-tip.fold-tip-fee::after {
  left: auto;
  right: 14px;
}
.fold-tip-lead {
  margin: 0 0 8px;
  color: #b8c5d0;
  font-weight: 500;
  line-height: 1.4;
}
.fold-tip-rows {
  display: grid;
  gap: 5px;
  margin: 0 0 8px;
}
.fold-tip-rows--pro {
  gap: 6px;
  margin: 0;
}
.fold-tip-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  margin: 0 0 2px;
  padding-bottom: 6px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
.fold-tip-head em {
  font-style: normal;
  font-size: 12px;
  font-weight: 800;
  color: #f3f6f8;
  letter-spacing: 0.02em;
}
.fold-tip-head span {
  font-size: 10px;
  font-weight: 650;
  color: var(--muted);
  white-space: nowrap;
}
.fold-tip-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 10px;
  font-variant-numeric: tabular-nums;
}
.fold-tip-row span {
  color: #c5d0d8;
  font-weight: 600;
}
.fold-tip-row b {
  color: #f3f6f8;
  font-weight: 800;
  white-space: nowrap;
}
.fold-tip-duo b {
  display: inline-flex;
  align-items: baseline;
  gap: 4px;
  font-weight: 750;
}
.fold-tip-duo .tip-l {
  font-style: normal;
  color: var(--up, #0f7a6a);
}
.fold-tip-duo .tip-s {
  font-style: normal;
  color: var(--down, #c0392b);
}
.fold-tip-duo .tip-sep {
  font-style: normal;
  color: rgba(255, 255, 255, 0.28);
  font-weight: 600;
}
.fold-tip-row.up-row b,
.fold-tip-row.up b {
  color: var(--up, #0f7a6a);
}
.fold-tip-row.down-row b,
.fold-tip-row.down b {
  color: var(--down, #c0392b);
}
.fold-tip-row-sub span {
  color: var(--muted);
  font-weight: 600;
  font-size: 10px;
}
.fold-tip-row-sub b {
  font-size: 10px;
}
.fold-tip-row-sum {
  margin-top: 2px;
  padding-top: 6px;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}
/* 标题已有底部分割线：紧随其后的汇总行勿再画顶线，避免「空两根线」假缺口 */

.fold-tip-head + .fold-tip-row-sum {
  margin-top: 0;
  padding-top: 0;
  border-top: none;
}
.fold-tip-row-sum span {
  color: #e8eef3;
  font-weight: 700;
}
.fold-tip-row-sum b {
  font-weight: 800;
  font-size: 12px;
}
.fold-tip-note {
  margin: 0;
  padding-top: 8px;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  color: var(--muted);
  font-size: 10px;
  font-weight: 500;
  line-height: 1.4;
}
.fold-tip-sec {
  margin: 8px 0 2px;
  padding-top: 8px;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  color: #9ad9c8;
  font-size: 10px;
  font-weight: 750;
  letter-spacing: 0.04em;
  line-height: 1.3;
  text-transform: none;
}
.fold-tip-rows--pro .fold-tip-sec {
  color: #a8b4c0;
  font-weight: 700;
  letter-spacing: 0.06em;
}
/* 对冲单边落袋 · 滚动进度（与持仓卡/博弈条同风格） */


.lh-cycle-progress {
  margin: 8px 0 12px;
  padding: 0;
  background: transparent;
  position: relative;
  /* 高于下方流水条，避免字样被盖住点不到 */
  z-index: 4;
}
/* tip 展开时抬高整段进度条层叠，避免被下方「流水」按钮盖住 */

.lh-cycle-progress:has(.lh-stepper-lab-tip[data-tip-pinned="1"]) {
  z-index: 80;
}
.holding:has(.lh-stepper-lab-tip[data-tip-pinned="1"]) .flow-inline-bar,
.holding:has(.lh-stepper-lab-tip[data-tip-pinned="1"]) .flow-detail-btn {
  z-index: 0;
}
.lh-cycle-progress-muted .lh-prog-caption {
  display: block;
  margin: 4px 0 0;
  font-size: 12px;
  font-weight: 600;
  color: var(--muted);
}
.lh-prog-head {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 8px;
}
.lh-prog-title {
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.01em;
  color: var(--ink);
}
.lh-prog-title-wrap {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-width: 0;
}
.lh-prog-title-wrap .fold-q {
  flex-shrink: 0;
}
.fold-tip.fold-tip-lh {
  left: -4px;
  width: min(300px, 90vw);
  max-width: min(300px, 90vw);
  z-index: var(--z-tip-fixed);
  isolation: isolate;
}
.fold-tip.fold-tip-lh::after {
  left: 14px;
}
/* lh 步骤气泡：由 JS .fold-tip-portal 控制 */

.lh-prog-meta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  flex-shrink: 0;
}
.lh-prog-step {
  font-size: 11px;
  font-weight: 700;
  color: var(--teal);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.lh-prog-step.muted {
  color: var(--muted);
}
/* 六步铆点 · 全宽进度条 */


.lh-stepper {
  --lh-overall: 0;
  width: 100%;
}
.lh-stepper-track-wrap {
  position: relative;
  width: 100%;
  padding-bottom: 22px;
}
.lh-stepper-bar {
  position: relative;
  width: 100%;
  height: 10px;
  border-radius: 999px;
  background: color-mix(in srgb, #8c8c8c 26%, #fff);
  overflow: hidden;
}
.lh-stepper-bar-fill {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: calc(var(--lh-overall, 0) * 1%);
  max-width: 100%;
  border-radius: 999px;
  background: var(--up);
  transition: width 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}
.lh-stepper-steps {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
  pointer-events: none;
  z-index: 2;
}
.lh-stepper-step {
  position: absolute;
  top: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  transform: translate(-50%, -50%);
  min-width: 0;
  pointer-events: none; /* 圆点不抢事件；标签单独 auto */
}
.lh-stepper-step:nth-child(1) {
  left: 0;
  transform: translate(0, -50%);
  align-items: flex-start;
}
.lh-stepper-step:nth-child(2) { left: 20%; }
.lh-stepper-step:nth-child(3) { left: 40%; }
.lh-stepper-step:nth-child(4) { left: 60%; }
.lh-stepper-step:nth-child(5) { left: 80%; }
.lh-stepper-step:nth-child(6) {
  left: 100%;
  transform: translate(-100%, -50%);
  align-items: flex-end;
}
/* 四步：左右均分 0% / ⅓ / ⅔ / 100% */

.lh-stepper--four .lh-stepper-step:nth-child(2) {
  left: 33.333%;
}
.lh-stepper--four .lh-stepper-step:nth-child(3) {
  left: 66.667%;
}
.lh-stepper--four .lh-stepper-step:nth-child(4) {
  left: 100%;
  transform: translate(-100%, -50%);
  align-items: flex-end;
}
.lh-stepper--four .lh-stepper-step:nth-child(4) .lh-stepper-lab {
  left: auto;
  right: 0;
  transform: none;
  text-align: right;
}
.lh-stepper--four .lh-stepper-step:nth-child(4) .lh-stepper-lab-tip .fold-tip.fold-tip-lh {
  left: auto;
  right: 0;
  transform: none;
}
.lh-stepper--four .lh-stepper-step:nth-child(4) .lh-stepper-lab-tip .fold-tip.fold-tip-lh::after {
  left: auto;
  right: 14px;
}
.lh-stepper--four .lh-stepper-step:nth-child(3) .lh-stepper-lab-tip .fold-tip.fold-tip-lh {
  left: 50%;
  transform: translateX(-50%);
}
.lh-stepper--four .lh-stepper-step:nth-child(3) .lh-stepper-lab-tip .fold-tip.fold-tip-lh::after {
  left: 50%;
  margin-left: -4px;
}
.lh-stepper-dot {
  display: block;
  flex-shrink: 0;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: #fff;
  border: 2.5px solid color-mix(in srgb, #8c8c8c 40%, #fff);
  box-sizing: border-box;
  box-shadow: 0 0 0 2px #fff;
  transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}
.lh-stepper-step.is-done .lh-stepper-dot {
  background: var(--up);
  border-color: var(--up);
  box-shadow: 0 0 0 2px #fff;
}
.lh-stepper-step.is-active .lh-stepper-dot {
  background: #fff;
  border-color: var(--up);
  border-width: 3px;
  width: 13px;
  height: 13px;
  box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.08);
}
.lh-stepper-lab {
  position: absolute;
  top: calc(100% + 10px);
  left: 50%;
  transform: translateX(-50%);
  font-size: 11px;
  font-weight: 600;
  color: var(--muted);
  text-align: center;
  white-space: nowrap;
  line-height: 1.2;
}
.lh-stepper-step:nth-child(1) .lh-stepper-lab {
  left: 0;
  transform: none;
  text-align: left;
}
.lh-stepper-step:nth-child(6) .lh-stepper-lab {
  left: auto;
  right: 0;
  transform: none;
  text-align: right;
}
.lh-stepper-step.is-done .lh-stepper-lab {
  color: var(--teal);
  font-weight: 700;
}
.lh-stepper-step.is-active .lh-stepper-lab {
  color: var(--ink);
  font-weight: 800;
}
.lh-stepper-lab-tip {
  cursor: pointer;
  pointer-events: auto;
  z-index: 6;
  /* 扩大可点区域，避免字太小点不中 */
  padding: 6px 4px;
  margin: -6px -4px;
}
.lh-stepper-lab-tip:focus-visible {
  outline: none;
}
/* lh 步骤气泡可见性：JS .fold-tip-portal */

.lh-stepper-step:nth-child(1) .lh-stepper-lab-tip .fold-tip.fold-tip-lh {
  left: 0;
}
.lh-stepper-step:nth-child(1) .lh-stepper-lab-tip .fold-tip.fold-tip-lh::after {
  left: 14px;
}
.lh-stepper-step:nth-child(2) .lh-stepper-lab-tip .fold-tip.fold-tip-lh,
.lh-stepper-step:nth-child(3) .lh-stepper-lab-tip .fold-tip.fold-tip-lh {
  left: 50%;
  transform: translateX(-50%);
}
.lh-stepper-step:nth-child(2) .lh-stepper-lab-tip .fold-tip.fold-tip-lh::after,
.lh-stepper-step:nth-child(3) .lh-stepper-lab-tip .fold-tip.fold-tip-lh::after {
  left: 50%;
  margin-left: -4px;
}
.lh-stepper-step:nth-child(5) .lh-stepper-lab-tip .fold-tip.fold-tip-lh {
  left: auto;
  right: 0;
  transform: none;
}
.lh-stepper-step:nth-child(5) .lh-stepper-lab-tip .fold-tip.fold-tip-lh::after {
  left: auto;
  right: 14px;
}
.lh-stepper-step:nth-child(6) .lh-stepper-lab-tip .fold-tip.fold-tip-lh {
  left: auto;
  right: 0;
  transform: none;
}
.lh-stepper-step:nth-child(6) .lh-stepper-lab-tip .fold-tip.fold-tip-lh::after {
  left: auto;
  right: 14px;
}
.lh-stepper-step:nth-child(4) .lh-stepper-lab-tip .fold-tip.fold-tip-lh {
  left: 50%;
  transform: translateX(-50%);
}
.lh-stepper-step:nth-child(4) .lh-stepper-lab-tip .fold-tip.fold-tip-lh::after {
  left: 50%;
  margin-left: -4px;
  right: auto;
}
@media (min-width: 720px) {
  .lh-stepper-bar { height: 11px; }
  .lh-stepper-steps { height: 11px; }
}
.lh-prog-caption {
  display: none;
}
.lh-plan-tag {
  font-size: 10px;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 999px;
  background: #eef2f5;
  color: var(--muted);
  white-space: nowrap;
}
.lh-plan-tag.done {
  background: var(--chip-bg);
  color: var(--teal);
}
.lh-plan-note {
  margin-top: 4px;
  padding-top: 8px;
  border-top: 1px dashed #e8eef2;
  font-size: 11px;
  font-weight: 600;
  color: var(--muted);
  line-height: 1.45;
}
.lh-plan-note.warn { color: var(--warn); }
.lh-flow-chip {
  display: inline-flex;
  align-items: center;
  font-size: 10px;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 999px;
  white-space: nowrap;
  border: 1px solid var(--line);
  background: var(--chip-bg);
  color: var(--teal);
}
.lh-flow-chip.tone-muted {
  border-color: #e8eef2;
  background: var(--panel-2);
  color: var(--muted);
}
.lh-flow-chip.tone-ready {
  border-color: var(--line);
  background: var(--chip-bg);
  color: var(--teal);
}

.fold-tip-fee-recent {
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px dashed rgba(255, 255, 255, 0.12);
}
.fold-tip-fee-h {
  margin: 0 0 6px;
  font-size: 10px;
  font-weight: 700;
  color: #c5d0d8;
  letter-spacing: 0.02em;
}
.fold-sec-rows .fold-row:first-child {
  position: relative;
  z-index: 2;
}
.fold-sec-rows .fold-row:first-child:focus-within {
  z-index: 8;
}
.mini-list {
  display: grid;
  gap: 0;
  max-height: 320px;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}
.mini-row {
  display: grid;
  grid-template-columns: 158px minmax(0, 1fr) auto;
  gap: 8px;
  align-items: baseline;
  font-size: 12px;
  padding: 9px 0;
  border-top: 1px solid var(--line);
}
.mini-row:first-child { border-top: 0; }
.mini-row .t {
  color: var(--muted);
  font-variant-numeric: tabular-nums;
  font-size: 11px;
  white-space: nowrap;
  line-height: 1.25;
  align-self: start;
}
.flow-clock {
  display: inline-flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: baseline;
  gap: 6px;
  white-space: nowrap;
}
.flow-clock-d,
.flow-clock-t {
  display: inline;
  white-space: nowrap;
}
.flow-clock-t {
  opacity: 0.92;
}
.mini-row .m { font-weight: 600; color: var(--ink); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mini-row .r { font-weight: 800; font-variant-numeric: tabular-nums; }
.mini-row .r.up { color: var(--up); }
.mini-row .r.down { color: var(--down); }
.mini-row .r.muted { color: var(--muted); font-weight: 600; }
.flow-sum {
  font-size: 11px;
  color: var(--muted);
  padding: 0 0 10px;
  border-bottom: 1px solid var(--line);
  margin-bottom: 4px;
  line-height: 1.5;
}
.flow-sum b { color: var(--ink); font-weight: 800; }
.flow-sum b.down { color: var(--down); }
.flow-cycle {
  border-top: 1px solid var(--line);
  padding: 6px 0;
}
.flow-cycle:first-of-type { border-top: 0; }
.flow-cycle-sum {
  display: grid;
  grid-template-columns: 158px auto minmax(0, 1fr);
  gap: 6px;
  align-items: baseline;
  font-size: 12px;
  cursor: pointer;
  list-style: none;
}
.flow-cycle-sum .t {
  font-size: 11px;
  white-space: nowrap;
  line-height: 1.25;
  align-self: start;
}
.flow-cycle-sum::-webkit-details-marker { display: none; }
.flow-cycle-body {
  margin: 4px 0 2px 158px;
  padding-left: 8px;
  border-left: 2px solid #e8edf2;
}
.mini-row.fill-sub {
  grid-template-columns: 158px minmax(0, 1fr) auto;
  padding: 5px 0;
  font-size: 11px;
  border-top: 1px dashed #eef2f6;
}
.mini-row.fill-sub:first-child { border-top: 0; }
.mini-row.fill-loose { opacity: 0.92; }
.flow-tag {
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.02em;
  padding: 1px 5px;
  border-radius: 4px;
  white-space: nowrap;
}
.flow-tag.tag-ok { background: #e8f8ef; color: #0d7a45; }
.flow-tag.tag-warn { background: #fff4e5; color: #b45309; }
.flow-tag.tag-bad { background: #fdecec; color: #d4535c; }
.flow-tag.tag-muted { background: #f1f5f8; color: var(--muted); }
.fold-pnl-breakdown {
  margin: -2px 0 8px;
  padding: 0 2px;
  font-size: 10px;
  font-weight: 600;
  color: var(--muted);
  line-height: 1.35;
}
.fold-pnl-breakdown.warn { color: var(--warn); }
.fold-flow-summary {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
  flex-wrap: nowrap;
  list-style: none;
}
.fold-flow-summary .fold-sum-main {
  line-height: 24px;
}
.fold-flow-summary::-webkit-details-marker { display: none; }
.fold-flow-summary::after {
  align-self: center;
  flex-shrink: 0;
}
.flow-inline-bar {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  margin-left: auto;
  margin-right: 6px;
  flex-shrink: 1;
  position: relative;
  z-index: 2;
  pointer-events: auto;
  max-width: calc(100% - 3.5em);
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.flow-inline-bar::-webkit-scrollbar {
  display: none;
}
.flow-view-toggle {
  display: inline-flex;
  align-items: center;
  gap: 0;
  padding: 3px;
  border-radius: 10px;
  background: var(--chip-bg, rgba(15, 24, 32, 0.08));
  box-sizing: border-box;
  flex-shrink: 0;
}
.flow-view-btn {
  border: 0;
  background: transparent;
  color: var(--muted, #5c6b76);
  font: inherit;
  font-size: 11px;
  font-weight: 700;
  padding: 5px 10px;
  border-radius: 8px;
  cursor: pointer;
  line-height: 1.2;
  white-space: nowrap;
}
.flow-view-btn.on {
  background: #fff;
  color: var(--ink, #15202b);
  box-shadow: 0 1px 2px rgba(15, 24, 32, 0.08);
}
/* 明细抽屉内：轨道始终可见（暗底用浅灰轨） */
#hold-detail-sheet .flow-view-toggle {
  background: var(--chip-bg, #e8ecf0);
  padding: 3px;
  border-radius: 10px;
}
#hold-detail-sheet .flow-view-btn {
  padding: 5px 10px;
  border-radius: 8px;
}
.flow-kpi-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  padding: 8px 16px 0;
  font-size: 11px;
  font-weight: 600;
  color: var(--muted, #667788);
}
.flow-kpi-strip b {
  font-weight: 800;
  font-variant-numeric: tabular-nums;
}
.flow-kpi-strip .up { color: #10b981; }
.flow-kpi-strip .down { color: #e11d48; }
.flow-inline-stats {
  font-size: 10px;
  font-weight: 600;
  color: var(--muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: min(52vw, 220px);
}
.flow-filter-select {
  flex: 0 0 auto;
  /* 正好容纳约 3 个汉字 + 下拉箭头，避免忽宽忽窄 */
  width: calc(3.05em + 20px);
  min-width: calc(3.05em + 20px);
  max-width: calc(3.05em + 20px);
  height: 24px;
  padding: 0 18px 0 6px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%23667788' d='M1 1l4 4 4-4'/%3E%3C/svg%3E") no-repeat right 6px center;
  font-size: 11px !important;
  font-weight: 700;
  line-height: 22px;
  color: var(--ink);
  appearance: none;
  -webkit-appearance: none;
  box-sizing: border-box;
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
  outline: none;
  box-shadow: none;
  -webkit-tap-highlight-color: transparent;
}
/* 关掉系统焦点光晕：下拉关闭后 select 仍 :focus，夜间会剩一圈灰框 */

.flow-filter-select:focus,
.flow-filter-select:focus-visible,
.flow-filter-select:active {
  outline: none !important;
  box-shadow: none !important;
  border-color: var(--line);
}
.flow-detail-btn {
  flex: 0 0 auto;
  height: 24px;
  padding: 0 8px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  font-size: 11px;
  font-weight: 700;
  line-height: 22px;
  color: var(--ink);
  cursor: pointer;
  appearance: none;
  position: relative;
  z-index: 3;
  pointer-events: auto;
}
.flow-detail-btn .flow-lab-short {
  display: none;
}
@media (max-width: 899px) {
  /* 手机：明细抽屉/持仓卡都不展示成交流水（梯队事件列表除外） */
  .fold-flow:not(.fold-ladder-events) {
    display: none !important;
  }
}
.flow-detail-btn:hover {
  background: #f8fafc;
  border-color: #c5d0db;
}
.flow-detail-sheet .flow-detail-card {
  width: min(1280px, calc(100vw - 20px));
  max-width: min(1280px, calc(100vw - 20px));
  max-height: min(88vh, 720px);
  display: flex;
  flex-direction: column;
}
.fee-tip-modal.flow-detail-sheet .fee-sheet.flow-detail-card {
  width: min(1280px, calc(100vw - 20px));
  max-width: min(1280px, calc(100vw - 20px));
}
.fee-tip-modal.flow-detail-sheet.is-empty .fee-sheet.flow-detail-card,
.flow-detail-sheet .flow-detail-card.is-empty {
  width: auto;
  max-width: min(520px, calc(100vw - 32px));
  min-width: min(300px, calc(100vw - 32px));
}
.flow-detail-sheet.is-empty .flow-detail-body {
  padding: 4px 16px 18px;
}
.flow-detail-sheet.is-empty .flow-detail-body .mini-empty {
  padding: 28px 8px;
  text-align: center;
}
.flow-detail-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--line);
}
.flow-detail-head-wrap {
  flex: 1 1 auto;
  min-width: 0;
}
.flow-detail-head-row {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 12px;
  flex-wrap: wrap;
}
.flow-detail-head-row h3 {
  margin: 0;
  font-size: 16px;
  flex: 0 0 auto;
}
.flow-detail-head-actions {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
  justify-content: flex-end;
  min-width: 0;
}
.flow-detail-head h3 {
  margin: 0;
  font-size: 16px;
}
.flow-detail-sub {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
  font-size: 11px;
  color: var(--muted);
  font-weight: 600;
  line-height: 1.35;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.flow-detail-filter-lab {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  font-weight: 700;
  color: var(--muted);
  flex: 0 0 auto;
}
.flow-detail-export-btn {
  flex: 0 0 auto;
}
.flow-detail-head-actions .flow-filter-select,
.flow-detail-head-actions .flow-detail-export-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  height: 28px;
  padding: 0 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  font-size: 11px;
  font-weight: 700;
  color: var(--ink);
  line-height: 1;
  cursor: pointer;
}
.flow-detail-head-actions .flow-filter-select {
  max-width: none;
  min-width: 88px;
  padding: 0 24px 0 10px;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%23667788' d='M1 1l4 4 4-4'/%3E%3C/svg%3E") no-repeat right 8px center;
  appearance: none;
}
.flow-detail-head-actions .flow-detail-export-btn:hover {
  background: #f8fafc;
  border-color: #c5d0db;
}
.flow-detail-head .book-day-x {
  flex: 0 0 auto;
  margin-top: 0;
}
.flow-detail-stats {
  margin: 0;
  padding: 0 16px 8px;
  font-size: 11px;
  font-weight: 600;
  color: var(--muted);
}
.flow-detail-body {
  flex: 1 1 auto;
  overflow-x: auto;
  overflow-y: auto;
  padding: 0 12px 14px;
}
.flow-detail-table-wrap {
  overflow: visible;
  min-width: 1080px;
}
.flow-detail-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 11px;
  table-layout: fixed;
}
.flow-detail-table th,
.flow-detail-table td {
  padding: 6px 4px;
  border-bottom: 1px solid var(--line);
  text-align: left;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
/* 层级 / 方向：完整显示，不省略 */

.flow-detail-table th:nth-child(2),
.flow-detail-table td:nth-child(2),
.flow-detail-table th:nth-child(4),
.flow-detail-table td:nth-child(4) {
  overflow: visible;
  text-overflow: clip;
}
.flow-detail-table th:nth-child(1),
.flow-detail-table td:nth-child(1) { width: 9.5%; min-width: 120px; }
.flow-detail-table th:nth-child(2),
.flow-detail-table td:nth-child(2) { width: 9%; min-width: 92px; }
.flow-detail-table th:nth-child(3),
.flow-detail-table td:nth-child(3) { width: 6.5%; min-width: 64px; }
.flow-detail-table th:nth-child(4),
.flow-detail-table td:nth-child(4) { width: 9.5%; min-width: 96px; }
.flow-detail-table th:nth-child(5),
.flow-detail-table td:nth-child(5) { width: 6.5%; }
.flow-detail-table th:nth-child(6),
.flow-detail-table td:nth-child(6) { width: 6%; }
.flow-detail-table th:nth-child(7),
.flow-detail-table td:nth-child(7) { width: 5%; }
.flow-detail-table th:nth-child(8),
.flow-detail-table td:nth-child(8) { width: 5%; }
.flow-detail-table th:nth-child(9),
.flow-detail-table td:nth-child(9) { width: 6%; }
.flow-detail-table th:nth-child(10),
.flow-detail-table td:nth-child(10) { width: 6%; }
.flow-detail-table th:nth-child(11),
.flow-detail-table td:nth-child(11) { width: 7%; }
.flow-detail-table th:nth-child(12),
.flow-detail-table td:nth-child(12) { width: 7%; }
.flow-detail-table th:nth-child(13),
.flow-detail-table td:nth-child(13) { width: 7%; }
.flow-detail-table th {
  position: sticky;
  top: 0;
  background: #f8fafb;
  font-weight: 800;
  color: var(--muted);
  z-index: 1;
}
.flow-detail-table td.mono {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10px;
}
.flow-detail-table tr.flow-row-anomaly td {
  background: rgba(220, 72, 62, 0.09);
}
.flow-detail-table tr.flow-row-anomaly:hover td {
  background: rgba(220, 72, 62, 0.14);
}
.flow-detail-table tr.flow-detail-group-head td,
.flow-detail-table tr.flow-detail-group-leg td,
.flow-detail-table tr.flow-detail-group-single td {
  border-left: none;
}
.flow-detail-table tr.flow-detail-group-head td:first-child,
.flow-detail-table tr.flow-detail-group-leg td:first-child,
.flow-detail-table tr.flow-detail-group-single td:first-child {
  box-shadow: inset 3px 0 0 var(--flow-group-accent, #c5d0db);
}
.flow-detail-table tr.flow-group-pair.flow-detail-group-head td {
  background: rgba(13, 122, 69, 0.08);
}
.flow-detail-table tr.flow-group-pair.flow-detail-group-leg td {
  background: rgba(13, 122, 69, 0.04);
}
.flow-detail-table tr.flow-group-pair td:first-child {
  --flow-group-accent: #0d7a45;
}
.flow-detail-table tr.flow-group-loose.flow-detail-group-single td,
.flow-detail-table tr.flow-group-loose.flow-detail-group-head td {
  background: rgba(180, 83, 9, 0.07);
}
.flow-detail-table tr.flow-group-loose td:first-child {
  --flow-group-accent: #b45309;
}
.flow-detail-table tr.flow-group-warn td {
  background: rgba(220, 72, 62, 0.07);
}
.flow-detail-table tr.flow-group-warn td:first-child {
  --flow-group-accent: #dc483e;
}
.flow-detail-table tr.flow-group-thin.flow-detail-group-head td {
  background: rgba(192, 57, 43, 0.06);
}
.flow-detail-table tr.flow-group-thin td:first-child {
  --flow-group-accent: #d4535c;
}
.flow-detail-table tr.flow-detail-group-last td {
  border-bottom: 1px solid #d5dee6;
}
.flow-detail-indent {
  display: inline-block;
  padding-left: 6px;
  color: var(--muted);
  font-weight: 700;
}
.flow-detail-subcell {
  color: var(--muted);
}
.flow-detail-legs {
  display: inline-block;
  margin-left: 4px;
  font-size: 9px;
  font-weight: 800;
  color: var(--muted);
  vertical-align: middle;
}
.flow-detail-table .flow-pnl-num {
  font-weight: 800;
  font-variant-numeric: tabular-nums;
}
.flow-detail-table .flow-pnl-num.up { color: #10b981; }
.flow-detail-table .flow-pnl-num.down { color: #e11d48; }
.flow-detail-table .flow-pnl-num.flat { color: var(--muted); }
.flow-detail-table .flow-tag {
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.02em;
  padding: 1px 5px;
  border-radius: 4px;
  white-space: nowrap;
}
.flow-more-hint {
  margin-top: 8px;
  padding: 8px 6px 4px;
  font-size: 11px;
  font-weight: 600;
  color: var(--muted);
  text-align: center;
  border-top: 1px dashed #d8e2e8;
}
.flow-more-hint .flow-more-btn {
  margin-left: 4px;
  padding: 2px 8px;
  font-size: 10px;
  vertical-align: baseline;
}
.mini-row.fill-loose {
  grid-template-columns: 158px auto minmax(0, 1fr) auto;
  gap: 6px;
}
.mini-row.fill-loose .t {
  font-size: 11px;
}
.mini-row.fill-loose .flow-tag {
  align-self: center;
}
.mini-empty {
  display: grid;
  justify-items: center;
  gap: 4px;
  padding: 16px 8px 10px;
  text-align: center;
  font-size: 12px;
  color: var(--muted);
}
.fold-empty-ico {
  width: 36px;
  height: 36px;
  margin-bottom: 4px;
  border-radius: 10px;
  border: 1.5px dashed #c5d0d8;
  background:
    linear-gradient(#c5d0d8, #c5d0d8) 10px 14px / 16px 2px no-repeat,
    linear-gradient(#c5d0d8, #c5d0d8) 10px 20px / 12px 2px no-repeat;
}
.mini-empty strong {
  font-size: 13px;
  font-weight: 700;
  color: var(--ink);
}
.mini-empty span {
  font-size: 11px;
  font-weight: 600;
  color: var(--muted);
}

@media (min-width: 720px) {
  .fold-sum-sub { max-width: 70%; font-size: 12px; }
  .fold-grid-snap {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 24px;
    max-width: none;
  }
  .fold-tug-float.fold-grid-snap {
    gap: 4px 24px;
  }
  .fold-tug-float b { font-size: 15px; }
  .fold-tug-head { min-height: 42px; margin-bottom: 3px; }
  .fold-grid b { font-size: 16px; }
  .fold-row b { font-size: 15px; }
  .mini-list { max-height: 240px; }
  .fold-tug-bar { height: 11px; }
  .target-bar { height: 11px; }
}

.target {
  margin: 4px 0 0;
  min-width: 0;
  max-width: 100%;
}
.holding-exposure {
  position: relative;
  z-index: 8;
  margin: 8px 0 12px;
  overflow: visible;
}
.holding-exposure .fold-tug {
  margin: 0;
}
.holding-exposure .fold-expo-labs {
  margin-top: 4px;
}
.target-track {
  position: relative;
  z-index: 6;
  margin: 0 0 8px;
}
.target-bar-wrap {
  position: relative;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  padding-top: 0;
  overflow: visible;
}
.target-bar-stage {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding-top: 0;
}
.target-bar-track {
  position: relative;
  flex: 1;
  min-width: 0;
  padding-top: 32px;
  display: block;
  overflow: visible;
}
.target-bubble-anchor {
  position: absolute;
  top: -3px;
  left: var(--pointer-pct, 50%);
  transform: translateX(-50%);
  z-index: 30;
  max-width: none;
  overflow: visible;
  transition: left 0.45s cubic-bezier(0.4, 0, 0.2, 1), transform 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}
.target-bar-lane {
  display: flex;
  align-items: flex-end;
  gap: 10px;
  margin-top: 0;
}
.target-bar-track .target-bar {
  width: 100%;
}
.target-end {
  flex: 0 0 auto;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  font: inherit;
  font-size: 14px;
  font-weight: 800;
  line-height: 1;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
  white-space: nowrap;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  transition: opacity 0.15s ease;
}
.target-end-loss {
  color: var(--down);
}
.target-end-gain {
  color: var(--up);
}
.target-end:hover {
  opacity: 0.82;
}
.target-end:focus-visible {
  outline: 2px solid rgba(0,0,0,0.2);
  outline-offset: 2px;
  border-radius: 4px;
}
.target-end-loss.is-hit,
.target-end-gain.is-hit {
  opacity: 1;
}
.target-bubble {
  position: relative;
  top: auto;
  bottom: auto;
  left: auto;
  z-index: 30;
  display: inline-block;
  width: max-content;
  max-width: min(200px, 100%);
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  font: inherit;
  font-variant-numeric: tabular-nums;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  text-align: center;
  --arrow-x: 50%;
  --bubble-fill: #111827;
  filter: drop-shadow(0 4px 10px rgba(17, 24, 39, 0.22));
  transition: transform 0.12s ease;
}
.target-bubble:hover {
  transform: translateY(-1px);
  filter: drop-shadow(0 6px 14px rgba(17, 24, 39, 0.28));
}
.target-bubble:hover .target-bubble-txt {
  box-shadow: none;
}
.target-bubble:focus-visible {
  outline: none;
}
.target-bubble:focus-visible .target-bubble-txt {
  outline: 2px solid rgba(0,0,0,0.2);
  outline-offset: 2px;
}
.target-bubble-txt {
  position: relative;
  display: block;
  padding: 4px 8px 6px;
  border-radius: 8px;
  background: var(--bubble-fill);
  color: #f3f6f8;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
  box-shadow: none;
  overflow: visible;
  isolation: isolate;
}
.target-bubble-txt::before {
  content: none;
  display: none;
}
.target-bubble-txt::after {
  content: "";
  position: absolute;
  left: var(--arrow-x, 50%);
  bottom: -5px;
  top: auto;
  width: 10px;
  height: 10px;
  margin: 0;
  background: var(--bubble-fill, #111827);
  border: 0;
  border-radius: 1px;
  box-shadow: none;
  transform: translateX(-50%) rotate(45deg);
  z-index: -1;
  pointer-events: none;
  transition: left 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}
.target-bubble.tone-up { --bubble-fill: var(--up); }
.target-bubble.tone-down { --bubble-fill: var(--down); }
.target-bubble.tone-flat { --bubble-fill: #111827; }
.target-bubble.tone-done { --bubble-fill: var(--up); }
.target-bar {
  display: flex;
  width: 100%;
  height: 10px;
  border-radius: 999px;
  background: color-mix(in srgb, #8c8c8c 26%, #fff);
  overflow: hidden;
  position: relative;
}
.target-zero {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 2px;
  margin-left: -1px;
  background: #c5d0d8;
  border-radius: 1px;
  z-index: 1;
  pointer-events: none;
  transition: left 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}
.target-fill {
  position: absolute;
  top: 0;
  height: 100%;
  min-width: 0;
  transition: left 0.45s cubic-bezier(0.4, 0, 0.2, 1), width 0.45s cubic-bezier(0.4, 0, 0.2, 1);
  z-index: 2;
  pointer-events: none;
}
.target-fill-loss {
  background: var(--down);
}
.target-fill-gain {
  background: var(--up);
}
.target-fill.has-fill {
  min-width: 2px;
}
.target-fill,
.target-zero {
  display: block;
}
.target-bar.breached .target-fill-loss {
  background: var(--down);
}
.target-bar.done .target-fill-gain {
  background: var(--up);
}
.target-edit-btn {
  flex-shrink: 0;
  border: 1px solid #d5e0e8;
  background: #fff;
  border-radius: 8px;
  padding: 5px 10px;
  font: inherit;
  font-size: 11px;
  font-weight: 800;
  color: var(--ink);
  cursor: pointer;
  text-decoration: none;
  line-height: 1.1;
  min-width: 2.6em;
  text-align: center;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}
.target-edit-btn:hover {
  color: var(--teal);
  border-color: var(--teal);
}
.target-dual-sec {
  margin: 0 0 18px;
  padding: 0;
}
.target-dual-sec:last-child {
  margin-bottom: 0;
}
.target-sheet-leg .target-dual-sec-solo {
  margin-bottom: 0;
}
.target-sheet-leg .fee-head .ui-help-tip {
  left: -6px;
  top: calc(100% + 8px);
  width: min(260px, 72vw);
  max-width: min(260px, 72vw);
  z-index: 30;
}
.target-dual-head {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  margin-bottom: 10px;
}
.target-dual-title {
  margin: 0;
  font-size: 13px;
  font-weight: 800;
  color: var(--ink);
  letter-spacing: -0.01em;
}
.target-dual-title .ui-help-lab {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font: inherit;
  color: inherit;
}
.target-dual-head .ui-help-wrap {
  margin: 0;
  position: relative;
  z-index: 2;
}
.target-dual-head .ui-help-q.on {
  z-index: 3;
}
.target-dual-head .ui-help-tip {
  top: calc(100% + 8px);
  bottom: auto;
  left: 0;
  right: auto;
  transform: none;
  z-index: 90;
  width: min(260px, calc(100vw - 56px));
}
.target-dual-head .ui-help-tip::before {
  top: -6px;
  bottom: auto;
  left: 14px;
  right: auto;
  margin-left: 0;
  transform: none;
  border-width: 0 6px 6px 6px;
  border-color: transparent transparent #000 transparent;
}
.size-rules-btn {
  margin-left: 8px;
  font-weight: 700;
  font-size: 12px;
  color: var(--muted);
}
.size-rules-grid {
  display: grid;
  gap: 10px;
  margin-top: 12px;
}
.size-rules-grid label {
  display: grid;
  gap: 4px;
  font-size: 12px;
  color: var(--muted);
  font-weight: 600;
}
.size-rules-grid input[type="number"] {
  border: 1px solid #e2e8ee;
  border-radius: 10px;
  padding: 10px 12px;
  font-size: 14px;
  font-weight: 700;
  color: var(--ink);
}
.size-rules-check {
  display: flex !important;
  align-items: center;
  gap: 8px;
  flex-direction: row !important;
}
.size-rules-check input {
  width: 16px;
  height: 16px;
}

.edge-rules-sec {
  margin: 14px 0 6px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--muted, #64748b);
}
.edge-rules-unit {
  font-weight: 500;
  color: var(--muted2, var(--muted));
}
/* —— 价差区间双端滑杆 —— */


.gap-range-sec {
  position: relative;
  margin: 0 0 22px;
}
.gap-range-sec:last-child {
  margin-bottom: 6px;
}
.gap-range-sec:has(.ui-help-q.on) {
  z-index: 12;
}
.gap-range-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 10px 16px;
  margin-bottom: 12px;
  flex-wrap: wrap;
  position: relative;
  z-index: 4;
}
.gap-range-title {
  margin: 0;
  font-size: 13px;
  font-weight: 700;
  color: var(--ink);
  line-height: 1.35;
}
.gap-range-title .ui-help-lab {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font: inherit;
  color: inherit;
}
.gap-range-title .ui-help-wrap {
  margin: 0;
  position: relative;
  z-index: 2;
}
.gap-range-sec[data-gap-id="open"] .ui-help-tip {
  top: auto;
  bottom: calc(100% + 8px);
  left: 0;
  right: auto;
  transform: none;
  z-index: 100;
}
.gap-range-sec[data-gap-id="open"] .ui-help-tip::before {
  top: auto;
  bottom: -6px;
  left: 14px;
  right: auto;
  margin-left: 0;
  transform: none;

  border-width: 6px 6px 0 6px;
  border-color: #000 transparent transparent transparent;
}
.gap-range-sec[data-gap-id="close"] .ui-help-tip,
.gap-range-sec[data-gap-id="base-edge"] .ui-help-tip {
  top: calc(100% + 8px);
  left: 0;
  right: auto;
  transform: none;
  z-index: 100;
}
.gap-range-sec[data-gap-id="close"] .ui-help-tip::before,
.gap-range-sec[data-gap-id="base-edge"] .ui-help-tip::before {
  top: -6px;
  bottom: auto;
  left: 14px;
  right: auto;
  margin-left: 0;
  transform: none;

  border-width: 0 6px 6px 6px;
  border-color: transparent transparent #000 transparent;
}
.gap-range-wrap {
  position: relative;
  z-index: 1;
  /* 两端留足滑点半径，避免 min=0 时被裁掉白点 */
  padding: 6px 18px 0;
  box-sizing: border-box;
  overflow: visible;
}
.gap-range-val {
  display: flex;
  align-items: baseline;
  gap: 6px;
  font-size: 12px;
  font-weight: 600;
  color: var(--muted);
  white-space: nowrap;
}
.gap-range-val b {
  font-size: 16px;
  font-weight: 800;
  color: var(--teal);
  font-variant-numeric: tabular-nums;
}
.gap-range-sep {
  color: var(--muted2, var(--muted));
}
.gap-range-wrap.is-locked {
  opacity: 0.55;
  pointer-events: none;
}
.gap-range-track {
  position: relative;
  height: 28px;
}
/* 与「双平正差目标」同系细杆（略细以区分双端区间） */

.gap-range-track::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  height: 4px;
  border-radius: 999px;
  background: var(--chip-bg);
}
.gap-range-fill {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  height: 4px;
  border-radius: 999px;
  background: var(--chip-hover);
  pointer-events: none;
  z-index: 1;
}
/* 可视滑点：最低白灰边；最高=双平正差同款「白底+青绿边」 */

.gap-range-knob {
  position: absolute;
  top: 50%;
  width: 22px;
  height: 22px;
  margin: -11px 0 0 -11px;
  border-radius: 50%;
  box-sizing: border-box;
  pointer-events: none;
  z-index: 5;
}
.gap-range-knob-lo {
  background: #fff;
  border: 2px solid #64748b;
  box-shadow: 0 2px 8px rgba(21, 32, 43, 0.18);
  z-index: 7;
}
.gap-range-knob-hi {
  background: #fff;
  border: 2px solid var(--ink);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  z-index: 6;
}
.gap-range-wrap.is-tight .gap-range-knob-lo {
  transform: translateX(-7px);
}
.gap-range-wrap.is-tight .gap-range-knob-hi {
  transform: translateX(7px);
}
.gap-range-inp {
  position: absolute;
  left: 0;
  width: 100%;
  top: 0;
  margin: 0;
  height: 28px;
  background: transparent;
  pointer-events: none;
  -webkit-appearance: none;
  appearance: none;
  z-index: 2;
}
.gap-range-inp.gap-range-lo {
  z-index: 3;
}
.gap-range-inp.gap-range-hi {
  z-index: 4;
}
.gap-range-inp::-webkit-slider-runnable-track {
  height: 8px;
  background: transparent;
  border: none;
}
.gap-range-inp::-moz-range-track {
  height: 8px;
  background: transparent;
  border: none;
}
/* 原生 thumb 透明：只作拖拽热区，外观交给 .gap-range-knob */

.gap-range-inp::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  pointer-events: auto;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: transparent;
  border: none;
  box-shadow: none;
  cursor: grab;
  margin-top: -10px;
  position: relative;
  z-index: 5;
  opacity: 0.01;
}
.gap-range-inp::-moz-range-thumb {
  pointer-events: auto;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: transparent;
  border: none;
  box-shadow: none;
  cursor: grab;
  opacity: 0.01;
}
.gap-range-marks {
  display: flex;
  justify-content: space-between;
  margin-top: 8px;
  font-size: 11px;
  font-weight: 700;
  color: var(--muted);
  font-variant-numeric: tabular-nums;
}
.gap-range-hint {
  margin: 6px 0 0;
  font-size: 11px;
  font-weight: 600;
  color: var(--muted2, var(--muted));
  line-height: 1.35;
}
/* —— 仓位规则：预设下拉 + 规模滑杆 —— */


.size-preset-field {
  display: block;
  margin: 0 0 18px;
}
.size-preset-lab {
  display: block;
  margin: 0 0 6px;
  font-size: 12px;
  font-weight: 700;
  color: var(--muted);
}
.size-preset-select {
  width: 100%;
  box-sizing: border-box;
  margin: 0;
  padding: 10px 36px 10px 12px;
  border: 1px solid var(--line, #e2e8f0);
  border-radius: 10px;
  background: #fff;
  font: inherit;
  font-size: 14px;
  font-weight: 700;
  color: var(--ink);
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%237a919c' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  cursor: pointer;
  transition: border-color 0.15s, box-shadow 0.15s;
}
.size-preset-select:focus {
  outline: none;
  border-color: var(--line);
  box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.08);
}
.size-preset-select:disabled {
  opacity: 0.55;
  cursor: not-allowed;
  background-color: #f6f8fa;
}
.size-slider-sec {
  margin: 0 0 20px;
}
.size-slider-sec:last-of-type {
  margin-bottom: 8px;
}
.size-slider-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 10px 16px;
  margin-bottom: 10px;
  flex-wrap: wrap;
}
.size-slider-title {
  margin: 0;
  font-size: 13px;
  font-weight: 700;
  color: var(--ink);
  line-height: 1.35;
}
.size-slider-title .ui-help-lab {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font: inherit;
  color: inherit;
}
.size-slider-title .ui-help-wrap {
  margin: 0;
  position: relative;
  z-index: 2;
}
.size-slider-title .ui-help-tip {
  left: 0;
  right: auto;
  transform: none;
}
.size-slider-title .ui-help-tip::before {
  left: 14px;
  margin-left: 0;
}
.size-slider-sec:has(.ui-help-q.on) {
  position: relative;
  z-index: 12;
}
.size-slider-val {
  display: flex;
  align-items: baseline;
  gap: 3px;
  white-space: nowrap;
}
.size-slider-val b {
  font-size: 18px;
  font-weight: 800;
  color: var(--teal);
  font-variant-numeric: tabular-nums;
}
.size-slider-val span {
  font-size: 12px;
  font-weight: 700;
  color: var(--muted);
}
.size-slider-wrap.is-locked {
  opacity: 0.55;
  pointer-events: none;
}
/* 与底仓偏离同系：细轨 + 自定义滑点中心对齐；原生 thumb 仅作热区 */

.size-slider-wrap {
  padding: 0 11px;
  box-sizing: border-box;
}
.size-slider-track {
  position: relative;
  height: 28px;
}
.size-slider-track::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  height: 4px;
  border-radius: 999px;
  background: var(--chip-bg);
}
.size-slider-knob {
  position: absolute;
  top: 50%;
  left: 0;
  width: 22px;
  height: 22px;
  margin: -11px 0 0 -11px;
  border-radius: 50%;
  background: #fff;
  border: 2px solid var(--ink);
  box-sizing: border-box;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  pointer-events: none;
  z-index: 5;
}
.size-slider-wrap .target-range {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 28px;
  margin: 0;
  background: transparent !important;
  z-index: 2;
}
.size-slider-wrap .target-range::-webkit-slider-runnable-track {
  height: 4px;
  background: transparent !important;
  border: none;
}
.size-slider-wrap .target-range::-moz-range-track {
  height: 4px;
  background: transparent !important;
  border: none;
}
.size-slider-wrap .target-range::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 28px;
  height: 28px;
  margin-top: -12px;
  border-radius: 50%;
  background: transparent;
  border: none;
  box-shadow: none;
  opacity: 0.01;
  cursor: grab;
}
.size-slider-wrap .target-range::-moz-range-thumb {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: transparent;
  border: none;
  box-shadow: none;
  opacity: 0.01;
  cursor: grab;
}

.ladder-adv {
  margin-top: 4px;
  margin-bottom: 8px;
}
.ladder-adv[open] .ladder-sec {
  padding-bottom: 8px;
}
.ladder-sec {
  padding-top: 4px;
}
.ladder-sec.is-off .ladder-sliders {
  opacity: 0.45;
  pointer-events: none;
}
.ladder-toggle-row {
  margin-bottom: 12px;
}
.ladder-sliders .size-slider-sec:last-of-type {
  margin-bottom: 4px;
}

.fold-ladder summary {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 6px;
}
.fold-ladder.is-alert > summary .fold-sum-main {
  color: #b45309;
}
.ladder-sum-sub.is-warn {
  color: #b45309;
  font-weight: 700;
}
.ladder-fold-body {
  padding-bottom: 4px;
}
.fold-row-ladder-act {
  align-items: center;
}
.fold-row-ladder-act .ladder-act-btns {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  justify-content: flex-end;
}
.fold-body-compact {
  padding-top: 0;
}
.fold-ladder-rungs,
.fold-ladder-events {
  margin-top: 4px;
}
.ladder-band-bar {
  margin: 0 0 4px;
}
.ladder-band-head {
  padding-top: 2px;
  padding-bottom: 6px;
  border-top: 0;
}
.fold-sec-rows > .ladder-band-bar:first-child .ladder-band-head {
  padding-top: 2px;
}
.ladder-band-val {
  font-size: 14px;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  text-align: right;
}
.ladder-band-val small {
  margin-left: 1px;
  font-size: 11px;
  font-weight: 700;
  color: var(--muted);
}
.ladder-band-idle-txt {
  font-size: 13px;
  font-weight: 700;
  color: var(--muted);
}
.ladder-band-wrap {
  padding-bottom: 6px;
}
.ladder-band-track {
  height: 8px;
  border-radius: 999px;
  overflow: hidden;
  background: #eef2f5;
}
.ladder-band-close {
  display: block;
  height: 100%;
  float: left;
  background: var(--teal);
  transition: width 0.35s ease;
}
.ladder-band-open {
  display: block;
  height: 100%;
  float: left;
  background: rgba(0, 168, 150, 0.28);
  transition: width 0.35s ease;
}
.ladder-band-bar.is-idle .ladder-band-track {
  background: var(--panel-2);
}
.ladder-band-bar.is-idle .ladder-band-close,
.ladder-band-bar.is-idle .ladder-band-open {
  opacity: 0.35;
}
.ladder-fill-wrap {
  position: relative;
}
.ladder-fill-track {
  height: 8px;
  border-radius: 999px;
  background: #eef2f5;
  overflow: hidden;
}
.ladder-fill-bar {
  display: block;
  height: 100%;
  background: var(--teal);
  border-radius: 999px;
  transition: width 0.35s ease;
}
.ladder-band-bar.is-idle .ladder-fill-bar {
  width: 0 !important;
}
.fold-ref-item-act .fold-ref-act {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.ladder-day-check-btn {
  padding: 3px 9px;
  font-size: 11px;
  font-weight: 700;
  border-radius: 8px;
  line-height: 1.2;
  flex-shrink: 0;
}
.ladder-day-check-btn:hover:not(:disabled) {
  background: #f8fafb;
  box-shadow: inset 0 0 0 1px var(--ink);
}
.ladder-board-meta-compact {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 10px;
  font-size: 12px;
  color: var(--muted);
}
.ladder-stat-line {
  font-size: 12px;
  color: var(--muted);
  line-height: 1.5;
}
.ladder-stat-line b {
  color: var(--ink);
  font-weight: 800;
}
.ladder-meta-sep {
  margin: 0 6px;
  opacity: 0.45;
}
.ladder-action-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}
.ladder-action-row .btn-xs {
  font-size: 11px;
  padding: 4px 10px;
}
.ladder-empty-inline {
  margin: 0 0 10px;
  font-size: 12px;
  color: var(--muted);
  text-align: center;
  padding: 10px 0;
}
.ladder-health-row-compact {
  margin-bottom: 0;
}
.ladder-sum-pill {
  font-size: 11px;
  font-weight: 700;
  color: var(--teal);
  background: rgba(0, 168, 150, 0.1);
  padding: 2px 8px;
  border-radius: 999px;
  white-space: nowrap;
}
.ladder-board-meta {
  display: flex;
  gap: 16px;
  font-size: 12px;
  color: var(--muted);
  margin-bottom: 10px;
}
.ladder-board-meta b {
  color: var(--ink);
  font-weight: 800;
}
.ladder-board-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
}
.ladder-board-table th,
.ladder-board-table td {
  padding: 6px 4px;
  text-align: left;
  border-bottom: 1px solid var(--line);
}
.ladder-board-table th {
  color: var(--muted);
  font-weight: 600;
}
.ladder-empty {
  color: var(--muted);
  text-align: center;
}
.fleet-cmd-phase.is-ladder {
  background: rgba(0, 168, 150, 0.14);
  color: var(--teal);
}
.fleet-cmd-phase.is-idle {
  background: rgba(100, 116, 139, 0.12);
  color: #64748b;
}
.fleet-cmd-ladder {
  color: var(--teal);
  font-weight: 700;
}
.ladder-relay-pill {
  font-size: 11px;
  font-weight: 700;
  color: var(--teal);
  background: rgba(0, 168, 150, 0.12);
  padding: 2px 8px;
  border-radius: 999px;
}
.ladder-halt-pill {
  font-size: 11px;
  font-weight: 700;
  color: #b45309;
  background: rgba(180, 83, 9, 0.12);
  padding: 2px 8px;
  border-radius: 999px;
}
.ladder-halt-pill.is-leg {
  color: #b91c1c;
  background: rgba(185, 28, 28, 0.12);
}
.ladder-partial-pill {
  font-size: 11px;
  font-weight: 650;
  color: #a16207;
  background: rgba(161, 98, 7, 0.1);
  padding: 2px 8px;
  border-radius: 999px;
}
.ladder-parity-sec h4 {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.ladder-parity-sec h4 small {
  font-weight: 550;
  color: var(--muted, #889);
}
.fleet-cmd-drift-halt {
  color: #b45309;
  font-weight: 700;
}
.ladder-drift-clear-btn {
  margin-left: 6px;
  padding: 2px 8px;
  font-size: 11px;
  font-weight: 600;
  color: #b45309;
  background: rgba(180, 83, 9, 0.08);
  border: 1px solid rgba(180, 83, 9, 0.35);
  border-radius: 6px;
  cursor: pointer;
}
.ladder-drift-clear-btn:hover:not(:disabled) {
  background: rgba(180, 83, 9, 0.16);
}
.ladder-drift-clear-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.ladder-board-meta .ladder-drift-clear-btn {
  margin-left: 0;
}
.ladder-pnl-sub {
  display: block;
  font-size: 10px;
  color: var(--muted);
  font-weight: 500;
}
.ladder-hist-row td {
  opacity: 0.88;
}
.ladder-timeline {
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px solid var(--line);
}
.ladder-tl-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  flex-wrap: wrap;
  font-size: 11px;
  font-weight: 700;
  color: var(--muted);
  margin-bottom: 6px;
}
.tl-filter-bar {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 4px;
}
.tl-filter-btn {
  border: 1px solid var(--line);
  background: #fff;
  color: var(--muted);
  font-size: 10px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 999px;
  cursor: pointer;
}
.tl-filter-btn.on {
  border-color: rgba(0, 168, 150, 0.35);
  background: rgba(0, 168, 150, 0.1);
  color: var(--teal);
}
.tl-export-btn {
  border: 1px solid var(--line);
  background: #fff;
  color: var(--ink);
  font-size: 10px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 999px;
  cursor: pointer;
  margin-left: 2px;
}
.tl-export-btn:hover {
  border-color: rgba(0, 168, 150, 0.35);
  color: var(--teal);
}
.ladder-tl-item {
  display: grid;
  grid-template-columns: 52px auto 1fr;
  gap: 6px 8px;
  font-size: 11px;
  padding: 4px 0;
  border-bottom: 1px solid var(--line);
}
.ladder-tl-code {
  font-size: 9px;
  font-weight: 700;
  color: var(--muted);
  white-space: nowrap;
}
.ladder-tl-list {
  list-style: none;
  margin: 0;
  padding: 0;
  max-height: 140px;
  overflow-y: auto;
}

.ladder-tl-item.is-warn .ladder-tl-msg {
  color: #b45309;
}
.ladder-tl-time {
  color: var(--muted);
  font-variant-numeric: tabular-nums;
}
.ladder-tl-msg {
  color: var(--ink);
  line-height: 1.35;
}
.ladder-tl-empty {
  font-size: 11px;
  color: var(--muted);
  padding: 4px 0;
}
.fleet-cmd-tl-kind.is-ladder {
  color: var(--teal);
}
/* ── 编队梯子运维（7×24 专业级 UI） ── */


.fleet-ladder-ops {
  margin: 0 0 12px;
  border: 1px solid #d8e8e4;
  border-radius: 12px;
  background: linear-gradient(180deg, #f8fcfb 0%, #fff 100%);
  overflow: hidden;
}
.fleet-ladder-ops-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  padding: 10px 12px;
  cursor: pointer;
}
.fleet-ladder-ops-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-weight: 700;
  font-size: 13px;
}
.ladder-pro-score {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 999px;
  background: #fff3e0;
  color: #b45309;
  font-size: 11px;
  font-weight: 700;
}
.fleet-ladder-ops-metrics {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  font-size: 12px;
  color: var(--muted);
  flex: 1;
}
.fleet-ladder-ops-metrics b {
  color: var(--ink);
}
.fleet-ladder-ops-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}
.fleet-ladder-ops-actions .ladder-pro-link {
  font-size: 11px;
  padding: 4px 10px;
  text-decoration: none;
}
.fleet-ladder-ops-fold {
  border: none;
  background: #eef5f3;
  color: var(--teal);
  font-size: 11px;
  padding: 4px 10px;
  border-radius: 6px;
  cursor: pointer;
}
.fleet-ladder-ops-body {
  padding: 0 12px 12px;
  border-top: 1px solid var(--line);
}
/* 编队 / 梯子抽屉（车头工具栏入口） */

.fleet-sheet-card {
  max-width: 520px;
  width: calc(100% - 24px);
  max-height: min(88vh, 720px);
}
.fleet-float-body {
  flex: 1;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  padding: 10px 12px 12px;
  /* 内容溢出时必须显示滚动条（勿隐藏） */
  scrollbar-width: thin;
  scrollbar-color: #9aa7b5 transparent;
  -ms-overflow-style: auto;
  scrollbar-gutter: stable;
}
.fleet-float-body::-webkit-scrollbar {
  width: 8px;
  height: 8px;
  display: block;
}
.fleet-float-body::-webkit-scrollbar-track {
  background: transparent;
}
.fleet-float-body::-webkit-scrollbar-thumb {
  background: #9aa7b5;
  border-radius: 8px;
  border: 2px solid transparent;
  background-clip: padding-box;
}
.fleet-float-body::-webkit-scrollbar-thumb:hover {
  background: #7f8d9e;
  background-clip: padding-box;
}
html[data-theme="dark"] .fleet-float-body {
  scrollbar-color: #c5ced8 rgba(255, 255, 255, 0.06);
}
html[data-theme="dark"] .fleet-float-body::-webkit-scrollbar-track {
  background: rgba(255, 255, 255, 0.06);
  border-radius: 8px;
}
html[data-theme="dark"] .fleet-float-body::-webkit-scrollbar-thumb {
  background: #c5ced8;
  background-clip: padding-box;
}
html[data-theme="dark"] .fleet-float-body::-webkit-scrollbar-thumb:hover {
  background: #e6ebf0;
  background-clip: padding-box;
}
.fleet-float-layer .fleet-float {
  display: flex;
  flex-direction: column;
  max-height: calc(100vh - 24px);
}
.fleet-sheet-hero {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 8px;
}
@media (min-width: 400px) {
  .fleet-sheet-hero {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
.fleet-hero-cell {
  padding: 8px 10px;
  border-radius: 10px;
  border: 1px solid rgba(21, 32, 43, 0.1);
  background: rgba(21, 32, 43, 0.04);
}
.fleet-hero-cell.tone-idle {
  border-color: rgba(21, 32, 43, 0.12);
  background: rgba(21, 32, 43, 0.05);
}
.fleet-hero-cell.tone-idle strong {
  color: var(--muted);
}
.fleet-hero-cell.tone-running {
  border-color: var(--line);
  background: var(--chip-bg);
}
.fleet-hero-cell.tone-running strong {
  color: var(--teal);
}
.fleet-hero-cell.tone-pause {
  border-color: rgba(234, 88, 12, 0.35);
  background: rgba(234, 88, 12, 0.1);
}
.fleet-hero-cell.tone-pause strong {
  color: #c2410c;
}
.fleet-hero-cell.tone-pocket {
  border-color: rgba(59, 130, 246, 0.32);
  background: rgba(59, 130, 246, 0.1);
}
.fleet-hero-cell.tone-pocket strong,
.fleet-hero-cell.tone-pocket .fleet-cmd-phase {
  color: #2563eb;
}
.fleet-hero-cell.tone-pnl {
  border-color: rgba(21, 32, 43, 0.1);
  background: rgba(21, 32, 43, 0.03);
}
.fleet-tool-btn.has-alert::after {
  content: "";
  position: absolute;
  top: 4px;
  right: 4px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #ea580c;
  border: 1.5px solid #fff;
  box-shadow: 0 0 0 1px rgba(234, 88, 12, 0.35);
  pointer-events: none;
}
.fleet-tool-btn {
  position: relative;
}
.fleet-hero-cell small {
  display: block;
  font-size: 10px;
  color: var(--muted);
  margin-bottom: 4px;
}
.fleet-hero-cell strong {
  font-size: 12px;
  font-weight: 800;
  color: var(--ink);
  line-height: 1.35;
}
.fleet-hero-cell .fleet-cmd-phase {
  font-size: 11px;
}
.fleet-sheet-ctx {
  margin: 0 0 10px;
  font-size: 11px;
  color: var(--muted);
  line-height: 1.45;
}
.fleet-sheet-hint {
  margin: 0;
  font-size: 11px;
  color: var(--muted);
  line-height: 1.45;
}
.fleet-sheet-table {
  margin-bottom: 8px;
}
.fleet-member-status {
  font-size: 11px;
  line-height: 1.4;
  max-width: 200px;
}
.fleet-member-ops {
  display: inline-flex;
  gap: 4px;
  flex-wrap: wrap;
}
.fleet-sheet-preview {
  margin: 0 0 8px;
  padding: 8px 10px;
  border-radius: 10px;
  background: rgba(21, 32, 43, 0.03);
  border: 1px solid rgba(21, 32, 43, 0.06);
}
.fleet-sheet-body {
  overflow: auto;
  max-height: min(72vh, 640px);
  padding-top: 4px;
}
.fleet-sheet-inner {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.fleet-sheet-inner > .fleet-sheet-hero {
  padding-bottom: 12px;
  margin-bottom: 0;
}
.fleet-sheet-inner > .fleet-sheet-ctx,
.fleet-sheet-inner > .fleet-member-sec,
.fleet-sheet-inner > .fleet-adv-fold,
.fleet-sheet-inner > .fleet-sheet-hint,
.fleet-sheet-inner > .fleet-sheet-preview {
  border-top: 1px solid var(--line);
  padding: 12px 0;
  margin: 0;
}
.fleet-sheet-inner > .fleet-adv-fold {
  border-left: 0;
  border-right: 0;
  border-bottom: 0;
  border-radius: 0;
  background: transparent;
  padding-left: 0;
  padding-right: 0;
}
.fleet-sheet-inner > .fleet-adv-fold[open] {
  padding-bottom: 12px;
}
.fleet-sheet-inner .fleet-sheet-table {
  margin-bottom: 0;
}
.fleet-sheet-inner .fleet-cmd-table th,
.fleet-sheet-inner .fleet-cmd-table td {
  border-bottom-color: var(--line);
}
.fleet-sheet-inner .fleet-ev-item {
  border-bottom-color: var(--line);
}
.fleet-sheet-inner.is-idle {
  opacity: 0.96;
}
.fleet-sheet-inner.is-tripped {
  border-left: 3px solid rgba(194, 65, 12, 0.55);
  padding-left: 10px;
}
.fleet-sheet-summary {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  padding: 4px 2px 8px;
  border-bottom: 1px solid rgba(21, 32, 43, 0.06);
}
.fleet-tool-btn svg {
  width: 18px;
  height: 18px;
}
.fleet-command-bar.is-idle {
  border-color: rgba(21, 32, 43, 0.1);
  background: #fff;
}
.fleet-adv-fold-muted summary {
  color: var(--muted);
}
.fleet-adv-panel {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.fleet-adv-clear {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.fleet-adv-health {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}
.fleet-adv-health .ladder-health-row {
  margin: 0;
}
.fleet-adv-actions {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 8px;
}
.fleet-adv-actions-main {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}
.fleet-adv-act {
  border: 1px solid var(--line);
  background: #fff;
  color: var(--teal);
  font-family: var(--font);
  font-size: 11px;
  font-weight: 700;
  padding: 6px 12px;
  border-radius: 8px;
  cursor: pointer;
  line-height: 1.2;
}
.fleet-adv-act:hover,
.fleet-adv-act:focus-visible {
  background: var(--chip-bg);
  outline: none;
}
.fleet-adv-more {
  margin: 0;
  display: block;
}
.fleet-adv-more:not([open]) .fleet-adv-more-btns {
  display: none;
}
.fleet-adv-more-summary {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  list-style: none;
  cursor: pointer;
}
.fleet-adv-more-summary::-webkit-details-marker {
  display: none;
}
.fleet-adv-more-summary::after {
  content: "▾";
  font-size: 10px;
  color: var(--muted);
  line-height: 1;
}
.fleet-adv-more:not([open]) .fleet-adv-more-summary::after {
  content: "▸";
}
.fleet-adv-more-btns {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding-top: 4px;
}
.fleet-adv-block {
  padding: 8px 10px;
  border-radius: 10px;
  border: 1px solid rgba(21, 32, 43, 0.08);
  background: rgba(21, 32, 43, 0.02);
}
.fleet-adv-block h5 {
  margin: 0 0 6px;
  font-size: 11px;
  font-weight: 800;
  color: var(--ink);
}
.fleet-adv-block h5 small {
  font-weight: 600;
  color: var(--muted);
}
.fleet-adv-table {
  margin: 0;
}
.fleet-adv-hint {
  margin: 0;
  font-size: 11px;
  line-height: 1.45;
  color: var(--muted);
}
.fleet-adv-hint a.ladder-pro-link {
  color: var(--teal);
  text-decoration: none;
}
.fleet-adv-fold {
  border: 1px solid rgba(21, 32, 43, 0.08);
  border-radius: 10px;
  padding: 8px 10px;
  background: rgba(21, 32, 43, 0.02);
}
.fleet-adv-fold summary {
  cursor: pointer;
  font-size: 11px;
  font-weight: 800;
  color: var(--ink);
  list-style: none;
  display: flex;
  align-items: center;
  gap: 6px;
}
.fleet-adv-fold summary::-webkit-details-marker {
  display: none;
}
.fleet-adv-fold > summary::before {
  content: "▸";
  font-size: 10px;
  color: var(--muted);
}
.fleet-adv-fold[open] > summary::before {
  content: "▾";
}
.fleet-adv-e2e-line {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  font-size: 11px;
  color: var(--muted);
  margin: 8px 0 4px;
}
.fleet-adv-e2e-line b {
  color: var(--ink);
  font-weight: 800;
}
.fleet-adv-events {
  margin: 6px 0 0;
  padding: 0;
}
.fleet-adv-notes {
  margin: 8px 0 0;
  padding-left: 18px;
  font-size: 11px;
  line-height: 1.45;
  color: var(--muted);
}
.fleet-ev-panel {
  padding-top: 6px;
}
.fleet-ev-filters {
  margin-bottom: 6px;
}
.fleet-ev-filters .tl-filter-btn,
.fleet-ev-filters .tl-export-btn {
  border: 1px solid var(--line);
  background: #fff;
  color: var(--teal);
  font-size: 10px;
  font-weight: 700;
  padding: 5px 10px;
  border-radius: 8px;
  cursor: pointer;
  margin: 0;
}
.fleet-ev-filters .tl-filter-btn.on {
  background: var(--chip-bg);
  border-color: var(--line);
}
.fleet-ev-filters .tl-export-btn:hover,
.fleet-ev-filters .tl-filter-btn:hover {
  background: var(--chip-bg);
}
.fleet-ev-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.fleet-ev-item {
  display: grid;
  grid-template-columns: 44px 52px 1fr;
  gap: 4px 8px;
  align-items: start;
  font-size: 11px;
  padding: 6px 0;
  border-bottom: 1px solid rgba(21, 32, 43, 0.06);
}
.fleet-ev-item:last-child {
  border-bottom: none;
}
.fleet-ev-time {
  color: var(--muted);
  font-size: 10px;
  font-weight: 600;
}
.fleet-ev-kind {
  font-size: 10px;
  font-weight: 800;
  color: var(--teal);
}
.fleet-ev-msg {
  color: var(--ink);
  line-height: 1.4;
}
.fleet-ev-item.is-warn .fleet-ev-kind {
  color: #c2410c;
}
.fleet-ev-item.is-warn .fleet-ev-msg {
  color: #9a3412;
}
.fleet-ev-empty {
  padding: 6px 0;
  font-size: 11px;
  color: var(--muted);
  list-style: none;
}
.fleet-home-metrics-simple {
  font-size: 11px;
  gap: 8px 10px;
}
.fleet-ops-advanced {
  margin-top: 10px;
  border: 1px dashed var(--line);
  border-radius: 10px;
  padding: 8px 10px;
  background: var(--chip-bg);
}
.fleet-ops-advanced summary {
  cursor: pointer;
  font-size: 11px;
  font-weight: 700;
  color: var(--teal);
  user-select: none;
  list-style: none;
  display: flex;
  align-items: center;
  gap: 6px;
}
.fleet-ops-advanced summary::-webkit-details-marker {
  display: none;
}
.fleet-ops-advanced summary::before {
  content: "▸";
  font-size: 10px;
  color: var(--muted);
}
.fleet-ops-advanced[open] summary::before {
  content: "▾";
}
.ladder-readiness-sec h4 .ladder-pro-link {
  margin-left: 8px;
  font-size: 10px;
  font-weight: 600;
  color: var(--muted);
  text-decoration: none;
}
.ladder-health-sec h4 {
  margin: 0 0 8px;
  font-size: 12px;
  font-weight: 700;
}
.ladder-health-inline-adv {
  margin-top: 6px;
}
.ladder-readiness-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  padding-top: 10px;
}
@media (min-width: 640px) {
  .ladder-readiness-grid {
    grid-template-columns: 1fr 1.2fr;
  }
}
.ladder-readiness-sec h4,
.ladder-member-sec h4 {
  margin: 0 0 8px;
  font-size: 12px;
  font-weight: 700;
}
.ladder-readiness-sec h4 small {
  font-weight: 500;
  color: var(--muted);
}
.ladder-readiness-row {
  display: grid;
  grid-template-columns: 64px 1fr 36px;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
  font-size: 11px;
}
.ladder-readiness-lab {
  color: var(--muted);
}
.ladder-readiness-track {
  height: 6px;
  border-radius: 999px;
  background: #e8eef0;
  overflow: hidden;
}
.ladder-readiness-fill {
  display: block;
  height: 100%;
  border-radius: 999px;
  background: var(--teal);
}
.ladder-readiness-fill.is-warn {
  background: #f59e0b;
}
.ladder-readiness-fill.is-low {
  background: #ef4444;
}
.ladder-readiness-pct {
  text-align: right;
  font-variant-numeric: tabular-nums;
  color: var(--muted);
}
.ladder-blockers-fold {
  margin-top: 8px;
  font-size: 11px;
}
.ladder-blockers-fold summary {
  cursor: pointer;
  color: #b45309;
}
.ladder-blockers {
  margin: 6px 0 0;
  padding-left: 18px;
  color: var(--muted);
  line-height: 1.45;
}
.ladder-member-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 11px;
}
.ladder-member-table th,
.ladder-member-table td {
  padding: 5px 6px;
  border-bottom: 1px solid var(--line);
  text-align: left;
}
.ladder-member-table th {
  color: var(--muted);
  font-weight: 600;
}
.ladder-member-table tr.is-halt {
  background: #fff5f5;
}
.ladder-clear-all {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}
.ladder-health-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  width: 100%;
  margin-bottom: 4px;
}
.ladder-health-chip {
  display: inline-block;
  font-size: 10px;
  padding: 2px 8px;
  border-radius: 999px;
  font-weight: 600;
}
.ladder-health-chip.is-ok {
  background: #e6f7f2;
  color: var(--up);
}
.ladder-health-chip.is-warn {
  background: #fff7e6;
  color: #b45309;
}
.ladder-health-chip.is-bad {
  background: #fee2e2;
  color: #b91c1c;
}
.ladder-health-chip.is-pending {
  background: #f1f5f9;
  color: #64748b;
}
.ladder-health-inline {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 4px;
  align-items: center;
  margin-left: 4px;
}
.ladder-perf-sec {
  margin-top: 0.75rem;
}
.ladder-perf-sec h4 {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}
.fleet-cmd-table tr.is-halt {
  background: #fff8f8;
}
.fleet-cmd-table .ladder-col {
  font-variant-numeric: tabular-nums;
  font-size: 11px;
}
.ladder-parity-pill {
  display: inline-block;
  font-size: 10px;
  padding: 2px 8px;
  border-radius: 999px;
  font-weight: 700;
}
.ladder-parity-pill.is-ok {
  background: #e6f7f2;
  color: var(--up);
}
.ladder-parity-pill.is-warn {
  background: #fff7e6;
  color: #b45309;
}
.ladder-parity-sec {
  grid-column: 1 / -1;
  margin-top: 4px;
}
.ladder-parity-sec h4 {
  margin: 0 0 8px;
  font-size: 12px;
  font-weight: 700;
}
.ladder-parity-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 11px;
}
.ladder-parity-table th,
.ladder-parity-table td {
  padding: 5px 6px;
  border-bottom: 1px solid var(--line);
  text-align: left;
}
.ladder-parity-table tr.is-warn {
  background: #fff8f0;
}

.target-sheet .fee-body {
  padding-top: 4px;
}
.fee-tip-modal:not(.params-sheet) .target-sheet.confirm-sheet,
.fee-tip-modal:not(.params-sheet).target-sheet .fee-sheet.confirm-sheet {
  overflow: hidden;
  border-radius: 16px;
}
.fee-tip-modal:not(.params-sheet).target-sheet .fee-head {
  border-radius: 16px 16px 0 0;
}
.fee-tip-modal:not(.params-sheet).target-sheet .fee-foot.confirm-actions {
  border-radius: 0 0 16px 16px;
}
.fee-tip-modal:not(.params-sheet) .target-sheet .fee-body-plain,
.fee-tip-modal:not(.params-sheet).target-sheet .fee-sheet .fee-body-plain {
  overflow: visible;
}
.fee-tip-modal.params-sheet {
  z-index: 12040;
  background: var(--modal-scrim, rgba(6, 10, 16, 0.55));
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.params-legacy-roll[hidden] {
  display: none !important;
}
/* 参数设置打开时隐藏底栏（dock z-index 200，否则会盖在遮罩上） */

body.params-sheet-open {
  overflow: hidden;
}
body.params-sheet-open .dock {
  visibility: hidden !important;
  pointer-events: none !important;
}
/* 今日目标 / 目标设置弹窗：同理压住底栏 */

body.target-sheet-open {
  overflow: hidden;
}
body.target-sheet-open .dock {
  visibility: hidden !important;
  pointer-events: none !important;
}
.fee-tip-modal.target-sheet {
  z-index: 12040;
}
.fee-tip-modal .params-sheet-card.confirm-sheet {
  overflow: hidden;
  max-height: min(88vh, calc(100vh - 32px));
  border: 1px solid var(--line);
  box-shadow: 0 16px 48px rgba(15, 24, 32, 0.18);
}
.fee-tip-modal .params-sheet-card .fee-body-plain {
  flex: 1 1 auto;
  min-height: 0;
  /* clip 会切掉贴边滑点；用 padding 防横溢，纵向仍滚动 */
  overflow-x: visible;
  overflow-y: auto;
  padding-bottom: 16px;
  -webkit-overflow-scrolling: touch;
}
.fee-tip-modal .params-sheet-card .fee-foot {
  flex-shrink: 0;
  position: relative;
  z-index: 3;
  background: #fff;
  border-top: none;
  box-shadow: none;
  padding: 0;
}
.fee-tip-modal .params-sheet-card .size-slider-sec:has(.ui-help-q.on) {
  position: relative;
  z-index: 4;
}
.fee-tip-modal .ui-help-tip.ui-help-tip-fixed {
  position: fixed;
}
.target-official {
  margin: 0 0 4px;
  font-size: 14px;
  font-weight: 800;
  color: var(--ink);
  letter-spacing: -0.02em;
}
.target-official-sub {
  margin: 0 0 16px;
  font-size: 12px;
  font-weight: 600;
  color: var(--muted);
  line-height: 1.45;
}
.target-slider-wrap {
  margin: 0 0 8px;
}
.target-val {
  display: flex;
  align-items: baseline;
  gap: 4px;
  margin-bottom: 14px;
}
.target-val b {
  font-size: 36px;
  font-weight: 800;
  letter-spacing: -0.04em;
  font-variant-numeric: tabular-nums;
  color: var(--ink);
  line-height: 1;
}
.target-val span {
  font-size: 14px;
  font-weight: 800;
  color: var(--muted);
}
/* 单端滑杆：与「底仓挂单偏离」同系——透明热区 + 4px 细轨 + 22px 滑点中心对齐 */

.target-range {
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
  height: 28px;
  border-radius: 0;
  background: transparent;
  outline: none;
  margin: 0;
  cursor: pointer;
  --range-fill: 0%;
}
.target-range::-webkit-slider-runnable-track {
  height: 4px;
  border-radius: 999px;
  background: linear-gradient(
    90deg,
    var(--teal) 0%,
    var(--teal) var(--range-fill, 0%),
    var(--chip-bg, #e8eef2) var(--range-fill, 0%),
    var(--chip-bg, #e8eef2) 100%
  );
}
.target-range::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 22px;
  height: 22px;
  /* (轨高 4 − 点高 22) / 2 → 中心落在细轨中线 */
  margin-top: -9px;
  border-radius: 50%;
  background: #fff;
  border: 2px solid var(--teal);
  box-sizing: border-box;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  cursor: grab;
}
.target-range::-moz-range-track {
  height: 4px;
  border-radius: 999px;
  background: var(--chip-bg, #e8eef2);
}
.target-range::-moz-range-progress {
  height: 4px;
  border-radius: 999px;
  background: var(--teal);
}
.target-range::-moz-range-thumb {
  width: 22px;
  height: 22px;
  border: 2px solid var(--teal);
  border-radius: 50%;
  background: #fff;
  box-sizing: border-box;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  cursor: grab;
}
.target-marks {
  display: flex;
  justify-content: space-between;
  margin-top: 8px;
  font-size: 11px;
  font-weight: 700;
  color: var(--muted);
  font-variant-numeric: tabular-nums;
}
.target-marks-scale {
  position: relative;
  display: block;
  height: 16px;
  margin-top: 8px;
}
.target-marks-scale .target-mark {
  position: absolute;
  top: 0;
  transform: translateX(-50%);
  font-size: 11px;
  font-weight: 700;
  color: var(--muted);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.target-marks-scale .target-mark.edge-start {
  transform: translateX(0);
}
.target-marks-scale .target-mark.edge-end {
  left: 100% !important;
  transform: translateX(-100%);
}
.target-gate {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid var(--line);
  font-size: 11px;
  font-weight: 700;
  color: var(--muted);
}
.target-gate b {
  color: var(--teal);
  font-variant-numeric: tabular-nums;
}
.target-sheet .confirm-btn-ok {
  background: var(--ink);
}

.roll-link {
  display: inline;
  border: 0;
  background: transparent;
  padding: 0;
  font: inherit;
  font-weight: 700;
  color: var(--ink);
  text-decoration: underline;
  text-decoration-color: #c5d0d8;
  text-underline-offset: 2px;
  cursor: pointer;
}
.roll-link:hover {
  color: var(--teal);
  text-decoration-color: var(--teal);
}

.fee-tip {
  position: fixed;
  inset: 0;
  /* 须高于可拖浮窗叠层（≤78），否则仓位/K线/AI 会盖住确认框 */
  z-index: 100;
  pointer-events: none;
  background: transparent;
  opacity: 0;
  transition: opacity 0.15s ease;
}
.fee-tip.on { opacity: 1; }
/* display:flex !important 会盖掉 UA/[hidden]，关闭后须彻底卸层（否则会全屏挡点击） */
.fee-tip[hidden],
.fee-tip-modal[hidden],
.fee-tip.fee-tip-modal[hidden] {
  display: none !important;
  pointer-events: none !important;
  visibility: hidden !important;
}
/* 手机：账单/确认等 fee-tip 须压过仓位·明细抽屉（12080）
 * 勿抬 #hold-detail-sheet 自身，否则 body 气泡(13050)又会沉到明细下 */
@media (max-width: 899px) {
  /* 勿压添加/编辑账户(33100)之上的扫码/短语/手动填写层 */
  .fee-tip.on:not(#hold-detail-sheet):not(#pos-sheet):not(#rules-sheet):not(#teach-sheet):not(#hold-more-sheet):not(.confirm-modal):not(.acc-qr-cam-modal):not(.acc-pass-modal):not(.acc-slot-manual-modal),
  .fee-tip-modal.on:not(#hold-detail-sheet):not(#rules-sheet):not(#teach-sheet):not(#hold-more-sheet):not(.pnl-hub-sheet):not(.confirm-modal):not(#trade-acc-picker):not(.acc-qr-cam-modal):not(.acc-pass-modal):not(.acc-slot-manual-modal),
  #trade-acc-picker.trade-acc-picker.fee-tip-modal.on,
  #app-cycle-bills.fee-tip,
  .lever-pop:not([hidden]) {
    z-index: var(--z-modal-above-drawer) !important;
  }
  /* 手机底部抽屉：取消 .fee-sheet 居中绝对定位与四边圆角，统一贴底仅顶圆角 */
  .fee-tip-modal.is-mobile-drawer:not(.is-desk-pop):not([hidden]),
  .fee-tip-modal.is-drawer:not(.is-desk-pop):not([hidden]) {
    display: flex !important;
    align-items: flex-end !important;
    justify-content: stretch !important;
    place-items: unset !important;
    padding: 0 !important;
  }
  .fee-tip-modal.is-mobile-drawer:not(.is-desk-pop) > .fee-sheet,
  .fee-tip-modal.is-mobile-drawer:not(.is-desk-pop) .fee-sheet.hold-more-card,
  .fee-tip-modal.is-drawer:not(.is-desk-pop) > .fee-sheet {
    position: relative !important;
    left: auto !important;
    top: auto !important;
    transform: none !important;
    margin: 0 !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    align-self: flex-end !important;
    border-radius: 18px 18px 0 0 !important;
    border-bottom-left-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
  }
}

.fee-sheet {
  position: absolute;
  left: 50%;
  top: 14%;
  width: min(360px, calc(100vw - 24px));
  height: min(380px, calc(100vh - 100px));
  min-width: 260px;
  min-height: 240px;
  max-width: min(720px, calc(100vw - 16px));
  max-height: calc(100vh - 24px);
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 14px;
  padding: 0;
  margin: 0;
  box-shadow: 0 12px 40px rgba(15, 24, 32, 0.22), 0 0 0 1px rgba(15, 24, 32, 0.06);
  pointer-events: auto;
  overflow: hidden;
  transform: translateX(-50%);
  touch-action: none;
}
.fee-sheet.dragging,
.fee-sheet.resizing { user-select: none; }

.fee-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 12px 12px 8px;
  margin: 0;
  cursor: grab;
  flex-shrink: 0;
  touch-action: none;
}
.fee-head:active { cursor: grabbing; }
.fee-head h3 {
  margin: 0;
  font-size: 16px;
  font-weight: 800;
  letter-spacing: -0.02em;
}
.fee-head-title {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
}
.fee-head-q {
  flex-shrink: 0;
}
.fee-head .fee-head-tip {
  left: -6px;
  top: calc(100% + 8px);
  width: min(240px, 72vw);
  max-width: min(240px, 72vw);
  z-index: 30;
}
.fee-head .fee-head-tip::after {
  left: 14px;
}
.fee-float-tools {
  display: flex;
  align-items: center;
  gap: 0;
}
.fee-float-tools .pos-scale-btn,
.fee-float-tools .fee-x {
  width: 32px;
  height: 32px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--muted);
  font-size: 22px;
  font-weight: 400;
  line-height: 1;
  cursor: pointer;
  padding: 0;
  box-shadow: none;
}
.fee-float-tools .pos-scale-btn:hover,
.fee-float-tools .fee-x:hover {
  color: var(--ink);
  background: transparent;
}

.fee-body {
  flex: 1;
  min-height: 0;
  overflow: auto;
  padding: 0 16px 12px;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.fee-body::-webkit-scrollbar { width: 0; height: 0; }
@media (min-width: 768px) {
  .fee-body {
    scrollbar-width: thin;
    scrollbar-color: #cbd5e1 transparent;
  }
  .fee-body::-webkit-scrollbar { width: 8px; }
  .fee-body::-webkit-scrollbar-thumb {
    background: #cbd5e1;
    border-radius: 8px;
  }
}

.fee-tip-modal {
  background: var(--modal-scrim, rgba(6, 10, 16, 0.55));
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  display: grid;
  place-items: center;
  padding: 16px;
  pointer-events: auto;
}
/* 工具端弹层：全端仅压暗，禁止毛玻璃（含产品抽屉 / 持仓更多 / 确认框等） */
.fee-tip-modal.on,
.fee-tip-modal.open,
.fee-tip-modal.confirm-modal,
.fee-tip-modal.hold-more-sheet,
.fee-tip-modal.pro-ops-sheet {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
.fee-tip-modal .fee-sheet {
  position: relative;
  left: auto;
  top: auto;
  width: min(400px, calc(100vw - 32px));
  height: auto;
  min-height: 0;
  min-width: 0;
  max-height: min(88vh, calc(100vh - 32px));
  transform: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
#hold-detail-sheet.fee-tip-modal .hold-detail-sheet-panel.fee-sheet {
  overflow: visible;
  max-height: none;
  min-height: 0;
  height: auto;
  touch-action: manipulation;
}
.fee-tip-modal.pro-ops-sheet.is-mobile-drawer > .fee-sheet.pro-ops-sheet-card {
  overflow: hidden;
  touch-action: auto;
}
.fee-tip-modal.flow-detail-sheet .fee-sheet.flow-detail-card {
  width: min(1140px, calc(100vw - 24px));
  max-width: min(1140px, calc(100vw - 24px));
  min-width: 0;
}
.fee-tip-modal.flow-detail-sheet.is-empty .fee-sheet.flow-detail-card {
  width: auto;
  max-width: min(520px, calc(100vw - 32px));
  min-width: min(300px, calc(100vw - 32px));
}
/* 盈亏弹窗：宽度跟走势图一起铺满可视区（仅留极少边距） */

.fee-tip-modal.pnl-hub-sheet {
  padding: clamp(6px, 1.2vw, 12px);
  align-items: center;
  justify-items: center;
  /* 高于手机仓位抽屉 12080；桌面浮窗仍远低于此 */
  z-index: var(--z-modal-above-drawer) !important;
  pointer-events: auto !important;
}
/* 打开盈亏/账本：底栏留在半透明遮罩下（雾化可见），弹层 z=12050 > dock 200 */

body.pnl-hub-open {
  overflow: hidden;
}
body.pnl-hub-open .dock {
  visibility: visible !important;
  pointer-events: none !important;
}
.pnl-hub-pane[hidden] {
  display: none !important;
}
.fee-tip-modal .fee-sheet.pnl-hub-card {
  width: min(800px, calc(100vw - 2 * clamp(6px, 1.2vw, 12px)));
  max-width: min(800px, calc(100vw - 2 * clamp(6px, 1.2vw, 12px)));
  min-width: 0;
  height: auto;
  min-height: 0;
  max-height: min(94vh, calc(100vh - 2 * clamp(6px, 1.2vw, 12px)));
  overflow: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none !important;
  -ms-overflow-style: none !important;
}
.fee-tip-modal .fee-sheet.pnl-hub-card::-webkit-scrollbar,
.fee-tip-modal .fee-sheet.pnl-hub-card::-webkit-scrollbar-thumb,
.fee-tip-modal .fee-sheet.pnl-hub-card::-webkit-scrollbar-track {
  width: 0 !important;
  height: 0 !important;
  display: none !important;
  background: transparent !important;
  border: 0 !important;
}
/* 盈亏弹层内一切可滚区域：藏条、保留滚动手势/滚轮 */

.fee-tip-modal.pnl-hub-sheet,
.fee-tip-modal.pnl-hub-sheet .pnl-hub-body,
.fee-tip-modal.pnl-hub-sheet .pnl-hub-pane,
.fee-tip-modal.pnl-hub-sheet .pnl-rates-body,
.fee-tip-modal.pnl-hub-sheet .book-cal {
  scrollbar-width: none !important;
  -ms-overflow-style: none !important;
}
.fee-tip-modal.pnl-hub-sheet::-webkit-scrollbar,
.fee-tip-modal.pnl-hub-sheet *::-webkit-scrollbar,
.fee-tip-modal.pnl-hub-sheet *::-webkit-scrollbar-thumb,
.fee-tip-modal.pnl-hub-sheet *::-webkit-scrollbar-track {
  width: 0 !important;
  height: 0 !important;
  display: none !important;
  background: transparent !important;
  border: 0 !important;
}
.fee-tip-modal.pnl-hub-sheet.is-rates .fee-sheet.pnl-hub-card,
.fee-tip-modal.pnl-hub-sheet.is-book .fee-sheet.pnl-hub-card {
  scrollbar-width: none !important;
  -ms-overflow-style: none !important;
}
.fee-tip-modal.pnl-hub-sheet.is-rates .fee-sheet.pnl-hub-card::-webkit-scrollbar,
.fee-tip-modal.pnl-hub-sheet.is-book .fee-sheet.pnl-hub-card::-webkit-scrollbar {
  width: 0 !important;
  height: 0 !important;
  display: none !important;
}
/* 走势态禁止底边溢出滚动条（易被看成底部红/灰细条） */

.fee-tip-modal.pnl-hub-sheet.is-trend .fee-sheet.pnl-hub-card {
  overflow: hidden;
}
/* 账本/收益率：卡片圆角裁切底角，滚动交给内部 body */

.fee-tip-modal.pnl-hub-sheet.is-rates .fee-sheet.pnl-hub-card,
.fee-tip-modal.pnl-hub-sheet.is-book .fee-sheet.pnl-hub-card {
  overflow: hidden !important;
}
.fee-tip-modal .fee-head {
  cursor: default;
  padding: 16px 16px 8px;
  flex-shrink: 0;
  touch-action: manipulation;
}
.fee-tip-modal .fee-body-plain {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  padding: 0 16px 8px;
  -webkit-overflow-scrolling: touch;
}
.fee-tip-modal .fee-foot {
  flex-shrink: 0;
  padding: 8px 16px 16px;
}
.fee-tip-modal .fee-ok {
  width: 100%;
  margin: 0;
}
/* 确认框：按内容高度，禁止撑出大块空白 */

.fee-tip-modal .confirm-sheet {
  height: auto;
  min-height: 0;
  max-height: min(70vh, calc(100vh - 48px));
}
.fee-tip-modal .confirm-sheet .fee-body-plain {
  flex: 0 1 auto;
}
/* 参数弹窗：内容区可滚动，底栏固定，避免与急冲梯子区块叠层 */

.fee-tip-modal .params-sheet-card.confirm-sheet {
  max-height: min(88vh, calc(100vh - 32px));
}
.fee-tip-modal .params-sheet-card .fee-body-plain {
  flex: 1 1 auto;
  min-height: 0;
  overflow-x: visible;
  overflow-y: auto;
  padding-bottom: 16px;
}
.fee-tip-modal .params-sheet-card .fee-foot {
  flex-shrink: 0;
  position: relative;
  z-index: 3;
  background: #fff;
  border-top: none;
  box-shadow: none;
  padding: 0;
}
.fee-tip-modal .confirm-sheet .fee-lead {
  margin: 0;
}
.fee-tip-modal .confirm-sheet .confirm-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.fee-tip-modal .mgn-sheet .mgn-actions {
  display: flex;
  grid-template-columns: none;
  justify-content: flex-end;
}
.fee-tip-modal .mgn-sheet .fee-body-plain.mgn-body {
  padding: 14px 16px 16px;
  gap: 8px;
}
.fee-tip-modal .mgn-sheet .fee-foot {
  padding: 8px 16px 14px;
}
.fee-tip-modal .mgn-sheet .mgn-ok {
  width: auto;
  min-width: 112px;
  height: 44px;
  margin: 0;
}
.fee-tip-modal .alert-sheet .alert-lead {
  color: var(--ink);
  font-size: 14px;
  line-height: 1.55;
  font-weight: 500;
}
.fee-tip-modal .alert-actions {
  display: grid;
  grid-template-columns: 1fr;
}
.fee-tip-modal .alert-ok {
  width: 100%;
  background: #111;
  color: #fff;
  border: 0;
}
.fee-tip-modal .alert-ok:hover {
  filter: brightness(1.08);
}

.fee-x {
  width: 32px;
  height: 32px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--muted);
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
}
.fee-lead {
  margin: 0 0 12px;
  font-size: 13px;
  line-height: 1.45;
  color: var(--muted);
}
.fee-eq {
  margin: 0 0 16px;
  padding: 12px 14px;
  border-radius: 10px;
  background: var(--panel-2);
  font-size: 14px;
  font-weight: 700;
  color: var(--ink);
  text-align: center;
  letter-spacing: -0.01em;
}
.fee-steps {
  margin: 0 0 16px;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 10px;
}
.fee-steps li {
  display: grid;
  grid-template-columns: 22px 1fr;
  gap: 10px;
  align-items: start;
  font-size: 13px;
  line-height: 1.45;
  color: var(--ink);
}
.fee-steps span {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--ink);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  display: grid;
  place-items: center;
  margin-top: 1px;
}
.fee-ex {
  border-top: 1px solid var(--line);
  padding-top: 12px;
  margin-bottom: 10px;
}
.fee-ex.fee-ex-nosolid {
  border-top: 0;
  padding-top: 2px;
}
.fee-ex.fee-ex-plain {
  border-top: 0;
  padding-top: 0;
}
.fee-ex.fee-ex-plain .fee-ex-row.total {
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
}
.fee-ex-h {
  font-size: 12px;
  color: var(--muted);
  font-weight: 600;
  margin-bottom: 8px;
}
.fee-ex-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 5px 0;
  font-size: 13px;
}
.fee-ex-row span { color: var(--muted); }
.fee-ex-row b {
  font-weight: 800;
  font-variant-numeric: tabular-nums;
}
.fee-ex-row.total {
  margin-top: 4px;
  padding-top: 8px;
  border-top: 1px dashed var(--line);
  font-size: 14px;
}
.fee-ex-row b.up { color: var(--up); }
.fee-ex-row b.down { color: var(--down); }
.fee-note {
  margin: 0 0 14px;
  font-size: 11px;
  color: var(--muted);
  text-align: center;
}
.fee-ok { width: 100%; }

.confirm-sheet .fee-lead {
  margin-bottom: 18px;
}
.confirm-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.confirm-btn {
  box-sizing: border-box;
  width: 100%;
  height: 48px;
  margin: 0;
  border: 0;
  border-radius: 12px;
  padding: 0 12px;
  font: inherit;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}
.confirm-btn-cancel {
  background: #eef2f5;
  color: var(--ink);
}
.confirm-btn-ok {
  background: var(--teal);
  color: #fff;
}
.confirm-btn-danger {
  background: #b42318;
  color: #fff;
}
/* 通用确认弹窗：底栏双钮左右均分铺满 */


.fee-tip-modal.confirm-modal {
  background: var(--modal-scrim, rgba(6, 10, 16, 0.55));
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  padding: 20px;
  place-items: center;
  align-items: center;
  justify-items: center;
  /* 须高于登录闸 auth-layer(30000) 与全屏币种页 .mkt-coin-sheet(32000)，
     否则仓位栏全部平仓/改价/平仓确认会沉在 K 线全屏下面像「点了没弹」 */
  z-index: 32800;
  pointer-events: auto;
}
.fee-tip-modal.confirm-modal .confirm-sheet {
  width: min(360px, calc(100vw - 32px));
  border-radius: 16px;
  box-shadow: 0 16px 48px rgba(15, 24, 32, 0.18);
  background: #fff;
  border: 1px solid rgba(19, 33, 46, 0.06);
}
.fee-tip-modal.confirm-modal .confirm-head {
  padding: 20px 20px 0;
  border: 0;
  cursor: default;
}
.fee-tip-modal.confirm-modal .confirm-head h3 {
  font-size: 18px;
  font-weight: 800;
  line-height: 1.3;
  color: var(--ink);
}
.fee-tip-modal.confirm-modal .treasury-bind-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
.fee-tip-modal.confirm-modal .treasury-bind-title-row {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  flex: 1 1 auto;
}
.fee-tip-modal.confirm-modal .treasury-bind-title-row h3 {
  margin: 0;
}
.fee-tip-modal.confirm-modal .treasury-bind-title-row .ui-help-wrap {
  flex-shrink: 0;
  position: relative;
  z-index: 2;
}
.fee-tip-modal.confirm-modal .treasury-bind-title-row .ui-help-q {
  width: 22px;
  height: 22px;
}
.fee-tip-modal.confirm-modal .fpool-tre-form {
  margin-top: 0;
}
.fee-tip-modal.confirm-modal .treasury-bind-body {
  display: grid;
  gap: 12px;
}
.fee-tip-modal.confirm-modal .treasury-sheet-card {
  margin: 0;
}
.fee-tip-modal.confirm-modal .treasury-sheet-adv {
  margin: 0;
}
.fee-tip-modal.confirm-modal .treasury-sheet-adv .fleet-adv-body {
  padding: 10px 0 0;
  border: 0;
}
.fee-tip-modal.confirm-modal .treasury-sheet-foot {
  margin-top: 4px;
  padding: 0;
  border: 0;
  grid-template-columns: 1fr;
}
.fee-tip-modal.confirm-modal .treasury-sheet-foot .confirm-btn-ok {
  width: 100%;
}
.treasury-qr-block {
  display: grid;
  gap: 10px;
}
.treasury-qr-block .acc-slot-qr-hint {
  margin: 0;
}
.treasury-qr-block .treasury-manual {
  margin: 0;
}
.treasury-qr-block .treasury-manual > summary {
  cursor: pointer;
  font-size: 13px;
  font-weight: 600;
  color: var(--muted);
  list-style: none;
}
.treasury-qr-block .treasury-manual > summary::-webkit-details-marker {
  display: none;
}
.treasury-qr-block .treasury-manual[open] > summary {
  margin-bottom: 8px;
  color: var(--ink);
}
.fee-tip-modal.confirm-modal .confirm-body {
  padding: 12px 20px 18px;
  flex: 0 1 auto;
}
.fee-tip-modal.confirm-modal .confirm-lead {
  margin: 0;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.5;
  color: var(--ink);
}
.fee-tip-modal.confirm-modal .confirm-msg {
  margin: 0;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.55;
  color: var(--muted);
}
.fee-tip-modal.confirm-modal .confirm-steps {
  margin: 14px 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 10px;
  counter-reset: confirm-step;
}
.fee-tip-modal.confirm-modal .confirm-steps li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 13px;
  line-height: 1.45;
  color: var(--ink);
}
.fee-tip-modal.confirm-modal .confirm-step-n {
  flex-shrink: 0;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #12171e;
  color: #fff;
  border: 1px solid transparent;
  box-sizing: border-box;
  font-size: 12px;
  font-weight: 800;
  display: grid;
  place-items: center;
  line-height: 1;
}
.fee-tip-modal.confirm-modal .confirm-steps li .confirm-step-n::before {
  counter-increment: confirm-step;
  content: counter(confirm-step);
}
.fee-tip-modal.confirm-modal .confirm-step-t {
  flex: 1;
  padding-top: 2px;
}
.fee-tip-modal.confirm-modal .confirm-note {
  margin: 14px 0 0;
  padding: 10px 12px;
  border-radius: 10px;
  background: var(--panel-2);
  font-size: 12px;
  font-weight: 500;
  line-height: 1.5;
  color: var(--muted);
}
.fee-tip-modal.confirm-modal .confirm-sheet-wide {
  width: min(400px, calc(100vw - 32px));
}
/* 开仓 / 平仓 / 改价：按内容撑高，禁止弹窗内层滚动条 */
.fee-tip-modal.confirm-modal.confirm-flat-side .fee-sheet.confirm-sheet {
  max-height: none;
  height: auto;
  overflow: hidden;
}
.fee-tip-modal.confirm-modal.confirm-flat-side .confirm-sheet {
  max-height: none;
}
.fee-tip-modal.confirm-modal.confirm-flat-side .fee-body-plain,
.fee-tip-modal.confirm-modal.confirm-flat-side .confirm-body {
  flex: 0 0 auto;
  min-height: 0;
  overflow: visible;
  -webkit-overflow-scrolling: auto;
}
.flat-mode-tabs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
  margin: 0 0 14px;
  padding: 4px;
  border-radius: 10px;
  background: rgba(15, 24, 32, 0.05);
}
.flat-mode-tab {
  border: 1px solid transparent;
  background: transparent;
  color: var(--muted);
  font: inherit;
  font-size: 13px;
  font-weight: 700;
  padding: 8px 10px;
  border-radius: 8px;
  cursor: pointer;
  line-height: 1.2;
}
.flat-mode-tab.on {
  background: #fff;
  color: #12171e;
  box-shadow: 0 1px 3px rgba(15, 24, 32, 0.1);
  border: 1px solid rgba(15, 24, 32, 0.08);
}
.flat-manual-form {
  display: grid;
  gap: 12px;
  margin-top: 12px;
}
.flat-manual-field {
  display: grid;
  gap: 6px;
  margin: 0;
}
.flat-manual-field[hidden],
.pos-open-slot-field[hidden],
.pos-desk-slot-field[hidden] {
  display: none !important;
}
.flat-manual-field > span {
  font-size: 12px;
  font-weight: 600;
  color: var(--muted);
}
.flat-manual-field input {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 10px 12px;
  font: inherit;
  font-size: 15px;
  font-weight: 700;
  color: var(--ink);
  background: var(--panel);
  font-variant-numeric: tabular-nums;
}
.flat-manual-field input:focus {
  outline: none;
  border-color: rgba(0, 0, 0, 0.22);
  box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.06);
}
.flat-manual-px-lab {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  width: 100%;
}
.flat-manual-mark-chip {
  font-size: 12px;
  font-weight: 650;
  color: var(--muted);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.flat-manual-mark-chip b {
  color: var(--ink);
  font-weight: 800;
  margin-left: 4px;
}
.amend-est-field {
  padding: 10px 12px;
  border-radius: 10px;
  background: var(--chip-bg, rgba(15, 24, 32, 0.04));
  border: 1px solid var(--line);
}
.amend-est-val {
  display: block;
  font-size: 18px;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  color: var(--ink);
  line-height: 1.25;
}
.amend-est-val.is-up { color: var(--up, var(--up)); }
.amend-est-val.is-down { color: var(--down, #d4535c); }
.amend-est-val.is-flat { color: var(--muted); }
.amend-est-val.is-muted { color: var(--muted); font-size: 14px; font-weight: 650; }
.amend-est-sub {
  display: block;
  margin-top: 4px;
  font-size: 11px;
  font-style: normal;
  font-weight: 600;
  color: var(--muted);
  line-height: 1.35;
}
.flat-est-combo-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px 16px;
  align-items: start;
}
.confirm-flat-side .flat-est-combo.is-close .flat-est-combo-grid {
  grid-template-columns: 1fr 1fr 1fr;
}
.confirm-flat-side .pos-desk-pct {
  margin: 2px 0 0;
}
.confirm-flat-side .pos-desk-pct-slider {
  --pct: 100%;
  position: relative;
  padding: 0;
}
.confirm-flat-side .pos-desk-pct-hit {
  position: relative;
  height: 26px;
}
.confirm-flat-side .pos-desk-pct-rail {
  position: absolute;
  left: 7px;
  right: 7px;
  top: 50%;
  height: 5px;
  margin: 0;
  background: var(--line);
  border-radius: 999px;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.08);
  transform: translateY(-50%);
  pointer-events: none;
}
.confirm-flat-side .pos-desk-pct-fill {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: var(--pct);
  background: var(--ink);
  border-radius: 999px;
  pointer-events: none;
}
.confirm-flat-side .pos-desk-pct-dot {
  position: absolute;
  top: 50%;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  box-sizing: border-box;
  transform: translate(-50%, -50%);
  border: 2px solid var(--ink);
  background: #fff;
  pointer-events: none;
  transition: border-color 0.12s ease, background 0.12s ease, box-shadow 0.12s ease;
}
.confirm-flat-side .pos-desk-pct-dot[data-desk-pct="0"] { left: 0%; }
.confirm-flat-side .pos-desk-pct-dot[data-desk-pct="25"] { left: 25%; }
.confirm-flat-side .pos-desk-pct-dot[data-desk-pct="50"] { left: 50%; }
.confirm-flat-side .pos-desk-pct-dot[data-desk-pct="75"] { left: 75%; }
.confirm-flat-side .pos-desk-pct-dot[data-desk-pct="100"] { left: 100%; }
.confirm-flat-side .pos-desk-pct-dot.is-on {
  border-color: var(--ink);
  background: #fff;
}
html[data-theme="dark"] .confirm-flat-side .pos-desk-pct-dot {
  background: #0e141b;
  border-color: #e8eef4;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.35);
}
html[data-theme="dark"] .confirm-flat-side .pos-desk-pct-dot.is-on {
  background: #e8eef4;
  border-color: #e8eef4;
  box-shadow: 0 0 0 2px #0e141b;
}
html:not([data-theme="dark"]) .confirm-flat-side .pos-desk-pct-dot {
  background: #fff;
  border-color: var(--ink, #0f172a);
}
html:not([data-theme="dark"]) .confirm-flat-side .pos-desk-pct-dot.is-on {
  background: #fff;
  border-color: var(--ink, #0f172a);
}
.confirm-flat-side .pos-desk-pct-range {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  width: 100%;
  height: 26px;
  margin: 0;
  padding: 0;
  appearance: none;
  background: transparent;
  cursor: pointer;
  z-index: 2;
}
.confirm-flat-side .pos-desk-pct-range::-webkit-slider-runnable-track,
.confirm-flat-side .pos-desk-pct-range::-moz-range-track {
  height: 5px;
  background: transparent;
  border: 0;
}
.confirm-flat-side .pos-desk-pct-range::-webkit-slider-thumb {
  appearance: none;
  width: 15px;
  height: 15px;
  margin-top: -6px;
  border-radius: 50%;
  background: #fff;
  border: 2px solid var(--ink);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.12);
  cursor: grab;
}
.confirm-flat-side .pos-desk-pct-range::-moz-range-thumb {
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background: #fff;
  border: 2px solid var(--ink);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.12);
  cursor: grab;
}
html[data-theme="dark"] .confirm-flat-side .pos-desk-pct-range::-webkit-slider-thumb {
  background: #0e141b;
  border-color: #e8eef4;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.45), 0 0 0 1px rgba(255, 255, 255, 0.08);
}
html[data-theme="dark"] .confirm-flat-side .pos-desk-pct-range::-moz-range-thumb {
  background: #0e141b;
  border-color: #e8eef4;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.45), 0 0 0 1px rgba(255, 255, 255, 0.08);
}
.confirm-flat-side .pos-desk-pct-range:active::-webkit-slider-thumb,
.confirm-flat-side .pos-desk-pct-range.is-press::-webkit-slider-thumb {
  width: 18px;
  height: 18px;
  margin-top: -7px;
  cursor: grabbing;
}
.confirm-flat-side .pos-desk-pct-range:active::-moz-range-thumb,
.confirm-flat-side .pos-desk-pct-range.is-press::-moz-range-thumb {
  width: 18px;
  height: 18px;
  cursor: grabbing;
}
.confirm-flat-side .pos-desk-pct-labs {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-top: 5px;
  padding: 0 2px;
}
.confirm-flat-side .pos-desk-pct-labs button {
  appearance: none;
  border: 0;
  background: none;
  color: var(--muted);
  padding: 0;
  font-family: inherit;
  font-size: 10px;
  font-weight: 800;
  cursor: pointer;
  line-height: 1;
  letter-spacing: 0.04em;
  font-variant-numeric: tabular-nums;
  transform: scaleY(0.82);
  transform-origin: center bottom;
}
.confirm-flat-side .pos-desk-pct-labs button.is-on {
  color: color-mix(in srgb, var(--muted) 55%, var(--ink));
}
.confirm-flat-side .pos-desk-pct-labs button.is-at {
  color: var(--ink);
  transform: scaleY(0.82) scale(1.04);
}
.flat-est-combo-col span {
  display: block;
  font-size: 12px;
  font-weight: 650;
  color: var(--muted);
  margin-bottom: 2px;
}
.flat-est-combo .amend-est-sub {
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid var(--line);
}
.flat-manual-n-row {
  display: flex;
  gap: 8px;
  align-items: stretch;
}
.flat-manual-n-row input {
  flex: 1;
  min-width: 0;
  height: 44px;
  box-sizing: border-box;
  padding-top: 0;
  padding-bottom: 0;
}
.flat-manual-all {
  flex-shrink: 0;
  box-sizing: border-box;
  height: 44px;
  min-height: 44px;
  border: 1px solid transparent;
  background: #12171e;
  color: #fff;
  font: inherit;
  font-size: 12px;
  font-weight: 800;
  padding: 0 14px;
  border-radius: 10px;
  cursor: pointer;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: stretch;
}
.flat-manual-all:hover {
  background: #000;
  color: #fff;
}
.flat-manual-hint {
  margin: 0;
  font-size: 11px;
  color: #8a97a3;
  font-variant-numeric: tabular-nums;
}
.flat-manual-err {
  margin: 10px 0 0;
  font-size: 12px;
  font-weight: 700;
  color: var(--down, #d4535c);
}
/* 确认/平仓底栏：左右均分铺满 */

.fee-tip-modal.confirm-modal .confirm-actions,
.fee-tip-modal.confirm-modal .fee-foot.confirm-actions,
.fee-tip-modal.confirm-modal.confirm-flat-side .confirm-actions {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  justify-content: stretch !important;
  align-items: stretch;
  gap: 10px;
  width: 100%;
  box-sizing: border-box;
  padding: 14px 20px 20px;
  margin: 0;
  border-top: 0;
}
.fee-tip-modal.confirm-modal .alert-actions {
  display: grid !important;
  grid-template-columns: 1fr !important;
  justify-content: stretch !important;
}
.fee-tip-modal.confirm-modal .confirm-actions .confirm-btn,
.fee-tip-modal.confirm-modal .fee-foot.confirm-actions .confirm-btn {
  box-sizing: border-box;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  flex: 1 1 0;
  height: 44px;
  margin: 0;
  padding: 0 12px;
  border-radius: 10px;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  border: 1px solid transparent;
  display: flex;
  align-items: center;
  justify-content: center;
}
/* 手动开仓 Taker 风险：三键竖排，Maker 主按钮在上 */

.fee-tip-modal.confirm-modal.confirm-open-taker {
  z-index: 40000 !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}
.fee-tip-modal.confirm-modal .confirm-actions.confirm-actions--stack,
.fee-tip-modal.confirm-modal .fee-foot.confirm-actions.confirm-actions--stack {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 10px;
}
/* 顶号等：无 ×、无内容/按钮分割线，仅取消/确认可关 */

.fee-tip-modal.confirm-modal.confirm-modal--no-x .confirm-head .fee-x {
  display: none !important;
}
/* 有「取消」按钮的弹窗：不再显示右上角 × */

.fee-tip-modal:has(.confirm-btn-cancel) .fee-head .fee-x,
.fee-tip-modal:has(.confirm-btn-cancel) .confirm-head .fee-x,
.me-sheet:has(.me-sheet-cancel) .me-sheet-head .me-sheet-x {
  display: none !important;
}
.fee-tip-modal.confirm-modal.confirm-modal--no-split .confirm-actions,
.fee-tip-modal.confirm-modal.confirm-modal--no-split .fee-foot.confirm-actions {
  border-top: 0 !important;
  padding-top: 8px;
}
html[data-theme="dark"] .fee-tip-modal.confirm-modal.confirm-modal--no-split .confirm-actions,
html[data-theme="dark"] .fee-tip-modal.confirm-modal.confirm-modal--no-split .fee-foot.confirm-actions {
  border-top: 0 !important;
}
.fee-tip-modal.confirm-modal .confirm-btn-cancel {
  background: #fff;
  color: var(--ink);
  border-color: #d5dde4;
}
.fee-tip-modal.confirm-modal .confirm-btn-cancel:active {
  background: var(--panel-2);
}
.fee-tip-modal.confirm-modal .confirm-btn-ok:active {
  opacity: 0.92;
}

@media (min-width: 900px) {
  .fee-tip-modal { place-items: center; }
  .fee-tip-modal .fee-sheet { margin-bottom: 0; }
}
/* 管理后台输入框弹窗样式 */


.admin-prompt-input {
  width: 100%;
  border: 1px solid #e2e8ee;
  border-radius: 10px;
  padding: 11px 12px;
  font-size: 16px;
  font-weight: 700;
  color: var(--ink);
  background: var(--panel);
  -webkit-text-fill-color: var(--ink);
  caret-color: var(--ink);
  margin-top: 12px;
  box-sizing: border-box;
}
.admin-prompt-input::placeholder {
  color: var(--muted) !important;
  opacity: 0.48;
  font-weight: 500;
  -webkit-text-fill-color: var(--muted);
}
.admin-prompt-input::-webkit-input-placeholder {
  color: var(--muted) !important;
  opacity: 0.48;
  font-weight: 500;
  -webkit-text-fill-color: var(--muted);
}
.admin-prompt-input::-moz-placeholder {
  color: var(--muted) !important;
  opacity: 0.48;
  font-weight: 500;
}
.admin-prompt-input:-ms-input-placeholder {
  color: var(--muted) !important;
  opacity: 0.48;
  font-weight: 500;
}
.admin-prompt-input:focus {
  outline: none;
  border-color: var(--ink);
  box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.08);
}
textarea.admin-prompt-input,
.admin-prompt-textarea {
  display: block;
  min-height: 104px;
  max-height: min(40vh, 280px);
  resize: vertical;
  line-height: 1.55;
  font-weight: 500;
  font-family: inherit;
}
.fee-tip-modal.confirm-modal.is-prompt-multiline .confirm-sheet {
  max-width: min(92vw, 420px);
}
.fee-tip-modal.confirm-modal .ui-prompt-body {
  display: grid;
  gap: 10px;
}
.fee-tip-modal.confirm-modal .ui-prompt-field {
  display: grid;
  gap: 8px;
  margin: 0;
}
.fee-tip-modal.confirm-modal .ui-prompt-label {
  font-size: 13px;
  font-weight: 700;
  color: var(--muted);
  letter-spacing: 0.01em;
}
.fee-tip-modal.confirm-modal .ui-prompt-input {
  margin-top: 0;
}
.fee-tip-modal.confirm-modal .ui-prompt-msg {
  margin-bottom: 2px;
}
html[data-theme="dark"] .fee-tip-modal.confirm-modal .admin-prompt-input,
html[data-theme="dark"] .fee-tip-modal.confirm-modal .ui-prompt-input {
  border-color: rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.06);
}
html[data-theme="dark"] .fee-tip-modal.confirm-modal .admin-prompt-input:focus,
html[data-theme="dark"] .fee-tip-modal.confirm-modal .ui-prompt-input:focus {
  border-color: rgba(255, 255, 255, 0.35);
  box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.08);
}

.product .prow {
  display: grid;
  grid-template-columns: 40px 1fr auto;
  gap: 10px;
  align-items: center;
}
.pname { margin: 0; font-size: 15px; font-weight: 800; }
.role-tag {
  display: inline-block;
  margin-left: 6px;
  padding: 1px 7px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  vertical-align: middle;
}
.role-tag.role-main {
  background: var(--chip-bg);
  color: var(--up);
}
.role-tag.role-repair {
  background: rgba(180, 110, 20, 0.16);
  color: #a05a10;
}
.psub { margin-top: 2px; font-size: 12px; color: var(--muted); }
.pmeta {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 6px;
}
.acc-switch {
  position: relative;
  display: inline-block;
  width: 40px;
  height: 22px;
  flex-shrink: 0;
  cursor: pointer;
}
.acc-switch input {
  opacity: 0;
  width: 0;
  height: 0;
  position: absolute;
}
.acc-slider {
  position: absolute;
  inset: 0;
  background: color-mix(in srgb, #8c8c8c 26%, #fff);
  border-radius: 999px;
  transition: background 0.18s ease;
}
.acc-slider::before {
  content: "";
  position: absolute;
  width: 18px;
  height: 18px;
  left: 2px;
  top: 2px;
  background: var(--panel);
  border-radius: 50%;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.18);
  transition: transform 0.18s ease;
}
.acc-switch input:checked + .acc-slider {
  background: var(--up);
}
.acc-switch input:checked + .acc-slider::before {
  transform: translateX(18px);
}
.acc-switch input:focus-visible + .acc-slider {
  outline: 2px solid rgba(0,0,0,0.2);
  outline-offset: 2px;
}
.product.off {
  opacity: 0.55;
  outline: none;
}
.product.off .actions-row .btn[disabled] {
  opacity: 0.45;
  cursor: not-allowed;
}
.prisk {
  font-size: 11px; font-weight: 700; color: var(--teal);
  background: var(--chip-bg); padding: 4px 8px; border-radius: 999px;
}
.prisk-dual {
  color: #a05a10;
  background: rgba(180, 110, 20, 0.16);
}
.prisk-preview {
  color: #5a6a80;
  background: rgba(90, 106, 128, 0.14);
}
.pdesc { display: none; }

.empty {
  background: var(--panel);
  border-radius: 16px;
  padding: 22px 16px;
  color: var(--muted);
  font-size: 13px;
  text-align: center;
  line-height: 1.5;
}

.actions-row { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }

/* 手机/窄屏（与 fund 底栏 899 一致）：持仓卡 K 线 + 更多 加大触控 */
@media (max-width: 899px) {
  .holding-head-actions .holding-info .kline-btn.hold-tool-btn,
  .holding-head-actions .holding-info .hold-more-btn.hold-tool-btn,
  .holding-info .kline-btn.hold-tool-btn,
  .holding-info .hold-more-btn.hold-tool-btn {
    min-width: 40px !important;
    min-height: 40px !important;
    width: 40px !important;
    height: 40px !important;
    box-sizing: border-box;
  }
  .holding-head-actions .holding-info .kline-btn .hold-tool-svg,
  .holding-head-actions .holding-info .hold-more-btn .hold-tool-svg,
  .holding-head-actions .holding-info .kline-btn svg,
  .holding-head-actions .holding-info .hold-more-btn svg,
  .holding-info .kline-btn .hold-tool-svg,
  .holding-info .hold-more-btn .hold-tool-svg,
  .holding-info .kline-btn svg,
  .holding-info .hold-more-btn svg,
  .hold-tool-btn.kline-btn .hold-tool-svg,
  .hold-tool-btn.hold-more-btn .hold-tool-svg {
    width: 26px !important;
    height: 26px !important;
    max-width: none !important;
    max-height: none !important;
  }
  .holding-head-actions .holding-info.is-row,
  .holding-head-actions .holding-info.is-col {
    gap: 6px !important;
  }
  .holding-head-actions .holding-info .hold-more-dot {
    top: 6px;
    right: 6px;
    width: 8px;
    height: 8px;
  }
}
