/* =========================================================================
   ParallelLab — page identity on top of kit.css.

   Accent is a grass green. With twenty-seven labs already carrying one the
   hue circle is genuinely full — the widest gap is 36° — so the choice came
   down to two bad options and one workable one. Softened magentas scored
   ΔE 12 and fell below the WCAG contrast floor on this background; a dark
   teal collided with OptiLab. This green sits ΔE2000 17.4 from its nearest
   neighbour, the highest available, at contrast 4.9.

   It is the third green in the academy and it earns the place on lightness
   and chroma rather than hue: ServoLab is pale (L 74), OptiLab is dark and
   muted (L 52, C 42), this one is dark and saturated (L 55, C 75).

   The drawings use it for the mechanism, blue for the platform and the
   tool, red for singularities, and purple for the second solution branch —
   which in this lab is a first-class object rather than a footnote.
   ========================================================================= */
:root {
  --bp-cyan: #3c9600;          /* primary accent */
  --bp-blue: #63b52e;          /* secondary */
  --bp-mark: #3c9600;
  --note-accent: #3c9600;
  --calc-col: 370px;
  --page-max: 1420px;
}

/* Three struts meeting a platform, at an opacity where it is texture. */
body {
  background-image:
    repeating-linear-gradient(60deg, rgba(60, 150, 0, 0.045) 0 1px, transparent 1px 22px),
    repeating-linear-gradient(-60deg, rgba(60, 150, 0, 0.045) 0 1px, transparent 1px 22px);
}

.hint { font-size: 0.76rem; color: var(--bp-ink-dim); line-height: 1.55; margin-top: 0.5rem; }
.hint b { color: var(--bp-cyan); }

.results-col { min-width: 0; }
.results-col svg { max-width: 100%; }

/* ------------------------------ field groups ----------------------------- */
.grp-label {
  font-family: var(--mono); font-size: 0.63rem; letter-spacing: 0.06em;
  text-transform: uppercase; color: var(--bp-ink-dim);
  margin: 0.55rem 0 0.25rem;
}
.grp-label:first-child { margin-top: 0.1rem; }
.f3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.3rem; }
.f2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.3rem; }
.f3 .mini-field label, .f2 .mini-field label { font-size: 0.63rem; }

/* ------------------------------ the verdict ------------------------------ */
/* The headline is the round-trip error, because "the two directions agree to
   1e-9" is the claim this lab rests on and a reader should see it verified
   on their own numbers rather than take it from the introduction. */
.verdict {
  display: flex; align-items: baseline; gap: 0.7rem; flex-wrap: wrap;
  border: 1px solid var(--bp-line); border-left-width: 4px; border-radius: 10px;
  padding: 0.6rem 0.8rem; margin-bottom: 0.9rem; background: var(--bp-panel);
}
.verdict.good { border-left-color: #51cf66; }
.verdict.fair { border-left-color: #ffd43b; }
.verdict.bad { border-left-color: #ff6b6b; }
.verdict .vhead { font-family: var(--mono); font-size: 0.9rem; font-weight: 700; }
.verdict.good .vhead { color: #51cf66; }
.verdict.fair .vhead { color: #ffd43b; }
.verdict.bad .vhead { color: #ff6b6b; }
.verdict .vbody { font-size: 0.78rem; color: var(--bp-ink-dim); line-height: 1.5; }

.res-sub { font-size: 0.68rem; color: var(--bp-ink-dim); margin-top: 0.1rem; }

/* The two singularity rows are the point of the lab, so they read as a pair. */
.res-table tr.sing td { background: rgba(255, 107, 107, 0.09); }

@media (max-width: 720px) {
  .f3 { grid-template-columns: repeat(2, 1fr); }
}
