/* ===== 西格玛设计系统 v2 — 桌面级排版 ===== */
/* ═══════════════════════════════════════════════════════════════
   西格玛设计系统 v3 · 机构终端派（2026-08-23 全站统一）

   在此之前站内有两套语言：老站是紫色 #7b39fc + 大圆角 + SaaS 落地页味，
   新首页/工作站是金色 #c9a227 + 3px 直角 + 等宽数字的机构终端。
   用户从首页点进产业链，等于从彭博跳进了一个落地页——不是审美问题，
   是"看起来像两家公司"的信任问题。这里把两套合成一套。

   质感技法借鉴 ThreeUI（MIT）：值噪声 + fbm + overlay 混合的程序化颗粒。
   读它源码的收获是——高级感来自克制：主色近黑，金只做强调，占比很小。
   所以特效只进入口/营销区，数据区一律保持素净，可读性优先。
   ═══════════════════════════════════════════════════════════════ */
:root {
  /* 五级深度（与 studio/index.html 完全一致，两边共用同一套值） */
  --bg:     #08090d;
  --panel:  #0e1017;
  --panel2: #13161f;
  --panel3: #191d28;
  --line:   #1e222e;
  --line2:  #2a3040;
  /* 四级文字层级 */
  --ink:    #e6e8f0;
  --ink2:   #b4bac9;
  --dim:    #767d90;
  --faint:  #4d5364;
  /* 强调与涨跌 */
  --gold:    #c9a227;
  --gold-lt: #e8cd7a;
  --up:      #26a37b;
  --down:    #d0453f;
  --r: 3px;

  /* ── 兼容层：老站到处在用这些变量名，映射过去，不用逐页改 ── */
  --violet:      var(--gold);
  --violet-soft: var(--gold-lt);
  --violet-pale: var(--gold-lt);
  --ink-1: var(--ink);
  --ink-2: var(--ink2);
  --ink-3: var(--dim);
  --hairline: var(--line);
}
html { font-size: 16px; }
body {
  background: var(--bg);
  color: var(--ink-1);
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', sans-serif;
  font-feature-settings: 'tnum' 1, 'cv03' 1, 'cv04' 1;
  letter-spacing: .01em;
  -webkit-font-smoothing: antialiased;
}
.font-inter { font-family: -apple-system, 'Segoe UI', 'PingFang SC', 'Microsoft YaHei', sans-serif; }
.font-serif-i { font-family: 'Songti SC', 'SimSun', 'Noto Serif SC', Georgia, serif; font-style: italic; }
.serif-cn { font-family: 'Songti SC', 'SimSun', 'Noto Serif SC', Georgia, serif; }
.mono { font-family: ui-monospace, 'SF Mono', 'JetBrains Mono', Menlo, Consolas, monospace; font-feature-settings: 'tnum' 1; }

/* 页面骨架 */
.page { max-width: 1280px; margin: 0 auto; padding: 0 32px; }
@media (max-width: 768px) { .page { padding: 0 20px; } }

/* 页头：大字阶 + 衬线点缀 + kicker */
.kicker {
  font-size: 11px; letter-spacing: .28em; text-transform: uppercase;
  color: var(--violet-soft); font-weight: 600;
}
.h-display {
  font-family: -apple-system, 'Segoe UI', 'PingFang SC', 'Microsoft YaHei', sans-serif;
  font-size: clamp(30px, 4vw, 44px);
  font-weight: 650; letter-spacing: -0.02em; line-height: 1.12;
  color: var(--ink-1);
}
.h-display .accent { font-family: 'Songti SC', 'SimSun', 'Noto Serif SC', Georgia, serif; font-style: italic; font-weight: 400; color: var(--violet-pale); }
.lede { font-size: 15px; line-height: 1.8; color: var(--ink-2); }

/* 标签 */
.lab {
  display: block; font-size: 11px; letter-spacing: .14em; text-transform: uppercase;
  color: var(--ink-3); margin-bottom: 8px; font-weight: 500;
}

/* 卡片层次 */
.panel {
  background: linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.015));
  border: 1px solid var(--hairline);
  border-radius: 16px;
}
.panel-hover { transition: border-color .2s ease, background .2s ease; }
.panel-hover:hover { border-color: rgba(255,255,255,.18); background: rgba(255,255,255,.045); }
.hairline-t { border-top: 1px solid var(--hairline); }

/* 控件 */
.field {
  width: 100%; border-radius: 10px;
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.10);
  padding: 12px 14px; font-size: 14px; color: var(--ink-1);
  outline: none; transition: border-color .15s ease, box-shadow .15s ease;
  color-scheme: dark;
}
.field:focus { border-color: var(--violet); box-shadow: 0 0 0 3px rgba(123,57,252,.18); }
select.field { appearance: none; background-image: linear-gradient(45deg, transparent 50%, rgba(255,255,255,.5) 50%), linear-gradient(135deg, rgba(255,255,255,.5) 50%, transparent 50%); background-position: calc(100% - 18px) 55%, calc(100% - 13px) 55%; background-size: 5px 5px; background-repeat: no-repeat; }

.btn-primary {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  border-radius: 10px; padding: 12px 22px; font-size: 14px; font-weight: 600;
  color: #fff; background: linear-gradient(135deg, #7b39fc, #9d5cff);
  box-shadow: 0 8px 24px -8px rgba(123,57,252,.55), inset 0 1px 0 rgba(255,255,255,.18);
  transition: transform .15s ease, box-shadow .15s ease;
  cursor: pointer;
}
.btn-primary:hover { transform: translateY(-1px); box-shadow: 0 12px 28px -8px rgba(123,57,252,.65), inset 0 1px 0 rgba(255,255,255,.18); }
.btn-primary:active { transform: translateY(0); }
.btn-ghost {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  border-radius: 10px; padding: 12px 22px; font-size: 14px; font-weight: 500;
  color: var(--ink-2); border: 1px solid rgba(255,255,255,.14); background: transparent;
  transition: border-color .15s ease, color .15s ease, background .15s ease; cursor: pointer;
}
.btn-ghost:hover { color: var(--ink-1); border-color: rgba(255,255,255,.3); background: rgba(255,255,255,.04); }

.chip {
  border-radius: 999px; border: 1px solid rgba(255,255,255,.12);
  padding: 7px 14px; font-size: 12.5px; color: var(--ink-2);
  transition: all .15s ease; cursor: pointer; background: transparent;
}
.chip:hover { border-color: var(--violet); color: var(--ink-1); background: rgba(123,57,252,.08); }

/* 指标大数字（报表感） */
.stat-value {
  font-family: -apple-system, 'Segoe UI', 'PingFang SC', sans-serif; font-weight: 300; letter-spacing: -.02em;
  font-size: clamp(26px, 2.6vw, 34px); line-height: 1.1;
  font-feature-settings: 'tnum' 1;
}
.stat-label { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-3); margin-top: 6px; }

/* 演算流 */
.step-pending { color: rgba(255,255,255,.30); }
.step-active { color: var(--violet-pale); }
.step-done { color: #34d399; }

/* 通用 */
input, select, textarea { color-scheme: dark; }
@keyframes spin { to { transform: rotate(360deg); } }
.spinner { animation: spin 1s linear infinite; }
@keyframes fade-up { from { opacity:0; transform:translateY(14px);} to { opacity:1; transform:translateY(0);} }
.fu { animation: fade-up .55s cubic-bezier(.21,.47,.32,.98) both; }
.glass { background: rgba(255,255,255,0.04); backdrop-filter: blur(10px); }
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-thumb { background: rgba(255,255,255,.12); border-radius: 4px; }
::selection { background: rgba(123,57,252,.4); }


/* ===== 深空视觉层（2026-08-02 内页统一：让工具页也有首页的质感） ===== */
body::before {
  content: ''; position: fixed; inset: 0; z-index: -2; pointer-events: none;
  background:
    radial-gradient(900px 520px at 12% -8%, rgba(123, 57, 252, .16), transparent 62%),
    radial-gradient(760px 460px at 88% 4%, rgba(96, 165, 250, .10), transparent 60%),
    radial-gradient(1100px 700px at 50% 110%, rgba(167, 139, 250, .07), transparent 66%);
}
body::after {
  content: ''; position: fixed; inset: 0; z-index: -1; pointer-events: none; opacity: .5;
  background-image:
    linear-gradient(rgba(255, 255, 255, .015) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .015) 1px, transparent 1px);
  background-size: 46px 46px;
  mask-image: radial-gradient(circle at 50% 22%, #000 30%, transparent 78%);
  -webkit-mask-image: radial-gradient(circle at 50% 22%, #000 30%, transparent 78%);
}
/* 面板玻璃化：由纯色块升级为带内发光的玻璃卡 */
.panel {
  background: linear-gradient(160deg, rgba(255, 255, 255, .045), rgba(255, 255, 255, .012)) !important;
  backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .07), 0 12px 34px rgba(0, 0, 0, .34);
}
.kicker { text-shadow: 0 0 22px rgba(167, 139, 250, .45); }
.h-display .accent {
  background: linear-gradient(120deg, #c4b5fd, #7b39fc 55%, #60a5fa);
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
.btn-primary { box-shadow: 0 6px 20px rgba(123, 57, 252, .34); }
.btn-primary:hover { box-shadow: 0 8px 26px rgba(123, 57, 252, .5); }

/* ===== 顶部导航（2026-08-09 精修：毛玻璃下拉 + 字体层级） ===== */
.nav-bar {
  position: sticky; top: 0; z-index: 40;
  background: linear-gradient(180deg, rgba(9, 7, 18, .88), rgba(9, 7, 18, .74));
  backdrop-filter: blur(22px) saturate(160%);
  -webkit-backdrop-filter: blur(22px) saturate(160%);
  border-bottom: 1px solid rgba(255, 255, 255, .06);
}
.nav-bar::after {           /* 底部一线极淡紫光，把导航与内容轻轻分开 */
  content: ''; position: absolute; left: 0; right: 0; bottom: -1px; height: 1px;
  background: linear-gradient(90deg, transparent, rgba(167, 139, 250, .32), transparent);
}
.nav-brand { letter-spacing: .06em; }
.nav-brand .sig {
  background: linear-gradient(135deg, #c4b5fd, #7b39fc);
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}

/* 顶栏项：默认克制，悬停/选中才亮起 */
.nav-top {
  position: relative; display: inline-flex; align-items: center; gap: 5px;
  padding: 8px 13px; border-radius: 10px;
  font-size: 13.5px; font-weight: 450; letter-spacing: .02em;
  color: rgba(255, 255, 255, .55);
  transition: color .18s ease, background .18s ease;
  white-space: nowrap;
}
.nav-top:hover { color: rgba(255, 255, 255, .95); background: rgba(255, 255, 255, .05); }
.nav-top.on { color: #fff; font-weight: 550; background: rgba(123, 57, 252, .16); }
.nav-top .car { font-size: 8px; opacity: .45; transition: transform .18s ease; }
.nav-grp:hover .nav-top .car { transform: translateY(1px); opacity: .8; }

/* 下拉：半透明毛玻璃 */
.nav-menu {
  position: absolute; left: 0; top: calc(100% + 8px); z-index: 50; width: 236px;
  padding: 7px;
  border-radius: 16px;
  border: 1px solid rgba(255, 255, 255, .10);
  background: linear-gradient(160deg, rgba(26, 21, 48, .93), rgba(13, 10, 26, .90));
  backdrop-filter: blur(26px) saturate(180%);
  -webkit-backdrop-filter: blur(26px) saturate(180%);
  box-shadow: 0 18px 48px rgba(0, 0, 0, .5), inset 0 1px 0 rgba(255, 255, 255, .07);
  animation: navIn .16s ease-out;
}
@keyframes navIn { from { opacity: 0; transform: translateY(-5px); } to { opacity: 1; transform: none; } }
.nav-menu::before {         /* 指向顶栏项的小箭头 */
  content: ''; position: absolute; top: -5px; left: 20px; width: 10px; height: 10px;
  transform: rotate(45deg);
  background: rgba(26, 21, 48, .93);
  border-left: 1px solid rgba(255, 255, 255, .10);
  border-top: 1px solid rgba(255, 255, 255, .10);
}
.nav-item {
  display: block; padding: 9px 11px; border-radius: 11px;
  transition: background .15s ease, transform .15s ease;
}
.nav-item:hover { background: rgba(255, 255, 255, .07); transform: translateX(2px); }
.nav-item.cur { background: rgba(123, 57, 252, .22); }
.nav-item .t { font-size: 13px; font-weight: 500; color: rgba(255, 255, 255, .92); letter-spacing: .01em; }
.nav-item.cur .t { color: #fff; }
.nav-item .d { margin-top: 2px; font-size: 10.5px; color: rgba(255, 255, 255, .38); letter-spacing: .01em; }

/* 右侧胶囊 */
.nav-pill {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 14px; border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, .12);
  background: rgba(255, 255, 255, .03);
  font-size: 12px; letter-spacing: .03em; color: rgba(255, 255, 255, .8);
  transition: all .18s ease;
}
.nav-pill:hover { border-color: rgba(167, 139, 250, .55); color: #fff; background: rgba(123, 57, 252, .12); }
.nav-cta {
  border-color: rgba(167, 139, 250, .4);
  background: linear-gradient(135deg, rgba(123, 57, 252, .22), rgba(123, 57, 252, .10));
  color: #ddd6fe;
}
.nav-cta:hover { background: linear-gradient(135deg, rgba(123, 57, 252, .4), rgba(123, 57, 252, .2)); }

/* 移动端抽屉 */
.nav-drawer {
  border-top: 1px solid rgba(255, 255, 255, .07);
  background: linear-gradient(180deg, rgba(14, 11, 26, .95), rgba(9, 7, 18, .97));
  backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px);
}
.nav-dgroup { margin-top: 12px; padding: 0 12px 4px; font-size: 10px; letter-spacing: .22em;
  color: rgba(255, 255, 255, .28); }

/* 响应式显隐：用自有规则而非框架工具类——app.css 在 tailwind.css 之后加载，
   .nav-pill 的 display 会覆盖 .md\:hidden，导致汉堡按钮在桌面端也显示（2026-08-09 踩过）。 */
.nav-burger { display: inline-flex; }
.nav-links { display: none; }
.nav-streak { display: none; }
@media (min-width: 768px) {
  .nav-burger { display: none !important; }
  .nav-links { display: flex; }
}
@media (min-width: 1080px) {
  .nav-streak { display: inline-flex; }
}
@media (max-width: 639px) {
  .nav-cta { display: none !important; }
}

/* ══ 场景协议渲染（借鉴白龙马 SCENE-PROTOCOL v1）══
   服务端只声明「这件事多重要」(ambient/inform/confront)，
   下面这些呈现细节全部是渲染端的决定——服务端一个像素都不碰。 */

/* confront：用户必须停下来看。背景退后，注意力全部让出去。 */
.sc-mask {
  position: fixed; inset: 0; z-index: 70;
  display: flex; align-items: center; justify-content: center; padding: 20px;
  background: rgba(4, 3, 10, .74);
  backdrop-filter: blur(12px) saturate(120%);
  animation: scFade .22s ease-out;
}
.sc-card {
  width: 100%; max-width: 470px; border-radius: 22px; padding: 26px 24px;
  border: 1px solid rgba(167, 139, 250, .38);
  background: linear-gradient(160deg, rgba(32, 25, 58, .97), rgba(14, 11, 28, .98));
  box-shadow: 0 34px 90px rgba(0, 0, 0, .62), inset 0 1px 0 rgba(255, 255, 255, .08);
  animation: scRise .32s cubic-bezier(.2, .9, .3, 1);
}
.sc-dup .sc-card { border-color: rgba(239, 68, 68, .42); }
@keyframes scRise { from { opacity: 0; transform: translateY(20px) scale(.955); } to { opacity: 1; transform: none; } }
@keyframes scFade { from { opacity: 0; } to { opacity: 1; } }

/* 主内容轻微失焦——这是"背景退后"的物理实现 */
body.sc-confront main, body.sc-confront .page { filter: blur(2px) saturate(.7); transition: filter .3s ease; }

.sc-eyebrow { font-size: 10.5px; letter-spacing: 2px; text-transform: uppercase; color: rgba(255,255,255,.35); }
.sc-title { margin-top: 6px; font-size: 19px; font-weight: 700; line-height: 1.4; color: #f2f0ff; }
.sc-corr { display: inline-flex; align-items: baseline; gap: 6px; margin-top: 14px;
  padding: 7px 13px; border-radius: 12px; background: rgba(239,68,68,.12);
  border: 1px solid rgba(239,68,68,.3); }
.sc-corr b { font-size: 22px; color: #fca5a5; }
.sc-sim .sc-corr { background: rgba(245,158,11,.12); border-color: rgba(245,158,11,.32); }
.sc-sim .sc-corr b { color: #fcd34d; }
.sc-body { margin-top: 14px; font-size: 12.5px; line-height: 1.75; color: rgba(255,255,255,.62); }
.sc-note { margin-top: 12px; padding-left: 10px; border-left: 2px solid rgba(167,139,250,.5);
  font-size: 11.5px; line-height: 1.65; color: rgba(255,255,255,.45); }
.sc-acts { margin-top: 20px; display: flex; flex-direction: column; gap: 9px; }

/* ambient：看完即过，绝不抢焦点 */
.sc-amb { display: flex; align-items: flex-start; gap: 8px; padding: 9px 12px;
  border-radius: 12px; border: 1px solid rgba(255,255,255,.08);
  background: rgba(255,255,255,.025); animation: scFade .3s ease-out; }
.sc-amb .d { font-size: 11.5px; line-height: 1.6; color: rgba(255,255,255,.5); }
.sc-amb .t { font-size: 11.5px; font-weight: 600; color: rgba(255,255,255,.72); }

/* ══ 一句话改变当前页（2026-08-09）══
   桌面按 / 或 Cmd+K 唤起，手机点右下悬浮球。语音优先——手机上打字最麻烦。 */
.ask-fab {
  position: fixed; right: 18px; bottom: 22px; z-index: 60;
  width: 52px; height: 52px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  border: 1px solid rgba(167,139,250,.45);
  background: linear-gradient(150deg, rgba(123,57,252,.92), rgba(88,28,190,.92));
  box-shadow: 0 10px 30px rgba(123,57,252,.4), inset 0 1px 0 rgba(255,255,255,.18);
  font-size: 21px; transition: transform .16s, box-shadow .16s;
}
.ask-fab:hover { transform: translateY(-2px) scale(1.04); box-shadow: 0 14px 38px rgba(123,57,252,.55); }
.ask-fab:active { transform: scale(.96); }

.ask-mask { position: fixed; inset: 0; z-index: 61; background: rgba(4,3,10,.55);
  backdrop-filter: blur(6px); animation: scFade .18s ease-out; }
.ask-panel {
  position: fixed; left: 50%; bottom: 12vh; transform: translateX(-50%);
  z-index: 62; width: min(620px, calc(100vw - 28px));
  border-radius: 18px; border: 1px solid rgba(167,139,250,.4);
  background: linear-gradient(160deg, rgba(30,24,54,.97), rgba(13,10,26,.98));
  box-shadow: 0 26px 70px rgba(0,0,0,.6), inset 0 1px 0 rgba(255,255,255,.08);
  animation: askRise .26s cubic-bezier(.2,.9,.3,1); overflow: hidden;
}
@keyframes askRise { from { opacity:0; transform: translateX(-50%) translateY(16px) scale(.97); }
                     to { opacity:1; transform: translateX(-50%); } }
.ask-row { display: flex; align-items: center; gap: 10px; padding: 14px 16px; }
.ask-input {
  flex: 1; background: transparent; border: 0; outline: none;
  color: #f2f0ff; font-size: 15px; line-height: 1.5;
}
.ask-input::placeholder { color: rgba(255,255,255,.32); }
.ask-mic {
  width: 36px; height: 36px; border-radius: 50%; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center; font-size: 16px;
  border: 1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.04);
  color: rgba(255,255,255,.6); transition: .15s;
}
.ask-mic:hover { color: #fff; border-color: rgba(167,139,250,.5); }
.ask-mic.rec { border-color: #f87171; color: #fca5a5; background: rgba(239,68,68,.12);
  animation: askPulse 1.1s ease-in-out infinite; }
@keyframes askPulse { 0%,100% { box-shadow: 0 0 0 0 rgba(248,113,113,.45); }
                      50% { box-shadow: 0 0 0 8px rgba(248,113,113,0); } }
.ask-hint { padding: 0 16px 12px; font-size: 11px; line-height: 1.7; color: rgba(255,255,255,.34); }
.ask-hint b { color: rgba(255,255,255,.55); font-weight: 500; }
.ask-out { border-top: 1px solid rgba(255,255,255,.07); padding: 12px 16px;
  font-size: 12.5px; line-height: 1.7; color: rgba(255,255,255,.7); }
.ask-diff { display: inline-flex; align-items: center; gap: 5px; margin: 3px 5px 0 0;
  padding: 3px 9px; border-radius: 8px; font-size: 11.5px;
  background: rgba(34,197,94,.13); border: 1px solid rgba(34,197,94,.3); color: #86efac; }
.ask-diff s { color: rgba(255,255,255,.35); text-decoration: line-through; }

/* ══ 微信式按住说话（2026-08-09 老板："要做成像微信一样的语音功能"）══
   点一下开始、再点一下结束是错的交互——手指离开就该发送，这才符合直觉。 */
.ask-hold {
  margin: 0 16px 14px; height: 46px; border-radius: 12px;
  display: flex; align-items: center; justify-content: center; gap: 8px;
  border: 1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.05);
  color: rgba(255,255,255,.75); font-size: 14px; user-select: none;
  -webkit-user-select: none; -webkit-touch-callout: none; touch-action: none;
  transition: background .14s, border-color .14s, color .14s;
}
.ask-hold.on { background: rgba(123,57,252,.22); border-color: rgba(167,139,250,.6); color: #e9e4ff; }
.ask-hold.cancel { background: rgba(239,68,68,.18); border-color: rgba(239,68,68,.55); color: #fca5a5; }

/* 录音浮层：盖住半屏，手指上滑进入取消区 */
.rec-layer { position: fixed; inset: 0; z-index: 70; display: flex;
  flex-direction: column; align-items: center; justify-content: center;
  background: rgba(4,3,10,.6); backdrop-filter: blur(8px); }
.rec-orb { width: 108px; height: 108px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center; font-size: 38px;
  background: radial-gradient(circle at 40% 35%, rgba(167,139,250,.95), rgba(88,28,190,.9));
  box-shadow: 0 0 0 0 rgba(167,139,250,.5); animation: recPulse 1.2s ease-out infinite; }
.rec-layer.cancel .rec-orb { background: radial-gradient(circle at 40% 35%, #f87171, #b91c1c);
  animation: none; }
@keyframes recPulse { 0% { box-shadow: 0 0 0 0 rgba(167,139,250,.45); }
                      100% { box-shadow: 0 0 0 34px rgba(167,139,250,0); } }
/* 音量条：随说话起伏，让用户确信"它在听" */
.rec-bars { display: flex; align-items: flex-end; gap: 4px; height: 30px; margin-top: 20px; }
.rec-bars i { width: 4px; border-radius: 2px; background: rgba(167,139,250,.85);
  height: 6px; transition: height .12s ease-out; }
.rec-tip { margin-top: 16px; font-size: 13px; color: rgba(255,255,255,.7); }
.rec-layer.cancel .rec-tip { color: #fca5a5; }
.rec-time { margin-top: 6px; font-size: 12px; color: rgba(255,255,255,.4);
  font-variant-numeric: tabular-nums; }

/* ═══════════════════════════════════════════════════════════════
   覆盖层 v3：把 Tailwind 工具类收进机构终端派
   页面里 rounded-lg 82 处、rounded-2xl 43 处、bg-[#7b39fc] 24 处，
   逐页改 HTML 风险太大（今天刚证明过改结构会连带炸功能），
   统一在这里收口——不动任何 HTML，改这一个文件全站生效。
   ═══════════════════════════════════════════════════════════════ */

/* ── 圆角：终端不用大圆角。数据容器一律 3px，胶囊类保留但收紧 ── */
.rounded-2xl, .rounded-xl, .rounded-lg, .rounded-md, .rounded,
.rounded-t, .rounded-t-lg, .rounded-t-xl, .rounded-b, .rounded-b-lg {
  border-radius: var(--r) !important;
}
/* 胶囊（行业标签、导航药丸）保留圆形语义，只是不再夸张 */
.rounded-full { border-radius: 999px !important; }
/* 但按钮里的 rounded-full 改直角——终端的按钮不是药丸 */
button.rounded-full, a.rounded-full.px-9, a.rounded-full.px-7,
.nav-cta.rounded-full, .btn-primary.rounded-full {
  border-radius: var(--r) !important;
}

/* ── 紫 → 金：老站硬编码的十六进制值 ── */
[class*="bg-[#7b39fc]"]      { background: var(--gold) !important; color: #100d02 !important; }
[class*="border-[#7b39fc]"]  { border-color: var(--gold) !important; }
[class*="text-[#7b39fc]"]    { color: var(--gold) !important; }
[class*="bg-[#6d28d9]"]      { background: var(--gold) !important; color: #100d02 !important; }
[style*="#7b39fc"], [style*="#6d28d9"] { --_x: 0; }
.accent, .serif-i { color: var(--gold-lt) !important; }

/* ── 面板：白色半透明改成实色分层，暗色下更沉、可读性更好 ── */
.bg-white\/5   { background: var(--panel)  !important; }
.bg-white\/\[\.03\] { background: var(--panel) !important; }
.bg-white\/10  { background: var(--panel2) !important; }
.border-white\/5,
.border-white\/10 { border-color: var(--line) !important; }
.border-white\/15,
.border-white\/20 { border-color: var(--line2) !important; }
.panel, .glass {
  background: var(--panel) !important;
  border: 1px solid var(--line) !important;
  border-radius: var(--r) !important;
  backdrop-filter: none !important;
}
.panel-hover:hover { background: var(--panel2) !important; border-color: var(--line2) !important; }

/* ── 数字：全站等宽 + 表格数字对齐，这是终端和落地页最直接的区别 ── */
.mono, .stat-value, .lab, td, th, .num,
[class*="text-["][class*="px]"] { font-variant-numeric: tabular-nums; }
.stat-value { font-family: var(--mono, ui-monospace, "SF Mono", Menlo, monospace) !important;
              letter-spacing: -.01em; }

/* ── 主按钮：借 ThreeUI 的 Gradient Beam CTA，一道光束扫过。纯 CSS，零依赖 ── */
.btn-primary, .nav-cta, button[class*="bg-[#7b39fc]"], a[class*="bg-[#7b39fc]"] {
  position: relative; overflow: hidden;
  background: var(--gold) !important; color: #100d02 !important;
  border: none !important; font-weight: 600;
}
.btn-primary::after, .nav-cta::after,
button[class*="bg-[#7b39fc]"]::after, a[class*="bg-[#7b39fc]"]::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(105deg, transparent 38%, rgba(255,255,255,.38) 50%, transparent 62%);
  transform: translateX(-130%);
  transition: transform .55s cubic-bezier(.22,.61,.36,1);
}
.btn-primary:hover::after, .nav-cta:hover::after,
button[class*="bg-[#7b39fc]"]:hover::after, a[class*="bg-[#7b39fc]"]:hover::after {
  transform: translateX(130%);
}

/* ── 次按钮 / 输入框 ── */
.btn-ghost, .field, input[type="text"], input[type="tel"], input[type="password"], textarea, select {
  background: var(--panel2) !important;
  border: 1px solid var(--line2) !important;
  border-radius: var(--r) !important;
  color: var(--ink) !important;
}
input:focus, textarea:focus, select:focus { border-color: var(--gold) !important; outline: none !important; }
input::placeholder, textarea::placeholder { color: var(--faint) !important; }

/* ── 标签/行业胶囊 ── */
.chip {
  background: var(--panel2) !important; border: 1px solid var(--line) !important;
  color: var(--ink2) !important;
}
.chip:hover { border-color: var(--gold) !important; color: var(--ink) !important; }

/* ── 导航 ── */
.nav-bar, .nav-top { background: rgba(8,9,13,.88) !important; border-bottom: 1px solid var(--line) !important;
                     backdrop-filter: blur(10px); }
.nav-item, .nav-pill { border-radius: var(--r) !important; }
.nav-item:hover, .nav-pill:hover { background: var(--panel2) !important; }
.nav-menu { background: var(--panel) !important; border: 1px solid var(--line2) !important;
            border-radius: var(--r) !important; }

/* ── 小标题：等宽 + 大字距，机构报告的标记方式 ── */
.kicker {
  font-family: ui-monospace, "SF Mono", Menlo, monospace !important;
  font-size: 10px !important; letter-spacing: .22em !important;
  color: var(--gold) !important; text-transform: uppercase;
}

/* ── 程序化颗粒层（ThreeUI 技法的 CSS 等价物：噪声 + overlay 混合）──
   它用 canvas 画 64×64 值噪声再 overlay 铺满；这里用 SVG feTurbulence
   出等价纹理，零 JS、零请求、可被 GPU 合成。只铺在 body，强度极低——
   目的是消掉纯色块的"塑料感"，不是让人看见颗粒。 */
body::before {
  content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none;
  opacity: .035; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");
}
/* 顶部一层极淡的金色辉光，给首屏一点纵深（同样克制） */
body::after {
  content: ""; position: fixed; left: 50%; top: -220px; width: 900px; height: 460px;
  transform: translateX(-50%); z-index: -1; pointer-events: none;
  background: radial-gradient(ellipse at center, rgba(201,162,39,.055), transparent 70%);
}
/* 注意：这里绝不能写 body > * { position:relative; z-index:1 }。
   那会给 body 的每个直接子元素建层叠上下文，把 position:fixed 的弹窗
   困在里面——2026-08-23 登录弹窗被 main 盖住就是这么来的。
   装饰层用 z-index:-1 即可：绘制在内容之下、body 背景之上，内容不用动。 */

/* 尊重系统「减少动态效果」 */
@media (prefers-reduced-motion: reduce) {
  .btn-primary::after, .nav-cta::after { transition: none; }
}

/* ── 收尾：几处用了特殊机制的紫色，改 color 盖不住，要对症下药 ── */
/* 渐变文字裁剪：-webkit-text-fill-color:transparent 让 color 失效，得换渐变本身 */
.h-display .accent {
  background: linear-gradient(120deg, var(--gold-lt), var(--gold) 58%, #b8912a) !important;
  -webkit-background-clip: text !important; background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
}
/* 紫色投影：终端不用彩色光晕，改成中性阴影 + 一道金色发丝边 */
.btn-primary { box-shadow: 0 2px 10px rgba(0,0,0,.45) !important; }
.btn-primary:hover { box-shadow: 0 3px 14px rgba(0,0,0,.55), 0 0 0 1px var(--gold-lt) !important; }
/* 品牌 Σ 与导航高亮 */
.nav-brand svg, .nav-brand path, .nav-brand text { fill: var(--gold) !important; color: var(--gold) !important; }
.nav-item.is-active, .nav-item[class*="bg-[#"] { background: var(--panel3) !important; color: var(--gold) !important; }
/* 兜底：任何残留的紫色描边/背景 */
[style*="rgba(123, 57, 252"], [style*="rgba(123,57,252"] { box-shadow: none !important; }

/* ── 产业链首屏分类墙 ──
   改前：没选行业时下半屏 60% 纯黑。既没展示"162 条链"这个资产，
   也没告诉用户能输入什么。现在直接铺开，分组 + 计数 + 点开即看。 */
.cw-top { display:flex; align-items:baseline; gap:14px; padding-bottom:10px;
          border-bottom:1px solid var(--line); margin-bottom:18px; }
.cw-cnt { font-size:12px; color:var(--dim); }
.cw-cnt b { font-family:ui-monospace,"SF Mono",Menlo,monospace; font-size:14px;
            color:var(--gold-lt); font-variant-numeric:tabular-nums; }
.cw { display:grid; grid-template-columns:repeat(3,1fr); gap:22px 30px; }
.cw-g { min-width:0; }
.cw-h { display:flex; align-items:center; justify-content:space-between;
        font-size:12px; font-weight:600; color:var(--ink2); letter-spacing:.02em;
        padding-bottom:7px; border-bottom:1px solid var(--line); margin-bottom:9px; }
.cw-h i { font-style:normal; font-family:ui-monospace,"SF Mono",Menlo,monospace;
          font-size:10.5px; color:var(--faint); font-variant-numeric:tabular-nums; }
.cw-b { display:flex; flex-wrap:wrap; gap:6px; }
.cw-i { background:var(--panel2); border:1px solid var(--line); border-radius:var(--r);
        color:var(--ink2); font-size:12px; padding:5px 10px; cursor:pointer;
        transition:border-color .12s, color .12s, background .12s; }
.cw-i:hover { border-color:var(--gold); color:var(--ink); background:var(--panel3); }
@media (max-width:900px){ .cw { grid-template-columns:1fr; gap:18px; } }
/* 导航当前项：最后一处紫色（.nav-item.cur） */
.nav-item.cur, a.nav-item.cur {
  background: var(--panel3) !important; color: var(--gold) !important;
  border-color: var(--line2) !important;
}
