/* ============================================================
   LMI V14 · truth and clarity pass.
   Layers on top of v13.css. Not a redesign.
   · Checkpoint is named as a narrow first product
   · The product preview renders a real, sanitised record
   · One type system: Inter Tight for product, Newsreader for
     research and editorial, Plex Mono for data and metadata
   ============================================================ */
@import url("v13.css?v=1d305fcef6");

/* ---------- product hero: product name, status line ---------- */
.pname { font-family: var(--mono); font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--on-ink-3); margin-bottom: 14px; }
.statusline { display: inline-block; margin-top: 16px; font-family: var(--mono); font-size: var(--f12); line-height: 1.5; color: var(--st-warn); border: 1px solid rgba(194, 160, 92, 0.35); border-radius: 99px; padding: 7px 14px; }
@media (max-width: 560px) { .statusline { border-radius: var(--r2); } }

/* ---------- the five step workflow ---------- */
.wsteps { list-style: none; counter-reset: w; display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 1px; background: var(--ln-d); border: 1px solid var(--ln-d); border-radius: var(--r2); overflow: hidden; margin: 0; padding: 0; }
.wsteps li { counter-increment: w; background: #131418; padding: 16px 18px 20px; }
.wsteps li::before { content: counter(w); display: block; font-family: var(--mono); font-size: 10px; color: var(--on-ink-3); margin-bottom: 8px; }
.wsteps li b { display: block; font-family: var(--sans); font-size: var(--f14); font-weight: 600; color: var(--ivory); line-height: 1.3; margin-bottom: 6px; }
.wsteps li span { display: block; font-size: var(--f13); line-height: 1.55; color: var(--smoke); }

/* ---------- the record preview ---------- */
.ckp { border: 1px solid var(--ln-d); border-radius: var(--r3); background: var(--ink); overflow: hidden; }
.ckp-top { display: flex; align-items: center; gap: 10px 14px; flex-wrap: wrap; padding: 12px 16px; border-bottom: 1px solid var(--ln-d); background: var(--ink-2); }
.ckp-pair { display: inline-flex; align-items: center; gap: 10px; flex-wrap: wrap; font-family: var(--mono); font-size: var(--f13); color: var(--on-ink); min-width: 0; }
.ckp-pair .arw { color: var(--on-ink-3); }
.ckp-top .chip { font-family: var(--mono); font-size: 11px; color: var(--on-ink-3); border: 1px solid var(--ln-d); border-radius: 99px; padding: 4px 10px; }
.ckp-top .verdict { margin-left: auto; font-family: var(--mono); font-size: 12px; font-weight: 500; letter-spacing: 0.1em; border-radius: 99px; padding: 6px 16px; }
.ckp-top .verdict.bad { color: var(--st-bad); border: 1px solid rgba(201, 123, 103, 0.5); background: rgba(201, 123, 103, 0.08); }
.ckp-top .verdict.ok { color: var(--st-ok); border: 1px solid rgba(125, 174, 147, 0.5); background: rgba(125, 174, 147, 0.08); }

.ckp-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: var(--ln-d); border-bottom: 1px solid var(--ln-d); }
@media (max-width: 700px) { .ckp-grid { grid-template-columns: 1fr; } }
.ckp-cell { background: var(--ink); padding: 14px 16px 16px; }
.ckp-cell b { display: block; font-family: var(--mono); font-size: 10px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--on-ink-3); margin-bottom: 8px; font-weight: 500; }
.ckp-cell .big { font-family: var(--sans); font-size: clamp(1.5rem, 3vw, 2rem); font-weight: 600; letter-spacing: -0.02em; color: var(--ivory); line-height: 1; }
.ckp-cell .sub { margin-top: 6px; font-size: var(--f12); line-height: 1.5; color: var(--smoke); }

.ckp .tbl-scroll { padding: 4px 16px 8px; }
.ckp-more { border-top: 1px solid var(--ln-d); }
.ckp-more summary { cursor: pointer; padding: 12px 16px; font-family: var(--sans); font-size: var(--f13); font-weight: 600; color: var(--on-ink-2); }
.ckp-more summary:hover { color: var(--on-ink); }
.ckp-more-in { padding: 4px 16px 18px; }

/* ---------- keep the phone record-card treatment for this table ---------- */
@media (max-width: 680px) {
  .ckp .tbl-scroll { padding: 10px 12px; }
  .ckp-top .verdict { margin-left: 0; }
}

/* numeric columns keep a gutter so the next header cannot touch them
   (v11 zeroes this padding for edge-aligned tables; the record table has a
   text column after its numbers) */
.ckp .optbl th.num, .ckp .optbl td.num { padding-right: 20px; }
.ckp .optbl th:last-child, .ckp .optbl td:last-child { padding-right: 0; }

/* ---------- V14.1 · one heading system, the product page included ----------
   v12 set the product page's headings in Inter Tight; every other page keeps
   the shared serif system from v9. The founder asked for the product page to
   read in the same face as the rest of the site, so the v12 override is
   retired: hero and section headings return to the serif system. Workspace
   chrome (panel headers, stage labels, tables) stays in the UI faces. */
body.prod .p-v8-hero h1,
body.prod h2.v8-h2,
body.prod h2.display-s {
  font-family: var(--serif) !important;
  font-weight: 300 !important;
  letter-spacing: -0.02em !important;
  line-height: 1.15 !important;
}
body.prod .p-v8-hero h1 { font-size: var(--h1) !important; }

/* the evidence drawer's limitations slot reads like every other slot: a
   neutral record field, not an amber warning */
.dslot.limit b { color: var(--on-ink-3); }
.dslot.limit p { color: var(--on-ink-2); }

/* ---------- V14.1 · colour discipline ----------
   Amber marks a genuine held or pending state on data, nothing else.
   Labels, tags and schematic accents read in the neutral ink tones. */
.warm { color: var(--on-ink-3); }
.kv .v.warm { color: var(--st-warn); }
.ctxbar .cv.warm { color: var(--on-ink-2); }
.statusline { color: var(--on-ink-3); border-color: var(--ln-d); }
.st.kiln { color: var(--on-ink-2); }
.astatus.preview { border: 1px dashed rgba(239, 237, 230, 0.35); color: var(--on-ink-2); background: rgba(239, 237, 230, 0.04); }
.rp-cells i.B { background: rgba(239, 237, 230, 0.18); color: #EFEDE6; }
.rp-row.flip .m::after { content: " · differs"; color: var(--on-ink-3); }
