/* Custom styles for AI system */ /* Chat interface */ .chat-container { height: calc(100vh - 200px); min-height: 400px; display: flex; flex-direction: column; } .chat-messages { flex: 1; overflow-y: auto; padding: 1rem; background-color: var(--bs-body-bg); border: 1px solid var(--bs-border-color); border-radius: 0.25rem; margin-bottom: 1rem; } .message { display: flex; margin-bottom: 1rem; max-width: 85%; } .user-message { margin-left: auto; } .ai-message { margin-right: auto; } .system-message { margin: 0 auto; color: var(--bs-danger); text-align: center; max-width: 100%; } .message-avatar { width: 40px; height: 40px; border-radius: 50%; background-color: var(--bs-secondary); color: var(--bs-light); display: flex; align-items: center; justify-content: center; margin-right: 0.5rem; } .user-message .message-avatar { background-color: var(--bs-primary); order: 2; margin-right: 0; margin-left: 0.5rem; } .message-content { padding: 0.75rem 1rem; border-radius: 0.5rem; background-color: #2a2d3e; color: #e1e2e6; } .user-message .message-content { background-color: #3b4058; border-top-right-radius: 0; } .ai-message .message-content { border-top-left-radius: 0; background-color: #2a2d3e; } .chat-input { display: flex; } .chat-input textarea { flex: 1; border-radius: 0.25rem 0 0 0.25rem; resize: none; } .chat-input button { border-radius: 0 0.25rem 0.25rem 0; } /* Loading indicator */ .loading-indicator { display: flex; justify-content: center; margin: 1rem 0; } .loading-dots { display: flex; } .loading-dots span { width: 10px; height: 10px; margin: 0 3px; background-color: var(--bs-primary); border-radius: 50%; animation: dot-flashing 1s infinite alternate; } .loading-dots span:nth-child(2) { animation-delay: 0.2s; } .loading-dots span:nth-child(3) { animation-delay: 0.4s; } @keyframes dot-flashing { 0% { opacity: 0.2; } 100% { opacity: 1; } } /* Conversation list */ .conversation-list { list-style: none; padding: 0; margin: 0; } .conversation-item { padding: 0.5rem; border-bottom: 1px solid var(--bs-border-color); cursor: pointer; transition: background-color 0.2s; } .conversation-item:hover { background-color: var(--bs-light-bg-subtle); } .conversation-item.active { background-color: var(--bs-primary-bg-subtle); border-left: 3px solid var(--bs-primary); } /* Settings page */ .settings-card { margin-bottom: 2rem; } .form-switch { padding-left: 2.5em; } .form-switch .form-check-input { width: 2em; } .model-actions { margin-top: 2rem; padding-top: 1rem; border-top: 1px solid var(--bs-border-color); } /* Advanced settings */ .advanced-settings { font-family: monospace; min-height: 150px; } /* Welcome page */ .welcome-container { text-align: center; padding: 4rem 0; } .feature-card { height: 100%; transition: transform 0.3s; } .feature-card:hover { transform: translateY(-5px); } .feature-icon { font-size: 2.5rem; margin-bottom: 1rem; color: var(--bs-primary); } /* Permission modal */ .permission-modal .modal-body { text-align: center; } .permission-icon { font-size: 3rem; margin-bottom: 1rem; color: var(--bs-warning); } /* Responsive adjustments */ @media (max-width: 768px) { .message { max-width: 90%; } .user-message, .ai-message { max-width: 85%; } .chat-container { height: calc(100vh - 150px); } }