/* ============================================
   Design Tokens — Duo Design
   Kleuren, typografie, spacing, shadows, radii
   ============================================ */

@import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&family=JetBrains+Mono:wght@400;500;600&display=swap');

:root {
  /* ── Colour Palette ── */
  /* Base / Paper */
  --clr-paper:        #F0E8DC;
  --clr-paper-light:  #F5F1EC;
  --clr-paper-dark:   #C4A882;

  /* Ink */
  --clr-ink:          #1A1A1A;
  --clr-ink-soft:     #3D3D3D;
  --clr-ink-muted:    #6B6B6B;

  /* Cold Neutral */
  --clr-neutral-100:  #EFECE9;
  --clr-neutral-200:  #E5E2DE;
  --clr-neutral-300:  #D0CEC7;
  --clr-neutral-400:  #A8A5A0;
  --clr-neutral-500:  #7A7874;

  /* Accent — warm ocean blue */
  --clr-accent:       #3B7EA1;
  --clr-accent-hover: #2E6A8A;
  --clr-accent-light: #E6F0F6;
  --clr-accent-glow:  rgba(59, 126, 161, 0.12);

  /* Signal — status */
  --clr-signal-tested:    #5A8A5A;
  --clr-signal-progress:  #C4943A;
  --clr-signal-untested:  #A8A5A0;

  /* White / overlay */
  --clr-white:        #F6F2EB;
  --clr-overlay:      rgba(26, 26, 26, 0.6);

  /* ── Typography ── */
  --ff-primary:  'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --ff-mono:     'JetBrains Mono', 'Cascadia Code', 'Fira Code', monospace;

  /* Scale — fluid-ish */
  --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 */

  --fw-light:     300;
  --fw-regular:   400;
  --fw-medium:    500;
  --fw-semibold:  600;
  --fw-bold:      700;

  --lh-tight:   1.2;
  --lh-normal:  1.6;
  --lh-loose:   1.8;

  --ls-tight:   -0.02em;
  --ls-normal:  0;
  --ls-wide:    0.05em;
  --ls-mono:    0.02em;

  /* ── Spacing (4px grid) ── */
  --sp-1:   0.25rem;   /*  4px */
  --sp-2:   0.5rem;    /*  8px */
  --sp-3:   0.75rem;   /* 12px */
  --sp-4:   1rem;      /* 16px */
  --sp-5:   1.25rem;   /* 20px */
  --sp-6:   1.5rem;    /* 24px */
  --sp-8:   2rem;      /* 32px */
  --sp-10:  2.5rem;    /* 40px */
  --sp-12:  3rem;      /* 48px */
  --sp-16:  4rem;      /* 64px */
  --sp-20:  5rem;      /* 80px */
  --sp-24:  6rem;      /* 96px */
  --sp-32:  8rem;      /* 128px */

  /* ── Borders & Radii ── */
  --radius-sm:   4px;
  --radius-md:   8px;
  --radius-lg:   12px;
  --radius-xl:   16px;
  --radius-full: 9999px;

  --border-thin:  1px solid var(--clr-neutral-200);
  --border-medium: 2px solid var(--clr-neutral-300);

  /* ── Shadows ── */
  --shadow-sm:   0 1px  3px rgba(26,26,26,0.06);
  --shadow-md:   0 4px  12px rgba(26,26,26,0.08);
  --shadow-lg:   0 8px  24px rgba(26,26,26,0.10);
  --shadow-xl:   0 16px 48px rgba(26,26,26,0.12);
  --shadow-accent: 0 4px 16px rgba(59, 126, 161, 0.2);

  /* ── Transitions ── */
  --ease-default: cubic-bezier(0.4, 0, 0.2, 1);
  --ease-bounce:  cubic-bezier(0.34, 1.56, 0.64, 1);
  --dur-fast:     150ms;
  --dur-normal:   250ms;
  --dur-slow:     400ms;

  /* ── Layout ── */
  --container-sm:   640px;
  --container-md:   768px;
  --container-lg:   1024px;
  --container-xl:   1200px;
  --container-max:  1440px;

  --header-height:  72px;
}
