:root {
  --font-display: "Manrope", "Segoe UI", sans-serif;
  --font-body: "Public Sans", "Segoe UI", sans-serif;
  --font-mono: "JetBrains Mono", "SFMono-Regular", monospace;

  --text-xs: 0.75rem;
  --text-sm: 0.875rem;
  --text-base: 1rem;
  --text-lg: 1.125rem;
  --text-xl: 1.25rem;
  --text-2xl: 1.5rem;
  --text-3xl: 1.875rem;
  --text-4xl: 2.375rem;
  --text-5xl: 3rem;
  --text-6xl: 3.75rem;

  --font-normal: 400;
  --font-medium: 500;
  --font-semibold: 600;
  --font-bold: 700;
  --font-extrabold: 800;

  --leading-none: 1;
  --leading-tight: 1.2;
  --leading-snug: 1.35;
  --leading-normal: 1.55;
  --leading-relaxed: 1.7;
  --leading-loose: 1.9;

  --tracking-tighter: -0.05em;
  --tracking-tight: -0.03em;
  --tracking-normal: 0;
  --tracking-wide: 0.02em;
  --tracking-wider: 0.08em;
  --tracking-widest: 0.14em;

  --color-primary-50: #edf4ff;
  --color-primary-100: #dbeafe;
  --color-primary-200: #bfd7ff;
  --color-primary-300: #93c5fd;
  --color-primary-400: #60a5fa;
  --color-primary-500: #3b82f6;
  --color-primary-600: #2563eb;
  --color-primary-700: #1d4ed8;
  --color-primary-800: #1e3a8a;
  --color-primary-900: #172554;

  --color-secondary-50: #f6f8fc;
  --color-secondary-100: #eef2ff;
  --color-secondary-200: #e2e8f0;
  --color-secondary-300: #cbd5e1;
  --color-secondary-400: #94a3b8;
  --color-secondary-500: #64748b;
  --color-secondary-600: #475569;
  --color-secondary-700: #334155;
  --color-secondary-800: #1e293b;
  --color-secondary-900: #0f172a;

  --color-accent-50: #effdf7;
  --color-accent-100: #d1fae5;
  --color-accent-200: #a7f3d0;
  --color-accent-300: #6ee7b7;
  --color-accent-400: #34d399;
  --color-accent-500: #10b981;
  --color-accent-600: #059669;
  --color-accent-700: #047857;
  --color-accent-800: #065f46;
  --color-accent-900: #064e3b;

  --color-success-50: #effaf4;
  --color-success-100: #dff4e7;
  --color-success-200: #bfe8d0;
  --color-success-300: #89d7ac;
  --color-success-400: #51bf7c;
  --color-success-500: #2ca25f;
  --color-success-600: #228b4e;
  --color-success-700: #1d6f42;
  --color-success-800: #165536;
  --color-success-900: #103d27;

  --color-warning-50: #fff9eb;
  --color-warning-100: #fff1c7;
  --color-warning-200: #ffe08a;
  --color-warning-300: #fcd34d;
  --color-warning-400: #fbbf24;
  --color-warning-500: #f59e0b;
  --color-warning-600: #d97706;
  --color-warning-700: #b45309;
  --color-warning-800: #92400e;
  --color-warning-900: #78350f;

  --color-danger-50: #fff1f2;
  --color-danger-100: #ffe4e6;
  --color-danger-200: #fecdd3;
  --color-danger-300: #fda4af;
  --color-danger-400: #fb7185;
  --color-danger-500: #f43f5e;
  --color-danger-600: #e11d48;
  --color-danger-700: #be123c;
  --color-danger-800: #9f1239;
  --color-danger-900: #881337;

  --color-info-50: #ecfeff;
  --color-info-100: #cffafe;
  --color-info-200: #a5f3fc;
  --color-info-300: #67e8f9;
  --color-info-400: #22d3ee;
  --color-info-500: #06b6d4;
  --color-info-600: #0891b2;
  --color-info-700: #0e7490;
  --color-info-800: #155e75;
  --color-info-900: #164e63;

  --color-gray-25: #fcfdff;
  --color-gray-50: #f7f9fc;
  --color-gray-100: #eef2f7;
  --color-gray-200: #e2e8f0;
  --color-gray-300: #cbd5e1;
  --color-gray-400: #94a3b8;
  --color-gray-500: #64748b;
  --color-gray-600: #475569;
  --color-gray-700: #334155;
  --color-gray-750: #293548;
  --color-gray-800: #1f2937;
  --color-gray-850: #172030;
  --color-gray-900: #111827;
  --color-gray-950: #020617;

  --color-primary: var(--color-primary-600);
  --color-primary-light: var(--color-primary-500);
  --color-primary-dark: var(--color-primary-700);
  --color-secondary: var(--color-secondary-600);
  --color-secondary-light: var(--color-secondary-500);
  --color-secondary-dark: var(--color-secondary-700);
  --color-accent: var(--color-accent-600);
  --color-accent-light: var(--color-accent-500);
  --color-accent-dark: var(--color-accent-700);
  --color-success: var(--color-success-600);
  --color-success-light: var(--color-success-500);
  --color-success-dark: var(--color-success-700);
  --color-warning: var(--color-warning-600);
  --color-warning-light: var(--color-warning-500);
  --color-warning-dark: var(--color-warning-700);
  --color-danger: var(--color-danger-600);
  --color-danger-light: var(--color-danger-500);
  --color-danger-dark: var(--color-danger-700);
  --color-info: var(--color-info-600);
  --color-info-light: var(--color-info-500);
  --color-info-dark: var(--color-info-700);

  --bg-page: #f4f7fb;
  --bg-card: #ffffff;
  --bg-card-elevated: #ffffff;
  --bg-surface: #f8fafc;
  --bg-muted: #eef2f7;
  --bg-subtle: #f8fbff;

  --text-primary: #102033;
  --text-secondary: #435163;
  --text-muted: #66778d;
  --text-disabled: #97a6b8;
  --text-inverse: #ffffff;
  --text-link: var(--color-primary-700);
  --text-link-hover: var(--color-primary-800);

  --border-default: #d9e2ee;
  --border-subtle: #e8eef6;
  --border-strong: #c0cedf;
  --border-focus: #3b82f6;

  --text-brand-primary: var(--color-primary-700);
  --text-brand-secondary: var(--color-secondary-700);
  --text-brand-accent: var(--color-accent-700);
  --text-success-strong: var(--color-success-700);
  --text-warning-strong: var(--color-warning-800);
  --text-danger-strong: var(--color-danger-700);
  --text-info-strong: var(--color-info-700);

  --color-white: #ffffff;
  --color-text: var(--text-primary);
  --color-text-primary: var(--text-primary);
  --color-text-secondary: var(--text-secondary);
  --color-text-muted: var(--text-muted);
  --color-bg-page: var(--bg-page);
  --color-bg-base: var(--bg-card);
  --color-bg-card: var(--bg-card);
  --color-bg-subtle: var(--bg-subtle);
  --color-border: var(--border-default);
  --color-border-dark: var(--border-strong);
  --color-border-light: var(--border-subtle);
  --color-error: var(--color-danger-700);

  --gradient-primary: linear-gradient(135deg, #4f8df8 0%, #2563eb 100%);
  --gradient-primary-hover: linear-gradient(135deg, #3b82f6 0%, #1d4ed8 100%);
  --gradient-secondary: linear-gradient(135deg, #dbeafe 0%, #bfdbfe 100%);
  --gradient-accent: linear-gradient(135deg, #34d399 0%, #10b981 100%);
  --gradient-success: linear-gradient(135deg, #49b675 0%, #228b4e 100%);
  --gradient-warning: linear-gradient(135deg, #fbbf24 0%, #f59e0b 100%);
  --gradient-danger: linear-gradient(135deg, #fb7185 0%, #e11d48 100%);
  --gradient-hero: linear-gradient(135deg, #1e3a8a 0%, #2563eb 38%, #60a5fa 100%);
  --gradient-hero-warm: linear-gradient(135deg, #f8fbff 0%, #e6eefb 100%);
  --gradient-hero-cool: linear-gradient(135deg, #eff6ff 0%, #f8fbff 100%);
  --gradient-subtle: linear-gradient(180deg, rgba(255, 255, 255, 0.92) 0%, rgba(244, 247, 251, 0.92) 100%);
  --gradient-card: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
  --gradient-shimmer: linear-gradient(90deg, #f3f6fb 25%, #ffffff 50%, #f3f6fb 75%);

  --shadow-xs: 0 1px 2px rgba(15, 23, 42, 0.03);
  --shadow-sm: 0 4px 12px rgba(15, 23, 42, 0.04);
  --shadow-md: 0 8px 20px rgba(15, 23, 42, 0.05);
  --shadow-lg: 0 12px 28px rgba(15, 23, 42, 0.07);
  --shadow-xl: 0 16px 36px rgba(15, 23, 42, 0.08);
  --shadow-2xl: 0 20px 48px rgba(15, 23, 42, 0.1);
  --shadow-none: 0 0 transparent;
  --shadow-primary: 0 8px 20px rgba(37, 99, 235, 0.1);
  --shadow-primary-lg: 0 12px 28px rgba(37, 99, 235, 0.12);
  --shadow-secondary: 0 8px 20px rgba(148, 163, 184, 0.1);
  --shadow-accent: 0 8px 20px rgba(16, 185, 129, 0.1);
  --shadow-success: 0 8px 20px rgba(34, 139, 78, 0.1);
  --shadow-danger: 0 8px 20px rgba(225, 29, 72, 0.09);
  --shadow-inner: inset 0 1px 2px rgba(15, 23, 42, 0.06);
  --shadow-inner-sm: inset 0 1px 1px rgba(15, 23, 42, 0.04);

  --glass-bg: rgba(255, 255, 255, 0.78);
  --glass-bg-strong: rgba(255, 255, 255, 0.92);
  --glass-bg-subtle: rgba(255, 255, 255, 0.62);
  --glass-border: rgba(217, 226, 238, 0.85);
  --glass-blur: blur(18px);
  --glass-blur-lg: blur(26px);
  --glass-dark-bg: rgba(16, 32, 51, 0.78);
  --glass-dark-border: rgba(255, 255, 255, 0.12);

  --radius-none: 0;
  --radius-sm: 0.5rem;
  --radius-md: 0.75rem;
  --radius-lg: 1rem;
  --radius-xl: 1.25rem;
  --radius-2xl: 1.5rem;
  --radius-3xl: 2rem;
  --radius-full: 9999px;

  --space-0: 0;
  --space-px: 1px;
  --space-0-5: 0.125rem;
  --space-1: 0.25rem;
  --space-1-5: 0.375rem;
  --space-2: 0.5rem;
  --space-2-5: 0.625rem;
  --space-3: 0.75rem;
  --space-3-5: 0.875rem;
  --space-4: 1rem;
  --space-5: 1.25rem;
  --space-6: 1.5rem;
  --space-7: 1.75rem;
  --space-8: 2rem;
  --space-9: 2.25rem;
  --space-10: 2.5rem;
  --space-11: 2.75rem;
  --space-12: 3rem;
  --space-14: 3.5rem;
  --space-16: 4rem;
  --space-20: 5rem;
  --space-24: 6rem;
  --space-28: 7rem;
  --space-32: 8rem;

  --transition-fast: 160ms ease;
  --transition-base: 220ms ease;
  --transition-slow: 320ms ease;
  --transition-slower: 420ms ease;
  --transition-spring: 300ms cubic-bezier(0.2, 0.8, 0.2, 1);

  --duration-75: 75ms;
  --duration-100: 100ms;
  --duration-150: 150ms;
  --duration-200: 200ms;
  --duration-300: 300ms;
  --duration-500: 500ms;
  --duration-700: 700ms;
  --duration-1000: 1000ms;
  --ease-linear: linear;
  --ease-in: cubic-bezier(0.4, 0, 1, 1);
  --ease-out: cubic-bezier(0, 0, 0.2, 1);
  --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
  --ease-bounce: cubic-bezier(0.2, 1.2, 0.2, 1);
  --ease-spring: cubic-bezier(0.2, 0.8, 0.2, 1);

  --sidebar-width: 288px;
  --sidebar-width-collapsed: 84px;
  --header-height: 84px;
  --content-max-width: 1440px;
  --content-padding: clamp(1rem, 2vw, 2rem);

  --z-behind: -1;
  --z-base: 1;
  --z-sticky: 20;
  --z-dropdown: 40;
  --z-fixed: 50;
  --z-popover: 60;
  --z-modal-backdrop: 80;
  --z-modal: 90;
  --z-toast: 100;
  --z-tooltip: 110;

  --font-size-xs: var(--text-xs);
  --font-size-sm: var(--text-sm);
  --font-size-base: var(--text-base);
  --font-size-lg: var(--text-lg);
  --font-size-xl: var(--text-xl);
  --font-size-2xl: var(--text-2xl);
  --font-size-3xl: var(--text-3xl);
  --font-weight-normal: var(--font-normal);
  --font-weight-medium: var(--font-medium);
  --font-weight-semibold: var(--font-semibold);
  --font-weight-bold: var(--font-bold);
  --font-family: var(--font-body);
  --font-family-mono: var(--font-mono);
  --line-height-tight: var(--leading-tight);
  --line-height-relaxed: var(--leading-relaxed);
  --letter-spacing-wide: var(--tracking-wide);
  --letter-spacing-wider: var(--tracking-wider);
}
