/* /demos/rust-send-sync-lab — the parts of this page that are only this page's.
 *
 * THE STEP COMPONENT IS NOT HERE. The tab strip, the caret gutters, the
 * suggested-fix diffs and the provenance list are rust-diag-steps.css, shared
 * with the three other Rust labs, and this file loads AFTER it so a rule here
 * wins.
 *
 * WHAT IS HERE is the accepted-target panel — the same problem
 * rust-borrow-lab has, and solved the same way — plus the one thing no other
 * page in the estate carries: a RACE DETECTOR REPORT with placeholders in it.
 *
 * THE PLACEHOLDERS ARE THE INTERESTING DESIGN PROBLEM. A reader who takes
 * `goroutine <id>` for something the detector printed has been told the tool is
 * vaguer than it is; the truth is the opposite, and the page explains it in
 * prose. The styling supports that prose rather than replacing it: the report
 * is set as evidence, and the legend beneath it is set as an explanation, so
 * the two do not read as one block of output.
 */

.rss__lede {
  max-width: 62rem;
}

.rss__captured,
.rss__tally,
.rss__silence,
.rss__race,
.rss__prov,
.rss__steps {
  margin: 2.5rem 0;
}

.rss__captured p,
.rss__tally p,
.rss__silence p,
.rss__race p,
.rss__prov p,
.rss__sequence {
  max-width: 62rem;
}

/* ---- the panels that carry a finding ------------------------------------- */

/* The tally, the silence panel and the race report are all FINDINGS rather than
 * preamble, and each is read out of the capture rather than asserted in copy.
 * They are set off from the page so a reader who skips them does not spend the
 * rest of it wondering why only one language has diagnostics. */
.rss__tally,
.rss__silence {
  border-left: 3px solid var(--border-color, #d0d7de);
  padding-left: 1.25rem;
}

.rss__tally-list,
.rss__silence-list,
.rss__race-list {
  font-size: 0.95rem;
}

/* ---- the accepted step --------------------------------------------------- */

/* THE ACCENT IS SUCCESS-COLORED AND THE REFUSALS ARE NOT. The shared component
 * draws a primary caret in the danger color, so two of the three steps carry
 * red; a third panel with no accent at all would read as a step whose
 * diagnostic failed to arrive rather than as one that never had a diagnostic to
 * arrive. */
.rss__accepted {
  border-left: 3px solid var(--success-color, #1a7f37);
  padding-left: 1rem;
  margin: 1.25rem 0;
}

.rss__accepted-head {
  max-width: 62rem;
}

.rss__accepted-source {
  border-style: solid;
}

/* ---- the race report ----------------------------------------------------- */

/* IT IS THE ONE BLOCK ON THIS PAGE THAT IS NOT VERBATIM, and it is accented
 * differently from the diagnostics above it for exactly that reason. Every
 * source block on every sibling page is bytes a tool produced; this one has had
 * four kinds of token replaced, the page says so directly underneath, and a
 * block styled identically to the untouched ones would be quietly claiming
 * otherwise. */
.rss__race-report {
  border-left: 4px solid var(--warning-color, #9a6700);
  font-size: 0.85rem;
}

/* The legend for the placeholders. It sits under the report and is set as an
 * explanation rather than as more output: the report is monospace evidence, and
 * this is prose about it. */
.rss__placeholders {
  font-size: 0.95rem;
  margin-bottom: 1.5rem;
}

.rss__placeholders dt {
  font-family: var(--mono, ui-monospace, SFMono-Regular, Menlo, monospace);
  font-weight: 400;
}
