/* ═══════════════════════════════════════════════════════════
   Snapshot canvas · only loaded by snapshot.html
   Includes the upgraded source-citation pattern (master toggle,
   providers-in-use row, per-field provider sub-cards, masked-URL
   reveals).
   ═══════════════════════════════════════════════════════════ */

/* Canvas chrome */
.snap-header {
  padding: 24px 28px 0;
  background: linear-gradient(145deg, rgba(30,26,78,0.08) 0%, rgba(28,122,254,0.06) 35%, rgba(229,163,58,0.06) 70%, rgba(31,184,121,0.08) 100%);
  border-bottom: 1px solid var(--line);
}
.snap-sample-row {
  display: flex; align-items: center; gap: 12px;
  margin-bottom: 56px;
}
.snap-sample-tag {
  font-family: 'Onest', sans-serif;
  font-weight: 700; font-size: 9.5px;
  letter-spacing: 0.10em; text-transform: uppercase;
  padding: 4px 10px;
  background: rgba(31,184,121,0.14); color: var(--matrix-deep);
  border-radius: 100px;
}
.snap-sample-note { font-size: 12px; color: var(--ink-3); font-weight: 500; }
.snap-sample-note b { color: var(--ink); font-weight: 600; }
.snap-entity-row {
  display: flex; align-items: flex-start; justify-content: space-between;
  gap: 18px; margin-bottom: 14px;
}
.snap-entity-title {
  font-family: 'Onest', sans-serif;
  font-weight: 700; font-size: 56px;
  letter-spacing: -0.026em;
  color: var(--ink-1);
  margin: 0;
  line-height: 1.05;
}
.snap-entity-actions {
  display: flex; flex-direction: column; align-items: stretch;
  gap: 8px; width: 220px; flex-shrink: 0;
}

/* Export PDF · split button (action + caret) */
.snap-export-wrap { position: relative; display: flex; align-items: stretch; flex-shrink: 0; width: 100%; }
.snap-export-btn {
  padding: 9px 14px;
  background: var(--mainframe); color: white;
  border: none; border-radius: 9px 0 0 9px;
  font-family: 'Onest', sans-serif; font-weight: 500; font-size: 12.5px;
  cursor: pointer;
  text-decoration: none;
  display: inline-flex; align-items: center; justify-content: center; gap: 7px;
  white-space: nowrap;
  flex: 1;
  transition: background 140ms var(--ease);
}
.snap-export-btn:hover { background: #1a2f6a; }
.snap-export-arrow { font-size: 13px; }
.snap-export-caret {
  padding: 0 10px;
  background: var(--mainframe);
  color: white;
  border: none;
  border-radius: 0 9px 9px 0;
  border-left: 1px solid rgba(255,255,255,0.15);
  cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
  font-family: 'Onest', sans-serif;
  transition: background 140ms var(--ease);
}
.snap-export-caret:hover { background: #1a2f6a; }
.snap-export-caret-icon {
  font-size: 11px;
  line-height: 1;
  transition: transform 180ms var(--ease);
}
.snap-export-wrap.open .snap-export-caret-icon { transform: rotate(180deg); }

/* Dropdown menu */
.snap-export-menu {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  width: 380px;
  background: white;
  border: 1px solid var(--line);
  border-radius: 12px;
  box-shadow: 0 12px 40px rgba(17,30,69,0.12), 0 2px 8px rgba(17,30,69,0.04);
  z-index: 60;
  font-family: 'Onest', sans-serif;
  overflow: hidden;
  opacity: 0;
  transform: translateY(-4px);
  pointer-events: none;
  transition: opacity 160ms var(--ease), transform 160ms var(--ease);
}
.snap-export-menu[hidden] { display: none; }
.snap-export-wrap.open .snap-export-menu {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

.snap-export-menu-head {
  padding: 16px 18px 14px;
  border-bottom: 1px solid var(--line);
}
.snap-export-menu-kicker {
  font-family: 'SUSE Mono', monospace;
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-3);
  margin-bottom: 8px;
}
.snap-export-menu-tip {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 12.5px;
  color: var(--ink-2);
  line-height: 1.45;
}
.snap-export-menu-spark { color: var(--signal); flex-shrink: 0; font-size: 11px; line-height: 1.55; }

.snap-export-menu-list {
  padding: 6px 0;
  max-height: 420px;
  overflow-y: auto;
}

/* Each include-row · checkbox + title/sub + optional count */
.snap-export-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 9px 18px;
  cursor: pointer;
  transition: background 120ms var(--ease);
}
.snap-export-item:hover { background: rgba(28,122,254,0.04); }
.snap-export-item input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.snap-export-check {
  width: 18px; height: 18px;
  border: 1.5px solid var(--line-strong, #d3d8e5);
  border-radius: 5px;
  flex-shrink: 0;
  background: white;
  position: relative;
  transition: background 140ms var(--ease), border-color 140ms var(--ease);
}
.snap-export-check::after {
  content: "";
  position: absolute;
  top: 2px; left: 5px;
  width: 5px; height: 9px;
  border-right: 2px solid white;
  border-bottom: 2px solid white;
  transform: rotate(45deg) scale(0);
  transition: transform 140ms var(--ease);
}
.snap-export-item input[type="checkbox"]:checked + .snap-export-check {
  background: var(--signal);
  border-color: var(--signal);
}
.snap-export-item input[type="checkbox"]:checked + .snap-export-check::after {
  transform: rotate(45deg) scale(1);
}
.snap-export-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex: 1 1 auto;
  min-width: 0;
}
.snap-export-title {
  font-size: 13.5px;
  font-weight: 600;
  color: var(--ink-1);
  line-height: 1.3;
}
.snap-export-sub {
  font-family: 'SUSE Mono', monospace;
  font-size: 11.5px;
  color: var(--ink-3);
  line-height: 1.35;
}
.snap-export-count {
  flex-shrink: 0;
  min-width: 26px;
  height: 22px;
  padding: 0 8px;
  border-radius: 100px;
  background: rgba(17,30,69,0.05);
  color: var(--ink-3);
  font-family: 'SUSE Mono', monospace;
  font-size: 11.5px;
  font-weight: 500;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.snap-export-item input[type="checkbox"]:not(:checked) ~ .snap-export-text .snap-export-title {
  color: var(--ink-3);
}

/* Footer · bulk toggle, count, export */
.snap-export-menu-foot {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 18px;
  border-top: 1px solid var(--line);
  background: rgba(17,30,69,0.02);
}
.snap-export-bulk {
  background: transparent;
  border: none;
  padding: 0;
  font-family: 'Onest', sans-serif;
  font-size: 12px;
  font-weight: 500;
  color: var(--signal);
  cursor: pointer;
}
.snap-export-bulk:hover { text-decoration: underline; }
.snap-export-foot-count {
  flex: 1 1 auto;
  font-family: 'SUSE Mono', monospace;
  font-size: 11.5px;
  color: var(--ink-3);
  text-align: right;
}
.snap-export-foot-go {
  padding: 9px 14px;
  background: var(--signal);
  color: white;
  border: none;
  border-radius: 8px;
  font-family: 'Onest', sans-serif;
  font-weight: 500;
  font-size: 12.5px;
  text-decoration: none;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  transition: background 140ms var(--ease);
}
.snap-export-foot-go:hover { background: #1668e3; }
.snap-export-foot-go.is-disabled {
  background: var(--line);
  color: var(--ink-3);
  pointer-events: none;
}

.snap-icon-btn {
  width: 32px; height: 32px;
  border: 1px solid var(--line); background: white;
  border-radius: 8px; cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 14px;
}
.snap-icon-btn:hover { background: rgba(17,30,69,0.04); }
.snap-tabs { display: flex; gap: 4px; margin-bottom: -1px; }
.snap-tab {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 10px 14px;
  font-family: 'Onest', sans-serif; font-size: 12.5px; font-weight: 500;
  color: var(--ink-3); cursor: pointer;
  border-bottom: 2px solid transparent;
  background: transparent;
  border-top: none; border-left: none; border-right: none;
  transition: color 140ms var(--ease), border-color 140ms var(--ease);
}
.snap-tab:hover { color: var(--ink-1); }
.snap-tab.active {
  color: var(--signal); font-weight: 600;
  border-bottom-color: var(--signal);
}
.snap-tab-count {
  font-family: 'SUSE Mono', monospace;
  font-size: 10px;
  font-weight: 500;
  opacity: 0.55;
}
.snap-tab.active .snap-tab-count { opacity: 0.85; }
.snap-body[hidden] { display: none; }

.snap-body { padding: 22px 28px 120px; background: var(--ghost); }

/* "Providers in use" row · base styling. Visibility is owned by the
   drawer that hosts it (see drawer.css `.drawer-detail.show-sources`). */
.snap-vendor-key {
  align-items: center; flex-wrap: wrap; gap: 6px;
  padding: 12px 14px;
  background: rgba(28,122,254,0.04);
  border: 1px solid rgba(28,122,254,0.16);
  border-radius: 10px;
  margin-bottom: 18px;
}
.snap-vendor-key-label {
  font-family: 'Onest', sans-serif;
  font-size: 10px; letter-spacing: 0.10em; text-transform: uppercase;
  color: var(--ink-3); font-weight: 700;
  margin-right: 4px;
}

/* Vendor pill family · richer than .src-pill, used inside provider
   sub-cards. Shares colors with .src-pill but allows hover/anchor
   styling for the masked-URL reveal pattern. */
.dd-vendor {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 2px 8px 2px 7px;
  border-radius: 999px;
  font-family: 'Onest', sans-serif;
  font-size: 11px; font-weight: 600;
  letter-spacing: -0.005em;
  white-space: nowrap;
  line-height: 1.4;
  text-decoration: none;
  transition: padding 140ms var(--ease), background-color 140ms var(--ease);
}
.dd-vendor::before {
  content: ''; width: 6px; height: 6px; border-radius: 999px;
  background: currentColor;
  flex-shrink: 0;
}
a.dd-vendor { cursor: pointer; }
a.dd-vendor::after {
  content: '↗';
  font-size: 10px; line-height: 1;
  opacity: 0;
  width: 0; margin-left: 0; overflow: hidden;
  transition: width 140ms var(--ease), opacity 140ms var(--ease), margin-left 140ms var(--ease);
}
a.dd-vendor:hover { padding-right: 6px; }
a.dd-vendor:hover::after { opacity: 1; width: 10px; margin-left: 2px; }
a.dd-vendor:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
.dd-vendor.sigma360   { background: rgba(30,26,78,0.14); color: var(--indigo-500); }
.dd-vendor.linq360    { background: rgba(28,122,254,0.12);  color: var(--signal); }
.dd-vendor.marvin     { background: rgba(28,122,254,0.12);  color: var(--signal); font-weight: 600; }
.dd-vendor.marvin2    { background: rgba(17,30,69,0.10);    color: var(--mainframe); }
.dd-vendor.records      { background: rgba(220,62,62,0.10);   color: var(--adverse); }
.dd-vendor.outscraper { background: rgba(45,178,178,0.14);  color: #1E7D7D; }
.dd-vendor.firecrawl  { background: rgba(255,124,76,0.14);  color: #C95217; }
.dd-vendor.profound   { background: rgba(31,184,121,0.14);  color: var(--matrix); }
.dd-vendor.perplexity { background: rgba(229,163,58,0.16);  color: var(--gold-deep); }
.dd-vendor.web {
  background: rgba(17,30,69,0.04);
  border: 1px dashed rgba(17,30,69,0.22);
  color: var(--ink-2);
  padding: 1px 7px;
}
.dd-vendor.web::before { display: none; }

/* Per-field provider sub-card · base styling. Visibility is owned by
   the drawer that hosts it (see drawer.css `.drawer-detail.show-sources`). */
.dd-source {
  margin-top: 10px;
  padding: 10px 14px;
  background: rgba(28,122,254,0.025);
  border: 1px solid rgba(28,122,254,0.16);
  border-left: 3px solid var(--signal);
  border-radius: 10px;
}
.dd-source-line {
  display: flex; align-items: center; gap: 6px; flex-wrap: wrap;
  margin-bottom: 4px;
}
.dd-source-kicker {
  font-family: 'Onest', sans-serif;
  font-weight: 700; font-size: 9.5px;
  letter-spacing: 0.10em; text-transform: uppercase;
  color: var(--signal);
  margin-right: 4px;
}
.dd-source-desc {
  font-size: 12px; color: var(--ink-2);
  line-height: 1.5;
}
.dd-source-time {
  display: block;
  font-family: 'SUSE Mono', monospace;
  font-size: 10.5px; letter-spacing: 0.04em;
  color: var(--ink-3);
  margin-top: 2px;
}

/* Masked-URL reveal · inserted dynamically below a clicked pill */
.source-reveal {
  margin-top: 8px;
  padding: 10px 12px;
  background: rgba(28,122,254,0.05);
  border: 1px solid rgba(28,122,254,0.18);
  border-radius: 9px;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 12px;
  align-items: center;
  animation: source-reveal-in 160ms var(--ease);
}
@keyframes source-reveal-in {
  from { opacity: 0; transform: translateY(-2px); }
  to   { opacity: 1; transform: translateY(0); }
}
.source-reveal-body { min-width: 0; }
.source-reveal-kicker {
  font-family: 'Onest', sans-serif;
  font-weight: 700; font-size: 9.5px;
  letter-spacing: 0.10em; text-transform: uppercase;
  color: var(--signal);
  margin-bottom: 4px;
}
.source-reveal-url {
  font-family: 'SUSE Mono', monospace;
  font-size: 11.5px;
  line-height: 1.45;
  color: var(--ink-1);
  word-break: break-all;
}
.source-reveal-url .sep {
  color: var(--ink-3);
  margin: 0 4px;
  font-weight: 400;
}
.source-reveal-actions {
  display: flex; gap: 6px;
  align-items: center;
  flex-shrink: 0;
}
.source-reveal-action {
  width: 30px; height: 30px;
  border-radius: 8px;
  background: white;
  border: 1px solid rgba(28,122,254,0.22);
  color: var(--signal);
  cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
  transition: background 140ms var(--ease), color 140ms var(--ease);
}
.source-reveal-action:hover { background: var(--signal); color: white; }
.source-reveal-action.copied { background: var(--matrix); border-color: var(--matrix); color: white; }

/* Cards */
.co-card {
  background: white; border-radius: 16px; border: 1px solid var(--line);
  padding: 22px 24px; margin-bottom: 14px;
  display: grid; grid-template-columns: 1.35fr 1fr; gap: 26px;
}
.co-head {
  grid-column: 1 / -1;
  display: flex; align-items: baseline; justify-content: space-between;
  gap: 14px; margin-bottom: 6px;
}
.co-kicker {
  font-family: 'Onest', sans-serif;
  font-weight: 700; font-size: 11px;
  letter-spacing: 0.10em; text-transform: uppercase;
  color: var(--ink-3);
}
.co-title {
  font-family: 'Onest', sans-serif;
  font-weight: 700; font-size: 26px;
  line-height: 1.05; letter-spacing: -0.018em;
  color: var(--ink);
  margin-top: 4px;
}
.co-title-desc {
  text-transform: none;
  letter-spacing: 0;
  font-weight: 400;
  font-size: 17px;
  color: var(--ink-3);
  margin-left: 6px;
  vertical-align: middle;
}
.co-dba {
  font-size: 18px;
  display: block;
  margin-bottom: 12px;
}
.co-dba strong {
  font-weight: 700;
  color: var(--signal);
  margin-right: 4px;
  letter-spacing: 0.05em;
}
.co-dba span {
  font-weight: 300;
  color: var(--signal);
}
.co-prose { font-size: 16px; line-height: 1.6; color: var(--ink-2); }
.co-prose p { margin: 0 0 10px; }
.co-prose strong { color: var(--ink); font-weight: 600; }
.co-facts {
  border-left: 1px solid rgba(17,30,69,0.08);
  padding-left: 24px;
  display: flex; flex-direction: column; gap: 12px;
}
.co-fact-row { display: grid; grid-template-columns: 110px 1fr; gap: 8px; align-items: baseline; }
.co-fact-label {
  font-family: 'Onest', sans-serif;
  font-weight: 700; font-size: 9.5px;
  letter-spacing: 0.10em; text-transform: uppercase;
  color: var(--ink-3);
}
.co-fact-value {
  font-family: 'Onest', sans-serif;
  font-size: 13.5px; color: var(--ink); font-weight: 600;
  letter-spacing: -0.005em;
}
.co-fact-value .sub {
  display: block;
  font-family: 'Onest', sans-serif;
  font-size: 11px; color: var(--ink-3); font-weight: 400;
  letter-spacing: 0;
  margin-top: 1px;
}

/* Action chips */
.fc-chip-row {
  grid-column: 1 / -1;
  display: flex; gap: 8px; flex-wrap: wrap;
  padding-top: 14px; margin-top: 4px;
  border-top: 1px solid rgba(17,30,69,0.05);
}
/* Read-only "searched configuration" block inside a pack drawer (OSHA depth, BRF categories) */
.cp-searched { margin: 14px 0 4px; padding: 14px; border: 1px solid rgba(10,140,130,0.24); border-radius: 12px; background: rgba(10,140,130,0.04); }
.cp-searched-hd { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; }
.cp-searched-label { font-family: 'SUSE Mono', monospace; font-size: 10px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--forest-deep); }
.cp-searched-ro { font-family: 'SUSE Mono', monospace; font-size: 9px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink-3); background: rgba(17,30,69,0.05); padding: 2px 7px; border-radius: 100px; }
.cp-searched-row { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 7px 0; border-top: 1px solid rgba(10,140,130,0.12); font-size: 13px; }
.cp-searched-row:first-of-type { border-top: none; }
.cp-searched-k { color: var(--ink-2); }
.cp-searched-v { font-weight: 600; color: var(--ink-1); text-align: right; }
.cp-searched-note { font-size: 11.5px; color: var(--ink-3); margin: 8px 0 0; line-height: 1.5; }

/* ── Structured data drawer content (FMCSA, Property financials, Risk flags) ── */
.dd-summary { font-size: 13.5px; line-height: 1.6; color: var(--ink-2); margin: 14px 0 0; }
.dd-summary strong { color: var(--ink-1); font-weight: 600; }
.dd-idbadge { display: inline-block; font-family: 'SUSE Mono', monospace; font-size: 11px; font-weight: 600; letter-spacing: 0.04em; padding: 5px 12px; border-radius: 100px; background: rgba(31,184,121,0.12); color: var(--matrix-deep); margin: 14px 0 0; }
/* grouped section (label + key/value rows) */
.dd-grp { margin-top: 18px; }
.dd-grp-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 4px; }
.dd-grp-label { font-family: 'SUSE Mono', monospace; font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink-3); }
.dd-kv { display: flex; align-items: baseline; justify-content: space-between; gap: 18px; padding: 10px 0; border-top: 1px solid rgba(17,30,69,0.06); }
.dd-kv:first-of-type { border-top: none; }
.dd-kv-k { font-size: 13px; color: var(--ink-2); flex-shrink: 0; }
.dd-kv-v { font-size: 13px; color: var(--ink-1); font-weight: 600; text-align: right; }
.dd-kv-v .muted { color: var(--ink-3); font-weight: 400; }
.dd-kv-v.warn { color: var(--gold-deep); }
.dd-kv-v.zero { color: var(--matrix-deep); }
.dd-link { color: var(--signal); text-decoration: none; font-weight: 600; }
.dd-link:hover { text-decoration: underline; }
/* emphasis stat cards */
.dd-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 12px; }
.dd-stat { background: linear-gradient(135deg, rgba(28,122,254,0.05), rgba(28,122,254,0.015)); border: 1px solid rgba(28,122,254,0.12); border-radius: 12px; padding: 13px 15px; }
.dd-stat-k { font-family: 'SUSE Mono', monospace; font-size: 9.5px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-3); margin-bottom: 5px; }
.dd-stat-v { font-family: 'Onest', sans-serif; font-size: 22px; font-weight: 700; letter-spacing: -0.02em; color: var(--ink-1); line-height: 1; }
.dd-stat-sub { font-size: 11px; color: var(--ink-3); margin-top: 4px; }
/* card block */
.dd-block { background: #fff; border: 1px solid rgba(17,30,69,0.08); border-radius: 14px; padding: 15px 17px; margin-top: 12px; box-shadow: 0 8px 24px rgba(17,30,69,0.05); }
.dd-block-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 6px; }
.dd-block-title { font-size: 14px; font-weight: 600; color: var(--ink-1); }
.dd-block-tag { font-family: 'SUSE Mono', monospace; font-size: 9.5px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink-4); }
/* coverage rows (risk flags) */
.dd-cov { padding: 11px 14px; border-radius: 11px; background: rgba(31,184,121,0.05); border: 1px solid rgba(31,184,121,0.16); margin-top: 8px; }
.dd-cov.hit { background: rgba(229,163,58,0.06); border-color: rgba(229,163,58,0.22); }
.dd-cov-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.dd-cov-cat { font-family: 'SUSE Mono', monospace; font-size: 10.5px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-2); }
.dd-cov-count { font-size: 12px; color: var(--matrix-deep); font-weight: 600; }
.dd-cov.hit .dd-cov-count { color: var(--gold-deep); }
.dd-cov-note { font-size: 12px; color: var(--ink-3); font-style: italic; margin-top: 3px; }
/* key notes */
.dd-notes { margin-top: 16px; }
.dd-note { display: flex; gap: 9px; align-items: flex-start; font-size: 13px; color: var(--ink-2); line-height: 1.55; }
.dd-note + .dd-note { margin-top: 8px; }
.dd-note-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--caution); margin-top: 7px; flex-shrink: 0; }

/* pill variants */
.vd-pill--warn { background: rgba(229,163,58,0.12); color: var(--gold-deep); }
.vd-pill--bad { background: rgba(220,62,62,0.10); color: var(--adverse); }
/* coverage category (events / signals) */
.dd-cat { margin-top: 14px; }
.dd-cat-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding-bottom: 8px; border-bottom: 1px solid rgba(17,30,69,0.06); }
.dd-cat-label { font-family: 'SUSE Mono', monospace; font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink-2); }
.dd-cat-meta { font-family: 'SUSE Mono', monospace; font-size: 10px; letter-spacing: 0.04em; color: var(--ink-3); }
.dd-cat-empty { font-size: 12px; color: var(--ink-4); }
/* event / signal card */
.dd-event { background: #fff; border: 1px solid rgba(17,30,69,0.08); border-radius: 12px; padding: 13px 15px; margin-top: 8px; box-shadow: 0 6px 18px rgba(17,30,69,0.04); }
.dd-event-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.dd-event-title { font-size: 13.5px; font-weight: 600; color: var(--ink-1); line-height: 1.4; }
a.dd-event-title { color: var(--signal); text-decoration: none; }
a.dd-event-title:hover { text-decoration: underline; }
.dd-event-meta { font-size: 11.5px; color: var(--ink-3); margin-top: 4px; }
.dd-event-desc { font-size: 12.5px; color: var(--ink-2); line-height: 1.55; margin-top: 7px; }
.dd-minitag { font-family: 'SUSE Mono', monospace; font-size: 9.5px; color: var(--ink-3); background: rgba(17,30,69,0.05); padding: 2px 7px; border-radius: 6px; margin-left: 5px; }
/* severity badge */
.sev { font-family: 'SUSE Mono', monospace; font-size: 9px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; padding: 3px 8px; border-radius: 100px; flex-shrink: 0; }
.sev--high { background: rgba(220,62,62,0.12); color: var(--adverse); }
.sev--med { background: rgba(229,163,58,0.14); color: var(--gold-deep); }
.sev--low { background: rgba(31,184,121,0.12); color: var(--matrix-deep); }
/* upsell callout */
.dd-callout { margin-top: 14px; padding: 13px 15px; border-radius: 12px; background: rgba(229,163,58,0.07); border: 1px solid rgba(229,163,58,0.20); }
.dd-callout-title { font-size: 12.5px; font-weight: 600; color: var(--gold-deep); margin-bottom: 3px; }
.dd-callout-text { font-size: 12px; color: var(--ink-2); line-height: 1.55; }
.dd-callout-text strong { color: var(--ink-1); font-weight: 600; }

/* structured table (Form 5500 filings, etc.) */
.dd-table-wrap { margin-top: 10px; border: 1px solid rgba(17,30,69,0.08); border-radius: 12px; overflow: hidden; }
.dd-table { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.dd-table thead th { position: sticky; top: 0; text-align: left; font-family: 'SUSE Mono', monospace; font-size: 9.5px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink-3); font-weight: 600; padding: 10px 12px; background: #f3f5f9; border-bottom: 1px solid rgba(17,30,69,0.08); }
.dd-table th.num, .dd-table td.num { text-align: right; }
.dd-table td { padding: 10px 12px; border-bottom: 1px solid rgba(17,30,69,0.05); color: var(--ink-1); vertical-align: top; }
.dd-table tbody tr:last-child td { border-bottom: none; }
.dd-table tbody tr:hover { background: rgba(28,122,254,0.03); }
.dd-table .num { font-family: 'SUSE Mono', monospace; white-space: nowrap; }
.dd-table .yr { font-family: 'SUSE Mono', monospace; font-weight: 600; color: var(--ink-2); white-space: nowrap; }
.dd-table .plan { color: var(--ink-1); line-height: 1.4; min-width: 180px; }
.dd-table .muted { color: var(--ink-3); }
.dd-table-foot { padding: 9px 12px; font-size: 11px; color: var(--ink-3); background: rgba(17,30,69,0.02); text-align: center; }

/* ── Renewal monitoring drawer ── */
.mon-grp { margin-top: 20px; }
.mon-grp:first-of-type { margin-top: 6px; }
.mon-label { font-family: 'SUSE Mono', monospace; font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink-3); margin-bottom: 10px; }
.mon-optional { color: var(--ink-4); text-transform: none; letter-spacing: 0; }
.mon-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.mon-card { display: flex; align-items: flex-start; gap: 10px; padding: 12px 13px; border: 1px solid rgba(17,30,69,0.08); border-radius: 12px; background: #fff; cursor: pointer; text-align: left; font-family: 'Onest', sans-serif; transition: border-color .14s, background .14s; }
.mon-card:hover { border-color: rgba(17,30,69,0.16); background: rgba(28,122,254,0.02); }
.mon-card.is-on { border-color: var(--signal); background: rgba(28,122,254,0.05); }
.mon-radio { width: 16px; height: 16px; border-radius: 50%; border: 1.5px solid var(--ink-4); flex-shrink: 0; margin-top: 1px; position: relative; }
.mon-card.is-on .mon-radio { border-color: var(--signal); }
.mon-card.is-on .mon-radio::after { content: ''; position: absolute; inset: 3px; border-radius: 50%; background: var(--signal); }
.mon-card-text { display: flex; flex-direction: column; gap: 2px; }
.mon-card-title { font-size: 13.5px; font-weight: 600; color: var(--ink-1); }
.mon-card-sub { font-size: 11.5px; color: var(--ink-3); line-height: 1.45; }
.mon-seg { display: inline-flex; border: 1px solid var(--line); border-radius: 9px; overflow: hidden; }
.mon-seg-btn { padding: 8px 16px; border: none; border-right: 1px solid var(--line); background: #fff; font-family: 'Onest', sans-serif; font-size: 13px; font-weight: 600; color: var(--ink-2); cursor: pointer; transition: background .14s, color .14s; }
.mon-seg-btn:last-child { border-right: none; }
.mon-seg-btn:hover { background: rgba(17,30,69,0.03); }
.mon-seg-btn.is-on { background: rgba(28,122,254,0.08); color: var(--signal); }
.mon-input { width: 100%; padding: 11px 13px; border: 1px solid var(--line); border-radius: 10px; font-family: 'Onest', sans-serif; font-size: 14px; color: var(--ink-1); outline: none; background: #fff; }
.mon-input:focus { border-color: var(--signal); box-shadow: 0 0 0 3px rgba(28,122,254,0.08); }
.mon-summary { margin-top: 18px; padding: 13px 15px; border-radius: 10px; background: rgba(28,122,254,0.05); font-size: 12.5px; color: var(--ink-2); }
.mon-summary strong { color: var(--ink-1); font-weight: 600; }
.mon-save { width: 100%; padding: 13px; border: none; border-radius: 10px; background: var(--signal); color: #fff; font-family: 'Onest', sans-serif; font-size: 14px; font-weight: 600; cursor: pointer; transition: background .14s; }
.mon-save:hover { background: #1565d8; }
@media (max-width: 560px) { .mon-cards { grid-template-columns: 1fr; } }

/* ── Company facts · interactive NAICS ── */
.cf-naics { margin-top: 16px; border: 1px solid rgba(17,30,69,0.08); border-radius: 16px; padding: 18px 20px; background: #fff; box-shadow: 0 8px 24px rgba(17,30,69,0.05); }
.cf-naics-eyebrow { font-family: 'SUSE Mono', monospace; font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink-3); margin-bottom: 12px; }
.cf-naics-grid { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.cf-naics-code { font-family: 'Onest', sans-serif; font-weight: 800; font-size: 52px; line-height: 0.95; letter-spacing: -0.02em; display: flex; }
.cf-d { color: var(--ink-1); transition: color .15s; }
.cf-d.dim { color: var(--ink-4); }
.cf-d.lit-sector { color: #1C7AFE; }
.cf-d.lit-group { color: #0F9C8E; }
.cf-d.lit-national { color: #AE2E9A; }
.cf-naics-name { font-size: 15px; color: var(--ink-2); margin-top: 9px; }
.cf-naics-conf { text-align: right; flex-shrink: 0; }
.cf-naics-conf-num { font-family: 'Onest', sans-serif; font-weight: 800; font-size: 40px; line-height: 1; color: var(--ink-1); }
.cf-naics-conf-num span { font-size: 20px; color: var(--ink-3); }
.cf-naics-conf-lbl { font-family: 'SUSE Mono', monospace; font-size: 10px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-3); margin-top: 5px; }
.cf-naics-foot { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 16px; padding-top: 14px; border-top: 1px solid rgba(17,30,69,0.06); flex-wrap: wrap; }
.cf-naics-legend { display: flex; gap: 18px; flex-wrap: wrap; }
.cf-lvl { display: inline-flex; align-items: center; gap: 7px; border: none; background: none; cursor: pointer; font-family: 'Onest', sans-serif; font-size: 12.5px; color: var(--ink-2); padding: 0; transition: color .14s; }
.cf-dot { width: 9px; height: 9px; border-radius: 50%; flex-shrink: 0; }
.cf-dot.s { background: #1C7AFE; } .cf-dot.g { background: #0F9C8E; } .cf-dot.n { background: #AE2E9A; }
.cf-lvl[data-level="sector"]:hover, .cf-lvl[data-level="sector"].is-active { color: #1C7AFE; font-weight: 600; }
.cf-lvl[data-level="group"]:hover, .cf-lvl[data-level="group"].is-active { color: #0F9C8E; font-weight: 600; }
.cf-lvl[data-level="national"]:hover, .cf-lvl[data-level="national"].is-active { color: #AE2E9A; font-weight: 600; }
.cf-ps { display: inline-flex; background: #1E1A4E; border-radius: 100px; padding: 3px; }
.cf-ps-btn { border: none; background: none; cursor: pointer; font-family: 'Onest', sans-serif; font-size: 12.5px; font-weight: 600; color: rgba(255,255,255,0.65); padding: 6px 15px; border-radius: 100px; transition: background .14s, color .14s; }
.cf-ps-btn.is-on { background: #1C7AFE; color: #fff; }

/* ── Company facts · profile rows + tags ── */
.cf-row { display: flex; gap: 12px; padding: 13px 0; border-top: 1px solid rgba(17,30,69,0.05); }
.cf-row:first-of-type { border-top: none; padding-top: 4px; }
.cf-check { width: 20px; height: 20px; border-radius: 50%; background: rgba(31,184,121,0.12); color: var(--matrix-deep); display: flex; align-items: center; justify-content: center; font-size: 11px; flex-shrink: 0; margin-top: 1px; }
.cf-row-body { flex: 1; min-width: 0; }
.cf-row-label { font-family: 'SUSE Mono', monospace; font-size: 9.5px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--signal); margin-bottom: 3px; }
.cf-row-value { font-size: 13.5px; color: var(--ink-1); line-height: 1.5; font-weight: 500; }
.cf-row-sub { font-size: 12px; color: var(--ink-3); line-height: 1.55; margin-top: 5px; font-weight: 400; }
.cf-tags { display: flex; flex-wrap: wrap; gap: 7px; }
.cf-tag { font-size: 12.5px; color: var(--ink-2); background: rgba(17,30,69,0.04); border-radius: 8px; padding: 7px 12px; }

/* ── Company registration · US map ── */
.cf-map-wrap { position: relative; border: 1px solid rgba(17,30,69,0.08); border-radius: 16px; padding: 18px; margin-top: 16px; background: #fff; box-shadow: 0 8px 24px rgba(17,30,69,0.05); }
.cf-map-wrap svg { width: 100%; height: auto; display: block; }
.cf-map-st { fill: #eef1f6; stroke: #fff; stroke-width: 1; transition: fill .14s; }
.cf-map-st.on { fill: #9FE1CB; cursor: pointer; }
.cf-map-st.on:hover { fill: #5DCAA5; }
.cf-map-tip { position: absolute; pointer-events: none; background: #1E1A4E; color: #fff; border-radius: 10px; padding: 9px 13px; box-shadow: 0 10px 28px rgba(7,13,25,0.3); opacity: 0; transform: translate(-50%, -118%); transition: opacity .12s; white-space: nowrap; z-index: 5; }
.cf-map-tip.show { opacity: 1; }
.cf-map-tip b { display: block; font-size: 13px; font-weight: 600; }
.cf-map-tip span { font-size: 11px; color: rgba(255,255,255,0.7); font-family: 'SUSE Mono', monospace; }

/* ── Property verification · street view + muted boxes ── */
.pv-streetview { border-radius: 14px; overflow: hidden; border: 1px solid rgba(17,30,69,0.08); margin-top: 16px; }
.pv-sv-img { height: 210px; background: linear-gradient(160deg, #c6cedd, #aab4c6); display: flex; flex-direction: column; gap: 8px; align-items: center; justify-content: center; color: #4c5880; }
.pv-sv-img i { width: 28px; height: 28px; }
.pv-sv-img span { font-size: 12px; }
.pv-sv-cap { font-family: 'SUSE Mono', monospace; font-size: 9.5px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink-3); padding: 9px 13px; background: #fff; }
.pv-muted { font-size: 12.5px; color: var(--ink-3); background: rgba(17,30,69,0.03); border-radius: 10px; padding: 13px 15px; line-height: 1.5; }
.fc-chip-break {
  flex-basis: 100%; height: 0; margin: 0; border: none; padding: 0;
}
.fc-chip-group-label {
  flex-basis: 100%;
  font-family: 'SUSE Mono', monospace;
  font-size: 9.5px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--ink-4); margin: 12px 0 -2px;
}
.fc-chip-group-label:first-child { margin-top: 0; }
/* Core+ badge → unified .core-plus component (defined in style.css) */
.fc-chip-group-label .core-plus { margin-left: 7px; }
.co-web-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.fc-chip.soon { background: rgba(17,30,69,0.035); border-color: transparent; color: var(--ink-3); cursor: default; }
.fc-chip.soon:hover { background: rgba(17,30,69,0.035); color: var(--ink-3); transform: none; box-shadow: none; }
.fc-chip.soon .fc-chip-glyph { color: var(--ink-4); }
/* Request a data point · same coming-soon footprint, but an action (dashed = open request) */
.fc-chip.request {
  background: transparent;
  border: 1px dashed rgba(17,30,69,0.22);
  color: var(--ink-3);
  cursor: pointer;
}
.fc-chip.request .fc-chip-glyph { color: var(--ink-4); }
.fc-chip.request:hover {
  background: rgba(31,29,84,0.05);
  border-color: var(--mainframe);
  color: var(--ink-1);
}
.fc-chip.request:hover .fc-chip-glyph { color: var(--mainframe); }
.fc-chip.request:active { transform: translateY(0.5px); }
/* Click / open state — chip stays highlighted while the request modal is open */
.fc-chip.request.is-active {
  background: rgba(31,29,84,0.08);
  border-style: solid;
  border-color: var(--mainframe);
  color: var(--ink-1);
  box-shadow: inset 0 0 0 1px var(--mainframe);
}
.fc-chip.request.is-active .fc-chip-glyph { color: var(--mainframe); }
/* Coming-soon hover tooltip — what the layer will be */
.fc-chip[data-tip] { position: relative; }
.fc-chip[data-tip]:hover::after,
.fc-chip[data-tip]:focus-visible::after {
  content: attr(data-tip);
  position: absolute;
  bottom: calc(100% + 9px);
  left: 50%;
  transform: translateX(-50%);
  width: 228px;
  background: var(--ink-1);
  color: #fff;
  font-family: 'Onest', sans-serif;
  font-size: 11.5px; font-weight: 400; line-height: 1.45;
  letter-spacing: 0; text-transform: none; text-align: left;
  padding: 9px 11px; border-radius: 8px;
  box-shadow: 0 10px 28px rgba(17,30,69,0.24);
  white-space: normal; pointer-events: none; z-index: 60;
}
.fc-chip[data-tip]:hover::before,
.fc-chip[data-tip]:focus-visible::before {
  content: '';
  position: absolute;
  bottom: calc(100% + 4px);
  left: 50%;
  transform: translateX(-50%);
  border: 5px solid transparent;
  border-top-color: var(--ink-1);
  pointer-events: none; z-index: 60;
}
.fc-chip-soon {
  font-family: 'SUSE Mono', monospace; font-size: 8.5px; font-weight: 600;
  letter-spacing: 0.06em; text-transform: uppercase; color: var(--warm-deep);
  background: rgba(138,123,110,0.14); border: 1px solid rgba(138,123,110,0.28);
  border-radius: 100px; padding: 1px 6px; margin-left: 2px;
}
.fc-chip {
  padding: 8px 15px; border-radius: 999px;
  background: rgba(17,30,69,0.04);
  border: 1px solid var(--line);
  font-family: 'Onest', sans-serif;
  font-size: 13px; font-weight: 500;
  color: var(--ink-2); cursor: pointer;
  display: inline-flex; align-items: center; gap: 7px;
  transition: background .14s, border-color .14s, box-shadow .14s, color .14s;
}
.fc-chip:hover { background: rgba(17,30,69,0.07); color: var(--ink); }
.fc-chip-glyph { display: inline-flex; align-items: center; justify-content: center; color: var(--ink-3); }
.fc-chip-glyph svg { width: 14px; height: 14px; stroke-width: 1.85; }
.fc-chip.locked {
  background: rgba(10,140,130,0.045);
  border-color: rgba(10,140,130,0.32);
  color: var(--forest-deep);
}
.fc-chip.locked .fc-chip-glyph { color: var(--forest); }
.fc-chip.locked:hover { background: rgba(10,140,130,0.11); border-color: var(--forest); }
/* Locked Core+ chips show a lock glyph; the feature glyph returns once unlocked */
.fc-chip .fc-chip-glyph--lock { display: none; }
.fc-chip.locked .fc-chip-glyph--lock { display: inline-flex; }
.fc-chip.locked .fc-chip-glyph--feature { display: none; }
/* in-chip Core+ pill → unified .core-plus component (defined in style.css) */
.fc-chip-arrow { display: none; }
.fc-chip-arrow svg { width: 14px; height: 14px; stroke-width: 2.2; }
.fc-chip.locked .fc-chip-arrow { display: none; }

/* Unlocked Core+ chip · solid fill */
.fc-chip.unlocked {
  background: rgba(10,140,130,0.045);
  border-color: rgba(10,140,130,0.32);
  color: var(--forest-deep);
}
.fc-chip.unlocked .fc-chip-glyph { color: var(--forest); }
.fc-chip.unlocked:hover { background: rgba(10,140,130,0.11); border-color: var(--forest); }
/* selected — only while this pack's drawer (shelf) is open */
.fc-chip.is-open {
  background: rgba(10,140,130,0.15);
  border-color: var(--forest);
  font-weight: 600;
  box-shadow: inset 0 0 0 1px var(--forest);
}
.fc-chip.is-open .fc-chip-glyph { color: var(--forest); }

/* ═══════════════════════════════════════════════════════════
   CORE+ DRAWERS · meta pills, prose, findings card
   ═══════════════════════════════════════════════════════════ */
.cp-meta-row {
  display: flex; gap: 8px; flex-wrap: wrap;
  margin-bottom: 16px;
}
.cp-meta-pill {
  display: inline-flex; align-items: center;
  padding: 4px 12px;
  border-radius: 100px;
  font-size: 12px; font-weight: 600;
}
.cp-meta-pill--ok {
  font-family: 'Onest', sans-serif;
  background: rgba(31,184,121,0.14);
  color: var(--matrix);
}
.cp-meta-pill--mono {
  font-family: 'SUSE Mono', monospace;
  font-size: 11.5px;
  font-weight: 500;
  letter-spacing: 0.02em;
  background: rgba(30,26,78,0.12);
  color: var(--indigo-500);
}
.cp-prose {
  font-size: 14px;
  line-height: 1.6;
  color: var(--ink-2);
  margin: 0 0 18px;
}
.cp-prose strong { color: var(--ink-1); font-weight: 600; }

.cp-findings {
  border: 1px solid var(--line);
  border-radius: 14px;
  background: white;
  padding: 18px 18px 6px;
}
.cp-findings-head {
  display: flex; align-items: baseline; justify-content: space-between;
  margin-bottom: 12px;
}
.cp-findings-title {
  font-family: 'Onest', sans-serif;
  font-weight: 700; font-size: 16px;
  color: var(--ink-1); margin: 0;
  letter-spacing: -0.01em;
}
.cp-findings-meta {
  font-family: 'SUSE Mono', monospace;
  font-size: 10px; letter-spacing: 0.10em;
  text-transform: uppercase;
  color: var(--ink-3);
}

.cp-finding {
  display: flex; gap: 12px;
  padding: 14px 0;
  border-top: 1px solid var(--line);
}
.cp-finding:first-of-type { border-top: none; padding-top: 4px; }
.cp-finding-glyph {
  width: 28px; height: 28px;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 7px;
  font-size: 16px;
  flex-shrink: 0;
}
.cp-finding-glyph--alert {
  background: rgba(220,62,62,0.10);
  color: var(--adverse);
}
.cp-finding-glyph--warn {
  background: rgba(229,163,58,0.14);
  color: var(--gold-deep);
}
.cp-finding-glyph--ok {
  background: rgba(31,184,121,0.12);
  color: var(--matrix);
}
.cp-finding-body { flex: 1; min-width: 0; }
.cp-finding-kicker {
  font-family: 'SUSE Mono', monospace;
  font-size: 10px; letter-spacing: 0.10em;
  text-transform: uppercase;
  color: var(--ink-3);
  margin-bottom: 4px;
  font-weight: 500;
}
.cp-finding-headline {
  font-family: 'Onest', sans-serif;
  font-weight: 600; font-size: 14px;
  color: var(--ink-1);
  line-height: 1.4;
}
.cp-finding-sub {
  font-size: 12.5px; color: var(--ink-3);
  line-height: 1.55;
  margin-top: 4px;
}

/* ═══════════════════════════════════════════════════════════
   CORE+ CONFIRM MODAL · centered card with scrim
   ═══════════════════════════════════════════════════════════ */
.cp-confirm {
  position: fixed; inset: 0;
  z-index: 200;
  display: flex; align-items: center; justify-content: center;
  padding: 24px;
}
.cp-confirm[hidden] { display: none; }
.cp-confirm-scrim {
  position: absolute; inset: 0;
  background: rgba(17,30,69,0.45);
  backdrop-filter: blur(2px);
  animation: cp-confirm-fade 160ms var(--ease);
}
.cp-confirm-card {
  position: relative;
  width: 100%; max-width: 440px;
  background: white;
  border-radius: 16px;
  padding: 32px 28px 24px;
  box-shadow: 0 24px 64px rgba(17,30,69,0.32), 0 4px 12px rgba(17,30,69,0.10);
  text-align: center;
  animation: cp-confirm-pop 200ms var(--ease);
}
@keyframes cp-confirm-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes cp-confirm-pop {
  from { opacity: 0; transform: translateY(8px) scale(0.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
.cp-confirm-close {
  position: absolute; top: 12px; right: 12px;
  width: 30px; height: 30px;
  border: none; background: transparent;
  font-size: 14px; color: var(--ink-3);
  cursor: pointer; border-radius: 8px;
  display: inline-flex; align-items: center; justify-content: center;
}
.cp-confirm-close:hover { background: rgba(17,30,69,0.06); color: var(--ink-1); }

.cp-confirm-mark {
  width: 48px; height: 48px;
  margin: 0 auto 14px;
  display: flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, rgba(10,140,130,0.18), rgba(10,140,130,0.06));
  color: var(--forest-deep);
  border-radius: 50%;
  font-size: 22px;
  font-weight: 700;
}
.cp-confirm-kicker {
  font-family: 'SUSE Mono', monospace;
  font-size: 10px; letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-3);
  font-weight: 600;
  margin-bottom: 6px;
}
.cp-confirm-title {
  font-family: 'Onest', sans-serif;
  font-weight: 700; font-size: 22px;
  letter-spacing: -0.014em;
  color: var(--ink-1);
  margin: 0 0 10px;
  line-height: 1.2;
}
.cp-confirm-prose {
  font-size: 13.5px; line-height: 1.55;
  color: var(--ink-2);
  margin: 0 0 18px;
}
.cp-confirm-price-row {
  display: flex; align-items: center; justify-content: space-between;
  padding: 12px 16px;
  background: rgba(17,30,69,0.04);
  border-radius: 10px;
  margin-bottom: 18px;
}
.cp-confirm-price-label {
  font-family: 'SUSE Mono', monospace;
  font-size: 10px; letter-spacing: 0.10em;
  text-transform: uppercase;
  color: var(--ink-3); font-weight: 500;
}
.cp-confirm-price-value {
  font-family: 'Onest', sans-serif;
  font-weight: 700; font-size: 18px;
  color: var(--ink-1);
}
.cp-confirm-actions {
  display: flex; gap: 10px;
}
.cp-confirm-cancel,
.cp-confirm-go {
  flex: 1;
  padding: 11px 18px;
  border-radius: 10px;
  font-family: 'Onest', sans-serif;
  font-weight: 600; font-size: 14px;
  cursor: pointer;
  border: none;
  transition: background 140ms var(--ease), color 140ms var(--ease), border-color 140ms var(--ease);
}
.cp-confirm-cancel {
  background: white;
  border: 1px solid var(--line);
  color: var(--ink-2);
}
.cp-confirm-cancel:hover { background: rgba(17,30,69,0.04); color: var(--ink-1); }
.cp-confirm-go {
  background: var(--mainframe);
  color: white;
}
.cp-confirm-go:hover { background: #1a2f6a; }

/* Multi-state views inside the modal: default → processing → success */
.cp-confirm-view[hidden] { display: none; }
.cp-confirm[data-cp-state="processing"] .cp-confirm-close,
.cp-confirm[data-cp-state="success"] .cp-confirm-close { display: none; }

/* Success mark · green */
.cp-confirm-mark--ok {
  background: linear-gradient(135deg, rgba(46,164,79,0.22), rgba(46,164,79,0.06));
  color: #2e8a4f;
  animation: cp-success-pop 360ms var(--ease) both;
}
@keyframes cp-success-pop {
  0% { transform: scale(0.4); opacity: 0; }
  60% { transform: scale(1.12); opacity: 1; }
  100% { transform: scale(1); opacity: 1; }
}

/* ═══════════════════════════════════════════════════════════
   DATA-POINT REQUEST · form modal (reuses .cp-confirm shell)
   ═══════════════════════════════════════════════════════════ */
.cp-confirm-card--form { max-width: 480px; text-align: left; }
.cp-confirm-card--form .cp-confirm-mark,
.cp-confirm-card--form .cp-confirm-kicker,
.cp-confirm-card--form .cp-confirm-title,
.cp-confirm-card--form .cp-confirm-prose { text-align: left; }
.cp-confirm-card--form .cp-confirm-mark { margin-left: 0; }
.cp-confirm-card--form .cp-confirm-title { font-size: 20px; }
.cp-confirm-card--form .cp-confirm-prose { margin-bottom: 20px; }

.dr-form { display: flex; flex-direction: column; gap: 15px; }
.dr-field { display: flex; flex-direction: column; gap: 6px; }
.dr-label {
  font-family: 'SUSE Mono', monospace;
  font-size: 10px; letter-spacing: 0.08em; text-transform: uppercase;
  font-weight: 600; color: var(--ink-2);
}
.dr-label .dr-opt { color: var(--ink-4); font-weight: 500; letter-spacing: 0.04em; }
.dr-input,
.dr-select,
.dr-textarea {
  width: 100%;
  font-family: 'Onest', sans-serif;
  font-size: 13.5px; color: var(--ink-1);
  background: white;
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 10px 12px;
  transition: border-color 140ms var(--ease), box-shadow 140ms var(--ease);
  box-sizing: border-box;
}
.dr-textarea { resize: vertical; min-height: 72px; line-height: 1.5; }
.dr-select { appearance: none; cursor: pointer;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
  background-repeat: no-repeat; background-position: right 12px center; padding-right: 34px;
}
.dr-input:focus,
.dr-select:focus,
.dr-textarea:focus {
  outline: none;
  border-color: var(--mainframe);
  box-shadow: 0 0 0 3px rgba(31,29,84,0.10);
}
.dr-input::placeholder,
.dr-textarea::placeholder { color: var(--ink-4); }

/* Segmented urgency control */
.dr-seg { display: flex; gap: 6px; }
.dr-seg-opt { flex: 1; position: relative; }
.dr-seg-opt input { position: absolute; opacity: 0; pointer-events: none; }
.dr-seg-opt span {
  display: block; text-align: center;
  font-family: 'Onest', sans-serif; font-size: 12.5px; font-weight: 500;
  color: var(--ink-2);
  background: white;
  border: 1px solid var(--line);
  border-radius: 9px; padding: 8px 6px;
  cursor: pointer;
  transition: background 140ms var(--ease), border-color 140ms var(--ease), color 140ms var(--ease);
}
.dr-seg-opt:hover span { border-color: rgba(31,29,84,0.32); color: var(--ink-1); }
.dr-seg-opt input:checked + span {
  background: rgba(31,29,84,0.07);
  border-color: var(--mainframe);
  color: var(--ink-1); font-weight: 600;
  box-shadow: inset 0 0 0 1px var(--mainframe);
}
.dr-seg-opt input:focus-visible + span { box-shadow: 0 0 0 3px rgba(31,29,84,0.18); }

.cp-confirm-card--form .cp-confirm-actions { margin-top: 6px; }

/* Success view · recap of what was filed */
.dr-recap {
  text-align: left;
  background: rgba(17,30,69,0.04);
  border-radius: 10px;
  padding: 12px 14px;
  margin: 0 0 18px;
  display: flex; flex-direction: column; gap: 7px;
}
.dr-recap-row { display: flex; gap: 10px; font-size: 12.5px; line-height: 1.4; }
.dr-recap-k {
  flex: 0 0 84px;
  font-family: 'SUSE Mono', monospace;
  font-size: 9.5px; letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--ink-3); font-weight: 600; padding-top: 1px;
}
.dr-recap-v { color: var(--ink-1); font-weight: 500; }

/* Coin-drop stage · processing state */
.cp-coin-stage {
  position: relative;
  width: 200px;
  height: 180px;
  margin: 0 auto 18px;
  overflow: hidden;
}
.cp-coin-bot {
  position: absolute;
  left: 50%;
  bottom: 0;
  width: 150px;
  height: auto;
  transform: translateX(-50%);
  animation: cp-bot-bonk 1500ms var(--ease) both;
}
.cp-coin {
  position: absolute;
  left: 50%;
  top: 0;
  width: 38px; height: 38px;
  margin-left: -19px;
  border-radius: 50%;
  background: radial-gradient(circle at 30% 30%, #f6c97a 0%, #e5a33a 55%, #946011 100%);
  box-shadow:
    inset 0 -4px 6px rgba(120,70,10,0.45),
    inset 0 2px 3px rgba(255,255,255,0.55),
    0 4px 10px rgba(229,163,58,0.35);
  display: flex; align-items: center; justify-content: center;
  color: #fff; font-size: 18px; font-weight: 700;
  text-shadow: 0 1px 1px rgba(120,70,10,0.4);
  animation: cp-coin-drop 1500ms cubic-bezier(0.55, 0.05, 0.4, 1) both;
}
.cp-coin-glyph { line-height: 1; transform: translateY(-1px); }
@keyframes cp-coin-drop {
  0%   { transform: translateY(-40px) scale(1) rotateX(0deg);   opacity: 0; }
  12%  { transform: translateY(-20px) scale(1) rotateX(0deg);   opacity: 1; }
  55%  { transform: translateY(50px)  scale(1) rotateX(0deg);   opacity: 1; }
  72%  { transform: translateY(72px)  scale(1) rotateX(40deg);  opacity: 1; }
  88%  { transform: translateY(82px)  scale(0.5) rotateX(80deg); opacity: 0.6; }
  100% { transform: translateY(86px)  scale(0.05) rotateX(90deg); opacity: 0; }
}
@keyframes cp-bot-bonk {
  0%, 70%   { transform: translateX(-50%) translateY(0); }
  78%       { transform: translateX(-50%) translateY(5px); }
  86%       { transform: translateX(-50%) translateY(-3px); }
  94%       { transform: translateX(-50%) translateY(1px); }
  100%      { transform: translateX(-50%) translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  .cp-coin, .cp-coin-bot { animation-duration: 1ms; }
}

/* Risk hero */
.risk-hero {
  background: linear-gradient(135deg, rgba(229,163,58,0.05) 0%, rgba(28,122,254,0.04) 100%);
  border-radius: 16px; border: 1px solid rgba(229,163,58,0.18);
  border-left: 4px solid var(--caution);
  padding: 22px 24px; margin-bottom: 14px;
  display: grid; grid-template-columns: 1fr auto;
  gap: 24px; align-items: end;
  position: relative;
}
.risk-hero > .card-kabob-wrap { position: absolute; top: 18px; right: 22px; }
.risk-hero-meta { grid-column: 1 / -1; }
.risk-hero-stats {
  display: grid; grid-template-columns: 1fr 1fr;
  position: relative;
  padding-bottom: 6px;
  border-bottom: 1px dotted rgba(17,30,69,0.35);
}
.risk-hero-stats .term-tip {
  border-bottom: none;
}
.risk-hero.risk-high {
  background: linear-gradient(135deg, rgba(220,62,62,0.05) 0%, rgba(28,122,254,0.03) 100%);
  border-color: rgba(220,62,62,0.18); border-left-color: var(--adverse);
}
.risk-hero.risk-low {
  background: linear-gradient(135deg, rgba(31,184,121,0.05) 0%, rgba(28,122,254,0.03) 100%);
  border-color: rgba(31,184,121,0.18); border-left-color: var(--matrix);
}
.risk-stat-label {
  font-family: 'Onest', sans-serif;
  font-weight: 700; font-size: 10.5px;
  letter-spacing: 0.10em; text-transform: uppercase;
  color: var(--ink-3); margin-bottom: 6px;
}
.risk-stat-value {
  font-family: 'Onest', sans-serif;
  font-weight: 700; font-size: 56px;
  line-height: 1; letter-spacing: -0.026em;
  color: var(--ink-1);
}
.risk-stat-conf {
  font-family: 'Onest', sans-serif;
  font-weight: 700; font-size: 36px;
  line-height: 1; letter-spacing: -0.022em;
  color: var(--ink-1);
}
.risk-meter {
  position: absolute; bottom: -2px; left: 50%;
  width: 50%; height: 3px;
  background: rgba(17,30,69,0.08); border-radius: 999px;
}
.risk-meter-fill { height: 100%; background: var(--signal); border-radius: 100px; }
.risk-hero-meta {
  grid-column: 1 / -1; padding-top: 14px;
  border-top: 1px solid var(--line);
  display: flex; flex-wrap: wrap; gap: 16px;
  font-size: 12.5px; color: var(--ink-2);
}
.risk-hero-meta-item { display: inline-flex; align-items: center; gap: 6px; }

/* Hoverable definition · highlight on term, tooltip rendered via JS portal */
.term-tip {
  position: relative;
  border-bottom: 1px dotted var(--ink-3);
  cursor: help;
  padding: 0 1px;
  transition: background 120ms var(--ease), border-color 120ms var(--ease);
}
.term-tip:hover,
.term-tip:focus-visible {
  background: rgba(229,163,58,0.16);
  border-bottom-color: var(--gold-deep, #946011);
  outline: none;
}

/* Pill-style term-tip · for compact badges (no underline, hover via outline) */
.term-tip--pill {
  border-bottom: none;
  padding: 0;
}
.term-tip--pill:hover,
.term-tip--pill:focus-visible {
  background: inherit;
  filter: brightness(0.94);
  box-shadow: 0 0 0 1.5px currentColor;
}

/* Tooltip element · injected into <body>, positioned by JS so it escapes
   any overflow:hidden / overflow-y:auto ancestors (drawers, modals). */
.term-tip-pop {
  position: fixed;
  width: 260px;
  max-width: calc(100vw - 24px);
  padding: 10px 12px;
  background: var(--ink-1);
  color: white;
  font-family: 'Onest', sans-serif;
  font-size: 12px;
  font-weight: 400;
  font-style: normal;
  line-height: 1.5;
  letter-spacing: 0;
  text-transform: none;
  text-align: left;
  border-radius: 8px;
  box-shadow: 0 8px 22px rgba(17,30,69,0.28);
  opacity: 0;
  pointer-events: none;
  transform: translateY(4px);
  transition: opacity 140ms var(--ease), transform 140ms var(--ease);
  z-index: 9999;
  display: none;
}
.term-tip-pop.is-open {
  display: block;
  opacity: 1;
  transform: translateY(0);
}
.term-tip-pop::after {
  content: '';
  position: absolute;
  left: var(--tip-arrow, 50%);
  border: 5px solid transparent;
}
.term-tip-pop[data-placement="top"]::after {
  bottom: -10px;
  border-top-color: var(--ink-1);
  transform: translateX(-50%);
}
.term-tip-pop[data-placement="bottom"]::after {
  top: -10px;
  border-bottom-color: var(--ink-1);
  transform: translateX(-50%);
}
.risk-hero-meta-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.risk-hero-meta-dot.matrix { background: var(--matrix); }
.risk-hero-meta-dot.caution { background: var(--caution); }
.risk-hero-meta-dot.adverse { background: var(--adverse); }
.risk-hero-meta-link {
  background: none; border: none; padding: 0;
  font-family: inherit; font-size: inherit; color: inherit;
  cursor: pointer; border-radius: 4px;
  text-decoration: none;
  transition: background .15s;
}
.risk-hero-meta-link:hover {
  background: rgba(17,30,69,0.06);
}
.risk-hero-meta-link:hover span:last-child {
  text-decoration: underline;
  text-underline-offset: 3px;
}
.snap-card-details {
  padding: 7px 14px; border-radius: 8px;
  background: rgba(17,30,69,0.04); border: none;
  font-family: 'Onest', sans-serif; font-weight: 500; font-size: 12px;
  color: var(--ink-2); cursor: pointer;
  white-space: nowrap;
  text-decoration: none;
  display: inline-block;
}
.snap-card-details:hover { background: rgba(28,122,254,0.12); color: var(--signal); }

/* Generic snap-card */
.snap-card {
  background: white; border-radius: 16px; border: 1px solid var(--line);
  padding: 22px 24px; margin-bottom: 14px;
}
.snap-card[id="card-findings"] {
  background: linear-gradient(135deg, rgba(28,122,254,0.06) 0%, #ffffff 100%);
  border-color: rgba(28,122,254,0.12);
}
.snap-card-head {
  display: flex; align-items: center; justify-content: space-between;
  gap: 14px; margin-bottom: 14px;
}
.snap-card-head > div:first-child {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
}
.snap-card-title {
  font-family: 'Onest', sans-serif;
  font-weight: 700; font-size: 28px;
  letter-spacing: -0.018em; color: var(--ink-1);
  margin: 0;
}
.summary-count {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 4px 11px; border-radius: 100px;
  background: rgba(17,30,69,0.06); color: var(--ink-2);
  font-family: 'Onest', sans-serif;
  font-weight: 700; font-size: 13px;
  letter-spacing: 0.04em;
}

/* Why / why not 2-col */
.signals-2col { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.signals-side {
  padding: 16px 18px;
  border-radius: 12px;
  border: 1px solid;
}
.signals-side.pos {
  background: linear-gradient(135deg, rgba(31,184,121,0.05), rgba(31,184,121,0.01));
  border-color: rgba(31,184,121,0.18);
}
.signals-side.neg {
  background: linear-gradient(135deg, rgba(229,163,58,0.05), rgba(229,163,58,0.01));
  border-color: rgba(229,163,58,0.20);
}
.signals-side-head {
  display: flex; align-items: baseline; gap: 10px;
  margin-bottom: 12px; padding-bottom: 10px;
  border-bottom: 1px solid rgba(17,30,69,0.06);
}
.signals-side-title {
  font-family: 'Onest', sans-serif;
  font-weight: 700; font-size: 16px;
  letter-spacing: -0.01em; color: var(--ink-1);
}
.signals-side.pos .signals-side-title em { color: var(--matrix-deep); font-weight: 300; }
.signals-side.neg .signals-side-title em { color: var(--caution-deep); font-weight: 300; }
.signals-side-count {
  font-family: 'Onest', sans-serif;
  font-weight: 700; font-size: 10px;
  letter-spacing: 0.10em; text-transform: uppercase;
  padding: 3px 8px; border-radius: 100px;
}
.signals-side.pos .signals-side-count { background: rgba(31,184,121,0.14); color: var(--matrix-deep); }
.signals-side.neg .signals-side-count { background: rgba(229,163,58,0.16); color: var(--caution-deep); }
.signal-row {
  display: flex; gap: 10px;
  padding: 10px 0;
  font-size: 12.5px; line-height: 1.55; color: var(--ink);
  border-bottom: 1px dashed rgba(17,30,69,0.06);
}
.signal-row:last-child { border-bottom: none; }
.signal-row-glyph {
  flex-shrink: 0;
  width: 22px; height: 22px;
  border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 13px; font-weight: 700;
  margin-top: 1px;
}
.signals-side.pos .signal-row-glyph { background: rgba(31,184,121,0.16); color: var(--matrix-deep); }
.signals-side.neg .signal-row-glyph { background: rgba(229,163,58,0.18); color: var(--caution-deep); }
.signal-row strong { font-weight: 600; }
.signal-row .signal-meta {
  display: block; margin-top: 4px;
  color: var(--ink-3); font-size: 11.5px; line-height: 1.5;
}
.signal-row-sources { display: flex; gap: 5px; align-items: center; margin-top: 6px; flex-wrap: wrap; }

/* Timeline */
.timeline-list { margin-top: 10px; position: relative; }
.timeline-row {
  display: grid; grid-template-columns: 80px 18px 1fr;
  gap: 14px; padding: 12px 0;
  border-bottom: 1px dashed rgba(17,30,69,0.06);
}
.timeline-row:last-child { border-bottom: none; }
.timeline-when {
  font-family: 'SUSE Mono', monospace;
  font-size: 10.5px; letter-spacing: 0.04em;
  color: var(--ink-3); padding-top: 3px;
}
.timeline-dot {
  width: 11px; height: 11px; border-radius: 50%;
  background: white; border: 2px solid var(--ink-3);
  margin-left: 3px; margin-top: 5px;
}
.timeline-row.matrix .timeline-dot { border-color: var(--matrix); }
.timeline-row.caution .timeline-dot { border-color: var(--caution); background: rgba(229,163,58,0.18); }
.timeline-row.adverse .timeline-dot { border-color: var(--adverse); }
.timeline-row.signal .timeline-dot { border-color: var(--signal); }
.timeline-body { font-size: 12.5px; line-height: 1.55; color: var(--ink); }
.timeline-body strong { font-weight: 600; }
.timeline-meta { display: block; margin-top: 4px; color: var(--ink-3); font-size: 11px; }

/* Verify list */
.verify-list { display: flex; flex-direction: column; gap: 10px; }
.verify-row {
  display: grid; grid-template-columns: 22px 1fr auto;
  gap: 12px; align-items: flex-start;
  padding: 12px 14px;
  background: rgba(17,30,69,0.025);
  border-radius: 10px;
  transition: background 140ms var(--ease);
}
.verify-row:hover { background: rgba(17,30,69,0.045); }
.verify-check {
  width: 20px; height: 20px;
  border-radius: 5px;
  border: 1.5px solid var(--ink-3);
  background: white;
  margin-top: 1px;
  padding: 0;
  cursor: pointer;
  position: relative;
  transition: border-color 120ms var(--ease), background 120ms var(--ease), transform 120ms var(--ease);
}
.verify-check:hover { border-color: var(--signal); }
.verify-check:focus-visible { outline: 2px solid var(--signal); outline-offset: 2px; }
.verify-check.done {
  background: var(--matrix); border-color: var(--matrix);
}
.verify-check.done::after {
  content: '✓'; color: white;
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  font-size: 12px; font-weight: 700;
  line-height: 1;
}
.verify-check.done:hover { background: #189668; border-color: #189668; }
.verify-body { font-size: 13px; line-height: 1.5; color: var(--ink); }
.verify-body em { color: var(--signal); font-weight: 300; }
.verify-meta { display: block; font-size: 11px; color: var(--ink-3); margin-top: 4px; }
.verify-show-how {
  display: inline-flex; align-items: center;
  margin-top: 8px;
  padding: 0;
  background: none; border: none;
  font-family: 'Onest', sans-serif;
  font-size: 11.5px; font-weight: 600;
  color: var(--signal);
  cursor: pointer;
  text-decoration: none;
  transition: color 120ms var(--ease), transform 120ms var(--ease);
}
.verify-show-how:hover { color: #0f4fb8; transform: translateX(2px); }
.verify-show-how:focus-visible { outline: 2px solid var(--signal); outline-offset: 2px; border-radius: 4px; }
.verify-tag {
  font-family: 'Onest', sans-serif;
  font-weight: 700; font-size: 9px;
  letter-spacing: 0.10em; text-transform: uppercase;
  padding: 3px 8px; border-radius: 100px;
  flex-shrink: 0;
}
.verify-tag.detective { background: linear-gradient(120deg, rgba(30,26,78,0.16), rgba(28,122,254,0.14)); color: var(--indigo-500); }
.verify-tag.verify { background: rgba(28,122,254,0.10); color: var(--signal); }
.verify-tag.you { background: rgba(229,163,58,0.14); color: var(--gold-deep); }

/* Renewal-prep footer */
.renewal-prep {
  background: white; border-radius: 14px;
  border: 1px solid var(--line);
  padding: 16px 20px;
  margin-bottom: 14px;
  display: flex; align-items: center; gap: 14px;
}
.renewal-prep-icon {
  width: 38px; height: 38px;
  border-radius: 10px;
  background: rgba(28,122,254,0.10);
  color: var(--signal);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0; font-size: 16px;
}
.renewal-prep-text { flex: 1; min-width: 0; }
.renewal-prep-title {
  font-family: 'Onest', sans-serif;
  font-weight: 600; font-size: 14px;
  color: var(--ink-1);
}
.renewal-prep-sub { font-size: 12px; color: var(--ink-3); margin-top: 2px; }
.renewal-prep-toggle {
  display: inline-flex; align-items: center; gap: 6px;
  cursor: pointer; user-select: none;
  font-family: 'SUSE Mono', monospace;
  font-size: 10.5px; letter-spacing: 0.04em;
  color: var(--matrix); font-weight: 600;
  padding: 5px 11px; border-radius: 100px;
  background: rgba(31,184,121,0.10);
}
.renewal-prep-toggle input { accent-color: var(--matrix); }

/* Defensibility footer */
.defense-footer {
  background: white; border-radius: 14px; border: 1px solid var(--line);
  padding: 16px 20px;
  display: flex; align-items: flex-start; gap: 14px;
  margin-bottom: 14px;
}
.defense-footer-mark {
  width: 36px; height: 36px;
  border-radius: 50%;
  background: var(--cloud);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0; overflow: visible;
}
.defense-footer-mark img { width: 28px; height: 28px; }
.defense-footer-body { flex: 1; min-width: 0; font-size: 13px; line-height: 1.55; color: var(--ink-2); }
.defense-footer-body strong { color: var(--ink-1); font-weight: 600; }
.defense-footer-body em { color: var(--signal); font-weight: 300; }
.defense-footer-meter {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 2px 9px; border-radius: 100px;
  background: rgba(28,122,254,0.10); color: var(--signal);
  font-family: 'SUSE Mono', monospace; font-size: 10.5px; font-weight: 600;
}
/* Defensibility footer v2 — big score left, Marvin peeking right */
.defense-footer.has-peek {
  position: relative;
  overflow: hidden;
  align-items: center;
  padding-right: 86px;
}
.defense-footer-score {
  flex-shrink: 0;
  display: flex; flex-direction: column;
  padding-right: 18px;
  border-right: 1px solid var(--line);
  margin-right: 4px;
}
.defense-footer-score-value {
  font-family: 'SUSE Mono', monospace;
  font-size: 40px; font-weight: 700; line-height: 0.95;
  letter-spacing: -0.02em; color: var(--signal);
}
.defense-footer-score-label {
  font-family: 'SUSE Mono', monospace;
  font-size: 9px; font-weight: 600; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--ink-3);
  margin-top: 6px;
}
.defense-footer-peek {
  position: absolute;
  right: -22px; top: 50%;
  transform: translateY(-50%);
  width: 86px; height: 86px;
  pointer-events: none; user-select: none;
}

/* Sources strip */
.sources-strip {
  background: white; border: 1px solid var(--line);
  border-radius: 14px;
  padding: 14px 18px;
  display: flex; align-items: center; justify-content: space-between;
  gap: 14px;
}
.sources-strip-left {
  display: flex; gap: 10px; align-items: center;
  font-family: 'SUSE Mono', monospace; font-size: 10px;
  letter-spacing: 0.10em; text-transform: uppercase;
  color: var(--ink-3); font-weight: 500;
}
.sources-strip-chips { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.doc-chip {
  display: inline-flex; align-items: center;
  padding: 5px 10px;
  background: rgba(17,30,69,0.05);
  border-radius: 8px;
  font-family: 'Onest', sans-serif;
  font-size: 11.5px; font-weight: 500;
  color: var(--ink-2);
  text-decoration: none;
  white-space: nowrap;
  letter-spacing: -0.005em;
  transition: background 140ms var(--ease), color 140ms var(--ease);
}
.doc-chip:hover { background: rgba(17,30,69,0.09); color: var(--ink-1); }
.doc-chip-more {
  font-family: 'Onest', sans-serif;
  font-size: 11.5px; font-weight: 600;
  color: var(--ink-3);
  padding: 0 4px;
}

/* ═══════════════════════════════════════════════════════════
   Sources tab · documentation-style numbered citations.
   ═══════════════════════════════════════════════════════════ */
.snap-sources-body { padding: 22px 28px 32px; background: var(--ghost); }
.src-doc-head { margin-bottom: 18px; }
.src-doc-title {
  font-family: 'Onest', sans-serif;
  font-weight: 700;
  font-size: 22px;
  color: var(--ink-1);
  margin: 0 0 6px;
  letter-spacing: -0.012em;
}
.src-doc-sub {
  font-size: 13px;
  color: var(--ink-3);
  line-height: 1.55;
  max-width: 640px;
}

/* Toolbar · vendor filter chips on the left, search on the right */
.src-doc-toolbar {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  padding: 14px 16px;
  background: white;
  border: 1px solid var(--line);
  border-radius: 12px;
  margin-bottom: 16px;
}
.src-doc-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  flex: 1 1 auto;
  min-width: 0;
}
.src-doc-filter {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  background: transparent;
  border: 1px solid var(--line);
  border-radius: 100px;
  font-family: 'Onest', sans-serif;
  font-size: 12px;
  font-weight: 500;
  color: var(--ink-2);
  cursor: pointer;
  transition: background 140ms var(--ease), border-color 140ms var(--ease), color 140ms var(--ease);
}
.src-doc-filter:hover { color: var(--ink-1); border-color: rgba(17,30,69,0.18); }
.src-doc-filter.active {
  background: rgba(28,122,254,0.08);
  border-color: var(--signal);
  color: var(--signal);
}
.src-doc-filter-count {
  font-family: 'SUSE Mono', monospace;
  font-size: 10.5px;
  font-weight: 500;
  opacity: 0.7;
}
.src-doc-search {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: white;
  flex-shrink: 0;
  width: 280px;
  max-width: 100%;
  transition: border-color 140ms var(--ease), box-shadow 140ms var(--ease);
}
.src-doc-search:focus-within {
  border-color: var(--signal);
  box-shadow: 0 0 0 3px rgba(28,122,254,0.10);
}
.src-doc-search-icon { font-size: 14px; color: var(--ink-3); }
.src-doc-search input {
  border: none;
  outline: none;
  flex: 1 1 auto;
  font-family: 'Onest', sans-serif;
  font-size: 13px;
  color: var(--ink-1);
  background: transparent;
  min-width: 0;
}

/* Source rows · numbered citation, vendor pill, claim, URL */
.src-doc-list {
  background: white;
  border: 1px solid var(--line);
  border-radius: 12px;
  overflow: hidden;
}
.src-doc-section {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 22px;
  background: rgba(17,30,69,0.02);
  border-bottom: 1px solid var(--line);
}
.src-doc-section:not(:first-child) { border-top: 1px solid var(--line); }
.src-doc-section .src-pill {
  font-family: 'SUSE Mono', monospace;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: lowercase;
  padding: 4px 11px;
  border-radius: 100px;
}
.src-doc-section-meta {
  font-family: 'SUSE Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.04em;
  color: var(--ink-3);
  text-transform: uppercase;
}
.src-doc-row {
  display: grid;
  grid-template-columns: 56px 1fr;
  gap: 8px;
  padding: 18px 22px;
  border-bottom: 1px solid var(--line);
  transition: background 120ms var(--ease);
}
.src-doc-row:last-child { border-bottom: none; }
.src-doc-row:hover { background: rgba(28,122,254,0.02); }
.src-doc-row[hidden] { display: none; }
.src-doc-num {
  font-family: 'SUSE Mono', monospace;
  font-size: 13px;
  color: var(--ink-3);
  letter-spacing: 0.04em;
  font-weight: 500;
}
.src-doc-row-head {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 8px;
}
.src-doc-row-head .src-pill {
  font-family: 'SUSE Mono', monospace;
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: lowercase;
  padding: 3px 9px;
  border-radius: 100px;
}
.src-doc-cadence,
.src-doc-pulled {
  font-family: 'SUSE Mono', monospace;
  font-size: 10.5px;
  letter-spacing: 0.04em;
  color: var(--ink-3);
  text-transform: uppercase;
}
.src-doc-cadence::before { content: '· '; }
.src-doc-name {
  font-family: 'Onest', sans-serif;
  font-size: 14px;
  font-weight: 600;
  color: var(--ink-1);
  margin-bottom: 4px;
  line-height: 1.4;
}
.src-doc-claim {
  font-size: 13px;
  color: var(--ink-2);
  line-height: 1.5;
  margin-bottom: 6px;
}
.src-doc-claim strong { color: var(--ink-1); font-weight: 600; }
.src-doc-url {
  font-family: 'SUSE Mono', monospace;
  font-size: 12px;
  color: var(--signal);
  text-decoration: none;
  word-break: break-all;
}
.src-doc-url:hover { text-decoration: underline; }

.src-doc-empty {
  text-align: center;
  padding: 64px 20px;
  color: var(--ink-3);
  background: white;
  border: 1px dashed var(--line);
  border-radius: 12px;
  font-size: 13px;
}
.src-doc-empty-mark {
  font-size: 28px;
  margin-bottom: 8px;
  opacity: 0.5;
}

/* ═══════════════════════════════════════════════════════════
   History tab · table of past snapshots for this company.
   ═══════════════════════════════════════════════════════════ */
.snap-history-body { padding: 22px 28px 32px; background: var(--ghost); }
.snap-history-head { margin-bottom: 18px; }
.snap-history-title {
  font-family: 'Onest', sans-serif;
  font-weight: 700;
  font-size: 22px;
  color: var(--ink-1);
  margin: 0 0 6px;
  letter-spacing: -0.012em;
}
.snap-history-sub {
  font-size: 13px;
  color: var(--ink-3);
  line-height: 1.55;
}

.snap-history-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  background: white;
  border: 1px solid var(--line);
  border-radius: 12px;
  overflow: hidden;
  font-family: 'Onest', sans-serif;
  font-size: 13px;
}
.snap-history-table thead th {
  text-align: left;
  padding: 12px 16px;
  background: rgba(17,30,69,0.02);
  border-bottom: 1px solid var(--line);
  font-family: 'SUSE Mono', monospace;
  font-size: 10.5px;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: var(--ink-3);
  font-weight: 600;
}
.snap-history-table tbody td {
  padding: 14px 16px;
  border-bottom: 1px solid var(--line);
  vertical-align: top;
  color: var(--ink-1);
}
.snap-history-table tbody tr:last-child td { border-bottom: none; }
.snap-history-row { cursor: pointer; transition: background 120ms var(--ease); }
.snap-history-row:hover { background: rgba(28,122,254,0.04); }
.snap-history-row.is-current { background: rgba(46,164,79,0.04); }
.snap-history-row.is-current:hover { background: rgba(46,164,79,0.07); }

.snap-history-when { font-weight: 600; }
.snap-history-when-rel {
  font-family: 'SUSE Mono', monospace;
  font-size: 10.5px;
  color: var(--ink-3);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-top: 2px;
}
.snap-history-verdict {
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  border-radius: 100px;
  font-family: 'Onest', sans-serif;
  font-size: 12px;
  font-weight: 600;
}
.snap-history-verdict.medium { background: rgba(229,163,58,0.14); color: #946011; }
.snap-history-verdict.caution { background: rgba(229,163,58,0.18); color: #a8590e; }
.snap-history-verdict.high { background: rgba(220,62,62,0.10); color: var(--adverse); }
.snap-history-verdict.low { background: rgba(46,164,79,0.10); color: #2e8a4f; }

.snap-history-now {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 10px;
  background: rgba(46,164,79,0.10);
  color: #2e8a4f;
  font-family: 'Onest', sans-serif;
  font-size: 11.5px;
  font-weight: 600;
  border-radius: 100px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.snap-history-link {
  background: transparent;
  border: none;
  font-family: 'Onest', sans-serif;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--signal);
  cursor: pointer;
  padding: 0;
}
.snap-history-link:hover { text-decoration: underline; }

/* ═══════════════════════════════════════════════════════════
   BIND DECISION · header affordance pill (states: pending, bound, no)
   ═══════════════════════════════════════════════════════════ */
.snap-bind-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 8px 14px;
  background: white;
  border: 1.5px dashed var(--line-strong, #d3d8e5);
  border-radius: 9px;
  font-family: 'Onest', sans-serif;
  font-size: 12.5px;
  font-weight: 600;
  color: var(--ink-3);
  cursor: pointer;
  white-space: nowrap;
  flex-shrink: 0;
  transition: border-color 140ms var(--ease), color 140ms var(--ease), background 140ms var(--ease);
}
.snap-bind-btn-label { white-space: nowrap; }
.snap-bind-btn:hover { border-color: var(--signal); color: var(--signal); }
.snap-bind-btn-icon { font-size: 12px; }
.snap-bind-btn[data-bind-status="bound"] {
  border-style: solid;
  border-color: #2e8a4f;
  background: rgba(46,164,79,0.08);
  color: #2e8a4f;
}
.snap-bind-btn[data-bind-status="bound"]:hover { background: rgba(46,164,79,0.14); }
.snap-bind-btn[data-bind-status="no"] {
  border-style: solid;
  border-color: var(--line);
  background: rgba(17,30,69,0.04);
  color: var(--ink-3);
}

/* ═══════════════════════════════════════════════════════════
   VD · verification-detail cards used by the Company Facts
   sub-shelves (Registration, Property, Online Presence).
   ═══════════════════════════════════════════════════════════ */
.vd-pills {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 18px;
}
.vd-pill {
  display: inline-flex;
  align-items: center;
  padding: 4px 12px;
  border-radius: 6px;
  font-family: 'Onest', sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.01em;
  white-space: nowrap;
}
.vd-pill--ok {
  background: rgba(31,184,121,0.12);
  color: var(--matrix);
}
.vd-pill--mono {
  background: rgba(17,30,69,0.06);
  color: var(--ink-2);
  font-family: 'SUSE Mono', monospace;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: lowercase;
}
.vd-prose {
  font-family: 'Onest', sans-serif;
  font-size: 14.5px;
  line-height: 1.65;
  color: var(--ink-1);
  margin: 0 0 24px;
}
.vd-prose strong { font-weight: 700; }

.vd-card {
  background: white;
  border: 1px solid var(--line, #e2e5ed);
  border-radius: 12px;
  padding: 20px 22px 12px;
  margin: 0 0 20px;
}
.vd-card-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: 18px;
}
.vd-card-title {
  font-family: 'Onest', sans-serif;
  font-size: 15px;
  font-weight: 700;
  color: var(--ink-1);
  margin: 0;
}
.vd-card-meta {
  font-family: 'SUSE Mono', monospace;
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink-3);
  white-space: nowrap;
}

.vd-row {
  display: grid;
  grid-template-columns: 28px 1fr;
  gap: 0 10px;
  padding: 14px 0;
  border-top: 1px solid var(--line, #e2e5ed);
}
.vd-row:first-of-type { border-top: none; padding-top: 0; }
.vd-row-check {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: rgba(31,184,121,0.12);
  color: var(--matrix);
  font-size: 13px;
  font-weight: 700;
  flex-shrink: 0;
  margin-top: 1px;
}
.vd-row-kicker {
  font-family: 'SUSE Mono', monospace;
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--signal, #3D6EF7);
  margin-bottom: 3px;
}
.vd-row-title {
  font-family: 'Onest', sans-serif;
  font-size: 14px;
  font-weight: 600;
  color: var(--ink-1);
  line-height: 1.45;
}
.vd-row-sub {
  font-family: 'Onest', sans-serif;
  font-size: 12.5px;
  color: var(--ink-3);
  line-height: 1.55;
  margin-top: 4px;
}

/* ── Top findings card (standalone) ── */
.findings-sub {
  font-size: 13px;
  color: var(--ink-3);
  line-height: 1.55;
  margin: 0 0 10px;
}
.findings-list {
  margin: 0;
  padding-left: 0;
  list-style: none;
}
.findings-list li {
  position: relative;
  padding: 10px 0 10px 24px;
  font-size: 14px;
  line-height: 1.55;
  color: var(--ink-2);
  border-bottom: 1px solid rgba(255,255,255,.04);
}
.findings-list li:last-child { border-bottom: none; }
.findings-list li::before {
  content: '';
  position: absolute;
  left: 4px;
  top: 17px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
}
.findings-list li.finding-matrix::before { background: var(--matrix); }
.findings-list li.finding-caution::before { background: var(--caution); }
.findings-list li.finding-adverse::before { background: var(--adverse); }
.finding-action {
  display: block;
  margin-top: 6px;
  font-size: 12.5px;
  color: var(--ink-3);
  line-height: 1.5;
}

/* ── Bind decision card ── */
.bind-card-intro {
  font-size: 14px;
  color: var(--ink-2);
  line-height: 1.55;
  margin: 0 0 18px;
}
.bind-card-steps {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 22px;
}
.bind-card-step {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  font-size: 13.5px;
  line-height: 1.55;
  color: var(--ink-2);
}
.bind-card-step-num {
  flex-shrink: 0;
  width: 24px; height: 24px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 50%;
  background: rgba(17,30,69,0.06);
  font-family: 'SUSE Mono', monospace;
  font-size: 12px; font-weight: 600;
  color: var(--ink-2);
}
/* "Coming soon" renewal-report example link · sits under bullet 2 */
.renewal-example-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 9px;
  font-family: 'Onest', sans-serif;
  font-size: 12.5px; font-weight: 500;
  color: var(--mainframe);
  text-decoration: none;
  transition: color .14s var(--ease);
}
.renewal-example-link:hover { color: var(--signal); }
.renewal-example-link .re-soon {
  flex-shrink: 0;
  font-family: 'SUSE Mono', monospace;
  font-size: 8.5px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--warm-deep);
  background: rgba(138,123,110,0.14);
  border: 1px solid rgba(138,123,110,0.28);
  border-radius: 100px; padding: 2px 7px;
}
.renewal-example-link .re-text { border-bottom: 1px solid transparent; transition: border-color .14s var(--ease); }
.renewal-example-link:hover .re-text { border-bottom-color: currentColor; }
.renewal-example-link .re-arrow { font-size: 13px; transition: transform .14s var(--ease); }
.renewal-example-link:hover .re-arrow { transform: translateX(2px); }

.bind-card-actions {
  display: flex;
  gap: 10px;
}
.bind-card-btn {
  padding: 10px 20px;
  border-radius: 8px;
  font-family: 'Onest', sans-serif;
  font-size: 13.5px;
  font-weight: 600;
  cursor: pointer;
  border: none;
  transition: background .15s, color .15s;
}
.bind-card-btn--yes {
  background: var(--signal);
  color: #fff;
}
.bind-card-btn--yes:hover { background: var(--indigo-500); }
.bind-card-btn--no {
  background: rgba(17,30,69,0.06);
  color: var(--ink-2);
}
.bind-card-btn--no:hover { background: rgba(17,30,69,0.10); }

.findings-list li strong {
  font-family: 'Onest', sans-serif;
  font-size: 15.5px;
  color: var(--ink-1);
}

/* ── Renewal monitoring · scheduled state (bottom card) ── */
.mon-sched-banner { display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px; border-radius: 12px; background: rgba(31,184,121,0.06); border: 1px solid rgba(31,184,121,0.20); margin-bottom: 16px; }
.mon-sched-check { width: 24px; height: 24px; border-radius: 50%; background: var(--matrix); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 13px; flex-shrink: 0; }
.mon-sched-title { font-size: 14px; font-weight: 600; color: var(--ink-1); }
.mon-sched-sub { font-size: 12.5px; color: var(--ink-2); margin-top: 2px; }
.mon-sched-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 16px; }
.mon-sched-kv { display: flex; flex-direction: column; gap: 3px; padding: 12px 14px; background: rgba(17,30,69,0.03); border-radius: 10px; }
.mon-sched-kv span { font-family: 'SUSE Mono', monospace; font-size: 9.5px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-3); }
.mon-sched-kv b { font-size: 13.5px; font-weight: 600; color: var(--ink-1); }
.mon-sched-actions { display: flex; gap: 10px; align-items: center; }
.mon-sched-cancel { border: none; background: none; color: var(--ink-3); font-family: 'Onest', sans-serif; font-size: 13px; font-weight: 500; cursor: pointer; }
.mon-sched-cancel:hover { color: var(--adverse); }
.snap-bind-btn.is-scheduled { background: rgba(31,184,121,0.12); border-color: rgba(31,184,121,0.30); color: var(--matrix-deep); }
