/* tokens.css · 天眼V14设计token唯一源 v2 — "深海玻璃 Abyssal Glass"
   K3整站重做(REG-FE30): iOS 26 Liquid Glass法条 × 彭博密度 × apple.com叙事
   法条: ①玻璃只属于功能层(顶栏/侧栏/命令面板/浮窗) ②内容层禁玻璃 ③克制
   禁魔法值 · 深浅双主题 · 改动先过注册表 */

:root {
  /* ── L0 深渊画布(visionOS深场·图表无框直坐其上) ── */
  --bg-0: #0A0D12;              /* 页面canvas基准 */
  --abyss-center: #11161F;      /* 深场中心(冷蓝黑·微亮=呼吸感) */
  --abyss-edge: #07090D;        /* 深场边缘(近黑收拢视线) */
  --bg-1: #141A23;              /* L1内容层·标准卡(Apple standard material) */
  --bg-2: #1C2430;              /* L1·嵌套/抬升 */
  --bg-3: #26303F;              /* L1·悬浮/选中 */
  --separator: rgba(255, 255, 255, 0.08);
  --grid-line: rgba(255, 255, 255, 0.04);

  /* ── L2 液态玻璃(功能层专用·内容层禁用!) ── */
  --glass-bg: rgba(17, 22, 30, 0.68);         /* regular变体: blur+降亮度保文字 */
  --glass-bg-strong: rgba(14, 18, 25, 0.84);  /* 命令面板/modal(更高遮光) */
  --glass-border: rgba(255, 255, 255, 0.10);
  --glass-specular: rgba(255, 255, 255, 0.10);/* 光谱高光(iOS26签名·顶部1px内高光) */
  --glass-specular-strong: rgba(255, 255, 255, 0.16);
  --glass-blur: 24px;

  /* ── 潮汐光缘(K3签名·透明度由tide.sync_ratio驱动·JS写入--fusion-alpha) ── */
  --fusion-alpha: 0.12;         /* 平潮≈0.10 · 强共振≤0.55 · 色相永为accent */

  /* ── 文字四级(苹果label层级·玻璃上文字自动更亮=物理vibrancy) ── */
  --text-1: rgba(255, 255, 255, 0.92);
  --text-2: rgba(235, 235, 245, 0.60);
  --text-3: rgba(235, 235, 245, 0.32);
  --text-4: rgba(235, 235, 245, 0.18);

  /* ── 语义色宪法(永不换义) ── */
  --up: #30D158;              /* 涨/盈/多/健康 */
  --down: #FF453A;            /* 跌/亏/空/危险 */
  --warn: #FF9F0A;            /* 告警/逼近阈值 */
  --info: #64D2FF;            /* 信息/V层标识 */
  --accent: #0A84FF;          /* 唯一交互强调色(苹果系统蓝·K3裁决维持) */
  --purple: #BF5AF2;          /* A层标识 */
  --gold: #FFD60A;            /* POC/特殊标记 */
  --v-layer: #64D2FF;
  --l-layer: #0A84FF;
  --a-layer: #BF5AF2;

  /* ── 状态填充(Material禁用/hover规范) ── */
  --state-hover: rgba(255, 255, 255, 0.06);
  --state-active: rgba(255, 255, 255, 0.10);
  --state-selected: rgba(10, 132, 255, 0.15);

  /* ── 字体 ── */
  --font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI",
          Roboto, "PingFang SC", "Microsoft YaHei", "Noto Sans", sans-serif;
  --mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;

  /* ── 字阶(SF体系·大数字光学收紧=苹果细节) ── */
  --fs-hero: 44px;     --fw-hero: 700;   /* hero大数字(一屏≤3个!) */
  --fs-display: 34px;  --fw-display: 700;
  --fs-kpi: 28px;      --fw-kpi: 600;
  --fs-title: 22px;    --fw-title: 600;
  --fs-headline: 17px; --fw-headline: 600;
  --fs-body: 13px;     --fw-body: 400;
  --fs-data: 13px;     --fw-data: 500;
  --fs-label: 11px;    --fw-label: 400;
  --fs-caption: 12px;  --fw-caption: 400;
  --tracking-display: -0.022em;  /* ≥28px数字光学收紧 */
  --tracking-label: 0.02em;      /* 小标签微开 */

  /* ── 间距(4pt栅格) ── */
  --space-1: 4px;  --space-2: 8px;  --space-3: 12px; --space-4: 16px;
  --space-5: 20px; --space-6: 24px; --space-7: 32px;

  /* ── 圆角(iOS26连续性圆角·pill为新惯用语) ── */
  --r-sm: 8px;   /* 按钮/小件 */
  --r-md: 12px;  /* 输入/小卡 */
  --r-lg: 14px;  /* 标准卡 */
  --r-xl: 18px;  /* 大卡/浮空面板 */
  --r-sheet: 20px;
  --r-pill: 999px; /* segmented/badge/选中态 */

  /* ── 动效(苹果spring语言·只给状态迁移·90%静止) ── */
  --dur-fast: 150ms;
  --dur-mid: 300ms;
  --dur-spring: 500ms;
  --ease-spring: cubic-bezier(0.32, 0.72, 0.35, 1);

  /* ── 阴影(暗色=亮度分层·阴影极克制) ── */
  --shadow-card: 0 1px 2px rgba(0, 0, 0, 0.20);
  --shadow-pop: 0 16px 48px rgba(0, 0, 0, 0.50);
  --card-edge-light: inset 0 1px 0 rgba(255, 255, 255, 0.035); /* 内容卡微受光 */

  /* ── 布局 ── */
  --sidebar-w: 220px;
  --sidebar-w-fold: 56px;
  --topbar-h: 52px;
  --statusbar-h: 28px;
}

/* ── 浅色主题(REG-FE12·苹果浅灰阶·语义色不换义只调明度) ── */
[data-theme="light"] {
  --bg-0: #EEEFF3;
  --abyss-center: #FFFFFF;
  --abyss-edge: #E4E6EC;
  --bg-1: #FFFFFF;
  --bg-2: #F2F2F7;
  --bg-3: #E5E5EA;
  --glass-bg: rgba(255, 255, 255, 0.68);
  --glass-bg-strong: rgba(252, 252, 253, 0.88);
  --glass-border: rgba(0, 0, 0, 0.08);
  --glass-specular: rgba(255, 255, 255, 0.70);
  --glass-specular-strong: rgba(255, 255, 255, 0.85);
  --separator: rgba(0, 0, 0, 0.10);
  --grid-line: rgba(0, 0, 0, 0.055);

  --text-1: rgba(0, 0, 0, 0.88);
  --text-2: rgba(60, 60, 67, 0.62);
  --text-3: rgba(60, 60, 67, 0.38);
  --text-4: rgba(60, 60, 67, 0.22);

  --up: #248A3D;
  --down: #D70015;
  --warn: #B25000;
  --info: #006487;
  --accent: #007AFF;
  --purple: #8E3DB8;
  --gold: #8A6D00;
  --v-layer: #006487;
  --l-layer: #007AFF;
  --a-layer: #8E3DB8;

  --state-hover: rgba(0, 0, 0, 0.05);
  --state-active: rgba(0, 0, 0, 0.08);
  --state-selected: rgba(0, 122, 255, 0.12);

  --shadow-card: 0 1px 3px rgba(0, 0, 0, 0.07);
  --shadow-pop: 0 12px 36px rgba(0, 0, 0, 0.16);
  --card-edge-light: inset 0 1px 0 rgba(255, 255, 255, 0.6);
}

/* 液态玻璃(功能层专用: 顶栏/侧栏/命令面板/Data Window·内容层禁贴!) */
.glass {
  background: var(--glass-bg);
  backdrop-filter: blur(var(--glass-blur)) saturate(180%);
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(180%);
  border: 1px solid var(--glass-border);
  box-shadow: var(--shadow-pop), inset 0 1px 0 var(--glass-specular);
}
.glass-strong {
  background: var(--glass-bg-strong);
  backdrop-filter: blur(calc(var(--glass-blur) + 8px)) saturate(190%);
  -webkit-backdrop-filter: blur(calc(var(--glass-blur) + 8px)) saturate(190%);
  border: 1px solid var(--glass-border);
  box-shadow: var(--shadow-pop), inset 0 1px 0 var(--glass-specular-strong);
}
@supports not (backdrop-filter: blur(1px)) {
  .glass { background: rgba(17, 22, 30, 0.95); }
  .glass-strong { background: rgba(14, 18, 25, 0.97); }
}

/* 等宽数字铁律: 所有价格/盈亏/百分比/计数列 */
.num, .kpi, .price, td.num { font-variant-numeric: tabular-nums; }

/* 语义着色工具类(色盲安全: 必配文字/图标) */
.c-up { color: var(--up); }
.c-down { color: var(--down); }
.c-warn { color: var(--warn); }
.c-info { color: var(--info); }
.c-accent { color: var(--accent); }
.c-dim { color: var(--text-2); }
.c-faint { color: var(--text-3); }

/* FE-07 新鲜度三态(全部吃tokens·⛔硬编码·统一watcher口径) */
.fresh-stale .num, .fresh-stale .kpi, .fresh-stale .kpi-sm { filter: saturate(0.45); opacity: 0.68; }
.fresh-dead .num, .fresh-dead .kpi, .fresh-dead .kpi-sm { filter: saturate(0.25); opacity: 0.45; }
.no-data { border: 1px dashed var(--warn); border-radius: 6px; padding: 10px 12px;
  color: var(--text-2); background: transparent; }
.no-data b { color: var(--warn); }
#sse-banner { display: none; }
#sse-banner.show { display: block; padding: 6px 14px; border-bottom: 1px solid var(--separator);
  background: var(--bg-2); color: var(--warn); font-size: 12px; }
#sse-banner.show b { color: var(--text-1); }

/* 动效归零(无障碍) */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
}

/* ── 河图V5审美色板(REG-FE26·JS经getComputedStyle消费·禁硬编码hex) ── */
:root {
  --hetu-water: #64D2FF;
  --hetu-deep: #060B12;
  --hetu-abyss: #0B0E13;
  --hetu-sky: #9FC8E8;
  --hetu-gold: #FFD60A;
  --hetu-basalt: #2A3138;
  --hetu-moon: #EAF2FF;
  --hetu-hemi-sky: #1A2E4A;
  --hetu-hemi-gnd: #05070A;
  --hetu-calm: #5A6C7E;
}
