/* ── Viz helpers (js/core/viz.js) — tokens only, works in both themes ── */

/* Delta badge */
.viz-delta      { display:inline-flex; align-items:center; gap:3px; font-size:11px; font-weight:700; line-height:1; padding:2px 6px; border-radius:4px; white-space:nowrap; }
.viz-delta.good { color:var(--success-med); background:var(--success-lt); }
.viz-delta.bad  { color:var(--error-med);   background:var(--error-lt); }
.viz-delta.flat { color:var(--muted);       background:var(--border-sub); }

/* Sparkline + tile sub-row */
.viz-spark      { display:block; flex:none; }
.viz-stat-trend { display:flex; align-items:center; gap:10px; margin-top:8px; }
.viz-stat-meta  { display:flex; flex-direction:column; gap:2px; align-items:flex-start; }
.viz-stat-cap   { font-size:10px; color:var(--muted); }

/* Bullet */
.viz-bullet { display:block; width:100%; color:var(--text); }

/* Treemap */
.viz-treemap                   { display:block; color:var(--text); }
.viz-treemap g[data-id]        { cursor:pointer; }
.viz-treemap g[data-id]:hover rect { stroke-width:2; filter:brightness(1.1); }
.viz-treemap text              { pointer-events:none; font-size:11px; fill:#fff; paint-order:stroke; stroke:rgba(0,0,0,.35); stroke-width:2px; }
.viz-treemap .viz-tm-val       { font-size:10px; opacity:.85; }
.viz-treemap .viz-tm-head text { fill:currentColor; font-weight:600; }

/* Timeline */
.viz-timeline              { display:block; color:var(--text); }
.viz-timeline text         { font-size:10px; }
.viz-timeline .viz-tl-amt  { font-size:11px; font-weight:600; }
.viz-timeline .viz-tl-today{ font-weight:600; }
.viz-timeline .viz-tl-edge { font-size:9px; opacity:.6; }
