/**
 * Material Design 3 Design Tokens
 * Conforming strictly to MD3 specifications (Google I/O 2024-2026 updates)
 */

:root {
  /* ==========================================================================
     Typography Tokens
     ========================================================================== */
  --md-ref-typeface-brand: 'Roboto Flex', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --md-ref-typeface-plain: 'Roboto Flex', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --md-ref-typeface-code: 'JetBrains Mono', 'Fira Code', 'Roboto Mono', monospace;

  /* Display */
  --md-sys-typescale-display-large: 400 3.5625rem/4rem var(--md-ref-typeface-brand);
  --md-sys-typescale-display-medium: 400 2.8125rem/3.25rem var(--md-ref-typeface-brand);
  --md-sys-typescale-display-small: 400 2.25rem/2.75rem var(--md-ref-typeface-brand);

  /* Headline */
  --md-sys-typescale-headline-large: 400 2rem/2.5rem var(--md-ref-typeface-brand);
  --md-sys-typescale-headline-medium: 400 1.75rem/2.25rem var(--md-ref-typeface-brand);
  --md-sys-typescale-headline-small: 400 1.5rem/2rem var(--md-ref-typeface-brand);

  /* Title */
  --md-sys-typescale-title-large: 400 1.375rem/1.75rem var(--md-ref-typeface-brand);
  --md-sys-typescale-title-medium: 500 1rem/1.5rem var(--md-ref-typeface-plain);
  --md-sys-typescale-title-small: 500 0.875rem/1.25rem var(--md-ref-typeface-plain);

  /* Body */
  --md-sys-typescale-body-large: 400 1rem/1.5rem var(--md-ref-typeface-plain);
  --md-sys-typescale-body-medium: 400 0.875rem/1.25rem var(--md-ref-typeface-plain);
  --md-sys-typescale-body-small: 400 0.75rem/1rem var(--md-ref-typeface-plain);

  /* Label */
  --md-sys-typescale-label-large: 500 0.875rem/1.25rem var(--md-ref-typeface-plain);
  --md-sys-typescale-label-medium: 500 0.75rem/1rem var(--md-ref-typeface-plain);
  --md-sys-typescale-label-small: 500 0.6875rem/1rem var(--md-ref-typeface-plain);

  /* Code */
  --md-sys-typescale-code-large: 400 0.9375rem/1.5rem var(--md-ref-typeface-code);
  --md-sys-typescale-code-medium: 400 0.8125rem/1.35rem var(--md-ref-typeface-code);

  /* ==========================================================================
     Shape Tokens
     ========================================================================== */
  --md-sys-shape-corner-none: 0px;
  --md-sys-shape-corner-extra-small: 4px;
  --md-sys-shape-corner-small: 8px;
  --md-sys-shape-corner-medium: 12px;
  --md-sys-shape-corner-large: 16px;
  --md-sys-shape-corner-large-increased: 20px;
  --md-sys-shape-corner-extra-large: 28px;
  --md-sys-shape-corner-extra-extra-large: 36px;
  --md-sys-shape-corner-full: 9999px;

  /* ==========================================================================
     Motion & Animation Tokens
     ========================================================================== */
  --md-sys-motion-easing-emphasized: cubic-bezier(0.2, 0, 0, 1);
  --md-sys-motion-easing-emphasized-decelerate: cubic-bezier(0.05, 0.7, 0.1, 1);
  --md-sys-motion-easing-emphasized-accelerate: cubic-bezier(0.3, 0, 0.8, 0.15);
  --md-sys-motion-easing-standard: cubic-bezier(0.2, 0, 0, 1);
  --md-sys-motion-easing-standard-decelerate: cubic-bezier(0, 0, 0, 1);
  --md-sys-motion-easing-standard-accelerate: cubic-bezier(0.3, 0, 1, 1);

  --md-sys-motion-duration-short1: 50ms;
  --md-sys-motion-duration-short2: 100ms;
  --md-sys-motion-duration-short3: 150ms;
  --md-sys-motion-duration-short4: 200ms;
  --md-sys-motion-duration-medium1: 250ms;
  --md-sys-motion-duration-medium2: 300ms;
  --md-sys-motion-duration-medium3: 350ms;
  --md-sys-motion-duration-medium4: 400ms;
  --md-sys-motion-duration-long1: 450ms;
  --md-sys-motion-duration-long2: 500ms;

  /* Default Seed Theme: Material Deep Purple */
  --md-sys-color-primary: #6750A4;
  --md-sys-color-on-primary: #FFFFFF;
  --md-sys-color-primary-container: #EADDFF;
  --md-sys-color-on-primary-container: #21005D;
  --md-sys-color-secondary: #625B71;
  --md-sys-color-on-secondary: #FFFFFF;
  --md-sys-color-secondary-container: #E8DEF8;
  --md-sys-color-on-secondary-container: #1D192B;
  --md-sys-color-tertiary: #7D5260;
  --md-sys-color-on-tertiary: #FFFFFF;
  --md-sys-color-tertiary-container: #FFD8E4;
  --md-sys-color-on-tertiary-container: #31111D;
  --md-sys-color-error: #BA1A1A;
  --md-sys-color-on-error: #FFFFFF;
  --md-sys-color-error-container: #FFDAD6;
  --md-sys-color-on-error-container: #410002;
  
  --md-sys-color-surface: #FEF7FF;
  --md-sys-color-on-surface: #1D1B20;
  --md-sys-color-on-surface-variant: #49454F;
  --md-sys-color-surface-container-lowest: #FFFFFF;
  --md-sys-color-surface-container-low: #F7F2FA;
  --md-sys-color-surface-container: #F3EDF7;
  --md-sys-color-surface-container-high: #ECE6F0;
  --md-sys-color-surface-container-highest: #E6E0E9;
  --md-sys-color-surface-dim: #DED8E1;
  --md-sys-color-surface-bright: #FEF7FF;
  --md-sys-color-surface-tint: #6750A4;

  --md-sys-color-outline: #79747E;
  --md-sys-color-outline-variant: #CAC4D0;
  --md-sys-color-inverse-surface: #322F35;
  --md-sys-color-inverse-on-surface: #F5EFF7;
  --md-sys-color-inverse-primary: #D0BCFF;
  --md-sys-color-scrim: #000000;
  --md-sys-color-shadow: #000000;

  /* State overlays */
  --md-sys-state-hover-opacity: 0.08;
  --md-sys-state-focus-opacity: 0.12;
  --md-sys-state-pressed-opacity: 0.12;
  --md-sys-state-dragged-opacity: 0.16;

  /* Code block colors */
  --code-bg: #1A1A24;
  --code-fg: #E2E1EC;
  --code-border: #353342;
  --code-keyword: #CFBCFF;
  --code-string: #A8DAB5;
  --code-function: #ADC6FF;
  --code-comment: #8E8A99;
  --code-number: #FFB4AB;
  --code-annotation: #FFD8E4;
}

/* ==========================================================================
   Dark Color Scheme
   ========================================================================== */
[data-theme="dark"] {
  --md-sys-color-primary: #D0BCFF;
  --md-sys-color-on-primary: #381E72;
  --md-sys-color-primary-container: #4F378B;
  --md-sys-color-on-primary-container: #EADDFF;
  --md-sys-color-secondary: #CCC2DC;
  --md-sys-color-on-secondary: #332D41;
  --md-sys-color-secondary-container: #4A4458;
  --md-sys-color-on-secondary-container: #E8DEF8;
  --md-sys-color-tertiary: #EFB8C8;
  --md-sys-color-on-tertiary: #492532;
  --md-sys-color-tertiary-container: #633B48;
  --md-sys-color-on-tertiary-container: #FFD8E4;
  --md-sys-color-error: #FFB4AB;
  --md-sys-color-on-error: #690005;
  --md-sys-color-error-container: #93000A;
  --md-sys-color-on-error-container: #FFDAD6;

  --md-sys-color-surface: #141218;
  --md-sys-color-on-surface: #E6E0E9;
  --md-sys-color-on-surface-variant: #CAC4D0;
  --md-sys-color-surface-container-lowest: #0F0D13;
  --md-sys-color-surface-container-low: #1D1B20;
  --md-sys-color-surface-container: #211F26;
  --md-sys-color-surface-container-high: #2B2930;
  --md-sys-color-surface-container-highest: #36343B;
  --md-sys-color-surface-dim: #141218;
  --md-sys-color-surface-bright: #3B383E;
  --md-sys-color-surface-tint: #D0BCFF;

  --md-sys-color-outline: #938F99;
  --md-sys-color-outline-variant: #49454F;
  --md-sys-color-inverse-surface: #E6E0E9;
  --md-sys-color-inverse-on-surface: #322F35;
  --md-sys-color-inverse-primary: #6750A4;

  --code-bg: #100F14;
  --code-fg: #E6E0E9;
  --code-border: #2B2930;
}

/* System Dark Mode (when not overridden by user attribute) */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --md-sys-color-primary: #D0BCFF;
    --md-sys-color-on-primary: #381E72;
    --md-sys-color-primary-container: #4F378B;
    --md-sys-color-on-primary-container: #EADDFF;
    --md-sys-color-secondary: #CCC2DC;
    --md-sys-color-on-secondary: #332D41;
    --md-sys-color-secondary-container: #4A4458;
    --md-sys-color-on-secondary-container: #E8DEF8;
    --md-sys-color-tertiary: #EFB8C8;
    --md-sys-color-on-tertiary: #492532;
    --md-sys-color-tertiary-container: #633B48;
    --md-sys-color-on-tertiary-container: #FFD8E4;
    --md-sys-color-error: #FFB4AB;
    --md-sys-color-on-error: #690005;
    --md-sys-color-error-container: #93000A;
    --md-sys-color-on-error-container: #FFDAD6;

    --md-sys-color-surface: #141218;
    --md-sys-color-on-surface: #E6E0E9;
    --md-sys-color-on-surface-variant: #CAC4D0;
    --md-sys-color-surface-container-lowest: #0F0D13;
    --md-sys-color-surface-container-low: #1D1B20;
    --md-sys-color-surface-container: #211F26;
    --md-sys-color-surface-container-high: #2B2930;
    --md-sys-color-surface-container-highest: #36343B;
    --md-sys-color-surface-dim: #141218;
    --md-sys-color-surface-bright: #3B383E;
    --md-sys-color-surface-tint: #D0BCFF;

    --md-sys-color-outline: #938F99;
    --md-sys-color-outline-variant: #49454F;
    --md-sys-color-inverse-surface: #E6E0E9;
    --md-sys-color-inverse-on-surface: #322F35;
    --md-sys-color-inverse-primary: #6750A4;

    --code-bg: #100F14;
    --code-fg: #E6E0E9;
    --code-border: #2B2930;
  }
}

/* ==========================================================================
   Alternative Seed Color Palettes (Dynamic Color Palettes)
   ========================================================================== */

/* Blue Seed (Indigo / Tech) */
[data-palette="blue"] {
  --md-sys-color-primary: #0061A4;
  --md-sys-color-on-primary: #FFFFFF;
  --md-sys-color-primary-container: #D1E4FF;
  --md-sys-color-on-primary-container: #001D36;
  --md-sys-color-secondary: #535F70;
  --md-sys-color-secondary-container: #D7E3F7;
  --md-sys-color-surface-tint: #0061A4;
}
[data-palette="blue"][data-theme="dark"] {
  --md-sys-color-primary: #9ECAFF;
  --md-sys-color-on-primary: #003258;
  --md-sys-color-primary-container: #00497D;
  --md-sys-color-on-primary-container: #D1E4FF;
  --md-sys-color-secondary: #BBC7DB;
  --md-sys-color-secondary-container: #3B4858;
  --md-sys-color-surface-tint: #9ECAFF;
}
@media (prefers-color-scheme: dark) {
  [data-palette="blue"]:not([data-theme="light"]) {
    --md-sys-color-primary: #9ECAFF;
    --md-sys-color-on-primary: #003258;
    --md-sys-color-primary-container: #00497D;
    --md-sys-color-on-primary-container: #D1E4FF;
    --md-sys-color-secondary: #BBC7DB;
    --md-sys-color-secondary-container: #3B4858;
    --md-sys-color-surface-tint: #9ECAFF;
  }
}

/* Emerald Seed (Green / Nature) */
[data-palette="emerald"] {
  --md-sys-color-primary: #006D44;
  --md-sys-color-on-primary: #FFFFFF;
  --md-sys-color-primary-container: #90F7BE;
  --md-sys-color-on-primary-container: #002111;
  --md-sys-color-secondary: #4F6354;
  --md-sys-color-secondary-container: #D1E8D5;
  --md-sys-color-surface-tint: #006D44;
}
[data-palette="emerald"][data-theme="dark"] {
  --md-sys-color-primary: #73DAA3;
  --md-sys-color-on-primary: #003921;
  --md-sys-color-primary-container: #005232;
  --md-sys-color-on-primary-container: #90F7BE;
  --md-sys-color-secondary: #B6CCBA;
  --md-sys-color-secondary-container: #374B3D;
  --md-sys-color-surface-tint: #73DAA3;
}
@media (prefers-color-scheme: dark) {
  [data-palette="emerald"]:not([data-theme="light"]) {
    --md-sys-color-primary: #73DAA3;
    --md-sys-color-on-primary: #003921;
    --md-sys-color-primary-container: #005232;
    --md-sys-color-on-primary-container: #90F7BE;
    --md-sys-color-secondary: #B6CCBA;
    --md-sys-color-secondary-container: #374B3D;
    --md-sys-color-surface-tint: #73DAA3;
  }
}

/* Amber / Orange Seed (Warm / Expressive) */
[data-palette="amber"] {
  --md-sys-color-primary: #875200;
  --md-sys-color-on-primary: #FFFFFF;
  --md-sys-color-primary-container: #FFDDB8;
  --md-sys-color-on-primary-container: #2B1700;
  --md-sys-color-secondary: #715A41;
  --md-sys-color-secondary-container: #FDDDBD;
  --md-sys-color-surface-tint: #875200;
}
[data-palette="amber"][data-theme="dark"] {
  --md-sys-color-primary: #FFB86F;
  --md-sys-color-on-primary: #482900;
  --md-sys-color-primary-container: #663D00;
  --md-sys-color-on-primary-container: #FFDDB8;
  --md-sys-color-secondary: #DFBFA8;
  --md-sys-color-secondary-container: #58432B;
  --md-sys-color-surface-tint: #FFB86F;
}
@media (prefers-color-scheme: dark) {
  [data-palette="amber"]:not([data-theme="light"]) {
    --md-sys-color-primary: #FFB86F;
    --md-sys-color-on-primary: #482900;
    --md-sys-color-primary-container: #663D00;
    --md-sys-color-on-primary-container: #FFDDB8;
    --md-sys-color-secondary: #DFBFA8;
    --md-sys-color-secondary-container: #58432B;
    --md-sys-color-surface-tint: #FFB86F;
  }
}
