/* Architectural Minimalism design tokens (portable).
   Import or copy into any project. Light is default; add data-theme="dark"
   on a parent (or <html>) for the dark theme.

   One accent hue, no gradients, no shadows. Structure comes from 1px borders
   and whitespace. The accent is a deep forest green; the dark theme uses a
   lighter tint of the same hue because #064E3B only reaches 1.9:1 on #111111
   and would be unreadable. */

:root {
  --rj-bg: #fafafa;
  --rj-surface: #ffffff;
  --rj-surface-2: #f4f4f4;
  --rj-text: #1c1c1c;
  --rj-text-dim: #5a5a5a;
  --rj-text-faint: #6e6e6e;
  --rj-line: rgba(28, 28, 28, 0.14);
  --rj-line-strong: rgba(28, 28, 28, 0.30);
  --rj-accent: #064e3b;
  --rj-accent-hover: #0a6b51;
  --rj-accent-soft: rgba(6, 78, 59, 0.07);
  --rj-on-accent: #ffffff;
  --rj-positive: #064e3b;
  --rj-negative: #8c2f2f;

  /* Status. The one sanctioned exception to the single-accent rule: these
     encode data (on track / needs attention / at risk) in tools where losing
     the distinction would lose information. Never use them decoratively. */
  --rj-status-ok: #064e3b;
  --rj-status-ok-bg: rgba(6, 78, 59, 0.08);
  --rj-status-warn: #8a5a00;
  --rj-status-warn-bg: rgba(138, 90, 0, 0.10);
  --rj-status-risk: #8c2f2f;
  --rj-status-risk-bg: rgba(140, 47, 47, 0.09);
  --rj-status-info: #1f5f6e;
  --rj-status-info-bg: rgba(31, 95, 110, 0.09);

  --rj-font-display: "Inter", system-ui, -apple-system, sans-serif;
  --rj-font-body: "Inter", system-ui, -apple-system, sans-serif;
  --rj-font-mono: "JetBrains Mono", ui-monospace, monospace;

  /* Paper. A printable report simulates a sheet of paper, so it stays light in
     both themes. These are declared once and never overridden in dark. */
  --rj-paper: #ffffff;
  --rj-paper-ink: #1c1c1c;
  --rj-paper-dim: #5a5a5a;
  --rj-paper-faint: #6e6e6e;
  --rj-paper-line: rgba(28, 28, 28, 0.14);
  --rj-paper-band: #f4f4f4;

  /* Square by default. Kept as tokens so a variant can reintroduce a radius
     in one place rather than across every component. */
  --rj-radius-card: 0;
  --rj-radius-tile: 0;
  --rj-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

[data-theme="dark"] {
  --rj-bg: #111111;
  --rj-surface: #161616;
  --rj-surface-2: #1c1c1c;
  --rj-text: #ededed;
  --rj-text-dim: #a3a3a3;
  --rj-text-faint: #8a8a8a;
  --rj-line: rgba(255, 255, 255, 0.14);
  --rj-line-strong: rgba(255, 255, 255, 0.28);
  --rj-accent: #52a47f;
  --rj-accent-hover: #6ab896;
  --rj-accent-soft: rgba(82, 164, 127, 0.10);
  --rj-on-accent: #111111;
  --rj-positive: #52a47f;
  --rj-negative: #e07a7a;

  --rj-status-ok: #52a47f;
  --rj-status-ok-bg: rgba(82, 164, 127, 0.14);
  --rj-status-warn: #d9a441;
  --rj-status-warn-bg: rgba(217, 164, 65, 0.14);
  --rj-status-risk: #e07a7a;
  --rj-status-risk-bg: rgba(224, 122, 122, 0.14);
  --rj-status-info: #6fb6c6;
  --rj-status-info-bg: rgba(111, 182, 198, 0.14);
}
