:root {
    --zjl-surface-base: #F4F6F8;
    --zjl-surface-card: #FFFFFF;
    --zjl-surface-dark: #0A1931;

    --zjl-ink-primary: #0A1931;
    --zjl-ink-body: #2C3E50;
    --zjl-ink-muted: #606F7B;
    --zjl-ink-subtle: #8294A1;
    --zjl-ink-on-dark: #E2E8F0;

    --zjl-accent: #1890FF;
    --zjl-accent-soft: #E6F4FF;
    --zjl-accent-hover: #005AEE;

    --zjl-border-warm: #D1D5DB;
    --zjl-border-cool: #DDE3E8;

    --zjl-status-up: #E53935;
    --zjl-status-down: #43A047;
    --zjl-status-info: #205B8E;

    --zjl-font-sans: "Inter", "Noto Sans SC", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
    --zjl-font-serif: "Source Han Serif SC", "Noto Serif SC", "Songti SC", Georgia, serif;
    --zjl-font-mono: "JetBrains Mono", "IBM Plex Mono", Menlo, Consolas, monospace;

    --zjl-fs-display: 3rem;
    --zjl-fs-headline: 1.875rem;
    --zjl-fs-title: 1.375rem;
    --zjl-fs-lead: 1.125rem;
    --zjl-fs-body: 0.96875rem;
    --zjl-fs-small: 0.8125rem;
    --zjl-fs-micro: 0.6875rem;
    --zjl-fs-mono: 0.875rem;

    --zjl-lh-tight: 1.05;
    --zjl-lh-snug: 1.10;
    --zjl-lh-normal: 1.55;
    --zjl-lh-body: 1.75;

    --zjl-space-1: 4px;
    --zjl-space-2: 8px;
    --zjl-space-3: 12px;
    --zjl-space-4: 16px;
    --zjl-space-5: 20px;
    --zjl-space-6: 24px;
    --zjl-space-7: 32px;
    --zjl-space-8: 40px;
    --zjl-space-9: 48px;
    --zjl-space-10: 64px;
    --zjl-space-11: 80px;
    --zjl-space-12: 96px;
    --zjl-space-13: 128px;

    --zjl-container-read: 1080px;
    --zjl-container-portal: 1240px;
    --zjl-container-data: 1320px;

    --zjl-radius-sharp: 0;
    --zjl-radius-sm: 2px;
    --zjl-radius-md: 4px;
    --zjl-radius-pill: 999px;

    --zjl-shadow-soft: 0 1px 2px rgba(10, 22, 32, 0.06), 0 4px 12px rgba(10, 22, 32, 0.04);
    --zjl-shadow-elevated: 0 12px 36px rgba(10, 22, 32, 0.08);

    --zjl-ease: cubic-bezier(.2, 0, .2, 1);
    --zjl-dur-fast: 120ms;
    --zjl-dur-base: 240ms;
    --zjl-dur-entry: 600ms;
}

@media (prefers-reduced-motion: reduce) {
    :root {
        --zjl-dur-fast: 0.01ms;
        --zjl-dur-base: 0.01ms;
        --zjl-dur-entry: 0.01ms;
    }
}
