html { scroll-behavior: smooth; } body { font-family: 'Inter', sans-serif; background-color: #f8f9fa; } .hero { background: linear-gradient(45deg, #007bff, #82b4ff); color: white; padding: 100px 0; text-align: center; } .feature-item { background-color: #ffffff; padding: 30px; border-radius: 0.5rem; box-shadow: 0 4px 12px rgba(0,0,0,0.08); transition: transform 0.2s ease-in-out; height: 100%; } .feature-item:hover { transform: translateY(-5px); } .feature-item svg { color: #007bff; } .chat-widget { position: fixed; bottom: 20px; right: 20px; background-color: #007bff; color: white; width: 60px; height: 60px; border-radius: 50%; display: flex; justify-content: center; align-items: center; cursor: pointer; box-shadow: 0 4px 8px rgba(0,0,0,0.2); } .chat-widget-container { position: fixed; bottom: 20px; right: 20px; } .chat-window { display: none; position: fixed; bottom: 100px; right: 20px; width: 350px; max-width: 90vw; background-color: white; border-radius: 0.5rem; box-shadow: 0 8px 24px rgba(0,0,0,0.15); flex-direction: column; } .chat-header { display: flex; justify-content: space-between; align-items: center; padding: 1rem; border-bottom: 1px solid #eee; background-color: #f8f9fa; border-top-left-radius: 0.5rem; border-top-right-radius: 0.5rem; } .chat-header h5 { margin: 0; font-size: 1.1rem; } .chat-body { padding: 1rem; overflow-y: auto; height: 300px; display: flex; flex-direction: column; gap: 0.75rem; } .message { padding: 0.5rem 1rem; border-radius: 1rem; max-width: 80%; word-wrap: break-word; } .user-message { background-color: #007bff; color: white; align-self: flex-end; border-bottom-right-radius: 0.25rem; } .bot-message { background-color: #f1f1f1; color: #333; align-self: flex-start; border-bottom-left-radius: 0.25rem; } .chat-footer { display: flex; padding: 1rem; border-top: 1px solid #eee; } .chat-footer .form-control { flex-grow: 1; margin-right: 0.5rem; } .typing-indicator { display: flex; align-items: center; padding: 1rem; } .typing-indicator span { height: 8px; width: 8px; background-color: #999; border-radius: 50%; display: inline-block; margin: 0 2px; animation: bounce 1s infinite; } .typing-indicator span:nth-child(2) { animation-delay: 0.1s; } .typing-indicator span:nth-child(3) { animation-delay: 0.2s; } @keyframes bounce { 0%, 80%, 100% { transform: scale(0); } 40% { transform: scale(1.0); } } #speech-to-text-btn.listening { background-color: #dc3545; border-color: #dc3545; } /* Login Page Styles */ .login-container { display: flex; justify-content: center; align-items: center; min-height: 80vh; padding: 2rem; } .login-form { background-color: #ffffff; padding: 2.5rem; border-radius: 0.5rem; box-shadow: 0 4px 12px rgba(0,0,0,0.1); width: 100%; max-width: 400px; } .login-form h2 { text-align: center; margin-bottom: 1.5rem; color: #333; } .login-form .form-group { margin-bottom: 1.5rem; } .login-form label { display: block; margin-bottom: 0.5rem; color: #555; font-weight: 500; } .login-form input[type="email"], .login-form input[type="password"] { width: 100%; padding: 0.75rem; border: 1px solid #ccc; border-radius: 0.25rem; transition: border-color 0.2s; } .login-form input[type="email"]:focus, .login-form input[type="password"]:focus { outline: none; border-color: #007bff; } .login-form .btn-submit { width: 100%; padding: 0.75rem; background-color: #007bff; color: white; border: none; border-radius: 0.25rem; font-size: 1rem; cursor: pointer; transition: background-color 0.2s; } .login-form .btn-submit:hover { background-color: #0056b3; } .login-form .errors { background-color: #f8d7da; color: #721c24; padding: 1rem; border: 1px solid #f5c6cb; border-radius: 0.25rem; margin-bottom: 1.5rem; } .login-form .register-link { text-align: center; margin-top: 1.5rem; } .login-form .register-link a { color: #007bff; text-decoration: none; } .login-form .register-link a:hover { text-decoration: underline; }