| @tailwind base; |
| @tailwind components; |
| @tailwind utilities; |
|
|
| :root { |
| --primary: #6366f1; |
| --secondary: #8b5cf6; |
| --accent: #a855f7; |
| } |
|
|
| * { |
| margin: 0; |
| padding: 0; |
| box-sizing: border-box; |
| } |
|
|
| body { |
| font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; |
| background: #0a0a0f; |
| color: #f9fafb; |
| min-height: 100vh; |
| } |
|
|
| ::-webkit-scrollbar { |
| width: 6px; |
| } |
|
|
| ::-webkit-scrollbar-track { |
| background: transparent; |
| } |
|
|
| ::-webkit-scrollbar-thumb { |
| background: #1f2937; |
| border-radius: 3px; |
| } |
|
|
| ::-webkit-scrollbar-thumb:hover { |
| background: #374151; |
| } |
|
|
| .glass { |
| background: rgba(17, 24, 39, 0.8); |
| backdrop-filter: blur(12px); |
| border: 1px solid rgba(255, 255, 255, 0.1); |
| } |
|
|
| .card { |
| @apply glass rounded-xl p-6; |
| } |
|
|
| .btn-primary { |
| @apply px-6 py-3 bg-gradient-to-r from-primary to-secondary rounded-lg font-semibold |
| transition-all duration-200 hover:scale-105 hover:shadow-lg hover:shadow-primary/30; |
| } |
|
|
| .btn-secondary { |
| @apply px-4 py-2 bg-dark3 rounded-lg border border-white/10 |
| transition-all duration-200 hover:bg-dark2 hover:border-primary; |
| } |
|
|
| .input { |
| @apply w-full px-4 py-3 bg-dark3 rounded-lg border border-white/10 |
| focus:border-primary focus:outline-none focus:ring-2 focus:ring-primary/30 |
| transition-all duration-200; |
| } |
|
|
| .stat-card { |
| @apply glass rounded-xl p-4 text-center; |
| } |
|
|
| .prediction-card { |
| @apply glass rounded-lg p-4 border-l-4 border-primary cursor-pointer |
| transition-all duration-200 hover:scale-[1.02] hover:shadow-lg; |
| } |
|
|
| .confusion-bar { |
| height: 8px; |
| border-radius: 4px; |
| background: linear-gradient(90deg, #10b981, #f59e0b, #ef4444); |
| transition: width 0.3s ease; |
| } |
|
|
| @keyframes pulse-glow { |
| 0%, 100% { box-shadow: 0 0 20px rgba(99, 102, 241, 0.4); } |
| 50% { box-shadow: 0 0 40px rgba(99, 102, 241, 0.8); } |
| } |
|
|
| @keyframes float { |
| 0%, 100% { transform: translateY(0); } |
| 50% { transform: translateY(-10px); } |
| } |
|
|
| @keyframes swim { |
| 0% { transform: translateX(-100%) scaleX(1); } |
| 49% { transform: translateX(100%) scaleX(1); } |
| 50% { transform: translateX(100%) scaleX(-1); } |
| 99% { transform: translateX(-100%) scaleX(-1); } |
| 100% { transform: translateX(-100%) scaleX(1); } |
| } |
|
|
| @keyframes rise { |
| 0% { transform: translateY(100%); opacity: 0; } |
| 50% { opacity: 1; } |
| 100% { transform: translateY(-100%); opacity: 0; } |
| } |
|
|
| .glow { animation: pulse-glow 2s ease-in-out infinite; } |
| .float { animation: float 3s ease-in-out infinite; } |
| .swim { animation: swim 8s linear infinite; } |
|
|
| |
| .llm-response-card { |
| @apply glass rounded-lg p-4 border border-primary/30 transition-all duration-300; |
| } |
|
|
| .llm-response-card:hover { |
| @apply border-primary/60 shadow-lg shadow-primary/20; |
| } |
|
|
| .gesture-action-badge { |
| @apply inline-flex items-center gap-1 px-2 py-1 rounded-full text-xs font-medium; |
| } |
|
|
| .gesture-badge-swipe { |
| @apply bg-blue-500/20 text-blue-400; |
| } |
|
|
| .gesture-badge-pinch { |
| @apply bg-purple-500/20 text-purple-400; |
| } |
|
|
| .gesture-badge-tap { |
| @apply bg-green-500/20 text-green-400; |
| } |
|
|
| .rate-limit-indicator { |
| @apply flex items-center gap-2 px-3 py-2 rounded-lg text-sm; |
| } |
|
|
| .rate-limit-ok { |
| @apply bg-green-500/20 text-green-400; |
| } |
|
|
| .rate-limit-warning { |
| @apply bg-yellow-500/20 text-yellow-400; |
| } |
|
|
| .rate-limit-error { |
| @apply bg-red-500/20 text-red-400; |
| } |
|
|
| .llm-provider-logo { |
| @apply w-8 h-8 rounded-lg flex items-center justify-center text-xs font-bold; |
| } |
|
|
| .provider-chatgpt { |
| @apply bg-green-500 text-white; |
| } |
|
|
| .provider-gemini { |
| @apply bg-blue-500 text-white; |
| } |
|
|
| .provider-claude { |
| @apply bg-orange-500 text-white; |
| } |
|
|
| .prompt-template-btn { |
| @apply px-3 py-2 rounded-lg text-sm transition-all duration-200; |
| } |
|
|
| .prompt-template-btn-active { |
| @apply bg-primary text-white; |
| } |
|
|
| .prompt-template-btn-inactive { |
| @apply bg-dark3 text-gray-400 hover:bg-dark2 hover:text-white; |
| } |
|
|
| @keyframes slide-in { |
| from { transform: translateX(-20px); opacity: 0; } |
| to { transform: translateX(0); opacity: 1; } |
| } |
|
|
| .slide-in { |
| animation: slide-in 0.3s ease-out; |
| } |
|
|
| @keyframes typing { |
| 0%, 100% { opacity: 1; } |
| 50% { opacity: 0.3; } |
| } |
|
|
| .typing-indicator { |
| @apply flex items-center gap-1; |
| } |
|
|
| .typing-indicator span { |
| @apply w-2 h-2 rounded-full bg-primary; |
| animation: typing 1s ease-in-out infinite; |
| } |
|
|
| .typing-indicator span:nth-child(2) { |
| animation-delay: 0.2s; |
| } |
|
|
| .typing-indicator span:nth-child(3) { |
| animation-delay: 0.4s; |
| } |
|
|
| |
| input[type="checkbox"] { |
| @apply w-5 h-5 rounded border-gray-500 text-primary focus:ring-primary bg-dark3; |
| } |
|
|
| input[type="checkbox"]:checked { |
| @apply bg-primary border-primary; |
| } |
|
|
| select { |
| @apply w-full px-4 py-3 bg-dark3 rounded-lg border border-white/10 |
| focus:border-primary focus:outline-none focus:ring-2 focus:ring-primary/30 |
| transition-all duration-200; |
| } |
|
|
| input[type="number"] { |
| @apply px-4 py-2 bg-dark3 rounded-lg border border-white/10 |
| focus:border-primary focus:outline-none focus:ring-2 focus:ring-primary/30 |
| transition-all duration-200; |
| } |
|
|
| |
| .llm-toast { |
| position: fixed; |
| bottom: 20px; |
| right: 20px; |
| padding: 12px 16px; |
| border-radius: 8px; |
| display: flex; |
| align-items: center; |
| gap: 8px; |
| z-index: 9999; |
| transform: translateY(100px); |
| opacity: 0; |
| transition: all 0.3s ease; |
| max-width: 350px; |
| } |
|
|
| .llm-toast.show { |
| transform: translateY(0); |
| opacity: 1; |
| } |
|
|
| .llm-toast-info { |
| background: rgba(99, 102, 241, 0.95); |
| color: white; |
| } |
|
|
| .llm-toast-success { |
| background: rgba(16, 185, 129, 0.95); |
| color: white; |
| } |
|
|
| .llm-toast-error { |
| background: rgba(239, 68, 68, 0.95); |
| color: white; |
| } |
|
|
| .llm-toast button { |
| background: none; |
| border: none; |
| color: white; |
| font-size: 18px; |
| cursor: pointer; |
| opacity: 0.8; |
| } |
|
|
| .llm-toast button:hover { |
| opacity: 1; |
| } |
|
|