/* 设计语言照 mirasim 客户端(entry/ui/src/theme/theme.css):同一套 8 个主题、曲面阶梯、文字六档、hairline 边线、
   house cobalt(页面里叫 --accent)只管选中 / 焦点 / 链接 / 主按钮,各主题自己的强调色叫 --ember、只表示进行中,机器事实一律 JetBrains Mono + tabular-nums。
   根上两个属性:data-theme = 家族(light / dark),data-theme-name = 具体主题;boot.js 按系统和本机记住的选择写。 */

@font-face { font-family: 'JetBrains Mono'; font-weight: 400; font-display: swap; src: url('/assets/fonts/jetbrains-mono-latin-400-normal.woff2') format('woff2'); }
@font-face { font-family: 'JetBrains Mono'; font-weight: 500; font-display: swap; src: url('/assets/fonts/jetbrains-mono-latin-500-normal.woff2') format('woff2'); }
@font-face { font-family: 'JetBrains Mono'; font-weight: 600; font-display: swap; src: url('/assets/fonts/jetbrains-mono-latin-600-normal.woff2') format('woff2'); }
/* 中文缩到 93%,和拉丁字母的视觉大小对齐(同 mirasim 的 Mirasim CJK) */
@font-face { font-family: 'Tokdaq CJK'; font-weight: 100 450; src: local('PingFangSC-Regular'), local('PingFang SC Regular'), local('HiraginoSansGB-W3'), local('Microsoft YaHei UI'), local('Microsoft YaHei'), local('Noto Sans CJK SC'); unicode-range: U+2E80-2EFF, U+3000-303F, U+3040-30FF, U+3200-9FFF, U+F900-FAFF, U+FF00-FFEF; size-adjust: 93%; }
@font-face { font-family: 'Tokdaq CJK'; font-weight: 451 550; src: local('PingFangSC-Medium'), local('PingFang SC Medium'), local('HiraginoSansGB-W6'), local('Microsoft YaHei UI'), local('Microsoft YaHei'), local('Noto Sans CJK SC'); unicode-range: U+2E80-2EFF, U+3000-303F, U+3040-30FF, U+3200-9FFF, U+F900-FAFF, U+FF00-FFEF; size-adjust: 93%; }
@font-face { font-family: 'Tokdaq CJK'; font-weight: 551 1000; src: local('PingFangSC-Semibold'), local('PingFang SC Semibold'), local('HiraginoSansGB-W6'), local('Microsoft YaHei UI Bold'), local('Microsoft YaHei Bold'), local('Noto Sans CJK SC'); unicode-range: U+2E80-2EFF, U+3000-303F, U+3040-30FF, U+3200-9FFF, U+F900-FAFF, U+FF00-FFEF; size-adjust: 93%; }

:root {
  --font-sans: 'Tokdaq CJK', -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Segoe UI', system-ui, sans-serif;
  --font-mono: 'JetBrains Mono', 'Tokdaq CJK', ui-monospace, 'SF Mono', 'Cascadia Mono', Menlo, Consolas, monospace;
  --text-meta: 11px; --text-dense: 12px; --text-row: 13px; --text-head: 14px; --text-title: 16px; --text-page: 20px;
  --radius-input: 14px; --radius-xl: 10px; --radius-card: 8px; --radius-ctl: 6px; --radius-in: 4px;
  --dur-1: 100ms; --dur-2: 160ms; --dur-3: 240ms;
  --ease-out: cubic-bezier(0.21, 0.47, 0.32, 0.98);

  /* paper(Light) */
  --surface-0: #ffffff; --surface-1: #f7f7f8; --surface-2: #ffffff; --surface-3: #ececef; --surface-elev: #ffffff;
  --th-rail: #dedee5;
  --th-fg: rgba(0,0,0,0.825); --th-fg-2: rgba(24,24,27,0.90); --th-fg-3: rgba(39,39,46,0.82); --th-fg-4: rgba(55,55,63,0.74); --th-fg-5: rgba(74,74,83,0.72); --th-fg-6: rgba(82,82,91,0.30);
  --th-control-bg: #ffffff; --th-control-border: rgba(24,24,27,0.18); --th-control-border-h: rgba(24,24,27,0.32);
  --edge-faint: rgba(24,24,27,0.065); --edge-subtle: rgba(24,24,27,0.11); --edge-default: rgba(24,24,27,0.16); --edge-strong: rgba(24,24,27,0.26);
  --layer-hover: rgba(24,24,27,0.05); --layer-selected: rgba(24,24,27,0.08); --layer-active: rgba(24,24,27,0.14); --well: rgba(24,24,27,0.035);
  --fill-card: rgba(24,24,27,0.03);
  --th-primary: #3060c8; --th-primary-fg: #ffffff; --th-primary-h: #2752b3;
  --ember: oklch(0.55 0.12 55); --ember-text: #995019;
  --brand-cta: #3060c8; --brand-cta-ink: #224cab; --brand-sel: rgba(48,96,200,0.08); --brand-line: rgba(48,96,200,0.55);
  --focus-line: #4877da; --focus-ring: rgba(72,119,218,0.36);
  --stage-bg: var(--surface-1); --app-bg: color-mix(in srgb, var(--surface-1) 95%, #18181b); --th-sidebar: var(--app-bg); --panel-bg: var(--surface-2); --seg-on: var(--surface-2);
  --stage-edge: rgba(24,24,27,0.07); --stage-shadow: 0 1px 2px rgba(16,24,40,0.06), 0 2px 10px -6px rgba(16,24,40,0.12);
  --th-overlay: rgba(24,24,27,0.30); --th-grid-dot: rgba(113,113,122,0.16);
  --elev-1: 0 1px 2px rgba(16,24,40,0.09), 0 8px 20px -6px rgba(16,24,40,0.16);
  --elev-2: 0 1px 2px rgba(16,24,40,0.08), 0 12px 32px -10px rgba(16,24,40,0.22);
  --btn-face: var(--surface-0); --btn-face-shadow: none; --btn-primary-shadow: none;
  --th-ok: #2f8a56; --th-ok-dot: #16a34a; --th-warn: #9a6b00; --th-warn-dot: #d08b00; --th-err: #b4383a; --th-err-dot: #dc514e; --th-info: #40718a; --th-info-dot: #1091c1;
  --badge-ok: #15803d; --badge-ok-bg: rgba(34,197,94,0.1); --badge-ok-bd: rgba(34,197,94,0.22);
  --badge-warn: #645411; --badge-warn-bg: rgba(197,173,76,0.14); --badge-warn-bd: rgba(197,173,76,0.26);
  --badge-err: #8a3633; --badge-err-bg: rgba(158,83,78,0.10); --badge-err-bd: rgba(158,83,78,0.22);
  --badge-info: #075985; --badge-info-bg: rgba(14,165,233,0.1); --badge-info-bd: rgba(14,165,233,0.22);
  --badge-muted: rgba(39,39,46,0.78); --badge-muted-bg: rgba(24,24,27,0.04); --badge-muted-bd: rgba(24,24,27,0.1);
  /* 序列色:mirasim 流量页验过的一套,深浅两色都用它 */
  --series-1: #4f63d2; --series-2: #0891b2; --series-3: #b45309; --series-4: #0d9488; --series-5: #8b6ce0; --series-6: #a16207;
  color-scheme: light;
}

[data-theme="dark"] {
  --surface-0: #1b1b1b; --surface-1: #212121; --surface-2: #262626; --surface-3: #303030; --surface-elev: #2f2f2f;
  --th-rail: #161616;
  --th-fg: #ecebe7; --th-fg-2: rgba(236,235,231,0.945); --th-fg-3: rgba(245,244,238,0.851); --th-fg-4: rgba(237,236,229,0.74); --th-fg-5: rgba(229,228,219,0.64); --th-fg-6: rgba(208,207,196,0.30);
  --th-control-bg: #2a2a2a; --th-control-border: rgba(250,249,245,0.16); --th-control-border-h: rgba(250,249,245,0.30);
  --edge-faint: rgba(250,249,245,0.05); --edge-subtle: rgba(250,249,245,0.08); --edge-default: rgba(250,249,245,0.13); --edge-strong: rgba(250,249,245,0.24);
  --layer-hover: rgba(250,249,245,0.05); --layer-selected: rgba(250,249,245,0.09); --layer-active: rgba(250,249,245,0.15); --well: rgba(0,0,0,0.16);
  --fill-card: rgba(0,0,0,0.18);
  --th-primary: #4c79e0; --th-primary-fg: #ffffff; --th-primary-h: #5d88ea;
  --ember: #d97757; --ember-text: #e2947a;
  --brand-cta: #7499F2; --brand-cta-ink: #9bb8fb; --brand-sel: rgba(116,153,242,0.12); --brand-line: rgba(130,165,250,0.70);
  --focus-line: #7499F2; --focus-ring: rgba(150,182,254,0.40);
  --stage-bg: var(--surface-0); --app-bg: color-mix(in srgb, var(--stage-bg) 74%, #000); --th-sidebar: var(--app-bg); --panel-bg: color-mix(in srgb, var(--stage-bg) 97.5%, #fff); --seg-on: var(--surface-3);
  --stage-edge: rgba(250,249,245,0.07); --stage-shadow: 0 1px 2px rgba(0,0,0,0.25);
  --th-overlay: rgba(0,0,0,0.58); --th-grid-dot: rgba(250,249,245,0.08);
  --elev-1: 0 1px 0 rgba(255,255,255,0.03), 0 6px 18px -8px rgba(0,0,0,0.6);
  --elev-2: 0 1px 0 rgba(255,255,255,0.03), 0 16px 40px -12px rgba(0,0,0,0.75);
  --btn-face: rgba(250,249,245,0.035); --btn-face-shadow: 0 1px 2px rgba(0,0,0,0.28);
  --btn-primary-shadow: none;
  --th-ok: #7ee2a6; --th-ok-dot: #34d07f; --th-warn: #f3d27a; --th-warn-dot: #e6b93a; --th-err: #ff9d95; --th-err-dot: #f2766d; --th-info: #74d1fd; --th-info-dot: #2dbdf5;
  --badge-ok: #d1fae5; --badge-ok-bg: rgba(16,185,129,0.16); --badge-ok-bd: rgba(52,211,153,0.28);
  --badge-warn: #fde68a; --badge-warn-bg: rgba(253,230,138,0.16); --badge-warn-bd: rgba(253,230,138,0.28);
  --badge-err: #ffbeb8; --badge-err-bg: rgba(255,190,184,0.16); --badge-err-bd: rgba(255,190,184,0.28);
  --badge-info: #bae6fd; --badge-info-bg: rgba(125,211,252,0.14); --badge-info-bd: rgba(125,211,252,0.30);
  --badge-muted: rgba(240,239,232,0.76); --badge-muted-bg: rgba(250,249,245,0.06); --badge-muted-bd: rgba(250,249,245,0.16);
  color-scheme: dark;
}

[data-theme-name="darcula"] { --surface-0: #2b2b2b; --surface-1: #303234; --surface-2: #383a3c; --surface-3: #404345; --surface-elev: #45494b; --th-rail: #262728; --th-fg: #f0f1f2; --th-fg-2: rgba(228,231,235,0.977); --th-fg-3: rgba(240,241,242,0.845); --th-fg-4: rgba(240,241,242,0.769); --th-fg-5: #b3bac0; --th-fg-6: rgba(169,183,198,0.35); --ember: #cc7832; --ember-text: #ffad6b; --th-control-bg: #2e3031; }
[data-theme-name="one-dark"] { --surface-0: #282c34; --surface-1: #21252b; --surface-2: #282c34; --surface-3: #30353e; --surface-elev: #373d47; --th-rail: #1b1e24; --th-fg: #e6ebf2; --th-fg-2: rgba(218,225,235,0.978); --th-fg-3: rgba(230,235,242,0.852); --th-fg-4: rgba(230,235,242,0.780); --th-fg-5: #abb4bf; --th-fg-6: rgba(171,178,191,0.35); --ember: #61afef; --ember-text: #61afef; --th-control-bg: #252a32; }
[data-theme-name="dracula"] { --surface-0: #282a36; --surface-1: #21222c; --surface-2: #282a36; --surface-3: #30313e; --surface-elev: #343746; --th-rail: #191a21; --th-fg: #f8f8f2; --th-fg-2: rgba(248,248,242,0.930); --th-fg-3: rgba(248,248,242,0.861); --th-fg-4: rgba(248,248,242,0.793); --th-fg-5: #babed5; --th-fg-6: rgba(190,196,222,0.34); --ember: #bd93f9; --ember-text: #bd93f9; --th-control-bg: #252632; }
[data-theme-name="nord"] { --surface-0: #2e3440; --surface-1: #272c36; --surface-2: #2e3440; --surface-3: #3b4252; --surface-elev: #434c5e; --th-rail: #20242d; --th-fg: #eceff4; --th-fg-2: rgba(229,233,240,0.955); --th-fg-3: rgba(236,239,244,0.849); --th-fg-4: rgba(236,239,244,0.774); --th-fg-5: #b1b7c3; --th-fg-6: rgba(216,222,233,0.33); --ember: #88c0d0; --ember-text: #9ccbd7; --th-control-bg: #2a303b; }
[data-theme-name="tokyo-night"] { --surface-0: #1a1b26; --surface-1: #16161e; --surface-2: #1a1b26; --surface-3: #222334; --surface-elev: #24253a; --th-rail: #101016; --th-fg: #e8ecfc; --th-fg-2: rgba(232,236,252,0.932); --th-fg-3: #c6cff6; --th-fg-4: rgba(192,202,245,0.948); --th-fg-5: rgba(192,202,245,0.870); --th-fg-6: rgba(192,202,245,0.33); --ember: #7aa2f7; --ember-text: #7aa2f7; --th-control-bg: #1d1e2b; }
[data-theme-name="solarized-light"] { --surface-0: #fdf6e3; --surface-1: #eee8d5; --surface-2: #fdf6e3; --surface-3: #e9e2cd; --surface-elev: #fffaf0; --th-rail: #ddd6bd; --th-fg: rgba(0,43,54,0.95); --th-fg-2: rgba(7,54,66,0.925); --th-fg-3: rgba(7,54,66,0.846); --th-fg-4: rgba(7,54,66,0.766); --th-fg-5: rgba(7,54,66,0.685); --th-fg-6: rgba(101,123,131,0.4); --edge-faint: rgba(0,43,54,0.06); --edge-subtle: rgba(0,43,54,0.1); --edge-default: rgba(0,43,54,0.14); --edge-strong: rgba(0,43,54,0.24); --layer-hover: rgba(0,43,54,0.07); --ember: #268bd2; --ember-text: #00689f; --th-control-bg: #fffaf0; --th-control-border: rgba(0,43,54,0.22); --th-control-border-h: rgba(0,43,54,0.36); --th-ok: #438139; --th-ok-dot: #48933c; --th-warn: #b55d00; --th-warn-dot: #cc6a00; --th-err: #cd4946; --th-err-dot: #df4846; --th-info: #3d6d85; --th-info-dot: #0e8ebd; }

/* 旧页面用的变量名对到新 token 上:页面各处的规则不用逐条改就跟着主题走 */
:root, [data-theme] {
  --bg: var(--app-bg); --side: var(--th-sidebar); --panel: var(--panel-bg); --card: var(--panel-bg);
  --sunk: var(--layer-hover); --hover: var(--layer-hover);
  --ink: var(--th-fg); --ink-2: var(--th-fg-2); --muted: var(--th-fg-4); --faint: var(--th-fg-5);
  --line: var(--edge-subtle); --line-2: var(--edge-default);
  --accent: var(--brand-cta); --accent-ink: var(--brand-cta-ink); --accent-weak: var(--brand-sel);
  --primary: var(--th-primary); --primary-ink: var(--th-primary-fg);
  --ok: var(--th-ok); --ok-weak: var(--badge-ok-bg); --warn: var(--th-warn); --warn-weak: var(--badge-warn-bg); --bad: var(--th-err); --bad-weak: var(--badge-err-bg);
  --bar: var(--th-fg-6); --grid: var(--edge-subtle);
  --pop: var(--elev-2);
  --font: var(--font-sans); --mono: var(--font-mono);
  --r: var(--radius-card); --strip-h: 0px;
}
