Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| # ============================================================ | |
| # Global CSS & Meta (Common to all tabs) | |
| # ============================================================ | |
| def add_custom_css(): | |
| st.markdown(""" | |
| <meta name="viewport" content="width=device-width, initial-scale=1"> | |
| <style> | |
| /* Tooltip container */ | |
| .tooltip { | |
| position: relative; | |
| display: inline-block; | |
| } | |
| .tooltip .tooltiptext { | |
| visibility: hidden; | |
| width: 200px; | |
| background-color: rgba(0,0,0,0.8); | |
| color: #fff; | |
| text-align: left; | |
| border-radius: 6px; | |
| padding: 5px; | |
| position: absolute; | |
| z-index: 1; | |
| bottom: 100%; | |
| margin-bottom: 5px; | |
| left: 50%; | |
| transform: translateX(-50%); | |
| opacity: 0; | |
| transition: opacity 0.3s; | |
| font-size: 0.8em; | |
| line-height: 1.2em; | |
| } | |
| .tooltip:hover .tooltiptext { | |
| visibility: visible; | |
| opacity: 1; | |
| } | |
| img { | |
| max-width: 100%; | |
| height: auto; | |
| } | |
| div.stButton > button { | |
| font-size: 0.8em; | |
| padding: 0.3em 0.6em; | |
| background-color: #D3D3D3; | |
| } | |
| </style> | |
| """, unsafe_allow_html=True) | |
| def cvc_add_custom_css(): | |
| st.markdown(""" | |
| <meta name="viewport" content="width=device-width, initial-scale=1"> | |
| <style> | |
| /* Tooltip container */ | |
| .tooltip { | |
| position: relative; | |
| display: inline-block; | |
| } | |
| .tooltip .tooltiptext { | |
| visibility: hidden; | |
| width: 220px; | |
| background-color: rgba(0,0,0,0.8); | |
| color: #fff; | |
| text-align: left; | |
| border-radius: 6px; | |
| padding: 5px; | |
| position: absolute; | |
| z-index: 1; | |
| bottom: 100%; | |
| margin-bottom: 5px; | |
| left: 50%; | |
| transform: translateX(-50%); | |
| opacity: 0; | |
| transition: opacity 0.3s; | |
| font-size: 0.8em; | |
| line-height: 1.2em; | |
| white-space: pre-wrap; | |
| } | |
| .tooltip:hover .tooltiptext { | |
| visibility: visible; | |
| opacity: 1; | |
| } | |
| img { | |
| max-width: 100%; | |
| height: auto; | |
| } | |
| div.stButton > button { | |
| font-size: 0.8em; | |
| padding: 0.3em 0.6em; | |
| background-color: #D3D3D3; | |
| } | |
| /* KPI Card styling */ | |
| .kpi-card { | |
| background-color: #f9f9f9; | |
| padding: 12px; | |
| border-radius: 5px; | |
| box-shadow: 2px 2px 5px rgba(0,0,0,0.1); | |
| width: 100%; | |
| max-width: 220px; | |
| margin: 5px auto; | |
| text-align: center; | |
| font-family: sans-serif; | |
| display: block; | |
| } | |
| .kpi-title { | |
| font-size: 14px; | |
| color: #555; | |
| margin-bottom: 4px; | |
| } | |
| .kpi-value { | |
| font-size: 20px; | |
| font-weight: bold; | |
| margin: 0; | |
| } | |
| .kpi-change { | |
| font-size: 12px; | |
| color: green; | |
| margin-top: 4px; | |
| } | |
| </style> | |
| """, unsafe_allow_html=True) |