/* Adobe Spectrum 2 — Colors & Type 令牌（来自设计项目 colors_and_type.css，
   精简为本应用实际使用的色板 + 语义角色；中文字体走系统栈，未自托管 .ttf）。
   light 为默认；容器加 data-theme="dark" 切暗色。 */
:root{
  --font-sans:"Source Sans 3","PingFang SC","Microsoft YaHei","Hiragino Sans GB","Noto Sans SC",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --font-code:"Source Code Pro",source-code-pro,Monaco,Consolas,monospace;
  --fw-regular:400; --fw-medium:500; --fw-bold:700; --fw-extra-bold:800; --fw-black:900;

  --fs-heading-2xs:14px; --fs-heading-xs:18px; --fs-heading-sm:20px; --fs-heading:22px;
  --fs-heading-lg:28px; --fs-heading-xl:36px;
  --fs-title-sm:14px; --fs-title:16px; --fs-title-lg:18px; --fs-title-xl:22px;
  --fs-body-sm:14px; --fs-body:16px; --fs-body-lg:18px; --fs-body-xl:20px;
  --fs-detail:14px;
  --lh-ui:1.3; --lh-heading:1.222; --lh-body:1.5;

  --spacing-25:1px; --spacing-50:2px; --spacing-75:4px; --spacing-85:6px; --spacing-100:8px;
  --spacing-200:12px; --spacing-300:16px; --spacing-350:20px; --spacing-400:24px;
  --spacing-500:32px; --spacing-600:40px; --spacing-700:48px; --spacing-800:64px;

  --radius-sm:4px; --radius-md:8px; --radius-lg:10px; --radius-xl:16px; --radius-full:9999px;
  --border-width-100:1px; --border-width-200:2px;

  --shadow-emphasized:0px 1px 4px rgba(0,0,0,0.12);
  --shadow-elevated:0px 2px 8px rgba(0,0,0,0.12),0px 0px 2px rgba(0,0,0,0.10);
  --shadow-dragged:0px 4px 16px rgba(0,0,0,0.18);

  /* gray */
  --gray-25:rgb(255,255,255); --gray-50:rgb(248,248,248); --gray-75:rgb(243,243,243);
  --gray-100:rgb(233,233,233); --gray-200:rgb(225,225,225); --gray-300:rgb(218,218,218);
  --gray-400:rgb(198,198,198); --gray-500:rgb(143,143,143); --gray-600:rgb(113,113,113);
  --gray-700:rgb(80,80,80); --gray-800:rgb(41,41,41); --gray-900:rgb(19,19,19); --gray-1000:rgb(0,0,0);
  /* blue (accent) */
  --blue-100:rgb(245,249,255); --blue-200:rgb(229,240,254); --blue-300:rgb(203,226,254);
  --blue-400:rgb(172,207,253); --blue-500:rgb(142,185,252); --blue-600:rgb(114,158,253);
  --blue-700:rgb(93,137,255); --blue-800:rgb(75,117,255); --blue-900:rgb(59,99,251);
  --blue-1000:rgb(39,77,234); --blue-1100:rgb(29,62,207); --blue-1200:rgb(21,50,173);
  --blue-1300:rgb(16,40,140); --blue-1400:rgb(12,31,105);
  /* green (positive) */
  --green-100:rgb(237,252,241); --green-200:rgb(215,247,225); --green-300:rgb(173,238,197);
  --green-400:rgb(107,227,162); --green-500:rgb(43,209,125); --green-600:rgb(18,184,103);
  --green-700:rgb(11,164,93); --green-800:rgb(7,147,85); --green-900:rgb(5,131,78);
  --green-1000:rgb(3,110,69); --green-1100:rgb(2,93,60);
  /* red (negative) */
  --red-100:rgb(255,246,245); --red-200:rgb(255,235,232); --red-300:rgb(255,214,209);
  --red-400:rgb(255,188,180); --red-500:rgb(255,157,145); --red-600:rgb(255,118,101);
  --red-700:rgb(255,81,61); --red-800:rgb(240,56,35); --red-900:rgb(215,50,32);
  --red-1000:rgb(183,40,24); --red-1100:rgb(156,33,19);
  /* orange (notice) */
  --orange-100:rgb(255,246,231); --orange-200:rgb(255,236,207); --orange-300:rgb(255,218,158);
  --orange-400:rgb(255,193,94); --orange-500:rgb(255,162,19); --orange-600:rgb(252,125,0);
  --orange-700:rgb(232,106,0); --orange-800:rgb(212,91,0); --orange-900:rgb(194,78,0);

  /* semantic roles (light) */
  --accent-background:rgb(59,99,251); --accent-background-hover:rgb(39,77,234);
  --accent-background-down:rgb(39,77,234); --accent-content:rgb(39,77,234);
  --neutral-content:rgb(41,41,41); --neutral-subdued-content:rgb(80,80,80);
  --negative-content:rgb(215,50,32); --negative-background:rgb(215,50,32);
  --positive-background:rgb(5,131,78); --positive-content:rgb(3,110,69);
  --notice-background:rgb(252,125,0); --notice-content:rgb(194,78,0);
  --informative-background:rgb(59,99,251);
  --disabled-content:rgb(198,198,198); --disabled-background:rgb(233,233,233); --disabled-border:rgb(218,218,218);
  --heading-color:rgb(19,19,19); --title-color:rgb(19,19,19); --body-color:rgb(41,41,41);
  --background-base:rgb(255,255,255); --background-layer-1:rgb(248,248,248);
  --background-layer-2:rgb(255,255,255); --background-elevated:rgb(255,255,255);
  --focus-indicator:rgb(75,117,255);
}

[data-theme="dark"]{
  --gray-25:rgb(17,17,17); --gray-50:rgb(27,27,27); --gray-75:rgb(34,34,34);
  --gray-100:rgb(44,44,44); --gray-200:rgb(50,50,50); --gray-300:rgb(57,57,57);
  --gray-400:rgb(68,68,68); --gray-500:rgb(109,109,109); --gray-600:rgb(138,138,138);
  --gray-700:rgb(175,175,175); --gray-800:rgb(219,219,219); --gray-900:rgb(242,242,242); --gray-1000:rgb(255,255,255);
  --blue-100:rgb(14,23,63); --blue-200:rgb(15,28,82); --blue-300:rgb(12,33,117);
  --blue-400:rgb(18,45,154); --blue-500:rgb(26,58,195); --blue-600:rgb(37,73,229);
  --blue-700:rgb(52,91,248); --blue-800:rgb(64,105,253); --blue-900:rgb(86,129,255);
  --blue-1000:rgb(105,149,254); --blue-1100:rgb(124,169,252); --blue-1200:rgb(152,192,252);
  --green-100:rgb(0,30,23); --green-200:rgb(0,38,29); --green-300:rgb(0,51,38);
  --green-400:rgb(0,68,48); --green-500:rgb(2,87,58); --green-600:rgb(3,106,67);
  --green-700:rgb(4,124,75); --green-800:rgb(6,136,80); --green-900:rgb(9,157,89); --green-1000:rgb(14,175,98);
  --red-100:rgb(54,10,3); --red-200:rgb(68,13,5); --red-300:rgb(87,17,7);
  --red-400:rgb(115,24,11); --red-500:rgb(147,31,17); --red-600:rgb(177,38,23);
  --red-700:rgb(205,46,29); --red-800:rgb(223,52,34); --red-900:rgb(252,67,46); --red-1000:rgb(255,103,86);
  --orange-100:rgb(49,16,0); --orange-200:rgb(61,21,0); --orange-300:rgb(80,27,0);
  --orange-400:rgb(106,36,0); --orange-500:rgb(135,47,0); --orange-600:rgb(162,59,0);
  --orange-700:rgb(185,73,0); --orange-800:rgb(199,82,0); --orange-900:rgb(224,100,0);
  --accent-background:rgb(64,105,253); --accent-background-hover:rgb(52,91,248);
  --accent-background-down:rgb(52,91,248); --accent-content:rgb(86,129,255);
  --neutral-content:rgb(219,219,219); --neutral-subdued-content:rgb(175,175,175);
  --negative-content:rgb(252,67,46); --negative-background:rgb(223,52,34);
  --positive-background:rgb(6,136,80); --positive-content:rgb(14,175,98);
  --notice-background:rgb(224,100,0); --notice-content:rgb(255,137,0);
  --informative-background:rgb(64,105,253);
  --disabled-content:rgb(68,68,68); --disabled-background:rgb(44,44,44); --disabled-border:rgb(57,57,57);
  --heading-color:rgb(242,242,242); --title-color:rgb(242,242,242); --body-color:rgb(219,219,219);
  --background-base:rgb(17,17,17); --background-layer-1:rgb(27,27,27);
  --background-layer-2:rgb(34,34,34); --background-elevated:rgb(34,34,34);
  --focus-indicator:rgb(64,105,253);
}

.s2-heading-xl{font-family:var(--font-sans);font-weight:var(--fw-extra-bold);font-size:var(--fs-heading-xl);line-height:var(--lh-heading);color:var(--heading-color);letter-spacing:-.01em;}
.s2-heading-lg{font-family:var(--font-sans);font-weight:var(--fw-extra-bold);font-size:var(--fs-heading-lg);line-height:var(--lh-heading);color:var(--heading-color);}
.s2-heading{font-family:var(--font-sans);font-weight:var(--fw-extra-bold);font-size:var(--fs-heading);line-height:var(--lh-heading);color:var(--heading-color);}
.s2-heading-sm{font-family:var(--font-sans);font-weight:var(--fw-extra-bold);font-size:var(--fs-heading-sm);line-height:var(--lh-heading);color:var(--heading-color);}
.s2-title{font-family:var(--font-sans);font-weight:var(--fw-bold);font-size:var(--fs-title);line-height:var(--lh-heading);color:var(--title-color);}
.s2-body{font-family:var(--font-sans);font-weight:var(--fw-regular);font-size:var(--fs-body);line-height:var(--lh-body);color:var(--body-color);}
.s2-body-sm{font-family:var(--font-sans);font-weight:var(--fw-regular);font-size:var(--fs-body-sm);line-height:var(--lh-body);color:var(--body-color);}
.s2-detail{font-family:var(--font-sans);font-weight:var(--fw-bold);font-size:var(--fs-detail);line-height:var(--lh-ui);color:var(--neutral-subdued-content);text-transform:uppercase;letter-spacing:.06em;}
