/* Data visualizations share the chosen palette; interface accents remain separately configurable. */
:root:not([data-chart-palette="theme"]) :is(.track-node, .status-node, .gate-node, .stage) {
    --palette-node: var(--chart-color-6);
    --palette-node-ink: var(--chart-on-color-6);
    --node-color: var(--palette-node);
    --node: var(--palette-node);
    background: var(--palette-node);
    color: var(--palette-node-ink);
}
:root:not([data-chart-palette="theme"]) :is(.track-node, .status-node, .gate-node, .stage).ready { --palette-node: var(--chart-color-1); --palette-node-ink: var(--chart-on-color-1); }
:root:not([data-chart-palette="theme"]) :is(.track-node, .status-node, .gate-node, .stage).partial { --palette-node: var(--chart-color-3); --palette-node-ink: var(--chart-on-color-3); }
:root:not([data-chart-palette="theme"]) :is(.track-node, .status-node, .gate-node, .stage).manual { --palette-node: var(--chart-color-2); --palette-node-ink: var(--chart-on-color-2); }
:root:not([data-chart-palette="theme"]) :is(.track-node, .status-node, .gate-node, .stage).documented { --palette-node: var(--chart-color-4); --palette-node-ink: var(--chart-on-color-4); }
/* Blocked releases keep their warning color and explicit exclamation mark. */
:root:not([data-chart-palette="theme"]) :is(.track-node, .status-node, .gate-node, .stage).blocked { --palette-node: #c92a2a; --palette-node-ink: #fff; }

:root:not([data-chart-palette="theme"]) .apps-summary-card { --metric-color: var(--chart-color-1); }
:root:not([data-chart-palette="theme"]) .apps-summary-card:nth-child(2) { --metric-color: var(--chart-color-2); }
:root:not([data-chart-palette="theme"]) .apps-summary-card:nth-child(3) { --metric-color: var(--chart-color-3); }
:root:not([data-chart-palette="theme"]) .apps-summary-card:nth-child(4) { --metric-color: var(--chart-color-4); }
:root:not([data-chart-palette="theme"]) .apps-summary-card::before { background: var(--metric-color); }
:root:not([data-chart-palette="theme"]) .apps-summary-card.primary { background: radial-gradient(circle at 100% 0, color-mix(in srgb, var(--metric-color) 13%, transparent), transparent 48%), var(--gradient-card); }
:root:not([data-chart-palette="theme"]) .apps-summary-icon { color: var(--metric-color); background: color-mix(in srgb, var(--metric-color) 12%, transparent); border-color: color-mix(in srgb, var(--metric-color) 24%, transparent); }
:root:not([data-chart-palette="theme"]) .portfolio-card { --product-color: var(--chart-color-1); }
:root:not([data-chart-palette="theme"]) .portfolio-card.lifecycle-prototype { --product-color: var(--chart-color-2); }
:root:not([data-chart-palette="theme"]) .portfolio-card.lifecycle-legacy { --product-color: var(--chart-color-3); }
:root:not([data-chart-palette="theme"]) .portfolio-card.lifecycle-internal { --product-color: var(--chart-color-4); }
:root:not([data-chart-palette="theme"]) .portfolio-card.lifecycle-active { --product-color: var(--chart-color-5); }
:root:not([data-chart-palette="theme"]) .portfolio-card.lifecycle-paused { --product-color: var(--chart-color-6); }
:root:not([data-chart-palette="theme"]) .portfolio-card::before { background: var(--product-color); }
:root:not([data-chart-palette="theme"]) .portfolio-card .portfolio-status { color: var(--product-color); background: color-mix(in srgb, var(--product-color) 12%, var(--color-bg-card)); }
:root:not([data-chart-palette="theme"]) :is(.card-product-status, .clear-status) progress::-webkit-progress-value { background: linear-gradient(90deg, var(--chart-color-1), var(--chart-color-2)); }
:root:not([data-chart-palette="theme"]) :is(.card-product-status, .clear-status) progress::-moz-progress-bar { background: linear-gradient(90deg, var(--chart-color-1), var(--chart-color-2)); }
:root:not([data-chart-palette="theme"]) .card-compact-metrics strong { color: var(--chart-color-1); }
:root:not([data-chart-palette="theme"]) .platform-identity .target-status.ready { color: var(--chart-on-color-1); background: var(--chart-color-1); }

/* Finance legend and KPI colors follow the same series order as the charts. */
:root .finance-legend i.actual { background: var(--chart-color-1, var(--color-primary)); }
:root .finance-legend i.forecast { background: var(--chart-color-2, var(--color-secondary)); }
:root .finance-legend i.interval { background: color-mix(in srgb, var(--chart-color-2, var(--color-secondary)) 35%, transparent); }
:root .finance-kpi-icon.actual { --metric-color: var(--chart-color-1, var(--color-primary)); }
:root .finance-kpi-icon.proceeds { --metric-color: var(--chart-color-3, var(--color-accent)); }
:root .finance-kpi-icon.costs { --metric-color: var(--chart-color-4, var(--color-warning)); }
:root .finance-kpi-icon.net { --metric-color: var(--chart-color-2, var(--color-secondary)); }
:root .finance-kpi-icon.break-even { --metric-color: var(--chart-color-5, var(--color-success)); }
:root .finance-kpi-icon:is(.actual, .proceeds, .costs, .net, .break-even) { color: var(--metric-color); background: color-mix(in srgb, var(--metric-color) 12%, transparent); }
