/**
 * Locnexa Design Token Aliases (P0)
 * Maps legacy namespaces → canonical --lx-* via bridge literals where values differ.
 * R0: mobile/provider/client bridges aligned to --lx-primary (#355CFF).
 * Load: after lx-design-tokens.css, before role component CSS.
 */

/* ═══════════════════════════════════════════════════════════════
   Bridge literals — exact legacy computed values (P0 only)
   ═══════════════════════════════════════════════════════════════ */
:root {
  /* Provider legacy (--pd-*) bridges */
  --lx-bridge-pd-bg: #f5f7fb;
  --lx-bridge-pd-soft: #667085;
  --lx-bridge-pd-muted: #98a2b3;
  --lx-bridge-pd-blue2: #2a4be0;
  --lx-bridge-pd-blue3: #355cff;
  /* Desktop shell SoT widths (Provider .pd-shell grid columns) */
  --lx-bridge-pd-sidebar: 280px;
  --lx-bridge-pd-messages: 400px;

  /* Client desktop (--cd-*) bridges */
  --lx-bridge-cd-bg: #f8fafc;
  --lx-bridge-cd-panel2: #ffffff;
  --lx-bridge-cd-muted: #6b7280;
  --lx-bridge-cd-soft: #ebf0ff;
  --lx-bridge-cd-border: #e5e7eb;
  --lx-bridge-cd-blue: #355cff;
  --lx-bridge-cd-blue2: #2a4be0;
  --lx-bridge-cd-blue3: #1f38b8;
  --lx-bridge-cd-red: #ef4444;
  --lx-bridge-cd-green: #18c37e;
  --lx-bridge-cd-shadow: 0 18px 55px rgba(15, 23, 42, 0.1);
  --lx-bridge-cd-shadow-soft: 0 10px 30px rgba(15, 23, 42, 0.08);
  --lx-bridge-cd-radius: 24px;
  --lx-bridge-cd-font: var(--lx-font-family);

  /* Client dark mode bridges */
  --lx-bridge-cd-dark-bg: #0b1220;
  --lx-bridge-cd-dark-panel: #101827;
  --lx-bridge-cd-dark-panel2: #0f172a;
  --lx-bridge-cd-dark-text: #f8fafc;
  --lx-bridge-cd-dark-muted: #94a3b8;
  --lx-bridge-cd-dark-soft: #172554;
  --lx-bridge-cd-dark-border: rgba(255, 255, 255, 0.1);
  --lx-bridge-cd-dark-shadow: 0 18px 55px rgba(0, 0, 0, 0.32);
  --lx-bridge-cd-dark-shadow-soft: 0 10px 30px rgba(0, 0, 0, 0.24);

  /* Mobile (--m-*) bridges — R0 blue theme */
  --lx-bridge-m-bg: #f8fafc;
  --lx-bridge-m-text: #111827;
  --lx-bridge-m-muted: #6b7280;
  --lx-bridge-m-primary: #355cff;
  --lx-bridge-m-primary2: #2a4be0;
  --lx-bridge-m-border: #e5e7eb;
  --lx-bridge-m-radius: 20px;
  --lx-bridge-m-shadow: var(--lx-shadow-sm);
  --lx-bridge-m-shadow2: var(--lx-shadow-md);
  --lx-bridge-m-glass: rgba(255, 255, 255, 0.72);
  --lx-bridge-m-glass-line: #e5e7eb;
  --lx-bridge-m-grad: radial-gradient(1200px 600px at 10% -10%, rgba(53, 92, 255, 0.18), transparent 60%),
    radial-gradient(900px 500px at 95% 0%, rgba(42, 75, 224, 0.14), transparent 55%),
    radial-gradient(900px 500px at 50% 115%, rgba(53, 92, 255, 0.1), transparent 60%);

  /* Mobile dark bridges */
  --lx-bridge-m-dark-bg: #0b1120;
  --lx-bridge-m-dark-card: #111827;
  --lx-bridge-m-dark-text: #f8fafc;
  --lx-bridge-m-dark-muted: #cbd5e1;
  --lx-bridge-m-dark-border: rgba(148, 163, 184, 0.22);
  --lx-bridge-m-dark-shadow: 0 18px 48px rgba(0, 0, 0, 0.34);
  --lx-bridge-m-dark-shadow2: 0 18px 48px rgba(0, 0, 0, 0.3);
  --lx-bridge-m-dark-glass: rgba(15, 23, 42, 0.74);
  --lx-bridge-m-dark-glass-line: rgba(148, 163, 184, 0.16);
  --lx-bridge-m-dark-grad: radial-gradient(1200px 600px at 10% -10%, rgba(53, 92, 255, 0.22), transparent 60%),
    radial-gradient(900px 500px at 95% 0%, rgba(42, 75, 224, 0.16), transparent 55%),
    radial-gradient(900px 500px at 50% 115%, rgba(59, 130, 246, 0.12), transparent 60%);

  /* Safe UI bridges */
  --lx-bridge-safe-bg: #f8fafc;
  --lx-bridge-safe-text: #111827;
  --lx-bridge-safe-muted: #6b7280;
  --lx-bridge-safe-border: #e5e7eb;
  --lx-bridge-safe-blue: #355cff;
  --lx-bridge-safe-blue2: #2a4be0;
  --lx-bridge-safe-blue3: #1f38b8;
  --lx-bridge-safe-shadow: var(--lx-shadow-md);
  --lx-bridge-safe-soft-shadow: var(--lx-shadow-sm);

  /* Provider V2 color bridges (flag-off path) */
  --lx-bridge-pv2-blue-50: #eff6ff;
  --lx-bridge-pv2-blue-100: #dbeafe;
  --lx-bridge-pv2-blue-500: #3b82f6;
  --lx-bridge-pv2-blue-600: #2563eb;
  --lx-bridge-pv2-blue-700: #1d4ed8;
  --lx-bridge-pv2-navy-900: #0b1f4a;
  --lx-bridge-pv2-navy-800: #102a5c;
  --lx-bridge-pv2-navy-700: #15356e;
  --lx-bridge-pv2-green-500: #22c55e;
  --lx-bridge-pv2-green-600: #16a34a;
  --lx-bridge-pv2-amber-500: #f59e0b;
  --lx-bridge-pv2-red-500: #ef4444;
  --lx-bridge-pv2-slate-50: #f8fafc;
  --lx-bridge-pv2-slate-100: #f1f5f9;
  --lx-bridge-pv2-slate-200: #e2e8f0;
  --lx-bridge-pv2-slate-400: #94a3b8;
  --lx-bridge-pv2-slate-500: #64748b;
  --lx-bridge-pv2-slate-700: #334155;
  --lx-bridge-pv2-slate-900: #0f172a;
}

/* ═══════════════════════════════════════════════════════════════
   Provider legacy — --pd-*
   ═══════════════════════════════════════════════════════════════ */
:root {
  --pd-bg: var(--lx-bridge-pd-bg);
  --pd-card: var(--lx-surface);
  --pd-text: var(--lx-text);
  --pd-soft: var(--lx-bridge-pd-soft);
  --pd-muted: var(--lx-bridge-pd-muted);
  --pd-line: var(--lx-border);
  --pd-blue: var(--lx-blue);
  --pd-blue2: var(--lx-bridge-pd-blue2);
  --pd-blue3: var(--lx-bridge-pd-blue3);
  --pd-green: var(--lx-green);
  --pd-red: var(--lx-red);
  --pd-orange: var(--lx-orange);
  --pd-purple: var(--lx-purple);
  --pd-yellow: var(--lx-yellow);
  --pd-shadow: var(--lx-shadow-sm);
  --pd-shadow2: var(--lx-shadow-md);
  --pd-sidebar: var(--lx-bridge-pd-sidebar);
  --pd-messages: var(--lx-bridge-pd-messages);
  font-family: var(--lx-font-family);
}

@media (max-width: 1240px) {
  :root {
    --pd-sidebar: 230px;
    --pd-messages: 330px;
  }
}

/* ═══════════════════════════════════════════════════════════════
   Client desktop — --cd-*
   ═══════════════════════════════════════════════════════════════ */
:root {
  --cd-bg: var(--lx-bg);
  --cd-panel: var(--lx-surface);
  --cd-panel2: var(--lx-surface-2);
  --cd-text: var(--lx-text);
  --cd-muted: var(--lx-muted);
  --cd-soft: var(--lx-blue-soft);
  --cd-border: var(--lx-border);
  --cd-blue: var(--lx-blue);
  --cd-blue2: var(--lx-blue-mid);
  --cd-blue3: var(--lx-blue-deep);
  --cd-red: var(--lx-red);
  --cd-green: var(--lx-green);
  --cd-yellow: var(--lx-yellow);
  --cd-shadow: var(--lx-shadow-md);
  --cd-shadow-soft: var(--lx-shadow-sm);
  --cd-radius: var(--lx-radius-2xl);
  --cd-sidebar-fluid: clamp(208px, 17vw, 280px);
  --cd-chat-fluid: clamp(292px, 27vw, 420px);
  --cd-font: var(--lx-font-family);
}

body.cd-dark {
  --cd-bg: var(--lx-bridge-cd-dark-bg);
  --cd-panel: var(--lx-bridge-cd-dark-panel);
  --cd-panel2: var(--lx-bridge-cd-dark-panel2);
  --cd-text: var(--lx-bridge-cd-dark-text);
  --cd-muted: var(--lx-bridge-cd-dark-muted);
  --cd-soft: var(--lx-bridge-cd-dark-soft);
  --cd-border: var(--lx-bridge-cd-dark-border);
  --cd-shadow: var(--lx-bridge-cd-dark-shadow);
  --cd-shadow-soft: var(--lx-bridge-cd-dark-shadow-soft);
}

@media (max-width: 1366px) {
  :root {
    --cd-sidebar-fluid: clamp(218px, 16vw, 250px);
    --cd-chat-fluid: clamp(300px, 26vw, 370px);
  }
}

@media (max-width: 1180px) {
  :root {
    --cd-sidebar-fluid: 210px;
    --cd-chat-fluid: 292px;
  }
}

@media (max-width: 980px) {
  :root {
    --cd-sidebar-fluid: 78px;
    --cd-chat-fluid: 280px;
  }
}

@media (min-width: 981px) {
  body:not(.cd-sidebar-collapsed) {
    --cd-sidebar-fluid: clamp(232px, 18vw, 292px);
  }
  body.cd-sidebar-collapsed {
    --cd-sidebar-fluid: 84px;
  }
  /* Collapsed chat rail keeps reopen handle (58px) on every route. */
  body.cd-chat-collapsed {
    --cd-chat-fluid: 58px;
  }
}

/* ═══════════════════════════════════════════════════════════════
   Mobile shared — --m-*
   ═══════════════════════════════════════════════════════════════ */
:root {
  --m-bg: var(--lx-bg);
  --m-card: var(--lx-surface);
  --m-text: var(--lx-text);
  --m-muted: var(--lx-muted);
  --m-primary: var(--lx-blue);
  --m-primary2: var(--lx-blue-mid);
  --m-border: var(--lx-border);
  --m-radius: var(--lx-radius-lg);
  --m-shadow: var(--lx-shadow-sm);
  --m-grad: var(--lx-bridge-m-grad);
  --m-glass: var(--lx-bridge-m-glass);
  --m-glass-line: var(--lx-border);
  --m-shadow2: var(--lx-shadow-md);
}

html[data-theme="dark"] {
  --m-bg: var(--lx-bridge-m-dark-bg);
  --m-card: var(--lx-bridge-m-dark-card);
  --m-text: var(--lx-bridge-m-dark-text);
  --m-muted: var(--lx-bridge-m-dark-muted);
  --m-border: var(--lx-bridge-m-dark-border);
  --m-shadow: var(--lx-bridge-m-dark-shadow);
  --m-shadow2: var(--lx-bridge-m-dark-shadow2);
  --m-glass: var(--lx-bridge-m-dark-glass);
  --m-glass-line: var(--lx-bridge-m-dark-glass-line);
  --m-grad: var(--lx-bridge-m-dark-grad);
}

/* ═══════════════════════════════════════════════════════════════
   Staff admin — --a-* (aliases mobile tokens)
   ═══════════════════════════════════════════════════════════════ */
:root {
  --a-bg: var(--m-bg);
  --a-card: var(--m-card);
  --a-text: var(--m-text);
  --a-muted: var(--m-muted);
  --a-primary: var(--m-primary);
  --a-border: var(--m-border);
  --a-shadow: var(--m-shadow);
  --a-r: var(--m-radius);
}

/* ═══════════════════════════════════════════════════════════════
   Safe UI — --lx-safe-* (ticket/admin polish pages)
   ═══════════════════════════════════════════════════════════════ */
:root {
  --lx-safe-bg: var(--lx-bridge-safe-bg);
  --lx-safe-card: var(--lx-surface);
  --lx-safe-text: var(--lx-bridge-safe-text);
  --lx-safe-muted: var(--lx-bridge-safe-muted);
  --lx-safe-border: var(--lx-bridge-safe-border);
  --lx-safe-blue: var(--lx-bridge-safe-blue);
  --lx-safe-blue2: var(--lx-bridge-safe-blue2);
  --lx-safe-blue3: var(--lx-bridge-safe-blue3);
  --lx-safe-shadow: var(--lx-bridge-safe-shadow);
  --lx-safe-soft-shadow: var(--lx-bridge-safe-soft-shadow);
}

/* ═══════════════════════════════════════════════════════════════
   Admin desktop — scoped --lx-* overrides (P3 will converge)
   ═══════════════════════════════════════════════════════════════ */
body.admin-main-page {
  --lx-bg: #f8fafc;
  --lx-card: #ffffff;
  --lx-text: #111827;
  --lx-muted: #6b7280;
  --lx-border: #e5e7eb;
  --lx-blue: #355cff;
  --lx-blue2: #2a4be0;
  --lx-side1: #355cff;
  --lx-side2: #2a4be0;
  --lx-side3: #1f38b8;
  --lx-shadow: 0 4px 12px rgba(17, 24, 39, 0.06);
}

/* ═══════════════════════════════════════════════════════════════
   Provider V3 — --px3-* + typography (body.px3-active)
   ═══════════════════════════════════════════════════════════════ */
body.px3-active {
  --px3-font: var(--lx-font-family);
  --px3-muted: var(--lx-muted);

  --px3-type-caption-size: var(--lx-type-caption-size);

  --px3-type-page-size: var(--lx-type-page-size);
  --px3-type-page-weight: var(--lx-type-page-weight);
  --px3-type-page-tracking: var(--lx-type-page-tracking);
  --px3-type-page-leading: var(--lx-type-page-leading);

  --px3-type-section-size: var(--lx-type-section-size);
  --px3-type-section-weight: var(--lx-type-section-weight);
  --px3-type-section-tracking: var(--lx-type-section-tracking);
  --px3-type-section-leading: var(--lx-type-section-leading);

  --px3-type-card-size: var(--lx-type-card-size);
  --px3-type-card-weight: var(--lx-type-card-weight);
  --px3-type-card-leading: var(--lx-type-card-leading);

  --px3-type-body-size: var(--lx-type-body-size);
  --px3-type-body-weight: var(--lx-type-body-weight);
  --px3-type-body-leading: var(--lx-type-body-leading);

  --px3-type-body-sm-size: var(--lx-type-body-sm-size);
  --px3-type-body-sm-leading: var(--lx-type-body-sm-leading);

  --px3-type-label-size: var(--lx-type-label-size);
  --px3-type-label-weight: var(--lx-type-label-weight);
  --px3-type-label-tracking: var(--lx-type-label-tracking);

  --px3-type-nav-group-size: var(--lx-type-nav-group-size);
  --px3-type-nav-group-weight: var(--lx-type-nav-group-weight);

  --px3-type-nav-size: var(--lx-type-nav-size);
  --px3-type-nav-weight: var(--lx-type-nav-weight);
  --px3-type-nav-active-weight: var(--lx-type-nav-active-weight);

  --px3-type-kpi-value-size: var(--lx-type-kpi-value-size);
  --px3-type-kpi-label-size: var(--lx-type-kpi-label-size);

  --px3-type-metric-size: var(--lx-type-metric-size);
  --px3-type-metric-weight: var(--lx-type-metric-weight);
  --px3-type-metric-tracking: var(--lx-type-metric-tracking);

  --px3-type-dialog-title-size: var(--lx-type-dialog-title-size);
  --px3-type-dialog-title-weight: var(--lx-type-dialog-title-weight);
  --px3-type-dialog-title-tracking: var(--lx-type-dialog-title-tracking);
  --px3-type-dialog-subtitle-size: var(--lx-type-dialog-subtitle-size);
  --px3-type-dialog-subtitle-weight: var(--lx-type-dialog-subtitle-weight);

  --px3-type-search-placeholder-size: var(--lx-type-search-placeholder-size);
  --px3-type-search-placeholder-weight: var(--lx-type-search-placeholder-weight);
  --px3-type-search-input-size: var(--lx-type-search-input-size);
  --px3-type-search-input-weight: var(--lx-type-search-input-weight);

  --px3-type-messages-title-size: var(--lx-type-messages-title-size);
  --px3-type-messages-title-weight: var(--lx-type-messages-title-weight);

  --px3-sidebar-w: var(--lx-sidebar-w);
  --px3-bg: var(--lx-bg);
  --px3-surface: var(--lx-surface);
  --px3-border: var(--lx-border);
  --px3-text: var(--lx-text);
  --px3-accent: var(--lx-blue);
  --px3-accent-soft: var(--lx-blue-soft);
  --px3-space-2: var(--lx-space-2);
  --px3-space-3: var(--lx-space-3);
  --px3-radius-md: var(--lx-radius-md);
  --px3-radius-lg: var(--lx-radius-lg);
  --px3-radius-xl: var(--lx-radius-lg);
  --px3-radius-sheet: var(--lx-radius-sheet);
  --px3-radius-dialog: var(--lx-radius-2xl);
  --px3-shadow-sm: var(--lx-shadow-sm);
  --px3-shadow-md: var(--lx-shadow-md);
}

/* ═══════════════════════════════════════════════════════════════
   Provider V2 — --pv2-* (flag-off path)
   ═══════════════════════════════════════════════════════════════ */
body.pv2-active {
  --pv2-space-1: var(--lx-space-1);
  --pv2-space-2: var(--lx-space-2);
  --pv2-space-3: var(--lx-space-3);
  --pv2-space-4: var(--lx-space-4);
  --pv2-radius-sm: var(--lx-radius-sm);
  --pv2-radius-md: var(--lx-radius-md);
  --pv2-radius-lg: 16px;
  --pv2-radius-xl: var(--lx-radius-xl);
  --pv2-shadow-sm: 0 1px 2px rgba(15, 23, 42, 0.05);
  --pv2-shadow-md: 0 8px 24px rgba(15, 23, 42, 0.06);
  --pv2-shadow-lg: 0 16px 40px rgba(15, 23, 42, 0.08);
  --pv2-blue-50: var(--lx-bridge-pv2-blue-50);
  --pv2-blue-100: var(--lx-bridge-pv2-blue-100);
  --pv2-blue-500: var(--lx-bridge-pv2-blue-500);
  --pv2-blue-600: var(--lx-bridge-pv2-blue-600);
  --pv2-blue-700: var(--lx-bridge-pv2-blue-700);
  --pv2-navy-900: var(--lx-bridge-pv2-navy-900);
  --pv2-navy-800: var(--lx-bridge-pv2-navy-800);
  --pv2-navy-700: var(--lx-bridge-pv2-navy-700);
  --pv2-green-500: var(--lx-bridge-pv2-green-500);
  --pv2-green-600: var(--lx-bridge-pv2-green-600);
  --pv2-amber-500: var(--lx-bridge-pv2-amber-500);
  --pv2-red-500: var(--lx-bridge-pv2-red-500);
  --pv2-slate-50: var(--lx-bridge-pv2-slate-50);
  --pv2-slate-100: var(--lx-bridge-pv2-slate-100);
  --pv2-slate-200: var(--lx-bridge-pv2-slate-200);
  --pv2-slate-400: var(--lx-bridge-pv2-slate-400);
  --pv2-slate-500: var(--lx-bridge-pv2-slate-500);
  --pv2-slate-700: var(--lx-bridge-pv2-slate-700);
  --pv2-slate-900: var(--lx-bridge-pv2-slate-900);
  --pv2-text-xs: var(--lx-type-caption-size);
  --pv2-text-sm: var(--lx-type-body-sm-size);
  --pv2-text-base: var(--lx-type-card-size);
  --pv2-text-lg: 18px;
  --pv2-text-xl: 24px;
  --pv2-text-2xl: 32px;
  --pv2-font-medium: 600;
  --pv2-font-bold: 700;
  --pv2-font-black: 800;
}
