/* ── General ── */
html, body, [class*="css"] { font-family: 'IBM Plex Sans', 'Segoe UI', sans-serif; }
.block-container { padding-top: 2rem; }
h1, h2, h3, h4 { letter-spacing: -0.01em; }
/* ── Sidebar ── */
[data-testid="stSidebar"] {
background: #0f1117;
border-right: 1px solid #1e2130;
}
[data-testid="stSidebar"] * { color: #e2e8f0 !important; }
[data-testid="stSidebar"] .stRadio label { font-size: 0.95rem; }
[data-testid="stSidebar"] hr { border-color: #1e2130; }
/* ── Page header ── */
.page-header {
display: flex;
align-items: baseline;
gap: 0.6rem;
margin-bottom: 0.1rem;
}
.page-subtitle {
color: #94a3b8;
font-size: 0.95rem;
margin-bottom: 1.4rem;
}
/* ── Panel / card shells ── */
.panel {
background: #12141c;
border: 1px solid #232838;
border-radius: 12px;
padding: 1.1rem 1.3rem;
}
.panel-title {
font-size: 0.82rem;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.05em;
color: #7dd3fc;
margin-bottom: 0.7rem;
}
/* ── Answer box ── */
.answer-box {
background: #0f1117;
border: 1px solid #2d3748;
border-left: 4px solid #38bdf8;
border-radius: 8px;
padding: 1.2rem 1.4rem;
margin-top: 0.5rem;
color: #e2e8f0;
font-size: 0.97rem;
line-height: 1.7;
box-shadow: 0 2px 10px rgba(0,0,0,0.18);
}
/* ── Source card ── */
.source-card {
background: #1a1f2e;
border: 1px solid #2d3748;
border-radius: 8px;
padding: 0.8rem 1rem;
margin-bottom: 0.55rem;
font-size: 0.87rem;
color: #94a3b8;
transition: border-color 0.15s ease;
}
.source-card:hover { border-color: #38bdf8; }
.source-card strong { color: #7dd3fc; }
.source-page-badge {
display: inline-block;
background: #052e16;
color: #4ade80 !important;
border-radius: 999px;
padding: 0.05rem 0.55rem;
font-size: 0.72rem;
margin-left: 0.4rem;
}
/* ── Upload status ── */
.upload-success {
background: #052e16;
border: 1px solid #15803d;
border-radius: 8px;
padding: 0.75rem 1rem;
color: #4ade80;
font-size: 0.9rem;
}
/* ── Metric pills ── */
.metric-pill {
display: inline-block;
background: #1e293b;
border: 1px solid #334155;
border-radius: 999px;
padding: 0.25rem 0.75rem;
font-size: 0.8rem;
color: #94a3b8;
margin-right: 0.4rem;
margin-bottom: 0.3rem;
}
/* ── Empty state ── */
.empty-state {
height: 780px;
border: 2px dashed #2d3748;
border-radius: 12px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
color: #4b5563;
gap: 0.4rem;
}
.empty-state .icon { font-size: 2.4rem; }
.empty-state .txt { font-size: 0.95rem; }
/* ── PDF page nav bar ── */
.pdf-navbar {
display: flex;
align-items: center;
justify-content: center;
gap: 0.6rem;
color: #94a3b8;
font-size: 0.85rem;
margin-top: 0.5rem;
}
.highlight-note {
color: #facc15;
font-size: 0.8rem;
margin-top: 0.3rem;
}