/* The road to trading on StemLot (decided 2026-11-02, onboarding-path.js): the
   stages in a row, each with its mark, name and where it stands. An app may set
   --path-ink, --path-line, --path-muted, --path-problem and --path-surface. */
.onboarding-path {
  --path-ink: #1c1c1c;
  --path-line: #d5d6d0;
  --path-muted: #6b6d66;
  --path-problem: #a3281e;
  --path-surface: #fff;
  container: onboarding-path / inline-size;
  /* A size container has no width of its own: it takes its parent's, even where
     the parent shrinks to fit its content. */
  box-sizing: border-box;
  inline-size: 100%;
  min-width: 0;
}
.path-stages { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); margin: 0; padding: 0; list-style: none; }
.path-stage { position: relative; display: grid; align-content: start; gap: 10px; min-width: 0; padding-right: 14px; }
.path-stage:last-child { padding-right: 0; }
/* The way to the next stage: drawn once the stage is done. */
.path-stage:not(:last-child)::after { content: ''; position: absolute; top: 14px; left: 40px; right: 10px; height: 2px; border-radius: 2px; background: var(--path-line); }
.path-stage.is-done:not(:last-child)::after { background: var(--path-ink); }
.path-mark { box-sizing: border-box; display: grid; place-items: center; width: 30px; height: 30px; border: 2px solid var(--path-line); border-radius: 50%; background: var(--path-surface); color: var(--path-muted); font-size: 13px; font-weight: 700; line-height: 1; font-variant-numeric: tabular-nums; }
.path-mark svg { display: block; }
.path-stage.is-done .path-mark { border-color: var(--path-ink); background: var(--path-ink); color: #fff; }
.path-stage.is-current .path-mark { border-color: var(--path-ink); color: var(--path-ink); box-shadow: 0 0 0 4px color-mix(in srgb, var(--path-ink) 9%, transparent); }
.path-stage.is-problem .path-mark { border-color: var(--path-problem); background: var(--path-problem); color: #fff; box-shadow: 0 0 0 4px color-mix(in srgb, var(--path-problem) 12%, transparent); }
.path-stage.is-skipped .path-mark { border-style: dashed; }
.path-text { display: grid; gap: 3px; min-width: 0; }
.path-label { color: var(--path-ink); font-size: 14px; font-weight: 650; line-height: 1.3; overflow-wrap: anywhere; text-wrap: balance; }
.path-stage:is(.is-upcoming, .is-skipped) .path-label { color: var(--path-muted); font-weight: 600; }
.path-status { color: var(--path-muted); font-size: 13px; line-height: 1.4; overflow-wrap: anywhere; text-wrap: balance; }
.path-stage.is-current .path-status { color: var(--path-ink); font-weight: 550; }
.path-stage.is-problem .path-status { color: var(--path-problem); font-weight: 600; }
.path-spoken { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.path-now { display: none; }

/* Narrow: the marks in a row, and the stage the page is about named under them. */
@container onboarding-path (max-width: 540px) {
  /* The last mark at the far end, the ways between them evenly long. */
  .path-stages { display: flex; }
  .path-stage { flex: 1 1 0; gap: 0; padding-right: 6px; }
  .path-stage:last-child { flex: 0 0 auto; }
  .path-stage:not(:last-child)::after { left: 36px; right: 4px; }
  .path-text { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
  .path-now { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 8px; margin: 12px 0 0; color: var(--path-muted); font-size: 13px; line-height: 1.4; }
  .path-now strong { color: var(--path-ink); font-size: 15px; font-weight: 650; }
  .path-now .path-now-status { flex-basis: 100%; color: var(--path-ink); }
}
