/*!
* Foundation26 - Colors (2-Layer Architecture)
* Copyright 2011-2025 by Atelier 26 AG
* 
* Hierarchy with CSS Layers:
* 1. color-base - Unchangeable Values
* 2. color-inverted - Inverted colors for [data-prefers-color="dark"]
* 3. color-normal - Normal colors (default, light mode, element modes)
* 
* Layer priority: color-inverted < color-normal
* color-normal always overrides color-inverted
*/

/* Define layer hierarchy */
@layer color-base, color-inverted, color-normal;

@layer color-base {
  /* Base Tokens - Unchangeable Values */
  :root {
    color-scheme: light;
    
    /* Absolute colors */
    --tw-black: #000000;
    --tw-white: #ffffff;
    --tw-transparent: transparent;
    --tw-saturation: 1;
    
    /* Semantic helpers */
    --bs-text-color-dark: var(--tw-text-900);
    --bs-text-color-light: var(--tw-text-25);


  }
}

/* ========================================================================
  LAYER: COLOR-INVERTED
   Inverted colors for Page Dark Mode - lowest priority
   ======================================================================== */

@layer color-inverted {
  [data-prefers-color="dark"] {
    color-scheme: dark;
    
    /* Inverted Text Scale */
    --bs-text-base: var(--tw-text-base);
    --bs-text-975: var(--tw-text-25); --bs-text-950: var(--tw-text-50); --bs-text-900: var(--tw-text-100); 
    --bs-text-800: var(--tw-text-200); --bs-text-700: var(--tw-text-300); --bs-text-600: var(--tw-text-400); 
    --bs-text-500: var(--tw-text-500); --bs-text-400: var(--tw-text-600); --bs-text-300: var(--tw-text-700); 
    --bs-text-200: var(--tw-text-800); --bs-text-100: var(--tw-text-900); --bs-text-50: var(--tw-text-950); 
    --bs-text-25: var(--tw-text-975);
    
    /* Inverted Primary Scale */
    --bs-primary-base: var(--tw-primary-base);
    --bs-primary-975: var(--tw-primary-25); --bs-primary-950: var(--tw-primary-50); --bs-primary-900: var(--tw-primary-100); 
    --bs-primary-800: var(--tw-primary-200); --bs-primary-700: var(--tw-primary-300); --bs-primary-600: var(--tw-primary-400); 
    --bs-primary-500: var(--tw-primary-500); --bs-primary-400: var(--tw-primary-600); --bs-primary-300: var(--tw-primary-700); 
    --bs-primary-200: var(--tw-primary-800); --bs-primary-100: var(--tw-primary-900); --bs-primary-50: var(--tw-primary-950); 
    --bs-primary-25: var(--tw-primary-975);
    
    /* Inverted Secondary Scale */
    --bs-secondary-base: var(--tw-secondary-base);
    --bs-secondary-975: var(--tw-secondary-25); --bs-secondary-950: var(--tw-secondary-50); --bs-secondary-900: var(--tw-secondary-100); 
    --bs-secondary-800: var(--tw-secondary-200); --bs-secondary-700: var(--tw-secondary-300); --bs-secondary-600: var(--tw-secondary-400); 
    --bs-secondary-500: var(--tw-secondary-500); --bs-secondary-400: var(--tw-secondary-600); --bs-secondary-300: var(--tw-secondary-700); 
    --bs-secondary-200: var(--tw-secondary-800); --bs-secondary-100: var(--tw-secondary-900); --bs-secondary-50: var(--tw-secondary-950); 
    --bs-secondary-25: var(--tw-secondary-975);
    
    /* Inverted Accent Scale */
    --bs-accent-base: var(--tw-accent-base);
    --bs-accent-975: var(--tw-accent-25); --bs-accent-950: var(--tw-accent-50); --bs-accent-900: var(--tw-accent-100); 
    --bs-accent-800: var(--tw-accent-200); --bs-accent-700: var(--tw-accent-300); --bs-accent-600: var(--tw-accent-400); 
    --bs-accent-500: var(--tw-accent-500); --bs-accent-400: var(--tw-accent-600); --bs-accent-300: var(--tw-accent-700); 
    --bs-accent-200: var(--tw-accent-800); --bs-accent-100: var(--tw-accent-900); --bs-accent-50: var(--tw-accent-950); 
    --bs-accent-25: var(--tw-accent-975);
    
    /* Inverted Surface Scale */
    --bs-surface-base: var(--tw-surface-base);
    --bs-surface-975: var(--tw-surface-25); --bs-surface-950: var(--tw-surface-50); --bs-surface-900: var(--tw-surface-100); 
    --bs-surface-800: var(--tw-surface-200); --bs-surface-700: var(--tw-surface-300); --bs-surface-600: var(--tw-surface-400); 
    --bs-surface-500: var(--tw-surface-500); --bs-surface-400: var(--tw-surface-600); --bs-surface-300: var(--tw-surface-700); 
    --bs-surface-200: var(--tw-surface-800); --bs-surface-100: var(--tw-surface-900); --bs-surface-50: var(--tw-surface-950); 
    --bs-surface-25: var(--tw-surface-975);
    
    /* Inverted Info Scale */
    --bs-info-base: var(--tw-info-base);
    --bs-info-975: var(--tw-info-25); --bs-info-950: var(--tw-info-50); --bs-info-900: var(--tw-info-100); 
    --bs-info-800: var(--tw-info-200); --bs-info-700: var(--tw-info-300); --bs-info-600: var(--tw-info-400); 
    --bs-info-500: var(--tw-info-500); --bs-info-400: var(--tw-info-600); --bs-info-300: var(--tw-info-700); 
    --bs-info-200: var(--tw-info-800); --bs-info-100: var(--tw-info-900); --bs-info-50: var(--tw-info-950); 
    --bs-info-25: var(--tw-info-975);
    
    /* Inverted Success Scale */
    --bs-success-base: var(--tw-success-base);
    --bs-success-975: var(--tw-success-25); --bs-success-950: var(--tw-success-50); --bs-success-900: var(--tw-success-100); 
    --bs-success-800: var(--tw-success-200); --bs-success-700: var(--tw-success-300); --bs-success-600: var(--tw-success-400); 
    --bs-success-500: var(--tw-success-500); --bs-success-400: var(--tw-success-600); --bs-success-300: var(--tw-success-700); 
    --bs-success-200: var(--tw-success-800); --bs-success-100: var(--tw-success-900); --bs-success-50: var(--tw-success-950); 
    --bs-success-25: var(--tw-success-975);
    
    /* Inverted Danger Scale */
    --bs-danger-base: var(--tw-danger-base);
    --bs-danger-975: var(--tw-danger-25); --bs-danger-950: var(--tw-danger-50); --bs-danger-900: var(--tw-danger-100); 
    --bs-danger-800: var(--tw-danger-200); --bs-danger-700: var(--tw-danger-300); --bs-danger-600: var(--tw-danger-400); 
    --bs-danger-500: var(--tw-danger-500); --bs-danger-400: var(--tw-danger-600); --bs-danger-300: var(--tw-danger-700); 
    --bs-danger-200: var(--tw-danger-800); --bs-danger-100: var(--tw-danger-900); --bs-danger-50: var(--tw-danger-950); 
    --bs-danger-25: var(--tw-danger-975);
    
    /* Inverted Warning Scale */
    --bs-warning-base: var(--tw-warning-base);
    --bs-warning-975: var(--tw-warning-25); --bs-warning-950: var(--tw-warning-50); --bs-warning-900: var(--tw-warning-100); 
    --bs-warning-800: var(--tw-warning-200); --bs-warning-700: var(--tw-warning-300); --bs-warning-600: var(--tw-warning-400); 
    --bs-warning-500: var(--tw-warning-500); --bs-warning-400: var(--tw-warning-600); --bs-warning-300: var(--tw-warning-700); 
    --bs-warning-200: var(--tw-warning-800); --bs-warning-100: var(--tw-warning-900); --bs-warning-50: var(--tw-warning-950); 
    --bs-warning-25: var(--tw-warning-975);
    
    /* Gradients */
    --bs-gradient-1: linear-gradient(180deg, var(--bs-surface-100) 0%, var(--bs-surface-25) 100%);
    --bs-gradient-2: linear-gradient(180deg, var(--bs-surface-300) 0%, var(--bs-surface-100) 100%);
    --bs-gradient-3: linear-gradient(180deg, var(--bs-surface-900) 0%, var(--bs-surface-975) 100%);
    --bs-gradient-4: linear-gradient(120deg, var(--bs-primary-400) 0%, var(--bs-primary-800) 100%);
    --bs-gradient-5: linear-gradient(120deg, var(--bs-secondary-400) 0%, var(--bs-secondary-800) 100%);
    --bs-gradient-6: linear-gradient(120deg, var(--bs-accent-400) 0%, var(--bs-accent-800) 100%);


    /* Inverted System Colors */
    --bs-overlay: var(--tw-white);
    --bs-body-color: var(--tw-text-25);
    --bs-body-bg: var(--tw-text-800);
    
    /* Customized Shadows */
    --bs-shadow-intensity-10: 0.75;
    --bs-shadow-intensity-5: 0.05;
  }

  /* Background Classes: Text colors inverted for Page Dark Mode */
  [data-prefers-color="dark"] {
    .bg-text-500, .bg-text-600, .bg-text-700, .bg-text-800, .bg-text-900, .bg-text-950, .bg-text-975,
    .bg-primary-500, .bg-primary-600, .bg-primary-700, .bg-primary-800, .bg-primary-900, .bg-primary-950, .bg-primary-975,
    .bg-secondary-500, .bg-secondary-600, .bg-secondary-700, .bg-secondary-800, .bg-secondary-900, .bg-secondary-950, .bg-secondary-975,
    .bg-accent-500, .bg-accent-600, .bg-accent-700, .bg-accent-800, .bg-accent-900, .bg-accent-950, .bg-accent-975,
    .bg-surface-500, .bg-surface-600, .bg-surface-700, .bg-surface-800, .bg-surface-900, .bg-surface-950, .bg-surface-975,
    .bg-info-500, .bg-info-600, .bg-info-700, .bg-info-800, .bg-info-900, .bg-info-950, .bg-info-975,
    .bg-success-500, .bg-success-600, .bg-success-700, .bg-success-800, .bg-success-900, .bg-success-950, .bg-success-975,
    .bg-warning-500, .bg-warning-600, .bg-warning-700, .bg-warning-800, .bg-warning-900, .bg-warning-950, .bg-warning-975,
    .bg-danger-500, .bg-danger-600, .bg-danger-700, .bg-danger-800, .bg-danger-900, .bg-danger-950, .bg-danger-975 {
      color: var(--bs-text-color-dark);
    }

    .bg-text-25, .bg-text-50, .bg-text-100, .bg-text-200, .bg-text-300, .bg-text-400,
    .bg-primary-25, .bg-primary-50, .bg-primary-100, .bg-primary-200, .bg-primary-300, .bg-primary-400,
    .bg-secondary-25, .bg-secondary-50, .bg-secondary-100, .bg-secondary-200, .bg-secondary-300, .bg-secondary-400,
    .bg-accent-25, .bg-accent-50, .bg-accent-100, .bg-accent-200, .bg-accent-300, .bg-accent-400,
    .bg-surface-25, .bg-surface-50, .bg-surface-100, .bg-surface-200, .bg-surface-300, .bg-surface-400,
    .bg-info-25, .bg-info-50, .bg-info-100, .bg-info-200, .bg-info-300, .bg-info-400,
    .bg-success-25, .bg-success-50, .bg-success-100, .bg-success-200, .bg-success-300, .bg-success-400,
    .bg-warning-25, .bg-warning-50, .bg-warning-100, .bg-warning-200, .bg-warning-300, .bg-warning-400,
    .bg-danger-25, .bg-danger-50, .bg-danger-100, .bg-danger-200, .bg-danger-300, .bg-danger-400 {
      color: var(--bs-text-color-light);
    }
  }
}

/* ========================================================================
  LAYER: COLOR-NORMAL
   Normal colors for Default, Light Mode, and Element Modes
   Overrides color-inverted layer
   ======================================================================== */

@layer color-normal {

  /* Normal color definitions for: Light Mode, Element Modes */
  :root:not([data-prefers-color="dark"]),
  [data-prefers-color="light"],
  [data-color-mode="light"],
  [data-color-mode="dark"] {
    /* Text Color Scale */
    --bs-text-base: var(--tw-text-base);
    --bs-text-975: var(--tw-text-975); --bs-text-950: var(--tw-text-950); --bs-text-900: var(--tw-text-900); 
    --bs-text-800: var(--tw-text-800); --bs-text-700: var(--tw-text-700); --bs-text-600: var(--tw-text-600); 
    --bs-text-500: var(--tw-text-500); --bs-text-400: var(--tw-text-400); --bs-text-300: var(--tw-text-300); 
    --bs-text-200: var(--tw-text-200); --bs-text-100: var(--tw-text-100); --bs-text-50: var(--tw-text-50); 
    --bs-text-25: var(--tw-text-25);
    
    /* Primary Color Scale */
    --bs-primary-base: var(--tw-primary-base);
    --bs-primary-975: var(--tw-primary-975); --bs-primary-950: var(--tw-primary-950); --bs-primary-900: var(--tw-primary-900); 
    --bs-primary-800: var(--tw-primary-800); --bs-primary-700: var(--tw-primary-700); --bs-primary-600: var(--tw-primary-600); 
    --bs-primary-500: var(--tw-primary-500); --bs-primary-400: var(--tw-primary-400); --bs-primary-300: var(--tw-primary-300); 
    --bs-primary-200: var(--tw-primary-200); --bs-primary-100: var(--tw-primary-100); --bs-primary-50: var(--tw-primary-50); 
    --bs-primary-25: var(--tw-primary-25);
    
    /* Secondary Color Scale */
    --bs-secondary-base: var(--tw-secondary-base);
    --bs-secondary-975: var(--tw-secondary-975); --bs-secondary-950: var(--tw-secondary-950); --bs-secondary-900: var(--tw-secondary-900); 
    --bs-secondary-800: var(--tw-secondary-800); --bs-secondary-700: var(--tw-secondary-700); --bs-secondary-600: var(--tw-secondary-600); 
    --bs-secondary-500: var(--tw-secondary-500); --bs-secondary-400: var(--tw-secondary-400); --bs-secondary-300: var(--tw-secondary-300); 
    --bs-secondary-200: var(--tw-secondary-200); --bs-secondary-100: var(--tw-secondary-100); --bs-secondary-50: var(--tw-secondary-50); 
    --bs-secondary-25: var(--tw-secondary-25);
    
    /* Accent Color Scale */
    --bs-accent-base: var(--tw-accent-base);
    --bs-accent-975: var(--tw-accent-975); --bs-accent-950: var(--tw-accent-950); --bs-accent-900: var(--tw-accent-900); 
    --bs-accent-800: var(--tw-accent-800); --bs-accent-700: var(--tw-accent-700); --bs-accent-600: var(--tw-accent-600); 
    --bs-accent-500: var(--tw-accent-500); --bs-accent-400: var(--tw-accent-400); --bs-accent-300: var(--tw-accent-300); 
    --bs-accent-200: var(--tw-accent-200); --bs-accent-100: var(--tw-accent-100); --bs-accent-50: var(--tw-accent-50); 
    --bs-accent-25: var(--tw-accent-25);
    
    /* Surface Color Scale */
    --bs-surface-base: var(--tw-surface-base);
    --bs-surface-975: var(--tw-surface-975); --bs-surface-950: var(--tw-surface-950); --bs-surface-900: var(--tw-surface-900); 
    --bs-surface-800: var(--tw-surface-800); --bs-surface-700: var(--tw-surface-700); --bs-surface-600: var(--tw-surface-600); 
    --bs-surface-500: var(--tw-surface-500); --bs-surface-400: var(--tw-surface-400); --bs-surface-300: var(--tw-surface-300); 
    --bs-surface-200: var(--tw-surface-200); --bs-surface-100: var(--tw-surface-100); --bs-surface-50: var(--tw-surface-50); 
    --bs-surface-25: var(--tw-surface-25);
    
    /* Info Color Scale */
    --bs-info-base: var(--tw-info-base);
    --bs-info-975: var(--tw-info-975); --bs-info-950: var(--tw-info-950); --bs-info-900: var(--tw-info-900); 
    --bs-info-800: var(--tw-info-800); --bs-info-700: var(--tw-info-700); --bs-info-600: var(--tw-info-600); 
    --bs-info-500: var(--tw-info-500); --bs-info-400: var(--tw-info-400); --bs-info-300: var(--tw-info-300); 
    --bs-info-200: var(--tw-info-200); --bs-info-100: var(--tw-info-100); --bs-info-50: var(--tw-info-50); 
    --bs-info-25: var(--tw-info-25);
    
    /* Success Color Scale */
    --bs-success-base: var(--tw-success-base);
    --bs-success-975: var(--tw-success-975); --bs-success-950: var(--tw-success-950); --bs-success-900: var(--tw-success-900); 
    --bs-success-800: var(--tw-success-800); --bs-success-700: var(--tw-success-700); --bs-success-600: var(--tw-success-600); 
    --bs-success-500: var(--tw-success-500); --bs-success-400: var(--tw-success-400); --bs-success-300: var(--tw-success-300); 
    --bs-success-200: var(--tw-success-200); --bs-success-100: var(--tw-success-100); --bs-success-50: var(--tw-success-50); 
    --bs-success-25: var(--tw-success-25);
    
    /* Danger Color Scale */
    --bs-danger-base: var(--tw-danger-base);
    --bs-danger-975: var(--tw-danger-975); --bs-danger-950: var(--tw-danger-950); --bs-danger-900: var(--tw-danger-900); 
    --bs-danger-800: var(--tw-danger-800); --bs-danger-700: var(--tw-danger-700); --bs-danger-600: var(--tw-danger-600); 
    --bs-danger-500: var(--tw-danger-500); --bs-danger-400: var(--tw-danger-400); --bs-danger-300: var(--tw-danger-300); 
    --bs-danger-200: var(--tw-danger-200); --bs-danger-100: var(--tw-danger-100); --bs-danger-50: var(--tw-danger-50); 
    --bs-danger-25: var(--tw-danger-25);
    
    /* Warning Color Scale */
    --bs-warning-base: var(--tw-warning-base);
    --bs-warning-975: var(--tw-warning-975); --bs-warning-950: var(--tw-warning-950); --bs-warning-900: var(--tw-warning-900); 
    --bs-warning-800: var(--tw-warning-800); --bs-warning-700: var(--tw-warning-700); --bs-warning-600: var(--tw-warning-600); 
    --bs-warning-500: var(--tw-warning-500); --bs-warning-400: var(--tw-warning-400); --bs-warning-300: var(--tw-warning-300); 
    --bs-warning-200: var(--tw-warning-200); --bs-warning-100: var(--tw-warning-100); --bs-warning-50: var(--tw-warning-50); 
    --bs-warning-25: var(--tw-warning-25);
    
    /* Gradients */
    --bs-gradient-1: linear-gradient(180deg, var(--bs-surface-100) 0%, var(--bs-surface-25) 100%);
    --bs-gradient-2: linear-gradient(180deg, var(--bs-surface-300) 0%, var(--bs-surface-100) 100%);
    --bs-gradient-3: linear-gradient(180deg, var(--bs-surface-900) 0%, var(--bs-surface-975) 100%);
    --bs-gradient-4: linear-gradient(120deg, var(--bs-primary-400) 0%, var(--bs-primary-800) 100%);
    --bs-gradient-5: linear-gradient(120deg, var(--bs-secondary-400) 0%, var(--bs-secondary-800) 100%);
    --bs-gradient-6: linear-gradient(120deg, var(--bs-accent-400) 0%, var(--bs-accent-800) 100%);

    /* System Colors */
    --bs-black: var(--tw-black);
    --bs-white: var(--tw-white);
    --bs-overlay: var(--tw-black);
    --bs-overlay-black: var(--tw-black);
    --bs-overlay-white: var(--tw-white);
    --bs-transparent: var(--tw-transparent);
    
    /* Body Defaults */
    --bs-body-color: var(--tw-text-900);
    --bs-body-bg: var(--tw-white);
    --bs-muted: var(--tw-text-400);
    --bs-text-muted: var(--tw-text-400);
    
    /* Shadows */
    --bs-shadow-intensity-10: 0.1;
    --bs-shadow-intensity-5: 0.05;
  }

  /* Element Mode: Light - specific properties */
  [data-color-mode="light"] {
    color-scheme: light;
    color: var(--tw-text-900);

  }

/* Element Mode: Dark - specific properties */
  [data-color-mode="dark"] {
    color-scheme: dark;
    color: var(--tw-text-25);
    --bs-body-color: var(--tw-text-25);
    --bs-body-bg: var(--tw-text-800);
  }

/* Background Classes: Standard text colours (for all except Page Dark Mode) */
  [data-prefers-color="light"],
  [data-color-mode="light"],
  [data-color-mode="dark"] {
    .bg-text-500, .bg-text-600, .bg-text-700, .bg-text-800, .bg-text-900, .bg-text-950, .bg-text-975,
    .bg-primary-500, .bg-primary-600, .bg-primary-700, .bg-primary-800, .bg-primary-900, .bg-primary-950, .bg-primary-975,
    .bg-secondary-500, .bg-secondary-600, .bg-secondary-700, .bg-secondary-800, .bg-secondary-900, .bg-secondary-950, .bg-secondary-975,
    .bg-accent-500, .bg-accent-600, .bg-accent-700, .bg-accent-800, .bg-accent-900, .bg-accent-950, .bg-accent-975,
    .bg-surface-500, .bg-surface-600, .bg-surface-700, .bg-surface-800, .bg-surface-900, .bg-surface-950, .bg-surface-975,
    .bg-info-500, .bg-info-600, .bg-info-700, .bg-info-800, .bg-info-900, .bg-info-950, .bg-info-975,
    .bg-success-500, .bg-success-600, .bg-success-700, .bg-success-800, .bg-success-900, .bg-success-950, .bg-success-975,
    .bg-warning-500, .bg-warning-600, .bg-warning-700, .bg-warning-800, .bg-warning-900, .bg-warning-950, .bg-warning-975,
    .bg-danger-500, .bg-danger-600, .bg-danger-700, .bg-danger-800, .bg-danger-900, .bg-danger-950, .bg-danger-975 {
      color: var(--bs-text-color-light) !important;
    }

    .bg-text-25, .bg-text-50, .bg-text-100, .bg-text-200, .bg-text-300, .bg-text-400,
    .bg-primary-25, .bg-primary-50, .bg-primary-100, .bg-primary-200, .bg-primary-300, .bg-primary-400,
    .bg-secondary-25, .bg-secondary-50, .bg-secondary-100, .bg-secondary-200, .bg-secondary-300, .bg-secondary-400,
    .bg-accent-25, .bg-accent-50, .bg-accent-100, .bg-accent-200, .bg-accent-300, .bg-accent-400,
    .bg-surface-25, .bg-surface-50, .bg-surface-100, .bg-surface-200, .bg-surface-300, .bg-surface-400,
    .bg-info-25, .bg-info-50, .bg-info-100, .bg-info-200, .bg-info-300, .bg-info-400,
    .bg-success-25, .bg-success-50, .bg-success-100, .bg-success-200, .bg-success-300, .bg-success-400,
    .bg-warning-25, .bg-warning-50, .bg-warning-100, .bg-warning-200, .bg-warning-300, .bg-warning-400,
    .bg-danger-25, .bg-danger-50, .bg-danger-100, .bg-danger-200, .bg-danger-300, .bg-danger-400 {
      color: var(--bs-text-color-dark) !important;
    }
  }
}