BioRAG / assets /style.css
aseelflihan's picture
Deploy Bio-RAG
2a2c039
/* ============================================
BioRAG Medical Assistant - Light Medical Theme
============================================ */
:root {
--bg: #f0f5ff;
--bg-white: #ffffff;
--bg-sidebar: #f8faff;
--accent: #2563eb;
--accent-light: #dbeafe;
--accent-hover: #1d4ed8;
--teal: #0d9488;
--green: #059669;
--green-light: #d1fae5;
--amber: #d97706;
--amber-light: #fef3c7;
--red: #dc2626;
--red-light: #fee2e2;
--text: #1e293b;
--text-secondary: #475569;
--text-muted: #94a3b8;
--border: #e2e8f0;
--border-light: #f1f5f9;
--shadow: 0 1px 4px rgba(0,0,0,0.06);
--shadow-hover: 0 4px 12px rgba(37,99,235,0.1);
--radius: 12px;
}
/* === Animations === */
@keyframes fadeInUp {
from { opacity: 0; transform: translateY(12px); }
to { opacity: 1; transform: translateY(0); }
}
@keyframes fadeIn {
from { opacity: 0; }
to { opacity: 1; }
}
@keyframes slideIn {
from { opacity: 0; transform: translateX(-8px); }
to { opacity: 1; transform: translateX(0); }
}
@keyframes pulse {
0%, 100% { opacity: 1; }
50% { opacity: 0.7; }
}
/* === Global === */
.stApp {
background: var(--bg) !important;
}
/* === Scrollbar === */
::-webkit-scrollbar { width: 5px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: var(--accent); }
/* === Text === */
.stApp h1, .stApp h2, .stApp h3 {
color: var(--text) !important;
font-weight: 700 !important;
}
.stApp p, .stApp span, .stApp label, .stApp li, .stApp div {
color: var(--text);
}
.stCaption, .stApp .stCaption p {
color: var(--text-muted) !important;
}
/* === Sidebar === */
section[data-testid="stSidebar"] {
background: var(--bg-white) !important;
border-right: 1px solid var(--border) !important;
animation: fadeIn 0.5s ease;
}
section[data-testid="stSidebar"] * {
color: var(--text) !important;
}
section[data-testid="stSidebar"] .stCaption p,
section[data-testid="stSidebar"] .stCaption {
color: var(--text-muted) !important;
}
section[data-testid="stSidebar"] hr {
border-color: var(--border) !important;
}
section[data-testid="stSidebar"] .stButton button {
background: var(--accent) !important;
color: white !important;
border: none !important;
border-radius: var(--radius) !important;
padding: 0.5rem 1rem !important;
font-weight: 600 !important;
width: 100%;
transition: all 0.25s ease !important;
}
section[data-testid="stSidebar"] .stButton button:hover {
background: var(--accent-hover) !important;
box-shadow: var(--shadow-hover) !important;
transform: translateY(-1px) !important;
}
/* === Chat Messages === */
.stChatMessage {
background: var(--bg-white) !important;
border: 1px solid var(--border) !important;
border-radius: var(--radius) !important;
padding: 1rem 1.2rem !important;
margin-bottom: 0.75rem !important;
box-shadow: var(--shadow) !important;
animation: fadeInUp 0.35s ease;
transition: box-shadow 0.2s ease !important;
}
.stChatMessage:hover {
box-shadow: var(--shadow-hover) !important;
}
.stChatMessage p, .stChatMessage li, .stChatMessage span {
color: var(--text) !important;
line-height: 1.7 !important;
font-size: 0.93rem !important;
}
.stChatMessage .stMarkdown { color: var(--text) !important; }
.stChatMessage .stMarkdown strong { color: var(--accent) !important; }
.stChatMessage .stCaption p { color: var(--text-muted) !important; }
.stChatMessage [data-testid="chatAvatarIcon-user"] {
background: var(--accent) !important;
}
.stChatMessage [data-testid="chatAvatarIcon-assistant"] {
background: var(--teal) !important;
}
/* === Chat Input === */
[data-testid="stChatInput"],
[data-testid="stChatInput"] > div,
.stChatInput {
background: transparent !important;
border: none !important;
box-shadow: none !important;
padding: 0 !important;
outline: none !important;
}
[data-testid="stBottom"] > div {
background: transparent !important;
border: none !important;
box-shadow: none !important;
}
.stChatInput textarea, [data-testid="stChatInputTextArea"] {
background: var(--bg-white) !important;
border: 1px solid var(--border) !important;
border-radius: var(--radius) !important;
color: var(--text) !important;
font-size: 0.93rem !important;
padding: 0.8rem 1rem !important;
transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
}
.stChatInput textarea:focus, [data-testid="stChatInputTextArea"]:focus {
border-color: var(--accent) !important;
box-shadow: 0 0 0 3px rgba(37,99,235,0.12) !important;
}
.stChatInput button, [data-testid="stChatInputSubmitButton"] {
display: none !important;
}
/* === Expander === */
[data-testid="stExpander"] {
border: 1px solid var(--border) !important;
border-radius: var(--radius) !important;
background: var(--bg-white) !important;
animation: fadeIn 0.3s ease;
}
[data-testid="stExpander"] details { border: none !important; }
[data-testid="stExpander"] summary {
color: var(--text) !important;
font-weight: 500 !important;
padding: 0.7rem 1rem !important;
transition: color 0.2s ease !important;
}
[data-testid="stExpander"] summary:hover { color: var(--accent) !important; }
/* === Text Area (sources) === */
.stTextArea textarea {
background: var(--bg) !important;
border: 1px solid var(--border) !important;
border-radius: 8px !important;
color: var(--text-secondary) !important;
font-size: 0.82rem !important;
line-height: 1.6 !important;
}
/* === Divider === */
hr {
border-color: var(--border) !important;
opacity: 0.7;
}
/* === Spinner === */
.stSpinner > div > span {
color: var(--text-secondary) !important;
animation: pulse 1.5s ease infinite;
}
/* === Alert boxes === */
.stAlert {
border-radius: var(--radius) !important;
padding: 0.8rem 1rem !important;
animation: slideIn 0.35s ease;
}
/* === Footer === */
.stApp > footer { display: none !important; }
/* === Layout === */
.main .block-container {
max-width: 850px !important;
padding: 1.5rem 1rem !important;
}
[data-testid="stBottom"] {
background: linear-gradient(180deg, transparent 0%, var(--bg) 40%) !important;
}