/* ============================================================================
   Contract Manager — v5 cockpit re-skin (dashboard-v5 rollout, Window 2)
   ----------------------------------------------------------------------------
   Ported from the founder-approved sample (c:/tmp/ataski-contract-sample/
   v3-prod.html) into the real product. 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 Inter,
       NO monospace anywhere in the customer UI (SHA / email render as a quiet
       ``.cv5-code`` chip in the sans face, letter-spaced).
     • Fraunces serif stays on Legal headings via ``.legal-role`` (base wrapper).
     • Terracotta = the single action accent; navy = the Legal department band.
     • CSP-safe: no @import of remote fonts; interaction lives in contract-v5.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-slate: #64748B;

  /* 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; }
}
