/* ============================================================
   Cloud476 Design Tokens — enda källan till sanning
   Källa: Cloud476-repo design/tokens.md (v1.0.0)
   Ladda FÖRST, före all annan CSS.
   ============================================================ */

:root {
  /* ---- Färgprimitiver (byter aldrig mellan teman) ---- */
  --rose-400: #E8A0B0;
  --rose-500: #C9637A;
  --rose-600: #B14A62;
  --rose-700: #93374C;
  --navy-900: #0D1B3E;
  --navy-800: #16264D;
  --navy-700: #1E3160;
  --navy-600: #2C3E6E;
  --purple-700: #3B1F5E;
  --lavender-400: #B89FD4;
  --cream-100: #F7F2EB;
  --cream-200: #EDE7DC;
  --gray-500: #6B7280;
  --gray-600: #565D6B;
  --white: #FFFFFF;

  /* ---- Färgroller — LJUST läge (standard) ---- */
  --color-bg: var(--cream-100);
  --color-surface: var(--white);
  --color-surface-raised: var(--white);
  --color-surface-sunken: var(--cream-200);
  --color-text: var(--navy-900);
  --color-text-muted: var(--gray-600);
  --color-text-on-primary: var(--white);
  --color-primary: var(--rose-500);
  --color-primary-fill: var(--rose-600);
  --color-primary-hover: var(--rose-700);
  --color-accent: var(--purple-700);
  --color-link: var(--rose-700);
  --color-link-hover: var(--rose-600);
  --color-border: #E2D8CB;
  --color-border-strong: #CBBDA9;
  --color-focus-ring: var(--rose-500);
  --color-success: #2F6B4F;
  --color-warning: #8A5A1B;
  --color-danger: #A32F3A;

  /* ---- Mörka varumärkesband (navy/plum-sektioner, lika i båda lägen) ---- */
  --color-band-bg: var(--navy-900);
  --color-band-surface: rgba(255, 255, 255, 0.07);
  --color-band-border: rgba(255, 255, 255, 0.12);
  --color-band-text: #F4EFE8;
  --color-band-text-muted: #A9B0C0;
  --color-band-accent: var(--lavender-400);
  --color-cruise-bg: var(--purple-700);

  /* ---- Kategorigradienter (bloggkort) ---- */
  --grad-ai: linear-gradient(135deg, #0D1B3E 0%, #1C2F5A 50%, #2563EB 100%);
  --grad-mvp: linear-gradient(135deg, #1A0A2E 0%, #3B1F5E 100%);
  --grad-tankar: linear-gradient(135deg, #3D1520 0%, #C9637A 100%);
  --grad-m365: linear-gradient(135deg, #0D3B2E 0%, #059669 100%);
  --grad-podcast: linear-gradient(135deg, #1A0A2E 0%, #7C3AED 100%);
  --grad-ledarskap: linear-gradient(135deg, #1E1A0E 0%, #D97706 100%);
  --grad-event: linear-gradient(135deg, #0E1A2E 0%, #0891B2 100%);
  --grad-featured: linear-gradient(135deg, #1A0A2E 0%, #3B1F5E 40%, #C9637A 100%);

  /* ---- Typografi ---- */
  --font-heading: 'Bricolage Grotesque', 'Times New Roman', Georgia, serif;
  --font-body: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --font-mono: ui-monospace, 'SFMono-Regular', 'Menlo', 'Consolas', monospace;

  /* Typskala — modulär (bas 16px, förhållande ~1.25) */
  --text-xs:   0.75rem;   /* 12 */
  --text-sm:   0.875rem;  /* 14 */
  --text-base: 1rem;      /* 16 */
  --text-md:   1.125rem;  /* 18 */
  --text-lg:   1.25rem;   /* 20 */
  --text-xl:   1.5rem;    /* 24 */
  --text-2xl:  1.875rem;  /* 30 */
  --text-3xl:  2.375rem;  /* 38 */
  --text-4xl:  3rem;      /* 48 */
  --text-5xl:  3.75rem;   /* 60 */
  --text-6xl:  4.75rem;   /* 76 — display */

  /* Vikter */
  --weight-regular: 400;
  --weight-medium: 500;
  --weight-semibold: 600;
  --weight-bold: 700;
  --weight-extrabold: 800;

  /* Radhöjder */
  --leading-tight: 1.1;
  --leading-snug: 1.25;
  --leading-normal: 1.5;
  --leading-relaxed: 1.65;

  /* Teckenavstånd */
  --tracking-tight: -0.02em;
  --tracking-normal: 0em;
  --tracking-wide: 0.04em;

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

  /* ---- Radie ---- */
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-xl: 16px;
  --radius-2xl: 24px;
  --radius-full: 9999px;

  /* ---- Skuggor (navy-tonade, ej rent svarta) ---- */
  --shadow-xs: 0 1px 2px rgba(13, 27, 62, 0.06);
  --shadow-sm: 0 1px 3px rgba(13, 27, 62, 0.10), 0 1px 2px rgba(13, 27, 62, 0.06);
  --shadow-md: 0 4px 12px rgba(13, 27, 62, 0.10), 0 2px 4px rgba(13, 27, 62, 0.06);
  --shadow-lg: 0 12px 28px rgba(13, 27, 62, 0.14), 0 4px 8px rgba(13, 27, 62, 0.08);
  --shadow-xl: 0 24px 48px rgba(13, 27, 62, 0.18);
  --shadow-focus: 0 0 0 3px rgba(201, 99, 122, 0.45);

  /* ---- Z-index ---- */
  --z-base: 0;
  --z-dropdown: 1000;
  --z-sticky: 1100;
  --z-overlay: 1200;
  --z-modal: 1300;
  --z-toast: 1400;

  /* ---- Motion ---- */
  --duration-fast: 120ms;
  --duration-base: 200ms;
  --duration-slow: 320ms;
  --ease-standard: cubic-bezier(0.2, 0, 0, 1);
  --ease-emphasized: cubic-bezier(0.3, 0, 0, 1);

  /* ---- Layout ---- */
  --container-max: 1200px;
  --container-narrow: 720px;
  --gutter: var(--space-6);
}

/* ============================================================
   MÖRKT läge — härledd, tillgänglig palett (text ≥ 4.5:1)
   Aktiveras via data-theme="dark" ELLER systemval.
   ============================================================ */

:root[data-theme="dark"] {
  --color-bg: var(--navy-900);
  --color-surface: var(--navy-800);
  --color-surface-raised: var(--navy-700);
  --color-surface-sunken: #0A1531;
  --color-text: #F4EFE8;
  --color-text-muted: #A9B0C0;
  --color-text-on-primary: var(--navy-900);
  --color-primary: var(--rose-400);
  --color-primary-fill: var(--rose-400);
  --color-primary-hover: #F0B4C1;
  --color-accent: var(--lavender-400);
  --color-link: var(--rose-400);
  --color-link-hover: #F0B4C1;
  --color-border: var(--navy-600);
  --color-border-strong: #3C5088;
  --color-focus-ring: var(--lavender-400);
  --color-success: #6FCF97;
  --color-warning: #E8B15A;
  --color-danger: #F08A8A;

  --color-band-bg: var(--navy-800);

  --shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.30);
  --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.40), 0 1px 2px rgba(0, 0, 0, 0.30);
  --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.45), 0 2px 4px rgba(0, 0, 0, 0.30);
  --shadow-lg: 0 12px 28px rgba(0, 0, 0, 0.55), 0 4px 8px rgba(0, 0, 0, 0.35);
  --shadow-xl: 0 24px 48px rgba(0, 0, 0, 0.60);
  --shadow-focus: 0 0 0 3px rgba(184, 159, 212, 0.55);
}

/* Auto: följ systemet när data-theme inte satts explicit */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --color-bg: var(--navy-900);
    --color-surface: var(--navy-800);
    --color-surface-raised: var(--navy-700);
    --color-surface-sunken: #0A1531;
    --color-text: #F4EFE8;
    --color-text-muted: #A9B0C0;
    --color-text-on-primary: var(--navy-900);
    --color-primary: var(--rose-400);
    --color-primary-fill: var(--rose-400);
    --color-primary-hover: #F0B4C1;
    --color-accent: var(--lavender-400);
    --color-link: var(--rose-400);
    --color-link-hover: #F0B4C1;
    --color-border: var(--navy-600);
    --color-border-strong: #3C5088;
    --color-focus-ring: var(--lavender-400);
    --color-success: #6FCF97;
    --color-warning: #E8B15A;
    --color-danger: #F08A8A;

    --color-band-bg: var(--navy-800);

    --shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.30);
    --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.40), 0 1px 2px rgba(0, 0, 0, 0.30);
    --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.45), 0 2px 4px rgba(0, 0, 0, 0.30);
    --shadow-lg: 0 12px 28px rgba(0, 0, 0, 0.55), 0 4px 8px rgba(0, 0, 0, 0.35);
    --shadow-xl: 0 24px 48px rgba(0, 0, 0, 0.60);
    --shadow-focus: 0 0 0 3px rgba(184, 159, 212, 0.55);
  }
}
