$colors: (
    primary: (
        "50": #E4F1FF,
        "100": #BFDCFF,
        "200": #95C7FF,
        "300": #6BB1FF,
        "400": #519FFF,
        "500": #458EFF,
        "600": #487FFF, // main theme color
        "700": #486CEA,
        "800": #4759D6,
        "900": #4536B6
    ),
    neutral: (
        "50": #F5F6FA,
        "100": #F3F4F6,
        "200": #EBECEF,
        "300": #D1D5DB,
        "400": #9CA3AF,
        "500": #6B7280,
        "600": #4B5563,
        "700": #374151,
        "800": #1F2937,
        "900": #111827
    ),
    danger: (
        "50": #FEF2F2,
        "100": #FEE2E2,
        "200": #FECACA,
        "300": #FCA5A5,
        "400": #F87171,
        "500": #EF4444,
        "600": #DC2626,
        "700": #B91C1C,
        "800": #991B1B,
        "900": #7F1D1D
    ),
    success: (
        "50": #F0FDF4,
        "100": #DCFCE7,
        "200": #BBF7D0,
        "300": #86EFAC,
        "400": #4ADE80,
        "500": #22C55E,
        "600": #16A34A,
        "700": #15803D,
        "800": #166534,
        "900": #14532D
    ),
    warning: (
        "50": #FEFCE8,
        "100": #FEF9C3,
        "200": #FEF08A,
        "300": #FDE047,
        "400": #FACC15,
        "500": #EAB308,
        "600": #FF9F29,
        "700": #f39016,
        "800": #e58209,
        "900": #d77907
    ),
    info: (
        "50": #EFF6FF,
        "100": #DBEAFE,
        "200": #BFDBFE,
        "300": #93C5FD,
        "400": #60A5FA,
        "500": #3B82F6,
        "600": #2563EB,
        "700": #1D4ED8,
        "800": #1E40AF,
        "900": #1E3A8A
    ),
    dark: (
        "1": #1B2431,
        "2": #273142,
        "3": #323D4E,
    ),
    lilac: (
        "50": #f0e1ff,
        "100": #EBD7FF,
        "600": #8252E9,
        "700": #6f37e6,
        "800": #601eef,
    ),
    light: (
        "50": #F5F6FA,
        "100": #F3F4F6,
        "600": #E4F1FF,
        "700": #374151,
        "800": #1F2937,
    ),
);

$neutral-dark: (
    "50": #1B2431,
    "100": #273142,
    "200": #323D4E,
    "300": #4B5563,
    "400": #6B7280,
    "500": #9CA3AF,
    "600": #D1D5DB,
    "700": #EBECEF,
    "800": #F3F4F6,
    "900": #F5F6FA
);

$semantic-colors: (
    success: (
        "main": #45B369,
        "surface": #DAF0E1,
        "border": #B5E1C3,
        "hover": #009F5E,
        "pressed": #006038,
        "focus": #45b36926,
    ),
    info: (
        "main": #144BD6,
        "surface": #E7EEFC,
        "border": #AECAFC,
        "hover": #0A51CE,
        "pressed": #06307C,
        "focus": #144bd626
    ),
    warning: (
        "main": #FF9F29,
        "surface": #FFF9E2,
        "border": #FFEBA6,
        "hover": #D69705,
        "pressed": #C28800,
        "focus": #ffc02d26
    ),
    danger: (
        "main": #EF4A00,
        "surface": #FCDAE2,
        "border": #F9B5C6,
        "hover": #D53128,
        "pressed": #801D18,
        "focus": #ef477026
    )
);

$extra-colors: (
    "cyan": "#00B8F2",
    "indigo": "#7F27FF",
    "purple": "#8252E9",
    "red": "#E30A0A",
    "yellow": "#F4941E",
    "orange": "#F86624",
    "pink": "#DE3ACE",
);


$bg-light-colors: (
    "primary-light": "rgba(72, 127, 255, 0.15)",
    "yellow-light": "rgba(255, 159, 41, 0.15)",
    "purple-light": "rgba(130, 82, 233, 0.15)",
    "pink-light": "rgba(250, 54, 230, 0.15)",
);

$border-light-colors: (
    "primary-light-white": "rgba(72, 127, 255, 0.25)",
    "yellow-light-white": "rgba(255, 159, 41, 0.25)",
    "purple-light-white": "rgba(132, 90, 223, 0.25)",
    "pink-light-white": "rgba(250, 54, 230, 0.25)",
);


$spaces: (
    "2": #{rem(2px)},
    "4": #{rem(4px)},
    "6": #{rem(6px)},
    "8": #{rem(8px)},
    "9": #{rem(9px)},
    "10": #{rem(10px)},
    "11": #{rem(11px)},
    "12": #{rem(12px)},
    "13": #{rem(13px)},
    "16": #{rem(16px)},
    "20": #{rem(20px)},
    "24": #{rem(24px)},
    "28": #{rem(24px)},
    "32": #{rem(32px)},
    "36": #{rem(32px)},
    "40": #{rem(40px)},
    "44": #{rem(44px)},
    "48": #{rem(48px)},
    "50": #{rem(50px)},
    "56": #{rem(56px)},
    "60": #{rem(60px)},
    "64": #{rem(64px)},
    "72": #{rem(72px)},
    "76": #{rem(76px)},
    "80": #{rem(80px)},
    "90": #{rem(90px)},
    "110": #{rem(110px)},
    "120": #{rem(120px)},
    "144": #{rem(144px)},
    "160": #{rem(160px)},
    "170": #{rem(170px)},
    "190": #{rem(190px)},
    "200": #{rem(200px)},
    "240": #{rem(240px)},
    "440": #{rem(440px)},
);

$shadows: (
    "1": 0 4px 60px 0 rgba(#04060F, 0.8),
    "2": 0 4px 60px 0 rgba(#04060F, 0.5),
    "3": 0 20px 100px 0 rgba(#04060F, 0.8),
    "4": 4px 8px 24px 0 rgba(#B6B6B6, 0.20),
    "5": 4px 12px 32px 0 rgba(#00A99E, 0.10),
    "6": 4px 16px 32px 0 rgba(#00A99E, 0.10)
);

$font-sizes: (
    "2xxl": #{rem(32px)},
    "2xl": #{rem(28px)},
    "xxl": #{rem(24px)},
    "xl": #{rem(20px)},
    "lg": #{rem(18px)},
    "md": #{rem(16px)},
    "sm": #{rem(14px)},
    "xs": #{rem(12px)},
    "xxs": #{rem(10px)}
);

:root {
    // Font Family
    --default-font: ;

    // font sizes
    --h1: clamp(2rem, 1.2rem + 4vw, 4.5rem); //72px > 32px
    --h2: clamp(1.75rem, 1.11rem + 3.2vw, 3.75rem); //60px > 28px
    --h3: clamp(1.5rem, 1.02rem + 2.4vw, 3rem); //48px > 24px
    --h4: clamp(1.375rem, 1.095rem + 1.4vw, 2.25rem); //36px > 22px
    --h5: clamp(1.25rem, 1.05rem + 1vw, 1.875rem); //30px > 20px
    --h6: clamp(1.125rem, 1.005rem + 0.6vw, 1.5rem); //24px > 18px

    // spacing
    @each $property, $value in $spaces {
        --size-#{$property}: #{$value};
    }

    // Border Radius
    @each $property, $value in $spaces {
        --rounded-#{$property}: #{$value};
    }

    // shadows
    @each $property, $value in $shadows {
        --shadow-#{$property}: #{$value};
    }

    // font sizes
    @each $property, $value in $font-sizes {
        --font-#{$property}: #{$value};
    }

    // colors
    @each $color, $shades in $colors {
        @each $shade, $value in $shades {
            --#{$color}-#{$shade}: #{$value};
        }
    }

    @each $color, $shades in $semantic-colors {
        @each $shade, $value in $shades {
            --#{$color}-#{$shade}: #{$value};
        }
    }

    // extra colors
    @each $property, $value in $extra-colors {
        --#{$property}: #{$value};
    }

    // bg light colors
    @each $property, $value in $bg-light-colors {
        --#{$property}: #{$value};
    }

    // border light colors
    @each $property, $value in $border-light-colors {
        --#{$property}: #{$value};
    }

    // Design Token variables
    --base: #fff;
    --brand: var(--primary-600);
    --button-secondary: var(--primary-50);
    --black: var(--dark-2);
    --white: var(--base);
    --bg-color: var(--neutral-50);
    --text-primary-light: var(--neutral-900);
    --text-secondary-light: var(--neutral-600);
    --text-secondary-dark: var(--neutral-300);

    --input-form-light: var(--neutral-300);
    --input-form-dark: var(--neutral-500);
    --input-bg: var(--neutral-50);
    --input-stroke: var(--neutral-300);

    --border-color: #d1d5db80;
}

[data-theme="dark"] {
    // Design Token variables
    --button-secondary: var(--neutral-300);
    --black: var(--base);
    --white: var(--dark-2);
    --bg-color: var(--dark-1);
    --text-primary-light: var(--base);
    --text-secondary-light: #D1D5DB;
    --text-secondary-dark: var(--dark-2);

    --input-form-light: #6B7280;
    --input-form-dark: #D1D5DB;
    --input-bg: var(--dark-3);
    --input-stroke: #F3F4F6;

    --primary-50: #e4f1ff0f;
    --info-50: #EFF6FF0f;
    --warning-50: #FEFCE80f;
    --success-50: #F0FDF40f;
    --danger-50: #FEF2F20f;
    --lilac-100: #EBD7FF0f;
    --success-100: #DCFCE70f;
    --danger-100: rgba(239, 71, 112, 0.1490196078);

    --border-color: #d1d5db33;

    @each $shade, $value in $neutral-dark {
        --neutral-#{$shade}: #{$value};
    }
}
