/* AI Trust Map dashboard, Report v2.
   Premium comes from hierarchy, spacing and evidence, not an editorial serif: every heading in
   the customer Trust Map experience is set in the product sans. Loaded last on purpose so the
   overrides below beat the retired serif rules that still live in older stylesheets. */

#cm-ready h1, #cm-ready h2, #cm-ready h3, #cm-ready h4,
.cmw-wait h1, .cmw-report-cover h1, .cmw-card h2, .cmw-hero h1,
.cmw-section-head h2, .cmw-strategy h2, .cmw-card-flat h2, .cmw-insight-card h3,
.cmw-glance-head h2, .aia-detail-head h3, .aia-reader-top h3 {
  font-family: var(--font-h, Inter, system-ui, sans-serif) !important;
  font-weight: 750;
  letter-spacing: -.025em;
}
.cmw-wait h1 { font-size: 30px; }
.cmw-section-head h2, .cmw-card-flat h2, .cmw-insight-card h3 { font-size: 24px; line-height: 1.15; }
.cmw-report-cover h1 { font-size: clamp(30px, 4.2vw, 44px); line-height: 1.05; }

/* Anchored but retired: entity-health inserts its business-details panel after this node. */
.cmv2-hidden-anchor { display: none !important; }

/* ── Executive summary ─────────────────────────────────────────────────────── */
.cmv2-exec { background: var(--navy, #060b18); color: #fff; border-radius: 18px; padding: 26px 26px 20px; overflow: hidden; position: relative; }
.cmv2-exec:before { content: ""; position: absolute; right: -110px; top: -140px; width: 340px; height: 340px; border-radius: 50%; background: radial-gradient(circle, rgba(34,211,238,.16), transparent 70%); }
.cmv2-exec-top { position: relative; display: grid; grid-template-columns: auto minmax(0,1fr); gap: 24px; align-items: center; }
.cmv2-ring-wrap { display: grid; justify-items: center; gap: 8px; width: 132px; }
.cmv2-ring { width: 116px; height: 116px; border-radius: 50%; display: grid; place-items: center;
  background: conic-gradient(#22d3ee calc(var(--cmv2-rate, 0) * 1%), rgba(255,255,255,.12) 0); }
.cmv2-ring::after { content: ""; position: absolute; width: 96px; height: 96px; border-radius: 50%; background: var(--navy, #060b18); }
.cmv2-ring strong { position: relative; z-index: 1; font-size: 27px; font-weight: 800; font-variant-numeric: tabular-nums; }
.cmv2-ring-caption { color: #9fb0c6; font-size: 10.5px; font-weight: 600; text-align: center; line-height: 1.35; max-width: 130px; }
.cmv2-kicker { display: block; color: #7de4f2; font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.cmv2-exec-copy h1 { margin: 9px 0 10px; font-size: clamp(24px, 3.4vw, 36px); line-height: 1.12; }
.cmv2-exec-copy p { margin: 0; max-width: 640px; color: #c4cfdd; font-size: 15px; line-height: 1.55; }
.cmv2-metrics { position: relative; display: grid; grid-template-columns: repeat(5, 1fr); gap: 1px; margin-top: 22px; background: rgba(255,255,255,.09); border: 1px solid rgba(255,255,255,.09); border-radius: 12px; overflow: hidden; }
.cmv2-metric { background: rgba(255,255,255,.035); padding: 14px 14px 12px; }
.cmv2-metric strong { display: block; font-size: 24px; font-weight: 800; line-height: 1.05; font-variant-numeric: tabular-nums; white-space: nowrap; }
.cmv2-metric span { display: block; margin-top: 5px; color: #b8c4d4; font-size: 10.5px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.cmv2-metric small { display: block; margin-top: 4px; color: #8d9cb0; font-size: 10.5px; line-height: 1.4; }
.cmv2-exec-bottom { position: relative; margin-top: 16px; padding-top: 14px; border-top: 1px solid rgba(255,255,255,.1); display: grid; gap: 6px; }
.cmv2-exec-bottom span { display: block; color: #7de4f2; font-size: 10px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.cmv2-exec-segments { padding-bottom: 8px; border-bottom: 1px solid rgba(255,255,255,.08); margin-bottom: 4px; }
.cmv2-exec-segments small { color: #b8c4d4; font-size: 11.5px; line-height: 1.5; display: block; margin-top: 3px; }
.cmv2-exec-bottom strong { font-size: 15px; line-height: 1.4; }
.cmv2-exec-bottom small { color: #8d9cb0; font-size: 11px; line-height: 1.45; }

/* ── Shared section chrome ─────────────────────────────────────────────────── */
.cmv2-section { margin-top: 30px; }
.cmv2-section h2 { margin: 0 0 8px; font-size: 24px; line-height: 1.15; }
.cmv2-lead { margin: 0 0 14px; max-width: 760px; color: var(--muted, #64748b); font-size: 14px; line-height: 1.6; }

.cmv2-fixitems { margin: 0 0 16px; }
.cmv2-fixitem { background: #fff; border: 1px solid var(--line, #e2e8f0); border-left: 3px solid #b45309; border-radius: 13px; padding: 14px 18px; margin-top: 10px; }
.cmv2-fixitem > b { font-size: 15px; }
.cmv2-fixitem ul { margin: 8px 0; padding-left: 20px; }
.cmv2-fixitem li { margin: 0 0 5px; color: #334155; font-size: 13px; line-height: 1.55; }
.cmv2-fixitem p { margin: 6px 0 0; color: #475569; font-size: 12.5px; line-height: 1.5; word-break: break-word; }

/* ── Where you're being missed ─────────────────────────────────────────────── */
.cmv2-gaps { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 12px; margin-top: 14px; }
.cmv2-gap { background: #fff; border: 1px solid var(--line, #e2e8f0); border-radius: 13px; padding: 16px; }
.cmv2-gap-tag { display: inline-flex; padding: 4px 8px; border-radius: 999px; background: #fff4e5; color: #935d10; font-size: 9.5px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.cmv2-gap-strength .cmv2-gap-tag { background: #eaf8ef; color: #16723a; }
.cmv2-gap p { margin: 10px 0 0; color: #334155; font-size: 13.5px; line-height: 1.55; }
.cmv2-gap-meter { margin-top: 12px; height: 5px; border-radius: 999px; background: #eef1f5; overflow: hidden; }
.cmv2-gap-meter span { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, #fb923c, #fcd34d); }
.cmv2-gap small { display: block; margin-top: 7px; color: var(--muted, #64748b); font-size: 11px; }

/* ── Plan ──────────────────────────────────────────────────────────────────── */
.cmv2-steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 12px; margin-top: 6px; }
.cmv2-step { background: #fff; border: 1px solid var(--line, #e2e8f0); border-radius: 13px; padding: 18px; }
.cmv2-step span { display: inline-flex; padding: 4px 9px; border-radius: 999px; background: rgba(47,128,255,.09); color: var(--seo, #2f80ff); font-size: 10px; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.cmv2-step h3 { margin: 10px 0 6px; font-size: 17px; }
.cmv2-step p { margin: 0; color: var(--muted, #64748b); font-size: 13px; line-height: 1.55; }

/* ── Priority cards ────────────────────────────────────────────────────────── */
.cmv2-priorities { display: grid; gap: 14px; margin-top: 14px; }
.cmv2-priority { background: #fff; border: 1px solid #d8e1ec; border-radius: 15px; overflow: hidden; box-shadow: 0 1px 2px rgba(15,23,42,.03); }
.cmv2-priority header { display: flex; align-items: center; gap: 12px; padding: 15px 18px; border-bottom: 1px solid #edf1f5; background: #fbfcfe; }
.cmv2-rank { display: grid; place-items: center; width: 34px; height: 34px; flex: 0 0 34px; border-radius: 10px; background: var(--ink, #0f172a); color: #fff; font-size: 15px; font-weight: 800; }
.cmv2-priority header h3 { margin: 0; font-size: 17px; word-break: break-word; }
.cmv2-priority header small { display: block; margin-top: 1px; color: var(--muted, #64748b); font-size: 10px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.cmv2-priority-why { padding: 14px 18px 4px; }
.cmv2-priority-why b, .cmv2-priority-do b { display: block; font-size: 10.5px; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; color: #285f9f; }
.cmv2-priority-why p { margin: 6px 0 10px; color: #334155; font-size: 13.5px; line-height: 1.55; }
.cmv2-priority-positions { display: grid; grid-template-columns: auto 1fr; gap: 10px 26px; padding: 10px 18px; border-top: 1px solid #edf1f5; border-bottom: 1px solid #edf1f5; background: #fbfcfe; }
.cmv2-priority-positions > div { display: grid; gap: 2px; }
.cmv2-priority-positions span { color: #7a8797; font-size: 9.5px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.cmv2-priority-positions b { font-size: 13px; color: #0f172a; }
.cmv2-priority-positions b.is-missing { color: #b42318; }
.cmv2-priority-positions b.is-present { color: #15803d; }
.cmv2-priority-do { padding: 13px 18px 16px; }
.cmv2-priority-do p { margin: 6px 0 0; color: #334155; font-size: 13.5px; line-height: 1.5; }

/* ── Competitor validation / off-list ──────────────────────────────────────── */
#cmv2-validation { border-left: 3px solid var(--geo, #22d3ee); padding-left: 18px; }
.cmv2-buckets { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 6px; }
.cmv2-bucket { min-width: 120px; background: #fff; border: 1px solid var(--line, #e2e8f0); border-radius: 12px; padding: 12px 15px; }
.cmv2-bucket strong { display: block; font-size: 22px; font-weight: 800; }
.cmv2-bucket span { display: block; margin-top: 3px; color: var(--muted, #64748b); font-size: 11px; }

/* ── Evidence tables and quotes on the dashboard ───────────────────────────── */
.cmv2-tablewrap { overflow-x: auto; margin-top: 12px; background: #fff; border: 1px solid var(--line, #e2e8f0); border-radius: 13px; }
.cmv2-table { width: 100%; border-collapse: collapse; min-width: 640px; }
.cmv2-table th { text-align: left; padding: 10px 12px; border-bottom: 2px solid #d8e1ec; color: #475569; font-size: 10px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.cmv2-table td { padding: 9px 12px; border-bottom: 1px solid #eef1f5; color: #334155; font-size: 12.5px; line-height: 1.45; vertical-align: top; }
.cmv2-table tr:last-child td { border-bottom: 0; }
.cmv2-table .cmv2-q-col { min-width: 220px; }
.cmv2-score { font-weight: 700; white-space: nowrap; }
.cmv2-score.is-yes { color: #15803d; }
.cmv2-score.is-partial { color: #b45309; }
.cmv2-score.is-no { color: #b42318; }
.cmv2-score.is-na { color: #94a3b8; }
.cmv2-score-total { font-weight: 800; white-space: nowrap; }
.cmv2-table tr.is-you td { background: #f1fbf7; font-weight: 700; }
.cmv2-quotes { display: grid; gap: 12px; margin-top: 12px; }
.cmv2-quote { margin: 0; background: #fff; border: 1px solid var(--line, #e2e8f0); border-radius: 13px; padding: 14px 18px; }
.cmv2-quote.is-flagged { border-left: 3px solid #b45309; }
.cmv2-quote blockquote { margin: 0; color: #1e293b; font-size: 13.5px; line-height: 1.6; }
.cmv2-quote figcaption { margin-top: 7px; color: #7a8797; font-size: 11px; }
.cmv2-priority-caution { color: #935d10; font-style: italic; font-size: 12.5px; margin: 4px 0 10px; }
.cmv2-priority-details { border-top: 1px solid #edf1f5; }
.cmv2-priority-details summary { cursor: pointer; padding: 11px 18px; color: #285f9f; font-size: 12px; font-weight: 800; }
.cmv2-priority-details-body { padding: 0 18px 14px; }
.cmv2-priority-details-body p { margin: 4px 0 8px; color: #334155; font-size: 13px; line-height: 1.55; word-break: break-word; }
.cmv2-priority-details-body ul { margin: 4px 0 10px; padding-left: 20px; }
.cmv2-priority-details-body li { margin: 0 0 5px; color: #334155; font-size: 13px; }
.cmv2-details-h { display: block; font-size: 10.5px; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; color: #285f9f; margin-top: 8px; }
.cmv2-details-note { color: #7a8797; font-size: 12px; }

/* ── Mobile ────────────────────────────────────────────────────────────────── */
@media (max-width: 760px) {
  .cmv2-exec { padding: 20px 16px 16px; }
  .cmv2-exec-top { grid-template-columns: 1fr; justify-items: start; gap: 16px; }
  .cmv2-ring-wrap { grid-auto-flow: column; align-items: center; width: auto; gap: 14px; }
  .cmv2-ring { width: 92px; height: 92px; }
  .cmv2-ring::after { width: 74px; height: 74px; }
  .cmv2-ring strong { font-size: 22px; }
  .cmv2-ring-caption { text-align: left; max-width: 150px; }
  .cmv2-metrics { grid-template-columns: 1fr 1fr; }
  .cmv2-metric strong { font-size: 20px; }
  .cmv2-priority-positions { grid-template-columns: 1fr; gap: 10px; }
  .cmv2-section h2 { font-size: 20px; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   Where you win and lose, and the working order (2026-08-27)

   Both sections derive from the shared model in citation-map-report-v2.js, so
   the dashboard and the printed Playbook say the same thing. The BAR styles
   themselves are not repeated here: citation-map-print-v2.css is loaded on
   this page and already owns .cmv2-bars / .cmv2-bar-* / .cmv2-quality-*, and
   a second copy is how the two surfaces drift apart.
   ══════════════════════════════════════════════════════════════════════════ */

.cmv2-subhead { margin: 22px 0 0; font-size: 15px; font-weight: 800; letter-spacing: -.01em; color: var(--ink, #0f172a); }
#cmv2-performance .cmv2-quality-grid { margin-top: 12px; }
#cmv2-performance .cmv2-bars { margin: 16px 0 10px; }

/* The workplan. A numbered list on screen rather than the printed table: the
   owner column is a pen-and-paper affordance and has no meaning in a browser,
   where the ticks on the plan above already record progress. */
.cmv2-workplan { margin: 16px 0 0; padding: 0; list-style: none; display: grid; gap: 10px; }
.cmv2-workplan li { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 14px; align-items: start;
  padding: 14px 16px; border: 1px solid var(--line, #e2e8f0); border-radius: 12px; background: #fff; }
.cmv2-wp-window { color: var(--geo, #0e9f6e); font-size: 11px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; line-height: 1.5; }
.cmv2-workplan b { display: block; font-size: 14px; font-weight: 700; color: var(--ink, #0f172a); }
.cmv2-workplan p { margin: 4px 0 0; color: var(--muted, #64748b); font-size: 13px; line-height: 1.55; }
.cmv2-workplan small { display: block; margin-top: 7px; color: var(--muted, #64748b); font-size: 12px; line-height: 1.5; }

@media (max-width: 640px) {
  .cmv2-workplan li { grid-template-columns: minmax(0, 1fr); gap: 4px; }
}

/* The work statement: what 160 checks actually involved, on the card both surfaces share. */
.cmv2-exec-workline { margin-top: 12px; padding-top: 10px; border-top: 1px solid rgba(255,255,255,.08); }
.cmv2-exec-workline span { display: block; font-size: 10px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; color: #36e6d0; margin-bottom: 3px; }
.cmv2-exec-workline small { color: #9fb0c6; font-size: 12px; line-height: 1.55; }

/* What AI answered instead. Same shape as the printed page so the two surfaces read alike;
   the rival list is a list rather than a table because the names are the point and the count
   is secondary. */
.cmv2-instead-list { display: grid; gap: 16px; }
.cmv2-instead { border-left: 3px solid #f87171; padding: 2px 0 2px 12px; }
.cmv2-instead-q { font-weight: 650; margin: 0 0 4px; }
.cmv2-instead-score { margin: 0 0 6px; color: var(--muted, #4a5366); }
.cmv2-instead-names { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.cmv2-instead-names li { display: flex; justify-content: space-between; gap: 12px;
  border-bottom: 1px solid var(--line, rgba(6,12,25,.08)); padding-bottom: 3px; }
.cmv2-instead-names span { color: var(--muted-2, #586273); white-space: nowrap; }
.cmv2-instead-src { margin: 8px 0 0; color: var(--muted, #4a5366); font-size: 13px; }

/* A superseded Playbook says so at the top of the overview, not in the method footnote.
   Every other freshness state is a detail beside the method; this one changes what the reader
   should do with the whole document. Amber rather than red: the report is not wrong, it is
   describing an earlier moment, and alarming somebody about a report they paid for overstates
   it. Rendered only when the shared model says superseded, never inferred by the renderer. */
.cmv2-superseded {
  margin: 0 0 18px; padding: 12px 14px; border-radius: 10px;
  border: 1px solid #F0DCA8; background: #FFF8E8; color: #6B4D06;
  font-size: 14px; line-height: 1.5;
}
