/* ==========================================================================
   VIA — Visual Interactive Analysis
   Design tokens: colors + type + spacing + radius + elevation + motion
   Copy-paste-ready; import into any HTML/JSX surface.
   ========================================================================== */

/* Web fonts — Plus Jakarta Sans (display + sans), Inter fallback, JetBrains Mono. */
@import url("https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap");

:root {
  /* ---------- Brand surfaces ---------- */
  --via-ink: #0F1729;          /* primary text, dark surfaces (deep navy) */
  --via-graphite: #1E293B;     /* secondary dark surfaces, code blocks */
  --via-paper: #F4F8FF;        /* sky-tinted page bg */
  --via-canvas: #FFFFFF;       /* card surfaces on top of paper */
  --via-sky-from: #DCE9FF;     /* hero gradient top */
  --via-sky-to: #F4F8FF;       /* hero gradient bottom */

  /* ---------- Brand accent ---------- */
  --via-signal: #2563EB;       /* royal blue — CTAs, brand mark */
  --via-signal-deep: #1E40AF;  /* hover/pressed (navy) */
  --via-signal-soft: #DBEAFE;  /* tinted bg, badges */

  /* ---------- Graph / data viz palette (RESERVED for graphs) ---------- */
  --graph-source: #2563EB;     /* origin nodes — royal blue */
  --graph-transform: #6366F1;  /* intermediate transforms — indigo */
  --graph-target: #0EA5E9;     /* destination nodes — sky */
  --graph-resolved: #0891B2;
  --graph-partial: #F59E0B;
  --graph-unresolved: #EF4444;
  --graph-edge: #94A3B8;
  --graph-edge-active: #1E40AF;

  /* ---------- Semantic status ---------- */
  --status-success: #059669;
  --status-warning: #D97706;
  --status-danger: #DC2626;
  --status-info: #2563EB;

  /* ---------- Neutrals (slate scale) ---------- */
  --slate-50:  #F8FAFC;
  --slate-100: #F1F5F9;
  --slate-200: #E2E8F0;
  --slate-300: #CBD5E1;
  --slate-400: #94A3B8;
  --slate-500: #64748B;
  --slate-600: #475569;
  --slate-700: #334155;
  --slate-800: #1E293B;
  --slate-900: #0F172A;

  /* ---------- Typography families ---------- */
  --font-display: "Plus Jakarta Sans", "Inter", -apple-system, BlinkMacSystemFont, sans-serif;
  --font-sans: "Plus Jakarta Sans", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-mono: "JetBrains Mono", "IBM Plex Mono", "SF Mono", Consolas, monospace;

  /* ---------- Type scale (size / line-height / weight / tracking) ---------- */
  --text-display-xl-size: 72px;   --text-display-xl-lh: 1.05;  --text-display-xl-track: -0.03em;
  --text-display-lg-size: 56px;   --text-display-lg-lh: 1.08;  --text-display-lg-track: -0.025em;
  --text-display-md-size: 44px;   --text-display-md-lh: 1.10;  --text-display-md-track: -0.02em;
  --text-h1-size: 36px;           --text-h1-lh: 1.15;          --text-h1-track: -0.015em;
  --text-h2-size: 28px;           --text-h2-lh: 1.20;          --text-h2-track: -0.01em;
  --text-h3-size: 22px;           --text-h3-lh: 1.30;          --text-h3-track: -0.005em;
  --text-h4-size: 18px;           --text-h4-lh: 1.40;          --text-h4-track: 0;
  --text-body-lg-size: 18px;      --text-body-lg-lh: 1.65;
  --text-body-size: 16px;         --text-body-lh: 1.60;
  --text-body-sm-size: 14px;      --text-body-sm-lh: 1.55;
  --text-micro-size: 12px;        --text-micro-lh: 1.50;       --text-micro-track: 0.04em;
  --text-mono-size: 14px;         --text-mono-lh: 1.55;
  --text-mono-sm-size: 13px;      --text-mono-sm-lh: 1.50;

  /* ---------- Spacing (4px base) ---------- */
  --space-1: 4px;   --space-2: 8px;   --space-3: 12px;
  --space-4: 16px;  --space-5: 20px;  --space-6: 24px;
  --space-8: 32px;  --space-10: 40px; --space-12: 48px;
  --space-16: 64px; --space-20: 80px; --space-24: 96px;
  --space-32: 128px; --space-40: 160px;

  /* ---------- Radius (softer, pill-friendly) ---------- */
  --radius-none: 0;
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 16px;
  --radius-xl: 24px;
  --radius-full: 9999px;

  /* ---------- Elevation (slightly lifted, blue-tinted shadows) ---------- */
  --shadow-xs: 0 1px 2px rgba(15, 23, 41, 0.04);
  --shadow-sm: 0 2px 6px rgba(15, 23, 41, 0.06), 0 1px 2px rgba(15, 23, 41, 0.04);
  --shadow-md: 0 8px 24px rgba(30, 64, 175, 0.08), 0 2px 6px rgba(15, 23, 41, 0.04);
  --shadow-lg: 0 24px 48px rgba(30, 64, 175, 0.14), 0 6px 12px rgba(15, 23, 41, 0.06);
  --shadow-glow-signal: 0 0 0 4px rgba(37, 99, 235, 0.18);
  --shadow-focus: 0 0 0 3px rgba(37, 99, 235, 0.35);

  /* ---------- Motion ---------- */
  --ease-out-quart: cubic-bezier(0.22, 1, 0.36, 1);
  --duration-fast: 200ms;
  --duration-base: 400ms;
  --duration-slow: 800ms;

  /* ---------- Layout containers ---------- */
  --container-narrow: 720px;
  --container-default: 1120px;
  --container-wide: 1280px;
  --container-full: 1440px;

  /* ---------- Borders ---------- */
  --border-default: 1px solid var(--slate-200);
  --border-emphasis: 1px solid var(--slate-300);
  --border-on-dark: 1px solid rgba(255, 255, 255, 0.08);
}
