finalProject / style.css
BillyZ1129's picture
Upload 7 files
79bcb1b verified
/* Main style elements */
@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@100;300;400;500;700&family=Source+Sans+Pro:wght@400;600;700&display=swap');
html, body, [class*="css"] {
font-family: 'Source Sans Pro', -apple-system, BlinkMacSystemFont, sans-serif;
color: #2C363F;
}
.main .block-container {
padding-top: 2rem;
padding-bottom: 2rem;
}
/* Header styling */
.main-header {
color: #2C393F;
font-weight: 600;
text-align: center;
margin-bottom: 2rem;
}
.subheader {
color: #557A95;
font-weight: 500;
font-size: 1.2rem;
margin-bottom: 1rem;
}
/* Card elements */
.card {
background-color: #FFFFFF;
border-radius: 10px;
border: 1px solid #EAEAEA;
padding: 1.5rem;
margin-bottom: 1rem;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
transition: all 0.3s ease;
}
.card:hover {
box-shadow: 0 6px 8px rgba(0, 0, 0, 0.1);
transform: translateY(-2px);
}
.card-header {
font-weight: 600;
margin-bottom: 0.8rem;
color: #557A95;
border-bottom: 1px solid #EAEAEA;
padding-bottom: 0.5rem;
}
/* Risk level indicators */
.risk-low {
color: #7FD8BE;
font-weight: 600;
}
.risk-medium {
color: #FFC857;
font-weight: 600;
}
.risk-high {
color: #E84855;
font-weight: 600;
}
/* Input area */
.stTextInput > div > div > input {
border-radius: 8px;
border: 1px solid #CCCCCC;
padding: 0.5rem;
font-size: 1rem;
}
.stTextArea > div > div > textarea {
border-radius: 8px;
border: 1px solid #CCCCCC;
padding: 0.8rem;
font-size: 1rem;
min-height: 150px;
}
/* Button styling */
.stButton > button {
background-color: #557A95;
color: white;
border: none;
border-radius: 8px;
padding: 0.5rem 2rem;
font-weight: 600;
transition: all 0.3s ease;
}
.stButton > button:hover {
background-color: #395B74;
color: white;
transform: translateY(-2px);
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}
.stButton > button:focus {
background-color: #395B74;
color: white;
}
/* Symptom highlight styling */
.symptom-highlight {
background-color: rgba(255, 200, 87, 0.3);
border-radius: 3px;
padding: 0 3px;
}
/* Duration highlight styling */
.duration-highlight {
background-color: rgba(127, 216, 190, 0.3);
border-radius: 3px;
padding: 0 3px;
}
/* Recommendation styling */
.recommendation-container {
background-color: #F8F9FA;
border-left: 5px solid #557A95;
padding: 1rem;
margin: 1rem 0;
border-radius: 0 5px 5px 0;
}
/* History item */
.history-item {
padding: 1rem;
margin-bottom: 0.5rem;
border-radius: 5px;
border: 1px solid #EAEAEA;
background-color: #F8F9FA;
cursor: pointer;
transition: all 0.2s ease;
}
.history-item:hover {
background-color: #E9ECEF;
}
/* Loading animation */
.loading-spinner {
display: flex;
justify-content: center;
align-items: center;
margin: 2rem 0;
}
/* Custom metric container */
.metric-container {
background-color: white;
border-radius: 10px;
padding: 1rem;
text-align: center;
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
}
.metric-value {
font-size: 2.5rem;
font-weight: 600;
margin: 0.5rem 0;
}
.metric-label {
font-size: 1rem;
color: #6c757d;
}
/* App footer */
.footer {
text-align: center;
margin-top: 3rem;
padding-top: 1rem;
border-top: 1px solid #EAEAEA;
color: #6c757d;
font-size: 0.8rem;
}
/* Override Streamlit's default padding in widgets */
div.stRadio > div {
padding-top: 0.5rem;
padding-bottom: 0.5rem;
}
div.stCheckbox > div {
padding-top: 0.5rem;
padding-bottom: 0.5rem;
}
/* Tabs styling */
.stTabs [data-baseweb="tab-list"] {
gap: 1rem;
}
.stTabs [data-baseweb="tab"] {
height: 3rem;
border-radius: 8px 8px 0 0;
padding: 0 1.5rem;
background-color: #F8F9FA;
}
.stTabs [aria-selected="true"] {
background-color: white !important;
border-bottom: 2px solid #557A95 !important;
font-weight: 600;
}
/* Responsive adjustments */
@media (max-width: 768px) {
.main .block-container {
padding-top: 1rem;
padding-bottom: 1rem;
}
.card {
padding: 1rem;
}
.metric-value {
font-size: 2rem;
}
}
/* Animation for success message */
@keyframes fadeInUp {
from {
opacity: 0;
transform: translateY(20px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.fadeInUp {
animation-name: fadeInUp;
animation-duration: 0.5s;
animation-fill-mode: both;
}