/* ==========================================================================
   app.css — TOUCH APP · Material Design 3 (Material You)
   动态色板：浅色/深色随系统 prefers-color-scheme；品牌主色取自 TOUCH LOGO
   ========================================================================== */

/* ---------- MD3 Tokens ---------- */
:root {
  --md-sys-shape-l: 28px;
  --md-sys-shape-m: 16px;
  --md-sys-shape-s: 10px;
}
:root {
  /* light scheme */
  --primary: #B3002D;
  --on-primary: #FFFFFF;
  --primary-c: #FFD9DC;
  --secondary-c: #F3EDF1;
  --tertiary: #145AF2;
  --tertiary-c: #DCE7FF;
  --surface: #F7F8FC;
  --surface-c: #FFFFFF;
  --surface-c-2: #F0F1F7;
  --on-surface: #1B1B1F;
  --on-surface-v: #46464F;
  --outline: #C8C5D0;
  --outline-v: #79767F;
  --bar: rgba(255,255,255,.92);
  --tabs: rgba(255,255,255,.94);
  --scrim: rgba(0,0,0,.38);
  --elev-1: 0 1px 3px rgba(0,0,0,.10), 0 1px 2px rgba(0,0,0,.08);
  --elev-2: 0 4px 14px rgba(0,0,0,.12);
  --elev-3: 0 10px 30px rgba(0,0,0,.18);
  --grad: linear-gradient(135deg, #B3002D 0%, #E8442E 55%, #F59E1B 120%);
  --ok: #1E8E3E; --err: #C5221F;
}
:root[data-dark="1"] {
  /* dark scheme */
  --primary: #FFB2B8;
  --on-primary: #680014;
  --primary-c: #7A0020;
  --secondary-c: #4A4450;
  --tertiary: #ADC6FF;
  --tertiary-c: #23408F;
  --surface: #121218;
  --surface-c: #1D1D23;
  --surface-c-2: #26262E;
  --on-surface: #E5E1E8;
  --on-surface-v: #C8C4CE;
  --outline: #48454E;
  --outline-v: #938F99;
  --bar: rgba(18,18,24,.92);
  --tabs: rgba(24,24,30,.94);
  --scrim: rgba(0,0,0,.55);
  --elev-1: 0 1px 3px rgba(0,0,0,.5);
  --elev-2: 0 4px 14px rgba(0,0,0,.55);
  --elev-3: 0 10px 30px rgba(0,0,0,.6);
}

* { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
html { height: 100%; }
body {
  margin: 0; min-height: 100%;
  font-family: "Segoe UI", Roboto, "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
  background: var(--surface); color: var(--on-surface);
  transition: background .25s, color .25s;
  -webkit-font-smoothing: antialiased;
  /* v1.9.80 底栏防抖：禁 WebView/浏览器边缘回弹（橡皮筋），固定底栏不再被拽动 */
  overscroll-behavior-y: none; -webkit-overflow-scrolling: touch;
}
button { font-family: inherit; }
img { max-width: 100%; }

/* ---------- Splash（v1.9.5 品牌启动封面：深空极光 + 呼吸光环 + 流光 + 渐变品牌字） ---------- */
.splash {
  position: fixed; inset: 0; z-index: 60; display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  background: #070B16; color: #fff; overflow: hidden;
  transition: opacity .6s ease, visibility .6s;
}
.splash.is-off { opacity: 0; visibility: hidden; pointer-events: none; }
.splash__art {
  position: absolute; inset: -22%; pointer-events: none; filter: blur(2px);
  background:
    radial-gradient(42% 32% at 24% 18%, rgba(56,189,248,.34), transparent 70%),
    radial-gradient(38% 30% at 78% 26%, rgba(129,90,255,.30), transparent 72%),
    radial-gradient(52% 40% at 50% 88%, rgba(14,165,183,.26), transparent 74%),
    radial-gradient(30% 24% at 82% 74%, rgba(236,72,153,.15), transparent 70%);
  animation: splDrift 9s ease-in-out infinite alternate;
}
@keyframes splDrift { from { transform: translate3d(-2%, -1.5%, 0) scale(1); } to { transform: translate3d(2%, 2%, 0) scale(1.06); } }
.splash__art::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(115deg, transparent 42%, rgba(255,255,255,.10) 50%, transparent 58%);
  animation: splSweep 3.2s ease-in-out infinite;
}
@keyframes splSweep { 0% { transform: translateX(-70%); } 55%, 100% { transform: translateX(70%); } }
.splash__core {
  position: relative; display: flex; flex-direction: column; align-items: center;
  /* v1.9.17 品牌区整体上移；v1.9.21 再上移一个 LOGO 高度（96px，用户 2026-09-21 晚口径）。
     只加下外边距，不动 .splash__art 背景与 .splash__foot 底部署名。 */
  margin-bottom: calc(9vh + 96px);
  animation: splUp .8s cubic-bezier(.2, .7, .2, 1) both;
}
@keyframes splUp { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
/* v1.9.10 启动页 LOGO 净化：去掉方框底板、1px 描边与呼吸光环（方环、圆环全部移除），
   只保留 Logo 本体 —— 启动页上不再有任何「框 / 圈」装饰 */
.splash__halo {
  position: relative; width: 132px; height: 132px; display: flex; align-items: center; justify-content: center;
}
.splash img { border-radius: 26px; width: 96px; height: 96px; box-shadow: 0 10px 34px rgba(0, 0, 0, .45); }
.splash__name {
  font-size: 30px; font-weight: 800; letter-spacing: .22em; text-indent: .22em; margin-top: 8px;
  background: linear-gradient(92deg, #fff 30%, #a5e4ff 62%, #cdb6ff 92%);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.splash__sub { font-size: 10px; letter-spacing: .42em; text-indent: .42em; opacity: .6; }
.splash__line {
  width: 56px; height: 2px; border-radius: 2px; margin-top: 6px;
  background: linear-gradient(90deg, rgba(125,211,252,.9), rgba(196,181,253,.9));
  box-shadow: 0 0 12px rgba(125,211,252,.6);
}
.splash__tag { font-size: 11px; letter-spacing: .14em; opacity: .75; margin-top: 2px; }
.splash__foot { position: absolute; bottom: calc(20px + env(safe-area-inset-bottom)); font-size: 10px; letter-spacing: .18em; opacity: .38; }
@media (prefers-reduced-motion: reduce) {
  .splash__art, .splash__art::after, .splash__core { animation: none; }
}

/* ---------- Top app bar ---------- */
.bar {
  position: sticky; top: 0; z-index: 30;
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding: calc(8px + env(safe-area-inset-top)) 14px 8px;
  background: var(--bar); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid color-mix(in srgb, var(--outline) 34%, transparent);
  /* v1.9.80 顶栏同步加固：独立合成层，滚动不闪 */
  transform: translateZ(0);
}
.bar__lead { display: flex; align-items: center; gap: 10px; min-width: 0; }
.bar__logo { border-radius: 9px; flex: none; }
.bar__tt { display: flex; flex-direction: column; line-height: 1.15; min-width: 0; }
.bar__name { font-size: 17px; font-weight: 800; letter-spacing: .18em; }
/* v1.9.13 顶栏两行字上下对齐：小字改短文案 + 与大字同字距节奏，右缘不再凸出 */
.bar__slogan { font-size: 10.5px; color: var(--on-surface-v); letter-spacing: .1em;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* MD3 chip */
.chip {
  border: 1px solid var(--outline); background: transparent; color: var(--on-surface);
  height: 34px; padding: 0 14px; border-radius: 999px; font-size: 12.5px; font-weight: 600;
  cursor: pointer; display: inline-flex; align-items: center; gap: 6px; flex: none;
  transition: background .18s;
}
.chip:active { background: var(--surface-c-2); }

/* ---------- View ---------- */
.view { padding: 16px 14px calc(96px + env(safe-area-inset-bottom)); outline: none; max-width: 560px; margin: 0 auto; }

/* ---------- Bottom navigation (MD3) ---------- */
.tabs {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 30;
  display: grid; grid-template-columns: repeat(5, 1fr);
  padding: 6px 4px calc(8px + env(safe-area-inset-bottom));
  background: var(--tabs); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
  border-top: 1px solid color-mix(in srgb, var(--outline) 30%, transparent);
  /* v1.9.80 底栏固定不动：独立合成层，滚动/回弹不再引发重绘位移 */
  transform: translateZ(0); will-change: transform;
}
.tab {
  appearance: none; border: 0; background: none; cursor: pointer;
  display: flex; flex-direction: column; align-items: center; gap: 3px; padding: 4px 0 2px;
  color: var(--on-surface-v);
}
.tab__ic {
  width: 56px; height: 30px; border-radius: 999px; display: grid; place-items: center;
  transition: background .2s, color .2s; color: inherit;
}
.tab__ic svg { width: 21px; height: 21px; display: block; }
.tab__lb { font-size: 10.5px; font-weight: 600; letter-spacing: .02em; }
.tab.is-on .tab__ic { background: var(--primary-c); color: var(--primary); }
.tab.is-on { color: var(--on-surface); }
.tab.is-on .tab__lb { font-weight: 800; }

/* ---------- MD3 Card ---------- */
.card {
  background: var(--surface-c); border-radius: var(--md-sys-shape-m);
  box-shadow: var(--elev-1); overflow: hidden; margin-top: 14px;
  transition: transform .16s, box-shadow .16s;
}
.card:active { transform: scale(.985); }
.card--hero { background: #070B16; color: #fff; border-radius: var(--md-sys-shape-l); position: relative; }
.card--hero img.hv { width: 100%; height: 190px; object-fit: cover; opacity: .68; display: block; }
.card--hero .hv-grad { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(7,11,22,.10) 30%, rgba(7,11,22,.86) 100%); }
.card--hero .hv-body { position: absolute; left: 20px; right: 20px; bottom: 18px; }
.card--hero h1 { margin: 6px 0 0; font-size: 23px; line-height: 1.32; font-weight: 800; }
.card--hero .hv-kicker { font-size: 10.5px; letter-spacing: .3em; color: #FFC9A3; font-weight: 700; }
.card--hero .hv-sub { margin: 8px 0 0; font-size: 12.5px; line-height: 1.7; color: rgba(255,255,255,.82); }

.sec-t { display: flex; align-items: baseline; justify-content: space-between; margin: 26px 2px 0; }
.sec-t h2 { margin: 0; font-size: 16.5px; font-weight: 800; }
.sec-t a, .sec-t button.link { font-size: 12px; color: var(--tertiary); background: none; border: 0; cursor: pointer; font-weight: 600; text-decoration: none; }

/* stats */
.stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 12px; }
.stat { background: var(--surface-c); border-radius: var(--md-sys-shape-m); box-shadow: var(--elev-1); padding: 13px 10px 11px; text-align: center; }
.stat b { display: block; font-size: 19px; font-weight: 800; background: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent; }
.stat span { display: block; margin-top: 4px; font-size: 10px; line-height: 1.45; color: var(--on-surface-v); }

/* horizontal solution rail */
.rail { display: flex; gap: 12px; overflow-x: auto; padding: 12px 2px 6px; margin: 0 -14px; padding-left: 14px; padding-right: 14px; scroll-snap-type: x mandatory; }
.rail::-webkit-scrollbar { display: none; }
.rail .sol { flex: 0 0 168px; scroll-snap-align: start; }
.sol { background: var(--surface-c); border-radius: var(--md-sys-shape-m); box-shadow: var(--elev-1); overflow: hidden; cursor: pointer; }
.sol img { width: 100%; height: 92px; object-fit: cover; display: block; }
.sol .sol-b { padding: 10px 12px 12px; }
.sol .sol-n { font-size: 10px; font-weight: 800; color: var(--primary); letter-spacing: .12em; }
.sol h3 { margin: 3px 0 0; font-size: 14px; font-weight: 700; }
.sol p { margin: 5px 0 0; font-size: 11px; line-height: 1.55; color: var(--on-surface-v);
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

/* chips row (filter) */
.chips { display: flex; gap: 8px; overflow-x: auto; padding: 14px 2px 4px; margin: 0 -14px; padding-left: 14px; padding-right: 14px; }
.chips::-webkit-scrollbar { display: none; }
.fchip {
  flex: none; height: 34px; padding: 0 15px; border-radius: 999px; font-size: 12.5px; font-weight: 600;
  border: 1px solid var(--outline); background: transparent; color: var(--on-surface-v); cursor: pointer;
}
.fchip.is-on { background: var(--secondary-c); border-color: transparent; color: var(--on-surface); box-shadow: var(--elev-1); }

/* product / job card */
.pcard { display: flex; gap: 13px; padding: 13px; cursor: pointer; }
.pcard .ph { width: 88px; height: 88px; border-radius: var(--md-sys-shape-s); background: linear-gradient(135deg, #101828, #2A3A5C); flex: none; display: grid; place-items: center; overflow: hidden; }
.pcard .ph img { width: 100%; height: 100%; object-fit: cover; }
.pcard .ph svg { width: 30px; height: 30px; color: rgba(255,255,255,.65); }
.pcard .p-b { min-width: 0; flex: 1; display: flex; flex-direction: column; }
.pcard h3 { margin: 0; font-size: 14.5px; font-weight: 700; line-height: 1.4;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.pcard .p-s { margin: 4px 0 0; font-size: 11.5px; line-height: 1.55; color: var(--on-surface-v);
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.pcard .p-f { margin-top: auto; padding-top: 6px; display: flex; align-items: center; justify-content: space-between; }
.pcard .price { font-size: 13.5px; font-weight: 800; color: var(--primary); }
.tag { font-size: 10px; font-weight: 700; padding: 3px 9px; border-radius: 999px; background: var(--tertiary-c); color: var(--tertiary); letter-spacing: .04em; }
.tag--open { background: color-mix(in srgb, var(--ok) 14%, transparent); color: var(--ok); }

/* list rows (me tab) */
.rows { background: var(--surface-c); border-radius: var(--md-sys-shape-m); box-shadow: var(--elev-1); margin-top: 14px; overflow: hidden; }
.row { display: flex; align-items: center; gap: 13px; width: 100%; padding: 15px 16px; background: none; border: 0; cursor: pointer; text-align: left; color: var(--on-surface); text-decoration: none; font-size: 14px; font-weight: 600; }
.row + .row { border-top: 1px solid color-mix(in srgb, var(--outline) 26%, transparent); }
.row:active { background: var(--surface-c-2); }
.row .r-ic { width: 36px; height: 36px; border-radius: 999px; display: grid; place-items: center; background: var(--secondary-c); color: var(--primary); flex: none; }
.row .r-ic svg { width: 18px; height: 18px; }
.row .r-x { margin-left: auto; color: var(--outline-v); font-size: 16px; }
.r-sub { display: block; font-size: 11px; font-weight: 400; color: var(--on-surface-v); margin-top: 2px; }
.row .r-sub { margin-top: 2px; }

/* MD3 buttons */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 7px; height: 46px; padding: 0 22px;
  border-radius: 999px; font-size: 14px; font-weight: 700; cursor: pointer; border: 0; text-decoration: none;
  transition: box-shadow .18s, transform .12s; }
.btn:active { transform: scale(.97); }
.btn--fill { background: var(--grad); color: #fff; box-shadow: var(--elev-1); }
.btn--tonal { background: var(--secondary-c); color: var(--on-surface); }
.btn--out { background: transparent; border: 1px solid var(--outline); color: var(--primary); }
.btn--block { width: 100%; }

/* segmented (language) */
.seg { display: grid; grid-template-columns: repeat(3, 1fr); background: var(--surface-c-2); border-radius: 999px; padding: 4px; gap: 2px; margin-top: 10px; }
.seg button { height: 38px; border: 0; border-radius: 999px; background: none; color: var(--on-surface-v); font-size: 12.5px; font-weight: 700; cursor: pointer; }
.seg button.is-on { background: var(--surface-c); color: var(--on-surface); box-shadow: var(--elev-1); }

/* ---------- Bottom sheet ---------- */
.sheet-host { position: fixed; inset: 0; z-index: 50; }
.sheet-scrim { position: absolute; inset: 0; background: var(--scrim); opacity: 0; transition: opacity .28s; }
.sheet { position: absolute; left: 0; right: 0; bottom: 0; background: var(--surface-c);
  border-radius: var(--md-sys-shape-l) var(--md-sys-shape-l) 0 0; box-shadow: var(--elev-3);
  max-height: 86vh; max-width: 560px; margin: 0 auto; transform: translateY(100%); transition: transform .32s cubic-bezier(.2,0,0,1);
  display: flex; flex-direction: column; padding-bottom: env(safe-area-inset-bottom); }
.sheet-host.is-open .sheet-scrim { opacity: 1; }
.sheet-host.is-open .sheet { transform: translateY(0); }
.sheet__grip { width: 34px; height: 4px; border-radius: 999px; background: var(--outline); margin: 10px auto 4px; flex: none; }
.sheet__body { overflow-y: auto; padding: 10px 20px 24px; }
.sheet__body h2 { margin: 4px 0 0; font-size: 18px; line-height: 1.4; font-weight: 800; }
.sheet__body .price { margin-top: 8px; font-size: 16px; font-weight: 800; color: var(--primary); }
.sheet__body p { margin: 12px 0 0; font-size: 13.5px; line-height: 1.85; color: var(--on-surface-v); white-space: pre-line; }
.sheet__body .kv { margin-top: 14px; border-top: 1px solid color-mix(in srgb, var(--outline) 30%, transparent); }
.sheet__body .kv div { display: flex; justify-content: space-between; gap: 14px; padding: 9px 0; border-bottom: 1px solid color-mix(in srgb, var(--outline) 22%, transparent); font-size: 12.5px; }
.sheet__body .kv b { color: var(--on-surface); font-weight: 600; text-align: right; }
.sheet__body .kv span { color: var(--on-surface-v); flex: none; }
.sheet__body .s-acts { display: flex; gap: 10px; margin-top: 20px; }
.sheet__body .s-acts .btn { flex: 1; }
.sheet__media { height: 180px; border-radius: var(--md-sys-shape-m); overflow: hidden; background: linear-gradient(135deg, #101828, #2A3A5C); margin-bottom: 14px; display: grid; place-items: center; }
.sheet__media img { width: 100%; height: 100%; object-fit: cover; }
.sheet__media svg { width: 44px; height: 44px; color: rgba(255,255,255,.6); }
/* 产品详情：多图相册（主图完整展示 + 缩略图切换） */
/* 主图：宽度固定撑满、高度按图片比例自动撑开，不裁切不变形 */
.sheet__media.pm-main { height: auto; place-items: stretch; padding: 10px 10px 14px; }
.pm-main img { width: 100%; height: auto; object-fit: contain; padding: 0; }
.pm-count { position: absolute; right: 10px; bottom: 10px; background: rgba(0,0,0,.55); color: #fff;
  font-size: 11px; font-weight: 600; padding: 3px 10px; border-radius: 999px; pointer-events: none; }
.pm-main { position: relative; }
.pm-thumbs { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(64px, 1fr); gap: 8px;
  overflow-x: auto; margin: -6px 0 14px; padding: 2px; -webkit-overflow-scrolling: touch; }
.pm-t { height: 58px; border: 2px solid transparent; border-radius: 12px; padding: 3px; cursor: pointer;
  background: linear-gradient(135deg, #101828, #2A3A5C); overflow: hidden; flex: none; }
.pm-t img { width: 100%; height: 100%; object-fit: contain; }
.pm-t.is-on { border-color: var(--primary); }
.pm-morebtn { display: block; width: 100%; margin-top: 12px; padding: 10px; font-size: 12.5px;
  background: transparent; border: 1px solid var(--outline); border-radius: 999px;
  color: var(--on-surface); cursor: pointer; }

/* 产品详情：视频展示（与主站行为一致：自动播放+静音+循环，可手动控制） */
.pm-video { display: block; width: 100%; aspect-ratio: 16 / 9; background: #000;
  border-radius: var(--md-sys-shape-m); margin: -6px 0 14px; object-fit: contain; }

/* 视频高度按片源真实比例自适应：宽度恒为 100%，高度自动（元数据加载后生效） */
.pm-video { width: 100%; height: auto; aspect-ratio: auto; }

.pm-video-wrap { margin-bottom: 14px; }

.pm-video-wrap .pm-video { margin: 0; }

/* toast */
.toast { position: fixed; left: 50%; bottom: calc(100px + env(safe-area-inset-bottom)); transform: translateX(-50%) translateY(16px);
  background: #323247; color: #fff; font-size: 13px; padding: 11px 20px; border-radius: 999px; box-shadow: var(--elev-2);
  z-index: 70; opacity: 0; transition: opacity .25s, transform .25s; max-width: 86vw; text-align: center; }
.toast.is-on { opacity: 1; transform: translateX(-50%) translateY(0); }

/* loading skeleton */
.skel { height: 108px; border-radius: var(--md-sys-shape-m); margin-top: 14px;
  background: linear-gradient(100deg, var(--surface-c-2) 40%, color-mix(in srgb, var(--outline) 22%, var(--surface-c-2)) 50%, var(--surface-c-2) 60%);
  background-size: 240% 100%; animation: sh 1.15s infinite; }
@keyframes sh { from { background-position: 130% 0; } to { background-position: -40% 0; } }

.empty { text-align: center; padding: 44px 20px; color: var(--on-surface-v); font-size: 13px; }
.empty .e-ic { font-size: 34px; }

/* culture banner in jobs */
.jb-ban { border-radius: var(--md-sys-shape-l); overflow: hidden; position: relative; margin-top: 14px; background: #070B16; color: #fff; }
.jb-ban img { width: 100%; height: 150px; object-fit: cover; opacity: .62; display: block; }
.jb-ban .b-body { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: center; padding: 0 20px;
  background: linear-gradient(90deg, rgba(7,11,22,.72) 20%, rgba(7,11,22,.16)); }
.jb-ban b { font-size: 17px; }
.jb-ban span { font-size: 11.5px; margin-top: 5px; color: rgba(255,255,255,.8); }

@media (min-width: 640px) { .view { padding-top: 22px; } }

/* ==== v1.1.0：首页 BANNER 轮播（与官网同频，等比缩放不裁切）==== */
.hero-car__slides { position: absolute; inset: 0; }
.hero-car__slide { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
  opacity: 0; transition: opacity .9s ease; }
.hero-car__slide.is-on { opacity: 1; }
.hero-car__dots { position: absolute; right: 14px; bottom: 12px; display: flex; gap: 5px; z-index: 2; }
.hero-car__dots i { width: 6px; height: 6px; border-radius: 50%; background: rgba(255,255,255,.45);
  transition: background .3s, width .3s; }
.hero-car__dots i.is-on { background: #fff; width: 16px; border-radius: 3px; }
.card--hero.hero-car { overflow: hidden; aspect-ratio: 16 / 10.5; min-height: 210px; }
.card--hero.hero-car .hv-grad { z-index: 1; }
.card--hero.hero-car .hv-body { z-index: 2; }
@media (min-width: 480px) { .card--hero.hero-car { aspect-ratio: 16 / 8.5; } }

/* ==== v1.1.0：深圳人文卡（招聘页，与官网招聘页同源）==== */
.sz-card { overflow: hidden; }
.sz-card img { width: 100%; height: 148px; object-fit: cover; display: block; background: var(--surface-c-2); }
.sz-card .sz-b { padding: 14px 16px 16px; }
.sz-card h3 { margin: 8px 0 0; font-size: 15.5px; font-weight: 800; }
.sz-card p { margin: 6px 0 0; font-size: 12.5px; line-height: 1.75; color: var(--on-surface-v); }

/* ==== v1.2.0 创新交互：交错入场 / 推荐卡 / 按压反馈 / Ken Burns ==== */
@keyframes revealIn { from { opacity: 0; transform: translateY(14px) scale(.98); }
  to { opacity: 1; transform: none; } }
.reveal-in { animation: revealIn .5s cubic-bezier(.22,.9,.34,1) both; }
@media (prefers-reduced-motion: reduce) { .reveal-in { animation: none; } }

/* 推荐卡：渐变描边 + 徽标 */
.sol--feat, .pcard--feat { position: relative; border: 1.5px solid transparent; background:
  linear-gradient(var(--surface-c, #fff), var(--surface-c, #fff)) padding-box,
  linear-gradient(135deg, #e23a3a, #7c5cff) border-box; }
.sol__badge { display: inline-block; vertical-align: 2px; margin-left: 6px; padding: 2px 8px;
  border-radius: 999px; font-size: 10.5px; font-weight: 800; letter-spacing: .05em; color: #fff;
  background: linear-gradient(135deg, #e23a3a, #7c5cff); }
.sol--feat .sol__badge { position: absolute; top: 10px; right: 10px; margin: 0; }
.sol-b h3 .sol__badge { position: static; }

/* 按压反馈 */
.pcard, .sol { transition: transform .18s ease, box-shadow .18s ease; }
.pcard:active, .sol:active { transform: scale(.965); box-shadow: 0 2px 10px rgba(0,0,0,.10); }

/* BANNER Ken Burns：当前帧缓慢放大，切换时呼吸感 */
@keyframes kenburns { from { transform: scale(1); } to { transform: scale(1.07); } }
.hero-car__slide.is-on { animation: kenburns 7s ease-out both; }
@media (prefers-reduced-motion: reduce) { .hero-car__slide.is-on { animation: none; } }

/* 底部标签切换激活态小动画 */
.tabbar .tb.is-on { animation: tbPop .28s cubic-bezier(.34,1.56,.64,1); }
@keyframes tbPop { 0% { transform: scale(.9); } 100% { transform: scale(1); } }

/* ==========================================================================
   v1.2.0：终端识别自适应 + 小屏规划 + 感动生态 + 推荐职位徽标
   ========================================================================== */

/* ---------- 终端识别：<html data-device="phone|tablet"> ---------- */
/* 平板：宽版布局，列表双列、文化卡三列，字号微升 */
html[data-device="tablet"] .view { max-width: 800px; padding-left: 24px; padding-right: 24px; }
html[data-device="tablet"] .rail { margin: 0 -24px; padding-left: 24px; padding-right: 24px; }
html[data-device="tablet"] .rail .sol { flex-basis: 200px; }
html[data-device="tablet"] #prodList,
html[data-device="tablet"] #jobList { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; align-items: stretch; }
html[data-device="tablet"] #szCulture { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
html[data-device="tablet"] .eco { grid-template-columns: 1fr 1fr 1fr; gap: 12px; }
html[data-device="tablet"] .stats { grid-template-columns: repeat(3, 1fr); }
html[data-device="tablet"] .card--hero.hero-car { aspect-ratio: 16 / 7.5; }
html[data-device="tablet"] .card--hero h1 { font-size: 27px; }
html[data-device="tablet"] .sec-t h2 { font-size: 18px; }
html[data-device="tablet"] .pcard h3 { font-size: 15.5px; }
html[data-device="tablet"] .sheet { max-width: 680px; }

/* 超小屏手机（≤360px）：紧凑排版，小机合理规划不留白、不溢出 */
@media (max-width: 360px) {
  .view { padding: 12px 10px calc(88px + env(safe-area-inset-bottom)); }
  .rail { margin: 0 -10px; padding-left: 10px; padding-right: 10px; }
  .card--hero h1 { font-size: 20px; }
  .card--hero .hv-sub { font-size: 11.5px; }
  .card--hero.hero-car { min-height: 190px; }
  .stats { gap: 8px; }
  .stat b { font-size: 16.5px; }
  .stat span { font-size: 9.5px; }
  .sec-t { margin-top: 20px; }
  .sec-t h2 { font-size: 15px; }
  .pcard { gap: 10px; padding: 11px; }
  .pcard .ph { width: 74px; height: 74px; }
  .pcard h3 { font-size: 13.5px; }
  .sol { flex-basis: 150px; }
  .sz-card img { height: 120px; }
  .jb-ban b { font-size: 15px; }
}

/* ---------- 感动生态（首页品牌入口） ---------- */
.eco { display: grid; grid-template-columns: 1fr; gap: 12px; margin: 12px 2px 0; }
.eco-card { display: block; padding: 0; overflow: hidden; text-decoration: none; color: inherit;
  transition: transform .18s ease, box-shadow .18s ease; }
.eco-card:active { transform: scale(.965); box-shadow: 0 2px 10px rgba(0,0,0,.10); }
.eco-card__ph { position: relative; aspect-ratio: 16 / 8; overflow: hidden; background: var(--surface-c-2); }
.eco-card__ph img { width: 100%; height: 100%; object-fit: cover; display: block; }
.eco-card__tag { position: absolute; right: 10px; bottom: 10px; padding: 4px 11px; border-radius: 999px;
  font-size: 10.5px; font-weight: 700; color: #fff; background: rgba(10, 14, 26, .62);
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.eco-b { padding: 12px 14px 14px; }
.eco-b h3 { margin: 0; font-size: 15.5px; font-weight: 800; }
.eco-b p { margin: 4px 0 0; font-size: 12px; line-height: 1.6; color: var(--on-surface-v); }

/* ---------- 推荐职位「推荐」徽标 ---------- */
.tag--feat { color: #6d5314; background: linear-gradient(135deg, #f7e3b0, #e9c96a); }
.pcard--feat { border: 1.5px solid transparent; background:
  linear-gradient(var(--surface), var(--surface)) padding-box,
  linear-gradient(120deg, rgba(212,168,83,.75), rgba(233,201,106,.35)) border-box; }

/* ==========================================================================
   v1.2.1：原生内页（子页面框架 / 文档 / 会员专区 / 关于我们 / 联系 / 更新）
   ========================================================================== */
.sub { position: fixed; inset: 0; z-index: 90; display: flex; flex-direction: column;
  background: var(--bg-c, #f5f6fa); animation: subIn .22s ease; }
.sub[hidden] { display: none; }
@keyframes subIn { from { opacity: 0; transform: translateX(20px); } to { opacity: 1; transform: none; } }
.sub-hd { flex: 0 0 auto; display: flex; align-items: center; gap: 6px;
  padding: calc(10px + env(safe-area-inset-top)) 12px 10px;
  background: var(--surface); border-bottom: 1px solid var(--outline-v, rgba(0,0,0,.07)); }
.sub-back { width: 34px; height: 34px; padding: 0; border: 0; background: transparent; border-radius: 50%;
  display: flex; align-items: center; justify-content: center; color: inherit; }
.sub-back:active { background: var(--surface-c-2, rgba(0,0,0,.06)); }
.sub-back svg { width: 20px; height: 20px; transform: rotate(180deg); }
/* v1.9.14 感动家园家族页：左上角返回位显示感动 LOGO（点击仍为返回） */
.sub-back--logo { background: transparent !important; }
.sub-back--logo img { width: 26px; height: 26px; max-width: none; object-fit: contain; border-radius: 8px; display: block; box-shadow: 0 1px 4px rgba(0,0,0,.14); }
/* v1.9.35 感说交流页：左上返回位用户头像（圆形裁剪；无头像时首字圆形徽标） */
.sub-back--logo img.sub-back__av { border-radius: 50%; object-fit: cover; }
.sub-back__av--txt { width: 26px; height: 26px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
  background: var(--grad); color: #fff; font-style: normal; font-weight: 700; font-size: 13px; line-height: 1;
  box-shadow: 0 1px 4px rgba(0,0,0,.14); }
.sub-tt { font-size: 15.5px; font-weight: 750; }
.sub-bd { flex: 1 1 auto; overflow-y: auto; -webkit-overflow-scrolling: touch;
  padding: 14px 14px calc(28px + env(safe-area-inset-bottom)); }
html[data-device=tablet] .sub-bd { max-width: 800px; margin: 0 auto; width: 100%; }
.doc h2 { font-size: 16.5px; margin: 18px 2px 8px; }
.doc h2:first-child { margin-top: 4px; }
.doc h3 { font-size: 14.5px; margin: 14px 2px 6px; }
.doc p, .doc li { font-size: 13px; line-height: 1.85; color: var(--on-surface-v); margin: 0 2px 8px; }
.doc ul, .doc ol { padding-left: 18px; margin: 0 0 8px; }
.doc-load { text-align: center; color: var(--on-surface-v); padding: 46px 0; font-size: 13px; }
.about-hd { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 22px 0 16px; }
.about-hd img { border-radius: 16px; box-shadow: 0 6px 18px rgba(0,0,0,.12); }
.about-hd b { font-size: 17px; }
.about-hd span { font-size: 11.5px; color: var(--on-surface-v); }
.sub .row .r-x { flex: 1; min-width: 0; white-space: normal; text-align: right; word-break: break-all; }
.upd-card { display: flex; gap: 12px; align-items: center; padding: 16px; }
.upd-v { margin: 2px 0 0; font-size: 12px; color: var(--on-surface-v); }
.upd-st { margin: 6px 0 0; font-size: 13px; font-weight: 700; color: #1a7f4b; min-height: 18px; }
.mem-card { display: flex; gap: 12px; align-items: center; padding: 16px; margin-bottom: 14px; }
.mem-seg { margin-bottom: 12px; }
.mem-form { display: flex; flex-direction: column; gap: 10px; padding: 16px; }
.f-in { width: 100%; border: 1px solid var(--outline-v, rgba(0,0,0,.10)); background: var(--surface-c, #fff);
  border-radius: 12px; padding: 11px 12px; font-size: 14px; color: inherit; outline: none; }
.f-in:focus { border-color: var(--brand, #d4a853); }
.f-row { display: flex; gap: 8px; }
.f-row .f-in { flex: 1; min-width: 0; }
.f-btn { flex: 0 0 auto; white-space: nowrap; }
.f-tip { margin: 0; font-size: 11.5px; color: var(--on-surface-v); line-height: 1.6; }
.mem-modes { display: flex; gap: 16px; font-size: 13.5px; }
.mem-modes label { display: flex; flex-direction: row; align-items: center; gap: 6px; }

/* 会员中心 Hub */
.mem-av { width: 52px; height: 52px; border-radius: 50%; object-fit: cover; display: inline-flex; }
.mem-av--d { align-items: center; justify-content: center; background: linear-gradient(135deg, #d4a853, #b8862f); color: #fff; }
.mem-av--d svg { width: 26px; height: 26px; }
.mem-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 12px 0 4px; }
.mem-stat { background: var(--surface); border: 1px solid var(--outline-v, rgba(0,0,0,.07)); border-radius: 16px; padding: 12px 8px; text-align: center; }
.mem-stat b { display: block; font-size: 16px; font-weight: 800; }
.mem-stat span { display: block; margin-top: 3px; font-size: 10.5px; color: var(--on-surface-v); }
.mem-avrow { display: flex; align-items: center; gap: 14px; }
.ord-card { padding: 14px 16px; margin-bottom: 10px; }
.ord-hd { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.ord-hd b { font-size: 13.5px; }
.ord-p { margin: 8px 0 0; font-size: 13px; color: var(--on-surface); }
.ord-amt { margin: 4px 0 0; font-size: 14px; font-weight: 800; color: #c0392b; }
.ord-lg { margin: 6px 0 0; font-size: 12px; color: var(--on-surface-v); }
.mem-back { display: inline-block; margin: 2px 0 10px; font-size: 13px; }

/* 感动生态 品牌二级页 */
.eco-hero { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 18px 0 6px; }
.eco-hero img { width: 100%; max-width: 420px; aspect-ratio: 16 / 8.5; object-fit: cover; border-radius: 16px; box-shadow: 0 8px 24px rgba(0,0,0,.14); }
.eco-hero b { font-size: 17px; margin-top: 6px; }
.eco-hero span { font-size: 12px; color: #b8862f; font-weight: 650; }
.eco-desc { font-size: 13px; line-height: 1.85; color: var(--on-surface-v); margin: 10px 2px 14px; }

/* ---- 感动生态 v2：封面式卡片（无进入品牌字样）+ 亮点速览 ---- */
.eco-card { position: relative; border-radius: 18px; }
.eco-card__ph { aspect-ratio: 16 / 8; }
.eco-card__ph::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(8,18,38,.02) 30%, rgba(8,18,38,.78)); }
.eco-b { position: absolute; left: 0; right: 0; bottom: 0; z-index: 1; display: flex; align-items: flex-end; justify-content: space-between; gap: 10px; padding: 12px 14px; }
.eco-b h3 { color: #fff; font-size: 16.5px; letter-spacing: .3px; text-shadow: 0 1px 6px rgba(0,0,0,.35); }
.eco-b p { color: rgba(255,255,255,.85); font-size: 11.5px; }
.eco-go { flex: none; width: 30px; height: 30px; border-radius: 50%; background: rgba(255,255,255,.18); color: #fff; font-size: 18px; line-height: 30px; text-align: center; font-weight: 700; }
.eco-feats { display: flex; flex-wrap: wrap; gap: 8px; margin: -4px 2px 14px; }
.eco-chip { padding: 6px 12px; border-radius: 999px; background: var(--surface-c-2, #F1F3F8); color: var(--on-surface, #1C2740); font-size: 12px; font-weight: 600; border: 1px solid rgba(28,39,64,.08); }
html[data-device=tablet] .eco-card__ph { aspect-ratio: 16 / 7; }

/* ==================== v1.3（2026-09-20） ==================== */
/* 轮播首帧：完整显示主视觉（舞者不出屏），后续帧仍 cover 裁切 */
.hero-car__slide--vis { object-fit: contain; background: #0C1324; }
.hero-car__slide--vis.is-on { animation: kenburns-vis 7s ease-out both; }
@keyframes kenburns-vis { from { transform: scale(1); } to { transform: scale(1.04); } }

/* 方案列表：v1.3 网格容器（平板/折叠屏展开一行两列） */
.sol-grid { display: grid; grid-template-columns: 1fr; gap: 12px; }
html[data-device="tablet"] .sol-grid { grid-template-columns: 1fr 1fr; }
html[data-device="tablet"] .sol-grid .pcard .ph { width: 64px !important; height: 64px !important; }

/* 方案详情 / 招聘详情 / 生态三级：原生子页排版 */
.sdet-hero { position: relative; border-radius: 18px; overflow: hidden; background: #0C1324; }
.sdet-hero img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; }
.sdet-cap { padding: 12px 2px 4px; }
.sdet-cap h2 { font-size: 19px; line-height: 1.35; margin: 2px 0; }
.sdet-cap .sol-n { color: #b8862f; font-weight: 700; font-size: 13px; }
.sdet-desc { font-size: 14px; line-height: 1.75; color: var(--on-surface-variant, #46506A); margin: 8px 0; white-space: pre-wrap; }
.sdet-t { font-size: 16px; font-weight: 750; margin: 20px 0 8px; padding-left: 10px; border-left: 3px solid #C8102E; }
.sdet-mets { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 12px 0; }
.sdet-met { background: var(--surface-c-2, #F1F3F8); border-radius: 14px; padding: 12px; }
.sdet-met b { display: block; font-size: 13.5px; margin-bottom: 4px; }
.sdet-met span { font-size: 12px; color: var(--on-surface-variant, #46506A); line-height: 1.5; }
.sdet-pain { background: #FBF3F4; border: 1px solid rgba(200,16,46,.10); border-radius: 14px; padding: 12px; margin: 8px 0; font-size: 13.5px; font-weight: 600; }
.sdet-pain span { display: block; font-weight: 400; color: var(--on-surface-variant, #46506A); font-size: 12.5px; margin-top: 4px; line-height: 1.6; }
.sdet-img { width: 100%; border-radius: 14px; display: block; margin: 8px 0; }
.sdet-gains { display: flex; flex-wrap: wrap; gap: 8px; }
.sdet-tip { font-size: 12px; color: var(--outline-variant, #8A94AB); margin-top: 14px; }
html[data-device="tablet"] .sub-bd { padding-left: 26px; padding-right: 26px; }
html[data-device="tablet"] .sdet-mets { grid-template-columns: 1fr 1fr 1fr; }

/* 招聘：BANNER 进入按钮 + 列表子页 */
.jb-go { margin-top: 10px; padding: 9px 16px; border-radius: 999px; border: none; background: #C8102E; color: #fff; font-size: 13px; font-weight: 700; cursor: pointer; }
.jb-go:active { opacity: .85; }
.jl-wrap { display: grid; gap: 12px; }
html[data-device="tablet"] .jl-wrap { grid-template-columns: 1fr 1fr; }

/* 感动生态 v1.3：首页 BANNER + 模块式展示 */
.eco-top { margin-top: 14px; }
.eco-bn { position: relative; border-radius: 18px; overflow: hidden; background: #0C1324; aspect-ratio: 16 / 8; }
.eco-bn__s { position: absolute; inset: 0; opacity: 0; transition: opacity .8s ease; cursor: pointer; }
.eco-bn__s.is-on { opacity: 1; }
.eco-bn__s img { width: 100%; height: 100%; object-fit: cover; display: block; }
.eco-bn__cap { position: absolute; left: 0; right: 0; bottom: 0; padding: 26px 16px 14px; background: linear-gradient(transparent, rgba(7,11,22,.85)); color: #fff; }
.eco-bn__cap b { display: block; font-size: 17px; }
.eco-bn__cap span { font-size: 12px; opacity: .85; }
.eco-bn__dots { position: absolute; right: 14px; top: 12px; display: flex; gap: 5px; }
.eco-bn__dots i { width: 6px; height: 6px; border-radius: 50%; background: rgba(255,255,255,.45); }
.eco-bn__dots i.is-on { background: #fff; }
.eco-mods { display: grid; gap: 12px; }
.eco-mod { display: block; border-radius: 18px; overflow: hidden; text-decoration: none; color: inherit; background: var(--surface-c-1, #fff); box-shadow: 0 2px 10px rgba(7,11,22,.07); }
.eco-mod__ph { height: 130px; background: #EEF1F6; }
.eco-mod__ph img { width: 100%; height: 100%; object-fit: cover; display: block; }
.eco-mod__b { position: relative; padding: 12px 40px 14px 14px; }
.eco-mod__b h3 { font-size: 15.5px; margin: 0 0 3px; }
.eco-mod__b p { font-size: 12px; color: var(--on-surface-variant, #46506A); margin: 0; }
html[data-device="tablet"] .eco-mods { grid-template-columns: 1fr 1fr 1fr; }

/* 原生收银台 */
.cash-wrap { display: grid; gap: 12px; padding-bottom: 24px; }
.cash-item { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.cash-item b { font-size: 15px; }
.cash-qty { display: flex; align-items: center; gap: 16px; }
.cash-qty button { width: 38px; height: 38px; border-radius: 12px; border: 1px solid rgba(28,39,64,.15); background: #fff; font-size: 18px; cursor: pointer; }
.cash-qty b { font-size: 16px; min-width: 24px; text-align: center; }
.cash-total { margin-left: auto; font-weight: 800; color: #C8102E; }
.cash-chans { display: grid; gap: 10px; }
.cash-chan { display: flex; align-items: center; gap: 10px; padding: 12px; border: 1px solid rgba(28,39,64,.12); border-radius: 14px; font-size: 14px; font-weight: 600; }
.cash-chan input { accent-color: #C8102E; }
.cash-grid3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 8px; margin: 0 0 10px; }
.cash-grid3 input, .cash-wrap .fld input { width: 100%; padding: 12px; border: 1px solid rgba(28,39,64,.16); border-radius: 12px; font-size: 14px; background: #fff; color: inherit; box-sizing: border-box; }
.cash-grid3 input:focus, .cash-wrap .fld input:focus { outline: 2px solid rgba(200,16,46,.35); border-color: #C8102E; }
.cash-wrap .fld { margin-bottom: 10px; }
.cash-amt { font-size: 30px; font-weight: 800; text-align: center; color: #C8102E; margin: 26px 0 10px; }
.cash-chip { text-align: center; font-size: 12.5px; color: var(--on-surface-variant, #46506A); margin-bottom: 18px; }
.cash-pay .s-acts { gap: 12px; }
.cash-done { text-align: center; padding: 40px 0 20px; }
.cash-done__ic { width: 64px; height: 64px; margin: 0 auto 14px; border-radius: 50%; background: #1F9D55; color: #fff; font-size: 32px; line-height: 64px; font-weight: 800; }
.cash-done h2 { margin: 6px 0; }
.cash-done p { color: var(--on-surface-variant, #46506A); font-size: 13.5px; }
.cash-pid { font-size: 11px; color: var(--outline-variant, #8A94AB) !important; }
.cash-done .s-acts { justify-content: center; margin-top: 20px; }
.btn--blk { display: block; width: 100%; }

/* ---- v1.3.1 会员登录/注册图形验证码 ---- */
.mem-cap{align-items:center;margin:2px 0 8px}
.mem-cap__img{display:inline-flex;align-items:center}
.mem-cap__img img{height:40px;width:auto;border-radius:8px;border:1px solid rgba(0,0,0,.08)}

/* ---- v1.3.1 招聘页改版 ---- */
.jb-ban__hi { font-size: 13.5px !important; font-weight: 700; color: #FFD9DF !important; letter-spacing: .5px; }
/* ---- v1.3.3 招聘入口：整宽求职主题大图卡 ---- */
.jb-entry {
  position: relative; display: block; padding: 0; margin-top: 12px; height: 208px;
  border-radius: var(--md-sys-shape-l); overflow: hidden; cursor: pointer; background: #070B16;
}
.jb-entry img { width: 100%; height: 100%; object-fit: cover; opacity: 1; display: block; }
/* v1.3.6：按钮右上角悬浮，不遮雕塑「深爱人才·圳等您来」原字 */
.jb-entry__ov {
  position: absolute; top: 0; right: 0; left: auto; bottom: auto;
  display: flex; justify-content: flex-end;
  padding: 12px 14px 0 0; pointer-events: none;
  background: linear-gradient(180deg, rgba(7,11,22,.18) 0%, rgba(7,11,22,0) 62%);
}
.jb-entry__btn {
  display: inline-flex; align-items: center; gap: 6px;
  background: #fff; color: var(--primary, #B3002D);
  font-size: 13.5px; font-weight: 700; padding: 8px 18px; border-radius: 999px;
  box-shadow: 0 4px 14px rgba(0,0,0,.3); pointer-events: auto;
}
.jb-entry:active { transform: scale(.985); }
@media (min-width: 720px) { .jb-entry { height: 240px; } }
/* ---- v1.3.1 原生投递表单 ---- */
#jaIntro { resize: vertical; margin-top: 8px; }
/* ---- v1.3.2 下拉刷新指示器 ---- */
#ptr {
  position: fixed; left: 50%; top: calc(env(safe-area-inset-top) + 62px); z-index: 45;
  width: 38px; height: 38px; margin-left: -19px; border-radius: 50%;
  background: var(--surface-c); box-shadow: var(--elev-2);
  display: flex; align-items: center; justify-content: center;
  transform: translate(-50%, -44px); opacity: 0; pointer-events: none;
  transition: opacity .15s ease;
}
#ptr.is-show { transition: none; }
#ptr .ptr-spin {
  width: 20px; height: 20px; border-radius: 50%;
  border: 2.5px solid color-mix(in srgb, var(--primary) 22%, transparent);
  border-top-color: var(--primary);
  transform: rotate(var(--pd, 0deg));
}
#ptr.is-busy .ptr-spin { animation: ptrSpin .8s linear infinite; }
@keyframes ptrSpin { to { transform: rotate(360deg); } }
/* ---- v1.3.4 招聘首页整页分区 ---- */
.jb-cult { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 10px; }
.jb-cult .sz-card { display: flex; flex-direction: column; }
.jb-cult .sz-card--wide { grid-column: 1 / -1; }
.jb-cult .sz-card--wide img { height: 150px; }
.jb-cult .sz-card p { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.jb-marks { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 10px; }
.jb-mark { margin: 0; background: var(--surface-c); border: 1px solid var(--outline); border-radius: var(--md-sys-shape-m); overflow: hidden; }
.jb-mark img { width: 100%; height: 170px; object-fit: cover; display: block; background: var(--surface-c-2); } /* v1.7.3 还原图高，图下小字已移除 */
.jb-mark figcaption { padding: 8px 9px 10px; }
.jb-mark b { display: block; font-size: 12px; font-weight: 800; line-height: 1.4; }
.jb-mark span { display: block; font-size: 10.5px; line-height: 1.55; color: var(--on-surface-v); margin-top: 3px; }
.jb-mark--wide { grid-column: 1 / -1; border: 0; margin-top: 2px; }
.jb-flips { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 10px; } /* v1.7.3 前景翻转卡 */
.jb-stat { padding: 12px 13px 13px; }
.jb-stat__n { font-size: 21px; font-weight: 800; color: var(--primary); display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; }
.jb-stat__n small { font-size: 11.5px; font-weight: 700; }
.jb-stat__n em { font-style: normal; font-size: 10.5px; font-weight: 800; color: var(--on-surface-v); background: var(--surface-c-2); border-radius: 999px; padding: 1px 7px; }
.jb-stat > span { display: block; font-size: 11.5px; line-height: 1.6; color: var(--on-surface-v); margin-top: 6px; }
/* v1.7.3 你将获得：一行循环滚动（右→左），手指按住可拖动，松手 1.2s 后恢复 */
.jb-why-mq { overflow-x: auto; overflow-y: hidden; scrollbar-width: none; -webkit-overflow-scrolling: touch; margin-top: 10px; padding-bottom: 4px; }
.jb-why-mq::-webkit-scrollbar { display: none; }
.jb-why-mq__t { display: flex; width: max-content; }
.jb-why-mq__g { display: flex; }
/* v1.7.8 你将获得：正方形公告卡（徽标+标题+正文层级） */
.jb-why-mq .jb-why__i { width: 136px; height: 112px; flex: none; margin-right: 10px; display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-start; padding: 11px; border-radius: 16px; background: linear-gradient(160deg, #ffffff 0%, #f2f5fb 100%); }
.jb-why-mq .jb-why__i .jb-why-hd { display: flex; flex-direction: column; align-items: flex-start; gap: 7px; }
.jb-why-mq .jb-why__i .jb-why-no { width: 20px; height: 20px; border-radius: 6px; color: #fff; font-style: normal; font-size: 11px; font-weight: 800; display: inline-flex; align-items: center; justify-content: center; }
.jb-why-no--1 { background: linear-gradient(135deg, #2f7ef7, #1a5fd8); }
.jb-why-no--2 { background: linear-gradient(135deg, #31c48d, #159c6c); }
.jb-why-no--3 { background: linear-gradient(135deg, #f0a63a, #dd8a12); }
.jb-why-no--4 { background: linear-gradient(135deg, #f2678f, #d9446f); }
.jb-why-no--5 { background: linear-gradient(135deg, #8a63f4, #5f3bd6); }
.jb-why-mq .jb-why__i h3 { margin: 0; font-size: 12.5px; font-weight: 800; line-height: 1.3; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.jb-why-mq .jb-why__i p { margin: 5px 0 0; font-size: 10.5px; line-height: 1.55; color: var(--on-surface-v); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
@media (min-width: 720px) { .jb-why-mq .jb-why__i { width: 160px; height: 128px; padding: 13px; } }
/* v1.7.3 前景双面翻转卡：点击或指尖横划翻转一次（backface 双面 + grid 叠放自适应高度） */
.jb-flip { perspective: 900px; cursor: pointer; }
.jb-flip__in { display: grid; transform-style: preserve-3d; transition: transform .55s cubic-bezier(.4,.2,.2,1); will-change: transform; } /* v1.9.53 层预提升：翻转变换不再触发 WebView 重合成导致滚动复位 */
.jb-flip.is-flipped .jb-flip__in { transform: rotateY(180deg); }
.jb-flip__f { grid-area: 1 / 1; position: relative; backface-visibility: hidden; -webkit-backface-visibility: hidden; }
.jb-flip__f--back { transform: rotateY(180deg); background: linear-gradient(150deg, #fff6f2, #fdece8); }
.jb-flip__tip { position: absolute; right: 11px; bottom: 9px; font-style: normal; font-size: 11px; color: var(--on-surface-v); opacity: .65; }
.jb-flip__hint { text-align: center; font-size: 10.5px; color: var(--on-surface-v); margin: 8px 0 0; }
.jb-steps { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 10px; }
.jb-step { padding: 13px 14px 14px; }
.jb-step b { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; border-radius: 999px; background: var(--primary); color: var(--on-primary); font-size: 12px; font-weight: 800; }
.jb-step strong { display: block; font-size: 13px; font-weight: 800; margin-top: 8px; }
.jb-step span { display: block; font-size: 11px; line-height: 1.6; color: var(--on-surface-v); margin-top: 3px; }
@media (min-width: 720px) {
  .jb-cult .sz-card img { height: 170px; }
  .jb-cult .sz-card--wide img { height: 210px; }
  .jb-mark img { height: 240px; }
  .jb-flips { grid-template-columns: repeat(4, 1fr); }
  .jb-steps { grid-template-columns: repeat(3, 1fr); }
}
/* ---- v1.3.5 BANNER：人才公园高空全貌图完整显示（不裁切）---- */
.jb-ban img { width: 100%; height: auto; opacity: 1; }
.jb-ban .b-body { background: linear-gradient(180deg, rgba(7,11,22,.55) 0%, rgba(7,11,22,.06) 55%, rgba(7,11,22,.42) 100%); }

/* ---- v1.3.7 招聘首页/全局视觉修正 ---- */
/* BANNER 文案放图片左下（官网样式），上下渐变保可读 */
.jb-ban .b-body {
  justify-content: flex-end; align-items: flex-start; text-align: left;
  padding: 0 18px 14px;
  background: linear-gradient(180deg, rgba(7,11,22,.28) 0%, rgba(7,11,22,0) 36%, rgba(7,11,22,.60) 100%);
}
/* 创业者的天堂宽卡：全景图完整显示不裁切 */
.jb-cult .sz-card--wide img { height: auto; }
@media (min-width: 720px) { .jb-cult .sz-card--wide img { height: auto; } }
/* 顶栏：强制独立合成层，修复荣耀系 WebView 滚动中 sticky 未重排（LOGO 悬停页面中间）的渲染错乱 */
.bar { transform: translateZ(0); -webkit-transform: translateZ(0); }
/* 联系我们精排：值换到标签下一行、左对齐、小字 */
.rows--contact .row { flex-wrap: wrap; padding: 13px 16px 12px; row-gap: 3px; }
.sub .rows--contact .row .r-x {
  flex-basis: 100%; flex: none; margin-left: 49px; text-align: left;
  font-size: 13px; font-weight: 500; line-height: 1.65; color: var(--on-surface-v); word-break: break-all;
}
.rows--contact .r-x a { color: var(--primary); text-decoration: none; font-weight: 600; }
/* 协议/隐私原生排版精修 */
.doc-meta { font-size: 11.5px; color: var(--on-surface-v); margin: 4px 2px 0; }
.doc-intro { font-size: 13px; font-weight: 600; color: var(--on-surface); margin: 8px 2px 2px; }
.doc-quote {
  margin: 14px 2px; padding: 10px 14px; border-left: 3px solid var(--primary);
  background: var(--surface-c-2); border-radius: 0 10px 10px 0;
  font-size: 13.5px; font-weight: 600; line-height: 1.7;
}

/* ==================== v1.3.8（2026-09-19） ==================== */
/* ① 平板「同频共振」两图卡：两列铺满平板宽度（原三列致右侧空一列） */
html[data-device="tablet"] #szCulture { grid-template-columns: 1fr 1fr; }
html[data-device="tablet"] .jb-cult .sz-card:not(.sz-card--wide) img { height: 230px; }
html[data-device="tablet"] .sz-card h3 { font-size: 16.5px; }
html[data-device="tablet"] .sz-card p { font-size: 13.5px; }
/* ② 创业者的天堂大图：横切底部 AI 生成水印（放大裁底，顶部对齐不损全景主体） */
.jb-cult .sz-card--wide { overflow: hidden; }
.jb-cult .sz-card--wide img { transform: scale(1.16); transform-origin: 50% 0; }
/* ⑤ 平板宽卡修复（2026-09-20）：height:auto 叠加 scale 放大会盖住卡片文案
   （752px 宽时布局高 501px、视觉高 581px，溢出 80px 压住「创业者的天堂」标题）；
   平板改固定高度 + 偏上取景（object-position 30%），取消 transform，
   右下角图库水印随 object-fit: cover 裁出可视带，文字完整可见 */
html[data-device="tablet"] .jb-cult .sz-card--wide img { height: 300px; transform: none; object-position: 50% 30%; }
/* ③ 从地标读懂深圳：v1.7.3 图下小字移除，图片高度还原（大楼主体完整露出） */
.jb-mark img { height: 170px; }
@media (min-width: 720px) { .jb-mark img { height: 240px; } }
/* ④ 首页 BANNER 主视觉（舞者）：与官网首页一致取 68%，舞者整体左移不再贴右飞出 */
.hero-car__slide--vis { object-position: 68% center; }
/* ⑤ 订单详情：状态步骤条 / 收货与发货信息 / 3D 激活 / 物流轨迹时间线 */
.ord-steps { display: flex; gap: 4px; margin: 16px 0 4px; }
.ord-step { flex: 1; text-align: center; font-size: 11px; color: #93a0b8; }
.ord-step i { display: block; width: 18px; height: 18px; margin: 0 auto 5px; border-radius: 50%;
  border: 2px solid #d5dcea; background: #fff; box-sizing: border-box; }
.ord-step.is-on { color: #0E9AAE; font-weight: 650; }
.ord-step.is-on i { border-color: #0E9AAE; background: #0E9AAE;
  box-shadow: inset 0 0 0 3px #fff; }
.ord-addr, .ord-ship, .ord-act { margin-top: 12px; padding-top: 12px; border-top: 1px dashed #e3e8f2;
  font-size: 13px; line-height: 1.9; color: #45526b; word-break: break-all; }
.ord-act b { color: #0E9AAE; }
.lnk { color: #0E9AAE; text-decoration: none; font-weight: 600; }
.ord-tl { padding: 4px 2px 0; }
.ord-tl__it { display: flex; gap: 12px; padding: 0 0 16px 0; position: relative; }
.ord-tl__it::before { content: ''; position: absolute; left: 5px; top: 14px; bottom: -2px; width: 2px; background: #e3e8f2; }
.ord-tl__it:last-child::before { display: none; }
.ord-tl__it i { flex: none; width: 12px; height: 12px; border-radius: 50%; margin-top: 3px;
  background: #0E9AAE; box-shadow: 0 0 0 3px rgba(14,154,174,.14); }
.ord-tl__it b { display: block; font-size: 13.5px; font-weight: 600; color: #1c2434; }
.ord-tl__it span { font-size: 12px; color: #93a0b8; }
/* ⑥ v1.5.0 积分兑换 */
.rd-pts { display: flex; justify-content: space-between; align-items: center;
  background: linear-gradient(135deg, #0E9AAE, #14b8c9); color: #fff; border-radius: 14px;
  padding: 13px 16px; margin-bottom: 12px; font-size: 13px; }
.rd-pts b { font-size: 19px; font-weight: 800; }
.rd-card { display: flex; gap: 12px; padding: 12px; margin-bottom: 10px; }
.rd-cover { flex: none; width: 84px; height: 84px; border-radius: 12px; object-fit: cover; }
.rd-cover--ph { display: flex; align-items: center; justify-content: center; background: #eef2f8;
  color: #93a0b8; font-size: 26px; font-weight: 800; }
.rd-main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.rd-main > b { font-size: 14.5px; }
.rd-kind { font-size: 11px; color: #b8862f; background: #fdf6e7; border-radius: 999px;
  padding: 2px 8px; width: fit-content; margin-top: 5px; }
.rd-desc { font-size: 12px; color: #93a0b8; margin-top: 5px; overflow: hidden;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.rd-ft { margin-top: auto; display: flex; justify-content: space-between; align-items: center; padding-top: 8px; }
.rd-cost { color: #c8102e; font-size: 14px; font-weight: 800; }
/* ⑤ 推荐产品横滑栏：展示 3 个，可向左滑动查看后续推荐 */
.rec-rail { display: flex; gap: 12px; overflow-x: auto; padding: 12px 14px 6px; margin: 0 -14px; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; }
.rec-rail::-webkit-scrollbar { display: none; }
.rec-rail .pcard { flex: 0 0 82%; max-width: 82%; scroll-snap-align: start; }
html[data-device="tablet"] .rec-rail { padding-left: 24px; padding-right: 24px; margin: 0 -24px; }
html[data-device="tablet"] .rec-rail .pcard { flex-basis: 46%; max-width: 46%; }
/* ⑥ 感动生态富版式（blocks 数据源 /api/ecocontent，内容与三大品牌官网同源） */
.eb-wrap { margin-top: 6px; }
.eb-t { font-size: 16px; font-weight: 750; margin: 20px 0 8px; padding-left: 10px; border-left: 3px solid #C8102E; }
.eb-lead { font-size: 13.5px; line-height: 1.8; color: var(--on-surface-v); margin: 0 2px 10px; }
.eb-hero { position: relative; border-radius: 18px; overflow: hidden; background: #0C1324; margin-top: 4px; }
.eb-hero img { width: 100%; aspect-ratio: 16 / 9.5; object-fit: cover; display: block; }
.eb-hero__cap { position: absolute; left: 0; right: 0; bottom: 0; padding: 46px 16px 14px; background: linear-gradient(transparent, rgba(7,11,22,.90)); color: #fff; }
.eb-badge { display: inline-block; padding: 3px 11px; border-radius: 999px; border: 1px solid rgba(255,255,255,.45); background: rgba(255,255,255,.14); font-size: 10.5px; letter-spacing: .5px; margin-bottom: 8px; }
.eb-hero__cap b { display: block; font-size: 19px; letter-spacing: .5px; line-height: 1.35; }
.eb-hero__cap i { display: block; font-style: normal; font-size: 14px; font-weight: 700; color: #F0C75E; margin-top: 3px; letter-spacing: 1px; }
.eb-hero__cap p { display: block; font-size: 11.5px; line-height: 1.65; color: rgba(255,255,255,.82); margin: 7px 0 0; }
.eb-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 12px 0 4px; }
.eb-stat { background: var(--surface-c-2, #F1F3F8); border-radius: 14px; padding: 12px 13px; }
.eb-stat b { display: block; font-size: 20px; font-weight: 800; color: var(--primary); }
.eb-stat b small { font-size: 11.5px; font-weight: 700; margin-left: 2px; }
.eb-stat span { display: block; font-size: 11px; line-height: 1.55; color: var(--on-surface-v); margin-top: 5px; }
.eb-cards { display: grid; grid-template-columns: 1fr; gap: 12px; margin: 10px 0 4px; }
.eb-card { background: var(--surface-c-1, #fff); border: 1px solid var(--outline, #E4E7EF); border-radius: 16px; overflow: hidden; box-shadow: 0 2px 10px rgba(7,11,22,.06); }
.eb-card__ph { aspect-ratio: 16 / 8.5; overflow: hidden; background: var(--surface-c-2); }
.eb-card__ph img { width: 100%; height: 100%; object-fit: cover; display: block; }
.eb-card__b { padding: 12px 14px 14px; }
.eb-card__tag { display: inline-block; font-size: 10.5px; font-weight: 700; letter-spacing: .5px; color: #b8862f; margin-bottom: 4px; }
.eb-card__b h4 { margin: 0; font-size: 15px; font-weight: 800; line-height: 1.4; }
.eb-card__m { margin: 3px 0 0; font-size: 11.5px; font-weight: 700; color: #8A6A1F; letter-spacing: .3px; }
.eb-card__b p { margin: 5px 0 0; font-size: 12px; line-height: 1.7; color: var(--on-surface-v); }
.eb-card--row { display: flex; }
.eb-card--row .eb-card__ph { width: 118px; aspect-ratio: auto; flex: none; }
.eb-more { display: block; width: 100%; margin: 12px 0 4px; padding: 11px; border: 1.5px solid var(--outline, #E4E7EF); border-radius: 999px; background: var(--surface-c-1, #fff); color: var(--on-surface); font-size: 13.5px; font-weight: 700; cursor: pointer; }
.eb-more:active { background: var(--surface-c-2); }
.eb-list { display: grid; gap: 9px; margin: 10px 0 4px; }
.eb-li { background: var(--surface-c-2, #F1F3F8); border-radius: 13px; padding: 11px 13px; }
.eb-li b { display: block; font-size: 13px; font-weight: 750; }
.eb-li span { display: block; font-size: 11.5px; line-height: 1.65; color: var(--on-surface-v); margin-top: 3px; }
.eb-split { margin: 10px 0; }
.eb-split img { width: 100%; border-radius: 14px; display: block; }
.eb-split figcaption { font-size: 11px; color: var(--on-surface-v); text-align: center; margin-top: 6px; }
.eb-quote { margin: 16px 0 6px; padding: 20px 18px; border-radius: 18px; background: linear-gradient(135deg, #101B30, #1A2B4A); color: #fff; }
.eb-quote p { margin: 0; font-size: 15.5px; font-weight: 700; line-height: 1.8; }
.eb-quote span { display: block; font-size: 12px; color: #F0C75E; font-weight: 650; margin-top: 9px; letter-spacing: .5px; }
.eb-cta { margin: 16px 0 8px; padding: 18px 16px; border-radius: 18px; background: var(--surface-c-2, #F1F3F8); text-align: center; }
.eb-cta b { font-size: 16.5px; font-weight: 800; }
.eb-cta p { margin: 6px 0 12px; font-size: 12px; line-height: 1.7; color: var(--on-surface-v); }
.eb-ctabtn { padding: 10px 30px; border: none; border-radius: 999px; background: #C8102E; color: #fff; font-size: 13.5px; font-weight: 700; cursor: pointer; }
.eb-ctabtn:active { opacity: .85; }
/* 暗色主题（感动超算力 / 感芯·明眸：与官网深蓝金风格同源） */
.eb-dark { background: linear-gradient(180deg, #0A1220, #0D1730); border-radius: 18px; padding: 12px 13px 16px; color: #E8ECF4; }
.eb-dark .eb-t { color: #fff; border-left-color: #D4A853; }
.eb-dark .eb-lead { color: #AAB6CC; }
.eb-dark .eb-stat { background: #131F38; border: 1px solid rgba(212,168,83,.18); }
.eb-dark .eb-stat b { color: #F0C75E; }
.eb-dark .eb-stat span { color: #AAB6CC; }
.eb-dark .eb-card { background: #111C33; border-color: rgba(212,168,83,.16); box-shadow: none; }
/* ⑦ v1.6.0 感动新视界公司：同事录（分级沟通）+ 站内单聊 + 实名认证 */
.cmp-me { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.cmp-me .cmp-dept { font-size: 12px; color: var(--on-surface-v); width: 100%; }
.cmp-dt { margin: 14px 4px 8px; font-size: 12.5px; font-weight: 800; color: var(--on-surface-v); letter-spacing: .06em; }
.cmp-row { display: flex; align-items: center; gap: 11px; }
.cmp-av { width: 40px; height: 40px; border-radius: 999px; flex: none; display: grid; place-items: center; background: var(--primary-c); color: var(--primary); font-weight: 800; font-size: 16px; }
.cmp-main { flex: 1; min-width: 0; display: grid; gap: 1px; }
.cmp-main b { font-size: 14px; font-weight: 750; }
.cmp-main b i { font-style: normal; font-size: 11.5px; font-weight: 650; color: var(--on-surface-v); }
.cmp-main > span { font-size: 11.5px; color: var(--on-surface-v); }
.cmp-ct { font-size: 11px; color: var(--on-surface-v); opacity: .85; letter-spacing: .02em; }
.cmp-no { font-size: 11px; color: var(--on-surface-v); opacity: .7; }
.cmp-head { display: grid; gap: 2px; }
.cmp-head span { font-size: 12px; color: var(--on-surface-v); }
/* v1.9.21 气泡样式统一收敛到下方「微信级聊天 UI」块（此处旧红/灰气泡规则已删除，
   旧规则与微信样式叠加是聊天气泡显示成大红块/竖排字的根因） */
.cmp-inrow { position: sticky; bottom: 0; background: var(--surface-c-1, #fff); padding: 8px 0 2px; }
.kyc-ok { display: grid; gap: 6px; border-left: 3px solid var(--ok); }
.kyc-ok b { color: var(--ok); font-size: 14px; }
.kyc-ok span { font-size: 12.5px; color: var(--on-surface-v); }
.kyc-note { padding: 9px 12px; border-radius: 10px; background: color-mix(in srgb, #F0C75E 22%, transparent); font-size: 12.5px; margin-bottom: 8px; }
.kyc-note--rej { background: color-mix(in srgb, var(--err) 12%, transparent); color: var(--err); }
.eb-dark .eb-card__ph { background: #0C1426; }
.eb-dark .eb-card__tag { color: #F0C75E; }
.eb-dark .eb-card__m { color: #D4A853; }
.eb-dark .eb-card__b h4 { color: #fff; }
.eb-dark .eb-card__b p { color: #AAB6CC; }
.eb-dark .eb-li { background: #131F38; }
.eb-dark .eb-li b { color: #E8ECF4; }
.eb-dark .eb-li span { color: #AAB6CC; }
.eb-dark .eb-split figcaption { color: #8A96B0; }
.eb-dark .eb-more { background: transparent; border-color: rgba(212,168,83,.4); color: #F0C75E; }
.eb-dark .eb-more:active { background: rgba(212,168,83,.1); }
.eb-dark .eb-cta { background: #131F38; }
.eb-dark .eb-cta b { color: #fff; }
.eb-dark .eb-cta p { color: #AAB6CC; }
.eb-dark .eb-ctabtn { background: linear-gradient(135deg, #E8B84B, #D49A2F); color: #1A1408; }
html[data-device="tablet"] .eb-cards { grid-template-columns: 1fr 1fr; }
html[data-device="tablet"] .eb-stats { grid-template-columns: repeat(4, 1fr); }
html[data-device="tablet"] .eb-hero__cap b { font-size: 26px; }

/* ============================== v1.3.9：方案详情补全 ============================== */
.sdet-tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0 4px; }
.sdet-items { margin: 6px 0 2px; }
.sdet-item { display: flex; gap: 9px; padding: 7px 0; font-size: 13.5px; line-height: 1.7; color: var(--on-surface, #1C2740); border-bottom: 1px dashed rgba(28,39,64,.08); }
.sdet-item:last-child { border-bottom: 0; }
.sdet-item i { flex: none; font-style: normal; font-weight: 800; color: #128A56; }
.sdet-gains { display: grid; grid-template-columns: 1fr; gap: 10px; margin: 8px 0; }
.sdet-gain { display: flex; gap: 12px; align-items: flex-start; background: #F4F8FB; border: 1px solid rgba(10,37,64,.08); border-radius: 14px; padding: 12px; }
.sdet-gain b { flex: none; min-width: 62px; color: #0A2540; font-size: 15px; font-weight: 800; line-height: 1.4; }
.sdet-gain__t { font-size: 13.5px; font-weight: 700; }
.sdet-gain__d { font-size: 12.5px; color: var(--on-surface-variant, #46506A); line-height: 1.6; margin-top: 3px; }
.sdet-ask { margin-top: 24px; font-size: 13.5px; color: var(--on-surface-variant, #46506A); }
.sub-bd .s-acts--sub { display: flex; gap: 10px; }
.sub-bd .s-acts--sub .btn { flex: 1; }
html[data-device="tablet"] .sdet-gains { grid-template-columns: 1fr 1fr; }

/* ============================== v1.4 会员体系 ============================== */
.mem-stat b { font-size: 15px; }
#rcAmt button, #pfGender button { min-height: 38px; }
/* 六步闭环：横向滑动一排（左右滑动看全流程） */
.jb-steps { display: flex; gap: 10px; margin-top: 10px; overflow-x: auto; -webkit-overflow-scrolling: touch; scroll-snap-type: x mandatory; padding-bottom: 8px; }
.jb-steps .jb-step { flex: 0 0 172px; scroll-snap-align: start; }
/* 生态首页 BANNER：飞出屏幕动效（激活帧缓推近，呼应官网首页舞者视觉） */
.eco-bn__s.is-on img { animation: ecoFly 5.5s ease forwards; }
@keyframes ecoFly { from { transform: scale(1.14); } to { transform: scale(1); } }
/* 招聘：地标图卡更高，完整显示高楼与「深爱人才·圳等您来」 */
.jb-entry { height: 250px; }
@media (min-width: 720px) { .jb-entry { height: 330px; } }
html[data-device="tablet"] .jb-entry { height: 360px; }
/* 招聘 BANNER 文案保护：渐变打底 + 置顶，防图片盖字 */
.jb-ban { position: relative; }
.jb-ban .b-body { position: relative; z-index: 2; background: linear-gradient(180deg, rgba(7,11,22,0) 0%, rgba(7,11,22,.55) 60%); }
/* 人才公园入口：轻微裁底，规避图片自带水印条 */
.jb-entry img { object-position: 50% 20%; }
/* 平板入口图完整显示（2026-09-20）：webp 底部已无水印条，固定 360px+20% 偏移
   反而裁掉雕塑「圳等您来」下沿 → 平板取消定高，整图按原比例完整显示 */
html[data-device="tablet"] .jb-entry { height: auto; }
html[data-device="tablet"] .jb-entry img { height: auto; object-position: 50% 50%; }

/* ===== v1.7.6 感动家园宫格（钉钉工作台风格）：白卡分组 + 每行4个圆角彩色图标 ===== */
.hub-sec { background: var(--surface); border: 1px solid var(--outline-v, rgba(0,0,0,.07)); border-radius: 20px; padding: 14px 8px 4px; margin-top: 12px; }
.hub-tt { font-size: 12px; font-weight: 800; color: var(--on-surface-v); padding: 0 10px 10px; letter-spacing: .05em; }
.hub-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.hub-tile { display: flex; flex-direction: column; align-items: center; gap: 7px; padding: 4px 2px 12px; border-radius: 14px; cursor: pointer; -webkit-tap-highlight-color: transparent; text-decoration: none; }
.hub-tile:active { background: rgba(0,0,0,.05); }
.hub-ic { width: 44px; height: 44px; border-radius: 14px; display: inline-flex; align-items: center; justify-content: center; color: #fff; box-shadow: 0 3px 8px rgba(15,23,42,.14); }
.hub-ic svg { width: 23px; height: 23px; }
.hub-tx { font-size: 11.5px; font-weight: 600; color: var(--on-surface); text-align: center; line-height: 1.25; }
.hub-sub { font-size: 10px; color: var(--on-surface-v); line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.hub-ic--a { background: linear-gradient(135deg,#2f7ef7,#1a5fd8); }
.hub-ic--b { background: linear-gradient(135deg,#8a63f4,#5f3bd6); }
/* v1.9.81 签到日历图标：整本日历=当天日期（红头月份+白页日号）；tile 用 hub-ic--cal 去渐变底 */
.hub-ic--cal { background: none; box-shadow: none; }
.ck-cal { display: flex; flex-direction: column; border-radius: 10px; overflow: hidden;
  background: var(--surface); line-height: 1;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--outline) 60%, transparent), 0 2px 6px rgba(15,23,42,.12); }
.ck-cal i { display: flex; align-items: center; justify-content: center; font-style: normal; }
.ck-cal-m { flex: 0 0 31%; background: var(--primary); color: #fff; font-weight: 800; letter-spacing: .02em; }
.ck-cal-d { flex: 1; color: var(--on-surface); font-weight: 800; }
.hub-ic--c { background: linear-gradient(135deg,#f0a63a,#dd8a12); }
.hub-ic--d { background: linear-gradient(135deg,#31c48d,#159c6c); }
.hub-ic--e { background: linear-gradient(135deg,#f2678f,#d9446f); }
.hub-ic--f { background: linear-gradient(135deg,#39b8e8,#1e93c2); }
.hub-ic--g { background: linear-gradient(135deg,#6b7cf5,#4253d8); }
.hub-ic--h { background: linear-gradient(135deg,#e05a5a,#c03434); }
.hub-ic--i { background: linear-gradient(135deg,#20b2a6,#0e8a80); }
@media (max-width: 380px) { .hub-ic { width: 40px; height: 40px; border-radius: 12px; } .hub-tx { font-size: 11px; } }

/* v1.7.10 感动家园改版：页首左上用户圆角方头像 + 团队沟通列表 */
.cmp-head2 { display: flex; align-items: center; gap: 12px; padding: 14px 15px; }
.cmp-me-av { width: 52px; height: 52px; border-radius: 15px; object-fit: cover; flex: none; }
.cmp-me-av--d { display: inline-flex; align-items: center; justify-content: center; background: linear-gradient(135deg, #2f7ef7, #1a5fd8); color: #fff; font-size: 22px; font-weight: 800; }
.cmp-head2-tx { display: flex; flex-direction: column; min-width: 0; }
.cmp-head2-tx b { font-size: 16px; }
.cmp-head2-tx span { font-size: 12px; color: var(--on-surface-v); margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* v1.8.0 同事沟通升级：语音/视频通话 + 右滑返回（v1.9.93 语音条旧样式已并入微信气泡方案，删除蓝渐变/白底旧规则避免压过新样式） */
.cmp-callbtns { display: inline-flex; gap: 8px; flex: none; }
.cmp-callb { width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--outline); background: #f2f7ff; color: #1a5fd8; display: inline-flex; align-items: center; justify-content: center; }
.cmp-callb:active { transform: scale(.94); }
.cmp-callb svg { width: 19px; height: 19px; }
.cmp-callb { font-size: 16px; line-height: 1; }
/* v1.9.21 感说页头：标题行 + 右侧小图标组（通信录/双模/检索）同行排布 */
.cmp-head--row { display: flex; align-items: center; gap: 10px; }
.cmp-head--row .cmp-head-tx { flex: 1; min-width: 0; display: grid; gap: 2px; }
.cmp-mic { width: 38px; height: 38px; flex: none; border-radius: 50%; border: 1px solid var(--outline); background: #fff; color: var(--on-surface); display: inline-flex; align-items: center; justify-content: center; }
.cmp-mic svg { width: 19px; height: 19px; }
.cmp-mic.is-rec { background: #e53935; border-color: #e53935; color: #fff; animation: micPulse 1.1s ease-in-out infinite; }
@keyframes micPulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(229, 57, 53, .35); } 50% { box-shadow: 0 0 0 7px rgba(229, 57, 53, 0); } }
.cmp-inrow { display: flex; align-items: center; gap: 8px; }
.cmp-inrow .cmp-mic { flex: none; }
/* 通话全屏浮层 */
#callOv { position: fixed; inset: 0; z-index: 220; display: flex; align-items: center; justify-content: center; background: rgba(10, 14, 24, .88); backdrop-filter: blur(10px); }
#callOv[hidden] { display: none; }
.call-ov2 { display: flex; flex-direction: column; align-items: center; gap: 12px; color: #fff; width: 100%; max-width: 420px; padding: 24px; position: relative; }
.call-ov2.is-video { display: block; height: 100%; padding: 0; }
.call-ov2.is-video #callRv { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; background: #000; }
.call-ov2.is-video .call-pip { position: absolute; right: 14px; top: 18px; width: 96px; height: 128px; object-fit: cover; border-radius: 12px; border: 2px solid rgba(255,255,255,.7); background: #000; z-index: 2; }
.call-ov2.is-video .call-av, .call-ov2.is-video > b, .call-ov2.is-video > i { position: relative; z-index: 2; }
.call-av { width: 84px; height: 84px; border-radius: 26px; background: linear-gradient(135deg, #2f7ef7, #1a5fd8); color: #fff; font-size: 36px; font-weight: 800; display: inline-flex; align-items: center; justify-content: center; }
.call-ov2 > b { font-size: 19px; }
.call-ov2 > i { font-style: normal; font-size: 13px; opacity: .8; font-variant-numeric: tabular-nums; }
.call-hu { margin-top: 12px; padding: 13px 40px; border-radius: 999px; border: 0; background: #e53935; color: #fff; font-size: 15px; font-weight: 800; }
.call-btns { display: flex; gap: 18px; margin-top: 8px; }
.call-dec, .call-acc { width: 66px; height: 66px; border-radius: 50%; border: 0; font-size: 24px; color: #fff; }
.call-dec { background: #e53935; }
.call-acc { background: #2e9e5b; }

/* v1.9.0 感动家园工作台 + 同声传译面板 */
.ws-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 12px 0; }
.ws-tile { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; padding: 14px; border: 1px solid var(--outline); border-radius: 16px; background: linear-gradient(160deg, #ffffff 0%, #f2f5fb 100%); text-align: left; }
.ws-tile:active { transform: scale(.97); }
.ws-ic { width: 40px; height: 40px; border-radius: 13px; display: inline-flex; align-items: center; justify-content: center; color: #fff; }
.ws-ic svg { width: 21px; height: 21px; }
.ws-ic--t { background: linear-gradient(135deg, #2f7ef7, #1a5fd8); }
.ws-ic--v { background: linear-gradient(135deg, #7c5cf0, #5a3fd0); }
/* v1.9.25 修复：感播宫格图标此前无全局底色（白色 SVG 在白底上不可见） */
.ws-ic--live { background: linear-gradient(135deg, #f43f5e, #be123c); }
.ws-tile b { font-size: 14px; }
.ws-tile > span:last-child { font-size: 11px; color: var(--on-surface-v); }
/* 同声传译 */
.itp-card { display: flex; flex-direction: column; gap: 12px; }
.itp-langs { display: flex; align-items: flex-end; gap: 8px; }
.itp-lg { flex: 1; display: flex; flex-direction: column; gap: 5px; font-size: 11.5px; color: var(--on-surface-v); }
.itp-lg .f-in { padding: 10px 12px; font-size: 14px; }
.itp-sw { flex: none; width: 40px; height: 40px; margin-bottom: 1px; border-radius: 50%; border: 1px solid var(--outline); background: #f2f7ff; color: #1a5fd8; font-size: 18px; font-weight: 800; }
.itp-out { background: #f5f7fb; border-radius: 14px; padding: 11px 13px; }
.itp-out--t { background: #eef4ff; }
.itp-lbl { font-size: 11px; color: var(--on-surface-v); margin-bottom: 4px; }
.itp-tx { font-size: 15px; line-height: 1.55; min-height: 24px; word-break: break-word; }
.itp-out--t .btn { margin-top: 8px; }
.itp-rec { align-self: center; display: inline-flex; align-items: center; gap: 10px; padding: 13px 30px; border-radius: 999px; border: 0; background: linear-gradient(135deg, #2f7ef7, #1a5fd8); color: #fff; font-size: 15px; font-weight: 800; box-shadow: 0 8px 22px rgba(26, 95, 216, .28); }
.itp-rec:active { transform: scale(.96); }
.itp-rec.is-busy { background: linear-gradient(135deg, #6b7c93, #4d5c70); }
.itp-rec__dot { width: 12px; height: 12px; border-radius: 50%; background: #fff; opacity: .9; }
.itp-rec__dot.is-on { background: #ff8a80; animation: itpPulse 1s ease-in-out infinite; }
@keyframes itpPulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.5); } }
.itp-h { display: flex; flex-direction: column; gap: 4px; padding: 11px 13px; }
.itp-h span { font-size: 12.5px; color: var(--on-surface-v); }
.itp-h b { font-size: 13.5px; line-height: 1.5; }

/* v1.9.1 工作台新增宫格色 + 部门群聊发送人 + 协同任务 */
.ws-ic--g { background: linear-gradient(135deg, #2e9e5b, #1d7a43); }
.ws-ic--o { background: linear-gradient(135deg, #f59e0b, #d97706); }
.cmp-sn { display: block; font-style: normal; font-size: 10.5px; color: var(--on-surface-v); margin-bottom: 3px; }
.cmp-msg.is-me .cmp-sn { display: none; }
.task-row { display: flex; flex-direction: column; gap: 8px; margin-bottom: 10px; }
.task-top { display: flex; align-items: center; gap: 8px; }
.task-top b { flex: 1; font-size: 14.5px; line-height: 1.4; }
.task-st { flex: none; font-size: 11px; font-weight: 800; padding: 3px 10px; border-radius: 999px; }
.task-st--0 { background: #fff4e0; color: #b45309; }
.task-st--1 { background: #e3edff; color: #1a5fd8; }
.task-st--2 { background: #e2f5e9; color: #1d7a43; }
.task-det { margin: 0; font-size: 12.5px; line-height: 1.6; color: var(--on-surface-v); }
.task-meta { display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: 11.5px; color: var(--on-surface-v); }
.task-meta .task-x { color: #b45309; font-weight: 700; }
.task-acts { display: flex; gap: 8px; }
.task-acts .btn { flex: 1; }
.task__t { font-size: 12.5px; font-weight: 800; color: var(--on-surface); }
.task-peep { display: flex; align-items: center; gap: 10px; padding: 8px 4px; border-bottom: 1px solid var(--outline); }
.task-peep input { width: 18px; height: 18px; accent-color: #1a5fd8; }
.task-peep-nm { display: flex; flex-direction: column; min-width: 0; }
.task-peep-nm b { font-size: 13.5px; }
.task-peep-nm i { font-style: normal; font-size: 11px; color: var(--on-surface-v); }

/* v1.9.1 微信级聊天 UI：灰底 + 绿/白气泡 + 圆角方头像 + 居中时间 + 底部固定输入栏 */
.cmp-chat { display: block; background: #ededed; padding: 4px 0 12px; max-height: none; min-height: 40vh; }
.cmp-time { text-align: center; font-size: 11px; color: #9a9a9a; margin: 14px 0 2px; }
.cmp-msg { display: flex; align-items: flex-start; margin: 10px 14px 0; max-width: none; background: none; padding: 0; border-radius: 0; }
.cmp-msg .wx-av { width: 36px; height: 36px; border-radius: 7px; flex: none; object-fit: cover; background: linear-gradient(135deg, #7f8ea3, #5d6b80); color: #fff; font-size: 17px; font-weight: 800; font-style: normal; display: inline-flex; align-items: center; justify-content: center; margin-top: 1px; }
.cmp-msg .wx-b { position: relative; background: #fff; border-radius: 10px; padding: 9px 12px; margin: 0 9px; max-width: calc(100% - 110px); }
.cmp-msg .wx-b::before { content: ''; position: absolute; left: -5px; top: 13px; width: 10px; height: 10px; background: #fff; transform: rotate(45deg); border-radius: 2px; }
.cmp-msg .wx-b span { display: block; font-size: 14.5px; line-height: 1.55; color: #111; word-break: break-word; }
.cmp-msg .wx-b .cmp-sn { display: block; font-style: normal; font-size: 11px; color: #9a9a9a; margin-bottom: 3px; }
.cmp-msg.is-me { flex-direction: row-reverse; }
.cmp-msg.is-me .wx-b { background: #95ec69; }
.cmp-msg.is-me .wx-b::before { left: auto; right: -5px; background: #95ec69; }
.cmp-msg.is-me .wx-b span { color: #10310e; }
.cmp-msg.is-me .wx-av { background: linear-gradient(135deg, #2f7ef7, #1a5fd8); }
.cmp-msg .cmp-va { display: inline-flex; align-items: center; gap: 6px; padding: 4px 2px; border: 0; background: none; font-size: 14px; font-weight: 700; color: #111; }
.cmp-msg .cmp-va:active { opacity: .7; }
.cmp-msg.is-me .cmp-va { color: #10310e; }
.cmp-bar { position: sticky; bottom: 0; z-index: 3; background: #f7f7f7; border-top: 1px solid #e3e3e3; margin: 0 -14px; padding: 9px 14px calc(9px + env(safe-area-inset-bottom)); }
/* v1.9.21 暗色主题下的微信级气泡适配（绿气泡保持，白气泡转深灰） */
[data-dark] .cmp-chat { background: #111; }
[data-dark] .cmp-msg .wx-b { background: #2c2c2c; }
[data-dark] .cmp-msg .wx-b::before { background: #2c2c2c; }
[data-dark] .cmp-msg .wx-b span { color: #e8e8e8; }
[data-dark] .cmp-msg .wx-b .cmp-sn { color: #8a8a8a; }
[data-dark] .cmp-time { color: #7a7a7a; }
[data-dark] .cmp-bar { background: #1c1c1c; border-top-color: #2c2c2c; }
[data-dark] .cmp-msg .cmp-file { background: #2c2c2c; border-color: #3a3a3a; color: #e8e8e8; }
[data-dark] .cmp-msg.is-me .cmp-file { background: #2d4a22; border-color: #3f6a30; }
[data-dark] .cmp-quotebar { background: #1c1c1c; border-top-color: #2c2c2c; color: #bbb; }
[data-dark] .msg-menu-c { background: #2c2c2c; }
[data-dark] .msg-menu-c button { background: #2c2c2c; color: #e8e8e8; }
[data-dark] .msg-menu-c button:active { background: #3a3a3a; }

/* ===== v1.9.2 聊天附件（图片/视频/文件） ===== */
.cmp-plus{flex:0 0 38px;width:38px;height:38px;border-radius:50%;border:1px solid var(--line,#e5e5e5);background:#fff;color:#576b95;font-size:20px;line-height:1;font-weight:700;cursor:pointer}
.cmp-plus:active{background:#f2f2f2}
.cmp-img{display:block;max-width:172px;max-height:200px;border-radius:6px;cursor:zoom-in;background:#f0f0f0}
.cmp-vid{display:block;max-width:200px;max-height:200px;border-radius:6px;background:#000;object-fit:contain}
.cmp-file{display:flex;flex-direction:column;gap:2px;min-width:140px;max-width:220px;padding:8px 10px;border-radius:8px;background:#fff;border:1px solid #e5e5e5;text-decoration:none;color:inherit}
.cmp-msg.is-me .cmp-file{background:#d9f7d0;border-color:#bfe8b3}
.cmp-file b{font-size:13px;line-height:1.3;word-break:break-all}
.cmp-file span{font-size:11px;color:#888}
.att-view{position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.92);display:flex;align-items:center;justify-content:center;cursor:zoom-out}
.att-view img{max-width:96vw;max-height:92vh;object-fit:contain}

/* ===== v1.9.3 超越微信：已读回执/输入中/撤回/引用/未读角标/操作菜单 ===== */
.cmp-quotebar{display:flex;align-items:center;gap:8px;position:sticky;bottom:56px;z-index:5;padding:6px 12px;background:#f7f7f7;border-top:1px solid #e5e5e5;font-size:12px;color:#666}
.cmp-quotebar span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cmp-quotebar-x{border:0;background:none;font-size:18px;line-height:1;color:#999;cursor:pointer;padding:2px 6px}
.cmp-quote{margin:2px 0 4px;padding:4px 8px;border-left:3px solid #07c160;background:rgba(0,0,0,.04);border-radius:4px;font-size:11px;color:#666;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cmp-quote b{display:block;font-size:11px;color:#576b95;margin-bottom:1px}
.cmp-read{display:block;font-size:10px;color:#9aa0a6;margin:2px 4px 0 0;text-align:right}
.cmp-recalled{text-align:center;font-size:11px;color:#9aa0a6;margin:6px 0}
.cmp-msg{align-items:flex-end}
.cmp-msg>div{min-width:0}
.msg-menu{position:fixed;inset:0;z-index:9998;background:rgba(0,0,0,.35);display:flex;align-items:flex-end;justify-content:center;padding-bottom:60px}
.msg-menu-c{display:flex;flex-direction:column;gap:1px;background:#fff;border-radius:12px;overflow:hidden;min-width:220px;box-shadow:0 8px 32px rgba(0,0,0,.18)}
.msg-menu-c button{border:0;background:#fff;padding:13px 20px;font-size:14px;color:#333;text-align:center;cursor:pointer}
.msg-menu-c button:active{background:#f2f2f2}
.msg-menu-c button.danger{color:#e64340}
.tdots{display:inline-flex;gap:3px;align-items:center;height:16px}
.tdots i{width:6px;height:6px;border-radius:50%;background:#bbb;animation:tdot 1.2s infinite ease-in-out}
.tdots i:nth-child(2){animation-delay:.2s}.tdots i:nth-child(3){animation-delay:.4s}
@keyframes tdot{0%,60%,100%{transform:translateY(0);opacity:.5}30%{transform:translateY(-3px);opacity:1}}
.cmp-unread{flex:0 0 auto;align-self:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#fa5151;color:#fff;font-size:11px;font-style:normal;line-height:18px;text-align:center;font-weight:600}

/* ===== v1.9.6 感动圈（朋友圈+视频号） ===== */
.mo-tabs{display:flex;gap:8px;margin-bottom:12px}
.mo-tab{flex:1;padding:9px 0;border:1px solid var(--line,#e5e5e5);border-radius:10px;background:#fff;font-size:14px;color:#555;cursor:pointer}
.mo-tab.on{background:#07c160;border-color:#07c160;color:#fff;font-weight:600}
.mo-fab{position:fixed;right:18px;bottom:calc(24px + env(safe-area-inset-bottom));z-index:30;width:52px;height:52px;border-radius:50%;border:0;background:#07c160;color:#fff;font-size:26px;line-height:1;box-shadow:0 6px 18px rgba(7,193,96,.4);cursor:pointer}
.mo-card{padding:14px 14px 10px;margin-bottom:10px}
.mo-top{display:flex;gap:10px;align-items:flex-start}
.mo-tx{flex:1;min-width:0}
.mo-name{color:#576b95;font-size:15px}
.mo-meta{display:block;font-size:11px;color:#999;margin-top:1px}
.mo-text{font-size:15px;line-height:1.5;color:#1a1a1a;margin:8px 0 0;word-break:break-word}
.mo-grid{display:grid;gap:5px;margin-top:10px}
.mo-grid--1{grid-template-columns:1fr}
.mo-grid--2,.mo-grid--3,.mo-grid--4{grid-template-columns:repeat(2,1fr)}
.mo-grid--5,.mo-grid--6,.mo-grid--7,.mo-grid--8,.mo-grid--9{grid-template-columns:repeat(3,1fr)}
.mo-img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px;cursor:zoom-in}
.mo-vwrap{position:relative;width:100%;aspect-ratio:16/9;border-radius:8px;overflow:hidden;background:#111;cursor:pointer;display:flex;align-items:center;justify-content:center}
.mo-vpost{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.mo-play{position:relative;z-index:2;width:44px;height:44px;border-radius:50%;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;color:#fff}
.mo-play svg{width:26px;height:26px}
.mo-ft{display:flex;align-items:center;justify-content:space-between;margin-top:10px}
.mo-time{font-size:11px;color:#9aa0a6}
.mo-acts{display:flex;gap:14px}
.mo-act{border:0;background:none;font-size:12px;color:#576b95;cursor:pointer;padding:2px 4px}
.mo-act.liked{color:#fa5151;font-weight:600}
.mo-cmts{margin-top:8px;background:#f6f6f6;border-radius:8px;padding:8px 10px;font-size:13px}
.mo-likes{color:#576b95;font-size:12px;padding-bottom:4px;border-bottom:1px solid #ececec;margin-bottom:4px}
.mo-cmt{line-height:1.6;color:#333;word-break:break-word}
.mo-cmt b{color:#576b95;font-weight:500;margin-right:6px}
.mo-cmtbar{display:flex;gap:8px;margin-top:8px}
.mo-pub{display:flex;flex-direction:column}
.mo-ta{width:100%;border:0;resize:none;font-size:15px;line-height:1.5;padding:4px 2px}
.mo-grid--pub{grid-template-columns:repeat(3,1fr);margin-top:8px}
.mo-pend-it{position:relative;aspect-ratio:1;border-radius:8px;overflow:hidden;background:#f0f0f0}
.mo-pend-it img{width:100%;height:100%;object-fit:cover}
.mo-pend-x{position:absolute;top:2px;right:2px;width:22px;height:22px;border-radius:50%;border:0;background:rgba(0,0,0,.55);color:#fff;font-size:14px;line-height:1;cursor:pointer}
.mo-pend-v{position:absolute;left:4px;bottom:4px;padding:1px 6px;border-radius:6px;background:rgba(0,0,0,.5);color:#fff;font-size:10px}
.mo-addbtn{margin-top:8px;padding:10px;border:1px dashed #c9c9c9;border-radius:10px;background:#fafafa;color:#666;font-size:13px;cursor:pointer;text-align:center}

/* ---------- v1.9.10 感译 · 翻译台（195+ 语种 / 音色 / 播放 / 分享） ---------- */
.tr-card { padding: 14px; }
.tr-io { display: grid; grid-template-columns: 1fr 34px 1fr; gap: 8px; align-items: center; margin-bottom: 12px; }
.tr-lang { display: flex; flex-direction: column; gap: 2px; align-items: flex-start; text-align: left;
  padding: 9px 12px; border: 1px solid var(--outline); border-radius: 12px;
  background: var(--surface); font: inherit; color: var(--on-surface); cursor: pointer; min-width: 0; }
.tr-lang i { font-style: normal; font-size: 10.5px; opacity: .6; }
.tr-lang b { font-size: 14px; font-weight: 700; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tr-swap { width: 34px; height: 34px; border-radius: 50%; border: 1px solid var(--outline);
  background: var(--surface); color: var(--primary); font-size: 15px; cursor: pointer; }
.tr-in { width: 100%; box-sizing: border-box; min-height: 92px; padding: 12px; border: 1px solid var(--outline);
  border-radius: 12px; background: var(--surface); color: var(--on-surface);
  font: inherit; font-size: 15px; line-height: 1.5; resize: vertical; }
.tr-bar { display: flex; align-items: center; gap: 10px; margin-top: 10px; }
.tr-mic { display: inline-flex; align-items: center; gap: 7px; padding: 9px 14px; border-radius: 999px;
  border: 1px solid var(--outline); background: var(--surface); color: var(--on-surface);
  font: inherit; font-size: 13px; cursor: pointer; flex: none; }
.tr-mic__dot { width: 9px; height: 9px; border-radius: 50%; background: var(--primary); flex: none; }
.tr-mic.is-on { border-color: var(--primary); color: var(--primary); }
.tr-mic.is-on .tr-mic__dot { animation: trPulse 1.1s ease-in-out infinite; }
@keyframes trPulse { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: .3; transform: scale(1.5); } }
.tr-cnt { margin-left: auto; font-size: 11.5px; opacity: .55; flex: none; }
.tr-out { margin-top: 12px; padding-top: 12px; border-top: 1px dashed var(--outline); }
.tr-out__l { font-size: 11px; letter-spacing: .12em; opacity: .6; margin-bottom: 6px; }
.tr-out__t { font-size: 16px; line-height: 1.6; white-space: pre-wrap; word-break: break-word; }
.tr-acts { display: flex; gap: 8px; margin-top: 10px; flex-wrap: wrap; }
.tr-tone { padding: 14px; }
.tr-tone__it { display: flex; align-items: center; justify-content: space-between; width: 100%; gap: 10px;
  padding: 11px 13px; margin: 6px 0; border: 1px solid var(--outline); border-radius: 12px;
  background: transparent; font: inherit; font-size: 14px; color: var(--on-surface); cursor: pointer; text-align: left; }
.tr-tone__it.is-on { border-color: var(--primary); background: color-mix(in srgb, var(--primary) 8%, transparent); }
.tr-tone__it.is-on b { color: var(--primary); }
.tr-tone__it span { font-size: 12px; opacity: .65; flex: none; }
.tr-tone__it.is-dis { opacity: .45; cursor: not-allowed; }
.tr-hist { padding: 14px; }
.tr-h { display: flex; flex-direction: column; gap: 2px; padding: 9px 0;
  border-top: 1px solid var(--outline); cursor: pointer; }
.tr-h:first-of-type { border-top: 0; }
.tr-h span { font-size: 12.5px; opacity: .6; }
.tr-h b { font-size: 14px; font-weight: 600; }

/* 语种选择层（常用置顶 + 全量可搜）；z-index 需高于通话翻译面板 #callTrOv(99998) */
.tr-pick__ov { position: fixed; inset: 0; z-index: 99999; background: rgba(10, 14, 22, .5);
  display: flex; align-items: flex-end; justify-content: center; }
.tr-pick { width: 100%; max-width: 560px; max-height: 78vh; display: flex; flex-direction: column;
  background: var(--surface); border-radius: 22px 22px 0 0;
  padding: 16px 16px calc(12px + env(safe-area-inset-bottom)); box-sizing: border-box; }
.tr-pick__h { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.tr-pick__h b { font-size: 15px; }
.tr-pick__x { border: 0; background: transparent; font-size: 16px; color: var(--on-surface); cursor: pointer; opacity: .6; }
.tr-pick__q { width: 100%; box-sizing: border-box; margin-bottom: 8px; }
.tr-pick__list { overflow-y: auto; -webkit-overflow-scrolling: touch; flex: 1; min-height: 0; }
.tr-pick__grp { font-size: 11px; letter-spacing: .1em; opacity: .55; padding: 10px 4px 4px; }
.tr-pick__it { display: flex; align-items: center; gap: 10px; width: 100%; padding: 10px 12px; margin: 2px 0;
  border: 0; border-radius: 10px; background: transparent; font: inherit;
  color: var(--on-surface); text-align: left; cursor: pointer; }
.tr-pick__it b { font-size: 14.5px; font-weight: 600; }
.tr-pick__it span { font-size: 12px; opacity: .55; margin-left: auto; }
.tr-pick__it.is-on { background: color-mix(in srgb, var(--primary) 10%, transparent); }
.tr-pick__it.is-on b { color: var(--primary); }
.tr-pick__it i { font-style: normal; color: var(--primary); font-weight: 700; }
.tr-pick__none { padding: 20px 4px; font-size: 13px; opacity: .6; text-align: center; }

@media (max-width: 380px) {
  .tr-io { grid-template-columns: 1fr 30px 1fr; gap: 6px; }
  .tr-lang b { font-size: 13px; }
  .tr-swap { width: 30px; height: 30px; }
}
@media (prefers-reduced-motion: reduce) {
  .tr-mic.is-on .tr-mic__dot { animation: none; }
}

/* 修复：v1.9.13 引用条 display:flex 覆盖了 [hidden]，空引用条曾常驻聊天页输入栏上方 */
.cmp-quotebar[hidden] { display: none; }

/* v1.9.13 聊天页撑满视口：空会话时输入栏也贴住底部快捷条（原先悬在半空、下方留大段空白） */
.sub--chat .sub-bd { display: flex; flex-direction: column; }
.sub--chat .cmp-chat { flex: 1 0 auto; }
/* 聊天页正文尾部留白一并收掉：输入栏紧贴底部快捷条（specificity 高于 .sub--hasbar .sub-bd） */
.sub--chat.sub--hasbar .sub-bd { padding-bottom: 0; }

/* ===== v1.9.12 感动家园底部快捷条（感字家族：感说/感译/感办/感议/感圈） =====
   .sub 为 fixed flex 纵向容器 → 底栏作为最后一个 flex 行天然固定在页底，不随内容滚动。
   感看（视频号）与感圈（朋友圈）同页双 tab → 导航合并为单一入口「感圈」。 */
.homebar { flex: 0 0 auto; display: flex; align-items: stretch; gap: 2px;
  padding: 5px 6px calc(5px + env(safe-area-inset-bottom));
  background: var(--surface-c);
  border-top: 1px solid color-mix(in srgb, var(--outline) 34%, transparent); }
.homebar[hidden] { display: none; }
.hb { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; align-items: center; gap: 2px;
  padding: 6px 2px 5px; border: 0; border-radius: 12px; background: transparent;
  color: var(--on-surface-v); font: inherit; cursor: pointer;
  -webkit-tap-highlight-color: transparent; transition: background .15s ease, color .15s ease; }
.hb:active { background: var(--surface-c-2); }
.hb__ic { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; }
.hb__ic svg { width: 21px; height: 21px; }
.hb__t { font-size: 10.5px; font-weight: 650; line-height: 1.1; white-space: nowrap; }
.hb.is-on { color: var(--primary); }
.hb.is-on .hb__t { font-weight: 800; }
/* 底栏占用底部安全区后，正文尾部与聊页输入栏收掉各自的 safe-area 下留白 */
.sub--hasbar .sub-bd { padding-bottom: 12px; }
.sub--hasbar .cmp-bar { padding-bottom: 9px; }
/* 修正：v1.9.6 新增的感圈 / 感看 宫格底色此前遗漏 → 图标白字透底不可见 */
.ws-ic--p { background: linear-gradient(135deg, #f0568a, #c81e5b); }
.ws-ic--r { background: linear-gradient(135deg, #14b8a6, #0d7d72); }
.ws-ic--y { background: linear-gradient(135deg, #f59e0b, #b45309); }
.gb-att-rules { display: flex; flex-wrap: wrap; gap: 6px; }
.gb-trip-f label { display: block; margin: 8px 0; font-size: 13px; opacity: .85; }
.gb-trip-f .f-in { margin-top: 4px; }
.gb-trip-act { display: flex; gap: 8px; padding: 6px 0 2px; }
.gb-att-phov { position: fixed; inset: 0; background: rgba(0,0,0,.82); display: flex; align-items: center; justify-content: center; z-index: 999; }
.gb-att-phov img { max-width: 92%; max-height: 86%; border-radius: 10px; } /* v2.1.0 感财 */

/* ===== v1.9.15 家园页公告：轮播卡（横滑 scroll-snap + 自动轮播 + 圆点），空态完全隐藏 ===== */
.ann-hd { display: flex; align-items: center; justify-content: space-between; margin: 14px 2px 8px; }
.ann-hd-t { display: inline-flex; align-items: center; gap: 6px; font-size: 15px; font-weight: 800; color: var(--on-surface); }
.ann-hd-t svg { width: 18px; height: 18px; flex: none; }
.ann-car { display: flex; gap: 10px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 0 0 8px; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.ann-car::-webkit-scrollbar { display: none; }
/* v1.9.26 公告卡满宽：与上方功能瓦片/横条左右边缘严格对齐（100% + 起点吸附） */
.ann-card { position: relative; flex: 0 0 100%; min-width: 0; scroll-snap-align: start; display: flex; flex-direction: column; gap: 5px; padding: 12px 14px 10px; margin: 0; }
.ann-card b { font-size: 15px; line-height: 1.35; }
.ann-card p { margin: 0; font-size: 12.5px; color: var(--on-surface-v); line-height: 1.55; }
.ann-card > span { font-size: 11px; color: var(--on-surface-v); opacity: .85; }
.ann-card.is-pin { border-color: rgba(229, 72, 77, .35); }
.ann-pin { position: absolute; top: 10px; right: 10px; z-index: 1; background: #e5484d; color: #fff; font-size: 10px; font-style: normal; font-weight: 800; padding: 2px 8px; border-radius: 999px; letter-spacing: .5px; }
.ann-cover { margin: 0 0 3px; border-radius: 10px; overflow: hidden; aspect-ratio: 16 / 9; background: #eef1f6; position: relative; }
.ann-cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ann-cover--v .mo-play { position: absolute; inset: 0; margin: auto; width: 46px; height: 46px; display: flex; align-items: center; justify-content: center; background: rgba(0, 0, 0, .45); border-radius: 50%; color: #fff; }
.ann-cover--v .mo-play svg { width: 22px; height: 22px; }
.ann-dots { display: flex; gap: 6px; justify-content: center; padding: 0 0 2px; }
.ann-dot { width: 6px; height: 6px; border-radius: 999px; background: var(--outline); transition: all .25s; }
.ann-dot.on { width: 18px; background: var(--primary); }
.ann-media { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin: 10px 0 2px; }
.ann-media .mo-img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; border-radius: 9px; cursor: pointer; }
.ann-media .mo-vwrap { aspect-ratio: 1 / 1; border-radius: 9px; overflow: hidden; position: relative; background: #eef1f6; }
.ann-media .mo-vwrap .mo-vpost { width: 100%; height: 100%; object-fit: cover; display: block; }
.ann-media .mo-vwrap .mo-play { position: absolute; inset: 0; margin: auto; width: 38px; height: 38px; display: flex; align-items: center; justify-content: center; background: rgba(0, 0, 0, .45); border-radius: 50%; color: #fff; }
.ann-media .mo-vwrap .mo-play svg { width: 19px; height: 19px; }
.ann-media .cmp-vid { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; border-radius: 9px; }
.ann-det-t { display: block; font-size: 17px; line-height: 1.4; margin-bottom: 4px; }
.ann-det-m { display: block; font-size: 11.5px; color: var(--on-surface-v); margin-bottom: 8px; }
/* v1.9.26 公告双语：详情页副语种块 + 操作按钮排 */
.ann-alt { margin-top: 12px; padding-top: 10px; border-top: 1px dashed var(--outline); }
.ann-alt-tag { display: inline-block; font-size: 10px; font-weight: 800; letter-spacing: .5px; color: var(--primary); background: rgba(59, 130, 246, .10); padding: 2px 8px; border-radius: 999px; margin-bottom: 6px; }
.ann-alt b { display: block; font-size: 14px; line-height: 1.45; }
.ann-alt p { margin: 4px 0 0; font-size: 12.5px; color: var(--on-surface-v); line-height: 1.6; }
.ann-acts { display: flex; gap: 10px; margin-top: 12px; }
.ann-acts .btn { flex: 1; min-width: 0; }

/* ==========================================================================
   v1.9.16 感算 / 感议 / 感播 / 设置中心
   ========================================================================== */
.ws-live { width: 100%; margin-top: 10px; display: flex; align-items: center; gap: 11px;
  padding: 13px 14px; border: 0; border-radius: var(--radius, 16px); cursor: pointer;
  background: linear-gradient(120deg, #4f46e5, #9333ea); color: #fff; text-align: left; }
/* v1.9.36 感播长条左侧徽标：A 方案方形环球标志（圆角收小呈方形；图标换 globe） */
.ws-live .ws-ic--live { width: 38px; height: 38px; border-radius: 9px; background: rgba(255,255,255,.18);
  display: flex; align-items: center; justify-content: center; color: #fff; }
.ws-live .ws-ic--live svg { width: 20px; height: 20px; }
.ws-live-tx { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.ws-live-tx b { font-size: 14.5px; }
.ws-live-tx span { font-size: 11.5px; opacity: .85; }
.ws-live-go { font-size: 12.5px; opacity: .9; }
.suan-hero { background: linear-gradient(120deg, #1e293b, #334155); color: #f1f5f9; }
.suan-hero b { font-size: 16px; }
.suan-hero p { font-size: 12px; opacity: .8; margin-top: 4px; }
.suan-chat { display: flex; flex-direction: column; gap: 8px; max-height: 300px; overflow-y: auto; min-height: 60px; }
.suan-chat[hidden] { display: none; } /* v1.9.28 防 display:flex 覆盖 [hidden]（引用条同款坑） */
.suan-bub { max-width: 86%; padding: 9px 12px; border-radius: 14px; font-size: 13.5px; line-height: 1.55; }
/* v1.9.21 感算服务行改为可点按钮（样式与 .row 一致） */
button.row.suan-svc { width: 100%; text-align: left; border: 0; background: none; font: inherit; color: inherit; cursor: pointer; padding: 0; }
button.row.suan-svc:active { opacity: .75; }
.suan-bub--ai { align-self: flex-start; background: var(--surface-c-2, #eef1f6); }
.suan-bub--me { align-self: flex-end; background: linear-gradient(135deg, #4f46e5, #6d28d9); color: #fff; }
.suan-askrow { margin-top: -4px; }

/* ===== v1.9.28 感算设计稿改版：深色平台横幅 + 服务大卡 + 底部固定发送条/快捷条 ===== */
.su-banner { background: linear-gradient(135deg, #0f1b2d, #1d2f4d 65%, #27436b); color: #f4f7fb;
  border-radius: 16px; padding: 17px 16px; box-shadow: 0 4px 16px rgba(15, 27, 45, .18); }
.su-banner b { display: block; font-size: 18px; letter-spacing: .02em; }
.su-banner p { margin: 5px 0 0; font-size: 12px; opacity: .78; line-height: 1.6; }
.su-card { background: var(--surface-c); border-radius: 16px; margin-top: 14px;
  box-shadow: var(--elev-1); overflow: hidden; }
.su-row { display: flex; align-items: center; gap: 12px; width: 100%; text-align: left;
  border: 0; background: none; font: inherit; color: inherit; cursor: pointer; padding: 13px 14px; }
.su-row + .su-row { border-top: 1px solid var(--outline); }
.su-row:active { background: var(--surface-c-2); }
.su-ic { flex: 0 0 40px; width: 40px; height: 40px; border-radius: 12px; display: flex;
  align-items: center; justify-content: center; color: #fff;
  background: linear-gradient(135deg, #fb7185, #dc2626); box-shadow: 0 3px 8px rgba(220, 38, 38, .26); }
.su-ic svg { width: 21px; height: 21px; }
.su-ic--1 { background: linear-gradient(135deg, #f97362, #c2410c); box-shadow: 0 3px 8px rgba(194, 65, 12, .26); }
.su-ic--2 { background: linear-gradient(135deg, #f59e0b, #d97706); box-shadow: 0 3px 8px rgba(217, 119, 6, .26); }
.su-ic--3 { background: linear-gradient(135deg, #f472b6, #db2777); box-shadow: 0 3px 8px rgba(219, 39, 119, .26); }
.su-ic--4 { background: linear-gradient(135deg, #a78bfa, #7c3aed); box-shadow: 0 3px 8px rgba(124, 58, 237, .26); }
.su-ic--5 { background: linear-gradient(135deg, #38bdf8, #0284c7); box-shadow: 0 3px 8px rgba(2, 132, 199, .26); }
.su-ic--6 { background: linear-gradient(135deg, #34d399, #059669); box-shadow: 0 3px 8px rgba(5, 150, 105, .26); }
.su-ic--7 { background: linear-gradient(135deg, #f87171, #b91c1c); box-shadow: 0 3px 8px rgba(185, 28, 28, .26); }
.su-nm { flex: 1 1 auto; font-size: 15px; font-weight: 600; min-width: 0; }
.su-x { flex: 0 1 auto; color: var(--on-surface-v); font-size: 11.5px; text-align: right; }
.su-chev { flex: 0 0 16px; width: 16px; height: 16px; color: var(--on-surface-v); opacity: .55; }
@media (max-width: 359px) { .su-x { display: none; } }
/* 详情页 */
.su-intro { background: var(--surface-c); border-radius: 14px; box-shadow: var(--elev-1);
  padding: 13px 14px; margin-top: 14px; font-size: 13.5px; line-height: 1.75; color: var(--on-surface-v); }
.su-sec { margin-top: 14px; }
.su-sec-t { font-size: 15px; font-weight: 700; margin: 0 2px 8px; }
.su-lis { display: grid; gap: 8px; }
.su-li { background: var(--surface-c); border-radius: 12px; box-shadow: var(--elev-1); padding: 11px 13px; }
.su-li b { display: block; font-size: 13.5px; }
.su-li span { display: block; margin-top: 3px; font-size: 12px; line-height: 1.6; color: var(--on-surface-v); }
.su-cta { display: block; width: 100%; margin-top: 16px; padding: 12px; border: 0; border-radius: 999px;
  font: inherit; font-size: 14px; font-weight: 700; color: #fff; cursor: pointer;
  background: linear-gradient(135deg, #ef4444, #c8102e); box-shadow: 0 4px 12px rgba(200, 16, 46, .3); }
.su-cta:active { opacity: .88; }
/* 底部固定发送条（homeBar 容器） */
.homebar.su-ask { gap: 8px; align-items: center; padding: 8px 10px calc(8px + env(safe-area-inset-bottom));
  background: var(--surface-c); border-top: 1px solid var(--outline); }
.homebar.su-ask .f-in { flex: 1 1 auto; border-radius: 999px; min-width: 0; }
.su-send { flex: 0 0 auto; border: 0; border-radius: 999px; padding: 10px 19px; font: inherit;
  font-size: 14px; font-weight: 700; color: #fff; cursor: pointer;
  background: linear-gradient(135deg, #f97316, #ea580c); box-shadow: 0 3px 10px rgba(234, 88, 12, .35); }
.su-send:active { opacity: .88; }
/* 详情页底部快捷条 */
.homebar.su-quick { gap: 8px; padding: 8px 10px calc(8px + env(safe-area-inset-bottom));
  background: var(--surface-c); border-top: 1px solid var(--outline); }
.su-qb { flex: 1; padding: 11px 4px; border-radius: 12px; border: 1px solid var(--outline);
  background: transparent; font: inherit; font-size: 13.5px; font-weight: 600;
  color: var(--on-surface); cursor: pointer; }
.su-qb:active { background: var(--surface-c-2); }
.su-qb--fill { border-color: transparent; background: linear-gradient(135deg, #ef4444, #c8102e);
  color: #fff; box-shadow: 0 3px 10px rgba(200, 16, 46, .3); }
/* 感算我方气泡对齐品牌红 */
.suan-bub--me { align-self: flex-end; background: linear-gradient(135deg, #ef4444, #c8102e); color: #fff; }
.meet-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.meet-tile { position: relative; aspect-ratio: 4 / 3; background: #111827; border-radius: 12px; overflow: hidden; }
.meet-tile video { width: 100%; height: 100%; object-fit: cover; display: block; }
.meet-nm { position: absolute; left: 6px; bottom: 6px; font-size: 11px; color: #fff;
  background: rgba(0,0,0,.45); padding: 2px 8px; border-radius: 999px; }
.meet-bar { display: flex; gap: 8px; margin-top: 12px; }
.meet-b { flex: 1; padding: 10px 4px; font-size: 13px; }
.meet-b--end { background: #dc2626; color: #fff; }
.live-stage { position: relative; aspect-ratio: 16 / 10; background: #0b1220; border-radius: 16px; overflow: hidden; }
.live-stage video { width: 100%; height: 100%; object-fit: cover; display: block; }
.live-badge { position: absolute; top: 10px; left: 10px; font-size: 11px; font-weight: 800; color: #fff;
  background: #dc2626; padding: 3px 9px; border-radius: 999px; letter-spacing: .06em; }
.live-viewers { position: absolute; top: 10px; right: 10px; font-size: 11.5px; color: #fff;
  background: rgba(0,0,0,.5); padding: 3px 10px; border-radius: 999px; }
.live-cap { position: absolute; left: 10px; right: 10px; bottom: 12px; font-size: 13px; line-height: 1.5;
  color: #fff; background: rgba(0,0,0,.55); padding: 8px 11px; border-radius: 10px;
  opacity: 0; transition: opacity .3s; pointer-events: none; }
.live-cap.is-on { opacity: 1; }
.set-row { cursor: pointer; }
.set-row input[type=checkbox] { width: 19px; height: 19px; accent-color: #4f46e5; }
/* 字号个性化 */
body.fz-lg .sub-bd { font-size: 15.5px; }
body.fz-xl .sub-bd { font-size: 17px; }
body.fz-lg .row, body.fz-lg .ann-det-t { font-size: 1.05em; }
body.fz-xl .row, body.fz-xl .ann-det-t { font-size: 1.12em; }


/* ===== v1.9.18 会员在线状态点（同事录头像右下角 + 状态选择行） ===== */
.cmp-av { position: relative; }
.cmp-av--on::after, .cmp-av--aw::after, .cmp-av--wk::after, .cmp-av--bs::after {
  content: ''; position: absolute; right: -2px; bottom: -2px; width: 11px; height: 11px;
  border-radius: 50%; border: 2px solid var(--card, #fff); box-shadow: 0 0 0 1px rgba(0,0,0,.06);
}
.cmp-av--on::after { background: #22c55e; }
.cmp-av--aw::after { background: #f59e0b; }
.cmp-av--wk::after { background: #3b82f6; }
.cmp-av--bs::after { background: #ef4444; }
#stRow .btn.is-on { background: rgba(14,154,174,.16); color: #0b7f8e; font-weight: 700; }

/* ===== v1.9.19 直播中心深化 / 感译文档翻译+离线手册 / 感说译开关 ===== */
/* 感播列表：品牌 hero + 排期/回放行 */
.lv-hero { display: flex; align-items: center; gap: 12px; padding: 16px; margin: 2px 0 12px;
  border-radius: 16px; color: #fff;
  background: linear-gradient(135deg, #B3002D 0%, #E8442E 55%, #F59E1B 130%);
  box-shadow: 0 8px 22px rgba(232,68,46,.28); }
.lv-hero__tx { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.lv-hero__tx b { font-size: 17px; }
.lv-hero__tx span { font-size: 12px; opacity: .88; }
.lv-row__ic { color: #E8442E; animation: lvPulse 1.8s ease-in-out infinite; }
@keyframes lvPulse { 0%,100% { opacity: 1; } 50% { opacity: .45; } }
.lv-srow { position: relative; }
.lv-sdel { border: 0; background: none; color: #ef4444; font-size: 15px; padding: 6px 8px; cursor: pointer; }
/* 直播间：点赞 + 弹幕层 */
.live-stage { position: relative; }
.lv-like { position: absolute; right: 10px; bottom: 46px; z-index: 3; display: flex; align-items: center; gap: 4px;
  border: 0; border-radius: 999px; padding: 6px 12px; color: #fff; font-size: 13px; font-weight: 700; cursor: pointer;
  background: rgba(0,0,0,.35); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
.lv-like.is-on { background: rgba(232,68,46,.85); }
.lv-like--pop { animation: lvPop .5s ease; }
@keyframes lvPop { 0% { transform: scale(1); } 40% { transform: scale(1.28); } 100% { transform: scale(1); } }
.lv-dm { position: absolute; left: 0; right: 0; top: 0; height: 78%; overflow: hidden; pointer-events: none; z-index: 2;
  -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 22%, #000 82%, transparent 100%);
  mask-image: linear-gradient(180deg, transparent 0, #000 22%, #000 82%, transparent 100%); }
.lv-dm__it { position: absolute; left: 100%; white-space: nowrap; max-width: 92%; overflow: hidden; text-overflow: ellipsis;
  padding: 3px 10px; border-radius: 999px; font-size: 12px; color: #fff;
  background: rgba(0,0,0,.34); animation: lvFly 4.2s linear forwards; }
.lv-dm__it--host { background: rgba(232,68,46,.78); font-weight: 700; }
@keyframes lvFly { from { transform: translateX(0); } to { transform: translateX(calc(-100vw - 100%)); } }
.lv-hostbar { margin-top: 4px; }
.lv-endbtn { background: #B3002D; }
/* 感译：粘贴翻译 + 文档/离线入口 */
.tr-paste { border: 0; background: none; color: var(--pri, #B3002D); font-size: 12px; font-weight: 600; padding: 6px 4px; cursor: pointer; }
.tr-more { display: flex; flex-direction: column; gap: 8px; margin: 10px 0; }
.tr-more__it { display: flex; flex-direction: column; gap: 3px; text-align: left; padding: 12px 14px; border: 1px solid var(--line, #eee);
  border-radius: 14px; background: var(--card, #fff); cursor: pointer; }
.tr-more__it b { font-size: 14px; }
.tr-more__it span { font-size: 12px; color: var(--sub, #888); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* 感译离线手册 */
.tr-off__list { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.tr-off__it { display: flex; flex-direction: column; gap: 2px; align-items: flex-start; text-align: left;
  padding: 10px 12px; border: 1px solid var(--line, #eee); border-radius: 12px; background: var(--card, #fff); cursor: pointer; }
.tr-off__it.is-on { border-color: #0E9AA7; background: rgba(14,154,167,.08); }
.tr-off__it b { font-size: 14px; }
.tr-off__it span { font-size: 11px; color: var(--sub, #888); }
.tr-off__it i { font-style: normal; font-size: 11px; color: #0E9AA7; font-weight: 700; }
.tr-off__row { display: flex; align-items: center; gap: 10px; padding: 10px 2px; border-bottom: 1px dashed var(--line, #eee); cursor: pointer; }
.tr-off__row:last-child { border-bottom: 0; }
.tr-off__row span { flex: 0 0 42%; font-size: 13px; color: var(--sub, #666); }
.tr-off__row b { flex: 1; font-size: 14px; }
.tr-off__row i { font-style: normal; color: #0E9AA7; }
/* 感说「译」开关 */
.chat-tr { font-weight: 800; font-size: 14px; }
.chat-tr.is-on { background: rgba(14,154,167,.16); color: #0b7f8e; }
/* 深色主题适配 */
[data-dark="1"] .tr-more__it, [data-dark="1"] .tr-off__it { background: var(--card, #1c1c1e); border-color: var(--line, #333); }
[data-dark="1"] .tr-off__row { border-color: var(--line, #333); }
/* 平板 */
@media (min-width: 761px) {
  .lv-hero { padding: 20px 22px; border-radius: 18px; }
  .tr-off__list { grid-template-columns: 1fr 1fr 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .lv-row__ic, .lv-dm__it, .lv-like--pop { animation: none; }
}

/* ============ v1.9.20 感说全能生态 ============ */
/* 白灰纯净输入栏：白底浅灰描边，深色主题自适应 */
.cmp-bar { background: var(--bg, #fff); border-top: 1px solid var(--line, rgba(0,0,0,.08)); }
[data-dark] .cmp-bar { border-top-color: rgba(255,255,255,.1); }
.cmp-inrow .f-in { background: var(--card, #f5f6f7); border: 1px solid var(--line, rgba(0,0,0,.08)); border-radius: 20px; }
[data-dark] .cmp-inrow .f-in { background: rgba(255,255,255,.06); }
.cmp-plus { font-weight: 700; color: var(--mut, #667); }
.chat-ai { font-size: 11px; font-weight: 800; letter-spacing: .02em; color: #7c3aed; background: rgba(124,58,237,.1); border-radius: 50%; }
.chat-ai.is-on { color: #fff; background: #7c3aed; }
.chat-tr.is-on { background: rgba(14,154,174,.16); }
/* 「＋」九宫格面板 */
.plus-panel { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; padding: 14px 12px; background: var(--card, #fff); border-top: 1px solid var(--line, rgba(0,0,0,.06)); }
.plus-panel[hidden] { display: none; } /* display:grid 不得覆盖 hidden（v1.9.13 引用条同款坑） */
[data-dark] .plus-panel { border-top-color: rgba(255,255,255,.08); }
.pp-it { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 8px 2px; border: 0; background: none; font-size: 11px; color: var(--mut, #667); border-radius: 10px; cursor: pointer; }
.pp-it .pp-ic { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; font-size: 22px; background: var(--bg, #f5f6f7); border-radius: 14px; }
[data-dark] .pp-it .pp-ic { background: rgba(255,255,255,.08); }
.pp-it.is-on .pp-ic { outline: 2px solid #0e9aae; }
.pp-it:active { background: var(--bg, #f0f1f2); }
/* 红包/转账/礼品/名片/卡券 卡片 */
.x-card { max-width: 250px; padding: 12px 14px; border-radius: 12px; color: #fff; cursor: pointer; }
.x-red { background: linear-gradient(135deg, #e8663c, #d43f26); box-shadow: 0 4px 14px rgba(212,63,38,.3); }
.x-red-t { font-size: 12px; opacity: .92; }
.x-red-n { margin-top: 4px; font-size: 15px; font-weight: 700; }
.x-red-s { margin-top: 2px; font-size: 11px; opacity: .85; }
.x-tr { background: linear-gradient(135deg, #3b82f6, #2563eb); box-shadow: 0 4px 14px rgba(37,99,235,.28); }
.x-tr.is-gift { background: linear-gradient(135deg, #f59e0b, #ea8a0a); box-shadow: 0 4px 14px rgba(245,158,11,.28); }
.x-vcard { background: linear-gradient(135deg, #0e9aae, #0b7f8e); }
.x-vc-hd { display: flex; align-items: center; gap: 10px; }
.x-vc-av { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; font-size: 18px; font-weight: 800; background: rgba(255,255,255,.22); border-radius: 12px; }
.x-vc-tt { display: flex; flex-direction: column; line-height: 1.3; }
.x-vc-tt i { font-style: normal; font-size: 11px; opacity: .85; }
.x-vc-bd { display: flex; justify-content: space-between; gap: 8px; margin-top: 10px; padding-top: 8px; border-top: 1px solid rgba(255,255,255,.25); font-size: 12px; }
.x-vc-bd a { color: #fff; text-decoration: underline; }
.x-coupon { background: linear-gradient(135deg, #8b5cf6, #7c3aed); }
.x-coupon b { display: block; margin-top: 4px; font-size: 14px; }
.x-coupon p { margin: 4px 0 0; font-size: 11px; opacity: .88; }
.x-coupon a { display: block; margin-top: 4px; color: #fff; font-size: 10px; word-break: break-all; }
/* 阅后即焚标记 */
.eph-tag { display: inline-block; margin-top: 4px; font-size: 10px; color: #ef4444; font-style: normal; }
.is-me .eph-tag { color: #fca5a5; }
/* 领红包动画 */
.red-pop { position: fixed; inset: 0; z-index: 999; display: flex; align-items: center; justify-content: center; background: rgba(0,0,0,.55); }
.red-pop-c { display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 30px 40px; background: linear-gradient(135deg, #e8663c, #d43f26); border-radius: 20px; color: #fff; animation: redpop .45s cubic-bezier(.2,1.4,.4,1); }
.red-pop-e { font-size: 46px; }
.red-pop-c b { font-size: 18px; }
@keyframes redpop { 0% { transform: scale(.3); opacity: 0; } 100% { transform: scale(1); opacity: 1; } }
/* 家园页工具行 */
.talk-tools { display: flex; gap: 8px; padding: 0 2px 4px; }
@media (min-width: 761px) {
  .plus-panel { grid-template-columns: repeat(6, 1fr); max-width: 560px; }
  .x-card { max-width: 300px; }
}
@media (prefers-reduced-motion: reduce) {
  .red-pop-c { animation: none; }
}

/* v1.9.21 感动生态：卡片可点进详情 */
.eb-card[data-ebcard]{cursor:pointer;transition:transform .18s ease,box-shadow .18s ease}
.eb-card[data-ebcard]:hover{transform:translateY(-2px)}
.eb-detail__ph{margin:0 0 14px}
.eb-detail__ph img{width:100%;border-radius:14px;display:block}
.sdet-h2{font-size:19px;line-height:1.35;margin:4px 0 8px;color:var(--text,#18202c)}

/* v1.9.27 感动生态详情页：核心参数表 + 板块标题
   （此前只渲染一句话描述 → APP 里的产品/方案详情页比官网明显少，用户反馈「显示不完整」） */
.eb-sub { font-size: 15px; font-weight: 750; margin: 20px 0 8px; padding-left: 10px; border-left: 3px solid #C8102E; color: var(--text, #18202c); }
.eb-kv { border-top: 1px solid var(--line, rgba(0,0,0,.09)); margin: 2px 0 4px; }
.eb-kv > div { display: flex; justify-content: space-between; align-items: baseline; gap: 14px; padding: 10px 2px; border-bottom: 1px solid var(--line, rgba(0,0,0,.06)); }
.eb-kv span { flex: 0 0 auto; font-size: 12.5px; color: var(--mut, #667); }
.eb-kv b { font-size: 13px; font-weight: 700; color: var(--text, #18202c); text-align: right; }
.eb-dark .eb-sub { color: #fff; border-left-color: #D4A853; }
.eb-dark .eb-kv { border-top-color: rgba(212,168,83,.22); }
.eb-dark .eb-kv > div { border-bottom-color: rgba(212,168,83,.14); }
.eb-dark .eb-kv span { color: #AAB6CC; }
.eb-dark .eb-kv b { color: #E8ECF4; }
html[data-device="tablet"] .eb-sub { font-size: 16px; }
html[data-device="tablet"] .eb-kv > div { padding: 12px 2px; }

/* v1.9.22 感说「＋」面板：向上展开（面板插到输入栏上方，聊天区收缩；选择后收回输入栏回落） */
.sub--chat .cmp-chat { flex: 1 1 auto; }
.sub--chat .cmp-quotebar { order: 1; }
.sub--chat .plus-panel { order: 2; border-top: 1px solid var(--line, rgba(0,0,0,.06)); border-bottom: 1px solid var(--line, rgba(0,0,0,.06)); animation: ppUp .2s ease; }
.sub--chat .cmp-inrow { order: 3; }
@keyframes ppUp { from { transform: translateY(46px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }

/* v1.9.22 会员版感动家园 + 身份切换 */
.vip-pill { display: inline-flex; align-items: center; gap: 4px; padding: 3px 10px; border-radius: 999px; font-size: 11px; font-weight: 700; color: #8a5a00; background: linear-gradient(135deg, #ffe9b8, #ffd77a); }
[data-dark] .vip-pill { color: #ffd77a; background: rgba(255, 215, 122, .14); }
.id-chip { padding: 4px 10px; border-radius: 999px; border: 1px solid var(--line, rgba(0,0,0,.1)); background: var(--card, #fff); font-size: 11px; font-weight: 700; color: var(--mut, #667); cursor: pointer; }
.my-dyn { display: flex; gap: 10px; padding: 10px 2px; border-bottom: 1px dashed var(--line, rgba(0,0,0,.07)); align-items: flex-start; }
.my-dyn:last-child { border-bottom: 0; }
.my-dyn img { width: 52px; height: 52px; object-fit: cover; border-radius: 10px; flex: 0 0 auto; }
.my-dyn-tx { flex: 1; min-width: 0; font-size: 13px; color: var(--text, #18202c); }
.my-dyn-tm { font-size: 11px; color: var(--outline-v, #9aa4b2); margin-top: 3px; }

/* v1.9.23 感办 AI 办公自动化 */
.gban-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.gban-tile { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 10px 4px; border-radius: 12px; border: 1px solid var(--line, rgba(0,0,0,.07)); background: var(--card, #fff); font: inherit; cursor: pointer; transition: transform .15s ease, box-shadow .15s ease; }
.gban-tile:active { transform: scale(.96); }
.gban-tile b { font-size: 11px; font-weight: 700; color: var(--text, #18202c); }
[data-dark] .gban-tile { background: #232a35; border-color: rgba(255,255,255,.08); }
[data-dark] .gban-tile b { color: #e7edf5; }
.gban-out { white-space: pre-wrap; word-break: break-word; font-size: 13px; line-height: 1.6; color: var(--text, #18202c); background: var(--bg, #f5f7fa); border-radius: 10px; padding: 10px 12px; max-height: 46vh; overflow: auto; }
[data-dark] .gban-out { background: #1c232d; color: #e7edf5; }
@media (max-width: 359px) { .gban-grid { grid-template-columns: repeat(2, 1fr); } }

/* v1.9.23 感动家园版块 UI 升级：悬浮微动效 + 暗色适配 + 入场动画 */
.ws-tile { transition: transform .16s ease, box-shadow .16s ease; box-shadow: 0 1px 3px rgba(16,32,64,.05); }
.ws-tile:hover { transform: translateY(-2px); box-shadow: 0 6px 18px rgba(16,32,64,.10); }
[data-dark] .ws-tile { background: linear-gradient(160deg, #232a35, #1c232d); border-color: rgba(255,255,255,.08); }
[data-dark] .ws-tile > span:last-child { color: #9aa4b2; }
.ws-grid .ws-tile { animation: wsIn .28s ease both; }
.ws-grid .ws-tile:nth-child(2) { animation-delay: .04s; }
.ws-grid .ws-tile:nth-child(3) { animation-delay: .08s; }
.ws-grid .ws-tile:nth-child(4) { animation-delay: .12s; }
.ws-grid .ws-tile:nth-child(5) { animation-delay: .16s; }
.ws-grid .ws-tile:nth-child(6) { animation-delay: .20s; }
.ws-grid .ws-tile:nth-child(7) { animation-delay: .24s; }
.ws-grid .ws-tile:nth-child(8) { animation-delay: .28s; }
@keyframes wsIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

/* v1.9.24 添加好友（扫码/手机号/邮箱） */
.fr-tabs { display: flex; gap: 6px; }
.fr-tab { flex: 1; padding: 8px 0; border-radius: 10px; border: 1px solid var(--line, rgba(0,0,0,.08)); background: none; font: inherit; font-size: 12.5px; font-weight: 700; color: var(--mut, #667); cursor: pointer; }
.fr-tab.is-on { background: var(--primary, #2f7ef7); border-color: var(--primary, #2f7ef7); color: #fff; }
.fr-qrc { display: flex; flex-direction: column; align-items: center; padding-top: 4px; border-top: 1px dashed var(--line, rgba(0,0,0,.08)); }
.fr-qrc svg { width: 168px; height: 168px; background: #fff; border-radius: 12px; padding: 8px; }
.fr-req .fr-note { display: block; font-size: 11px; color: var(--mut, #667); font-style: normal; }
/* v1.9.24 通话中协助翻译 */
.call-trb { padding: 7px 14px; border-radius: 999px; border: 1px solid rgba(255,255,255,.5); background: rgba(0,0,0,.28); color: #fff; font: inherit; font-size: 12.5px; font-weight: 700; cursor: pointer; }
#callTrOv { position: fixed; inset: 0; z-index: 99998; background: rgba(8,12,20,.55); display: flex; align-items: flex-end; }
.calltr { width: 100%; max-height: 78vh; overflow: auto; background: var(--card, #fff); border-radius: 18px 18px 0 0; padding: 14px 14px calc(14px + env(safe-area-inset-bottom)); display: flex; flex-direction: column; gap: 10px; }
[data-dark] .calltr { background: #1c232d; }
.calltr__h { display: flex; align-items: center; }
.calltr__h b { font-size: 15px; }
.calltr__h button { margin-left: auto; border: 0; background: none; font-size: 16px; color: var(--mut, #667); cursor: pointer; }
.calltr__langs { display: flex; align-items: center; gap: 8px; }
.calltr__lg { flex: 1; display: flex; flex-direction: column; gap: 2px; padding: 8px 10px; border-radius: 10px; border: 1px solid var(--line, rgba(0,0,0,.08)); background: none; font: inherit; text-align: left; cursor: pointer; }
.calltr__lg i { font-size: 10.5px; font-style: normal; color: var(--mut, #667); }
.calltr__lg b { font-size: 13px; color: var(--text, #18202c); }
.calltr__langs > span { color: var(--mut, #667); }
.calltr__out { display: flex; flex-direction: column-reverse; gap: 8px; min-height: 120px; max-height: 34vh; overflow: auto; }
.calltr__it { background: var(--bg, #f5f7fa); border-radius: 12px; padding: 8px 10px; }
[data-dark] .calltr__it { background: #232a35; }
.calltr__it span { display: block; font-size: 12px; color: var(--mut, #667); word-break: break-word; }
.calltr__it b { display: block; font-size: 15px; line-height: 1.45; color: var(--text, #18202c); word-break: break-word; }
.calltr__in { display: flex; gap: 6px; align-items: center; }
.calltr__in .f-in { flex: 1; min-width: 0; }

/* v1.9.26 签审 · 事务流程（OA 式逐级审批） */
.appr-tabs { display: flex; gap: 6px; margin-bottom: 12px; }
.appr-tab { flex: 1; padding: 8px 0; border-radius: 10px; border: 1px solid var(--line, rgba(0,0,0,.08)); background: none; font: inherit; font-size: 12.5px; font-weight: 700; color: var(--mut, #667); cursor: pointer; }
.appr-tab.on { background: var(--primary, #2f7ef7); border-color: var(--primary, #2f7ef7); color: #fff; }
.appr-kindrow { display: flex; gap: 6px; }
.appr-kind { flex: 1; padding: 9px 0; border-radius: 10px; border: 1px solid var(--line, rgba(0,0,0,.08)); background: none; font: inherit; font-size: 13px; font-weight: 700; color: var(--mut, #667); cursor: pointer; }
.appr-kind.on { background: var(--primary, #2f7ef7); border-color: var(--primary, #2f7ef7); color: #fff; }
.appr-card .task-meta span { margin-right: 8px; }
.appr-chain { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; margin-top: 8px; padding-top: 8px; border-top: 1px dashed var(--line, rgba(0,0,0,.08)); }
.appr-chain-h { font-size: 11px; color: var(--mut, #667); margin-right: 2px; }
.appr-step { display: inline-flex; flex-direction: column; align-items: center; padding: 4px 9px; border-radius: 10px; border: 1px solid var(--line, rgba(0,0,0,.08)); line-height: 1.25; }
.appr-step b { font-size: 12px; color: var(--text, #18202c); }
.appr-step i { font-size: 10px; font-style: normal; color: var(--mut, #667); }
.appr-step.done { background: rgba(48,168,118,.12); border-color: rgba(48,168,118,.35); }
.appr-step.done b::after { content: ' ✓'; color: #30a876; }
.appr-step.cur { background: rgba(47,126,247,.10); border-color: var(--primary, #2f7ef7); }
.appr-step.cur b { color: var(--primary, #2f7ef7); }
.appr-step.cur::after { content: ''; }
.appr-step.stop { background: rgba(224,92,92,.10); border-color: rgba(224,92,92,.4); }
.appr-step.wait { opacity: .72; }
.appr-arrow { color: var(--mut, #667); font-size: 13px; }
.appr-logs { margin-top: 8px; display: flex; flex-direction: column; gap: 4px; }
.appr-log { font-size: 11.5px; color: var(--mut, #667); }
.appr-log b { display: block; font-size: 12px; color: var(--text, #18202c); font-weight: 500; word-break: break-word; }
.appr-media { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.appr-media .cmp-img { width: 96px; height: 96px; object-fit: cover; border-radius: 10px; }
.appr-acts { flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 8px; }
.appr-note { width: 100%; font-size: 12.5px; }
.appr-fw { align-items: center; justify-content: center; }
.appr-fw-box { width: min(86vw, 340px); max-height: 70vh; overflow: auto; background: var(--card, #fff); border-radius: 16px; padding: 14px; display: flex; flex-direction: column; gap: 8px; }
[data-dark] .appr-fw-box { background: #1c232d; }
.appr-fw-box > b { font-size: 14px; color: var(--text, #18202c); }
[data-dark] .appr-step { border-color: rgba(255,255,255,.12); }
[data-dark] .appr-step b { color: #e7edf5; }
[data-dark] .appr-step.done { background: rgba(48,168,118,.18); }
[data-dark] .appr-step.cur { background: rgba(47,126,247,.20); }

/* v1.9.31 下拉刷新指示器（子页顶部） */
.sub-ptr { display: flex; align-items: center; justify-content: center; gap: 8px;
  height: 0; overflow: hidden; background: var(--surface, #ffffff);
  color: var(--mut, #66707f); font-size: 12px; flex: 0 0 auto;
  transition: height .18s ease; }
.sub-ptr__sp { width: 16px; height: 16px; border-radius: 50%;
  border: 2px solid var(--line, #dde3ec); border-top-color: var(--acc, #ff6600);
  animation: ptrspin .7s linear infinite; }
.sub-ptr--armed .sub-ptr__sp { border-top-color: var(--acc, #ff6600); }
.sub-ptr--busy .sub-ptr__sp { animation-duration: .6s; }
@keyframes ptrspin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .sub-ptr__sp { animation: none; } }

/* ===== v1.9.32 在线状态设置面板（仿微信）+ 员工工作状态 + 感办任务留痕 ===== */
.st-card { display: flex; align-items: center; gap: 12px; }
.st-card-tx { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.st-card-tx b { font-size: 16px; }
.st-card-st { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--mut, #66707f); }
.st-dot { width: 9px; height: 9px; border-radius: 50%; flex: 0 0 auto; }
.st-dot--online { background: #22c55e; }
.st-dot--away { background: #f59e0b; }
.st-dot--work { background: #3b82f6; }
.st-dot--busy, .st-dot--dnd { background: #ef4444; }
.st-dot--offline { background: #b6bfcc; }
.st-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.st-chip { padding: 9px 14px; border-radius: 12px; border: 1px solid var(--line, #dde3ec);
  background: var(--surface, #fff); color: var(--ink, #1c2530); font-size: 13.5px; cursor: pointer; }
.st-chip.is-on { background: rgba(14,154,174,.14); border-color: rgba(14,154,174,.5); color: #0b7f8e; font-weight: 700; }
.st-tip { margin-top: 8px; font-size: 11.5px; color: var(--mut, #66707f); }
.st-wktag { font-style: normal; font-size: 11px; padding: 1px 7px; margin-left: 6px; border-radius: 999px;
  background: rgba(59,130,246,.13); color: #1d4ed8; vertical-align: 1px; white-space: nowrap; }
.task-log { margin-top: 8px; padding: 8px 10px; border-radius: 10px; background: var(--surface2, rgba(0,0,0,.035));
  font-size: 12px; color: var(--mut, #66707f); display: flex; flex-direction: column; gap: 4px; }
.task-log b { font-size: 11.5px; color: var(--ink, #1c2530); opacity: .8; }
.task-log-i { line-height: 1.5; }
.task-row--wd { opacity: .62; }
.task-st--3 { background: #eceff3; color: #5b6774; }
[data-dark] .task-st--3 { background: rgba(255,255,255,.10); color: #aab4c0; }
[data-dark] .st-chip { background: rgba(255,255,255,.05); }
[data-dark] .st-chip.is-on { background: rgba(14,154,174,.24); color: #4cc3d4; }
[data-dark] .task-log { background: rgba(255,255,255,.06); }

/* ===== v1.9.33 感译深色主题（AI翻译背夹设计稿）+ 翻译背夹卡 + 感圈/感视受众 ===== */
.sub.tr-dark { background: #0b1220; }
.sub.tr-dark .sub-hd { background: #0b1220; border-bottom-color: rgba(255,255,255,.08); }
.sub.tr-dark .sub-hd, .sub.tr-dark .sub-tt { color: #e8eef7; }
.sub.tr-dark .sub-bd { color: #dbe4f0; }
.sub.tr-dark .card { background: #141c2b; border-color: rgba(255,255,255,.07); color: #dbe4f0; }
.sub.tr-dark .card__t { color: #9fb0c6; }
.sub.tr-dark .tr-io { gap: 8px; }
.sub.tr-dark .tr-lang { background: #1d2740; border: 1px solid rgba(255,255,255,.08); color: #e8eef7; border-radius: 14px; }
.sub.tr-dark .tr-lang i { color: #8fa1ba; font-style: normal; }
.sub.tr-dark .tr-swap { width: 40px; height: 40px; border-radius: 50%; background: linear-gradient(135deg,#f59e0b,#fbbf24);
  border: none; color: #201400; font-weight: 800; box-shadow: 0 4px 14px rgba(245,158,11,.35); }
.sub.tr-dark .tr-in { background: #101827; border: 1px solid rgba(255,255,255,.08); color: #e8eef7; border-radius: 14px; }
.sub.tr-dark .tr-in::placeholder { color: #64748b; }
.sub.tr-dark .tr-cnt { color: #64748b; }
.sub.tr-dark .tr-out { background: #101827; border: 1px solid rgba(255,255,255,.08); border-radius: 14px; }
.sub.tr-dark .tr-out__l { color: #8fa1ba; }
.sub.tr-dark .tr-out__t { color: #e8eef7; }
.sub.tr-dark .tr-h { background: #101827; border-color: rgba(255,255,255,.06); }
.sub.tr-dark .tr-h span { color: #93a5bd; }
.sub.tr-dark .tr-h b { color: #e8eef7; }
.sub.tr-dark .tr-tone__it { background: #101827; border-color: rgba(255,255,255,.08); color: #dbe4f0; }
.sub.tr-dark .tr-tone__it.is-on { border-color: #f59e0b; color: #fbbf24; }
.sub.tr-dark .tr-tone__it.is-dis { opacity: .45; }
.sub.tr-dark .tr-mic { background: #1d2740; color: #e8eef7; }
.sub.tr-dark .tr-mic.is-on { background: #7f1d1d; color: #fecaca; }
.sub.tr-dark .tr-paste { background: #1d2740; color: #bcd3f5; }
.sub.tr-dark .f-tip { color: #64748b; }
.sub.tr-dark .tr-more__it { background: #141c2b; border: 1px solid rgba(255,255,255,.07); color: #dbe4f0; }
.sub.tr-dark .tr-more__it b { color: #e8eef7; }
.sub.tr-dark .tr-more__it span { color: #8fa1ba; }
/* 翻译背夹卡 */
.tr-clip { border: 1px solid rgba(245,158,11,.45); box-shadow: 0 0 0 1px rgba(245,158,11,.08); }
.tr-clip__hd b { color: #fbbf24; font-size: 15.5px; }
.tr-clip__dsc { margin: 8px 0 6px; font-size: 13px; line-height: 1.6; }
.tr-clip__lg { margin: 0 0 12px; font-size: 12.5px; opacity: .85; }
.tr-clip__lg b { color: #fbbf24; }
.tr-clip__tip { margin: 10px 0 0; font-size: 11.5px; opacity: .6; line-height: 1.6; }
/* 感圈/感视受众 chips */
.mo-vis { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.mo-vis__lb { font-size: 13px; opacity: .75; margin-right: 2px; }
.mo-vis__it { padding: 7px 12px; border-radius: 999px; border: 1px solid var(--line, #dde3ec);
  background: var(--surface, #fff); font-size: 12.5px; color: var(--ink, #1c2530); cursor: pointer; }
.mo-vis__it.is-on { background: rgba(14,154,174,.14); border-color: rgba(14,154,174,.5); color: #0b7f8e; font-weight: 700; }
[data-dark] .mo-vis__it { background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.12); }
[data-dark] .mo-vis__it.is-on { background: rgba(14,154,174,.24); color: #4cc3d4; }

/* ===== v1.9.33 启动页：通透玻璃 + 星空流星 + 光感斜线划过 ===== */
.splash__stars {
  position: absolute; inset: 0; display: block; pointer-events: none;
  background-image:
    radial-gradient(1.4px 1.4px at 12% 22%, rgba(255,255,255,.95), transparent 55%),
    radial-gradient(1px 1px at 32% 68%, rgba(255,255,255,.7), transparent 55%),
    radial-gradient(1.6px 1.6px at 55% 14%, rgba(255,255,255,.9), transparent 55%),
    radial-gradient(1px 1px at 68% 44%, rgba(214,234,255,.8), transparent 55%),
    radial-gradient(1.3px 1.3px at 84% 18%, rgba(255,255,255,.85), transparent 55%),
    radial-gradient(1px 1px at 90% 62%, rgba(255,255,255,.6), transparent 55%),
    radial-gradient(1.2px 1.2px at 22% 84%, rgba(255,255,255,.75), transparent 55%),
    radial-gradient(1px 1px at 46% 90%, rgba(255,255,255,.65), transparent 55%),
    radial-gradient(1.1px 1.1px at 74% 80%, rgba(255,255,255,.7), transparent 55%),
    radial-gradient(1px 1px at 8% 52%, rgba(255,255,255,.6), transparent 55%),
    radial-gradient(1.5px 1.5px at 40% 36%, rgba(226,240,255,.9), transparent 55%),
    radial-gradient(1px 1px at 60% 66%, rgba(255,255,255,.55), transparent 55%);
  animation: splTw 3.6s ease-in-out infinite alternate;
}
@keyframes splTw {
  0% { opacity: .55; }
  50% { opacity: 1; }
  100% { opacity: .7; }
}
.splash__meteor {
  position: absolute; display: block; width: 150px; height: 1.6px; pointer-events: none;
  background: linear-gradient(90deg, rgba(255,255,255,.95), rgba(160,220,255,.5) 55%, transparent);
  border-radius: 2px;
  filter: drop-shadow(0 0 6px rgba(190,230,255,.8));
  opacity: 0;
  transform: rotate(28deg);
}
.splash__meteor--a { top: 12%; left: 64%; animation: splFall 4.2s ease-in 1.1s infinite; }
.splash__meteor--b { top: 4%; left: 30%; width: 110px; animation: splFall 5.4s ease-in 3.2s infinite; }
.splash__meteor--c { top: 26%; left: 84%; width: 90px; animation: splFall 6.1s ease-in 5.4s infinite; }
@keyframes splFall {
  0% { opacity: 0; transform: rotate(28deg) translate3d(0, 0, 0); }
  6% { opacity: 1; }
  26% { opacity: .9; }
  38%, 100% { opacity: 0; transform: rotate(28deg) translate3d(-320px, 170px, 0); }
}
/* 光感斜线划过：更亮更清晰的斜向高光带 */
.splash__art::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(115deg, transparent 40%, rgba(255,255,255,.16) 49%, rgba(255,255,255,.30) 50%, rgba(255,255,255,.16) 51%, transparent 60%);
  animation: splSweep 2.6s ease-in-out infinite;
  mix-blend-mode: screen;
}
/* 通透玻璃：中央内容区下层加一块磨砂玻璃高光（无框，保持 LOGO 净化口径） */
.splash__core::before {
  content: ''; position: absolute; inset: -34px -46px; z-index: -1;
  border-radius: 46px;
  background: linear-gradient(160deg, rgba(255,255,255,.10), rgba(255,255,255,.03) 55%, rgba(125,211,252,.07));
  -webkit-backdrop-filter: blur(14px) saturate(1.25);
  backdrop-filter: blur(14px) saturate(1.25);
  border: 1px solid rgba(255,255,255,.12);
  box-shadow: 0 18px 60px rgba(2, 8, 20, .45), inset 0 1px 0 rgba(255,255,255,.18);
}
.splash__tag { letter-spacing: .12em; opacity: .78; }

/* v1.9.33 感译说明区：LOGO + 心声标语 */
.tr-hero { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; }
.tr-hero__logo { width: 44px; height: 44px; border-radius: 13px; box-shadow: 0 4px 14px rgba(0,0,0,.35); flex: 0 0 auto; }
.tr-hero__tx { font-size: 17px; font-weight: 800; letter-spacing: .02em;
  background: linear-gradient(92deg, #fff 30%, #a5e4ff 70%, #cdb6ff 100%);
  -webkit-background-clip: text; background-clip: text; color: transparent; }

/* ===== v1.9.38 感动家园/乐园首页设计稿改版（三列宫格 + 个人卡双 pill + 公告大媒体卡） ===== */
.ws-grid { grid-template-columns: repeat(3, 1fr); gap: 8px; }
.ws-grid .ws-tile { align-items: center; text-align: center; padding: 14px 6px 12px; gap: 7px; border-radius: 14px; }
.ws-grid .ws-tile b { font-size: 13px; }
.ws-grid .ws-tile > span:last-child { font-size: 10.5px; }
.ws-grid .ws-tile .ws-ic { width: 44px; height: 44px; border-radius: 13px; }
.ws-grid .ws-tile .ws-ic svg { width: 22px; height: 22px; }
.st-pill { display: inline-flex; align-items: center; gap: 5px; padding: 6px 10px; border-radius: 999px; border: none; background: rgba(127,142,160,.16); font-size: 11.5px; font-weight: 700; color: var(--on-surface, #1c232d); flex: 0 0 auto; cursor: pointer; }
.st-pill--on { background: rgba(34,197,94,.13); color: #16a34a; }
.id-chip--vip { background: rgba(255,215,122,.18); border-color: transparent; color: #b45309; padding: 5px 9px; font-size: 11px; }
.cmp-head2-tx b { white-space: nowrap; }
.ann-card { padding: 0 0 12px; gap: 8px; overflow: hidden; }
.ann-card b, .ann-card > span { padding: 0 14px; }
.ann-cover { margin: 0; border-radius: 0; }
.ann-cover--ph { display: flex; align-items: center; justify-content: center; color: rgba(255,255,255,.92); font-size: 30px; font-weight: 800; }
.ann-ph--0 { background: linear-gradient(135deg, #f97316, #e5484d); }
.ann-ph--1 { background: linear-gradient(135deg, #6366f1, #a855f7); }
.ann-ph--2 { background: linear-gradient(135deg, #0ea5e9, #22c55e); }
.ann-ph--3 { background: linear-gradient(135deg, #e5484d, #a855f7); }
.ann-card .ann-pin { top: 10px; left: 10px; right: auto; }
.ann-cover--v .mo-play { background: rgba(255,255,255,.94); color: #e5484d; }

/* ===== v1.9.39 感说交流窗口设计稿改版 ===== */
.cmp-send { flex: 0 0 auto; width: 40px; height: 40px; border-radius: 50%; border: none; display: flex; align-items: center; justify-content: center; color: #fff; background: linear-gradient(135deg, #f97316, #e5484d); box-shadow: 0 2px 8px rgba(229,72,77,.35); cursor: pointer; }
.cmp-send svg { width: 20px; height: 20px; }
.cmp-send[disabled] { opacity: .55; }
.cmp-send:active { transform: scale(.94); }
.wx-b span { white-space: pre-line; }
.cmp-va { display: inline-flex; align-items: center; gap: 8px; padding: 9px 12px; border: none; border-radius: 999px; background: linear-gradient(135deg, #f9a26c, #e5484d); color: #fff; cursor: pointer; }
.cmp-va-ic { font-size: 12px; flex: 0 0 auto; }
.cmp-va-w { display: inline-flex; align-items: center; gap: 2.5px; }
.cmp-va-w i { width: 2.5px; border-radius: 2px; background: rgba(255,255,255,.85); display: block; }
.cmp-va-w i:nth-child(1) { height: 6px; } .cmp-va-w i:nth-child(2) { height: 11px; } .cmp-va-w i:nth-child(3) { height: 15px; } .cmp-va-w i:nth-child(4) { height: 9px; } .cmp-va-w i:nth-child(5) { height: 14px; } .cmp-va-w i:nth-child(6) { height: 7px; } .cmp-va-w i:nth-child(7) { height: 10px; }
.cmp-va-d { font-size: 11px; opacity: .92; }
.cmp-inrow.is-rec > *:not(.cmp-recbar) { display: none !important; }
.cmp-recbar { flex: 1; display: flex; align-items: center; gap: 10px; min-width: 0; }
.cmp-recbar[hidden] { display: none; }
.cmp-recbar button { flex: 0 0 auto; padding: 8px 14px; border-radius: 999px; border: none; background: rgba(127,142,160,.16); font-size: 12px; font-weight: 700; color: var(--on-surface, #1c232d); cursor: pointer; }
.cmp-recbar-w { flex: 1; display: flex; align-items: center; justify-content: center; gap: 3px; height: 34px; border-radius: 999px; background: linear-gradient(135deg, rgba(249,162,108,.18), rgba(229,72,77,.18)); }
.cmp-recbar-w i { width: 3px; border-radius: 2px; background: #e5484d; animation: recW 1s ease-in-out infinite; display: block; }
.cmp-recbar-w i:nth-child(odd) { height: 10px; animation-delay: .15s; }
.cmp-recbar-w i:nth-child(even) { height: 20px; animation-delay: .3s; }
.cmp-recbar-w i:nth-child(3n) { height: 15px; animation-delay: .45s; }
@keyframes recW { 0%, 100% { transform: scaleY(.5); } 50% { transform: scaleY(1); } }
.cmp-recbar b { flex: 0 0 auto; font-size: 12px; color: #e5484d; font-variant-numeric: tabular-nums; }
/* v1.9.55 录音条「发送」键：录音态输入行其余控件被隐藏，必须有一条显式的停止并发送入口 */
.cmp-recbar-go { flex: 0 0 auto; padding: 8px 16px; border-radius: 999px; border: none; background: #e5484d; color: #fff; font-size: 12px; font-weight: 700; cursor: pointer; }
.cmp-recbar-go:active { background: #cf3f44; }
.pp-gt { grid-column: 1 / -1; font-size: 11px; font-weight: 800; color: var(--on-surface-v, #66708a); margin: 6px 2px 0; letter-spacing: .04em; }
.pp-gt:first-child { margin-top: 0; }
/* v1.9.93 语音信息与文字信息样式相同（总裁指令）：去橙红渐变胶囊，语音条直接坐在微信气泡上（我方绿/对方白），波纹与时长同色 */
.wx-b .cmp-va { background: none; border: none; color: inherit; padding: 2px 4px; gap: 7px; }
/* v1.9.94 语音消息微信式：矮条高度锁 36px（wx-b--va 减内边距），宽度随时长（JS 内联），波形细条均布拉长 */
.wx-b.wx-b--va { padding: 3px 6px; }
.wx-b .cmp-va.is-wx { display: flex; align-items: center; height: 36px; padding: 0 6px; gap: 8px; max-width: 100%; box-sizing: border-box; overflow: hidden; }
.wx-b .cmp-va.is-wx .cmp-va-ic { font-size: 14px; flex: 0 0 auto; }
.wx-b .cmp-va.is-wx .cmp-va-w { flex: 1 1 auto; display: flex; align-items: center; justify-content: space-between; }
.wx-b .cmp-va.is-wx .cmp-va-w i { width: 2.5px; }
.wx-b .cmp-va .cmp-va-ic { color: inherit; font-size: 15px; }
.wx-b .cmp-va .cmp-va-w i { background: currentColor; opacity: .82; }
.wx-b .cmp-va .cmp-va-d { color: inherit; opacity: .8; font-size: 12.5px; }

/* ===== v1.9.41 感译改版：tab 化 + 设备卡 + 功能卡网格 + 对话翻译 + 同声传译 + 声音克隆/发音（设计稿） ===== */
.sub.tr-dark .tr-wrap { display: flex; flex-direction: column; gap: 12px; }
.tr-sec { font-size: 15px; font-weight: 800; color: #e8eef7; margin: 6px 2px 0; }
.sub.tr-dark .tr-sec { color: #e8eef7; }
.tr-vip__ic { font-size: 13px; }
/* 设备连接卡 */
.sub.tr-dark .tr-dev { display: flex; align-items: center; gap: 12px; background: #141c2b;
  border: 1px solid rgba(255, 255, 255, .07); border-radius: 16px; padding: 12px 14px; }
.tr-dev__ic { width: 44px; height: 44px; border-radius: 12px; }
.tr-dev__tx { flex: 1; min-width: 0; }
.tr-dev__tx b { display: block; font-size: 15.5px; color: #e8eef7; }
.tr-dev__st { display: flex; align-items: center; gap: 5px; font-size: 12px; color: #8fa1ba; margin-top: 3px; }
.tr-dev__dot { width: 7px; height: 7px; border-radius: 50%; background: #64748b; display: inline-block; flex-shrink: 0; }
.tr-dev__dot.is-on { background: #22c55e; box-shadow: 0 0 6px rgba(34, 197, 94, .8); }
.tr-dev__go { flex-shrink: 0; padding: 7px 12px; border-radius: 999px; border: 1px solid rgba(245, 158, 11, .5);
  background: rgba(245, 158, 11, .12); color: #fbbf24; font-size: 12px; font-weight: 700; }
.tr-dev__go[data-on="1"] { background: rgba(34, 197, 94, .14); border-color: rgba(34, 197, 94, .5); color: #4ade80; }
/* 基础服务工具行 */
.tr-tools { display: flex; align-items: center; gap: 8px; margin-top: 2px; }
.tr-tools__r { margin-left: auto; display: flex; align-items: center; gap: 8px; }
.sub.tr-dark .tr-tool { min-width: 36px; height: 36px; border-radius: 50%; background: #1d2740;
  border: 1px solid rgba(255, 255, 255, .08); color: #bcd3f5; font-size: 15px;
  display: inline-flex; align-items: center; justify-content: center; padding: 0 8px; }
.sub.tr-dark .tr-tool:active { transform: scale(.94); }
.sub.tr-dark .tr-tool.is-on { background: #7f1d1d; color: #fecaca; border-color: rgba(239, 68, 68, .4); }
.sub.tr-dark .tr-tool.is-busy { opacity: .6; }
.sub.tr-dark .tr-tool--pri { background: linear-gradient(135deg, #f59e0b, #fbbf24); border: none;
  color: #201400; font-weight: 800; font-size: 13px; padding: 0 16px; }
/* 功能卡网格（更多功能 / VIP服务） */
.tr-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.sub.tr-dark .tr-ft { display: flex; align-items: center; justify-content: space-between; gap: 8px;
  background: #141c2b; border: 1px solid rgba(255, 255, 255, .07); border-radius: 14px;
  padding: 14px 12px; text-align: left; }
.tr-ft__tx { min-width: 0; }
.tr-ft__tx b { display: block; font-size: 14.5px; color: #e8eef7; }
.tr-ft__tx span { display: block; font-size: 11.5px; color: #8fa1ba; margin-top: 3px; }
.tr-ft__ic { font-size: 24px; flex-shrink: 0; filter: drop-shadow(0 2px 6px rgba(59, 130, 246, .35)); }
.sub.tr-dark .tr-ft:active { transform: scale(.97); }
/* 底部 tab 条 */
.tr-tabs { position: sticky; bottom: 0; z-index: 5; display: flex; gap: 4px;
  background: rgba(13, 19, 32, .92); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, .08); border-radius: 18px; padding: 6px; margin-top: 4px; }
.sub.tr-dark .tr-tabs button { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 3px;
  padding: 7px 0 6px; border-radius: 13px; border: none; background: transparent;
  color: #8fa1ba; font-size: 11px; }
.sub.tr-dark .tr-tabs button i { font-style: normal; font-size: 17px; line-height: 1; }
.sub.tr-dark .tr-tabs button.is-on { background: linear-gradient(135deg, #f59e0b, #fbbf24);
  color: #201400; font-weight: 800; }
/* 对话翻译：语言胶囊 + 气泡 + 双麦 */
.tr-caps { display: flex; align-items: center; justify-content: center; gap: 10px; margin: 2px 0 10px; }
.sub.tr-dark .tr-cap { padding: 9px 16px; border-radius: 999px; font-size: 13.5px; font-weight: 700; border: none; }
.tr-cap--a { background: linear-gradient(135deg, #f59e0b, #fbbf24); color: #201400; }
.tr-cap--b { background: linear-gradient(135deg, #2563eb, #3b82f6); color: #fff; }
.sub.tr-dark .tr-swap2 { width: 34px; height: 34px; border-radius: 50%; background: #1d2740;
  border: 1px solid rgba(255, 255, 255, .1); color: #fbbf24; font-weight: 800; flex-shrink: 0; }
.tr-bubs { display: flex; flex-direction: column; gap: 10px; padding: 4px 0 12px; min-height: 170px; }
.tr-bub { max-width: 78%; padding: 10px 12px; border-radius: 14px; }
.tr-bub p { margin: 0; font-size: 14px; line-height: 1.55; word-break: break-word; }
.tr-bub__dst { margin-top: 6px !important; padding-top: 6px; border-top: 1px dashed rgba(255, 255, 255, .18);
  font-size: 13.5px !important; opacity: .95; }
.tr-bub--l { align-self: flex-start; background: linear-gradient(135deg, #b45309, #92400e);
  color: #fef3c7; border-bottom-left-radius: 4px; }
.tr-bub--r { align-self: flex-end; background: linear-gradient(135deg, #1d4ed8, #1e40af);
  color: #dbeafe; border-bottom-right-radius: 4px; }
.sub.tr-dark .tr-empty { text-align: center; color: #64748b; font-size: 13px; padding: 48px 20px; }
.tr-dmics { display: flex; align-items: flex-end; justify-content: center; gap: 30px; padding: 10px 0 4px; }
.tr-dmic__col { display: flex; flex-direction: column; align-items: center; gap: 7px; }
.tr-dmic__col b { font-size: 12px; color: #8fa1ba; font-weight: 600; }
.sub.tr-dark .tr-dmic { width: 64px; height: 64px; border-radius: 50%; border: none; font-size: 24px;
  display: flex; align-items: center; justify-content: center; color: #fff; }
.tr-dmic--a { background: linear-gradient(135deg, #f59e0b, #fbbf24); box-shadow: 0 6px 18px rgba(245, 158, 11, .4); }
.tr-dmic--b { background: linear-gradient(135deg, #2563eb, #3b82f6); box-shadow: 0 6px 18px rgba(37, 99, 235, .4); }
.sub.tr-dark .tr-dmic.is-rec { animation: trPulse 1.2s ease-in-out infinite; }
.sub.tr-dark .tr-dmic.is-busy { opacity: .6; }
@keyframes trPulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.08); } }
/* 同声传译：双卡 + 波形 + 大麦 */
.sub.tr-dark .tr-simcard { background: #141c2b; border: 1px solid rgba(255, 255, 255, .07);
  border-radius: 16px; padding: 14px; min-height: 128px; display: flex; flex-direction: column; }
.tr-simcard__lb { font-size: 12px; color: #8fa1ba; text-align: right; }
.tr-simcard--src .tr-simcard__lb { text-align: left; }
.tr-simcard__tx { margin: 8px 0 0; font-size: 15px; line-height: 1.6; color: #e8eef7; flex: 1; }
.tr-wave { display: flex; align-items: flex-end; justify-content: center; gap: 3px; height: 22px;
  margin-top: 10px; opacity: .3; }
.tr-wave i { width: 3px; border-radius: 2px; background: #3b82f6; height: 35%; }
.tr-wave i:nth-child(odd) { height: 70%; }
.tr-wave i:nth-child(3n) { height: 45%; }
.tr-wave.is-on { opacity: 1; }
.tr-wave.is-on i { background: #fbbf24; animation: recW 1s ease-in-out infinite; }
.tr-wave.is-on i:nth-child(2n) { animation-delay: .12s; }
.tr-wave.is-on i:nth-child(3n) { animation-delay: .24s; }
.tr-simbar { display: flex; align-items: center; justify-content: center; gap: 24px; padding: 8px 0 2px; }
.tr-tool--ph { visibility: hidden; }
.sub.tr-dark .tr-dmic--big { width: 74px; height: 74px; font-size: 28px;
  background: linear-gradient(135deg, #f59e0b, #fbbf24); box-shadow: 0 8px 22px rgba(245, 158, 11, .45); }
/* 我的：发音设置 radio 行 */
.sub.tr-dark .tr-rd { display: flex; align-items: center; gap: 12px; width: 100%; background: #101827;
  border: 1px solid rgba(255, 255, 255, .08); border-radius: 13px; padding: 13px 14px;
  margin-top: 8px; color: #dbe4f0; }
.sub.tr-dark .tr-rd b { flex: 1; text-align: left; font-size: 14.5px; }
.tr-rd__ic { font-size: 16px; width: 22px; text-align: center; }
.tr-rd__dot { width: 18px; height: 18px; border-radius: 50%; border: 2px solid #475569;
  position: relative; flex-shrink: 0; }
.tr-rd.is-on .tr-rd__dot { border-color: #f59e0b; }
.tr-rd.is-on .tr-rd__dot::after { content: ''; position: absolute; inset: 3px; border-radius: 50%; background: #f59e0b; }
.sub.tr-dark .tr-rd.is-on { border-color: rgba(245, 158, 11, .55); }
.sub.tr-dark .tr-rd.is-dis { opacity: .45; }
/* 平板横屏两栏（设计稿：左侧输入 + 右侧功能栏） */
@media (min-width: 761px) {
  .sub.tr-dark .tr-wrap { flex-direction: row; align-items: flex-start; }
  .sub.tr-dark .tr-main { flex: 1.15; min-width: 0; }
  .sub.tr-dark .tr-side { flex: 1; min-width: 0; }
  .tr-tabs { max-width: 520px; margin-left: auto; margin-right: auto; }
}

/* ===== v1.9.42 感译：单层底栏 + 独立翻译界面 ===== */
.tr-card { position: relative; }
.tr-exp { position: absolute; top: 10px; right: 10px; width: 34px; height: 34px; border-radius: 10px;
  border: 1px solid rgba(255,255,255,.12); background: #1d2740; color: #e8eef7; font-size: 15px; line-height: 1; cursor: pointer; }
.tr-exp:active { transform: scale(.94); }
.sub.tr-dark .tr-txtbar { display: flex; align-items: center; gap: 10px; padding: 8px 2px 12px;
  position: sticky; top: 0; z-index: 6; background: linear-gradient(#0b1220 82%, rgba(11,18,32,0)); }
.sub.tr-dark .tr-txtbar b { font-size: 17px; color: #e8eef7; letter-spacing: .5px; }
.tr-txtbar__bk { width: 36px; height: 36px; border-radius: 50%; border: 1px solid rgba(255,255,255,.12);
  background: #1d2740; color: #e8eef7; font-size: 18px; line-height: 1; cursor: pointer; }
.tr-txtbar__ph { width: 36px; }
.tr-in--big { min-height: 170px; font-size: 16px; line-height: 1.6; }
.sub.tr-dark .tr-txttip { color: #7d8fa8; font-size: 12px; margin: 10px 4px 0; text-align: center; }
/* 感译去掉通用发送条后，内容区占满底部（tab 条为唯一底栏） */
.sub.tr-dark .sub-bd { padding-bottom: calc(84px + env(safe-area-inset-bottom)); }

/* ===== v1.9.43 感译：更多功能独立页（首页入口卡） ===== */
.tr-mentry { display: flex; align-items: center; gap: 12px; width: 100%; margin-top: 12px;
  padding: 14px 14px; border-radius: 16px; border: 1px solid rgba(255,255,255,.08);
  background: #141c2b; color: #dbe4f0; text-align: left; cursor: pointer; }
.tr-mentry:active { transform: scale(.985); }
.tr-mentry__ic { width: 40px; height: 40px; border-radius: 12px; flex: 0 0 40px;
  display: flex; align-items: center; justify-content: center; font-size: 20px;
  background: linear-gradient(135deg,#f59e0b,#fbbf24); box-shadow: 0 4px 14px rgba(245,158,11,.3); }
.tr-mentry__tx { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.tr-mentry__tx b { font-size: 15px; color: #e8eef7; }
.tr-mentry__tx span { font-size: 11.5px; color: #8fa1ba; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tr-mentry__ar { font-size: 22px; color: #8fa1ba; flex: 0 0 auto; }
/* v1.9.43 九宫格第二页 */
.tr-grid--nine { grid-template-columns: repeat(3, 1fr); gap: 10px; }
.tr-grid--nine .tr-ft { flex-direction: column; text-align: center; padding: 14px 6px 12px; gap: 0; }
.tr-grid--nine .tr-ft__ic { order: -1; font-size: 26px; margin-bottom: 8px; }
.tr-grid--nine .tr-ft__tx { align-items: center; gap: 2px; }
.tr-grid--nine .tr-ft__tx b { font-size: 12.5px; }
.tr-grid--nine .tr-ft__tx span { display: none; }
/* v1.9.43 tab 条固定悬浮 + 主页键 */
.tr-tabs { position: fixed; left: 0; right: 0; bottom: calc(10px + env(safe-area-inset-bottom));
  z-index: 30; margin: 0 auto; max-width: 560px; }
.sub.tr-dark .sub-bd { padding-bottom: calc(110px + env(safe-area-inset-bottom)); }
.tr-tabs__sep { width: 1px; align-self: stretch; margin: 6px 2px; background: rgba(255,255,255,.14); flex: 0 0 1px; }
.sub.tr-dark .tr-tabs .tr-tabhome { color: #fbbf24; }
/* ===== v1.9.43 页头去重：感译自有页头固定顶部，框架小页头随 data-trtab 隐藏 ===== */
.sub.tr-dark[data-trtab] .sub-hd { display: none; }
.sub.tr-dark[data-trtab] .sub-bd { padding-top: calc(58px + env(safe-area-inset-top)); }
.tr-top { position: fixed; top: 0; left: 0; right: 0; z-index: 26; display: flex; align-items: center; gap: 10px;
  padding: calc(10px + env(safe-area-inset-top)) 14px 10px; background: #0d1526;
  border-bottom: 1px solid rgba(255,255,255,.08); }
.tr-top__bk { width: 34px; height: 34px; padding: 0; border: 0; background: transparent; border-radius: 50%; cursor: pointer; flex: 0 0 34px; }
.tr-top__bk img { width: 30px; height: 30px; border-radius: 50%; display: block; }
.tr-top b { font-size: 17px; color: #e8eef7; letter-spacing: .5px; }
/* txt/more 自有页头 tr-txtbar 改固定顶部（原 sticky 渐隐改实底，避免与小页头叠加） */
.sub.tr-dark .tr-txtbar { position: fixed; top: 0; left: 0; right: 0; z-index: 26;
  padding: calc(10px + env(safe-area-inset-top)) 14px 12px; background: #0d1526;
  border-bottom: 1px solid rgba(255,255,255,.08); }
.sub.tr-dark .sub-bd { padding-top: calc(58px + env(safe-area-inset-top)); }
/* ===== v1.9.44 感译配额与套餐（我的页：用量条 + 套餐购买） ===== */
.tr-quota .card__t { display: flex; align-items: center; justify-content: space-between; }
.tr-q__ym { font-size: 11px; color: #8fa1ba; font-weight: 400; }
.tr-q__row { display: flex; align-items: center; gap: 10px; padding: 7px 0; }
.tr-q__lbl { flex: 0 0 auto; font-size: 12.5px; color: #aebad0; min-width: 58px; }
.tr-q__bar { flex: 1; height: 8px; border-radius: 99px; background: rgba(255,255,255,.09); overflow: hidden; }
.tr-q__bar i { display: block; height: 100%; border-radius: 99px;
  background: linear-gradient(90deg,#2563eb,#38bdf8); transition: width .35s ease; }
.tr-q__bar i.is-hot { background: linear-gradient(90deg,#f59e0b,#fbbf24); }
.tr-q__bar i.is-full { background: linear-gradient(90deg,#dc2626,#f87171); }
.tr-q__val { flex: 0 0 auto; font-size: 11.5px; color: #8fa1ba; font-variant-numeric: tabular-nums; }
.tr-q__cur { display: flex; align-items: center; justify-content: space-between; gap: 8px;
  margin-top: 6px; padding: 9px 12px; border-radius: 12px; background: rgba(37,99,235,.14);
  font-size: 12px; color: #cfe0f5; flex-wrap: wrap; }
.tr-q__cyc { display: inline-flex; gap: 0; border: 1px solid rgba(255,255,255,.16); border-radius: 99px; overflow: hidden; font-weight: 400; }
.tr-q__cyc button { border: 0; background: transparent; color: #8fa1ba; font-size: 11.5px; padding: 4px 12px; cursor: pointer; }
.tr-q__cyc button.is-on { background: #2563eb; color: #fff; }
.tr-q__plan { display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding: 11px 2px; border-top: 1px solid rgba(255,255,255,.07); }
.tr-q__plan__tx { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.tr-q__plan__tx b { font-size: 14px; color: #e8eef7; }
.tr-q__plan__tx span { font-size: 11.5px; color: #8fa1ba; }
.tr-q__plan__rt { display: flex; align-items: center; gap: 10px; flex: 0 0 auto; }
.tr-q__plan__rt b { font-size: 17px; color: #fbbf24; font-variant-numeric: tabular-nums; }
.tr-q__plan__rt b i { font-style: normal; font-size: 11px; color: #8fa1ba; font-weight: 400; }
.tr-qpay { text-align: center; }
.tr-qpay__amt { font-size: 30px; font-weight: 700; color: #fbbf24; padding: 6px 0 2px; }
.tr-qpay .s-acts { margin-top: 12px; }
.tr-qpay .cash-chans { text-align: left; }
.sub.tr-dark .tr-q__cur { background: rgba(37,99,235,.18); }
.sub.tr-dark .tr-q__plan__rt b { color: #fbbf24; }
/* ===== v1.9.44 感译浅色主题（完全对齐参照页 ganyi.html 设计令牌） ===== */
/* 令牌：bg#F5F6F8 card#FFF ink#0F1419 sub#9AA0A6 line#E3E4E8 soft#F2F3F6
   brand #FF6B40→#F24059 渐变；辅色 blue/purple/green/amber/coral/teal */
.sub.tr-dark { background: #F5F6F8; color: #0F1419; }
.sub.tr-dark .sub-hd { display: none; }
.sub.tr-dark[data-trtab] .sub-bd { padding-top: calc(58px + env(safe-area-inset-top)); }
.sub.tr-dark .sub-bd { background: #F5F6F8; color: #0F1419;
  padding-bottom: calc(110px + env(safe-area-inset-bottom)); }
/* 顶部导航条：浅底 + 方形白返回钮 + 居中标题 */
.sub.tr-dark .tr-top { background: #F5F6F8; border-bottom: 0; }
.sub.tr-dark .tr-top__bk { background: #FFFFFF; border: 1px solid #E3E4E8; border-radius: 10px;
  color: #0F1419; box-shadow: none; }
.sub.tr-dark .tr-top b { position: absolute; left: 50%; transform: translateX(-50%);
  font-size: 19px; font-weight: 700; color: #0F1419; letter-spacing: .5px; }
/* 卡片体系 */
.sub.tr-dark .card { background: #FFFFFF; border: 0; border-radius: 20px; box-shadow: none; color: #0F1419; }
.sub.tr-dark .card__t { color: #0F1419; }
.sub.tr-dark .f-tip { color: #9AA0A6; }
/* 底部胶囊导航：白底圆角 + active 橙红渐变 + 主页绿 */
.sub.tr-dark .tr-tabs { background: #FFFFFF; border-radius: 26px; padding: 6px;
  box-shadow: 0 6px 20px rgba(15,20,25,.08); bottom: calc(12px + env(safe-area-inset-bottom)); }
.sub.tr-dark .tr-tabs button { background: none; border-radius: 20px; color: #9AA0A6; }
.sub.tr-dark .tr-tabs button i { display: flex; align-items: center; justify-content: center; }
.sub.tr-dark .tr-tabs button.is-on { background: linear-gradient(180deg, #FF6B40, #F24059); color: #fff; font-weight: 600; }
.sub.tr-dark .tr-tabs .tr-tabhome { color: #18A05E !important; }
.sub.tr-dark .tr-tabs__sep { background: #E3E4E8; }
/* 品牌卡（参照页 .brand） */
.tr-brand { display: flex; align-items: center; gap: 12px; padding: 14px;
  background: #FFFFFF; border-radius: 20px; }
.tr-brand__ic { width: 52px; height: 52px; border-radius: 16px; flex: none; overflow: hidden; }
.tr-brand__ic img { width: 100%; height: 100%; display: block; object-fit: cover; }
.tr-brand__tx { display: flex; flex-direction: column; min-width: 0; }
.tr-brand__tx b { font-size: 22px; font-weight: 700; letter-spacing: .5px; color: #0F1419; line-height: 1.2; }
.tr-brand__tx i { font-style: normal; font-size: 12.5px; color: #E8940A; line-height: 1.5; margin-top: 3px; }
.tr-brand__fb { margin-left: auto; flex: none; border: 0; cursor: pointer; font-family: inherit;
  font-size: 12px; font-weight: 600; color: #fff; padding: 9px 12px; border-radius: 18px;
  background: linear-gradient(180deg, #FF6B40, #F24059);
  box-shadow: 0 2px 6px rgba(242,64,89,.28); }
.sub.tr-dark .tr-brand__fb[data-on="1"] { background: #F2F3F6; color: #3A3F47; box-shadow: none; }
/* 分区标题（参照页 .sec） */
.tr-sech { font-size: 17px; font-weight: 600; color: #0F1419; margin: 14px 2px 2px; }
.tr-sech__vip { font-size: 14px; vertical-align: 2px; }
/* 基础服务大卡（参照页 .tr-card / .lang / .ta / .tool / .go） */
.sub.tr-dark .tr-card { padding: 12px; }
.sub.tr-dark .tr-io { gap: 8px; }
.sub.tr-dark .tr-lang { background: #F2F3F6; border-radius: 14px; color: #0F1419; align-items: flex-start;
  display: flex; flex-direction: column; gap: 3px; padding: 9px 12px; }
.sub.tr-dark .tr-lang i { color: #9AA0A6; font-style: normal; font-size: 11px; }
.sub.tr-dark .tr-lang b { font-size: 15px; font-weight: 600; color: #0F1419; }
.sub.tr-dark .tr-swap { background: linear-gradient(180deg, #FF6B40, #F24059); color: #fff;
  border-radius: 50%; width: 40px; height: 40px; box-shadow: 0 2px 6px rgba(242,64,89,.28); }
.sub.tr-dark .tr-exp { background: #F2F3F6; color: #3A3F47; border-radius: 9px; }
.sub.tr-dark .tr-in { background: #F2F3F6; border-radius: 14px; color: #0F1419; min-height: 300px;
  font-size: 15px; line-height: 1.7; padding: 14px 14px 10px; }
.sub.tr-dark .tr-in.is-big { min-height: 420px; }
.sub.tr-dark .tr-in::placeholder { color: #9AA0A6; }
.sub.tr-dark .tr-cnt { color: #9AA0A6; min-width: 52px; text-align: center; }
.sub.tr-dark .tr-tool { background: #F2F3F6; color: #3A3F47; border-radius: 10px; width: 36px; height: 36px; }
.sub.tr-dark .tr-tool:active { background: #E7E9EE; }
.sub.tr-dark .tr-tool--pri { width: auto; height: 38px; border-radius: 19px; padding: 0 20px;
  font-size: 15px; font-weight: 700; color: #fff;
  background: linear-gradient(180deg, #FF6B40, #F24059);
  box-shadow: 0 2px 6px rgba(242,64,89,.28); }
.sub.tr-dark .tr-out { background: #F2F3F6; border-radius: 14px; }
.sub.tr-dark .tr-out__l { color: #9AA0A6; }
.sub.tr-dark .tr-out__t { color: #0F1419; font-size: 15px; line-height: 1.7; }
/* 录音条（参照页 .rec-bar） */
.tr-recbar { display: flex; align-items: center; gap: 10px; margin-top: 10px;
  background: #F2F3F6; border-radius: 14px; padding: 10px 12px; }
.tr-recbar[hidden] { display: none; }
.tr-recbar__dot { width: 10px; height: 10px; border-radius: 50%; background: #E8442E; flex: none;
  animation: trRecPulse 1s infinite; }
@keyframes trRecPulse { 0%, 100% { opacity: 1; } 50% { opacity: .25; } }
.tr-recbar__tm { font-size: 13px; color: #3A3F47; font-variant-numeric: tabular-nums; flex: none; }
.tr-recbar__wave { width: 64px; flex: none; display: flex; align-items: center; gap: 3px; height: 22px; }
.tr-recbar__wave i { width: 3px; border-radius: 2px; background: #FF6B40; height: 40%;
  animation: trWv 1s ease-in-out infinite; }
.tr-recbar__wave i:nth-child(2n) { animation-delay: .15s; height: 75%; }
.tr-recbar__wave i:nth-child(3n) { animation-delay: .3s; height: 50%; }
.tr-recbar__wave i:nth-child(4n) { animation-delay: .45s; height: 95%; }
.tr-recbar__wave i:nth-child(5n) { animation-delay: .6s; height: 60%; }
@keyframes trWv { 0%, 100% { transform: scaleY(.35); } 50% { transform: scaleY(1); } }
.tr-recbar__stop { border: 0; background: #E8442E; color: #fff; font-size: 13px; border-radius: 10px;
  padding: 7px 14px; cursor: pointer; flex: none; font-family: inherit; }
/* 更多功能横条卡 + 折叠区（参照页 .more-card / #moreSec / .fgrid / .fcard） */
.tr-morecard { width: 100%; border: 0; cursor: pointer; font-family: inherit; color: #0F1419;
  background: #FFFFFF; border-radius: 20px; padding: 16px;
  display: flex; align-items: center; gap: 12px; text-align: left; }
.tr-morecard:active { background: #FAFBFC; }
.tr-morecard__ic { flex: none; width: 44px; height: 44px; border-radius: 14px; background: #E9F8F0;
  display: flex; align-items: center; justify-content: center; }
.tr-morecard__tx { display: flex; flex-direction: column; min-width: 0; }
.tr-morecard__tx b { font-size: 16px; font-weight: 600; color: #0F1419; }
.tr-morecard__tx span { font-size: 11.5px; color: #9AA0A6; margin-top: 4px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tr-morecard__ar { margin-left: auto; color: #9AA0A6; display: flex; font-size: 20px;
  transition: transform .2s; }
.tr-morecard__ar.open { transform: rotate(90deg); }
.tr-moresec { display: none; }
.tr-moresec.open { display: block; }
.tr-moresec.open .tr-fgrid { margin-top: 12px; }
.tr-fgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.sub.tr-dark .tr-ft { background: #FFFFFF; border: 0; border-radius: 18px; padding: 14px;
  display: flex; align-items: center; justify-content: space-between; gap: 10px; text-align: left; }
.sub.tr-dark .tr-ft:active { transform: scale(.97); }
.sub.tr-dark .tr-ft__tx b { font-size: 15px; font-weight: 600; color: #0F1419; line-height: 1.35; }
.sub.tr-dark .tr-ft__tx span { font-size: 11px; color: #9AA0A6; line-height: 1.45; margin-top: 4px; display: block; }
.sub.tr-dark .tr-ft__ic { flex: none; width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; }
.sub.tr-dark .tr-ft__ic svg, .sub.tr-dark .tr-morecard__ic svg { display: block; max-width: 100%; height: auto; }
/* 我的页（用量/套餐/音色/历史）浅色 */
.sub.tr-dark .tr-quota .card__t { color: #0F1419; }
.tr-quota .tr-q__ym { color: #9AA0A6; }
.sub.tr-dark .tr-q__lbl { color: #3A3F47; }
.sub.tr-dark .tr-q__bar { background: #ECEEF2; }
.sub.tr-dark .tr-q__val { color: #9AA0A6; }
.sub.tr-dark .tr-q__cur { background: #EAF2FF; color: #2B4C86; }
.sub.tr-dark .tr-q__cyc { border-color: #E3E4E8; }
.sub.tr-dark .tr-q__cyc button { color: #9AA0A6; }
.sub.tr-dark .tr-q__cyc button.is-on { background: linear-gradient(180deg, #FF6B40, #F24059); color: #fff; }
.sub.tr-dark .tr-q__plan { border-top: 1px solid #EFEFF2; }
.sub.tr-dark .tr-q__plan__tx b { color: #0F1419; }
.sub.tr-dark .tr-q__plan__tx span { color: #9AA0A6; }
.sub.tr-dark .tr-q__plan__rt b { color: #F24059; }
.sub.tr-dark .tr-q__plan__rt b i { color: #9AA0A6; }
.sub.tr-dark .tr-qpay__amt { color: #F24059; }
.sub.tr-dark .tr-qpay .cash-chan { background: #F2F3F6; }
.sub.tr-dark .tr-rd { background: #F2F3F6; border: 0; }
.sub.tr-dark .tr-rd b { color: #0F1419; }
.sub.tr-dark .tr-rd.is-on { background: #EAF2FF; }
.sub.tr-dark .tr-rd.is-dis { opacity: .5; }
.sub.tr-dark .tr-rd__ic { background: #fff; }
.sub.tr-dark .tr-h { background: #F2F3F6; border-radius: 12px; }
.sub.tr-dark .tr-h span { color: #9AA0A6; }
.sub.tr-dark .tr-h b { color: #0F1419; }
/* 对话翻译 / 同传 浅色 */
.sub.tr-dark .tr-cap { background: #F2F3F6; color: #0F1419; }
.sub.tr-dark .tr-cap--a { background: #FFE9E2; color: #C23A1F; }
.sub.tr-dark .tr-cap--b { background: #EAF2FF; color: #2B4C86; }
.sub.tr-dark .tr-swap2 { background: linear-gradient(180deg, #FF6B40, #F24059); color: #fff; border-radius: 50%; }
.sub.tr-dark .tr-bub { background: #FFFFFF; border-radius: 16px; color: #0F1419;
  box-shadow: 0 1px 4px rgba(15,20,25,.06); }
.sub.tr-dark .tr-bub--r { background: linear-gradient(180deg, #FF6B40, #F24059); color: #fff; }
.sub.tr-dark .tr-bub__src { color: inherit; opacity: .72; }
.sub.tr-dark .tr-bub__dst { color: inherit; }
.sub.tr-dark .tr-empty { color: #9AA0A6; }
.sub.tr-dark .tr-dmic { background: #FFFFFF; color: #3A3F47; border: 1px solid #E3E4E8; border-radius: 50%; }
.sub.tr-dark .tr-dmic.is-rec { background: #E8442E; color: #fff; }
.sub.tr-dark .tr-dmic.is-busy { background: #EAF2FF; }
.sub.tr-dark .tr-dmic--big { width: 76px; height: 76px; }
.sub.tr-dark .tr-dmic__col b { color: #3A3F47; }
.sub.tr-dark .tr-simcard { background: #FFFFFF; border-radius: 20px; color: #0F1419;
  box-shadow: 0 1px 4px rgba(15,20,25,.06); }
.sub.tr-dark .tr-simcard__lb { color: #9AA0A6; }
.sub.tr-dark .tr-simcard__tx { color: #0F1419; }
.sub.tr-dark .tr-wave i { background: #FF6B40; }
.sub.tr-dark .tr-tool--ph { background: transparent; }

/* ===== v1.9.45 感译重建：完全参照设计稿 ganyi.html 系列（首页/便捷对话/同声传译/音视频通话/声音克隆）
   设计令牌与感动家园一致：底 #F5F6F8 / 白卡 #FFF / 主色渐变 #FF6B40→#F24059 / 琥珀 #E8940A
   类名统一 g- 前缀，避免与旧感译样式冲突；容器 .sub.tr-lite 重置框架默认内边距与页头 ===== */
.sub.tr-lite { background: #F5F6F8 !important; }
.sub.tr-lite .sub-bd { padding: 0 !important; overflow: hidden; display: flex; flex-direction: column; }
.g-p { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; background: #F5F6F8; color: #0F1419; }
/* ---------- 自有页头 ---------- */
.g-nav { height: 56px; padding: 0 16px; position: relative; display: flex; align-items: center; flex: none; }
.g-bk { width: 34px; height: 34px; padding: 0; border-radius: 10px; border: 1px solid #E3E4E8; background: #fff;
  display: flex; align-items: center; justify-content: center; color: #0F1419; cursor: pointer; }
.g-bk:active { background: #F1F2F5; }
.g-ttl { position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); font-size: 19px; font-weight: 700; pointer-events: none; }
.g-navr { margin-left: auto; display: flex; align-items: center; gap: 6px; }
.g-ib { width: 34px; height: 34px; padding: 0; border: none; border-radius: 10px; background: none; cursor: pointer;
  display: flex; align-items: center; justify-content: center; color: #3A3F47; }
.g-ib:active { background: #F1F2F5; }
/* ---------- 滚动区 ---------- */
.g-scroll { flex: 1 1 auto; min-height: 0; overflow-y: auto; -webkit-overflow-scrolling: touch;
  padding: 4px 12px 12px; display: flex; flex-direction: column; gap: 8px; }
/* ---------- 首页：品牌卡 ---------- */
.g-brand { display: flex; align-items: center; gap: 12px; padding: 14px; background: #fff; border-radius: 20px; }
.g-brand__ic { width: 52px; height: 52px; border-radius: 16px; flex: none; overflow: hidden; }
.g-brand__ic img { width: 100%; height: 100%; display: block; object-fit: cover; }
.g-brand b { font-size: 22px; font-weight: 700; letter-spacing: .5px; line-height: 1.2; display: block; }
.g-brand i { font-size: 12.5px; color: #E8940A; line-height: 1.5; margin-top: 3px; display: block; font-style: normal; }
.g-fb { margin-left: auto; flex: none; border: none; cursor: pointer; font-family: inherit; font-size: 12px; font-weight: 600;
  color: #fff; background: linear-gradient(180deg,#FF6B40,#F24059); padding: 9px 12px; border-radius: 18px;
  box-shadow: 0 2px 6px rgba(242,64,89,.28); }
.g-fb:active { opacity: .9; }
/* ---------- 分区标题 ---------- */
.g-sec { font-size: 17px; font-weight: 600; margin: 14px 2px 2px; display: flex; align-items: center; gap: 6px; }
.g-sec span { font-size: 14px; }
/* ---------- 基础服务大卡 ---------- */
.g-trcard { background: #fff; border-radius: 20px; padding: 12px; }
.g-lbar { display: flex; align-items: stretch; gap: 8px; position: relative; }
.g-lang { flex: 1; border: none; background: #F2F3F6; border-radius: 14px; cursor: pointer; color: #0F1419; font-family: inherit;
  display: flex; flex-direction: column; align-items: flex-start; gap: 3px; padding: 9px 12px; text-align: left; }
.g-lang i { font-size: 11px; color: #9AA0A6; display: flex; align-items: center; gap: 4px; font-style: normal; }
.g-lang b { font-size: 15px; font-weight: 600; }
.g-swap { width: 40px; height: 40px; border: none; border-radius: 20px; flex: none; cursor: pointer; align-self: center;
  background: linear-gradient(180deg,#FF6B40,#F24059); display: flex; align-items: center; justify-content: center;
  box-shadow: 0 2px 6px rgba(242,64,89,.28); padding: 0; }
.g-exp { position: absolute; right: 0; top: -6px; width: 30px; height: 30px; border: none; border-radius: 9px;
  background: #F2F3F6; cursor: pointer; display: flex; align-items: center; justify-content: center; color: #3A3F47; }
.g-ta { width: 100%; min-height: 220px; border: none; background: #F2F3F6; resize: none; outline: none; color: #0F1419;
  font-size: 15px; line-height: 1.7; font-family: inherit; border-radius: 14px; margin-top: 10px; padding: 14px 14px 10px;
  box-sizing: border-box; }
.g-ta.big { min-height: 340px; }
.g-ta::placeholder { color: #9AA0A6; }
/* 录音条 */
.g-rec { display: none; align-items: center; gap: 10px; margin-top: 10px; background: #F2F3F6; border-radius: 14px; padding: 10px 12px; }
.g-rec.on { display: flex; }
.g-rec__dot { width: 10px; height: 10px; border-radius: 50%; background: #E8442E; flex: none; animation: gRecPulse 1s infinite; }
@keyframes gRecPulse { 0%,100% { opacity: 1; } 50% { opacity: .25; } }
.g-rec__tm { font-size: 13px; color: #3A3F47; font-variant-numeric: tabular-nums; flex: none; }
.g-rec__wv { width: 64px; flex: none; display: flex; align-items: center; gap: 3px; height: 22px; }
.g-rec__wv i { width: 3px; border-radius: 2px; background: #FF6B40; height: 40%; animation: gWv 1s ease-in-out infinite; }
.g-rec__wv i:nth-child(2n) { animation-delay: .15s; height: 75%; }
.g-rec__wv i:nth-child(3n) { animation-delay: .3s; height: 50%; }
.g-rec__wv i:nth-child(4n) { animation-delay: .45s; height: 95%; }
.g-rec__wv i:nth-child(5n) { animation-delay: .6s; height: 60%; }
@keyframes gWv { 0%,100% { transform: scaleY(.35); } 50% { transform: scaleY(1); } }
.g-rec__live { flex: 1; font-size: 13px; color: #3A3F47; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.g-rec__stop { border: none; background: #E8442E; color: #fff; font-size: 13px; border-radius: 10px; padding: 7px 14px;
  cursor: pointer; flex: none; font-family: inherit; }
/* 译文卡 */
.g-res { display: none; background: #F2F3F6; border-radius: 14px; margin-top: 10px; padding: 12px 14px; }
.g-res.on { display: block; }
.g-res__hd { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.g-res__hd em { font-size: 11px; color: #9AA0A6; font-style: normal; }
.g-res__hd .sp { flex: 1; }
.g-res__hd button { border: none; background: none; color: #3B7BEA; font-size: 12px; font-weight: 500; font-family: inherit;
  cursor: pointer; padding: 2px 4px; }
.g-res__tx { font-size: 15px; line-height: 1.7; color: #0F1419; word-break: break-word; white-space: pre-wrap;
  max-height: 300px; overflow-y: auto; }
.g-res__tx.err { color: #E8442E; font-size: 13px; }
/* 工具行 */
.g-tools { display: flex; align-items: center; gap: 2px; margin-top: 10px; }
.g-tools .sp { flex: 1; }
.g-tool { width: 36px; height: 36px; border: none; border-radius: 10px; background: #F2F3F6; cursor: pointer; padding: 0;
  display: flex; align-items: center; justify-content: center; color: #3A3F47; }
.g-tool:active { background: #E7E9EE; }
.g-tool.is-rec { background: #FDEBE8; color: #E8442E; }
.g-tool.is-busy { opacity: .5; }
.g-cnt { font-size: 11px; color: #9AA0A6; margin: 0 6px; min-width: 52px; text-align: center; }
.g-go { height: 38px; border: none; border-radius: 19px; cursor: pointer; font-family: inherit; font-size: 15px; font-weight: 700;
  color: #fff; padding: 0 20px; margin-left: 6px; background: linear-gradient(180deg,#FF6B40,#F24059);
  box-shadow: 0 2px 6px rgba(242,64,89,.28); }
.g-go:disabled { opacity: .6; }
/* ---------- 更多功能 ---------- */
.g-more { width: 100%; border: none; cursor: pointer; font-family: inherit; color: #0F1419; background: #fff; border-radius: 20px;
  padding: 16px; display: flex; align-items: center; gap: 12px; text-align: left; }
.g-more__ic { flex: none; width: 44px; height: 44px; border-radius: 14px; background: #E9F8F0;
  display: flex; align-items: center; justify-content: center; }
.g-more b { font-size: 16px; font-weight: 600; display: block; }
.g-more i { font-size: 11.5px; color: #9AA0A6; margin-top: 4px; display: block; font-style: normal; }
.g-more__ar { margin-left: auto; color: #9AA0A6; display: flex; transition: transform .2s; }
.g-more__ar.on { transform: rotate(90deg); }
.g-msec { display: none; }
.g-msec.on { display: block; }
.g-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.g-fc { background: #fff; border: none; border-radius: 18px; padding: 14px; display: flex; align-items: center;
  justify-content: space-between; gap: 10px; cursor: pointer; text-align: left; font-family: inherit; color: #0F1419;
  transition: transform .12s ease; }
.g-fc:active { transform: scale(.97); }
.g-fc b { font-size: 15px; font-weight: 600; line-height: 1.35; display: block; }
.g-fc i { font-size: 11px; color: #9AA0A6; line-height: 1.45; margin-top: 4px; display: block; font-style: normal; }
.g-fc__ic { flex: none; width: 40px; height: 40px; border-radius: 13px; overflow: hidden; display: flex;
  align-items: center; justify-content: center; }
/* ---------- 底部导航 ---------- */
.g-navb { flex: none; margin: 0 12px calc(10px + env(safe-area-inset-bottom)); background: #fff; border-radius: 26px; padding: 6px;
  display: flex; box-shadow: 0 6px 20px rgba(15,20,25,.08); }
.g-nvi { flex: 1; border: none; background: none; cursor: pointer; color: #9AA0A6; display: flex; flex-direction: column;
  align-items: center; gap: 3px; font-size: 11px; font-family: inherit; padding: 9px 0 8px; border-radius: 20px; }
.g-nvi.on { background: linear-gradient(180deg,#FF6B40,#F24059); color: #fff; font-weight: 600; }
.g-nvi svg { display: block; }
.g-nvi.g-home { color: #18A05E; }
.g-navsep { width: 1px; background: #E3E4E8; margin: 10px 2px; flex: none; }
/* ---------- 便捷对话 ---------- */
.g-lcard { background: #fff; border-radius: 18px; padding: 10px; display: flex; align-items: stretch; gap: 8px; position: relative; }
.g-lcard .g-lang { align-items: center; }
.g-bub { flex: none; min-height: 132px; background: #fff; border-radius: 20px; border: 2px solid transparent; position: relative;
  cursor: pointer; display: flex; align-items: center; justify-content: center; padding: 20px; }
.g-bub.on { border-color: #FF6B40; }
.g-bub em { position: absolute; left: 14px; top: 12px; font-size: 12px; color: #9AA0A6; font-style: normal; }
.g-bub__tx { font-size: 17px; line-height: 1.7; text-align: center; color: #0F1419; word-break: break-word; }
.g-bub__tx.g-empty { color: #9AA0A6; font-size: 15px; }
.g-bub__tx.g-itm { color: #9AA0A6; }
.g-ctl { flex: none; display: flex; align-items: center; justify-content: center; gap: 26px; padding: 12px 0 18px; }
.g-cbtn { width: 46px; height: 46px; border: 1px solid #E3E4E8; border-radius: 50%; background: #fff; cursor: pointer; padding: 0;
  display: flex; align-items: center; justify-content: center; color: #3A3F47; }
.g-mic { width: 60px; height: 60px; border: none; border-radius: 50%; cursor: pointer; padding: 0;
  background: linear-gradient(180deg,#FF6B40,#F24059); display: flex; align-items: center; justify-content: center;
  box-shadow: 0 4px 14px rgba(242,64,89,.35); }
.g-mic.on, .g-mic.is-rec { animation: gMicPulse 1.2s infinite; }
@keyframes gMicPulse { 0%,100% { box-shadow: 0 4px 14px rgba(242,64,89,.35); }
  50% { box-shadow: 0 4px 14px rgba(242,64,89,.35), 0 0 0 12px rgba(242,64,89,.12); } }
/* ---------- 同声传译 ---------- */
.g-lrow { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 2px 0 6px; position: relative; }
.g-lrow .g-lchip { border: none; background: #fff; border-radius: 13px; cursor: pointer; color: #0F1419; font-family: inherit;
  font-size: 14.5px; font-weight: 600; padding: 9px 13px; display: flex; align-items: center; gap: 6px;
  box-shadow: 0 1px 3px rgba(15,20,25,.05); }
.g-live { flex: 1 1 auto; min-height: 0; margin: 0; background: #fff; border-radius: 20px; overflow-y: auto; padding: 18px 16px;
  display: flex; flex-direction: column; }
.g-live__empty { margin: auto; text-align: center; color: #9AA0A6; font-size: 14.5px; line-height: 1.8; }
.g-pair { margin-bottom: 16px; }
.g-pair .src { font-size: 13.5px; color: #9AA0A6; line-height: 1.7; word-break: break-word; }
.g-pair .dst { font-size: 16px; font-weight: 600; line-height: 1.7; margin-top: 4px; word-break: break-word; }
.g-pair .dst.itm { color: #9AA0A6; font-weight: 500; }
.g-ft { flex: none; display: flex; align-items: center; justify-content: center; padding: 16px 0 22px; position: relative; }
.g-mic--amber { width: 62px; height: 62px; background: linear-gradient(180deg,#F7C66B,#EFA93F);
  box-shadow: 0 4px 14px rgba(232,148,10,.35); }
.g-mic--amber.is-rec { animation: gMicPulseA 1.2s infinite; }
@keyframes gMicPulseA { 0%,100% { box-shadow: 0 4px 14px rgba(232,148,10,.35); }
  50% { box-shadow: 0 4px 14px rgba(232,148,10,.35), 0 0 0 12px rgba(232,148,10,.12); } }
.g-ft .hint { position: absolute; bottom: 2px; font-size: 12px; color: #9AA0A6; }
/* ---------- 音视频通话 ---------- */
.g-lcard--rows { background: #fff; border-radius: 18px; padding: 2px 14px; }
.g-lr { display: flex; align-items: center; justify-content: space-between; padding: 15px 0; cursor: pointer; }
.g-lr + .g-lr { border-top: 1px solid #E3E4E8; }
.g-lr .k { font-size: 15px; font-weight: 500; }
.g-lr .v { font-size: 14px; font-weight: 600; color: #E8940A; display: flex; align-items: center; gap: 5px; }
.g-modes { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.g-mode { background: #fff; border: 2px solid transparent; border-radius: 18px; padding: 26px 0 22px; display: flex;
  flex-direction: column; align-items: center; gap: 14px; cursor: pointer; font-family: inherit; color: #0F1419; }
.g-mode__ic { width: 56px; height: 44px; border-radius: 12px; display: flex; align-items: center; justify-content: center;
  background: #F2F3F6; }
.g-mode b { font-size: 15px; font-weight: 600; }
.g-mode.on { border-color: #E8940A; background: #FFFDF7; }
.g-mode.on .g-mode__ic { background: #FFF4E0; }
.g-note { font-size: 13.5px; color: #3A3F47; text-align: center; line-height: 1.6; padding: 0 12px; }
.g-inv { margin-top: 4px; border: none; border-radius: 28px; padding: 15px 0; font-size: 16px; font-weight: 600;
  font-family: inherit; cursor: pointer; color: #0F1419; background: linear-gradient(180deg,#F7C66B,#EFA93F); }
.g-inv:active { opacity: .9; }
/* 通话层 */
.g-call { position: fixed; inset: 0; background: #0B0E14; z-index: 96; display: none; flex-direction: column; }
.g-call.on { display: flex; }
.g-call video, .g-call .g-avo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.g-avo { display: flex; align-items: center; justify-content: center; }
.g-avo .av { width: 110px; height: 110px; border-radius: 50%; background: linear-gradient(135deg,#FF6B40,#F24059);
  display: flex; align-items: center; justify-content: center; color: #fff; font-size: 38px; font-weight: 700; }
.g-call .hd { position: relative; z-index: 2; padding: 60px 20px 0; display: flex; justify-content: center; }
.g-call .hd .tm { color: #fff; font-size: 15px; background: rgba(0,0,0,.35); padding: 6px 16px; border-radius: 16px;
  font-variant-numeric: tabular-nums; }
.g-call .ft { position: relative; z-index: 2; margin-top: auto; display: flex; align-items: center; justify-content: center;
  gap: 44px; padding: 0 0 60px; }
.g-cbtn2 { width: 56px; height: 56px; border: none; border-radius: 50%; cursor: pointer; padding: 0; display: flex;
  align-items: center; justify-content: center; }
.g-mute { background: rgba(255,255,255,.16); }
.g-mute.off { background: rgba(255,255,255,.42); }
.g-hang { background: #E8442E; }
.g-self { position: absolute; right: 14px; top: 110px; width: 92px; height: 130px; border-radius: 14px; object-fit: cover;
  background: #1A2233; z-index: 2; border: 1px solid rgba(255,255,255,.25); }
/* ---------- 声音克隆 ---------- */
.g-row { display: flex; align-items: center; justify-content: space-between; }
.g-row .l { font-size: 15px; font-weight: 600; display: flex; align-items: center; gap: 6px; }
.g-row .r { border: none; background: none; font-size: 13.5px; color: #3A3F47; cursor: pointer; display: flex;
  align-items: center; gap: 5px; font-family: inherit; }
.g-reccard { background: #fff; border-radius: 20px; padding: 18px 16px; display: flex; flex-direction: column;
  align-items: center; gap: 16px; }
.g-sample { width: 100%; background: #F2F3F6; border-radius: 14px; padding: 16px 14px; font-size: 15.5px; line-height: 1.8;
  text-align: center; font-weight: 500; box-sizing: border-box; }
.g-play { width: 58px; height: 58px; border: none; border-radius: 50%; cursor: pointer; background: #3B7BEA; padding: 0;
  display: flex; align-items: center; justify-content: center; }
.g-rechint { font-size: 13.5px; color: #3A3F47; display: flex; align-items: center; gap: 8px; border: none; background: none;
  cursor: pointer; font-family: inherit; }
.g-rechint.on { color: #E8442E; font-weight: 600; }
.g-rechint .dot { width: 9px; height: 9px; border-radius: 50%; background: #E8442E; display: none; }
.g-rechint.on .dot { display: block; animation: gRp 1s infinite; }
@keyframes gRp { 0%,100% { opacity: 1; } 50% { opacity: .2; } }
.g-voices { background: #fff; border-radius: 20px; padding: 4px 14px; }
.g-vitem { display: flex; align-items: center; gap: 12px; padding: 13px 0; }
.g-vitem + .g-vitem { border-top: 1px solid #E3E4E8; }
.g-vplay { width: 34px; height: 34px; border: none; border-radius: 50%; background: #3B7BEA; cursor: pointer; flex: none;
  padding: 0; display: flex; align-items: center; justify-content: center; }
.g-vname { font-size: 14.5px; font-weight: 500; flex: 1; word-break: break-all; }
.g-vtag { border: none; border-radius: 14px; padding: 6px 12px; font-size: 12.5px; cursor: pointer; font-family: inherit;
  display: flex; align-items: center; gap: 5px; background: #F2F3F6; color: #9AA0A6; }
.g-vtag.on { background: #E9F8F0; color: #18A05E; font-weight: 600; }
.g-clone { border: none; border-radius: 16px; padding: 15px 0; font-size: 16px; font-weight: 600; font-family: inherit;
  cursor: pointer; background: #F2F3F6; color: #9AA0A6; }
.g-clone.ready { background: linear-gradient(180deg,#FF6B40,#F24059); color: #fff; box-shadow: 0 4px 14px rgba(242,64,89,.3); }
.g-agree { display: flex; align-items: center; justify-content: center; gap: 8px; font-size: 13.5px; color: #3A3F47; }
.g-cb { width: 19px; height: 19px; border-radius: 50%; border: 1.5px solid #9AA0A6; cursor: pointer; display: flex;
  align-items: center; justify-content: center; background: #fff; flex: none; }
.g-cb.on { background: #3B7BEA; border-color: #3B7BEA; }
.g-cb svg { display: none; }
.g-cb.on svg { display: block; }
.g-agree a { color: #3B7BEA; text-decoration: none; }
/* ---------- 语言下拉菜单 ---------- */
.g-menu { position: fixed; display: none; background: #fff; border-radius: 14px; box-shadow: 0 8px 30px rgba(15,20,25,.14);
  padding: 6px; z-index: 97; max-height: 260px; overflow: auto; min-width: 150px; }
.g-menu.on { display: block; }
.g-menu button { display: block; width: 100%; border: none; background: none; text-align: left; font-size: 14px;
  font-family: inherit; color: #0F1419; padding: 9px 12px; border-radius: 9px; cursor: pointer; }
.g-menu button.on { color: #FF6B40; font-weight: 600; }
.g-menu button:active { background: #F2F3F6; }
/* ---------- 我的：配额（浅色） ---------- */
.g-qbar { height: 8px; border-radius: 4px; background: #EDEFF2; overflow: hidden; margin: 8px 0 6px; }
.g-qbar i { display: block; height: 100%; border-radius: 4px; background: linear-gradient(90deg,#FF6B40,#F24059); }
.g-qrow { display: flex; align-items: center; justify-content: space-between; font-size: 13px; color: #3A3F47; }
.g-plan { display: flex; align-items: center; gap: 12px; background: #fff; border-radius: 16px; padding: 14px; }
.g-plan + .g-plan { margin-top: 10px; }
.g-plan b { font-size: 15px; font-weight: 600; display: block; }
.g-plan i { font-size: 12px; color: #9AA0A6; font-style: normal; display: block; margin-top: 3px; }
.g-plan .amt { margin-left: auto; text-align: right; }
.g-plan .amt b { font-size: 17px; color: #E8442E; }
.g-buy { border: none; border-radius: 14px; padding: 8px 16px; font-size: 14px; font-weight: 600; color: #fff;
  background: linear-gradient(180deg,#FF6B40,#F24059); cursor: pointer; font-family: inherit; }
.g-cyc { display: flex; gap: 8px; margin: 8px 0 2px; }
.g-cyc button { flex: 1; border: 1.5px solid #E3E4E8; background: #fff; color: #3A3F47; border-radius: 12px; padding: 8px 0;
  font-size: 13.5px; font-family: inherit; cursor: pointer; }
.g-cyc button.on { border-color: #FF6B40; color: #FF6B40; font-weight: 600; background: #FFF7F4; }
.g-qpay { margin-top: 10px; }

/* v1.9.45 页头去重：感译浅色自有页头接管，框架小页头隐藏 */
.sub.tr-lite[data-trtab] .sub-hd { display: none; }
/* v1.9.45 平板/折叠屏：感译浅色页限宽居中，避免超宽拉伸 */
html[data-device="tablet"] .sub.tr-lite .g-p { max-width: 800px; margin: 0 auto; width: 100%; }

/* ===== v1.9.46 家园/乐园顶部身份 Tab + 感学/感乐/感问框架页 ===== */
.id-tabs { display: flex; gap: 4px; padding: 4px; border-radius: 999px; background: rgba(127,142,160,.14); border: 1px solid var(--outline, rgba(255,255,255,.08)); margin-bottom: 10px; }
.id-tab { flex: 1; padding: 8px 0; border: none; border-radius: 999px; background: transparent; font-size: 13px; font-weight: 700; color: var(--on-surface-v, #8a94a6); cursor: pointer; }
.id-tab.on { background: linear-gradient(135deg, #f97316, #e5484d); color: #fff; box-shadow: 0 2px 8px rgba(229,72,77,.35); }
.ws-ic--st { background: linear-gradient(135deg, #0ea5e9, #6366f1); }
.ws-ic--mu { background: linear-gradient(135deg, #d946ef, #a21caf); }
.ws-ic--q  { background: linear-gradient(135deg, #06b6d4, #0284c7); }
.fw-hero { position: relative; border-radius: 16px; padding: 18px 16px 16px; margin-bottom: 12px; color: #fff; overflow: hidden; }
.fw-hero b { font-size: 18px; letter-spacing: .02em; }
.fw-hero p { margin: 6px 0 0; font-size: 12.5px; line-height: 1.6; opacity: .92; }
.fw-hero--st { background: linear-gradient(135deg, #0ea5e9, #6366f1); }
.fw-hero--mu { background: linear-gradient(135deg, #d946ef, #a21caf); }
.fw-hero--q  { background: linear-gradient(135deg, #06b6d4, #0284c7); }
.fw-soon { display: inline-block; margin-top: 10px; padding: 4px 10px; border-radius: 999px; background: rgba(255,255,255,.22); font-size: 11px; font-weight: 700; }

/* v1.9.46b 修复：.id-tabs 的 display:flex 覆盖了 hidden 属性（.suan-chat 同款坑），纯会员仍可见切换 Tab */
.id-tabs[hidden]{display:none}

/* ==================== v1.9.50 感说九屏：翻译对照 / 勾标识 / 表情 / 双语名片 / 九屏通话 / 额度卡 ==================== */
/* 感作瓦片图标底色（紫罗兰系） */
.ws-ic--w { background:linear-gradient(135deg,#a855f7,#6d28d9); }
/* 自动翻译开关条 */
.gs-trbar { display:flex; align-items:center; justify-content:center; gap:6px; width:100%; margin:0 0 10px;
  padding:8px 12px; border:0; border-radius:12px; font-size:12.5px; font-weight:600; color:#8a8f98;
  background:#f1f2f4; cursor:pointer; }
.gs-trbar i { font-style:normal; font-weight:400; color:#b0b4bb; font-size:11px; }
.gs-trbar.is-on { color:#0e7a48; background:#e7f6ee; }
.gs-trbar.is-on i { color:#18a05e; }
/* 气泡内翻译对照块 */
/* v1.9.93 微信式译文：气泡正下方小字，无卡片无流程标签 */
.gs-tr { margin: 2px 0 0 2px; padding: 0; }
.gs-tr.gs-tr-pending { color: #9aa0a6; }
.gs-tr-tag { display: inline; font-size: 10.5px; font-weight: 500; color: #9aa0a6; }
.gs-tr p { margin: 0; font-size: 12.5px; line-height: 1.5; color: #8a8f96; }
.gs-tr-pending { opacity:.6; }
/* 送达 / 已读勾标识 */
.cmp-read { color:#9ca3af; font-style:normal; font-size:10.5px; white-space:nowrap; }
.cmp-read.is-read { color:#18a05e; font-weight:700; }
/* 表情圆钮 + 表情面板 */
.cmp-emoji { font-size:18px; line-height:1; background:none; border:none; padding:0 4px; }
.gs-emoji { position:fixed; left:0; right:0; bottom:0; z-index:66; background:#fff; border-radius:18px 18px 0 0;
  box-shadow:0 -8px 30px rgba(0,0,0,.14); padding:14px 14px calc(14px + env(safe-area-inset-bottom)); animation:gsUp .22s ease; }
@keyframes gsUp { from { transform:translateY(30%); opacity:.4; } to { transform:none; opacity:1; } }
.gs-emoji-tabs { display:flex; gap:18px; margin-bottom:10px; }
.gs-emoji-tabs button { border:0; background:none; font-size:13px; font-weight:600; color:#8a8f98; padding:4px 0; border-bottom:2px solid transparent; }
.gs-emoji-tabs button.on { color:#18a05e; border-bottom-color:#18a05e; }
.gs-emoji-row { display:grid; grid-template-columns:repeat(8,1fr); gap:6px; }
.gs-emoji-row button { border:0; background:none; font-size:24px; padding:4px 0; border-radius:8px; }
.gs-emoji-row button:active { background:#f1f2f4; }
/* 双语名片气泡卡 */
.x-biz { min-width:220px; border:1px solid #e5e7eb; }
.x-biz-tag { font-size:10.5px; font-weight:700; color:#18a05e; margin-bottom:6px; }
.x-biz-me { display:flex; align-items:center; gap:10px; }
.x-biz-av { width:38px; height:38px; border-radius:50%; background:linear-gradient(135deg,#f97316,#ef4444); color:#fff;
  display:flex; align-items:center; justify-content:center; font-weight:800; font-size:16px; flex:none; }
.x-biz-tx { display:flex; flex-direction:column; min-width:0; flex:1; }
.x-biz-tx b { font-size:14px; color:#111827; }
.x-biz-tx i { font-style:normal; font-size:11px; color:#6b7280; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.x-biz-tx i.en { color:#9ca3af; }
.x-biz-go { color:#c0c4cc; font-size:18px; }
/* 双语名片详情页 */
.bcard { padding:18px; }
.bcard-co { display:flex; align-items:center; gap:8px; padding-bottom:12px; border-bottom:1px solid #f1f2f4; }
.bcard-co-ic { font-size:20px; }
.bcard-co-tx { display:flex; flex-direction:column; }
.bcard-co-tx b { font-size:13.5px; color:#111827; }
.bcard-co-tx i { font-style:normal; font-size:10.5px; color:#9ca3af; }
.bcard-me { display:flex; align-items:center; gap:14px; padding:14px 0; }
.bcard-av { width:64px; height:64px; border-radius:50%; background:linear-gradient(135deg,#f97316,#ef4444); color:#fff;
  display:flex; align-items:center; justify-content:center; font-size:26px; font-weight:800; flex:none; }
.bcard-me-tx { display:flex; flex-direction:column; gap:2px; }
.bcard-me-tx b { font-size:20px; color:#111827; }
.bcard-me-tx i { font-style:normal; font-size:12.5px; color:#6b7280; }
.bcard-badges { display:flex; gap:6px; margin-top:4px; }
.bcard-badges em { font-style:normal; font-size:10px; font-weight:700; color:#f97316; background:#fff3ec; border-radius:999px; padding:2px 8px; }
.bcard-badges em.en { color:#18a05e; background:#e7f6ee; }
.bcard-rows { display:flex; flex-direction:column; gap:10px; padding:10px 0; border-top:1px solid #f1f2f4; }
.bcard-row { display:flex; align-items:center; gap:12px; text-decoration:none; }
.bcard-ric { width:34px; height:34px; border-radius:10px; display:flex; align-items:center; justify-content:center; font-size:16px; flex:none; }
.gs-ric--tel { background:#e7f6ee; } .gs-ric--mail { background:#eef2ff; } .gs-ric--web { background:#f5f3ff; }
.bcard-rtx { display:flex; flex-direction:column; }
.bcard-rtx i { font-style:normal; font-size:10.5px; color:#9ca3af; }
.bcard-rtx b { font-size:13.5px; color:#111827; font-weight:600; }
.bcard-qr { display:flex; align-items:center; gap:14px; padding:12px 0 0; border-top:1px solid #f1f2f4; margin-top:10px; }
.bcard-qr-c { width:92px; height:92px; flex:none; }
.bcard-qr-c svg { width:100%; height:100%; }
.bcard-qr-tx { display:flex; flex-direction:column; }
.bcard-qr-tx b { font-size:13.5px; color:#111827; }
.bcard-qr-tx i { font-style:normal; font-size:11px; color:#9ca3af; }
.bcard-acts { display:flex; gap:10px; margin-top:12px; }
.bcard-acts .btn { flex:1; }
.vc2col { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
/* 感说额度友好提醒卡 */
.gs-qmodal { position:fixed; inset:0; z-index:90; background:rgba(17,24,39,.5); display:flex; align-items:center; justify-content:center; padding:28px; }
.gs-qmodal-c { width:100%; max-width:320px; background:#fff; border-radius:20px; padding:22px 20px; text-align:center; animation:gsUp .22s ease; }
.gs-qmodal-ic { font-size:34px; }
.gs-qmodal-c b { display:block; margin-top:8px; font-size:16px; color:#111827; }
.gs-qmodal-c p { margin:8px 0 16px; font-size:13px; line-height:1.6; color:#6b7280; }
.gs-qmodal-x { display:block; margin:10px auto 0; border:0; background:none; font-size:12.5px; color:#9ca3af; }
/* ==================== v1.9.50 九屏通话（设计稿 09~12） ==================== */
.call-ov2--nine { display:flex; flex-direction:column; justify-content:space-between;
  background:radial-gradient(120% 80% at 50% 0%,#0b2b26 0%,#071a17 55%,#04110f 100%); color:#fff; }
.call-nine-top { display:flex; flex-direction:column; align-items:center; gap:4px; padding:26px 16px 0; }
.call-nine-enc { font-size:10.5px; color:#5eead4; background:rgba(94,234,212,.12); border-radius:999px; padding:4px 12px; }
.call-nine-top b { font-size:12px; color:rgba(255,255,255,.55); font-weight:500; letter-spacing:1px; }
.call-nine-mid { display:flex; flex-direction:column; align-items:center; gap:10px; }
.call-nine-ring { position:relative; width:150px; height:150px; display:flex; align-items:center; justify-content:center; }
.call-nine-av { width:96px; height:96px; border-radius:50%; background:linear-gradient(135deg,#22d3a5,#18a05e);
  display:flex; align-items:center; justify-content:center; font-size:36px; font-weight:800; color:#fff; z-index:2; }
.call-nine-ring i { position:absolute; inset:0; border-radius:50%; border:1.5px solid rgba(24,160,94,.5); animation:gsRipple 2.4s ease-out infinite; }
.call-nine-ring i:nth-child(2) { animation-delay:.8s; }
.call-nine-ring i:nth-child(3) { animation-delay:1.6s; }
@keyframes gsRipple { 0% { transform:scale(.7); opacity:.9; } 100% { transform:scale(1.5); opacity:0; } }
.call-nine-mid > b { font-size:22px; font-weight:700; }
.call-nine-tm { font-style:normal; font-size:13px; color:#5eead4; letter-spacing:1px; }
.call-nine-live { margin:0 20px; background:rgba(255,255,255,.07); border:1px solid rgba(94,234,212,.18); border-radius:14px; padding:10px 14px; }
.call-nine-live-t { display:block; font-size:10.5px; color:#5eead4; font-weight:700; margin-bottom:4px; }
.call-nine-live p { margin:2px 0; font-size:13.5px; line-height:1.5; }
.call-nine-live p:first-of-type { color:rgba(255,255,255,.85); }
.call-nine-live p + p { color:#5eead4; font-weight:600; }
.call-nine-ctl { display:flex; justify-content:center; align-items:flex-end; gap:14px; padding:0 12px calc(26px + env(safe-area-inset-bottom)); }
.call-nine-ctl button { display:flex; flex-direction:column; align-items:center; gap:6px; border:0; background:none; color:rgba(255,255,255,.75); font-size:11px; }
.call-nine-ctl button span { width:52px; height:52px; border-radius:50%; background:rgba(255,255,255,.1); display:flex; align-items:center; justify-content:center; font-size:20px; }
.call-nine-ctl button.is-on span { background:rgba(94,234,212,.25); color:#5eead4; }
.call-nine-ctl button.is-hu span { background:#ef4444; color:#fff; transform:rotate(135deg); }
.call-nine-ctl button.is-hu { color:#fca5a5; }
.call-nine-ctl button.is-ok span { background:#18a05e; color:#fff; }
.call-nine-ctl button.is-ok { color:#86efac; }
/* 视频通话：全屏画面 + PIP + 双语字幕条 */
.call-ov2--nine.is-video .call-nine-top, .call-ov2--nine.is-video .call-nine-mid { display:none; }
.call-ov2--nine.is-video { justify-content:flex-end; }
.call-ov2--nine.is-video .call-nine-ctl { position:relative; z-index:5; }
.call-nine-sub { position:absolute; left:16px; right:16px; bottom:110px; z-index:4; background:rgba(4,17,15,.72);
  border-radius:12px; padding:8px 12px; display:flex; align-items:center; gap:8px; }
.call-nine-sub span { flex:none; }
.call-nine-sub b { font-size:13.5px; line-height:1.45; color:#fff; font-weight:600; }
.call-ov2--nine.is-flip .call-pip { left:16px; right:auto; }

/* ==================== v1.9.51 感说设计稿改版：页头 / 输入条固定 / ＋面板抽屉 / 表情面板 ==================== */
/* 页头（设计稿 g01/g02）：扁平无卡，渐变圆角方头像 + 名称/副题 + 线性图标组 */
.gs-chd { display:flex; align-items:center; gap:11px; padding:10px 14px 8px; }
.gs-chd-av { width:42px; height:42px; border-radius:12px; overflow:hidden; flex:none;
  background:linear-gradient(135deg,#ff9a62,#e5484d); color:#fff; font-weight:800; font-size:18px;
  display:flex; align-items:center; justify-content:center; }
.gs-chd-av img { width:100%; height:100%; object-fit:cover; display:block; }
.gs-chd-av svg { width:24px; height:24px; }
.gs-chd-tx { flex:1; min-width:0; display:flex; flex-direction:column; gap:1px; }
.gs-chd-tx b { font-size:16.5px; line-height:1.25; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.gs-chd-tx span { font-size:11.5px; color:#8a8f98; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.gs-chd-acts { display:flex; align-items:center; gap:2px; flex:none; }
.gs-chd-b { width:38px; height:38px; border:0; border-radius:50%; background:none; color:#232a35;
  display:flex; align-items:center; justify-content:center; cursor:pointer; -webkit-tap-highlight-color:transparent; }
.gs-chd-b svg { width:22px; height:22px; }
.gs-chd-b:active { background:#f1f2f4; }
[data-dark] .gs-chd-b { color:#d7dbe2; }
[data-dark] .gs-chd-b:active { background:rgba(255,255,255,.08); }

/* 输入行（设计稿 08）：红色＋圆钮 / 灰圆麦克风 / 胶囊输入（表情内嵌右侧）/ 红色发送钮 */
.gs-plus { flex:none; width:38px; height:38px; border:0; border-radius:50%; cursor:pointer;
  background:linear-gradient(135deg,#ff7a45,#e5484d); color:#fff;
  display:flex; align-items:center; justify-content:center; -webkit-tap-highlight-color:transparent; }
.gs-plus svg { width:20px; height:20px; }
.gs-plus:active { filter:brightness(.94); }
.gs-micb { flex:none; width:38px; height:38px; border:0; border-radius:50%; cursor:pointer;
  background:#eef0f3; color:#3c4450; display:flex; align-items:center; justify-content:center; -webkit-tap-highlight-color:transparent; }
.gs-micb svg { width:20px; height:20px; }
.gs-micb:active { background:#e2e5ea; }
.gs-inwrap { flex:1; min-width:0; display:flex; align-items:center; gap:2px;
  background:#f2f3f5; border-radius:22px; padding:0 4px 0 14px; }
.gs-inwrap .f-in { flex:1; min-width:0; border:0; background:none; border-radius:0; padding:9px 0; font-size:15px; color:var(--on-surface,#1c232d); }
.gs-inwrap .cmp-emoji { flex:none; width:32px; height:32px; border:0; border-radius:50%; background:none;
  color:#8a8f98; display:flex; align-items:center; justify-content:center; cursor:pointer; padding:0; }
.gs-inwrap .cmp-emoji svg { width:22px; height:22px; }
.gs-inwrap .cmp-emoji:active { background:#e2e5ea; }
[data-dark] .gs-inwrap { background:rgba(255,255,255,.08); }
[data-dark] .gs-inwrap .f-in { background:none; color:#e8e8e8; }
[data-dark] .gs-micb { background:rgba(255,255,255,.1); color:#cfd4db; }

/* 输入条固定底部（总裁指令）：fixed 贴快捷条上沿，键盘弹起随视口整体上移；高度经 --gs-bar 度量 */
.sub--chat .cmp-bar { position:fixed; left:0; right:0; bottom:var(--gs-hb,0px); z-index:45;
  margin:0; border-top:1px solid var(--line, rgba(0,0,0,.08)); border-radius:0;
  background:var(--bg,#fff); padding:8px 10px calc(8px + env(safe-area-inset-bottom)); }
.sub--chat .sub-bd { padding-bottom:calc(var(--gs-hb,0px) + var(--gs-bar,60px) + 10px) !important; }
.sub--chat .cmp-quotebar { position:fixed; left:0; right:0; bottom:calc(var(--gs-hb,0px) + var(--gs-bar,60px));
  z-index:46; margin:0; border-radius:0; }

/* ＋面板（设计稿 g03）：底部抽屉圆角浮层 + 淡彩宫格（常用/智能助手/互动） */
.sub--chat .plus-panel { position:fixed; left:0; right:0; bottom:calc(var(--gs-hb,0px) + var(--gs-bar,60px));
  z-index:60; margin:0; border:0; border-radius:18px 18px 0 0; box-shadow:0 -8px 30px rgba(0,0,0,.14);
  padding:12px 14px calc(16px + env(safe-area-inset-bottom)); gap:8px 6px;
  max-height:64vh; overflow-y:auto; animation:gsUp .22s ease; }
.pp-it .pp-ic { width:52px; height:52px; border-radius:16px; }
.pp-it .pp-ic svg { width:24px; height:24px; }
.pp-gt { font-size:12px; color:#9aa0aa; font-weight:600; letter-spacing:0; margin:8px 2px 0; }
.ppc-blue   { background:#e8f0fe; color:#3b78e7; }
.ppc-green  { background:#e6f7ec; color:#22a45d; }
.ppc-purple { background:#f1ecfe; color:#7c5cf0; }
.ppc-orange { background:#fef3e6; color:#ee8c1a; }
.ppc-teal   { background:#e6f7f5; color:#14b8a6; }
.ppc-red    { background:#feecec; color:#e5484d; }
.ppc-yellow { background:#fff8e0; color:#d9a406; }
.ppc-violet { background:#f3e8ff; color:#9333ea; }
.ppc-pink   { background:#fdeaf1; color:#e0568a; }
.ppc-gray   { background:#f1f2f4; color:#66708a; }
[data-dark] .plus-panel { background:#1c1c1c; }
[data-dark] .ppc-blue   { background:rgba(59,120,231,.18); color:#7aa7f5; }
[data-dark] .ppc-green  { background:rgba(34,164,93,.18); color:#5cc98d; }
[data-dark] .ppc-purple { background:rgba(124,92,240,.2); color:#b39afc; }
[data-dark] .ppc-orange { background:rgba(238,140,26,.18); color:#f5ac63; }
[data-dark] .ppc-teal   { background:rgba(20,184,166,.18); color:#5ad4c8; }
[data-dark] .ppc-red    { background:rgba(229,72,77,.18); color:#f08c8f; }
[data-dark] .ppc-yellow { background:rgba(217,164,6,.18); color:#e8c458; }
[data-dark] .ppc-violet { background:rgba(147,51,234,.2); color:#c48df5; }
[data-dark] .ppc-pink   { background:rgba(224,86,138,.18); color:#ef93b6; }
[data-dark] .ppc-gray   { background:rgba(255,255,255,.08); color:#aab0ba; }
@media (min-width:761px) { .sub--chat .plus-panel { max-width:560px; margin:0 auto; } }

/* 表情面板：贴输入条上沿；修 display:grid 覆盖 [hidden]（引用条同款坑） */
.gs-emoji { bottom:calc(var(--gs-hb,0px) + var(--gs-bar,60px)); z-index:61; }
.gs-emoji-row[hidden] { display:none !important; }
[data-dark] .gs-emoji { background:#1c1c1c; }

/* ⋯ 更多菜单小抽屉 */
/* v1.9.59 修：内页容器 .sub 的 z-index 为 90，浮层若停留在 70 会被 .sub-bd 盖住
   （云留存页的「选择支付方式」实测点不到）。提到 95：高于 .sub(90)/.gh-sheet(88)，
   低于 .g-call(96)/.g-menu(97)/通话浮层(220)/相册预览(9999)。 */
.gs-more { position:fixed; inset:0; z-index:95; background:rgba(10,14,24,.38); }
.gs-more-c { position:absolute; left:14px; right:14px; bottom:calc(var(--gs-hb,0px) + var(--gs-bar,60px) + 10px);
  background:var(--card,#fff); border-radius:14px; overflow:hidden; animation:gsUp .2s ease; }
.gs-more-c button { display:block; width:100%; border:0; background:none; text-align:left;
  padding:14px 18px; font-size:14.5px; color:var(--on-surface,#1c232d); border-bottom:1px solid var(--line, rgba(0,0,0,.06)); }
.gs-more-c button:last-child { border-bottom:0; }
.gs-more-c button:active { background:var(--bg,#f4f5f6); }
[data-dark] .gs-more-c { background:#1c1c1c; }
[data-dark] .gs-more-c button { color:#e8e8e8; border-bottom-color:rgba(255,255,255,.08); }

/* 会话列表（设计稿 05）：筛选胶囊 + 搜索条 + 会话卡 */
.gs-cl-tabs { display:flex; gap:8px; padding:10px 14px 4px; }
.gs-cl-tab { border:1px solid var(--line, rgba(0,0,0,.1)); background:var(--card,#fff); border-radius:999px;
  padding:6px 16px; font-size:13px; font-weight:600; color:var(--on-surface,#1c232d); cursor:pointer; }
.gs-cl-tab.on { background:linear-gradient(135deg,#22a45d,#18a05e); border-color:transparent; color:#fff; }
.gs-cl-search { display:flex; align-items:center; gap:8px; margin:8px 14px 10px; padding:0 12px;
  background:var(--card,#fff); border:1px solid var(--line, rgba(0,0,0,.08)); border-radius:12px; }
.gs-cl-search svg { width:16px; height:16px; color:#9aa0aa; flex:none; }
.gs-cl-search input { flex:1; min-width:0; border:0; background:none; padding:9px 0; font-size:13.5px; color:var(--on-surface,#1c232d); }
.gs-cl { display:flex; align-items:center; gap:12px; width:100%; text-align:left; border:0; cursor:pointer;
  background:var(--card,#fff); border-radius:16px; padding:12px 14px; margin:0 14px 10px;
  box-shadow:0 1px 6px rgba(16,24,40,.05); }
[data-dark] .gs-cl { background:#1c1c1c; box-shadow:none; }
.gs-cl:active { background:var(--bg,#f4f5f6); }
.gs-cl-av { width:46px; height:46px; border-radius:50%; flex:none; color:#fff; font-weight:800; font-size:19px;
  background:linear-gradient(135deg,#22a45d,#0e9aae);
  display:flex; align-items:center; justify-content:center; overflow:hidden; }
.gs-cl-av--grp { background:linear-gradient(135deg,#7c5cf0,#5b8def); }
.gs-cl-av--grp svg { width:24px; height:24px; }
.gs-cl-tx { flex:1; min-width:0; display:flex; flex-direction:column; gap:1px; }
.gs-cl-tx b { font-size:15px; line-height:1.3; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.gs-cl-rl { font-size:11px; color:#9aa0aa; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.gs-cl-prev { font-size:12.5px; color:#66708a; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.gs-cl-typing { color:#18a05e; font-weight:600; }
.gs-cl-typing i { display:inline-block; width:4px; height:4px; border-radius:50%; background:#18a05e;
  margin-left:3px; vertical-align:2px; animation:gsTypDot 1.2s ease-in-out infinite; }
.gs-cl-typing i:nth-child(2) { animation-delay:.2s; }
.gs-cl-typing i:nth-child(3) { animation-delay:.4s; }
@keyframes gsTypDot { 0%, 60%, 100% { opacity:.25; } 30% { opacity:1; } }
.gs-cl-side { flex:none; display:flex; flex-direction:column; align-items:flex-end; gap:4px; }
.gs-cl-tm { font-size:10.5px; color:#9aa0aa; }
.gs-cl-read { font-size:10.5px; color:#9aa0aa; }
.gs-cl-read.is-read { color:#18a05e; }
.gs-cl-unread { min-width:18px; height:18px; padding:0 5px; border-radius:999px; background:#18a05e; color:#fff;
  font-size:10.5px; font-weight:800; display:flex; align-items:center; justify-content:center; }

/* ==================== v1.9.52 感会：多方多语言同声传译会议（设计稿 g18-23） ==================== */
/* 首页四卡 + 今日会议 + TOUCH AI 横幅 */
.gh-cards { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:16px; }
.gh-card { border:0; border-radius:16px; padding:16px 14px; min-height:84px; text-align:left; cursor:pointer;
  display:flex; flex-direction:column; justify-content:space-between; gap:6px;
  background:linear-gradient(135deg,#f3f0ff,#faf5ff); box-shadow:0 1px 4px rgba(17,24,39,.04); }
.gh-card:nth-child(2) { background:linear-gradient(135deg,#eef4ff,#f0faff); }
.gh-card:nth-child(3) { background:linear-gradient(135deg,#fff4ec,#fff8f0); }
.gh-card:nth-child(4) { background:linear-gradient(135deg,#ecfaf1,#f2fdf6); }
.gh-card b { font-size:15px; color:#111827; }
.gh-card span { font-size:11px; color:#8a919e; }
.gh-card:active { transform:scale(.98); }
.gh-sec { display:flex; align-items:center; justify-content:space-between; margin:4px 2px 10px; }
.gh-sec b { font-size:14px; color:#111827; }
.gh-lnk { border:0; background:none; color:#f43f2e; font-size:12.5px; font-weight:700; cursor:pointer; }
.gh-today { display:flex; flex-direction:column; gap:10px; }
.gh-today-empty { display:flex; flex-direction:column; align-items:center; gap:6px; padding:26px 16px; }
.gh-today-empty .gh-ic { width:44px; height:44px; border-radius:14px; background:#f1f2f5; color:#c1c7d0;
  font-size:18px; font-weight:800; display:flex; align-items:center; justify-content:center; }
.gh-today-empty b { font-size:13.5px; color:#6b7280; }
.gh-today-empty p { margin:0; font-size:11px; color:#9aa0aa; text-align:center; }
.gh-item { display:flex; align-items:center; gap:12px; padding:12px 14px; border:0; cursor:pointer; text-align:left; }
.gh-item .gh-av { width:38px; height:38px; border-radius:12px; flex:none; background:#fff; color:#c1c7d0;
  font-size:15px; font-weight:800; display:flex; align-items:center; justify-content:center;
  box-shadow:0 1px 4px rgba(17,24,39,.08); }
.gh-item-tx { flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
.gh-item-tx b { font-size:14px; color:#111827; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.gh-item-tx span { font-size:11px; color:#9aa0aa; }
.gh-live { font-style:normal; font-size:10.5px; font-weight:800; color:#f43f2e;
  background:rgba(244,63,46,.09); border-radius:999px; padding:3px 8px; flex:none; }
.gh-banner { margin-top:14px; border:0; border-radius:18px; padding:16px; width:100%; cursor:pointer;
  text-align:left; display:flex; flex-direction:column; gap:4px;
  background:linear-gradient(135deg,#ff8a3d,#f43f2e); box-shadow:0 6px 16px rgba(244,63,46,.28); }
.gh-banner b { font-size:15.5px; color:#fff; }
.gh-banner span { font-size:11px; color:rgba(255,255,255,.88); }
/* 创建/加入表单 */
.gh-form { display:flex; flex-direction:column; gap:4px; padding:6px 14px; }
.gh-row { display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:12px 0; border-bottom:1px solid #f2f3f5; }
.gh-row:last-child { border-bottom-color:transparent; }
.gh-row > span:first-child { font-size:13.5px; color:#111827; font-weight:600; flex:none; }
.gh-row .gh-in { flex:1; border:0; background:none; font-size:13.5px; text-align:right; padding:0; height:auto; }
.gh-row .gh-row-r { font-style:normal; font-size:12.5px; color:#9aa0aa; }
.gh-row .gh-row-r.gh-host { color:#111827; font-weight:700; display:flex; align-items:center; gap:8px; }
.gh-mute { color:#9aa0aa !important; font-weight:500 !important; }
.gh-tip { margin:0; font-size:10.5px; color:#b3b9c4; padding:4px 0 8px; }
.gh-lab { margin:14px 2px 8px; font-size:11.5px; color:#9aa0aa; }
.gh-chips { display:flex; flex-wrap:wrap; gap:8px; padding:2px 0 10px; }
.gh-chip { border:1px solid #e5e7eb; background:#fff; border-radius:999px; padding:6px 14px;
  font-size:12.5px; color:#374151; cursor:pointer; }
.gh-chip.is-on { border-color:#f43f2e; color:#f43f2e; background:rgba(244,63,46,.06); font-weight:700; }
.gh-sw { position:relative; display:inline-block; width:46px; height:26px; flex:none; }
.gh-sw input { opacity:0; width:0; height:0; }
.gh-sw i { position:absolute; inset:0; border-radius:999px; background:#d8dce3; transition:.2s; }
.gh-sw i:before { content:''; position:absolute; width:20px; height:20px; border-radius:50%; background:#fff;
  top:3px; left:3px; transition:.2s; box-shadow:0 1px 3px rgba(0,0,0,.2); }
.gh-sw input:checked + i { background:#f86a3d; }
.gh-sw input:checked + i:before { transform:translateX(20px); }
.gh-go { margin-top:16px; height:48px; border-radius:999px; font-size:15px;
  background:linear-gradient(135deg,#ff8a3d,#f43f2e); border:0; }
.gh-search { margin-bottom:12px; }
.gh-search .f-in { border-radius:999px; background:#eef0f3; border:0; }
.gh-day { font-size:12px; color:#8a919e; margin:14px 2px 8px; }
.gh-hitem { display:flex; flex-direction:column; gap:4px; padding:12px 14px; border:0; cursor:pointer; text-align:left; }
.gh-hid { font-size:10.5px; color:#9aa0aa; }
.gh-hitem b { font-size:14.5px; color:#111827; }
.gh-hitem span { font-size:11px; color:#8a919e; }
/* 会议详情 */
.gh-dwrap { display:flex; flex-direction:column; }
.gh-dt { padding:4px 14px; }
.gh-min { padding:12px 14px; }
.gh-min pre { white-space:pre-wrap; word-break:break-word; font-family:inherit; margin:0; font-size:13px; line-height:1.65; }
.gh-min-zh { color:#111827; }
.gh-min-en { color:#6b7280; border-top:1px dashed #e5e7eb; margin-top:10px; padding-top:10px; }
.gh-del { margin-top:16px; height:46px; border-radius:999px; border:1.5px solid #f43f2e; background:#fff;
  color:#f43f2e; font-size:14.5px; font-weight:700; cursor:pointer; }
/* 会议中（g21） */
.gh-room { display:flex; flex-direction:column; gap:10px; min-height:100%; }
.gh-top { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.gh-top-tx { display:flex; flex-direction:column; gap:1px; min-width:0; }
.gh-top-tx b { font-size:15px; color:#111827; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.gh-top-tx span { font-size:11.5px; color:#18a05e; font-weight:700; }
.gh-endbtn { border:0; border-radius:999px; background:#f43f2e; color:#fff; font-size:13px; font-weight:800;
  padding:8px 18px; cursor:pointer; flex:none; }
.gh-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.gh-tile { position:relative; border-radius:16px; background:#fff; min-height:150px; overflow:hidden;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px;
  border:2px solid transparent; box-shadow:0 1px 4px rgba(17,24,39,.05); }
.gh-tile video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:none; }
.gh-tile.has-v video { display:block; }
.gh-tile.has-v .gh-tile-av { display:none; }
.gh-tile.is-spk { border-color:#18a05e; }
.gh-tile.is-mute .gh-tile-lg { opacity:.6; }
.gh-tile-av { width:52px; height:52px; border-radius:50%; color:#fff; font-size:20px; font-weight:800;
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg,#ff8a3d,#f43f2e); }
.gh-tile:nth-child(4n+2) .gh-tile-av { background:linear-gradient(135deg,#3b82f6,#1d4ed8); }
.gh-tile:nth-child(4n+3) .gh-tile-av { background:linear-gradient(135deg,#10b981,#047857); }
.gh-tile:nth-child(4n) .gh-tile-av { background:linear-gradient(135deg,#8b5cf6,#6d28d9); }
.gh-tile-nm { font-size:13px; font-weight:700; color:#111827; }
.gh-tile-lg { font-size:10.5px; color:#8a919e; background:#f1f2f5; border-radius:999px; padding:2px 8px; }
.gh-tile.is-mine .gh-tile-lg { background:rgba(24,160,94,.1); color:#18a05e; font-weight:700; }
.gh-subbar { border-radius:14px; background:#fff; box-shadow:0 1px 4px rgba(17,24,39,.06); padding:10px 12px; }
.gh-subbar-h { font-size:10px; font-weight:800; color:#f43f2e; margin-bottom:4px; }
.gh-sub-raw { font-size:13.5px; color:#111827; font-weight:700; line-height:1.5; min-height:20px; }
.gh-sub-tr { font-size:12.5px; color:#18a05e; line-height:1.5; min-height:16px; }
.gh-ctl { display:flex; justify-content:space-around; padding:6px 0 4px; }
.gh-ctlb { border:0; background:none; display:flex; flex-direction:column; align-items:center; gap:5px; cursor:pointer; }
.gh-ctlb i { font-style:normal; width:46px; height:46px; border-radius:50%; background:#eef0f3;
  font-size:15px; font-weight:800; color:#374151; display:flex; align-items:center; justify-content:center; }
.gh-ctlb.is-on i { background:#f86a3d; color:#fff; }
.gh-ctlb span { font-size:10.5px; color:#6b7280; }
.gh-ctlb.is-on span { color:#f43f2e; font-weight:700; }
/* 底部抽屉（成员/设置） */
.gh-sheet { position:fixed; inset:0; z-index:88; background:rgba(17,24,39,.45);
  display:flex; align-items:flex-end; animation:gsUp .2s ease; }
.gh-sheet-c { width:100%; background:#fff; border-radius:20px 20px 0 0; padding:18px 18px calc(18px + env(safe-area-inset-bottom));
  display:flex; flex-direction:column; gap:10px; max-height:70vh; overflow:auto; }
.gh-sheet-c > b { font-size:15px; color:#111827; }
.gh-mrow { display:flex; align-items:center; gap:12px; }
.gh-mrow .gh-av { width:38px; height:38px; border-radius:50%; color:#fff; font-size:15px; font-weight:800;
  display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg,#ff8a3d,#f43f2e); }
.gh-mrow-tx { display:flex; flex-direction:column; gap:1px; }
.gh-mrow-tx b { font-size:13.5px; color:#111827; }
.gh-mrow-tx span { font-size:11px; color:#9aa0aa; }
.gh-lgrow { display:flex; align-items:center; gap:12px; border:0; background:#f7f8fa; border-radius:12px;
  padding:11px 14px; font-size:14px; color:#111827; cursor:pointer; text-align:left; }
.gh-lgrow.is-on { background:rgba(24,160,94,.08); font-weight:700; }
.gh-lgtag { width:26px; height:26px; border-radius:50%; color:#fff; font-size:11px; font-weight:800;
  display:flex; align-items:center; justify-content:center; flex:none; }
.gh-lgold { font-style:normal; color:#18a05e; margin-left:auto; font-weight:800; }
[data-dark] .gh-card, [data-dark] .gh-tile, [data-dark] .gh-subbar { background:#1c1c1c; }
[data-dark] .gh-card b, [data-dark] .gh-item-tx b, [data-dark] .gh-hitem b, [data-dark] .gh-tile-nm,
[data-dark] .gh-top-tx b, [data-dark] .gh-sheet-c > b, [data-dark] .gh-min-zh, [data-dark] .gh-row > span:first-child { color:#e8e8e8; }
[data-dark] .gh-tile-lg { background:#26282c; color:#9aa0aa; }
[data-dark] .gh-form, [data-dark] .gh-lgrow { background:#1c1c1c; }
[data-dark] .gh-row { border-bottom-color:rgba(255,255,255,.07); }

/* v1.9.58 投递即焚：未留存标注 + 焚毁占位 */
.eph-tag.is-nr { opacity: .55; font-style: normal; }
.cmp-burned { display: inline-block; font-size: 12px; opacity: .6; }

/* v1.9.62 感问/感作 AI 通道 + 私聊在线小标志 + 世界总控显隐 */
.ask-ans { white-space: pre-wrap; line-height: 1.7; color: #333; background: #F7F8FA; border-radius: 12px; padding: 12px 14px; font-size: 15px; }
.ask-err { color: #C0392B; background: #FDEEEC; border-radius: 12px; padding: 12px 14px; font-size: 14px; line-height: 1.6; }
.wk-tabs { display: flex; gap: 8px; margin-bottom: 10px; }
.wk-tab { flex: 1; border: 1px solid #E7E9EE; background: #fff; color: #666; border-radius: 999px; padding: 8px 0; font-size: 14px; }
.wk-tab.on { background: linear-gradient(135deg, #FF7A45, #F5222D); color: #fff; border-color: transparent; }
.gs-chd-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: #C4CAD4; margin-left: 6px; vertical-align: 2px; }
.gs-chd-dot.is-on { background: #22C55E; box-shadow: 0 0 0 3px rgba(34, 197, 94, .15); }
.ws-tile[hidden], .ws-live[hidden] { display: none !important; }

/* ===================== v1.9.63 感说交流滚动优化（设计稿48/49） ===================== */
/* 药方①：页头/翻译条钉顶层 —— sub-bd 停止滚动改 flex 容器，消息滚到顶只渐隐、永不遮挡 */
.sub--chat .sub-bd { overflow: hidden; }
.sub--chat .gs-chd { flex: 0 0 auto; background: var(--surface, #fff); border-bottom: 1px solid var(--outline-v, rgba(0,0,0,.06)); }
.sub--chat .gs-trbar { flex: 0 0 auto; margin: 8px 0 6px; }
/* 药方②③：消息区独立滚动 + overscroll contain + 底部安全距离（v1.9.93 总裁指令：删上下渐隐白雾，曾挡住消息） */
.sub--chat .cmp-chat { flex: 1 1 auto; min-height: 0 !important; max-height: none !important; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; padding-bottom: 18px; }
/* 药方④：气泡 + 状态小字列（foot 在气泡条文正下方，不进气泡、不裁切） */
.wx-col { display: flex; flex-direction: column; align-items: flex-start; margin: 0 9px; max-width: calc(100% - 110px); min-width: 0; flex: 0 1 auto; }
.cmp-msg.is-me .wx-col { align-items: flex-end; }
.wx-col .wx-b { margin: 0; max-width: 100%; }
.cmp-foot { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: flex-start; margin: 3px 0 0; font-size: 10px; line-height: 14px; color: #9aa0a6; }
.cmp-msg.is-me .cmp-foot { justify-content: flex-end; }
.cmp-foot em { font-style: normal; white-space: nowrap; }
/* ===================== v1.9.94/95 白块根治 + 语音微信式 ===================== */
/* v1.9.95 总裁定稿：聊天区底部只预留 1px，消息区直达输入行上沿；「最后一屏让位」改由消息滚动区自身 padding 承担（滚动到底最后一条完整显示在输入行上方） */
.sub--chat .sub-bd { background: #ededed; padding-bottom: 1px !important; }
[data-dark] .sub--chat .sub-bd { background: #111; }
.sub--chat .cmp-chat { padding-bottom: calc(var(--gs-hb, 0px) + 13px); } /* v1.9.96 总裁定稿：最新一条消息底缘距输入框上沿 3px */
.cmp-foot em + em::before { content: '\00B7'; margin: 0 4px; color: #c5c9cf; }
.cmp-foot .cmp-read { display: inline; margin: 0; text-align: left; }
.cmp-foot .cmp-read.is-read { color: #18a05e; font-weight: 700; }
.cmp-foot .eph-tag { margin: 0; }
.cmp-foot .eph-tag.is-nr { opacity: .8; }

/* ================= v1.9.64 感会扩展 + 感动办公 ================= */
.gh-kind { font-style: normal; font-size: 11px; font-weight: 600; color: #fff; background: #ff6b35; border-radius: 4px; padding: 1px 5px; margin-left: 6px; vertical-align: 2px; }
.gh-types { display: flex; flex-direction: column; gap: 10px; margin-bottom: 14px; }
.gh-type { display: flex; align-items: center; text-align: left; border: 1.5px solid #e7e9ee; border-radius: 12px; padding: 14px; background: #fff; cursor: pointer; }
.gh-type.is-on { border-color: #ff6b35; background: #fff7f3; }
.gh-type-tx { flex: 1; min-width: 0; }
.gh-type-tx b { display: block; font-size: 15px; }
.gh-type-tx span { display: block; margin-top: 3px; font-size: 12px; color: #8a8f99; }
.gh-type-ok { opacity: 0; color: #ff6b35; font-style: normal; font-weight: 700; }
.gh-type.is-on .gh-type-ok { opacity: 1; }
.gh-ctl-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 10px 0; border-bottom: 1px solid #f0f1f4; font-size: 13px; }
.gh-macts { display: flex; gap: 6px; flex-shrink: 0; }
.gh-mbtn { border: 1px solid #e7e9ee; background: #fff; border-radius: 999px; font-size: 11px; padding: 4px 9px; color: #444; cursor: pointer; }
.gh-mbtn--r { color: #d64541; border-color: #f3c1c0; }
.gh-sheet-btns { display: flex; gap: 8px; margin-top: 10px; }
.gh-sheet-btns .btn { flex: 1; }
.gh-sheet-tip { font-size: 12px; color: #8a8f99; margin: 4px 0 8px; }
.gh-temp-hd { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.gh-temp-def { font-style: normal; font-size: 11px; color: #ff6b35; background: #fff1ea; border-radius: 999px; padding: 2px 8px; }
.gh-temp-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0 4px; }
.gh-temp-chips .gh-chip { border: 1px solid #e7e9ee; background: #fff; border-radius: 999px; padding: 7px 14px; font-size: 13px; cursor: pointer; }
.gh-temp-chips .gh-chip.is-on { background: #ff6b35; color: #fff; border-color: #ff6b35; font-weight: 700; }
.gh-inv-card { background: #f8f9fb; border-radius: 10px; padding: 10px 12px; margin: 8px 0; }
.gh-inv-row { display: flex; justify-content: space-between; gap: 8px; font-size: 13px; padding: 3px 0; }
.gh-inv-copy { margin-top: 8px; width: 100%; }
.gh-seg { display: flex; gap: 6px; margin: 6px 0; }
.gh-seg button { flex: 1; border: 1px solid #e7e9ee; background: #fff; border-radius: 999px; padding: 6px 0; font-size: 13px; cursor: pointer; }
.gh-seg button.is-on { background: #ff6b35; border-color: #ff6b35; color: #fff; font-weight: 700; }
.gh-inv-list { max-height: 300px; overflow-y: auto; }
.gh-inv-done { color: #18a05e; font-style: normal; font-size: 12px; font-weight: 700; }
.gb-seg { display: flex; gap: 6px; margin-bottom: 12px; }
.gb-seg button { flex: 1; border: 1px solid #e7e9ee; background: #fff; border-radius: 999px; padding: 8px 0; font-size: 13px; cursor: pointer; }
.gb-seg button.is-on { background: #ff6b35; border-color: #ff6b35; color: #fff; font-weight: 700; }
.gb-hero { background: linear-gradient(135deg, #ff7a45, #e63946); color: #fff; border-radius: 14px; padding: 16px; margin-bottom: 12px; }
.gb-hero b { font-size: 16px; display: block; }
.gb-hero span { display: block; margin-top: 4px; font-size: 12px; opacity: .92; }
.gb-quick { display: flex; gap: 10px; margin-bottom: 12px; }
.gb-qcard { flex: 1; border: 0; border-radius: 12px; padding: 14px; color: #fff; text-align: left; cursor: pointer; }
.gb-qcard--o { background: linear-gradient(135deg, #ff7a45, #ff5e3a); }
.gb-qcard--y { background: linear-gradient(135deg, #ffb02e, #ff8c1a); }
.gb-qcard b { font-size: 15px; display: block; }
.gb-qcard span { display: block; margin-top: 3px; font-size: 11px; opacity: .92; }
.gb-todo { width: 100%; display: flex; align-items: center; border: 0; background: #fff; border-radius: 12px; padding: 12px; margin: 12px 0; cursor: pointer; box-shadow: 0 1px 4px rgba(0,0,0,.05); }
.gb-todo-tx { flex: 1; min-width: 0; text-align: left; }
.gb-todo-tx b { font-size: 14px; }
.gb-todo-tx span { display: block; margin-top: 2px; font-size: 12px; color: #8a8f99; }
.gb-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.gb-stat { background: #f6f7f9; border-radius: 10px; padding: 10px 4px; text-align: center; }
.gb-stat b { font-size: 18px; display: block; color: #222; }
.gb-stat span { font-size: 11px; color: #8a8f99; }
.gb-stat--ok b { color: #18a05e; }
.gb-stat--warn b { color: #e6a23c; }
/* v2.4.7 感后：页首品牌横幅（同时修复感海同款未定义类）+ 状态胶囊三色 */
.gb-sea-hero { background: linear-gradient(135deg, #ff7a45, #e63946); color: #fff; border-radius: 14px; padding: 16px; margin-bottom: 12px; }
.gb-sea-hero b { font-size: 16px; display: block; }
.gb-sea-hero span { display: block; margin-top: 4px; font-size: 12px; opacity: .92; }
.vip-pill.hst-ok { color: #0f7a3d; background: linear-gradient(135deg, #d6f5e2, #a8ecc4); }
.vip-pill.hst-warn { color: #9a6200; background: linear-gradient(135deg, #ffeccb, #ffd98f); }
.vip-pill.hst-bad { color: #a32020; background: linear-gradient(135deg, #ffdcdc, #ffb3b3); }
[data-dark] .vip-pill.hst-ok { color: #7ce0a4; background: rgba(124, 224, 164, .16); }
[data-dark] .vip-pill.hst-warn { color: #ffd77a; background: rgba(255, 215, 122, .16); }
[data-dark] .vip-pill.hst-bad { color: #ff9b9b; background: rgba(255, 155, 155, .16); }
.gb-punch-wrap { text-align: center; padding: 18px 0 10px; }
.gb-punch { width: 180px; height: 180px; border-radius: 50%; border: 0; color: #fff; background: radial-gradient(circle at 30% 25%, #ff8a5c, #ff5e3a 60%, #e63946); box-shadow: 0 10px 26px rgba(255,94,58,.35); cursor: pointer; }
.gb-punch:disabled { opacity: .7; }
.gb-punch b { font-size: 20px; display: block; }
.gb-punch span { display: block; margin-top: 6px; font-size: 13px; opacity: .95; }
.gb-punch i { display: block; margin-top: 10px; font-size: 12px; font-style: normal; opacity: .9; }
.gb-punch-tip { font-size: 12px; color: #8a8f99; margin-top: 10px; }
.gb-rec-list { display: flex; flex-wrap: wrap; gap: 8px; }
.gb-rec-t { font-size: 13px; background: #f6f7f9; border-radius: 999px; padding: 5px 10px; }
.gb-week-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 6px; padding-top: 6px; }
.gb-wcell { flex: 1; text-align: center; }
.gb-wcell i { display: block; margin: 0 auto 4px; width: 16px; border-radius: 4px; background: #ffb02e; }
.gb-wcell b { font-size: 12px; display: block; }
.gb-wcell span { font-size: 11px; color: #8a8f99; }
.gb-log-ta { width: 100%; margin: 10px 0; }
.gb-log-i b { font-size: 13px; }
.gb-log-tx { display: block; margin-top: 2px; font-size: 12px; color: #8a8f99; }

.ws-ic--gb { background: linear-gradient(135deg, #3577d6, #2456a8); }

/* ---- v1.9.67 感会等候室/材料/屏幕共享 ---- */
.gh-wait { text-align: center; padding: 26px 16px; }
.gh-wait .gh-ic { display: block; font-size: 34px; margin-bottom: 8px; }
.gh-wait b { display: block; font-size: 16px; }
.gh-wait p { font-size: 12px; color: var(--mut, #667); margin: 6px 0 14px; }
.gh-wait-dots { display: flex; gap: 6px; justify-content: center; margin-bottom: 14px; }
.gh-wait-dots i { width: 8px; height: 8px; border-radius: 50%; background: #e9573f; animation: ghDot 1.2s infinite; }
.gh-wait-dots i:nth-child(2) { animation-delay: .2s; }
.gh-wait-dots i:nth-child(3) { animation-delay: .4s; }
@keyframes ghDot { 0%, 100% { opacity: .25; } 50% { opacity: 1; } }
.gh-waitb { display: inline-block; margin-left: 6px; min-width: 17px; padding: 1px 5px; border-radius: 9px; background: #e9573f; color: #fff; font-size: 10px; font-style: normal; text-align: center; }
.gh-mat-tip { font-size: 11px; color: var(--mut, #667); margin: 4px 0 10px; }
.gh-mat-up { display: block; text-align: center; margin-top: 12px; cursor: pointer; }
.gh-mst { font-size: 10px; font-style: normal; padding: 2px 7px; border-radius: 9px; background: #f0d26433; color: #a07b16; flex-shrink: 0; }
.gh-mst--ok { background: #18a05e22; color: #18a05e; }
.gh-mst--no { background: #e9573f22; color: #e9573f; }
.gh-mbtn--p { color: #2456a8; }
.gh-item-mat { flex-shrink: 0; border: 1px solid #e5e5ea; border-radius: 9px; padding: 5px 9px; font-size: 11px; color: #2456a8; background: #f6f8fc; }
.gh-ov { position: fixed; inset: 0; z-index: 130; background: rgba(10, 12, 18, .88); display: flex; align-items: center; justify-content: center; padding: 14px; }
.gh-ov-c { width: 100%; max-width: 560px; max-height: 92vh; display: flex; flex-direction: column; background: #14161c; border-radius: 14px; overflow: hidden; }
.gh-ov-h { display: flex; align-items: center; gap: 8px; padding: 10px 12px; color: #fff; }
.gh-ov-h b { flex: 1; font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gh-ov-x { border: 0; background: #ffffff22; color: #fff; border-radius: 8px; padding: 5px 9px; font-size: 11px; flex-shrink: 0; }
.gh-ov-fr { width: 100%; flex: 1; min-height: 52vh; border: 0; background: #fff; }
.gh-ov-scroll { overflow: auto; flex: 1; display: flex; align-items: center; justify-content: center; padding: 10px; }
.gh-ov-img { max-width: 100%; max-height: 62vh; border-radius: 8px; }
.gh-ov-vid { width: 100%; max-height: 62vh; background: #000; }
.gh-ov-dl { text-align: center; padding: 20px; width: 100%; }
.gh-ov-dl p { font-size: 12px; color: var(--mut, #667); margin: 8px 0 12px; }
.gh-ov-tip { font-size: 10px; color: #ffffff77; padding: 8px 12px 12px; margin: 0; text-align: center; }
.gh-wait-all { margin: 2px 0 8px; }
/* ---- v1.9.67 感办五页 ---- */
.gb-shop-hero { background: linear-gradient(135deg, #f7a23b, #e9573f); border-radius: 14px; padding: 16px 14px; color: #fff; margin-bottom: 12px; }
.gb-shop-hero b { display: block; font-size: 16px; }
.gb-shop-hero span { display: block; font-size: 11px; opacity: .9; margin-top: 4px; }
.gb-shop-hero--biz { background: linear-gradient(135deg, #e9573f, #c22b4a); }
.gb-shop-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 12px; }
.gb-shop-item { padding: 14px 10px; text-align: center; }
.gb-shop-item .gb-shop-ic { font-size: 30px; display: block; margin-bottom: 6px; }
.gb-shop-item b { display: block; font-size: 12px; line-height: 1.35; }
.gb-shop-item i { display: block; font-style: normal; color: #e9573f; font-weight: 700; margin-top: 6px; }
.gb-trip-city { display: flex; align-items: baseline; gap: 14px; justify-content: center; padding: 18px 12px; margin: 12px 0; flex-wrap: wrap; }
.gb-trip-city b { font-size: 24px; }
.gb-trip-city span { color: var(--mut, #667); }
.gb-trip-city i { width: 100%; text-align: center; font-style: normal; font-size: 11px; color: var(--mut, #667); }
.gb-easy-hero { background: linear-gradient(135deg, #7b2ff7, #c22b8a); border-radius: 14px; padding: 16px 14px; color: #fff; margin-bottom: 12px; }
.gb-easy-hero b { display: block; font-size: 15px; }
.gb-easy-hero span { display: block; font-size: 11px; opacity: .9; margin-top: 4px; }
.gb-easy-row { display: flex; gap: 8px; align-items: flex-start; padding: 8px 0; border-top: 1px solid #f0f0f4; font-size: 12px; line-height: 1.45; }
.gb-easy-row:first-of-type { border-top: 0; }
.gb-easy-row i { color: #7b2ff7; font-style: normal; font-size: 10px; margin-top: 3px; }

/* ================= v1.9.69 经营总控台 · 沉浸橙（设计稿定稿） ================= */
.gd-hero{background:linear-gradient(160deg,#FF8A1E 0%,#FF6A00 62%,#F25C00 100%);color:#fff;border-radius:18px;padding:16px 14px 10px;position:relative;overflow:hidden;margin-bottom:12px;box-shadow:0 8px 20px rgba(255,106,0,.22)}
.gd-hero::after{content:"";position:absolute;right:-44px;top:-64px;width:190px;height:190px;border-radius:50%;background:rgba(255,255,255,.10)}
.gd-brand{display:flex;align-items:center;gap:9px;position:relative;z-index:1}
.gd-logo{width:30px;height:30px;border-radius:9px;background:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;color:#FF6A00;flex:none;font-size:14px}
.gd-bt{flex:1;min-width:0}
.gd-bt b{display:block;font-size:13px;letter-spacing:.3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gd-bt span{display:block;font-size:10px;opacity:.88;letter-spacing:1.5px;margin-top:1px}
.gd-chip{display:flex;align-items:center;gap:5px;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.35);border-radius:999px;padding:4px 10px;font-size:10.5px;white-space:nowrap;flex:none}
.gd-chip i{width:6px;height:6px;border-radius:50%;background:#B6FFD9;display:inline-block}
.gd-tabs{display:flex;margin-top:8px;position:relative;z-index:1}
.gd-tab{flex:1;text-align:center;font-size:13px;color:rgba(255,255,255,.85);padding:8px 0 6px;border:0;background:none;cursor:pointer;position:relative;font-weight:500;-webkit-appearance:none}
.gd-tab.on{color:#fff;font-weight:700}
.gd-tab.on::after{content:"";position:absolute;left:50%;transform:translateX(-50%);bottom:1px;width:20px;height:3px;border-radius:3px;background:#fff}
.gd-kpis{background:#fff;border-radius:16px;padding:14px 12px 10px;margin-bottom:12px;box-shadow:0 6px 18px rgba(150,84,20,.10)}
.gd-krow{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px}
.gd-kt{font-size:14.5px;font-weight:700}
.gd-more{font-size:10.5px;color:#97897C}
.gd-kgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
@media (max-width:379px){.gd-kgrid{grid-template-columns:repeat(2,1fr)}}
.gd-kpi .n{font-size:19px;font-weight:800;color:#241C15}
.gd-kpi .n small{font-size:10.5px;font-weight:600;color:#97897C;margin-left:1px}
.gd-kpi .l{font-size:10.5px;color:#97897C;margin-top:2px}
.gd-spark{margin-top:6px;height:20px;display:flex;align-items:flex-end;gap:2.5px}
.gd-spark i{flex:1;border-radius:2px;background:linear-gradient(180deg,#FFB27A,#FF6A00);opacity:.9;min-height:12%}
.gd-spark--dash i{background:repeating-linear-gradient(90deg,#E4D9CC 0 6px,transparent 6px 10px)}
.gd-d{font-size:10px;font-weight:700;display:inline-block;margin-top:3px}
.gd-d--up{color:#0FA968}.gd-d--dn{color:#E5484D}.gd-d--flat{color:#97897C}
.gd-tip{background:linear-gradient(120deg,#FFF4E8,#FFEFD9);border:1px solid #FFDDBA;border-radius:16px;padding:12px 12px;display:flex;align-items:center;gap:10px;margin-bottom:12px}
.gd-ic{width:34px;height:34px;border-radius:11px;background:linear-gradient(150deg,#FF9214,#FF6A00);display:flex;align-items:center;justify-content:center;flex:none;font-size:16px;box-shadow:0 4px 10px rgba(255,106,0,.3)}
.gd-tx{display:flex;flex-direction:column;min-width:0;gap:2px;flex:1}
.gd-tx b{font-size:13px;font-weight:700}
.gd-tx span{font-size:10.5px;color:#A9763F}
.gd-go{background:#fff;border:1px solid #FFC894;color:#C2570A;font-size:11px;font-weight:600;border-radius:999px;padding:7px 11px;white-space:nowrap;cursor:pointer;flex:none}
.gd-mod{background:#fff;border-radius:16px;padding:14px 12px 8px;margin-bottom:12px;box-shadow:0 3px 12px rgba(84,60,34,.06)}
.gd-hd{display:flex;align-items:center;gap:7px;margin-bottom:11px}
.gd-dot{width:24px;height:24px;border-radius:8px;display:flex;align-items:center;justify-content:center;background:#FFF1E5;font-size:13px;flex:none}
.gd-hd .gd-t{font-size:14px;font-weight:700}
.gd-demo{margin-left:auto;font-size:9.5px;font-weight:700;color:#C2570A;background:#FFF1E5;border-radius:6px;padding:2px 7px}
.gd-duo{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.gd-cell{background:#FBF8F4;border:1px solid #F0E9E1;border-radius:13px;padding:10px 11px 8px}
.gd-cell .gd-l{font-size:10.5px;color:#97897C}
.gd-cell .gd-v{font-size:19px;font-weight:800;margin-top:3px;color:#241C15}
.gd-cell .gd-v small{font-size:10.5px;font-weight:600;color:#97897C}
.gd-cell .gd-v .gd-demo{margin-left:6px}
.gd-cell .gd-cmp{font-size:10px;color:#B8AC9F;margin-top:1px}
.gd-cell .gd-spark{height:15px;margin-top:6px}
.gd-src{font-size:10px;color:#B8AC9F;padding:9px 2px 4px}
.gd-rank{display:flex;flex-direction:column;gap:7px}
.gd-rank .gd-r{display:flex;align-items:center;gap:9px;background:#FBF8F4;border:1px solid #F0E9E1;border-radius:11px;padding:8px 11px}
.gd-rank .gd-no{width:20px;height:20px;border-radius:6px;background:#FFF1E5;color:#C2570A;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;flex:none}
.gd-rank .gd-no--gold{background:linear-gradient(150deg,#FF9214,#FF6A00);color:#fff}
.gd-rank .gd-nm{font-size:12px;font-weight:600;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gd-rank .gd-val{font-size:12px;font-weight:800;flex:none}
.gd-rank .gd-st{font-size:10px;font-weight:700;flex:none;color:#0FA968}
.gd-foot{font-size:10px;color:#B8AC9F;text-align:center;padding:6px 0 2px}
.gd-cta{width:100%;border:0;background:linear-gradient(95deg,#FF8A1E,#FF6A00);color:#fff;font-size:15px;font-weight:700;border-radius:999px;padding:13px 0;text-align:center;letter-spacing:2px;box-shadow:0 8px 18px rgba(255,106,0,.3);cursor:pointer;margin:2px 0 10px}
.gd-seg{display:flex;gap:22px;padding:2px 4px 0;justify-content:center}
.gd-seg-b{border:0;background:none;font-size:14.5px;color:#97897C;font-weight:600;padding:6px 2px 9px;position:relative;cursor:pointer}
.gd-seg-b.on{color:#241C15;font-weight:800}
.gd-seg-b.on::after{content:"";position:absolute;left:50%;transform:translateX(-50%);bottom:3px;width:24px;height:4px;border-radius:3px;background:#FF6A00}
.gd-prog{height:5px;border-radius:4px;background:#F1E8DE;overflow:hidden;margin:8px 4px 0}
.gd-prog i{display:block;height:100%;border-radius:4px;background:linear-gradient(90deg,#FF9214,#FF6A00)}
.gd-prog-t{font-size:10.5px;color:#97897C;padding:5px 6px 0;display:flex;justify-content:space-between}
.gd-sug{background:#fff;border-radius:15px;padding:11px 12px;display:flex;align-items:center;gap:11px;box-shadow:0 3px 10px rgba(84,60,34,.05);margin-bottom:9px}
.gd-sic{width:36px;height:36px;border-radius:11px;background:#FFF1E5;display:flex;align-items:center;justify-content:center;font-size:16px;flex:none}
.gd-stx{flex:1;min-width:0}
.gd-stx b{display:block;font-size:13px;font-weight:700}
.gd-stx span{display:block;font-size:10.5px;color:#97897C;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gd-act{flex:none;font-size:11px;font-weight:700;color:#fff;background:linear-gradient(95deg,#FF9214,#FF6A00);border:0;border-radius:999px;padding:7px 13px;cursor:pointer}
.gd-act--done{color:#0FA968;background:#E6F7EF;border-radius:999px;padding:6px 11px;font-size:11px;font-weight:700}
/* ===== v1.9.70 智造管理 mf- ===== */
.mf-hero{background:linear-gradient(135deg,#E8590C 0%,#FF8A1E 60%,#FFA94D 100%)}
.mf-badge{display:inline-block;vertical-align:2px;margin-left:6px;padding:1px 7px;border-radius:999px;background:#FFF3E6;color:#C2410C;font-size:10px;font-weight:700}
.mf-sq{display:flex;gap:8px;margin-top:8px}
.mf-sq-i{flex:1;background:#FFF7EF;border:1px solid #FFE3C7;border-radius:12px;padding:10px 4px;text-align:center}
.mf-sq-i b{display:block;font-size:17px;color:#E8590C}
.mf-sq-i span{font-size:11px;color:#9A6B47}
.mf-sq-i.warn b{color:#D9480F;background:none}
.mf-sec{background:#fff;border-radius:16px;padding:13px 14px;margin:10px 0;box-shadow:0 1px 6px rgba(150,80,20,.06)}
.mf-sec-t{font-size:13px;font-weight:800;color:#5C3A1E;margin-bottom:9px}
.mf-line{display:flex;align-items:center;gap:9px;padding:9px 0;border-bottom:1px dashed #F3E3D3}
.mf-line:last-child{border-bottom:none}
.mf-dot{width:9px;height:9px;border-radius:50%;background:#D9D9D9;flex:none}
.mf-dot.run{background:#0FA968;box-shadow:0 0 0 3px rgba(15,169,104,.15)}
.mf-li{flex:1;min-width:0}
.mf-li b{font-size:13px;color:#3D2B1A}
.mf-li span{display:block;font-size:11px;color:#9A6B47;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mf-lo{text-align:right;flex:none}
.mf-lo span{display:block;font-size:11px;color:#7C5A3A}
.mf-lo i{font-style:normal;font-size:10px;color:#0FA968;font-weight:700}
.mf-and-btns{display:flex;gap:8px;margin-bottom:9px}
.mf-and-btn{flex:1;border:none;border-radius:11px;padding:10px 0;font-size:12px;font-weight:800;color:#fff;background:linear-gradient(135deg,#FF8A1E,#F76707)}
.mf-and-btn:active{opacity:.85}
.mf-and-i{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px dashed #F3E3D3;font-size:12px}
.mf-and-i b{color:#3D2B1A;flex:1}
.mf-and-i span{color:#9A6B47;font-size:11px}
.mf-cls{border:none;border-radius:999px;padding:5px 12px;font-size:11px;font-weight:700;color:#fff;background:#0FA968}
.mf-done{color:#0FA968;font-style:normal;font-weight:800}
.mf-wo{padding:10px 0;border-bottom:1px dashed #F3E3D3}
.mf-wo:last-child{border-bottom:none}
.mf-wo-r{display:flex;align-items:center;gap:8px}
.mf-wo-r b{font-size:13px;color:#3D2B1A}
.mf-wo-r span{flex:1;font-size:12px;color:#7C5A3A;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mf-st{font-style:normal;font-size:10px;font-weight:800;border-radius:999px;padding:2px 8px}
.mf-st.run{color:#0FA968;background:#E6F7EF}
.mf-st.wait{color:#C2410C;background:#FFF3E6}
.mf-st.done{color:#888;background:#F2F2F2}
.mf-bar{height:7px;border-radius:99px;background:#F3E9DD;margin:8px 0 4px;overflow:hidden}
.mf-bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#FF922B,#F76707)}
.mf-bar.big{height:10px}
.mf-wo-n{font-size:11px;color:#9A6B47}
.mf-steps{display:flex;flex-direction:column}
.mf-step{display:flex;gap:10px;padding:7px 0}
.mf-step.sm{padding:4px 0}
.mf-no{flex:none;width:20px;height:20px;border-radius:50%;background:#FFE8D1;color:#C2410C;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;margin-top:2px}
.mf-stc b{font-size:12.5px;color:#3D2B1A}
.mf-stc span{display:block;font-size:11.5px;color:#7C5A3A;margin-top:2px}
.mf-stc em{display:block;font-style:normal;font-size:10.5px;color:#B08050;margin-top:1px}
.mf-tag{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:999px;background:#FFE8D1;color:#C2410C;font-size:10px;font-weight:700;font-style:normal}
.mf-tag.ctq{background:#FFE3E3;color:#C92A2A}
.mf-gates{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.mf-gate{padding:4px 10px;border-radius:999px;background:#F3E9DD;color:#9A6B47;font-size:11px;font-weight:700}
.mf-gate.past{background:#E6F7EF;color:#0B7A4B}
.mf-arr{color:#D0A87F;font-style:normal;font-size:11px}
.mf-fts{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.mf-ft{border-radius:11px;padding:8px 11px;font-size:11.5px;text-align:center;border:1px solid transparent}
.mf-ft b{display:block;font-size:12px}
.mf-ft span{font-size:10px;font-weight:700}
.mf-ft.ok{background:#E6F7EF;color:#0B7A4B;border-color:#C6EEDD}
.mf-ft.due{background:#FFF3E6;color:#C2410C;border-color:#FFD8A8}
.mf-ft.pend{background:#F2F2F2;color:#777;border-color:#E4E4E4}
.mf-insp{display:flex;align-items:center;justify-content:space-between;padding:9px 2px;border-bottom:1px dashed #F3E3D3;font-size:12.5px}
.mf-insp:last-child{border-bottom:none}
.mf-insp b{color:#3D2B1A}
.mf-insp span{color:#9A6B47;font-size:11.5px}
.mf-d8{padding:9px 2px;border-bottom:1px dashed #F3E3D3;font-size:12.5px}
.mf-d8:last-child{border-bottom:none}
.mf-d8 b{color:#3D2B1A;margin-right:6px}
.mf-d8 span{color:#7C5A3A;font-size:11.5px;display:block;margin:2px 0}
.mf-okchip{font-style:normal;font-size:10px;font-weight:700;color:#0FA968;background:#E6F7EF;border-radius:999px;padding:2px 8px}
.mf-cpks{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.mf-cpk{border-radius:11px;padding:9px 11px;text-align:center}
.mf-cpk b{display:block;font-size:11.5px;color:#7C5A3A;font-weight:600}
.mf-cpk span{font-size:16px;font-weight:800}
.mf-cpk.hi{background:#E6F7EF;color:#0B7A4B}
.mf-cpk.mid{background:#E7F5FF;color:#1971C2}
.mf-cpk.low{background:#FFF3E6;color:#C2410C}
.mf-sup{padding:10px 0;border-bottom:1px dashed #F3E3D3}
.mf-sup:last-child{border-bottom:none}
.mf-sup-r{display:flex;align-items:center;gap:8px}
.mf-sup-r b{font-size:13px;color:#3D2B1A;flex:1}
.mf-gr{font-style:normal;font-size:10px;font-weight:800;border-radius:999px;padding:2px 9px}
.mf-gr.a{color:#0FA968;background:#E6F7EF}
.mf-gr.b{color:#C2410C;background:#FFF3E6}
.mf-sup-n{font-size:11.5px;color:#9A6B47;margin-top:3px}
.mf-risk{font-size:12px;color:#8A4B15;background:#FFF7EF;border:1px solid #FFE3C7;border-radius:11px;padding:9px 11px;margin-bottom:7px}
.mf-bidhero{background:linear-gradient(135deg,#E8590C,#FF922B);border-radius:18px;padding:18px 16px;color:#fff;margin:12px 0}
.mf-bidhero b{font-size:16px;display:block}
.mf-bidhero span{font-size:11.5px;opacity:.92}
.mf-pct{margin-top:10px}
.mf-pct span{font-size:12px;font-weight:800}
.mf-pct .mf-bar{background:rgba(255,255,255,.3);margin-top:5px}
.mf-pct .mf-bar i{background:#fff}
.mf-export{margin-top:12px;width:100%;border:none;border-radius:12px;padding:11px 0;font-size:13px;font-weight:800;color:#E8590C;background:#fff}
.mf-doc{background:#fff;border-radius:14px;padding:11px 13px;margin-bottom:8px;box-shadow:0 1px 5px rgba(150,80,20,.06)}
.mf-doc.warn{border:1px solid #FFD8A8}
.mf-doc-t{display:flex;align-items:center;gap:8px}
.mf-doc-t b{flex:1;font-size:13px;color:#3D2B1A}
.mf-doc-t i{font-style:normal;font-size:10px;font-weight:800;border-radius:999px;padding:2px 9px}
.mf-doc-t i.ok{color:#0FA968;background:#E6F7EF}
.mf-doc-t i.warn{color:#C2410C;background:#FFF3E6}
.mf-doc span{display:block;font-size:11.5px;color:#7C5A3A;margin-top:4px}
.mf-doc em{display:block;font-style:normal;font-size:10.5px;color:#B08050;margin-top:3px}
/* ===== v1.9.73 感视并入乐园九宫格为标准方格（撤长条宽瓦片）；图标色保留 ===== */
.ws-ic--vid{background:linear-gradient(135deg,#06b6d4,#0284c7)}
/* ===== v1.9.72 应用内悬浮翻译球（Web 版） ===== */
#vBallFab{position:fixed;right:14px;bottom:96px;width:54px;height:54px;border-radius:50%;z-index:200;
  background:linear-gradient(135deg,#2f7ef7,#1a5fd8);color:#fff;display:flex;align-items:center;justify-content:center;
  box-shadow:0 4px 14px rgba(26,95,216,.38),0 1px 3px rgba(16,32,64,.2);cursor:pointer;touch-action:none;
  transition:transform .16s ease,box-shadow .16s ease;user-select:none;-webkit-user-select:none}
#vBallFab:active{transform:scale(.94)}
#vBallFab .vball-tx{font-size:19px;font-weight:800;letter-spacing:1px;pointer-events:none}
#vBallFab.vball--rec{background:linear-gradient(135deg,#f43f5e,#be123c);box-shadow:0 0 0 8px rgba(244,63,94,.18),0 4px 14px rgba(190,18,60,.4)}
#vBallFab.vball--rec .vball-tx{animation:vbpulse 1s ease-in-out infinite}
#vBallFab.vball--busy{background:linear-gradient(135deg,#f59e0b,#d97706)}
@keyframes vbpulse{0%,100%{opacity:1}50%{opacity:.45}}
#vBallCard{position:fixed;left:12px;right:12px;bottom:160px;z-index:200;max-width:420px;margin:0 auto;
  background:var(--surface,#fff);border:1px solid var(--outline,rgba(16,32,64,.1));border-radius:16px;
  box-shadow:0 10px 30px rgba(16,32,64,.18);padding:12px 14px;font-size:13px;color:var(--on-surface,#1c2430)}
#vBallCard .vball-c__row{display:flex;gap:8px;align-items:flex-start;padding:5px 0}
#vBallCard .vball-c__row + .vball-c__row{border-top:1px dashed var(--outline,rgba(16,32,64,.1))}
#vBallCard .vball-c__lb{flex:none;font-size:10px;font-weight:700;color:var(--on-surface-v,#6b7684);
  background:rgba(47,126,247,.1);border-radius:6px;padding:2px 7px;margin-top:2px}
#vBallCard .vball-c__row p{flex:1;min-width:0;margin:0;line-height:1.5;word-break:break-word}
#vBallCard .vball-c__dst{font-weight:600}
#vBallCard .vball-c__act{display:flex;gap:6px;margin-top:9px;flex-wrap:wrap}
#vBallCard .vball-c__act button{flex:1;min-width:64px;border:1px solid var(--outline,rgba(16,32,64,.12));
  background:rgba(47,126,247,.06);color:var(--on-surface,#1c2430);border-radius:9px;padding:7px 4px;font-size:12px;cursor:pointer}
#vBallCard .vball-c__act button:active{background:rgba(47,126,247,.16)}
[data-dark] #vBallCard{background:#232a35;border-color:rgba(255,255,255,.08);color:#e8ecf2}
[data-dark] #vBallCard .vball-c__act button{background:rgba(255,255,255,.06);color:#e8ecf2;border-color:rgba(255,255,255,.12)}

/* v1.9.87 感动助手笑脸 LOGO 头像：img 形态撑满圆形徽标 */
.cmp-av--img { overflow: hidden; background: #fff; }
.cmp-av--img img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* v2.0.1 在线状态纯图标（总裁指令：只要图标不要文字；hover/读屏留 title） */
.st-ic{display:inline-flex;width:20px;height:20px;border-radius:50%;align-items:center;justify-content:center;font-size:11px;font-weight:700;line-height:1;vertical-align:middle;flex-shrink:0;box-sizing:border-box}
.st-ic--online{background:#22C55E}
.st-ic--offline{border:2px solid #CBD5E1;background:transparent}
.st-ic--invisible{border:2px dashed #9AA3AF;background:transparent}
.st-ic--away{background:#F59E0B}
.st-ic--away::after{content:'☾';color:#fff;font-size:10px}
.st-ic--dnd{background:#EF4444}
.st-ic--dnd::after{content:'';width:9px;height:2px;border-radius:1px;background:#fff}
.st-ic--busy{background:#F97316}
.st-ic--busy::after{content:'=';color:#fff;font-size:11px;letter-spacing:-1px}
.st-ic--auto{background:linear-gradient(135deg,#14B8A6,#8B5CF6)}
.st-ic--auto::after{content:'✦';color:#fff;font-size:10px}
.st-ic--wkOn{background:#22C55E}
.st-ic--wkOn::after{content:'✓';color:#fff;font-size:11px}
.st-ic--wkMeeting{background:#3B82F6}
.st-ic--wkMeeting::after{content:'▣';color:#fff;font-size:10px}
.st-ic--wkTrip{background:#0EA5E9}
.st-ic--wkTrip::after{content:'◉';color:#fff;font-size:10px}
.st-ic--wkLeave{background:#10B981}
.st-ic--wkLeave::after{content:'☾';color:#fff;font-size:10px}
.st-ic--live{background:transparent;position:relative}
.st-ic--live::after{content:'';width:10px;height:10px;border-radius:50%;background:#EF4444;animation:stLive 1.6s ease-out infinite}
@keyframes stLive{0%{box-shadow:0 0 0 0 rgba(239,68,68,.55)}70%{box-shadow:0 0 0 8px rgba(239,68,68,0)}100%{box-shadow:0 0 0 0 rgba(239,68,68,0)}}

/* v2.0.3 状态选择器纯图标化：大图标按钮网格，选中描边高亮 */
.st-chips--ic{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}
.st-chip--ic{display:flex;align-items:center;justify-content:center;padding:10px 0;border-radius:12px;border:1.5px solid #E5E7EB;background:#FAFBFC;cursor:pointer}
.st-chip--ic .st-ic{width:26px;height:26px;font-size:14px}
.st-chip--ic.is-on{border-color:#F97316;background:#FFF7ED;box-shadow:0 0 0 2px rgba(249,115,22,.18)}

/* v2.0.4 头像取景修正（总裁指令）：圆角方头像证件照头部被裁 → 取景整体偏上，头部完整显示 */
.cmp-me-av, .mem-av { object-position: 50% 10%; }

/* v2.0.4 感播对接底栏（总裁指令）：家园/乐园感播入口包裹层加感播同款底部菜单（首页/感译/开播/感说/我的），样式对齐 live.html tabbar */
.gb-tabbar{flex:0 0 auto;display:flex;justify-content:space-around;background:rgba(11,12,16,.92);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid rgba(255,255,255,.07);padding:7px 6px calc(8px + env(safe-area-inset-bottom))}
.gb-tabbar a{display:flex;flex-direction:column;align-items:center;gap:2px;color:#8A8F99;font-size:10px;cursor:pointer;text-decoration:none;min-width:52px;transition:color .18s,transform .18s}
.gb-tabbar a:active{transform:scale(.94)}
.gb-tabbar a i{font-style:normal;font-size:21px;line-height:1;transition:transform .18s}
.gb-tabbar a.on{color:#fff}
.gb-tabbar a.on i{filter:drop-shadow(0 0 7px rgba(255,146,20,.85));transform:translateY(-1px)}
.gb-tabbar .gb-tabPub i img{width:34px;height:34px;object-fit:cover;border-radius:9px;display:block}
.gb-tabbar .gb-tabPub{color:#fff;font-weight:700;position:relative}
.gb-tabbar .gb-tabPub::before{content:'';position:absolute;top:-12px;left:50%;transform:translateX(-50%);width:52px;height:52px;border-radius:50%;background:radial-gradient(circle,rgba(255,146,20,.35),transparent 68%);pointer-events:none;animation:gbPubPulse 2.6s ease-in-out infinite}
@keyframes gbPubPulse{0%,100%{opacity:.55}50%{opacity:1}}

/* ===== v2.0.0 声音克隆四步流程 UI（录制→试听→提交→音色） ===== */
.g-steps{display:flex;align-items:center;gap:5px;padding:2px 2px 12px}
.g-step{display:flex;align-items:center;gap:5px;opacity:.42;transition:opacity .2s}
.g-step.on{opacity:1}
.g-step.done{opacity:.9}
.g-step__n{width:21px;height:21px;border-radius:50%;background:#E3E4E8;color:#5A6069;font-size:11.5px;font-weight:700;display:flex;align-items:center;justify-content:center;flex:none}
.g-step.on .g-step__n{background:linear-gradient(180deg,#FF6B40,#F24059);color:#fff;box-shadow:0 3px 10px rgba(242,64,89,.32)}
.g-step.done .g-step__n{background:#18A05E;color:#fff}
.g-step__t{font-size:12px;font-weight:600;color:#3A3F47;white-space:nowrap}
.g-step__ln{flex:1;height:2px;background:#E3E4E8;border-radius:2px;min-width:8px}
.g-step__ln.done{background:#18A05E}
.g-card{background:#fff;border-radius:18px;padding:15px 14px;margin-bottom:11px;border:1.5px solid transparent;transition:border-color .2s,box-shadow .2s}
.g-card.on{border-color:#FFB39B;box-shadow:0 6px 18px rgba(242,64,89,.10)}
.g-card.ok{border-color:#CDEBDC}
.g-card__h{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}
.g-card__h b{font-size:14.5px;color:#22262C;font-weight:700}
.g-ok{font-size:12px;color:#18A05E;font-weight:600}
.g-samp{background:#F2F3F6;border-radius:13px;padding:14px;font-size:15px;line-height:1.8;color:#22262C}
.g-row2{display:flex;gap:9px;margin-top:10px}
.g-btn2{flex:1;border:1px solid #E3E4E8;background:#fff;border-radius:12px;padding:10px 0;font-size:13.5px;color:#3A3F47;font-family:inherit;cursor:pointer}
.g-btn2:active{background:#F5F6F8}
/* v2.0.2 冲突根治（总裁令 0928）：四步流程录音按钮改名 .g-recb —— 原 .g-rec 与首页
   「录音状态条」#trRecBar 的 .g-rec（默认 display:none）同名，导致状态条常驻显示 */
.g-recb{margin-top:11px;width:100%;border:none;border-radius:15px;padding:15px 0;font-size:15px;font-weight:600;font-family:inherit;cursor:pointer;background:#EEF1F5;color:#3A3F47;display:flex;align-items:center;justify-content:center;gap:8px;transition:background .2s}
.g-recb.on{background:linear-gradient(180deg,#FF6B40,#F24059);color:#fff}
.g-recb__dot{width:9px;height:9px;border-radius:50%;background:#E8442E;flex:none}
.g-recb.on .g-recb__dot{background:#fff;animation:gRp 1s infinite}
.g-next{margin-top:11px;width:100%;border:none;border-radius:15px;padding:14px 0;font-size:15px;font-weight:600;font-family:inherit;cursor:pointer;background:linear-gradient(180deg,#FF6B40,#F24059);color:#fff;box-shadow:0 4px 14px rgba(242,64,89,.28)}
.g-done{background:#E9F8F0;color:#12805A;border-radius:12px;padding:10px 12px;font-size:13px;font-weight:600;margin-bottom:9px}
.g-note2{font-size:12.5px;color:#7A8089;line-height:1.7;margin-top:9px}
.g-dis{opacity:.5}
.g-vname2{flex:1;text-align:left;border:0;background:none;font-family:inherit;font-size:14.5px;color:#22262C;cursor:pointer;padding:2px 0;line-height:1.5}
.g-vname2:active{color:#F24059}

/* ================= v2.5.2 电子名片五风格（正式商务 · 高端） ================= */
.vcSty-row { display:flex; flex-wrap:wrap; gap:8px; }
.vcSty-chip { display:flex; align-items:center; gap:7px; padding:8px 12px; border-radius:18px;
  border:1.5px solid #e2e6ee; background:#fff; font-size:12.5px; font-weight:600; color:#2a3345; cursor:pointer; }
.vcSty-chip.on { border-color:#1d4ed8; background:#eef3ff; color:#1d4ed8; }
.vcSty-sw { width:18px; height:18px; border-radius:50%; box-shadow:inset 0 0 0 1px rgba(0,0,0,.12); flex:0 0 auto; }

/* —— 曜金 Obsidian Gold —— */
.bcard.bcst-gold { background:linear-gradient(150deg,#1a1c24 0%,#101218 55%,#201c12 100%);
  color:#f0e6c8; border:1px solid rgba(212,175,55,.5); box-shadow:0 12px 32px rgba(0,0,0,.4); }
.bcst-gold .bcard-co-tx b, .bcst-gold .bcard-me-tx b, .bcst-gold .bcard-rtx b { color:#f5ecd7; }
.bcst-gold .bcard-co-tx i, .bcst-gold .bcard-me-tx i, .bcst-gold .bcard-rtx i { color:rgba(240,230,200,.6); }
.bcst-gold .bcard-av { background:linear-gradient(135deg,#d4af37,#8a6d1f); color:#17150c; }
.bcst-gold .bcard-row { border-color:rgba(212,175,55,.22); }
.bcst-gold .bcard-badges em { background:rgba(212,175,55,.14); color:#e6cf8a; border:1px solid rgba(212,175,55,.35); }
.bcst-gold .bcard-qr { background:rgba(255,255,255,.05); }
.bcst-gold .bcard-qr-tx b { color:#f0e6c8; } .bcst-gold .bcard-qr-tx i { color:rgba(240,230,200,.55); }

/* —— 藏蓝 Navy Formal —— */
.bcard.bcst-navy { background:linear-gradient(150deg,#101f3e 0%,#0c1730 55%,#1a315e 100%);
  color:#eaf0fb; border:1px solid rgba(157,184,232,.4); box-shadow:0 12px 32px rgba(8,16,38,.4); }
.bcst-navy .bcard-co-tx b, .bcst-navy .bcard-me-tx b, .bcst-navy .bcard-rtx b { color:#f2f6fd; }
.bcst-navy .bcard-co-tx i, .bcst-navy .bcard-me-tx i, .bcst-navy .bcard-rtx i { color:rgba(202,218,244,.62); }
.bcst-navy .bcard-av { background:linear-gradient(135deg,#9db8e8,#3e5f9e); color:#0c1730; }
.bcst-navy .bcard-row { border-color:rgba(157,184,232,.22); }
.bcst-navy .bcard-badges em { background:rgba(157,184,232,.14); color:#c3d4ef; border:1px solid rgba(157,184,232,.35); }
.bcst-navy .bcard-qr { background:rgba(255,255,255,.06); }
.bcst-navy .bcard-qr-tx b { color:#eaf0fb; } .bcst-navy .bcard-qr-tx i { color:rgba(202,218,244,.55); }

/* —— 墨玉 Jade Noir —— */
.bcard.bcst-jade { background:linear-gradient(150deg,#0d1813 0%,#0a120e 55%,#14291f 100%);
  color:#dff2ea; border:1px solid rgba(55,181,140,.4); box-shadow:0 12px 32px rgba(4,14,10,.4); }
.bcst-jade .bcard-co-tx b, .bcst-jade .bcard-me-tx b, .bcst-jade .bcard-rtx b { color:#e9f7f1; }
.bcst-jade .bcard-co-tx i, .bcst-jade .bcard-me-tx i, .bcst-jade .bcard-rtx i { color:rgba(190,228,211,.6); }
.bcst-jade .bcard-av { background:linear-gradient(135deg,#37b58c,#14654c); color:#08120d; }
.bcst-jade .bcard-row { border-color:rgba(55,181,140,.22); }
.bcst-jade .bcard-badges em { background:rgba(55,181,140,.13); color:#8fd9bd; border:1px solid rgba(55,181,140,.35); }
.bcst-jade .bcard-qr { background:rgba(255,255,255,.05); }
.bcst-jade .bcard-qr-tx b { color:#dff2ea; } .bcst-jade .bcard-qr-tx i { color:rgba(190,228,211,.55); }

/* —— 象牙 Ivory Minimal —— */
.bcard.bcst-ivory { background:linear-gradient(150deg,#faf7f0 0%,#f3ede0 100%);
  color:#2a2620; border:1px solid #d8cbae; box-shadow:0 10px 26px rgba(120,100,60,.18); }
.bcst-ivory .bcard-co-tx b, .bcst-ivory .bcard-me-tx b, .bcst-ivory .bcard-rtx b { color:#26221c; }
.bcst-ivory .bcard-co-tx i, .bcst-ivory .bcard-me-tx i, .bcst-ivory .bcard-rtx i { color:rgba(90,80,60,.66); }
.bcst-ivory .bcard-av { background:linear-gradient(135deg,#c9b68a,#8a6d3b); color:#fff; }
.bcst-ivory .bcard-row { border-color:#e4dbc6; }
.bcst-ivory .bcard-badges em { background:rgba(138,109,59,.12); color:#7a5f2e; border:1px solid rgba(138,109,59,.32); }
.bcst-ivory .bcard-qr { background:#fff; }

/* —— 绛红 Burgundy —— */
.bcard.bcst-wine { background:linear-gradient(150deg,#40101d 0%,#2c0a14 55%,#5e1a2b 100%);
  color:#f7e9ec; border:1px solid rgba(217,160,170,.4); box-shadow:0 12px 32px rgba(30,6,12,.4); }
.bcst-wine .bcard-co-tx b, .bcst-wine .bcard-me-tx b, .bcst-wine .bcard-rtx b { color:#faeef1; }
.bcst-wine .bcard-co-tx i, .bcst-wine .bcard-me-tx i, .bcst-wine .bcard-rtx i { color:rgba(240,205,212,.62); }
.bcst-wine .bcard-av { background:linear-gradient(135deg,#d9a0aa,#8e3548); color:#2c0a14; }
.bcst-wine .bcard-row { border-color:rgba(217,160,170,.24); }
.bcst-wine .bcard-badges em { background:rgba(217,160,170,.14); color:#eec4cc; border:1px solid rgba(217,160,170,.35); }
.bcst-wine .bcard-qr { background:rgba(255,255,255,.06); }
.bcst-wine .bcard-qr-tx b { color:#f7e9ec; } .bcst-wine .bcard-qr-tx i { color:rgba(240,205,212,.55); }

/* ---------- v2.5.4 扫一扫取景框/扫描线动效 + 子页页头右上动作图标 ---------- */
.sc-vf { position: relative; overflow: hidden; border-radius: 14px; background: #0d0f16; min-height: 220px; }
.sc-c { position: absolute; width: 26px; height: 26px; border: 3px solid #22c55e; opacity: .92; z-index: 2; }
.sc-c1 { top: 12%; left: 10%; border-right: 0; border-bottom: 0; border-radius: 8px 0 0 0; }
.sc-c2 { top: 12%; right: 10%; border-left: 0; border-bottom: 0; border-radius: 0 8px 0 0; }
.sc-c3 { bottom: 22%; left: 10%; border-right: 0; border-top: 0; border-radius: 0 0 0 8px; }
.sc-c4 { bottom: 22%; right: 10%; border-left: 0; border-top: 0; border-radius: 0 0 8px 0; }
.sc-line { position: absolute; left: 10%; right: 10%; top: 14%; height: 2.5px; border-radius: 2px; z-index: 2;
  background: linear-gradient(90deg, rgba(34,197,94,0), #22c55e 18%, #a3e635 50%, #22c55e 82%, rgba(34,197,94,0));
  box-shadow: 0 0 10px rgba(34,197,94,.75); animation: sc-sweep 1.9s ease-in-out infinite; }
@keyframes sc-sweep { 0%, 100% { top: 14%; } 50% { top: 66%; } }
.sc-st { position: absolute; left: 0; right: 0; bottom: 7%; text-align: center; color: #e8eef7;
  font-size: 12.5px; font-weight: 600; text-shadow: 0 1px 4px rgba(0, 0, 0, .65); z-index: 2; }
.sub-act { margin-left: auto; display: inline-flex; align-items: center; justify-content: center;
  width: 34px; height: 34px; border: 0; border-radius: 10px; background: transparent; color: inherit;
  cursor: pointer; padding: 0; }
.sub-act svg { width: 21px; height: 21px; }
.sub-act:active { background: rgba(127, 127, 127, .18); }

/* ---------- v2.5.4 付款码/收款码双 Tab ---------- */
.pay-tabs { display: flex; gap: 6px; background: rgba(127, 127, 127, .12); border-radius: 12px; padding: 4px; margin-bottom: 12px; }
.pay-tab { flex: 1; border: 0; border-radius: 9px; padding: 9px 0; font-size: 14px; font-weight: 700;
  background: transparent; color: inherit; cursor: pointer; }
.pay-tab.is-on { background: var(--primary, #1d4ed8); color: #fff; }

/* v2.6.0 感办新六模块（感仓/感质/感才/感知/感律/感审）：内容离左右边框约 3mm（总裁 0928 视觉令） */
#gbWmsBox, #gbQmsBox, #gbHrm2Box, #gbKmsBox, #gbLawBox, #gbAudBox { padding-left: 3mm; padding-right: 3mm; }

/* v2.6.1 感办九模块统一留白与防溢出（总裁 0928 视觉令二：字离内容边框太近、有的溢出框外）
   ① 旧三模块（感客/感项/感服）盒子补齐 3mm 与新六模块一致
   ② 九模块卡片 .card 原生 padding=0 导致标题/行文贴死卡边 → 统一内留白
   ③ 卡内长文本行（动态 log / AI 提示）强制折行，杜绝水平溢出被 overflow:hidden 裁字 */
#gbCrmBox, #gbPrjBox, #gbSvcBox { padding-left: 3mm; padding-right: 3mm; }
#gbCrmBox .card, #gbPrjBox .card, #gbSvcBox .card,
#gbWmsBox .card, #gbQmsBox .card, #gbHrm2Box .card,
#gbKmsBox .card, #gbLawBox .card, #gbAudBox .card { padding: 2px 14px 12px; }
#gbCrmBox .card .gh-mute, #gbPrjBox .card .gh-mute, #gbSvcBox .card .gh-mute,
#gbWmsBox .card .gh-mute, #gbQmsBox .card .gh-mute, #gbHrm2Box .card .gh-mute,
#gbKmsBox .card .gh-mute, #gbLawBox .card .gh-mute, #gbAudBox .card .gh-mute { overflow-wrap: anywhere; word-break: break-word; }
#gbCrmBox .card .gh-row, #gbPrjBox .card .gh-row, #gbSvcBox .card .gh-row,
#gbWmsBox .card .gh-row, #gbQmsBox .card .gh-row, #gbHrm2Box .card .gh-row,
#gbKmsBox .card .gh-row, #gbLawBox .card .gh-row, #gbAudBox .card .gh-row { flex-wrap: wrap; }

/* ================= v2.6.5 智协页设计升级（总裁令：大气美观方便操作） ================= */
.zx-hero{display:flex;align-items:center;gap:12px;margin:2px 0 12px;padding:16px 16px;border-radius:16px;
  background:linear-gradient(135deg,var(--g1,#E5484D) 0%,var(--g2,#F5A623) 100%);color:#fff;
  box-shadow:0 6px 18px rgba(229,72,77,.28)}
.zx-hero-tx{flex:1;min-width:0}
.zx-hero-tx b{display:block;font-size:17px;font-weight:900;letter-spacing:.5px;text-shadow:0 1px 6px rgba(0,0,0,.18)}
.zx-hero-tx span{display:block;margin-top:3px;font-size:12px;opacity:.92}
.zx-hero-btn{flex:0 0 auto;border:0;border-radius:999px;padding:10px 18px;font:inherit;font-size:13.5px;font-weight:800;
  color:#E5484D;background:#fff;cursor:pointer;white-space:nowrap;box-shadow:0 2px 8px rgba(0,0,0,.16);transition:transform .15s ease}
.zx-hero-btn:active{transform:scale(.95)}
.zx-tiles .gban-tile{padding:12px 4px;gap:7px;border-radius:14px}
.zx-tiles .gban-tile b{white-space:nowrap;font-size:11.5px}
.zx-ic{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:12px;
  font-size:20px;font-style:normal;color:#fff;box-shadow:0 3px 8px rgba(16,32,64,.18)}
.task-acts{flex-wrap:wrap !important}
.task-acts .btn{flex:0 0 auto !important;white-space:nowrap;padding:7px 14px !important;font-size:12.5px}
[data-dark] .zx-hero{box-shadow:0 6px 18px rgba(0,0,0,.35)}
[data-dark] .zx-hero-btn{color:#B4232A}

/* ================= v2.6.6 智协下半区重设计（总裁令：太拥挤/字太靠边/显示不完整） ================= */
/* 卡片呼吸感：内边距全面放宽（只作用于智协页签审卡+任务卡，不动全局 .card） */
.zx-card { padding: 16px 16px 14px !important; border-radius: 16px; }
.zx-card .task-top { gap: 10px; }
.zx-card .task-top b { font-size: 15px; line-height: 1.45; min-width: 0; }
.zx-card .task-st { flex: none; max-width: 42%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.zx-sub { margin: 4px 0 12px !important; font-size: 12.5px; line-height: 1.65; color: var(--mut, #667); }
/* 签审卡：两按钮等宽网格，文字永不裁切 */
.zx-appr-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.zx-appr-row .btn { width: 100%; height: 44px; padding: 0 8px; white-space: nowrap; font-size: 13.5px; }
/* 任务卡：标题/详情/元信息分层留白 */
.task-row { margin-top: 12px; }
.task-row .task-det { margin-top: 8px; }
.task-row .task-meta { margin-top: 10px; row-gap: 6px; }
.task-row .task-meta > span { background: var(--surface-d, rgba(0,0,0,.05)); padding: 3px 10px; border-radius: 8px; line-height: 1.5; }
.task-row .task-meta > span.task-x { background: transparent; padding: 3px 0; color: #b45309; font-weight: 700; }
.task-row--wd .task-meta > span { opacity: .55; }
/* 操作签：定高胶囊 + 上分隔线（挤字根治收口） */
.task-row .task-acts { margin-top: 12px; padding-top: 12px; border-top: 1px dashed var(--outline, rgba(0,0,0,.1)); }
.task-row .task-acts .btn { height: 34px; padding: 0 14px !important; border-radius: 999px; font-size: 12.5px; }
/* 暗色模式：芯片与分隔线适配 */
.tr-dark .zx-card { background: var(--surface-c, #141c2b); }
.tr-dark .task-row .task-meta > span { background: rgba(255,255,255,.07); }
.tr-dark .task-row .task-acts { border-top-color: rgba(255,255,255,.1); }

/* ================= v2.6.8 扫一扫攻坚：手电筒补光按钮 ================= */
.sc-torch { position: absolute; top: 10px; right: 10px; width: 38px; height: 38px;
  border: 0; border-radius: 50%; background: rgba(0,0,0,.45); color: #fff; font-size: 17px;
  display: flex; align-items: center; justify-content: center; cursor: pointer; z-index: 5;
  transition: background .15s ease; }
.sc-torch.on { background: #F5C518; color: #3A2E00; }

/* ==================== v2.7.0 感枢 TouchHub（经营中枢） ==================== */
.hub-hero{background:linear-gradient(160deg,#2B2F6B 0%,#4B3AA7 62%,#7B3FBF 100%)!important;box-shadow:0 8px 20px rgba(75,58,167,.24)!important}
.hub-tabs{overflow-x:auto;scrollbar-width:none}
.hub-tabs::-webkit-scrollbar{display:none}
.hub-body{padding-bottom:24px}
.hub-kbar{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:6px}
.hub-kbar__i{background:var(--surface-c);border:1px solid var(--outline);border-radius:var(--md-sys-shape-s);padding:10px 6px;text-align:center}
.hub-kbar__i b{display:block;font-size:19px;font-weight:800;color:var(--on-surface)}
.hub-kbar__i span{display:block;font-size:11px;color:var(--on-surface-v);margin-top:2px}
.hub-kbar__i.bad b{color:#D32F2F}
.hub-sec-t{font-size:13px;font-weight:700;color:var(--on-surface);margin:14px 2px 8px;display:flex;align-items:center;gap:6px}
.hub-sec-t::before{content:"";width:3px;height:13px;border-radius:2px;background:var(--primary)}
.hub-alert{display:flex;align-items:center;gap:10px;background:var(--surface-c);border:1px solid var(--outline);border-left-width:4px;border-radius:var(--md-sys-shape-s);padding:10px 12px;margin-bottom:8px;cursor:pointer}
.hub-alert__d{width:8px;height:8px;border-radius:50%;background:#FF9800;flex:0 0 auto}
.hub-lv--bad .hub-alert__d,.hub-alert.hub-lv--bad .hub-alert__d{background:#D32F2F}
.hub-alert.hub-lv--bad{border-left-color:#D32F2F}
.hub-alert.hub-lv--warn{border-left-color:#FF9800}
.hub-alert.hub-lv--ok{border-left-color:#2E9E5B}
.hub-alert__tx{flex:1;min-width:0;display:flex;flex-direction:column}
.hub-alert__tx b{font-size:13.5px;color:var(--on-surface);font-weight:700}
.hub-alert__tx span{font-size:11.5px;color:var(--on-surface-v);margin-top:1px}
.hub-alert i{color:var(--outline-v);font-style:normal}
.hub-block{background:var(--surface-c);border:1px solid var(--outline);border-radius:var(--md-sys-shape-m);padding:12px;margin-bottom:10px}
.hub-block__t{display:flex;align-items:center;gap:7px;font-size:14px;font-weight:700;color:var(--on-surface);cursor:pointer}
.hub-block__t i{margin-left:auto;font-style:normal;color:var(--outline-v)}
.hub-cells{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:10px}
.hub-cell{background:var(--surface-c-2);border-radius:var(--md-sys-shape-s);padding:9px 10px;display:flex;flex-direction:column;gap:2px}
.hub-cell b{font-size:16px;font-weight:800;color:var(--on-surface)}
.hub-cell b small{font-size:10px;font-weight:600;color:var(--on-surface-v);margin-left:2px}
.hub-cell span{font-size:11.5px;color:var(--on-surface-v)}
.hub-v--ok{color:#2E9E5B!important}.hub-v--warn{color:#FF9800!important}.hub-v--bad{color:#D32F2F!important}
.hub-mtable{background:var(--surface-c);border:1px solid var(--outline);border-radius:var(--md-sys-shape-m);overflow:hidden}
.hub-mrow{display:flex;align-items:center;gap:8px;padding:9px 12px;border-bottom:1px solid var(--surface-c-2);font-size:12.5px}
.hub-mrow:last-child{border-bottom:0}
.hub-mn{flex:1;color:var(--on-surface)}
.hub-mv{color:var(--on-surface);font-weight:700}
.hub-mv small{font-size:10px;color:var(--on-surface-v);margin-left:2px;font-weight:500}
.hub-ms{color:var(--outline-v);font-size:11px;width:44px;text-align:right}
.hub-note{background:var(--primary-c);color:#7A0018;font-size:12px;line-height:1.6;border-radius:var(--md-sys-shape-s);padding:10px 12px;margin-bottom:12px}
.hub-empty-ok{background:var(--surface-c);border:1px dashed var(--outline);border-radius:var(--md-sys-shape-s);padding:14px;text-align:center;color:#2E9E5B;font-size:13px}
.hub-loading{padding:6px 0}
.hub-metrics{display:flex;flex-direction:column;gap:9px}
.hub-metric{background:var(--surface-c);border:1px solid var(--outline);border-radius:var(--md-sys-shape-m);padding:11px 13px}
.hub-metric__h{display:flex;align-items:baseline;gap:8px}
.hub-metric__h b{font-size:14px;font-weight:700;color:var(--on-surface);flex:1}
.hub-metric__v{font-size:16px;font-weight:800;color:var(--primary)}
.hub-metric__v small{font-size:10px;color:var(--on-surface-v);margin-left:2px;font-weight:500}
.hub-metric__f{font-size:11.5px;color:var(--on-surface-v);margin-top:4px;line-height:1.5}
.hub-metric__m{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:11px;color:var(--outline-v);margin-top:6px}
.hub-mini{margin-left:auto;border:1px solid var(--outline);background:var(--surface-c-2);color:var(--on-surface-v);border-radius:8px;font-size:11px;padding:3px 9px;cursor:pointer}
.hub-mform{margin-top:8px}
.hub-mf{display:flex;flex-direction:column;gap:7px;background:var(--surface-c-2);border-radius:var(--md-sys-shape-s);padding:10px}
.hub-mf label{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--on-surface-v)}
.hub-mf__in{flex:1;border:1px solid var(--outline);border-radius:8px;padding:6px 8px;font-size:12.5px;background:var(--surface-c);color:var(--on-surface)}
.hub-rules{display:flex;flex-direction:column;gap:8px}
.hub-rule{background:var(--surface-c);border:1px solid var(--outline);border-radius:var(--md-sys-shape-s);padding:10px 12px}
.hub-rule.off{opacity:.55}
.hub-rule__t{display:flex;align-items:center;gap:8px}
.hub-rule__t b{flex:1;font-size:13.5px;color:var(--on-surface)}
.hub-rule__d{font-size:11.5px;color:var(--on-surface-v);margin-top:4px;line-height:1.6}
.hub-sw{position:relative;display:inline-block;width:40px;height:22px;flex:0 0 auto}
.hub-sw input{opacity:0;width:0;height:0}
.hub-sw i{position:absolute;inset:0;background:var(--outline);border-radius:22px;transition:.2s}
.hub-sw i::after{content:"";position:absolute;left:2px;top:2px;width:18px;height:18px;border-radius:50%;background:#fff;transition:.2s}
.hub-sw input:checked + i{background:#2E9E5B}
.hub-sw input:checked + i::after{transform:translateX(18px)}
.hub-hit{background:var(--surface-c);border:1px solid var(--outline);border-left-width:4px;border-radius:var(--md-sys-shape-s);padding:9px 12px;margin-bottom:8px;display:flex;flex-direction:column;gap:3px}
.hub-hit b{font-size:13px;color:var(--on-surface)}
.hub-hit span{font-size:11.5px;color:var(--on-surface-v)}
.hub-hit.hub-lv--bad{border-left-color:#D32F2F}.hub-hit.hub-lv--warn{border-left-color:#FF9800}
.hub-lv--bad{color:#D32F2F}.hub-lv--warn{color:#FF9800}.hub-lv--ok{color:#2E9E5B}
.hub-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.hub-btn{border:1px solid var(--outline);background:var(--surface-c);color:var(--on-surface);border-radius:10px;padding:8px 14px;font-size:13px;font-weight:600;cursor:pointer}
.hub-btn--pri{background:var(--primary);border-color:var(--primary);color:#fff}
.hub-btn:disabled{opacity:.6}
.hub-tip{font-size:11.5px;color:var(--outline-v)}
.hub-ai-box{display:flex;gap:8px;margin-bottom:10px}
.hub-ai-in{flex:1;border:1px solid var(--outline);border-radius:10px;padding:10px 12px;font-size:13.5px;background:var(--surface-c);color:var(--on-surface)}
.hub-chips{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:12px}
.hub-chip{border:1px solid var(--outline);background:var(--surface-c);color:var(--on-surface-v);border-radius:16px;font-size:12px;padding:5px 11px;cursor:pointer}
.hub-ai-out{background:var(--surface-c);border:1px solid var(--outline);border-radius:var(--md-sys-shape-m);padding:13px}
.hub-ai-eng{display:inline-block;font-size:10.5px;color:#fff;background:#4B3AA7;border-radius:6px;padding:2px 8px;margin-bottom:8px}
.hub-ai-ans{font-size:13.5px;line-height:1.75;color:var(--on-surface)}
.hub-ai-acts{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}
.hub-flow{background:var(--surface-c);border:1px solid var(--outline);border-radius:var(--md-sys-shape-m);padding:12px;margin-bottom:10px}
.hub-flow__t{display:flex;align-items:center;gap:8px}
.hub-flow__t b{flex:1;font-size:14px;color:var(--on-surface)}
.hub-flow__c{font-size:11.5px;color:var(--on-surface-v);margin:5px 0 9px}
.hub-step{display:flex;align-items:center;gap:9px;padding:7px 0;border-top:1px dashed var(--surface-c-2);font-size:12.5px}
.hub-step__n{width:20px;height:20px;border-radius:50%;background:var(--primary);color:#fff;font-size:11px;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.hub-step__r{font-weight:600;color:var(--on-surface);flex:0 0 auto}
.hub-step__w{color:var(--on-surface-v);flex:1;font-size:11.5px}
.hub-step__m{color:var(--outline-v);font-size:11px}
.hub-sim{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:var(--surface-c);border:1px solid var(--outline);border-radius:var(--md-sys-shape-s);padding:10px 12px;margin-bottom:12px;font-size:12.5px;color:var(--on-surface-v)}
.hub-sim__in{width:110px;border:1px solid var(--outline);border-radius:8px;padding:6px 8px;font-size:13px;background:var(--surface-c-2);color:var(--on-surface)}
.hub-sim__out{flex:1 0 100%;font-size:12.5px;color:var(--primary);font-weight:600}
:root[data-dark="1"] .hub-note{background:#3A1A22;color:#FFC9D2}
:root[data-dark="1"] .hub-metric__v{color:#FF8098}
:root[data-dark="1"] .hub-cell{background:#26262E}
:root[data-dark="1"] .hub-mrow{border-bottom-color:#2A2A33}

/* ==================== v2.8.0 感营 TouchMarketing（企业营销） ==================== */
.mkt-hero{background:linear-gradient(160deg,#B23A0E 0%,#E3621B 58%,#F59A2E 100%)!important;box-shadow:0 8px 20px rgba(227,98,27,.24)!important}
.mkt-tabs{overflow-x:auto;scrollbar-width:none}
.mkt-tabs::-webkit-scrollbar{display:none}
.mkt-body{padding-bottom:24px}
.mkt-kbar{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:6px}
.mkt-kbar__i{background:var(--surface-c);border:1px solid var(--outline);border-radius:var(--md-sys-shape-s);padding:10px 4px;text-align:center}
.mkt-kbar__i b{display:block;font-size:19px;font-weight:800;color:var(--on-surface)}
.mkt-kbar__i span{display:block;font-size:11px;color:var(--on-surface-v);margin-top:2px}
.mkt-sec-t{font-size:13px;font-weight:700;color:var(--on-surface);margin:14px 2px 8px;display:flex;align-items:center;gap:6px}
.mkt-sec-t::before{content:"";width:3px;height:13px;border-radius:2px;background:#E3621B}
.mkt-sec-t--sm{margin:8px 0 5px;font-size:12px}
.mkt-sec-t .mkt-mini{margin-left:auto}
.mkt-note{background:#FFF3E6;color:#8A3B00;font-size:12px;line-height:1.6;border-radius:var(--md-sys-shape-s);padding:10px 12px;margin-bottom:12px}
.mkt-roi{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:6px}
.mkt-roi__i{background:var(--surface-c);border:1px solid var(--outline);border-radius:var(--md-sys-shape-s);padding:10px 4px;text-align:center}
.mkt-roi__i b{display:block;font-size:15px;font-weight:800;color:#E3621B}
.mkt-roi__i span{display:block;font-size:11px;color:var(--on-surface-v);margin-top:2px}
.mkt-chips{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:12px}
.mkt-chip{border:1px solid var(--outline);background:var(--surface-c);color:var(--on-surface-v);border-radius:16px;font-size:12px;padding:5px 11px;cursor:pointer}
.mkt-play{background:var(--surface-c);border:1px solid var(--outline);border-radius:var(--md-sys-shape-m);padding:12px;margin-bottom:10px;cursor:pointer}
.mkt-play--big{cursor:default}
.mkt-play__h{display:flex;align-items:center;gap:8px}
.mkt-play__h b{font-size:14px;color:var(--on-surface);flex:0 0 auto}
.mkt-tag{font-size:10.5px;color:#E3621B;background:#FFF0E2;border-radius:6px;padding:2px 7px}
.mkt-play__m{font-size:12px;color:var(--on-surface-v);margin-top:6px;line-height:1.6}
.mkt-play__k{font-size:11.5px;color:var(--outline-v);margin-top:6px}
.mkt-steps{display:flex;flex-direction:column;gap:5px;margin-top:8px}
.mkt-step{font-size:11.5px;color:var(--on-surface-v);background:var(--surface-c-2);border-radius:8px;padding:6px 9px}
.mkt-pstep{display:flex;align-items:flex-start;gap:8px;font-size:12.5px;color:var(--on-surface-v);padding:6px 0;border-top:1px dashed var(--surface-c-2);line-height:1.55}
.mkt-pstep__n{width:18px;height:18px;border-radius:50%;background:#E3621B;color:#fff;font-size:11px;display:flex;align-items:center;justify-content:center;flex:0 0 auto;margin-top:1px}
.mkt-case{background:var(--surface-c);border:1px solid var(--outline);border-radius:var(--md-sys-shape-m);padding:12px;margin-bottom:10px}
.mkt-case__h{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.mkt-case__h b{font-size:15px;color:var(--on-surface);font-weight:800}
.mkt-case__t{font-size:12.5px;color:var(--on-surface-v);margin-top:4px;font-weight:600}
.mkt-case__r{font-size:12px;color:var(--on-surface-v);margin-top:8px;line-height:1.6}
.mkt-case__r b{color:var(--on-surface)}
.mkt-case__l{font-size:12px;color:#8A3B00;background:#FFF6EC;border-radius:8px;padding:8px 10px;margin-top:8px;line-height:1.6}
.mkt-regtag{font-size:10px;border-radius:6px;padding:2px 7px;background:#E7F0FF;color:#1B5FC1}
.mkt-regtag.intl{background:#EDE7FF;color:#5A34C9}
.mkt-ul{margin:4px 0 0;padding-left:18px}
.mkt-ul li{font-size:12.5px;color:var(--on-surface-v);line-height:1.75}
.mkt-ul--go li{color:#1E7A46}
.mkt-ul--go li::marker{content:"→ "}
.mkt-chans{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}
.mkt-chantag{font-size:10.5px;color:var(--on-surface-v);border:1px solid var(--outline);border-radius:12px;padding:2px 9px;background:var(--surface-c-2)}
.mkt-chantag.own{color:#B23A0E;border-color:#F3C08E;background:#FFF3E6}
.mkt-ai-box{display:flex;gap:8px;margin-bottom:10px}
.mkt-in{flex:1;border:1px solid var(--outline);border-radius:10px;padding:10px 12px;font-size:13.5px;background:var(--surface-c);color:var(--on-surface);margin-bottom:8px}
.mkt-in--sm{padding:8px 9px;font-size:12.5px;margin-bottom:0}
.mkt-sel{border:1px solid var(--outline);border-radius:10px;padding:9px 10px;font-size:13px;background:var(--surface-c);color:var(--on-surface);flex:1}
.mkt-btn{border:1px solid var(--outline);background:var(--surface-c);color:var(--on-surface);border-radius:10px;padding:9px 15px;font-size:13px;font-weight:600;cursor:pointer}
.mkt-btn--pri{background:#E3621B;border-color:#E3621B;color:#fff}
.mkt-btn--sm{padding:6px 12px;font-size:12px;margin-top:10px}
.mkt-btn--full{width:100%}
.mkt-btn:disabled{opacity:.6}
.mkt-filters{margin-bottom:6px}
.mkt-frow{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px;align-items:center}
.mkt-fchip{border:1px solid var(--outline);background:var(--surface-c);color:var(--on-surface-v);border-radius:12px;font-size:12px;padding:5px 13px;cursor:pointer}
.mkt-fchip.on{background:#E3621B;border-color:#E3621B;color:#fff}
.mkt-fchip--sm{padding:4px 9px;font-size:11.5px;border-radius:10px}
.mkt-ctybox{background:var(--surface-c);border:1px solid var(--outline);border-radius:14px;padding:10px 12px;margin:-4px 0 10px}
.mkt-ctybox__h{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:2px}
.mkt-ctybox__h b{font-size:13px;color:var(--on-surface)}
.mkt-ctybox__tip{font-size:11px;color:var(--outline-v);margin-bottom:8px;line-height:1.5}
.mkt-ctybox__sum{font-size:12px;color:#E3621B;margin:-2px 0 10px;line-height:1.6}
.mkt-ins-out{background:var(--surface-c);border:1px solid var(--outline);border-radius:var(--md-sys-shape-m);padding:13px}
.mkt-eng{display:inline-block;font-size:10.5px;color:#fff;background:#E3621B;border-radius:6px;padding:2px 8px;margin-bottom:6px}
.mkt-ai-out{background:var(--surface-c);border:1px solid var(--outline);border-radius:var(--md-sys-shape-m);padding:13px}
.mkt-ai-ans{font-size:13.5px;line-height:1.8;color:var(--on-surface)}
.mkt-tips{font-size:11.5px;color:var(--outline-v);margin-top:10px;line-height:1.6}
.mkt-plats{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.mkt-plat{background:var(--surface-c);border:1px solid var(--outline);border-radius:var(--md-sys-shape-s);padding:9px 11px;display:flex;flex-direction:column;gap:2px}
.mkt-plat b{font-size:13px;color:var(--on-surface)}
.mkt-plat span{font-size:10.5px;color:#E3621B}
.mkt-plat i{font-size:11px;color:var(--on-surface-v);font-style:normal;line-height:1.5}
.mkt-crow{display:flex;flex-direction:column;gap:2px;background:var(--surface-c);border:1px solid var(--outline);border-radius:var(--md-sys-shape-s);padding:10px 12px;margin-bottom:8px;cursor:pointer}
.mkt-crow b{font-size:13.5px;color:var(--on-surface)}
.mkt-crow span{font-size:11.5px;color:var(--on-surface-v)}
.mkt-camp{background:var(--surface-c);border:1px solid var(--outline);border-radius:var(--md-sys-shape-m);padding:12px;margin-bottom:10px}
.mkt-camp__h{display:flex;align-items:center;gap:8px}
.mkt-camp__h b{font-size:14px;color:var(--on-surface);flex:1}
.mkt-stage{font-size:10.5px;color:#fff;background:#8A3B00;border-radius:6px;padding:2px 8px}
.mkt-camp__m{font-size:11.5px;color:var(--on-surface-v);margin-top:5px}
.mkt-camp__k{display:flex;gap:12px;flex-wrap:wrap;font-size:11.5px;color:var(--on-surface-v);margin-top:8px}
.mkt-camp__k b{color:#E3621B}
.mkt-camp__a{display:flex;gap:8px;margin-top:10px}
.mkt-sense{font-size:11.5px;color:#B23A0E;background:#FFF3E6;border-radius:8px;padding:6px 9px;margin-top:9px}
.mkt-form{background:var(--surface-c-2);border:1px solid var(--outline);border-radius:var(--md-sys-shape-s);padding:12px;margin-bottom:12px}
.mkt-pchk{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;color:var(--on-surface-v);margin:0 10px 6px 0}
.mkt-mini{margin-left:auto;border:1px solid var(--outline);background:var(--surface-c-2);color:var(--on-surface-v);border-radius:8px;font-size:11px;padding:4px 10px;cursor:pointer}
.mkt-mini--pri{background:#E3621B;border-color:#E3621B;color:#fff}
.mkt-chanroi{background:var(--surface-c);border:1px solid var(--outline);border-radius:var(--md-sys-shape-m);overflow:hidden}
.mkt-chanroi__r{display:flex;align-items:center;gap:8px;padding:9px 12px;border-bottom:1px solid var(--surface-c-2);font-size:12px;color:var(--on-surface-v)}
.mkt-chanroi__r:last-child{border-bottom:0}
.mkt-chanroi__r span:first-child{flex:1;color:var(--on-surface)}
.mkt-chanroi__r b{color:#E3621B;min-width:44px;text-align:right}
.mkt-empty{background:var(--surface-c);border:1px dashed var(--outline);border-radius:var(--md-sys-shape-s);padding:16px;text-align:center;color:var(--on-surface-v);font-size:13px}
.mkt-loading{padding:6px 0}
.mkt-grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:6px}
.mkt-kpi{background:var(--surface-c);border:1px solid var(--outline);border-radius:var(--md-sys-shape-s);padding:11px 12px;display:flex;flex-direction:column;gap:3px}
.mkt-kpi b{font-size:18px;font-weight:800;color:#E3621B}
.mkt-kpi span{font-size:11px;color:var(--on-surface-v)}
:root[data-dark="1"] .mkt-kpi b{color:#FFA85C}
:root[data-dark="1"] .mkt-note{background:#3A2410;color:#FFD3A6}
:root[data-dark="1"] .mkt-tag{background:#3A2410;color:#FFB871}
:root[data-dark="1"] .mkt-case__l{background:#33200F;color:#FFD3A6}
:root[data-dark="1"] .mkt-sense{background:#33200F;color:#FFB871}
:root[data-dark="1"] .mkt-roi__i b,:root[data-dark="1"] .mkt-camp__k b,:root[data-dark="1"] .mkt-chanroi__r b{color:#FFA85C}
:root[data-dark="1"] .mkt-plat span{color:#FFA85C}
:root[data-dark="1"] .mkt-chantag.own{background:#33200F;color:#FFB871;border-color:#5A3A1E}
:root[data-dark="1"] .mkt-regtag{background:#1B2A44;color:#8FB6F5}
:root[data-dark="1"] .mkt-regtag.intl{background:#241B44;color:#B9A0F5}
:root[data-dark="1"] .mkt-ul--go li{color:#6FD79A}

/* ==================== v2.9.0 感营 · 营销铁军域（铁军/激励/训练/计算器/工具台） ==================== */
.mkt2-sep{height:1px;background:var(--surface-c-2);margin:16px 0 4px}
.mkt2-form{background:var(--surface-c-2);border:1px solid var(--outline);border-radius:var(--md-sys-shape-s);padding:12px;margin-bottom:12px}
.mkt2-form label{display:block;font-size:11.5px;color:var(--on-surface-v);margin:2px 0 5px}
.mkt2-form .mkt-in{width:100%;box-sizing:border-box}
.mkt2-kpi4{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:6px}
.mkt2-quote{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:6px}
.mkt2-q{background:var(--surface-c);border:1px solid var(--outline);border-radius:var(--md-sys-shape-s);padding:10px 6px;text-align:center;display:flex;flex-direction:column;gap:4px}
.mkt2-q span{font-size:10.5px;color:var(--on-surface-v)}
.mkt2-q b{font-size:15px;font-weight:800;color:var(--on-surface)}
.mkt2-q.on{border-color:#E3621B;background:#FFF3E6}
.mkt2-q.on b{color:#B23A0E}
.mkt2-line{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--on-surface-v);padding:7px 0;border-bottom:1px dashed var(--surface-c-2)}
.mkt2-line span{flex:1;line-height:1.5}
.mkt2-line b{color:#E3621B;font-weight:700;text-align:right;white-space:nowrap}
.mkt2-line--sum{border-bottom:0;border-top:1px solid var(--outline);margin-top:4px;padding-top:9px}
.mkt2-line--sum span{font-weight:700;color:var(--on-surface)}
.mkt2-line--sum b{font-size:15px}
.mkt2-inc{background:var(--surface-c);border:1px solid var(--outline);border-radius:var(--md-sys-shape-m);padding:13px;margin-bottom:8px}
.mkt2-inc__t{display:flex;align-items:baseline;gap:8px;margin-bottom:8px}
.mkt2-inc__t b{font-size:26px;font-weight:800;color:#E3621B;letter-spacing:-.5px}
.mkt2-inc__t span{font-size:11.5px;color:var(--on-surface-v)}
.mkt2-pkg{background:var(--surface-c);border:1px solid var(--outline);border-radius:var(--md-sys-shape-m);padding:12px;margin-bottom:10px}
.mkt2-pkg--home{border-color:#F3C08E;background:#FFFBF6;box-shadow:0 2px 8px rgba(227,98,27,.10)}
:root[data-dark="1"] .mkt2-pkg--home{background:#2A1E12;border-color:#5A3A1E}
.mkt2-pkg__h{display:flex;align-items:center;gap:8px}
.mkt2-pkg__h b{font-size:14px;color:var(--on-surface);flex:1}
.mkt2-pkg__m{font-size:11.5px;color:var(--on-surface-v);margin-top:5px;line-height:1.55}
.mkt2-pkg .mkt-mini{margin:9px 0 0;display:block;width:100%;text-align:center}
.mkt2-eng{background:var(--surface-c);border:1px solid var(--outline);border-radius:var(--md-sys-shape-m);padding:12px;margin-bottom:10px}
.mkt2-eng__h{display:flex;align-items:center;gap:8px}
.mkt2-eng__h b{font-size:14px;color:var(--on-surface);flex:1}
.mkt2-eng__d{font-size:12px;color:var(--on-surface-v);margin-top:6px;line-height:1.6}
.mkt2-slot{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:var(--surface-c);border:1px solid var(--outline);border-radius:var(--md-sys-shape-s);padding:8px 11px;margin-bottom:6px}
.mkt2-slot b{font-size:12.5px;color:var(--on-surface);min-width:74px}
.mkt2-slot span{font-size:10.5px;color:#E3621B;background:#FFF0E2;border-radius:6px;padding:2px 7px}
.mkt2-slot i{flex:1;font-size:11px;color:var(--on-surface-v);font-style:normal;text-align:right;line-height:1.5}
.mkt2-tl{display:flex;gap:10px;align-items:flex-start;background:var(--surface-c);border:1px solid var(--outline);border-radius:var(--md-sys-shape-s);padding:11px;margin-bottom:8px}
.mkt2-tl__n{width:22px;height:22px;border-radius:50%;background:#E3621B;color:#fff;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.mkt2-tl b{display:block;font-size:13px;color:var(--on-surface)}
.mkt2-tl span{display:block;font-size:11.5px;color:var(--on-surface-v);margin-top:3px;line-height:1.55}
.mkt2-rank{display:flex;align-items:center;gap:10px;background:var(--surface-c);border:1px solid var(--outline);border-radius:var(--md-sys-shape-s);padding:10px 12px;margin-bottom:7px}
.mkt2-rank.top{border-color:#F3C08E;background:#FFF9F2}
.mkt2-rank__n{width:26px;text-align:center;font-size:14px;font-weight:800;color:var(--on-surface-v);flex:0 0 auto}
.mkt2-rank__m{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}
.mkt2-rank__m b{font-size:13px;color:var(--on-surface)}
.mkt2-rank__m i{font-size:10.5px;color:var(--on-surface-v);font-style:normal}
.mkt2-rank__v{display:flex;flex-direction:column;gap:2px;text-align:right}
.mkt2-rank__v b{font-size:13.5px;color:#E3621B;font-weight:800}
.mkt2-rank__v i{font-size:10.5px;color:var(--on-surface-v);font-style:normal}
.mkt2-mem{display:flex;align-items:center;gap:8px;background:var(--surface-c);border:1px solid var(--outline);border-radius:var(--md-sys-shape-s);padding:9px 11px;margin-bottom:7px;flex-wrap:wrap}
.mkt2-mem__lv{font-size:10.5px;border-radius:6px;padding:2px 8px;background:#EDE7FF;color:#5A34C9;flex:0 0 auto}
.mkt2-mem__lv.lv-t1{background:#F0E7DA;color:#8A6430}
.mkt2-mem__lv.lv-t2{background:#E4EDF7;color:#36618F}
.mkt2-mem__lv.lv-t3{background:#FFF0DA;color:#A26A0B}
.mkt2-mem__lv.lv-t4{background:#F3E6FF;color:#7A2FC4}
.mkt2-mem__m{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}
.mkt2-mem__m b{font-size:13px;color:var(--on-surface)}
.mkt2-mem__m i{font-size:10.5px;color:var(--on-surface-v);font-style:normal}
.mkt2-mem__v{font-size:12.5px;color:#E3621B;font-weight:700;display:flex;flex-direction:column;text-align:right}
.mkt2-mem__v i{font-size:10px;color:var(--on-surface-v);font-weight:400;font-style:normal}
.mkt2-demo{font-size:9.5px;color:#8A3B00;background:#FFF0E2;border-radius:4px;padding:1px 5px;font-style:normal;font-weight:400}
.mkt2-x{border:1px solid var(--outline);background:var(--surface-c-2);color:var(--on-surface-v);border-radius:8px;font-size:10.5px;padding:4px 8px;cursor:pointer}
.mkt2-x--del{color:#C0392B}
.mkt2-lv{background:var(--surface-c);border:1px solid var(--outline);border-radius:var(--md-sys-shape-s);padding:11px;margin-bottom:8px}
.mkt2-lv__h{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.mkt2-lv__h b{font-size:13.5px;color:var(--on-surface);flex:1}
.mkt2-lv__h span{font-size:10.5px;color:#E3621B}
.mkt2-day{background:var(--surface-c);border:1px solid var(--outline);border-radius:var(--md-sys-shape-s);padding:11px;margin-bottom:9px}
.mkt2-day.done{border-color:#9ED9B4;background:#F5FCF7}
.mkt2-day__h{display:flex;align-items:center;gap:8px}
.mkt2-day__h b{font-size:13.5px;color:var(--on-surface);flex:1}
.mkt2-day__d{font-size:10.5px;color:#fff;background:#E3621B;border-radius:6px;padding:2px 8px;font-weight:700}
.mkt2-day__g{font-size:11.5px;color:#8A3B00;background:#FFF3E6;border-radius:7px;padding:6px 9px;margin-top:7px;line-height:1.55}
.mkt2-day .mkt-mini{margin:0}
.mkt2-day .mkt-mini--ok{background:#1E7A46;border-color:#1E7A46;color:#fff}
.mkt2-talks{display:flex;flex-direction:column;gap:9px}
.mkt2-talk{background:var(--surface-c);border:1px solid var(--outline);border-radius:var(--md-sys-shape-s);padding:11px}
.mkt2-talk b{display:block;font-size:12.5px;color:var(--on-surface);line-height:1.6}
.mkt2-talk i{display:block;font-size:12px;color:var(--on-surface-v);font-style:normal;margin-top:6px;line-height:1.7}
.mkt2-prog{margin-bottom:12px}
.mkt2-prog__b{height:8px;border-radius:5px;background:var(--surface-c-2);overflow:hidden}
.mkt2-prog__b i{display:block;height:100%;border-radius:5px;background:linear-gradient(90deg,#E3621B,#F59A2E)}
.mkt2-prog span{display:block;font-size:11px;color:var(--on-surface-v);margin-top:6px}
.mkt2-val{background:linear-gradient(150deg,#FFF6EC,#FFFDF9);border:1px solid #F3C08E;border-radius:var(--md-sys-shape-m);padding:13px;margin-bottom:10px}
.mkt2-val b{display:block;font-size:14px;color:#8A3B00;line-height:1.6}
.mkt2-val span{display:block;font-size:11.5px;color:#B2560F;margin-top:6px;line-height:1.6}
.mkt2-valgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:6px}
.mkt2-valt{background:var(--surface-c);border:1px solid var(--outline);border-radius:var(--md-sys-shape-s);padding:10px}
.mkt2-valt b{display:block;font-size:12.5px;color:var(--on-surface)}
.mkt2-valt i{display:block;font-size:10.5px;color:var(--on-surface-v);font-style:normal;margin-top:5px;line-height:1.5}
.mkt2-valt em{display:block;font-size:10.5px;color:#E3621B;font-style:normal;margin-top:5px}
.mkt2-gain{background:var(--surface-c);border:1px solid var(--outline);border-radius:var(--md-sys-shape-s);padding:11px;margin-bottom:8px}
.mkt2-gain>b{font-size:12.5px;color:var(--on-surface);display:block;margin-bottom:2px}
:root[data-dark="1"] .mkt2-val{background:linear-gradient(150deg,#2A1E12,#241A10);border-color:#5A3A1E}
:root[data-dark="1"] .mkt2-val b{color:#FFD3A6}
:root[data-dark="1"] .mkt2-val span{color:#FFB871}
:root[data-dark="1"] .mkt2-valt em{color:#FFA85C}
:root[data-dark="1"] .mkt2-q.on{background:#33200F}
:root[data-dark="1"] .mkt2-q.on b,:root[data-dark="1"] .mkt2-line b,:root[data-dark="1"] .mkt2-inc__t b,
:root[data-dark="1"] .mkt2-rank__v b,:root[data-dark="1"] .mkt2-mem__v,:root[data-dark="1"] .mkt2-lv__h span,
:root[data-dark="1"] .mkt2-slot span{color:#FFA85C}
:root[data-dark="1"] .mkt2-rank.top{background:#2A1E12;border-color:#5A3A1E}
:root[data-dark="1"] .mkt2-day.done{background:#16281D;border-color:#2E5C3E}
:root[data-dark="1"] .mkt2-demo{background:#3A2410;color:#FFB871}
:root[data-dark="1"] .mkt2-day__g{background:#3A2410;color:#FFD3A6}
:root[data-dark="1"] .mkt2-slot span{background:#3A2410}
:root[data-dark="1"] .mkt2-mem__lv{background:#241B44;color:#B9A0F5}

/* ==================== v2.10.0 感营 TouchMarketing ③ 成交闭环 + 会展落地 ==================== */
.mkt3-seg { margin: 8px 0 4px; flex-wrap: wrap; }
.mkt3-kpi { margin-bottom: 6px; }
.mkt3-form { margin-top: 8px; }
.mkt3-ops { margin: 8px 0; padding: 10px; border-radius: 10px; background: rgba(0, 128, 128, .06); border: 1px dashed rgba(0, 128, 128, .35); }
.mkt3-opsrow { display: flex; flex-wrap: wrap; gap: 6px; margin: 4px 0; }
.mkt3-funnel { display: flex; flex-direction: column; gap: 6px; margin: 6px 0 10px; }
.mkt3-fn { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border-radius: 10px; background: rgba(127, 127, 127, .08); }
.mkt3-fn__n { width: 18px; height: 18px; line-height: 18px; text-align: center; border-radius: 50%; font-size: 11px; background: rgba(0, 128, 128, .18); }
.mkt3-fn__t { flex: 1; font-size: 13px; opacity: .85; }
.mkt3-fn b { font-size: 14px; }
.mkt3-card { padding: 10px; margin-bottom: 10px; border-radius: 12px; background: rgba(127, 127, 127, .07); border: 1px solid rgba(127, 127, 127, .14); }
.mkt3-card__h { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.mkt3-card__h b { font-size: 14px; }
.mkt3-card__m { font-size: 12px; opacity: .7; margin: 2px 0 6px; }
.mkt3-keys { display: flex; flex-wrap: wrap; gap: 6px; margin: 4px 0; }
.mkt3-keys span { font-size: 11px; padding: 2px 6px; border-radius: 6px; background: rgba(127, 127, 127, .14); }
.mkt3-nums { display: flex; flex-wrap: wrap; gap: 8px; font-size: 12px; margin: 4px 0; }
.mkt3-bid { display: flex; flex-wrap: wrap; gap: 10px; font-size: 12px; margin: 4px 0; color: #0a7d7d; }
.mkt3-slots { display: flex; flex-wrap: wrap; gap: 6px; margin: 4px 0; }
.mkt3-wk { font-size: 11px; padding: 2px 6px; border-radius: 6px; background: rgba(127, 127, 127, .14); }
.mkt3-line { font-size: 11px; opacity: .75; margin: 4px 0; }
.mkt3-acts { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.mkt3-acts .mkt-btn { padding: 6px 12px; font-size: 12px; }
.mkt-tag--st { border: 1px solid rgba(127, 127, 127, .3); }
.mkt-tag--st.on { background: rgba(0, 128, 128, .18); }
.mkt-tag--st.ok { background: rgba(36, 150, 84, .18); }
.mkt-tag--st.warn { background: rgba(214, 148, 22, .2); }
.mkt-tag--st.off { opacity: .5; }
.mkt-tag--ind { background: rgba(0, 128, 128, .12); }
.mkt3-th, .mkt3-tr { display: grid; grid-template-columns: 1.4fr repeat(7, 1fr); gap: 4px; font-size: 11px; padding: 6px 4px; }
.mkt3-th { opacity: .65; border-bottom: 1px solid rgba(127, 127, 127, .25); }
.mkt3-tr { border-bottom: 1px dashed rgba(127, 127, 127, .18); }
.mkt3-tr i { display: block; font-style: normal; opacity: .6; font-size: 10px; }
.mkt3-tot { font-size: 12px; padding: 8px 4px; }
.mkt3-warn { font-size: 12px; padding: 6px 8px; border-radius: 8px; margin-bottom: 6px; background: rgba(127, 127, 127, .1); }
.mkt3-warn--warn { background: rgba(214, 148, 22, .16); }
.mkt3-warn--danger { background: rgba(200, 60, 60, .16); }
.mkt3-warn--info { background: rgba(0, 128, 128, .12); }
.mkt3-rc { display: flex; align-items: center; gap: 8px; font-size: 12px; padding: 6px 0; border-bottom: 1px dashed rgba(127, 127, 127, .18); }
.mkt3-rc__a { margin-left: auto; }
.mkt3-rc__k { font-size: 11px; opacity: .6; }
.mkt3-sop { padding: 10px; margin-bottom: 10px; border-radius: 12px; background: rgba(0, 128, 128, .06); border: 1px solid rgba(0, 128, 128, .18); }
.mkt3-sop__h { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 6px; }
.mkt3-sop__h b { font-size: 14px; }
.mkt3-sop__i { display: flex; gap: 8px; font-size: 12.5px; line-height: 1.6; margin: 3px 0; }
.mkt3-sop__n { min-width: 16px; height: 16px; line-height: 16px; text-align: center; border-radius: 50%; font-size: 10px; background: rgba(0, 128, 128, .2); }
.mkt3-score { margin-bottom: 8px; }
.mkt3-score label { font-size: 12.5px; display: block; margin-bottom: 3px; }
.mkt3-score__q { font-size: 11px; opacity: .72; margin-top: 2px; line-height: 1.5; }
.mkt3-score__q i { display: block; opacity: .8; font-style: normal; }
.mkt3-verdict { display: flex; flex-direction: column; gap: 3px; padding: 10px; border-radius: 10px; margin: 8px 0; font-size: 12.5px; }
.mkt3-verdict--pass { background: rgba(36, 150, 84, .16); }
.mkt3-verdict--hold { background: rgba(214, 148, 22, .18); }
.mkt3-verdict--no { background: rgba(200, 60, 60, .16); }
.mkt3-bar { display: flex; align-items: center; gap: 8px; font-size: 11.5px; margin: 3px 0; }
.mkt3-bar > span { min-width: 84px; }
.mkt3-bar__t { flex: 1; height: 6px; border-radius: 4px; background: rgba(127, 127, 127, .2); overflow: hidden; }
.mkt3-bar__t i { display: block; height: 100%; background: #0a7d7d; }
.mkt3-bar b { min-width: 62px; text-align: right; }
.mkt3-kit { margin-bottom: 10px; }
.mkt3-kit__t { font-size: 12.5px; font-weight: 600; margin-bottom: 4px; }
.mkt3-kit__i { display: flex; gap: 6px; font-size: 12px; padding: 5px 8px; border-radius: 8px; background: rgba(127, 127, 127, .08); margin-bottom: 4px; line-height: 1.5; }
.mkt3-kit__i.on { background: rgba(36, 150, 84, .14); text-decoration: line-through; opacity: .8; }
.mkt2-row2 { display: flex; gap: 8px; }
.mkt2-row2 > * { flex: 1; }
/* 页头右上角「营销计算器」快捷键 —— 已撤销（v2.10.1，总裁指示与九宫格重复） */
/* 区域 × 主流平台匹配 */
.mkt3-rp { padding: 8px 10px; border-radius: 10px; background: rgba(127, 127, 127, .08); margin-bottom: 8px; }
.mkt3-rp__h { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: 12.5px; margin-bottom: 5px; }
.mkt3-rp__h span { opacity: .75; font-size: 11.5px; }
:root[data-dark="1"] .mkt3-ops { background: rgba(0, 200, 200, .08); }
:root[data-dark="1"] .mkt3-card { background: rgba(255, 255, 255, .05); }
:root[data-dark="1"] .mkt3-fn { background: rgba(255, 255, 255, .06); }
/* ===== 页头九宫格菜单（简称 + 图标，3 列，可收起） ===== */
.mkt-navwrap { margin-top: 9px; position: relative; z-index: 1; }
.mkt-nav { display: grid; grid-template-columns: repeat(3, 1fr); gap: 7px; }
.mkt-navwrap:not(.on) .mkt-nav { display: none; }
.mkt-nav__i { display: flex; flex-direction: column; align-items: center; gap: 3px; padding: 9px 3px; border-radius: 12px; border: 1px solid rgba(255, 255, 255, .30); background: rgba(255, 255, 255, .14); color: #fff; font: inherit; font-size: 12px; font-weight: 600; cursor: pointer; -webkit-appearance: none; line-height: 1.15; }
.mkt-nav__i i { font-style: normal; font-size: 16px; line-height: 1; }
.mkt-nav__i b { font-weight: 600; font-size: 12px; }
.mkt-nav__i.on { background: #fff; border-color: #fff; color: #B23A0E; }
.mkt-nav__i.on b { font-weight: 800; }
.mkt-navtg { display: block; width: 100%; margin-top: 6px; padding: 4px 0; border: 0; background: none; color: rgba(255, 255, 255, .88); font: inherit; font-size: 11px; cursor: pointer; -webkit-appearance: none; }
@media (max-width: 330px) { .mkt-nav { grid-template-columns: repeat(2, 1fr); } }


/* ==================== v2.10.5 感营 ⑮ 发票与账期预警（#381） ==================== */
.mk-aistamp { display: flex; gap: 8px; align-items: flex-start; margin: 8px 0 4px; padding: 7px 10px;
  border-radius: 10px; background: rgba(120, 128, 160, .10); border: 1px dashed rgba(120, 128, 160, .45); }
.mk-aistamp b { flex: none; font-size: 11.5px; font-weight: 700; color: #6B4BD6; white-space: nowrap; }
.mk-aistamp i { font-style: normal; font-size: 11px; line-height: 1.55; opacity: .78; }
:root[data-dark="1"] .mk-aistamp { background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .22); }
:root[data-dark="1"] .mk-aistamp b { color: #B9A6FF; }

.mk-ivkpi { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 8px 0 10px; }
.mk-ivkpi > div { background: var(--surface-c); border: 1px solid var(--outline); border-radius: 12px;
  padding: 9px 10px; display: flex; flex-direction: column; gap: 2px; }
.mk-ivkpi b { font-size: 15px; font-weight: 800; letter-spacing: -.2px; }
.mk-ivkpi span { font-size: 11px; opacity: .72; }
.mk-ivkpi--warn b { color: #D9531E; }
.mk-ivkpi--bad b { color: #B3261E; }

.mk-lvchips { display: flex; flex-wrap: wrap; gap: 6px; margin: 6px 0 10px; }
.mk-lv { display: inline-block; padding: 2px 7px; border-radius: 8px; font-size: 10.5px; font-weight: 700;
  white-space: nowrap; }
.mk-lv--ok { background: rgba(36, 150, 84, .16); color: #1C7A44; }
.mk-lv--info { background: rgba(60, 120, 216, .14); color: #2B5FB8; }
.mk-lv--warn { background: rgba(224, 152, 24, .18); color: #9A6407; }
.mk-lv--danger { background: rgba(217, 83, 30, .16); color: #C04414; }
.mk-lv--bad { background: rgba(179, 38, 30, .18); color: #9E1F18; }

.mk-iarow { border-left: 3px solid var(--outline); background: var(--surface-c); border-radius: 10px;
  padding: 8px 10px; margin-bottom: 8px; }
.mk-iarow--info { border-left-color: #3C78D8; }
.mk-iarow--warn { border-left-color: #E09818; }
.mk-iarow--danger { border-left-color: #D9531E; }
.mk-iarow--bad { border-left-color: #B3261E; background: rgba(179, 38, 30, .05); }
.mk-iarow__h { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; font-size: 13px; margin-bottom: 3px; }
.mk-iarow__h b { font-weight: 700; }
.mk-iarow__m { font-size: 11.5px; line-height: 1.6; opacity: .82; }
.mk-iarow__a { font-size: 11.5px; line-height: 1.6; margin-top: 3px; color: #B3261E; }
.mk-iarow__b { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 7px; }
.mk-mini { padding: 4px 9px; border-radius: 9px; border: 1px solid var(--outline); background: none;
  color: inherit; font: inherit; font-size: 11.5px; cursor: pointer; -webkit-appearance: none; }
.mk-mini--pri { border-color: #E3621B; color: #E3621B; font-weight: 700; }
.mk-mini:active { opacity: .6; }

.mk-irow { display: flex; align-items: center; gap: 8px; padding: 7px 9px; border-radius: 9px;
  background: rgba(127, 127, 127, .07); margin-bottom: 6px; font-size: 12px; }
.mk-irow__t { flex: 1 1 auto; min-width: 0; }
.mk-irow__t b { font-weight: 700; }
.mk-irow__t i { font-style: normal; display: block; font-size: 11px; opacity: .72; line-height: 1.5; }
.mk-irow__a { flex: none; font-weight: 800; font-size: 12.5px; }
.mk-irow__x { flex: none; display: flex; gap: 5px; }

.mk-term { display: flex; flex-direction: column; gap: 6px; margin-bottom: 10px; }
.mk-term__i { display: flex; gap: 8px; align-items: baseline; padding: 6px 9px; border-radius: 9px;
  background: rgba(127, 127, 127, .07); font-size: 12px; }
.mk-term__i b { font-weight: 700; }
.mk-term__i span { font-size: 11px; opacity: .74; }

.mk-aging { display: flex; gap: 6px; margin: 6px 0 10px; }
.mk-aging > div { flex: 1 1 0; border-radius: 10px; background: var(--surface-c);
  border: 1px solid var(--outline); padding: 7px 6px; text-align: center; }
.mk-aging b { display: block; font-size: 12.5px; font-weight: 800; }
.mk-aging span { font-size: 10px; opacity: .7; }
.mk-aging i { display: block; font-style: normal; font-size: 10.5px; opacity: .6; margin-top: 2px; }
.mk-aging__bar { height: 4px; border-radius: 3px; margin-top: 5px; background: rgba(127, 127, 127, .18); overflow: hidden; }
.mk-aging__bar i { display: block; height: 100%; background: #E3621B; }

.mk-tl { border-left: 2px solid var(--outline); margin-left: 5px; padding-left: 12px; }
.mk-tl__i { position: relative; padding-bottom: 10px; font-size: 12px; line-height: 1.6; }
.mk-tl__i:before { content: ''; position: absolute; left: -17px; top: 5px; width: 7px; height: 7px;
  border-radius: 50%; background: #E3621B; }
.mk-tl__i b { font-weight: 700; }
.mk-tl__i i { font-style: normal; display: block; font-size: 11px; opacity: .72; }

.mk-aiout { background: var(--surface-c); border: 1px solid var(--outline); border-radius: 12px;
  padding: 10px 12px; margin-top: 8px; font-size: 12.5px; line-height: 1.75; white-space: pre-wrap; word-break: break-word; }
.mk-checkline { display: flex; gap: 6px; align-items: center; font-size: 12px; margin-bottom: 5px; }
.mk-dueedit { margin: -2px 0 8px; padding: 8px 10px; border-radius: 10px; background: var(--surface-c);
  border: 1px dashed var(--outline); }
.mk-dueedit .mkt2-row2 { display: flex; gap: 8px; }
.mk-dueedit .mkt2-row2 > div { flex: 1 1 0; }
.mk-dueedit label { display: block; font-size: 11px; opacity: .72; margin-bottom: 3px; }

/* v2.10.6 感动家园首页 · 企业股市曲线条（对外展示标的） */
.hq-rail { display: flex; gap: 10px; overflow-x: auto; padding: 2px 2px 6px; -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain; touch-action: pan-x; }
.hq-rail[data-anim] { cursor: grab; }
.hq-rail[data-anim]:active { cursor: grabbing; }
.hq-seg { display: flex; gap: 10px; flex: 0 0 auto; }
.hq-rail::-webkit-scrollbar { display: none; }
.hq-item { flex: 0 0 auto; width: 134px; background: var(--card, #fff);
  user-select: none; -webkit-user-select: none; -webkit-touch-callout: none;
  border: 1px solid var(--line, #eef0f4); border-radius: 12px; padding: 9px 10px 8px;
  display: flex; flex-direction: column; gap: 5px; text-align: left; cursor: pointer; }
.hq-item:active { transform: scale(.98); }
.hq-n { display: flex; align-items: center; gap: 4px; font-size: 12px; font-weight: 700;
  color: var(--on-surface, #1f2430); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hq-n .gh-chip { font-size: 9px; padding: 0 5px; border: none; background: rgba(244,63,46,.08); color: #f43f2e; }
.hq-spark { display: block; width: 100%; height: 38px; }
.hq-nospark { display: flex; align-items: center; justify-content: center; height: 38px; border-radius: 6px;
  font-size: 10px; color: var(--on-surface-v, #a9b0bd);
  background: repeating-linear-gradient(45deg, rgba(0,0,0,.015), rgba(0,0,0,.015) 6px, rgba(0,0,0,.035) 6px, rgba(0,0,0,.035) 12px); }
.hq-p { display: flex; align-items: baseline; justify-content: space-between; gap: 6px; }
.hq-p b { font-size: 15px; font-weight: 800; }
.hq-p em { font-size: 11px; font-style: normal; }
.hq-big { display: block; width: 100%; height: 120px; }

/* v2.10.6 修（总裁 0930：股市行情内页字不要太靠边框）
   .card 自身只给背景/圆角/阴影，没有内边距（项目既有模式靠子元素自带 padding），
   行情链路整条都漏了 → 这里统一补齐。 */
#gqtBody > .card, #gqtHead > .card, #gqtList > .card, #hqpBody, .hq-card { padding: 14px 14px 12px; }

/* ===== TouchPush v2.11.0 用户端：通知中心样式 ===== */
.push-center { padding: 4px 0 24px; }
.push-head { display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding: 2px 2px 12px; font-size: 12.5px; color: var(--on-surface-v); line-height: 1.5; }
.push-head .btn { height: 34px; padding: 0 14px; font-size: 12.5px; border-radius: 999px; flex: 0 0 auto; }
.push-tip { display: flex; flex-direction: column; gap: 8px; padding: 14px 14px 16px; margin: 0 0 12px;
  border-radius: 18px; background: var(--secondary-c); }
.push-tip b { font-size: 14px; }
.push-tip span { font-size: 12.5px; line-height: 1.65; color: var(--on-surface-v); }
.push-tip .btn { align-self: flex-start; height: 40px; padding: 0 20px; border-radius: 999px; }
.push-item { padding: 14px 14px 13px; margin-bottom: 10px; position: relative; }
.push-item.is-new::after { content: ''; position: absolute; top: 16px; left: 5px; width: 7px; height: 7px;
  border-radius: 50%; background: #d93025; }
.push-item__t { display: flex; align-items: center; gap: 8px; }
.push-item__t b { font-size: 14.5px; line-height: 1.4; flex: 1 1 auto; min-width: 0;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.push-item__ts { flex: 0 0 auto; font-size: 11.5px; color: var(--outline-v); }
.push-chip { flex: 0 0 auto; font-style: normal; font-size: 10.5px; line-height: 1.6; padding: 0 8px;
  border-radius: 999px; background: var(--secondary-c); color: var(--primary); }
.push-item__b { margin-top: 7px; font-size: 12.8px; line-height: 1.7; color: var(--on-surface-v);
  white-space: pre-wrap; word-break: break-word; }
.row .r-n { flex: 0 0 auto; min-width: 20px; height: 20px; padding: 0 7px; margin-left: auto;
  border-radius: 999px; background: #d93025; color: #fff; font-size: 11px; line-height: 20px;
  text-align: center; font-weight: 700; }
