/* Libms Design Tokens — V3 M1
 * Single source of truth. Legacy variables below are compatibility aliases.
 * Scoped themes may override --ds-* values, never add another unscoped palette.
 */
:root[data-theme="dark"] {
  /* 纸与线 / 墨与文字 —— 参考 ui.xiaoxiaodong.ai/foundations/colors */
  --ds-color-app: #171612;          /* bg */
  --ds-color-canvas: #2a2822;       /* wash */
  --ds-color-surface: #201f1a;      /* paper */
  --ds-color-surface-strong: #201f1a;
  --ds-color-surface-soft: #2a2822; /* wash */
  --ds-color-surface-pressed: #38362e; /* selected-bg */
  --ds-color-text: #f3f0ea;         /* ink */
  --ds-color-text-strong: #ffffff;
  --ds-color-text-secondary: #a7a194; /* muted */
  --ds-color-text-tertiary: #837d72;  /* muted-2 */
  --ds-color-border: #34322b;       /* line */
  --ds-color-border-soft: #2a2822;  /* wash */
  --ds-color-border-strong: #4c483f; /* line-strong */
  --ds-color-overlay: #201f1af2;    /* 悬浮层底色（顶栏/浮层） */
  --ds-color-accent: #f3f0ea;       /* 主色 = 墨色（该体系默认） */
  --ds-color-accent-hover: #ffffff;
  --ds-color-accent-active: #d5d0c6;
  --ds-color-accent-soft: #38362e;
  --ds-color-on-accent: #171612;    /* on-ink */
  --ds-color-focus: #f3f0ea;
  --ds-color-success: #4ade80;
  --ds-color-danger: #f87171;
  --ds-color-danger-hover: #fca5a5;
  --ds-color-warning: #f0b35a;
  --ds-color-success-soft: color-mix(in srgb, var(--ds-color-success) 14%, var(--ds-color-surface));
  --ds-color-warning-soft: color-mix(in srgb, var(--ds-color-warning) 16%, var(--ds-color-surface));
  --ds-color-danger-soft: color-mix(in srgb, var(--ds-color-danger) 14%, var(--ds-color-surface));
}
:root {
  --ds-font-ui: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
  --ds-font-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  --ds-font-size-xs: 12px;
  --ds-font-size-sm: 13px;
  --ds-font-size-md: 14px;
  --ds-font-size-lg: 16px;
  --ds-font-size-xl: 24px;
  --ds-line-height: 1.5;

  /* 纸与线 / 墨与文字 —— 参考 ui.xiaoxiaodong.ai/foundations/colors */
  --ds-color-app: #fcfcfc;          /* bg */
  --ds-color-canvas: #f4f4f5;       /* wash */
  --ds-color-surface: #ffffff;      /* paper */
  --ds-color-surface-strong: #ffffff;
  --ds-color-surface-soft: #f4f4f5; /* wash */
  --ds-color-surface-pressed: #ededed; /* selected-bg */
  --ds-color-text: #111111;         /* ink */
  --ds-color-text-strong: #111111;
  --ds-color-text-secondary: #6b6b6b;  /* muted */
  --ds-color-text-tertiary: #9a968d;   /* muted-2 */
  --ds-color-border: #e7e7ea;       /* line */
  --ds-color-border-soft: #ececee;  /* wash-strong */
  --ds-color-border-strong: #c9c9ce; /* line-strong */
  --ds-color-overlay: #fffffff2;    /* 悬浮层底色（顶栏/浮层） */
  --ds-color-accent: #111111;       /* 主色 = 墨色（该体系默认） */
  --ds-color-accent-hover: #303030;
  --ds-color-accent-active: #000000;
  --ds-color-accent-soft: #ededed;  /* selected-bg */
  --ds-color-on-accent: #ffffff;    /* on-ink */
  --ds-color-focus: #111111;
  --ds-color-success: #15803d;
  --ds-color-danger: #b42318;
  --ds-color-danger-hover: #991b1b;
  --ds-color-warning: #b45309;
  --ds-color-success-soft: color-mix(in srgb, var(--ds-color-success) 12%, var(--ds-color-surface));
  --ds-color-warning-soft: color-mix(in srgb, var(--ds-color-warning) 14%, var(--ds-color-surface));
  --ds-color-danger-soft: color-mix(in srgb, var(--ds-color-danger) 12%, var(--ds-color-surface));

  --ds-space-1: 2px;
  --ds-space-2: 4px;
  --ds-space-3: 6px;
  --ds-space-4: 8px;
  --ds-space-5: 12px;
  --ds-space-6: 16px;
  --ds-space-7: 20px;
  --ds-space-8: 24px;
  --ds-radius-sm: 6px;
  --ds-radius-md: 8px;
  --ds-radius-lg: 12px;
  --ds-radius-pill: 999px;
  --ds-shadow-raised: 0 2px 8px #1111110a;
  --ds-shadow-overlay: 0 12px 32px #1111111f;
  --ds-duration-fast: 80ms;
  --ds-duration: 120ms;
  --ds-ease: cubic-bezier(.2, .7, .2, 1);
  --ds-layer-dropdown: 30;
  --ds-layer-overlay: 50;
  --ds-layer-modal: 50;
  --ds-layer-toast: 60;
  --ds-rail-width: 58px;
  --ds-inspector-width: 240px;
  --ds-toolbar-height: 40px;
  --ds-viewbar-height: 46px;

  /* Legacy page aliases */
  --page: var(--ds-color-app);
  --surface: var(--ds-color-surface);
  --surface-strong: var(--ds-color-surface-strong);
  --surface-card: var(--ds-color-surface);
  --surface-soft: var(--ds-color-surface-soft);
  --secondary-bg: var(--ds-color-surface-soft);
  --secondary-pressed: var(--ds-color-surface-pressed);
  --ink: var(--ds-color-text-strong);
  --body: var(--ds-color-text);
  --charcoal: var(--ds-color-text);
  --muted: var(--ds-color-text-secondary);
  --muted-soft: var(--ds-color-text-tertiary);
  --line: var(--ds-color-border);
  --line-soft: var(--ds-color-border-soft);
  --primary: var(--ds-color-accent);
  --primary-hover: var(--ds-color-accent-hover);
  --primary-pressed: var(--ds-color-accent-active);
  --primary-active: var(--ds-color-accent-active);
  --primary-bg: var(--ds-color-accent-soft);
  --blue: var(--ds-color-accent);
  --blue-dark: var(--ds-color-accent-active);
  --cyan: var(--ds-color-accent);
  --green: var(--ds-color-success);
  --amber: var(--ds-color-warning);
  --danger: var(--ds-color-danger);
  --focus-outer: var(--ds-color-focus);
  --focus-ring-button: var(--ds-color-focus);
  --radius-sm: var(--ds-radius-sm);
  --radius-md: var(--ds-radius-md);
  --radius-lg: var(--ds-radius-lg);
  --radius-pill: var(--ds-radius-pill);
  --panel-shadow: var(--ds-shadow-raised);
  --soft-shadow: var(--ds-shadow-raised);
  --btn-3d: none;
  --btn-3d-hover: none;
  --btn-3d-active: none;
  --dur-fast: var(--ds-duration-fast);
  --dur: var(--ds-duration);
  --dur-slow: var(--ds-duration);
  --ease: var(--ds-ease);
  --px-font: var(--ds-font-ui);

  /* Workspace aliases */
  --ws-app: var(--ds-color-app);
  --ws-canvas: var(--ds-color-canvas);
  --ws-surface: var(--ds-color-surface);
  --ws-surface-soft: var(--ds-color-surface-soft);
  --ws-border: var(--ds-color-border);
  --ws-border-strong: var(--ds-color-border-strong);
  --ws-text: var(--ds-color-text);
  --ws-text-strong: var(--ds-color-text-strong);
  --ws-text-secondary: var(--ds-color-text-secondary);
  --ws-text-tertiary: var(--ds-color-text-tertiary);
  --ws-text-muted: var(--ds-color-text-tertiary);
  --ws-font: var(--ds-font-ui);
  --ws-accent: var(--ds-color-accent);
  --ws-accent-hover: var(--ds-color-accent-hover);
  --ws-accent-active: var(--ds-color-accent-active);
  --ws-accent-soft: var(--ds-color-accent-soft);
  --ws-danger: var(--ds-color-danger);
  --ws-radius-sm: var(--ds-radius-sm);
  --ws-radius-md: var(--ds-radius-md);
  --ws-radius-lg: var(--ds-radius-lg);
  --ws-radius-pill: var(--ds-radius-pill);
  --ws-rail-width: var(--ds-rail-width);
  --ws-inspector-width: var(--ds-inspector-width);
  --ws-toolbar-height: var(--ds-toolbar-height);
  --ws-viewbar-height: var(--ds-viewbar-height);
  --ws-space-1: var(--ds-space-1);
  --ws-space-2: var(--ds-space-2);
  --ws-space-3: var(--ds-space-3);
  --ws-space-4: var(--ds-space-4);
  --ws-space-5: var(--ds-space-5);

  /* Deprecated Animal Island / ai aliases */
  --animal-font: var(--ds-font-ui);
  --animal-primary: var(--ds-color-accent);
  --animal-primary-hover: var(--ds-color-accent-hover);
  --animal-primary-active: var(--ds-color-accent-active);
  --animal-primary-bg: var(--ds-color-accent-soft);
  --animal-text: var(--ds-color-text-strong);
  --animal-text-body: var(--ds-color-text);
  --animal-text-secondary: var(--ds-color-text-secondary);
  --animal-text-muted: var(--ds-color-text-tertiary);
  --animal-text-disabled: var(--ds-color-text-tertiary);
  --animal-bg: var(--ds-color-app);
  --animal-bg-content: var(--ds-color-surface-soft);
  --animal-bg-disabled: var(--ds-color-surface-soft);
  --animal-border: var(--ds-color-border);
  --animal-border-hover: var(--ds-color-text-tertiary);
  --animal-radius-sm: var(--ds-radius-sm);
  --animal-radius: var(--ds-radius-md);
  --animal-radius-lg: var(--ds-radius-lg);
  --animal-radius-pill: var(--ds-radius-pill);
  --animal-shadow-btn: transparent;
  --animal-shadow-input: transparent;
  --animal-focus-yellow: var(--ds-color-focus);
  --animal-focus-yellow-d: var(--ds-color-focus);
  --animal-success: var(--ds-color-success);
  --animal-warning: var(--ds-color-warning);
  --animal-error: var(--ds-color-danger);
  --animal-ease: var(--ds-ease);
  --animal-duration-fast: var(--ds-duration-fast);
  --animal-duration: var(--ds-duration);
  --animal-duration-slow: var(--ds-duration);
  --ai-3d-btn: none;
  --ai-3d-btn-hover: none;
  --ai-3d-btn-active: none;
  --ai-soft-shadow: var(--ds-shadow-raised);
  --ai-soft-shadow-hover: var(--ds-shadow-raised);
  --ai-ease: var(--ds-ease);
  --ai-dur: var(--ds-duration);
}
