/* Tokens. The accent is attestdb.com's (#e85d3a; its darker #d24f2c on light ground,
   where text needs the contrast). Dark is the default ground; light follows the system unless the
   viewer picked a theme (data-theme on <html>). Components use only these. */
:root {
  --bg: #16191e; --bg2: #191c22; --surface: #1e2229; --surface-2: #262b33;
  --line: #2d323b; --line-strong: #3b414c;
  --text: #eceff4; --text-2: #b1b8c4; --text-3: #808896;
  --accent: #e85d3a; --accent-soft: rgba(232,93,58,0.16); --on-accent: #fff;
  --subj: #5ec8b6; --obj: #e2b66e;
  /* Kinds of things in the graph: distinct, calm, readable on the ground. */
  --k1: #7c9cff; --k2: #e6a15a; --k3: #5fc7a8; --k4: #d982c9; --k5: #c9c46a; --k6: #6fb6e0; --k7: #e07a7a; --k8: #a98be8;
  --ok: #3ecf71; --warn: #e8b83a; --fail: #ef4b4b;
  --ok-soft: rgba(62,207,113,0.13); --warn-soft: rgba(232,184,58,0.13); --fail-soft: rgba(239,75,75,0.13);
  --purple: #bc8cff; --cyan: #39d0d8;
  --font: "DM Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --mono: "DM Mono","SF Mono",ui-monospace,Menlo,monospace;
  --r: 6px; --sw: 232px;
  /* Older names, kept so every existing rule reads the tokens. */
  --sans: var(--font); --card: var(--surface); --sidebar: var(--bg); --border: var(--line); --border2: var(--line-strong);
  --glow: var(--accent-soft); --dim: var(--text-2); --muted: var(--text-3);
  --green: var(--ok); --red: var(--fail); --orange: var(--warn);
  --chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b1b8c4' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  color-scheme: dark;
}
@media (prefers-color-scheme: light) {
  :root:not([data-theme="dark"]) {
    --bg: #f4f6f9; --bg2: #f8f9fb; --surface: #ffffff; --surface-2: #edf0f5;
    --line: #e1e5ec; --line-strong: #cdd3dd;
    --text: #1a1e25; --text-2: #48505e; --text-3: #788090;
    --accent: #d24f2c; --accent-soft: rgba(232,93,58,0.10);
    --subj: #0e7c6d; --obj: #9a6410;
  --k1: #3c62d6; --k2: #c06d1e; --k3: #1f8f71; --k4: #a54595; --k5: #8a8320; --k6: #2b7fae; --k7: #b8443f; --k8: #6e4fc2;
    --k1: #3c62d6; --k2: #c06d1e; --k3: #1f8f71; --k4: #a54595; --k5: #8a8320; --k6: #2b7fae; --k7: #b8443f; --k8: #6e4fc2;
    --ok: #15803d; --warn: #a16207; --fail: #c62f2a;
    --ok-soft: rgba(21,128,61,0.10); --warn-soft: rgba(161,98,7,0.11); --fail-soft: rgba(198,47,42,0.10);
    --purple: #7c4dcc; --cyan: #0e7f86;
    --chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2348505e' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
    color-scheme: light;
  }
}
:root[data-theme="light"] {
  --bg: #f4f6f9; --bg2: #f8f9fb; --surface: #ffffff; --surface-2: #edf0f5;
  --line: #e1e5ec; --line-strong: #cdd3dd;
  --text: #1a1e25; --text-2: #48505e; --text-3: #788090;
  --accent: #d24f2c; --accent-soft: rgba(232,93,58,0.10);
  --subj: #0e7c6d; --obj: #9a6410;
  --ok: #15803d; --warn: #a16207; --fail: #c62f2a;
  --ok-soft: rgba(21,128,61,0.10); --warn-soft: rgba(161,98,7,0.11); --fail-soft: rgba(198,47,42,0.10);
  --purple: #7c4dcc; --cyan: #0e7f86;
  --chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2348505e' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  color-scheme: light;
}
*{box-sizing:border-box;margin:0;padding:0}
[hidden]{display:none!important}
input[type=radio],input[type=checkbox]{accent-color:var(--accent)}
