:root {
  color-scheme: light;
  --bg: #F7F8FA;
  --surface: #FFFFFF;
  --surface-outer: #EFF1F4;
  --surface-2: #F7F8FA;
  --surface-3: #EDEFF3;
  --border: #E3E7EC;
  --border-strong: #D3D9E0;

  --text: #061B31;
  --text-2: #50617A;
  --text-3: #64748D;
  --text-inv: #FFFFFF;

  --accent: #06A76B;
  --accent-hover: #059160;
  --accent-soft: #E4F6EE;
  --accent-fill: #05835A;
  --accent-ink: #FFFFFF;

  --warn: #E8A93B;
  --warn-soft: #FDF3E2;
  --danger: #DC5B57;
  --danger-soft: #FCECEC;
  --info: #3B82C4;
  --info-soft: #E8F1FA;

  --track: #EAECEF;
  --dot-idle: #D8DCE1;

  --tag-done-bg: #E4F6EE;
  --tag-done-fg: #05704A;
  --tag-review-bg: #FDF3E2;
  --tag-review-fg: #8A5D0C;
  --tag-model-bg: #E8F1FA;
  --tag-model-fg: #255481;

  --cat-blue: #3B82C4;
  --cat-green: #06A76B;
  --cat-amber: #E8A93B;
  --cat-violet: #8B5CF6;
  --cat-ink: #061B31;
  --cat-slate: #50617A;

  --r-xs: 6px;
  --r-sm: 8px;
  --r-md: 10px;
  --r-lg: 14px;
  --r-xl: 18px;
  --r-pill: 999px;

  --s-1: 4px;
  --s-2: 8px;
  --s-3: 12px;
  --s-4: 16px;
  --s-5: 20px;
  --s-6: 24px;
  --s-7: 32px;
  --s-8: 40px;

  --sidebar-w: 268px;
  --topbar-h: 62px;

  --shadow-sm: 0 1px 2px rgba(18, 23, 28, .04);
  --shadow-md: 0 2px 8px rgba(18, 23, 28, .06);
  --shadow-lg: 0 12px 32px rgba(18, 23, 28, .10);

  --font-sys: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --font-latin: "Inter", var(--font-sys);
  --font-ja: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Yu Gothic UI", "Noto Sans JP", var(--font-sys);
  --font-sc: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Source Han Sans SC", "Noto Sans SC", var(--font-sys);
  --doc-bg: #FFFFFF;
  --doc-ink: #0B1C2E;
  --doc-ink-2: #50617A;
  --doc-ink-3: #64748D;
  --doc-rule: #E3E7EC;
  --doc-surface: #F5F7F9;
  --doc-accent: #06A76B;
  --doc-accent-soft: #E4F6EE;
  --doc-info: #3B82C4;
  --doc-warn: #E8A93B;
  --doc-danger: #DC5B57;
  --doc-danger-soft: #FCECEC;

  --font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace;

  --lh-tight: 1.25;
  --lh-body: 1.5;
  --lh-cjk: 1.8;

  --fs-11: 11px;
  --fs-12: 12px;
  --fs-13: 13px;
  --fs-14: 14px;
  --fs-16: 16px;
  --fs-20: 20px;
  --fs-26: 26px;
  --fs-34: 34px;
}

:root:lang(ja) { --font-latin: var(--font-ja); --lh-body: var(--lh-cjk); }
:root:lang(zh-Hans) { --font-latin: var(--font-sc); --lh-body: var(--lh-cjk); }
:lang(ja), :lang(zh-Hans) { font-feature-settings: "palt" 1; letter-spacing: .01em; }

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

  --bg: #080F18;
  --surface: #172436;
  --surface-outer: #101B29;
  --surface-2: #131F2E;
  --surface-3: #1E2C3D;
  --border: #1E2B3B;
  --border-strong: #2B3B4E;

  --text: #E6EDF5;
  --text-2: #A0B0C5;
  --text-3: #7A8CA3;
  --text-inv: #FFFFFF;

  --accent: #14C285;
  --accent-hover: #29D094;
  --accent-soft: #0D2C24;
  --accent-fill: #0A7A52;
  --accent-ink: #FFFFFF;

  --warn: #E8B860;
  --warn-soft: #2E2413;
  --danger: #E8706C;
  --danger-soft: #331A1A;
  --info: #6BA6DE;
  --info-soft: #132434;

  --track: #23344A;
  --dot-idle: #2B3B4E;

  --tag-done-bg: #0D2C24;
  --tag-done-fg: #3FD9A0;
  --tag-review-bg: #2E2413;
  --tag-review-fg: #F0C066;
  --tag-model-bg: #132434;
  --tag-model-fg: #7FB4E8;

  --cat-blue: #3E7FB8;
  --cat-green: #0E9E67;
  --cat-amber: #C99236;
  --cat-violet: #7C55D6;
  --cat-ink: #2B3B4E;
  --cat-slate: #46586F;

  --shadow-sm: 0 1px 2px rgba(0, 0, 0, .30);
  --shadow-md: 0 2px 10px rgba(0, 0, 0, .38);
  --shadow-lg: 0 16px 40px rgba(0, 0, 0, .52);
}
