/* ==========================================================================
   LMDB Licensing — Design tokens
   Thèmes : <html data-theme="light|dark">, accent : --accent-h (teinte OKLCH) + --accent-c (chroma)
   Densité : <html data-density="compact">, mouvement : <html data-motion="reduced">
   ========================================================================== */

:root {
  /* ---------- Accent (personnalisable : voir core/prefs.js) ---------- */
  --accent-h: 268;
  --accent-c: 0.19;

  /* ---------- Typographie ---------- */
  --font-sans: "Segoe UI Variable Text", "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont,
               "Helvetica Neue", Roboto, Arial, sans-serif;
  --font-display: "Segoe UI Variable Display", "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont,
                  "Helvetica Neue", Roboto, Arial, sans-serif;
  --font-mono: "Cascadia Code", "JetBrains Mono", ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", monospace;

  --fs-2xs: 11px;
  --fs-xs: 12px;
  --fs-sm: 13px;
  --fs-base: 14px;
  --fs-md: 15px;
  --fs-lg: 17px;
  --fs-xl: 20px;
  --fs-2xl: 24px;
  --fs-3xl: 30px;
  --fs-4xl: 38px;
  --lh-tight: 1.2;
  --lh-snug: 1.35;
  --lh-base: 1.55;
  --fw-regular: 400;
  --fw-medium: 500;
  --fw-semibold: 600;
  --fw-bold: 700;
  --tracking-tight: -0.015em;
  --tracking-wide: 0.06em;

  /* ---------- Espacements (base 4px) ---------- */
  --sp-0: 0;
  --sp-1: 4px;
  --sp-2: 8px;
  --sp-3: 12px;
  --sp-4: 16px;
  --sp-5: 20px;
  --sp-6: 24px;
  --sp-7: 32px;
  --sp-8: 40px;
  --sp-9: 56px;
  --sp-10: 72px;

  /* ---------- Rayons ---------- */
  --r-xs: 6px;
  --r-sm: 8px;
  --r-md: 10px;
  --r-lg: 14px;
  --r-xl: 20px;
  --r-2xl: 28px;
  --r-full: 999px;

  /* ---------- Mouvement ---------- */
  --dur-1: 120ms;
  --dur-2: 200ms;
  --dur-3: 320ms;
  --dur-4: 520ms;
  --dur-5: 900ms;
  --ease-out: cubic-bezier(.2, .8, .2, 1);
  --ease-in-out: cubic-bezier(.65, 0, .35, 1);
  --ease-in: cubic-bezier(.4, 0, 1, 1);
  --ease-spring: cubic-bezier(.34, 1.56, .64, 1);
  --ease-emph: cubic-bezier(.05, .7, .1, 1);
  --stagger: 45ms;

  /* ---------- Layout ---------- */
  --sidebar-w: 256px;
  --sidebar-w-collapsed: 72px;
  --topbar-h: 60px;
  --content-max: 1360px;
  --control-h: 38px;
  --control-h-sm: 30px;
  --control-h-lg: 46px;
  --row-pad-y: 12px;
  --card-pad: 20px;
  --z-sticky: 20;
  --z-sidebar: 40;
  --z-topbar: 30;
  --z-dropdown: 60;
  --z-drawer: 80;
  --z-modal: 90;
  --z-toast: 100;
  --z-tooltip: 110;

  /* ---------- Statuts (fixes, jamais thémés par l'accent) ---------- */
  --st-good: #0ca30c;
  --st-warning: #fab219;
  --st-serious: #ec835a;
  --st-critical: #d03b3b;

  color-scheme: light;
}

/* ================================== CLAIR ================================== */
:root,
:root[data-theme="light"] {
  --bg: #f6f7f9;
  --bg-elev: #ffffff;
  --bg-sunken: #eef0f3;
  --bg-sidebar: #fbfbfc;
  --bg-hover: rgba(17, 24, 39, .045);
  --bg-active: rgba(17, 24, 39, .075);
  --bg-overlay: rgba(15, 18, 28, .42);
  --surface: #ffffff;
  --surface-2: #f9fafb;
  --surface-3: #f2f4f7;

  --text: #0f1219;
  --text-2: #4a5160;
  --text-3: #7a8191;
  --text-inverse: #ffffff;
  --text-link: oklch(0.5 var(--accent-c) var(--accent-h));

  --border: #e4e7ec;
  --border-strong: #cfd4dc;
  --border-subtle: #eef0f3;
  --ring: oklch(0.62 var(--accent-c) var(--accent-h) / .45);

  --accent: oklch(0.56 var(--accent-c) var(--accent-h));
  --accent-hover: oklch(0.5 var(--accent-c) var(--accent-h));
  --accent-press: oklch(0.45 var(--accent-c) var(--accent-h));
  --accent-fg: #ffffff;
  --accent-text: oklch(0.5 var(--accent-c) var(--accent-h));
  --accent-soft: oklch(0.955 calc(var(--accent-c) * .18) var(--accent-h));
  --accent-soft-2: oklch(0.91 calc(var(--accent-c) * .32) var(--accent-h));
  --accent-glow: oklch(0.62 var(--accent-c) var(--accent-h) / .22);
  --accent-2: oklch(0.62 var(--accent-c) calc(var(--accent-h) + 40));

  --success: #13863b;
  --success-soft: #e7f6ec;
  --success-text: #0d6a2e;
  --warning: #b26b00;
  --warning-soft: #fdf3dc;
  --warning-text: #8a5300;
  --danger: #d03b3b;
  --danger-hover: #b52f2f;
  --danger-soft: #fdecec;
  --danger-text: #a82828;
  --info: #2a78d6;
  --info-soft: #e8f1fc;
  --info-text: #1c5cab;
  --neutral-soft: #eef0f3;
  --neutral-text: #4a5160;

  /* Séries de graphiques (palette validée, ordre fixe) */
  --series-1: #2a78d6;
  --series-2: #eb6834;
  --series-3: #1baf7a;
  --series-4: #eda100;
  --series-5: #e87ba4;
  --series-6: #008300;
  --series-7: #6250d6;
  --series-8: #e34948;
  --chart-grid: #e8eaee;
  --chart-axis: #c3c7cf;
  --chart-text: #7a8191;
  --seq-0: #eef3fb;
  --seq-1: #cde2fb;
  --seq-2: #9ec5f4;
  --seq-3: #5598e7;
  --seq-4: #256abf;
  --seq-5: #104281;

  --shadow-xs: 0 1px 2px rgba(16, 24, 40, .05);
  --shadow-sm: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .06);
  --shadow-md: 0 4px 8px -2px rgba(16, 24, 40, .08), 0 2px 4px -2px rgba(16, 24, 40, .05);
  --shadow-lg: 0 12px 24px -6px rgba(16, 24, 40, .12), 0 4px 8px -4px rgba(16, 24, 40, .06);
  --shadow-xl: 0 24px 48px -12px rgba(16, 24, 40, .22);
  --shadow-ring: 0 0 0 1px rgba(16, 24, 40, .06);
  --shadow-accent: 0 8px 20px -6px oklch(0.56 var(--accent-c) var(--accent-h) / .45);

  --skeleton-a: #eceef2;
  --skeleton-b: #f6f7f9;
  --scrollbar: #cfd4dc;
  --code-bg: #f2f4f7;
  --gradient-hero: radial-gradient(1200px 600px at 10% -10%, oklch(0.9 calc(var(--accent-c) * .5) var(--accent-h) / .7), transparent 60%),
                   radial-gradient(900px 500px at 110% 10%, oklch(0.9 calc(var(--accent-c) * .45) calc(var(--accent-h) + 50) / .55), transparent 60%);
  color-scheme: light;
}

/* ================================== SOMBRE ================================== */
:root[data-theme="dark"] {
  --bg: #0b0d12;
  --bg-elev: #12151c;
  --bg-sunken: #090b0f;
  --bg-sidebar: #0e1016;
  --bg-hover: rgba(255, 255, 255, .05);
  --bg-active: rgba(255, 255, 255, .085);
  --bg-overlay: rgba(0, 0, 0, .6);
  --surface: #13161d;
  --surface-2: #171b23;
  --surface-3: #1d222c;

  --text: #eef0f4;
  --text-2: #b4bac6;
  --text-3: #858c9a;
  --text-inverse: #0f1219;
  --text-link: oklch(0.76 calc(var(--accent-c) * .8) var(--accent-h));

  --border: #242935;
  --border-strong: #323949;
  --border-subtle: #1b1f28;
  --ring: oklch(0.7 var(--accent-c) var(--accent-h) / .55);

  --accent: oklch(0.64 var(--accent-c) var(--accent-h));
  --accent-hover: oklch(0.69 var(--accent-c) var(--accent-h));
  --accent-press: oklch(0.6 var(--accent-c) var(--accent-h));
  --accent-fg: #ffffff;
  --accent-text: oklch(0.78 calc(var(--accent-c) * .8) var(--accent-h));
  --accent-soft: oklch(0.27 calc(var(--accent-c) * .3) var(--accent-h));
  --accent-soft-2: oklch(0.33 calc(var(--accent-c) * .42) var(--accent-h));
  --accent-glow: oklch(0.64 var(--accent-c) var(--accent-h) / .3);
  --accent-2: oklch(0.7 var(--accent-c) calc(var(--accent-h) + 40));

  --success: #2fbf5b;
  --success-soft: rgba(47, 191, 91, .13);
  --success-text: #6fdc90;
  --warning: #f0a92a;
  --warning-soft: rgba(240, 169, 42, .13);
  --warning-text: #f5c56b;
  --danger: #e25656;
  --danger-hover: #ee6b6b;
  --danger-soft: rgba(226, 86, 86, .14);
  --danger-text: #f59393;
  --info: #3987e5;
  --info-soft: rgba(57, 135, 229, .15);
  --info-text: #8dbcf3;
  --neutral-soft: #1d222c;
  --neutral-text: #b4bac6;

  --series-1: #3987e5;
  --series-2: #d95926;
  --series-3: #199e70;
  --series-4: #c98500;
  --series-5: #d55181;
  --series-6: #008300;
  --series-7: #9085e9;
  --series-8: #e66767;
  --chart-grid: #20242e;
  --chart-axis: #343a48;
  --chart-text: #858c9a;
  --seq-0: #161b24;
  --seq-1: #10294a;
  --seq-2: #184f95;
  --seq-3: #256abf;
  --seq-4: #3987e5;
  --seq-5: #86b6ef;

  --shadow-xs: 0 1px 2px rgba(0, 0, 0, .4);
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, .45), 0 1px 3px rgba(0, 0, 0, .3);
  --shadow-md: 0 6px 12px -4px rgba(0, 0, 0, .55);
  --shadow-lg: 0 16px 32px -8px rgba(0, 0, 0, .65);
  --shadow-xl: 0 28px 56px -12px rgba(0, 0, 0, .75);
  --shadow-ring: 0 0 0 1px rgba(255, 255, 255, .06);
  --shadow-accent: 0 8px 24px -6px oklch(0.64 var(--accent-c) var(--accent-h) / .5);

  --skeleton-a: #1a1e27;
  --skeleton-b: #232835;
  --scrollbar: #323949;
  --code-bg: #1a1e27;
  --gradient-hero: radial-gradient(1200px 600px at 10% -10%, oklch(0.35 calc(var(--accent-c) * .6) var(--accent-h) / .55), transparent 60%),
                   radial-gradient(900px 500px at 110% 10%, oklch(0.32 calc(var(--accent-c) * .5) calc(var(--accent-h) + 50) / .45), transparent 60%);
  color-scheme: dark;
}

/* ---------- Densité compacte ---------- */
:root[data-density="compact"] {
  --control-h: 32px;
  --control-h-sm: 26px;
  --control-h-lg: 40px;
  --row-pad-y: 7px;
  --card-pad: 16px;
  --topbar-h: 54px;
  --fs-base: 13px;
}

/* ---------- Mouvement réduit (préférence OS ou choix utilisateur) ---------- */
@media (prefers-reduced-motion: reduce) {
  :root:not([data-motion="full"]) {
    --dur-1: 1ms; --dur-2: 1ms; --dur-3: 1ms; --dur-4: 1ms; --dur-5: 1ms; --stagger: 0ms;
  }
}
:root[data-motion="reduced"] {
  --dur-1: 1ms; --dur-2: 1ms; --dur-3: 1ms; --dur-4: 1ms; --dur-5: 1ms; --stagger: 0ms;
}
