/* ==========================================================================
   p-labels.css — Correctness Labels page (exp38, terminal phosphor).
   Loaded after hdr-event.css, before theme-verified/s35-craft/s35-a11y.
   Token-only colour: every value below reads a shell token. Green (--pass)
   appears exactly once on this page: the "fixed, regression pinned" tick in
   the worked example. Amber (--fail on terminal) marks authored high
   severity — caution, not decoration.
   ========================================================================== */

/* ---------- hero ---------- */
/* (old 58ch sub cap removed 2026-08-27 — outranked by the terminal fork's
   token cap; --measure-hero governs) */
.lb-asset{
  margin-top:1.1rem;font-family:var(--mono);font-size:.78rem;letter-spacing:.04em;
  color:var(--muted);
}
.lb-asset b{color:var(--ink);font-weight:500;}
.lb-asset a{color:var(--ink);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--hair-strong);}
.lb-asset a:hover{color:var(--signal);text-decoration-color:var(--signal);}
.lb-hero .fine{max-width:62ch;margin-top:1.4rem;}

/* ---------- hero · the four-column strip (P0 pass, 2026-09-04) ----------
   INPUT / OUTPUT / USE / PILOT under the hero copy: the offer in one glance,
   in the buyer's words. Chassis is .tiles (site.css §9: four columns, two
   at 1080px, one at 640px); this block only compacts the cell, turns the
   label into a mono uppercase kicker and styles the <dd> that stands in
   for .tile p. The strip sits outside .hero-copy, so it spans the wrap
   under the left-aligned tube copy. */
/* H1 line breaks (P0 pass, 2026-09-04). "SWE tasks." stays one phrase at
   every width (10ch; the phone measure holds 14). "verifier-backed" stays
   whole on the desk only (26ch measure: TURN LICENSED CODEBASES / INTO
   VERIFIER-BACKED / SWE TASKS.); on the phone the hyphen break is allowed
   rather than overflowing the column. */
.lb-hero h1 .lb-nb{white-space:nowrap;}
@media (min-width:761px){.lb-hero h1 .lb-nb-desk{white-space:nowrap;}}
.lb-strip{margin:clamp(2rem,3.4vw,2.8rem) 0 0;}
.lb-strip .tile{padding:1rem 1.15rem 1.05rem;}
.lb-strip dt{margin:0 0 .4rem;text-transform:uppercase;letter-spacing:.13em;}
.lb-strip dd{
  margin:0;font-family:var(--prose);font-size:.98rem;line-height:1.5;
  color:var(--ink);text-wrap:pretty;
}

/* ---------- 01 · the task record (P0 pass, 2026-09-04) ----------
   One task from the public sample, printed as a record: label beside
   value, the way the homepage's .cl-rec (s35-changes.css, not loaded on
   this page) prints a defect record. Same card register as .lb-claim
   below: labels mono uppercase, values prose, machine tokens in <code>.
   The FAILURE CLASS row borrows .lb-sev from section 05 so the amber
   "high" reads the same in both places. The verifier command is a real
   shell line in a <pre>; it wraps inside its own box (pre-wrap keeps it one
   line for copy) and never widens the page. */
.lb-task{
  margin:2.2rem 0 0;background:var(--card);
  border:1px solid var(--hair-strong);border-radius:var(--radius);overflow:hidden;
}
.lb-task-h{
  display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;
  gap:.35rem 1rem;padding:.8rem 1.4rem;
  background:var(--paper);border-bottom:1px solid var(--hair);
}
.lb-task-id{
  margin:0;font-family:var(--mono);font-size:.86rem;font-weight:600;
  letter-spacing:.04em;line-height:1.4;color:var(--ink);overflow-wrap:anywhere;
}
.lb-task-meta{
  font-family:var(--mono);font-size:.75rem;letter-spacing:.05em;line-height:1.5;
  color:var(--muted);overflow-wrap:anywhere;
}
.lb-task-f{margin:0;}
.lb-task-f > div{
  display:grid;grid-template-columns:11rem minmax(0,1fr);gap:.4rem 1.4rem;
  padding:.95rem 1.4rem 1rem;border-top:1px solid var(--hair);
}
.lb-task-f > div:first-child{border-top:0;}
.lb-task-f dt{
  margin:0;padding-top:.2rem;font-family:var(--mono);font-size:.75rem;font-weight:500;
  letter-spacing:.13em;text-transform:uppercase;color:var(--muted);
}
.lb-task-f dd{
  margin:0;min-width:0;font-family:var(--prose);font-size:.98rem;line-height:1.58;
  color:var(--ink-60);max-width:66ch;
}
.lb-task-f dd b{color:var(--ink);font-weight:600;}
.lb-task-f dd code{font-size:.86em;overflow-wrap:anywhere;}
.lb-task-f .lb-sev{display:inline-block;vertical-align:.12em;margin-right:.4rem;}
.lb-task-cmd{
  margin:.6rem 0 .55rem;padding:.7rem .9rem;overflow-x:auto;
  background:var(--paper);border:1px solid var(--hair);border-radius:var(--radius);
  font-family:var(--mono);font-size:.78rem;line-height:1.6;color:var(--ink);
  white-space:pre-wrap;overflow-wrap:anywhere;
}
@media (max-width:760px){
  .lb-task-h{padding:.7rem 1.1rem;}
  .lb-task-f > div{grid-template-columns:minmax(0,1fr);gap:.3rem;padding:.85rem 1.1rem .9rem;}
  .lb-task-cmd{font-size:.74rem;}
}

/* ---------- 02 · the compare block ---------- */
.lb-compare{
  display:grid;grid-template-columns:1fr 1fr;gap:1px;
  background:var(--hair);border:1px solid var(--hair);border-radius:var(--radius);
  overflow:hidden;margin-top:2.2rem;
}
.lb-col{background:var(--card);padding:1.5rem 1.4rem 1.6rem;min-width:0;}
.lb-col h3{
  margin:0 0 1rem;font-family:var(--mono);font-size:.75rem;font-weight:500;
  letter-spacing:.09em;text-transform:uppercase;color:var(--muted);
}
.lb-col ul{margin:0;padding:0;list-style:none;}
.lb-col li{
  padding:.62rem 0;border-top:1px solid var(--hair);
  font-family:var(--prose);font-size:.98rem;line-height:1.55;color:var(--ink-60);
}
.lb-col li code{font-size:.85em;}
.lb-verdict{
  margin:1.15rem 0 0;font-family:var(--mono);font-size:.78rem;letter-spacing:.05em;
  color:var(--ink);
}
@media (max-width:760px){
  .lb-compare{grid-template-columns:minmax(0,1fr);}
}

/* ---------- 04 · the six edges ---------- */
.lb-edges{margin:2.1rem 0 0;padding:0;list-style:none;counter-reset:lbe;}
.lb-edges li{
  counter-increment:lbe;position:relative;
  padding:.95rem 0 .95rem 3.4rem;border-top:1px solid var(--hair);
}
.lb-edges li:last-child{border-bottom:1px solid var(--hair);}
.lb-edges li::before{
  content:counter(lbe,decimal-leading-zero);
  position:absolute;left:0;top:1.05rem;
  font-family:var(--mono);font-size:.75rem;letter-spacing:.08em;color:var(--ink-40);
}
.lb-edges b{
  display:block;font-family:var(--prose);font-size:1.02rem;font-weight:600;
  color:var(--ink);letter-spacing:-.01em;
}
.lb-edges p{
  margin:.2rem 0 0;font-family:var(--prose);font-size:.96rem;line-height:1.55;
  color:var(--ink-60);max-width:62ch;
}

/* ---------- 05 · the claim quotation ---------- */
.lb-claim{
  margin:2.1rem 0 0;padding:1.25rem 1.4rem 1.35rem;
  background:var(--card);border:1px solid var(--hair);border-radius:var(--radius);
}
.lb-claim-id{
  display:flex;flex-wrap:wrap;gap:.4rem 1rem;margin:0 0 .7rem;
  font-family:var(--mono);font-size:.75rem;letter-spacing:.08em;
  color:var(--muted);
}
.lb-claim-id b{color:var(--ink);font-weight:500;}
.lb-claim blockquote{
  margin:0;font-family:var(--mono);font-weight:400;font-size:.98rem;
  line-height:1.6;color:var(--ink-60);max-width:60ch;
}
.lb-claim-under{
  margin:.85rem 0 0;font-family:var(--mono);font-size:.75rem;letter-spacing:.04em;
  color:var(--muted);
}
.lb-claim-under a{color:var(--ink);}
.lb-claim-under a:hover{color:var(--signal);}

/* ---------- 05 · graded obligations ---------- */
.lb-ob{margin:2rem 0 0;padding:0;list-style:none;}
.lb-ob li{
  display:grid;grid-template-columns:12.5rem minmax(0,1fr);gap:1.1rem;
  padding:1rem 0;border-top:1px solid var(--hair);
}
.lb-ob li:last-child{border-bottom:1px solid var(--hair);}
.lb-sev{
  align-self:start;justify-self:start;
  font-family:var(--mono);font-size:.75rem;font-weight:500;letter-spacing:.08em;
  text-transform:uppercase;color:var(--muted);
  border:1px solid var(--hair-strong);border-radius:var(--radius);
  padding:.28rem .55rem;white-space:nowrap;
}
.lb-sev.is-high{color:var(--fail);border-color:var(--fail);}
.lb-ob p{
  margin:0;font-family:var(--prose);font-size:.98rem;line-height:1.58;
  color:var(--ink-60);max-width:60ch;
}
.lb-ob p b{color:var(--ink);font-weight:600;}
.lb-fixed{color:var(--pass);font-family:var(--mono);font-size:.85em;letter-spacing:.04em;}
@media (max-width:640px){
  .lb-ob li{grid-template-columns:minmax(0,1fr);gap:.45rem;}
}

/* ---------- 05 · the YAML excerpt ---------- */
.lb-code{margin:2.2rem 0 0;}
.lb-code-hd{
  display:block;padding:.55rem .95rem;
  background:var(--card);border:1px solid var(--hair);border-bottom:0;
  border-radius:var(--radius) var(--radius) 0 0;
  font-family:var(--mono);font-size:.75rem;letter-spacing:.05em;color:var(--muted);
  overflow-x:auto;white-space:nowrap;
}
.lb-code pre{
  margin:0;padding:1.2rem 1.35rem 1.3rem;overflow-x:auto;
  background:var(--card);border:1px solid var(--hair);
  border-radius:0 0 var(--radius) var(--radius);
  font-family:var(--mono);font-size:.8rem;line-height:1.75;color:var(--ink);
  white-space:pre;-webkit-overflow-scrolling:touch;
}
.lb-code .k{color:var(--muted);}
.lb-code-cap{
  margin:.6rem 0 0;font-family:var(--mono);font-size:.75rem;letter-spacing:.04em;
  color:var(--muted);max-width:70ch;
}
.lb-code-cap a{color:var(--ink);}
.lb-code-cap a:hover{color:var(--signal);}
@media (max-width:640px){
  .lb-code pre{font-size:.75rem;padding:1rem 1rem 1.1rem;}
}

/* ---------- 07 · the package cards ---------- */
/* a kicker names each of the two download cards (environment package pass,
   2026-09-04); the card then sits close under it instead of a section's
   distance away. No new colour. */
.lb-card-k{margin:2.2rem 0 0;}
.lb-card-k + .lb-card{margin-top:.8rem;}
.lb-card{
  display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:1px;
  background:var(--hair);border:1px solid var(--hair);border-radius:var(--radius);
  overflow:hidden;margin-top:2.2rem;
}
.lb-card > div{background:var(--card);padding:1.5rem 1.4rem 1.6rem;min-width:0;}
.lb-files{margin:0;padding:0;list-style:none;}
.lb-files li{
  padding:.6rem 0;border-top:1px solid var(--hair);
  font-family:var(--mono);font-size:.8rem;line-height:1.55;color:var(--muted);
  letter-spacing:.02em;
}
.lb-files li:first-child{border-top:0;padding-top:0;}
.lb-files b{display:block;font-weight:500;color:var(--ink);letter-spacing:.03em;}
.lb-meta{display:flex;flex-direction:column;gap:.9rem;}
.lb-meta .btn{align-self:flex-start;}
.lb-meta-l{
  margin:0;font-family:var(--mono);font-size:.78rem;letter-spacing:.05em;color:var(--muted);
}
.lb-meta-l b{color:var(--ink);font-weight:500;}
.lb-sha{
  margin:0;font-family:var(--mono);font-size:.75rem;line-height:1.6;
  letter-spacing:.02em;color:var(--muted);word-break:break-all;
}
.lb-sha a{color:var(--ink);}
.lb-sha a:hover{color:var(--signal);}
/* the prose after the environment package's hash (2026-09-04) breaks at
   words, not inside them; break-all above is for the hash only */
.lb-sha .lb-sha-note{word-break:normal;overflow-wrap:anywhere;}
@media (max-width:900px){
  .lb-card{grid-template-columns:minmax(0,1fr);}
}
@media (max-width:640px){
  /* "Download the environment package" (2026-09-04) is wider than a phone
     column, and .btn is white-space:nowrap by design (site.css); inside the
     download cards the button owns the column, so it may wrap here only,
     the same ruling as the submit button at the end of this file */
  .lb-meta .btn{white-space:normal;text-align:center;line-height:1.3;padding-top:.7rem;padding-bottom:.7rem;}
}

/* ---------- 07 · the stat row ---------- */
.lb-stats{
  display:flex;flex-wrap:wrap;gap:.55rem 2.2rem;margin:2.1rem 0 0;
  font-family:var(--mono);font-size:.8rem;letter-spacing:.04em;color:var(--muted);
}
.lb-stats span{max-width:100%;}
.lb-stats b{font-size:1.05rem;font-weight:500;color:var(--ink);letter-spacing:0;}
.lb-stats a{color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--hair-strong);}
.lb-stats a:hover{color:var(--signal);text-decoration-color:var(--signal);}
.lb-elsewhere{
  margin:1.5rem 0 0;font-family:var(--mono);font-size:.78rem;letter-spacing:.04em;
  color:var(--muted);line-height:2;
}
.lb-elsewhere a{color:var(--ink);}
.lb-elsewhere a:hover{color:var(--signal);}

/* ---------- 08 · the tech line ---------- */
.lb-tech{
  margin:1.9rem 0 0;font-family:var(--mono);font-size:.78rem;letter-spacing:.06em;
  text-transform:uppercase;color:var(--muted);
}
.lb-tech s,.lb-tech .sep-dot{text-decoration:none;color:var(--ink-40);padding:0 .18em;}

/* ---------- 09 · the pilot box ---------- */
.lb-pilot-box{
  border:1px solid var(--hair);border-radius:var(--radius);background:var(--card);
  padding:1.5rem 1.4rem 1.6rem;margin-top:2.2rem;
}
.lb-pilot-box h3{margin:0 0 .3rem;font-size:1.12rem;letter-spacing:-.015em;}
.lb-pilot-box > p{margin:.3rem 0 0;font-family:var(--prose);font-size:.98rem;line-height:1.58;color:var(--ink-60);max-width:66ch;}
.lb-pilot-rows{margin:1.2rem 0 0;}
.lb-pilot-rows > div{
  display:grid;grid-template-columns:9.5rem minmax(0,1fr);gap:1.1rem;
  padding:.75rem 0;border-top:1px solid var(--hair);
}
.lb-pilot-rows dt{
  margin:0;font-family:var(--mono);font-size:.75rem;font-weight:500;
  letter-spacing:.09em;color:var(--muted);padding-top:.15rem;
}
.lb-pilot-rows dd{
  margin:0;font-family:var(--prose);font-size:.98rem;line-height:1.55;color:var(--ink-60);
  max-width:58ch;
}
.lb-pilot-rows dd b{color:var(--ink);font-weight:600;}
@media (max-width:640px){
  .lb-pilot-rows > div{grid-template-columns:minmax(0,1fr);gap:.3rem;}
}

/* ---------- 09 · the pilot success list (P0 pass, 2026-09-04) ----------
   Seven counts replace the one headline metric. A list, not a run-on
   line, so each count can be read on its own; hairlines match .lb-files. */
.lb-pilot-list{margin:.55rem 0 .7rem;padding:0;list-style:none;}
.lb-pilot-list li{
  padding:.3rem 0;border-top:1px solid var(--hair);
  font-size:.95rem;line-height:1.45;color:var(--ink-60);
}
.lb-pilot-list li:first-child{border-top:0;padding-top:0;}

/* ---------- close ---------- */
.lb-ask{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:3rem;margin-top:2.2rem;align-items:start;}
.lb-ask .lead-form{max-width:none;}
.lb-ask-copy p{font-family:var(--prose);font-size:1.02rem;line-height:1.6;color:var(--ink-60);max-width:52ch;}
.lb-ask-copy p b{color:var(--ink);}
.lb-ask-copy .fine{margin-top:1.3rem;}
@media (max-width:900px){
  .lb-ask{grid-template-columns:minmax(0,1fr);gap:2rem;}
}

/* ---------- shared small print ---------- */
.lb-note{
  margin:1.8rem 0 0;font-family:var(--prose);font-size:.96rem;line-height:1.6;
  color:var(--ink-60);max-width:66ch;
}
.lb-note b{color:var(--ink);}
.lb-links{display:flex;flex-wrap:wrap;gap:.6rem 1.8rem;margin:1.6rem 0 0;}

/* ---------- v10 · the form CTA names the offer ----------
   The submit label is "Request a correctness-label pilot", which is what this
   page actually sells. It is wider than the form column at 390px, and .btn is
   white-space:nowrap by design (site.css:200), so the button pushed the page
   67px sideways. The button is allowed to wrap here only: inside this form it
   owns the full column, and the vertical padding replaces the line-height:1
   that a single-line button relies on. */
body[data-page="labels"] .lead-form button[type="submit"]{
  white-space:normal;text-align:center;line-height:1.3;
  padding-top:.7rem;padding-bottom:.7rem;
}
