/* Global Styles */ :root { --primary-color: #3b82f6; --secondary-color: #6366f1; --dark-bg: #111827; --light-bg: #f9fafb; --card-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); --card-shadow-hover: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); } /* Custom Scrollbar */ ::-webkit-scrollbar { width: 8px; height: 8px; } ::-webkit-scrollbar-track { background: #f1f1f1; border-radius: 4px; } ::-webkit-scrollbar-thumb { background: #c1c1c1; border-radius: 4px; } ::-webkit-scrollbar-thumb:hover { background: #a1a1a1; } /* Smooth Transitions */ * { transition: background-color 0.3s ease, border-color 0.3s ease; } /* Gradient Text */ .gradient-text { background: linear-gradient(135deg, var(--primary-color), var(--secondary-color)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } /* Code Block Styling */ pre.code-block { background: #1a202c; color: #e2e8f0; padding: 1.5rem; border-radius: 0.5rem; overflow-x: auto; font-family: 'JetBrains Mono', monospace; font-size: 0.875rem; line-height: 1.5; border-left: 4px solid var(--primary-color); } /* Card Hover Effects */ .hover-card { transition: transform 0.3s ease, box-shadow 0.3s ease; } .hover-card:hover { transform: translateY(-4px); box-shadow: var(--card-shadow-hover); } /* Pulse Animation for AI Elements */ @keyframes pulse-slow { 0%, 100% { opacity: 1; } 50% { opacity: 0.7; } } .pulse-slow { animation: pulse-slow 2s infinite; } /* Custom Button Styles */ .btn-primary { background: linear-gradient(135deg, var(--primary-color), var(--secondary-color)); color: white; padding: 0.75rem 1.5rem; border-radius: 0.5rem; font-weight: 600; transition: all 0.3s ease; border: none; cursor: pointer; } .btn-primary:hover { transform: translateY(-2px); box-shadow: 0 10px 20px rgba(59, 130, 246, 0.3); } /* Chat styles */ .chat-container { display: flex; flex-direction: column; height: 100%; } .chat-messages { flex: 1; overflow-y: auto; padding: 1rem; } .chat-input { border-top: 1px solid #e5e7eb; padding: 1rem; } .message { max-width: 80%; margin-bottom: 1rem; padding: 0.75rem 1rem; } .message-user { margin-left: auto; background: linear-gradient(135deg, #3b82f6, #6366f1); color: white; border-radius: 1rem 1rem 0.25rem 1rem; } .message-ai { background: #f3f4f6; color: #1f2937; border-radius: 1rem 1rem 1rem 0.25rem; } /* Modal styles */ .modal-overlay { position: fixed; inset: 0; background-color: rgba(0, 0, 0, 0.5); display: flex; align-items: center; justify-content: center; z-index: 50; } .modal-content { background: white; border-radius: 0.5rem; max-width: 32rem; width: 100%; max-height: 90vh; overflow-y: auto; } .btn-outline { background: transparent; color: var(--primary-color); padding: 0.75rem 1.5rem; border-radius: 0.5rem; font-weight: 600; transition: all 0.3s ease; border: 2px solid var(--primary-color); cursor: pointer; } .btn-outline:hover { background: var(--primary-color); color: white; } /* Loading Spinner */ .spinner { border: 3px solid rgba(59, 130, 246, 0.1); border-radius: 50%; border-top: 3px solid var(--primary-color); width: 24px; height: 24px; animation: spin 1s linear infinite; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } /* Responsive Adjustments */ @media (max-width: 768px) { .mobile-hidden { display: none; } .mobile-full-width { width: 100%; } } /* Dark Mode Support (for future use) */ .dark-mode { background-color: var(--dark-bg); color: #f3f4f6; } .dark-mode .card { background-color: #1f2937; border-color: #374151; }