:root {
      --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
      --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
      --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
      --ease-emphasized: cubic-bezier(0.4, 0, 0.2, 1);
      --ease-back: cubic-bezier(0.175, 0.885, 0.32, 1.275);
      --ease-ios: cubic-bezier(0.32, 0.72, 0, 1);
      --ease-ios-spring: cubic-bezier(0.17, 0.84, 0.44, 1);
      --ease-ios-bounce: cubic-bezier(0.2, 1.2, 0.4, 1);
      --duration-instant: 80ms;
      --duration-fast: 150ms;
      --duration-base: 240ms;
      --duration-slow: 320ms;
      --duration-exit: 160ms;
      --mobile-nav-height: 88px;
      --mobile-header-safe-top: env(safe-area-inset-top, 0px);
      --mobile-safe-bottom: env(safe-area-inset-bottom, 0px);

      /*
       * 2026-07-19 StyleKit 单一事实源：Corporate Clean
       * Primary #1e40af · Accent/focus #3b82f6 · Canvas #f8fafc · Radius 8px
       * 断点契约：shell 768 / device 860 / native 520 / pwa-coarse 1024
       */
      --bp-shell: 768px;
      --bp-device: 860px;
      --bp-native: 520px;
      --bp-pwa: 1024px;

      --bg-page: #f8fafc;
      --bg-card: #ffffff;
      --bg-panel: #ffffff;
      --bg-soft: #f1f5f9;
      --bg-raised: #ffffff;
      --bg-overlay: rgba(15, 23, 42, 0.52);

      --text-main: #111827;
      --text-sub: #475569;
      --text-soft: #64748b;
      --ink-1: var(--text-main);
      --ink-2: var(--text-sub);
      --ink-3: var(--text-soft);

      --line: #e5e7eb;
      --line-strong: #cbd5e1;
      --line-soft: rgba(229, 231, 235, 0.72);

      --brand: #1e40af;
      --brand-strong: #1e3a8a;
      --brand-soft: #eff6ff;
      --brand-2: #3b82f6;
      --brand-on: #ffffff;
      --fab-glow: rgba(30, 64, 175, 0.22);
      --fab-ring: rgba(59, 130, 246, 0.40);

      --danger: #b91c1c;
      --danger-soft: #fef2f2;
      --warning: #b45309;
      --warning-soft: #fffbeb;
      --success: #047857;
      --success-soft: #ecfdf5;

      --shadow-soft: 0 1px 2px rgba(15, 23, 42, 0.06);
      --shadow-panel: 0 4px 12px rgba(15, 23, 42, 0.10);
      --shadow-pop: 0 10px 28px rgba(15, 23, 42, 0.14);

      --radius-xl: 12px;
      --radius-lg: 12px;
      --radius-md: 8px;
      --radius-sm: 6px;
      --radius-xs: 4px;

      --font-sans: "MiSans", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Segoe UI", system-ui, sans-serif;
      --font-display: "MiSans", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
      --white-tinted: #f8fafc;

      --dept-jiangsu: #3b82f6;
      --dept-chongqing: #ef4444;
      --dept-sichuan: #22c55e;
      --dept-solution: #ec4899;
      --dept-tech: #eab308;
      --dept-enterprise: #64748b;
      --dept-government: #f97316;
      --dept-ecology: #8b6b4a;

      --z-base: 1;
      --z-sticky: 40;
      --z-dropdown: 50;
      --z-modal-backdrop: 80;
      --z-modal: 90;
      --z-toast: 100;
      --z-tooltip: 110;
      --z-overlay-sheet: 120;
      --z-overlay-blocking: 130;
    }

    html[data-theme="dark"] {
      --bg-page: #0a0a0a;
      --bg-card: #111827;
      --bg-panel: #111827;
      --bg-soft: #1f2937;
      --bg-raised: #172033;
      --bg-overlay: rgba(0, 0, 0, 0.66);

      --text-main: #f8fafc;
      --text-sub: #cbd5e1;
      --text-soft: #94a3b8;
      --ink-1: var(--text-main);
      --ink-2: var(--text-sub);
      --ink-3: var(--text-soft);

      --line: #334155;
      --line-strong: #475569;
      --line-soft: rgba(51, 65, 85, 0.72);

      --brand: #2563eb;
      --brand-strong: #1d4ed8;
      --brand-soft: rgba(59, 130, 246, 0.16);
      --brand-2: #60a5fa;
      --brand-on: #ffffff;
      --fab-glow: rgba(37, 99, 235, 0.28);
      --fab-ring: rgba(96, 165, 250, 0.42);

      --danger: #f87171;
      --danger-soft: rgba(248, 113, 113, 0.14);
      --warning: #fbbf24;
      --warning-soft: rgba(251, 191, 36, 0.14);
      --success: #34d399;
      --success-soft: rgba(52, 211, 153, 0.14);

      --shadow-soft: none;
      --shadow-panel: 0 12px 28px rgba(0, 0, 0, 0.36);
      --shadow-pop: 0 18px 48px rgba(0, 0, 0, 0.45);
      --white-tinted: #111827;
    }
