:root { color-scheme: light; /* Primitive color tokens */ --c-blue-600: #2563eb; --c-blue-700: #1d4ed8; --c-blue-050: #eff4ff; --c-blue-200: #c7d8fb; --c-red-600: #e04536; --c-red-050: #fdecea; --c-green-600: #16a34a; --c-green-050: #e9f7ee; --c-amber-700: #b45309; --c-amber-050: #fdf3e3; --c-gray-950: #121416; --c-gray-900: #1b1e21; --c-gray-850: #202428; --c-gray-800: #24282d; --c-gray-700: #343a40; --c-gray-650: #474f57; --c-gray-100: #f4f5f7; --c-gray-075: #f8fafc; --c-gray-050: #ffffff; --c-text-900: #1f2937; --c-text-700: #374151; --c-text-600: #4b5563; --c-text-500: #6b7280; --c-text-400: #9ca3af; --c-line-200: #e5e7eb; --c-line-100: #eef0f3; --c-night-text-900: #e8eaed; --c-night-text-600: #adb5bd; --c-night-text-400: #7f8993; --c-night-blue: #6ca8e8; --c-night-blue-hover: #8bbcf0; --c-night-blue-soft: #23364a; --c-night-red: #f06d73; --c-night-red-soft: #40262a; --c-night-green: #43bc8a; --c-night-green-soft: #1d382f; --c-night-amber: #e2ad58; --c-night-amber-soft: #3d3220; --c-transparent: transparent; --c-gold-700: #8b6b2f; --c-gold-500: #c9a55c; --c-gold-100: #f4ead4; --c-night-star: #d8e6f4; /* Primitive dimensions */ --s-1: 1px; --s-2: 2px; --s-4: 4px; --s-6: 6px; --s-7: 7px; --s-8: 8px; --s-9: 9px; --s-10: 10px; --s-11: 11px; --s-12: 12px; --s-13: 13px; --s-14: 14px; --s-16: 16px; --s-18: 18px; --s-20: 20px; --s-22: 22px; --s-24: 24px; --s-26: 26px; --s-28: 28px; --s-30: 30px; --s-32: 32px; --s-34: 34px; --s-36: 36px; --s-40: 40px; --s-44: 44px; --s-46: 46px; --s-56: 56px; --s-64: 64px; --s-80: 80px; --s-96: 96px; --s-120: 120px; --s-160: 160px; --s-180: 180px; --s-240: 240px; --s-480: 480px; --s-200: 200px; --s-260: 260px; --s-320: 320px; --s-360: 360px; --s-400: 400px; --s-dialog: 512px; --s-dialog-wide: 768px; --s-content-max: 2200px; --s-field: 340px; /* Primitive typography */ --font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif; --font-serif: "Kaiti SC", "STKaiti", "KaiTi", "STSong", "SimSun", serif; --font-10-5: 10.5px; --font-11: 11px; --font-11-5: 11.5px; --font-12: 12px; --font-12-5: 12.5px; --font-13: 13px; --font-14: 14px; --font-15: 15px; --font-17: 17px; --font-18: 18px; --font-24: 24px; --font-32: 32px; --weight-400: 400; --weight-500: 500; --weight-600: 600; --weight-700: 700; --weight-800: 800; /* Primitive effects */ --radius-4: 4px; --radius-5: 5px; --radius-6: 6px; --radius-7: 7px; --radius-10: 10px; --radius-round: 999px; --shadow-card-light: 0 1px 2px rgba(16, 24, 40, 0.05); --shadow-card-dark: 0 1px 2px rgba(0, 0, 0, 0.28); --shadow-float: 0 12px 32px rgba(0, 0, 0, 0.18); --duration-fast: 160ms; --duration-normal: 220ms; --duration-reduced: 1ms; --ease-standard: ease; --opacity-disabled: 0.52; --opacity-muted: 0.72; --scale-pulse: 0.84; --z-table: 2; --z-topbar: 50; --z-status: 55; --z-sidebar: 60; --z-mobile-nav: 70; --z-popover: 100; --z-dialog: 200; --z-toast: 240; /* Semantic tokens */ --color-canvas: var(--c-gray-100); --color-surface: var(--c-gray-050); --color-surface-muted: var(--c-gray-075); --color-surface-raised: var(--c-gray-050); --color-text: var(--c-text-900); --color-text-secondary: var(--c-text-500); --color-text-faint: var(--c-text-400); --color-border: var(--c-line-200); --color-divider: var(--c-line-100); --color-primary: var(--c-blue-600); --color-primary-hover: var(--c-blue-700); --color-primary-soft: var(--c-blue-050); --color-primary-border: var(--c-blue-200); --color-up: var(--c-red-600); --color-up-soft: var(--c-red-050); --color-down: var(--c-green-600); --color-down-soft: var(--c-green-050); --color-warning: var(--c-amber-700); --color-warning-soft: var(--c-amber-050); --color-overlay: rgba(18, 20, 22, 0.46); --color-heaven: var(--c-gold-700); --color-heaven-bright: var(--c-gold-500); --color-heaven-soft: var(--c-gold-100); --color-heaven-star: var(--c-night-star); --shadow-card: var(--shadow-card-light); /* Component tokens */ --shell-sidebar-width: var(--s-200); --shell-topbar-height: var(--s-46); --shell-summary-height: var(--s-36); --shell-status-height: var(--s-30); --shell-mobile-nav-height: var(--s-56); --page-padding-y: var(--s-14); --page-padding-x: var(--s-16); --layout-gap: var(--s-12); --control-height: var(--s-32); --touch-height: var(--s-44); --card-radius: var(--radius-10); --control-radius: var(--radius-7); --tag-radius: var(--radius-5); --focus-ring: 0 0 0 var(--s-2) var(--color-canvas), 0 0 0 var(--s-4) var(--color-primary); } :root[data-theme="dark"] { color-scheme: dark; --color-canvas: var(--c-gray-950); --color-surface: var(--c-gray-900); --color-surface-muted: var(--c-gray-850); --color-surface-raised: var(--c-gray-800); --color-text: var(--c-night-text-900); --color-text-secondary: var(--c-night-text-600); --color-text-faint: var(--c-night-text-400); --color-border: var(--c-gray-700); --color-divider: var(--c-gray-700); --color-primary: var(--c-night-blue); --color-primary-hover: var(--c-night-blue-hover); --color-primary-soft: var(--c-night-blue-soft); --color-primary-border: var(--c-gray-650); --color-up: var(--c-night-red); --color-up-soft: var(--c-night-red-soft); --color-down: var(--c-night-green); --color-down-soft: var(--c-night-green-soft); --color-warning: var(--c-night-amber); --color-warning-soft: var(--c-night-amber-soft); --color-overlay: rgba(0, 0, 0, 0.64); --color-heaven: var(--c-night-amber); --color-heaven-soft: var(--c-night-amber-soft); --shadow-card: var(--shadow-card-dark); }