/* Probe · 石墨轨 Graphite Rail — design tokens */

@font-face {
  font-family: "Space Grotesk";
  src: url("fonts/space-grotesk-500.woff2") format("woff2");
  font-weight: 500; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "Space Grotesk";
  src: url("fonts/space-grotesk-700.woff2") format("woff2");
  font-weight: 700; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "IBM Plex Mono";
  src: url("fonts/plex-mono-400.woff2") format("woff2");
  font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "IBM Plex Mono";
  src: url("fonts/plex-mono-500.woff2") format("woff2");
  font-weight: 500; font-style: normal; font-display: swap;
}

:root {
  color-scheme: light;

  --canvas: #fcfcfd;
  --surface: #ffffff;
  --surface-2: #f3f4f7;
  --rail: #15171e;
  --rail-hover: #1d2029;
  --rail-active: #232630;
  --rail-ink: #b6bbc9;
  --rail-ink-strong: #f2f3f6;
  --rail-line: #262a35;

  --ink: #16181f;
  --ink-2: #4a5060;
  --ink-3: #656c7e;   /* 2026-10-04 对比度修复：surface-2 底 4.37→4.77 过 WCAG AA */
  --line: #e6e7ec;

  --accent: #ff6a2b;
  --accent-ink: #c2410c;          /* 橙在浅底上的文字形态（≥4.5:1） */
  --ok: #0f7a52;
  --warn: #b45309;
  --crit: #d92d20;
  /* 市场方向语义（critique 决策1：与健康态 ok/crit 拆开，值可同源但令牌独立） */
  --up: #d92d20;                  /* A 股：涨=红 */
  --down: #0f7a52;                /* 跌=绿 */
  /* 仪表舱（墨与信号）：舱体恒为深色，文字恒为浅色 */
  --deck: #15171e;
  --deck-line: rgba(255, 255, 255, 0.10);
  --chart: #ff6a2b;                /* 柱体：信号橙（2026-10-04 用户指令「亮丽」，图表入 accent 预算） */
  --deck-ink: #f0f1f5;
  --deck-ink-2: rgba(240, 241, 245, 0.62);

  --font-display: "Space Grotesk", "PingFang SC", "Noto Sans CJK SC", sans-serif;
  --font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  --font-sans: "PingFang SC", "HarmonyOS Sans SC", "MiSans", "Microsoft YaHei",
               "Noto Sans CJK SC", system-ui, sans-serif;

  --rail-w: 224px;
  --topbar-h: 52px;
  --r-sm: 4px;
  --r-md: 6px;
  --t: 120ms cubic-bezier(0.2, 0, 0, 1);
}

[data-theme="dark"] {
  color-scheme: dark;

  --canvas: #0f1015;
  --surface: #15171d;
  --surface-2: #1c1f27;
  --rail: #0a0b0f;
  --rail-hover: #14161c;
  --rail-active: #1a1d25;
  --rail-ink: #9aa0b0;
  --rail-ink-strong: #eceef3;
  --rail-line: #20232c;

  --ink: #e9eaf0;
  --ink-2: #a8adbd;
  --ink-3: #7c8294;
  --line: #262a34;

  --accent-ink: #ff8a55;
  --ok: #31b380;
  --warn: #e0a33a;
  --crit: #f26457;
  --up: #f26457;                  /* 暗色：涨=红 */
  --down: #31b380;                /* 跌=绿 */
  --deck: #1a1e27;                /* 暗色舱体比画布亮一档 */
  --chart: #ff6a2b;                /* 暗面同橙：双主题一致的图表语言 */
}

* { box-sizing: border-box; }

html, body { height: 100%; }

body {
  margin: 0;
  font-family: var(--font-sans);
  font-size: 14px;
  line-height: 1.55;
  color: var(--ink);
  background: var(--canvas);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

::selection { background: color-mix(in srgb, var(--accent) 24%, transparent); }

:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
  border-radius: var(--r-sm);
}

kbd {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 500;
  color: var(--ink-3);
  background: var(--surface-2);
  border: 1px solid var(--line);
  border-radius: var(--r-sm);
  padding: 1px 5px;
}

.num { font-family: var(--font-mono); font-variant-numeric: tabular-nums; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; }
}
