.funnel-chart {
  background-color: var(--spruce-base-color-surface);
  border: var(--spruce-border-width-base) solid var(--spruce-base-color-border);
  border-radius: var(--spruce-border-radius-lg);
  margin: 0;
  padding: 1.5rem;
}
.funnel-chart > * {
  margin-block-end: 0;
  margin-block-start: 0;
}
.funnel-chart > * + * {
  margin-block-start: 1.5rem;
}
.funnel-chart__header {
  align-items: baseline;
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 1rem;
  justify-content: space-between;
}
.funnel-chart__title {
  color: var(--spruce-base-color-heading);
  font-family: var(--spruce-font-family-heading);
  font-size: 1rem;
  font-weight: var(--spruce-font-weight-heading);
}
.funnel-chart__period {
  color: var(--spruce-base-color-muted);
  font-size: var(--spruce-font-size-sm);
}
.funnel-chart__steps {
  list-style: none;
  padding: 0;
}
.funnel-chart__steps > * {
  margin-block-end: 0;
  margin-block-start: 0;
}
.funnel-chart__steps > * + * {
  margin-block-start: 1rem;
}
.funnel-chart__step {
  align-items: center;
  display: grid;
  gap: 0.25rem 1rem;
  grid-template-areas: "label numbers" "bar bar" "drop drop";
  grid-template-columns: minmax(0, 1fr) auto;
}
@media (min-width: 48em) {
  .funnel-chart__step {
    grid-template-areas: "label bar numbers" ". drop .";
    grid-template-columns: 10rem minmax(0, 1fr) 7.5rem;
  }
}
.funnel-chart__label {
  color: var(--spruce-base-color-heading);
  font-size: var(--spruce-font-size-sm);
  font-weight: 600;
  grid-area: label;
}
.funnel-chart__bar {
  background-color: var(--spruce-base-color-surface-muted);
  block-size: 2rem;
  border-radius: var(--spruce-border-radius-sm);
  grid-area: bar;
  position: relative;
}
.funnel-chart__bar::before {
  background-color: var(--spruce-base-color-primary);
  border-radius: inherit;
  content: "";
  inline-size: max(var(--value), 0.25rem);
  inset-block: 0;
  inset-inline-start: 50%;
  position: absolute;
  translate: -50% 0;
}
.funnel-chart__numbers {
  font-size: var(--spruce-font-size-sm);
  font-variant-numeric: tabular-nums;
  grid-area: numbers;
  text-align: end;
}
.funnel-chart__numbers strong {
  color: var(--spruce-base-color-heading);
}
.funnel-chart__numbers span {
  color: var(--spruce-base-color-muted);
}
.funnel-chart__drop {
  color: var(--spruce-alert-color-danger);
  font-size: var(--spruce-font-size-sm);
  grid-area: drop;
}

[dir=rtl] .funnel-chart__bar::before {
  translate: 50% 0;
}
