Preformu / assets /style.css
unknown
UI Structure Optimization: Split Pane & Empty State
1654557
/* Nordic Minimalism Theme for Pharma K - Final Polish */
/* -----------------------------------------------------------
1. Global Variables & Reset
----------------------------------------------------------- */
:root {
--primary-color: #008080;
/* Teal */
--primary-dark: #005f5f;
--text-main: #2C3E50;
--text-light: #7F8C8D;
--bg-main: #F4F6F8;
/* Light gray-blue hue for depth */
--card-bg: #FFFFFF;
--shadow-card: 0 4px 20px rgba(0, 0, 0, 0.05);
--border-radius: 12px;
--font-stack: 'Inter', 'PingFang SC', 'Microsoft YaHei', sans-serif;
}
.stApp {
background-color: var(--bg-main);
font-family: var(--font-stack);
color: var(--text-main);
}
/* -----------------------------------------------------------
2. Layout Constraints (Max Width)
----------------------------------------------------------- */
.block-container {
max-width: 1280px !important;
padding-top: 3rem !important;
padding-bottom: 5rem !important;
}
/* -----------------------------------------------------------
3. Header Styling (Centered & Clean)
----------------------------------------------------------- */
.main-header {
text-align: center;
margin-bottom: 3rem;
background: transparent;
padding: 0;
}
.main-header h1 {
font-size: 2.2rem;
font-weight: 800;
color: var(--primary-color);
margin: 0;
letter-spacing: -0.02em;
}
.main-header p {
font-size: 1rem;
color: var(--text-light);
margin-top: 0.5rem;
font-weight: 500;
}
/* -----------------------------------------------------------
4. Column Cards (The "Paper" Look)
----------------------------------------------------------- */
/*
We target the direct children of columns.
Note: This selector usually works for the container inside a column
*/
[data-testid="column"] {
background-color: var(--card-bg);
border-radius: var(--border-radius);
padding: 1.5rem !important;
box-shadow: var(--shadow-card);
border: 1px solid rgba(0, 0, 0, 0.03);
transition: transform 0.2s ease, box-shadow 0.2s ease;
}
/* Fix for nested columns (e.g. buttons) - Reset card style */
[data-testid="column"] [data-testid="column"] {
background-color: transparent !important;
box-shadow: none !important;
border: none !important;
padding: 0 !important;
border-radius: 0 !important;
}
[data-testid="column"]:hover {
box-shadow: 0 8px 25px rgba(0, 0, 0, 0.08);
z-index: 10;
}
/* Disable hover effect for nested columns */
[data-testid="column"] [data-testid="column"]:hover {
box-shadow: none !important;
transform: none !important;
}
/* Adjust headings inside columns */
[data-testid="column"] h3 {
font-size: 1.1rem !important;
font-weight: 700 !important;
padding-bottom: 1rem;
border-bottom: 1px solid #eee;
margin-bottom: 1.5rem;
color: var(--text-main);
}
/* -----------------------------------------------------------
5. Sidebar Styling
----------------------------------------------------------- */
section[data-testid="stSidebar"] {
background-color: white;
border-right: 1px solid #eee;
}
section[data-testid="stSidebar"] [data-testid="stMarkdownContainer"] h1 {
font-size: 1.2rem !important;
}
/* -----------------------------------------------------------
6. Input Fields & Form Elements
----------------------------------------------------------- */
.stTextInput input,
.stTextArea textarea,
.stSelectbox div[data-baseweb="select"] {
background-color: #F9FAFB;
border: 1px solid #E5E7EB;
border-radius: 8px;
color: var(--text-main);
font-size: 0.95rem;
}
.stTextInput input:focus,
.stTextArea textarea:focus {
border-color: var(--primary-color);
box-shadow: 0 0 0 3px rgba(0, 128, 128, 0.1);
background-color: white;
}
/* -----------------------------------------------------------
7. Buttons
----------------------------------------------------------- */
/* Primary Action Button */
button[kind="primary"] {
background: var(--primary-color) !important;
border: none !important;
box-shadow: 0 4px 6px rgba(0, 128, 128, 0.2);
font-weight: 600;
letter-spacing: 0.02em;
padding: 0.6rem 1.2rem;
transition: all 0.2s;
}
button[kind="primary"]:hover {
background: var(--primary-dark) !important;
transform: translateY(-1px);
box-shadow: 0 6px 12px rgba(0, 128, 128, 0.25);
}
/* Secondary / Pill Buttons (Quick Actions) */
/* Requires type="secondary" in logic */
button[kind="secondary"] {
background: white !important;
border: 1px solid #E5E7EB !important;
color: var(--text-main) !important;
border-radius: 50px !important;
/* Pill shape */
font-size: 0.85rem !important;
padding: 0.25rem 0.75rem !important;
height: auto !important;
min-height: 2rem;
box-shadow: none !important;
}
button[kind="secondary"]:hover {
border-color: var(--primary-color) !important;
color: var(--primary-color) !important;
background-color: #F0FDFA !important;
}
/* -----------------------------------------------------------
8. Tabs
----------------------------------------------------------- */
.stTabs [data-baseweb="tab-list"] {
gap: 1rem;
border-bottom: 1px solid #eee;
margin-bottom: 1.5rem;
}
.stTabs [data-baseweb="tab"] {
height: 3rem;
font-weight: 500;
color: var(--text-light);
border: none;
background: transparent;
}
.stTabs [aria-selected="true"] {
color: var(--primary-color) !important;
border-bottom: 2px solid var(--primary-color) !important;
font-weight: 600;
}
/* -----------------------------------------------------------
9. Footer
----------------------------------------------------------- */
footer {
visibility: hidden;
}
.pharma-k-footer {
border-top: 1px solid #eee;
padding-top: 2rem;
margin-top: 3rem;
text-align: center;
color: var(--text-light);
font-size: 0.85rem;
}