:root {
    /* === Base Colors === */
    --color-white: #ffffff;
    --color-black: #000000;

    /* === Gray Scale === */
    --gray-25: #fdfdfd;
    --gray-50: #fafafa;
    --gray-100: #f5f5f5;
    --gray-200: #e4eaeb;
    --gray-300: #d5d7da;
    --gray-400: #a3a7ae;
    --gray-500: #717680;
    --gray-600: #535b62;
    --gray-700: #414651;
    --gray-800: #2b353f;
    --gray-900: #181d27;
    --gray-950: #0a0c12;

    /* === Brand (Primary Blue Scale) === */
    --brand-25: #f5f8ff;
    --brand-50: #eff2ff;
    --brand-100: #e1e8ff;
    --brand-200: #c7d1ff;
    --brand-300: #a3b6ff;
    --brand-400: #7f9cff;
    --brand-500: #5c82ff;
    --brand-600: #3a63f7; /* main brand color */
    --brand-700: #2c50d4;
    --brand-800: #1c3cb3;
    --brand-900: #0d2b93;
    --brand-950: #062169;

    /* === Success Green Scale === */
    --success-25: #e7fef3;
    --success-50: #cdf7dd;
    --success-100: #a0e6c6;
    --success-200: #6fdfb5;
    --success-300: #47d7a7;
    --success-400: #20c997;
    --success-500: #10b981; /* main success */
    --success-600: #0eac74;
    --success-700: #0a8e5e;
    --success-800: #066e48;
    --success-900: #025232;
    --success-950: #013323;

    /* === Warning Yellow Scale === */
    --warning-25: #fff9ed;
    --warning-50: #fff2db;
    --warning-100: #ffe0b5;
    --warning-200: #ffd089;
    --warning-300: #ffc048;
    --warning-400: #fbbf24;
    --warning-500: #f59e0b; /* main warning */
    --warning-600: #d97706;
    --warning-700: #b45309;
    --warning-800: #92400e;
    --warning-900: #78350f;
    --warning-950: #451a03;

    /* === Danger Red Scale === */
    --danger-25: #fef2f2;
    --danger-50: #fde6e6;
    --danger-100: #fbc8c8;
    --danger-200: #f79b9b;
    --danger-300: #f26d6d;
    --danger-400: #ef4444;
    --danger-500: #e02424; /* main danger */
    --danger-600: #dc2626;
    --danger-700: #b91c1c;
    --danger-800: #991b1b;
    --danger-900: #7f1d1d;
    --danger-950: #450a0a;

    /* === Text Colors === */
    --text-muted: var(--gray-400);
    --text-body: var(--gray-600);
    --text-dark: var(--gray-800);
    --text-inverted: var(--color-white);

    /* === Backgrounds === */
    --bg-default: var(--gray-25);
    --bg-surface: var(--gray-50);
    --bg-subtle: var(--gray-100);
    --bg-inverted: var(--gray-900);
}

/* === Text Colors Generated from Root Variables === */

/* Base Colors */
.text-white {
    color: var(--color-white);
}
.text-black {
    color: var(--color-black);
}

/* Gray Scale */
.text-gray-25 {
    color: var(--gray-25);
}
.text-gray-50 {
    color: var(--gray-50);
}
.text-gray-100 {
    color: var(--gray-100);
}
.text-gray-200 {
    color: var(--gray-200);
}
.text-gray-300 {
    color: var(--gray-300);
}
.text-gray-400 {
    color: var(--gray-400);
}
.text-gray-500 {
    color: var(--gray-500);
}
.text-gray-600 {
    color: var(--gray-600);
}
.text-gray-700 {
    color: var(--gray-700);
}
.text-gray-800 {
    color: var(--gray-800);
}
.text-gray-900 {
    color: var(--gray-900);
}
.text-gray-950 {
    color: var(--gray-950);
}

/* Brand Colors */
.text-brand-25 {
    color: var(--brand-25);
}
.text-brand-50 {
    color: var(--brand-50);
}
.text-brand-100 {
    color: var(--brand-100);
}
.text-brand-200 {
    color: var(--brand-200);
}
.text-brand-300 {
    color: var(--brand-300);
}
.text-brand-400 {
    color: var(--brand-400);
}
.text-brand-500 {
    color: var(--brand-500);
}
.text-brand-600 {
    color: var(--brand-600);
}
.text-brand-700 {
    color: var(--brand-700);
}
.text-brand-800 {
    color: var(--brand-800);
}
.text-brand-900 {
    color: var(--brand-900);
}
.text-brand-950 {
    color: var(--brand-950);
}

/* Success Colors */
.text-success-25 {
    color: var(--success-25);
}
.text-success-50 {
    color: var(--success-50);
}
.text-success-100 {
    color: var(--success-100);
}
.text-success-200 {
    color: var(--success-200);
}
.text-success-300 {
    color: var(--success-300);
}
.text-success-400 {
    color: var(--success-400);
}
.text-success-500 {
    color: var(--success-500);
}
.text-success-600 {
    color: var(--success-600);
}
.text-success-700 {
    color: var(--success-700);
}
.text-success-800 {
    color: var(--success-800);
}
.text-success-900 {
    color: var(--success-900);
}
.text-success-950 {
    color: var(--success-950);
}

/* Warning Colors */
.text-warning-25 {
    color: var(--warning-25);
}
.text-warning-50 {
    color: var(--warning-50);
}
.text-warning-100 {
    color: var(--warning-100);
}
.text-warning-200 {
    color: var(--warning-200);
}
.text-warning-300 {
    color: var(--warning-300);
}
.text-warning-400 {
    color: var(--warning-400);
}
.text-warning-500 {
    color: var(--warning-500);
}
.text-warning-600 {
    color: var(--warning-600);
}
.text-warning-700 {
    color: var(--warning-700);
}
.text-warning-800 {
    color: var(--warning-800);
}
.text-warning-900 {
    color: var(--warning-900);
}
.text-warning-950 {
    color: var(--warning-950);
}

/* Danger Colors */
.text-danger-25 {
    color: var(--danger-25);
}
.text-danger-50 {
    color: var(--danger-50);
}
.text-danger-100 {
    color: var(--danger-100);
}
.text-danger-200 {
    color: var(--danger-200);
}
.text-danger-300 {
    color: var(--danger-300);
}
.text-danger-400 {
    color: var(--danger-400);
}
.text-danger-500 {
    color: var(--danger-500);
}
.text-danger-600 {
    color: var(--danger-600);
}
.text-danger-700 {
    color: var(--danger-700);
}
.text-danger-800 {
    color: var(--danger-800);
}
.text-danger-900 {
    color: var(--danger-900);
}
.text-danger-950 {
    color: var(--danger-950);
}

/* Specific Text Roles */
.text-muted {
    color: var(--text-muted);
}
.text-body {
    color: var(--text-body);
}
.text-dark {
    color: var(--text-dark);
}
.text-inverted {
    color: var(--text-inverted);
}
