:root {
    /* Primitive colors */
    --bc-slate-950: #020617;
    --bc-slate-900: #0f172a;
    --bc-slate-800: #1e293b;
    --bc-slate-700: #334155;
    --bc-slate-600: #475569;
    --bc-slate-500: #64748b;
    --bc-slate-400: #94a3b8;
    --bc-slate-300: #cbd5e1;
    --bc-slate-200: #e2e8f0;
    --bc-slate-100: #f1f5f9;
    --bc-slate-50: #f8fafc;
    --bc-blue-700: #1d4ed8;
    --bc-blue-600: #2563eb;
    --bc-blue-500: #3b82f6;
    --bc-blue-50: #eff6ff;
    --bc-emerald-700: #047857;
    --bc-emerald-600: #059669;
    --bc-emerald-50: #ecfdf5;
    --bc-amber-600: #d97706;
    --bc-amber-50: #fffbeb;
    --bc-red-600: #dc2626;
    --bc-red-50: #fef2f2;

    /* Semantic colors */
    --bc-bg: #f6f8fb;
    --bc-surface: #ffffff;
    --bc-surface-raised: #ffffff;
    --bc-foreground: var(--bc-slate-950);
    --bc-text: var(--bc-slate-900);
    --bc-text-soft: var(--bc-slate-700);
    --bc-muted: var(--bc-slate-500);
    --bc-border: #d9e1ec;
    --bc-border-soft: #e8eef6;
    --bc-primary: var(--bc-blue-600);
    --bc-primary-hover: var(--bc-blue-700);
    --bc-primary-soft: var(--bc-blue-50);
    --bc-success: var(--bc-emerald-600);
    --bc-success-hover: var(--bc-emerald-700);
    --bc-success-soft: var(--bc-emerald-50);
    --bc-warning: var(--bc-amber-600);
    --bc-warning-soft: var(--bc-amber-50);
    --bc-danger: var(--bc-red-600);
    --bc-danger-soft: var(--bc-red-50);
    --bc-ring: rgba(37, 99, 235, 0.18);

    /* Typography */
    --bc-font-sans: "Noto Sans SC", "Microsoft YaHei", "PingFang SC", "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --bc-text-xs: 12px;
    --bc-text-sm: 13px;
    --bc-text-md: 14px;
    --bc-text-base: 15px;
    --bc-text-lg: 18px;
    --bc-text-xl: 22px;
    --bc-leading-tight: 1.25;
    --bc-leading-normal: 1.5;
    --bc-leading-relaxed: 1.7;

    /* Spacing */
    --bc-space-1: 4px;
    --bc-space-2: 8px;
    --bc-space-3: 12px;
    --bc-space-4: 16px;
    --bc-space-5: 20px;
    --bc-space-6: 24px;
    --bc-space-8: 32px;
    --bc-space-10: 40px;

    /* Shape and elevation */
    --bc-radius-sm: 6px;
    --bc-radius: 8px;
    --bc-shadow-xs: 0 1px 2px rgba(15, 23, 42, 0.05);
    --bc-shadow-sm: 0 6px 18px rgba(15, 23, 42, 0.06);
    --bc-shadow-md: 0 18px 44px rgba(15, 23, 42, 0.10);

    /* Component tokens */
    --bc-button-height: 40px;
    --bc-button-height-lg: 46px;
    --bc-input-height: 44px;
    --bc-card-padding: 20px;
    --bc-table-row-height: 46px;
    --bc-transition: 160ms ease;
}

html {
    letter-spacing: 0;
}

button,
input,
select,
textarea {
    font: inherit;
}

a,
button,
.btn,
.layui-btn,
[role="button"] {
    transition: color var(--bc-transition), background-color var(--bc-transition), border-color var(--bc-transition), box-shadow var(--bc-transition), transform var(--bc-transition);
}

a:focus-visible,
button:focus-visible,
.btn:focus-visible,
.layui-btn:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px var(--bc-ring) !important;
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }
}
