@custom-variant dark (&:is(.dark *));

:root {
  /* 颜色 */
  --glo-color-orange-0: #ffecde;
  --glo-color-orange-10: #ffd7b8;
  --glo-color-orange-20: #ffbf8f;
  --glo-color-orange-30: #ffa264;
  --glo-color-orange-40: #fd8239;
  --glo-color-orange-50: #f25e0f;
  --glo-color-orange-60: #d04500;
  --glo-color-orange-70: #a83400;
  --glo-color-orange-80: #7b2300;
  --glo-color-orange-90: #4d1400;
  --glo-color-yellow-0: #fff8de;
  --glo-color-yellow-10: #ffefb3;
  --glo-color-yellow-20: #ffe386;
  --glo-color-yellow-30: #fcd258;
  --glo-color-yellow-40: #f3bc2a;
  --glo-color-yellow-50: #e6a100;
  --glo-color-yellow-60: #c78800;
  --glo-color-yellow-70: #a26b00;
  --glo-color-yellow-80: #784d00;
  --glo-color-yellow-90: #4d2f00;
  --glo-color-grass-0: #f8ffde;
  --glo-color-grass-10: #edfcb8;
  --glo-color-grass-20: #e0f68f;
  --glo-color-grass-30: #cfed67;
  --glo-color-grass-40: #bae041;
  --glo-color-grass-50: #a0cd1e;
  --glo-color-grass-60: #82b500;
  --glo-color-grass-70: #689600;
  --glo-color-grass-80: #4b7200;
  --glo-color-grass-90: #304d00;
  --glo-color-green-0: #deffe7;
  --glo-color-green-10: #b9fccd;
  --glo-color-green-20: #94f7b1;
  --glo-color-green-30: #6fee96;
  --glo-color-green-40: #4ae27b;
  --glo-color-green-50: #28d061;
  --glo-color-green-60: #0bb84a;
  --glo-color-green-70: #00983c;
  --glo-color-green-80: #007331;
  --glo-color-green-90: #004d22;
  --glo-color-mint-0: #defff8;
  --glo-color-mint-10: #b6fbed;
  --glo-color-mint-20: #8df3e2;
  --glo-color-mint-30: #65e9d5;
  --glo-color-mint-40: #3fdac4;
  --glo-color-mint-50: #1dc7b0;
  --glo-color-mint-60: #00ad96;
  --glo-color-mint-70: #009182;
  --glo-color-mint-80: #006f67;
  --glo-color-mint-90: #004d49;
  --glo-color-sky-0: #deecff;
  --glo-color-sky-10: #b5d2fd;
  --glo-color-sky-20: #8cb5f9;
  --glo-color-sky-30: #6296f2;
  --glo-color-sky-40: #3a76e6;
  --glo-color-sky-50: #1e58d2;
  --glo-color-sky-60: #063bb8;
  --glo-color-sky-70: #002a98;
  --glo-color-sky-80: #001e73;
  --glo-color-sky-90: #00134d;
  --glo-color-blue-0: #dee0ff;
  --glo-color-blue-10: #bcbeff;
  --glo-color-blue-20: #9797ff;
  --glo-color-blue-30: #7370ff;
  --glo-color-blue-40: #4e48ff;
  --glo-color-blue-50: #3126e6;
  --glo-color-blue-60: #180ac7;
  --glo-color-blue-70: #0f00a2;
  --glo-color-blue-80: #0d0078;
  --glo-color-blue-90: #09004d;
  --glo-color-violet-0: #e4deff;
  --glo-color-violet-10: #c7b7fd;
  --glo-color-violet-20: #aa90f9;
  --glo-color-violet-30: #8d68f2;
  --glo-color-violet-40: #7b47ff;
  --glo-color-violet-50: #5923d2;
  --glo-color-violet-60: #4309b8;
  --glo-color-violet-70: #340098;
  --glo-color-violet-80: #290073;
  --glo-color-violet-90: #1c004d;
  --glo-color-purple-0: #fbdeff;
  --glo-color-purple-10: #f2b7fd;
  --glo-color-purple-20: #e690f9;
  --glo-color-purple-30: #d668f2;
  --glo-color-purple-40: #c241e6;
  --glo-color-purple-50: #a823d2;
  --glo-color-purple-60: #8a09b8;
  --glo-color-purple-70: #6e0098;
  --glo-color-purple-80: #520073;
  --glo-color-purple-90: #36004d;
  --glo-color-magenta-0: #fbdeff;
  --glo-color-magenta-10: #fdb6d3;
  --glo-color-magenta-20: #f98dbc;
  --glo-color-magenta-30: #f264a4;
  --glo-color-magenta-40: rgb(107, 134, 255);
  --glo-color-magenta-50: #d21f77;
  --glo-color-magenta-60: #b80761;
  --glo-color-magenta-70: #980050;
  --glo-color-magenta-80: #73003e;
  --glo-color-magenta-90: #4d002a;
  --glo-color-red-0: #ffdede;
  --glo-color-red-10: #ffbcbc;
  --glo-color-red-20: #ff9696;
  --glo-color-red-30: #f97372;
  --glo-color-red-40: #ef4e4d;
  --glo-color-red-50: #e12a2a;
  --glo-color-red-60: #c2110e;
  --glo-color-red-70: #a00700;
  --glo-color-red-80: #770800;
  --glo-color-red-90: #4d0600;
  --glo-color-grey-0: #e8e4eb;
  --glo-color-grey-10: #d4d0d8;
  --glo-color-grey-20: #aaa3b1;
  --glo-color-grey-30: #958e9e;
  --glo-color-grey-40: #847d8b;
  --glo-color-grey-50: #706a78;
  --glo-color-grey-60: #5c5565;
  --glo-color-grey-70: #484151;
  --glo-color-grey-80: #352e3e;
  --glo-color-grey-90: #282233;
  --glo-color-grey-100: #211a2b;
  --glo-color-white: #ffffff;
  --glo-color-black: #000000;

  /* 透明度 */
  --glo-transparent-t0: 0;
  --glo-transparent-t2: 0.02;
  --glo-transparent-t4: 0.04;
  --glo-transparent-t6: 0.06;
  --glo-transparent-t8: 0.08;
  --glo-transparent-t12: 0.12;
  --glo-transparent-t15: 0.15;
  --glo-transparent-t20: 0.2;
  --glo-transparent-t25: 0.25;
  --glo-transparent-t30: 0.3;
  --glo-transparent-t45: 0.45;
  --glo-transparent-t65: 0.65;
  --glo-transparent-t85: 0.85;

  /* 渐变方向 */
  --glo-deg-ltr: to right;
  --glo-deg-ttb: to bottom;
  --glo-deg-lttrb: to bottom right;

  /* 字体 */
  --glo-font-family-sys: var(--font-poppins);
  --glo-font-family-numDisplay: var(--font-display-num);
  --glo-font-family-num: var(--font-poppins);
  --glo-font-family-display: var(--font-oleo-script-swash-caps);
  --glo-font-style-italic: Italic;
  --glo-font-size-64: 64px;
  --glo-font-size-48: 48px;
  --glo-font-size-36: 36px;
  --glo-font-size-24: 24px;
  --glo-font-size-20: 20px;
  --glo-font-size-18: 18px;
  --glo-font-size-16: 16px;
  --glo-font-size-14: 14px;
  --glo-font-size-12: 12px;
  --glo-font-weight-regular: 400;
  --glo-font-weight-medium: 500;
  --glo-font-weight-semibold: 600;
  --glo-font-weight-bold: 700;
  --glo-font-lineheight-size64: 80px;
  --glo-font-lineheight-size48: 56px;
  --glo-font-lineheight-size36: 48px;
  --glo-font-lineheight-size24: 28px;
  --glo-font-lineheight-size20: 24px;
  --glo-font-lineheight-size18: 24px;
  --glo-font-lineheight-size16: 24px;
  --glo-font-lineheight-size14: 20px;
  --glo-font-lineheight-size12: 20px;
  --glo-font-lineheight-size0: 1;

  /* 比例 */
  --glo-radio-1-1: 1: 1;
  --glo-radio-4-3: 4: 3;
  --glo-radio-3-2: 3: 2;
  --glo-radio-2-1: 2: 1;
  --glo-radio-16-9: 16: 9;

  /* 圆角 */
  --glo-radius-4: 4px;
  --glo-radius-8: 8px;
  --glo-radius-12: 12px;
  --glo-radius-16: 16px;
  --glo-radius-24: 24px;
  --glo-radius-round: 0.5;

  /* 边框 */
  --glo-border-1: 1px;
  --glo-border-2: 2px;
  --glo-border-4: 4px;

  /* 间距 */
  --glo-spacing-4: 4px;
  --glo-spacing-8: 8px;
  --glo-spacing-12: 12px;
  --glo-spacing-16: 16px;
  --glo-spacing-24: 24px;
  --glo-spacing-32: 32px;
  --glo-spacing-48: 48px;
  --glo-spacing-64: 64px;
  --glo-spacing-80: 80px;
  --glo-spacing-128: 128px;

  /* 断点 */
  --breackpoint-xs: <768px;
  --breackpoint-s: ≥768px;
  --breackpoint-m: ≥1024px;
  --breackpoint-l: ≥1280px;
  --breackpoint-xl: ≥1536;
  --radius: 0.625rem;
  --card: oklch(1 0 0);
  --card-foreground: oklch(0.145 0 0);
  --popover: oklch(1 0 0);
  --popover-foreground: oklch(0.145 0 0);
  --primary: oklch(0.205 0 0);
  --primary-foreground: oklch(0.985 0 0);
  --secondary: oklch(0.97 0 0);
  --secondary-foreground: oklch(0.205 0 0);
  --muted: oklch(0.97 0 0);
  --muted-foreground: oklch(0.556 0 0);
  --accent: oklch(0.97 0 0);
  --accent-foreground: oklch(0.205 0 0);
  --destructive: oklch(0.577 0.245 27.325);
  --border: oklch(0.922 0 0);
  --input: oklch(0.922 0 0);
  --ring: oklch(0.708 0 0);
  --chart-1: oklch(0.646 0.222 41.116);
  --chart-2: oklch(0.6 0.118 184.704);
  --chart-3: oklch(0.398 0.07 227.392);
  --chart-4: oklch(0.828 0.189 84.429);
  --chart-5: oklch(0.769 0.188 70.08);
  --sidebar: oklch(0.985 0 0);
  --sidebar-foreground: oklch(0.145 0 0);
  --sidebar-primary: oklch(0.205 0 0);
  --sidebar-primary-foreground: oklch(0.985 0 0);
  --sidebar-accent: oklch(0.97 0 0);
  --sidebar-accent-foreground: oklch(0.205 0 0);
  --sidebar-border: oklch(0.922 0 0);
  --sidebar-ring: oklch(0.708 0 0);
  --background: oklch(1 0 0);
  --foreground: oklch(0.145 0 0);
}

@theme inline {
  /* Web System Tokens */
  /* Primary */
  --color-primary-normal: var(--glo-color-magenta-50);
  --color-primary-hover: var(--glo-color-magenta-40);
  --color-primary-press: var(--glo-color-magenta-60);
  --color-primary-disabled: var(--color-surface-nest-disabled);
  --color-primary-variant-normal: var(--glo-color-magenta-40);
  --color-primary-variant-hover: var(--glo-color-magenta-30);
  --color-primary-variant-press: var(--glo-color-grey-40);
  --color-primary-variant-disabled: var(--color-surface-nest-disabled);
  --color-primary-gradient-normal: linear-gradient(
    270deg,
    rgba(37, 88, 255, 1) 0%,
    rgba(168, 37, 255, 1) 100%
  );
  --color-primary-gradient-hover: linear-gradient(
    var(--glo-deg-ltr),
    var(--glo-color-magenta-20),
    var(--glo-color-purple-30)
  );
  --color-primary-gradient-press: linear-gradient(
    var(--glo-deg-ltr),
    var(--glo-color-magenta-40),
    var(--glo-color-purple-50)
  );
  --color-primary-gradient-disabled: var(--color-surface-nest-disabled);
  --color-primary-onpic-normal: rgba(123, 71, 255, 0.85);
  --color-primary-onpic-hover: rgba(141, 104, 242, 0.85);
  --color-primary-onpic-press: rgba(89, 35, 210, 0.85);

  /* Important */
  --color-important-normal: var(--glo-color-red-50);
  --color-important-hover: var(--glo-color-red-40);
  --color-important-press: var(--glo-color-red-60);
  --color-important-disabled: var(--color-surface-nest-disabled);
  --color-important-variant-normal: var(--glo-color-red-40);
  --color-important-variant-hover: var(--glo-color-red-30);
  --color-important-variant-press: var(--glo-color-red-50);
  --color-important-variant-disabled: rgba(188, 190, 255, 0.25);
  --color-important-gradient-normal: sha;
  --color-important-gradient-hover: linear-gradient(
    var(--glo-deg-ltr),
    var(--glo-color-orange-40),
    var(--glo-color-red-40)
  );
  --color-important-gradient-press: linear-gradient(
    var(--glo-deg-ltr),
    var(--glo-color-orange-60),
    var(--glo-color-red-60)
  );
  --color-important-gradient-disabled: var(--color-surface-nest-disabled);
  --color-important-onpic-normal: rgba(225, 42, 42, 0.85);

  /* Positive */
  --color-positive-normal: var(--glo-color-mint-60);
  --color-positive-hover: var(--glo-color-mint-50);
  --color-positive-press: var(--glo-color-mint-70);
  --color-positive-disabled: var(--color-surface-nest-disabled);
  --color-positive-variant-normal: var(--glo-color-mint-40);
  --color-positive-variant-hover: var(--glo-color-mint-30);
  --color-positive-variant-press: var(--glo-color-mint-50);
  --color-positive-variant-disabled: rgba(188, 190, 255, 0.25);
  --color-positive-gradient-normal: linear-gradient(
    var(--glo-deg-ltr),
    var(--glo-color-green-40),
    var(--glo-color-mint-60)
  );
  --color-positive-gradient-hover: linear-gradient(
    var(--glo-deg-ltr),
    var(--glo-color-green-40),
    var(--glo-color-mint-50)
  );
  --color-positive-gradient-press: ;
  --color-positive-gradient-disabled: var(--color-surface-nest-disabled);
  --color-positive-onpic-normal: rgba(29, 199, 176, 0.85);

  /* Warning */
  --color-warning-normal: var(--glo-color-orange-50);
  --color-warning-hover: var(--glo-color-orange-40);
  --color-warning-press: var(--glo-color-orange-60);
  --color-warning-disabled: var(--color-surface-nest-disabled);
  --color-warning-variant-normal: var(--glo-color-orange-40);
  --color-warning-variant-hover: var(--glo-color-orange-30);
  --color-warning-variant-press: var(--glo-color-orange-50);
  --color-warning-variant-disabled: rgba(188, 190, 255, 0.25);
  --color-warning-gradient-normal: linear-gradient(
    var(--glo-deg-ltr),
    var(--glo-color-yellow-40),
    var(--glo-color-orange-50)
  );
  --color-warning-gradient-hover: linear-gradient(
    var(--glo-deg-ltr),
    var(--glo-color-yellow-30),
    var(--glo-color-orange-40)
  );
  --color-warning-gradient-press: linear-gradient(
    var(--glo-deg-ltr),
    var(--glo-color-yellow-50),
    var(--glo-color-orange-60)
  );
  --color-warning-gradient-disabled: var(--color-surface-nest-disabled);
  --color-warning-onpic-normal: rgba(242, 94, 15, 0.85);

  /* Emphasis */
  --color-emphasis-normal: var(--glo-color-blue-40);
  --color-emphasis-hover: var(--glo-color-blue-30);
  --color-emphasis-press: var(--glo-color-blue-50);
  --color-emphasis-disabled: var(--color-surface-nest-disabled);
  --color-emphasis-variant-normal: var(--glo-color-blue-30);
  --color-emphasis-variant-hover: var(--glo-color-blue-20);
  --color-emphasis-variant-press: var(--glo-color-blue-40);
  --color-emphasis-variant-disabled: rgba(188, 190, 255, 0.25);
  --color-emphasis-gradient-normal: linear-gradient(
    var(--glo-deg-ltr),
    var(--glo-color-sky-30),
    var(--glo-color-blue-40)
  );
  --color-emphasis-gradient-hover: linear-gradient(
    var(--glo-deg-ltr),
    var(--glo-color-sky-20),
    var(--glo-color-blue-30)
  );
  --color-emphasis-gradient-press: linear-gradient(
    var(--glo-deg-ltr),
    var(--glo-color-sky-40),
    var(--glo-color-blue-50)
  );
  --color-emphasis-gradient-disabled: var(--color-surface-nest-disabled);
  --color-emphasis-onpic-normal: rgba(78, 72, 255, 0.85);

  /* Background */
  --color-background-default: rgba(6, 3, 24, 1);

  /* Surface */
  --color-surface-base-normal: rgba(26, 21, 42, 1);
  --color-surface-base-hover: var(--glo-color-grey-70);
  --color-surface-base-press: var(--glo-color-grey-90);
  --color-surface-base-disabled: var(--glo-color-grey-90);
  --color-surface-base-specialmap-normal: var(--glo-color-grey-80);
  --color-surface-base-specialmap-hover: var(--glo-color-grey-70);
  --color-surface-base-specialmap-press: rgba(53, 46, 62, 0.3);
  --color-surface-base-specialmap-disabled: rgba(255, 255, 255, 0.08);
  --color-surface-float-normal: var(--glo-color-grey-70);
  --color-surface-float-hover: var(--glo-color-grey-60);
  --color-surface-float-press: var(--glo-color-grey-80);
  --color-surface-float-disabled: var(--glo-color-grey-80);
  --color-surface-top-normal: rgba(0, 0, 0, 0.65);
  --color-surface-top-hover: rgba(0, 0, 0, 0.45);
  --color-surface-top-press: rgba(0, 0, 0, 0.85);
  --color-surface-top-disabled: rgba(0, 0, 0, 0.3);
  --color-surface-district-normal: rgba(251, 222, 255, 0.04);
  --color-surface-district-hover: rgba(251, 222, 255, 0.12);
  --color-surface-district-press: rgba(0, 0, 0, 0.25);
  --color-surface-district-disabled: rgba(0, 0, 0, 0.25);
  --color-surface-nest-normal: rgba(251, 222, 255, 0.08);
  --color-surface-nest-hover: rgba(251, 222, 255, 0.12);
  --color-surface-nest-press: rgba(251, 222, 255, 0.04);
  --color-surface-nest-disabled: rgba(251, 222, 255, 0.04);
  --color-surface-element-normal: var(--color-surface-nest-normal);
  --color-surface-element-hover: var(--color-surface-nest-hover);
  --color-surface-element-press: var(--color-surface-nest-press);
  --color-surface-element-disabled: var(--color-surface-nest-disabled);
  --color-surface-element-dark-normal: rgba(0, 0, 0, 0.65);
  --color-surface-element-dark-hover: rgba(0, 0, 0, 0.45);
  --color-surface-element-dark-press: rgba(0, 0, 0, 0.85);
  --color-surface-element-dark-disabled: rgba(0, 0, 0, 0.45);
  --color-surface-element-light-normal: rgba(255, 255, 255, 0.15);
  --color-surface-element-light-hover: rgba(255, 255, 255, 0.25);
  --color-surface-element-light-press: rgba(255, 255, 255, 0.08);
  --color-surface-element-light-disabled: rgba(255, 255, 255, 0.08);
  --color-surface-white-normal: var(--glo-color-white);
  --color-surface-white-hover: rgba(255, 255, 255, 0.85);
  --color-surface-white-press: rgba(255, 255, 255, 0.65);
  --color-surface-white-disabled: rgba(255, 255, 255, 0.45);
  --color-surface-black-normal: var(--glo-color-black);

  /* Outline */
  --color-outline-normal: rgba(251, 222, 255, 0.2);
  --color-outline-hover: rgba(251, 222, 255, 0.3);
  --color-outline-press: rgba(251, 222, 255, 0.08);
  --color-outline-disabled: var(--color-surface-element-disabled);

  /* Overlay */
  --color-overlay-primary: rgba(123, 71, 255, 0.3);
  --color-overlay-gradient: linear-gradient(
    var(--glo-deg-ttb),
    var(--glo-color-black) var(--glo-transparent-t0),
    var(--glo-color-black) var(--glo-transparent-t100)
  );
  --color-overlay-dark: rgba(0, 0, 0, 0.65);
  --color-overlay-background: linear-gradient(
    var(--glo-deg-ttb),
    var(--color-background-default) var(--glo-transparent-t0),
    var(--color-background-default) var(--glo-transparent-t100)
  );
  --color-overlay-base: linear-gradient(
    var(--glo-deg-ttb),
    var(--color-surface-base-normal) var(--glo-transparent-t100),
    var(--color-surface-base-normal) var(--glo-transparent-t0)
  );

  /* Context */
  --color-context-subscribe-normal: linear-gradient(
    var(--glo-deg-ltr),
    var(--glo-color-purple-50),
    var(--glo-color-violet-50)
  );
  --color-context-subscribe-hover: linear-gradient(
    var(--glo-deg-ltr),
    var(--glo-color-purple-30),
    var(--glo-color-violet-30)
  );
  --color-context-subscribe-press: linear-gradient(
    var(--glo-deg-ltr),
    var(--glo-color-purple-70),
    var(--glo-color-violet-70)
  );
  --color-context-subscribe-disabled: var(--color-surface-nest-disabled);
  --color-context-legends-normal: linear-gradient(
    var(--glo-deg-ltr),
    var(--glo-color-yellow-20),
    var(--glo-color-yellow-60)
  );
  --color-context-legends-hover: linear-gradient(
    var(--glo-deg-ltr),
    var(--glo-color-yellow-10),
    var(--glo-color-yellow-40)
  );
  --color-context-legends-press: linear-gradient(
    var(--glo-deg-ltr),
    var(--glo-color-yellow-60),
    var(--glo-color-yellow-90)
  );
  --color-context-legends-disabled: var(--color-surface-nest-disabled);
  --color-context-legends-variant-normal: var(--glo-color-yellow-20);
  --color-context-legends-variant-hover: var(--glo-color-yellow-10);
  --color-context-legends-variant-press: var(--glo-color-yellow-40);
  --color-context-legends-variant-disabled: var(--color-surface-nest-disabled);
  --color-context-vip-normal: linear-gradient(
    var(--glo-deg-ltr),
    var(--glo-color-sky-20) 0%,
    var(--glo-color-violet-40) 60%,
    var(--glo-color-purple-30) 100%
  );
  --color-context-recharge-normal: linear-gradient(
    var(--glo-deg-ltr),
    var(--glo-color-yellow-0),
    var(--glo-color-yellow-70)
  );

  /* Text & Icon */
  --color-txt-primary-normal: var(--glo-color-white);
  --color-txt-primary-hover: var(--glo-color-magenta-30);
  --color-txt-primary-press: var(--glo-color-magenta-40);
  --color-txt-primary-disabled: var(--color-txt-disabled);
  --color-txt-primary-specialmap-normal: var(--glo-color-white);
  --color-txt-primary-specialmap-hover: rgba(255, 255, 255, 0.85);
  --color-txt-primary-specialmap-press: rgba(255, 255, 255, 0.65);
  --color-txt-primary-specialmap-disable: rgba(255, 255, 255, 0.45);
  --color-txt-secondary-normal: var(--glo-color-grey-30);
  --color-txt-secondary-hover: var(--glo-color-magenta-30);
  --color-txt-secondary-press: var(--glo-color-magenta-40);
  --color-txt-secondary-disabled: var(--color-txt-disabled);
  --color-txt-tertiary-normal: var(--glo-color-grey-40);
  --color-txt-tertiary-hover: var(--glo-color-grey-30);
  --color-txt-tertiary: var(--glo-color-grey-50);
  --color-txt-tertiary-disabled: var(--color-txt-disabled);
  --color-txt-grass: var(--glo-color-grass-40);
  --color-txt-disabled: var(--glo-color-grey-50);

  /* Visual style */
  --shadow-s: @SHA: var(--glo-color-black), var(--glo-transparent-t45), 0&0, 4;
  --shadow-m: @SHA: var(--glo-color-black), var(--glo-transparent-t45), 0&0, 8;
  --shadow-l: @SHA: var(--glo-color-black), var(--glo-transparent-t45), 0&0, 16;
  --radius-xs: var(--glo-radius-4);
  --radius-sm: var(--glo-radius-8);
  --radius-m: var(--glo-radius-12);
  --radius-lg: var(--glo-radius-16);
  --radius-xl: var(--glo-radius-24);
  --radius-round: var(--glo-radius-round);
  --radius-pill: var(--glo-radius-round);
  --border-divider: var(--glo-border-1);
  --border-s: var(--glo-border-1);
  --border-m: var(--glo-border-2);
  --border-l: var(--glo-border-4);
  --color-sidebar-ring: var(--sidebar-ring);
  --color-sidebar-border: var(--sidebar-border);
  --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
  --color-sidebar-accent: var(--sidebar-accent);
  --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
  --color-sidebar-primary: var(--sidebar-primary);
  --color-sidebar-foreground: var(--sidebar-foreground);
  --color-sidebar: var(--sidebar);
  --color-chart-5: var(--chart-5);
  --color-chart-4: var(--chart-4);
  --color-chart-3: var(--chart-3);
  --color-chart-2: var(--chart-2);
  --color-chart-1: var(--chart-1);
  --color-ring: var(--ring);
  --color-input: var(--input);
  --color-border: var(--border);
  --color-destructive: var(--destructive);
  --color-accent-foreground: var(--accent-foreground);
  --color-accent: var(--accent);
  --color-muted-foreground: var(--muted-foreground);
  --color-muted: var(--muted);
  --color-secondary-foreground: var(--secondary-foreground);
  --color-secondary: var(--secondary);
  --color-primary-foreground: var(--primary-foreground);
  --color-primary: var(--primary);
  --color-popover-foreground: var(--popover-foreground);
  --color-popover: var(--popover);
  --color-card-foreground: var(--card-foreground);
  --color-card: var(--card);
  --color-foreground: var(--foreground);
  --color-background: var(--background);

  --color-gradient-secondary-normal: linear-gradient(
    90deg,
    var(--glo-color-red-20) 0%,
    var(--glo-color-violet-20) 50%,
    var(--glo-color-mint-20) 100%
  );

  --breakpoint-xs: 375px;
  --breakpoint-sm: 768px;
  --breakpoint-md: 1024px;
  --breakpoint-lg: 1280px;
  --breakpoint-xl: 1440px;
}

/* Typography 工具类 */
@utility txt-display-xl {
  font-family: var(--font-oleo-script-swash-caps);
  font-size: var(--glo-font-size-64);
  font-weight: var(--glo-font-weight-regular);
  line-height: var(--glo-font-lineheight-size64);
}

@utility txt-display-l {
  font-family: var(--font-oleo-script-swash-caps);
  font-size: var(--glo-font-size-48);
  font-weight: var(--glo-font-weight-regular);
  line-height: var(--glo-font-lineheight-size48);
}

@utility txt-display-m {
  font-family: var(--font-oleo-script-swash-caps);
  font-size: var(--glo-font-size-24);
  font-weight: var(--glo-font-weight-regular);
  line-height: var(--glo-font-lineheight-size24);
}

@utility txt-display-s {
  font-family: var(--font-oleo-script-swash-caps);
  font-size: var(--glo-font-size-16);
  font-weight: var(--glo-font-weight-regular);
  line-height: var(--glo-font-lineheight-size16);
}

@utility txt-headline-l {
  font-family: var(--font-poppins);
  font-size: var(--glo-font-size-48);
  font-weight: var(--glo-font-weight-bold);
  line-height: var(--glo-font-lineheight-size48);
}

@utility txt-headline-m {
  font-family: var(--font-poppins);
  font-size: var(--glo-font-size-36);
  font-weight: var(--glo-font-weight-bold);
  line-height: var(--glo-font-lineheight-size36);
}

@utility txt-headline-s {
  font-family: var(--font-poppins);
  font-size: var(--glo-font-size-24);
  font-weight: var(--glo-font-weight-bold);
  line-height: var(--glo-font-lineheight-size24);
}

@utility txt-title-l {
  font-family: var(--font-poppins);
  font-size: var(--glo-font-size-24);
  font-weight: var(--glo-font-weight-semibold);
  line-height: var(--glo-font-lineheight-size24);
}

@utility txt-title-m {
  font-family: var(--font-poppins);
  font-size: var(--glo-font-size-20);
  font-weight: var(--glo-font-weight-semibold);
  line-height: var(--glo-font-lineheight-size20);
}

@utility txt-title-s {
  font-family: var(--font-poppins);
  font-size: var(--glo-font-size-16);
  font-weight: var(--glo-font-weight-semibold);
  line-height: var(--glo-font-lineheight-size16);
}

@utility txt-bodySemibold-l {
  font-family: var(--font-poppins);
  font-size: var(--glo-font-size-16);
  font-weight: var(--glo-font-weight-semibold);
  line-height: var(--glo-font-lineheight-size16);
}

@utility txt-bodySemibold-m {
  font-family: var(--font-poppins);
  font-size: var(--glo-font-size-14);
  font-weight: var(--glo-font-weight-semibold);
  line-height: var(--glo-font-lineheight-size14);
}

@utility txt-bodySemibold-s {
  font-family: var(--font-poppins);
  font-size: var(--glo-font-size-12);
  font-weight: var(--glo-font-weight-semibold);
  line-height: var(--glo-font-lineheight-size12);
}

@utility txt-body-l {
  font-family: var(--font-poppins);
  font-size: var(--glo-font-size-16);
  font-weight: var(--glo-font-weight-regular);
  line-height: var(--glo-font-lineheight-size16);
}

@utility txt-body-m {
  font-family: var(--font-poppins);
  font-size: var(--glo-font-size-14);
  font-weight: var(--glo-font-weight-regular);
  line-height: var(--glo-font-lineheight-size14);
}

@utility txt-body-s {
  font-family: var(--font-poppins);
  font-size: var(--glo-font-size-12);
  font-weight: var(--glo-font-weight-regular);
  line-height: var(--glo-font-lineheight-size12);
}

@utility txt-bodyItalic-l {
  font-family: var(--font-poppins);
  font-size: var(--glo-font-size-16);
  font-weight: var(--glo-font-weight-regular);
  line-height: var(--glo-font-lineheight-size16);
  font-style: italic;
}

@utility txt-label-l {
  font-family: var(--font-poppins);
  font-size: var(--glo-font-size-16);
  font-weight: var(--glo-font-weight-medium);
  line-height: var(--glo-font-lineheight-size16);
}

@utility txt-label-m {
  font-family: var(--font-poppins);
  font-size: var(--glo-font-size-14);
  font-weight: var(--glo-font-weight-medium);
  line-height: var(--glo-font-lineheight-size14);
}

@utility txt-label-s {
  font-family: var(--font-poppins);
  font-size: var(--glo-font-size-12);
  font-weight: var(--glo-font-weight-medium);
  line-height: var(--glo-font-lineheight-size12);
}

@utility txt-numDisplay-xl {
  font-family: var(--font-display-num);
  font-size: var(--glo-font-size-64);
  font-weight: var(--glo-font-weight-bold);
  line-height: var(--glo-font-lineheight-size64);
}

@utility txt-numDisplay-l {
  font-family: var(--font-display-num);
  font-size: var(--glo-font-size-48);
  font-weight: var(--glo-font-weight-bold);
  line-height: var(--glo-font-lineheight-size48);
}

@utility txt-numDisplay-m {
  font-family: var(--font-display-num);
  font-size: var(--glo-font-size-36);
  font-weight: var(--glo-font-weight-bold);
  line-height: var(--glo-font-lineheight-size36);
}

@utility txt-numDisplay-s {
  font-family: var(--font-display-num);
  font-size: var(--glo-font-size-24);
  font-weight: var(--glo-font-weight-bold);
  line-height: var(--glo-font-lineheight-size24);
}

@utility txt-numMonotype-xl {
  font-family: var(--font-poppins);
  font-size: var(--glo-font-size-24);
  font-weight: var(--glo-font-weight-bold);
  line-height: var(--glo-font-lineheight-size24);
}

@utility txt-numMonotype-l {
  font-family: var(--font-poppins);
  font-size: var(--glo-font-size-20);
  font-weight: var(--glo-font-weight-bold);
  line-height: var(--glo-font-lineheight-size20);
}

@utility txt-numMonotype-m {
  font-family: var(--font-poppins);
  font-size: var(--glo-font-size-16);
  font-weight: var(--glo-font-weight-bold);
  line-height: var(--glo-font-lineheight-size16);
}

@utility txt-numMonotype-s {
  font-family: var(--font-poppins);
  font-size: var(--glo-font-size-14);
  font-weight: var(--glo-font-weight-medium);
  line-height: var(--glo-font-lineheight-size14);
}

@utility txt-numMonotype-xs {
  font-family: var(--font-poppins);
  font-size: var(--glo-font-size-12);
  font-weight: var(--glo-font-weight-regular);
  line-height: var(--glo-font-lineheight-size12);
}

@utility bg-primary-gradient-normal {
  background: var(--color-primary-gradient-normal);
}

@utility bg-primary-gradient-hover {
  background: var(--color-primary-gradient-hover);
}

@utility bg-primary-gradient-press {
  background: var(--color-primary-gradient-press);
}

@utility bg-primary-gradient-disabled {
  background: var(--color-primary-gradient-disabled);
}

@utility bg-gradient-secondary-normal {
  background: var(--color-gradient-secondary-normal);
}

@utility bg-important-gradient-normal {
  background: var(--color-important-gradient-normal);
}

@utility bg-important-gradient-hover {
  background: var(--color-important-gradient-hover);
}

@utility bg-important-gradient-press {
  background: var(--color-important-gradient-press);
}

@utility bg-important-gradient-disabled {
  background: var(--color-important-gradient-disabled);
}

@utility bg-positive-gradient-normal {
  background: var(--color-positive-gradient-normal);
}

@utility bg-positive-gradient-hover {
  background: var(--color-positive-gradient-hover);
}

@utility bg-positive-gradient-press {
  background: var(--color-positive-gradient-press);
}

@utility bg-positive-gradient-disabled {
  background: var(--color-positive-gradient-disabled);
}

@utility bg-warning-gradient-normal {
  background: var(--color-warning-gradient-normal);
}

@utility bg-warning-gradient-hover {
  background: var(--color-warning-gradient-hover);
}

@utility bg-warning-gradient-press {
  background: var(--color-warning-gradient-press);
}

@utility bg-warning-gradient-disabled {
  background: var(--color-warning-gradient-disabled);
}

@utility bg-emphasis-gradient-normal {
  background: var(--color-emphasis-gradient-normal);
}

@utility bg-emphasis-gradient-hover {
  background: var(--color-emphasis-gradient-hover);
}

@utility bg-emphasis-gradient-press {
  background: var(--color-emphasis-gradient-press);
}

@utility bg-emphasis-gradient-disabled {
  background: var(--color-emphasis-gradient-disabled);
}

@utility bg-overlay-gradient {
  background: var(--color-overlay-gradient);
}

/* @utility bg-overlay-background {
  background: var(--color-overlay-background) !important;
} */

@utility bg-overlay-base {
  background: var(--color-overlay-base);
}

@utility bg-context-subscribe-normal {
  background: var(--color-context-subscribe-normal);
}

@utility bg-context-subscribe-hover {
  background: var(--color-context-subscribe-hover);
}

@utility bg-context-subscribe-press {
  background: var(--color-context-subscribe-press);
}

@utility bg-context-subscribe-disabled {
  background: var(--color-context-subscribe-disabled);
}

@utility bg-context-legends-normal {
  background: var(--color-context-legends-normal);
}

@utility bg-context-legends-hover {
  background: var(--color-context-legends-hover);
}

@utility bg-context-legends-press {
  background: var(--color-context-legends-press);
}

@utility bg-context-legends-disabled {
  background: var(--color-context-legends-disabled);
}

@utility bg-context-vip-normal {
  background: var(--color-context-vip-normal);
}

@utility bg-context-recharge-normal {
  background: var(--color-context-recharge-normal);
}

/* Line clamp utilities */
@utility line-clamp-1 {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
}

@utility line-clamp-2 {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

@utility line-clamp-3 {
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}
