/* NASL design system v1.5 tokens for the production CRM and website (3 October 2026).
   Themes on <html data-theme>: light, dark (Neutral: the CRM desk), nasl (member view, website, brand surfaces), nasl-dark (NASL Night: threshold moments only, never the default).
   Source: NASL design system v1.5, tokens.json. Component styles: 05_nasl-ds-v1.5-components.css. Do not hard-code these values in components. */
:root, [data-theme="light"] {
  --graphite-800: #25282c;
  --graphite-100: #e4e6ea;
  --graphite-600: #4f5157;
  --graphite-300: #b5b9c2;
  --cobalt-900: #1c3578;
  --cobalt-500: #2f55d4;
  --cobalt-200: #9db4ff;
  --paper-100: #f4f2ee;
  --night-950: #0b1020;
  --surface: #f7f7f5;
  --surface-raised: #ffffff;
  --surface-sunken: #eeeeeb;
  --border: #dcdcd7;
  --border-strong: #83837d;
  --ink: #1b1c1e;
  --ink-muted: #5b5d61;
  --brand: var(--graphite-800);
  --on-brand: #ffffff;
  --brand-subtle: #ebebe8;
  --accent: #4a5560;
  --on-accent: #ffffff;
  --focus: #25282c;
  --info: #1f5c99;
  --info-bg: #e7f0f9;
  --success: #1d6b55;
  --success-bg: #e3f2ec;
  --warning: #7f5300;
  --warning-bg: #fbf0d9;
  --danger: #b03a12;
  --danger-bg: #fbe9e2;
  --ai: #87386a;
  --ai-bg: #f6e8f0;
  --shadow-1: 0 1px 2px rgba(27,28,30,0.05);
  --shadow-2: 0 8px 24px rgba(20,20,20,0.12);
}
[data-theme="dark"] {
  --graphite-800: #25282c;
  --graphite-100: #e4e6ea;
  --graphite-600: #4f5157;
  --graphite-300: #b5b9c2;
  --cobalt-900: #1c3578;
  --cobalt-500: #2f55d4;
  --cobalt-200: #9db4ff;
  --paper-100: #f4f2ee;
  --night-950: #0b1020;
  --surface: #121314;
  --surface-raised: #1b1c1e;
  --surface-sunken: #0b0c0d;
  --border: #2e3033;
  --border-strong: #74777c;
  --ink: #ededeb;
  --ink-muted: #a4a6aa;
  --brand: var(--graphite-100);
  --on-brand: #121314;
  --brand-subtle: #26282b;
  --accent: #aab4bf;
  --on-accent: #121314;
  --focus: #e4e6ea;
  --info: #8cbcec;
  --info-bg: #15283b;
  --success: #6cc7a6;
  --success-bg: #0f2a22;
  --warning: #e7b65a;
  --warning-bg: #2e2410;
  --danger: #f08d69;
  --danger-bg: #3a1a10;
  --ai: #e59ac7;
  --ai-bg: #331626;
  --shadow-1: 0 1px 2px rgba(0,0,0,0.5);
  --shadow-2: 0 8px 24px rgba(0,0,0,0.6);
}
[data-theme="nasl"] {
  --graphite-800: #25282c;
  --graphite-100: #e4e6ea;
  --graphite-600: #4f5157;
  --graphite-300: #b5b9c2;
  --cobalt-900: #1c3578;
  --cobalt-500: #2f55d4;
  --cobalt-200: #9db4ff;
  --paper-100: #f4f2ee;
  --night-950: #0b1020;
  --surface: var(--paper-100);
  --surface-raised: #fcfbf9;
  --surface-sunken: #eae7e1;
  --border: #dbd6cd;
  --border-strong: #7d776c;
  --ink: #15171c;
  --ink-muted: #5c5a53;
  --brand: var(--cobalt-900);
  --on-brand: var(--paper-100);
  --brand-subtle: #e3e6f0;
  --accent: var(--graphite-600);
  --on-accent: #ffffff;
  --focus: var(--cobalt-500);
  --info: #1f5c99;
  --info-bg: #e4e9f3;
  --success: #1d6b55;
  --success-bg: #e2eee8;
  --warning: #7a5000;
  --warning-bg: #f5ecd8;
  --danger: #a8370f;
  --danger-bg: #f6e5dd;
  --ai: #87386a;
  --ai-bg: #f2e6ec;
  --shadow-1: 0 1px 2px rgba(60,44,20,0.06);
  --shadow-2: 0 8px 24px rgba(40,30,15,0.14);
}
[data-theme="nasl-dark"] {
  --graphite-800: #25282c;
  --graphite-100: #e4e6ea;
  --graphite-600: #4f5157;
  --graphite-300: #b5b9c2;
  --cobalt-900: #1c3578;
  --cobalt-500: #2f55d4;
  --cobalt-200: #9db4ff;
  --paper-100: #f4f2ee;
  --night-950: #0b1020;
  --surface: var(--night-950);
  --surface-raised: #121a30;
  --surface-sunken: #070b16;
  --border: #222c45;
  --border-strong: #5d6a88;
  --ink: #ece7dd;
  --ink-muted: #ada79b;
  --brand: var(--cobalt-200);
  --on-brand: #0b1020;
  --brand-subtle: #18244a;
  --accent: var(--graphite-300);
  --on-accent: #0b1020;
  --focus: var(--cobalt-200);
  --info: #8cbcec;
  --info-bg: #15203f;
  --success: #6cc7a6;
  --success-bg: #0e2620;
  --warning: #e7b65a;
  --warning-bg: #2b2310;
  --danger: #f08d69;
  --danger-bg: #351a12;
  --ai: #e59ac7;
  --ai-bg: #2e1626;
  --shadow-1: 0 1px 2px rgba(0,0,0,0.5);
  --shadow-2: 0 8px 24px rgba(0,0,0,0.6);
}
:root {
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 48px;
  --space-8: 64px;
  --radius-sm: 4px;
  --radius-md: 6px;
  --radius-lg: 10px;
  --radius-pill: 999px;
  --control-sm: 28px;
  --control-md: 36px;
  --control-lg: 44px;
  --duration-press: 140ms;
  --duration-hover: 160ms;
  --duration-enter: 220ms;
  --duration-exit: 140ms;
  --duration-reveal: 560ms;
  --ease-out: cubic-bezier(0.23, 1, 0.32, 1);
  --ease-in-out: cubic-bezier(0.77, 0, 0.175, 1);
  --ease-drawer: cubic-bezier(0.32, 0.72, 0, 1);
  --font-sans: Archivo, "Noto Sans", Alexandria, system-ui, sans-serif;
  --font-serif: "Source Serif 4", Georgia, "Times New Roman", serif;
  --font-arabic: Alexandria, Archivo, system-ui, sans-serif;
  --font-arabic-display: "Noto Naskh Arabic", Alexandria, serif;
  --font-cyrillic: Archivo, "Noto Sans", system-ui, sans-serif;
  --font-zh-sc: Archivo, "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;
  --font-zh-tc: Archivo, "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", sans-serif;
  --font-mono: "Martian Mono", ui-monospace, monospace;
}
[data-theme="nasl"],[data-theme="nasl-dark"]{--duration-enter:260ms;--duration-reveal:720ms;}
.display{font-family:var(--font-sans);font-size:32px;line-height:40px;font-weight:600;letter-spacing:-0.01em;}
.h1{font-family:var(--font-sans);font-size:24px;line-height:32px;font-weight:600;}
.h2{font-family:var(--font-sans);font-size:18px;line-height:26px;font-weight:600;}
.body{font-family:var(--font-sans);font-size:15px;line-height:22px;font-weight:400;}
.body-sm{font-family:var(--font-sans);font-size:13px;line-height:20px;font-weight:400;}
.label{font-family:var(--font-sans);font-size:12px;line-height:16px;font-weight:600;letter-spacing:0.01em;}
.caption{font-family:var(--font-sans);font-size:12px;line-height:16px;font-weight:400;}
.data{font-family:var(--font-mono);font-size:13px;line-height:20px;font-weight:400;}
.data-lg{font-family:var(--font-mono);font-size:20px;line-height:28px;font-weight:500;}
.h2-ar{font-family:var(--font-arabic);font-size:20px;line-height:32px;font-weight:600;}
.body-ar{font-family:var(--font-arabic);font-size:16px;line-height:28px;font-weight:400;}
.display-ar{font-family:var(--font-arabic-display);font-size:36px;line-height:56px;font-weight:500;}
.body-ru{font-family:var(--font-cyrillic);font-size:15px;line-height:23px;font-weight:400;}
.body-zh-sc{font-family:var(--font-zh-sc);font-size:15px;line-height:26px;font-weight:400;letter-spacing:0.02em;}
.body-zh-tc{font-family:var(--font-zh-tc);font-size:15px;line-height:26px;font-weight:400;letter-spacing:0.02em;}
.nasl-display{font-family:var(--font-serif);font-size:44px;line-height:52px;font-weight:400;letter-spacing:-0.015em;}
.nasl-h1{font-family:var(--font-serif);font-size:26px;line-height:32px;font-weight:450;letter-spacing:-0.01em;}
.nasl-ref{font-family:var(--font-mono);font-size:11px;line-height:16px;font-weight:500;letter-spacing:0.02em;}

/* Tailwind mapping (tailwind.config.ts, theme.extend):
colors: { surface:'var(--surface)', 'surface-raised':'var(--surface-raised)', 'surface-sunken':'var(--surface-sunken)',
  border:'var(--border)', 'border-strong':'var(--border-strong)', ink:'var(--ink)', 'ink-muted':'var(--ink-muted)',
  brand:'var(--brand)', 'on-brand':'var(--on-brand)', 'brand-subtle':'var(--brand-subtle)', accent:'var(--accent)', 'on-accent':'var(--on-accent)',
  focus:'var(--focus)', info:'var(--info)', 'info-bg':'var(--info-bg)', success:'var(--success)', 'success-bg':'var(--success-bg)',
  warning:'var(--warning)', 'warning-bg':'var(--warning-bg)', danger:'var(--danger)', 'danger-bg':'var(--danger-bg)', ai:'var(--ai)', 'ai-bg':'var(--ai-bg)' },
spacing: { 1:'var(--space-1)', 2:'var(--space-2)', 3:'var(--space-3)', 4:'var(--space-4)', 5:'var(--space-5)', 6:'var(--space-6)', 7:'var(--space-7)', 8:'var(--space-8)' },
borderRadius: { sm:'var(--radius-sm)', md:'var(--radius-md)', lg:'var(--radius-lg)', full:'var(--radius-pill)' },
fontFamily: { sans:['Archivo','Noto Sans','Alexandria','system-ui','sans-serif'], serif:['Source Serif 4','Georgia','serif'], mono:['Martian Mono','ui-monospace','monospace'], arabic:['Alexandria','Archivo','system-ui','sans-serif'], 'arabic-display':['Noto Naskh Arabic','Alexandria','serif'] },
transitionTimingFunction: { out:'cubic-bezier(0.23,1,0.32,1)', 'in-out':'cubic-bezier(0.77,0,0.175,1)', drawer:'cubic-bezier(0.32,0.72,0,1)' }
Fonts: Archivo, Martian Mono, Source Serif 4, Alexandria, Noto Naskh Arabic, Noto Sans (Cyrillic) (all OFL; Google Fonts or self-host).
*/
