/* ==========================================================================
   app.css — base layer (loads BEFORE theme.css).
   Premium minimal LIGHT theme. Only the selectors the pages already use are
   kept; values converted dark -> light. No markup, IDs or JS hooks change.
   ========================================================================== */
:root {
  --ts-bg:     #F4F6FA;   /* app background (soft, never pure white) */
  --ts-panel:  #FFFFFF;   /* cards / surfaces */
  --ts-border: #E5E9F0;   /* hairline borders */
  --ts-up:     #16A34A;   /* P&L positive (semantic) */
  --ts-down:   #DC2626;   /* P&L negative (semantic) */
}
body { background: var(--ts-bg); color: #0F172A; }
.navbar { background: var(--ts-panel); }
.card { background: var(--ts-panel); border-color: var(--ts-border); }
.stat-card .stat-value { font-size: 1.75rem; font-weight: 700; }
.text-up { color: var(--ts-up); } .text-down { color: var(--ts-down); }
.table { --bs-table-bg: var(--ts-panel); }

/* Analytics dashboard (light) */
.kpi { background: var(--ts-panel); border: 1px solid var(--ts-border); border-radius: .75rem; }
.kpi .kpi-label { color: #64748B; font-size: .8rem; }
.kpi .kpi-value { font-size: 1.5rem; font-weight: 700; }
.kpi-hero { background: linear-gradient(135deg, #FFFFFF 0%, #ECFDF5 100%); border-color: #A7F3D0; }
.chart-card { background: var(--ts-panel); border: 1px solid var(--ts-border); border-radius: .75rem; }
.chart-box { position: relative; height: 240px; }
.an-bar { height: 6px; border-radius: 3px; background: #EEF2F7; overflow: hidden; }
.an-bar > span { display:block; height:100%; }
