@keyframes opaque {
  0% {
    opacity: 0
  }

  to {
    opacity: 1
  }
}

@keyframes resizeanim {

  0%,
  to {
    opacity: 0
  }
}

.apexcharts-canvas {
  position: relative;
  direction: ltr !important;
  user-select: none;
  /* Focus indicator colour. Themes override below. */
  --apexcharts-focus-color: #008FFB;
}

/* Dark theme & high-contrast: brighter focus colour for sufficient contrast. */
.apexcharts-canvas .apexcharts-theme-dark,
.apexcharts-theme-dark.apexcharts-canvas {
  --apexcharts-focus-color: #FFD500;
}
.apexcharts-canvas.apexcharts-high-contrast,
.apexcharts-high-contrast.apexcharts-canvas {
  --apexcharts-focus-color: #FFFF00;
}

/* Visually-hidden aria-live status region (WCAG 4.1.3 Status Messages). */
.apexcharts-sr-status {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Respect OS-level reduced-motion preference (WCAG 2.3.3). */
@media (prefers-reduced-motion: reduce) {
  .apexcharts-canvas *,
  .apexcharts-canvas *::before,
  .apexcharts-canvas *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

.apexcharts-canvas ::-webkit-scrollbar {
  -webkit-appearance: none;
  width: 6px
}

.apexcharts-canvas ::-webkit-scrollbar-thumb {
  border-radius: 4px;
  background-color: rgba(0, 0, 0, .5);
  box-shadow: 0 0 1px rgba(255, 255, 255, .5);
  -webkit-box-shadow: 0 0 1px rgba(255, 255, 255, .5)
}

.apexcharts-inner {
  position: relative
}

.apexcharts-text tspan {
  font-family: inherit
}

rect.legend-mouseover-inactive,
.legend-mouseover-inactive rect,
.legend-mouseover-inactive path,
.legend-mouseover-inactive circle,
.legend-mouseover-inactive line,
.legend-mouseover-inactive text.apexcharts-yaxis-title-text,
.legend-mouseover-inactive text.apexcharts-yaxis-label {
  transition: .15s ease all;
  opacity: .2
}

/* Linked Views (#4): per-mark crossfilter dim. Applied to individual data
   marks (not whole series) whose x is outside the brushed range. Opacity is
   overridable per chart via the --apx-cf-dim custom property. */
.apexcharts-crossfilter-dimmed {
  transition: opacity .25s ease;
  opacity: var(--apx-cf-dim, .2)
}

/* Linked Views (#4): default styling for the built-in crossfilter data table
   (cf.dataTable). Deliberately light so host styles can override. */
.apexcharts-cf-table {
  border-collapse: collapse;
  width: 100%;
  font-size: 13px;
}
.apexcharts-cf-table caption {
  caption-side: bottom;
  text-align: right;
  padding: 6px 2px;
  font-size: 12px;
  opacity: .7
}
.apexcharts-cf-table th,
.apexcharts-cf-table td {
  padding: 6px 10px;
  text-align: left;
  border-bottom: 1px solid rgba(0, 0, 0, .08)
}
.apexcharts-cf-table th {
  font-weight: 600;
  border-bottom-width: 2px
}
.apexcharts-cf-table tbody tr:hover {
  background: rgba(99, 102, 241, .06)
}

/* Measure ruler (#18): measure / delta ruler.
   Theme via these classes or the --apx-measure-* custom properties below
   (config `chart.measure.colors` overrides both). The ruler group also carries
   a direction class: apexcharts-measure-up | -down | -flat.
   Element classes:
     .apexcharts-measure-band     shaded span band
     .apexcharts-measure-vline    vertical guide lines
     .apexcharts-measure-line     free-mode diagonal line
     .apexcharts-measure-label-bg readout box     .apexcharts-measure-label text
   Colors are applied as SVG presentation attributes, so any rule you write on
   these classes overrides them. */
.apexcharts-canvas {
  --apx-measure-up: #16a34a;
  --apx-measure-down: #dc2626;
  --apx-measure-neutral: #64748b;
  --apx-measure-guide: #94a3b8;
}
.apexcharts-measure-capture {
  cursor: crosshair;
}

/* Radial Actions (#chrome): right-click context menu. Theme via these classes
   or the --apx-menu-* custom properties. */
.apexcharts-canvas {
  --apx-menu-bg: #ffffff;
  --apx-menu-fg: #1e293b;
  --apx-menu-border: #e2e8f0;
  --apx-menu-hover: #f1f5f9;
  --apx-menu-shadow: rgba(15, 23, 42, 0.18);
}
.apexcharts-context-menu {
  min-width: 168px;
  padding: 4px;
  border-radius: 8px;
  background: var(--apx-menu-bg);
  border: 1px solid var(--apx-menu-border);
  box-shadow: 0 6px 22px var(--apx-menu-shadow);
  font-family: Helvetica, Arial, sans-serif;
  font-size: 13px;
  z-index: 20;
  user-select: none;
}
.apexcharts-context-menu-item {
  display: block;
  width: 100%;
  box-sizing: border-box;
  text-align: left;
  padding: 7px 12px;
  border: 0;
  border-radius: 5px;
  background: transparent;
  color: var(--apx-menu-fg);
  font: inherit;
  cursor: pointer;
}
.apexcharts-context-menu-item:hover,
.apexcharts-context-menu-item--active {
  background: var(--apx-menu-hover);
}
.apexcharts-context-menu-item:focus {
  outline: none;
}

/* Ink Layer (#7): the floating note editor card, opened by clicking an
   ink-managed annotation. Theme via these classes or the --apx-ink-* vars. */
.apexcharts-canvas {
  --apx-ink-card-bg: #ffffff;
  --apx-ink-card-fg: #1e293b;
  --apx-ink-card-border: #e2e8f0;
  --apx-ink-card-hover: #f1f5f9;
  --apx-ink-card-accent: #6366f1;
  --apx-ink-card-shadow: rgba(15, 23, 42, 0.18);
}
.apexcharts-ink-card {
  position: absolute;
  z-index: 25;
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 8px;
  border-radius: 8px;
  background: var(--apx-ink-card-bg);
  border: 1px solid var(--apx-ink-card-border);
  box-shadow: 0 6px 22px var(--apx-ink-card-shadow);
  font-family: Helvetica, Arial, sans-serif;
  font-size: 12px;
  color: var(--apx-ink-card-fg);
  user-select: none;
}
.apexcharts-ink-card-row {
  display: flex;
  align-items: center;
  gap: 4px;
}
.apexcharts-ink-card input.apexcharts-ink-editor {
  flex: 1 1 auto;
  width: 150px;
  min-width: 0;
  box-sizing: border-box;
  padding: 4px 6px;
  font: inherit;
  color: inherit;
  background: transparent;
  border: 1px solid var(--apx-ink-card-border);
  border-radius: 5px;
}
.apexcharts-ink-card input.apexcharts-ink-editor:focus {
  outline: none;
  border-color: var(--apx-ink-card-accent);
}
.apexcharts-ink-btn {
  flex: 0 0 auto;
  width: 24px;
  height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 0;
  border-radius: 5px;
  background: transparent;
  color: inherit;
  font: inherit;
  font-size: 12px;
  line-height: 1;
  cursor: pointer;
}
.apexcharts-ink-btn:hover,
.apexcharts-ink-btn--active {
  background: var(--apx-ink-card-hover);
}
.apexcharts-ink-btn:focus-visible,
.apexcharts-ink-swatch:focus-visible {
  outline: 2px solid var(--apx-ink-card-accent);
  outline-offset: 1px;
}
.apexcharts-ink-btn--bold {
  font-weight: 700;
}
.apexcharts-ink-btn--delete:hover {
  color: #dc2626;
}
.apexcharts-ink-swatch {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  padding: 0;
  border: 1px solid rgba(100, 116, 139, 0.45);
  border-radius: 50%;
  cursor: pointer;
}
.apexcharts-ink-swatch--active {
  box-shadow:
    0 0 0 2px var(--apx-ink-card-bg),
    0 0 0 4px var(--apx-ink-card-accent);
}
.apexcharts-ink-sep {
  flex: 0 0 auto;
  width: 1px;
  height: 16px;
  margin: 0 2px;
  background: var(--apx-ink-card-border);
}
.apexcharts-ink-cardlabel {
  flex: 0 0 auto;
  font-size: 10px;
  letter-spacing: 0.4px;
  text-transform: uppercase;
  opacity: 0.65;
  margin-right: 2px;
}
.apexcharts-ink-marker-size {
  flex: 0 0 auto;
  min-width: 16px;
  text-align: center;
  font-variant-numeric: tabular-nums;
}

.apexcharts-legend-text {
  padding-left: 15px;
  margin-left: -15px;
}

.apexcharts-legend-series[role="button"]:focus {
  outline: 2px solid var(--apexcharts-focus-color, #008FFB);
  outline-offset: 2px;
}

.apexcharts-legend-series[role="button"]:focus:not(:focus-visible) {
  outline: none;
}

.apexcharts-legend-series[role="button"]:focus-visible {
  outline: 2px solid var(--apexcharts-focus-color, #008FFB);
  outline-offset: 2px;
}

.apexcharts-series-collapsed {
  opacity: 0
}

.apexcharts-canvas svg:focus:not(:focus-visible) {
  outline: none;
}

/* Keyboard navigation focus indicator on SVG data elements.
   SVG elements don't support CSS outline, so we use stroke. */
.apexcharts-bar-area.apexcharts-keyboard-focused,
.apexcharts-candlestick-area.apexcharts-keyboard-focused,
.apexcharts-boxPlot-area.apexcharts-keyboard-focused,
.apexcharts-rangebar-area.apexcharts-keyboard-focused,
.apexcharts-pie-area.apexcharts-keyboard-focused,
.apexcharts-heatmap-rect.apexcharts-keyboard-focused,
.apexcharts-treemap-rect.apexcharts-keyboard-focused {
  stroke: var(--apexcharts-focus-color, #008FFB);
  stroke-width: 2;
  stroke-opacity: 1;
}

.apexcharts-tooltip {
  --apx-tt-bg: #ffffff;
  /* Shared by the body and the arrow's two outward facets, so the
   * hairline reads as one continuous outline around the whole shape.
   * Keep it strong enough to survive on its own: the shadow below is
   * elevation, not edge definition. */
  --apx-tt-border: rgba(15, 23, 42, 0.12);
  /* Elevation, in three layers: a tight contact shadow that anchors the
   * bottom edge, a directional key shadow for the lift, and a wide
   * ambient one that grounds the whole box. Each is weaker and more
   * diffuse than the last.
   *
   * A tooltip is unusual in that it floats over *data*, so reach costs
   * more than it does on a page: every pixel the shadow travels tints a
   * bar or a line the reader is trying to compare. These numbers are
   * tuned to keep the near-edge contrast that reads as elevation while
   * dropping the long low haze that only muddies the plot.
   *
   * Note there is deliberately no `0 0 0 1px` ring layer. That used to
   * stand in for edge definition back when --apx-tt-border was barely
   * visible; now that the border is a real hairline (and the arrow
   * shares it) a ring only double-draws the outline, and being spread
   * rather than offset it leaked ink upward too, flattening the lift.
   *
   * `--apx-tt-shadow-dir` flips the whole stack's Y in one place — see
   * the `[data-placement="bottom"]` rule further down. */
  --apx-tt-shadow-dir: 1;
  --apx-tt-shadow: 0 calc(var(--apx-tt-shadow-dir) * 1px) 2px rgba(15, 23, 42, 0.06), 0 calc(var(--apx-tt-shadow-dir) * 4px) 8px -2px rgba(15, 23, 42, 0.10), 0 calc(var(--apx-tt-shadow-dir) * 12px) 20px -8px rgba(15, 23, 42, 0.14);
  --apx-tt-arrow-bg: var(--apx-tt-bg);
  --apx-tt-color: #0f172a;
  --apx-tt-color-muted: rgba(15, 23, 42, 0.55);
  border-radius: 8px;
  background: var(--apx-tt-bg);
  border: 1px solid var(--apx-tt-border);
  box-shadow: var(--apx-tt-shadow);
  color: var(--apx-tt-color);
  cursor: default;
  font-size: 13px;
  left: 0;
  top: 0;
  opacity: 0;
  pointer-events: none;
  position: absolute;
  display: flex;
  flex-direction: column;
  padding: 2px 0;
  white-space: nowrap;
  z-index: 12;
  transition: opacity .12s ease
}

/* While the tooltip is visible, smoothly animate position changes
 * between data points. Kept short (160 ms) and ease-out so it stays
 * responsive — too long would feel laggy when sweeping across many
 * points fast. The position transition is only attached after the
 * first paint (Position.applyTooltipPosition flips `data-positioned`
 * once the tooltip has been placed) so the *first* show doesn't slide
 * the tooltip in from the previously-stale (0,0) coordinates. */
.apexcharts-tooltip.apexcharts-active {
  opacity: 1;
  transition: opacity .12s ease
}
.apexcharts-tooltip.apexcharts-active[data-positioned="true"] {
  transition: opacity .12s ease, left .16s ease-out, top .16s ease-out
}

.apexcharts-tooltip.apexcharts-theme-light {
  /* defaults already set above; class kept for backward-compat selectors */
}

.apexcharts-tooltip.apexcharts-theme-dark {
  --apx-tt-bg: #1c1c1f;
  --apx-tt-border: rgba(255, 255, 255, 0.16);
  /* Dark needs more alpha than light to register at all, but not as much
   * as it used to: the light rim above now carries the edge, so the
   * shadow is free to be pure elevation instead of doubling as an
   * outline. Same geometry as light, heavier ink. */
  --apx-tt-shadow: 0 calc(var(--apx-tt-shadow-dir) * 1px) 2px rgba(0, 0, 0, 0.24), 0 calc(var(--apx-tt-shadow-dir) * 4px) 8px -2px rgba(0, 0, 0, 0.30), 0 calc(var(--apx-tt-shadow-dir) * 12px) 20px -8px rgba(0, 0, 0, 0.38);
  --apx-tt-color: #f3f4f6;
  --apx-tt-color-muted: rgba(243, 244, 246, 0.55);
}

.apexcharts-tooltip * {
  font-family: inherit
}

/* Point-annotation hover tooltip (apexcharts/apexcharts.js#2424). Reuses the
 * glass body/border/shadow from `.apexcharts-tooltip` but holds free-form
 * content, so it needs its own padding, wrapping and a sane max width. */
.apexcharts-tooltip.apexcharts-annotation-tooltip {
  padding: 6px 10px;
  max-width: 240px;
  white-space: normal;
  line-height: 1.4;
  pointer-events: none;
  z-index: 13
}

.apexcharts-tooltip-title {
  padding: 8px 12px 4px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.01em;
  color: var(--apx-tt-color-muted);
  background: transparent;
  border-bottom: none;
  margin-bottom: 0
}

.apexcharts-tooltip.apexcharts-theme-light .apexcharts-tooltip-title,
.apexcharts-tooltip.apexcharts-theme-dark .apexcharts-tooltip-title {
  background: transparent;
  border-bottom: none
}

/* `fillSeriesColor`: each series-group already paints itself with the
 * series colour. Drop the glass body entirely (transparent bg, no
 * border, no backdrop-filter, no padding) and clip the coloured
 * series-group(s) to the tooltip's rounded corners so they fill the
 * shell edge-to-edge. Text inside the coloured group is forced to
 * white for contrast. */
.apexcharts-tooltip.apexcharts-tooltip-fill-series {
  background: transparent;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  border: none;
  padding: 0;
  overflow: hidden;
  color: #fff
}

.apexcharts-tooltip.apexcharts-tooltip-fill-series .apexcharts-tooltip-title {
  background: rgba(0, 0, 0, 0.22);
  color: #fff;
  opacity: 1;
  padding: 6px 12px
}

.apexcharts-tooltip.apexcharts-tooltip-fill-series .apexcharts-tooltip-series-group {
  color: #fff
}

/* Arrow connector — a 45°-rotated square straddling the body's edge, so
 * the body's 1px border runs continuously out across the arrow and back.
 * The two facets that face away from the tooltip carry the border; the
 * two that face into it carry none, and the square's opaque fill covers
 * the segment of the body's own border it sits on, hiding the seam.
 *
 * This is why it's a rotated square and not a triangle: `clip-path`
 * erases `border` and `box-shadow` along with everything outside the
 * polygon, which left `filter: drop-shadow` as the only way to suggest
 * an edge — and a drop-shadow can only ever blur one, never draw a
 * hairline. Nothing here needs a filter.
 *
 * Geometry: a square of side S rotated 45° reaches S/√2 from its centre
 * to each corner, so S = 10px gives the ~7px tip overhang that
 * ARROW_TIP_OVERHANG assumes (tooltip/constants.js) over a ~14px base.
 * The offsets park the square's *centre* 1px outside the padding box
 * (-6px = -1px border - 10px/2), i.e. exactly on the body's border line,
 * so the two borders meet end to end instead of overlapping or gapping.
 * `box-sizing` must be border-box or the bordered sides would grow the
 * square asymmetrically and knock its centre off that line. */
.apexcharts-tooltip-arrow {
  position: absolute;
  box-sizing: border-box;
  width: 10px;
  height: 10px;
  background: var(--apx-tt-arrow-bg);
  transform: rotate(45deg);
  pointer-events: none;
  top: calc(var(--apx-tt-arrow-y, 50%) - 5px)
}

/* Which two sides face outward depends on the placement. Under
 * `rotate(45deg)` the square's bottom-left corner swings to the left,
 * top-right to the right, top-left to the top and bottom-right to the
 * bottom — so the pair of borders below is always the two sharing the
 * corner that ends up as the tip. */
.apexcharts-tooltip[data-placement="right"] .apexcharts-tooltip-arrow {
  left: -6px;
  border-left: 1px solid var(--apx-tt-border);
  border-bottom: 1px solid var(--apx-tt-border)
}

.apexcharts-tooltip[data-placement="left"] .apexcharts-tooltip-arrow {
  right: -6px;
  border-top: 1px solid var(--apx-tt-border);
  border-right: 1px solid var(--apx-tt-border)
}

/* Vertical arrow variants: tooltip is above/below the data point and the
 * arrow points down/up. The base rule above uses `--apx-tt-arrow-y` for
 * left/right placement; for top/bottom we centre on `--apx-tt-arrow-x`
 * instead (set by applyTooltipPosition). */
.apexcharts-tooltip[data-placement="top"] .apexcharts-tooltip-arrow,
.apexcharts-tooltip[data-placement="bottom"] .apexcharts-tooltip-arrow {
  top: auto;
  left: calc(var(--apx-tt-arrow-x, 50%) - 5px)
}

.apexcharts-tooltip[data-placement="top"] .apexcharts-tooltip-arrow {
  bottom: -6px;
  border-right: 1px solid var(--apx-tt-border);
  border-bottom: 1px solid var(--apx-tt-border)
}

.apexcharts-tooltip[data-placement="bottom"] .apexcharts-tooltip-arrow {
  top: -6px;
  border-top: 1px solid var(--apx-tt-border);
  border-left: 1px solid var(--apx-tt-border)
}

/* When the tooltip is flipped below the data point, the default
 * downward-biased shadow leaves its top edge undefined. Negating the
 * direction casts the whole elevation upward instead, so the shadow
 * falls between the tooltip and the mark above it. One multiplier flips
 * all three layers together; the arrow needs no counterpart, since its
 * border doesn't depend on light direction. */
.apexcharts-tooltip[data-placement="bottom"] {
  --apx-tt-shadow-dir: -1
}

.apexcharts-tooltip-text-goals-value,
.apexcharts-tooltip-text-y-value,
.apexcharts-tooltip-text-z-value {
  display: inline-block;
  margin-left: 5px;
  font-weight: 600
}

.apexcharts-tooltip-text-goals-label:empty,
.apexcharts-tooltip-text-goals-value:empty,
.apexcharts-tooltip-text-y-label:empty,
.apexcharts-tooltip-text-y-value:empty,
.apexcharts-tooltip-text-z-value:empty,
.apexcharts-tooltip-title:empty {
  display: none
}

.apexcharts-tooltip-text-goals-label,
.apexcharts-tooltip-text-goals-value {
  padding: 6px 0 5px
}

.apexcharts-tooltip-goals-group,
.apexcharts-tooltip-text-goals-label,
.apexcharts-tooltip-text-goals-value {
  display: flex
}

.apexcharts-tooltip-text-goals-label:not(:empty),
.apexcharts-tooltip-text-goals-value:not(:empty) {
  margin-top: -6px
}

.apexcharts-tooltip-marker {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
  width: 12px;
  height: 12px;
  margin-right: 6px;
  vertical-align: middle;
  color: inherit;
}

.apexcharts-tooltip-marker svg {
  width: 100%;
  height: 100%;
  display: block;
}

.apexcharts-tooltip-series-group {
  padding: 4px 12px;
  display: none;
  gap: 8px;
  text-align: left;
  justify-content: left;
  align-items: center
}

.apexcharts-tooltip-series-group.apexcharts-active .apexcharts-tooltip-marker {
  opacity: 1
}

.apexcharts-tooltip-series-group.apexcharts-active:last-child,
.apexcharts-tooltip-series-group:last-child {
  padding-bottom: 8px
}

.apexcharts-tooltip-y-group {
  padding: 6px 0 5px
}

.apexcharts-custom-tooltip,
.apexcharts-tooltip-box {
  padding: 4px 8px
}

.apexcharts-tooltip-boxPlot {
  display: flex;
  flex-direction: column-reverse
}

.apexcharts-tooltip-box>div {
  margin: 4px 0
}

.apexcharts-tooltip-box span.value {
  font-weight: 700
}

.apexcharts-tooltip-rangebar {
  padding: 5px 8px
}

.apexcharts-tooltip-rangebar .category {
  font-weight: 600;
  color: #777
}

.apexcharts-tooltip-rangebar .series-name {
  font-weight: 700;
  display: block;
  margin-bottom: 5px
}

/* X/Y axis tooltips — small popovers that label the crosshair on the
 * axes. Restyled to match the modern data-tooltip palette: solid white
 * body with a subtle border + soft drop-shadow, smaller font, rounded
 * corners. The arrows still use the CSS border-triangle technique
 * (cheap, crisp at small sizes); their colours flow from CSS variables
 * so light/dark themes only need one override per axis. */
.apexcharts-xaxistooltip,
.apexcharts-yaxistooltip {
  --apx-axt-bg: #ffffff;
  --apx-axt-border: rgba(15, 23, 42, 0.08);
  --apx-axt-color: #0f172a;
  --apx-axt-shadow: 0 4px 12px -4px rgba(15, 23, 42, 0.18), 0 1px 3px -1px rgba(15, 23, 42, 0.12);
  opacity: 0;
  pointer-events: none;
  color: var(--apx-axt-color);
  font-size: 12px;
  font-weight: 500;
  text-align: center;
  border-radius: 6px;
  position: absolute;
  z-index: 10;
  background: var(--apx-axt-bg);
  border: 1px solid var(--apx-axt-border);
  box-shadow: var(--apx-axt-shadow)
}

.apexcharts-xaxistooltip.apexcharts-theme-dark,
.apexcharts-yaxistooltip.apexcharts-theme-dark {
  --apx-axt-bg: #1c1c1f;
  --apx-axt-border: rgba(255, 255, 255, 0.1);
  --apx-axt-color: #f3f4f6;
  --apx-axt-shadow: 0 4px 12px -4px rgba(0, 0, 0, 0.55), 0 1px 3px -1px rgba(0, 0, 0, 0.45)
}

.apexcharts-xaxistooltip {
  padding: 4px 8px;
  transition: .15s ease all
}

.apexcharts-xaxistooltip:after,
.apexcharts-xaxistooltip:before {
  left: 50%;
  border: solid transparent;
  content: " ";
  height: 0;
  width: 0;
  position: absolute;
  pointer-events: none
}

/* :before paints the 1px border outline of the triangle (slightly larger
 * than :after); :after sits inside and paints the fill — leaves a 1px
 * ring of :before visible at the edges. */
.apexcharts-xaxistooltip:after {
  border-color: transparent;
  border-width: 5px;
  margin-left: -5px
}

.apexcharts-xaxistooltip:before {
  border-color: transparent;
  border-width: 6px;
  margin-left: -6px
}

.apexcharts-xaxistooltip-bottom:after,
.apexcharts-xaxistooltip-bottom:before {
  bottom: 100%
}

.apexcharts-xaxistooltip-top:after,
.apexcharts-xaxistooltip-top:before {
  top: 100%
}

.apexcharts-xaxistooltip-bottom:after {
  border-bottom-color: var(--apx-axt-bg)
}

.apexcharts-xaxistooltip-bottom:before {
  border-bottom-color: var(--apx-axt-border)
}

.apexcharts-xaxistooltip-top:after {
  border-top-color: var(--apx-axt-bg)
}

.apexcharts-xaxistooltip-top:before {
  border-top-color: var(--apx-axt-border)
}

.apexcharts-xaxistooltip.apexcharts-active {
  opacity: 1;
  transition: .15s ease all
}

.apexcharts-yaxistooltip {
  padding: 3px 8px
}

.apexcharts-yaxistooltip:after,
.apexcharts-yaxistooltip:before {
  top: 50%;
  border: solid transparent;
  content: " ";
  height: 0;
  width: 0;
  position: absolute;
  pointer-events: none
}

.apexcharts-yaxistooltip:after {
  border-color: transparent;
  border-width: 5px;
  margin-top: -5px
}

.apexcharts-yaxistooltip:before {
  border-color: transparent;
  border-width: 6px;
  margin-top: -6px
}

.apexcharts-yaxistooltip-left:after,
.apexcharts-yaxistooltip-left:before {
  left: 100%
}

.apexcharts-yaxistooltip-right:after,
.apexcharts-yaxistooltip-right:before {
  right: 100%
}

.apexcharts-yaxistooltip-left:after {
  border-left-color: var(--apx-axt-bg)
}

.apexcharts-yaxistooltip-left:before {
  border-left-color: var(--apx-axt-border)
}

.apexcharts-yaxistooltip-right:after {
  border-right-color: var(--apx-axt-bg)
}

.apexcharts-yaxistooltip-right:before {
  border-right-color: var(--apx-axt-border)
}

.apexcharts-yaxistooltip.apexcharts-active {
  opacity: 1
}

.apexcharts-yaxistooltip-hidden {
  display: none
}

.apexcharts-xcrosshairs,
.apexcharts-ycrosshairs {
  pointer-events: none;
  opacity: 0;
  transition: .15s ease all
}

.apexcharts-xcrosshairs.apexcharts-active,
.apexcharts-ycrosshairs.apexcharts-active {
  opacity: 1;
  transition: .15s ease all
}

.apexcharts-ycrosshairs-hidden {
  opacity: 0
}

.apexcharts-selection-rect {
  cursor: move
}

.svg_select_shape {
  stroke-width: 1;
  stroke-dasharray: 10 10;
  stroke: black;
  stroke-opacity: 0.1;
  pointer-events: none;
  fill: none;
}

.svg_select_handle {
  stroke-width: 3;
  stroke: black;
  fill: none;
}

.svg_select_handle_r {
  cursor: e-resize;
}

.svg_select_handle_l {
  cursor: w-resize;
}

.apexcharts-svg.apexcharts-zoomable.hovering-zoom {
  cursor: crosshair
}

.apexcharts-svg.apexcharts-zoomable.hovering-pan {
  cursor: move
}

.apexcharts-menu-icon,
.apexcharts-measure-icon,
.apexcharts-pan-icon,
.apexcharts-reset-icon,
.apexcharts-selection-icon,
.apexcharts-toolbar-custom-icon,
.apexcharts-zoom-icon,
.apexcharts-zoomin-icon,
.apexcharts-zoomout-icon {
  cursor: pointer;
  /* WCAG 2.5.8 Target Size (Minimum): 24×24 CSS px hit target. */
  width: 26px;
  height: 24px;
  line-height: 24px;
  color: #6e8192;
  text-align: center;
  /* Reset native <button> chrome — these are styled via SVG icons. */
  padding: 0;
  margin: 0;
  background: transparent;
  border: 0;
  border-radius: 5px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background-color .12s ease, color .12s ease;
}

.apexcharts-menu-icon svg,
.apexcharts-measure-icon svg,
.apexcharts-pan-icon svg,
.apexcharts-reset-icon svg,
.apexcharts-selection-icon svg,
.apexcharts-zoom-icon svg,
.apexcharts-zoomin-icon svg,
.apexcharts-zoomout-icon svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round
}

.apexcharts-theme-dark .apexcharts-menu-icon,
.apexcharts-theme-dark .apexcharts-measure-icon,
.apexcharts-theme-dark .apexcharts-pan-icon,
.apexcharts-theme-dark .apexcharts-reset-icon,
.apexcharts-theme-dark .apexcharts-selection-icon,
.apexcharts-theme-dark .apexcharts-toolbar-custom-icon,
.apexcharts-theme-dark .apexcharts-zoom-icon,
.apexcharts-theme-dark .apexcharts-zoomin-icon,
.apexcharts-theme-dark .apexcharts-zoomout-icon {
  color: #d4d6dc
}

.apexcharts-canvas .apexcharts-measure-icon.apexcharts-selected,
.apexcharts-canvas .apexcharts-pan-icon.apexcharts-selected,
.apexcharts-canvas .apexcharts-reset-zoom-icon.apexcharts-selected,
.apexcharts-canvas .apexcharts-selection-icon.apexcharts-selected,
.apexcharts-canvas .apexcharts-zoom-icon.apexcharts-selected {
  background: rgba(0, 143, 251, 0.12);
  color: #008ffb
}

.apexcharts-theme-light .apexcharts-menu-icon:hover,
.apexcharts-theme-light .apexcharts-measure-icon:not(.apexcharts-selected):hover,
.apexcharts-theme-light .apexcharts-pan-icon:not(.apexcharts-selected):hover,
.apexcharts-theme-light .apexcharts-reset-icon:hover,
.apexcharts-theme-light .apexcharts-selection-icon:not(.apexcharts-selected):hover,
.apexcharts-theme-light .apexcharts-zoom-icon:not(.apexcharts-selected):hover,
.apexcharts-theme-light .apexcharts-zoomin-icon:hover,
.apexcharts-theme-light .apexcharts-zoomout-icon:hover {
  background: rgba(15, 23, 42, 0.06);
  color: #1f2937
}

.apexcharts-theme-dark .apexcharts-menu-icon:hover,
.apexcharts-theme-dark .apexcharts-measure-icon:not(.apexcharts-selected):hover,
.apexcharts-theme-dark .apexcharts-pan-icon:not(.apexcharts-selected):hover,
.apexcharts-theme-dark .apexcharts-reset-icon:hover,
.apexcharts-theme-dark .apexcharts-selection-icon:not(.apexcharts-selected):hover,
.apexcharts-theme-dark .apexcharts-zoom-icon:not(.apexcharts-selected):hover,
.apexcharts-theme-dark .apexcharts-zoomin-icon:hover,
.apexcharts-theme-dark .apexcharts-zoomout-icon:hover {
  background: rgba(255, 255, 255, 0.08);
  color: #fff
}

.apexcharts-menu-icon,
.apexcharts-selection-icon {
  position: relative
}

.apexcharts-toolbar {
  position: absolute;
  z-index: 11;
  display: inline-flex;
  align-items: center;
  gap: 1px;
  padding: 3px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.85);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.apexcharts-theme-dark .apexcharts-toolbar {
  background: rgba(28, 28, 31, 0.82);
}

.apexcharts-menu {
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  position: absolute;
  top: calc(100% + 4px);
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 8px;
  padding: 4px;
  right: 0;
  opacity: 0;
  min-width: 120px;
  transition: opacity .15s ease, transform .15s ease;
  transform: translateY(-2px);
  pointer-events: none;
  box-shadow: 0 4px 16px -4px rgba(15, 23, 42, 0.12), 0 2px 4px -1px rgba(15, 23, 42, 0.06)
}

.apexcharts-menu.apexcharts-menu-open {
  opacity: 1;
  transform: translateY(0);
  pointer-events: all
}

.apexcharts-menu-item {
  padding: 6px 9px;
  font-size: 12px;
  border-radius: 5px;
  cursor: pointer
}

.apexcharts-theme-light .apexcharts-menu-item:hover {
  background: rgba(15, 23, 42, 0.06)
}

.apexcharts-theme-dark .apexcharts-menu {
  background: rgba(28, 28, 31, 0.92);
  border-color: rgba(255, 255, 255, 0.08);
  color: #f3f4f6;
  box-shadow: 0 4px 16px -4px rgba(0, 0, 0, 0.5), 0 2px 4px -1px rgba(0, 0, 0, 0.4)
}

.apexcharts-theme-dark .apexcharts-menu-item:hover {
  background: rgba(255, 255, 255, 0.08)
}

@media screen and (min-width:768px) {
  .apexcharts-canvas:hover .apexcharts-toolbar {
    opacity: 1
  }
}

/* Toolbar keyboard accessibility: show toolbar when any button inside it is focused */
.apexcharts-toolbar:focus-within {
  opacity: 1
}

/* Focus indicator for toolbar icon buttons */
.apexcharts-menu-icon:focus-visible,
.apexcharts-measure-icon:focus-visible,
.apexcharts-pan-icon:focus-visible,
.apexcharts-reset-icon:focus-visible,
.apexcharts-selection-icon:focus-visible,
.apexcharts-toolbar-custom-icon:focus-visible,
.apexcharts-zoom-icon:focus-visible,
.apexcharts-zoomin-icon:focus-visible,
.apexcharts-zoomout-icon:focus-visible {
  outline: 2px solid var(--apexcharts-focus-color, #008FFB);
  outline-offset: 1px;
  border-radius: 5px
}

/* Focus indicator for hamburger menu items */
.apexcharts-menu-item:focus-visible {
  outline: 2px solid var(--apexcharts-focus-color, #008FFB);
  outline-offset: -2px;
  background: #eee
}

.apexcharts-canvas .apexcharts-element-hidden,
.apexcharts-datalabel.apexcharts-element-hidden,
.apexcharts-hide .apexcharts-series-points {
  opacity: 0;
}

.apexcharts-hidden-element-shown {
  opacity: 1;
  transition: 0.25s ease all;
}

.apexcharts-datalabel,
.apexcharts-datalabel-label,
.apexcharts-datalabel-value,
.apexcharts-datalabels,
.apexcharts-pie-label,
.apexcharts-pie-name-label,
.apexcharts-pie-name-label-group,
.apexcharts-pie-label-connector,
.apexcharts-unit-outer-label,
.apexcharts-unit-outer-label-group,
.apexcharts-unit-label-connector {
  cursor: default;
  pointer-events: none
}

.apexcharts-pie-label-connector,
.apexcharts-unit-label-connector {
  fill: none
}

.apexcharts-pie-label-delay,
.apexcharts-unit-label-delay {
  opacity: 0;
  animation-name: opaque;
  animation-duration: .3s;
  animation-fill-mode: forwards;
  animation-timing-function: ease
}

/* Slower than the pie's, on purpose: these come in while the dots are still
   easing into place, so a longer fade reads as arriving WITH the crowd. */
.apexcharts-unit-label-delay {
  animation-duration: .5s
}

.apexcharts-radialbar-label {
  cursor: pointer;
}

.apexcharts-annotation-rect,
.apexcharts-area-series .apexcharts-area,
.apexcharts-gridline,
.apexcharts-line,
.apexcharts-point-annotation-label,
.apexcharts-radar-series path:not(.apexcharts-marker),
.apexcharts-radar-series polygon,
.apexcharts-toolbar svg,
.apexcharts-tooltip .apexcharts-marker,
.apexcharts-xaxis-annotation-label,
.apexcharts-yaxis-annotation-label,
.apexcharts-zoom-rect,
.no-pointer-events {
  pointer-events: none
}

.apexcharts-tooltip-active .apexcharts-marker {
  transition: .15s ease all
}

.apexcharts-radar-series .apexcharts-yaxis {
  pointer-events: none;
}

.resize-triggers {
  animation: 1ms resizeanim;
  visibility: hidden;
  opacity: 0;
  height: 100%;
  width: 100%;
  overflow: hidden
}

.contract-trigger:before,
.resize-triggers,
.resize-triggers>div {
  content: " ";
  display: block;
  position: absolute;
  top: 0;
  left: 0
}

.resize-triggers>div {
  height: 100%;
  width: 100%;
  background: #eee;
  overflow: auto
}

.contract-trigger:before {
  overflow: hidden;
  width: 200%;
  height: 200%
}

.apexcharts-bar-goals-markers {
  pointer-events: none
}

.apexcharts-bar-shadows {
  pointer-events: none
}

.apexcharts-rangebar-goals-markers {
  pointer-events: none
}

.apexcharts-drilldown-target {
  cursor: pointer
}

.apexcharts-breadcrumb {
  position: absolute;
  z-index: 11;
  display: inline-flex;
  align-items: center;
  gap: 2px;
  font-size: 12px;
  font-family: inherit;
  padding: 2px 4px
}

.apexcharts-breadcrumb-item {
  background: transparent;
  border: none;
  padding: 2px 6px;
  border-radius: 3px;
  font: inherit;
  color: inherit;
  cursor: pointer;
  line-height: 1.2
}

.apexcharts-breadcrumb-item:hover:not(.apexcharts-breadcrumb-current) {
  background: rgba(0, 0, 0, 0.08)
}

.apexcharts-breadcrumb-arrow {
  margin-right: 4px;
  font-weight: 600;
  user-select: none
}

.apexcharts-breadcrumb-current {
  cursor: default;
  font-weight: 600;
  opacity: 0.85
}

.apexcharts-breadcrumb-separator {
  opacity: 0.5;
  user-select: none
}

.apexcharts-theme-dark .apexcharts-breadcrumb-item:hover:not(.apexcharts-breadcrumb-current) {
  background: rgba(255, 255, 255, 0.12)
}

.apexcharts-drilldown-loading {
  position: absolute;
  inset: 0;
  z-index: 12;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  font-size: 13px;
  font-family: inherit;
  color: inherit;
  background: rgba(255, 255, 255, 0.62);
  /* The chart underneath stays interactive-looking but must not take clicks
     while a level is resolving, or a second drill can start mid-fetch. */
  cursor: progress
}

.apexcharts-drilldown-loading-spinner {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  border: 2.5px solid rgba(0, 0, 0, 0.16);
  border-top-color: rgba(0, 0, 0, 0.55);
  animation: apexcharts-drilldown-spin 0.7s linear infinite
}

.apexcharts-drilldown-loading-text {
  opacity: 0.8
}

.apexcharts-theme-dark .apexcharts-drilldown-loading {
  background: rgba(30, 30, 30, 0.62)
}

.apexcharts-theme-dark .apexcharts-drilldown-loading-spinner {
  border-color: rgba(255, 255, 255, 0.22);
  border-top-color: rgba(255, 255, 255, 0.7)
}

@keyframes apexcharts-drilldown-spin {
  to {
    transform: rotate(360deg)
  }
}

@media (prefers-reduced-motion: reduce) {
  .apexcharts-drilldown-loading-spinner {
    animation: apexcharts-drilldown-pulse 1.4s ease-in-out infinite
  }

  @keyframes apexcharts-drilldown-pulse {
    0%, 100% {
      opacity: 0.35
    }

    50% {
      opacity: 1
    }
  }
}

.apexcharts-disable-transitions * {
  transition: none !important;
}