| @tailwind base; |
| @tailwind components; |
| @tailwind utilities; |
|
|
| |
| :root { |
| --vh: 1vh; |
| --color-bg-primary: #0f172a; |
| --color-bg-secondary: #1e293b; |
| --color-bg-tertiary: #334155; |
| --color-text-primary: #f8fafc; |
| --color-text-secondary: #94a3b8; |
| --color-accent: #3b82f6; |
| --color-accent-secondary: #10b981; |
| --color-danger: #ef4444; |
| --color-warning: #f59e0b; |
| --safe-area-top: env(safe-area-inset-top, 0px); |
| --safe-area-bottom: env(safe-area-inset-bottom, 0px); |
| --safe-area-left: env(safe-area-inset-left, 0px); |
| --safe-area-right: env(safe-area-inset-right, 0px); |
| } |
|
|
| |
| * { |
| box-sizing: border-box; |
| margin: 0; |
| padding: 0; |
| } |
|
|
| html { |
| -webkit-text-size-adjust: 100%; |
| -webkit-tap-highlight-color: transparent; |
| } |
|
|
| body { |
| font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, |
| 'Helvetica Neue', Arial, sans-serif; |
| background-color: var(--color-bg-primary); |
| color: var(--color-text-primary); |
| overflow: hidden; |
| overscroll-behavior: none; |
| } |
|
|
| |
| .h-screen-safe { |
| height: calc(var(--vh, 1vh) * 100); |
| } |
|
|
| |
| .pt-safe { |
| padding-top: var(--safe-area-top); |
| } |
| .pb-safe { |
| padding-bottom: var(--safe-area-bottom); |
| } |
| .pl-safe { |
| padding-left: var(--safe-area-left); |
| } |
| .pr-safe { |
| padding-right: var(--safe-area-right); |
| } |
|
|
| |
| input, |
| textarea, |
| select { |
| font-size: 16px !important; |
| } |
|
|
| |
| .touch-target { |
| min-height: 44px; |
| min-width: 44px; |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| } |
|
|
| |
| .scroll-smooth { |
| -webkit-overflow-scrolling: touch; |
| scroll-behavior: smooth; |
| } |
|
|
| |
| ::-webkit-scrollbar { |
| width: 6px; |
| height: 6px; |
| } |
|
|
| ::-webkit-scrollbar-track { |
| background: transparent; |
| } |
|
|
| ::-webkit-scrollbar-thumb { |
| background: #475569; |
| border-radius: 3px; |
| } |
|
|
| ::-webkit-scrollbar-thumb:hover { |
| background: #64748b; |
| } |
|
|
| |
| ::selection { |
| background-color: rgba(59, 130, 246, 0.3); |
| color: #f8fafc; |
| } |
|
|
| |
| [dir='rtl'] .sidebar-nav { |
| right: 0; |
| left: auto; |
| } |
|
|
| [dir='rtl'] .message-user { |
| margin-left: 0; |
| margin-right: auto; |
| } |
|
|
| [dir='rtl'] .message-bot { |
| margin-right: 0; |
| margin-left: auto; |
| } |
|
|
| [dir='rtl'] .chat-input-area { |
| flex-direction: row-reverse; |
| } |
|
|
| |
| .desktop-sidebar { |
| overflow: visible !important; |
| } |
|
|
| |
| .animate-delay-100 { |
| animation-delay: 100ms; |
| } |
|
|
| .animate-delay-200 { |
| animation-delay: 200ms; |
| } |
|
|
| .animate-delay-300 { |
| animation-delay: 300ms; |
| } |
|
|
| |
| .typing-dot { |
| width: 8px; |
| height: 8px; |
| border-radius: 50%; |
| background-color: #64748b; |
| animation: pulseDot 1.4s infinite ease-in-out both; |
| } |
|
|
| .typing-dot:nth-child(1) { |
| animation-delay: -0.32s; |
| } |
|
|
| .typing-dot:nth-child(2) { |
| animation-delay: -0.16s; |
| } |
|
|
| |
| .message-content p { |
| margin-bottom: 0.5rem; |
| } |
|
|
| .message-content p:last-child { |
| margin-bottom: 0; |
| } |
|
|
| .message-content ul, |
| .message-content ol { |
| padding-left: 1.5rem; |
| margin-bottom: 0.5rem; |
| } |
|
|
| .message-content li { |
| margin-bottom: 0.25rem; |
| } |
|
|
| .message-content code { |
| background-color: rgba(71, 85, 105, 0.5); |
| padding: 0.125rem 0.375rem; |
| border-radius: 0.25rem; |
| font-size: 0.875rem; |
| } |
|
|
| .message-content pre { |
| background-color: rgba(15, 23, 42, 0.8); |
| padding: 0.75rem; |
| border-radius: 0.5rem; |
| overflow-x: auto; |
| margin-bottom: 0.5rem; |
| } |
|
|
| .message-content pre code { |
| background: none; |
| padding: 0; |
| } |
|
|
| .message-content strong { |
| font-weight: 600; |
| color: #f1f5f9; |
| } |
|
|
| .message-content h3, |
| .message-content h4 { |
| font-weight: 600; |
| margin-top: 0.75rem; |
| margin-bottom: 0.375rem; |
| } |
|
|
| |
| .swipe-sheet { |
| transition: transform 0.3s cubic-bezier(0.32, 0.72, 0, 1); |
| will-change: transform; |
| } |
|
|
| |
| .bottom-nav { |
| backdrop-filter: blur(12px); |
| -webkit-backdrop-filter: blur(12px); |
| background-color: rgba(15, 23, 42, 0.85); |
| } |
|
|
| |
| @media all and (display-mode: standalone) { |
| body { |
| -webkit-user-select: none; |
| user-select: none; |
| } |
|
|
| .pwa-only { |
| display: block; |
| } |
|
|
| .browser-only { |
| display: none; |
| } |
| } |
|
|
| @media not all and (display-mode: standalone) { |
| .pwa-only { |
| display: none; |
| } |
| } |
|
|
| |
| @media (max-width: 768px) { |
| .desktop-sidebar { |
| display: none; |
| } |
|
|
| .desktop-right-panel { |
| display: none; |
| } |
|
|
| .mobile-bottom-nav { |
| display: flex; |
| } |
| } |
|
|
| @media (min-width: 769px) { |
| .mobile-bottom-nav { |
| display: none; |
| } |
|
|
| .mobile-header-compact { |
| display: none; |
| } |
| } |
|
|
| |
| @keyframes emergencyPulse { |
| 0%, |
| 100% { |
| box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.4); |
| } |
| 50% { |
| box-shadow: 0 0 0 12px rgba(239, 68, 68, 0); |
| } |
| } |
|
|
| .emergency-pulse { |
| animation: emergencyPulse 2s infinite; |
| } |
|
|
| |
| @keyframes voicePulse { |
| 0%, |
| 100% { |
| transform: scale(1); |
| opacity: 1; |
| } |
| 50% { |
| transform: scale(1.2); |
| opacity: 0.7; |
| } |
| } |
|
|
| .voice-recording { |
| animation: voicePulse 1s infinite; |
| } |
|
|