/**
 * @license Highcharts
 *
 * (c) 2009-2016 Torstein Honsi
 *
 * License: www.highcharts.com/license
 *
 * ----------------------------------------------------------------------
 * Phase F (2026-05-09): vendored from upstream Highcharts v6.1.4.
 * Source: https://cdnjs.cloudflare.com/ajax/libs/highcharts/6.1.4/css/highcharts.css
 *
 * Status in Phase F: SHIPPED, NOT YET ACTIVE.
 *   - The file is copied into dist/<brand>/<target>/assets/css/ via the
 *     gruntfile copy:dev task so it's available alongside core.min.css.
 *   - It is NOT loaded via <link> in any layout template yet.
 *   - It is a no-op even if loaded, because chart configs run with the
 *     default `styledMode: false` — Highcharts emits inline fill/stroke
 *     SVG attributes that override CSS class rules in non-styled mode.
 *
 * Phase G plans:
 *   - Flip `chart: { styledMode: true }` on the ~8 chart instantiations
 *   - Adapt the rule blocks below to read from our --color-chart-* and
 *     --color-text-* tokens (e.g. `.highcharts-title` becomes
 *     `color: var(--color-chart-text-strong)` instead of the upstream
 *     hard-coded `#333333`).
 *   - Add a <link rel="stylesheet" href="…/highcharts.css"> tag in
 *     pBodyScriptBlockLastCommon.hbs.
 *   - Migrate per-data-point `color:` overrides in
 *     config-investments.js / config-pensions.js to `colorIndex:` plus
 *     `.highcharts-color-{n}` selectors.
 *
 * Plan: _wip/2026-05-09-phase-f-chart-palette-plan.md §6
 * Tracked: _todo.md item #3
 * ----------------------------------------------------------------------
 */
.highcharts-container {
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
  text-align: left;
  line-height: normal;
  z-index: 0;
  /* #1072 */
  -webkit-tap-highlight-color: transparent;
  font-family: "Lucida Grande", "Lucida Sans Unicode", Arial, Helvetica, sans-serif;
  font-size: 12px;
}

.highcharts-root {
  display: block;
}

.highcharts-root text {
  stroke-width: 0;
}

.highcharts-strong {
  font-weight: bold;
}

.highcharts-emphasized {
  font-style: italic;
}

.highcharts-anchor {
  cursor: pointer;
}

.highcharts-background {
  fill: #ffffff;
}

.highcharts-plot-border, .highcharts-plot-background {
  fill: none;
}

.highcharts-label-box {
  fill: none;
}

.highcharts-button-box {
  fill: inherit;
}

.highcharts-tracker-line {
  stroke-linejoin: round;
  stroke: rgba(192, 192, 192, 0.0001);
  stroke-width: 22;
  fill: none;
}

.highcharts-tracker-area {
  fill: rgba(192, 192, 192, 0.0001);
  stroke-width: 0;
}

/* Titles */
.highcharts-title {
  fill: #333333;
  font-size: 1.5em;
}

.highcharts-subtitle {
  fill: #666666;
}

/* Axes */
.highcharts-axis-line {
  fill: none;
  stroke: #ccd6eb;
}

.highcharts-yaxis .highcharts-axis-line {
  stroke-width: 0;
}

.highcharts-axis-title {
  fill: #666666;
}

.highcharts-axis-labels {
  fill: #666666;
  cursor: default;
  font-size: 0.9em;
}

.highcharts-grid-line {
  fill: none;
  stroke: #e6e6e6;
}

.highcharts-xaxis-grid .highcharts-grid-line {
  stroke-width: 0px;
}

.highcharts-tick {
  stroke: #ccd6eb;
}

.highcharts-yaxis .highcharts-tick {
  stroke-width: 0;
}

.highcharts-minor-grid-line {
  stroke: #f2f2f2;
}

.highcharts-crosshair-thin {
  stroke-width: 1px;
  stroke: #cccccc;
}

.highcharts-crosshair-category {
  stroke: #ccd6eb;
  stroke-opacity: 0.25;
}

/* Credits */
.highcharts-credits {
  cursor: pointer;
  fill: #999999;
  font-size: 0.7em;
  transition: fill 250ms, font-size 250ms;
}

.highcharts-credits:hover {
  fill: black;
  font-size: 1em;
}

/* Tooltip */
.highcharts-tooltip {
  cursor: default;
  pointer-events: none;
  white-space: nowrap;
  transition: stroke 150ms;
}

.highcharts-tooltip text {
  fill: #333333;
}

.highcharts-tooltip .highcharts-header {
  font-size: 0.85em;
}

.highcharts-tooltip-box {
  stroke-width: 1px;
  fill: #f7f7f7;
  fill-opacity: 0.85;
}

.highcharts-tooltip-box .highcharts-label-box {
  fill: #f7f7f7;
  fill-opacity: 0.85;
}

.highcharts-selection-marker {
  fill: #335cad;
  fill-opacity: 0.25;
}

.highcharts-graph {
  fill: none;
  stroke-width: 2px;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.highcharts-state-hover .highcharts-graph {
  stroke-width: 3;
}

.highcharts-state-hover path {
  transition: stroke-width 50;
  /* quick in */
}

.highcharts-state-normal path {
  transition: stroke-width 250ms;
  /* slow out */
}

/* Legend hover affects points and series */
g.highcharts-series,
.highcharts-point,
.highcharts-markers,
.highcharts-data-labels {
  transition: opacity 250ms;
}

.highcharts-legend-series-active g.highcharts-series:not(.highcharts-series-hover),
.highcharts-legend-point-active .highcharts-point:not(.highcharts-point-hover),
.highcharts-legend-series-active .highcharts-markers:not(.highcharts-series-hover),
.highcharts-legend-series-active .highcharts-data-labels:not(.highcharts-series-hover) {
  opacity: 0.2;
}

/* Series options */
/* Default colors — DISABLED (Phase G addendum 2, 2026-05-10).
 *
 * The upstream Highcharts vendor rules below set fill + stroke for the
 * .highcharts-color-{0..9} classes. In SVG the inline `fill="..."`
 * presentation attribute has specificity 0, so any CSS rule with a fill
 * value wins. Pie series in particular only emits the presentation
 * attribute (no inline `style="fill:..."`), so chart configs that pass
 * data[].color get overridden by these rules.
 *
 * We always pass explicit colours via series.color / data[].color — the
 * vendor 10-colour cycle is never desirable. Disabling these rules lets
 * the presentation attribute apply on every series type.
 *
 * If a chart legitimately wants the vendor default cycle, set chart
 * colors via Highcharts.setOptions({ colors: [...] }) — that path emits
 * an inline `fill=` and doesn't rely on these CSS classes.
 *
 * Original rules retained as comments for vendor-bump diff sanity.
 */
/*
.highcharts-color-0 { fill: #7cb5ec; stroke: #7cb5ec; }
.highcharts-color-1 { fill: #434348; stroke: #434348; }
.highcharts-color-2 { fill: #90ed7d; stroke: #90ed7d; }
.highcharts-color-3 { fill: #f7a35c; stroke: #f7a35c; }
.highcharts-color-4 { fill: #8085e9; stroke: #8085e9; }
.highcharts-color-5 { fill: #f15c80; stroke: #f15c80; }
.highcharts-color-6 { fill: #e4d354; stroke: #e4d354; }
.highcharts-color-7 { fill: #2b908f; stroke: #2b908f; }
.highcharts-color-8 { fill: #f45b5b; stroke: #f45b5b; }
.highcharts-color-9 { fill: #91e8e1; stroke: #91e8e1; }
*/

.highcharts-area {
  fill-opacity: 0.75;
  stroke-width: 0;
}

.highcharts-markers {
  stroke-width: 1px;
  stroke: #ffffff;
}

.highcharts-point {
  stroke-width: 1px;
}

.highcharts-dense-data .highcharts-point {
  stroke-width: 0;
}

.highcharts-data-label {
  font-size: 0.9em;
  font-weight: bold;
}

.highcharts-data-label-box {
  fill: none;
  stroke-width: 0;
}

.highcharts-data-label text, text.highcharts-data-label {
  fill: #333333;
}

.highcharts-data-label-connector {
  fill: none;
}

.highcharts-halo {
  fill-opacity: 0.25;
  stroke-width: 0;
}

.highcharts-series:not(.highcharts-pie-series) .highcharts-point-select {
  fill: #cccccc;
  stroke: #000000;
}

.highcharts-column-series rect.highcharts-point {
  stroke: #ffffff;
}

.highcharts-column-series .highcharts-point {
  transition: fill-opacity 250ms;
}

.highcharts-column-series .highcharts-point-hover {
  fill-opacity: 0.75;
  transition: fill-opacity 50ms;
}

.highcharts-pie-series .highcharts-point {
  stroke-linejoin: round;
  stroke: #ffffff;
}

.highcharts-pie-series .highcharts-point-hover {
  fill-opacity: 0.75;
  transition: fill-opacity 50ms;
}

.highcharts-funnel-series .highcharts-point {
  stroke-linejoin: round;
  stroke: #ffffff;
}

.highcharts-funnel-series .highcharts-point-hover {
  fill-opacity: 0.75;
  transition: fill-opacity 50ms;
}

.highcharts-funnel-series .highcharts-point-select {
  fill: inherit;
  stroke: inherit;
}

.highcharts-pyramid-series .highcharts-point {
  stroke-linejoin: round;
  stroke: #ffffff;
}

.highcharts-pyramid-series .highcharts-point-hover {
  fill-opacity: 0.75;
  transition: fill-opacity 50ms;
}

.highcharts-pyramid-series .highcharts-point-select {
  fill: inherit;
  stroke: inherit;
}

.highcharts-solidgauge-series .highcharts-point {
  stroke-width: 0;
}

.highcharts-treemap-series .highcharts-point {
  stroke-width: 1px;
  stroke: #e6e6e6;
  transition: stroke 250ms, fill 250ms, fill-opacity 250ms;
}

.highcharts-treemap-series .highcharts-point-hover {
  stroke: #999999;
  transition: stroke 25ms, fill 25ms, fill-opacity 25ms;
}

.highcharts-treemap-series .highcharts-above-level {
  display: none;
}

.highcharts-treemap-series .highcharts-internal-node {
  fill: none;
}

.highcharts-treemap-series .highcharts-internal-node-interactive {
  fill-opacity: 0.15;
  cursor: pointer;
}

.highcharts-treemap-series .highcharts-internal-node-interactive:hover {
  fill-opacity: 0.75;
}

/* Legend */
.highcharts-legend-box {
  fill: none;
  stroke-width: 0;
}

.highcharts-legend-item text {
  fill: #333333;
  font-weight: bold;
  font-size: 1em;
  cursor: pointer;
  stroke-width: 0;
}

.highcharts-legend-item:hover text {
  fill: #000000;
}

.highcharts-legend-item-hidden * {
  fill: #cccccc !important;
  stroke: #cccccc !important;
  transition: fill 250ms;
}

.highcharts-legend-nav-active {
  fill: #003399;
  cursor: pointer;
}

.highcharts-legend-nav-inactive {
  fill: #cccccc;
}

.highcharts-legend-title-box {
  fill: none;
  stroke-width: 0;
}

/* Loading */
.highcharts-loading {
  position: absolute;
  background-color: #ffffff;
  opacity: 0.5;
  text-align: center;
  z-index: 10;
  transition: opacity 250ms;
}

.highcharts-loading-hidden {
  height: 0 !important;
  opacity: 0;
  overflow: hidden;
  transition: opacity 250ms, height 250ms step-end;
}

.highcharts-loading-inner {
  font-weight: bold;
  position: relative;
  top: 45%;
}

/* Plot bands and polar pane backgrounds */
.highcharts-plot-band, .highcharts-pane {
  fill: #000000;
  fill-opacity: 0.05;
}

.highcharts-plot-line {
  fill: none;
  stroke: #999999;
  stroke-width: 1px;
}

/* Highcharts More and modules */
.highcharts-boxplot-box {
  fill: #ffffff;
}

.highcharts-boxplot-median {
  stroke-width: 2px;
}

.highcharts-bubble-series .highcharts-point {
  fill-opacity: 0.5;
}

.highcharts-errorbar-series .highcharts-point {
  stroke: #000000;
}

.highcharts-gauge-series .highcharts-data-label-box {
  stroke: #cccccc;
  stroke-width: 1px;
}

.highcharts-gauge-series .highcharts-dial {
  fill: #000000;
  stroke-width: 0;
}

.highcharts-polygon-series .highcharts-graph {
  fill: inherit;
  stroke-width: 0;
}

.highcharts-waterfall-series .highcharts-graph {
  stroke: #333333;
  stroke-dasharray: 1, 3;
}

.highcharts-sankey-series .highcharts-point {
  stroke-width: 0;
}

.highcharts-sankey-series .highcharts-link {
  transition: fill 250ms, fill-opacity 250ms;
  fill-opacity: 0.5;
}

.highcharts-sankey-series .highcharts-point-hover.highcharts-link {
  transition: fill 50ms, fill-opacity 50ms;
  fill-opacity: 1;
}

/* Highstock */
.highcharts-navigator-mask-outside {
  fill-opacity: 0;
}

.highcharts-navigator-mask-inside {
  fill: #6685c2;
  /* navigator.maskFill option */
  fill-opacity: 0.25;
  cursor: ew-resize;
}

.highcharts-navigator-outline {
  stroke: #cccccc;
  fill: none;
}

.highcharts-navigator-handle {
  stroke: #cccccc;
  fill: #f2f2f2;
  cursor: ew-resize;
}

.highcharts-navigator-series {
  fill: #335cad;
  stroke: #335cad;
}

.highcharts-navigator-series .highcharts-graph {
  stroke-width: 1px;
}

.highcharts-navigator-series .highcharts-area {
  fill-opacity: 0.05;
}

.highcharts-navigator-xaxis .highcharts-axis-line {
  stroke-width: 0;
}

.highcharts-navigator-xaxis .highcharts-grid-line {
  stroke-width: 1px;
  stroke: #e6e6e6;
}

.highcharts-navigator-xaxis.highcharts-axis-labels {
  fill: #999999;
}

.highcharts-navigator-yaxis .highcharts-grid-line {
  stroke-width: 0;
}

.highcharts-scrollbar-thumb {
  fill: #cccccc;
  stroke: #cccccc;
  stroke-width: 1px;
}

.highcharts-scrollbar-button {
  fill: #e6e6e6;
  stroke: #cccccc;
  stroke-width: 1px;
}

.highcharts-scrollbar-arrow {
  fill: #666666;
}

.highcharts-scrollbar-rifles {
  stroke: #666666;
  stroke-width: 1px;
}

.highcharts-scrollbar-track {
  fill: #f2f2f2;
  stroke: #f2f2f2;
  stroke-width: 1px;
}

.highcharts-button {
  fill: #f7f7f7;
  stroke: #cccccc;
  cursor: default;
  stroke-width: 1px;
  transition: fill 250ms;
}

.highcharts-button text {
  fill: #333333;
}

.highcharts-button-hover {
  transition: fill 0ms;
  fill: #e6e6e6;
  stroke: #cccccc;
}

.highcharts-button-hover text {
  fill: #333333;
}

.highcharts-button-pressed {
  font-weight: bold;
  fill: #e6ebf5;
  stroke: #cccccc;
}

.highcharts-button-pressed text {
  fill: #333333;
  font-weight: bold;
}

.highcharts-button-disabled text {
  fill: #333333;
}

.highcharts-range-selector-buttons .highcharts-button {
  stroke-width: 0px;
}

.highcharts-range-label rect {
  fill: none;
}

.highcharts-range-label text {
  fill: #666666;
}

.highcharts-range-input rect {
  fill: none;
}

.highcharts-range-input text {
  fill: #333333;
}

.highcharts-range-input {
  stroke-width: 1px;
  stroke: #cccccc;
}

input.highcharts-range-selector {
  position: absolute;
  border: 0;
  width: 1px;
  /* Chrome needs a pixel to see it */
  height: 1px;
  padding: 0;
  text-align: center;
  left: -9em;
  /* #4798 */
}

.highcharts-crosshair-label text {
  fill: #ffffff;
  font-size: 1.1em;
}

.highcharts-crosshair-label .highcharts-label-box {
  fill: inherit;
}

.highcharts-candlestick-series .highcharts-point {
  stroke: #000000;
  stroke-width: 1px;
}

.highcharts-candlestick-series .highcharts-point-up {
  fill: #ffffff;
}

.highcharts-ohlc-series .highcharts-point-hover {
  stroke-width: 3px;
}

.highcharts-flags-series .highcharts-point .highcharts-label-box {
  stroke: #999999;
  fill: #ffffff;
  transition: fill 250ms;
}

.highcharts-flags-series .highcharts-point-hover .highcharts-label-box {
  stroke: #000000;
  fill: #ccd6eb;
}

.highcharts-flags-series .highcharts-point text {
  fill: #000000;
  font-size: 0.9em;
  font-weight: bold;
}

/* Highmaps */
.highcharts-map-series .highcharts-point {
  transition: fill 500ms, fill-opacity 500ms, stroke-width 250ms;
  stroke: #cccccc;
}

.highcharts-map-series .highcharts-point-hover {
  transition: fill 0ms, fill-opacity 0ms;
  fill-opacity: 0.5;
  stroke-width: 2px;
}

.highcharts-mapline-series .highcharts-point {
  fill: none;
}

.highcharts-heatmap-series .highcharts-point {
  stroke-width: 0;
}

.highcharts-map-navigation {
  font-size: 1.3em;
  font-weight: bold;
  text-align: center;
}

.highcharts-coloraxis {
  stroke-width: 0;
}

.highcharts-coloraxis-marker {
  fill: #999999;
}

.highcharts-null-point {
  fill: #f7f7f7;
}

/* 3d charts */
.highcharts-3d-frame {
  fill: transparent;
}

/* Exporting module */
.highcharts-contextbutton {
  fill: #ffffff;
  /* needed to capture hover */
  stroke: none;
  stroke-linecap: round;
}

.highcharts-contextbutton:hover {
  fill: #e6e6e6;
  stroke: #e6e6e6;
}

.highcharts-button-symbol {
  stroke: #666666;
  stroke-width: 3px;
}

.highcharts-menu {
  border: 1px solid #999999;
  background: #ffffff;
  padding: 5px 0;
  box-shadow: 3px 3px 10px #888;
}

.highcharts-menu-item {
  padding: 0.5em 1em;
  background: none;
  color: #333333;
  cursor: pointer;
  transition: background 250ms, color 250ms;
}

.highcharts-menu-item:hover {
  background: #335cad;
  color: #ffffff;
}

/* Drilldown module */
.highcharts-drilldown-point {
  cursor: pointer;
}

.highcharts-drilldown-data-label text,
text.highcharts-drilldown-data-label,
.highcharts-drilldown-axis-label {
  cursor: pointer;
  fill: #003399;
  font-weight: bold;
  text-decoration: underline;
}

/* No-data module */
.highcharts-no-data text {
  font-weight: bold;
  font-size: 12px;
  fill: #666666;
}

/* Drag-panes module */
.highcharts-axis-resizer {
  cursor: ns-resize;
  stroke: black;
  stroke-width: 2px;
}

/* Bullet type series */
.highcharts-bullet-target {
  stroke-width: 0;
}

/* Lineargauge type series */
.highcharts-lineargauge-target {
  stroke-width: 1px;
  stroke: #333333;
}

.highcharts-lineargauge-target-line {
  stroke-width: 1px;
  stroke: #333333;
}

/* Annotations module */
.highcharts-annotation-label-box {
  stroke-width: 1px;
  stroke: #000000;
  fill: #000000;
  fill-opacity: 0.75;
}

.highcharts-annotation-label text {
  fill: #e6e6e6;
}

/* ----------------------------------------------------------------------
 * Phase G (2026-05-09) — token-aware overrides.
 *
 * These rules sit at the end of the file so they win on cascade order
 * over the upstream defaults above. They route Highcharts chrome
 * (titles, axes, gridlines, ticks, tooltips, plot lines, credits)
 * through our --color-chart-* and --color-text-* tokens, defined in
 * src/assets/css/core.css.
 *
 * Inline overrides from the JS chart configs (series.color, point.color,
 * style: { color: ... }) win over these rules — Highcharts emits them
 * as inline `style="fill: …"` attributes which always take precedence
 * over class-based fills. So this block only affects chart elements
 * that don't carry an inline override: axes, gridlines, ticks,
 * tooltip box, plot-line defaults, and credits.
 *
 * Plan: _wip/2026-05-09-phase-g-styledmode-plan.md §4
 * ---------------------------------------------------------------------- */

.highcharts-title    { fill: var(--color-chart-text-strong, #333A45); }
.highcharts-subtitle { fill: var(--color-chart-text-soft,   #626873); }

.highcharts-axis-line   { stroke: var(--color-chart-axis-line, rgba(0, 0, 0, 0.16)); }
.highcharts-axis-title  { fill:   var(--color-chart-text-soft, #626873); }
.highcharts-axis-labels { fill:   var(--color-chart-text-axis, #626873); }
.highcharts-grid-line   { stroke: var(--color-chart-grid, rgba(0, 0, 0, 0.08)); }
.highcharts-tick        { stroke: var(--color-chart-tick, rgba(0, 0, 0, 0.16)); }
.highcharts-minor-grid-line { stroke: var(--color-chart-grid, rgba(0, 0, 0, 0.04)); }

.highcharts-crosshair-thin     { stroke: var(--color-chart-crosshair, rgba(0, 0, 0, 0.25)); }
.highcharts-crosshair-category { stroke: var(--color-chart-crosshair, rgba(0, 0, 0, 0.25)); }

.highcharts-credits        { fill: var(--color-chart-credits, #999999); }
.highcharts-credits:hover  { fill: var(--color-chart-text-strong, #333A45); }

.highcharts-tooltip text   { fill: var(--color-chart-tooltip-fg, #333A45); }
.highcharts-tooltip-box    {
  fill:   var(--color-chart-tooltip-bg, #ffffff);
  stroke: var(--color-chart-tooltip-border, #eeeeee);
}
.highcharts-tooltip-box .highcharts-label-box {
  fill: var(--color-chart-tooltip-bg, #ffffff);
}

/* ----------------------------------------------------------------------
 * Phase G addendum (2026-05-09) — arearange post-target zone fades.
 *
 * Highcharts v6.1.4 styledMode silently drops the inline `color:` override
 * on `arearange` zone-area paths (verified by inspecting rendered SVG —
 * every zone-area path receives the series base fill regardless of
 * zone.color). The chart configs in savings-goals.js, ilp-goals.js and
 * customer/asiaustralia/js/super-goals.js add `className:` to the
 * post-target zone, and these CSS rules then provide the fade fill via
 * our existing band-fill tokens.
 *
 * Without this block, the projection band beyond the user's target year
 * renders at the same opacity as the in-flight band — losing the visual
 * "this is beyond your goal" cue that the live build had pre-Phase F.
 * ---------------------------------------------------------------------- */

.highcharts-area.chart-zone-post-target-growth {
  fill: var(--color-chart-growth-band-fill, rgba(34, 197, 94, 0.24));
}

.highcharts-area.chart-zone-post-target-loss {
  fill: var(--color-chart-loss-band-fill, rgba(217, 45, 32, 0.26));
}

/* Brewin's brand-specific arearange uses pale brewin blue. Default value
   here matches the legacy inline `rgba(139, 187, 221, 0.8)` so brewin
   continues to render with its existing palette. Brewin can override the
   token in customer/brewin/brewin.css :root to retint without touching
   this rule. */
.highcharts-area.chart-zone-post-target-brewin {
  fill: var(--color-chart-brewin-band-fill, rgba(139, 187, 221, 0.8));
}

/* The .highcharts-color-{0..9} default-palette rules from the upstream
   vendor block were commented out earlier in this file (Phase G addendum 2,
   2026-05-10). See the long comment block where they originally lived for
   the reasoning. */
