@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap'); @tailwind base; @tailwind components; @tailwind utilities; @layer base { :root { --background: 0 0% 100%; --foreground: 222 47% 11%; --card: 0 0% 100%; --card-foreground: 222 47% 11%; --popover: 0 0% 100%; --popover-foreground: 222 47% 11%; --primary: 239 84% 67%; --primary-foreground: 0 0% 100%; --secondary: 220 14% 96%; --secondary-foreground: 222 47% 11%; --muted: 220 14% 96%; --muted-foreground: 220 9% 46%; --accent: 220 14% 96%; --accent-foreground: 222 47% 11%; --destructive: 0 84% 60%; --destructive-foreground: 0 0% 100%; --border: 220 13% 91%; --input: 220 13% 91%; --ring: 239 84% 67%; --radius: 0.5rem; --chart-1: 239 84% 67%; --chart-2: 38 92% 50%; --chart-3: 142 76% 36%; --chart-4: 199 89% 48%; --chart-5: 0 84% 60%; --card-border: 220 13% 91%; --popover-border: 220 13% 91%; --primary-border: 239 84% 67%; --secondary-border: 220 14% 89%; --muted-border: 220 13% 91%; --accent-border: 220 13% 91%; --destructive-border: 0 84% 60%; --sidebar: 222 47% 6%; --sidebar-foreground: 220 9% 70%; --sidebar-primary: 239 84% 67%; --sidebar-primary-foreground: 0 0% 100%; --sidebar-accent: 222 47% 10%; --sidebar-accent-foreground: 0 0% 100%; --sidebar-border: 222 47% 12%; --sidebar-ring: 239 84% 67%; --font-sans: 'Inter', system-ui, sans-serif; --font-mono: 'JetBrains Mono', 'Fira Code', monospace; --font-serif: Georgia, serif; --sidebar-bg: 222 47% 6%; --sidebar-hover: 222 47% 10%; --sidebar-active: 239 84% 67%; --sidebar-text: 220 9% 70%; --sidebar-text-active: 0 0% 100%; --success: 142 76% 36%; --warning: 38 92% 50%; --info: 199 89% 48%; } .dark { --background: 222 47% 8%; --foreground: 210 40% 98%; --card: 222 47% 11%; --card-foreground: 210 40% 98%; --popover: 222 47% 11%; --popover-foreground: 210 40% 98%; --primary: 239 84% 67%; --primary-foreground: 0 0% 100%; --secondary: 222 47% 15%; --secondary-foreground: 210 40% 98%; --muted: 222 47% 15%; --muted-foreground: 215 20% 65%; --accent: 222 47% 15%; --accent-foreground: 210 40% 98%; --destructive: 0 84% 60%; --destructive-foreground: 0 0% 100%; --border: 222 47% 18%; --input: 222 47% 18%; --ring: 239 84% 67%; --sidebar-bg: 222 47% 4%; --sidebar-hover: 222 47% 8%; --sidebar-active: 239 84% 67%; --sidebar-text: 220 9% 60%; --sidebar-text-active: 0 0% 100%; --chart-1: 239 84% 67%; --chart-2: 38 92% 50%; --chart-3: 142 76% 36%; --chart-4: 199 89% 48%; --chart-5: 0 84% 60%; --card-border: 222 47% 18%; --popover-border: 222 47% 18%; --primary-border: 239 84% 67%; --secondary-border: 222 47% 20%; --muted-border: 222 47% 18%; --accent-border: 222 47% 18%; --destructive-border: 0 84% 60%; --sidebar: 222 47% 4%; --sidebar-foreground: 220 9% 60%; --sidebar-primary: 239 84% 67%; --sidebar-primary-foreground: 0 0% 100%; --sidebar-accent: 222 47% 8%; --sidebar-accent-foreground: 0 0% 100%; --sidebar-border: 222 47% 10%; --sidebar-ring: 239 84% 67%; } } @layer base { * { @apply border-border; } body { @apply bg-background text-foreground; font-family: 'Inter', sans-serif; font-feature-settings: "rlig" 1, "calt" 1; } code, pre, .font-mono { font-family: 'JetBrains Mono', 'Fira Code', monospace; } } /* Sidebar */ .nexus-sidebar { background: hsl(var(--sidebar-bg)); width: 240px; min-height: 100vh; transition: width 0.2s ease; flex-shrink: 0; } .nexus-sidebar.collapsed { width: 64px; } .nexus-nav-item { display: flex; align-items: center; gap: 12px; padding: 10px 16px; border-radius: 8px; color: hsl(var(--sidebar-text)); font-size: 0.875rem; font-weight: 500; cursor: pointer; transition: background 0.15s, color 0.15s; text-decoration: none; margin: 2px 8px; } .nexus-nav-item:hover { background: hsl(var(--sidebar-hover)); color: hsl(var(--sidebar-text-active)); } .nexus-nav-item.active { background: hsl(var(--primary) / 0.15); color: hsl(var(--primary)); } .nexus-nav-item .label { white-space: nowrap; overflow: hidden; } /* Status badges */ .status-connected { @apply bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-400; } .status-disconnected { @apply bg-red-100 text-red-800 dark:bg-red-900/30 dark:text-red-400; } .status-waiting { @apply bg-yellow-100 text-yellow-800 dark:bg-yellow-900/30 dark:text-yellow-400; } /* Metric card */ .metric-card { @apply rounded-xl border bg-card p-5 shadow-sm hover:shadow-md transition-shadow; } /* Terminal */ .nexus-terminal { background: #0d1117; font-family: 'JetBrains Mono', monospace; font-size: 13px; color: #7ee787; padding: 12px; border-radius: 8px; overflow-y: auto; } /* Scrollbar */ ::-webkit-scrollbar { width: 6px; height: 6px; } ::-webkit-scrollbar-track { background: transparent; } ::-webkit-scrollbar-thumb { background: hsl(var(--muted-foreground) / 0.3); border-radius: 3px; } ::-webkit-scrollbar-thumb:hover { background: hsl(var(--muted-foreground) / 0.5); } /* NEXUS logo mark */ .nexus-logo-ring { animation: pulse-ring 3s ease-in-out infinite; } @keyframes pulse-ring { 0%, 100% { opacity: 0.6; } 50% { opacity: 1; } } /* Wizard stepper */ .wizard-step { @apply flex items-center gap-3 p-4 rounded-lg border transition-all; } .wizard-step.active { @apply border-primary bg-primary/5; } .wizard-step.completed { @apply border-green-500 bg-green-50 dark:bg-green-900/10; } .wizard-step.pending { @apply border-border opacity-60; }