:root { --bg-color: #0D1117; --surface-color: #161B22; --border-color: #30363d; --primary-gradient-start: #38BDF8; --primary-gradient-end: #818CF8; --accent-color: #F59E0B; --text-primary: #E6EDF3; --text-secondary: #7D8590; --font-family-sans-serif: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; } body { background-color: var(--bg-color); color: var(--text-primary); font-family: var(--font-family-sans-serif); min-height: 100vh; } .navbar { background-color: transparent; padding: 1rem 0; } .navbar-brand { font-weight: 700; font-size: 1.5rem; background: linear-gradient(45deg, var(--primary-gradient-start), var(--primary-gradient-end)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; color: transparent; } .nav-link { color: var(--text-secondary); font-weight: 500; transition: color 0.2s ease-in-out; } .nav-link:hover, .nav-link.active { color: var(--text-primary); } .navbar-toggler { border: none; color: var(--text-primary); font-size: 1.5rem; } .navbar-toggler:focus { box-shadow: none; } .hero-section { padding: 8rem 0; animation: fadeIn 1s ease-in-out; } @keyframes fadeIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } .hero-title { font-weight: 700; color: var(--text-primary); letter-spacing: -1.5px; } .hero-subtitle { color: var(--text-secondary); max-width: 600px; margin: 1.5rem auto; } .btn-primary { background: linear-gradient(45deg, var(--primary-gradient-start), var(--primary-gradient-end)); border: none; padding: 0.75rem 2rem; font-weight: 500; transition: transform 0.2s ease-out, box-shadow 0.2s ease-out; } .btn-primary:hover { transform: translateY(-2px); box-shadow: 0 10px 20px rgba(0,0,0,0.2); } /* Chat Widget */ #chat-widget-container { position: fixed; bottom: 2rem; right: 2rem; z-index: 1050; } #chat-toggle-button { width: 60px; height: 60px; font-size: 1.8rem; background: linear-gradient(45deg, var(--primary-gradient-start), var(--primary-gradient-end)); color: white; border: none; display: flex; justify-content: center; align-items: center; } #chat-window { display: none; width: 370px; height: 70vh; max-height: 600px; flex-direction: column; background-color: var(--surface-color); border: 1px solid var(--border-color); color: var(--text-primary); position: absolute; bottom: 0; right: 0; } #chat-window.open { display: flex; animation: slideUp 0.3s ease-out; } @keyframes slideUp { from { transform: translateY(30px); opacity: 0; } to { transform: translateY(0); opacity: 1; } } #chat-window .card-header { background-color: var(--surface-color); border-bottom: 1px solid var(--border-color); } #chat-window .card-header .ai-avatar { width: 32px; height: 32px; border-radius: 50%; background: linear-gradient(45deg, var(--primary-gradient-start), var(--primary-gradient-end)); color: white; display: flex; align-items: center; justify-content: center; } #chat-window .card-footer { background-color: var(--surface-color); border-top: 1px solid var(--border-color); } #chat-messages { flex-grow: 1; overflow-y: auto; padding: 1rem; display: flex; flex-direction: column; gap: 0.75rem; } .message { max-width: 85%; padding: 0.5rem 1rem; border-radius: 1.25rem; display: inline-block; } .message.received { background-color: #21262d; align-self: flex-start; border-bottom-left-radius: 0.25rem; } .message.sent { background: linear-gradient(45deg, var(--primary-gradient-start), var(--primary-gradient-end)); color: white; align-self: flex-end; border-bottom-right-radius: 0.25rem; } .message .message-content { margin: 0; word-wrap: break-word; } .message.typing { color: var(--text-secondary); font-style: italic; align-self: flex-start; } #chat-input { background-color: #0D1117; border: 1px solid var(--border-color); color: var(--text-primary); } #chat-input:focus { background-color: #0D1117; color: var(--text-primary); box-shadow: none; border-color: var(--primary-gradient-end); }