@custom-variant dark (&:where([data-theme*="dark"], [data-theme*="dark"] *));
@custom-variant dark-high-contrast (&:where([data-theme="dark-contrast"], [data-theme="dark-contrast"] *));
@custom-variant light-high-contrast (&:where([data-theme="light-contrast"], [data-theme="light-contrast"] *));

@layer base {
  :root,
  :host {
    /* ---------- Alpha colors ---------- */
    /* White alpha */
    --alpha-white-0: oklch(1 0 0 / 0%);
    --alpha-white-100: oklch(1 0 0 / 5%);
    --alpha-white-200: oklch(1 0 0 / 10%);
    --alpha-white-300: oklch(1 0 0 / 15%);
    --alpha-white-400: oklch(1 0 0 / 20%);
    --alpha-white-500: oklch(1 0 0 / 30%);
    --alpha-white-600: oklch(1 0 0 / 40%);
    --alpha-white-700: oklch(1 0 0 / 50%);
    --alpha-white-800: oklch(1 0 0 / 60%);
    --alpha-white-900: oklch(1 0 0 / 70%);
    --alpha-white-1000: oklch(1 0 0 / 80%);
    --alpha-white-1100: oklch(1 0 0 / 90%);
    --alpha-white-1200: oklch(1 0 0 / 95%);
    /* Black alpha */
    --alpha-black-0: oklch(0.1482 0.0034 196.79 / 0%);
    --alpha-black-100: oklch(0.1482 0.0034 196.79 / 5%);
    --alpha-black-200: oklch(0.1482 0.0034 196.79 / 10%);
    --alpha-black-300: oklch(0.1482 0.0034 196.79 / 15%);
    --alpha-black-400: oklch(0.1482 0.0034 196.79 / 20%);
    --alpha-black-500: oklch(0.1482 0.0034 196.79 / 30%);
    --alpha-black-600: oklch(0.1482 0.0034 196.79 / 40%);
    --alpha-black-700: oklch(0.1482 0.0034 196.79 / 50%);
    --alpha-black-800: oklch(0.1482 0.0034 196.79 / 60%);
    --alpha-black-900: oklch(0.1482 0.0034 196.79 / 70%);
    --alpha-black-1000: oklch(0.1482 0.0034 196.79 / 80%);
    --alpha-black-1100: oklch(0.1482 0.0034 196.79 / 90%);
    --alpha-black-1200: oklch(0.1482 0.0034 196.79 / 95%);
    /* --------- Extended colors ---------- */
    /* Purple */
    --extended-color-purple-25: oklch(0.981 0.0054 297.73);
    --extended-color-purple-50: oklch(0.9421 0.0162 293.74);
    --extended-color-purple-100: oklch(0.8808 0.0343 293.03);
    --extended-color-purple-200: oklch(0.779 0.0639 293.01);
    --extended-color-purple-300: oklch(0.6978 0.0888 291.44);
    --extended-color-purple-400: oklch(0.6139 0.1164 290.19);
    --extended-color-purple-500: oklch(0.5527 0.1361 288.8);
    --extended-color-purple-600: oklch(0.4895 0.157 286.65);
    --extended-color-purple-700: oklch(0.42 0.1303 287.25);
    --extended-color-purple-800: oklch(0.3617 0.1077 287.53);
    --extended-color-purple-900: oklch(0.2861 0.0795 287.41);
    --extended-color-purple-950: oklch(0.219 0.0552 288.93);
    /* Orange */
    --extended-color-orange-25: oklch(0.9856 0.0084 56.32);
    --extended-color-orange-50: oklch(0.964 0.0219 58.79);
    --extended-color-orange-100: oklch(0.9152 0.0522 56.77);
    --extended-color-orange-200: oklch(0.8504 0.097 56.87);
    --extended-color-orange-300: oklch(0.801 0.1323 55.27);
    --extended-color-orange-400: oklch(0.7563 0.1644 52.56);
    --extended-color-orange-500: oklch(0.7177 0.1905 47.86);
    --extended-color-orange-600: oklch(0.6601 0.1884 45.09);
    --extended-color-orange-700: oklch(0.5737 0.162 45.72);
    --extended-color-orange-800: oklch(0.5059 0.141467 46.3267);
    --extended-color-orange-900: oklch(0.3897 0.105571 48.3415);
    --extended-color-orange-950: oklch(0.2896 0.0746 51.86);
    /* Crimson */
    --extended-color-crimson-25: oklch(0.9805 0.0066 28.83);
    --extended-color-crimson-50: oklch(0.9503 0.0186 21.57);
    --extended-color-crimson-100: oklch(0.8847 0.0455 23.1);
    --extended-color-crimson-200: oklch(0.791 0.0874 23.59);
    --extended-color-crimson-300: oklch(0.72 0.124 24.83);
    --extended-color-crimson-400: oklch(0.6556 0.1604 26.47);
    --extended-color-crimson-500: oklch(0.5954 0.1956 28.51);
    --extended-color-crimson-600: oklch(0.5284 0.185 28.96);
    --extended-color-crimson-700: oklch(0.4754 0.1647 28.98);
    --extended-color-crimson-800: oklch(0.4209 0.1438 29.01);
    --extended-color-crimson-900: oklch(0.3249 0.106 28.39);
    --extended-color-crimson-950: oklch(0.2457 0.0742 27.56);
    /* Emerald */
    --extended-color-emerald-25: oklch(0.9884 0.0082 157.1);
    --extended-color-emerald-50: oklch(0.9563 0.0256 154.47);
    --extended-color-emerald-100: oklch(0.9153 0.0531 153.59);
    --extended-color-emerald-200: oklch(0.8679 0.0829 153.02);
    --extended-color-emerald-300: oklch(0.8221 0.1121 152.16);
    --extended-color-emerald-400: oklch(0.7785 0.1398 151.07);
    --extended-color-emerald-500: oklch(0.7401 0.166 149.61);
    --extended-color-emerald-600: oklch(0.6567 0.1599 148.98);
    --extended-color-emerald-700: oklch(0.5883 0.1413 149.06);
    --extended-color-emerald-800: oklch(0.4965 0.1172 149.18);
    --extended-color-emerald-900: oklch(0.4003 0.0918 149.37);
    --extended-color-emerald-950: oklch(0.2982 0.0631 150.55);
    /* Pink */
    --extended-color-pink-25: oklch(0.9828 0.005 345.28);
    --extended-color-pink-50: oklch(0.9394 0.0201 340.71);
    --extended-color-pink-100: oklch(0.8759 0.0418 339.71);
    --extended-color-pink-200: oklch(0.805 0.0664 341.18);
    --extended-color-pink-300: oklch(0.736 0.0938 342.16);
    --extended-color-pink-400: oklch(0.6673 0.1206 342.89);
    --extended-color-pink-500: oklch(0.6185 0.1388 344.06);
    --extended-color-pink-600: oklch(0.5704 0.1574 345.25);
    --extended-color-pink-700: oklch(0.4947 0.1333 344.88);
    --extended-color-pink-800: oklch(0.4162 0.1108 344.66);
    --extended-color-pink-900: oklch(0.326 0.0807 344.57);
    --extended-color-pink-950: oklch(0.2474 0.0553 344.95);
    /* Yellow */
    --extended-color-yellow-25: oklch(0.989 0.0073 80.72);
    --extended-color-yellow-50: oklch(0.9631 0.0268 85.66);
    --extended-color-yellow-100: oklch(0.9297 0.0545 86.15);
    --extended-color-yellow-200: oklch(0.8893 0.0843 85.3);
    --extended-color-yellow-300: oklch(0.8522 0.1121 85.14);
    --extended-color-yellow-400: oklch(0.8167 0.1342 83.9);
    --extended-color-yellow-500: oklch(0.79 0.1466 82.04);
    --extended-color-yellow-600: oklch(0.7399 0.1487 79.36);
    --extended-color-yellow-700: oklch(0.683 0.1365 79.84);
    --extended-color-yellow-800: oklch(0.5522 0.1093 80.44);
    --extended-color-yellow-900: oklch(0.425 0.0824 81.46);
    --extended-color-yellow-950: oklch(0.3142 0.0586 82.21);
    /* Indigo */
    --extended-color-indigo-25: oklch(0.9813 0.0074 260.73);
    --extended-color-indigo-50: oklch(0.9415 0.022 263.19);
    --extended-color-indigo-100: oklch(0.8828 0.045 263.07);
    --extended-color-indigo-200: oklch(0.7852 0.086 263.89);
    --extended-color-indigo-300: oklch(0.7066 0.121 263.57);
    --extended-color-indigo-400: oklch(0.6322 0.1556 262.59);
    --extended-color-indigo-500: oklch(0.579 0.1807 262.31);
    --extended-color-indigo-600: oklch(0.5291 0.2045 262.05);
    --extended-color-indigo-700: oklch(0.458 0.1753 262.2);
    --extended-color-indigo-800: oklch(0.3862 0.1436 262.12);
    --extended-color-indigo-900: oklch(0.3019 0.1051 262.16);
    --extended-color-indigo-950: oklch(0.2308 0.0713 261.96);
    /* Grey */
    --extended-color-grey-25: oklch(0.9851 0 0);
    --extended-color-grey-50: oklch(0.9461 0 0);
    --extended-color-grey-100: oklch(0.9067 0 0);
    --extended-color-grey-200: oklch(0.8297 0 0);
    --extended-color-grey-300: oklch(0.7668 0 0);
    --extended-color-grey-400: oklch(0.6993 0 0);
    --extended-color-grey-500: oklch(0.65 0 0);
    --extended-color-grey-600: oklch(0.5999 0 0);
    --extended-color-grey-700: oklch(0.5208 0 0);
    --extended-color-grey-800: oklch(0.4386 0 0);
    --extended-color-grey-900: oklch(0.3407 0 0);
    --extended-color-grey-950: oklch(0.2603 0 0);
    /* Priority */
    --priority-urgent: oklch(0.5798 0.1766 26.99);
    --priority-high: oklch(0.6802 0.1633 50.67);
    --priority-medium: oklch(0.79 0.1466 82.04);
    --priority-low: oklch(0.579 0.1807 262.31);
    --priority-none: oklch(0.6376 0.0129 231.77);

    /* -------------------- Light mode color tokens -------------------- */
    /* Neutral colors */
    --neutral-white: oklch(1 0 0);
    --neutral-100: oklch(0.9848 0.0003 230.66);
    --neutral-200: oklch(0.9696 0.0007 230.67);
    --neutral-300: oklch(0.9543 0.001 230.67);
    --neutral-400: oklch(0.9389 0.0014 230.68);
    --neutral-500: oklch(0.9235 0.001733 230.6853);
    --neutral-600: oklch(0.8925 0.0024 230.7);
    --neutral-700: oklch(0.8612 0.0032 230.71);
    --neutral-800: oklch(0.6668 0.0079 230.82);
    --neutral-900: oklch(0.6161 0.009153 230.867);
    --neutral-1000: oklch(0.5288 0.0083 230.88);
    --neutral-1100: oklch(0.4377 0.0066 230.87);
    --neutral-1200: oklch(0.2378 0.0029 230.83);
    --neutral-black: oklch(0.1472 0.0034 230.83);
    /* Brand colors */
    --brand-100: oklch(0.9847 0.0083 236.56);
    --brand-200: oklch(0.9715 0.0167 230.9);
    --brand-300: oklch(0.9428 0.0341 230.22);
    --brand-400: oklch(0.9008 0.0587 232);
    --brand-500: oklch(0.8414 0.0947 233.08);
    --brand-600: oklch(0.7649 0.1392 236.3);
    --brand-700: oklch(0.6766 0.1665 243.91);
    --brand-900: oklch(0.4347 0.104093 242.4823);
    --brand-1000: oklch(0.3399 0.0783 240.32);
    --brand-1100: oklch(0.2626 0.0578 237.5);
    --brand-1200: oklch(0.2093 0.0438 234.02);
    --brand-default: oklch(0.4799 0.1158 242.91);
    /* Green/Success colors */
    --green-100: oklch(0.9819 0.0181 155.83);
    --green-200: oklch(0.9624 0.0434 156.74);
    --green-300: oklch(0.9258 0.0845 155.86);
    --green-400: oklch(0.8704 0.149 154.62);
    --green-500: oklch(0.7914 0.2091 151.66);
    --green-600: oklch(0.7289 0.2119 147.82);
    --green-700: oklch(0.632 0.185972 147.3695);
    --green-800: oklch(0.5296 0.149485 148.9899);
    --green-900: oklch(0.4468 0.1187 151.4);
    --green-1000: oklch(0.3935 0.0957 152.28);
    --green-1100: oklch(0.2654 0.0651 152.77);
    /* Amber/Warning colors */
    --amber-100: oklch(0.9869 0.0214 95.28);
    --amber-200: oklch(0.9617 0.0592 95.89);
    --amber-300: oklch(0.9244 0.1203 95.85);
    --amber-400: oklch(0.8781 0.1688 91.86);
    --amber-500: oklch(0.829 0.1712 81.04);
    --amber-600: oklch(0.7724 0.172798 65.367);
    --amber-700: oklch(0.6671 0.1685 53.38);
    --amber-800: oklch(0.557 0.158291 45.3594);
    --amber-900: oklch(0.4747 0.135757 44.9806);
    --amber-1000: oklch(0.4149 0.1126 45.88);
    --amber-1100: oklch(0.279 0.0773 45.6);
    /* Red/Danger colors */
    --red-100: oklch(0.9705 0.0129 17.38);
    --red-200: oklch(0.9365 0.032 17.74);
    --red-300: oklch(0.8834 0.0616 18.39);
    --red-400: oklch(0.8053 0.1109 19.78);
    --red-500: oklch(0.7022 0.1892 22.23);
    --red-600: oklch(0.6378 0.2373 25.44);
    --red-700: oklch(0.583 0.238666 28.4765);
    --red-800: oklch(0.5095 0.208583 28.513);
    --red-900: oklch(0.4446 0.1774 26.79);
    --red-1000: oklch(0.3967 0.1408 25.71);
    --red-1100: oklch(0.3493 0.1215 25.21);

    /* -------------------- Light mode custom(derived) colors -------------------- */
    /* Scrollbar colors */
    --scrollbar-thumb: var(--alpha-black-200);
    --scrollbar-thumb-surface-hover: var(--alpha-black-300);
    --scrollbar-thumb-hover: var(--alpha-black-400);
    --scrollbar-thumb-active: var(--alpha-black-500);
    /* Background colors */
    --bg-canvas: var(--neutral-300);
    --bg-surface-1: var(--neutral-white);
    --bg-surface-2: var(--neutral-100);
    --bg-layer-1: var(--neutral-200);
    --bg-layer-1-hover: var(--neutral-300);
    --bg-layer-1-active: var(--neutral-400);
    --bg-layer-1-selected: var(--neutral-400);
    --bg-layer-2: var(--neutral-white);
    --bg-layer-2-hover: var(--neutral-100);
    --bg-layer-2-active: var(--neutral-200);
    --bg-layer-2-selected: var(--neutral-200);
    --bg-layer-3: var(--neutral-300);
    --bg-layer-3-hover: var(--neutral-400);
    --bg-layer-3-active: var(--neutral-500);
    --bg-layer-3-selected: var(--neutral-500);
    --bg-layer-transparent: var(--alpha-white-0);
    --bg-layer-transparent-hover: var(--alpha-black-100);
    --bg-layer-transparent-active: var(--alpha-black-200);
    --bg-layer-transparent-selected: var(--alpha-black-300);
    --bg-layer-disabled: var(--neutral-400);
    --bg-accent-primary: var(--brand-default);
    --bg-accent-primary-hover: var(--brand-900);
    --bg-accent-primary-active: var(--brand-1000);
    --bg-accent-subtle: var(--brand-100);
    --bg-accent-subtle-hover: var(--brand-200);
    --bg-accent-subtle-active: var(--brand-300);
    --bg-success-primary: var(--green-700);
    --bg-success-subtle: var(--green-100);
    --bg-success-subtle-1: var(--green-200);
    --bg-warning-primary: var(--amber-600);
    --bg-warning-subtle: var(--amber-100);
    --bg-danger-primary: var(--red-700);
    --bg-danger-primary-hover: var(--red-800);
    --bg-danger-primary-active: var(--red-900);
    --bg-danger-primary-selected: var(--red-900);
    --bg-danger-subtle: var(--red-100);
    --bg-danger-subtle-hover: var(--red-200);
    --bg-danger-subtle-active: var(--red-300);
    --bg-danger-subtle-selected: var(--red-300);
    --bg-danger-transparent: var(--red-100);
    --bg-danger-transparent-hover: var(--red-100);
    --bg-danger-transparent-active: var(--red-100);
    --bg-danger-transparent-selected: var(--red-100);
    --bg-backdrop: var(--alpha-black-500);
    --bg-inverse: var(--alpha-black-1000);
    /* Border colors */
    --border-subtle: var(--neutral-400);
    --border-subtle-1: var(--neutral-500);
    --border-strong: var(--neutral-600);
    --border-strong-1: var(--neutral-700);
    --border-inverse: var(--neutral-white);
    --border-disabled: var(--neutral-300);
    --border-accent-strong: var(--brand-default);
    --border-accent-subtle: var(--brand-300);
    --border-success-strong: var(--green-700);
    --border-success-subtle: var(--green-300);
    --border-warning-strong: var(--amber-700);
    --border-warning-subtle: var(--amber-400);
    --border-danger-strong: var(--red-700);
    --border-danger-subtle: var(--red-400);
    /* Text colors */
    --txt-primary: var(--neutral-1200);
    --txt-secondary: var(--neutral-1100);
    --txt-tertiary: var(--neutral-1000);
    --txt-placeholder: var(--neutral-900);
    --txt-disabled: var(--neutral-800);
    --txt-accent-primary: var(--brand-default);
    --txt-accent-secondary: var(--brand-700);
    --txt-on-color: var(--neutral-100);
    --txt-on-color-disabled: var(--alpha-black-400);
    --txt-inverse: var(--neutral-white);
    --txt-success-primary: var(--green-900);
    --txt-success-secondary: var(--green-700);
    --txt-warning-primary: var(--amber-900);
    --txt-warning-secondary: var(--amber-700);
    --txt-danger-primary: var(--red-900);
    --txt-danger-secondary: var(--red-700);
    /* Icon colors */
    --txt-icon-primary: var(--neutral-1200);
    --txt-icon-accent-subtle: var(--brand-500);
    --txt-icon-accent-primary: var(--brand-default);
    --txt-icon-danger-primary: var(--red-900);
    --txt-icon-danger-secondary: var(--red-700);
    --txt-icon-success-primary: var(--green-900);
    --txt-icon-success-secondary: var(--green-700);
    --txt-icon-warning-primary: var(--amber-900);
    --txt-icon-warning-secondary: var(--amber-700);
    --txt-icon-accent-primary-inverse: var(--brand-900);
    --txt-icon-accent-secondary: var(--brand-1200);
    --txt-icon-secondary: var(--neutral-1100);
    --txt-icon-tertiary: var(--neutral-900);
    --txt-icon-placeholder: var(--neutral-800);
    --txt-icon-disabled: var(--neutral-700);
    --txt-icon-danger: var(--red-700);
    --txt-icon-on-color: var(--neutral-white);
    --txt-icon-on-color-disabled: var(--alpha-black-400);
    --txt-icon-inverse: var(--neutral-white);
    /* Link colors */
    --txt-link-primary: var(--brand-default);
    --txt-link-primary-hover: var(--brand-900);
    --txt-link-secondary: var(--neutral-900);
    /* Label colors */
    --label-indigo-bg: var(--extended-color-indigo-50);
    --label-indigo-bg-strong: var(--extended-color-indigo-700);
    --label-indigo-hover: var(--extended-color-indigo-100);
    --label-indigo-icon: var(--extended-color-indigo-700);
    --label-indigo-text: var(--extended-color-indigo-700);
    --label-indigo-border: var(--extended-color-indigo-700);
    --label-indigo-focus: var(--extended-color-indigo-500);
    --label-emerald-bg: var(--extended-color-emerald-50);
    --label-emerald-bg-strong: var(--extended-color-emerald-600);
    --label-emerald-hover: var(--extended-color-emerald-200);
    --label-emerald-icon: var(--extended-color-emerald-800);
    --label-emerald-text: var(--extended-color-emerald-800);
    --label-emerald-border: var(--extended-color-emerald-800);
    --label-emerald-focus: var(--extended-color-emerald-700);
    --label-grey-bg: var(--extended-color-grey-50);
    --label-grey-bg-strong: var(--extended-color-grey-700);
    --label-grey-hover: var(--extended-color-grey-100);
    --label-grey-icon: var(--extended-color-grey-700);
    --label-grey-text: var(--extended-color-grey-700);
    --label-grey-border: var(--extended-color-grey-700);
    --label-grey-focus: var(--extended-color-grey-500);
    --label-crimson-bg: var(--extended-color-crimson-50);
    --label-crimson-bg-strong: var(--extended-color-crimson-700);
    --label-crimson-hover: var(--extended-color-crimson-100);
    --label-crimson-icon: var(--extended-color-crimson-700);
    --label-crimson-text: var(--extended-color-crimson-700);
    --label-crimson-border: var(--extended-color-crimson-700);
    --label-crimson-focus: var(--extended-color-crimson-500);
    --label-yellow-bg: var(--extended-color-yellow-50);
    --label-yellow-bg-strong: var(--extended-color-yellow-600);
    --label-yellow-hover: var(--extended-color-yellow-100);
    --label-yellow-icon: var(--extended-color-yellow-700);
    --label-yellow-text: var(--extended-color-yellow-700);
    --label-yellow-border: var(--extended-color-yellow-600);
    --label-yellow-focus: var(--extended-color-yellow-400);
    --label-orange-bg: var(--extended-color-orange-50);
    --label-orange-bg-strong: var(--extended-color-orange-600);
    --label-orange-hover: var(--extended-color-orange-100);
    --label-orange-icon: var(--extended-color-orange-600);
    --label-orange-text: var(--extended-color-orange-600);
    --label-orange-border: var(--extended-color-orange-600);
    --label-orange-focus: var(--extended-color-orange-300);
    --label-pink-bg: var(--extended-color-pink-50);
    --label-pink-bg-strong: var(--extended-color-pink-600);
    --label-pink-hover: var(--extended-color-pink-100);
    --label-pink-icon: var(--extended-color-pink-600);
    --label-pink-text: var(--extended-color-pink-600);
    --label-pink-border: var(--extended-color-pink-600);
    --label-pink-focus: var(--extended-color-pink-400);
    --label-purple-bg: var(--extended-color-purple-50);
    --label-purple-bg-strong: var(--extended-color-purple-500);
    --label-purple-hover: var(--extended-color-purple-100);
    --label-purple-icon: var(--extended-color-purple-500);
    --label-purple-text: var(--extended-color-purple-600);
    --label-purple-border: var(--extended-color-purple-600);
    --label-purple-focus: var(--extended-color-purple-300);
    /* Illustration colors */
    --illustration-fill-primary: var(--neutral-white);
    --illustration-fill-secondary: var(--neutral-200);
    --illustration-fill-tertiary: var(--neutral-400);
    --illustration-fill-quaternary: var(--neutral-700);
    --illustration-stroke-primary: var(--neutral-700);
    --illustration-stroke-secondary: var(--neutral-800);
    --illustration-stroke-tertiary: var(--neutral-1200);
    /* Neutral plan colors */
    --txt-plans-neutral-primary: var(--neutral-1000);
    --txt-plans-neutral-color: var(--neutral-100);
    --bg-plans-neutral-subtle: var(--neutral-400);
    --bg-plans-neutral-solid: var(--neutral-1200);
    /* Brand plan colors */
    --txt-plans-brand-primary: var(--brand-1200);
    --txt-plans-brand-color: var(--neutral-100);
    --bg-plans-brand-subtle: var(--brand-200);
    --bg-plans-brand-solid: var(--brand-1200);

    /* ---------- Dark mode color tokens ---------- */
    @variant dark {
      /* Neutral colors */
      --neutral-black: oklch(0.1689 0.0021 230.81);
      --neutral-100: oklch(0.1932 0.002 230.81);
      --neutral-200: oklch(0.2158 0.0025 230.82);
      --neutral-300: oklch(0.2378 0.0029 230.83);
      --neutral-400: oklch(0.2593 0.0033 230.84);
      --neutral-500: oklch(0.3011 0.0041 230.85);
      --neutral-600: oklch(0.3415 0.0049 230.86);
      --neutral-700: oklch(0.3999 0.0059 230.87);
      --neutral-800: oklch(0.5989 0.0096 230.88);
      --neutral-900: oklch(0.6835 0.0074 230.81);
      --neutral-1000: oklch(0.7655 0.0054 230.76);
      --neutral-1100: oklch(0.8455 0.0035 230.72);
      --neutral-1200: oklch(0.9235 0.001733 230.6853);
      --neutral-white: oklch(0.9702 0 0);
      /* Brand colors */
      --brand-100: oklch(0.2029 0.03 232.24);
      --brand-200: oklch(0.2513 0.0418 234.6);
      --brand-300: oklch(0.3208 0.05806 236.44);
      --brand-400: oklch(0.4088 0.077702 237.13);
      --brand-500: oklch(0.4511 0.087024 237.37);
      --brand-700: oklch(0.7408 0.100309 233.89);
      --brand-800: oklch(0.8318 0.065614 232.07);
      --brand-900: oklch(0.8969 0.040089 231.35);
      --brand-1000: oklch(0.9409 0.022883 231.01);
      --brand-1100: oklch(0.9704 0.011421 230.82);
      --brand-1200: oklch(0.9856 0.005 228.82);
      --brand-default: oklch(0.6311 0.126281 238.01);
      /* Green colors */
      --green-100: oklch(0.2721 0.067322 152.52);
      --green-200: oklch(0.3935 0.0957 152.28);
      --green-300: oklch(0.4468 0.1187 151.4);
      --green-400: oklch(0.5296 0.149485 148.9899);
      --green-500: oklch(0.632 0.185972 147.3695);
      --green-600: oklch(0.7289 0.2119 147.82);
      --green-700: oklch(0.7914 0.2091 151.66);
      --green-800: oklch(0.8704 0.149 154.62);
      --green-900: oklch(0.9258 0.0845 155.86);
      --green-1000: oklch(0.9624 0.0434 156.74);
      --green-1100: oklch(0.9819 0.0181 155.83);
      /* Amber colors */
      --amber-100: oklch(0.3042 0.0853 45.16);
      --amber-200: oklch(0.4149 0.1126 45.88);
      --amber-300: oklch(0.4747 0.135757 44.9806);
      --amber-400: oklch(0.557 0.158291 45.3594);
      --amber-500: oklch(0.6671 0.1685 53.38);
      --amber-600: oklch(0.7724 0.172798 65.367);
      --amber-700: oklch(0.829 0.1712 81.04);
      --amber-800: oklch(0.8781 0.1688 91.86);
      --amber-900: oklch(0.9244 0.1203 95.85);
      --amber-1000: oklch(0.9617 0.0592 95.89);
      --amber-1100: oklch(0.9869 0.0214 95.28);
      /* Red colors */
      --red-100: oklch(0.2615 0.085 24.41);
      --red-200: oklch(0.3967 0.1408 25.71);
      --red-300: oklch(0.4446 0.1774 26.79);
      --red-400: oklch(0.5095 0.208583 28.513);
      --red-500: oklch(0.583 0.238666 28.4765);
      --red-600: oklch(0.6378 0.2373 25.44);
      --red-700: oklch(0.7022 0.1892 22.23);
      --red-800: oklch(0.8053 0.1109 19.78);
      --red-900: oklch(0.8834 0.0616 18.39);
      --red-1000: oklch(0.9365 0.032 17.74);
      --red-1100: oklch(0.9705 0.0129 17.38);
      /* -------------------- Dark mode derived colors -------------------- */
      /* Scrollbar colors */
      --scrollbar-thumb: var(--alpha-white-200);
      --scrollbar-thumb-surface-hover: var(--alpha-white-300);
      --scrollbar-thumb-hover: var(--alpha-white-400);
      --scrollbar-thumb-active: var(--alpha-white-500);
      /* Background colors */
      --bg-canvas: var(--neutral-black);
      --bg-surface-1: var(--neutral-100);
      --bg-surface-2: var(--neutral-200);
      --bg-layer-1: var(--neutral-200);
      --bg-layer-1-hover: var(--neutral-300);
      --bg-layer-1-active: var(--neutral-400);
      --bg-layer-1-selected: var(--neutral-400);
      --bg-layer-2: var(--neutral-300);
      --bg-layer-2-hover: var(--neutral-400);
      --bg-layer-2-active: var(--neutral-500);
      --bg-layer-2-selected: var(--neutral-500);
      --bg-layer-3: var(--neutral-400);
      --bg-layer-3-hover: var(--neutral-500);
      --bg-layer-3-active: var(--neutral-600);
      --bg-layer-3-selected: var(--neutral-600);
      --bg-layer-transparent: var(--alpha-black-0);
      --bg-layer-transparent-hover: var(--alpha-white-100);
      --bg-layer-transparent-active: var(--alpha-white-200);
      --bg-layer-transparent-selected: var(--alpha-white-300);
      --bg-layer-disabled: var(--neutral-700);
      --bg-accent-primary: var(--brand-default);
      --bg-accent-primary-hover: var(--brand-500);
      --bg-accent-primary-active: var(--brand-400);
      --bg-accent-subtle: var(--brand-100);
      --bg-accent-subtle-hover: var(--brand-200);
      --bg-accent-subtle-active: var(--brand-300);
      --bg-success-primary: var(--green-700);
      --bg-success-subtle: var(--green-100);
      --bg-success-subtle-1: var(--green-100);
      --bg-warning-primary: var(--amber-600);
      --bg-warning-subtle: var(--amber-100);
      --bg-danger-primary: var(--red-300);
      --bg-danger-primary-hover: var(--red-400);
      --bg-danger-primary-active: var(--red-500);
      --bg-danger-primary-selected: var(--red-500);
      --bg-danger-subtle: var(--red-100);
      --bg-danger-subtle-hover: var(--red-200);
      --bg-danger-subtle-active: var(--red-300);
      --bg-danger-subtle-selected: var(--red-300);
      --bg-danger-transparent: var(--red-100);
      --bg-danger-transparent-hover: var(--red-100);
      --bg-danger-transparent-active: var(--red-100);
      --bg-danger-transparent-selected: var(--red-100);
      --bg-backdrop: var(--alpha-black-1000);
      --bg-inverse: var(--alpha-white-1000);
      /* Border colors */
      --border-subtle: var(--neutral-400);
      --border-subtle-1: var(--neutral-500);
      --border-strong: var(--neutral-600);
      --border-strong-1: var(--neutral-700);
      --border-inverse: var(--neutral-100);
      --border-disabled: var(--neutral-300);
      --border-accent-strong: var(--brand-default);
      --border-accent-subtle: var(--brand-300);
      --border-success-strong: var(--green-400);
      --border-success-subtle: var(--green-200);
      --border-warning-strong: var(--amber-400);
      --border-warning-subtle: var(--amber-200);
      --border-danger-strong: var(--red-700);
      --border-danger-subtle: var(--red-200);
      /* Text colors */
      --txt-primary: var(--neutral-1200);
      --txt-secondary: var(--neutral-1100);
      --txt-tertiary: var(--neutral-1000);
      --txt-placeholder: var(--neutral-900);
      --txt-disabled: var(--neutral-800);
      --txt-accent-primary: var(--brand-default);
      --txt-accent-secondary: var(--brand-700);
      --txt-on-color: var(--neutral-1200);
      --txt-on-color-disabled: var(--alpha-white-400);
      --txt-inverse: var(--neutral-black);
      --txt-success-primary: var(--green-900);
      --txt-success-secondary: var(--green-700);
      --txt-warning-primary: var(--amber-900);
      --txt-warning-secondary: var(--amber-700);
      --txt-danger-primary: var(--red-900);
      --txt-danger-secondary: var(--red-700);
      /* Icon colors */
      --txt-icon-primary: var(--neutral-1200);
      --txt-icon-accent-subtle: var(--brand-700);
      --txt-icon-accent-primary: var(--brand-default);
      --txt-icon-accent-primary-inverse: var(--brand-900);
      --txt-icon-accent-secondary: var(--brand-1200);
      --txt-icon-danger-primary: var(--red-900);
      --txt-icon-danger-secondary: var(--red-700);
      --txt-icon-success-primary: var(--green-900);
      --txt-icon-success-secondary: var(--green-700);
      --txt-icon-warning-primary: var(--amber-900);
      --txt-icon-warning-secondary: var(--amber-700);
      --txt-icon-secondary: var(--neutral-1100);
      --txt-icon-tertiary: var(--neutral-1000);
      --txt-icon-placeholder: var(--neutral-800);
      --txt-icon-disabled: var(--neutral-700);
      --txt-icon-danger: var(--red-700);
      --txt-icon-on-color: var(--neutral-white);
      --txt-icon-on-color-disabled: var(--alpha-white-400);
      --txt-icon-inverse: var(--neutral-black);
      /* Link colors */
      --txt-link-primary: var(--brand-default);
      --txt-link-primary-hover: var(--brand-700);
      --txt-link-secondary: var(--neutral-1100);
      /* Label colors */
      --label-indigo-bg: var(--extended-color-indigo-900);
      --label-indigo-bg-strong: var(--extended-color-indigo-500);
      --label-indigo-hover: var(--extended-color-indigo-800);
      --label-indigo-icon: var(--extended-color-indigo-400);
      --label-indigo-text: var(--extended-color-indigo-400);
      --label-indigo-border: var(--extended-color-indigo-400);
      --label-indigo-focus: var(--extended-color-indigo-400);
      --label-emerald-bg: var(--extended-color-emerald-950);
      --label-emerald-bg-strong: var(--extended-color-emerald-600);
      --label-emerald-hover: var(--extended-color-emerald-900);
      --label-emerald-icon: var(--extended-color-emerald-400);
      --label-emerald-text: var(--extended-color-emerald-400);
      --label-emerald-border: var(--extended-color-emerald-400);
      --label-emerald-focus: var(--extended-color-emerald-700);
      --label-grey-bg: var(--extended-color-grey-900);
      --label-grey-bg-strong: var(--extended-color-grey-500);
      --label-grey-hover: var(--extended-color-grey-800);
      --label-grey-icon: var(--extended-color-grey-400);
      --label-grey-text: var(--extended-color-grey-400);
      --label-grey-border: var(--extended-color-grey-400);
      --label-grey-focus: var(--extended-color-grey-400);
      --label-crimson-bg: var(--extended-color-crimson-950);
      --label-crimson-bg-strong: var(--extended-color-crimson-500);
      --label-crimson-hover: var(--extended-color-crimson-900);
      --label-crimson-icon: var(--extended-color-crimson-400);
      --label-crimson-text: var(--extended-color-crimson-400);
      --label-crimson-border: var(--extended-color-crimson-400);
      --label-crimson-focus: var(--extended-color-crimson-400);
      --label-yellow-bg: var(--extended-color-yellow-950);
      --label-yellow-bg-strong: var(--extended-color-yellow-500);
      --label-yellow-hover: var(--extended-color-yellow-900);
      --label-yellow-icon: var(--extended-color-yellow-500);
      --label-yellow-text: var(--extended-color-yellow-500);
      --label-yellow-border: var(--extended-color-yellow-500);
      --label-yellow-focus: var(--extended-color-yellow-400);
      --label-orange-bg: var(--extended-color-orange-950);
      --label-orange-bg-strong: var(--extended-color-orange-400);
      --label-orange-hover: var(--extended-color-orange-900);
      --label-orange-icon: var(--extended-color-orange-300);
      --label-orange-text: var(--extended-color-orange-300);
      --label-orange-border: var(--extended-color-orange-300);
      --label-orange-focus: var(--extended-color-orange-300);
      --label-pink-bg: var(--extended-color-pink-900);
      --label-pink-bg-strong: var(--extended-color-pink-500);
      --label-pink-hover: var(--extended-color-pink-800);
      --label-pink-icon: var(--extended-color-pink-400);
      --label-pink-text: var(--extended-color-pink-400);
      --label-pink-border: var(--extended-color-pink-400);
      --label-pink-focus: var(--extended-color-pink-400);
      --label-purple-bg: var(--extended-color-purple-900);
      --label-purple-bg-strong: var(--extended-color-purple-400);
      --label-purple-hover: var(--extended-color-purple-800);
      --label-purple-icon: var(--extended-color-purple-400);
      --label-purple-text: var(--extended-color-purple-400);
      --label-purple-border: var(--extended-color-purple-400);
      --label-purple-focus: var(--extended-color-purple-300);
      /* Illustration colors */
      --illustration-fill-primary: var(--neutral-400);
      --illustration-fill-secondary: var(--neutral-500);
      --illustration-fill-tertiary: var(--neutral-700);
      --illustration-fill-quaternary: var(--neutral-700);
      --illustration-stroke-primary: var(--neutral-700);
      --illustration-stroke-secondary: var(--neutral-800);
      --illustration-stroke-tertiary: var(--neutral-1000);
      /* Neutral plan colors */
      --txt-plans-neutral-primary: var(--neutral-1000);
      --txt-plans-neutral-color: var(--neutral-100);
      --bg-plans-neutral-subtle: var(--neutral-500);
      --bg-plans-neutral-solid: var(--neutral-1100);
      /* Brand plan colors */
      --txt-plans-brand-primary: var(--brand-1000);
      --txt-plans-brand-color: var(--brand-100);
      --bg-plans-brand-subtle: var(--brand-200);
      --bg-plans-brand-solid: var(--brand-1100);
    }

    /* -------------------- Dark high contrast mode color tokens -------------------- */
    @variant dark-high-contrast {
      /* Border colors */
      --border-subtle: var(--neutral-1200);
      --border-subtle-1: var(--neutral-1100);
      --border-strong: var(--neutral-1000);
      --border-strong-1: var(--neutral-900);
      --border-inverse: var(--neutral-white);
      --border-disabled: var(--neutral-700);
      --border-accent-strong: var(--brand-default);
      --border-accent-subtle: var(--brand-300);
      --border-success-strong: var(--green-400);
      --border-success-subtle: var(--green-200);
      --border-warning-strong: var(--amber-400);
      --border-warning-subtle: var(--amber-200);
      --border-danger-strong: var(--red-400);
      --border-danger-subtle: var(--red-200);
    }

    /* -------------------- Light high contrast mode color tokens -------------------- */

    @variant light-high-contrast {
      /* Border colors */
      --border-subtle: var(--neutral-1200);
      --border-subtle-1: var(--neutral-1100);
      --border-strong: var(--neutral-1000);
      --border-strong-1: var(--neutral-900);
      --border-inverse: var(--neutral-black);
      --border-disabled: var(--neutral-700);
      --border-accent-strong: var(--brand-default);
      --border-accent-subtle: var(--brand-300);
      --border-success-strong: var(--green-700);
      --border-success-subtle: var(--green-600);
      --border-warning-strong: var(--amber-700);
      --border-warning-subtle: var(--amber-400);
      --border-danger-strong: var(--red-700);
      --border-danger-subtle: var(--red-400);
    }
  }
}

/* -------------------- Theme tokens -------------------- */
@theme {
  --color-*: initial;
  --color-white: oklch(1 0 0);
  --color-black: oklch(0.1482 0.0034 196.79);
  /* ---------- Border radius ---------- */
  --radius-4xl: initial;
  /* ---------- Border width ---------- */
  --border-width-*: initial;
  --border-width-sm: 1px;
  --border-width-md: 1.5px;
  --border-width-lg: 2px;
  --border-width-xl: 2.5px;
  --default-border-width: 1px;
  /* ---------- Outline width ---------- */
  --outline-width-*: initial;
  /* ---------- Ring width ---------- */
  --ring-width-*: initial;
  /* ---------- Shadow ---------- */
  --shadow-*: initial;
  --shadow-raised-100: 0px 1px 6px -1px #292f3d08, 0px 1px 4px 0px #292f3d0a;
  --shadow-raised-200: 0px 1px 2px -1px #292f3d0f, 0px 1px 3px 0px #292f3d0d;
  --shadow-raised-300: 0px 2px 4px -1px #292f3d0a, 0px 4px 6px -1px #292f3d0d;
  --shadow-overlay-100: 0px 10px 10px -5px #292f3d0a, 0px 10px 40px -5px #292f3d0a;
  --shadow-overlay-200: 0px 10px 10px -10px #292f3d0a, 0px 30px 60px -12px #292f3d1a;
  --shadow-direction-left: -10px 0px 30px -5px #292f3d05, -5px 0px 80px -5px #292f3d0a;
  --shadow-direction-right: 10px 0px 30px -5px #0000000a, 5px 0px 80px -5px #0000000a;
  /* --------- Height --------- */
  --height-header: 3.25rem;
  /* --------- Padding --------- */
  --padding-page: 1.35rem;
  --padding-page-x: 1.35rem;
  --padding-page-y: 1.35rem;
}

/* -------------------- Semantic colors (Final colors to be used in components) -------------------- */
@theme inline {
  /* ---------- Outline width ---------- */
  --outline-width-sm: var(--border-width-sm);
  --outline-width-md: var(--border-width-md);
  --outline-width-lg: var(--border-width-lg);
  --outline-width-xl: var(--border-width-xl);
  --default-outline-width: var(--default-border-width);
  /* ---------- Ring width ---------- */
  --ring-width-sm: var(--border-width-sm);
  --ring-width-md: var(--border-width-md);
  --ring-width-lg: var(--border-width-lg);
  --ring-width-xl: var(--border-width-xl);
  --default-ring-width: var(--default-border-width);
  /* Scrollbar colors */
  --background-color-scrollbar-thumb: var(--scrollbar-thumb);
  --background-color-scrollbar-thumb-surface-hover: var(--scrollbar-thumb-surface-hover);
  --background-color-scrollbar-thumb-hover: var(--scrollbar-thumb-hover);
  --background-color-scrollbar-thumb-active: var(--scrollbar-thumb-active);
  /* Background colors */
  --background-color-canvas: var(--bg-canvas);
  --background-color-surface-1: var(--bg-surface-1);
  --background-color-surface-2: var(--bg-surface-2);
  --background-color-layer-1: var(--bg-layer-1);
  --background-color-layer-1-hover: var(--bg-layer-1-hover);
  --background-color-layer-1-active: var(--bg-layer-1-active);
  --background-color-layer-1-selected: var(--bg-layer-1-selected);
  --background-color-layer-2: var(--bg-layer-2);
  --background-color-layer-2-hover: var(--bg-layer-2-hover);
  --background-color-layer-2-active: var(--bg-layer-2-active);
  --background-color-layer-2-selected: var(--bg-layer-2-selected);
  --background-color-layer-3: var(--bg-layer-3);
  --background-color-layer-3-hover: var(--bg-layer-3-hover);
  --background-color-layer-3-active: var(--bg-layer-3-active);
  --background-color-layer-3-selected: var(--bg-layer-3-selected);
  --background-color-layer-transparent: var(--bg-layer-transparent);
  --background-color-layer-transparent-hover: var(--bg-layer-transparent-hover);
  --background-color-layer-transparent-active: var(--bg-layer-transparent-active);
  --background-color-layer-transparent-selected: var(--bg-layer-transparent-selected);
  --background-color-layer-disabled: var(--bg-layer-disabled);
  --background-color-accent-primary: var(--bg-accent-primary);
  --background-color-accent-primary-hover: var(--bg-accent-primary-hover);
  --background-color-accent-primary-active: var(--bg-accent-primary-active);
  --background-color-accent-subtle: var(--bg-accent-subtle);
  --background-color-accent-subtle-hover: var(--bg-accent-subtle-hover);
  --background-color-accent-subtle-active: var(--bg-accent-subtle-active);
  --background-color-success-primary: var(--bg-success-primary);
  --background-color-success-subtle: var(--bg-success-subtle);
  --background-color-success-subtle-1: var(--bg-success-subtle-1);
  --background-color-warning-primary: var(--bg-warning-primary);
  --background-color-warning-subtle: var(--bg-warning-subtle);
  --background-color-danger-primary: var(--bg-danger-primary);
  --background-color-danger-primary-hover: var(--bg-danger-primary-hover);
  --background-color-danger-primary-active: var(--bg-danger-primary-active);
  --background-color-danger-primary-selected: var(--bg-danger-primary-selected);
  --background-color-danger-subtle: var(--bg-danger-subtle);
  --background-color-danger-subtle-hover: var(--bg-danger-subtle-hover);
  --background-color-danger-subtle-active: var(--bg-danger-subtle-active);
  --background-color-danger-subtle-selected: var(--bg-danger-subtle-selected);
  --background-color-danger-transparent: var(--bg-danger-transparent);
  --background-color-danger-transparent-hover: var(--bg-danger-transparent-hover);
  --background-color-danger-transparent-active: var(--bg-danger-transparent-active);
  --background-color-danger-transparent-selected: var(--bg-danger-transparent-selected);
  --background-color-backdrop: var(--bg-backdrop);
  --background-color-inverse: var(--bg-inverse);
  /* Border colors */
  --border-color-subtle: var(--border-subtle);
  --border-color-subtle-1: var(--border-subtle-1);
  --border-color-strong: var(--border-strong);
  --border-color-strong-1: var(--border-strong-1);
  --border-color-inverse: var(--border-inverse);
  --border-color-disabled: var(--border-disabled);
  --border-color-accent-strong: var(--border-accent-strong);
  --border-color-accent-subtle: var(--border-accent-subtle);
  --border-color-success-strong: var(--border-success-strong);
  --border-color-success-subtle: var(--border-success-subtle);
  --border-color-warning-strong: var(--border-warning-strong);
  --border-color-warning-subtle: var(--border-warning-subtle);
  --border-color-danger-strong: var(--border-danger-strong);
  --border-color-danger-subtle: var(--border-danger-subtle);
  /* Outline colors */
  --outline-color-subtle: var(--border-color-subtle);
  --outline-color-subtle-1: var(--border-color-subtle-1);
  --outline-color-strong: var(--border-color-strong);
  --outline-color-strong-1: var(--border-color-strong-1);
  --outline-color-inverse: var(--border-color-inverse);
  --outline-color-disabled: var(--border-color-disabled);
  --outline-color-accent-strong: var(--border-color-accent-strong);
  --outline-color-accent-subtle: var(--border-color-accent-subtle);
  --outline-color-success-strong: var(--border-color-success-strong);
  --outline-color-success-subtle: var(--border-color-success-subtle);
  --outline-color-warning-strong: var(--border-color-warning-strong);
  --outline-color-warning-subtle: var(--border-color-warning-subtle);
  --outline-color-danger-strong: var(--border-color-danger-strong);
  --outline-color-danger-subtle: var(--border-color-danger-subtle);
  /* Ring colors */
  --ring-color-subtle: var(--border-color-subtle);
  --ring-color-subtle-1: var(--border-color-subtle-1);
  --ring-color-strong: var(--border-color-strong);
  --ring-color-strong-1: var(--border-color-strong-1);
  --ring-color-inverse: var(--border-color-inverse);
  --ring-color-disabled: var(--border-color-disabled);
  --ring-color-accent-strong: var(--border-color-accent-strong);
  --ring-color-accent-subtle: var(--border-color-accent-subtle);
  --ring-color-success-strong: var(--border-color-success-strong);
  --ring-color-success-subtle: var(--border-color-success-subtle);
  --ring-color-warning-strong: var(--border-color-warning-strong);
  --ring-color-warning-subtle: var(--border-color-warning-subtle);
  --ring-color-danger-strong: var(--border-color-danger-strong);
  --ring-color-danger-subtle: var(--border-color-danger-subtle);
  /* Text colors */
  --text-color-primary: var(--txt-primary);
  --text-color-secondary: var(--txt-secondary);
  --text-color-tertiary: var(--txt-tertiary);
  --text-color-placeholder: var(--txt-placeholder);
  --text-color-disabled: var(--txt-disabled);
  --text-color-accent-primary: var(--txt-accent-primary);
  --text-color-accent-secondary: var(--txt-accent-secondary);
  --text-color-on-color: var(--txt-on-color);
  --text-color-on-color-disabled: var(--txt-on-color-disabled);
  --text-color-inverse: var(--txt-inverse);
  --text-color-success-primary: var(--txt-success-primary);
  --text-color-success-secondary: var(--txt-success-secondary);
  --text-color-warning-primary: var(--txt-warning-primary);
  --text-color-warning-secondary: var(--txt-warning-secondary);
  --text-color-danger-primary: var(--txt-danger-primary);
  --text-color-danger-secondary: var(--txt-danger-secondary);
  /* Stroke colors */
  --stroke-primary: var(--text-color-primary);
  --stroke-secondary: var(--text-color-secondary);
  --stroke-tertiary: var(--text-color-tertiary);
  --stroke-placeholder: var(--text-color-placeholder);
  --stroke-disabled: var(--text-color-disabled);
  --stroke-accent-primary: var(--text-color-accent-primary);
  --stroke-accent-secondary: var(--text-color-accent-secondary);
  --stroke-on-color: var(--text-color-on-color);
  --stroke-on-color-disabled: var(--text-color-on-color-disabled);
  --stroke-inverse: var(--text-color-inverse);
  --stroke-success: var(--text-color-success);
  --stroke-success-primary: var(--text-color-success-primary);
  --stroke-success-secondary: var(--text-color-success-secondary);
  --stroke-warning: var(--text-color-warning);
  --stroke-warning-primary: var(--text-color-warning-primary);
  --stroke-warning-secondary: var(--text-color-warning-secondary);
  --stroke-danger: var(--text-color-danger);
  --stroke-danger-primary: var(--text-color-danger-primary);
  --stroke-danger-secondary: var(--text-color-danger-secondary);
  /* Fill colors */
  --fill-primary: var(--text-color-primary);
  --fill-secondary: var(--text-color-secondary);
  --fill-tertiary: var(--text-color-tertiary);
  --fill-placeholder: var(--text-color-placeholder);
  --fill-disabled: var(--text-color-disabled);
  --fill-accent-primary: var(--text-color-accent-primary);
  --fill-accent-secondary: var(--text-color-accent-secondary);
  --fill-on-color: var(--text-color-on-color);
  --fill-on-color-disabled: var(--text-color-on-color-disabled);
  --fill-inverse: var(--text-color-inverse);
  --fill-success: var(--text-color-success);
  --fill-success-primary: var(--text-color-success-primary);
  --fill-success-secondary: var(--text-color-success-secondary);
  --fill-warning: var(--text-color-warning);
  --fill-warning-primary: var(--text-color-warning-primary);
  --fill-warning-secondary: var(--text-color-warning-secondary);
  --fill-danger: var(--text-color-danger);
  --fill-danger-primary: var(--text-color-danger-primary);
  --fill-danger-secondary: var(--text-color-danger-secondary);
  /* Icon colors */
  --text-color-icon-primary: var(--txt-icon-primary);
  --text-color-icon-accent-subtle: var(--txt-icon-accent-subtle);
  --text-color-icon-accent-primary: var(--txt-icon-accent-primary);
  --text-color-icon-danger-primary: var(--txt-icon-danger-primary);
  --text-color-icon-danger-secondary: var(--txt-icon-danger-secondary);
  --text-color-icon-success-primary: var(--txt-icon-success-primary);
  --text-color-icon-success-secondary: var(--txt-icon-success-secondary);
  --text-color-icon-warning-primary: var(--txt-icon-warning-primary);
  --text-color-icon-warning-secondary: var(--txt-icon-warning-secondary);
  --text-color-icon-accent-primary-inverse: var(--txt-icon-accent-primary-inverse);
  --text-color-icon-accent-secondary: var(--txt-icon-accent-secondary);
  --text-color-icon-secondary: var(--txt-icon-secondary);
  --text-color-icon-tertiary: var(--txt-icon-tertiary);
  --text-color-icon-placeholder: var(--txt-icon-placeholder);
  --text-color-icon-disabled: var(--txt-icon-disabled);
  --text-color-icon-danger: var(--txt-icon-danger);
  --text-color-icon-on-color: var(--txt-icon-on-color);
  --text-color-icon-on-color-disabled: var(--txt-icon-on-color-disabled);
  --text-color-icon-inverse: var(--txt-icon-inverse);
  /* Link colors */
  --text-color-link-primary: var(--txt-link-primary);
  --text-color-link-primary-hover: var(--txt-link-primary-hover);
  --text-color-link-secondary: var(--txt-link-secondary);
  /* Neutral plan colors */
  --text-color-plans-neutral-primary: var(--txt-plans-neutral-primary);
  --text-color-plans-neutral-color: var(--txt-plans-neutral-color);
  --background-color-plans-neutral-subtle: var(--bg-plans-neutral-subtle);
  --background-color-plans-neutral-solid: var(--bg-plans-neutral-solid);
  /* Brand plan colors */
  --text-color-plans-brand-primary: var(--txt-plans-brand-primary);
  --text-color-plans-brand-color: var(--txt-plans-brand-color);
  --background-color-plans-brand-subtle: var(--bg-plans-brand-subtle);
  --background-color-plans-brand-solid: var(--bg-plans-brand-solid);
  /* Label colors */
  --color-label-indigo-bg: var(--label-indigo-bg);
  --color-label-indigo-bg-strong: var(--label-indigo-bg-strong);
  --color-label-indigo-hover: var(--label-indigo-hover);
  --color-label-indigo-icon: var(--label-indigo-icon);
  --color-label-indigo-text: var(--label-indigo-text);
  --color-label-indigo-border: var(--label-indigo-border);
  --color-label-indigo-focus: var(--label-indigo-focus);
  --color-label-emerald-bg: var(--label-emerald-bg);
  --color-label-emerald-bg-strong: var(--label-emerald-bg-strong);
  --color-label-emerald-hover: var(--label-emerald-hover);
  --color-label-emerald-icon: var(--label-emerald-icon);
  --color-label-emerald-text: var(--label-emerald-text);
  --color-label-emerald-border: var(--label-emerald-border);
  --color-label-emerald-focus: var(--label-emerald-focus);
  --color-label-grey-bg: var(--label-grey-bg);
  --color-label-grey-bg-strong: var(--label-grey-bg-strong);
  --color-label-grey-hover: var(--label-grey-hover);
  --color-label-grey-icon: var(--label-grey-icon);
  --color-label-grey-text: var(--label-grey-text);
  --color-label-grey-border: var(--label-grey-border);
  --color-label-grey-focus: var(--label-grey-focus);
  --color-label-crimson-bg: var(--label-crimson-bg);
  --color-label-crimson-bg-strong: var(--label-crimson-bg-strong);
  --color-label-crimson-hover: var(--label-crimson-hover);
  --color-label-crimson-icon: var(--label-crimson-icon);
  --color-label-crimson-text: var(--label-crimson-text);
  --color-label-crimson-border: var(--label-crimson-border);
  --color-label-crimson-focus: var(--label-crimson-focus);
  --color-label-yellow-bg: var(--label-yellow-bg);
  --color-label-yellow-bg-strong: var(--label-yellow-bg-strong);
  --color-label-yellow-hover: var(--label-yellow-hover);
  --color-label-yellow-icon: var(--label-yellow-icon);
  --color-label-yellow-text: var(--label-yellow-text);
  --color-label-yellow-border: var(--label-yellow-border);
  --color-label-yellow-focus: var(--label-yellow-focus);
  /* ---------- Priority colors ---------- */
  /* Text */
  --text-color-priority-urgent: var(--priority-urgent);
  --text-color-priority-high: var(--priority-high);
  --text-color-priority-medium: var(--priority-medium);
  --text-color-priority-low: var(--priority-low);
  --text-color-priority-none: var(--priority-none);
  /* Border */
  --border-color-priority-urgent: var(--priority-urgent);
  --border-color-priority-high: var(--priority-high);
  --border-color-priority-medium: var(--priority-medium);
  --border-color-priority-low: var(--priority-low);
  --border-color-priority-none: var(--priority-none);
}

/* ---------- Typography tokens ---------- */
@theme {
  /* ---------- Font family ---------- */
  --font-*: initial;
  --font-heading:
    "Inter Variable", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol",
    "Noto Color Emoji";
  --font-body:
    "Inter Variable", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol",
    "Noto Color Emoji";
  --font-code:
    "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;

  /* ---------- Font weight ---------- */
  --font-weight-*: initial;
  --font-weight-light: 300;
  --font-weight-regular: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;
  --font-weight-heavy: 800;

  /* ---------- Font size ---------- */
  --text-*: initial;
  --text-9: 0.5625rem;
  --text-10: 0.625rem;
  --text-11: 0.6875rem;
  --text-12: 0.75rem;
  --text-13: 0.8125rem;
  --text-14: 0.875rem;
  --text-16: 1rem;
  --text-18: 1.125rem;
  --text-20: 1.25rem;
  --text-24: 1.5rem;
  --text-28: 1.75rem;
  --text-32: 2rem;
  --text-40: 2.5rem;

  /* ---------- Letter spacing ---------- */
  --tracking-*: initial;
  --tracking-extra-tight: -0.025rem;
  --tracking-tight: -0.05rem;
  --tracking-default: 0;
  --tracking-wide: 0.05rem;

  /* ---------- Heading text tokens ---------- */
  --text-h1-regular: var(--text-32);
  --text-h1-regular--line-height: 1.2;
  --text-h1-regular--letter-spacing: var(--tracking-default);
  --text-h1-regular--font-weight: var(--font-weight-regular);

  --text-h1-medium: var(--text-32);
  --text-h1-medium--line-height: 1.2;
  --text-h1-medium--letter-spacing: var(--tracking-default);
  --text-h1-medium--font-weight: var(--font-weight-medium);

  --text-h1-semibold: var(--text-32);
  --text-h1-semibold--line-height: 1.2;
  --text-h1-semibold--letter-spacing: var(--tracking-default);
  --text-h1-semibold--font-weight: var(--font-weight-semibold);

  --text-h1-bold: var(--text-32);
  --text-h1-bold--line-height: 1.2;
  --text-h1-bold--letter-spacing: var(--tracking-default);
  --text-h1-bold--font-weight: var(--font-weight-bold);

  --text-h2-regular: var(--text-28);
  --text-h2-regular--line-height: 1.2;
  --text-h2-regular--letter-spacing: var(--tracking-default);
  --text-h2-regular--font-weight: var(--font-weight-regular);

  --text-h2-medium: var(--text-28);
  --text-h2-medium--line-height: 1.2;
  --text-h2-medium--letter-spacing: var(--tracking-default);
  --text-h2-medium--font-weight: var(--font-weight-medium);

  --text-h2-semibold: var(--text-28);
  --text-h2-semibold--line-height: 1.2;
  --text-h2-semibold--letter-spacing: var(--tracking-default);
  --text-h2-semibold--font-weight: var(--font-weight-semibold);

  --text-h2-bold: var(--text-28);
  --text-h2-bold--line-height: 1.2;
  --text-h2-bold--letter-spacing: var(--tracking-default);
  --text-h2-bold--font-weight: var(--font-weight-bold);

  --text-h3-regular: var(--text-24);
  --text-h3-regular--line-height: 1.2;
  --text-h3-regular--letter-spacing: var(--tracking-default);
  --text-h3-regular--font-weight: var(--font-weight-regular);

  --text-h3-medium: var(--text-24);
  --text-h3-medium--line-height: 1.2;
  --text-h3-medium--letter-spacing: var(--tracking-default);
  --text-h3-medium--font-weight: var(--font-weight-medium);

  --text-h3-semibold: var(--text-24);
  --text-h3-semibold--line-height: 1.2;
  --text-h3-semibold--letter-spacing: var(--tracking-default);
  --text-h3-semibold--font-weight: var(--font-weight-semibold);

  --text-h3-bold: var(--text-24);
  --text-h3-bold--line-height: 1.2;
  --text-h3-bold--letter-spacing: var(--tracking-default);
  --text-h3-bold--font-weight: var(--font-weight-bold);

  --text-h4-regular: var(--text-20);
  --text-h4-regular--line-height: 1.2;
  --text-h4-regular--letter-spacing: var(--tracking-default);
  --text-h4-regular--font-weight: var(--font-weight-regular);

  --text-h4-medium: var(--text-20);
  --text-h4-medium--line-height: 1.2;
  --text-h4-medium--letter-spacing: var(--tracking-default);
  --text-h4-medium--font-weight: var(--font-weight-medium);

  --text-h4-semibold: var(--text-20);
  --text-h4-semibold--line-height: 1.2;
  --text-h4-semibold--letter-spacing: var(--tracking-default);
  --text-h4-semibold--font-weight: var(--font-weight-semibold);

  --text-h4-bold: var(--text-20);
  --text-h4-bold--line-height: 1.2;
  --text-h4-bold--letter-spacing: var(--tracking-default);
  --text-h4-bold--font-weight: var(--font-weight-bold);

  --text-h5-regular: var(--text-18);
  --text-h5-regular--line-height: 1.2;
  --text-h5-regular--letter-spacing: var(--tracking-default);
  --text-h5-regular--font-weight: var(--font-weight-regular);

  --text-h5-medium: var(--text-18);
  --text-h5-medium--line-height: 1.2;
  --text-h5-medium--letter-spacing: var(--tracking-default);
  --text-h5-medium--font-weight: var(--font-weight-medium);

  --text-h5-semibold: var(--text-18);
  --text-h5-semibold--line-height: 1.2;
  --text-h5-semibold--letter-spacing: var(--tracking-default);
  --text-h5-semibold--font-weight: var(--font-weight-semibold);

  --text-h5-bold: var(--text-18);
  --text-h5-bold--line-height: 1.2;
  --text-h5-bold--letter-spacing: var(--tracking-default);
  --text-h5-bold--font-weight: var(--font-weight-bold);

  --text-h6-regular: var(--text-16);
  --text-h6-regular--line-height: 1.2;
  --text-h6-regular--letter-spacing: var(--tracking-default);
  --text-h6-regular--font-weight: var(--font-weight-regular);

  --text-h6-medium: var(--text-16);
  --text-h6-medium--line-height: 1.2;
  --text-h6-medium--letter-spacing: var(--tracking-default);
  --text-h6-medium--font-weight: var(--font-weight-medium);

  --text-h6-semibold: var(--text-16);
  --text-h6-semibold--line-height: 1.2;
  --text-h6-semibold--letter-spacing: var(--tracking-default);
  --text-h6-semibold--font-weight: var(--font-weight-semibold);

  --text-h6-bold: var(--text-16);
  --text-h6-bold--line-height: 1.2;
  --text-h6-bold--letter-spacing: var(--tracking-default);
  --text-h6-bold--font-weight: var(--font-weight-bold);

  /* ---------- Body text tokens ---------- */
  --text-body-md-regular: var(--text-16);
  --text-body-md-regular--line-height: 1.4;
  --text-body-md-regular--letter-spacing: calc(0.01 * var(--text-16));
  --text-body-md-regular--font-weight: var(--font-weight-regular);

  --text-body-md-medium: var(--text-16);
  --text-body-md-medium--line-height: 1.4;
  --text-body-md-medium--letter-spacing: calc(0.01 * var(--text-16));
  --text-body-md-medium--font-weight: var(--font-weight-medium);

  --text-body-md-semibold: var(--text-16);
  --text-body-md-semibold--line-height: 1.4;
  --text-body-md-semibold--letter-spacing: calc(0.01 * var(--text-16));
  --text-body-md-semibold--font-weight: var(--font-weight-semibold);

  --text-body-md-bold: var(--text-16);
  --text-body-md-bold--line-height: 1.4;
  --text-body-md-bold--letter-spacing: calc(0.01 * var(--text-16));
  --text-body-md-bold--font-weight: var(--font-weight-bold);

  --text-body-sm-regular: var(--text-14);
  --text-body-sm-regular--line-height: 1.4;
  --text-body-sm-regular--letter-spacing: calc(0.01 * var(--text-14));
  --text-body-sm-regular--font-weight: var(--font-weight-regular);

  --text-body-sm-medium: var(--text-14);
  --text-body-sm-medium--line-height: 1.4;
  --text-body-sm-medium--letter-spacing: calc(0.01 * var(--text-14));
  --text-body-sm-medium--font-weight: var(--font-weight-medium);

  --text-body-sm-semibold: var(--text-14);
  --text-body-sm-semibold--line-height: 1.4;
  --text-body-sm-semibold--letter-spacing: calc(0.01 * var(--text-14));
  --text-body-sm-semibold--font-weight: var(--font-weight-semibold);

  --text-body-sm-bold: var(--text-14);
  --text-body-sm-bold--line-height: 1.4;
  --text-body-sm-bold--letter-spacing: calc(0.01 * var(--text-14));
  --text-body-sm-bold--font-weight: var(--font-weight-bold);

  --text-body-xs-regular: var(--text-13);
  --text-body-xs-regular--line-height: 1.4;
  --text-body-xs-regular--letter-spacing: calc(0.01 * var(--text-13));
  --text-body-xs-regular--font-weight: var(--font-weight-regular);

  --text-body-xs-medium: var(--text-13);
  --text-body-xs-medium--line-height: 1.4;
  --text-body-xs-medium--letter-spacing: calc(0.01 * var(--text-13));
  --text-body-xs-medium--font-weight: var(--font-weight-medium);

  --text-body-xs-semibold: var(--text-13);
  --text-body-xs-semibold--line-height: 1.4;
  --text-body-xs-semibold--letter-spacing: calc(0.01 * var(--text-13));
  --text-body-xs-semibold--font-weight: var(--font-weight-semibold);

  --text-body-xs-bold: var(--text-13);
  --text-body-xs-bold--line-height: 1.4;
  --text-body-xs-bold--letter-spacing: calc(0.01 * var(--text-13));
  --text-body-xs-bold--font-weight: var(--font-weight-bold);

  --text-caption-md-regular: var(--text-12);
  --text-caption-md-regular--line-height: 1.1;
  --text-caption-md-regular--letter-spacing: var(--tracking-default);
  --text-caption-md-regular--font-weight: var(--font-weight-regular);

  --text-caption-md-medium: var(--text-12);
  --text-caption-md-medium--line-height: 1.1;
  --text-caption-md-medium--letter-spacing: var(--tracking-default);
  --text-caption-md-medium--font-weight: var(--font-weight-medium);

  --text-caption-md-semibold: var(--text-12);
  --text-caption-md-semibold--line-height: 1.1;
  --text-caption-md-semibold--letter-spacing: var(--tracking-default);
  --text-caption-md-semibold--font-weight: var(--font-weight-semibold);

  --text-caption-md-bold: var(--text-12);
  --text-caption-md-bold--line-height: 1.1;
  --text-caption-md-bold--letter-spacing: var(--tracking-default);
  --text-caption-md-bold--font-weight: var(--font-weight-bold);

  --text-caption-sm-regular: var(--text-11);
  --text-caption-sm-regular--line-height: 1.1;
  --text-caption-sm-regular--letter-spacing: var(--tracking-default);
  --text-caption-sm-regular--font-weight: var(--font-weight-regular);

  --text-caption-sm-medium: var(--text-11);
  --text-caption-sm-medium--line-height: 1.1;
  --text-caption-sm-medium--letter-spacing: var(--tracking-default);
  --text-caption-sm-medium--font-weight: var(--font-weight-medium);

  --text-caption-sm-semibold: var(--text-11);
  --text-caption-sm-semibold--line-height: 1.1;
  --text-caption-sm-semibold--letter-spacing: var(--tracking-default);
  --text-caption-sm-semibold--font-weight: var(--font-weight-semibold);

  --text-caption-sm-bold: var(--text-11);
  --text-caption-sm-bold--line-height: 1.1;
  --text-caption-sm-bold--letter-spacing: var(--tracking-default);
  --text-caption-sm-bold--font-weight: var(--font-weight-bold);

  --text-caption-xs-regular: var(--text-10);
  --text-caption-xs-regular--line-height: 1;
  --text-caption-xs-regular--letter-spacing: calc(0.01 * var(--text-10));
  --text-caption-xs-regular--font-weight: var(--font-weight-regular);

  --text-caption-xs-medium: var(--text-10);
  --text-caption-xs-medium--line-height: 1;
  --text-caption-xs-medium--letter-spacing: calc(0.01 * var(--text-10));
  --text-caption-xs-medium--font-weight: var(--font-weight-medium);

  --text-caption-xs-semibold: var(--text-10);
  --text-caption-xs-semibold--line-height: 1;
  --text-caption-xs-semibold--letter-spacing: calc(0.01 * var(--text-10));
  --text-caption-xs-semibold--font-weight: var(--font-weight-semibold);

  --text-caption-xs-bold: var(--text-10);
  --text-caption-xs-bold--line-height: 1;
  --text-caption-xs-bold--letter-spacing: calc(0.01 * var(--text-10));
  --text-caption-xs-bold--font-weight: var(--font-weight-bold);
}

/* -------------------- Utility classes -------------------- */
@utility scrollbar-hide {
  -ms-overflow-style: none;
  scrollbar-width: none;
  &::-webkit-scrollbar {
    display: none;
  }
}

@utility material-symbols-rounded {
  font-family: "Material Symbols Rounded";
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  display: inline-block;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  font-feature-settings: "liga";
  -webkit-font-smoothing: antialiased;
}

/* Tailwind typography plugin overwrites */
@utility prose {
  --tw-prose-body: var(--text-color-primary);
  --tw-prose-p: var(--text-color-primary);
  --tw-prose-headings: var(--text-color-primary);
  --tw-prose-lead: var(--text-color-primary);
  --tw-prose-links: var(--text-color-link-primary);
  --tw-prose-bold: "inherit";
  --tw-prose-counters: var(--text-color-primary);
  --tw-prose-bullets: var(--text-color-primary);
  --tw-prose-hr: var(--text-color-primary);
  --tw-prose-quotes: var(--text-color-primary);
  --tw-prose-quote-borders: var(--border-color-subtle);
  --tw-prose-code: var(--text-color-primary);
  --tw-prose-pre-code: var(--text-color-primary);
  --tw-prose-pre-bg: var(--background-color-layer-1);
  --tw-prose-th-borders: var(--border-color-subtle);
  --tw-prose-td-borders: var(--border-color-subtle);
}
