:root {
  --brand-primary: #6366F1;
  --brand-primary-hover: #818CF8;
  --brand-primary-active: #4F46E5;
  --brand-secondary: #EC4899;
  --brand-tertiary: #14B8A6;
  --color-success: #10B981;
  --color-success-bg: rgba(16,185,129,.12);
  --color-warning: #F59E0B;
  --color-warning-bg: rgba(245,158,11,.12);
  --color-error: #EF4444;
  --color-error-bg: rgba(239,68,68,.12);
  --color-info: #3B82F6;
  --color-info-bg: rgba(59,130,246,.12);
  --bg-app: #0B0E14;
  --bg-surface-1: #12161F;
  --bg-surface-2: #1A1F2C;
  --bg-surface-3: #252B3B;
  --bg-input: #0F131C;
  --border-subtle: #252B3B;
  --border-default: #2F3649;
  --border-strong: #3D455B;
  --text-primary: #F1F5F9;
  --text-secondary: #CBD5E1;
  --text-tertiary: #94A3B8;
  --text-disabled: #64748B;
  --bg-primary: #0B0E14;
  --bg-secondary: #1A1F2C;
  --bg-surface: #1A1F2C;
  --accent: #6366F1;
  --accent-light: #818CF8;
  --accent-2: #EC4899;
  --text-subtle: #94A3B8;
  --border: #2F3649;
  --success: #10B981;
  --error: #EF4444;
  --warning: #F59E0B;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 14px;
  --radius-xl: 20px;
  --radius-full: 9999px;
  --shadow-xs: 0 1px 2px rgba(0,0,0,.3);
  --shadow-sm: 0 2px 6px rgba(0,0,0,.35);
  --shadow-md: 0 6px 16px rgba(0,0,0,.40);
  --shadow-lg: 0 16px 40px rgba(0,0,0,.55);
  --shadow-xl: 0 24px 60px rgba(0,0,0,.65);
  --shadow-glow: 0 0 0 3px rgba(99,102,241,.25);
  --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, 'SF Mono', Menlo, monospace;
  --text-xs: 11px;
  --text-sm: 12px;
  --text-base: 14px;
  --text-md: 15px;
  --text-lg: 17px;
  --text-xl: 20px;
  --text-2xl: 24px;
  --text-3xl: 30px;
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
  --duration-fast: 120ms;
  --duration-normal: 200ms;
  --duration-slow: 320ms;
  --z-base: 1;
  --z-dropdown: 100;
  --z-sticky: 200;
  --z-overlay: 500;
  --z-modal: 1000;
  --z-popover: 1500;
  --z-toast: 2000;
}
[data-theme="light"] {
  --bg-primary: #F5F7FA;
  --bg-secondary: #FFFFFF;
  --bg-surface: #F0F2F5;
  --accent: #2563EB;
  --accent-light: #3B82F6;
  --text-primary: #1A202C;
  --text-subtle: #475569;
  --border: #E2E8F0;
  --success: #16A34A;
  --error: #DC2626;
  --shadow-lg: 0 14px 40px rgba(0,0,0,0.12);
  --shadow-md: 0 8px 24px rgba(0,0,0,0.08);
}

/* ---------- skeleton loaders ---------- */
.skeleton {
  background: linear-gradient(90deg, var(--bg-surface-2, #1A1F2C) 25%, var(--bg-surface-3, #252B3B) 50%, var(--bg-surface-2, #1A1F2C) 75%);
  background-size: 200% 100%;
  animation: skeleton-shimmer 1.4s ease-in-out infinite;
  border-radius: 4px;
  color: transparent !important;
  pointer-events: none;
  user-select: none;
}
.skeleton-inline {
  display: inline-block;
  height: 1em;
  width: 60%;
  vertical-align: middle;
}
.skeleton-block {
  display: block;
  height: 16px;
  margin-bottom: 8px;
  width: 100%;
}
.skeleton-circle {
  border-radius: 50%;
  width: 36px;
  height: 36px;
}
@keyframes skeleton-shimmer {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}
