@tailwind base; @tailwind components; @tailwind utilities; @layer components { .drawer-item { @apply text-gray-700 hover:bg-gray-100 hover:text-primary focus:outline-none transition-colors duration-200; } .drawer-item.active { @apply bg-primary/10 text-primary font-medium; } } @layer base { :root { --background: 0 0% 96%; --foreground: 222.2 84% 4.9%; --card: 0 0% 100%; --card-foreground: 222.2 84% 4.9%; --popover: 0 0% 100%; --popover-foreground: 222.2 84% 4.9%; --primary: 221.2 83.2% 53.3%; --primary-foreground: 210 40% 98%; --secondary: 210 40% 96.1%; --secondary-foreground: 222.2 47.4% 11.2%; --muted: 210 40% 96.1%; --muted-foreground: 215.4 16.3% 46.9%; --accent: 210 40% 96.1%; --accent-foreground: 222.2 47.4% 11.2%; --destructive: 0 84.2% 60.2%; --destructive-foreground: 210 40% 98%; --border: 214.3 31.8% 91.4%; --input: 214.3 31.8% 91.4%; --ring: 221.2 83.2% 53.3%; --radius: 0.5rem; --chart-1: 221.2 83.2% 53.3%; --chart-2: 292.2 84.1% 60.6%; --chart-3: 31.5 91.7% 48.8%; --chart-4: 182.9 75.4% 52.7%; --chart-5: 355.7 100% 54.7%; --sidebar-background: 0 0% 100%; --sidebar-foreground: 240 10% 3.9%; --sidebar-primary: 221.2 83.2% 53.3%; --sidebar-primary-foreground: 0 0% 98%; --sidebar-accent: 240 4.8% 95.9%; --sidebar-accent-foreground: 240 5.9% 10%; --sidebar-border: 240 5.9% 90%; --sidebar-ring: 142.1 76.2% 36.3%; } .dark { --background: 20 14.3% 4.1%; --foreground: 0 0% 95%; --card: 24 9.8% 10%; --card-foreground: 0 0% 95%; --popover: 0 0% 9%; --popover-foreground: 0 0% 95%; --primary: 221.2 83.2% 53.3%; --primary-foreground: 210 40% 98%; --secondary: 240 3.7% 15.9%; --secondary-foreground: 0 0% 98%; --muted: 0 0% 15%; --muted-foreground: 240 5% 64.9%; --accent: 12 6.5% 15.1%; --accent-foreground: 0 0% 98%; --destructive: 0 62.8% 30.6%; --destructive-foreground: 0 85.7% 97.3%; --border: 240 3.7% 15.9%; --input: 240 3.7% 15.9%; --ring: 142.4 71.8% 29.2%; --sidebar-background: 20 14.3% 4.1%; --sidebar-foreground: 0 0% 95%; --sidebar-primary: 221.2 83.2% 53.3%; --sidebar-primary-foreground: 210 40% 98%; --sidebar-accent: 240 3.7% 15.9%; --sidebar-accent-foreground: 0 0% 98%; --sidebar-border: 240 3.7% 15.9%; --sidebar-ring: 142.4 71.8% 29.2%; } /* Smooth theme transition */ *, ::before, ::after { transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 300ms; } /* Exclude transitions for specific elements that shouldn't animate */ .no-transition, .no-transition *, .no-transition::before, .no-transition::after { transition: none !important; } * { @apply border-border; } body { @apply bg-background text-foreground; font-feature-settings: "rlig" 1, "calt" 1; font-family: 'Roboto', sans-serif; } .drawer-item.active { @apply bg-opacity-10 bg-primary text-primary border-l-2 border-primary; } .drawer-item:hover:not(.active) { @apply bg-muted; } .material-card { @apply bg-card rounded shadow-sm hover:shadow transition-shadow duration-200; } .status-badge { @apply inline-flex items-center rounded-full px-2 py-1 text-xs font-medium; } .status-badge-connected { @apply bg-green-100 text-green-800; } .status-badge-disconnected { @apply bg-red-100 text-red-800; } }