/* ==========================================================================
   Chancery Design Tokens — single source of truth
   ========================================================================== */

:root {
  /* Navy / ink scale */
  --color-navy-50:  #F8FAFC;
  --color-navy-100: #F1F5F9;
  --color-navy-200: #E2E8F0;
  --color-navy-300: #CBD5E1;
  --color-navy-400: #94A3B8; /* decorative/disabled only — fails as text on light bg */
  --color-navy-500: #64748B; /* AA floor for muted/placeholder text */
  --color-navy-600: #475569;
  --color-navy-700: #334155;
  --color-navy-800: #1E293B;
  --color-navy-900: #0F172A;
  --color-navy-950: #020617;

  /* Gold / accent scale */
  --color-gold-50:  #FCF3DC;
  --color-gold-100: #F8E7B8;
  --color-gold-200: #F0D078;
  --color-gold-300: #E2B84A;
  --color-gold-400: #C8952C; /* brand default — CTAs, active states, wordmark */
  --color-gold-500: #B8860B; /* hover/pressed */
  --color-gold-600: #96700C; /* AA text floor on white */
  --color-gold-700: #8A6408; /* text-usable shade — links, icon-only buttons */
  --color-gold-800: #6E4F07;
  --color-gold-900: #4A3505;

  /* Semantic colors */
  --color-success-solid:  #15803D;
  --color-success-text:   #166534;
  --color-success-bg:     #DCFCE7;
  --color-success-border: #86EFAC;

  --color-danger-solid:  #DC2626;
  --color-danger-text:   #B91C1C;
  --color-danger-bg:     #FEE2E2;
  --color-danger-border: #FCA5A5;

  --color-warning-solid:  #C2410C;
  --color-warning-text:   #9A3412;
  --color-warning-bg:     #FFEDD5;
  --color-warning-border: #FDBA74;

  --color-info-solid:  #2563EB;
  --color-info-text:   #1D4ED8;
  --color-info-bg:     #DBEAFE;
  --color-info-border: #93C5FD;

  /* Data classification */
  --color-class-public-bg:      #E3F5EC;
  --color-class-public-text:    #0B6B42;
  --color-class-public-border:  #A7DFC3;

  --color-class-internal-bg:     #E7ECF3;
  --color-class-internal-text:   #33415C;
  --color-class-internal-border: #C7D2E0;

  --color-class-restricted-bg:     #FCEBD5;
  --color-class-restricted-text:   #93450A;
  --color-class-restricted-border: #F0C48A;

  --color-class-confidential-bg:     #F8DCDC;
  --color-class-confidential-text:   #8B1D1D;
  --color-class-confidential-border: #EFB3B3;

  /* Semantic aliases — components consume these, never raw scale values */
  --color-surface-app:    var(--color-navy-50);
  --color-surface-card:   #FFFFFF;
  --color-surface-sunken: var(--color-navy-100);
  --color-surface-dark:   var(--color-navy-900);
  --color-surface-darker: var(--color-navy-950);

  --color-border-default: var(--color-navy-200);
  --color-border-strong:  var(--color-navy-300);

  --color-text-primary:   var(--color-navy-900);
  --color-text-secondary: var(--color-navy-600);
  --color-text-muted:     var(--color-navy-500);
  --color-text-inverse:   #FFFFFF;
  --color-text-on-gold:   var(--color-navy-950); /* mandatory on gold-300/400/500 — white fails contrast */

  --color-brand-accent:  var(--color-gold-400);
  --color-brand-hover:   var(--color-gold-500);
  --color-brand-pressed: var(--color-gold-600);
  --color-focus-ring:    var(--color-gold-500);

  /* Chart series — fixed mapping, reused across every chart */
  --chart-series-1: var(--color-gold-400);    /* Personal */
  --chart-series-2: var(--color-navy-700);    /* Statistical */
  --chart-series-3: var(--color-info-solid);  /* Operational */
  --chart-series-4: var(--color-success-solid);
  --chart-series-5: var(--color-navy-400);
  --chart-series-6: var(--color-gold-700);

  /* Typography families */
  --font-display: 'EB Garamond', Georgia, 'Times New Roman', serif;
  --font-sans: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-mono: 'IBM Plex Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace;

  /* Type scale */
  --text-display-1: clamp(2.75rem, 2.1rem + 3.2vw, 5.5rem);
  --text-display-2: clamp(2.25rem, 1.9rem + 1.6vw, 3.5rem);
  --text-h1: 2rem;
  --text-h2: 1.5rem;
  --text-h3: 1.25rem;
  --text-h4: 1.0625rem;
  --text-body-lg: 1.0625rem;
  --text-body: 1rem;
  --text-body-sm: 0.875rem;
  --text-small: 0.8125rem;
  --text-xs: 0.75rem;
  --text-mono-base: 0.875rem;
  --text-mono-sm: 0.8125rem;
  --text-stat: clamp(1.75rem, 1.5rem + 1vw, 2.5rem);

  --leading-display-1: 1.05;
  --leading-display-2: 1.1;
  --leading-h1: 2.25rem;
  --leading-h2: 1.875rem;
  --leading-h3: 1.625rem;
  --leading-h4: 1.5rem;
  --leading-body: 1.5rem;
  --leading-body-sm: 1.375rem;
  --leading-small: 1.25rem;
  --leading-xs: 1.125rem;

  --tracking-display-1: -0.02em;
  --tracking-display-2: -0.015em;
  --tracking-h1: -0.015em;
  --tracking-h2: -0.01em;
  --tracking-h3: -0.005em;
  --tracking-small: 0.005em;
  --tracking-xs: 0.01em;

  /* Spacing — 4px base unit */
  --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;
  --space-20: 5rem;
  --space-24: 6rem;
  --space-32: 8rem;

  /* Layout */
  --container-marketing: 1200px;
  --container-marketing-narrow: 720px;
  --container-app-content-max: 1600px;
  --app-sidebar-width: 264px;
  --app-sidebar-width-collapsed: 72px;
  --app-header-height: 64px;

  /* Radius */
  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-xl: 16px;
  --radius-full: 9999px;

  /* Shadow — ink-tinted, never neutral black */
  --shadow-xs: 0 1px 2px rgba(15, 23, 42, 0.06);
  --shadow-sm: 0 2px 8px rgba(15, 23, 42, 0.10);
  --shadow-md: 0 4px 12px rgba(15, 23, 42, 0.10);
  --shadow-lg: 0 8px 24px rgba(15, 23, 42, 0.14);
  --shadow-modal: 0 20px 50px rgba(15, 23, 42, 0.25), 0 8px 16px rgba(15, 23, 42, 0.12);

  /* Motion */
  --ease-out-custom: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-out-soft: cubic-bezier(0.25, 0.46, 0.45, 0.94);
  --duration-instant: 100ms;
  --duration-fast: 150ms;
  --duration-base: 200ms;
  --duration-slow: 300ms;

  /* Z-index scale */
  --z-sticky: 10;
  --z-dropdown: 20;
  --z-header: 30;
  --z-overlay: 40;
  --z-modal: 50;
  --z-toast: 60;
}
