/* Local SVG and interaction styles for the case dashboards.  The shell owns
   layout primitives; these rules only style the restored chart components. */
.visual-svg { display:block; width:100%; height:auto; min-height:180px; overflow:visible; }
.visual-svg text { fill:#5D6B82; font:11px/1.2 ui-sans-serif,system-ui,-apple-system,"PingFang SC",sans-serif; }
.visual-legend { display:flex; flex-wrap:wrap; gap:8px 14px; margin-top:10px; color:#5D6B82; font-size:12px; }
.visual-legend span { display:inline-flex; align-items:center; gap:5px; }
.visual-legend-column { display:grid; gap:7px; align-content:center; min-width:150px; }
.visual-legend-column span { justify-content:space-between; }
.visual-legend-column em { color:#5D6B82; font-style:normal; margin-left:8px; }
.visual-swatch { width:9px; height:9px; border-radius:50%; display:inline-block; background:#6258E8; flex:0 0 9px; }
.visual-swatch.cyan,.visual-ring-segment.cyan,.visual-stack-segment.cyan,.visual-funnel-fill.cyan { background:#6258E8; stroke:#6258E8; }
.visual-swatch.green,.visual-ring-segment.green,.visual-stack-segment.green,.visual-funnel-fill.green { background:#16865B; stroke:#16865B; }
.visual-swatch.amber,.visual-ring-segment.amber,.visual-stack-segment.amber,.visual-funnel-fill.amber { background:#A96010; stroke:#A96010; }
.visual-swatch.red,.visual-ring-segment.red,.visual-stack-segment.red,.visual-funnel-fill.red { background:#C64255; stroke:#C64255; }
.visual-swatch.violet,.visual-ring-segment.violet,.visual-stack-segment.violet,.visual-funnel-fill.violet { background:#B257BD; stroke:#B257BD; }
.visual-donut-wrap { display:flex; align-items:center; justify-content:center; gap:14px; min-height:180px; }
.visual-donut { width:min(190px,45%); min-width:145px; }
.visual-ring-track { fill:none; stroke:#DCE3EF; stroke-width:14; }
.visual-ring-segment { fill:none; stroke-width:14; transform:rotate(-90deg); transform-origin:70px 70px; }
.visual-center-value { fill:#23304A!important; font-size:14px!important; font-weight:700; }
.visual-center-label { fill:#5D6B82!important; font-size:10px!important; }
.visual-stacked { display:grid; gap:11px; }
.visual-stack-label,.visual-funnel-label { display:flex; justify-content:space-between; gap:10px; margin-bottom:5px; color:#5D6B82; font-size:12px; }
.visual-stack-label .num,.visual-funnel-label b { color:#23304A; }
.visual-stack-track { display:flex; width:100%; height:18px; overflow:hidden; background:#E6EBF4; border-radius:4px; }
.visual-stack-segment { display:block; min-width:1px; height:100%; opacity:.9; }
.visual-quadrant-wrap { min-width:0; }
.visual-quadrant { min-height:260px; }
.visual-plot-bg { fill:#EEF2F8; stroke:#DCE3EF; }
.visual-axis,.visual-axis-dash { fill:none; stroke:#A7B4C8; stroke-width:1; }
.visual-axis-dash { stroke:#DCE3EF; stroke-dasharray:4 5; }
.visual-point { stroke:#DCE3EF; stroke-width:2; opacity:.88; cursor:pointer; }
.visual-point:hover,.visual-point:focus { opacity:1; stroke:#A7B4C8; stroke-width:2.5; outline:none; }
.visual-point.cyan { fill:#6258E8; }.visual-point.green { fill:#16865B; }.visual-point.amber { fill:#A96010; }.visual-point.red { fill:#C64255; }.visual-point.violet { fill:#B257BD; }
.chart-point { cursor:pointer; opacity:.9; stroke:#DCE3EF; stroke-width:1.5; }
.chart-point:hover,.chart-point:focus { opacity:1; stroke:#A7B4C8; stroke-width:2.5; outline:none; }
.bar-row[data-insight-drill] { cursor:pointer; }
.bar-row[data-insight-drill]:hover .bar-label,.bar-row[data-insight-drill]:focus .bar-label { color:#5145CD; }
.visual-quadrant-label { fill:#5D6B82!important; font-size:10px!important; }
.visual-axis-label { fill:#5D6B82!important; font-size:11px!important; }
.visual-tick-label { fill:#5D6B82!important; font-size:10px!important; }
.visual-caption { color:#5D6B82; font-size:12px; line-height:1.55; margin:8px 0 0; }
.resource-action { width:100%; color:inherit; background:transparent; border:1px solid transparent; text-align:left; cursor:pointer; font:inherit; }
.resource-action:hover,.resource-action:focus { border-color:#C9C4F8; background:#EFEDFF; outline:none; }
.visual-funnel { display:grid; gap:12px; padding:7px 0; }
.visual-funnel-label { align-items:baseline; }
.visual-funnel-label em { color:#5D6B82; font-style:normal; min-width:42px; text-align:right; }
.visual-funnel-track { height:19px; background:#E6EBF4; border-radius:4px; overflow:hidden; }
.visual-funnel-fill { display:block; height:100%; min-width:3px; border-radius:4px; }
.visual-detail { margin-top:14px; border-top:1px solid #DCE3EF; }
.visual-detail summary { cursor:pointer; padding:12px 0; color:#23304A; font-size:13px; }
.visual-detail[open] summary { color:#23304A; }
.visual-detail .table-scroll { margin-bottom:8px; }
.scenario-controls { display:grid; gap:14px; }
.scenario-controls label { display:grid; grid-template-columns:minmax(110px,160px) 1fr 52px; align-items:center; gap:12px; color:#23304A; font-size:13px; }
.scenario-controls input[type=range] { accent-color:#6258E8; width:100%; }
.scenario-controls output { color:#23304A; text-align:right; }
.scenario-results { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-top:16px; }
.scenario-results > div { background:#EEF2F8; border:1px solid #DCE3EF; border-radius:8px; padding:11px; }
.scenario-results span { display:block; color:#5D6B82; font-size:11px; margin-bottom:5px; }
.scenario-results b { color:#23304A; font-size:17px; }
.flow-steps { display:flex; align-items:center; justify-content:center; gap:8px; flex-wrap:wrap; padding:18px 4px; color:#23304A; }
.flow-steps span,.flow-steps button { background:#EEF2F8; border:1px solid #DCE3EF; border-radius:7px; padding:9px 10px; font:inherit; font-size:12px; color:#23304A; cursor:pointer; }
.flow-steps button:hover,.flow-steps button:focus { border-color:#6258E8; color:#5145CD; outline:none; }
.flow-steps b { color:#6258E8; }
.product-detail .detail-head { border-bottom:1px solid #DCE3EF; margin-bottom:14px; padding-bottom:10px; }
.product-detail .detail-head h2 { margin:7px 0 4px; }
.product-detail .button { margin-top:14px; }
.table-link { color:#5145CD; background:none; border:0; padding:0; font:inherit; text-align:left; cursor:pointer; }
.table-link:hover,.table-link:focus { color:#5145CD; text-decoration:underline; }
@media (max-width:760px) {
  .visual-donut-wrap { align-items:flex-start; }
  .visual-donut { min-width:125px; }
  .visual-legend-column { min-width:0; flex:1; }
  .scenario-results { grid-template-columns:1fr; }
  .scenario-controls label { grid-template-columns:1fr; gap:5px; }
  .scenario-controls output { text-align:left; }
}

.scenario-results > .visual-caption { grid-column:1/-1; }

.visual-plot-scroll{max-width:100%;min-width:0;overflow-x:auto;overscroll-behavior-x:contain}.visual-scroll-hint{display:none}.visual-plot-scroll:focus-visible{outline:1px solid #6258E8;outline-offset:3px}
@media(max-width:760px){.visual-plot-scroll>.visual-svg,.visual-plot-scroll>.chart{min-width:620px}.visual-scroll-hint{display:block;font-size:11px;line-height:1.6;color:#5D6B82;margin-top:8px}}
