Theo / static /main.css
alaselababatunde's picture
Updated
f4ecea1
/* Theo AI - Premium Christian UI (Domino's Architecture) */
:root {
--theo-green: #002B22;
--theo-teal: #00362B;
--theo-cream: #FDFBD4;
--theo-white: #FFFFFF;
--bg-gradient: radial-gradient(circle at top left, #00362B 0%, #002B22 100%);
--glass: rgba(0, 54, 43, 0.4);
--glass-border: rgba(253, 251, 212, 0.1);
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Outfit', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}
body {
min-height: 100vh;
width: 100vw;
background: var(--theo-green);
background-image: var(--bg-gradient);
background-attachment: fixed;
display: flex;
align-items: center;
justify-content: center;
overflow-y: auto;
padding: 20px 0;
}
.chat-container {
width: 100%;
max-width: 900px;
height: 85vh;
min-height: 500px;
background: var(--glass);
backdrop-filter: blur(20px);
-webkit-backdrop-filter: blur(20px);
border-radius: 32px;
box-shadow: 0 40px 100px rgba(0, 0, 0, 0.5);
display: flex;
flex-direction: column;
overflow: hidden;
border: 1px solid var(--glass-border);
position: relative;
margin: 20px;
}
.chat-header {
background: rgba(0, 43, 34, 0.8);
padding: 20px 40px;
display: flex;
align-items: center;
justify-content: space-between;
border-bottom: 1px solid var(--glass-border);
z-index: 10;
backdrop-filter: blur(10px);
}
.header-info {
display: flex;
align-items: center;
gap: 15px;
}
.header-text {
display: flex;
flex-direction: column;
}
.chat-header h2 {
color: var(--theo-cream);
font-weight: 800;
font-size: 1.4rem;
line-height: 1.1;
letter-spacing: -0.02em;
}
.header-subtitle {
font-size: 9px;
font-weight: 800;
letter-spacing: 0.3em;
color: var(--theo-cream);
opacity: 0.6;
text-transform: uppercase;
}
.chat-header img {
height: 45px;
border-radius: 12px;
border: 1px solid var(--glass-border);
}
.chat-box {
flex: 1;
padding: 40px;
overflow-y: auto;
display: flex;
flex-direction: column;
gap: 24px;
background: transparent;
scroll-behavior: smooth;
}
.chat-box::-webkit-scrollbar {
width: 6px;
}
.chat-box::-webkit-scrollbar-thumb {
background: rgba(253, 251, 212, 0.1);
border-radius: 10px;
}
.welcome-container {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
margin: auto;
text-align: center;
max-width: 400px;
}
.welcome-icon {
font-size: 3rem;
margin-bottom: 20px;
background: var(--theo-cream);
width: 80px;
height: 80px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 24px;
}
.welcome-container h1 {
color: var(--theo-cream);
font-size: 2.2rem;
margin-bottom: 12px;
font-weight: 800;
}
.welcome-container p {
color: rgba(255, 255, 255, 0.6);
line-height: 1.6;
}
.message {
max-width: 80%;
padding: 18px 24px;
border-radius: 24px;
font-size: 1.05rem;
line-height: 1.6;
position: relative;
transition: all 0.3s ease;
box-shadow: 0 8px 30px rgba(0, 0, 0, 0.1);
}
.message.user {
align-self: flex-end;
background: #007055;
color: white;
border-bottom-right-radius: 4px;
}
.message.bot {
align-self: flex-start;
background: var(--theo-cream);
color: #002B22;
border-bottom-left-radius: 4px;
border-left: 6px solid #007055;
}
.message.bot img.bot-logo {
width: 20px;
height: 20px;
margin-right: 12px;
vertical-align: middle;
border-radius: 4px;
}
/* AI Thinking Animation */
.thinking-container {
display: flex;
gap: 6px;
padding: 10px 0;
}
.thinking-dot {
width: 8px;
height: 8px;
background: #007055;
border-radius: 50%;
animation: bounce 1.4s infinite ease-in-out both;
}
.thinking-dot:nth-child(1) {
animation-delay: -0.32s;
}
.thinking-dot:nth-child(2) {
animation-delay: -0.16s;
}
@keyframes bounce {
0%,
80%,
100% {
transform: scale(0);
opacity: 0.3;
}
40% {
transform: scale(1);
opacity: 1;
}
}
.chat-input {
background: rgba(0, 43, 34, 0.8);
padding: 30px 40px;
display: flex;
gap: 20px;
align-items: flex-end;
border-top: 1px solid var(--glass-border);
backdrop-filter: blur(10px);
}
.chat-input textarea {
flex: 1;
background: rgba(255, 255, 255, 0.05);
border: 1px solid var(--glass-border);
border-radius: 20px;
padding: 16px 24px;
font-size: 1rem;
color: white;
resize: none;
max-height: 150px;
outline: none;
transition: all 0.3s ease;
}
.chat-input textarea:focus {
border-color: var(--theo-cream);
background: rgba(255, 255, 255, 0.08);
}
.chat-input button {
background: var(--theo-cream);
color: #002B22;
border: none;
border-radius: 50%;
width: 60px;
height: 60px;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
box-shadow: 0 10px 25px rgba(253, 251, 212, 0.2);
flex-shrink: 0;
}
.chat-input button svg path {
stroke: #002B22;
}
.chat-input button:hover {
transform: translateY(-4px) rotate(5deg);
box-shadow: 0 15px 35px rgba(253, 251, 212, 0.3);
}
.chat-input button:active {
transform: scale(0.9);
}
/* Markdown Styling */
.message h1,
.message h2,
.message h3 {
margin: 12px 0 8px;
color: #007055;
font-weight: 800;
}
.message ul,
.message ol {
margin-left: 24px;
margin-bottom: 12px;
}
.message li {
margin-bottom: 6px;
}
.message p {
margin-bottom: 12px;
}
.message strong {
color: #004d3b;
font-weight: 800;
}
/* Animations */
.slide-in-bottom {
animation: slideIn 0.5s cubic-bezier(0.165, 0.84, 0.44, 1) forwards;
}
@keyframes slideIn {
from {
opacity: 0;
transform: translateY(30px) scale(0.95);
}
to {
opacity: 1;
transform: translateY(0) scale(1);
}
}
@media (max-width: 640px) {
.chat-container {
height: 100vh;
border-radius: 0;
}
.chat-header {
padding: 15px 20px;
}
.chat-box {
padding: 20px;
}
.chat-input {
padding: 20px;
}
}