portal / static /css /aetheris.css
Pomilon's picture
feat(ui): improve mobile responsiveness across all pages
c948b81
/* --- Aetheris: The Organic Mind --- */
/* Inspired by nature, glass, nebulas, and soft light. */
:root {
--eth-purple: #b19cd9;
--eth-light: #e6e6fa;
--eth-dark: #0f0a14;
--eth-glass: rgba(255, 255, 255, 0.05);
}
body.aetheris-theme {
background-color: var(--eth-dark);
/* Soft Nebula Gradient */
background-image:
radial-gradient(circle at 10% 20%, rgba(80, 50, 120, 0.15) 0%, transparent 40%),
radial-gradient(circle at 90% 80%, rgba(40, 80, 120, 0.15) 0%, transparent 40%);
font-family: var(--font-ui);
}
.aetheris-theme .navbar {
background: rgba(15, 10, 20, 0.6);
border-bottom: 1px solid rgba(255,255,255,0.05);
}
.chat-wrapper {
max-width: 800px; /* Narrower for intimacy */
margin: 0 auto;
padding-top: var(--nav-height);
height: 100vh;
display: flex;
flex-direction: column;
}
/* Disclaimer */
.disclaimer-banner {
background: rgba(255, 165, 0, 0.1);
border: 1px solid rgba(255, 165, 0, 0.3);
color: #ffd8a8;
padding: 0.75rem;
margin: 1rem 1rem 0 1rem;
border-radius: 8px;
text-align: center;
font-size: 0.9rem;
backdrop-filter: blur(5px);
animation: fadeIn 1s ease-out;
}
@keyframes fadeIn {
from { opacity: 0; transform: translateY(-10px); }
to { opacity: 1; transform: translateY(0); }
}
/* Messages */
.message-list {
flex: 1;
overflow-y: auto;
padding: 2rem 1rem;
}
.message-row {
display: flex;
gap: 1.5rem;
margin-bottom: 3rem;
align-items: flex-start;
}
.message-row.user { flex-direction: row-reverse; }
.avatar {
width: 42px;
height: 42px;
border-radius: 50%; /* Circles for organic feel */
background-size: cover;
background-position: center;
box-shadow: 0 4px 12px rgba(0,0,0,0.3);
flex-shrink: 0;
}
.avatar.bot { background-image: url('/static/assets/Aetheris_logo.png'); background-color: #fff; }
.avatar.user { background: linear-gradient(135deg, #444, #222); color: #fff; display: flex; align-items: center; justify-content: center;}
.bubble {
font-family: var(--font-ui);
line-height: 1.8;
font-size: 1rem;
color: #e0e0e0;
}
.message-row.user .bubble {
background: var(--eth-glass);
padding: 1rem 1.5rem;
border-radius: 18px 18px 4px 18px;
backdrop-filter: blur(10px);
border: 1px solid rgba(255,255,255,0.1);
}
.message-row.bot .bubble {
/* No bubble for bot, just text floating like thought */
padding-top: 0.5rem;
}
/* Input Area - Floating Capsule */
.input-area {
padding: 2rem;
display: flex;
justify-content: center;
}
.input-container {
width: 100%;
background: rgba(255, 255, 255, 0.03);
border: 1px solid rgba(255, 255, 255, 0.08);
border-radius: 32px;
padding: 0.8rem 1.5rem;
display: flex;
align-items: center;
backdrop-filter: blur(20px);
box-shadow: 0 8px 32px rgba(0,0,0,0.2);
transition: transform 0.2s, background 0.2s;
}
.input-container:focus-within {
transform: translateY(-2px);
background: rgba(255, 255, 255, 0.06);
border-color: rgba(255,255,255,0.15);
}
textarea {
width: 100%;
background: transparent;
border: none;
color: #fff;
font-size: 1rem;
padding: 0.2rem;
resize: none;
outline: none;
font-family: var(--font-ui);
}
textarea::placeholder { color: rgba(255,255,255,0.3); }
.btn-send {
background: var(--eth-light);
color: var(--eth-dark);
border: none;
width: 36px;
height: 36px;
border-radius: 50%;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
margin-left: 0.5rem;
transition: transform 0.2s;
}
.btn-send:hover { transform: scale(1.1); }
/* Markdown Overrides */
.prose strong { color: var(--eth-purple); font-weight: 600; }
.prose em { font-family: var(--font-display); font-size: 1.05em; color: #fff; }
/* --- Mobile Responsiveness --- */
@media (max-width: 768px) {
.chat-wrapper {
padding-top: var(--nav-height);
height: 100vh;
/* Ensure input area stays visible with virtual keyboard if possible,
though specific viewport unit hacks might be needed for iOS */
}
.message-list {
padding: 1rem 0.5rem;
}
.message-row {
gap: 0.8rem;
margin-bottom: 1.5rem;
}
.avatar {
width: 32px;
height: 32px;
}
.bubble {
font-size: 0.95rem;
line-height: 1.6;
}
.message-row.user .bubble {
padding: 0.8rem 1rem;
border-radius: 14px 14px 2px 14px;
}
.input-area {
padding: 1rem;
}
.input-container {
padding: 0.5rem 1rem;
border-radius: 24px;
}
.btn-send {
width: 32px;
height: 32px;
}
}