/*
 * Critical shell styles loaded by Nginx before Streamlit starts rendering.
 * This prevents the unstyled dashboard flash immediately after login.
 */
.stApp { background:radial-gradient(circle at 88% 8%,rgba(147,51,234,.09),transparent 24%),radial-gradient(circle at 40% 0%,rgba(14,165,233,.08),transparent 22%),#f8fafc!important; color:#0f172a!important; }
section[data-testid="stSidebar"] { position:relative; overflow:hidden; background:linear-gradient(165deg,#06152b 0%,#102b50 48%,#171638 100%)!important; border-right:1px solid rgba(56,189,248,.48)!important; }
section[data-testid="stSidebar"]::before { content:""; position:absolute; inset:-24% -70% auto auto; width:220px; height:220px; border-radius:50%; background:radial-gradient(circle,rgba(37,99,235,.38),transparent 68%); filter:blur(4px); pointer-events:none; }
section[data-testid="stSidebar"] h1, section[data-testid="stSidebar"] h2, section[data-testid="stSidebar"] h3, section[data-testid="stSidebar"] h4, section[data-testid="stSidebar"] h5, section[data-testid="stSidebar"] p, section[data-testid="stSidebar"] span, section[data-testid="stSidebar"] label { color:#f8fafc!important; }
section[data-testid="stSidebar"] h3 { letter-spacing:.015em; text-shadow:0 0 16px rgba(56,189,248,.34); }
section[data-testid="stSidebar"] hr { border-color:rgba(125,211,252,.15)!important; }
section[data-testid="stSidebar"] div.stButton > button { position:relative; overflow:hidden; border-radius:14px!important; min-height:44px; padding:10px 15px!important; font-size:13px!important; font-weight:750!important; border:1px solid rgba(148,163,184,.48)!important; background:linear-gradient(145deg,rgba(36,63,94,.96),rgba(14,30,54,.98))!important; color:#e2e8f0!important; box-shadow:inset 0 1px 0 rgba(255,255,255,.09),0 7px 14px rgba(0,0,0,.25)!important; margin-bottom:7px!important; transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,filter .18s ease!important; }
section[data-testid="stSidebar"] div.stButton > button:hover { border-color:#67e8f9!important; color:#fff!important; transform:translateX(4px) translateY(-2px)!important; filter:brightness(1.12); box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 12px 22px rgba(14,165,233,.27)!important; }
section[data-testid="stSidebar"] div.stButton > button[kind="primary"] { background:linear-gradient(135deg,#0759d7 0%,#0c9de8 52%,#5b21b6 100%)!important; border-color:#7dd3fc!important; color:#fff!important; }
.running-header-strip { overflow:hidden; position:relative; background:linear-gradient(90deg,#07152e,#173b8a,#07152e)!important; padding:0; border-radius:9px; color:#fff!important; font-size:12px; font-weight:700; margin-bottom:16px; border:1px solid #38bdf8; box-shadow:0 8px 20px rgba(30,64,175,.2); }
.ticker-track { display:flex!important; gap:38px; width:max-content; white-space:nowrap; padding:9px 17px; animation:enterpriseTicker 28s linear infinite; }
.ticker-item { display:inline-flex!important; visibility:visible!important; align-items:center; gap:8px; letter-spacing:.02em; }
.ticker-copy { display:inline-flex!important; }
.ticker-status { color:#22c55e; text-shadow:0 0 9px #22c55e; }
@keyframes enterpriseTicker { from { transform:translateX(0); } to { transform:translateX(-50%); } }
div[data-testid="stRadio"] [role="radiogroup"] { gap:9px!important; align-items:stretch!important; }
div[data-testid="stRadio"] [role="radiogroup"] > label { position:relative; overflow:hidden; min-height:41px; display:flex!important; align-items:center!important; border:1px solid #bfd7f5!important; border-radius:12px!important; padding:8px 12px!important; background:linear-gradient(145deg,#fff,#eaf4ff)!important; box-shadow:inset 0 1px 0 #fff,0 5px 10px rgba(30,64,175,.09)!important; }
div[data-testid="stRadio"] [role="radiogroup"] > label:has(input:checked) { border-color:#4f46e5!important; background:linear-gradient(135deg,#0a78dd,#1d4ed8 54%,#6d28d9)!important; box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 10px 18px rgba(79,70,229,.28)!important; transform:translateY(-2px); }
div[data-testid="stRadio"] [role="radiogroup"] > label:has(input:checked) * { color:#fff!important; }
div.stButton > button { border-radius:11px!important; border:1px solid #a9c7ee!important; background:linear-gradient(145deg,#fff,#e8f2ff)!important; box-shadow:inset 0 1px 0 #fff,0 5px 11px rgba(30,64,175,.12)!important; transition:transform .16s ease,box-shadow .16s ease,filter .16s ease!important; }
div.stButton > button:hover { transform:translateY(-2px)!important; filter:brightness(1.04); box-shadow:inset 0 1px 0 #fff,0 10px 18px rgba(37,99,235,.2)!important; }
div.stButton > button[kind="primary"] { border-color:#38bdf8!important; background:linear-gradient(135deg,#0b6ada,#0897dc 52%,#5b21b6)!important; color:#fff!important; }
div[data-testid="stSelectbox"] > div > div { border-radius:11px; border-color:#9dc9ff; background:linear-gradient(145deg,#fff,#f0f7ff); box-shadow:inset 0 1px 0 #fff,0 4px 12px rgba(30,64,175,.09); }
div[data-testid="stDataFrame"] { border:1px solid #d7e7fb; border-radius:10px; overflow:hidden; box-shadow:0 5px 14px rgba(15,23,42,.05); }
.running-tag { background-color:#2563eb; padding:3px 8px; border-radius:4px; font-size:11px; margin-right:8px; }
.command-centre { position:relative; overflow:hidden; background:radial-gradient(circle at 90% 0,#a855f7 0%,rgba(168,85,247,.12) 19%,transparent 34%),radial-gradient(circle at top right,#2563eb 0%,#172554 42%,#0f172a 100%); color:#fff; border-radius:18px; padding:22px 26px; margin-bottom:18px; box-shadow:0 16px 35px rgba(15,23,42,.18); border:1px solid #2563eb; }
.command-centre__kicker { color:#7dd3fc; font-size:12px; letter-spacing:.13em; font-weight:800; text-transform:uppercase; }
.command-centre__title { margin:5px 0 8px; font-size:27px; font-weight:800; }
.command-centre__detail { margin:0; color:#cbd5e1; font-size:14px; }
.command-centre__chips { margin-top:14px; display:flex; flex-wrap:wrap; gap:8px; }
.command-centre__chip { border:1px solid rgba(125,211,252,.45); background:rgba(15,23,42,.42); border-radius:999px; padding:5px 10px; color:#e0f2fe; font-size:12px; }
.command-centre__dot { display:inline-block; width:8px; height:8px; border-radius:50%; background:#22c55e; margin-right:6px; box-shadow:0 0 10px #22c55e; }
