@import url('https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400..700;1,400..700&family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&display=swap');

/* Design Tokens for Merchant Aid */

:root {
  /* Brand Typography */
  --font-serif: 'Lora', Georgia, serif;
  --font-sans: 'Plus Jakarta Sans', system-ui, -apple-system, sans-serif;

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

  /* Font Weights */
  --fw-light: 300;
  --fw-regular: 400;
  --fw-medium: 500;
  --fw-semibold: 600;
  --fw-bold: 700;
  --fw-extrabold: 800;

  /* Line Heights */
  --lh-none: 1;
  --lh-tight: 1.2;
  --lh-snug: 1.35;
  --lh-normal: 1.5;
  --lh-relaxed: 1.625;
  --lh-loose: 2;

  /* Spacing Scale (4px-based) */
  --space-3xs: 0.25rem; /* 4px */
  --space-2xs: 0.5rem;  /* 8px */
  --space-xs: 0.75rem;  /* 12px */
  --space-md: 1rem;     /* 16px */
  --space-lg: 1.5rem;   /* 24px */
  --space-xl: 2rem;     /* 32px */
  --space-2xl: 3rem;    /* 48px */
  --space-3xl: 4rem;    /* 64px */
  --space-4xl: 6rem;    /* 96px */

  /* Borders & Radii */
  --radius-xs: 4px;
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --radius-xl: 24px;
  --radius-2xl: 32px;
  --radius-full: 9999px;
  --border-width-thin: 1px;
  --border-width-medium: 2px;
  --border-width-thick: 4px;

  /* Transitions */
  --transition-fast: 0.15s cubic-bezier(0.4, 0, 0.2, 1);
  --transition-normal: 0.28s cubic-bezier(0.4, 0, 0.2, 1);
  --transition-slow: 0.45s cubic-bezier(0.4, 0, 0.2, 1);
  --transition-spring: 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275);

  /* Color Palette - Light Theme */
  --brand-primary-hue: 142; /* Adjustable via playground */
  --brand-primary: hsl(var(--brand-primary-hue), 53%, 20%); /* Forest Green #184e2a */
  --brand-primary-rgb: 24, 78, 42;
  --brand-primary-hover: hsl(var(--brand-primary-hue), 53%, 15%);
  --brand-primary-light: hsl(var(--brand-primary-hue), 40%, 95%);
  
  --brand-secondary-hue: 84;
  --brand-secondary: hsl(var(--brand-secondary-hue), 55%, 42%); /* Olive Green #76a035 */
  --brand-secondary-rgb: 118, 160, 53;
  --brand-secondary-hover: hsl(var(--brand-secondary-hue), 55%, 35%);
  --brand-secondary-light: hsl(var(--brand-secondary-hue), 45%, 93%);

  /* Neutrals - Light */
  --bg-primary: #ffffff;
  --bg-secondary: #f7f9f7;
  --bg-tertiary: #f0f3f0;
  --text-primary: #121915;     /* Dark slate-green charcoal */
  --text-secondary: #455248;   /* Muted slate-green */
  --text-tertiary: #75867a;    /* Faded slate */
  --border-color: #e2e8e3;
  --border-color-hover: #cbd5cd;
  
  /* Semantic Colors */
  --color-success: #27ae60;
  --color-success-light: #ebf7ee;
  --color-warning: #f39c12;
  --color-warning-light: #fef5e7;
  --color-error: #c0392b;
  --color-error-light: #fbebeb;
  --color-info: #2980b9;
  --color-info-light: #eaf2f8;

  /* Shadows - Light */
  --shadow-color: 24, 30, 26;
  --shadow-sm: 0 2px 4px rgba(var(--shadow-color), 0.04), 0 1px 2px rgba(var(--shadow-color), 0.02);
  --shadow-md: 0 8px 16px rgba(var(--shadow-color), 0.06), 0 2px 4px rgba(var(--shadow-color), 0.02);
  --shadow-lg: 0 16px 32px rgba(var(--shadow-color), 0.08), 0 4px 8px rgba(var(--shadow-color), 0.02);
  --shadow-xl: 0 24px 48px rgba(var(--shadow-color), 0.12), 0 8px 16px rgba(var(--shadow-color), 0.04);
  --shadow-inner: inset 0 2px 4px rgba(var(--shadow-color), 0.06);

  /* Glassmorphism */
  --glass-bg: rgba(255, 255, 255, 0.7);
  --glass-border: rgba(226, 232, 227, 0.6);
  --glass-blur: 12px;
}

[data-theme="dark"] {
  /* Color Palette - Dark Theme */
  --brand-primary: hsl(var(--brand-primary-hue), 53%, 42%); /* Brighter Forest Green for dark contrast */
  --brand-primary-hover: hsl(var(--brand-primary-hue), 53%, 48%);
  --brand-primary-light: rgba(43, 182, 100, 0.1);
  
  --brand-secondary: hsl(var(--brand-secondary-hue), 55%, 52%); /* Brighter Olive Green */
  --brand-secondary-hover: hsl(var(--brand-secondary-hue), 55%, 58%);
  --brand-secondary-light: rgba(146, 193, 70, 0.1);

  /* Neutrals - Dark */
  --bg-primary: #0a0f0c;       /* Ultra deep charcoal forest */
  --bg-secondary: #111814;     /* Deep slate green secondary */
  --bg-tertiary: #19221c;      /* Bordering on mid-gray green */
  --text-primary: #f2f5f3;     /* Off-white */
  --text-secondary: #a1b0a6;   /* Cool muted sage */
  --text-tertiary: #6b7a70;    /* Muted dark sage */
  --border-color: #212c24;
  --border-color-hover: #314235;

  /* Shadows - Dark */
  --shadow-color: 0, 0, 0;
  --shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.2), 0 1px 2px rgba(0, 0, 0, 0.1);
  --shadow-md: 0 8px 16px rgba(0, 0, 0, 0.3), 0 2px 4px rgba(0, 0, 0, 0.1);
  --shadow-lg: 0 16px 32px rgba(0, 0, 0, 0.4), 0 4px 8px rgba(0, 0, 0, 0.15);
  --shadow-xl: 0 24px 48px rgba(0, 0, 0, 0.5), 0 8px 16px rgba(0, 0, 0, 0.2);
  --shadow-inner: inset 0 2px 4px rgba(0, 0, 0, 0.4);

  /* Glassmorphism */
  --glass-bg: rgba(17, 24, 20, 0.7);
  --glass-border: rgba(33, 44, 36, 0.6);
  --glass-blur: 16px;
}
