|
@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); |
|
} |
|
} |
|
|
|
|