"""Editorial-warm light theme: typography, chrome CSS, chart styling. Design read: a portfolio-grade NL→SQL product demo for technical recruiters and data peers — calm, precise, editorial-warm (deliberately *not* the blue/indigo SaaS default). Native Streamlit CSS, self-hosted Manrope (UI + tabular figures, full Cyrillic) and JetBrains Mono (SQL). Dials for this surface (it is a working tool, not a marketing page): VARIANCE 4 · MOTION 2 (feedback-only transitions) · DENSITY 5. System locks (taste pre-flight): - Theme lock: light only. - Colour lock: ONE accent — terracotta. No second hue anywhere. - Shape lock: containers/cards/expanders 12px · inputs/buttons 8px · chips + language pills full-pill. - Shadows tinted to the warm ink, never pure black. """ from __future__ import annotations from typing import Any import streamlit as st FONT_CSS = """ """ CHART_PALETTE = ["#C2541B", "#1C1A17", "#9E3F12", "#6F6A61", "#D8862E"] def inject_chrome() -> None: st.markdown(FONT_CSS, unsafe_allow_html=True) def style_fig(fig: Any) -> Any: fig.update_layout( font_family="Manrope, system-ui, sans-serif", font_color="#1C1A17", paper_bgcolor="#FFFFFF", plot_bgcolor="#FFFFFF", colorway=CHART_PALETTE, margin=dict(l=10, r=10, t=20, b=10), ) fig.update_xaxes(gridcolor="#EDE9E1", zerolinecolor="#D8D2C6", tickcolor="#D8D2C6") fig.update_yaxes(gridcolor="#EDE9E1", zerolinecolor="#D8D2C6", tickcolor="#D8D2C6") return fig