Spaces:
Sleeping
Sleeping
| /* 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 ; | |
| border-bottom: 2px solid #557A95 ; | |
| 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; | |
| } |