/* ═══════════════════════════════════════════════════════
   Auto-generated from design-tokens/themes/*.json
   运行 `node tools/ui/build-tokens.mjs` 重新生成
   请勿手动编辑此文件
   ═══════════════════════════════════════════════════════ */

:root {
  --available-skins: "metro,cartoon,cultivation,cyberpunk,WinterSun";
  --skin-labels: "metro:Metro,cartoon:Cartoon,cultivation:Ink Wash Xianxia,cyberpunk:Neon City Cyberpunk,WinterSun:WinterSun";
}

/* ═══ Metro ═══ */

:root,
:root[data-skin='metro'][data-theme='light'] {
  color-scheme: light;

  /* ─── 共享令牌 ─── */
  /* === 元数据 === */
  --ui-scale: 1;

  /* === 字体 === */
  --font-ui:
    -apple-system,
    BlinkMacSystemFont,
    'PingFang SC',
    'Hiragino Sans GB',
    'Microsoft YaHei',
    'Segoe UI',
    'Helvetica Neue',
    Arial,
    sans-serif;
  --font-mono: 'SF Mono', 'Menlo', 'Consolas', monospace;

  /* === 文字尺寸 === */
  --text-2xs: calc(8px * var(--ui-scale, 1));
  --text-xs: calc(9px * var(--ui-scale, 1));
  --text-sm: calc(10px * var(--ui-scale, 1));
  --text-caption: calc(11px * var(--ui-scale, 1));
  --text-body-sm: calc(12px * var(--ui-scale, 1));
  --text-body: calc(13px * var(--ui-scale, 1));
  --text-body-lg: calc(14px * var(--ui-scale, 1));
  --text-subtitle: calc(15px * var(--ui-scale, 1));
  --text-title: calc(16px * var(--ui-scale, 1));
  --text-heading: calc(18px * var(--ui-scale, 1));
  --text-display: calc(20px * var(--ui-scale, 1));

  /* === 间距 === */
  --space-2xs: 4px;
  --space-xs: 8px;
  --space-sm: 12px;
  --space-md: 16px;
  --space-lg: 24px;
  --space-xl: 32px;
  --space-2xl: 48px;

  /* === 圆角 === */
  --radius-2xs: 4px;
  --radius-xs: 8px;
  --radius-sm: 12px;
  --radius-md: 16px;
  --radius-lg: 16px;
  --radius-xl: 20px;
  --radius-pill: 999px;
  --radius-circle: 50%;

  /* === 模糊 === */
  --blur-sm: 10px;
  --blur-md: 18px;
  --blur-lg: 28px;

  /* === 过渡 === */
  --transition-fast: 0.16s ease;
  --transition-base: 0.22s ease;
  --transition-slow: 0.32s cubic-bezier(0.22, 1, 0.36, 1);

  /* === 动效 === */
  --motion-fast: 160ms;
  --motion-base: 220ms;
  --motion-slow: 320ms;
  --easing-standard: cubic-bezier(0.22, 1, 0.36, 1);
  --easing-exit: cubic-bezier(0.4, 0, 1, 1);

  /* === 品牌色 === */
  --brand-primary: #2d89ef;
  --brand-primary-strong: #0050ef;
  --brand-secondary: #00aba9;
  --brand-accent: #da532c;
  --brand-accent-strong: #f0b03e;
  --brand-purple: #603cba;
  --brand-magenta: #ff4d94;
  --brand-yellow: #e3a21a;
  --brand-lime: #99b433;
  --brand-brown: #9f6b4e;

  /* === 状态色 === */
  --status-success: #00a300;
  --status-warning: #e3a21a;
  --status-danger: #e51400;
  --status-info: #2d89ef;

  /* === 账户 === */
  --account-avatar-sm: 32px;
  --account-avatar-md: 40px;
  --account-avatar-lg: 64px;
  --account-avatar-radius: 50%;

  /* === 字重 === */
  --weight-light: 300;
  --weight-normal: 400;
  --weight-medium: 500;
  --weight-semibold: 600;
  --weight-bold: 700;
  --weight-extrabold: 800;
  --weight-black: 900;

  /* === 透明度 === */
  --opacity-subtle: 0.08;
  --opacity-soft: 0.16;
  --opacity-medium: 0.32;
  --opacity-strong: 0.64;
  --opacity-full: 0.88;

  /* === 层叠 === */
  --z-base: 0;
  --z-dropdown: 100;
  --z-sticky: 200;
  --z-overlay: 300;
  --z-modal: 400;
  --z-toast: 500;
  --z-tooltip: 600;
  --z-max: 9999;

  /* === 图标尺寸 === */
  --icon-size-xs: calc(14px * var(--ui-scale, 1));
  --icon-size-sm: calc(16px * var(--ui-scale, 1));
  --icon-size-md: calc(20px * var(--ui-scale, 1));
  --icon-size-lg: calc(24px * var(--ui-scale, 1));
  --icon-size-xl: calc(32px * var(--ui-scale, 1));

  /* ─── Light 主题令牌 ─── */
  /* === 账户 === */
  --account-badge-guest-bg: rgba(100, 116, 139, 0.14);
  --account-badge-guest-text: #475569;
  --account-badge-pro-bg: rgba(240, 176, 62, 0.14);
  --account-badge-pro-text: #9d5a00;
  --account-badge-pro-border: rgba(218, 83, 44, 0.22);
  --account-sync-local-bg: rgba(100, 116, 139, 0.08);
  --account-sync-local-text: #64748b;
  --account-sync-ready-bg: rgba(45, 137, 239, 0.08);
  --account-sync-ready-text: #0050ef;
  --account-sync-done-bg: rgba(0, 163, 0, 0.1);
  --account-sync-done-text: #0b7c38;
  --account-sync-conflict-bg: rgba(218, 83, 44, 0.1);
  --account-sync-conflict-text: #b45309;
  --account-locked-bg: rgba(100, 116, 139, 0.05);
  --account-locked-border: rgba(116, 137, 165, 0.18);
  --account-locked-text: #64748b;
  --account-card-bg: rgba(255, 255, 255, 0.7);
  --account-card-border: rgba(71, 93, 121, 0.12);

  /* === 图标色 === */
  --icon-muted: #607287;
  --icon-subtle: #76879b;

  /* === 表面色 === */
  --surface-page: #eef3f7;
  --surface-main: #eef3f7;
  --surface-canvas: rgba(255, 255, 255, 0.68);
  --surface-elevated: rgba(255, 255, 255, 0.84);
  --surface-soft: rgba(255, 255, 255, 0.62);
  --surface-glass: rgba(255, 255, 255, 0.58);
  --surface-glass-strong: rgba(255, 255, 255, 0.82);
  --surface-panel: rgba(250, 252, 255, 0.72);
  --surface-panel-strong: rgba(255, 255, 255, 0.9);
  --surface-card: rgba(255, 255, 255, 0.56);
  --surface-overlay: rgba(250, 252, 255, 0.96);
  --surface-code: #102030;
  --surface-code-alt: #16283d;
  --surface-input: rgba(255, 255, 255, 0.82);

  /* === 边框 === */
  --border-subtle: rgba(116, 137, 165, 0.16);
  --border-soft: rgba(71, 93, 121, 0.2);
  --border-strong: rgba(58, 79, 108, 0.32);
  --border-accent: rgba(45, 137, 239, 0.3);
  --border-accent-strong: rgba(0, 80, 239, 0.42);
  --border-light: #d6dee8;
  --border-medium: #b7c5d8;
  --border-dark: #8da0b9;
  --border-color: #c8d4e2;

  /* === 文字色 === */
  --text-main: #112033;
  --text-primary: #112033;
  --text-secondary: #334155;
  --text-muted: #475569;
  --text-soft: #64748b;
  --text-tertiary: #94a3b8;
  --text-invert: #ffffff;
  --code-text: #dce6f5;
  --text-color: #112033;
  --text-on-accent: #ffffff;

  /* === 阴影 === */
  --shadow-sm: 0 10px 24px -18px rgba(17, 32, 51, 0.18);
  --shadow-md: 0 18px 44px -28px rgba(17, 32, 51, 0.22);
  --shadow-lg: 0 28px 72px -36px rgba(17, 32, 51, 0.28);
  --shadow-glow: 0 0 0 1px rgba(45, 137, 239, 0.14), 0 18px 48px -32px rgba(45, 137, 239, 0.24);
  --shadow-inset: inset 0 1px 0 rgba(255, 255, 255, 0.55);
  --shadow-focus-ring: 0 0 0 3px rgba(45, 137, 239, 0.2);

  /* === 温色强调 === */
  --accent-warm-bg: rgba(255, 152, 0, 0.08);
  --accent-warm-bg-strong: rgba(255, 152, 0, 0.15);
  --accent-warm-border: rgba(255, 152, 0, 0.25);
  --accent-warm-border-strong: rgba(255, 152, 0, 0.4);
  --accent-warm-text: #ff9800;

  /* === 面板 === */
  --panel-tint: rgba(45, 137, 239, 0.09);

  /* === 背景 === */
  --bg-secondary: #f7fafd;
  --bg-tertiary: #eef3f8;
  --bg-hover: #e3ebf4;
  --bg-color: #eef3f7;

  /* === 输入框 === */
  --input-bg: rgba(255, 255, 255, 0.88);
  --input-border: #c8d4e2;

  /* === HUD === */
  --hud-bg: rgba(255, 255, 255, 0.72);
  --hud-border: rgba(218, 83, 44, 0.28);
  --hud-text: #5d6e84;
  --hud-value: #112033;

  /* === 选项 === */
  --choice-panel-bg: rgba(255, 255, 255, 0.42);
  --choice-panel-border: rgba(45, 137, 239, 0.2);
  --choice-item-bg: rgba(255, 255, 255, 0.7);
  --choice-item-border: rgba(200, 212, 226, 0.82);
  --choice-item-hover-bg: rgba(242, 247, 255, 0.98);
  --choice-item-active-bg: rgba(227, 238, 255, 0.98);
  --choice-title: #0050ef;
  --choice-text-primary: #112033;
  --choice-text-secondary: #435368;
  --choice-default-chip-bg: rgba(45, 137, 239, 0.1);

  /* === 固定栏 === */
  --sticky-bg: rgba(255, 255, 255, 0.76);
  --sticky-text: #5d6e84;
  --sticky-value: #112033;

  /* === 位置 === */
  --location-separator: rgba(17, 32, 51, 0.22);

  /* === 思考 === */
  --thinking-text: #61748a;

  /* === 流式 === */
  --stream-indicator-inner: #f1f6fb;

  /* === 聊天气泡 === */
  --chat-bubble-bg: rgba(255, 255, 255, 0.68);
  --chat-bubble-user-bg: rgba(232, 243, 255, 0.82);
  --chat-bubble-hover-bg: rgba(255, 255, 255, 0.92);
  --chat-bubble-text: #112033;
  --chat-bubble-label: #435368;
  --chat-bubble-border-ai: rgba(45, 137, 239, 0.26);
  --chat-bubble-border-user: rgba(0, 163, 0, 0.24);
  --chat-bg: #132438;

  /* === 设计卡片 === */
  --dcv-bg: #f1f6fb;
  --dcv-toolbar-bg: rgba(255, 255, 255, 0.78);
  --dcv-toolbar-border: rgba(116, 137, 165, 0.16);
  --dcv-section-bg: rgba(255, 255, 255, 0.78);
  --dcv-section-border: rgba(116, 137, 165, 0.16);
  --dcv-section-hover: rgba(248, 251, 255, 0.98);
  --dcv-text-primary: #112033;
  --dcv-text-secondary: #314156;
  --dcv-text-muted: #5d6e84;
  --dcv-text-faint: #7d8ea5;
  --dcv-subitem-bg: rgba(242, 247, 255, 0.84);
  --dcv-subitem-border: rgba(160, 177, 198, 0.24);
  --dcv-expanded-bg: rgba(232, 243, 255, 0.96);
  --dcv-field-bg: rgba(255, 255, 255, 0.9);
  --dcv-field-border: rgba(200, 212, 226, 0.82);
  --dcv-btn-hover-bg: rgba(45, 137, 239, 0.08);
  --dcv-btn-hover-border: rgba(45, 137, 239, 0.2);
  --dcv-btn-hover-color: #0050ef;
  --dcv-icon-muted: rgba(17, 32, 51, 0.46);
  --dcv-icon-hover: rgba(17, 32, 51, 0.78);
  --dcv-scrollbar: rgba(71, 93, 121, 0.2);
  --dcv-input-bg: rgba(255, 255, 255, 0.92);
  --dcv-input-border: rgba(200, 212, 226, 0.82);
  --dcv-input-text: #112033;
  --dcv-modal-bg: rgba(250, 252, 255, 0.98);
  --dcv-modal-border: rgba(160, 177, 198, 0.28);
  --dcv-modal-text: #112033;
  --dcv-modal-btn-bg: rgba(255, 255, 255, 0.84);
  --dcv-modal-btn-border: rgba(116, 137, 165, 0.18);
  --dcv-modal-btn-text: #314156;
  --dcv-cognitive-warning-bg: rgba(240, 176, 62, 0.14);
  --dcv-cognitive-warning-border: rgba(218, 83, 44, 0.32);
  --dcv-cognitive-warning-title: #9d5a00;
  --dcv-cognitive-warning-text: #6c4100;
  --dcv-cognitive-warning-item-bg: rgba(255, 255, 255, 0.72);
  --dcv-cognitive-warning-item-border: rgba(157, 90, 0, 0.12);
  --dcv-cognitive-warning-path-bg: rgba(240, 176, 62, 0.2);
  --dcv-cognitive-warning-path-text: #6c4100;

  /* === 语法高亮 === */
  --syntax-key: #9cdcfe;
  --syntax-string: #ce9178;
  --syntax-number: #b5cea8;
  --syntax-boolean: #569cd6;
  --syntax-null: #569cd6;
  --syntax-comment: #6a9955;
  --syntax-bracket: #d4d4d4;

  /* === 叙事色 === */
  --narrative-dialogue: #1565c0;
  --narrative-thought: #7b1fa2;
  --narrative-speaker: #d84315;
  --narrative-action: #2e7d32;

  /* === 启动器 === */
  --launcher-surface: #0a0a12;
  --launcher-surface-alt: #111827;
  --launcher-glass: rgba(26, 26, 46, 0.95);
  --launcher-glass-light: rgba(26, 26, 46, 0.72);
  --launcher-border: rgba(255, 255, 255, 0.1);
  --launcher-border-strong: rgba(255, 255, 255, 0.18);
  --launcher-btn-primary: #4f46e5;
  --launcher-btn-primary-hover: #4338ca;
  --launcher-star: #facc15;
  --launcher-text: rgba(255, 255, 255, 0.92);
  --launcher-text-muted: rgba(255, 255, 255, 0.6);
  --launcher-text-faint: rgba(255, 255, 255, 0.4);
  --launcher-shadow: rgba(0, 0, 0, 0.5);
  --launcher-overlay: rgba(0, 0, 0, 0.4);

  /* === 加载 === */
  --loading-bg: rgba(252, 250, 246, 0.98);
  --loading-bg-strong: rgba(238, 233, 226, 0.95);
  --loading-card-bg: rgba(255, 255, 255, 0.82);
  --loading-gradient-start: #B5EAD7;
  --loading-gradient-end: #E2F0CB;
  --loading-progress-start: #FFD3B6;
  --loading-progress-mid: #FF9AA2;
  --loading-progress-end: #C7CEEA;

  /* === 调试分段 === */
  --segment-summary: #4caf50;
  --segment-npc-archive: #2196f3;
  --segment-mainline: #ff9800;
  --segment-conversation: #9c27b0;
  --segment-narrative: #e91e63;
  --segment-reference: #00bcd4;
  --segment-sms: #8bc34a;
  --segment-game-state: #ffc107;
  --segment-gm: #607d8b;
  --segment-step-1: #673ab7;
  --segment-step-2: #3f51b5;
  --segment-step-3: #009688;
  --segment-core: #42a5f5;
  --segment-custom: #ef5350;
  --segment-module: #26a69a;
  --segment-country: #5c6bc0;
  --segment-timeline: #66bb6a;

  /* ─── 兼容别名（旧变量映射到新语义层） ─── */
  --primary-color: var(--brand-primary);
  --primary-gradient: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-primary-strong) 100%);
  --panel-bg: var(--surface-panel);
  --panel-border: var(--border-soft);
  --panel-shadow: var(--shadow-md);
  --glass-bg: var(--surface-glass);
  --glass-bg-strong: var(--surface-glass-strong);
  --glass-border: var(--border-soft);
  --metro-blue: var(--brand-primary);
  --metro-cobalt: var(--brand-primary-strong);
  --metro-teal: var(--brand-secondary);
  --metro-orange: var(--brand-accent);
  --metro-yellow: var(--brand-yellow);
  --metro-purple: var(--brand-purple);
  --metro-magenta: var(--brand-magenta);
  --metro-green: var(--status-success);
  --metro-red: var(--status-danger);
  --metro-lime: var(--brand-lime);
  --metro-brown: var(--brand-brown);
  --metro-dark: var(--surface-code);

}

:root[data-skin='metro'][data-theme='dark'] {
  color-scheme: dark;

  /* === 账户 === */
  --account-badge-guest-bg: rgba(116, 145, 174, 0.18);
  --account-badge-guest-text: #9cb0c6;
  --account-badge-pro-bg: rgba(240, 176, 62, 0.16);
  --account-badge-pro-text: #f6c56a;
  --account-badge-pro-border: rgba(218, 83, 44, 0.34);
  --account-sync-local-bg: rgba(116, 145, 174, 0.1);
  --account-sync-local-text: #8fa4bc;
  --account-sync-ready-bg: rgba(45, 137, 239, 0.14);
  --account-sync-ready-text: #8cc0ff;
  --account-sync-done-bg: rgba(0, 163, 0, 0.14);
  --account-sync-done-text: #6dd58f;
  --account-sync-conflict-bg: rgba(218, 83, 44, 0.16);
  --account-sync-conflict-text: #f0b03e;
  --account-locked-bg: rgba(116, 145, 174, 0.06);
  --account-locked-border: rgba(116, 145, 174, 0.16);
  --account-locked-text: #7f95ad;
  --account-card-bg: rgba(12, 22, 36, 0.82);
  --account-card-border: rgba(116, 145, 174, 0.14);

  /* === 图标色 === */
  --icon-muted: #9db0c5;
  --icon-subtle: #7e94ad;

  /* === 表面色 === */
  --surface-page: #09131f;
  --surface-main: #09131f;
  --surface-canvas: rgba(8, 19, 31, 0.82);
  --surface-elevated: rgba(12, 22, 34, 0.88);
  --surface-soft: rgba(16, 29, 45, 0.76);
  --surface-glass: rgba(15, 28, 44, 0.72);
  --surface-glass-strong: rgba(17, 32, 50, 0.9);
  --surface-panel: rgba(12, 22, 36, 0.86);
  --surface-panel-strong: rgba(14, 26, 42, 0.94);
  --surface-card: rgba(17, 29, 44, 0.82);
  --surface-overlay: rgba(8, 18, 32, 0.94);
  --surface-code: #08111b;
  --surface-code-alt: #0d1a28;
  --surface-input: rgba(11, 22, 36, 0.92);

  /* === 边框 === */
  --border-subtle: rgba(140, 168, 197, 0.12);
  --border-soft: rgba(116, 145, 174, 0.22);
  --border-strong: rgba(138, 168, 201, 0.36);
  --border-accent: rgba(45, 137, 239, 0.38);
  --border-accent-strong: rgba(0, 80, 239, 0.55);
  --border-light: #29405a;
  --border-medium: #38516d;
  --border-dark: #4e6887;
  --border-color: #31465e;

  /* === 文字色 === */
  --text-main: #e1e8f0;
  --text-primary: #e1e8f0;
  --text-secondary: #b6c4d6;
  --text-muted: #9caec2;
  --text-soft: #7f95ad;
  --text-tertiary: #6c809a;
  --text-invert: #08111b;
  --code-text: #d6e1ef;
  --text-color: #e1e8f0;
  --text-on-accent: #ffffff;

  /* === 阴影 === */
  --shadow-sm: 0 14px 30px -20px rgba(0, 0, 0, 0.54);
  --shadow-md: 0 22px 52px -28px rgba(0, 0, 0, 0.62);
  --shadow-lg: 0 32px 80px -36px rgba(0, 0, 0, 0.72);
  --shadow-glow: 0 0 0 1px rgba(45, 137, 239, 0.18), 0 24px 56px -36px rgba(45, 137, 239, 0.36);
  --shadow-inset: inset 0 1px 0 rgba(255, 255, 255, 0.06);
  --shadow-focus-ring: 0 0 0 3px rgba(45, 137, 239, 0.35);

  /* === 温色强调 === */
  --accent-warm-bg: rgba(240, 176, 62, 0.12);
  --accent-warm-bg-strong: rgba(240, 176, 62, 0.22);
  --accent-warm-border: rgba(240, 176, 62, 0.3);
  --accent-warm-border-strong: rgba(240, 176, 62, 0.48);
  --accent-warm-text: #f0b03e;

  /* === 面板 === */
  --panel-tint: rgba(45, 137, 239, 0.16);

  /* === 背景 === */
  --bg-secondary: #101d2b;
  --bg-tertiary: #142132;
  --bg-hover: #193149;
  --bg-color: #09131f;

  /* === 输入框 === */
  --input-bg: rgba(11, 22, 36, 0.94);
  --input-border: #31465e;

  /* === HUD === */
  --hud-bg: rgba(16, 29, 45, 0.76);
  --hud-border: rgba(240, 176, 62, 0.32);
  --hud-text: #b5c4d6;
  --hud-value: #f3f7fb;

  /* === 选项 === */
  --choice-panel-bg: rgba(12, 24, 38, 0.9);
  --choice-panel-border: rgba(45, 137, 239, 0.3);
  --choice-item-bg: rgba(18, 32, 49, 0.92);
  --choice-item-border: rgba(116, 145, 174, 0.24);
  --choice-item-hover-bg: rgba(24, 42, 63, 0.96);
  --choice-item-active-bg: rgba(31, 54, 78, 0.98);
  --choice-title: #7fb5ff;
  --choice-text-primary: #e1e8f0;
  --choice-text-secondary: #b6c4d6;
  --choice-default-chip-bg: rgba(45, 137, 239, 0.14);

  /* === 固定栏 === */
  --sticky-bg: rgba(12, 24, 38, 0.92);
  --sticky-text: #b6c4d6;
  --sticky-value: #f3f7fb;

  /* === 位置 === */
  --location-separator: rgba(182, 196, 214, 0.28);

  /* === 思考 === */
  --thinking-text: #9cb0c6;

  /* === 流式 === */
  --stream-indicator-inner: #1c2a3c;

  /* === 聊天气泡 === */
  --chat-bubble-bg: rgba(13, 26, 40, 0.92);
  --chat-bubble-user-bg: rgba(14, 31, 48, 0.92);
  --chat-bubble-hover-bg: rgba(19, 37, 55, 0.96);
  --chat-bubble-text: #e1e8f0;
  --chat-bubble-label: #b6c4d6;
  --chat-bubble-border-ai: rgba(45, 137, 239, 0.44);
  --chat-bubble-border-user: rgba(0, 163, 0, 0.32);
  --chat-bg: #091522;

  /* === 设计卡片 === */
  --dcv-bg: #09131f;
  --dcv-toolbar-bg: rgba(8, 18, 32, 0.9);
  --dcv-toolbar-border: rgba(116, 145, 174, 0.12);
  --dcv-section-bg: rgba(12, 22, 36, 0.84);
  --dcv-section-border: rgba(116, 145, 174, 0.12);
  --dcv-section-hover: rgba(18, 32, 49, 0.9);
  --dcv-text-primary: #e1e8f0;
  --dcv-text-secondary: #b6c4d6;
  --dcv-text-muted: #9caec2;
  --dcv-text-faint: #7f95ad;
  --dcv-subitem-bg: rgba(15, 28, 44, 0.78);
  --dcv-subitem-border: rgba(116, 145, 174, 0.12);
  --dcv-expanded-bg: rgba(17, 32, 50, 0.9);
  --dcv-field-bg: rgba(11, 22, 36, 0.92);
  --dcv-field-border: rgba(116, 145, 174, 0.16);
  --dcv-btn-hover-bg: rgba(45, 137, 239, 0.14);
  --dcv-btn-hover-border: rgba(45, 137, 239, 0.28);
  --dcv-btn-hover-color: #8cc0ff;
  --dcv-icon-muted: rgba(182, 196, 214, 0.42);
  --dcv-icon-hover: rgba(225, 232, 240, 0.84);
  --dcv-scrollbar: rgba(116, 145, 174, 0.24);
  --dcv-input-bg: rgba(11, 22, 36, 0.96);
  --dcv-input-border: rgba(116, 145, 174, 0.16);
  --dcv-input-text: #e1e8f0;
  --dcv-modal-bg: rgba(8, 18, 32, 0.96);
  --dcv-modal-border: rgba(116, 145, 174, 0.16);
  --dcv-modal-text: #e1e8f0;
  --dcv-modal-btn-bg: rgba(15, 28, 44, 0.84);
  --dcv-modal-btn-border: rgba(116, 145, 174, 0.18);
  --dcv-modal-btn-text: #b6c4d6;
  --dcv-cognitive-warning-bg: rgba(240, 176, 62, 0.14);
  --dcv-cognitive-warning-border: rgba(218, 83, 44, 0.32);
  --dcv-cognitive-warning-title: #f0b03e;
  --dcv-cognitive-warning-text: #ffe1b4;
  --dcv-cognitive-warning-item-bg: rgba(240, 176, 62, 0.08);
  --dcv-cognitive-warning-item-border: rgba(240, 176, 62, 0.18);
  --dcv-cognitive-warning-path-bg: rgba(240, 176, 62, 0.14);
  --dcv-cognitive-warning-path-text: #ffd89a;

  /* === 语法高亮 === */
  --syntax-key: #89b4fa;
  --syntax-string: #f0a878;
  --syntax-number: #a6d189;
  --syntax-boolean: #7cb8f0;
  --syntax-null: #7cb8f0;
  --syntax-comment: #6a9955;
  --syntax-bracket: #cdd6f4;

  /* === 叙事色 === */
  --narrative-dialogue: #90caf9;
  --narrative-thought: #ce93d8;
  --narrative-speaker: #ffcc80;
  --narrative-action: #a5d6a7;

  /* === 启动器 === */
  --launcher-surface: #0a0a12;
  --launcher-surface-alt: #111827;
  --launcher-glass: rgba(26, 26, 46, 0.95);
  --launcher-glass-light: rgba(26, 26, 46, 0.72);
  --launcher-border: rgba(255, 255, 255, 0.1);
  --launcher-border-strong: rgba(255, 255, 255, 0.18);
  --launcher-btn-primary: #6366f1;
  --launcher-btn-primary-hover: #4f46e5;
  --launcher-star: #facc15;
  --launcher-text: rgba(255, 255, 255, 0.92);
  --launcher-text-muted: rgba(255, 255, 255, 0.6);
  --launcher-text-faint: rgba(255, 255, 255, 0.4);
  --launcher-shadow: rgba(0, 0, 0, 0.6);
  --launcher-overlay: rgba(0, 0, 0, 0.5);

  /* === 加载 === */
  --loading-bg: rgba(32, 36, 42, 0.98);
  --loading-bg-strong: rgba(18, 20, 24, 0.95);
  --loading-card-bg: rgba(42, 48, 58, 0.82);
  --loading-gradient-start: #4A7A64;
  --loading-gradient-end: #687E54;
  --loading-progress-start: #C28E6A;
  --loading-progress-mid: #B86B72;
  --loading-progress-end: #858BBA;

  /* === 调试分段 === */
  --segment-summary: #66bb6a;
  --segment-npc-archive: #42a5f5;
  --segment-mainline: #ffa726;
  --segment-conversation: #ab47bc;
  --segment-narrative: #ec407a;
  --segment-reference: #26c6da;
  --segment-sms: #9ccc65;
  --segment-game-state: #ffca28;
  --segment-gm: #78909c;
  --segment-step-1: #7e57c2;
  --segment-step-2: #5c6bc0;
  --segment-step-3: #26a69a;
  --segment-core: #64b5f6;
  --segment-custom: #ef5350;
  --segment-module: #4db6ac;
  --segment-country: #7986cb;
  --segment-timeline: #81c784;

  /* ─── 兼容别名（旧变量映射到新语义层） ─── */
  --primary-color: var(--brand-primary);
  --primary-gradient: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-primary-strong) 100%);
  --panel-bg: var(--surface-panel);
  --panel-border: var(--border-soft);
  --panel-shadow: var(--shadow-md);
  --glass-bg: var(--surface-glass);
  --glass-bg-strong: var(--surface-glass-strong);
  --glass-border: var(--border-soft);
  --metro-blue: var(--brand-primary);
  --metro-cobalt: var(--brand-primary-strong);
  --metro-teal: var(--brand-secondary);
  --metro-orange: var(--brand-accent);
  --metro-yellow: var(--brand-yellow);
  --metro-purple: var(--brand-purple);
  --metro-magenta: var(--brand-magenta);
  --metro-green: var(--status-success);
  --metro-red: var(--status-danger);
  --metro-lime: var(--brand-lime);
  --metro-brown: var(--brand-brown);
  --metro-dark: var(--surface-code);

}

/* ═══ Cartoon ═══ */

:root[data-skin='cartoon'][data-theme='light'] {
  color-scheme: light;

  /* ─── 共享令牌 ─── */
  /* === 元数据 === */
  --ui-scale: 1;

  /* === 字体 === */
  --font-ui:
    'Nunito',
    'ZCOOL KuaiLe',
    'Quicksand',
    'Comic Sans MS',
    'Microsoft YaHei',
    sans-serif;
  --font-mono: 'Fira Code', 'Courier New', monospace;

  /* === 文字尺寸 === */
  --text-2xs: calc(10px * var(--ui-scale, 1));
  --text-xs: calc(11px * var(--ui-scale, 1));
  --text-sm: calc(12px * var(--ui-scale, 1));
  --text-caption: calc(13px * var(--ui-scale, 1));
  --text-body-sm: calc(14px * var(--ui-scale, 1));
  --text-body: calc(15px * var(--ui-scale, 1));
  --text-body-lg: calc(16px * var(--ui-scale, 1));
  --text-subtitle: calc(18px * var(--ui-scale, 1));
  --text-title: calc(20px * var(--ui-scale, 1));
  --text-heading: calc(24px * var(--ui-scale, 1));
  --text-display: calc(28px * var(--ui-scale, 1));

  /* === 间距 === */
  --space-2xs: 6px;
  --space-xs: 10px;
  --space-sm: 14px;
  --space-md: 20px;
  --space-lg: 28px;
  --space-xl: 40px;
  --space-2xl: 60px;

  /* === 圆角 === */
  --radius-2xs: 8px;
  --radius-xs: 12px;
  --radius-sm: 16px;
  --radius-md: 24px;
  --radius-lg: 32px;
  --radius-xl: 40px;
  --radius-pill: 999px;
  --radius-circle: 50%;

  /* === 模糊 === */
  --blur-sm: 0px;
  --blur-md: 0px;
  --blur-lg: 0px;

  /* === 过渡 === */
  --transition-fast: 0.15s ease-out;
  --transition-base: 0.25s cubic-bezier(0.34, 1.56, 0.64, 1);
  --transition-slow: 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);

  /* === 动效 === */
  --motion-fast: 150ms;
  --motion-base: 250ms;
  --motion-slow: 400ms;
  --easing-standard: cubic-bezier(0.34, 1.56, 0.64, 1);
  --easing-exit: cubic-bezier(0.4, 0, 1, 1);

  /* === 品牌色 === */
  --brand-primary: #40C4FF;
  --brand-primary-strong: #00B0FF;
  --brand-secondary: #FFD740;
  --brand-accent: #FF5252;
  --brand-accent-strong: #FF1744;
  --brand-purple: #B388FF;
  --brand-magenta: #FF4081;
  --brand-yellow: #FFEA00;
  --brand-lime: #EEFF41;
  --brand-brown: #8D6E63;

  /* === 状态色 === */
  --status-success: #00E676;
  --status-warning: #FFEA00;
  --status-danger: #FF5252;
  --status-info: #40C4FF;

  /* === 账户 === */
  --account-avatar-sm: 36px;
  --account-avatar-md: 48px;
  --account-avatar-lg: 72px;
  --account-avatar-radius: 50%;

  /* === 字重 === */
  --weight-light: 500;
  --weight-normal: 600;
  --weight-medium: 700;
  --weight-semibold: 800;
  --weight-bold: 900;
  --weight-extrabold: 900;
  --weight-black: 900;

  /* === 透明度 === */
  --opacity-subtle: 1;
  --opacity-soft: 1;
  --opacity-medium: 1;
  --opacity-strong: 1;
  --opacity-full: 1;

  /* === 层叠 === */
  --z-base: 0;
  --z-dropdown: 100;
  --z-sticky: 200;
  --z-overlay: 300;
  --z-modal: 400;
  --z-toast: 500;
  --z-tooltip: 600;
  --z-max: 9999;

  /* === 图标尺寸 === */
  --icon-size-xs: calc(16px * var(--ui-scale, 1));
  --icon-size-sm: calc(20px * var(--ui-scale, 1));
  --icon-size-md: calc(24px * var(--ui-scale, 1));
  --icon-size-lg: calc(32px * var(--ui-scale, 1));
  --icon-size-xl: calc(40px * var(--ui-scale, 1));

  /* ─── Light 主题令牌 ─── */
  /* === 账户 === */
  --account-badge-guest-bg: #E0E0E0;
  --account-badge-guest-text: #1A1A1A;
  --account-badge-pro-bg: #FFD740;
  --account-badge-pro-text: #1A1A1A;
  --account-badge-pro-border: #1A1A1A;
  --account-sync-local-bg: #EEEEEE;
  --account-sync-local-text: #1A1A1A;
  --account-sync-ready-bg: #40C4FF;
  --account-sync-ready-text: #1A1A1A;
  --account-sync-done-bg: #00E676;
  --account-sync-done-text: #1A1A1A;
  --account-sync-conflict-bg: #FF5252;
  --account-sync-conflict-text: #FFFFFF;
  --account-locked-bg: #BDBDBD;
  --account-locked-border: #1A1A1A;
  --account-locked-text: #1A1A1A;
  --account-card-bg: #FFFFFF;
  --account-card-border: #1A1A1A;

  /* === 图标色 === */
  --icon-muted: #1A1A1A;
  --icon-subtle: #4D4D4D;

  /* === 表面色 === */
  --surface-page: #FFF8E7;
  --surface-main: #FFFFFF;
  --surface-canvas: #FFFFFF;
  --surface-elevated: #FFFFFF;
  --surface-soft: #F0F4F8;
  --surface-glass: #FFFFFF;
  --surface-glass-strong: #FFFFFF;
  --surface-panel: #FFF8E7;
  --surface-panel-strong: #FFFFFF;
  --surface-card: #FFFFFF;
  --surface-overlay: #FFFFFF;
  --surface-code: #2C3E50;
  --surface-code-alt: #34495E;
  --surface-input: #FFFFFF;

  /* === 边框 === */
  --border-subtle: #1A1A1A;
  --border-soft: #1A1A1A;
  --border-strong: #000000;
  --border-accent: #000000;
  --border-accent-strong: #000000;
  --border-light: #1A1A1A;
  --border-medium: #000000;
  --border-dark: #000000;
  --border-color: #1A1A1A;

  /* === 文字色 === */
  --text-main: #1A1A1A;
  --text-primary: #000000;
  --text-secondary: #333333;
  --text-muted: #666666;
  --text-soft: #808080;
  --text-tertiary: #999999;
  --text-invert: #FFFFFF;
  --code-text: #ECF0F1;
  --text-color: #1A1A1A;
  --text-on-accent: #FFFFFF;

  /* === 阴影 === */
  --shadow-sm: 2px 2px 0px #1A1A1A;
  --shadow-md: 4px 4px 0px #1A1A1A;
  --shadow-lg: 8px 8px 0px #1A1A1A;
  --shadow-glow: 0 0 0 2px #1A1A1A, 4px 4px 0px #40C4FF;
  --shadow-inset: inset 0 -4px 0 rgba(0, 0, 0, 0.15);
  --shadow-focus-ring: 0 0 0 3px #1A1A1A;

  /* === 温色强调 === */
  --accent-warm-bg: #FFD740;
  --accent-warm-bg-strong: #FFC400;
  --accent-warm-border: #1A1A1A;
  --accent-warm-border-strong: #000000;
  --accent-warm-text: #1A1A1A;

  /* === 面板 === */
  --panel-tint: #40C4FF;

  /* === 背景 === */
  --bg-secondary: #FFECB3;
  --bg-tertiary: #FFE082;
  --bg-hover: #E1F5FE;
  --bg-color: #FFF8E7;

  /* === 输入框 === */
  --input-bg: #FFFFFF;
  --input-border: #1A1A1A;

  /* === HUD === */
  --hud-bg: #FFFFFF;
  --hud-border: #1A1A1A;
  --hud-text: #1A1A1A;
  --hud-value: #FF5252;

  /* === 选项 === */
  --choice-panel-bg: #FFFFFF;
  --choice-panel-border: #1A1A1A;
  --choice-item-bg: #FFFFFF;
  --choice-item-border: #1A1A1A;
  --choice-item-hover-bg: #E1F5FE;
  --choice-item-active-bg: #B3E5FC;
  --choice-title: #00B0FF;
  --choice-text-primary: #1A1A1A;
  --choice-text-secondary: #4D4D4D;
  --choice-default-chip-bg: #FFF59D;

  /* === 固定栏 === */
  --sticky-bg: #FFF9C4;
  --sticky-text: #1A1A1A;
  --sticky-value: #FF1744;

  /* === 位置 === */
  --location-separator: #1A1A1A;

  /* === 思考 === */
  --thinking-text: #95A5A6;

  /* === 流式 === */
  --stream-indicator-inner: #FFFFFF;

  /* === 聊天气泡 === */
  --chat-bubble-bg: #FFFFFF;
  --chat-bubble-user-bg: #E1F5FE;
  --chat-bubble-hover-bg: #FFF9C4;
  --chat-bubble-text: #1A1A1A;
  --chat-bubble-label: #333333;
  --chat-bubble-border-ai: #1A1A1A;
  --chat-bubble-border-user: #1A1A1A;
  --chat-bg: #FFF8E7;

  /* === 设计卡片 === */
  --dcv-bg: #FFF8E7;
  --dcv-toolbar-bg: #FFFFFF;
  --dcv-toolbar-border: #1A1A1A;
  --dcv-section-bg: #FFFFFF;
  --dcv-section-border: #1A1A1A;
  --dcv-section-hover: #E1F5FE;
  --dcv-text-primary: #1A1A1A;
  --dcv-text-secondary: #333333;
  --dcv-text-muted: #666666;
  --dcv-text-faint: #999999;
  --dcv-subitem-bg: #FFFDE7;
  --dcv-subitem-border: #1A1A1A;
  --dcv-expanded-bg: #E1F5FE;
  --dcv-field-bg: #FFFFFF;
  --dcv-field-border: #1A1A1A;
  --dcv-btn-hover-bg: #FFD740;
  --dcv-btn-hover-border: #1A1A1A;
  --dcv-btn-hover-color: #1A1A1A;
  --dcv-icon-muted: #1A1A1A;
  --dcv-icon-hover: #FF5252;
  --dcv-scrollbar: #1A1A1A;
  --dcv-input-bg: #FFFFFF;
  --dcv-input-border: #1A1A1A;
  --dcv-input-text: #1A1A1A;
  --dcv-modal-bg: #FFFFFF;
  --dcv-modal-border: #1A1A1A;
  --dcv-modal-text: #1A1A1A;
  --dcv-modal-btn-bg: #FFD740;
  --dcv-modal-btn-border: #1A1A1A;
  --dcv-modal-btn-text: #1A1A1A;
  --dcv-cognitive-warning-bg: #FFEA00;
  --dcv-cognitive-warning-border: #1A1A1A;
  --dcv-cognitive-warning-title: #1A1A1A;
  --dcv-cognitive-warning-text: #1A1A1A;
  --dcv-cognitive-warning-item-bg: #FFFFFF;
  --dcv-cognitive-warning-item-border: #1A1A1A;
  --dcv-cognitive-warning-path-bg: #FFD740;
  --dcv-cognitive-warning-path-text: #1A1A1A;

  /* === 语法高亮 === */
  --syntax-key: #9cdcfe;
  --syntax-string: #ce9178;
  --syntax-number: #b5cea8;
  --syntax-boolean: #569cd6;
  --syntax-null: #569cd6;
  --syntax-comment: #6a9955;
  --syntax-bracket: #d4d4d4;

  /* === 叙事色 === */
  --narrative-dialogue: #1565c0;
  --narrative-thought: #7b1fa2;
  --narrative-speaker: #d84315;
  --narrative-action: #2e7d32;

  /* === 启动器 === */
  --launcher-surface: #0a0a12;
  --launcher-surface-alt: #111827;
  --launcher-glass: rgba(26, 26, 46, 0.95);
  --launcher-glass-light: rgba(26, 26, 46, 0.72);
  --launcher-border: rgba(255, 255, 255, 0.1);
  --launcher-border-strong: rgba(255, 255, 255, 0.18);
  --launcher-btn-primary: #4f46e5;
  --launcher-btn-primary-hover: #4338ca;
  --launcher-star: #facc15;
  --launcher-text: rgba(255, 255, 255, 0.92);
  --launcher-text-muted: rgba(255, 255, 255, 0.6);
  --launcher-text-faint: rgba(255, 255, 255, 0.4);
  --launcher-shadow: rgba(0, 0, 0, 0.5);
  --launcher-overlay: rgba(0, 0, 0, 0.4);

  /* === 加载 === */
  --loading-bg: rgba(252, 250, 246, 0.98);
  --loading-bg-strong: rgba(238, 233, 226, 0.95);
  --loading-card-bg: rgba(255, 255, 255, 0.82);
  --loading-gradient-start: #B5EAD7;
  --loading-gradient-end: #E2F0CB;
  --loading-progress-start: #FFD3B6;
  --loading-progress-mid: #FF9AA2;
  --loading-progress-end: #C7CEEA;

  /* === 调试分段 === */
  --segment-summary: #4caf50;
  --segment-npc-archive: #2196f3;
  --segment-mainline: #ff9800;
  --segment-conversation: #9c27b0;
  --segment-narrative: #e91e63;
  --segment-reference: #00bcd4;
  --segment-sms: #8bc34a;
  --segment-game-state: #ffc107;
  --segment-gm: #607d8b;
  --segment-step-1: #673ab7;
  --segment-step-2: #3f51b5;
  --segment-step-3: #009688;
  --segment-core: #42a5f5;
  --segment-custom: #ef5350;
  --segment-module: #26a69a;
  --segment-country: #5c6bc0;
  --segment-timeline: #66bb6a;

  /* ─── 兼容别名（旧变量映射到新语义层） ─── */
  --primary-color: var(--brand-primary);
  --primary-gradient: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-primary-strong) 100%);
  --panel-bg: var(--surface-panel);
  --panel-border: var(--border-soft);
  --panel-shadow: var(--shadow-md);
  --glass-bg: var(--surface-glass);
  --glass-bg-strong: var(--surface-glass-strong);
  --glass-border: var(--border-soft);
  --metro-blue: var(--brand-primary);
  --metro-cobalt: var(--brand-primary-strong);
  --metro-teal: var(--brand-secondary);
  --metro-orange: var(--brand-accent);
  --metro-yellow: var(--brand-yellow);
  --metro-purple: var(--brand-purple);
  --metro-magenta: var(--brand-magenta);
  --metro-green: var(--status-success);
  --metro-red: var(--status-danger);
  --metro-lime: var(--brand-lime);
  --metro-brown: var(--brand-brown);
  --metro-dark: var(--surface-code);

}

:root[data-skin='cartoon'][data-theme='dark'] {
  color-scheme: dark;

  /* ─── 共享令牌 ─── */
  /* === 元数据 === */
  --ui-scale: 1;

  /* === 字体 === */
  --font-ui:
    'Nunito',
    'ZCOOL KuaiLe',
    'Quicksand',
    'Comic Sans MS',
    'Microsoft YaHei',
    sans-serif;
  --font-mono: 'Fira Code', 'Courier New', monospace;

  /* === 文字尺寸 === */
  --text-2xs: calc(10px * var(--ui-scale, 1));
  --text-xs: calc(11px * var(--ui-scale, 1));
  --text-sm: calc(12px * var(--ui-scale, 1));
  --text-caption: calc(13px * var(--ui-scale, 1));
  --text-body-sm: calc(14px * var(--ui-scale, 1));
  --text-body: calc(15px * var(--ui-scale, 1));
  --text-body-lg: calc(16px * var(--ui-scale, 1));
  --text-subtitle: calc(18px * var(--ui-scale, 1));
  --text-title: calc(20px * var(--ui-scale, 1));
  --text-heading: calc(24px * var(--ui-scale, 1));
  --text-display: calc(28px * var(--ui-scale, 1));

  /* === 间距 === */
  --space-2xs: 6px;
  --space-xs: 10px;
  --space-sm: 14px;
  --space-md: 20px;
  --space-lg: 28px;
  --space-xl: 40px;
  --space-2xl: 60px;

  /* === 圆角 === */
  --radius-2xs: 8px;
  --radius-xs: 12px;
  --radius-sm: 16px;
  --radius-md: 24px;
  --radius-lg: 32px;
  --radius-xl: 40px;
  --radius-pill: 999px;
  --radius-circle: 50%;

  /* === 模糊 === */
  --blur-sm: 0px;
  --blur-md: 0px;
  --blur-lg: 0px;

  /* === 过渡 === */
  --transition-fast: 0.15s ease-out;
  --transition-base: 0.25s cubic-bezier(0.34, 1.56, 0.64, 1);
  --transition-slow: 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);

  /* === 动效 === */
  --motion-fast: 150ms;
  --motion-base: 250ms;
  --motion-slow: 400ms;
  --easing-standard: cubic-bezier(0.34, 1.56, 0.64, 1);
  --easing-exit: cubic-bezier(0.4, 0, 1, 1);

  /* === 品牌色 === */
  --brand-primary: #40C4FF;
  --brand-primary-strong: #00B0FF;
  --brand-secondary: #FFD740;
  --brand-accent: #FF5252;
  --brand-accent-strong: #FF1744;
  --brand-purple: #B388FF;
  --brand-magenta: #FF4081;
  --brand-yellow: #FFEA00;
  --brand-lime: #EEFF41;
  --brand-brown: #8D6E63;

  /* === 状态色 === */
  --status-success: #00E676;
  --status-warning: #FFEA00;
  --status-danger: #FF5252;
  --status-info: #40C4FF;

  /* === 账户 === */
  --account-avatar-sm: 36px;
  --account-avatar-md: 48px;
  --account-avatar-lg: 72px;
  --account-avatar-radius: 50%;

  /* === 字重 === */
  --weight-light: 500;
  --weight-normal: 600;
  --weight-medium: 700;
  --weight-semibold: 800;
  --weight-bold: 900;
  --weight-extrabold: 900;
  --weight-black: 900;

  /* === 透明度 === */
  --opacity-subtle: 1;
  --opacity-soft: 1;
  --opacity-medium: 1;
  --opacity-strong: 1;
  --opacity-full: 1;

  /* === 层叠 === */
  --z-base: 0;
  --z-dropdown: 100;
  --z-sticky: 200;
  --z-overlay: 300;
  --z-modal: 400;
  --z-toast: 500;
  --z-tooltip: 600;
  --z-max: 9999;

  /* === 图标尺寸 === */
  --icon-size-xs: calc(16px * var(--ui-scale, 1));
  --icon-size-sm: calc(20px * var(--ui-scale, 1));
  --icon-size-md: calc(24px * var(--ui-scale, 1));
  --icon-size-lg: calc(32px * var(--ui-scale, 1));
  --icon-size-xl: calc(40px * var(--ui-scale, 1));

  /* === 账户 === */
  --account-badge-guest-bg: #4A4A6A;
  --account-badge-guest-text: #FFFFFF;
  --account-badge-pro-bg: #FFC400;
  --account-badge-pro-text: #1A1A1A;
  --account-badge-pro-border: #000000;
  --account-sync-local-bg: #3B3B54;
  --account-sync-local-text: #FFFFFF;
  --account-sync-ready-bg: #40C4FF;
  --account-sync-ready-text: #1A1A1A;
  --account-sync-done-bg: #00E676;
  --account-sync-done-text: #1A1A1A;
  --account-sync-conflict-bg: #FF5252;
  --account-sync-conflict-text: #FFFFFF;
  --account-locked-bg: #222230;
  --account-locked-border: #000000;
  --account-locked-text: #FFFFFF;
  --account-card-bg: #3B3B54;
  --account-card-border: #000000;

  /* === 图标色 === */
  --icon-muted: #FFFFFF;
  --icon-subtle: #CCCCCC;

  /* === 表面色 === */
  --surface-page: #1A1A24;
  --surface-main: #2B2B3C;
  --surface-canvas: #2B2B3C;
  --surface-elevated: #3B3B54;
  --surface-soft: #222230;
  --surface-glass: #3B3B54;
  --surface-glass-strong: #4A4A6A;
  --surface-panel: #2B2B3C;
  --surface-panel-strong: #3B3B54;
  --surface-card: #3B3B54;
  --surface-overlay: #1A1A24;
  --surface-code: #0F0F15;
  --surface-code-alt: #1A1A24;
  --surface-input: #3B3B54;

  /* === 边框 === */
  --border-subtle: #000000;
  --border-soft: #000000;
  --border-strong: #000000;
  --border-accent: #000000;
  --border-accent-strong: #000000;
  --border-light: #000000;
  --border-medium: #000000;
  --border-dark: #000000;
  --border-color: #000000;

  /* === 文字色 === */
  --text-main: #FFFFFF;
  --text-primary: #FFFFFF;
  --text-secondary: #E0E0E0;
  --text-muted: #B3B3B3;
  --text-soft: #999999;
  --text-tertiary: #808080;
  --text-invert: #1A1A1A;
  --code-text: #40C4FF;
  --text-color: #FFFFFF;
  --text-on-accent: #FFFFFF;

  /* === 阴影 === */
  --shadow-sm: 2px 2px 0px #000000;
  --shadow-md: 4px 4px 0px #000000;
  --shadow-lg: 8px 8px 0px #000000;
  --shadow-glow: 0 0 0 2px #000000, 4px 4px 0px #FFD740;
  --shadow-inset: inset 0 -4px 0 rgba(0, 0, 0, 0.3);
  --shadow-focus-ring: 0 0 0 3px #000000;

  /* === 温色强调 === */
  --accent-warm-bg: #FFC400;
  --accent-warm-bg-strong: #FF8F00;
  --accent-warm-border: #000000;
  --accent-warm-border-strong: #000000;
  --accent-warm-text: #1A1A1A;

  /* === 面板 === */
  --panel-tint: #FF4081;

  /* === 背景 === */
  --bg-secondary: #222230;
  --bg-tertiary: #1A1A24;
  --bg-hover: #4A4A6A;
  --bg-color: #1A1A24;

  /* === 输入框 === */
  --input-bg: #222230;
  --input-border: #000000;

  /* === HUD === */
  --hud-bg: #3B3B54;
  --hud-border: #000000;
  --hud-text: #FFFFFF;
  --hud-value: #FFEA00;

  /* === 选项 === */
  --choice-panel-bg: #2B2B3C;
  --choice-panel-border: #000000;
  --choice-item-bg: #3B3B54;
  --choice-item-border: #000000;
  --choice-item-hover-bg: #4A4A6A;
  --choice-item-active-bg: #40C4FF;
  --choice-title: #40C4FF;
  --choice-text-primary: #FFFFFF;
  --choice-text-secondary: #CCCCCC;
  --choice-default-chip-bg: #FF4081;

  /* === 固定栏 === */
  --sticky-bg: #FFD740;
  --sticky-text: #1A1A1A;
  --sticky-value: #1A1A1A;

  /* === 位置 === */
  --location-separator: #000000;

  /* === 思考 === */
  --thinking-text: #B388FF;

  /* === 流式 === */
  --stream-indicator-inner: #2B2B3C;

  /* === 聊天气泡 === */
  --chat-bubble-bg: #3B3B54;
  --chat-bubble-user-bg: #40C4FF;
  --chat-bubble-hover-bg: #4A4A6A;
  --chat-bubble-text: #FFFFFF;
  --chat-bubble-label: #CCCCCC;
  --chat-bubble-border-ai: #000000;
  --chat-bubble-border-user: #000000;
  --chat-bg: #1A1A24;

  /* === 设计卡片 === */
  --dcv-bg: #1A1A24;
  --dcv-toolbar-bg: #2B2B3C;
  --dcv-toolbar-border: #000000;
  --dcv-section-bg: #3B3B54;
  --dcv-section-border: #000000;
  --dcv-section-hover: #4A4A6A;
  --dcv-text-primary: #FFFFFF;
  --dcv-text-secondary: #CCCCCC;
  --dcv-text-muted: #B3B3B3;
  --dcv-text-faint: #999999;
  --dcv-subitem-bg: #2B2B3C;
  --dcv-subitem-border: #000000;
  --dcv-expanded-bg: #4A4A6A;
  --dcv-field-bg: #222230;
  --dcv-field-border: #000000;
  --dcv-btn-hover-bg: #40C4FF;
  --dcv-btn-hover-border: #000000;
  --dcv-btn-hover-color: #1A1A1A;
  --dcv-icon-muted: #FFFFFF;
  --dcv-icon-hover: #FFD740;
  --dcv-scrollbar: #000000;
  --dcv-input-bg: #222230;
  --dcv-input-border: #000000;
  --dcv-input-text: #FFFFFF;
  --dcv-modal-bg: #2B2B3C;
  --dcv-modal-border: #000000;
  --dcv-modal-text: #FFFFFF;
  --dcv-modal-btn-bg: #40C4FF;
  --dcv-modal-btn-border: #000000;
  --dcv-modal-btn-text: #1A1A1A;
  --dcv-cognitive-warning-bg: #FFEA00;
  --dcv-cognitive-warning-border: #000000;
  --dcv-cognitive-warning-title: #1A1A1A;
  --dcv-cognitive-warning-text: #1A1A1A;
  --dcv-cognitive-warning-item-bg: #FFFFFF;
  --dcv-cognitive-warning-item-border: #000000;
  --dcv-cognitive-warning-path-bg: #FFD740;
  --dcv-cognitive-warning-path-text: #1A1A1A;

  /* === 语法高亮 === */
  --syntax-key: #89b4fa;
  --syntax-string: #f0a878;
  --syntax-number: #a6d189;
  --syntax-boolean: #7cb8f0;
  --syntax-null: #7cb8f0;
  --syntax-comment: #6a9955;
  --syntax-bracket: #cdd6f4;

  /* === 叙事色 === */
  --narrative-dialogue: #90caf9;
  --narrative-thought: #ce93d8;
  --narrative-speaker: #ffcc80;
  --narrative-action: #a5d6a7;

  /* === 启动器 === */
  --launcher-surface: #0a0a12;
  --launcher-surface-alt: #111827;
  --launcher-glass: rgba(26, 26, 46, 0.95);
  --launcher-glass-light: rgba(26, 26, 46, 0.72);
  --launcher-border: rgba(255, 255, 255, 0.1);
  --launcher-border-strong: rgba(255, 255, 255, 0.18);
  --launcher-btn-primary: #6366f1;
  --launcher-btn-primary-hover: #4f46e5;
  --launcher-star: #facc15;
  --launcher-text: rgba(255, 255, 255, 0.92);
  --launcher-text-muted: rgba(255, 255, 255, 0.6);
  --launcher-text-faint: rgba(255, 255, 255, 0.4);
  --launcher-shadow: rgba(0, 0, 0, 0.6);
  --launcher-overlay: rgba(0, 0, 0, 0.5);

  /* === 加载 === */
  --loading-bg: rgba(32, 36, 42, 0.98);
  --loading-bg-strong: rgba(18, 20, 24, 0.95);
  --loading-card-bg: rgba(42, 48, 58, 0.82);
  --loading-gradient-start: #4A7A64;
  --loading-gradient-end: #687E54;
  --loading-progress-start: #C28E6A;
  --loading-progress-mid: #B86B72;
  --loading-progress-end: #858BBA;

  /* === 调试分段 === */
  --segment-summary: #66bb6a;
  --segment-npc-archive: #42a5f5;
  --segment-mainline: #ffa726;
  --segment-conversation: #ab47bc;
  --segment-narrative: #ec407a;
  --segment-reference: #26c6da;
  --segment-sms: #9ccc65;
  --segment-game-state: #ffca28;
  --segment-gm: #78909c;
  --segment-step-1: #7e57c2;
  --segment-step-2: #5c6bc0;
  --segment-step-3: #26a69a;
  --segment-core: #64b5f6;
  --segment-custom: #ef5350;
  --segment-module: #4db6ac;
  --segment-country: #7986cb;
  --segment-timeline: #81c784;

  /* ─── 兼容别名（旧变量映射到新语义层） ─── */
  --primary-color: var(--brand-primary);
  --primary-gradient: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-primary-strong) 100%);
  --panel-bg: var(--surface-panel);
  --panel-border: var(--border-soft);
  --panel-shadow: var(--shadow-md);
  --glass-bg: var(--surface-glass);
  --glass-bg-strong: var(--surface-glass-strong);
  --glass-border: var(--border-soft);
  --metro-blue: var(--brand-primary);
  --metro-cobalt: var(--brand-primary-strong);
  --metro-teal: var(--brand-secondary);
  --metro-orange: var(--brand-accent);
  --metro-yellow: var(--brand-yellow);
  --metro-purple: var(--brand-purple);
  --metro-magenta: var(--brand-magenta);
  --metro-green: var(--status-success);
  --metro-red: var(--status-danger);
  --metro-lime: var(--brand-lime);
  --metro-brown: var(--brand-brown);
  --metro-dark: var(--surface-code);

}

/* ═══ Ink Wash Xianxia ═══ */

:root[data-skin='cultivation'][data-theme='light'] {
  color-scheme: light;

  /* ─── 共享令牌 ─── */
  /* === 元数据 === */
  --ui-scale: 1;

  /* === 字体 === */
  --font-ui: 'Kaiti SC', 'STKaiti', 'LXGW WenKai', 'Songti SC', 'Noto Serif SC', serif;
  --font-mono: 'Courier New', monospace;

  /* === 文字尺寸 === */
  --text-2xs: calc(10px * var(--ui-scale, 1));
  --text-xs: calc(12px * var(--ui-scale, 1));
  --text-sm: calc(13px * var(--ui-scale, 1));
  --text-caption: calc(14px * var(--ui-scale, 1));
  --text-body-sm: calc(15px * var(--ui-scale, 1));
  --text-body: calc(16px * var(--ui-scale, 1));
  --text-body-lg: calc(18px * var(--ui-scale, 1));
  --text-subtitle: calc(20px * var(--ui-scale, 1));
  --text-title: calc(24px * var(--ui-scale, 1));
  --text-heading: calc(28px * var(--ui-scale, 1));
  --text-display: calc(32px * var(--ui-scale, 1));

  /* === 间距 === */
  --space-2xs: 4px;
  --space-xs: 8px;
  --space-sm: 16px;
  --space-md: 24px;
  --space-lg: 36px;
  --space-xl: 48px;
  --space-2xl: 72px;

  /* === 圆角 === */
  --radius-2xs: 2px;
  --radius-xs: 4px;
  --radius-sm: 6px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-xl: 16px;
  --radius-pill: 999px;
  --radius-circle: 50%;

  /* === 模糊 === */
  --blur-sm: 8px;
  --blur-md: 16px;
  --blur-lg: 32px;

  /* === 过渡 === */
  --transition-fast: 0.3s ease-in-out;
  --transition-base: 0.5s ease-in-out;
  --transition-slow: 0.8s cubic-bezier(0.4, 0, 0.2, 1);

  /* === 动效 === */
  --motion-fast: 300ms;
  --motion-base: 500ms;
  --motion-slow: 800ms;
  --easing-standard: cubic-bezier(0.4, 0, 0.2, 1);
  --easing-exit: cubic-bezier(0.4, 0, 1, 1);

  /* === 品牌色 === */
  --brand-primary: #2b4255;
  --brand-primary-strong: #1a2833;
  --brand-secondary: #1a6840;
  --brand-accent: #c83c23;
  --brand-accent-strong: #8a1a0f;
  --brand-purple: #5c3d64;
  --brand-magenta: #9c3b5a;
  --brand-yellow: #d4a35b;
  --brand-lime: #7b8b40;
  --brand-brown: #6b4f3b;

  /* === 状态色 === */
  --status-success: #1a6840;
  --status-warning: #d4a35b;
  --status-danger: #c83c23;
  --status-info: #2b4255;

  /* === 账户 === */
  --account-avatar-sm: 32px;
  --account-avatar-md: 44px;
  --account-avatar-lg: 68px;
  --account-avatar-radius: 50%;

  /* === 字重 === */
  --weight-light: 300;
  --weight-normal: 400;
  --weight-medium: 500;
  --weight-semibold: 600;
  --weight-bold: 700;
  --weight-extrabold: 700;
  --weight-black: 900;

  /* === 透明度 === */
  --opacity-subtle: 0.15;
  --opacity-soft: 0.3;
  --opacity-medium: 0.5;
  --opacity-strong: 0.75;
  --opacity-full: 0.9;

  /* === 层叠 === */
  --z-base: 0;
  --z-dropdown: 100;
  --z-sticky: 200;
  --z-overlay: 300;
  --z-modal: 400;
  --z-toast: 500;
  --z-tooltip: 600;
  --z-max: 9999;

  /* === 图标尺寸 === */
  --icon-size-xs: calc(16px * var(--ui-scale, 1));
  --icon-size-sm: calc(18px * var(--ui-scale, 1));
  --icon-size-md: calc(24px * var(--ui-scale, 1));
  --icon-size-lg: calc(32px * var(--ui-scale, 1));
  --icon-size-xl: calc(40px * var(--ui-scale, 1));

  /* ─── Light 主题令牌 ─── */
  /* === 账户 === */
  --account-badge-guest-bg: rgba(118, 114, 109, 0.1);
  --account-badge-guest-text: #76726d;
  --account-badge-pro-bg: rgba(212, 163, 91, 0.15);
  --account-badge-pro-text: #b8863f;
  --account-badge-pro-border: rgba(212, 163, 91, 0.4);
  --account-sync-local-bg: rgba(118, 114, 109, 0.08);
  --account-sync-local-text: #9a958f;
  --account-sync-ready-bg: rgba(43, 66, 85, 0.08);
  --account-sync-ready-text: #2b4255;
  --account-sync-done-bg: rgba(26, 104, 64, 0.1);
  --account-sync-done-text: #1a6840;
  --account-sync-conflict-bg: rgba(200, 60, 35, 0.1);
  --account-sync-conflict-text: #c83c23;
  --account-locked-bg: rgba(118, 114, 109, 0.05);
  --account-locked-border: rgba(118, 114, 109, 0.2);
  --account-locked-text: #9a958f;
  --account-card-bg: #fcfaf2;
  --account-card-border: rgba(42, 40, 38, 0.1);

  /* === 图标色 === */
  --icon-muted: #5a5652;
  --icon-subtle: #8a847c;

  /* === 表面色 === */
  --surface-page: #f6f4e8;
  --surface-main: #fcfaf2;
  --surface-canvas: rgba(246, 244, 232, 0.8);
  --surface-elevated: #ffffff;
  --surface-soft: #efebe0;
  --surface-glass: rgba(252, 250, 242, 0.6);
  --surface-glass-strong: rgba(246, 244, 232, 0.9);
  --surface-panel: #fcfaf2;
  --surface-panel-strong: #f6f4e8;
  --surface-card: #ffffff;
  --surface-overlay: rgba(246, 244, 232, 0.95);
  --surface-code: #262422;
  --surface-code-alt: #383531;
  --surface-input: #ffffff;

  /* === 边框 === */
  --border-subtle: rgba(42, 40, 38, 0.08);
  --border-soft: rgba(42, 40, 38, 0.15);
  --border-strong: rgba(42, 40, 38, 0.3);
  --border-accent: rgba(200, 60, 35, 0.4);
  --border-accent-strong: rgba(200, 60, 35, 0.8);
  --border-light: #e8e4d8;
  --border-medium: #d8d0c0;
  --border-dark: #b0a898;
  --border-color: #d8d0c0;

  /* === 文字色 === */
  --text-main: #1a1a1a;
  --text-primary: #2a2826;
  --text-secondary: #4a4642;
  --text-muted: #76726d;
  --text-soft: #9a958f;
  --text-tertiary: #b0a898;
  --text-invert: #fcfaf2;
  --code-text: #d8d0c0;
  --text-color: #2a2826;
  --text-on-accent: #fcfaf2;

  /* === 阴影 === */
  --shadow-sm: 0 4px 16px -8px rgba(42, 40, 38, 0.1);
  --shadow-md: 0 8px 32px -12px rgba(42, 40, 38, 0.15);
  --shadow-lg: 0 16px 48px -16px rgba(42, 40, 38, 0.2);
  --shadow-glow: 0 0 16px rgba(212, 163, 91, 0.3);
  --shadow-inset: inset 0 1px 0 rgba(255, 255, 255, 0.8);
  --shadow-focus-ring: 0 0 0 2px rgba(200, 60, 35, 0.2);

  /* === 温色强调 === */
  --accent-warm-bg: rgba(212, 163, 91, 0.1);
  --accent-warm-bg-strong: rgba(212, 163, 91, 0.2);
  --accent-warm-border: rgba(212, 163, 91, 0.4);
  --accent-warm-border-strong: rgba(212, 163, 91, 0.6);
  --accent-warm-text: #b8863f;

  /* === 面板 === */
  --panel-tint: rgba(43, 66, 85, 0.05);

  /* === 背景 === */
  --bg-secondary: #f0ede1;
  --bg-tertiary: #e8e4d8;
  --bg-hover: #fcfaf2;
  --bg-color: #f6f4e8;

  /* === 输入框 === */
  --input-bg: #ffffff;
  --input-border: #d8d0c0;

  /* === HUD === */
  --hud-bg: rgba(246, 244, 232, 0.8);
  --hud-border: rgba(43, 66, 85, 0.3);
  --hud-text: #4a4642;
  --hud-value: #1a1a1a;

  /* === 选项 === */
  --choice-panel-bg: rgba(252, 250, 242, 0.9);
  --choice-panel-border: rgba(216, 208, 192, 0.8);
  --choice-item-bg: #fcfaf2;
  --choice-item-border: #d8d0c0;
  --choice-item-hover-bg: #f6f4e8;
  --choice-item-active-bg: rgba(212, 163, 91, 0.15);
  --choice-title: #c83c23;
  --choice-text-primary: #2a2826;
  --choice-text-secondary: #76726d;
  --choice-default-chip-bg: rgba(42, 40, 38, 0.05);

  /* === 固定栏 === */
  --sticky-bg: rgba(252, 250, 242, 0.95);
  --sticky-text: #76726d;
  --sticky-value: #2a2826;

  /* === 位置 === */
  --location-separator: rgba(42, 40, 38, 0.2);

  /* === 思考 === */
  --thinking-text: #8a847c;

  /* === 流式 === */
  --stream-indicator-inner: #f6f4e8;

  /* === 聊天气泡 === */
  --chat-bubble-bg: #ffffff;
  --chat-bubble-user-bg: #f0ede1;
  --chat-bubble-hover-bg: #fcfaf2;
  --chat-bubble-text: #2a2826;
  --chat-bubble-label: #76726d;
  --chat-bubble-border-ai: rgba(43, 66, 85, 0.2);
  --chat-bubble-border-user: rgba(26, 104, 64, 0.2);
  --chat-bg: #e8e4d8;

  /* === 设计卡片 === */
  --dcv-bg: #f6f4e8;
  --dcv-toolbar-bg: #fcfaf2;
  --dcv-toolbar-border: #d8d0c0;
  --dcv-section-bg: #ffffff;
  --dcv-section-border: #d8d0c0;
  --dcv-section-hover: #fcfaf2;
  --dcv-text-primary: #2a2826;
  --dcv-text-secondary: #4a4642;
  --dcv-text-muted: #76726d;
  --dcv-text-faint: #9a958f;
  --dcv-subitem-bg: #fcfaf2;
  --dcv-subitem-border: rgba(216, 208, 192, 0.5);
  --dcv-expanded-bg: #f0ede1;
  --dcv-field-bg: #ffffff;
  --dcv-field-border: #d8d0c0;
  --dcv-btn-hover-bg: rgba(200, 60, 35, 0.08);
  --dcv-btn-hover-border: rgba(200, 60, 35, 0.3);
  --dcv-btn-hover-color: #c83c23;
  --dcv-icon-muted: rgba(42, 40, 38, 0.5);
  --dcv-icon-hover: #2a2826;
  --dcv-scrollbar: rgba(42, 40, 38, 0.15);
  --dcv-input-bg: #ffffff;
  --dcv-input-border: #d8d0c0;
  --dcv-input-text: #2a2826;
  --dcv-modal-bg: #fcfaf2;
  --dcv-modal-border: #d8d0c0;
  --dcv-modal-text: #2a2826;
  --dcv-modal-btn-bg: #ffffff;
  --dcv-modal-btn-border: #d8d0c0;
  --dcv-modal-btn-text: #4a4642;
  --dcv-cognitive-warning-bg: rgba(212, 163, 91, 0.15);
  --dcv-cognitive-warning-border: rgba(200, 60, 35, 0.4);
  --dcv-cognitive-warning-title: #b8863f;
  --dcv-cognitive-warning-text: #704d22;
  --dcv-cognitive-warning-item-bg: #fcfaf2;
  --dcv-cognitive-warning-item-border: rgba(212, 163, 91, 0.3);
  --dcv-cognitive-warning-path-bg: rgba(212, 163, 91, 0.2);
  --dcv-cognitive-warning-path-text: #704d22;

  /* === 语法高亮 === */
  --syntax-key: #9cdcfe;
  --syntax-string: #ce9178;
  --syntax-number: #b5cea8;
  --syntax-boolean: #569cd6;
  --syntax-null: #569cd6;
  --syntax-comment: #6a9955;
  --syntax-bracket: #d4d4d4;

  /* === 叙事色 === */
  --narrative-dialogue: #1565c0;
  --narrative-thought: #7b1fa2;
  --narrative-speaker: #d84315;
  --narrative-action: #2e7d32;

  /* === 启动器 === */
  --launcher-surface: #0a0a12;
  --launcher-surface-alt: #111827;
  --launcher-glass: rgba(26, 26, 46, 0.95);
  --launcher-glass-light: rgba(26, 26, 46, 0.72);
  --launcher-border: rgba(255, 255, 255, 0.1);
  --launcher-border-strong: rgba(255, 255, 255, 0.18);
  --launcher-btn-primary: #4f46e5;
  --launcher-btn-primary-hover: #4338ca;
  --launcher-star: #facc15;
  --launcher-text: rgba(255, 255, 255, 0.92);
  --launcher-text-muted: rgba(255, 255, 255, 0.6);
  --launcher-text-faint: rgba(255, 255, 255, 0.4);
  --launcher-shadow: rgba(0, 0, 0, 0.5);
  --launcher-overlay: rgba(0, 0, 0, 0.4);

  /* === 加载 === */
  --loading-bg: rgba(252, 250, 246, 0.98);
  --loading-bg-strong: rgba(238, 233, 226, 0.95);
  --loading-card-bg: rgba(255, 255, 255, 0.82);
  --loading-gradient-start: #B5EAD7;
  --loading-gradient-end: #E2F0CB;
  --loading-progress-start: #FFD3B6;
  --loading-progress-mid: #FF9AA2;
  --loading-progress-end: #C7CEEA;

  /* === 调试分段 === */
  --segment-summary: #4caf50;
  --segment-npc-archive: #2196f3;
  --segment-mainline: #ff9800;
  --segment-conversation: #9c27b0;
  --segment-narrative: #e91e63;
  --segment-reference: #00bcd4;
  --segment-sms: #8bc34a;
  --segment-game-state: #ffc107;
  --segment-gm: #607d8b;
  --segment-step-1: #673ab7;
  --segment-step-2: #3f51b5;
  --segment-step-3: #009688;
  --segment-core: #42a5f5;
  --segment-custom: #ef5350;
  --segment-module: #26a69a;
  --segment-country: #5c6bc0;
  --segment-timeline: #66bb6a;

  /* ─── 兼容别名（旧变量映射到新语义层） ─── */
  --primary-color: var(--brand-primary);
  --primary-gradient: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-primary-strong) 100%);
  --panel-bg: var(--surface-panel);
  --panel-border: var(--border-soft);
  --panel-shadow: var(--shadow-md);
  --glass-bg: var(--surface-glass);
  --glass-bg-strong: var(--surface-glass-strong);
  --glass-border: var(--border-soft);
  --metro-blue: var(--brand-primary);
  --metro-cobalt: var(--brand-primary-strong);
  --metro-teal: var(--brand-secondary);
  --metro-orange: var(--brand-accent);
  --metro-yellow: var(--brand-yellow);
  --metro-purple: var(--brand-purple);
  --metro-magenta: var(--brand-magenta);
  --metro-green: var(--status-success);
  --metro-red: var(--status-danger);
  --metro-lime: var(--brand-lime);
  --metro-brown: var(--brand-brown);
  --metro-dark: var(--surface-code);

}

:root[data-skin='cultivation'][data-theme='dark'] {
  color-scheme: dark;

  /* ─── 共享令牌 ─── */
  /* === 元数据 === */
  --ui-scale: 1;

  /* === 字体 === */
  --font-ui: 'Kaiti SC', 'STKaiti', 'LXGW WenKai', 'Songti SC', 'Noto Serif SC', serif;
  --font-mono: 'Courier New', monospace;

  /* === 文字尺寸 === */
  --text-2xs: calc(10px * var(--ui-scale, 1));
  --text-xs: calc(12px * var(--ui-scale, 1));
  --text-sm: calc(13px * var(--ui-scale, 1));
  --text-caption: calc(14px * var(--ui-scale, 1));
  --text-body-sm: calc(15px * var(--ui-scale, 1));
  --text-body: calc(16px * var(--ui-scale, 1));
  --text-body-lg: calc(18px * var(--ui-scale, 1));
  --text-subtitle: calc(20px * var(--ui-scale, 1));
  --text-title: calc(24px * var(--ui-scale, 1));
  --text-heading: calc(28px * var(--ui-scale, 1));
  --text-display: calc(32px * var(--ui-scale, 1));

  /* === 间距 === */
  --space-2xs: 4px;
  --space-xs: 8px;
  --space-sm: 16px;
  --space-md: 24px;
  --space-lg: 36px;
  --space-xl: 48px;
  --space-2xl: 72px;

  /* === 圆角 === */
  --radius-2xs: 2px;
  --radius-xs: 4px;
  --radius-sm: 6px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-xl: 16px;
  --radius-pill: 999px;
  --radius-circle: 50%;

  /* === 模糊 === */
  --blur-sm: 8px;
  --blur-md: 16px;
  --blur-lg: 32px;

  /* === 过渡 === */
  --transition-fast: 0.3s ease-in-out;
  --transition-base: 0.5s ease-in-out;
  --transition-slow: 0.8s cubic-bezier(0.4, 0, 0.2, 1);

  /* === 动效 === */
  --motion-fast: 300ms;
  --motion-base: 500ms;
  --motion-slow: 800ms;
  --easing-standard: cubic-bezier(0.4, 0, 0.2, 1);
  --easing-exit: cubic-bezier(0.4, 0, 1, 1);

  /* === 品牌色 === */
  --brand-primary: #2b4255;
  --brand-primary-strong: #1a2833;
  --brand-secondary: #1a6840;
  --brand-accent: #c83c23;
  --brand-accent-strong: #8a1a0f;
  --brand-purple: #5c3d64;
  --brand-magenta: #9c3b5a;
  --brand-yellow: #d4a35b;
  --brand-lime: #7b8b40;
  --brand-brown: #6b4f3b;

  /* === 状态色 === */
  --status-success: #1a6840;
  --status-warning: #d4a35b;
  --status-danger: #c83c23;
  --status-info: #2b4255;

  /* === 账户 === */
  --account-avatar-sm: 32px;
  --account-avatar-md: 44px;
  --account-avatar-lg: 68px;
  --account-avatar-radius: 50%;

  /* === 字重 === */
  --weight-light: 300;
  --weight-normal: 400;
  --weight-medium: 500;
  --weight-semibold: 600;
  --weight-bold: 700;
  --weight-extrabold: 700;
  --weight-black: 900;

  /* === 透明度 === */
  --opacity-subtle: 0.15;
  --opacity-soft: 0.3;
  --opacity-medium: 0.5;
  --opacity-strong: 0.75;
  --opacity-full: 0.9;

  /* === 层叠 === */
  --z-base: 0;
  --z-dropdown: 100;
  --z-sticky: 200;
  --z-overlay: 300;
  --z-modal: 400;
  --z-toast: 500;
  --z-tooltip: 600;
  --z-max: 9999;

  /* === 图标尺寸 === */
  --icon-size-xs: calc(16px * var(--ui-scale, 1));
  --icon-size-sm: calc(18px * var(--ui-scale, 1));
  --icon-size-md: calc(24px * var(--ui-scale, 1));
  --icon-size-lg: calc(32px * var(--ui-scale, 1));
  --icon-size-xl: calc(40px * var(--ui-scale, 1));

  /* === 账户 === */
  --account-badge-guest-bg: rgba(139, 140, 141, 0.15);
  --account-badge-guest-text: #a0a2a6;
  --account-badge-pro-bg: rgba(212, 163, 91, 0.15);
  --account-badge-pro-text: #d4a35b;
  --account-badge-pro-border: rgba(212, 163, 91, 0.4);
  --account-sync-local-bg: rgba(139, 140, 141, 0.1);
  --account-sync-local-text: #8b8c8d;
  --account-sync-ready-bg: rgba(43, 66, 85, 0.2);
  --account-sync-ready-text: #6e94b5;
  --account-sync-done-bg: rgba(26, 104, 64, 0.2);
  --account-sync-done-text: #4ca173;
  --account-sync-conflict-bg: rgba(200, 60, 35, 0.2);
  --account-sync-conflict-text: #e5725f;
  --account-locked-bg: rgba(139, 140, 141, 0.08);
  --account-locked-border: rgba(139, 140, 141, 0.2);
  --account-locked-text: #6a6b6d;
  --account-card-bg: #1d1e20;
  --account-card-border: rgba(232, 232, 232, 0.1);

  /* === 图标色 === */
  --icon-muted: #8b8c8d;
  --icon-subtle: #6a6b6d;

  /* === 表面色 === */
  --surface-page: #141516;
  --surface-main: #1d1e20;
  --surface-canvas: rgba(20, 21, 22, 0.8);
  --surface-elevated: #26272a;
  --surface-soft: #2a2c2f;
  --surface-glass: rgba(29, 30, 32, 0.6);
  --surface-glass-strong: rgba(20, 21, 22, 0.9);
  --surface-panel: #1d1e20;
  --surface-panel-strong: #141516;
  --surface-card: #26272a;
  --surface-overlay: rgba(20, 21, 22, 0.95);
  --surface-code: #0f1011;
  --surface-code-alt: #18191a;
  --surface-input: #26272a;

  /* === 边框 === */
  --border-subtle: rgba(232, 232, 232, 0.08);
  --border-soft: rgba(232, 232, 232, 0.12);
  --border-strong: rgba(232, 232, 232, 0.2);
  --border-accent: rgba(200, 60, 35, 0.4);
  --border-accent-strong: rgba(200, 60, 35, 0.7);
  --border-light: #3a3c40;
  --border-medium: #4a4d52;
  --border-dark: #5c5f66;
  --border-color: #3a3c40;

  /* === 文字色 === */
  --text-main: #e8e8e8;
  --text-primary: #dcdcdc;
  --text-secondary: #a0a2a6;
  --text-muted: #8b8c8d;
  --text-soft: #6a6b6d;
  --text-tertiary: #5c5f66;
  --text-invert: #141516;
  --code-text: #b0b2b5;
  --text-color: #dcdcdc;
  --text-on-accent: #ffffff;

  /* === 阴影 === */
  --shadow-sm: 0 4px 16px -8px rgba(0, 0, 0, 0.6);
  --shadow-md: 0 8px 32px -12px rgba(0, 0, 0, 0.7);
  --shadow-lg: 0 16px 48px -16px rgba(0, 0, 0, 0.8);
  --shadow-glow: 0 0 16px rgba(212, 163, 91, 0.2);
  --shadow-inset: inset 0 1px 0 rgba(255, 255, 255, 0.05);
  --shadow-focus-ring: 0 0 0 2px rgba(200, 60, 35, 0.3);

  /* === 温色强调 === */
  --accent-warm-bg: rgba(212, 163, 91, 0.15);
  --accent-warm-bg-strong: rgba(212, 163, 91, 0.25);
  --accent-warm-border: rgba(212, 163, 91, 0.4);
  --accent-warm-border-strong: rgba(212, 163, 91, 0.6);
  --accent-warm-text: #d4a35b;

  /* === 面板 === */
  --panel-tint: rgba(43, 66, 85, 0.15);

  /* === 背景 === */
  --bg-secondary: #1a1b1d;
  --bg-tertiary: #222426;
  --bg-hover: #2a2c2f;
  --bg-color: #141516;

  /* === 输入框 === */
  --input-bg: #141516;
  --input-border: #3a3c40;

  /* === HUD === */
  --hud-bg: rgba(29, 30, 32, 0.8);
  --hud-border: rgba(138, 26, 15, 0.4);
  --hud-text: #a0a2a6;
  --hud-value: #e8e8e8;

  /* === 选项 === */
  --choice-panel-bg: rgba(29, 30, 32, 0.9);
  --choice-panel-border: rgba(74, 77, 82, 0.8);
  --choice-item-bg: #26272a;
  --choice-item-border: #3a3c40;
  --choice-item-hover-bg: #2a2c2f;
  --choice-item-active-bg: rgba(212, 163, 91, 0.15);
  --choice-title: #c83c23;
  --choice-text-primary: #dcdcdc;
  --choice-text-secondary: #8b8c8d;
  --choice-default-chip-bg: rgba(232, 232, 232, 0.08);

  /* === 固定栏 === */
  --sticky-bg: rgba(38, 39, 42, 0.95);
  --sticky-text: #8b8c8d;
  --sticky-value: #dcdcdc;

  /* === 位置 === */
  --location-separator: rgba(232, 232, 232, 0.15);

  /* === 思考 === */
  --thinking-text: #6a6b6d;

  /* === 流式 === */
  --stream-indicator-inner: #1d1e20;

  /* === 聊天气泡 === */
  --chat-bubble-bg: #26272a;
  --chat-bubble-user-bg: #1a2833;
  --chat-bubble-hover-bg: #2a2c2f;
  --chat-bubble-text: #dcdcdc;
  --chat-bubble-label: #8b8c8d;
  --chat-bubble-border-ai: rgba(74, 77, 82, 0.5);
  --chat-bubble-border-user: rgba(26, 104, 64, 0.4);
  --chat-bg: #141516;

  /* === 设计卡片 === */
  --dcv-bg: #141516;
  --dcv-toolbar-bg: #1d1e20;
  --dcv-toolbar-border: #3a3c40;
  --dcv-section-bg: #26272a;
  --dcv-section-border: #3a3c40;
  --dcv-section-hover: #2a2c2f;
  --dcv-text-primary: #dcdcdc;
  --dcv-text-secondary: #a0a2a6;
  --dcv-text-muted: #8b8c8d;
  --dcv-text-faint: #6a6b6d;
  --dcv-subitem-bg: #1d1e20;
  --dcv-subitem-border: rgba(74, 77, 82, 0.5);
  --dcv-expanded-bg: #2a2c2f;
  --dcv-field-bg: #141516;
  --dcv-field-border: #3a3c40;
  --dcv-btn-hover-bg: rgba(200, 60, 35, 0.15);
  --dcv-btn-hover-border: rgba(200, 60, 35, 0.4);
  --dcv-btn-hover-color: #e5725f;
  --dcv-icon-muted: rgba(232, 232, 232, 0.4);
  --dcv-icon-hover: #dcdcdc;
  --dcv-scrollbar: rgba(232, 232, 232, 0.15);
  --dcv-input-bg: #141516;
  --dcv-input-border: #3a3c40;
  --dcv-input-text: #dcdcdc;
  --dcv-modal-bg: #1d1e20;
  --dcv-modal-border: #4a4d52;
  --dcv-modal-text: #dcdcdc;
  --dcv-modal-btn-bg: #26272a;
  --dcv-modal-btn-border: #3a3c40;
  --dcv-modal-btn-text: #a0a2a6;
  --dcv-cognitive-warning-bg: rgba(212, 163, 91, 0.15);
  --dcv-cognitive-warning-border: rgba(200, 60, 35, 0.4);
  --dcv-cognitive-warning-title: #d4a35b;
  --dcv-cognitive-warning-text: #f0d5a8;
  --dcv-cognitive-warning-item-bg: #1d1e20;
  --dcv-cognitive-warning-item-border: rgba(212, 163, 91, 0.3);
  --dcv-cognitive-warning-path-bg: rgba(212, 163, 91, 0.2);
  --dcv-cognitive-warning-path-text: #f0d5a8;

  /* === 语法高亮 === */
  --syntax-key: #89b4fa;
  --syntax-string: #f0a878;
  --syntax-number: #a6d189;
  --syntax-boolean: #7cb8f0;
  --syntax-null: #7cb8f0;
  --syntax-comment: #6a9955;
  --syntax-bracket: #cdd6f4;

  /* === 叙事色 === */
  --narrative-dialogue: #90caf9;
  --narrative-thought: #ce93d8;
  --narrative-speaker: #ffcc80;
  --narrative-action: #a5d6a7;

  /* === 启动器 === */
  --launcher-surface: #0a0a12;
  --launcher-surface-alt: #111827;
  --launcher-glass: rgba(26, 26, 46, 0.95);
  --launcher-glass-light: rgba(26, 26, 46, 0.72);
  --launcher-border: rgba(255, 255, 255, 0.1);
  --launcher-border-strong: rgba(255, 255, 255, 0.18);
  --launcher-btn-primary: #6366f1;
  --launcher-btn-primary-hover: #4f46e5;
  --launcher-star: #facc15;
  --launcher-text: rgba(255, 255, 255, 0.92);
  --launcher-text-muted: rgba(255, 255, 255, 0.6);
  --launcher-text-faint: rgba(255, 255, 255, 0.4);
  --launcher-shadow: rgba(0, 0, 0, 0.6);
  --launcher-overlay: rgba(0, 0, 0, 0.5);

  /* === 加载 === */
  --loading-bg: rgba(32, 36, 42, 0.98);
  --loading-bg-strong: rgba(18, 20, 24, 0.95);
  --loading-card-bg: rgba(42, 48, 58, 0.82);
  --loading-gradient-start: #4A7A64;
  --loading-gradient-end: #687E54;
  --loading-progress-start: #C28E6A;
  --loading-progress-mid: #B86B72;
  --loading-progress-end: #858BBA;

  /* === 调试分段 === */
  --segment-summary: #66bb6a;
  --segment-npc-archive: #42a5f5;
  --segment-mainline: #ffa726;
  --segment-conversation: #ab47bc;
  --segment-narrative: #ec407a;
  --segment-reference: #26c6da;
  --segment-sms: #9ccc65;
  --segment-game-state: #ffca28;
  --segment-gm: #78909c;
  --segment-step-1: #7e57c2;
  --segment-step-2: #5c6bc0;
  --segment-step-3: #26a69a;
  --segment-core: #64b5f6;
  --segment-custom: #ef5350;
  --segment-module: #4db6ac;
  --segment-country: #7986cb;
  --segment-timeline: #81c784;

  /* ─── 兼容别名（旧变量映射到新语义层） ─── */
  --primary-color: var(--brand-primary);
  --primary-gradient: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-primary-strong) 100%);
  --panel-bg: var(--surface-panel);
  --panel-border: var(--border-soft);
  --panel-shadow: var(--shadow-md);
  --glass-bg: var(--surface-glass);
  --glass-bg-strong: var(--surface-glass-strong);
  --glass-border: var(--border-soft);
  --metro-blue: var(--brand-primary);
  --metro-cobalt: var(--brand-primary-strong);
  --metro-teal: var(--brand-secondary);
  --metro-orange: var(--brand-accent);
  --metro-yellow: var(--brand-yellow);
  --metro-purple: var(--brand-purple);
  --metro-magenta: var(--brand-magenta);
  --metro-green: var(--status-success);
  --metro-red: var(--status-danger);
  --metro-lime: var(--brand-lime);
  --metro-brown: var(--brand-brown);
  --metro-dark: var(--surface-code);

}

/* ═══ Neon City Cyberpunk ═══ */

:root[data-skin='cyberpunk'][data-theme='light'] {
  color-scheme: light;

  /* ─── 共享令牌 ─── */
  /* === 元数据 === */
  --ui-scale: 1;

  /* === 字体 === */
  --font-ui: 'Fira Code', 'JetBrains Mono', 'Roboto Mono', 'Segoe UI Monospace', monospace;
  --font-mono: 'Fira Code', 'JetBrains Mono', 'Courier New', monospace;

  /* === 文字尺寸 === */
  --text-2xs: calc(10px * var(--ui-scale, 1));
  --text-xs: calc(11px * var(--ui-scale, 1));
  --text-sm: calc(12px * var(--ui-scale, 1));
  --text-caption: calc(13px * var(--ui-scale, 1));
  --text-body-sm: calc(14px * var(--ui-scale, 1));
  --text-body: calc(15px * var(--ui-scale, 1));
  --text-body-lg: calc(16px * var(--ui-scale, 1));
  --text-subtitle: calc(18px * var(--ui-scale, 1));
  --text-title: calc(20px * var(--ui-scale, 1));
  --text-heading: calc(24px * var(--ui-scale, 1));
  --text-display: calc(28px * var(--ui-scale, 1));

  /* === 间距 === */
  --space-2xs: 4px;
  --space-xs: 8px;
  --space-sm: 12px;
  --space-md: 16px;
  --space-lg: 24px;
  --space-xl: 32px;
  --space-2xl: 48px;

  /* === 圆角 === */
  --radius-2xs: 0px;
  --radius-xs: 1px;
  --radius-sm: 2px;
  --radius-md: 3px;
  --radius-lg: 4px;
  --radius-xl: 8px;
  --radius-pill: 999px;
  --radius-circle: 50%;

  /* === 模糊 === */
  --blur-sm: 2px;
  --blur-md: 4px;
  --blur-lg: 8px;

  /* === 过渡 === */
  --transition-fast: 0.1s ease-out;
  --transition-base: 0.2s cubic-bezier(0.2, 1, 0.2, 1);
  --transition-slow: 0.3s cubic-bezier(0.2, 1, 0.2, 1);

  /* === 动效 === */
  --motion-fast: 100ms;
  --motion-base: 200ms;
  --motion-slow: 300ms;
  --easing-standard: cubic-bezier(0.2, 1, 0.2, 1);
  --easing-exit: cubic-bezier(0.4, 0, 1, 1);

  /* === 品牌色 === */
  --brand-primary: #00FFFF;
  --brand-primary-strong: #00CCCC;
  --brand-secondary: #FF00FF;
  --brand-accent: #FFFF00;
  --brand-accent-strong: #CCCC00;
  --brand-purple: #BC00FF;
  --brand-magenta: #FF0099;
  --brand-yellow: #FFEA00;
  --brand-lime: #39FF14;
  --brand-brown: #443322;

  /* === 状态色 === */
  --status-success: #39FF14;
  --status-warning: #FFFF00;
  --status-danger: #FF0033;
  --status-info: #00FFFF;

  /* === 账户 === */
  --account-avatar-sm: 36px;
  --account-avatar-md: 48px;
  --account-avatar-lg: 72px;
  --account-avatar-radius: 0px;

  /* === 字重 === */
  --weight-light: 300;
  --weight-normal: 400;
  --weight-medium: 500;
  --weight-semibold: 600;
  --weight-bold: 700;
  --weight-extrabold: 800;
  --weight-black: 900;

  /* === 透明度 === */
  --opacity-subtle: 0.1;
  --opacity-soft: 0.25;
  --opacity-medium: 0.5;
  --opacity-strong: 0.75;
  --opacity-full: 1;

  /* === 层叠 === */
  --z-base: 0;
  --z-dropdown: 100;
  --z-sticky: 200;
  --z-overlay: 300;
  --z-modal: 400;
  --z-toast: 500;
  --z-tooltip: 600;
  --z-max: 9999;

  /* === 图标尺寸 === */
  --icon-size-xs: calc(16px * var(--ui-scale, 1));
  --icon-size-sm: calc(20px * var(--ui-scale, 1));
  --icon-size-md: calc(24px * var(--ui-scale, 1));
  --icon-size-lg: calc(32px * var(--ui-scale, 1));
  --icon-size-xl: calc(40px * var(--ui-scale, 1));

  /* ─── Light 主题令牌 ─── */
  /* === 账户 === */
  --account-badge-guest-bg: #E0E0E0;
  --account-badge-guest-text: #555555;
  --account-badge-pro-bg: #FF00FF;
  --account-badge-pro-text: #FFFFFF;
  --account-badge-pro-border: #FF00FF;
  --account-sync-local-bg: #EEEEEE;
  --account-sync-local-text: #777777;
  --account-sync-ready-bg: #00FFFF;
  --account-sync-ready-text: #000000;
  --account-sync-done-bg: #39FF14;
  --account-sync-done-text: #000000;
  --account-sync-conflict-bg: #FF0033;
  --account-sync-conflict-text: #FFFFFF;
  --account-locked-bg: #D0D0D0;
  --account-locked-border: #AAAAAA;
  --account-locked-text: #777777;
  --account-card-bg: #FFFFFF;
  --account-card-border: #CCCCCC;

  /* === 图标色 === */
  --icon-muted: #444444;
  --icon-subtle: #666666;

  /* === 表面色 === */
  --surface-page: #FFFFFF;
  --surface-main: #F0F0F0;
  --surface-canvas: #FFFFFF;
  --surface-elevated: #FFFFFF;
  --surface-soft: #E0E0E0;
  --surface-glass: rgba(255, 255, 255, 0.7);
  --surface-glass-strong: rgba(255, 255, 255, 0.9);
  --surface-panel: #E0E0E0;
  --surface-panel-strong: #D0D0D0;
  --surface-card: #FFFFFF;
  --surface-overlay: rgba(255, 255, 255, 0.9);
  --surface-code: #121212;
  --surface-code-alt: #1E1E1E;
  --surface-input: #FFFFFF;

  /* === 边框 === */
  --border-subtle: #DDDDDD;
  --border-soft: #CCCCCC;
  --border-strong: #888888;
  --border-accent: #00CCCC;
  --border-accent-strong: #FF00CC;
  --border-light: #EEEEEE;
  --border-medium: #DDDDDD;
  --border-dark: #AAAAAA;
  --border-color: #CCCCCC;

  /* === 文字色 === */
  --text-main: #000000;
  --text-primary: #121212;
  --text-secondary: #444444;
  --text-muted: #777777;
  --text-soft: #999999;
  --text-tertiary: #AAAAAA;
  --text-invert: #FFFFFF;
  --code-text: #00FF00;
  --text-color: #121212;
  --text-on-accent: #000000;

  /* === 阴影 === */
  --shadow-sm: 0 2px 8px -2px rgba(0, 204, 204, 0.2);
  --shadow-md: 0 4px 16px -4px rgba(0, 204, 204, 0.3);
  --shadow-lg: 0 8px 32px -8px rgba(255, 0, 204, 0.3);
  --shadow-glow: 0 0 8px #00FFFF, 0 0 16px #00FFFF;
  --shadow-inset: inset 0 1px 0 rgba(255, 255, 255, 0.5);
  --shadow-focus-ring: 0 0 0 2px #FF00FF;

  /* === 温色强调 === */
  --accent-warm-bg: rgba(255, 234, 0, 0.1);
  --accent-warm-bg-strong: rgba(255, 234, 0, 0.2);
  --accent-warm-border: #CCCC00;
  --accent-warm-border-strong: #FFFF00;
  --accent-warm-text: #888800;

  /* === 面板 === */
  --panel-tint: rgba(0, 255, 255, 0.05);

  /* === 背景 === */
  --bg-secondary: #E0E0E0;
  --bg-tertiary: #D0D0D0;
  --bg-hover: #F5F5F5;
  --bg-color: #FFFFFF;

  /* === 输入框 === */
  --input-bg: #FFFFFF;
  --input-border: #CCCCCC;

  /* === HUD === */
  --hud-bg: rgba(240, 240, 240, 0.8);
  --hud-border: #00CCCC;
  --hud-text: #222222;
  --hud-value: #000000;

  /* === 选项 === */
  --choice-panel-bg: #FFFFFF;
  --choice-panel-border: #00CCCC;
  --choice-item-bg: #F5F5F5;
  --choice-item-border: #CCCCCC;
  --choice-item-hover-bg: rgba(0, 255, 255, 0.1);
  --choice-item-active-bg: rgba(0, 255, 255, 0.2);
  --choice-title: #00CCCC;
  --choice-text-primary: #121212;
  --choice-text-secondary: #555555;
  --choice-default-chip-bg: #E0E0E0;

  /* === 固定栏 === */
  --sticky-bg: rgba(255, 255, 255, 0.9);
  --sticky-text: #555555;
  --sticky-value: #000000;

  /* === 位置 === */
  --location-separator: #CCCCCC;

  /* === 思考 === */
  --thinking-text: #999999;

  /* === 流式 === */
  --stream-indicator-inner: #FFFFFF;

  /* === 聊天气泡 === */
  --chat-bubble-bg: #F0F0F0;
  --chat-bubble-user-bg: #00FFFF;
  --chat-bubble-hover-bg: #E8E8E8;
  --chat-bubble-text: #121212;
  --chat-bubble-label: #444444;
  --chat-bubble-border-ai: #CCCCCC;
  --chat-bubble-border-user: #00CCCC;
  --chat-bg: #FFFFFF;

  /* === 设计卡片 === */
  --dcv-bg: #FFFFFF;
  --dcv-toolbar-bg: #F0F0F0;
  --dcv-toolbar-border: #CCCCCC;
  --dcv-section-bg: #FFFFFF;
  --dcv-section-border: #CCCCCC;
  --dcv-section-hover: #F5F5F5;
  --dcv-text-primary: #121212;
  --dcv-text-secondary: #444444;
  --dcv-text-muted: #777777;
  --dcv-text-faint: #AAAAAA;
  --dcv-subitem-bg: #FBFBFB;
  --dcv-subitem-border: #EEEEEE;
  --dcv-expanded-bg: #F0F0F0;
  --dcv-field-bg: #FFFFFF;
  --dcv-field-border: #CCCCCC;
  --dcv-btn-hover-bg: rgba(0, 255, 255, 0.1);
  --dcv-btn-hover-border: #00CCCC;
  --dcv-btn-hover-color: #008888;
  --dcv-icon-muted: rgba(0, 0, 0, 0.3);
  --dcv-icon-hover: #00CCCC;
  --dcv-scrollbar: rgba(0, 0, 0, 0.1);
  --dcv-input-bg: #FFFFFF;
  --dcv-input-border: #CCCCCC;
  --dcv-input-text: #121212;
  --dcv-modal-bg: #FFFFFF;
  --dcv-modal-border: #CCCCCC;
  --dcv-modal-text: #121212;
  --dcv-modal-btn-bg: #F0F0F0;
  --dcv-modal-btn-border: #CCCCCC;
  --dcv-modal-btn-text: #444444;
  --dcv-cognitive-warning-bg: #FFFFCC;
  --dcv-cognitive-warning-border: #FFFF00;
  --dcv-cognitive-warning-title: #888800;
  --dcv-cognitive-warning-text: #555500;
  --dcv-cognitive-warning-item-bg: #FFFFFF;
  --dcv-cognitive-warning-item-border: #EEEEEE;
  --dcv-cognitive-warning-path-bg: #FFFFE0;
  --dcv-cognitive-warning-path-text: #555500;

  /* === 语法高亮 === */
  --syntax-key: #9cdcfe;
  --syntax-string: #ce9178;
  --syntax-number: #b5cea8;
  --syntax-boolean: #569cd6;
  --syntax-null: #569cd6;
  --syntax-comment: #6a9955;
  --syntax-bracket: #d4d4d4;

  /* === 叙事色 === */
  --narrative-dialogue: #1565c0;
  --narrative-thought: #7b1fa2;
  --narrative-speaker: #d84315;
  --narrative-action: #2e7d32;

  /* === 启动器 === */
  --launcher-surface: #0a0a12;
  --launcher-surface-alt: #111827;
  --launcher-glass: rgba(26, 26, 46, 0.95);
  --launcher-glass-light: rgba(26, 26, 46, 0.72);
  --launcher-border: rgba(255, 255, 255, 0.1);
  --launcher-border-strong: rgba(255, 255, 255, 0.18);
  --launcher-btn-primary: #4f46e5;
  --launcher-btn-primary-hover: #4338ca;
  --launcher-star: #facc15;
  --launcher-text: rgba(255, 255, 255, 0.92);
  --launcher-text-muted: rgba(255, 255, 255, 0.6);
  --launcher-text-faint: rgba(255, 255, 255, 0.4);
  --launcher-shadow: rgba(0, 0, 0, 0.5);
  --launcher-overlay: rgba(0, 0, 0, 0.4);

  /* === 加载 === */
  --loading-bg: rgba(252, 250, 246, 0.98);
  --loading-bg-strong: rgba(238, 233, 226, 0.95);
  --loading-card-bg: rgba(255, 255, 255, 0.82);
  --loading-gradient-start: #B5EAD7;
  --loading-gradient-end: #E2F0CB;
  --loading-progress-start: #FFD3B6;
  --loading-progress-mid: #FF9AA2;
  --loading-progress-end: #C7CEEA;

  /* === 调试分段 === */
  --segment-summary: #4caf50;
  --segment-npc-archive: #2196f3;
  --segment-mainline: #ff9800;
  --segment-conversation: #9c27b0;
  --segment-narrative: #e91e63;
  --segment-reference: #00bcd4;
  --segment-sms: #8bc34a;
  --segment-game-state: #ffc107;
  --segment-gm: #607d8b;
  --segment-step-1: #673ab7;
  --segment-step-2: #3f51b5;
  --segment-step-3: #009688;
  --segment-core: #42a5f5;
  --segment-custom: #ef5350;
  --segment-module: #26a69a;
  --segment-country: #5c6bc0;
  --segment-timeline: #66bb6a;

  /* ─── 兼容别名（旧变量映射到新语义层） ─── */
  --primary-color: var(--brand-primary);
  --primary-gradient: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-primary-strong) 100%);
  --panel-bg: var(--surface-panel);
  --panel-border: var(--border-soft);
  --panel-shadow: var(--shadow-md);
  --glass-bg: var(--surface-glass);
  --glass-bg-strong: var(--surface-glass-strong);
  --glass-border: var(--border-soft);
  --metro-blue: var(--brand-primary);
  --metro-cobalt: var(--brand-primary-strong);
  --metro-teal: var(--brand-secondary);
  --metro-orange: var(--brand-accent);
  --metro-yellow: var(--brand-yellow);
  --metro-purple: var(--brand-purple);
  --metro-magenta: var(--brand-magenta);
  --metro-green: var(--status-success);
  --metro-red: var(--status-danger);
  --metro-lime: var(--brand-lime);
  --metro-brown: var(--brand-brown);
  --metro-dark: var(--surface-code);

}

:root[data-skin='cyberpunk'][data-theme='dark'] {
  color-scheme: dark;

  /* ─── 共享令牌 ─── */
  /* === 元数据 === */
  --ui-scale: 1;

  /* === 字体 === */
  --font-ui: 'Fira Code', 'JetBrains Mono', 'Roboto Mono', 'Segoe UI Monospace', monospace;
  --font-mono: 'Fira Code', 'JetBrains Mono', 'Courier New', monospace;

  /* === 文字尺寸 === */
  --text-2xs: calc(10px * var(--ui-scale, 1));
  --text-xs: calc(11px * var(--ui-scale, 1));
  --text-sm: calc(12px * var(--ui-scale, 1));
  --text-caption: calc(13px * var(--ui-scale, 1));
  --text-body-sm: calc(14px * var(--ui-scale, 1));
  --text-body: calc(15px * var(--ui-scale, 1));
  --text-body-lg: calc(16px * var(--ui-scale, 1));
  --text-subtitle: calc(18px * var(--ui-scale, 1));
  --text-title: calc(20px * var(--ui-scale, 1));
  --text-heading: calc(24px * var(--ui-scale, 1));
  --text-display: calc(28px * var(--ui-scale, 1));

  /* === 间距 === */
  --space-2xs: 4px;
  --space-xs: 8px;
  --space-sm: 12px;
  --space-md: 16px;
  --space-lg: 24px;
  --space-xl: 32px;
  --space-2xl: 48px;

  /* === 圆角 === */
  --radius-2xs: 0px;
  --radius-xs: 1px;
  --radius-sm: 2px;
  --radius-md: 3px;
  --radius-lg: 4px;
  --radius-xl: 8px;
  --radius-pill: 999px;
  --radius-circle: 50%;

  /* === 模糊 === */
  --blur-sm: 2px;
  --blur-md: 4px;
  --blur-lg: 8px;

  /* === 过渡 === */
  --transition-fast: 0.1s ease-out;
  --transition-base: 0.2s cubic-bezier(0.2, 1, 0.2, 1);
  --transition-slow: 0.3s cubic-bezier(0.2, 1, 0.2, 1);

  /* === 动效 === */
  --motion-fast: 100ms;
  --motion-base: 200ms;
  --motion-slow: 300ms;
  --easing-standard: cubic-bezier(0.2, 1, 0.2, 1);
  --easing-exit: cubic-bezier(0.4, 0, 1, 1);

  /* === 品牌色 === */
  --brand-primary: #00FFFF;
  --brand-primary-strong: #00CCCC;
  --brand-secondary: #FF00FF;
  --brand-accent: #FFFF00;
  --brand-accent-strong: #CCCC00;
  --brand-purple: #BC00FF;
  --brand-magenta: #FF0099;
  --brand-yellow: #FFEA00;
  --brand-lime: #39FF14;
  --brand-brown: #443322;

  /* === 状态色 === */
  --status-success: #39FF14;
  --status-warning: #FFFF00;
  --status-danger: #FF0033;
  --status-info: #00FFFF;

  /* === 账户 === */
  --account-avatar-sm: 36px;
  --account-avatar-md: 48px;
  --account-avatar-lg: 72px;
  --account-avatar-radius: 0px;

  /* === 字重 === */
  --weight-light: 300;
  --weight-normal: 400;
  --weight-medium: 500;
  --weight-semibold: 600;
  --weight-bold: 700;
  --weight-extrabold: 800;
  --weight-black: 900;

  /* === 透明度 === */
  --opacity-subtle: 0.1;
  --opacity-soft: 0.25;
  --opacity-medium: 0.5;
  --opacity-strong: 0.75;
  --opacity-full: 1;

  /* === 层叠 === */
  --z-base: 0;
  --z-dropdown: 100;
  --z-sticky: 200;
  --z-overlay: 300;
  --z-modal: 400;
  --z-toast: 500;
  --z-tooltip: 600;
  --z-max: 9999;

  /* === 图标尺寸 === */
  --icon-size-xs: calc(16px * var(--ui-scale, 1));
  --icon-size-sm: calc(20px * var(--ui-scale, 1));
  --icon-size-md: calc(24px * var(--ui-scale, 1));
  --icon-size-lg: calc(32px * var(--ui-scale, 1));
  --icon-size-xl: calc(40px * var(--ui-scale, 1));

  /* === 账户 === */
  --account-badge-guest-bg: #2A2A2A;
  --account-badge-guest-text: #888888;
  --account-badge-pro-bg: #FF00FF;
  --account-badge-pro-text: #FFFFFF;
  --account-badge-pro-border: #FF00FF;
  --account-sync-local-bg: #1E1E1E;
  --account-sync-local-text: #666666;
  --account-sync-ready-bg: #00FFFF;
  --account-sync-ready-text: #000000;
  --account-sync-done-bg: #39FF14;
  --account-sync-done-text: #000000;
  --account-sync-conflict-bg: #FF0033;
  --account-sync-conflict-text: #FFFFFF;
  --account-locked-bg: #121212;
  --account-locked-border: #555555;
  --account-locked-text: #666666;
  --account-card-bg: #1E1E1E;
  --account-card-border: #333333;

  /* === 图标色 === */
  --icon-muted: #888888;
  --icon-subtle: #AAAAAA;

  /* === 表面色 === */
  --surface-page: #050505;
  --surface-main: #121212;
  --surface-canvas: #000000;
  --surface-elevated: #1E1E1E;
  --surface-soft: #2A2A2A;
  --surface-glass: rgba(18, 18, 18, 0.7);
  --surface-glass-strong: rgba(10, 10, 10, 0.9);
  --surface-panel: #1E1E1E;
  --surface-panel-strong: #2A2A2A;
  --surface-card: #121212;
  --surface-overlay: rgba(5, 5, 5, 0.95);
  --surface-code: #000000;
  --surface-code-alt: #121212;
  --surface-input: #1E1E1E;

  /* === 边框 === */
  --border-subtle: rgba(255, 255, 255, 0.05);
  --border-soft: rgba(255, 255, 255, 0.1);
  --border-strong: rgba(255, 255, 255, 0.25);
  --border-accent: #00FFFF;
  --border-accent-strong: #FF00FF;
  --border-light: #2A2A2A;
  --border-medium: #333333;
  --border-dark: #555555;
  --border-color: rgba(255, 255, 255, 0.1);

  /* === 文字色 === */
  --text-main: #FFFFFF;
  --text-primary: #E0E0E0;
  --text-secondary: #AAAAAA;
  --text-muted: #888888;
  --text-soft: #666666;
  --text-tertiary: #555555;
  --text-invert: #000000;
  --code-text: #39FF14;
  --text-color: #E0E0E0;
  --text-on-accent: #000000;

  /* === 阴影 === */
  --shadow-sm: 0 2px 8px rgba(0, 255, 255, 0.15);
  --shadow-md: 0 4px 16px rgba(0, 255, 255, 0.25);
  --shadow-lg: 0 8px 32px rgba(255, 0, 255, 0.25);
  --shadow-glow: 0 0 8px #00FFFF, 0 0 16px #00FFFF, 0 0 24px rgba(0, 255, 255, 0.5);
  --shadow-inset: inset 0 1px 0 rgba(255, 255, 255, 0.05);
  --shadow-focus-ring: 0 0 0 2px #FFFF00;

  /* === 温色强调 === */
  --accent-warm-bg: rgba(255, 234, 0, 0.1);
  --accent-warm-bg-strong: rgba(255, 234, 0, 0.2);
  --accent-warm-border: #CCCC00;
  --accent-warm-border-strong: #FFFF00;
  --accent-warm-text: #FFFF00;

  /* === 面板 === */
  --panel-tint: rgba(0, 255, 255, 0.03);

  /* === 背景 === */
  --bg-secondary: #1E1E1E;
  --bg-tertiary: #2A2A2A;
  --bg-hover: #252525;
  --bg-color: #050505;

  /* === 输入框 === */
  --input-bg: #000000;
  --input-border: #333333;

  /* === HUD === */
  --hud-bg: rgba(18, 18, 18, 0.85);
  --hud-border: #00FFFF;
  --hud-text: #AAAAAA;
  --hud-value: #FFFFFF;

  /* === 选项 === */
  --choice-panel-bg: #121212;
  --choice-panel-border: #00FFFF;
  --choice-item-bg: #1E1E1E;
  --choice-item-border: #333333;
  --choice-item-hover-bg: rgba(0, 255, 255, 0.1);
  --choice-item-active-bg: rgba(0, 255, 255, 0.2);
  --choice-title: #00FFFF;
  --choice-text-primary: #FFFFFF;
  --choice-text-secondary: #888888;
  --choice-default-chip-bg: #2A2A2A;

  /* === 固定栏 === */
  --sticky-bg: rgba(30, 30, 30, 0.95);
  --sticky-text: #888888;
  --sticky-value: #FFFFFF;

  /* === 位置 === */
  --location-separator: rgba(255, 255, 255, 0.1);

  /* === 思考 === */
  --thinking-text: #666666;

  /* === 流式 === */
  --stream-indicator-inner: #000000;

  /* === 聊天气泡 === */
  --chat-bubble-bg: #1E1E1E;
  --chat-bubble-user-bg: #FF00FF;
  --chat-bubble-hover-bg: #252525;
  --chat-bubble-text: #FFFFFF;
  --chat-bubble-label: #AAAAAA;
  --chat-bubble-border-ai: #333333;
  --chat-bubble-border-user: #FF00FF;
  --chat-bg: #050505;

  /* === 设计卡片 === */
  --dcv-bg: #050505;
  --dcv-toolbar-bg: #121212;
  --dcv-toolbar-border: #333333;
  --dcv-section-bg: #1E1E1E;
  --dcv-section-border: #333333;
  --dcv-section-hover: #252525;
  --dcv-text-primary: #FFFFFF;
  --dcv-text-secondary: #AAAAAA;
  --dcv-text-muted: #888888;
  --dcv-text-faint: #555555;
  --dcv-subitem-bg: #0A0A0A;
  --dcv-subitem-border: #2A2A2A;
  --dcv-expanded-bg: #121212;
  --dcv-field-bg: #000000;
  --dcv-field-border: #333333;
  --dcv-btn-hover-bg: rgba(0, 255, 255, 0.15);
  --dcv-btn-hover-border: #00FFFF;
  --dcv-btn-hover-color: #00FFFF;
  --dcv-icon-muted: rgba(255, 255, 255, 0.3);
  --dcv-icon-hover: #00FFFF;
  --dcv-scrollbar: rgba(255, 255, 255, 0.05);
  --dcv-input-bg: #000000;
  --dcv-input-border: #333333;
  --dcv-input-text: #39FF14;
  --dcv-modal-bg: #121212;
  --dcv-modal-border: #FF00FF;
  --dcv-modal-text: #FFFFFF;
  --dcv-modal-btn-bg: #1E1E1E;
  --dcv-modal-btn-border: #333333;
  --dcv-modal-btn-text: #AAAAAA;
  --dcv-cognitive-warning-bg: rgba(255, 234, 0, 0.1);
  --dcv-cognitive-warning-border: #FFFF00;
  --dcv-cognitive-warning-title: #FFFF00;
  --dcv-cognitive-warning-text: #FFFFCC;
  --dcv-cognitive-warning-item-bg: #121212;
  --dcv-cognitive-warning-item-border: #333333;
  --dcv-cognitive-warning-path-bg: rgba(255, 234, 0, 0.2);
  --dcv-cognitive-warning-path-text: #FFFFCC;

  /* === 语法高亮 === */
  --syntax-key: #89b4fa;
  --syntax-string: #f0a878;
  --syntax-number: #a6d189;
  --syntax-boolean: #7cb8f0;
  --syntax-null: #7cb8f0;
  --syntax-comment: #6a9955;
  --syntax-bracket: #cdd6f4;

  /* === 叙事色 === */
  --narrative-dialogue: #90caf9;
  --narrative-thought: #ce93d8;
  --narrative-speaker: #ffcc80;
  --narrative-action: #a5d6a7;

  /* === 启动器 === */
  --launcher-surface: #0a0a12;
  --launcher-surface-alt: #111827;
  --launcher-glass: rgba(26, 26, 46, 0.95);
  --launcher-glass-light: rgba(26, 26, 46, 0.72);
  --launcher-border: rgba(255, 255, 255, 0.1);
  --launcher-border-strong: rgba(255, 255, 255, 0.18);
  --launcher-btn-primary: #6366f1;
  --launcher-btn-primary-hover: #4f46e5;
  --launcher-star: #facc15;
  --launcher-text: rgba(255, 255, 255, 0.92);
  --launcher-text-muted: rgba(255, 255, 255, 0.6);
  --launcher-text-faint: rgba(255, 255, 255, 0.4);
  --launcher-shadow: rgba(0, 0, 0, 0.6);
  --launcher-overlay: rgba(0, 0, 0, 0.5);

  /* === 加载 === */
  --loading-bg: rgba(32, 36, 42, 0.98);
  --loading-bg-strong: rgba(18, 20, 24, 0.95);
  --loading-card-bg: rgba(42, 48, 58, 0.82);
  --loading-gradient-start: #4A7A64;
  --loading-gradient-end: #687E54;
  --loading-progress-start: #C28E6A;
  --loading-progress-mid: #B86B72;
  --loading-progress-end: #858BBA;

  /* === 调试分段 === */
  --segment-summary: #66bb6a;
  --segment-npc-archive: #42a5f5;
  --segment-mainline: #ffa726;
  --segment-conversation: #ab47bc;
  --segment-narrative: #ec407a;
  --segment-reference: #26c6da;
  --segment-sms: #9ccc65;
  --segment-game-state: #ffca28;
  --segment-gm: #78909c;
  --segment-step-1: #7e57c2;
  --segment-step-2: #5c6bc0;
  --segment-step-3: #26a69a;
  --segment-core: #64b5f6;
  --segment-custom: #ef5350;
  --segment-module: #4db6ac;
  --segment-country: #7986cb;
  --segment-timeline: #81c784;

  /* ─── 兼容别名（旧变量映射到新语义层） ─── */
  --primary-color: var(--brand-primary);
  --primary-gradient: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-primary-strong) 100%);
  --panel-bg: var(--surface-panel);
  --panel-border: var(--border-soft);
  --panel-shadow: var(--shadow-md);
  --glass-bg: var(--surface-glass);
  --glass-bg-strong: var(--surface-glass-strong);
  --glass-border: var(--border-soft);
  --metro-blue: var(--brand-primary);
  --metro-cobalt: var(--brand-primary-strong);
  --metro-teal: var(--brand-secondary);
  --metro-orange: var(--brand-accent);
  --metro-yellow: var(--brand-yellow);
  --metro-purple: var(--brand-purple);
  --metro-magenta: var(--brand-magenta);
  --metro-green: var(--status-success);
  --metro-red: var(--status-danger);
  --metro-lime: var(--brand-lime);
  --metro-brown: var(--brand-brown);
  --metro-dark: var(--surface-code);

}

/* ═══ WinterSun ═══ */

:root[data-skin='WinterSun'][data-theme='light'] {
  color-scheme: light;

  /* ─── 共享令牌 ─── */
  /* === 元数据 === */
  --ui-scale: 1;

  /* === 字体 === */
  --font-ui:
    -apple-system,
    BlinkMacSystemFont,
    'Noto Serif SC',
    'PingFang SC',
    'Microsoft YaHei',
    'Segoe UI',
    serif;
  --font-mono: 'SF Mono', 'Menlo', 'Consolas', monospace;

  /* === 文字尺寸 === */
  --text-2xs: calc(8px * var(--ui-scale, 1));
  --text-xs: calc(9px * var(--ui-scale, 1));
  --text-sm: calc(10px * var(--ui-scale, 1));
  --text-caption: calc(11px * var(--ui-scale, 1));
  --text-body-sm: calc(12px * var(--ui-scale, 1));
  --text-body: calc(13px * var(--ui-scale, 1));
  --text-body-lg: calc(14px * var(--ui-scale, 1));
  --text-subtitle: calc(15px * var(--ui-scale, 1));
  --text-title: calc(16px * var(--ui-scale, 1));
  --text-heading: calc(18px * var(--ui-scale, 1));
  --text-display: calc(20px * var(--ui-scale, 1));

  /* === 间距 === */
  --space-2xs: 4px;
  --space-xs: 8px;
  --space-sm: 12px;
  --space-md: 16px;
  --space-lg: 24px;
  --space-xl: 32px;
  --space-2xl: 48px;

  /* === 圆角 === */
  --radius-2xs: 6px;
  --radius-xs: 10px;
  --radius-sm: 16px;
  --radius-md: 20px;
  --radius-lg: 24px;
  --radius-xl: 32px;
  --radius-pill: 999px;
  --radius-circle: 50%;

  /* === 模糊 === */
  --blur-sm: 12px;
  --blur-md: 24px;
  --blur-lg: 40px;

  /* === 过渡 === */
  --transition-fast: 0.16s ease-out;
  --transition-base: 0.4s cubic-bezier(0.16, 1, 0.3, 1);
  --transition-slow: 0.6s cubic-bezier(0.16, 1, 0.3, 1);

  /* === 动效 === */
  --motion-fast: 160ms;
  --motion-base: 400ms;
  --motion-slow: 600ms;
  --easing-standard: cubic-bezier(0.16, 1, 0.3, 1);
  --easing-exit: cubic-bezier(0.5, 0, 1, 1);

  /* === 品牌色 === */
  --brand-primary: #e58a3c;
  --brand-primary-strong: #cc6c1f;
  --brand-secondary: #85a8c4;
  --brand-accent: #df6a78;
  --brand-accent-strong: #c54b5a;
  --brand-purple: #917eb8;
  --brand-magenta: #d484a6;
  --brand-yellow: #f2c159;
  --brand-lime: #a3b878;
  --brand-brown: #8e7264;

  /* === 状态色 === */
  --status-success: #6eb076;
  --status-warning: #f2c159;
  --status-danger: #df6a78;
  --status-info: #85a8c4;

  /* === 账户 === */
  --account-avatar-sm: 32px;
  --account-avatar-md: 40px;
  --account-avatar-lg: 64px;
  --account-avatar-radius: 50%;

  /* === 字重 === */
  --weight-light: 300;
  --weight-normal: 400;
  --weight-medium: 500;
  --weight-semibold: 600;
  --weight-bold: 700;
  --weight-extrabold: 800;
  --weight-black: 900;

  /* === 透明度 === */
  --opacity-subtle: 0.1;
  --opacity-soft: 0.2;
  --opacity-medium: 0.4;
  --opacity-strong: 0.7;
  --opacity-full: 0.9;

  /* === 层叠 === */
  --z-base: 0;
  --z-dropdown: 100;
  --z-sticky: 200;
  --z-overlay: 300;
  --z-modal: 400;
  --z-toast: 500;
  --z-tooltip: 600;
  --z-max: 9999;

  /* === 图标尺寸 === */
  --icon-size-xs: calc(14px * var(--ui-scale, 1));
  --icon-size-sm: calc(16px * var(--ui-scale, 1));
  --icon-size-md: calc(20px * var(--ui-scale, 1));
  --icon-size-lg: calc(24px * var(--ui-scale, 1));
  --icon-size-xl: calc(32px * var(--ui-scale, 1));

  /* ─── Light 主题令牌 ─── */
  /* === 账户 === */
  --account-badge-guest-bg: rgba(133, 168, 196, 0.1);
  --account-badge-guest-text: #858994;
  --account-badge-pro-bg: rgba(229, 138, 60, 0.12);
  --account-badge-pro-text: #c76a1d;
  --account-badge-pro-border: rgba(229, 138, 60, 0.25);
  --account-sync-local-bg: rgba(133, 168, 196, 0.08);
  --account-sync-local-text: #858994;
  --account-sync-ready-bg: rgba(133, 168, 196, 0.15);
  --account-sync-ready-text: #5f85a6;
  --account-sync-done-bg: rgba(110, 176, 118, 0.15);
  --account-sync-done-text: #4c8c54;
  --account-sync-conflict-bg: rgba(223, 106, 120, 0.12);
  --account-sync-conflict-text: #ba4a58;
  --account-locked-bg: rgba(133, 168, 196, 0.05);
  --account-locked-border: rgba(133, 168, 196, 0.15);
  --account-locked-text: #858994;
  --account-card-bg: rgba(255, 255, 255, 0.8);
  --account-card-border: rgba(255, 255, 255, 0.9);

  /* === 图标色 === */
  --icon-muted: #aeb7c0;
  --icon-subtle: #8a96a3;

  /* === 表面色 === */
  --surface-page: #fcfcfd;
  --surface-main: #ffffff;
  --surface-canvas: rgba(255, 255, 255, 0.75);
  --surface-elevated: rgba(255, 255, 255, 0.95);
  --surface-soft: rgba(247, 249, 250, 0.65);
  --surface-glass: rgba(255, 255, 255, 0.45);
  --surface-glass-strong: rgba(255, 255, 255, 0.85);
  --surface-panel: rgba(253, 254, 255, 0.8);
  --surface-panel-strong: rgba(255, 255, 255, 0.98);
  --surface-card: rgba(255, 255, 255, 0.7);
  --surface-overlay: rgba(255, 255, 255, 0.92);
  --surface-code: #f4f6f8;
  --surface-code-alt: #ecf0f3;
  --surface-input: rgba(255, 255, 255, 0.88);

  /* === 边框 === */
  --border-subtle: rgba(133, 168, 196, 0.08);
  --border-soft: rgba(133, 168, 196, 0.15);
  --border-strong: rgba(133, 168, 196, 0.25);
  --border-accent: rgba(229, 138, 60, 0.25);
  --border-accent-strong: rgba(229, 138, 60, 0.45);
  --border-light: #f0f4f7;
  --border-medium: #e2e8ee;
  --border-dark: #c9d3dd;
  --border-color: #e6edf2;

  /* === 文字色 === */
  --text-main: #3a3c42;
  --text-primary: #2d2f34;
  --text-secondary: #5b5e66;
  --text-muted: #858994;
  --text-soft: #a4a8b2;
  --text-tertiary: #c0c4cc;
  --text-invert: #ffffff;
  --code-text: #4a5361;
  --text-color: #3a3c42;
  --text-on-accent: #ffffff;

  /* === 阴影 === */
  --shadow-sm: 0 8px 24px -12px rgba(133, 168, 196, 0.15);
  --shadow-md: 0 16px 40px -16px rgba(133, 168, 196, 0.18);
  --shadow-lg: 0 24px 64px -24px rgba(133, 168, 196, 0.22);
  --shadow-glow: 0 0 0 1px rgba(229, 138, 60, 0.15), 0 16px 48px -20px rgba(229, 138, 60, 0.28);
  --shadow-inset: inset 0 1px 2px rgba(255, 255, 255, 0.9);
  --shadow-focus-ring: 0 0 0 4px rgba(229, 138, 60, 0.15);

  /* === 温色强调 === */
  --accent-warm-bg: rgba(229, 138, 60, 0.06);
  --accent-warm-bg-strong: rgba(229, 138, 60, 0.12);
  --accent-warm-border: rgba(229, 138, 60, 0.2);
  --accent-warm-border-strong: rgba(229, 138, 60, 0.35);
  --accent-warm-text: #d87622;

  /* === 面板 === */
  --panel-tint: rgba(255, 248, 240, 0.6);

  /* === 背景 === */
  --bg-secondary: #f8f9fa;
  --bg-tertiary: #f2f4f6;
  --bg-hover: #f0f4f7;
  --bg-color: #fcfcfd;

  /* === 输入框 === */
  --input-bg: rgba(255, 255, 255, 0.9);
  --input-border: #e6edf2;

  /* === HUD === */
  --hud-bg: rgba(255, 255, 255, 0.6);
  --hud-border: rgba(255, 255, 255, 0.8);
  --hud-text: #6e7580;
  --hud-value: #2d2f34;

  /* === 选项 === */
  --choice-panel-bg: rgba(255, 255, 255, 0.5);
  --choice-panel-border: rgba(255, 255, 255, 0.9);
  --choice-item-bg: rgba(255, 255, 255, 0.8);
  --choice-item-border: rgba(240, 244, 248, 0.8);
  --choice-item-hover-bg: rgba(255, 249, 242, 0.9);
  --choice-item-active-bg: rgba(255, 242, 230, 0.95);
  --choice-title: #d87622;
  --choice-text-primary: #3a3c42;
  --choice-text-secondary: #6b6e77;
  --choice-default-chip-bg: rgba(229, 138, 60, 0.08);

  /* === 固定栏 === */
  --sticky-bg: rgba(255, 255, 255, 0.85);
  --sticky-text: #6e7580;
  --sticky-value: #2d2f34;

  /* === 位置 === */
  --location-separator: rgba(133, 168, 196, 0.2);

  /* === 思考 === */
  --thinking-text: #a2aab3;

  /* === 流式 === */
  --stream-indicator-inner: #fff4eb;

  /* === 聊天气泡 === */
  --chat-bubble-bg: rgba(255, 255, 255, 0.85);
  --chat-bubble-user-bg: rgba(255, 246, 235, 0.9);
  --chat-bubble-hover-bg: rgba(255, 255, 255, 0.98);
  --chat-bubble-text: #3a3c42;
  --chat-bubble-label: #858994;
  --chat-bubble-border-ai: rgba(133, 168, 196, 0.2);
  --chat-bubble-border-user: rgba(229, 138, 60, 0.25);
  --chat-bg: #fcfcfd;

  /* === 设计卡片 === */
  --dcv-bg: #fdfdfd;
  --dcv-toolbar-bg: rgba(255, 255, 255, 0.85);
  --dcv-toolbar-border: rgba(133, 168, 196, 0.12);
  --dcv-section-bg: rgba(255, 255, 255, 0.8);
  --dcv-section-border: rgba(133, 168, 196, 0.1);
  --dcv-section-hover: rgba(255, 252, 248, 0.9);
  --dcv-text-primary: #2d2f34;
  --dcv-text-secondary: #5b5e66;
  --dcv-text-muted: #858994;
  --dcv-text-faint: #b2b6bf;
  --dcv-subitem-bg: rgba(250, 252, 253, 0.8);
  --dcv-subitem-border: rgba(133, 168, 196, 0.15);
  --dcv-expanded-bg: rgba(255, 248, 242, 0.6);
  --dcv-field-bg: rgba(255, 255, 255, 0.95);
  --dcv-field-border: rgba(235, 240, 245, 0.9);
  --dcv-btn-hover-bg: rgba(229, 138, 60, 0.08);
  --dcv-btn-hover-border: rgba(229, 138, 60, 0.2);
  --dcv-btn-hover-color: #cc6c1f;
  --dcv-icon-muted: rgba(58, 60, 66, 0.4);
  --dcv-icon-hover: rgba(58, 60, 66, 0.8);
  --dcv-scrollbar: rgba(133, 168, 196, 0.15);
  --dcv-input-bg: rgba(255, 255, 255, 0.95);
  --dcv-input-border: rgba(226, 232, 238, 0.8);
  --dcv-input-text: #3a3c42;
  --dcv-modal-bg: rgba(255, 255, 255, 0.96);
  --dcv-modal-border: rgba(255, 255, 255, 1);
  --dcv-modal-text: #2d2f34;
  --dcv-modal-btn-bg: rgba(247, 249, 250, 0.8);
  --dcv-modal-btn-border: rgba(133, 168, 196, 0.15);
  --dcv-modal-btn-text: #5b5e66;
  --dcv-cognitive-warning-bg: rgba(242, 193, 89, 0.12);
  --dcv-cognitive-warning-border: rgba(242, 193, 89, 0.3);
  --dcv-cognitive-warning-title: #b88a2c;
  --dcv-cognitive-warning-text: #825d14;
  --dcv-cognitive-warning-item-bg: rgba(255, 255, 255, 0.8);
  --dcv-cognitive-warning-item-border: rgba(242, 193, 89, 0.15);
  --dcv-cognitive-warning-path-bg: rgba(242, 193, 89, 0.18);
  --dcv-cognitive-warning-path-text: #825d14;

  /* === 语法高亮 === */
  --syntax-key: #74a3c7;
  --syntax-string: #c7865c;
  --syntax-number: #8ea366;
  --syntax-boolean: #6998bf;
  --syntax-null: #6998bf;
  --syntax-comment: #9ab5a0;
  --syntax-bracket: #bdc5cc;

  /* === 叙事色 === */
  --narrative-dialogue: #6093b8;
  --narrative-thought: #9d8bc4;
  --narrative-speaker: #d9813b;
  --narrative-action: #7da36d;

  /* === 启动器 === */
  --launcher-surface: #f4f6f8;
  --launcher-surface-alt: #ffffff;
  --launcher-glass: rgba(255, 255, 255, 0.85);
  --launcher-glass-light: rgba(255, 255, 255, 0.5);
  --launcher-border: rgba(255, 255, 255, 0.9);
  --launcher-border-strong: rgba(229, 138, 60, 0.2);
  --launcher-btn-primary: #e58a3c;
  --launcher-btn-primary-hover: #cc6c1f;
  --launcher-star: #f2c159;
  --launcher-text: #2d2f34;
  --launcher-text-muted: #858994;
  --launcher-text-faint: #c0c4cc;
  --launcher-shadow: rgba(133, 168, 196, 0.2);
  --launcher-overlay: rgba(255, 255, 255, 0.6);

  /* === 加载 === */
  --loading-bg: rgba(255, 255, 255, 0.96);
  --loading-bg-strong: rgba(250, 252, 253, 0.92);
  --loading-card-bg: rgba(255, 255, 255, 0.9);
  --loading-gradient-start: #d6e5f0;
  --loading-gradient-end: #fbead7;
  --loading-progress-start: #a8c6df;
  --loading-progress-mid: #f6cda7;
  --loading-progress-end: #ef9a9a;

  /* === 调试分段 === */
  --segment-summary: #87b88d;
  --segment-npc-archive: #6ca3c9;
  --segment-mainline: #e69b55;
  --segment-conversation: #b388c4;
  --segment-narrative: #d9738f;
  --segment-reference: #61b8c2;
  --segment-sms: #a4c474;
  --segment-game-state: #eab946;
  --segment-gm: #869aa6;
  --segment-step-1: #8c7bc7;
  --segment-step-2: #7685c9;
  --segment-step-3: #57ad9f;
  --segment-core: #73b2eb;
  --segment-custom: #d96f6c;
  --segment-module: #5ebdaf;
  --segment-country: #8b96c7;
  --segment-timeline: #83c285;

  /* ─── 兼容别名（旧变量映射到新语义层） ─── */
  --primary-color: var(--brand-primary);
  --primary-gradient: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-primary-strong) 100%);
  --panel-bg: var(--surface-panel);
  --panel-border: var(--border-soft);
  --panel-shadow: var(--shadow-md);
  --glass-bg: var(--surface-glass);
  --glass-bg-strong: var(--surface-glass-strong);
  --glass-border: var(--border-soft);
  --metro-blue: var(--brand-primary);
  --metro-cobalt: var(--brand-primary-strong);
  --metro-teal: var(--brand-secondary);
  --metro-orange: var(--brand-accent);
  --metro-yellow: var(--brand-yellow);
  --metro-purple: var(--brand-purple);
  --metro-magenta: var(--brand-magenta);
  --metro-green: var(--status-success);
  --metro-red: var(--status-danger);
  --metro-lime: var(--brand-lime);
  --metro-brown: var(--brand-brown);
  --metro-dark: var(--surface-code);

}

:root[data-skin='WinterSun'][data-theme='dark'] {
  color-scheme: dark;

  /* ─── 共享令牌 ─── */
  /* === 元数据 === */
  --ui-scale: 1;

  /* === 字体 === */
  --font-ui:
    -apple-system,
    BlinkMacSystemFont,
    'Noto Serif SC',
    'PingFang SC',
    'Microsoft YaHei',
    'Segoe UI',
    serif;
  --font-mono: 'SF Mono', 'Menlo', 'Consolas', monospace;

  /* === 文字尺寸 === */
  --text-2xs: calc(8px * var(--ui-scale, 1));
  --text-xs: calc(9px * var(--ui-scale, 1));
  --text-sm: calc(10px * var(--ui-scale, 1));
  --text-caption: calc(11px * var(--ui-scale, 1));
  --text-body-sm: calc(12px * var(--ui-scale, 1));
  --text-body: calc(13px * var(--ui-scale, 1));
  --text-body-lg: calc(14px * var(--ui-scale, 1));
  --text-subtitle: calc(15px * var(--ui-scale, 1));
  --text-title: calc(16px * var(--ui-scale, 1));
  --text-heading: calc(18px * var(--ui-scale, 1));
  --text-display: calc(20px * var(--ui-scale, 1));

  /* === 间距 === */
  --space-2xs: 4px;
  --space-xs: 8px;
  --space-sm: 12px;
  --space-md: 16px;
  --space-lg: 24px;
  --space-xl: 32px;
  --space-2xl: 48px;

  /* === 圆角 === */
  --radius-2xs: 6px;
  --radius-xs: 10px;
  --radius-sm: 16px;
  --radius-md: 20px;
  --radius-lg: 24px;
  --radius-xl: 32px;
  --radius-pill: 999px;
  --radius-circle: 50%;

  /* === 模糊 === */
  --blur-sm: 12px;
  --blur-md: 24px;
  --blur-lg: 40px;

  /* === 过渡 === */
  --transition-fast: 0.16s ease-out;
  --transition-base: 0.4s cubic-bezier(0.16, 1, 0.3, 1);
  --transition-slow: 0.6s cubic-bezier(0.16, 1, 0.3, 1);

  /* === 动效 === */
  --motion-fast: 160ms;
  --motion-base: 400ms;
  --motion-slow: 600ms;
  --easing-standard: cubic-bezier(0.16, 1, 0.3, 1);
  --easing-exit: cubic-bezier(0.5, 0, 1, 1);

  /* === 品牌色 === */
  --brand-primary: #e58a3c;
  --brand-primary-strong: #cc6c1f;
  --brand-secondary: #85a8c4;
  --brand-accent: #df6a78;
  --brand-accent-strong: #c54b5a;
  --brand-purple: #917eb8;
  --brand-magenta: #d484a6;
  --brand-yellow: #f2c159;
  --brand-lime: #a3b878;
  --brand-brown: #8e7264;

  /* === 状态色 === */
  --status-success: #6eb076;
  --status-warning: #f2c159;
  --status-danger: #df6a78;
  --status-info: #85a8c4;

  /* === 账户 === */
  --account-avatar-sm: 32px;
  --account-avatar-md: 40px;
  --account-avatar-lg: 64px;
  --account-avatar-radius: 50%;

  /* === 字重 === */
  --weight-light: 300;
  --weight-normal: 400;
  --weight-medium: 500;
  --weight-semibold: 600;
  --weight-bold: 700;
  --weight-extrabold: 800;
  --weight-black: 900;

  /* === 透明度 === */
  --opacity-subtle: 0.1;
  --opacity-soft: 0.2;
  --opacity-medium: 0.4;
  --opacity-strong: 0.7;
  --opacity-full: 0.9;

  /* === 层叠 === */
  --z-base: 0;
  --z-dropdown: 100;
  --z-sticky: 200;
  --z-overlay: 300;
  --z-modal: 400;
  --z-toast: 500;
  --z-tooltip: 600;
  --z-max: 9999;

  /* === 图标尺寸 === */
  --icon-size-xs: calc(14px * var(--ui-scale, 1));
  --icon-size-sm: calc(16px * var(--ui-scale, 1));
  --icon-size-md: calc(20px * var(--ui-scale, 1));
  --icon-size-lg: calc(24px * var(--ui-scale, 1));
  --icon-size-xl: calc(32px * var(--ui-scale, 1));

  /* === 账户 === */
  --account-badge-guest-bg: rgba(133, 168, 196, 0.15);
  --account-badge-guest-text: #858e99;
  --account-badge-pro-bg: rgba(229, 138, 60, 0.15);
  --account-badge-pro-text: #eeb483;
  --account-badge-pro-border: rgba(229, 138, 60, 0.3);
  --account-sync-local-bg: rgba(133, 168, 196, 0.1);
  --account-sync-local-text: #6a7480;
  --account-sync-ready-bg: rgba(133, 168, 196, 0.18);
  --account-sync-ready-text: #9cbdde;
  --account-sync-done-bg: rgba(110, 176, 118, 0.18);
  --account-sync-done-text: #8ac992;
  --account-sync-conflict-bg: rgba(223, 106, 120, 0.15);
  --account-sync-conflict-text: #e68a96;
  --account-locked-bg: rgba(133, 168, 196, 0.08);
  --account-locked-border: rgba(133, 168, 196, 0.15);
  --account-locked-text: #6a7480;
  --account-card-bg: rgba(22, 28, 38, 0.8);
  --account-card-border: rgba(133, 168, 196, 0.12);

  /* === 图标色 === */
  --icon-muted: #687582;
  --icon-subtle: #4c5863;

  /* === 表面色 === */
  --surface-page: #0d1117;
  --surface-main: #12171f;
  --surface-canvas: rgba(13, 17, 23, 0.75);
  --surface-elevated: rgba(22, 28, 38, 0.85);
  --surface-soft: rgba(28, 35, 46, 0.6);
  --surface-glass: rgba(18, 23, 31, 0.45);
  --surface-glass-strong: rgba(22, 28, 38, 0.85);
  --surface-panel: rgba(18, 24, 33, 0.8);
  --surface-panel-strong: rgba(26, 33, 46, 0.95);
  --surface-card: rgba(24, 31, 43, 0.7);
  --surface-overlay: rgba(10, 13, 18, 0.92);
  --surface-code: #0a0d12;
  --surface-code-alt: #0f141a;
  --surface-input: rgba(20, 26, 36, 0.88);

  /* === 边框 === */
  --border-subtle: rgba(133, 168, 196, 0.06);
  --border-soft: rgba(133, 168, 196, 0.12);
  --border-strong: rgba(133, 168, 196, 0.2);
  --border-accent: rgba(229, 138, 60, 0.3);
  --border-accent-strong: rgba(229, 138, 60, 0.5);
  --border-light: #222a36;
  --border-medium: #2a3545;
  --border-dark: #364357;
  --border-color: #242e3b;

  /* === 文字色 === */
  --text-main: #e2e6eb;
  --text-primary: #f0f3f5;
  --text-secondary: #b0b8c2;
  --text-muted: #858e99;
  --text-soft: #6a7480;
  --text-tertiary: #525c66;
  --text-invert: #0d1117;
  --code-text: #d1d9e0;
  --text-color: #e2e6eb;
  --text-on-accent: #ffffff;

  /* === 阴影 === */
  --shadow-sm: 0 8px 24px -12px rgba(0, 0, 0, 0.6);
  --shadow-md: 0 16px 40px -16px rgba(0, 0, 0, 0.7);
  --shadow-lg: 0 24px 64px -24px rgba(0, 0, 0, 0.8);
  --shadow-glow: 0 0 0 1px rgba(229, 138, 60, 0.25), 0 16px 48px -20px rgba(229, 138, 60, 0.35);
  --shadow-inset: inset 0 1px 2px rgba(255, 255, 255, 0.04);
  --shadow-focus-ring: 0 0 0 4px rgba(229, 138, 60, 0.25);

  /* === 温色强调 === */
  --accent-warm-bg: rgba(229, 138, 60, 0.1);
  --accent-warm-bg-strong: rgba(229, 138, 60, 0.2);
  --accent-warm-border: rgba(229, 138, 60, 0.25);
  --accent-warm-border-strong: rgba(229, 138, 60, 0.4);
  --accent-warm-text: #eeb483;

  /* === 面板 === */
  --panel-tint: rgba(229, 138, 60, 0.05);

  /* === 背景 === */
  --bg-secondary: #141a24;
  --bg-tertiary: #181f2b;
  --bg-hover: #1c2433;
  --bg-color: #0d1117;

  /* === 输入框 === */
  --input-bg: rgba(20, 26, 36, 0.9);
  --input-border: #242e3b;

  /* === HUD === */
  --hud-bg: rgba(18, 23, 31, 0.6);
  --hud-border: rgba(229, 138, 60, 0.2);
  --hud-text: #858e99;
  --hud-value: #f0f3f5;

  /* === 选项 === */
  --choice-panel-bg: rgba(18, 24, 33, 0.7);
  --choice-panel-border: rgba(229, 138, 60, 0.25);
  --choice-item-bg: rgba(26, 33, 46, 0.6);
  --choice-item-border: rgba(133, 168, 196, 0.15);
  --choice-item-hover-bg: rgba(35, 42, 54, 0.8);
  --choice-item-active-bg: rgba(45, 38, 30, 0.9);
  --choice-title: #eeb483;
  --choice-text-primary: #e2e6eb;
  --choice-text-secondary: #b0b8c2;
  --choice-default-chip-bg: rgba(229, 138, 60, 0.12);

  /* === 固定栏 === */
  --sticky-bg: rgba(18, 24, 33, 0.85);
  --sticky-text: #b0b8c2;
  --sticky-value: #f0f3f5;

  /* === 位置 === */
  --location-separator: rgba(133, 168, 196, 0.15);

  /* === 思考 === */
  --thinking-text: #6a7480;

  /* === 流式 === */
  --stream-indicator-inner: #33271d;

  /* === 聊天气泡 === */
  --chat-bubble-bg: rgba(24, 31, 43, 0.85);
  --chat-bubble-user-bg: rgba(42, 33, 26, 0.9);
  --chat-bubble-hover-bg: rgba(32, 40, 56, 0.98);
  --chat-bubble-text: #e2e6eb;
  --chat-bubble-label: #858e99;
  --chat-bubble-border-ai: rgba(133, 168, 196, 0.25);
  --chat-bubble-border-user: rgba(229, 138, 60, 0.3);
  --chat-bg: #0d1117;

  /* === 设计卡片 === */
  --dcv-bg: #0d1117;
  --dcv-toolbar-bg: rgba(18, 24, 33, 0.85);
  --dcv-toolbar-border: rgba(133, 168, 196, 0.1);
  --dcv-section-bg: rgba(22, 28, 38, 0.8);
  --dcv-section-border: rgba(133, 168, 196, 0.1);
  --dcv-section-hover: rgba(28, 35, 46, 0.9);
  --dcv-text-primary: #e2e6eb;
  --dcv-text-secondary: #b0b8c2;
  --dcv-text-muted: #858e99;
  --dcv-text-faint: #6a7480;
  --dcv-subitem-bg: rgba(20, 26, 36, 0.8);
  --dcv-subitem-border: rgba(133, 168, 196, 0.1);
  --dcv-expanded-bg: rgba(35, 28, 22, 0.6);
  --dcv-field-bg: rgba(15, 20, 28, 0.95);
  --dcv-field-border: rgba(133, 168, 196, 0.15);
  --dcv-btn-hover-bg: rgba(229, 138, 60, 0.12);
  --dcv-btn-hover-border: rgba(229, 138, 60, 0.25);
  --dcv-btn-hover-color: #eeb483;
  --dcv-icon-muted: rgba(176, 184, 194, 0.4);
  --dcv-icon-hover: rgba(226, 230, 235, 0.8);
  --dcv-scrollbar: rgba(133, 168, 196, 0.2);
  --dcv-input-bg: rgba(15, 20, 28, 0.95);
  --dcv-input-border: rgba(133, 168, 196, 0.15);
  --dcv-input-text: #e2e6eb;
  --dcv-modal-bg: rgba(18, 24, 33, 0.96);
  --dcv-modal-border: rgba(133, 168, 196, 0.15);
  --dcv-modal-text: #e2e6eb;
  --dcv-modal-btn-bg: rgba(26, 33, 46, 0.8);
  --dcv-modal-btn-border: rgba(133, 168, 196, 0.15);
  --dcv-modal-btn-text: #b0b8c2;
  --dcv-cognitive-warning-bg: rgba(242, 193, 89, 0.12);
  --dcv-cognitive-warning-border: rgba(242, 193, 89, 0.25);
  --dcv-cognitive-warning-title: #f5d385;
  --dcv-cognitive-warning-text: #fcefc7;
  --dcv-cognitive-warning-item-bg: rgba(242, 193, 89, 0.08);
  --dcv-cognitive-warning-item-border: rgba(242, 193, 89, 0.15);
  --dcv-cognitive-warning-path-bg: rgba(242, 193, 89, 0.15);
  --dcv-cognitive-warning-path-text: #f8dfa6;

  /* === 语法高亮 === */
  --syntax-key: #91c0e6;
  --syntax-string: #e5aa85;
  --syntax-number: #b4c995;
  --syntax-boolean: #8db3d4;
  --syntax-null: #8db3d4;
  --syntax-comment: #839c87;
  --syntax-bracket: #9da4ab;

  /* === 叙事色 === */
  --narrative-dialogue: #82b4db;
  --narrative-thought: #bcaee0;
  --narrative-speaker: #f2a668;
  --narrative-action: #9ec48f;

  /* === 启动器 === */
  --launcher-surface: #0d1117;
  --launcher-surface-alt: #12171f;
  --launcher-glass: rgba(18, 23, 31, 0.85);
  --launcher-glass-light: rgba(18, 23, 31, 0.5);
  --launcher-border: rgba(255, 255, 255, 0.08);
  --launcher-border-strong: rgba(229, 138, 60, 0.25);
  --launcher-btn-primary: #e58a3c;
  --launcher-btn-primary-hover: #f0a25b;
  --launcher-star: #f2c159;
  --launcher-text: #f0f3f5;
  --launcher-text-muted: #858e99;
  --launcher-text-faint: #525c66;
  --launcher-shadow: rgba(0, 0, 0, 0.7);
  --launcher-overlay: rgba(0, 0, 0, 0.6);

  /* === 加载 === */
  --loading-bg: rgba(18, 24, 33, 0.96);
  --loading-bg-strong: rgba(13, 17, 23, 0.92);
  --loading-card-bg: rgba(26, 33, 46, 0.9);
  --loading-gradient-start: #2b3b4a;
  --loading-gradient-end: #4a3525;
  --loading-progress-start: #556e85;
  --loading-progress-mid: #915c3c;
  --loading-progress-end: #824b4b;

  /* === 调试分段 === */
  --segment-summary: #6fb377;
  --segment-npc-archive: #5698c4;
  --segment-mainline: #e69040;
  --segment-conversation: #a671ba;
  --segment-narrative: #d66181;
  --segment-reference: #47b0bc;
  --segment-sms: #93ba5c;
  --segment-game-state: #e6af2e;
  --segment-gm: #718b9c;
  --segment-step-1: #7c68bf;
  --segment-step-2: #5e6fc2;
  --segment-step-3: #44a696;
  --segment-core: #5fa8e8;
  --segment-custom: #d95f5c;
  --segment-module: #46b0a0;
  --segment-country: #7885bf;
  --segment-timeline: #6cba6e;

  /* ─── 兼容别名（旧变量映射到新语义层） ─── */
  --primary-color: var(--brand-primary);
  --primary-gradient: linear-gradient(135deg, var(--brand-primary) 0%, var(--brand-primary-strong) 100%);
  --panel-bg: var(--surface-panel);
  --panel-border: var(--border-soft);
  --panel-shadow: var(--shadow-md);
  --glass-bg: var(--surface-glass);
  --glass-bg-strong: var(--surface-glass-strong);
  --glass-border: var(--border-soft);
  --metro-blue: var(--brand-primary);
  --metro-cobalt: var(--brand-primary-strong);
  --metro-teal: var(--brand-secondary);
  --metro-orange: var(--brand-accent);
  --metro-yellow: var(--brand-yellow);
  --metro-purple: var(--brand-purple);
  --metro-magenta: var(--brand-magenta);
  --metro-green: var(--status-success);
  --metro-red: var(--status-danger);
  --metro-lime: var(--brand-lime);
  --metro-brown: var(--brand-brown);
  --metro-dark: var(--surface-code);

}
