/* ==========================================================================
   Lexion — Design Tokens
   Sumber tunggal untuk warna, tipografi, spacing, radius, elevasi, motion.
   Referensi: docs/UI_SPEC.md §2. Semua warna wajib memakai custom property.
   ========================================================================== */

:root {
  /* --- Palette (UI_SPEC §2) --- */
  --color-bg:          #111318;
  --color-surface:     #1B1F27;
  --color-surface-2:   #242A34;
  --color-surface-3:   #2C333F;
  --color-primary:     #B9A7E8;   /* lavender */
  --color-secondary:   #78DCE8;   /* cyan     */
  --color-text:        #F1EEE8;   /* ivory    */
  --color-muted:       #A5A8B0;
  --color-border:      #343A46;

  /* --- Semantic --- */
  --color-primary-soft:   color-mix(in srgb, var(--color-primary) 16%, transparent);
  --color-secondary-soft: color-mix(in srgb, var(--color-secondary) 14%, transparent);
  --color-danger:         #E8798A;
  --color-danger-soft:    color-mix(in srgb, var(--color-danger) 16%, transparent);
  --color-success:        #8FD9A8;
  --color-success-soft:   color-mix(in srgb, var(--color-success) 15%, transparent);
  --color-warning:        #E8C879;

  /* --- Surfaces & lines --- */
  --border-hairline: 1px solid var(--color-border);
  --ring: 0 0 0 3px color-mix(in srgb, var(--color-primary) 40%, transparent);
  --ring-danger: 0 0 0 3px color-mix(in srgb, var(--color-danger) 40%, transparent);

  /* --- Typography --- */
  --font-display: "Fraunces", "Iowan Old Style", Georgia, serif;
  --font-sans:    "IBM Plex Sans", ui-sans-serif, system-ui, sans-serif;
  --font-mono:    "IBM Plex Mono", ui-monospace, "SFMono-Regular", monospace;

  --fs-xs:   0.75rem;   /* 12 */
  --fs-sm:   0.875rem;  /* 14 */
  --fs-base: 1rem;      /* 16 */
  --fs-md:   1.125rem;  /* 18 */
  --fs-lg:   1.375rem;  /* 22 */
  --fs-xl:   1.75rem;   /* 28 */
  --fs-2xl:  2.25rem;   /* 36 */
  --fs-3xl:  3rem;      /* 48 */

  --lh-tight: 1.15;
  --lh-snug:  1.35;
  --lh-base:  1.6;

  --tracking-wide: 0.08em;
  --tracking-wider: 0.16em;

  /* --- Spacing scale (4px base) --- */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.25rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;
  --space-16: 4rem;

  /* --- Radius --- */
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 18px;
  --radius-xl: 26px;
  --radius-pill: 999px;

  /* --- Elevation --- */
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.35);
  --shadow-md: 0 8px 24px -12px rgba(0, 0, 0, 0.65);
  --shadow-lg: 0 24px 60px -24px rgba(0, 0, 0, 0.8);

  /* --- Layout --- */
  --sidebar-w: 264px;
  --topbar-h: 64px;
  --bottomnav-h: 64px;
  --content-max: 1120px;

  /* --- Motion --- */
  --dur-1: 120ms;
  --dur-2: 220ms;
  --dur-3: 380ms;
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);

  /* --- Z-index --- */
  --z-drawer: 60;
  --z-modal: 80;
  --z-toast: 100;

  color-scheme: dark;
}

/* Tema terang — diaktifkan lewat `<html data-theme="light">`.
   Nilai tetap terpusat; tidak ada warna hard-coded di komponen. */
:root[data-theme="light"] {
  --color-bg:        #F4F1EA;
  --color-surface:   #FFFFFF;
  --color-surface-2: #EFEBE2;
  --color-surface-3: #E6E1D6;
  --color-text:      #1C1F26;
  --color-muted:     #616772;
  --color-border:    #D6D0C4;
  --color-primary:   #6C58A8;
  --color-secondary: #1E8C9B;
  --shadow-md: 0 8px 24px -14px rgba(28, 31, 38, 0.28);
  --shadow-lg: 0 24px 60px -24px rgba(28, 31, 38, 0.32);
  color-scheme: light;
}
