/*
 * BD Cloud Academy — Design Tokens
 * Single source of truth for colors, typography, spacing, shadows, motion.
 * Import this file before any component CSS.
 *
 * Usage:  color: var(--color-brand-600);
 *         font-size: var(--text-xl);
 */

:root {

  /* ─── Brand ─────────────────────────────────────────────────────────────── */
  --color-brand-50:   #eff6ff;
  --color-brand-100:  #dbeafe;
  --color-brand-200:  #bfdbfe;
  --color-brand-300:  #93c5fd;
  --color-brand-400:  #60a5fa;
  --color-brand-500:  #3b82f6;
  --color-brand-600:  #2563eb;   /* primary action */
  --color-brand-700:  #1d4ed8;   /* primary hover */
  --color-brand-800:  #1e40af;
  --color-brand-900:  #1e3a8a;   /* deep background gradient end */

  /* ─── Accent (cyan — gradient partner of brand) ─────────────────────────── */
  --color-accent-300: #67e8f9;
  --color-accent-400: #22d3ee;
  --color-accent-500: #06b6d4;
  --color-accent-600: #0891b2;

  /* ─── Neutral (Slate) ───────────────────────────────────────────────────── */
  --color-slate-50:  #f8fafc;
  --color-slate-100: #f1f5f9;
  --color-slate-200: #e2e8f0;
  --color-slate-300: #cbd5e1;
  --color-slate-400: #94a3b8;
  --color-slate-500: #64748b;
  --color-slate-600: #475569;
  --color-slate-700: #334155;
  --color-slate-800: #1e293b;
  --color-slate-900: #0f172a;

  /* ─── Dark canvas (bespoke dark-mode backgrounds) ───────────────────────── */
  --color-dark-bg:      #060c18;   /* deepest background */
  --color-dark-surface: #0d1626;   /* card / elevated surface */
  --color-dark-border:  rgba(255,255,255,0.07);
  --color-dark-muted:   rgba(255,255,255,0.45);

  /* ─── Semantic ──────────────────────────────────────────────────────────── */
  --color-success-100: #d1fae5;
  --color-success-500: #10b981;
  --color-success-600: #059669;

  --color-warning-100: #fef3c7;
  --color-warning-500: #f59e0b;
  --color-warning-600: #d97706;

  --color-danger-100:  #fee2e2;
  --color-danger-500:  #ef4444;
  --color-danger-600:  #dc2626;

  --color-info-100:    #dbeafe;
  --color-info-500:    #3b82f6;
  --color-info-600:    #2563eb;

  /* ─── Typography ────────────────────────────────────────────────────────── */
  --font-sans: 'Inter', 'Segoe UI', system-ui, -apple-system, sans-serif;
  --font-mono: 'JetBrains Mono', 'Fira Code', 'Cascadia Code', ui-monospace, monospace;

  --font-weight-normal:    400;
  --font-weight-medium:    500;
  --font-weight-semibold:  600;
  --font-weight-bold:      700;
  --font-weight-extrabold: 800;

  /* Type scale (Major Third — 1.25 ratio) */
  --text-xs:   0.75rem;    /* 12px */
  --text-sm:   0.875rem;   /* 14px */
  --text-base: 1rem;       /* 16px */
  --text-lg:   1.125rem;   /* 18px */
  --text-xl:   1.25rem;    /* 20px */
  --text-2xl:  1.5rem;     /* 24px */
  --text-3xl:  1.875rem;   /* 30px */
  --text-4xl:  2.25rem;    /* 36px */
  --text-5xl:  3rem;       /* 48px */
  --text-6xl:  3.75rem;    /* 60px */
  --text-7xl:  4.5rem;     /* 72px */

  /* Line heights */
  --leading-none:   1;
  --leading-tight:  1.1;
  --leading-snug:   1.375;
  --leading-normal: 1.5;
  --leading-relaxed:1.625;

  /* Letter spacing */
  --tracking-tighter: -0.04em;
  --tracking-tight:   -0.025em;
  --tracking-normal:   0;
  --tracking-wide:     0.025em;
  --tracking-wider:    0.05em;
  --tracking-widest:   0.1em;

  /* ─── Spacing ────────────────────────────────────────────────────────────── */
  --space-0:   0;
  --space-px:  1px;
  --space-0-5: 0.125rem;   /* 2px */
  --space-1:   0.25rem;    /* 4px */
  --space-1-5: 0.375rem;   /* 6px */
  --space-2:   0.5rem;     /* 8px */
  --space-2-5: 0.625rem;   /* 10px */
  --space-3:   0.75rem;    /* 12px */
  --space-4:   1rem;       /* 16px */
  --space-5:   1.25rem;    /* 20px */
  --space-6:   1.5rem;     /* 24px */
  --space-7:   1.75rem;    /* 28px */
  --space-8:   2rem;       /* 32px */
  --space-10:  2.5rem;     /* 40px */
  --space-12:  3rem;       /* 48px */
  --space-14:  3.5rem;     /* 56px */
  --space-16:  4rem;       /* 64px */
  --space-20:  5rem;       /* 80px */
  --space-24:  6rem;       /* 96px */
  --space-32:  8rem;       /* 128px */

  /* ─── Border Radius ─────────────────────────────────────────────────────── */
  --radius-sm:   4px;
  --radius-md:   8px;
  --radius-lg:   12px;
  --radius-xl:   16px;
  --radius-2xl:  20px;
  --radius-3xl:  24px;
  --radius-full: 9999px;

  /* ─── Shadows ────────────────────────────────────────────────────────────── */
  --shadow-xs:  0 1px 2px rgba(0,0,0,0.08);
  --shadow-sm:  0 2px 6px rgba(0,0,0,0.12);
  --shadow-md:  0 4px 12px rgba(0,0,0,0.16);
  --shadow-lg:  0 8px 24px rgba(0,0,0,0.20);
  --shadow-xl:  0 16px 48px rgba(0,0,0,0.25);
  --shadow-2xl: 0 24px 64px rgba(0,0,0,0.30);

  /* Brand-tinted shadows */
  --shadow-brand-sm: 0 2px 12px rgba(37,99,235,0.30);
  --shadow-brand-md: 0 4px 24px rgba(37,99,235,0.40);
  --shadow-brand-lg: 0 8px 40px rgba(37,99,235,0.45);

  /* ─── Transitions & Motion ──────────────────────────────────────────────── */
  --duration-fast:   100ms;
  --duration-normal: 200ms;
  --duration-slow:   350ms;
  --duration-slower: 500ms;

  --ease-default:  cubic-bezier(0.4, 0, 0.2, 1);
  --ease-in:       cubic-bezier(0.4, 0, 1, 1);
  --ease-out:      cubic-bezier(0, 0, 0.2, 1);
  --ease-in-out:   cubic-bezier(0.4, 0, 0.2, 1);
  --ease-spring:   cubic-bezier(0.34, 1.56, 0.64, 1);   /* slight overshoot */

  /* ─── Layout ─────────────────────────────────────────────────────────────── */
  --container-sm:  640px;
  --container-md:  768px;
  --container-lg:  1024px;
  --container-xl:  1280px;
  --container-2xl: 1440px;
  --container-gutter: clamp(1rem, 4vw, 3rem);

  /* ─── Z-index scale ──────────────────────────────────────────────────────── */
  --z-base:    0;
  --z-raised:  10;
  --z-dropdown:200;
  --z-sticky:  300;
  --z-overlay: 400;
  --z-modal:   500;
  --z-toast:   600;
  --z-tooltip: 700;

  /* ─── Gradients ──────────────────────────────────────────────────────────── */
  --gradient-brand:  linear-gradient(135deg, #3b82f6 0%, #1e3a8a 100%);
  --gradient-accent: linear-gradient(135deg, #3b82f6 0%, #06b6d4 100%);
  --gradient-hero:   linear-gradient(160deg, #060c18 0%, #0a1628 50%, #0d1a38 100%);
  --gradient-card:   linear-gradient(180deg, rgba(255,255,255,0.04) 0%, rgba(255,255,255,0) 100%);
  --gradient-text-brand: linear-gradient(90deg, #60a5fa, #22d3ee);
}
