|
|
|
|
|
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700&display=swap'); |
|
|
@import url('https://fonts.googleapis.com/icon?family=Material+Icons+Outlined'); |
|
|
|
|
|
:root { |
|
|
--primary-color: #3B5998; |
|
|
--background-color: #121212; |
|
|
--card-bg-color: #1E1E1E; |
|
|
--border-color: #2C2C2C; |
|
|
--user-msg-bg: #3B5998; |
|
|
--bot-msg-bg: #2A2A2A; |
|
|
--text-color: #EAEAEA; |
|
|
--text-muted: #8E8E93; |
|
|
} |
|
|
|
|
|
body { |
|
|
font-family: 'Inter', sans-serif; |
|
|
margin: 0; |
|
|
background: var(--background-color) url('https://miro.medium.com/v2/resize:fit:1400/1*ADTdNBw3fFnGFeg81UBKjw.gif') no-repeat center center fixed; |
|
|
background-size: cover; |
|
|
color: var(--text-color); |
|
|
display: flex; |
|
|
justify-content: center; |
|
|
align-items: center; |
|
|
height: 100vh; |
|
|
overflow: hidden; |
|
|
} |
|
|
|
|
|
|
|
|
.chat-window { |
|
|
width: 100%; |
|
|
max-width: 800px; |
|
|
height: 100%; |
|
|
background: var(--card-bg-color); |
|
|
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3); |
|
|
backdrop-filter: blur(10px); |
|
|
border: 1px solid var(--border-color); |
|
|
display: flex; |
|
|
flex-direction: column; |
|
|
transition: all 0.3s ease; |
|
|
overflow: hidden; |
|
|
} |
|
|
|
|
|
@media (min-width: 800px) { |
|
|
.chat-window { |
|
|
height: 90vh; |
|
|
border-radius: 9px; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.home-screen { |
|
|
display: flex; |
|
|
flex-direction: column; |
|
|
justify-content: center; |
|
|
align-items: center; |
|
|
text-align: center; |
|
|
padding: 40px; |
|
|
flex-grow: 1; |
|
|
} |
|
|
.home-screen.hidden, .chat-view.hidden { |
|
|
display: none; |
|
|
} |
|
|
.home-screen h1 { font-size: 2.5rem; margin-bottom: 8px; } |
|
|
.home-screen p { font-size: 1.1rem; color: var(--text-muted); margin-bottom: 40px; } |
|
|
.suggestion-cards { display: flex; gap: 15px; flex-wrap: wrap; justify-content: center; } |
|
|
.suggestion-card { |
|
|
background: var(--bot-msg-bg); |
|
|
border: 1px solid var(--border-color); |
|
|
border-radius: 8px; |
|
|
padding: 20px; |
|
|
width: 180px; |
|
|
text-align: left; |
|
|
cursor: pointer; |
|
|
transition: all 0.2s ease; |
|
|
} |
|
|
.suggestion-card:hover { transform: translateY(-5px); border-color: var(--primary-color); } |
|
|
.suggestion-card .material-icons-outlined { font-size: 2rem; color: var(--primary-color); margin-bottom: 10px; } |
|
|
.suggestion-card h3 { margin: 0; font-size: 1rem; } |
|
|
|
|
|
|
|
|
|
|
|
.chat-view { |
|
|
flex-grow: 1; |
|
|
display: flex; |
|
|
flex-direction: column; |
|
|
overflow: hidden; |
|
|
} |
|
|
|
|
|
.chat-container { |
|
|
flex-grow: 1; |
|
|
padding: 20px; |
|
|
overflow-y: auto; |
|
|
display: flex; |
|
|
flex-direction: column; |
|
|
gap: 15px; |
|
|
|
|
|
padding-bottom: 30px; |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.chat-message { |
|
|
padding: 12px 18px; |
|
|
max-width: 80%; |
|
|
word-wrap: break-word; |
|
|
opacity: 0; |
|
|
transform: translateY(10px); |
|
|
animation: slide-fade-in 0.3s ease forwards; |
|
|
} |
|
|
@keyframes slide-fade-in { |
|
|
to { opacity: 1; transform: translateY(0); } |
|
|
} |
|
|
.user-message { |
|
|
background-color: var(--user-msg-bg); |
|
|
color: white; |
|
|
align-self: flex-end; |
|
|
border-radius: 12px 12px 4px 12px; |
|
|
} |
|
|
.bot-message { |
|
|
background-color: var(--bot-msg-bg); |
|
|
color: var(--text-color); |
|
|
align-self: flex-start; |
|
|
border: 1px solid var(--border-color); |
|
|
border-radius: 12px 12px 12px 4px; |
|
|
} |
|
|
.bot-message.error { background-color: rgba(217, 48, 37, 0.2); border-color: #D93025; } |
|
|
.bot-message.thinking::after { content: '▋'; animation: blink 1s infinite; display: inline-block; margin-left: 5px; } |
|
|
@keyframes blink { 50% { opacity: 0; } } |
|
|
|
|
|
|
|
|
.bot-message h1, .bot-message h2, .bot-message h3 { margin-top: 0.5em; margin-bottom: 0.5em; } |
|
|
.bot-message p { margin: 0.5em 0; } |
|
|
.bot-message ul, .bot-message ol { padding-left: 20px; } |
|
|
.bot-message li { margin-bottom: 0.25em; } |
|
|
.bot-message a { color: var(--primary-color); text-decoration: none; } |
|
|
.bot-message a:hover { text-decoration: underline; } |
|
|
.bot-message code { background-color: #111; padding: 2px 5px; border-radius: 4px; font-family: 'Courier New', Courier, monospace; } |
|
|
.bot-message pre { background-color: #0d0d0d; padding: 15px; border-radius: 8px; overflow-x: auto; white-space: pre-wrap; border: 1px solid var(--border-color); } |
|
|
.bot-message pre code { background-color: transparent; padding: 0; } |
|
|
|
|
|
|
|
|
|
|
|
.input-area { |
|
|
|
|
|
|
|
|
padding: 10px 15px; |
|
|
border-top: 1px solid var(--border-color); |
|
|
background-color: var(--card-bg-color); |
|
|
flex-shrink: 0; |
|
|
} |
|
|
|
|
|
#chat-form { display: flex; flex-direction: column; gap: 10px; } |
|
|
|
|
|
|
|
|
#attachment-preview { |
|
|
display: inline-flex; |
|
|
align-items: center; |
|
|
gap: 8px; |
|
|
background: var(--bot-msg-bg); |
|
|
border: 1px solid var(--border-color); |
|
|
padding: 5px 10px; |
|
|
border-radius: 20px; |
|
|
max-width: fit-content; |
|
|
animation: scale-in 0.2s ease; |
|
|
} |
|
|
@keyframes scale-in { from { opacity: 0; transform: scale(0.9); } to { opacity: 1; transform: scale(1); } } |
|
|
#attachment-preview .filename { font-size: 0.9rem; } |
|
|
#remove-attachment-btn { cursor: pointer; display: flex; align-items: center; } |
|
|
|
|
|
|
|
|
.input-controls { display: flex; justify-content: flex-end; align-items: center; padding: 0 5px; } |
|
|
.search-toggle-container { display: flex; align-items: center; gap: 8px; font-size: 14px; color: var(--text-muted); } |
|
|
.toggle-switch { position: relative; display: inline-block; width: 40px; height: 22px; } |
|
|
.toggle-switch input { opacity: 0; width: 0; height: 0; } |
|
|
.slider { position: absolute; cursor: pointer; top: 0; left: 0; right: 0; bottom: 0; background-color: #ccc; transition: .4s; border-radius: 22px; } |
|
|
.slider:before { position: absolute; content: ""; height: 16px; width: 16px; left: 3px; bottom: 3px; background-color: white; transition: .4s; border-radius: 50%; } |
|
|
input:checked + .slider { background-color: var(--primary-color); } |
|
|
input:checked + .slider:before { transform: translateX(18px); } |
|
|
|
|
|
.input-bar { display: flex; align-items: flex-end; gap: 10px; } |
|
|
#prompt-input { |
|
|
flex-grow: 1; |
|
|
background: transparent; |
|
|
border: 1px solid var(--border-color); |
|
|
border-radius: 20px; |
|
|
padding: 10px 15px; |
|
|
font-size: 1rem; |
|
|
color: var(--text-color); |
|
|
resize: none; |
|
|
max-height: 120px; |
|
|
overflow-y: auto; |
|
|
transition: border-color 0.2s, box-shadow 0.2s; |
|
|
} |
|
|
#prompt-input:focus { |
|
|
outline: none; |
|
|
border-color: var(--primary-color); |
|
|
box-shadow: 0 0 0 3px rgba(59, 89, 152, 0.3); |
|
|
} |
|
|
|
|
|
.icon-btn { |
|
|
border: none; |
|
|
background: none; |
|
|
padding: 8px; |
|
|
cursor: pointer; |
|
|
border-radius: 50%; |
|
|
display: flex; |
|
|
align-items: center; |
|
|
justify-content: center; |
|
|
color: var(--text-muted); |
|
|
transition: all 0.2s ease; |
|
|
flex-shrink: 0; |
|
|
} |
|
|
.icon-btn:hover { color: var(--text-color); background-color: rgba(255, 255, 255, 0.1); } |
|
|
.icon-btn:disabled { cursor: not-allowed; opacity: 0.4; pointer-events: none; background: none !important; } |
|
|
#send-btn { background-color: var(--primary-color); color: white; } |
|
|
#send-btn:hover { background-color: #4a69ad; } |