/* ==========================================================================
   45Square Design Tokens
   Refined dark navy palette. No pure blacks.
   ========================================================================== */

:root {
  /* ---- Backgrounds ---- */
  --bg-deep:       #FFFFFF;
  --bg-base:       #F8FAFC;
  --bg-surface:    #FFFFFF;
  --bg-alt:        #F1F5F9;
  --bg-elevated:   #FFFFFF;
  --bg-hover:      #F1F5F9;

  /* ---- Text ---- */
  --text-primary:   #0F172A;
  --text-secondary: #475569;
  --text-muted:     #64748B;
  --text-on-accent: #FFFFFF;

  /* ---- Accent Colors ---- */
  --accent:         #6366F1;
  --accent-hover:   #4F46E5;
  --accent-subtle:  rgba(99, 102, 241, 0.10);
  --accent-glow:    rgba(99, 102, 241, 0.20);

  --cyan:           #0EA5E9;
  --cyan-subtle:    rgba(14, 165, 233, 0.10);

  --amber:          #D97706;
  --amber-subtle:   rgba(217, 119, 6, 0.10);

  --success:        #10B981;
  --destructive:    #EF4444;

  /* ---- Borders ---- */
  --border-subtle:  rgba(15, 23, 42, 0.08);
  --border-default: rgba(15, 23, 42, 0.15);
  --border-active:  rgba(99, 102, 241, 0.40);

  /* ---- Typography ---- */
  --font-heading: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, sans-serif;
  --font-body:    'DM Sans', -apple-system, BlinkMacSystemFont, sans-serif;
  --font-mono:    'JetBrains Mono', 'Fira Code', monospace;

  --fs-xs:    0.75rem;     /* 12px */
  --fs-sm:    0.875rem;    /* 14px */
  --fs-base:  1rem;        /* 16px */
  --fs-md:    1.125rem;    /* 18px */
  --fs-lg:    1.25rem;     /* 20px */
  --fs-xl:    1.5rem;      /* 24px */
  --fs-2xl:   2rem;        /* 32px */
  --fs-3xl:   2.5rem;      /* 40px */
  --fs-4xl:   3.25rem;     /* 52px */
  --fs-hero:  4rem;        /* 64px */

  --lh-tight:   1.15;
  --lh-snug:    1.3;
  --lh-normal:  1.6;
  --lh-relaxed: 1.75;

  --tracking-tight:  -0.03em;
  --tracking-snug:   -0.02em;
  --tracking-normal: 0;
  --tracking-wide:   0.02em;

  /* ---- Spacing ---- */
  --space-1:  0.25rem;   /* 4px */
  --space-2:  0.5rem;    /* 8px */
  --space-3:  0.75rem;   /* 12px */
  --space-4:  1rem;      /* 16px */
  --space-5:  1.25rem;   /* 20px */
  --space-6:  1.5rem;    /* 24px */
  --space-8:  2rem;      /* 32px */
  --space-10: 2.5rem;    /* 40px */
  --space-12: 3rem;      /* 48px */
  --space-16: 4rem;      /* 64px */
  --space-20: 5rem;      /* 80px */
  --space-24: 6rem;      /* 96px */
  --space-32: 8rem;      /* 128px */

  /* ---- Radii ---- */
  --radius-sm:   6px;
  --radius-md:   10px;
  --radius-lg:   16px;
  --radius-xl:   24px;
  --radius-full: 9999px;

  /* ---- Shadows ---- */
  --shadow-sm:   0 1px 3px rgba(0, 0, 0, 0.25);
  --shadow-md:   0 4px 12px rgba(0, 0, 0, 0.30);
  --shadow-lg:   0 8px 30px rgba(0, 0, 0, 0.35);
  --shadow-glow: 0 0 20px var(--accent-glow);

  /* ---- Motion ---- */
  --ease-out:    cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
  --duration-fast:   150ms;
  --duration-normal: 250ms;
  --duration-slow:   400ms;

  /* ---- Layout ---- */
  --nav-height:    72px;
  --container-max: 1200px;
  --container-wide: 1360px;
}
