/* Single visual contract: pages, dialogs, reports and charts inherit these roles. */
:root {
  color-scheme: light;
  --font-reading: "QuantLab Serif", "Songti SC", "STSong", Georgia, serif;
  --font-ui:
    "QuantLab Sans", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
  --font-code: "SF Mono", Menlo, Consolas, monospace;
  --title-font: var(--font-reading);
  --mono-font: var(--font-code);
  --bg: #f8f6ef;
  --paper: #fffefb;
  --ink: #2e3529;
  --text-secondary: #626951;
  --muted: #626951;
  --line: #e2e5d8;
  --soft: #f0f1e9;
  --accent: #5d7045;
  --accent-hover: #495b34;
  --accent-soft: #eaf0df;
  --accent-line: #a5b594;
  --focus: #6d824f;
  --blue: var(--accent);
  --red: #ad4147;
  --danger: #ad4147;
  --danger-soft: #fbeeed;
  --danger-line: #e6bfc0;
  --success: #48724c;
  --success-soft: #eaf1e5;
  --success-line: #adc3a6;
  --orange: #8e612e;
  --warn: #fcf1df;
  --warn-line: #dbc398;
  --info: #436b82;
  --info-soft: #edf3f5;
  --info-line: #b3c7d0;
  --benchmark: #a47a4f;
  --profit: #ad4147;
  --loss: #397057;
  --chart-strategy: var(--accent);
  --chart-secondary: var(--benchmark);
  --chart-muted: #a0a48f;
  --nav-mask: rgba(248, 246, 239, 0.8);
  --nav-fill: rgba(93, 112, 69, 0.1);
  --overlay: rgba(37, 43, 32, 0.36);
  --shadow: 0 8px 32px rgba(48, 54, 39, 0.07);
  --shadow-float: 0 12px 42px rgba(36, 42, 30, 0.16);
  --duration: 150ms;
  --radius: 14px;
  font-family: var(--font-reading);
  font-size: 15px;
  font-synthesis: none;
  font-variant-numeric: tabular-nums;
  color: var(--ink);
  background: var(--bg);
}
[data-theme="dark"] {
  color-scheme: dark;
  --bg: #20241d;
  --paper: #282d24;
  --ink: #eceee2;
  --text-secondary: #b9c1aa;
  --muted: #b1bba3;
  --line: #424b39;
  --soft: #30372b;
  --accent: #b0c58f;
  --accent-hover: #c4d5aa;
  --accent-soft: #38462c;
  --accent-line: #6c7e54;
  --focus: #c0d69c;
  --red: #efa3a3;
  --danger: #efa3a3;
  --danger-soft: #432e2b;
  --danger-line: #79504a;
  --success: #b0c58f;
  --success-soft: #303e2b;
  --success-line: #617653;
  --orange: #e0bc86;
  --warn: #3c3426;
  --warn-line: #7a674a;
  --info: #a4c6d4;
  --info-soft: #2c3b3e;
  --info-line: #526f76;
  --benchmark: #d2af80;
  --profit: #efa3a3;
  --loss: #9cc7ad;
  --chart-muted: #849274;
  --nav-mask: rgba(32, 36, 29, 0.8);
  --nav-fill: rgba(176, 197, 143, 0.1);
  --overlay: rgba(10, 15, 8, 0.65);
  --shadow: 0 8px 32px rgba(0, 0, 0, 0.12);
  --shadow-float: 0 12px 42px rgba(0, 0, 0, 0.3);
}
