/* Custom CSS for Claude AI Chat Interface */ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap'); :root { --primary-blue: #2563eb; --primary-blue-dark: #1d4ed8; --success-green: #10b981; --error-red: #ef4444; --warning-orange: #f59e0b; } * { font-family: 'Inter', sans-serif; } /* Scrollbar Styling */ ::-webkit-scrollbar { width: 6px; } ::-webkit-scrollbar-track { background: #f1f5f9; border-radius: 3px; } ::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 3px; } ::-webkit-scrollbar-thumb:hover { background: #94a3b8; } /* Typing Animation */ @keyframes typing-dots { 0%, 20% { opacity: 0; } 50% { opacity: 1; } 100% { opacity: 0; } } .typing-dot { animation: typing-dots 1.4s infinite ease-in-out; } .typing-dot:nth-child(2) { animation-delay: 0.2s; } .typing-dot:nth-child(3) { animation-delay: 0.4s; } /* Message Transitions */ .message-enter { opacity: 0; transform: translateY(10px); } .message-enter-active { opacity: 1; transform: translateY(0); transition: opacity 300ms, transform 300ms; } /* Code Block Styling */ .code-block { background: #1e293b; color: #e2e8f0; border-radius: 8px; overflow: hidden; margin: 1rem 0; } .code-header { background: #334155; padding: 0.75rem 1rem; font-size: 0.875rem; color: #94a3b8; display: flex; justify-content: space-between; align-items: center; } .code-content { padding: 1rem; overflow-x: auto; } /* Responsive adjustments */ @media (max-width: 767px) { .mobile-hidden { display: none; } .mobile-full { width: 100%; } } /* Focus states for accessibility */ .focus-visible { outline: 2px solid var(--primary-blue); outline-offset: 2px; } /* Loading spinner */ .spinner { border: 2px solid #f3f4f6; border-top: 2px solid var(--primary-blue); border-radius: 50%; width: 20px; height: 20px; animation: spin 1s linear infinite; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }