/* Tavla 2 (P-113): forecast row, column weighted values, next-step line and warnings on cards. Colours and spacing from tokens.css. */
.tv-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s-3);margin-bottom:var(--s-4)}
.tv-kpi{display:grid;gap:var(--s-1);padding:var(--s-4);background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--sh);min-width:0}
.tv-kpi.warn{box-shadow:0 0 0 1px var(--red)}
.tv-kl{font:500 11px var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.tv-kv{font-size:var(--fs-lg);font-weight:600;overflow-wrap:anywhere}
.tv-kpi.warn .tv-kv{color:var(--red)}

.tv-chip{display:inline-flex;align-items:center;gap:var(--s-2);height:32px;padding:0 var(--s-3);border:0;border-radius:var(--r-pill);background:var(--red-soft);color:var(--red);font-size:var(--fs-sm);font-weight:500;cursor:pointer;box-shadow:inset 0 0 0 1px var(--red)}
.tv-chip.on{background:var(--red);color:var(--bg)}
.tv-x{font-size:var(--fs-md);line-height:1}

.tv-colsub{flex:1 1 100%;display:flex;justify-content:space-between;gap:var(--s-2);font-size:var(--fs-xs);color:var(--muted)}
.tv-w{color:var(--ink2)}

.kc.tv-warn{box-shadow:0 0 0 1.5px var(--red)}
.tv-step{display:flex;align-items:center;gap:var(--s-2);margin-top:var(--s-1);padding-top:var(--s-2);box-shadow:inset 0 1px 0 var(--edge2);font-size:var(--fs-sm);color:var(--ink2);min-width:0}
.tv-step .i{width:14px;height:14px;flex:none}
.tv-st{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tv-when{color:var(--muted);white-space:nowrap}
.tv-none{color:var(--red);font-weight:500}
.tv-late{color:var(--amber)}.tv-late .tv-when{color:var(--amber);font-weight:500}

@media (max-width:900px){.tv-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){.tv-kpis{grid-template-columns:minmax(0,1fr)}}
