Spaces:
Build error
Build error
| @import "tailwindcss"; | |
| @custom-variant dark (&:is(.dark *)); | |
| @theme inline { | |
| --color-background: var(--background); | |
| --color-foreground: var(--foreground); | |
| --color-sidebar-ring: var(--sidebar-ring); | |
| --color-sidebar-border: var(--sidebar-border); | |
| --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); | |
| --color-sidebar-accent: var(--sidebar-accent); | |
| --color-sidebar-primary-foreground: var(--sidebar-primary-foreground); | |
| --color-sidebar-primary: var(--sidebar-primary); | |
| --color-sidebar-foreground: var(--sidebar-foreground); | |
| --color-sidebar: var(--sidebar); | |
| --color-chart-5: var(--chart-5); | |
| --color-chart-4: var(--chart-4); | |
| --color-chart-3: var(--chart-3); | |
| --color-chart-2: var(--chart-2); | |
| --color-chart-1: var(--chart-1); | |
| --color-ring: var(--ring); | |
| --color-input: var(--input); | |
| --color-border: var(--border); | |
| --color-destructive: var(--destructive); | |
| --color-accent-foreground: var(--accent-foreground); | |
| --color-accent: var(--accent); | |
| --color-muted-foreground: var(--muted-foreground); | |
| --color-muted: var(--muted); | |
| --color-secondary-foreground: var(--secondary-foreground); | |
| --color-secondary: var(--secondary); | |
| --color-primary-foreground: var(--primary-foreground); | |
| --color-primary: var(--primary); | |
| --color-popover-foreground: var(--popover-foreground); | |
| --color-popover: var(--popover); | |
| --color-card-foreground: var(--card-foreground); | |
| --color-card: var(--card); | |
| --radius-sm: calc(var(--radius) - 4px); | |
| --radius-md: calc(var(--radius) - 2px); | |
| --radius-lg: var(--radius); | |
| --radius-xl: calc(var(--radius) + 4px); | |
| } | |
| :root { | |
| --radius: 0.625rem; | |
| --background: #F8F6F2; | |
| --foreground: #1E1E1E; | |
| --card: #FFFFFF; | |
| --card-foreground: #1E1E1E; | |
| --popover: #FFFFFF; | |
| --popover-foreground: #1E1E1E; | |
| --primary: #0A4A8F; | |
| --primary-foreground: #FFFFFF; | |
| --secondary: #F8F6F2; | |
| --secondary-foreground: #1E1E1E; | |
| --muted: #F8F6F2; | |
| --muted-foreground: #6B7280; | |
| --accent: #B89B4E; | |
| --accent-foreground: #FFFFFF; | |
| --destructive: #dc2626; | |
| --border: #e5e7eb; | |
| --input: #e5e7eb; | |
| --ring: #0A4A8F; | |
| --chart-1: #0A4A8F; | |
| --chart-2: #3B82F6; | |
| --chart-3: #B89B4E; | |
| --chart-4: #6B7280; | |
| --chart-5: #1E1E1E; | |
| --sidebar: #FFFFFF; | |
| --sidebar-foreground: #1E1E1E; | |
| --sidebar-primary: #0A4A8F; | |
| --sidebar-primary-foreground: #FFFFFF; | |
| --sidebar-accent: #B89B4E; | |
| --sidebar-accent-foreground: #FFFFFF; | |
| --sidebar-border: #e5e7eb; | |
| --sidebar-ring: #0A4A8F; | |
| } | |
| .dark { | |
| --background: #121418; | |
| --foreground: #E5E7EB; | |
| --card: #1E2024; | |
| --card-foreground: #E5E7EB; | |
| --popover: #1E2024; | |
| --popover-foreground: #E5E7EB; | |
| --primary: #3B82F6; | |
| --primary-foreground: #FFFFFF; | |
| --secondary: #1E2024; | |
| --secondary-foreground: #E5E7EB; | |
| --muted: #1E2024; | |
| --muted-foreground: #9CA3AF; | |
| --accent: #DDAF3B; | |
| --accent-foreground: #FFFFFF; | |
| --destructive: #ef4444; | |
| --border: rgba(255, 255, 255, 0.1); | |
| --input: rgba(255, 255, 255, 0.15); | |
| --ring: #3B82F6; | |
| --chart-1: #3B82F6; | |
| --chart-2: #0A4A8F; | |
| --chart-3: #DDAF3B; | |
| --chart-4: #9CA3AF; | |
| --chart-5: #E5E7EB; | |
| --sidebar: #1E2024; | |
| --sidebar-foreground: #E5E7EB; | |
| --sidebar-primary: #3B82F6; | |
| --sidebar-primary-foreground: #FFFFFF; | |
| --sidebar-accent: #DDAF3B; | |
| --sidebar-accent-foreground: #FFFFFF; | |
| --sidebar-border: rgba(255, 255, 255, 0.1); | |
| --sidebar-ring: #3B82F6; | |
| } | |
| /* Savanna Tech Theme */ | |
| [data-theme="savanna-tech"] { | |
| --background: #F9FAFB; | |
| --foreground: #111827; | |
| --card: #FFFFFF; | |
| --card-foreground: #111827; | |
| --popover: #FFFFFF; | |
| --popover-foreground: #111827; | |
| --primary: #1E6043; | |
| --primary-foreground: #FFFFFF; | |
| --secondary: #F9FAFB; | |
| --secondary-foreground: #111827; | |
| --muted: #F9FAFB; | |
| --muted-foreground: #64748B; | |
| --accent: #C45A3A; | |
| --accent-foreground: #FFFFFF; | |
| --destructive: #dc2626; | |
| --border: #e5e7eb; | |
| --input: #e5e7eb; | |
| --ring: #1E6043; | |
| --chart-1: #1E6043; | |
| --chart-2: #34D399; | |
| --chart-3: #C45A3A; | |
| --chart-4: #64748B; | |
| --chart-5: #111827; | |
| --sidebar: #FFFFFF; | |
| --sidebar-foreground: #111827; | |
| --sidebar-primary: #1E6043; | |
| --sidebar-primary-foreground: #FFFFFF; | |
| --sidebar-accent: #C45A3A; | |
| --sidebar-accent-foreground: #FFFFFF; | |
| --sidebar-border: #e5e7eb; | |
| --sidebar-ring: #1E6043; | |
| } | |
| [data-theme="savanna-tech"].dark { | |
| --background: #0A0F1A; | |
| --foreground: #D1D5DB; | |
| --card: #111827; | |
| --card-foreground: #D1D5DB; | |
| --popover: #111827; | |
| --popover-foreground: #D1D5DB; | |
| --primary: #34D399; | |
| --primary-foreground: #FFFFFF; | |
| --secondary: #111827; | |
| --secondary-foreground: #D1D5DB; | |
| --muted: #111827; | |
| --muted-foreground: #94A3B8; | |
| --accent: #F07A5A; | |
| --accent-foreground: #FFFFFF; | |
| --destructive: #ef4444; | |
| --border: rgba(255, 255, 255, 0.1); | |
| --input: rgba(255, 255, 255, 0.15); | |
| --ring: #34D399; | |
| --chart-1: #34D399; | |
| --chart-2: #1E6043; | |
| --chart-3: #F07A5A; | |
| --chart-4: #94A3B8; | |
| --chart-5: #D1D5DB; | |
| --sidebar: #111827; | |
| --sidebar-foreground: #D1D5DB; | |
| --sidebar-primary: #34D399; | |
| --sidebar-primary-foreground: #FFFFFF; | |
| --sidebar-accent: #F07A5A; | |
| --sidebar-accent-foreground: #FFFFFF; | |
| --sidebar-border: rgba(255, 255, 255, 0.1); | |
| --sidebar-ring: #34D399; | |
| } | |
| @layer base { | |
| * { | |
| @apply border-border; | |
| } | |
| body { | |
| @apply bg-background text-foreground; | |
| } | |
| /* Mobile touch improvements */ | |
| @media (max-width: 768px) { | |
| /* Ensure minimum touch target sizes */ | |
| button, [role="button"], input[type="submit"], input[type="button"] { | |
| min-height: 44px; | |
| min-width: 44px; | |
| } | |
| /* Improve tap targets for interactive elements */ | |
| a, button, [role="button"], input, textarea, select { | |
| touch-action: manipulation; | |
| } | |
| /* Better text selection on mobile */ | |
| * { | |
| -webkit-tap-highlight-color: rgba(0, 0, 0, 0.1); | |
| -webkit-touch-callout: none; | |
| -webkit-user-select: text; | |
| user-select: text; | |
| } | |
| /* Prevent zoom on input focus on iOS */ | |
| input[type="text"], input[type="email"], input[type="password"], input[type="search"], textarea { | |
| font-size: 16px; | |
| } | |
| } | |
| /* Smooth scrolling for better mobile experience */ | |
| html { | |
| scroll-behavior: smooth; | |
| } | |
| /* Better focus styles for accessibility */ | |
| *:focus-visible { | |
| outline: 2px solid hsl(var(--ring)); | |
| outline-offset: 2px; | |
| } | |
| } | |
| /* Hide all scrollbars globally */ | |
| ::-webkit-scrollbar { | |
| display: none; | |
| width: 0; | |
| height: 0; | |
| } | |
| ::-webkit-scrollbar-track { | |
| display: none; | |
| } | |
| ::-webkit-scrollbar-thumb { | |
| display: none; | |
| } | |
| ::-webkit-scrollbar-corner { | |
| display: none; | |
| } | |
| /* Firefox scrollbar - hide */ | |
| * { | |
| scrollbar-width: none; | |
| -ms-overflow-style: none; | |
| } | |
| /* Combined Gradient Backgrounds */ | |
| .gradient-judicial-savanna { | |
| background: linear-gradient(135deg, | |
| hsl(210 40% 15%) 0%, | |
| hsl(210 60% 25%) 25%, | |
| hsl(25 45% 35%) 50%, | |
| hsl(165 35% 20%) 75%, | |
| hsl(210 40% 15%) 100%); | |
| } | |
| .gradient-savanna-judicial { | |
| background: linear-gradient(135deg, | |
| hsl(165 35% 20%) 0%, | |
| hsl(25 45% 35%) 25%, | |
| hsl(210 60% 25%) 50%, | |
| hsl(165 35% 20%) 75%, | |
| hsl(25 45% 35%) 100%); | |
| } | |
| .gradient-blended-primary { | |
| background: linear-gradient(135deg, | |
| hsl(var(--primary)) 0%, | |
| hsl(var(--accent)) 50%, | |
| hsl(var(--primary)) 100%); | |
| } | |
| .gradient-blended-secondary { | |
| background: linear-gradient(135deg, | |
| hsl(var(--accent)) 0%, | |
| hsl(var(--primary)) 50%, | |
| hsl(var(--accent)) 100%); | |
| } | |
| /* Gradient Animation */ | |
| @keyframes gradient-x { | |
| 0%, 100% { | |
| background-size: 200% 200%; | |
| background-position: left center; | |
| } | |
| 50% { | |
| background-size: 200% 200%; | |
| background-position: right center; | |
| } | |
| } | |
| .animate-gradient-x { | |
| animation: gradient-x 3s ease infinite; | |
| background-size: 200% 200%; | |
| } | |
| /* AmaniQuery Message Animations */ | |
| @keyframes message-slide-in { | |
| 0% { | |
| opacity: 0; | |
| transform: translateY(20px) scale(0.95); | |
| } | |
| 100% { | |
| opacity: 1; | |
| transform: translateY(0) scale(1); | |
| } | |
| } | |
| @keyframes thinking-pulse { | |
| 0%, 100% { | |
| opacity: 0.6; | |
| transform: scale(1); | |
| } | |
| 50% { | |
| opacity: 1; | |
| transform: scale(1.05); | |
| } | |
| } | |
| @keyframes citation-glow { | |
| 0%, 100% { | |
| box-shadow: 0 0 0 0 rgba(59, 130, 246, 0.4); | |
| } | |
| 50% { | |
| box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.1); | |
| } | |
| } | |
| @keyframes typing-indicator { | |
| 0%, 60%, 100% { | |
| transform: translateY(0); | |
| opacity: 0.7; | |
| } | |
| 30% { | |
| transform: translateY(-10px); | |
| opacity: 1; | |
| } | |
| } | |
| /* Message Animation Classes */ | |
| .animate-message-in { | |
| animation: message-slide-in 0.4s ease-out forwards; | |
| } | |
| .animate-thinking { | |
| animation: thinking-pulse 2s ease-in-out infinite; | |
| } | |
| .animate-citation-hover { | |
| animation: citation-glow 1.5s ease-in-out infinite; | |
| } | |
| .animate-typing { | |
| animation: typing-indicator 1.4s ease-in-out infinite; | |
| } | |
| /* Smooth transitions for interactive elements */ | |
| .transition-smooth { | |
| transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); | |
| } | |
| .transition-message { | |
| transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); | |
| } | |
| .transition-panel { | |
| transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1); | |
| } | |
| /* Hover effects */ | |
| .hover-lift:hover { | |
| transform: translateY(-2px); | |
| box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); | |
| } | |
| .hover-glow:hover { | |
| box-shadow: 0 0 20px rgba(59, 130, 246, 0.3); | |
| } | |
| /* Thinking process animation */ | |
| @keyframes thinking-expand { | |
| 0% { | |
| opacity: 0; | |
| transform: translateY(-10px); | |
| } | |
| 100% { | |
| opacity: 1; | |
| transform: translateY(0); | |
| } | |
| } | |
| .animate-thinking-expand { | |
| animation: thinking-expand 0.3s ease-out forwards; | |
| } | |
| /* Source panel animations */ | |
| @keyframes source-slide-down { | |
| 0% { | |
| opacity: 0; | |
| transform: translateY(-20px); | |
| max-height: 0; | |
| } | |
| 100% { | |
| opacity: 1; | |
| transform: translateY(0); | |
| max-height: 500px; | |
| } | |
| } | |
| .animate-source-slide { | |
| animation: source-slide-down 0.4s ease-out forwards; | |
| } | |
| /* Input field animations */ | |
| @keyframes input-focus { | |
| 0% { | |
| transform: scale(1); | |
| } | |
| 50% { | |
| transform: scale(1.02); | |
| } | |
| 100% { | |
| transform: scale(1); | |
| } | |
| } | |
| .animate-input-focus { | |
| animation: input-focus 0.2s ease-out; | |
| } | |
| /* Citation tooltip animation */ | |
| @keyframes tooltip-appear { | |
| 0% { | |
| opacity: 0; | |
| transform: translateY(10px) scale(0.9); | |
| } | |
| 100% { | |
| opacity: 1; | |
| transform: translateY(0) scale(1); | |
| } | |
| } | |
| .animate-tooltip { | |
| animation: tooltip-appear 0.2s ease-out forwards; | |
| } | |
| /* Action buttons animation */ | |
| @keyframes action-fade-in { | |
| 0% { | |
| opacity: 0; | |
| transform: translateX(10px); | |
| } | |
| 100% { | |
| opacity: 1; | |
| transform: translateX(0); | |
| } | |
| } | |
| .animate-action-in { | |
| animation: action-fade-in 0.2s ease-out forwards; | |
| } | |
| /* Staggered animations for multiple elements */ | |
| .stagger-1 { animation-delay: 0.1s; } | |
| .stagger-2 { animation-delay: 0.2s; } | |
| .stagger-3 { animation-delay: 0.3s; } | |
| .stagger-4 { animation-delay: 0.4s; } | |
| .stagger-5 { animation-delay: 0.5s; } | |
| /* Custom scrollbar for better UX */ | |
| .custom-scrollbar { | |
| scrollbar-width: thin; | |
| scrollbar-color: var(--primary) transparent; | |
| } | |
| .custom-scrollbar::-webkit-scrollbar { | |
| display: block; | |
| width: 6px; | |
| height: 6px; | |
| } | |
| .custom-scrollbar::-webkit-scrollbar-track { | |
| display: block; | |
| background: transparent; | |
| } | |
| .custom-scrollbar::-webkit-scrollbar-thumb { | |
| display: block; | |
| background-color: var(--primary); | |
| border-radius: 3px; | |
| } | |
| .custom-scrollbar::-webkit-scrollbar-thumb:hover { | |
| background-color: var(--accent); | |
| } | |
| /* Loading shimmer effect */ | |
| @keyframes shimmer { | |
| 0% { | |
| background-position: -200% 0; | |
| } | |
| 100% { | |
| background-position: 200% 0; | |
| } | |
| } | |
| .animate-shimmer { | |
| background: linear-gradient( | |
| 90deg, | |
| transparent, | |
| rgba(255, 255, 255, 0.4), | |
| transparent | |
| ); | |
| background-size: 200% 100%; | |
| animation: shimmer 1.5s infinite; | |
| } | |
| /* Pulse animation for thinking states */ | |
| @keyframes gentle-pulse { | |
| 0%, 100% { | |
| opacity: 0.6; | |
| } | |
| 50% { | |
| opacity: 0.8; | |
| } | |
| } | |
| .animate-gentle-pulse { | |
| animation: gentle-pulse 2s ease-in-out infinite; | |
| } | |