/* Integrated Landscape Visualizer design tokens.
   The only place colours, type, spacing and shape are defined.
   Direction: calm enterprise. Blue-biased neutrals and one accent; every other
   colour carries meaning: item type, status or PAN sensitivity. */

:root {
  color-scheme: light;

  /* Neutrals */
  --bg: #f4f6f8;
  --surface: #ffffff;
  --surface-sunken: #eef1f4;
  --border: #d5dbe2;
  --border-strong: #6f7b89;
  --text: #17202b;
  --text-muted: #55616f;

  /* The one accent: actions, selection, focus */
  --accent: #0f5f8c;
  --accent-hover: #0c4e74;
  --on-accent: #ffffff;
  --accent-soft: #e3eff6;

  /* Item types */
  --node-fill: #e4ecf5;
  --node-line: #2b4c73;
  --node-text: #1b3552;
  --subnode-fill: #f2f6fb;
  --subnode-line: #5b7ea8;
  --subnode-text: #24405f;
  --interface-fill: #e0f2ef;
  --interface-line: #1b7668;
  --interface-text: #0f4f45;
  --external-fill: #ebe2f8;
  --external-line: #6b4ea0;
  --external-text: #3b2564;
  --on-external: #ffffff;

  /* PAN sensitivity, most to least sensitive */
  --pan-clear-bg: #fbe6e4;
  --pan-clear-fg: #9b1c13;
  --pan-masked-bg: #fdf0d9;
  --pan-masked-fg: #7f4b00;
  --pan-truncated-bg: #f6f1cf;
  --pan-truncated-fg: #625400;
  --pan-hashed-bg: #e5ecfb;
  --pan-hashed-fg: #2c4aa0;
  --pan-encrypted-bg: #e2f3e6;
  --pan-encrypted-fg: #1c6b33;

  /* Status */
  --success: #1c6b33;
  --success-bg: #e2f3e6;
  --warning: #7f4b00;
  --warning-bg: #fdf0d9;
  --danger: #b3261e;
  --danger-bg: #fbe6e4;
  --on-danger: #ffffff;

  /* Type */
  --font-body: "IBM Plex Sans", "Segoe UI", system-ui, -apple-system, sans-serif;
  --font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Consolas, monospace;
  --text-xs: 0.75rem;
  --text-sm: 0.8125rem;
  --text-md: 0.875rem;
  --text-lg: 1rem;
  --text-xl: 1.25rem;
  --text-2xl: 1.625rem;

  /* Spacing, on a 4px grid */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 48px;

  /* Shape */
  --radius-sm: 3px;
  --radius-md: 6px;
  --radius-pill: 999px;
  --shadow-overlay: 0 8px 24px rgb(16 28 42 / 0.16);
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    color-scheme: dark;
    --bg: #12171d;
    --surface: #1a2129;
    --surface-sunken: #141a21;
    --border: #2f3944;
    --border-strong: #84909e;
    --text: #e7ecf1;
    --text-muted: #a3aebb;
    --accent: #6db3e8;
    --accent-hover: #8ec5ee;
    --on-accent: #0d1b26;
    --accent-soft: #1b3142;
    --node-fill: #1f3146;
    --node-line: #7fa6d3;
    --node-text: #d5e4f5;
    --subnode-fill: #18242f;
    --subnode-line: #6a8db5;
    --subnode-text: #c6d7ea;
    --interface-fill: #12332f;
    --interface-line: #4fb8a6;
    --interface-text: #c5ece5;
    --external-fill: #352a52;
    --external-line: #b9a3e3;
    --external-text: #e4daf7;
    --on-external: #1c1430;
    --pan-clear-bg: #3d1a18;
    --pan-clear-fg: #f6a79f;
    --pan-masked-bg: #3a2a10;
    --pan-masked-fg: #f0c069;
    --pan-truncated-bg: #33300f;
    --pan-truncated-fg: #dcd06e;
    --pan-hashed-bg: #1d2a4d;
    --pan-hashed-fg: #a9bff5;
    --pan-encrypted-bg: #15331f;
    --pan-encrypted-fg: #8fd8a3;
    --success: #7fd196;
    --success-bg: #15331f;
    --warning: #f0c069;
    --warning-bg: #3a2a10;
    --danger: #f49a92;
    --danger-bg: #3d1a18;
    --on-danger: #2a0b09;
    --shadow-overlay: 0 8px 24px rgb(0 0 0 / 0.5);
  }
}

:root[data-theme="dark"] {
  color-scheme: dark;
  --bg: #12171d;
  --surface: #1a2129;
  --surface-sunken: #141a21;
  --border: #2f3944;
  --border-strong: #84909e;
  --text: #e7ecf1;
  --text-muted: #a3aebb;
  --accent: #6db3e8;
  --accent-hover: #8ec5ee;
  --on-accent: #0d1b26;
  --accent-soft: #1b3142;
  --node-fill: #1f3146;
  --node-line: #7fa6d3;
  --node-text: #d5e4f5;
  --subnode-fill: #18242f;
  --subnode-line: #6a8db5;
  --subnode-text: #c6d7ea;
  --interface-fill: #12332f;
  --interface-line: #4fb8a6;
  --interface-text: #c5ece5;
  --external-fill: #352a52;
  --external-line: #b9a3e3;
  --external-text: #e4daf7;
  --on-external: #1c1430;
  --pan-clear-bg: #3d1a18;
  --pan-clear-fg: #f6a79f;
  --pan-masked-bg: #3a2a10;
  --pan-masked-fg: #f0c069;
  --pan-truncated-bg: #33300f;
  --pan-truncated-fg: #dcd06e;
  --pan-hashed-bg: #1d2a4d;
  --pan-hashed-fg: #a9bff5;
  --pan-encrypted-bg: #15331f;
  --pan-encrypted-fg: #8fd8a3;
  --success: #7fd196;
  --success-bg: #15331f;
  --warning: #f0c069;
  --warning-bg: #3a2a10;
  --danger: #f49a92;
  --danger-bg: #3d1a18;
  --on-danger: #2a0b09;
  --shadow-overlay: 0 8px 24px rgb(0 0 0 / 0.5);
}
