/* BlueSci — cyber-luxe design tokens */
:root {
  /* Canvas — deep navy/charcoal with cool undertone */
  --bs-ink-1000: #05080F;     /* page (almost black w/ blue undertone) */
  --bs-ink-950:  #080C18;
  --bs-ink-900:  #0C1222;     /* surface */
  --bs-ink-850:  #111A30;     /* elev-1 */
  --bs-ink-800:  #17223E;     /* elev-2 / table row hover */
  --bs-ink-700:  #1F2D4F;     /* dividers stronger */
  --bs-ink-600:  #2A3B66;

  /* Text */
  --bs-fog-50:   #EAF0FB;
  --bs-fog-100:  #C9D4EA;
  --bs-fog-200:  #97A7C6;
  --bs-fog-300:  #6B7C9F;
  --bs-fog-400:  #4F5E7E;
  --bs-fog-500:  #38465F;

  /* Borders (translucent fog) */
  --bs-border-1: rgba(151, 167, 198, 0.08);
  --bs-border-2: rgba(151, 167, 198, 0.16);
  --bs-border-3: rgba(151, 167, 198, 0.32);

  /* Electric primary — cool cyan */
  --bs-cyan-300: #7DF9EA;
  --bs-cyan-400: #3EE8DA;
  --bs-cyan-500: #14D9C9;     /* primary action */
  --bs-cyan-600: #08B2A6;
  --bs-cyan-glow: 0 0 0 1px rgba(20, 217, 201, 0.4), 0 0 24px rgba(20, 217, 201, 0.25);

  /* Secondary electric — violet for AI / chain reasoning */
  --bs-violet-400: #A78BFA;
  --bs-violet-500: #8B5CF6;

  /* Severity (CVSS-inspired) — used semantically only */
  --bs-crit-500: #FF3D5C;     /* critical */
  --bs-crit-bg:  rgba(255, 61, 92, 0.10);
  --bs-high-500: #FF8A3D;     /* high */
  --bs-high-bg:  rgba(255, 138, 61, 0.10);
  --bs-med-500:  #F2C94C;     /* medium */
  --bs-med-bg:   rgba(242, 201, 76, 0.10);
  --bs-low-500:  #5EBEFA;     /* low / info */
  --bs-low-bg:   rgba(94, 190, 250, 0.10);
  --bs-ok-500:   #34D399;     /* safe / fixed */

  /* Type */
  --bs-font-display: "Fraunces", "Times New Roman", serif;
  --bs-font-sans: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;
  --bs-font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;

  /* Radii */
  --bs-r-1: 2px;
  --bs-r-2: 4px;
  --bs-r-3: 6px;
  --bs-r-4: 10px;
  --bs-r-pill: 999px;

  /* Shadows */
  --bs-shadow-1: 0 1px 2px rgba(0,0,0,0.5);
  --bs-shadow-2: 0 8px 24px rgba(0,0,0,0.55), inset 0 1px 0 rgba(234,240,251,0.04);
  --bs-shadow-3: 0 24px 60px rgba(0,0,0,0.7), inset 0 1px 0 rgba(234,240,251,0.05);

  /* Motion */
  --bs-ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --bs-ease-snap: cubic-bezier(0.4, 0, 0.2, 1);
}

/* Eyebrow */
.bs-eyebrow {
  font-family: var(--bs-font-mono);
  font-size: 10.5px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--bs-cyan-500);
  font-weight: 500;
}

/* Numbers */
.bs-num {
  font-family: var(--bs-font-mono);
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.01em;
}

/* Severity pills */
.bs-sev {
  font-family: var(--bs-font-mono);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 3px 7px;
  border-radius: var(--bs-r-1);
  display: inline-flex;
  align-items: center;
  gap: 6px;
  line-height: 1;
}
.bs-sev::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: currentColor;
  box-shadow: 0 0 8px currentColor;
}
.bs-sev-crit { color: var(--bs-crit-500); background: var(--bs-crit-bg); border: 1px solid rgba(255,61,92,0.25); }
.bs-sev-high { color: var(--bs-high-500); background: var(--bs-high-bg); border: 1px solid rgba(255,138,61,0.25); }
.bs-sev-med  { color: var(--bs-med-500);  background: var(--bs-med-bg);  border: 1px solid rgba(242,201,76,0.25); }
.bs-sev-low  { color: var(--bs-low-500);  background: var(--bs-low-bg);  border: 1px solid rgba(94,190,250,0.25); }
.bs-sev-ok   { color: var(--bs-ok-500);   background: rgba(52,211,153,0.08); border: 1px solid rgba(52,211,153,0.25); }

/* Hairline divider */
.bs-hr { height: 1px; background: var(--bs-border-1); border: 0; }

/* Common reset for artboards */
.bs-root, .bs-root * { box-sizing: border-box; }
.bs-root { color: var(--bs-fog-100); font-family: var(--bs-font-sans); }

/* Scrollbar styled */
.bs-root ::-webkit-scrollbar { width: 8px; height: 8px; }
.bs-root ::-webkit-scrollbar-thumb { background: var(--bs-ink-700); border-radius: 4px; }
.bs-root ::-webkit-scrollbar-track { background: transparent; }
