| @tailwind base; |
| @tailwind components; |
| @tailwind utilities; |
|
|
| @layer base { |
| :root { |
| --background: 0 0% 100%; |
| --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: 350 80% 25%; |
| --primary-foreground: 45 80% 52%; |
|
|
| --secondary: 45 80% 52%; |
| --secondary-foreground: 350 80% 25%; |
|
|
| --muted: 39 100% 97%; |
| --muted-foreground: 350 40% 25%; |
|
|
| --accent: 45 70% 85%; |
| --accent-foreground: 350 80% 25%; |
|
|
| --destructive: 0 84.2% 60.2%; |
| --destructive-foreground: 210 40% 98%; |
|
|
| --border: 39 30% 90%; |
| --input: 39 30% 90%; |
| --ring: 350 80% 25%; |
|
|
| --radius: 0.5rem; |
|
|
| --sidebar-background: 0 0% 98%; |
|
|
| --sidebar-foreground: 240 5.3% 26.1%; |
|
|
| --sidebar-primary: 240 5.9% 10%; |
|
|
| --sidebar-primary-foreground: 0 0% 98%; |
|
|
| --sidebar-accent: 240 4.8% 95.9%; |
|
|
| --sidebar-accent-foreground: 240 5.9% 10%; |
|
|
| --sidebar-border: 220 13% 91%; |
|
|
| --sidebar-ring: 217.2 91.2% 59.8%; |
| } |
|
|
| .dark { |
| --background: 222.2 84% 4.9%; |
| --foreground: 210 40% 98%; |
|
|
| --card: 222.2 84% 4.9%; |
| --card-foreground: 210 40% 98%; |
|
|
| --popover: 222.2 84% 4.9%; |
| --popover-foreground: 210 40% 98%; |
|
|
| --primary: 210 40% 98%; |
| --primary-foreground: 222.2 47.4% 11.2%; |
|
|
| --secondary: 217.2 32.6% 17.5%; |
| --secondary-foreground: 210 40% 98%; |
|
|
| --muted: 217.2 32.6% 17.5%; |
| --muted-foreground: 215 20.2% 65.1%; |
|
|
| --accent: 217.2 32.6% 17.5%; |
| --accent-foreground: 210 40% 98%; |
|
|
| --destructive: 0 62.8% 30.6%; |
| --destructive-foreground: 210 40% 98%; |
|
|
| --border: 217.2 32.6% 17.5%; |
| --input: 217.2 32.6% 17.5%; |
| --ring: 212.7 26.8% 83.9%; |
| --sidebar-background: 240 5.9% 10%; |
| --sidebar-foreground: 240 4.8% 95.9%; |
| --sidebar-primary: 224.3 76.3% 48%; |
| --sidebar-primary-foreground: 0 0% 100%; |
| --sidebar-accent: 240 3.7% 15.9%; |
| --sidebar-accent-foreground: 240 4.8% 95.9%; |
| --sidebar-border: 240 3.7% 15.9%; |
| --sidebar-ring: 217.2 91.2% 59.8%; |
| } |
| } |
|
|
| @layer base { |
| * { |
| @apply border-border; |
| } |
|
|
| body { |
| @apply bg-background text-foreground; |
| font-family: 'Lato', sans-serif; |
| } |
| |
| h1, h2, h3, .font-serif { |
| font-family: 'Playfair Display', serif; |
| } |
| } |
|
|
| @layer components { |
| .chat-container { |
| @apply max-w-3xl mx-auto h-[80vh] bg-restaurant-light rounded-xl shadow-lg flex flex-col overflow-hidden border border-restaurant-gold/20; |
| } |
| |
| .chat-header { |
| @apply bg-restaurant-burgundy text-white py-4 px-6 flex items-center justify-between border-b border-restaurant-gold/30; |
| } |
| |
| .chat-messages { |
| @apply flex-1 overflow-y-auto p-4 space-y-4 bg-gradient-to-b from-restaurant-cream to-white; |
| } |
| |
| .message { |
| @apply max-w-[80%] p-3 rounded-xl animate-fade-in; |
| } |
| |
| .bot-message { |
| @apply bg-white border border-restaurant-burgundy/20 text-restaurant-dark rounded-tr-xl rounded-br-xl rounded-bl-xl shadow-sm; |
| } |
| |
| .user-message { |
| @apply bg-restaurant-burgundy text-white ml-auto rounded-tl-xl rounded-tr-xl rounded-bl-xl shadow-sm; |
| } |
| |
| .chat-input-container { |
| @apply p-4 bg-white border-t border-restaurant-gold/30; |
| } |
| |
| .quick-replies { |
| @apply flex flex-wrap gap-2 mb-4; |
| } |
| |
| .quick-reply-btn { |
| @apply px-4 py-2 bg-restaurant-cream text-restaurant-burgundy rounded-full border border-restaurant-gold/40 hover:bg-restaurant-gold hover:text-white transition-colors duration-200 text-sm whitespace-nowrap animate-fade-in; |
| } |
| } |
|
|
| @keyframes fade-in { |
| from { |
| opacity: 0; |
| transform: translateY(10px); |
| } |
| to { |
| opacity: 1; |
| transform: translateY(0); |
| } |
| } |
|
|
| .animate-fade-in { |
| animation: fade-in 0.3s ease-out forwards; |
| } |
|
|
| @keyframes typing { |
| 0% { width: 0 } |
| 100% { width: 100% } |
| } |
|
|
| .typing-indicator { |
| @apply inline-flex space-x-1 mt-1; |
| } |
|
|
| .typing-indicator span { |
| @apply w-2 h-2 bg-restaurant-burgundy/60 rounded-full; |
| animation: bounce 1.4s infinite ease-in-out both; |
| } |
|
|
| .typing-indicator span:nth-child(1) { |
| animation-delay: -0.32s; |
| } |
|
|
| .typing-indicator span:nth-child(2) { |
| animation-delay: -0.16s; |
| } |
|
|
| @keyframes bounce { |
| 0%, 80%, 100% { |
| transform: scale(0); |
| } |
| 40% { |
| transform: scale(1.0); |
| } |
| } |
|
|
|
|