/* ============================================================================
   Financial Analyst — cockpit re-skin (the Contract/Legal ``.cv5`` format)
   ----------------------------------------------------------------------------
   FORKED from ``contract-v5.css`` so FP&A reads as a *sibling* of the Legal
   cockpit — the founder's explicit "единый формат с другими ролями" goal. Same
   ``.cv5`` component vocabulary + the same navy band / terracotta action accent;
   the ONLY department marker is an emerald finance dot on the role label
   (``.cv5-fpa .cv5-role .b``). FP&A-specific components (KPI band, compact cash
   chart card, ranked work cards, driver tree, close layout) are appended at the
   bottom under the same ``.cv5`` scope. Loaded ONLY on FP&A v5 pages, so it can
   never clash with contract-v5.css (no page loads both). Evolves independently.

   EVERYTHING is scoped under the ``.cv5`` wrapper so this file is inert on every
   other surface and cannot clash with Tailwind utilities or new-format.css.

   House rules honoured:
     • General Sans everywhere (inherited from base.html <html>) — NO monospace
       anywhere in the customer UI.
     • Fraunces serif on Finance headings via the ``.fin-role`` base wrapper.
     • Terracotta = the single action accent; navy = the structural band.
     • CSP-safe: no @import of remote fonts; interaction lives in the shared
       cockpit JS (no inline handlers).
   ============================================================================ */

.cv5 {
  /* Surface + ink — aligned to the app palette (base.html :root) but kept
     local so the dense cockpit reads a touch cooler than the marketing pages. */
  --cv5-bg: #F4F5F8;
  --cv5-card: #FFFFFF;
  --cv5-ink: #191C22;
  --cv5-ink2: #4A515C;
  --cv5-ink3: #868D99;
  --cv5-ink4: #AEB4BF;
  --cv5-line: #E5E8EE;
  --cv5-line-strong: #D2D7E0;

  /* Legal department band + terracotta action accent (design_direction.md). */
  --cv5-navy: #1E293B;
  --cv5-navy2: #334155;
  --cv5-terra: #C2410C;
  --cv5-terra-ink: #a8380b;
  --cv5-terra-soft: #FBEDE4;

  /* Risk / status palette. */
  --cv5-rose: #C0392B;
  --cv5-rose-soft: #FBEAE8;
  --cv5-rose-border: #F1C4BF;
  --cv5-amber: #B45309;
  --cv5-amber-soft: #FBF1E1;
  --cv5-amber-border: #EDD3A6;
  --cv5-emer: #0B845A;
  --cv5-emer-soft: #E4F4EC;
  --cv5-emer-border: #B7E3CC;
  --cv5-slate: #64748B;
  --cv5-info: #2C5F9E;
  --cv5-info-soft: #EAF1FB;
  --cv5-info-border: #CFE0F3;

  /* Evidence highlight washes. */
  --cv5-hl-g: #DCFCE7;
  --cv5-hl-a: #FEF1C7;
  --cv5-hl-r: #FCE2DE;

  color: var(--cv5-ink);
  font-size: 14px;
  line-height: 1.55;
}

/* Neutralise the base.html body line-height/size for the dense cockpit and
   normalise a few primitives, all still scoped to .cv5. */
.cv5 *,
.cv5 *::before,
.cv5 *::after { box-sizing: border-box; }
.cv5 .cv5-tnum { font-variant-numeric: tabular-nums; }
.cv5 svg { display: block; }
.cv5 a { color: inherit; text-decoration: none; }
.cv5 button { font: inherit; cursor: pointer; border: none; background: none; color: inherit; }

.cv5-dot { width: 8px; height: 8px; border-radius: 50%; display: inline-block; flex: none; }

/* Full-bleed the cockpit inside app/base.html's padded <main> so the sub-bar
   and content span edge-to-edge like the sample. */
.cv5-bleed { margin: -2rem -1.25rem 0; }
@media (min-width: 768px) { .cv5-bleed { margin: -2.5rem -2rem 0; } }

.cv5-wrap { max-width: 1320px; margin: 0 auto; padding: 18px 22px 60px; }

/* ── Cockpit sub-bar (role + tabs + quota) ───────────────────────────────── */
.cv5-sub { background: #fff; border-bottom: 1px solid var(--cv5-line); }
.cv5-sub-in {
  max-width: 1320px; margin: 0 auto; padding: 0 22px;
  display: flex; align-items: center; gap: 2px; flex-wrap: wrap;
}
.cv5-role {
  font-size: 12px; font-weight: 700; color: var(--cv5-navy);
  padding-right: 14px; margin-right: 6px; border-right: 1px solid var(--cv5-line);
  display: flex; align-items: center; gap: 7px;
}
.cv5-role .b { width: 8px; height: 8px; border-radius: 2px; background: var(--cv5-navy); }
.cv5-tab {
  font-size: 13.5px; font-weight: 600; color: var(--cv5-ink3);
  padding: 12px 13px; border-bottom: 2px solid transparent; margin-bottom: -1px;
  white-space: nowrap;
}
.cv5-tab:hover { color: var(--cv5-ink); }
.cv5-tab.on { color: var(--cv5-navy); border-bottom-color: var(--cv5-terra); }
.cv5-quota { margin-left: auto; font-size: 12px; color: var(--cv5-ink3); display: flex; align-items: center; gap: 8px; }
.cv5-qbar { width: 70px; height: 6px; background: var(--cv5-line); border-radius: 3px; overflow: hidden; }
.cv5-qbar i { display: block; height: 100%; background: var(--cv5-terra); }

/* ── Panel title + buttons ───────────────────────────────────────────────── */
.cv5-ptitle { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin: 2px 0 14px; flex-wrap: wrap; }
.cv5-ptitle h2 { font-size: 19px; font-weight: 700; letter-spacing: -.01em; }
.cv5-ptitle p { font-size: 12.5px; color: var(--cv5-ink3); margin-top: 3px; }
.cv5-actions { display: flex; gap: 8px; flex-wrap: wrap; }

.cv5-btn {
  font-size: 12.5px; font-weight: 600; padding: 7px 12px; border-radius: 7px;
  border: 1px solid var(--cv5-line-strong); color: var(--cv5-ink); background: #fff;
  display: inline-flex; align-items: center; gap: 6px;
}
.cv5-btn:hover { border-color: var(--cv5-navy); }
.cv5-btn.terra { background: var(--cv5-terra); border-color: var(--cv5-terra); color: #fff; }
.cv5-btn.terra:hover { background: var(--cv5-terra-ink); border-color: var(--cv5-terra-ink); }

/* ── Filter bar + segmented tabs ─────────────────────────────────────────── */
.cv5-fbar { display: flex; align-items: center; gap: 9px; margin-bottom: 10px; flex-wrap: wrap; }
.cv5-search {
  flex: 1; min-width: 220px; display: flex; align-items: center; gap: 9px;
  background: #fff; border: 1px solid var(--cv5-line-strong); border-radius: 8px; padding: 9px 12px;
}
.cv5-search input { border: none; outline: none; flex: 1; font: inherit; font-size: 13.5px; background: none; color: inherit; }
.cv5-search:focus-within { border-color: var(--cv5-navy); }
.cv5-fsel {
  font-size: 12.5px; font-weight: 600; color: var(--cv5-ink2);
  border: 1px solid var(--cv5-line-strong); background: #fff; border-radius: 8px; padding: 9px 11px;
}
.cv5-segtab { display: flex; gap: 0; margin-bottom: 12px; }
.cv5-segtab a {
  font-size: 12.5px; font-weight: 600; color: var(--cv5-ink3);
  padding: 6px 14px; border: 1px solid var(--cv5-line-strong); border-right: none;
}
.cv5-segtab a:first-child { border-radius: 7px 0 0 7px; }
.cv5-segtab a:last-child { border-right: 1px solid var(--cv5-line-strong); border-radius: 0 7px 7px 0; }
.cv5-segtab a.on { background: var(--cv5-navy); color: #fff; border-color: var(--cv5-navy); }

/* ── Strict table ────────────────────────────────────────────────────────── */
.cv5-grid {
  width: 100%; border-collapse: collapse; background: #fff;
  border: 1px solid var(--cv5-line-strong); border-radius: 8px; overflow: hidden; font-size: 13px;
}
.cv5-grid th {
  font-size: 10.5px; text-transform: uppercase; letter-spacing: .04em; color: var(--cv5-ink3);
  font-weight: 700; text-align: left; padding: 9px 12px; background: #F1F3F6;
  border-bottom: 1px solid var(--cv5-line-strong); border-right: 1px solid var(--cv5-line);
  white-space: nowrap;
}
.cv5-grid th:last-child { border-right: none; }
.cv5-grid th.r { text-align: right; }
.cv5-grid th a { color: inherit; display: inline-flex; align-items: center; gap: 4px; }
.cv5-grid th a:hover { color: var(--cv5-ink); }
.cv5-grid td {
  padding: 9px 12px; border-bottom: 1px solid var(--cv5-line); border-right: 1px solid var(--cv5-line);
  color: var(--cv5-ink2); white-space: nowrap; vertical-align: middle;
}
.cv5-grid td:last-child { border-right: none; }
.cv5-grid tbody tr:last-child td { border-bottom: none; }
.cv5-grid tbody tr { cursor: pointer; }
.cv5-grid tbody tr:hover td { background: #F8F9FB; }
.cv5-grid tbody tr:focus-visible { outline: 2px solid var(--cv5-navy); outline-offset: -2px; }
.cv5-grid td.r { text-align: right; }
.cv5-grid .subj { font-weight: 600; color: var(--cv5-ink); }
.cv5-grid .pg { color: var(--cv5-ink3); font-weight: 400; font-size: 11.5px; margin-left: 6px; }
.cv5-grid tr.urgent td { background: var(--cv5-rose-soft) !important; box-shadow: inset 3px 0 0 var(--cv5-terra); }
.cv5-grid .sortmark { font-size: 9px; line-height: 1; color: var(--cv5-terra); }
.cv5-grid .sortmark.idle { color: var(--cv5-ink4); opacity: .55; }
.cv5-rk { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; }
.cv5-mut { color: var(--cv5-ink3); font-weight: 500; }
.cv5-tt { font-size: 11px; color: var(--cv5-ink3); }
.cv5-empty { background: #fff; border: 1px solid var(--cv5-line-strong); border-radius: 8px; padding: 40px 22px; text-align: center; color: var(--cv5-ink3); }

/* ── Portfolio ───────────────────────────────────────────────────────────── */
.cv5-kband { display: grid; grid-template-columns: 1.1fr 1fr; gap: 14px; margin-bottom: 14px; }
.cv5-kbig { background: var(--cv5-navy); color: #fff; border-radius: 12px; padding: 18px 22px; }
.cv5-kbig .l { font-size: 11.5px; color: #A9B4C6; text-transform: uppercase; letter-spacing: .06em; font-weight: 600; }
.cv5-kbig .n { font-size: 38px; font-weight: 700; letter-spacing: -.02em; line-height: 1; margin-top: 8px; color: #fff; }
.cv5-kbig .n .ac { color: #F4A26B; }
.cv5-kbig .s { font-size: 12.5px; color: #C4CCD9; margin-top: 8px; }
.cv5-kpale { background: #fff; border: 1px solid var(--cv5-line-strong); border-radius: 12px; padding: 18px 22px; }
.cv5-kpale .l { font-size: 11.5px; color: var(--cv5-ink3); text-transform: uppercase; letter-spacing: .06em; font-weight: 600; }
.cv5-kpale .n { font-size: 34px; font-weight: 700; letter-spacing: -.02em; line-height: 1; margin-top: 8px; }
.cv5-kpale .s { font-size: 12.5px; color: var(--cv5-ink2); margin-top: 8px; }
.cv5-cards3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 14px; }
.cv5-pc { background: #fff; border: 1px solid var(--cv5-line); border-radius: 12px; padding: 16px 18px; }
.cv5-pc h4 { font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--cv5-ink3); margin-bottom: 12px; }
.cv5-bar { display: flex; align-items: center; gap: 9px; font-size: 12.5px; padding: 5px 0; }
.cv5-bar .nm { width: 78px; color: var(--cv5-ink2); }
.cv5-bar .fill { height: 16px; border-radius: 3px; background: var(--cv5-navy); }
.cv5-bar .fill.terra { background: var(--cv5-terra); }
.cv5-bar .amt { margin-left: auto; font-weight: 600; }
.cv5-heat { width: 100%; border-collapse: collapse; }
.cv5-heat td, .cv5-heat th { padding: 6px 9px; text-align: center; font-size: 12px; border: 1px solid var(--cv5-line); }
.cv5-heat th { background: #F1F3F6; color: var(--cv5-ink3); font-weight: 700; font-size: 10.5px; text-transform: uppercase; }
.cv5-heat td.n { text-align: left; color: var(--cv5-ink); font-weight: 500; }
.cv5-cell { font-weight: 700; }
.cv5-cell.h { color: var(--cv5-rose); }
.cv5-cell.m { color: var(--cv5-amber); }
.cv5-cell.l { color: var(--cv5-ink3); }
/* Server-rendered portfolio SVGs (timeline / mix / counterparty / risk bar). */
.cv5-pc svg { width: 100%; height: auto; }

/* ── Attention strip ─────────────────────────────────────────────────────── */
.cv5-attn { display: flex; gap: 12px; margin-bottom: 14px; flex-wrap: wrap; }
.cv5-attn .a {
  flex: 1; min-width: 180px; background: #fff; border: 1px solid var(--cv5-line);
  border-left: 3px solid var(--cv5-amber); border-radius: 10px; padding: 12px 15px;
  display: flex; align-items: center; gap: 10px; font-size: 13px;
}
.cv5-attn .a .nm { color: var(--cv5-ink2); }
.cv5-attn .a .mini {
  margin-left: auto; font-size: 12px; font-weight: 600; color: var(--cv5-terra);
  border: 1px solid var(--cv5-terra); border-radius: 6px; padding: 4px 9px; background: #fff;
}

/* ── Ask ─────────────────────────────────────────────────────────────────── */
.cv5-askwrap { max-width: 900px; }
.cv5-askbox { background: #fff; border: 1px solid var(--cv5-line-strong); border-radius: 12px; padding: 15px 17px; display: flex; align-items: center; gap: 11px; }
.cv5-askbox input { flex: 1; border: none; outline: none; font-size: 15px; font: inherit; background: none; color: inherit; }
.cv5-askbox .send { background: var(--cv5-terra); color: #fff; font-weight: 600; font-size: 13px; padding: 8px 16px; border-radius: 8px; }
.cv5-askbox .send:hover { background: var(--cv5-terra-ink); }
.cv5-qchips { display: flex; flex-wrap: wrap; gap: 8px; margin: 11px 0 20px; }
.cv5-qchip { font-size: 12.5px; color: var(--cv5-ink2); border: 1px solid var(--cv5-line-strong); background: #fff; border-radius: 999px; padding: 6px 13px; cursor: pointer; }
.cv5-qchip:hover { border-color: var(--cv5-terra); color: var(--cv5-terra); }
.cv5-band {
  background: var(--cv5-navy); color: #fff; font-size: 12px; font-weight: 600;
  padding: 9px 16px; border-radius: 8px 8px 0 0; display: flex; align-items: center; gap: 9px; letter-spacing: .02em;
}
.cv5-band .rt { margin-left: auto; color: #A9B4C6; font-weight: 500; }
.cv5-ansbox { background: #fff; border: 1px solid var(--cv5-line); border-top: none; border-radius: 0 0 8px 8px; padding: 18px 20px; margin-bottom: 14px; }
.cv5-ansbox .aa { font-size: 14.5px; line-height: 1.7; }
.cv5-ansbox .aa sup { color: var(--cv5-terra); font-weight: 700; cursor: pointer; }
.cv5-cnum { width: 19px; height: 19px; border-radius: 5px; background: var(--cv5-navy); color: #fff; font-size: 11px; font-weight: 700; display: grid; place-items: center; flex: none; }
.cv5-crow { display: flex; align-items: center; gap: 11px; padding: 9px 0; border-bottom: 1px solid var(--cv5-line); font-size: 13px; cursor: pointer; }
.cv5-crow:last-child { border-bottom: none; }
.cv5-crow:hover .snm { color: var(--cv5-terra); }
.cv5-crow .snm { font-weight: 600; color: var(--cv5-ink); }
.cv5-crow .rel { color: var(--cv5-ink3); margin-left: auto; font-size: 12px; }

/* ── Settings ────────────────────────────────────────────────────────────── */
.cv5-sects { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.cv5-sect { background: #fff; border: 1px solid var(--cv5-line); border-radius: 12px; padding: 17px 19px; }
.cv5-sect.full { grid-column: 1 / -1; }
.cv5-sect h4 { font-size: 11.5px; text-transform: uppercase; letter-spacing: .06em; color: var(--cv5-navy); font-weight: 700; margin-bottom: 13px; display: flex; align-items: center; gap: 8px; }
.cv5-line { display: flex; align-items: center; gap: 10px; padding: 9px 0; border-bottom: 1px solid var(--cv5-line); font-size: 13px; }
.cv5-line:last-child { border-bottom: none; }
.cv5-line .nm { color: var(--cv5-ink); font-weight: 500; }
.cv5-line .meta { color: var(--cv5-ink3); font-size: 12px; margin-left: auto; text-align: right; }
.cv5-st { font-size: 11px; font-weight: 600; display: inline-flex; align-items: center; gap: 5px; color: var(--cv5-emer); }
/* Quiet "code" chip for the inbound address / SHA — sans face (no monospace),
   letter-spaced so it still reads as a machine token. */
.cv5-code { font-size: 12px; letter-spacing: .02em; background: #F1F3F6; padding: 3px 7px; border-radius: 5px; color: var(--cv5-ink2); }
.cv5-mini2 { font-size: 12px; font-weight: 600; color: var(--cv5-terra); border: 1px solid var(--cv5-terra); border-radius: 6px; padding: 4px 10px; cursor: pointer; background: #fff; }
.cv5-mini2:hover { background: var(--cv5-terra-soft); }

/* ── Self-explain layer ──────────────────────────────────────────────────── */
/* Explain-strip — the calm "What this is / Why it matters / How it works" band
   at the top of a panel. */
.cv5-explain {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 0;
  background: #fff; border: 1px solid var(--cv5-line); border-radius: 10px;
  overflow: hidden; margin-bottom: 14px;
}
.cv5-explain .x { padding: 12px 15px; border-right: 1px solid var(--cv5-line); }
.cv5-explain .x:last-child { border-right: none; }
.cv5-explain .k { font-size: 10px; text-transform: uppercase; letter-spacing: .07em; color: var(--cv5-terra); font-weight: 700; }
.cv5-explain .v { font-size: 12.5px; color: var(--cv5-ink2); margin-top: 4px; line-height: 1.5; }
/* Cadence banner — where a number comes from + how often it refreshes. */
.cv5-cadence { display: flex; align-items: center; gap: 9px; font-size: 12px; color: var(--cv5-ink3); background: var(--cv5-emer-soft); border-radius: 8px; padding: 9px 14px; margin-bottom: 14px; }
.cv5-cadence b { color: var(--cv5-ink2); font-weight: 600; }
/* Glossary term — dotted underline + CSS-only tooltip (hover / focus), no JS. */
.cv5-gl { position: relative; border-bottom: 1px dotted var(--cv5-ink3); cursor: help; }
.cv5-gl:focus { outline: none; }
.cv5-gl .cv5-tip {
  position: absolute; bottom: calc(100% + 8px); left: 50%; transform: translateX(-50%);
  width: max-content; max-width: 260px; background: var(--cv5-navy); color: #fff;
  font-size: 11.5px; line-height: 1.5; font-weight: 400; text-transform: none; letter-spacing: 0;
  padding: 8px 11px; border-radius: 8px; box-shadow: 0 10px 28px -12px rgba(0,0,0,.55);
  opacity: 0; visibility: hidden; transition: opacity .12s, visibility .12s; z-index: 40; text-align: left; pointer-events: none;
}
.cv5-gl .cv5-tip::after { content: ""; position: absolute; top: 100%; left: 50%; transform: translateX(-50%); border: 5px solid transparent; border-top-color: var(--cv5-navy); }
.cv5-gl:hover .cv5-tip, .cv5-gl:focus .cv5-tip, .cv5-gl:focus-within .cv5-tip { opacity: 1; visibility: visible; }

/* ── Contract drawer (slide-over) ────────────────────────────────────────── */
.cv5-scrim { position: fixed; inset: 0; background: rgba(15,18,24,.42); opacity: 0; visibility: hidden; transition: opacity .2s, visibility .2s; z-index: 60; }
.cv5-scrim.open { opacity: 1; visibility: visible; }
.cv5-drawer {
  position: fixed; top: 0; right: 0; height: 100vh; width: 760px; max-width: 96vw;
  background: var(--cv5-bg); transform: translateX(100%);
  transition: transform .26s cubic-bezier(.4, 0, .2, 1); z-index: 61;
  display: flex; flex-direction: column; box-shadow: -30px 0 70px -40px rgba(0,0,0,.55);
}
.cv5-drawer.open { transform: none; }
@media (prefers-reduced-motion: reduce) { .cv5-drawer { transition: none; } }
.cv5-drawer-inner { display: flex; flex-direction: column; height: 100%; min-height: 0; }
.cv5-dloading { padding: 40px 22px; color: var(--cv5-ink3); font-size: 13px; }

.cv5-dtop { background: #fff; border-bottom: 1px solid var(--cv5-line); padding: 15px 22px; display: flex; align-items: flex-start; gap: 14px; }
.cv5-dtop .cp { font-size: 12px; color: var(--cv5-ink3); font-weight: 600; }
.cv5-dtop h3 { font-size: 18px; font-weight: 700; letter-spacing: -.01em; margin-top: 2px; }
.cv5-dtop .x { margin-left: auto; font-size: 22px; color: var(--cv5-ink3); cursor: pointer; line-height: 1; background: none; border: none; }
.cv5-dtop .x:hover { color: var(--cv5-ink); }
.cv5-dbody { overflow: auto; padding: 18px 22px 40px; }

.cv5-facts { display: flex; flex-wrap: wrap; gap: 0; background: #fff; border: 1px solid var(--cv5-line); border-radius: 10px; overflow: hidden; margin-bottom: 14px; }
.cv5-facts .f { padding: 11px 15px; border-right: 1px solid var(--cv5-line); border-bottom: 1px solid var(--cv5-line); flex: 1; min-width: 120px; }
.cv5-facts .f .k { font-size: 10.5px; text-transform: uppercase; letter-spacing: .04em; color: var(--cv5-ink3); font-weight: 600; }
.cv5-facts .f .v { font-size: 13.5px; font-weight: 600; margin-top: 3px; }
.cv5-ctrls { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 14px; }
.cv5-ctrls .c { font-size: 12px; font-weight: 600; color: var(--cv5-ink2); border: 1px solid var(--cv5-line-strong); border-radius: 7px; padding: 6px 11px; background: #fff; }
.cv5-ctrls .c:hover { border-color: var(--cv5-navy); }
.cv5-rvw { font-size: 11.5px; font-weight: 600; display: inline-flex; align-items: center; gap: 6px; padding: 6px 11px; border-radius: 7px; background: var(--cv5-amber-soft); color: var(--cv5-amber); }
.cv5-rvw.ok { background: var(--cv5-emer-soft); color: var(--cv5-emer); }

.cv5-urg { background: var(--cv5-rose-soft); border: 1px solid var(--cv5-rose-border); border-left: 3px solid var(--cv5-terra); border-radius: 10px; padding: 13px 16px; margin-bottom: 14px; display: flex; align-items: center; gap: 13px; }
.cv5-urg .n { font-size: 22px; font-weight: 700; color: var(--cv5-rose); line-height: 1; }
.cv5-urg .t { font-weight: 700; font-size: 13.5px; }
.cv5-urg .s { font-size: 12px; color: var(--cv5-ink2); }

.cv5-wband {
  background: var(--cv5-navy); color: #fff; font-size: 11.5px; font-weight: 700;
  letter-spacing: .05em; text-transform: uppercase; padding: 9px 15px; border-radius: 8px 8px 0 0;
  display: flex; align-items: center; gap: 10px;
}
.cv5-wband .sum { margin-left: auto; font-weight: 500; color: #C4CCD9; text-transform: none; letter-spacing: 0; font-size: 12px; }
.cv5-wbody { background: #fff; border: 1px solid var(--cv5-line); border-top: none; border-radius: 0 0 8px 8px; padding: 14px 16px; margin-bottom: 14px; }

.cv5-risk { border: 1px solid var(--cv5-line); border-left: 4px solid var(--cv5-rose); border-radius: 9px; padding: 13px 15px; margin-bottom: 10px; }
.cv5-risk:last-child { margin-bottom: 0; }
.cv5-risk.amber { border-left-color: var(--cv5-amber); }
.cv5-risk.low { border-left-color: var(--cv5-slate); }
.cv5-risk .rt { display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 700; flex-wrap: wrap; }
.cv5-risk .sev { font-size: 10px; font-weight: 700; color: #fff; background: var(--cv5-rose); border-radius: 4px; padding: 1px 6px; text-transform: uppercase; }
.cv5-risk .sev.a { background: var(--cv5-amber); }
.cv5-risk .sev.l { background: var(--cv5-slate); }
.cv5-risk .cch { margin-left: auto; font-size: 11px; color: var(--cv5-terra); font-weight: 600; cursor: pointer; background: none; border: none; }
.cv5-risk .q { font-style: italic; color: var(--cv5-ink); background: #FBFAF8; border: 1px solid var(--cv5-line); border-radius: 8px; padding: 10px 13px; margin-top: 10px; font-size: 13.5px; line-height: 1.55; }
.cv5-risk .q .src { font-style: normal; color: var(--cv5-terra); font-weight: 600; font-size: 11px; display: block; margin-top: 6px; }
.cv5-risk .ex { font-size: 12.5px; color: var(--cv5-ink2); margin-top: 8px; }
.cv5-risk .aff { font-size: 12px; color: var(--cv5-ink3); margin-top: 5px; }

.cv5-collap { background: #fff; border: 1px solid var(--cv5-line); border-radius: 8px; padding: 11px 15px; margin-bottom: 10px; display: flex; align-items: center; gap: 9px; font-size: 13px; color: var(--cv5-ink2); cursor: pointer; }
.cv5-collap[open] { display: block; }
.cv5-collap summary { display: flex; align-items: center; gap: 9px; list-style: none; cursor: pointer; }
.cv5-collap summary::-webkit-details-marker { display: none; }
.cv5-collap .cv { margin-left: auto; color: var(--cv5-ink3); font-size: 12px; }

.cv5-dlrow { display: flex; align-items: center; gap: 13px; padding: 10px 0; border-bottom: 1px solid var(--cv5-line); font-size: 13px; }
.cv5-dlrow:last-child { border-bottom: none; }
.cv5-dlrow .days { width: 56px; text-align: center; }
.cv5-dlrow .days .nn { font-size: 18px; font-weight: 700; line-height: 1; }
.cv5-dlrow.hot .days .nn { color: var(--cv5-rose); }
.cv5-dlrow .days .uu { font-size: 10px; color: var(--cv5-ink3); text-transform: uppercase; }
.cv5-dlrow .t { font-weight: 600; }
.cv5-dlrow .s { font-size: 12px; color: var(--cv5-ink2); }
.cv5-dlrow .cch { margin-left: auto; font-size: 11px; color: var(--cv5-terra); font-weight: 600; cursor: pointer; background: none; border: none; }

.cv5-field { display: grid; grid-template-columns: 8px 150px 1fr auto; gap: 11px; align-items: baseline; padding: 9px 0; border-bottom: 1px solid var(--cv5-line); font-size: 13px; }
.cv5-field:last-child { border-bottom: none; }
.cv5-field .fk { color: var(--cv5-ink3); font-size: 12px; font-weight: 600; }
.cv5-field .fv { color: var(--cv5-ink); font-weight: 600; }
.cv5-field .fc { font-size: 11px; color: var(--cv5-terra); font-weight: 600; cursor: pointer; background: none; border: none; }
.cv5-field .fdot { width: 8px; height: 8px; border-radius: 50%; align-self: center; }

.cv5-ev { background: #fff; border: 1px solid var(--cv5-line); border-top: none; border-radius: 0 0 8px 8px; padding: 14px 16px; margin-bottom: 14px; }
.cv5-leg { display: flex; gap: 14px; font-size: 11.5px; color: var(--cv5-ink3); margin-bottom: 11px; flex-wrap: wrap; }
.cv5-leg .l { display: inline-flex; align-items: center; gap: 6px; }
.cv5-leg .sw { width: 20px; height: 12px; border-radius: 3px; }
.cv5-doc { font-size: 13.5px; line-height: 1.9; color: var(--cv5-ink2); }
.cv5-doc .pgnum { color: var(--cv5-ink3); font-size: 12px; font-weight: 600; }
.cv5-doc mark { border-radius: 2px; padding: 0 2px; }
.cv5-doc mark.g { background: var(--cv5-hl-g); }
.cv5-doc mark.a { background: var(--cv5-hl-a); }
.cv5-doc mark.r { background: var(--cv5-hl-r); }

.cv5-diff { background: #fff; border: 1px solid var(--cv5-line); border-radius: 9px; padding: 14px 16px; margin-bottom: 14px; }
.cv5-diff h5 { font-size: 13px; font-weight: 700; margin-bottom: 10px; }
.cv5-dch { font-size: 12.5px; padding: 8px 0; border-bottom: 1px solid var(--cv5-line); }
.cv5-dch:last-child { border-bottom: none; }
.cv5-dch .tag { font-size: 10px; font-weight: 700; padding: 1px 6px; border-radius: 4px; text-transform: uppercase; margin-right: 8px; }
.cv5-dch .tag.ch { background: var(--cv5-amber-soft); color: var(--cv5-amber); }
.cv5-dch .tag.ad { background: var(--cv5-emer-soft); color: var(--cv5-emer); }
.cv5-dch .tag.rm { background: var(--cv5-rose-soft); color: var(--cv5-rose); }
.cv5-dch .old { text-decoration: line-through; color: var(--cv5-ink3); }
.cv5-dch .new { font-weight: 600; color: var(--cv5-ink); }

.cv5-prov { font-size: 12px; color: var(--cv5-ink2); background: var(--cv5-emer-soft); border-radius: 8px; padding: 11px 14px; margin-bottom: 14px; display: flex; align-items: flex-start; gap: 9px; }
.cv5-prov .ok { color: var(--cv5-emer); font-weight: 600; }
.cv5-discl { border-left: 3px solid var(--cv5-terra); background: #fff; border-radius: 0 8px 8px 0; padding: 11px 15px; font-size: 12px; color: var(--cv5-ink3); margin-bottom: 8px; }
.cv5-fp { font-size: 11.5px; color: var(--cv5-ink3); letter-spacing: .01em; }

/* Reuse the site-wide cited-evidence flash (contract-evidence.js) inside the
   drawer — a soft ring so the value <-> source pair glows on click. */
.cv5 .ataski-cite-flash { box-shadow: 0 0 0 2px var(--cv5-terra); border-radius: 6px; transition: box-shadow .2s; }

/* Action-outcome + capacity notices (audit-fix banners ported from the
   legacy templates; same closed-set flash contract as detail.html). */
.cv5-notice { display: flex; align-items: center; gap: 8px; margin: 0 0 14px; padding: 10px 14px; border-radius: 10px; font-size: 13px; line-height: 1.45; }
.cv5-notice.ok { background: #ecfdf5; color: #065f46; border: 1px solid #a7f3d0; }
.cv5-notice.warn { background: #fffbeb; color: #92400e; border: 1px solid #fde68a; }
.cv5-notice.err { background: #fff1f2; color: #9f1239; border: 1px solid #fecdd3; }

/* ── Responsive ──────────────────────────────────────────────────────────── */
@media (max-width: 1000px) {
  .cv5-cards3, .cv5-kband, .cv5-sects, .cv5-explain { grid-template-columns: 1fr; }
  .cv5-grid { display: block; overflow-x: auto; white-space: nowrap; }
}

/* ============================================================================
   FP&A-specific cockpit components — appended to the .cv5 fork above.
   Carry the finance work-core (fundamentals band, compact cash chart, ranked
   "what changed" work cards, editable driver tree, monthly-close layout,
   grounded ask-bar). All scoped under .cv5 like everything else.
   ============================================================================ */

/* Department marker — an emerald finance dot on the role label (the ONLY thing
   that distinguishes the FP&A cockpit from the navy Legal one). */
.cv5.cv5-fpa .cv5-role .b { background: #15803D; }

/* Small read-only business-type + entities chips in the sub-bar (link to Setup). */
.cv5-chip {
  font-size: 11.5px; font-weight: 600; color: var(--cv5-ink2);
  border: 1px solid var(--cv5-line-strong); border-radius: 999px; padding: 4px 11px;
  display: inline-flex; align-items: center; gap: 6px; white-space: nowrap;
}
.cv5-chip:hover { border-color: var(--cv5-navy); color: var(--cv5-ink); }
.cv5-chip .k { color: var(--cv5-ink3); font-weight: 600; }
.cv5-chip .dot { width: 7px; height: 7px; border-radius: 50%; background: #15803D; }
.cv5-subchips { margin-left: auto; display: flex; align-items: center; gap: 8px; }

/* Segmented sub-control — ONE clean level inside a tab (no second nav bar). */
.cv5-seg { display: flex; flex-wrap: wrap; gap: 0; margin: 0 0 16px; }
.cv5-seg a {
  font-size: 12.5px; font-weight: 600; color: var(--cv5-ink3);
  padding: 7px 15px; border: 1px solid var(--cv5-line-strong); border-right: none; white-space: nowrap;
}
.cv5-seg a:first-child { border-radius: 7px 0 0 7px; }
.cv5-seg a:last-child { border-right: 1px solid var(--cv5-line-strong); border-radius: 0 7px 7px 0; }
.cv5-seg a:hover { color: var(--cv5-ink); }
.cv5-seg a.on { background: var(--cv5-navy); color: #fff; border-color: var(--cv5-navy); }

/* Fundamentals band — the KPI strip (compact, tabular, per-tile abstain). */
.cv5-kpis { display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; margin-bottom: 14px; }
.cv5-kpi { background: #fff; border: 1px solid var(--cv5-line); border-radius: 10px; padding: 12px 14px; min-width: 0; }
.cv5-kpi .l { font-size: 10px; text-transform: uppercase; letter-spacing: .05em; color: var(--cv5-ink3); font-weight: 700; display: flex; align-items: center; gap: 5px; }
.cv5-kpi .v { font-size: 21px; font-weight: 700; letter-spacing: -.01em; margin-top: 6px; font-variant-numeric: tabular-nums; line-height: 1.1; }
.cv5-kpi .v.abst { color: var(--cv5-ink4); font-weight: 600; font-size: 18px; }
.cv5-kpi .s { font-size: 11px; color: var(--cv5-ink3); margin-top: 4px; line-height: 1.4; }
@media (max-width: 1100px) { .cv5-kpis { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 620px) { .cv5-kpis { grid-template-columns: repeat(2, 1fr); } }

/* Compact cash chart card. */
.cv5-chart { background: #fff; border: 1px solid var(--cv5-line); border-radius: 12px; padding: 15px 18px 12px; margin-bottom: 14px; }
.cv5-chart .hd { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 8px; flex-wrap: wrap; }
.cv5-chart .hd h4 { font-size: 13px; font-weight: 700; }
.cv5-chart .hd .sub { font-size: 11.5px; color: var(--cv5-ink3); }
.cv5-chart .cv5-plot { position: relative; width: 100%; }
.cv5-chart canvas { width: 100%; height: 190px; display: block; }
.cv5-chart svg { width: 100%; height: auto; max-height: 200px; display: block; }
/* The cash-forecast island mounts a JS-drawn SVG in a div that ships with a
   Tailwind ``min-h-[180px]`` — cap it hard so the chart stays compact (the
   founder's "график слишком огромный"). Override min-height + pin a height so
   the SVG scales to fill instead of growing tall. */
.cv5-chart [data-fpa-cash-chart] { min-height: 0 !important; height: 200px; }
.cv5-chart [data-fpa-cash-chart] svg { width: 100%; height: 100%; max-height: 200px; }
.cv5-chart .lg { display: flex; gap: 16px; font-size: 11px; color: var(--cv5-ink3); margin-top: 8px; flex-wrap: wrap; }
.cv5-chart .lg .i { display: inline-flex; align-items: center; gap: 6px; }
.cv5-chart .lg .sw { width: 16px; height: 3px; border-radius: 2px; }
/* Scenario toggle on the chart card (base / upside / downside buttons wired
   to setActiveScenario in fpa-cash-chart.js via [data-fpa-scenario-toggle]). */
.cv5-scen { display: flex; gap: 0; }
.cv5-scen button {
  font-size: 12px; font-weight: 600; color: var(--cv5-ink3);
  padding: 5px 12px; border: 1px solid var(--cv5-line-strong); border-right: none;
  background: #fff; white-space: nowrap; cursor: pointer;
}
.cv5-scen button:first-child { border-radius: 7px 0 0 7px; }
.cv5-scen button:last-child { border-right: 1px solid var(--cv5-line-strong); border-radius: 0 7px 7px 0; }
.cv5-scen button:hover { color: var(--cv5-ink); }
.cv5-scen button.on { background: var(--cv5-navy); color: #fff; border-color: var(--cv5-navy); }

/* Ranked "what changed" work cards (the Today briefing core). */
.cv5-wc { background: #fff; border: 1px solid var(--cv5-line); border-left: 3px solid var(--cv5-amber); border-radius: 10px; padding: 14px 16px; margin-bottom: 12px; }
.cv5-wc.hi { border-left-color: var(--cv5-terra); }
.cv5-wc .wh { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.cv5-wc .tag { font-size: 13px; font-weight: 700; color: var(--cv5-ink); text-transform: capitalize; }
.cv5-wc .bdg { font-size: 9.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--cv5-ink3); background: #F1F3F6; border-radius: 4px; padding: 2px 7px; }
.cv5-wc .imp { margin-left: auto; font-weight: 700; font-variant-numeric: tabular-nums; font-size: 14px; }
.cv5-wc .impu { font-size: 9.5px; color: var(--cv5-ink3); text-transform: uppercase; letter-spacing: .08em; text-align: right; margin-top: 1px; }
.cv5-wc .obs { font-size: 13.5px; color: var(--cv5-ink); line-height: 1.6; margin-top: 9px; }
.cv5-wc .why { font-size: 12.5px; color: var(--cv5-ink2); margin-top: 9px; background: #FBFAF8; border: 1px solid var(--cv5-line); border-radius: 8px; padding: 9px 12px; }
.cv5-wc .why .h { font-weight: 700; text-transform: uppercase; font-size: 9.5px; letter-spacing: .08em; color: var(--cv5-ink3); }
.cv5-wc .why .ln { font-variant-numeric: tabular-nums; margin-top: 3px; }
.cv5-wc .chk { font-size: 12.5px; color: var(--cv5-ink2); margin-top: 9px; display: flex; gap: 8px; }
.cv5-wc .chk .h { font-weight: 700; text-transform: uppercase; font-size: 9.5px; letter-spacing: .08em; color: var(--cv5-terra); white-space: nowrap; padding-top: 2px; }
.cv5-wc .acts { display: flex; gap: 7px; flex-wrap: wrap; margin-top: 12px; }
.cv5-wc .a { font-size: 12px; font-weight: 600; padding: 6px 12px; border-radius: 7px; border: 1px solid var(--cv5-line-strong); background: #fff; color: var(--cv5-ink2); display: inline-flex; align-items: center; gap: 6px; }
.cv5-wc .a:hover { border-color: var(--cv5-navy); color: var(--cv5-ink); }
.cv5-wc .a.pri { background: var(--cv5-terra); color: #fff; border-color: var(--cv5-terra); }
.cv5-wc .a.pri:hover { background: var(--cv5-terra-ink); border-color: var(--cv5-terra-ink); }
.cv5-wc .a.mut { color: var(--cv5-ink4); cursor: default; }

/* Section card (generic titled block; Model / Close / Board sections). */
.cv5-card { background: #fff; border: 1px solid var(--cv5-line); border-radius: 12px; padding: 16px 18px; margin-bottom: 14px; }
.cv5-card > h3 { font-size: 13.5px; font-weight: 700; letter-spacing: -.01em; margin-bottom: 4px; }
.cv5-card > .sub { font-size: 12px; color: var(--cv5-ink3); margin-bottom: 12px; }
.cv5-card.navy { background: var(--cv5-navy); color: #fff; border-color: var(--cv5-navy); }
.cv5-card.navy > h3 { color: #fff; }

/* Editable driver tree. */
.cv5-tree { font-size: 13px; }
.cv5-node { display: flex; align-items: center; gap: 10px; padding: 9px 0; border-bottom: 1px solid var(--cv5-line); }
.cv5-node:last-child { border-bottom: none; }
.cv5-node .nm { font-weight: 600; color: var(--cv5-ink); }
.cv5-node .nm .lv { color: var(--cv5-ink3); font-weight: 400; margin-left: 6px; font-size: 11.5px; }
.cv5-node .val { margin-left: auto; font-weight: 700; font-variant-numeric: tabular-nums; }
.cv5-node input.edit { width: 108px; text-align: right; font: inherit; font-size: 13px; font-variant-numeric: tabular-nums; border: 1px solid var(--cv5-line-strong); border-radius: 6px; padding: 5px 8px; background: #fff; color: var(--cv5-ink); }
.cv5-node input.edit:focus { outline: none; border-color: var(--cv5-terra); }
.cv5-delta { background: var(--cv5-navy); color: #fff; border-radius: 10px; padding: 13px 16px; margin-top: 12px; font-size: 13px; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.cv5-delta b { font-variant-numeric: tabular-nums; }
.cv5-delta .arrow { color: #F4A26B; font-weight: 700; }

/* Two-column layout for the wider work tabs. */
.cv5-2col { display: grid; grid-template-columns: 1.3fr 1fr; gap: 14px; align-items: start; }
@media (max-width: 1000px) { .cv5-2col { grid-template-columns: 1fr; } }

/* Assumptions / notes list. */
.cv5-notes { font-size: 12px; color: var(--cv5-ink2); }
.cv5-notes li { padding: 3px 0; }

/* ============================================================================
   .cv5 completion of the .v5 migration (G16, 2026-07-06)
   ----------------------------------------------------------------------------
   Since PR #883 the FP&A chrome root is ``.cv5`` — no ``.v5-root`` ancestor
   exists on any FP&A page, so every ``var(--v5-*)`` there resolved to nothing
   (transparent drawer, invisible verdict icons, vanished banner tints). Three
   layers close it:

   1. COMPAT TOKENS — ``--v5-*`` custom properties re-declared on ``.cv5`` and
      mapped onto the ``--cv5-*`` palette, so any residual ``var(--v5-…)``
      (HTMX fragments cached in flight, downstream forks) resolves on-palette
      instead of silently disappearing. Defence in depth; the templates below
      are ported off them.
   2. DRAWER CHROME — partials/v5/_evidence_drawer.html keeps its ``.v5-*``
      class names (shared naming contract with dashboard-v5.js), so its chrome
      is styled here under the ``.cv5`` scope with cv5 tokens. This lets the
      FP&A base drop the dashboard-v5.css stylesheet entirely (other roles
      keep loading it from their own bases).
   3. PORTED COMPONENTS — the .cv5 equivalents of the legacy fragment
      vocabulary (info banner, navy button, section shell, evidence body,
      verdict chip) consumed by the re-skinned HTMX fragments.
   ============================================================================ */

/* 1 — compat ``--v5-*`` tokens (mapped onto the cv5 palette). */
.cv5 {
  --v5-bg: var(--cv5-bg);
  --v5-card: var(--cv5-card);
  --v5-ink: var(--cv5-ink);
  --v5-ink2: var(--cv5-ink2);
  --v5-ink3: var(--cv5-ink3);
  --v5-line: var(--cv5-line);
  --v5-lineS: var(--cv5-line-strong);
  --v5-navy: var(--cv5-navy);
  --v5-amber: var(--cv5-amber);
  --v5-amber-s: var(--cv5-amber-soft);
  --v5-amber-b: var(--cv5-amber-border);
  --v5-rose: var(--cv5-rose);
  --v5-rose-s: var(--cv5-rose-soft);
  --v5-rose-b: var(--cv5-rose-border);
  --v5-emer: var(--cv5-emer);
  --v5-emer-s: var(--cv5-emer-soft);
  --v5-slate: var(--cv5-slate);
  --v5-info: var(--cv5-info);
  --v5-info-s: var(--cv5-info-soft);
  --v5-info-b: var(--cv5-info-border);
  --v5-dept: var(--cv5-terra);
  --v5-dept-s: var(--cv5-terra-soft);
  --v5-dept-b: var(--cv5-amber-border);
}

/* 2 — evidence drawer chrome (ported from dashboard-v5.css, cv5 tokens).
   dashboard-v5.js toggles ``.v5-open`` on #v5-evd + #v5-scrim. */
.cv5 .v5-scrim {
  position: fixed; inset: 0; background: rgba(15, 18, 24, .42);
  opacity: 0; visibility: hidden; transition: opacity .2s, visibility .2s; z-index: 60;
}
.cv5 .v5-scrim.v5-open { opacity: 1; visibility: visible; }
.cv5 .v5-evd {
  position: fixed; top: 0; right: 0; height: 100vh; width: 560px; max-width: 96vw;
  background: var(--cv5-bg); transform: translateX(100%);
  transition: transform .26s cubic-bezier(.4, 0, .2, 1); z-index: 61;
  display: flex; flex-direction: column; box-shadow: -30px 0 70px -40px rgba(0, 0, 0, .55);
}
.cv5 .v5-evd.v5-open { transform: none; }
@media (prefers-reduced-motion: reduce) { .cv5 .v5-evd { transition: none; } }
.cv5 .v5-evd .v5-top2 {
  background: var(--cv5-card); border-bottom: 1px solid var(--cv5-line);
  padding: 15px 22px; display: flex; align-items: flex-start; gap: 14px;
}
.cv5 .v5-evd .v5-top2 .v5-eb { font-size: 11px; color: var(--cv5-terra); text-transform: uppercase; font-weight: 700; }
.cv5 .v5-evd .v5-top2 h3 { font-size: 17px; font-weight: 700; margin-top: 2px; }
.cv5 .v5-evd .v5-top2 .v5-x {
  margin-left: auto; font-size: 22px; color: var(--cv5-ink3); cursor: pointer;
  background: none; border: none; line-height: 1; font-family: inherit;
}
.cv5 .v5-evd .v5-body { overflow: auto; padding: 18px 22px 40px; }
/* dashboard-v5.js injects <p class="v5-mut"> as the drawer's loading state. */
.cv5 .v5-mut { color: var(--cv5-ink3); }

/* 3a — info banner with label rows (the .cv5 port of the legacy
   .v5-explain/.v5-erow/.v5-lbl fragment vocabulary). */
.cv5-info {
  background: var(--cv5-info-soft); border: 1px solid var(--cv5-info-border);
  border-radius: 10px; padding: 11px 15px; margin-bottom: 14px;
  font-size: 13px; color: var(--cv5-ink2); line-height: 1.5;
}
.cv5-info b { color: var(--cv5-info); }
.cv5-info .row { display: flex; gap: 6px; margin-top: 3px; }
.cv5-info .row:first-child { margin-top: 0; }
.cv5-info .lbl { color: var(--cv5-info); font-weight: 700; min-width: 60px; flex: none; }
.cv5-info.amber { background: var(--cv5-amber-soft); border-color: var(--cv5-amber-border); }
.cv5-info.amber .lbl, .cv5-info.amber b { color: var(--cv5-amber); }
.cv5-info.rose { background: var(--cv5-rose-soft); border-color: var(--cv5-rose-border); }
.cv5-info.rose .lbl, .cv5-info.rose b { color: var(--cv5-rose); }
.cv5-info.emer { background: var(--cv5-emer-soft); border-color: var(--cv5-emer-border); }
.cv5-info.emer .lbl, .cv5-info.emer b { color: var(--cv5-emer); }

/* 3b — navy button variant (legacy .v5-btn.v5-navy). */
.cv5-btn.navy { background: var(--cv5-navy); border-color: var(--cv5-navy); color: #fff; }
.cv5-btn.navy:hover { background: var(--cv5-navy2); border-color: var(--cv5-navy2); }

/* 3c — section shell wrapping a .cv5-band header (legacy .v5-sec). */
.cv5-sec {
  background: var(--cv5-card); border: 1px solid var(--cv5-line);
  border-radius: 12px; margin-bottom: 14px; overflow: hidden;
}

/* 3d — evidence-drawer body vocabulary (legacy .v5-bignum / .v5-srcline /
   .v5-srcbdg). .cv5-discl / .cv5-grid already exist above. */
.cv5-bignum { font-size: 32px; font-weight: 700; }
.cv5-srcline { display: flex; gap: 8px; align-items: center; margin: 10px 0 16px; font-size: 12.5px; color: var(--cv5-ink2); }
.cv5-srcbdg { font-size: 11px; font-weight: 700; color: #fff; background: var(--cv5-navy); border-radius: 5px; padding: 2px 8px; }

/* 3e — second-model verdict chip (legacy .v5-verdict). */
.cv5-verdict {
  font-size: 12px; color: var(--cv5-ink2); background: var(--cv5-emer-soft);
  border-radius: 8px; padding: 11px 14px; margin: 8px 0 14px;
  display: flex; gap: 9px; align-items: center;
}
.cv5-verdict.d { background: var(--cv5-rose-soft); }

/* ── Practice-console W2 — client-book switcher (cockpit sub-bar) ─────────
   Renders only for flag-ON multi-entity tenants (templates/fpa/_base.html).
   Sits at the right edge of the sub-bar, after the business-type chip. */
.cv5-entswitch { margin-left: auto; display: flex; align-items: center; gap: 7px; }
.cv5-subchips + .cv5-entswitch { margin-left: 10px; }
.cv5-entswitch .k {
  font-size: 10.5px; font-weight: 600; color: var(--cv5-ink3);
  text-transform: uppercase; letter-spacing: .04em; white-space: nowrap;
}
.cv5-entswitch select {
  font-size: 12.5px; font-family: inherit; color: var(--cv5-ink);
  background: #fff; border: 1px solid var(--cv5-line-strong);
  border-radius: 7px; padding: 4px 8px; max-width: 220px;
}

/* Portfolio home (/app/fpa/portfolio) — the per-book status card grid. */
.cv5-portfolio { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 14px; }
.cv5-pfcard .hd { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; margin-bottom: 8px; }
.cv5-pfcard .hd .nm { font-weight: 700; font-size: 15px; color: var(--cv5-ink); }
.cv5-pfcard .facts { display: grid; gap: 5px; font-size: 12.5px; color: var(--cv5-ink2); margin: 8px 0 10px; }
.cv5-pfcard .facts .k { color: var(--cv5-ink3); font-weight: 600; margin-right: 4px; }
.cv5-pfcard .next { border-top: 1px solid var(--cv5-line); padding-top: 10px; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
