/* GENERATED by shared/sync.mjs - DO NOT EDIT. Source: shared/css/. Regenerate: node shared/sync.mjs */
/* Design tokens: colours, glass, the z-scale and control sizes.
   ONE source for both apps. Until now each app carried its own copy, with comments
   on both sides claiming to be "kept identical" to the other, which is the arrangement
   that eventually drifts. Vendored by shared/sync.mjs into
   apps/<app>/assets/css/nl-shared.css; never edit the generated file. */

:root {
    color-scheme: dark;
    --bg-dark: #050505;
    --bg-panel: #0d0d0d;
    --bg-surface: #0a0a0a;
    --bg-elevated: #111;
    --bg-tooltip: #1a1a1a;
    --accent-blue: #3b82f6;
    --accent-blue-hover: #2563eb;
    --text-muted: #6b7280;

    /* Categorical data-viz palette (mirrors NL.components.CAT_PALETTE).
       Color is no longer pickable per entity; series hues come from here. */
    --chart-1: #3b82f6;
    --chart-2: #f59e0b;
    --chart-3: #10b981;
    --chart-4: #ec4899;
    --chart-5: #06b6d4;
    --chart-6: #f97316;
    --chart-7: #8b5cf6;
    --chart-8: #84cc16;

    /* Semantic colors */
    --color-success: #22c55e;
    --color-warning: #eab308;
    --color-error: #ef4444;

    /* Text hierarchy */
    --text-primary: #ffffff;
    --text-secondary: #d1d5db;
    --text-tertiary: #9ca3af;
    --text-disabled: #374151;

    /* Dim gray scale (accessible — ≥3:1 on --bg-dark) */
    --dim-1: #555;
    --dim-2: #666;
    --dim-3: #777;
    --dim-4: #888;
    --dim-5: #aaa;
    --dim-6: #bbb;
    --dim-7: #d4d4d4;

    /* Chrome base (flips white↔black for light mode) */
    --chrome-rgb: 255, 255, 255;
    --w02: rgba(var(--chrome-rgb), 0.02);
    --w03: rgba(var(--chrome-rgb), 0.03);
    --w04: rgba(var(--chrome-rgb), 0.04);
    --w05: rgba(var(--chrome-rgb), 0.05);
    --w06: rgba(var(--chrome-rgb), 0.06);
    --w07: rgba(var(--chrome-rgb), 0.07);
    --w08: rgba(var(--chrome-rgb), 0.08);
    --glass-bg: var(--w03);
    --glass-border: var(--w08);

    /* Z-index scale */
    --z-content: 10;
    --z-header: 30;
    --z-popup: 40;
    --z-sidebar: 100;
    --z-mobile-overlay: 149;
    --z-mobile-sidebar: 150;
    --z-mobile-toggle: 200;
    --z-modal: 300;         /* every dialog: openModal, entityModal, static full-screen modals */
    --z-modal-nested: 350;
    --z-notif-overlay: 400; /* NLShared.confirm — sits above modals */
    --z-notif: 410;
    --z-fab: 450;           /* chat fab + popover float above modals (chat stays reachable) */
    --z-popover: 460;       /* chat popover, searchselect dropdown (.nl-ss-pop) */
    --z-toast: 500;         /* NLShared.notice banner stack */
    --z-consent: 550;       /* RGPD consent gate — legal, must sit above everything */

    /* Sidebar width (toggled by .sidebar-collapsed on <html>) */
    --sidebar-w: 260px;
}
