/* Knit 设计系统 — generated from tokens.json */
:root, [data-theme="light"] {
  --blue: #0062cc;
  --blue-hover: #004fa6;
  --blue-soft: #eaf2ff;
  --ink: #202932;
  --muted: #586675;
  --faint: #738292;
  --paper: #ffffff;
  --canvas: #f5f7fa;
  --line: #dde4eb;
  --alert: #855300;
  --alert-bg: #fff4df;
  --danger: #ad3030;
  --success: #25654a;
  --on-blue: #ffffff;
  --on-danger: #ffffff;
  --switch-off: #9ba8b7;
  --chart-bar: #aacbef;
  --step-chip: #dce8f7;
  --step-chip-ink: #345e89;
  --hero-surface: #eef3f9;
  --device-frame: #213247;
  --toast-bg: #1b2a3a;
  --toast-ink: #ffffff;
  --scrim: rgba(16,35,59,0.44);
  --pressed-overlay: rgba(115,130,146,0.094);
  --map-ground: #edf2ee;
  --knit-900: #00113a;
  --knit-800: #002261;
  --knit-700: #003686;
  --knit-600: #024397;
  --knit-500: #0050ae;
  --knit-400: #0165d6;
  --knit-300: #1185f3;
  --wordmark-ink: #212120;
  --logo-flat: #0050c8;
  --shadow-control: 0 2px 5px #0000001a;
  --shadow-menu: 0 12px 36px #14294420;
  --shadow-toast: 0 8px 30px #00000022;
  --shadow-dialog: 0 24px 100px #14263c3b;
  --shadow-raised: 0 16px 36px #1f497812;
  --shadow-device: 0 18px 50px #1c355c0c;
}
[data-theme="dark"] {
  --blue: #8ebfff;
  --blue-hover: #afd0ff;
  --blue-soft: #152d48;
  --ink: #ecf1f7;
  --muted: #b1bdcb;
  --faint: #93a4b7;
  --paper: #15202e;
  --canvas: #101925;
  --line: #334356;
  --alert: #ffd497;
  --alert-bg: #342a1c;
  --danger: #f69b9b;
  --success: #9fd6bc;
  --on-blue: #0c2038;
  --on-danger: #2d1010;
  --switch-off: #9ba8b7;
  --chart-bar: #2e527b;
  --step-chip: #233f60;
  --step-chip-ink: #c1d9f9;
  --hero-surface: #14273f;
  --device-frame: #425972;
  --toast-bg: #1b2a3a;
  --toast-ink: #ffffff;
  --scrim: rgba(16,35,59,0.44);
  --pressed-overlay: rgba(115,130,146,0.094);
  --map-ground: #1d2c2b;
  --wordmark-ink: #ededed;
  --logo-flat: #0050c8;
  --shadow-control: 0 2px 5px #0000001a;
  --shadow-menu: 0 12px 36px #14294420;
  --shadow-toast: 0 8px 30px #00000022;
  --shadow-dialog: 0 24px 100px #14263c3b;
  --shadow-raised: none;
  --shadow-device: 0 18px 50px #1c355c0c;
  color-scheme: dark;
}
:root {
  --space-4: 4px;
  --space-8: 8px;
  --space-12: 12px;
  --space-14: 14px;
  --space-16: 16px;
  --space-20: 20px;
  --space-24: 24px;
  --space-28: 28px;
  --space-36: 36px;
  --radius-2: 2px;
  --radius-4: 4px;
  --radius-6: 6px;
  --radius-8: 8px;
  --radius-10: 10px;
  --radius-12: 12px;
  --radius-14: 14px;
  --radius-16: 16px;
  --radius-18: 18px;
  --radius-pill: 20px;
  --radius-device: 40px;
  --touch-target: 44px;
  --control-height: 48px;
  --row-min-height: 52px;
  --icon-size: 20px;
  --icon-stroke: 1.7;
  --switch-width: 48px;
  --checkbox-size: 20px;
  --status-dot: 7px;
  --progress-height: 3px;
  --logo-disc: 240px;
  --logo-mark: 166px;
  --header-lockup: 140px;
  --content-max: 430px;
  --opacity-disabled: 0.55;
  --opacity-logo-disc: 0.55;
  --brightness-pressed: 0.88;
  --font-sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Noto Sans SC", sans-serif;
}
.page-title { font-family: var(--font-sans); font-size: 1.65rem; line-height: 1.25; font-weight: 650; letter-spacing: -0.045em }
.home-title { font-family: var(--font-sans); font-size: 1.45rem; line-height: 1.5; font-weight: 650; letter-spacing: -0.035em }
.nav-title { font-family: var(--font-sans); font-size: 1.0625rem; line-height: 1.4; font-weight: 600 }
.item-title { font-family: var(--font-sans); font-size: 1.0625rem; line-height: 1.4; font-weight: 500 }
.row-title { font-family: var(--font-sans); font-size: 1rem; line-height: 1.4; font-weight: 400 }
.section-title { font-family: var(--font-sans); font-size: 1rem; line-height: 1.4; font-weight: 620; letter-spacing: -0.025em }
.body-lead { font-family: var(--font-sans); font-size: 1.0625rem; line-height: 1.6; font-weight: 400 }
.body { font-family: var(--font-sans); font-size: 0.875rem; line-height: 1.65; font-weight: 400 }
.caption { font-family: var(--font-sans); font-size: 0.8125rem; line-height: 1.5; font-weight: 500 }
.small { font-family: var(--font-sans); font-size: 0.8rem; line-height: 1.6; font-weight: 400 }
.button { font-family: var(--font-sans); font-size: 1rem; line-height: 1.25; font-weight: 600 }
.badge { font-family: var(--font-sans); font-size: 0.72rem; line-height: 1.4; font-weight: 600 }
.eyebrow { font-family: var(--font-sans); font-size: 0.72rem; line-height: 1.6; font-weight: 650; letter-spacing: 0.12em }
.code { font-family: var(--font-sans); font-size: 1.1rem; line-height: 1.4; font-weight: 600; letter-spacing: 0.25em }
.hero { font-family: var(--font-sans); font-size: 3.4rem; line-height: 1.17; font-weight: 650; letter-spacing: -0.05em }
.web-h1 { font-family: var(--font-sans); font-size: 2rem; line-height: 1.25; font-weight: 650; letter-spacing: -0.045em }
.web-h2 { font-family: var(--font-sans); font-size: 1.35rem; line-height: 1.4; font-weight: 620; letter-spacing: -0.025em }
.web-body { font-family: var(--font-sans); font-size: 1rem; line-height: 1.7; font-weight: 400 }
.metric { font-family: var(--font-sans); font-size: 1.9rem; line-height: 1.2; font-weight: 600; letter-spacing: -0.045em }
