/* 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; }