/* ============================================
   pls. — privatelabel specialist.
   Design system foundation
   ============================================ */
@import url('fonts.css');
@import url('components.css');

:root {
  /* Brand colors */
  --pls-purple: #AC01F4;        /* primary brand purple */
  --pls-lilac: #D682F9;         /* secondary / lavender surfaces */
  --pls-ink: #14022D;           /* deep ink plum — text & dark surfaces */
  --pls-white: #FFFFFF;

  /* Derived tints (oklch-harmonized with brand purple) */
  --pls-purple-deep: oklch(48% 0.27 305);    /* hover/pressed purple */
  --pls-purple-soft: oklch(95% 0.045 312);   /* faint purple wash */
  --pls-lilac-soft: oklch(90% 0.08 312);     /* light lilac surface */
  --pls-lavender: oklch(83% 0.13 312);       /* brand-sheet lavender tile */
  --pls-ink-60: oklch(35% 0.09 305);         /* muted text on light */
  --pls-ink-40: oklch(55% 0.06 305);         /* secondary text */
  --pls-ink-2: oklch(24% 0.085 305);         /* raised dark surface */

  /* Semantic — light (default) */
  --color-bg: var(--pls-white);
  --color-surface: var(--pls-purple-soft);
  --color-surface-2: var(--pls-lilac-soft);
  --color-text: var(--pls-ink);
  --color-text-muted: var(--pls-ink-60);
  --color-accent: var(--pls-purple);
  --color-accent-soft: var(--pls-lilac);
  --color-border: oklch(90% 0.025 312);
  --color-border-strong: oklch(78% 0.05 308);

  /* Typography */
  --font-sans: 'Onest', system-ui, -apple-system, sans-serif;

  /* Type scale */
  --text-xs: 13px;
  --text-sm: 15px;
  --text-base: 17px;
  --text-lg: 21px;
  --text-xl: 28px;
  --text-2xl: 38px;
  --text-3xl: 52px;
  --text-4xl: 72px;

  /* Radii — sharp shape language */
  --radius-sm: 2px;
  --radius-md: 4px;
  --radius-lg: 8px;
  --radius-full: 999px;   /* dots & avatars only */

  /* Spacing */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 48px;
  --space-8: 64px;

  /* Shadows — ink-tinted */
  --shadow-sm: 0 1px 2px oklch(20% 0.09 305 / 0.10);
  --shadow-md: 0 4px 12px oklch(20% 0.09 305 / 0.12), 0 1px 3px oklch(20% 0.09 305 / 0.08);
  --shadow-lg: 0 16px 40px oklch(20% 0.09 305 / 0.18), 0 4px 12px oklch(20% 0.09 305 / 0.08);
  --shadow-glow: 0 4px 24px oklch(58% 0.29 308 / 0.35);  /* purple glow for CTAs on ink */

  /* Gradients */
  --gradient-brand: linear-gradient(120deg, var(--pls-purple) 0%, var(--pls-lilac) 100%);
  --gradient-ink: linear-gradient(165deg, var(--pls-ink) 0%, oklch(30% 0.13 305) 100%);
  --gradient-lavender: linear-gradient(150deg, var(--pls-lavender) 0%, var(--pls-lilac) 100%);
}

/* Semantic — dark (ink) */
[data-theme="dark"] {
  --color-bg: var(--pls-ink);
  --color-surface: var(--pls-ink-2);
  --color-surface-2: oklch(30% 0.10 305);
  --color-text: var(--pls-white);
  --color-text-muted: oklch(80% 0.07 312);
  --color-accent: var(--pls-lilac);          /* lilac reads as accent on ink */
  --color-accent-soft: var(--pls-purple);
  --color-border: oklch(32% 0.08 305);
  --color-border-strong: oklch(45% 0.10 305);
  --shadow-sm: 0 1px 2px oklch(5% 0.04 305 / 0.5);
  --shadow-md: 0 4px 12px oklch(5% 0.04 305 / 0.5);
  --shadow-lg: 0 16px 40px oklch(5% 0.04 305 / 0.6);
}

body {
  font-family: var(--font-sans);
  color: var(--color-text);
  background: var(--color-bg);
  margin: 0;
  -webkit-font-smoothing: antialiased;
  text-wrap: pretty;
}

h1, h2, h3, h4 {
  font-weight: 700;
  letter-spacing: -0.02em;
  margin: 0;
}
