/* css/modules/rvp.css: the .rvp-* 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). */

/* ==========================================================================
   REVENUE PIPELINE / MONTH TO TARGET (#261) — the #/pipeline screen.
   Prefix `rvp-`, verified unused in css/app.css, driver/driver.css and
   portal/portal.css before it was added. No bare single-word class is reused:
   `.reco` once collided and rendered a panel sideways.

   ONE RULE RUNS THROUGH ALL OF IT: nothing on this page is drawn as an alarm.
   Ad hoc work is booked a day or two out, so a thin forward book is the normal
   shape of the business and a red gap tile would raise an alarm about the way
   Northfleet trade. The only warning colour here is on `.rvp-warn`, which
   carries the sentence saying a capture rate is NOT a performance measure —
   i.e. it warns against a misreading, never about the number.
   ========================================================================== */
.rvp-pad{padding:18px 20px}
.rvp-head{margin-bottom:14px;border-left:4px solid var(--primary)}
.rvp-h{font-size:22px;margin:0 0 6px}
.rvp-lead{margin:0 0 10px;font-size:13.5px;font-weight:700;color:var(--muted);line-height:1.55;max-width:96ch}
.rvp-lead b{color:var(--ink)}
/* The coverage caveat, FULL SIZE at the top — the same weight Fleet Overview
   gives its "live telemetry covers only the types ticked track live" note, and
   for the same reason: a total read as the whole business is the worst thing
   this page could cause. */
.rvp-cov{margin:0 0 10px;padding:11px 13px;border-radius:9px;background:#eef2fb;
  font-size:13px;font-weight:700;color:#2a3c60;line-height:1.6;max-width:100ch}
.rvp-cov b{color:var(--ink)}
.rvp-adhoc{margin:0;font-size:12.5px;font-weight:700;color:var(--muted);line-height:1.6;max-width:100ch}
.rvp-kpis{margin-bottom:12px}
.rvp-sect{margin:22px 2px 8px}
.rvp-sub{color:var(--muted-2);font-weight:700}
.rvp-line{margin:0 2px 14px;font-size:12.5px;font-weight:700;color:var(--muted);line-height:1.55;max-width:100ch}
.rvp-note{margin:8px 0 0;font-size:12.5px;font-weight:700;color:var(--muted);line-height:1.6;max-width:100ch}
.rvp-note b{color:var(--ink)}
.rvp-foot{font-size:12.5px;font-weight:700;color:var(--muted);line-height:1.55;margin:10px 2px 0;max-width:100ch}
.rvp-empty{text-align:center;color:var(--muted);font-weight:700;padding:26px 12px}
/* A figure nobody could value. A DASH, never $0 — hatched where it is a chip,
   exactly as .cmp-pill--indet and .rc-chip--un are, because "we could not price
   this" is a third answer and must not read as either a number or a nil. */
.rvp-dash{color:var(--muted-2);font-weight:900}
.rvp-nodata{color:var(--muted-2)}
.rvp-kpi--none .kpi__value{color:var(--muted-2)}
.rvp-bas{display:inline-block;font-size:10.5px;font-weight:800;padding:2px 7px;border-radius:5px;white-space:nowrap}
.rvp-bas--inv{background:rgba(31,157,85,.12);color:#15703d}
.rvp-bas--acc{background:rgba(37,82,164,.12);color:var(--blue)}
.rvp-bas--qte{background:#eef2fb;color:var(--muted)}
.rvp-bas--un{background:rgba(122,101,32,.08);color:#7a6520;border:1px dashed #c9b877;
  background-image:repeating-linear-gradient(135deg,rgba(201,184,119,.18) 0 5px,transparent 5px 10px)}
.rvp-undated{font-size:12px;font-weight:700;color:var(--muted-2);font-style:italic}
.rvp-runout{display:block;color:#8a4a00;font-weight:800;font-size:11px;margin-top:2px}
.rvp-amt{font-weight:900}
.rvp-why{font-size:12px;font-weight:700;color:var(--muted);line-height:1.5;max-width:52ch}
/* The target, or the refusal where the target would be. Both are full-size
   panels: with no target on file this page states nothing about the month, and
   saying that in a footnote would let the empty gap tile read as "on track". */
.rvp-target{margin:0 0 16px}
.rvp-target--none{border-left:4px solid var(--muted-2);
  background-image:repeating-linear-gradient(135deg,rgba(20,30,60,.02) 0 6px,transparent 6px 12px)}
.rvp-tgt{margin:0;font-size:14px;font-weight:700;line-height:1.55;max-width:100ch}
.rvp-target code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;
  background:#eef2fb;padding:1px 5px;border-radius:4px}
.rvp-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px;margin-bottom:4px}
.rvp-aside{border-left:4px solid var(--orange)}
.rvp-big{margin:2px 0 0;font-size:22px;font-weight:900;line-height:1.2}
.rvp-big small{display:block;margin-top:3px;font-size:12px;font-weight:800;color:var(--muted)}
/* The weighting, spelled out. The percentage NEVER appears on its own: it is
   always the share of a named number of decided quotes over a named window,
   because a bare "34%" on a revenue screen is a number nobody can check. */
.rvp-rate{margin:0;font-size:14px;font-weight:700;color:var(--muted);line-height:1.6;max-width:100ch}
.rvp-rate b{color:var(--ink);font-size:16px}
.rvp-rate small{display:block;margin-top:4px;font-size:12px;font-weight:700;color:var(--muted-2);line-height:1.55}
/* Warns against a MISREADING, not about a number — see the header note. */
.rvp-warn{margin:12px 0 0;padding:11px 13px;border-radius:9px;font-size:12.5px;font-weight:700;line-height:1.6;
  background:rgba(252,217,17,.14);border:1px solid rgba(252,217,17,.5);color:#6b5300;max-width:100ch}
