/* css/modules/jt.css: the .jt-* module — split out of css/app.css by #360's sibling stage (#362).
   Load order is core.css, then every modules/*.css alphabetically; rules here
   are in their original relative order, and no selector in this file appears in
   any other (asserted in tests/css-split-check.js). */

/* ==========================================================================
   THE JOB THREAD (#243/#246) — `jt-` prefix
   Verified unused in css/app.css and driver/driver.css before adding.
   ========================================================================== */
.jt-card{padding:20px 22px;margin-top:18px}
.jt-card--none{background:#fbfcfe}
.jt-hd{margin-bottom:14px}
.jt-sub{display:block;margin-top:4px;color:var(--muted);font-weight:700;font-size:12.5px;line-height:1.6}
.jt-none{color:var(--muted);font-weight:700;font-size:13px;line-height:1.6;margin:0}
/* The same digits at every stage — Q-10042 → B-10042 → C-10042. That identity IS
   the feature, so the flow shows the number at each stage rather than a label. */
.jt-flow{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.jt-stage{display:flex;flex-direction:column;gap:2px;padding:8px 13px;border-radius:9px;
  border:1px solid var(--line);background:#fbfcfe;min-width:104px}
.jt-stage.is-reached{background:#fff;border-color:var(--blue)}
.jt-stage.is-on{background:var(--blue);border-color:var(--blue)}
.jt-stage__n{font-family:var(--mono,monospace);font-size:14px;font-weight:900;color:var(--ink)}
.jt-stage__l{font-size:10px;font-weight:900;letter-spacing:.5px;text-transform:uppercase;color:var(--muted)}
.jt-stage.is-on .jt-stage__n,.jt-stage.is-on .jt-stage__l{color:#fff}
.jt-arrow{color:var(--muted-2,#98a2b3);font-weight:900}
.jt-num{color:var(--blue);font-weight:900;letter-spacing:.3px}
.jt-grid{display:grid;grid-template-columns:minmax(240px,1fr) minmax(240px,1.2fr);gap:22px}
@media (max-width:820px){.jt-grid{grid-template-columns:1fr}}
.jt-po{color:var(--blue)}
/* A job that needs a PO and hasn't got one is STATED. Silently invoicing it is
   the failure this exists to prevent. */
.jt-warn{color:var(--red);font-weight:800}
.jt-link{color:var(--blue);font-weight:800}
.jt-hist__t{font-size:11px;font-weight:900;letter-spacing:.5px;text-transform:uppercase;
  color:var(--muted);margin:0 0 8px}
.jt-hist__l{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}
.jt-hist__l li{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline;padding-bottom:7px;
  border-bottom:1px solid var(--line);font-size:12.5px;font-weight:700}
.jt-hist__l li:last-child{border-bottom:0}
.jt-hist__l span{color:var(--muted);font-weight:700}
.jt-hist__l i{font-style:normal;color:var(--blue);font-weight:800}
.jt-hist__l em{font-style:normal;color:var(--muted);font-weight:600;flex-basis:100%}
/* Cancellation. "Only Tanya can cancel those, with my approval." */
.jt-cancel{margin-top:18px;padding:13px 15px;border-radius:10px;border:1px solid var(--line);background:#fbfcfe}
.jt-cancel--no{border-style:dashed}
.jt-cancel--done{color:var(--muted);font-weight:700;font-size:13px}
.jt-cancel__row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.jt-cancel__why{display:block;margin-top:3px;color:var(--muted);font-weight:700;font-size:12.5px;line-height:1.6}
/* There is NO verified identity until SSO (#66): the acting user is a selector,
   and the screen has to say so. A role check that presents itself as security is
   worse than none — same honesty the audit viewer and the assistant carry. */
.jt-unverified{margin:10px 0 0;padding-top:9px;border-top:1px dashed var(--line);
  color:var(--orange);font-weight:800;font-size:12px;line-height:1.6}
/* Conversion. Counts lead; the percentage may only sit beside them, and there is
   no percentage at all until something has been decided to divide by. */
.jt-conv{padding:16px 20px;margin-bottom:18px}
.jt-conv__nums{display:flex;flex-wrap:wrap;gap:26px;align-items:baseline}
.jt-conv__n{display:flex;flex-direction:column}
.jt-conv__n b{font-size:26px;font-weight:900;line-height:1}
.jt-conv__n i{font-style:normal;font-size:11px;font-weight:800;letter-spacing:.4px;
  text-transform:uppercase;color:var(--muted);margin-top:3px}
.jt-conv__n--won b{color:var(--ok)}
.jt-conv__pct{display:flex;flex-direction:column;margin-left:auto;text-align:right;
  font-size:26px;font-weight:900;color:var(--blue);line-height:1}
.jt-conv__pct i{font-style:normal;font-size:11px;font-weight:800;letter-spacing:.4px;
  text-transform:uppercase;color:var(--muted);margin-top:3px}
.jt-conv__note{margin:11px 0 0;color:var(--muted);font-weight:700;font-size:12.5px;line-height:1.6}
