/* =====================================================================
   Firefox Enterprise — Lumenous Pricing Operating System (v2)
   Design system · Mozilla-inspired · Sophisticated · Built for sellers + pricing team
   ===================================================================== */

:root {
  /* Brand palette */
  --moz-orange: #ff7139;
  --moz-orange-deep: #e6510a;
  --moz-orange-soft: #ffd2bd;
  --moz-coral: #ff4f00;
  --moz-gold: #d4a017;
  --moz-gold-soft: #fde9b4;

  /* Neutrals — light theme */
  --bg-base: #faf6f0;
  --bg-panel: #ffffff;
  --bg-elev: #ffffff;
  --bg-tint: #f4ede1;
  --bg-tint-strong: #ede3d2;
  --bg-overlay: rgba(10, 14, 39, 0.5);

  /* Ink / text */
  --ink-1: #0a0e27;
  --ink-2: #1f2547;
  --ink-3: #555b7a;
  --ink-4: #8b91a8;
  --ink-5: #c5c9d6;
  --on-dark-1: #fdf9ef;
  --on-dark-2: #c0c4d6;

  /* Borders */
  --line: rgba(10, 14, 39, 0.08);
  --line-strong: rgba(10, 14, 39, 0.18);
  --line-on-dark: rgba(255, 255, 255, 0.12);

  /* Status */
  --ok: #1b7a4a;
  --ok-soft: #d8f0e1;
  --warn: #b8540a;
  --warn-soft: #fde9b4;
  --danger: #c1284b;
  --danger-soft: #fadee5;

  /* Tier badges */
  --tier-1: var(--moz-orange);
  --tier-2: #6c7593;

  /* Typography */
  --font-display: "Inter Display", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
  --font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
  --font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;

  /* Radius */
  --r-xs: 4px;
  --r-sm: 8px;
  --r-md: 12px;
  --r-lg: 18px;
  --r-xl: 28px;

  /* Elevation */
  --shadow-sm: 0 1px 2px rgba(10, 14, 39, 0.06);
  --shadow-md: 0 4px 16px rgba(10, 14, 39, 0.08);
  --shadow-lg: 0 16px 40px rgba(10, 14, 39, 0.12);

  /* Layout */
  --container: 1280px;
  --gutter: 24px;
}

/* Dark mode */
[data-theme="dark"] {
  --bg-base: #07091a;
  --bg-panel: #0f1330;
  --bg-elev: #161b3e;
  --bg-tint: #11163a;
  --bg-tint-strong: #1c2350;
  --ink-1: #fdf9ef;
  --ink-2: #d2d5e4;
  --ink-3: #97a0bc;
  --ink-4: #6c7493;
  --ink-5: #2b3158;
  --line: rgba(255, 255, 255, 0.08);
  --line-strong: rgba(255, 255, 255, 0.18);
  --ok-soft: #112e1f;
  --warn-soft: #3a2a0d;
  --danger-soft: #3a0f1b;
}

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.55;
  background: var(--bg-base);
  color: var(--ink-1);
  -webkit-font-smoothing: antialiased;
  font-feature-settings: "cv11", "ss01", "ss02";
}

h1, h2, h3, h4 {
  font-family: var(--font-display);
  letter-spacing: -0.015em;
  color: var(--ink-1);
  margin: 0 0 0.4em;
  font-weight: 600;
}
h1 { font-size: clamp(36px, 4.6vw, 64px); line-height: 1.05; letter-spacing: -0.03em; font-weight: 700; }
h2 { font-size: clamp(26px, 2.4vw, 36px); line-height: 1.15; }
h3 { font-size: 20px; line-height: 1.25; }
h4 { font-size: 14px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--ink-3); font-weight: 600; }
p { margin: 0 0 1em; color: var(--ink-2); }
small { font-size: 12px; color: var(--ink-3); }
a { color: var(--moz-orange-deep); text-decoration: none; border-bottom: 1px solid currentColor; }
a:hover { color: var(--moz-coral); }

button { font-family: inherit; cursor: pointer; }

.num { font-family: var(--font-mono); font-variant-numeric: tabular-nums; letter-spacing: -0.02em; }
.eur { color: var(--ink-1); }

/* ---------- Layout ---------- */
.container {
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 var(--gutter);
}

/* ---------- Header ---------- */
.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(250, 246, 240, 0.94);
  backdrop-filter: saturate(140%) blur(12px);
  -webkit-backdrop-filter: saturate(140%) blur(12px);
  border-bottom: 1px solid var(--line);
}
[data-theme="dark"] .site-header { background: rgba(7, 9, 26, 0.92); }
.header-inner {
  display: flex;
  align-items: center;
  gap: 24px;
  height: 64px;
}
.brand {
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 16px;
  color: var(--ink-1);
  text-decoration: none;
  border: none;
  flex-shrink: 0;
}
.brand-mark {
  width: 30px;
  height: 30px;
  background: linear-gradient(135deg, var(--moz-orange) 0%, var(--moz-coral) 100%);
  border-radius: 50%;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-weight: 700;
  font-size: 14px;
}
.brand-name { display: flex; flex-direction: column; line-height: 1.1; }
.brand-name .small { font-size: 10px; font-weight: 500; color: var(--ink-3); letter-spacing: 0.08em; text-transform: uppercase; }
.nav {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-left: auto;
}
.nav a {
  color: var(--ink-2);
  font-size: 13px;
  font-weight: 500;
  padding: 6px 12px;
  border-radius: var(--r-sm);
  border: none;
  text-decoration: none;
  letter-spacing: -0.005em;
}
.nav a:hover { background: var(--bg-tint); color: var(--ink-1); }
.nav a.active { background: var(--ink-1); color: var(--on-dark-1); }
[data-theme="dark"] .nav a.active { background: var(--moz-orange); color: var(--ink-1); }

/* Role switcher */
.role-switcher {
  display: inline-flex;
  background: var(--bg-tint);
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 4px;
  gap: 2px;
  flex-shrink: 0;
}
.role-switcher button {
  border: 0;
  background: transparent;
  padding: 6px 14px;
  font-size: 12px;
  font-weight: 600;
  color: var(--ink-3);
  border-radius: 999px;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}
.role-switcher button.active {
  background: var(--ink-1);
  color: var(--on-dark-1);
}
[data-theme="dark"] .role-switcher button.active { background: var(--moz-orange); color: var(--ink-1); }

/* Theme toggle */
.icon-btn {
  border: 1px solid var(--line);
  background: var(--bg-panel);
  color: var(--ink-2);
  width: 34px;
  height: 34px;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 14px;
}
.icon-btn:hover { background: var(--bg-tint); }

/* ---------- Hero ---------- */
.hero {
  padding: 56px 0 32px;
  border-bottom: 1px solid var(--line);
}
.hero-eyebrow {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--moz-orange-deep);
  margin-bottom: 16px;
}
.hero h1 {
  max-width: 14ch;
  margin-bottom: 16px;
}
.hero-sub {
  font-size: 18px;
  line-height: 1.5;
  color: var(--ink-3);
  max-width: 60ch;
  margin-bottom: 32px;
}
.hero-anchor-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 24px;
}
@media (max-width: 900px) { .hero-anchor-grid { grid-template-columns: repeat(2, 1fr); } }
.anchor-stat {
  background: var(--bg-panel);
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  padding: 18px 18px;
}
.anchor-stat .label {
  font-size: 11px;
  font-weight: 600;
  color: var(--ink-3);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 8px;
}
.anchor-stat .value {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 28px;
  line-height: 1;
  color: var(--ink-1);
  letter-spacing: -0.025em;
  font-variant-numeric: tabular-nums;
}
.anchor-stat .sub {
  font-size: 12px;
  color: var(--ink-3);
  margin-top: 6px;
}
.anchor-stat.is-primary {
  background: linear-gradient(135deg, var(--ink-1) 0%, #1c2350 100%);
  color: var(--on-dark-1);
  border: 0;
}
.anchor-stat.is-primary .label,
.anchor-stat.is-primary .sub { color: var(--on-dark-2); }
.anchor-stat.is-primary .value { color: var(--moz-orange); }
.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
}

/* ---------- Buttons ---------- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 0;
  border-radius: 10px;
  padding: 11px 18px;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: -0.005em;
  cursor: pointer;
  text-decoration: none;
  border: 1px solid transparent;
  transition: background 120ms ease, transform 80ms ease;
}
.btn:hover { transform: translateY(-1px); }
.btn-primary { background: var(--moz-orange); color: white; }
.btn-primary:hover { background: var(--moz-orange-deep); }
.btn-dark { background: var(--ink-1); color: var(--on-dark-1); }
.btn-dark:hover { background: #1f2547; }
.btn-ghost { background: transparent; color: var(--ink-1); border-color: var(--line-strong); }
.btn-ghost:hover { background: var(--bg-tint); }

/* ---------- Sections ---------- */
section.module {
  padding: 56px 0;
  border-top: 1px solid var(--line);
}
section.module:first-of-type { border-top: 0; }
section.module .module-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 32px;
}
.module-head .label-row {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--moz-orange-deep);
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 10px;
}
.module-head h2 { margin-bottom: 0; }
.module-head .head-sub {
  color: var(--ink-3);
  margin-top: 8px;
  font-size: 15px;
  max-width: 70ch;
}

/* ---------- Card grids ---------- */
.grid {
  display: grid;
  gap: 18px;
}
.grid-2 { grid-template-columns: repeat(2, 1fr); }
.grid-3 { grid-template-columns: repeat(3, 1fr); }
.grid-4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1000px) { .grid-3, .grid-4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .grid-2, .grid-3, .grid-4 { grid-template-columns: 1fr; } }

.card {
  background: var(--bg-panel);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  padding: 22px;
  position: relative;
}
.card.is-dark {
  background: var(--ink-1);
  color: var(--on-dark-1);
  border: 0;
}
.card.is-dark h3 { color: var(--on-dark-1); }
.card.is-dark p { color: var(--on-dark-2); }
.card-eyebrow {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--moz-orange-deep);
  margin-bottom: 8px;
}

/* ---------- Calculator ---------- */
.calc-layout {
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 24px;
}
@media (max-width: 1000px) { .calc-layout { grid-template-columns: 1fr; } }

.calc-inputs, .calc-output {
  background: var(--bg-panel);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  padding: 28px;
}
.calc-output { background: var(--ink-1); color: var(--on-dark-1); border: 0; }
[data-theme="dark"] .calc-output { background: #0c1027; }

.field {
  margin-bottom: 18px;
}
.field label {
  display: block;
  font-size: 12px;
  font-weight: 600;
  color: var(--ink-3);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 6px;
}
.field input[type="text"],
.field input[type="number"],
.field select {
  width: 100%;
  font: inherit;
  font-family: var(--font-mono);
  font-size: 14px;
  background: var(--bg-tint);
  border: 1px solid var(--line);
  color: var(--ink-1);
  border-radius: var(--r-sm);
  padding: 10px 12px;
}
.field input:focus, .field select:focus {
  outline: 2px solid var(--moz-orange);
  outline-offset: -1px;
}
.field-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

/* Segmented control */
.segmented {
  display: inline-flex;
  background: var(--bg-tint);
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 3px;
  width: 100%;
}
.segmented button {
  flex: 1;
  border: 0;
  background: transparent;
  padding: 8px 10px;
  font-size: 12px;
  font-weight: 600;
  color: var(--ink-3);
  border-radius: 7px;
  letter-spacing: 0.02em;
}
.segmented button.active {
  background: var(--ink-1);
  color: var(--on-dark-1);
}
[data-theme="dark"] .segmented button.active { background: var(--moz-orange); color: var(--ink-1); }

/* Range slider */
.field input[type="range"] {
  width: 100%;
  accent-color: var(--moz-orange);
}

/* Output panel */
.calc-output .output-eyebrow {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--moz-orange);
  margin-bottom: 12px;
}
.calc-output h3 { color: var(--on-dark-1); }
.headline-net {
  display: flex;
  align-items: baseline;
  gap: 18px;
  margin: 16px 0 24px;
  padding-bottom: 24px;
  border-bottom: 1px solid var(--line-on-dark);
}
.headline-net .big {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 64px;
  line-height: 1;
  letter-spacing: -0.04em;
  font-variant-numeric: tabular-nums;
  color: var(--on-dark-1);
}
.headline-net .alt {
  font-family: var(--font-mono);
  font-size: 14px;
  color: var(--on-dark-2);
}
.kv-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 18px 32px;
  margin-bottom: 24px;
}
.kv {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.kv .key {
  font-size: 11px;
  font-weight: 600;
  color: var(--ink-4);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.calc-output .kv .key { color: var(--on-dark-2); }
.kv .val {
  font-family: var(--font-mono);
  font-size: 16px;
  font-weight: 500;
  color: var(--ink-1);
  font-variant-numeric: tabular-nums;
}
.calc-output .kv .val { color: var(--on-dark-1); }

.pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.02em;
}
.pill.ok { background: var(--ok-soft); color: var(--ok); }
.pill.warn { background: var(--warn-soft); color: var(--warn); }
.pill.danger { background: var(--danger-soft); color: var(--danger); }
.pill.muted { background: var(--bg-tint-strong); color: var(--ink-3); }

.warning-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 14px 0 0;
}
.warning-list .pill { align-self: flex-start; }

/* ---------- Tables ---------- */
.table-wrap { overflow-x: auto; }
table.data {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
  font-variant-numeric: tabular-nums;
}
table.data th, table.data td {
  text-align: left;
  padding: 12px 14px;
  border-bottom: 1px solid var(--line);
  vertical-align: top;
}
table.data thead th {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--ink-3);
  background: var(--bg-tint);
  border-bottom: 1px solid var(--line-strong);
}
table.data tbody tr:hover { background: var(--bg-tint); }
table.data td.num { font-family: var(--font-mono); }
table.data tr.is-mozilla {
  background: linear-gradient(90deg, rgba(255, 113, 57, 0.07) 0%, transparent 100%);
}
table.data tr.is-mozilla:hover { background: linear-gradient(90deg, rgba(255, 113, 57, 0.14) 0%, transparent 100%); }

/* ---------- Vendor matrix ---------- */
.matrix-toolbar {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 16px;
  align-items: center;
}
.matrix-toolbar select, .matrix-toolbar input {
  padding: 8px 12px;
  border-radius: var(--r-sm);
  border: 1px solid var(--line-strong);
  background: var(--bg-panel);
  color: var(--ink-1);
  font: inherit;
  font-size: 13px;
}
.matrix-toolbar .result-count {
  margin-left: auto;
  font-size: 12px;
  color: var(--ink-3);
}
.matrix-toolbar input { min-width: 220px; }

.vendor-row-expand {
  background: var(--bg-tint);
}
.vendor-row-expand td { padding: 22px 28px; }
.vendor-detail-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}
@media (max-width: 700px) { .vendor-detail-grid { grid-template-columns: 1fr; } }
.vendor-detail-grid h4 { margin-bottom: 4px; }
.score-bar-row {
  display: grid;
  grid-template-columns: 200px 1fr 30px;
  align-items: center;
  gap: 12px;
  margin-bottom: 6px;
  font-size: 12px;
}
.score-bar {
  height: 6px;
  background: var(--bg-tint-strong);
  border-radius: 3px;
  overflow: hidden;
  display: flex;
}
.score-bar div { background: var(--moz-orange); height: 100%; }

/* ---------- Battlecards ---------- */
.bc-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}
@media (max-width: 800px) { .bc-grid { grid-template-columns: 1fr; } }

.bc-card {
  background: var(--bg-panel);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  padding: 28px;
  cursor: pointer;
  transition: transform 120ms ease, box-shadow 120ms ease;
  position: relative;
  overflow: hidden;
}
.bc-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); }
.bc-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 3px;
  background: linear-gradient(90deg, var(--moz-orange) 0%, var(--moz-coral) 100%);
}
.bc-card h3 { margin-bottom: 6px; }
.bc-card .bc-sub { color: var(--ink-3); font-size: 13px; margin-bottom: 14px; }
.bc-card .bc-summary { font-size: 13px; color: var(--ink-2); }

.bc-detail {
  display: none;
  background: var(--bg-panel);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  padding: 32px;
  margin-top: 22px;
}
.bc-detail.open { display: block; }
.bc-detail h3 { margin-bottom: 4px; }
.bc-detail .bc-sub { color: var(--ink-3); margin-bottom: 24px; }
.bc-detail .bc-section { margin-bottom: 22px; }
.bc-detail ul { margin: 0; padding-left: 22px; color: var(--ink-2); }
.bc-detail ul li { margin-bottom: 6px; }
.bc-detail .verbatim {
  background: var(--bg-tint);
  border-left: 3px solid var(--moz-orange);
  padding: 18px 22px;
  border-radius: var(--r-sm);
  font-style: italic;
  color: var(--ink-2);
  margin-top: 8px;
}
.bc-detail .pricing-side-by-side {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-top: 12px;
}
.bc-detail .pricing-side-by-side > div {
  background: var(--bg-tint);
  border-radius: var(--r-sm);
  padding: 14px 16px;
  font-size: 13px;
}
.bc-detail .pricing-side-by-side .moz { background: linear-gradient(135deg, var(--ink-1) 0%, #1c2350 100%); color: var(--on-dark-1); }

/* ---------- Sequential path ---------- */
.path-timeline {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 12px;
  margin: 22px 0;
}
@media (max-width: 900px) { .path-timeline { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 500px) { .path-timeline { grid-template-columns: 1fr; } }
.path-step {
  background: var(--bg-panel);
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  padding: 18px;
  position: relative;
}
.path-step.current {
  background: var(--ink-1);
  color: var(--on-dark-1);
  border: 0;
}
.path-step .period {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink-3);
}
.path-step.current .period { color: var(--moz-orange); }
.path-step .price {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 30px;
  line-height: 1;
  letter-spacing: -0.025em;
  margin: 8px 0 6px;
  font-variant-numeric: tabular-nums;
}
.path-step .lift { font-size: 12px; color: var(--ink-3); }
.path-step.current .lift { color: var(--on-dark-2); }
.path-triggers { font-size: 12px; color: var(--ink-3); margin-top: 12px; }
.path-step.current .path-triggers { color: var(--on-dark-2); }

/* ---------- Decision framework ---------- */
.decision-grid {
  display: grid;
  grid-template-columns: 1.7fr 1fr;
  gap: 24px;
}
@media (max-width: 900px) { .decision-grid { grid-template-columns: 1fr; } }
.decision-factor {
  display: grid;
  grid-template-columns: 1fr 100px;
  align-items: center;
  gap: 12px;
  margin-bottom: 14px;
  padding: 14px;
  background: var(--bg-panel);
  border: 1px solid var(--line);
  border-radius: var(--r-md);
}
.decision-factor .lbl { font-size: 13px; color: var(--ink-2); }
.decision-factor .lbl .small { font-size: 12px; color: var(--ink-4); margin-top: 4px; display: block; }
.decision-factor .w { display: flex; align-items: center; gap: 8px; font-family: var(--font-mono); font-size: 13px; }
.decision-factor input[type="range"] { width: 100%; }
.decision-result {
  background: var(--ink-1);
  color: var(--on-dark-1);
  border-radius: var(--r-lg);
  padding: 22px;
}
.decision-result h4 { color: var(--moz-orange); }
.decision-result .anchor-score {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 0;
  border-bottom: 1px solid var(--line-on-dark);
}
.decision-result .anchor-score:last-child { border: 0; }
.decision-result .anchor-score.winner { color: var(--moz-orange); font-weight: 700; }
.decision-result .anchor-score .v { font-family: var(--font-mono); font-variant-numeric: tabular-nums; }

/* ---------- Volume schedule ---------- */
.volume-table .moz-row td { font-weight: 600; background: rgba(255, 113, 57, 0.08); }

/* ---------- Segment cards ---------- */
.segment-card {
  background: var(--bg-panel);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  padding: 22px;
  position: relative;
}
.segment-card .priority {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  display: inline-block;
  padding: 4px 10px;
  border-radius: 999px;
  margin-bottom: 12px;
}
.priority-primary { background: var(--moz-orange); color: white; }
.priority-secondary { background: var(--moz-gold-soft); color: var(--warn); }
.priority-tertiary { background: var(--bg-tint-strong); color: var(--ink-3); }
.segment-card .wtp-range {
  font-family: var(--font-mono);
  font-size: 22px;
  font-weight: 600;
  margin: 8px 0 12px;
  font-variant-numeric: tabular-nums;
}
.segment-card .regs {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 12px;
}
.segment-card .reg-tag {
  background: var(--bg-tint);
  padding: 4px 8px;
  border-radius: var(--r-xs);
  font-size: 11px;
  font-weight: 600;
  color: var(--ink-3);
}

/* ---------- WTP / triangulation viz ---------- */
.lens-row {
  display: grid;
  grid-template-columns: 1fr 100px;
  align-items: center;
  gap: 14px;
  padding: 14px 0;
  border-bottom: 1px dashed var(--line);
}
.lens-row .v {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 22px;
  text-align: right;
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
}

/* ---------- Document library ---------- */
.docs-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}
@media (max-width: 900px) { .docs-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .docs-grid { grid-template-columns: 1fr; } }
.doc-card {
  background: var(--bg-panel);
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  padding: 16px 16px;
  display: flex;
  flex-direction: column;
}
.doc-card .doc-head {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin-bottom: 8px;
}
.doc-card .doc-num {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 600;
  color: var(--ink-4);
  letter-spacing: 0.04em;
}
.doc-card .doc-tag {
  margin-left: auto;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.05em;
  background: var(--bg-tint);
  color: var(--ink-3);
  padding: 3px 8px;
  border-radius: var(--r-xs);
  text-transform: uppercase;
}
.doc-card h4 {
  text-transform: none;
  letter-spacing: -0.01em;
  font-size: 15px;
  font-weight: 600;
  color: var(--ink-1);
  margin-bottom: 6px;
}
.doc-card p { font-size: 13px; margin: 0; color: var(--ink-3); flex: 1; }

/* ---------- Footer ---------- */
.site-footer {
  background: var(--ink-1);
  color: var(--on-dark-2);
  padding: 56px 0 32px;
  margin-top: 80px;
}
.site-footer h4 { color: var(--moz-orange); margin-bottom: 12px; }
.site-footer a { color: var(--on-dark-1); border-bottom-color: rgba(255,255,255,0.2); }
.footer-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 32px;
  margin-bottom: 32px;
}
@media (max-width: 800px) { .footer-grid { grid-template-columns: repeat(2, 1fr); } }
.footer-confidentiality {
  font-size: 11px;
  color: var(--on-dark-2);
  padding-top: 24px;
  border-top: 1px solid var(--line-on-dark);
  display: flex;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}

/* ---------- Utilities ---------- */
.divider { border: 0; height: 1px; background: var(--line); margin: 24px 0; }
.divider.on-dark { background: var(--line-on-dark); }
.muted { color: var(--ink-3); }
.tabs {
  display: flex;
  gap: 4px;
  border-bottom: 1px solid var(--line);
  margin-bottom: 24px;
  flex-wrap: wrap;
}
.tabs button {
  border: 0;
  background: transparent;
  font-size: 13px;
  font-weight: 600;
  color: var(--ink-3);
  padding: 12px 16px;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
}
.tabs button:hover { color: var(--ink-1); }
.tabs button.active { color: var(--ink-1); border-bottom-color: var(--moz-orange); }
.tab-panel { display: none; }
.tab-panel.active { display: block; }

/* Role-mode visibility */
body[data-role="seller"] [data-role-only="pricing"] { display: none !important; }
body[data-role="pricing"] [data-role-only="seller"] { display: none !important; }

/* Chart canvas containers */
.chart-wrap {
  position: relative;
  height: 320px;
}
@media (max-width: 700px) { .chart-wrap { height: 260px; } }

/* Print */
@media print {
  .site-header, .site-footer, .nav, .hero-actions { display: none; }
  section.module { padding: 24px 0; }
  body { background: white; }
}

/* =====================================================================
   v2.1 ADDITIONS — V1↔V2 switcher · Ask modal · Doc reader · vm2 · wf2
   ===================================================================== */

/* Version switcher (header) */
.version-switcher {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  padding: 3px;
  background: var(--bg-tint);
  border: 1px solid var(--line);
  border-radius: 999px;
  flex-shrink: 0;
}
.ver-pill {
  display: inline-flex;
  align-items: center;
  padding: 4px 12px;
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--ink-3);
  text-decoration: none;
  border: 0;
  border-radius: 999px;
  cursor: pointer;
  background: transparent;
  transition: background 120ms ease, color 120ms ease;
}
.ver-pill:hover {
  background: var(--bg-panel);
  color: var(--ink-1);
}
.ver-pill.active {
  background: linear-gradient(135deg, var(--moz-orange) 0%, var(--moz-coral) 100%);
  color: white;
  box-shadow: 0 1px 6px rgba(255, 79, 0, 0.3);
}

/* Ask the package button (header) */
.ask-button {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: 1px solid var(--line-strong);
  background: var(--bg-panel);
  color: var(--ink-3);
  padding: 7px 12px;
  border-radius: 999px;
  cursor: pointer;
  font: inherit;
  font-size: 12px;
  font-weight: 500;
  transition: border-color 120ms ease, color 120ms ease;
  flex-shrink: 0;
}
.ask-button:hover {
  border-color: var(--moz-orange);
  color: var(--ink-1);
}
.ask-button .ask-icon {
  font-size: 14px;
  color: var(--moz-orange-deep);
}
.ask-button .ask-text {
  min-width: 140px;
  text-align: left;
}
.ask-button kbd {
  font-family: var(--font-mono);
  font-size: 10px;
  padding: 2px 5px;
  background: var(--bg-tint);
  border: 1px solid var(--line-strong);
  color: var(--ink-3);
  border-radius: 4px;
}

/* Modal overlay */
.modal-overlay {
  position: fixed;
  inset: 0;
  background: var(--bg-overlay);
  display: none;
  align-items: flex-start;
  justify-content: center;
  z-index: 1000;
  backdrop-filter: blur(4px);
  padding: 80px 16px 16px;
}
.modal-overlay.open { display: flex; }
.modal {
  background: var(--bg-panel);
  border-radius: var(--r-xl);
  width: 100%;
  max-width: 820px;
  max-height: calc(100vh - 160px);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  box-shadow: var(--shadow-lg);
  animation: modalIn 180ms ease;
}
@keyframes modalIn {
  from { opacity: 0; transform: translateY(-8px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Search modal */
.modal-search {}
.modal-search-bar {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 18px 22px;
  border-bottom: 1px solid var(--line);
}
.modal-search-bar .ask-icon {
  font-size: 20px;
  color: var(--moz-orange-deep);
}
.modal-search-bar input {
  flex: 1;
  font: inherit;
  font-size: 17px;
  border: 0;
  background: transparent;
  color: var(--ink-1);
  outline: none;
}
.modal-search-bar input::placeholder { color: var(--ink-4); }
.modal-search-bar kbd {
  font-family: var(--font-mono);
  font-size: 10px;
  padding: 2px 6px;
  background: var(--bg-tint);
  border: 1px solid var(--line-strong);
  color: var(--ink-3);
  border-radius: 4px;
}
.ask-results {
  flex: 1;
  overflow-y: auto;
  padding: 8px;
}
.ask-hint {
  padding: 24px 18px;
}
.ask-hint-title {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-3);
  margin-bottom: 14px;
}
.ask-hint-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
}
@media (max-width: 600px) { .ask-hint-grid { grid-template-columns: 1fr; } }
.ask-suggest {
  text-align: left;
  border: 1px solid var(--line);
  background: var(--bg-tint);
  padding: 12px 14px;
  border-radius: var(--r-md);
  font: inherit;
  font-size: 13px;
  color: var(--ink-2);
  cursor: pointer;
}
.ask-suggest:hover {
  border-color: var(--moz-orange);
  color: var(--ink-1);
}
.ask-result {
  padding: 14px 18px;
  border-radius: var(--r-md);
  cursor: pointer;
  border: 1px solid transparent;
}
.ask-result:hover {
  background: var(--bg-tint);
  border-color: var(--line);
}
.ask-result-head {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin-bottom: 4px;
}
.ask-result-num {
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 700;
  color: var(--moz-orange-deep);
  letter-spacing: 0.04em;
}
.ask-result-title {
  font-size: 14px;
  font-weight: 600;
  color: var(--ink-1);
}
.ask-result-heading {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--ink-3);
  margin-bottom: 4px;
}
.ask-result-snippet {
  font-size: 13px;
  color: var(--ink-2);
  line-height: 1.55;
}
.ask-result-snippet mark {
  background: var(--moz-orange-soft);
  color: var(--ink-1);
  padding: 0 2px;
  border-radius: 2px;
  font-weight: 600;
}

/* Doc modal */
.modal-doc {
  max-width: 920px;
  max-height: calc(100vh - 120px);
}
.modal-doc-head {
  display: flex;
  align-items: start;
  gap: 16px;
  padding: 24px 28px 18px;
  border-bottom: 1px solid var(--line);
}
.modal-doc-head h2 {
  margin: 4px 0 8px;
  font-size: 24px;
}
.doc-modal-num {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 700;
  color: var(--moz-orange-deep);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.doc-modal-meta {
  font-size: 13px;
  color: var(--ink-3);
}
.close-modal {
  margin-left: auto;
}
.modal-doc-body {
  flex: 1;
  overflow-y: auto;
  padding: 24px 28px 32px;
  line-height: 1.65;
}
.modal-doc-body h4 {
  color: var(--moz-orange-deep);
  margin: 24px 0 6px;
  font-size: 12px;
}
.modal-doc-body h4:first-child { margin-top: 0; }
.modal-doc-body .passage {
  margin: 0 0 14px;
  color: var(--ink-2);
  font-size: 14px;
  white-space: pre-wrap;
}
.modal-doc-body .passage-table {
  font-family: var(--font-mono);
  font-size: 12px;
  background: var(--bg-tint);
  padding: 12px 14px;
  border-radius: var(--r-sm);
  white-space: pre-wrap;
  overflow-x: auto;
}


/* =====================================================================
   vm2 — Competitive matrix (Tier 1 / Tier 2 showpiece)
   ===================================================================== */
#vendors-v2.vm2-section {
  --vm2-ink: #0a0e27;
  --vm2-ink-2: #1a1f3a;
  --vm2-ink-3: #2a3050;
  --vm2-muted: #6b7280;
  --vm2-muted-2: #9ca3af;
  --vm2-line: rgba(10, 14, 39, 0.08);
  --vm2-line-strong: rgba(10, 14, 39, 0.14);
  --vm2-orange: var(--moz-orange, #ff7139);
  --vm2-coral: var(--moz-coral, #ff4f00);
  --vm2-gold: var(--moz-gold, #d4a017);
  --vm2-bg: var(--bg-base, #faf6f0);
  --vm2-panel: var(--bg-panel, #ffffff);
  --vm2-green: #10b981;
  --vm2-amber: #f59e0b;
  --vm2-slate: #64748b;
  --vm2-radius: 18px;
  --vm2-shadow-sm: 0 1px 2px rgba(10,14,39,.05), 0 1px 3px rgba(10,14,39,.04);
  --vm2-shadow-md: 0 4px 12px rgba(10,14,39,.06), 0 2px 4px rgba(10,14,39,.04);
  --vm2-shadow-lg: 0 24px 48px -12px rgba(10,14,39,.18), 0 8px 16px -6px rgba(10,14,39,.08);
  --vm2-shadow-moz: 0 24px 60px -10px rgba(255,113,57,.35), 0 8px 20px -4px rgba(255,79,0,.18);
  position: relative;
  padding: clamp(48px, 7vw, 96px) clamp(20px, 4vw, 56px);
  background: linear-gradient(180deg, var(--vm2-bg) 0%, #fffaf3 60%, var(--vm2-bg) 100%);
  overflow: hidden;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, system-ui, sans-serif;
  color: var(--vm2-ink);
}
#vendors-v2 .vm2-bg-orb { position: absolute; border-radius: 50%; filter: blur(80px); opacity: .35; pointer-events: none; z-index: 0; }
#vendors-v2 .vm2-bg-orb--1 { width: 520px; height: 520px; background: radial-gradient(circle, rgba(255,113,57,.45), transparent 70%); top: -180px; right: -120px; }
#vendors-v2 .vm2-bg-orb--2 { width: 420px; height: 420px; background: radial-gradient(circle, rgba(212,160,23,.35), transparent 70%); bottom: 200px; left: -100px; }
#vendors-v2 .vm2-header { position: relative; z-index: 1; max-width: 880px; margin: 0 auto 56px; text-align: center; }
#vendors-v2 .vm2-eyebrow { display: inline-flex; align-items: center; gap: 8px; padding: 8px 16px; background: rgba(255,255,255,.7); backdrop-filter: blur(10px); border: 1px solid var(--vm2-line); border-radius: 100px; font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--vm2-ink-2); margin-bottom: 24px; }
#vendors-v2 .vm2-eyebrow-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--vm2-orange); box-shadow: 0 0 0 4px rgba(255,113,57,.18); animation: vm2-pulse 2.4s ease-in-out infinite; }
@keyframes vm2-pulse { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: .6; transform: scale(.85); } }
#vendors-v2 .vm2-title { font-size: clamp(34px, 5vw, 56px); line-height: 1.05; font-weight: 800; letter-spacing: -0.025em; margin: 0 0 20px; color: var(--vm2-ink); }
#vendors-v2 .vm2-title-accent { background: linear-gradient(135deg, var(--vm2-orange) 0%, var(--vm2-coral) 60%, var(--vm2-gold) 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
#vendors-v2 .vm2-subtitle { font-size: clamp(15px, 1.4vw, 18px); line-height: 1.55; color: var(--vm2-muted); margin: 0 auto; max-width: 640px; }
#vendors-v2 .vm2-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-top: 40px; }
#vendors-v2 .vm2-stat { background: rgba(255,255,255,.7); backdrop-filter: blur(10px); border: 1px solid var(--vm2-line); border-radius: 14px; padding: 18px 14px; text-align: center; }
#vendors-v2 .vm2-stat-num { font-size: 28px; font-weight: 800; font-variant-numeric: tabular-nums; color: var(--vm2-ink); letter-spacing: -.02em; line-height: 1; }
#vendors-v2 .vm2-stat-label { font-size: 11px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--vm2-muted); margin-top: 6px; }
#vendors-v2 .vm2-stat--moz { background: linear-gradient(135deg, var(--vm2-orange), var(--vm2-coral)); border-color: transparent; box-shadow: 0 8px 20px -4px rgba(255,79,0,.35); }
#vendors-v2 .vm2-stat--moz .vm2-stat-num, #vendors-v2 .vm2-stat--moz .vm2-stat-label { color: #fff; }
#vendors-v2 .vm2-controls { position: relative; z-index: 1; max-width: 1280px; margin: 0 auto 56px; background: rgba(255,255,255,.6); backdrop-filter: blur(14px); border: 1px solid var(--vm2-line); border-radius: 20px; padding: 20px; box-shadow: var(--vm2-shadow-md); }
#vendors-v2 .vm2-controls-row { display: flex; gap: 12px; margin-bottom: 16px; }
#vendors-v2 .vm2-search { position: relative; flex: 1; }
#vendors-v2 .vm2-search-icon { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); width: 18px; height: 18px; color: var(--vm2-muted); pointer-events: none; }
#vendors-v2 .vm2-search-input { width: 100%; padding: 12px 16px 12px 44px; background: #fff; border: 1.5px solid var(--vm2-line-strong); border-radius: 12px; font-size: 14px; color: var(--vm2-ink); transition: border-color .15s, box-shadow .15s; font-family: inherit; }
#vendors-v2 .vm2-search-input:focus { outline: none; border-color: var(--vm2-orange); box-shadow: 0 0 0 4px rgba(255,113,57,.12); }
#vendors-v2 .vm2-sort { display: flex; align-items: center; gap: 10px; background: #fff; border: 1.5px solid var(--vm2-line-strong); border-radius: 12px; padding: 0 14px; }
#vendors-v2 .vm2-sort-label { font-size: 12px; font-weight: 600; color: var(--vm2-muted); text-transform: uppercase; letter-spacing: .06em; }
#vendors-v2 .vm2-sort-select { border: none; background: transparent; font-size: 14px; font-weight: 600; color: var(--vm2-ink); padding: 12px 0; cursor: pointer; font-family: inherit; }
#vendors-v2 .vm2-sort-select:focus { outline: none; }
#vendors-v2 .vm2-chips-group { display: flex; align-items: center; gap: 12px; padding-top: 12px; border-top: 1px solid var(--vm2-line); margin-top: 12px; }
#vendors-v2 .vm2-chips-group:first-of-type { border-top: none; margin-top: 0; padding-top: 0; }
#vendors-v2 .vm2-chips-label { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: var(--vm2-muted); flex-shrink: 0; min-width: 90px; }
#vendors-v2 .vm2-chips { display: flex; flex-wrap: wrap; gap: 6px; }
#vendors-v2 .vm2-chip { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; background: #fff; border: 1.5px solid var(--vm2-line-strong); border-radius: 100px; font-size: 12.5px; font-weight: 600; color: var(--vm2-ink-2); cursor: pointer; transition: all .18s ease; font-family: inherit; }
#vendors-v2 .vm2-chip:hover { border-color: var(--vm2-ink-3); transform: translateY(-1px); }
#vendors-v2 .vm2-chip.vm2-active { background: var(--vm2-ink); border-color: var(--vm2-ink); color: #fff; }
#vendors-v2 .vm2-chip-count { display: inline-block; padding: 2px 6px; background: rgba(10,14,39,.08); border-radius: 6px; font-size: 10.5px; font-weight: 700; font-variant-numeric: tabular-nums; }
#vendors-v2 .vm2-chip.vm2-active .vm2-chip-count { background: rgba(255,255,255,.18); }
#vendors-v2 .vm2-tier-divider { position: relative; z-index: 1; max-width: 1280px; margin: 0 auto 32px; display: flex; align-items: center; gap: 24px; }
#vendors-v2 .vm2-tier-divider-line { flex: 1; height: 1px; background: linear-gradient(90deg, transparent, var(--vm2-line-strong), transparent); }
#vendors-v2 .vm2-tier-divider-content { display: flex; align-items: center; gap: 16px; }
#vendors-v2 .vm2-tier-badge { display: inline-flex; align-items: center; padding: 8px 18px; background: linear-gradient(135deg, var(--vm2-ink) 0%, var(--vm2-ink-2) 100%); color: #fff; font-size: 12px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; border-radius: 100px; box-shadow: var(--vm2-shadow-md); }
#vendors-v2 .vm2-tier-badge--t2 { background: transparent; color: var(--vm2-muted); border: 1.5px solid var(--vm2-line-strong); box-shadow: none; }
#vendors-v2 .vm2-tier-meta { display: flex; flex-direction: column; gap: 2px; }
#vendors-v2 .vm2-tier-meta strong { font-size: 15px; font-weight: 700; color: var(--vm2-ink); }
#vendors-v2 .vm2-tier-meta span { font-size: 12.5px; color: var(--vm2-muted); }
#vendors-v2 .vm2-tier1-grid { position: relative; z-index: 1; max-width: 1280px; margin: 0 auto 80px; display: grid; grid-template-columns: repeat(auto-fill, minmax(380px, 1fr)); gap: 20px; }
#vendors-v2 .vm2-card { position: relative; background: var(--vm2-panel); border: 1px solid var(--vm2-line); border-radius: var(--vm2-radius); padding: 24px; display: flex; flex-direction: column; gap: 18px; transition: transform .25s cubic-bezier(.2,.8,.2,1), box-shadow .25s, border-color .2s; box-shadow: var(--vm2-shadow-sm); overflow: hidden; animation: vm2-fade-in .4s ease both; }
@keyframes vm2-fade-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
#vendors-v2 .vm2-card:hover { transform: translateY(-4px); box-shadow: var(--vm2-shadow-lg); border-color: var(--vm2-line-strong); }
#vendors-v2 .vm2-card--moz { background: linear-gradient(135deg, #1a1f3a 0%, #0a0e27 100%); border: 1.5px solid transparent; background-clip: padding-box; color: #fff; box-shadow: var(--vm2-shadow-moz); }
#vendors-v2 .vm2-card--moz::before { content: ''; position: absolute; inset: 0; border-radius: var(--vm2-radius); padding: 1.5px; background: linear-gradient(135deg, var(--vm2-orange), var(--vm2-coral), var(--vm2-gold)); -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); -webkit-mask-composite: xor; mask-composite: exclude; pointer-events: none; }
#vendors-v2 .vm2-card--moz::after { content: ''; position: absolute; top: -40%; right: -20%; width: 320px; height: 320px; background: radial-gradient(circle, rgba(255,113,57,.32), transparent 70%); filter: blur(40px); pointer-events: none; }
#vendors-v2 .vm2-card--moz:hover { transform: translateY(-6px); }
#vendors-v2 .vm2-card-head { display: flex; align-items: flex-start; gap: 14px; position: relative; z-index: 1; }
#vendors-v2 .vm2-rank { flex-shrink: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; width: 44px; height: 44px; background: var(--vm2-bg); border-radius: 12px; font-weight: 800; font-variant-numeric: tabular-nums; color: var(--vm2-muted); font-size: 11px; line-height: 1; letter-spacing: .04em; }
#vendors-v2 .vm2-rank-num { font-size: 18px; color: var(--vm2-ink); margin-top: 2px; }
#vendors-v2 .vm2-card--moz .vm2-rank { background: linear-gradient(135deg, var(--vm2-orange), var(--vm2-coral)); color: rgba(255,255,255,.85); }
#vendors-v2 .vm2-card--moz .vm2-rank-num { color: #fff; }
#vendors-v2 .vm2-logo { flex-shrink: 0; width: 52px; height: 52px; border-radius: 14px; display: flex; align-items: center; justify-content: center; font-size: 22px; font-weight: 800; background: linear-gradient(135deg, var(--vm2-ink-2), var(--vm2-ink)); color: #fff; letter-spacing: -.02em; position: relative; overflow: hidden; }
#vendors-v2 .vm2-logo::before { content: ''; position: absolute; inset: 0; background: linear-gradient(135deg, rgba(255,255,255,.18), transparent 50%); }
#vendors-v2 .vm2-card--moz .vm2-logo { background: linear-gradient(135deg, var(--vm2-orange), var(--vm2-coral)); }
#vendors-v2 .vm2-card-headtext { flex: 1; min-width: 0; }
#vendors-v2 .vm2-name { font-size: 19px; font-weight: 800; letter-spacing: -.015em; color: var(--vm2-ink); line-height: 1.2; margin: 0 0 6px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
#vendors-v2 .vm2-card--moz .vm2-name { color: #fff; }
#vendors-v2 .vm2-pills { display: flex; flex-wrap: wrap; gap: 6px; }
#vendors-v2 .vm2-pill { display: inline-flex; align-items: center; gap: 4px; padding: 3px 9px; border-radius: 100px; font-size: 10.5px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; line-height: 1.4; white-space: nowrap; }
#vendors-v2 .vm2-pill--cat { background: rgba(10,14,39,.06); color: var(--vm2-ink-2); }
#vendors-v2 .vm2-card--moz .vm2-pill--cat { background: rgba(255,255,255,.12); color: rgba(255,255,255,.85); }
#vendors-v2 .vm2-pill-dot { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
#vendors-v2 .vm2-pill--ma-independent { background: rgba(16,185,129,.12); color: #047857; }
#vendors-v2 .vm2-pill--ma-acquired { background: rgba(245,158,11,.14); color: #b45309; }
#vendors-v2 .vm2-pill--ma-public { background: rgba(100,116,139,.14); color: #475569; }
#vendors-v2 .vm2-card--moz .vm2-pill--ma-independent { background: rgba(16,185,129,.22); color: #6ee7b7; }
#vendors-v2 .vm2-metrics { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; padding: 14px; background: var(--vm2-bg); border-radius: 12px; position: relative; z-index: 1; }
#vendors-v2 .vm2-card--moz .vm2-metrics { background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.08); }
#vendors-v2 .vm2-metric { display: flex; flex-direction: column; gap: 4px; }
#vendors-v2 .vm2-metric-label { font-size: 10.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--vm2-muted); }
#vendors-v2 .vm2-card--moz .vm2-metric-label { color: rgba(255,255,255,.55); }
#vendors-v2 .vm2-metric-val { font-size: 22px; font-weight: 800; font-variant-numeric: tabular-nums; letter-spacing: -.02em; line-height: 1; color: var(--vm2-ink); }
#vendors-v2 .vm2-card--moz .vm2-metric-val { color: #fff; }
#vendors-v2 .vm2-metric-val-sm { font-size: 12px; font-weight: 600; color: var(--vm2-muted); margin-left: 3px; }
#vendors-v2 .vm2-score-badge { display: inline-flex; align-items: baseline; gap: 4px; font-variant-numeric: tabular-nums; }
#vendors-v2 .vm2-score-bar { height: 4px; width: 100%; background: rgba(10,14,39,.08); border-radius: 4px; overflow: hidden; margin-top: 6px; }
#vendors-v2 .vm2-card--moz .vm2-score-bar { background: rgba(255,255,255,.12); }
#vendors-v2 .vm2-score-bar-fill { height: 100%; background: linear-gradient(90deg, var(--vm2-orange), var(--vm2-coral)); border-radius: 4px; transition: width .6s cubic-bezier(.2,.8,.2,1); }
#vendors-v2 .vm2-dims { display: flex; flex-direction: column; gap: 8px; position: relative; z-index: 1; }
#vendors-v2 .vm2-dims-title { font-size: 10.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--vm2-muted); margin-bottom: 2px; }
#vendors-v2 .vm2-card--moz .vm2-dims-title { color: rgba(255,255,255,.55); }
#vendors-v2 .vm2-dim { display: grid; grid-template-columns: 120px 1fr auto; align-items: center; gap: 12px; }
#vendors-v2 .vm2-dim-label { font-size: 12.5px; font-weight: 600; color: var(--vm2-ink-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#vendors-v2 .vm2-card--moz .vm2-dim-label { color: rgba(255,255,255,.85); }
#vendors-v2 .vm2-dim-track { display: flex; gap: 3px; }
#vendors-v2 .vm2-dim-seg { flex: 1; height: 6px; background: rgba(10,14,39,.07); border-radius: 2px; transition: background .3s ease; }
#vendors-v2 .vm2-card--moz .vm2-dim-seg { background: rgba(255,255,255,.1); }
#vendors-v2 .vm2-dim-seg.vm2-on-1 { background: var(--vm2-coral); opacity: .55; }
#vendors-v2 .vm2-dim-seg.vm2-on-2 { background: var(--vm2-orange); opacity: .78; }
#vendors-v2 .vm2-dim-seg.vm2-on-3 { background: linear-gradient(90deg, var(--vm2-orange), var(--vm2-gold)); }
#vendors-v2 .vm2-card--moz .vm2-dim-seg.vm2-on-1, #vendors-v2 .vm2-card--moz .vm2-dim-seg.vm2-on-2, #vendors-v2 .vm2-card--moz .vm2-dim-seg.vm2-on-3 { opacity: 1; }
#vendors-v2 .vm2-dim-val { font-size: 11px; font-weight: 700; font-variant-numeric: tabular-nums; color: var(--vm2-muted); min-width: 18px; text-align: right; }
#vendors-v2 .vm2-card--moz .vm2-dim-val { color: rgba(255,255,255,.7); }
#vendors-v2 .vm2-callouts { display: flex; flex-direction: column; gap: 8px; position: relative; z-index: 1; }
#vendors-v2 .vm2-callout { display: flex; gap: 10px; padding: 10px 12px; background: var(--vm2-bg); border-radius: 10px; border-left: 3px solid; font-size: 12.5px; line-height: 1.45; }
#vendors-v2 .vm2-card--moz .vm2-callout { background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.2); }
#vendors-v2 .vm2-callout--win { border-left-color: var(--vm2-green); }
#vendors-v2 .vm2-callout--lose { border-left-color: #ef4444; }
#vendors-v2 .vm2-callout-icon { flex-shrink: 0; font-weight: 800; font-size: 12px; letter-spacing: .04em; text-transform: uppercase; }
#vendors-v2 .vm2-callout--win .vm2-callout-icon { color: var(--vm2-green); }
#vendors-v2 .vm2-callout--lose .vm2-callout-icon { color: #ef4444; }
#vendors-v2 .vm2-card--moz .vm2-callout-text { color: rgba(255,255,255,.88); }
#vendors-v2 .vm2-callout-text { color: var(--vm2-ink-2); }
#vendors-v2 .vm2-tier2-grid { position: relative; z-index: 1; max-width: 1280px; margin: 0 auto; display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 12px; }
#vendors-v2 .vm2-mini { background: var(--vm2-panel); border: 1px solid var(--vm2-line); border-radius: 14px; padding: 16px; display: flex; align-items: center; gap: 12px; transition: transform .2s, box-shadow .2s, border-color .2s; animation: vm2-fade-in .4s ease both; }
#vendors-v2 .vm2-mini:hover { transform: translateY(-2px); box-shadow: var(--vm2-shadow-md); border-color: var(--vm2-line-strong); }
#vendors-v2 .vm2-mini-logo { flex-shrink: 0; width: 40px; height: 40px; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: 16px; font-weight: 800; background: var(--vm2-bg); color: var(--vm2-ink); border: 1px solid var(--vm2-line); }
#vendors-v2 .vm2-mini-body { flex: 1; min-width: 0; }
#vendors-v2 .vm2-mini-name { font-size: 14px; font-weight: 700; color: var(--vm2-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-bottom: 4px; }
#vendors-v2 .vm2-mini-meta { display: flex; gap: 8px; align-items: center; font-size: 11.5px; color: var(--vm2-muted); }
#vendors-v2 .vm2-mini-cat { font-weight: 600; color: var(--vm2-ink-2); }
#vendors-v2 .vm2-mini-dot { width: 3px; height: 3px; border-radius: 50%; background: var(--vm2-muted-2); }
#vendors-v2 .vm2-mini-ma { display: inline-flex; align-items: center; gap: 4px; font-weight: 600; }
#vendors-v2 .vm2-mini-ma::before { content: ''; width: 6px; height: 6px; border-radius: 50%; }
#vendors-v2 .vm2-mini-ma--independent { color: #047857; }
#vendors-v2 .vm2-mini-ma--independent::before { background: var(--vm2-green); }
#vendors-v2 .vm2-mini-ma--acquired { color: #b45309; }
#vendors-v2 .vm2-mini-ma--acquired::before { background: var(--vm2-amber); }
#vendors-v2 .vm2-mini-ma--public { color: #475569; }
#vendors-v2 .vm2-mini-ma--public::before { background: var(--vm2-slate); }
#vendors-v2 .vm2-mini-price { flex-shrink: 0; font-size: 13px; font-weight: 800; font-variant-numeric: tabular-nums; color: var(--vm2-ink); text-align: right; letter-spacing: -.01em; }
#vendors-v2 .vm2-mini-price-sub { font-size: 10px; color: var(--vm2-muted); font-weight: 600; letter-spacing: .04em; }
#vendors-v2 .vm2-empty { text-align: center; padding: 80px 20px; position: relative; z-index: 1; }
#vendors-v2 .vm2-empty-icon { font-size: 56px; color: var(--vm2-muted-2); margin-bottom: 16px; font-weight: 200; }
#vendors-v2 .vm2-empty-title { font-size: 18px; font-weight: 700; color: var(--vm2-ink); margin-bottom: 20px; }
#vendors-v2 .vm2-empty-reset { padding: 10px 22px; background: var(--vm2-ink); color: #fff; border: none; border-radius: 100px; font-size: 13px; font-weight: 700; cursor: pointer; font-family: inherit; }
#vendors-v2 .vm2-card.vm2-hide, #vendors-v2 .vm2-mini.vm2-hide { display: none; }
@media (max-width: 900px) {
  #vendors-v2 .vm2-stats { grid-template-columns: repeat(2, 1fr); }
  #vendors-v2 .vm2-controls-row { flex-direction: column; }
  #vendors-v2 .vm2-tier1-grid { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
  #vendors-v2.vm2-section { padding: 56px 16px; }
  #vendors-v2 .vm2-tier1-grid, #vendors-v2 .vm2-tier2-grid { grid-template-columns: 1fr; }
  #vendors-v2 .vm2-chips-group { flex-direction: column; align-items: flex-start; gap: 8px; }
  #vendors-v2 .vm2-chips-label { min-width: 0; }
  #vendors-v2 .vm2-dim { grid-template-columns: 100px 1fr auto; gap: 10px; }
  #vendors-v2 .vm2-dim-label { font-size: 12px; }
}

/* =====================================================================
   wf2 — Pricing waterfall (dual Hosted + On-Prem)
   ===================================================================== */
#waterfall { width: 100%; }
.wf2-shell { display: grid; grid-template-columns: 1fr; gap: 24px; width: 100%; }
@media (min-width: 900px) { .wf2-shell { grid-template-columns: 1fr 1fr; gap: 28px; } }
.wf2-col { position: relative; background: var(--bg-panel); border-radius: 18px; padding: 28px 28px 24px; box-shadow: 0 1px 2px rgba(10, 14, 39, 0.04), 0 8px 32px rgba(10, 14, 39, 0.06); border: 1px solid rgba(10, 14, 39, 0.06); overflow: hidden; transition: transform 0.3s ease, box-shadow 0.3s ease; animation: wf2-fade-in 0.4s ease-out both; }
.wf2-col:hover { transform: translateY(-2px); box-shadow: 0 1px 2px rgba(10, 14, 39, 0.05), 0 16px 48px rgba(10, 14, 39, 0.1); }
.wf2-col::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: var(--accent); opacity: 0.95; }
.wf2-col--hosted { --accent: linear-gradient(90deg, var(--moz-orange) 0%, var(--moz-coral) 100%); --accent-solid: var(--moz-coral); --accent-soft: rgba(255, 79, 0, 0.08); --net-bar: linear-gradient(90deg, var(--moz-coral) 0%, var(--moz-orange) 100%); --net-glow: rgba(255, 79, 0, 0.35); }
.wf2-col--onprem { --accent: linear-gradient(90deg, var(--ink-1) 0%, var(--moz-gold) 100%); --accent-solid: var(--moz-gold); --accent-soft: rgba(212, 160, 23, 0.1); --net-bar: linear-gradient(90deg, var(--moz-gold) 0%, #e8b831 100%); --net-glow: rgba(212, 160, 23, 0.4); animation-delay: 0.06s; }
.wf2-head { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 20px; gap: 12px; flex-wrap: wrap; }
.wf2-title { font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.12em; color: var(--ink-3); margin: 0; display: flex; align-items: center; gap: 8px; }
.wf2-title-dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; background: var(--accent-solid); box-shadow: 0 0 0 3px var(--accent-soft); }
.wf2-anchor { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; color: var(--ink-3); padding: 4px 10px; border-radius: 999px; background: var(--accent-soft); border: 1px solid rgba(10, 14, 39, 0.05); }
.wf2-bars { display: flex; flex-direction: column; gap: 10px; margin-bottom: 22px; position: relative; }
.wf2-row { display: grid; grid-template-columns: 110px 1fr; align-items: center; gap: 14px; min-height: 44px; }
.wf2-label { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; color: var(--ink-3); text-align: right; line-height: 1.3; }
.wf2-track { position: relative; height: 100%; min-height: 44px; display: flex; align-items: center; }
.wf2-bar { position: relative; height: 100%; border-radius: 8px; display: flex; align-items: center; padding: 0 14px; transition: width 0.55s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.35s ease, background 0.35s ease; overflow: hidden; white-space: nowrap; will-change: width; }
.wf2-row--list .wf2-bar { background: linear-gradient(90deg, var(--ink-1) 0%, #1a2050 100%); color: #fff; height: 56px; font-weight: 700; font-size: 18px; letter-spacing: -0.01em; box-shadow: 0 4px 16px rgba(10, 14, 39, 0.2); }
.wf2-row--list { min-height: 56px; }
.wf2-row--discount .wf2-bar { background: linear-gradient(90deg, rgba(255, 113, 57, 0.85) 0%, rgba(255, 79, 0, 0.85) 100%); color: #fff; height: 38px; font-weight: 600; font-size: 13px; }
.wf2-row--discount.wf2-row--ghost .wf2-bar { background: repeating-linear-gradient(45deg, rgba(10, 14, 39, 0.04) 0, rgba(10, 14, 39, 0.04) 8px, rgba(10, 14, 39, 0.07) 8px, rgba(10, 14, 39, 0.07) 16px); color: var(--ink-3); font-weight: 500; font-style: italic; }
.wf2-row--net { min-height: 72px; margin-top: 6px; }
.wf2-row--net .wf2-bar { background: var(--net-bar); color: #fff; height: 72px; font-weight: 800; font-size: 26px; letter-spacing: -0.02em; box-shadow: 0 8px 24px var(--net-glow), inset 0 -2px 0 rgba(0, 0, 0, 0.08); }
.wf2-row--net .wf2-bar::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, transparent 0%, rgba(255, 255, 255, 0.18) 50%, transparent 100%); pointer-events: none; }
.wf2-bar-amt { font-variant-numeric: tabular-nums; }
.wf2-bar-meta { margin-left: auto; font-size: 11px; font-weight: 500; opacity: 0.85; letter-spacing: 0.04em; text-transform: uppercase; padding-left: 12px; }
.wf2-row--net .wf2-bar-meta { font-size: 13px; font-weight: 700; opacity: 0.95; }
.wf2-context { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; padding: 16px; background: linear-gradient(180deg, rgba(10, 14, 39, 0.025) 0%, rgba(10, 14, 39, 0.04) 100%); border-radius: 12px; margin-bottom: 14px; }
.wf2-ctx-cell { display: flex; flex-direction: column; gap: 2px; }
.wf2-ctx-k { font-size: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; color: var(--ink-3); }
.wf2-ctx-v { font-size: 15px; font-weight: 700; color: var(--ink-1); font-variant-numeric: tabular-nums; letter-spacing: -0.01em; }
.wf2-ctx-v--accent { color: var(--accent-solid); }
.wf2-floor { display: flex; align-items: center; gap: 10px; padding: 12px 14px; border-radius: 10px; font-size: 12px; font-weight: 600; transition: background 0.3s ease, color 0.3s ease; }
.wf2-floor-icon { flex-shrink: 0; width: 18px; height: 18px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 800; color: #fff; }
.wf2-floor-text { flex: 1; line-height: 1.4; }
.wf2-floor-auth { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; padding: 3px 8px; border-radius: 999px; background: rgba(255, 255, 255, 0.6); border: 1px solid rgba(10, 14, 39, 0.08); }
.wf2-floor--ok { background: rgba(27, 122, 74, 0.08); color: #145a36; }
.wf2-floor--ok .wf2-floor-icon { background: var(--ok); }
.wf2-floor--warn { background: rgba(184, 84, 10, 0.1); color: #7a3806; }
.wf2-floor--warn .wf2-floor-icon { background: var(--warn); }
.wf2-floor--danger { background: rgba(255, 79, 0, 0.1); color: #8a2a00; }
.wf2-floor--danger .wf2-floor-icon { background: var(--moz-coral); }
@keyframes wf2-fade-in { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 600px) {
  .wf2-col { padding: 22px 18px 18px; }
  .wf2-row { grid-template-columns: 80px 1fr; gap: 10px; }
  .wf2-label { font-size: 10px; }
  .wf2-row--list .wf2-bar { font-size: 15px; height: 50px; }
  .wf2-row--list { min-height: 50px; }
  .wf2-row--net .wf2-bar { font-size: 20px; height: 60px; }
  .wf2-row--net { min-height: 60px; }
  .wf2-bar-meta { font-size: 10px; padding-left: 8px; }
  .wf2-context { gap: 8px; padding: 12px; }
  .wf2-ctx-v { font-size: 13px; }
}

/* =====================================================================
   v2.2 — Showpiece modules: mpm2 · sm2 · cm (call mode) · print
   ===================================================================== */

/* ==== Module A: Master Pricing Model — Anchor Showpiece ==== */
.mpm2-root { position: relative; padding: 56px 24px 72px; color: var(--ink-1); font-family: inherit; }
.mpm2-header { max-width: 880px; margin: 0 auto 48px; text-align: center; }
.mpm2-eyebrow { display: inline-block; font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--moz-coral); font-weight: 700; padding: 6px 12px; border: 1px solid rgba(255, 79, 0, 0.25); border-radius: 999px; background: rgba(255, 79, 0, 0.06); margin-bottom: 18px; }
.mpm2-title { font-size: clamp(28px, 3.6vw, 44px); line-height: 1.08; font-weight: 800; letter-spacing: -0.02em; margin: 0 0 12px; }
.mpm2-lede { font-size: 16px; line-height: 1.55; color: rgba(10, 14, 39, 0.62); margin: 0; }
.mpm2-grid { display: grid; grid-template-columns: 1fr 1.35fr 1fr; gap: 22px; align-items: stretch; max-width: 1280px; margin: 0 auto; }
.mpm2-card { position: relative; border-radius: 24px; padding: 32px 28px 28px; background: var(--bg-panel); border: 1px solid rgba(10, 14, 39, 0.08); display: flex; flex-direction: column; min-height: 560px; transition: transform 0.4s cubic-bezier(0.2, 0.8, 0.2, 1), box-shadow 0.4s cubic-bezier(0.2, 0.8, 0.2, 1); overflow: hidden; isolation: isolate; }
.mpm2-card:hover { transform: translateY(-4px); box-shadow: 0 24px 60px -20px rgba(10, 14, 39, 0.18); }
.mpm2-card__eyebrow { display: flex; align-items: center; gap: 10px; font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase; font-weight: 700; color: rgba(10, 14, 39, 0.55); margin-bottom: 22px; }
.mpm2-card__eyebrow::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: rgba(10, 14, 39, 0.25); }
.mpm2-card[data-anchor="floor"] .mpm2-card__eyebrow::before { background: #d4a017; }
.mpm2-card[data-anchor="ceiling"] .mpm2-card__eyebrow::before { background: #0a0e27; }
.mpm2-card__price { display: flex; align-items: baseline; gap: 6px; font-weight: 800; letter-spacing: -0.04em; line-height: 1; margin-bottom: 14px; color: var(--ink-1); }
.mpm2-card__price-num { font-size: clamp(80px, 9vw, 140px); background: linear-gradient(180deg, var(--ink-1) 0%, rgba(10,14,39,0.85) 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; font-variant-numeric: tabular-nums; }
.mpm2-card__price-sub { font-size: 18px; font-weight: 600; color: rgba(10, 14, 39, 0.55); letter-spacing: 0; }
.mpm2-card__subprice { font-size: 13px; font-weight: 600; color: rgba(10, 14, 39, 0.62); margin-bottom: 20px; padding-bottom: 20px; border-bottom: 1px dashed rgba(10, 14, 39, 0.12); line-height: 1.5; }
.mpm2-card__subprice b { color: var(--ink-1); font-weight: 700; }
.mpm2-card__posture { font-size: 14px; line-height: 1.6; color: rgba(10, 14, 39, 0.72); margin: 0 0 22px; flex: 1; }
.mpm2-card__stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 22px; }
.mpm2-stat { background: rgba(10, 14, 39, 0.03); border: 1px solid rgba(10, 14, 39, 0.05); border-radius: 12px; padding: 10px 8px; text-align: center; }
.mpm2-stat__val { display: block; font-size: 16px; font-weight: 800; letter-spacing: -0.01em; color: var(--ink-1); font-variant-numeric: tabular-nums; }
.mpm2-stat__lbl { display: block; font-size: 9.5px; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(10, 14, 39, 0.5); margin-top: 3px; line-height: 1.3; }
.mpm2-card__btn { width: 100%; padding: 14px 18px; border-radius: 12px; border: 1px solid rgba(10, 14, 39, 0.12); background: transparent; color: var(--ink-1); font-size: 13px; font-weight: 700; letter-spacing: 0.04em; cursor: pointer; transition: all 0.25s ease; font-family: inherit; display: inline-flex; align-items: center; justify-content: center; gap: 8px; }
.mpm2-card__btn:hover { background: var(--ink-1); color: #fff; border-color: var(--ink-1); }
.mpm2-card__btn[aria-pressed="true"] { background: var(--ink-1); color: #fff; border-color: var(--ink-1); }
.mpm2-card__btn-arrow { transition: transform 0.25s ease; }
.mpm2-card__btn:hover .mpm2-card__btn-arrow { transform: translateX(3px); }
.mpm2-card--recommended { background: radial-gradient(120% 80% at 50% -10%, rgba(255, 113, 57, 0.35) 0%, transparent 60%), radial-gradient(80% 60% at 80% 100%, rgba(255, 79, 0, 0.28) 0%, transparent 65%), linear-gradient(180deg, #0a0e27 0%, #050818 100%); border: 1px solid rgba(255, 113, 57, 0.3); color: #fff; transform: translateY(-12px); min-height: 620px; box-shadow: 0 30px 80px -30px rgba(255, 79, 0, 0.45), 0 0 0 1px rgba(255, 113, 57, 0.18), inset 0 1px 0 rgba(255, 255, 255, 0.08); }
.mpm2-card--recommended::before { content: ""; position: absolute; inset: -1px; border-radius: 24px; padding: 1px; background: linear-gradient(135deg, rgba(255,113,57,0.6), rgba(255,79,0,0.2), rgba(212,160,23,0.5)); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; pointer-events: none; z-index: 1; }
.mpm2-card--recommended::after { content: ""; position: absolute; width: 280px; height: 280px; border-radius: 50%; background: radial-gradient(circle, rgba(255, 113, 57, 0.5) 0%, transparent 70%); top: -100px; right: -80px; filter: blur(40px); z-index: 0; pointer-events: none; animation: mpm2-pulse 6s ease-in-out infinite; }
@keyframes mpm2-pulse { 0%, 100% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.08); } }
.mpm2-card--recommended:hover { transform: translateY(-16px); }
.mpm2-card--recommended > * { position: relative; z-index: 2; }
.mpm2-card--recommended .mpm2-card__eyebrow { color: rgba(255, 255, 255, 0.75); }
.mpm2-card--recommended .mpm2-card__eyebrow::before { background: var(--moz-orange); box-shadow: 0 0 12px rgba(255, 113, 57, 0.9); }
.mpm2-card--recommended .mpm2-card__star { margin-left: auto; color: var(--moz-gold); font-size: 14px; letter-spacing: 0; display: inline-flex; align-items: center; gap: 5px; padding: 4px 10px; background: rgba(212, 160, 23, 0.14); border: 1px solid rgba(212, 160, 23, 0.35); border-radius: 999px; text-transform: none; font-weight: 700; }
.mpm2-card--recommended .mpm2-card__price-num { background: linear-gradient(180deg, #fff 0%, #ffd9c4 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; text-shadow: 0 0 60px rgba(255, 113, 57, 0.5); }
.mpm2-card--recommended .mpm2-card__price-sub { color: rgba(255, 255, 255, 0.6); }
.mpm2-card--recommended .mpm2-card__subprice { color: rgba(255, 255, 255, 0.65); border-bottom-color: rgba(255, 255, 255, 0.12); }
.mpm2-card--recommended .mpm2-card__subprice b { color: #fff; }
.mpm2-card--recommended .mpm2-card__posture { color: rgba(255, 255, 255, 0.85); }
.mpm2-card--recommended .mpm2-stat { background: rgba(255, 255, 255, 0.05); border-color: rgba(255, 255, 255, 0.08); }
.mpm2-card--recommended .mpm2-stat__val { color: #fff; }
.mpm2-card--recommended .mpm2-stat__lbl { color: rgba(255, 255, 255, 0.55); }
.mpm2-card--recommended .mpm2-card__btn { background: linear-gradient(135deg, var(--moz-orange) 0%, var(--moz-coral) 100%); border-color: transparent; color: #fff; box-shadow: 0 8px 24px -6px rgba(255, 79, 0, 0.5); }
.mpm2-card--recommended .mpm2-card__btn:hover { box-shadow: 0 12px 32px -6px rgba(255, 79, 0, 0.7); transform: translateY(-2px); }
.mpm2-card--floor { background: linear-gradient(180deg, #fffdf6 0%, #fff8e8 100%); border-color: rgba(212, 160, 23, 0.2); }
.mpm2-card--ceiling { background: linear-gradient(180deg, #ffffff 0%, #f5f3ee 100%); border-color: rgba(10, 14, 39, 0.12); }
.mpm2-card { opacity: 0; transform: translateY(20px); animation: mpm2-fadeUp 0.7s cubic-bezier(0.2, 0.8, 0.2, 1) forwards; }
.mpm2-card[data-anchor="floor"] { animation-delay: 0.05s; }
.mpm2-card[data-anchor="recommended"] { animation-delay: 0.2s; }
.mpm2-card[data-anchor="ceiling"] { animation-delay: 0.35s; }
.mpm2-card--recommended { transform: translateY(8px); }
@keyframes mpm2-fadeUp { to { opacity: 1; transform: translateY(-12px); } }
.mpm2-card--floor, .mpm2-card--ceiling { animation-name: mpm2-fadeUpBase; }
@keyframes mpm2-fadeUpBase { to { opacity: 1; transform: translateY(0); } }
.mpm2-footer { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; max-width: 1280px; margin: 40px auto 0; padding-top: 28px; border-top: 1px dashed rgba(10, 14, 39, 0.12); }
.mpm2-footer__label { width: 100%; text-align: center; font-size: 10.5px; letter-spacing: 0.22em; text-transform: uppercase; color: rgba(10, 14, 39, 0.45); font-weight: 700; margin-bottom: 4px; }
.mpm2-tri { display: inline-flex; align-items: center; gap: 8px; padding: 7px 14px; border-radius: 999px; background: rgba(10, 14, 39, 0.04); border: 1px solid rgba(10, 14, 39, 0.06); font-size: 12px; font-weight: 600; color: rgba(10, 14, 39, 0.72); }
.mpm2-tri b { color: var(--ink-1); font-weight: 800; }
.mpm2-tri__dot { width: 6px; height: 6px; border-radius: 50%; background: var(--moz-orange); }
@media (max-width: 980px) {
  .mpm2-grid { grid-template-columns: 1fr; gap: 18px; }
  .mpm2-card, .mpm2-card--recommended { min-height: 0; transform: none !important; }
  .mpm2-card--recommended { order: -1; }
  .mpm2-card__price-num { font-size: clamp(72px, 16vw, 110px); }
}
@media (prefers-reduced-motion: reduce) { .mpm2-card, .mpm2-card::after { animation: none !important; } .mpm2-card { opacity: 1; transform: none !important; } }

/* ==== Module B: Strategy Map ==== */
.sm2-root { position: relative; padding: 64px 24px 72px; color: var(--ink-1); background: radial-gradient(120% 60% at 50% 0%, rgba(255, 113, 57, 0.08) 0%, transparent 60%), linear-gradient(180deg, #0a0e27 0%, #060a1f 100%); border-radius: 28px; overflow: hidden; isolation: isolate; }
.sm2-root::before { content: ""; position: absolute; inset: 0; background: radial-gradient(50% 30% at 20% 100%, rgba(255, 79, 0, 0.12) 0%, transparent 60%), radial-gradient(40% 30% at 80% 0%, rgba(212, 160, 23, 0.08) 0%, transparent 60%); pointer-events: none; z-index: 0; }
.sm2-root > * { position: relative; z-index: 1; }
.sm2-header { max-width: 880px; margin: 0 auto 48px; text-align: center; color: #fff; }
.sm2-eyebrow { display: inline-block; font-size: 11px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--moz-orange); font-weight: 700; padding: 6px 12px; border: 1px solid rgba(255, 113, 57, 0.35); border-radius: 999px; background: rgba(255, 113, 57, 0.08); margin-bottom: 18px; }
.sm2-title { font-size: clamp(26px, 3.4vw, 42px); line-height: 1.1; font-weight: 800; letter-spacing: -0.02em; margin: 0 0 12px; color: #fff; }
.sm2-lede { font-size: 15px; line-height: 1.55; color: rgba(255, 255, 255, 0.62); margin: 0; }
.sm2-board { display: grid; grid-template-columns: 1fr 180px 1fr; gap: 0; max-width: 1280px; margin: 0 auto; position: relative; align-items: stretch; }
.sm2-col { display: flex; flex-direction: column; gap: 12px; position: relative; z-index: 2; }
.sm2-col__label { font-size: 10.5px; letter-spacing: 0.22em; text-transform: uppercase; color: rgba(255, 255, 255, 0.45); font-weight: 700; margin-bottom: 6px; }
.sm2-canvas { position: relative; pointer-events: none; z-index: 1; }
.sm2-svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.sm2-line { fill: none; stroke: rgba(255, 255, 255, 0.06); stroke-width: 1.5; transition: stroke 0.35s ease, stroke-width 0.35s ease, opacity 0.35s ease; }
.sm2-line--strong { stroke: rgba(255, 113, 57, 0.85); stroke-width: 2.5; filter: drop-shadow(0 0 6px rgba(255, 113, 57, 0.5)); stroke-dasharray: 1000; stroke-dashoffset: 1000; animation: sm2-draw 0.7s cubic-bezier(0.2, 0.8, 0.2, 1) forwards; }
.sm2-line--strongest { stroke: var(--moz-orange); stroke-width: 3; filter: drop-shadow(0 0 10px rgba(255, 113, 57, 0.8)); stroke-dasharray: 1000; stroke-dashoffset: 1000; animation: sm2-draw 0.7s cubic-bezier(0.2, 0.8, 0.2, 1) forwards; }
.sm2-line--supporting { stroke: rgba(212, 160, 23, 0.6); stroke-width: 1.75; stroke-dasharray: 4 4; opacity: 0.9; }
@keyframes sm2-draw { to { stroke-dashoffset: 0; } }
.sm2-card { position: relative; padding: 16px 18px; border-radius: 14px; background: rgba(255, 255, 255, 0.04); border: 1px solid rgba(255, 255, 255, 0.08); color: #fff; cursor: pointer; transition: all 0.3s cubic-bezier(0.2, 0.8, 0.2, 1); backdrop-filter: blur(8px); display: flex; align-items: center; gap: 14px; }
.sm2-card:hover, .sm2-card[data-active="true"] { background: rgba(255, 113, 57, 0.1); border-color: rgba(255, 113, 57, 0.5); transform: translateX(0); box-shadow: 0 12px 32px -12px rgba(255, 113, 57, 0.4); }
.sm2-card[data-dimmed="true"] { opacity: 0.35; filter: saturate(0.6); }
.sm2-adv__icon { flex-shrink: 0; width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; font-size: 22px; background: linear-gradient(135deg, rgba(255, 113, 57, 0.18), rgba(255, 79, 0, 0.08)); border: 1px solid rgba(255, 113, 57, 0.25); }
.sm2-adv__body { flex: 1; min-width: 0; }
.sm2-adv__title { font-size: 14px; font-weight: 700; letter-spacing: -0.01em; line-height: 1.25; margin-bottom: 3px; }
.sm2-adv__desc { font-size: 12px; line-height: 1.45; color: rgba(255, 255, 255, 0.6); }
.sm2-seg__badge { flex-shrink: 0; width: 64px; text-align: center; font-size: 9px; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; padding: 4px 6px; border-radius: 6px; line-height: 1.3; border: 1px solid transparent; }
.sm2-seg__badge--primary { background: linear-gradient(135deg, var(--moz-orange), var(--moz-coral)); color: #fff; box-shadow: 0 4px 12px -2px rgba(255, 79, 0, 0.5); }
.sm2-seg__badge--secondary { background: rgba(212, 160, 23, 0.18); color: var(--moz-gold); border-color: rgba(212, 160, 23, 0.35); }
.sm2-seg__badge--tertiary { background: rgba(255, 255, 255, 0.06); color: rgba(255, 255, 255, 0.6); border-color: rgba(255, 255, 255, 0.12); }
.sm2-seg__body { flex: 1; min-width: 0; }
.sm2-seg__title { font-size: 14px; font-weight: 700; letter-spacing: -0.01em; line-height: 1.25; margin-bottom: 3px; }
.sm2-seg__wtp { font-size: 12px; font-weight: 600; color: rgba(255, 113, 57, 0.85); font-variant-numeric: tabular-nums; }
.sm2-card[data-connected="strongest"] { background: rgba(255, 113, 57, 0.14); border-color: rgba(255, 113, 57, 0.7); box-shadow: 0 0 0 1px rgba(255, 113, 57, 0.3), 0 12px 32px -10px rgba(255, 113, 57, 0.5); }
.sm2-card[data-connected="strong"] { background: rgba(255, 113, 57, 0.08); border-color: rgba(255, 113, 57, 0.45); }
.sm2-legend { display: flex; justify-content: center; gap: 24px; margin-top: 36px; flex-wrap: wrap; }
.sm2-legend__item { display: inline-flex; align-items: center; gap: 8px; font-size: 11.5px; font-weight: 600; color: rgba(255, 255, 255, 0.55); letter-spacing: 0.04em; }
.sm2-legend__dot { width: 18px; height: 3px; border-radius: 3px; }
.sm2-legend__dot--strongest { background: var(--moz-orange); box-shadow: 0 0 8px rgba(255, 113, 57, 0.7); }
.sm2-legend__dot--strong { background: rgba(255, 113, 57, 0.7); }
.sm2-legend__dot--supporting { background: repeating-linear-gradient(90deg, rgba(212,160,23,0.7) 0 4px, transparent 4px 8px); height: 2px; }
@media (max-width: 880px) { .sm2-board { grid-template-columns: 1fr; gap: 24px; } .sm2-canvas { display: none; } .sm2-col__label { margin-top: 8px; } }
@media (prefers-reduced-motion: reduce) { .sm2-line--strong, .sm2-line--strongest { animation: none; stroke-dashoffset: 0; } }

/* ==== Call Mode (battlecard fullscreen presentation) ==== */
.cm-root { position: fixed; inset: 0; z-index: 99999; background: #050614; color: #f5f5f7; font-family: 'Inter', -apple-system, BlinkMacSystemFont, system-ui, sans-serif; opacity: 0; pointer-events: none; transition: opacity 320ms cubic-bezier(0.22, 1, 0.36, 1); overflow: hidden; isolation: isolate; }
.cm-root.cm-open { opacity: 1; pointer-events: auto; }
.cm-root::before { content: ''; position: absolute; top: -30%; left: -10%; width: 70%; height: 70%; background: radial-gradient(circle, rgba(255, 113, 57, 0.18) 0%, transparent 60%); filter: blur(80px); pointer-events: none; z-index: 0; animation: cm-drift 18s ease-in-out infinite; }
.cm-root::after { content: ''; position: absolute; bottom: -30%; right: -10%; width: 60%; height: 60%; background: radial-gradient(circle, rgba(255, 79, 0, 0.12) 0%, transparent 60%); filter: blur(80px); pointer-events: none; z-index: 0; animation: cm-drift 22s ease-in-out infinite reverse; }
@keyframes cm-drift { 0%, 100% { transform: translate(0, 0) scale(1); } 50% { transform: translate(40px, -30px) scale(1.1); } }
.cm-grid { position: absolute; inset: 0; background-image: linear-gradient(rgba(255, 255, 255, 0.015) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, 0.015) 1px, transparent 1px); background-size: 80px 80px; pointer-events: none; z-index: 1; mask-image: radial-gradient(ellipse at center, black 30%, transparent 80%); }
.cm-topbar { position: absolute; top: 0; left: 0; right: 0; display: flex; align-items: center; justify-content: space-between; padding: 28px 44px; z-index: 10; }
.cm-brand { display: flex; align-items: center; gap: 12px; font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: rgba(255, 255, 255, 0.55); font-weight: 600; }
.cm-brand-dot { width: 8px; height: 8px; border-radius: 50%; background: #ff7139; box-shadow: 0 0 12px #ff7139; animation: cm-pulse 2.4s ease-in-out infinite; }
@keyframes cm-pulse { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: 0.6; transform: scale(0.85); } }
.cm-vendor-tag { font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(255, 255, 255, 0.45); font-weight: 500; }
.cm-close { position: absolute; top: 24px; right: 28px; width: 44px; height: 44px; border-radius: 50%; background: rgba(255, 255, 255, 0.04); border: 1px solid rgba(255, 255, 255, 0.08); color: rgba(255, 255, 255, 0.7); cursor: pointer; display: flex; align-items: center; justify-content: center; font-size: 18px; font-weight: 300; transition: all 200ms ease; z-index: 20; }
.cm-close:hover { background: rgba(255, 113, 57, 0.15); border-color: rgba(255, 113, 57, 0.4); color: #ff7139; transform: rotate(90deg); }
.cm-stage { position: relative; width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; z-index: 2; padding: 0 8vw; }
.cm-zone { position: absolute; top: 0; bottom: 0; width: 50%; cursor: pointer; z-index: 5; display: flex; align-items: center; opacity: 0; transition: opacity 200ms ease; }
.cm-zone-left { left: 0; justify-content: flex-start; padding-left: 28px; }
.cm-zone-right { right: 0; justify-content: flex-end; padding-right: 28px; }
.cm-zone:hover { opacity: 1; }
.cm-zone-arrow { width: 56px; height: 56px; border-radius: 50%; background: rgba(255, 255, 255, 0.04); border: 1px solid rgba(255, 113, 57, 0.25); color: #ff7139; display: flex; align-items: center; justify-content: center; font-size: 22px; backdrop-filter: blur(8px); }
.cm-panels { position: relative; width: 100%; max-width: 1400px; height: 100%; display: flex; align-items: center; justify-content: center; }
.cm-panel { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: center; opacity: 0; transform: translateY(20px); pointer-events: none; transition: opacity 420ms cubic-bezier(0.22, 1, 0.36, 1), transform 420ms cubic-bezier(0.22, 1, 0.36, 1); }
.cm-panel.cm-active { opacity: 1; transform: translateY(0); pointer-events: auto; }
.cm-eyebrow { font-size: 13px; letter-spacing: 0.32em; text-transform: uppercase; font-weight: 600; color: #ff7139; margin-bottom: 28px; display: flex; align-items: center; gap: 14px; }
.cm-eyebrow::before { content: ''; width: 32px; height: 1px; background: #ff7139; }
.cm-headline { font-size: clamp(48px, 7vw, 104px); line-height: 1.02; font-weight: 800; letter-spacing: -0.035em; margin: 0 0 32px 0; color: #ffffff; max-width: 18ch; }
.cm-headline .cm-accent { color: #ff7139; font-style: italic; }
.cm-body { font-size: clamp(20px, 2vw, 30px); line-height: 1.4; font-weight: 400; color: rgba(255, 255, 255, 0.72); max-width: 38ch; margin: 0; }
.cm-panel-title { align-items: center; text-align: center; }
.cm-panel-title .cm-eyebrow { justify-content: center; }
.cm-panel-title .cm-eyebrow::before, .cm-panel-title .cm-eyebrow::after { content: ''; width: 32px; height: 1px; background: #ff7139; }
.cm-panel-title .cm-headline { font-size: clamp(64px, 9vw, 144px); font-weight: 900; letter-spacing: -0.045em; max-width: 20ch; }
.cm-panel-title .cm-subtitle { font-size: clamp(18px, 1.4vw, 22px); letter-spacing: 0.08em; text-transform: uppercase; color: rgba(255, 255, 255, 0.5); font-weight: 500; margin-top: 24px; }
.cm-panel-title .cm-summary { font-size: clamp(20px, 1.8vw, 26px); line-height: 1.5; color: rgba(255, 255, 255, 0.7); max-width: 42ch; margin: 40px auto 0; }
.cm-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 22px; max-width: 30ch; }
.cm-list li { font-size: clamp(22px, 2.2vw, 34px); line-height: 1.3; font-weight: 600; color: #ffffff; display: flex; align-items: baseline; gap: 20px; opacity: 0; transform: translateX(-12px); animation: cm-slide-in 500ms cubic-bezier(0.22, 1, 0.36, 1) forwards; }
.cm-panel.cm-active .cm-list li:nth-child(1) { animation-delay: 200ms; }
.cm-panel.cm-active .cm-list li:nth-child(2) { animation-delay: 320ms; }
.cm-panel.cm-active .cm-list li:nth-child(3) { animation-delay: 440ms; }
.cm-panel.cm-active .cm-list li:nth-child(4) { animation-delay: 560ms; }
.cm-panel.cm-active .cm-list li:nth-child(5) { animation-delay: 680ms; }
.cm-panel.cm-active .cm-list li:nth-child(6) { animation-delay: 800ms; }
@keyframes cm-slide-in { to { opacity: 1; transform: translateX(0); } }
.cm-list-num { font-size: 0.55em; font-weight: 400; color: #ff7139; font-variant-numeric: tabular-nums; letter-spacing: 0.05em; min-width: 2.4em; }
.cm-list-loses .cm-list-num { color: #d4a017; }
.cm-panel-verbatim { align-items: center; text-align: center; }
.cm-panel-verbatim .cm-eyebrow { justify-content: center; }
.cm-quote-mark { font-size: clamp(120px, 14vw, 220px); font-family: Georgia, 'Times New Roman', serif; line-height: 0.6; color: rgba(255, 113, 57, 0.25); margin-bottom: -20px; font-weight: 700; }
.cm-verbatim { font-family: Georgia, 'Times New Roman', serif; font-style: italic; font-size: clamp(32px, 4vw, 58px); line-height: 1.25; font-weight: 400; color: #ffffff; max-width: 22ch; margin: 0 auto; letter-spacing: -0.01em; }
.cm-pricing-grid { display: grid; grid-template-columns: 1fr auto 1fr; gap: clamp(40px, 6vw, 100px); align-items: center; margin-top: 24px; }
.cm-price-col { display: flex; flex-direction: column; gap: 12px; }
.cm-price-col-moz { text-align: right; }
.cm-price-col-comp { text-align: left; }
.cm-price-label { font-size: 13px; letter-spacing: 0.24em; text-transform: uppercase; color: rgba(255, 255, 255, 0.5); font-weight: 600; }
.cm-price-col-moz .cm-price-label { color: #ff7139; }
.cm-price-val { font-size: clamp(48px, 7vw, 96px); font-weight: 800; letter-spacing: -0.03em; line-height: 1; color: #ffffff; font-variant-numeric: tabular-nums; }
.cm-price-col-moz .cm-price-val { color: #ff7139; }
.cm-price-vs { font-size: 14px; letter-spacing: 0.3em; text-transform: uppercase; color: rgba(255, 255, 255, 0.3); font-weight: 600; padding: 12px 0; writing-mode: vertical-rl; text-orientation: mixed; }
.cm-progress { position: absolute; bottom: 36px; left: 50%; transform: translateX(-50%); display: flex; gap: 12px; z-index: 10; align-items: center; }
.cm-dot { width: 6px; height: 6px; border-radius: 50%; background: rgba(255, 255, 255, 0.18); cursor: pointer; transition: all 280ms cubic-bezier(0.22, 1, 0.36, 1); border: none; padding: 0; }
.cm-dot:hover { background: rgba(255, 255, 255, 0.35); }
.cm-dot.cm-dot-active { background: #ff7139; width: 28px; border-radius: 4px; box-shadow: 0 0 12px rgba(255, 113, 57, 0.6); }
.cm-step-label { position: absolute; bottom: 36px; right: 44px; font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: rgba(255, 255, 255, 0.4); font-weight: 600; z-index: 10; font-variant-numeric: tabular-nums; }
.cm-step-label-current { color: #ff7139; }
.cm-kbd-hint { position: absolute; bottom: 36px; left: 44px; font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(255, 255, 255, 0.3); font-weight: 500; z-index: 10; display: flex; gap: 14px; align-items: center; }
.cm-kbd { display: inline-flex; align-items: center; justify-content: center; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 4px; background: rgba(255, 255, 255, 0.06); border: 1px solid rgba(255, 255, 255, 0.1); color: rgba(255, 255, 255, 0.6); font-family: inherit; font-size: 11px; margin-right: 6px; }
.bc-card { position: relative; }
.bc-present-btn { position: absolute; top: 14px; right: 14px; display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; background: rgba(255, 113, 57, 0.1); border: 1px solid rgba(255, 113, 57, 0.35); color: #ff7139; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 700; border-radius: 999px; cursor: pointer; transition: all 200ms ease; z-index: 5; font-family: inherit; }
.bc-present-btn:hover { background: #ff7139; color: #fff; box-shadow: 0 4px 16px rgba(255, 113, 57, 0.4); transform: translateY(-1px); }
.bc-present-btn svg { width: 11px; height: 11px; }
@media (max-width: 900px) { .cm-stage { padding: 0 6vw; } .cm-pricing-grid { grid-template-columns: 1fr; text-align: center; } .cm-price-col-moz, .cm-price-col-comp { text-align: center; } .cm-price-vs { writing-mode: horizontal-tb; } }

/* ==== Print Summary ==== */
#print-summary { position: absolute; left: -10000px; top: -10000px; width: 0; height: 0; overflow: hidden; pointer-events: none; }
@media print {
  @page { size: A4 portrait; margin: 14mm 14mm 12mm 14mm; }
  html, body { background: #fff !important; color: #000 !important; }
  body * { visibility: hidden !important; }
  #print-summary, #print-summary * { visibility: visible !important; }
  #print-summary { position: absolute !important; left: 0 !important; top: 0 !important; width: 100% !important; height: auto !important; overflow: visible !important; pointer-events: auto !important; color: #000 !important; background: #fff !important; font-family: 'Inter', -apple-system, Helvetica, Arial, sans-serif !important; font-size: 9.5pt !important; line-height: 1.4 !important; -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
  #print-deal-btn { display: none !important; }
  .print-header { display: flex !important; justify-content: space-between !important; align-items: flex-end !important; padding-bottom: 8pt !important; border-bottom: 1.5pt solid #000 !important; margin-bottom: 14pt !important; }
  .print-brand { display: flex !important; align-items: center !important; gap: 8pt !important; }
  .print-brand-mark { width: 22pt; height: 22pt; border-radius: 50%; background: #ff4f00 !important; display: flex; align-items: center; justify-content: center; color: #fff !important; font-weight: 800; font-size: 12pt; }
  .print-brand-text { line-height: 1.15; }
  .print-brand-name { font-size: 11pt; font-weight: 800; letter-spacing: -0.01em; text-transform: uppercase; }
  .print-brand-sub { font-size: 7.5pt; letter-spacing: 0.18em; text-transform: uppercase; color: #555 !important; }
  .print-doc-title { text-align: right; }
  .print-doc-kicker { font-size: 7.5pt; letter-spacing: 0.22em; text-transform: uppercase; color: #555 !important; margin-bottom: 2pt; }
  .print-doc-h1 { font-size: 22pt; font-weight: 800; letter-spacing: -0.025em; line-height: 1; margin: 0; }
  .print-doc-date { font-size: 8pt; color: #555 !important; margin-top: 4pt; letter-spacing: 0.05em; }
  .print-section { margin-bottom: 12pt; page-break-inside: avoid; }
  .print-section-title { font-size: 7.5pt; letter-spacing: 0.24em; text-transform: uppercase; color: #ff4f00 !important; font-weight: 700; margin: 0 0 6pt 0; padding-bottom: 3pt; border-bottom: 0.5pt solid #ddd !important; }
  .print-account-grid { display: grid !important; grid-template-columns: repeat(6, 1fr) !important; gap: 8pt !important; }
  .print-field-label { font-size: 6.5pt; letter-spacing: 0.18em; text-transform: uppercase; color: #777 !important; font-weight: 600; margin-bottom: 2pt; }
  .print-field-val { font-size: 10pt; font-weight: 700; color: #000 !important; letter-spacing: -0.005em; }
  .print-hero { display: grid !important; grid-template-columns: 1.2fr 1.2fr 1fr 1fr 1fr !important; gap: 0 !important; border: 1pt solid #000 !important; border-radius: 2pt; padding: 0 !important; margin-bottom: 14pt !important; overflow: hidden; }
  .print-hero-cell { padding: 10pt 12pt !important; border-right: 0.5pt solid #ddd !important; }
  .print-hero-cell:last-child { border-right: none !important; }
  .print-hero-cell-primary { background: #ff4f00 !important; color: #fff !important; }
  .print-hero-cell-secondary { background: #0a0e27 !important; color: #fff !important; }
  .print-hero-label { font-size: 6.5pt; letter-spacing: 0.2em; text-transform: uppercase; font-weight: 700; opacity: 0.75; margin-bottom: 4pt; }
  .print-hero-val { font-size: 18pt; font-weight: 800; letter-spacing: -0.025em; line-height: 1; font-variant-numeric: tabular-nums; }
  .print-hero-cell-primary .print-hero-val, .print-hero-cell-secondary .print-hero-val { color: #fff !important; }
  .print-hero-sub { font-size: 7pt; margin-top: 3pt; opacity: 0.8; letter-spacing: 0.04em; }
  .print-row { display: grid !important; grid-template-columns: 1.1fr 1fr !important; gap: 16pt !important; margin-bottom: 12pt !important; }
  .print-wf-row { display: flex !important; justify-content: space-between !important; align-items: baseline !important; padding: 4pt 0 !important; border-bottom: 0.5pt dotted #ccc !important; font-size: 9pt; }
  .print-wf-row:last-child { border-bottom: none !important; }
  .print-wf-label { color: #333 !important; font-weight: 500; }
  .print-wf-val { font-variant-numeric: tabular-nums; font-weight: 700; color: #000 !important; }
  .print-wf-discount .print-wf-val { color: #ff4f00 !important; }
  .print-wf-total { border-top: 1pt solid #000 !important; border-bottom: 1pt solid #000 !important; margin-top: 4pt; padding: 6pt 0 !important; font-size: 11pt; }
  .print-wf-total .print-wf-label { font-weight: 800; text-transform: uppercase; letter-spacing: 0.08em; font-size: 8pt; }
  .print-wf-total .print-wf-val { font-size: 13pt; font-weight: 800; }
  .print-comp-table { width: 100% !important; border-collapse: collapse !important; }
  .print-comp-table th, .print-comp-table td { text-align: left; padding: 5pt 8pt 5pt 0 !important; font-size: 9pt; border-bottom: 0.5pt solid #ddd !important; }
  .print-comp-table th { font-size: 6.5pt; letter-spacing: 0.2em; text-transform: uppercase; color: #777 !important; font-weight: 700; border-bottom: 1pt solid #000 !important; }
  .print-comp-table td:last-child, .print-comp-table th:last-child { text-align: right; font-variant-numeric: tabular-nums; font-weight: 700; }
  .print-comp-row-moz td { background: #fff5ef !important; font-weight: 800 !important; color: #ff4f00 !important; border-bottom: 0.5pt solid #ff4f00 !important; }
  .print-comp-row-moz td:first-child::before { content: '★ '; color: #ff4f00 !important; }
  .print-comp-delta { font-size: 7pt; color: #555 !important; font-weight: 500; margin-left: 4pt; }
  .print-footer { position: fixed; bottom: 6mm; left: 14mm; right: 14mm; display: flex !important; justify-content: space-between !important; padding-top: 6pt !important; border-top: 0.5pt solid #aaa !important; font-size: 6.5pt !important; color: #666 !important; letter-spacing: 0.08em; }
  .print-footer-conf { text-transform: uppercase; letter-spacing: 0.2em; }
  .print-footer-attr { font-weight: 600; }
  .print-hero, .print-section, .print-row { page-break-inside: avoid !important; }
}

/* =====================================================================
   v2.3 — SaaS Shell · Sidebar · Routed sections · Volume Tier Viz
   ===================================================================== */

/* App shell */
.app-shell {
  display: grid;
  grid-template-columns: 280px 1fr;
  min-height: 100vh;
  background: var(--bg-base);
}
@media (max-width: 900px) {
  .app-shell { grid-template-columns: 1fr; }
}

/* Sidebar */
.sidebar {
  position: sticky;
  top: 0;
  height: 100vh;
  background: var(--bg-panel);
  border-right: 1px solid var(--line);
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  z-index: 50;
}
@media (max-width: 900px) {
  .sidebar {
    position: fixed; top: 0; left: 0; bottom: 0;
    width: 280px;
    transform: translateX(-100%);
    transition: transform 220ms ease;
    box-shadow: 0 8px 32px rgba(10,14,39,0.2);
  }
  .sidebar.open { transform: translateX(0); }
}

.sidebar-head {
  padding: 18px 20px 14px;
  border-bottom: 1px solid var(--line);
  display: flex;
  align-items: center;
  gap: 12px;
}
.sidebar-brand-mark {
  width: 32px; height: 32px; border-radius: 50%;
  background: linear-gradient(135deg, var(--moz-orange) 0%, var(--moz-coral) 100%);
  display: flex; align-items: center; justify-content: center;
  color: white; font-weight: 700; font-size: 14px;
  box-shadow: 0 4px 12px rgba(255, 79, 0, 0.3);
}
.sidebar-brand-text {
  display: flex; flex-direction: column; line-height: 1.1;
}
.sidebar-brand-text strong {
  font-size: 14px; font-weight: 700; letter-spacing: -0.01em; color: var(--ink-1);
}
.sidebar-brand-text span {
  font-size: 10px; font-weight: 600; letter-spacing: 0.1em;
  text-transform: uppercase; color: var(--ink-3); margin-top: 2px;
}
.sidebar-version-pill {
  margin-left: auto;
  font-family: var(--font-mono);
  font-size: 10px; font-weight: 700;
  background: linear-gradient(135deg, var(--moz-orange) 0%, var(--moz-coral) 100%);
  color: white; padding: 3px 9px; border-radius: 999px;
  letter-spacing: 0.04em;
}

.sidebar-search-btn {
  margin: 14px 16px 8px;
  display: flex; align-items: center; gap: 10px;
  background: var(--bg-tint);
  border: 1px solid var(--line);
  color: var(--ink-3);
  padding: 9px 12px;
  border-radius: 10px;
  cursor: pointer;
  font: inherit; font-size: 13px;
  transition: border-color 120ms, color 120ms;
}
.sidebar-search-btn:hover { border-color: var(--moz-orange); color: var(--ink-1); }
.sidebar-search-btn .ask-icon { font-size: 14px; color: var(--moz-orange-deep); }
.sidebar-search-btn .grow { flex: 1; text-align: left; }
.sidebar-search-btn kbd {
  font-family: var(--font-mono);
  font-size: 10px;
  background: var(--bg-panel);
  border: 1px solid var(--line-strong);
  color: var(--ink-3);
  padding: 1px 5px; border-radius: 4px;
}

.sidebar-nav {
  flex: 1;
  padding: 8px 12px 18px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.nav-group { padding: 10px 0 4px; }
.nav-group-title {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink-4);
  padding: 6px 10px 4px;
}
.nav-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 10px;
  border-radius: 8px;
  color: var(--ink-2);
  text-decoration: none;
  border: 0;
  font-size: 13.5px;
  font-weight: 500;
  position: relative;
  transition: background 100ms, color 100ms;
}
.nav-item:hover { background: var(--bg-tint); color: var(--ink-1); }
.nav-item.active {
  background: var(--ink-1);
  color: var(--on-dark-1);
  font-weight: 600;
}
.nav-item.active .nav-icon { color: var(--moz-orange); }
.nav-item .nav-icon {
  width: 16px; height: 16px; flex-shrink: 0;
  color: var(--ink-3);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 14px;
}
.nav-item .nav-meta {
  margin-left: auto;
  font-family: var(--font-mono);
  font-size: 10px;
  color: var(--ink-4);
  background: var(--bg-tint);
  padding: 2px 6px;
  border-radius: 4px;
}
.nav-item.active .nav-meta { background: rgba(255,255,255,0.1); color: var(--on-dark-2); }

.sidebar-foot {
  padding: 12px 14px;
  border-top: 1px solid var(--line);
  display: flex;
  align-items: center;
  gap: 8px;
}
.sidebar-foot .role-switcher { flex: 1; }

/* Mobile menu trigger (hidden on desktop) */
.menu-btn {
  display: none;
  border: 1px solid var(--line);
  background: var(--bg-panel);
  color: var(--ink-1);
  width: 36px; height: 36px;
  border-radius: 8px;
  align-items: center; justify-content: center;
  font-size: 18px;
}
@media (max-width: 900px) {
  .menu-btn { display: inline-flex; }
}

/* Main content area */
.content {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  position: relative;
}
.content-topbar {
  position: sticky; top: 0; z-index: 40;
  background: rgba(250, 246, 240, 0.92);
  backdrop-filter: saturate(140%) blur(12px);
  -webkit-backdrop-filter: saturate(140%) blur(12px);
  border-bottom: 1px solid var(--line);
  padding: 12px 32px;
  display: flex;
  align-items: center;
  gap: 16px;
}
[data-theme="dark"] .content-topbar { background: rgba(7,9,26,0.92); }
@media (max-width: 700px) { .content-topbar { padding: 12px 16px; } }

.breadcrumb {
  display: flex; align-items: center; gap: 8px;
  font-size: 13px; color: var(--ink-3);
  flex: 1;
  min-width: 0;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.breadcrumb .sep { opacity: 0.4; }
.breadcrumb .crumb-current { color: var(--ink-1); font-weight: 600; }

.topbar-actions {
  display: flex; align-items: center; gap: 10px;
  flex-shrink: 0;
}

.content-body {
  padding: 28px 32px 80px;
  max-width: 1280px;
}
@media (max-width: 700px) { .content-body { padding: 20px 16px 60px; } }

/* Routed page transitions */
.route {
  display: none;
  animation: routeIn 320ms ease;
}
.route.active { display: block; }
@keyframes routeIn {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Section header (inside each routed page) */
.page-head {
  margin-bottom: 32px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--line);
}
.page-head .eyebrow {
  font-size: 11px; font-weight: 600; letter-spacing: 0.12em;
  text-transform: uppercase; color: var(--moz-orange-deep);
  margin-bottom: 12px;
}
.page-head h1 {
  font-size: clamp(28px, 3vw, 40px);
  line-height: 1.1;
  letter-spacing: -0.025em;
  margin-bottom: 10px;
  font-weight: 700;
}
.page-head .lede {
  font-size: 16px;
  line-height: 1.55;
  color: var(--ink-3);
  max-width: 70ch;
  margin: 0;
}

/* Tools Overview (home page) */
.home-hero {
  background: linear-gradient(135deg, var(--ink-1) 0%, #1a1f47 60%, #2a1f1a 100%);
  color: var(--on-dark-1);
  padding: 48px 40px;
  border-radius: var(--r-xl);
  margin-bottom: 32px;
  position: relative;
  overflow: hidden;
}
.home-hero::after {
  content: ''; position: absolute;
  top: -50%; right: -10%; width: 460px; height: 460px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 113, 57, 0.35), transparent 65%);
  filter: blur(40px);
  animation: mpm2-pulse 8s ease-in-out infinite;
}
.home-hero h1 {
  font-size: clamp(32px, 4vw, 56px);
  line-height: 1.05;
  letter-spacing: -0.03em;
  margin-bottom: 12px;
  color: var(--on-dark-1);
  max-width: 18ch;
  position: relative; z-index: 2;
}
.home-hero p {
  font-size: 17px;
  color: var(--on-dark-2);
  max-width: 60ch;
  position: relative; z-index: 2;
}
.home-hero-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-top: 28px;
  position: relative; z-index: 2;
}
@media (max-width: 700px) { .home-hero-stats { grid-template-columns: repeat(2, 1fr); } }
.home-hero-stat {
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: 12px;
  padding: 14px;
}
.home-hero-stat .lbl {
  font-size: 11px; font-weight: 600;
  color: var(--on-dark-2); letter-spacing: 0.08em;
  text-transform: uppercase; margin-bottom: 6px;
}
.home-hero-stat .val {
  font-family: var(--font-display); font-weight: 700;
  font-size: 26px; line-height: 1;
  color: var(--moz-orange); letter-spacing: -0.025em;
  font-variant-numeric: tabular-nums;
}
.home-hero-stat .sub { font-size: 11px; color: var(--on-dark-2); margin-top: 5px; }

.tools-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-top: 16px;
}
@media (max-width: 900px) { .tools-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .tools-grid { grid-template-columns: 1fr; } }

.tool-tile {
  background: var(--bg-panel);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  padding: 22px;
  text-decoration: none;
  color: var(--ink-1);
  border-bottom: 1px solid var(--line);
  transition: transform 150ms, box-shadow 150ms, border-color 150ms;
  display: flex;
  flex-direction: column;
  gap: 8px;
  position: relative;
}
.tool-tile:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-md);
  border-color: var(--moz-orange);
}
.tool-tile .tile-icon {
  font-size: 22px;
  width: 40px; height: 40px;
  border-radius: 10px;
  background: linear-gradient(135deg, rgba(255,113,57,0.12), rgba(255,79,0,0.04));
  border: 1px solid rgba(255,113,57,0.18);
  display: inline-flex; align-items: center; justify-content: center;
  margin-bottom: 8px;
}
.tool-tile h3 { font-size: 16px; margin: 0; letter-spacing: -0.01em; }
.tool-tile p { color: var(--ink-3); font-size: 13px; margin: 0; line-height: 1.5; }
.tool-tile .arrow { font-size: 12px; color: var(--moz-orange-deep); font-weight: 600; margin-top: auto; padding-top: 6px; }

/* =====================================================================
   Volume Tier Visualizer (vtv-)
   ===================================================================== */
.vtv-root { --vtv-ink: var(--ink-1, #0a0e27); --vtv-ink-2: #2a3158; --vtv-ink-3: #5b6285; --vtv-ink-4: #9aa0bf; --vtv-line: #e7e3da; --vtv-line-2: #f0ece3; --vtv-orange: var(--moz-orange, #ff7139); --vtv-coral: var(--moz-coral, #ff4f00); --vtv-gold: var(--moz-gold, #d4a017); --vtv-bg: var(--bg-base, #faf6f0); --vtv-panel: var(--bg-panel, #ffffff); --vtv-radius: 14px; --vtv-radius-sm: 8px; --vtv-mono: 'SF Mono', 'JetBrains Mono', ui-monospace, monospace; font-family: inherit; color: var(--vtv-ink); background: var(--vtv-panel); border: 1px solid var(--vtv-line); border-radius: 20px; padding: 32px; box-shadow: 0 1px 3px rgba(10, 14, 39, 0.04), 0 12px 48px -16px rgba(10, 14, 39, 0.08); font-feature-settings: 'tnum', 'ss01'; }
.vtv-header { margin-bottom: 28px; max-width: 720px; }
.vtv-eyebrow { display: inline-flex; align-items: center; gap: 8px; font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--vtv-coral); padding: 6px 12px; border: 1px solid rgba(255, 79, 0, 0.2); border-radius: 100px; background: rgba(255, 113, 57, 0.06); margin-bottom: 16px; }
.vtv-eyebrow::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--vtv-coral); box-shadow: 0 0 8px var(--vtv-coral); }
.vtv-title { font-size: clamp(24px, 3vw, 32px); font-weight: 700; line-height: 1.15; letter-spacing: -0.02em; margin: 0 0 12px; color: var(--vtv-ink); }
.vtv-title em { font-style: normal; color: var(--vtv-coral); }
.vtv-sub { font-size: 15px; line-height: 1.5; color: var(--vtv-ink-3); margin: 0; }
.vtv-controls { display: grid; grid-template-columns: auto auto 1fr; gap: 20px 28px; align-items: end; padding: 20px; background: linear-gradient(180deg, #fbf8f2 0%, #f7f3eb 100%); border: 1px solid var(--vtv-line); border-radius: var(--vtv-radius); margin-bottom: 24px; }
@media (max-width: 880px) { .vtv-controls { grid-template-columns: 1fr; } }
.vtv-control-group { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.vtv-label { font-size: 10px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--vtv-ink-3); }
.vtv-seg { display: inline-flex; padding: 4px; background: var(--vtv-panel); border: 1px solid var(--vtv-line); border-radius: 10px; gap: 2px; }
.vtv-seg button { appearance: none; border: 0; background: transparent; padding: 8px 14px; border-radius: 7px; cursor: pointer; font: inherit; font-size: 13px; font-weight: 600; color: var(--vtv-ink-3); transition: all 180ms ease; white-space: nowrap; }
.vtv-seg button:hover { color: var(--vtv-ink); }
.vtv-seg button[aria-pressed="true"] { background: var(--vtv-ink); color: #fff; box-shadow: 0 2px 8px rgba(10, 14, 39, 0.2); }
.vtv-seg button[aria-pressed="true"] .vtv-star { color: var(--vtv-gold); }
.vtv-seats { gap: 10px; }
.vtv-seats-row { display: flex; align-items: center; gap: 12px; }
.vtv-seats-num { appearance: none; border: 1px solid var(--vtv-line); background: var(--vtv-panel); border-radius: 9px; padding: 9px 12px; font: inherit; font-family: var(--vtv-mono); font-size: 15px; font-weight: 600; font-variant-numeric: tabular-nums; color: var(--vtv-ink); width: 110px; text-align: right; transition: border-color 180ms, box-shadow 180ms; }
.vtv-seats-num:focus { outline: 0; border-color: var(--vtv-orange); box-shadow: 0 0 0 3px rgba(255, 113, 57, 0.18); }
.vtv-seats-num::-webkit-inner-spin-button, .vtv-seats-num::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.vtv-seats-unit { font-size: 13px; color: var(--vtv-ink-3); font-weight: 500; }
.vtv-range { -webkit-appearance: none; appearance: none; width: 100%; height: 6px; background: transparent; outline: 0; cursor: pointer; padding: 8px 0; }
.vtv-range::-webkit-slider-runnable-track { height: 6px; border-radius: 100px; background: linear-gradient(90deg, var(--vtv-orange) 0%, var(--vtv-orange) var(--vtv-fill, 50%), #e7e3da var(--vtv-fill, 50%), #e7e3da 100%); }
.vtv-range::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 18px; height: 18px; border-radius: 50%; background: #fff; border: 2px solid var(--vtv-orange); margin-top: -6px; cursor: grab; box-shadow: 0 2px 8px rgba(255, 79, 0, 0.3), 0 0 0 4px rgba(255, 113, 57, 0.12); transition: transform 120ms; }
.vtv-range::-webkit-slider-thumb:active { cursor: grabbing; transform: scale(1.15); }
.vtv-chart-wrap { position: relative; background: linear-gradient(180deg, #fdfbf6 0%, #faf6f0 100%); border: 1px solid var(--vtv-line); border-radius: var(--vtv-radius); padding: 24px 20px 16px; margin-bottom: 24px; }
.vtv-chart-meta { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 8px; padding: 0 4px; }
.vtv-chart-title { font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--vtv-ink-3); }
.vtv-chart-ylabel { font-size: 11px; color: var(--vtv-ink-4); font-family: var(--vtv-mono); letter-spacing: 0.04em; }
.vtv-svg { width: 100%; height: auto; display: block; overflow: visible; }
.vtv-grid-line { stroke: rgba(10, 14, 39, 0.06); stroke-width: 1; }
.vtv-grid-label { fill: var(--vtv-ink-4); font-size: 10px; font-family: var(--vtv-mono); font-variant-numeric: tabular-nums; }
.vtv-axis-line { stroke: rgba(10, 14, 39, 0.15); stroke-width: 1; }
.vtv-tick-label { fill: var(--vtv-ink-3); font-size: 10px; font-weight: 600; font-family: var(--vtv-mono); font-variant-numeric: tabular-nums; }
.vtv-band-rect { transition: y 350ms cubic-bezier(0.2, 0.7, 0.3, 1), height 350ms cubic-bezier(0.2, 0.7, 0.3, 1), opacity 220ms ease; cursor: pointer; }
.vtv-band-rect:hover { opacity: 0.95; }
.vtv-band-step { fill: none; stroke: rgba(255, 79, 0, 0.55); stroke-width: 1.5; transition: y1 350ms cubic-bezier(0.2, 0.7, 0.3, 1), y2 350ms cubic-bezier(0.2, 0.7, 0.3, 1); }
.vtv-band-step.vtv-active { stroke: var(--vtv-coral); stroke-width: 2.5; filter: drop-shadow(0 0 6px rgba(255, 79, 0, 0.6)); }
.vtv-band-rect.vtv-active { filter: drop-shadow(0 0 12px rgba(255, 79, 0, 0.5)); }
.vtv-band-label { fill: var(--vtv-ink-2); font-size: 9.5px; font-weight: 700; font-family: var(--vtv-mono); font-variant-numeric: tabular-nums; pointer-events: none; transition: y 350ms cubic-bezier(0.2, 0.7, 0.3, 1); }
.vtv-band-label.vtv-active { fill: var(--vtv-coral); }
.vtv-marker-group { transition: transform 350ms cubic-bezier(0.2, 0.7, 0.3, 1); }
.vtv-marker-line { stroke: var(--vtv-coral); stroke-width: 1.5; stroke-dasharray: 3 4; opacity: 0.5; }
.vtv-marker-dot { fill: #fff; stroke: var(--vtv-coral); stroke-width: 3; filter: drop-shadow(0 0 12px rgba(255, 79, 0, 0.8)); }
.vtv-marker-pulse { fill: var(--vtv-coral); opacity: 0.3; transform-origin: center; transform-box: fill-box; animation: vtv-pulse 2s ease-in-out infinite; }
@keyframes vtv-pulse { 0%, 100% { transform: scale(1); opacity: 0.25; } 50% { transform: scale(2.2); opacity: 0; } }
.vtv-tooltip-bg { fill: var(--vtv-ink); rx: 7; ry: 7; filter: drop-shadow(0 4px 14px rgba(10, 14, 39, 0.25)); transition: x 350ms cubic-bezier(0.2, 0.7, 0.3, 1), y 350ms cubic-bezier(0.2, 0.7, 0.3, 1); }
.vtv-tooltip-text { fill: #fff; font-size: 11px; font-weight: 600; font-family: var(--vtv-mono); font-variant-numeric: tabular-nums; transition: x 350ms cubic-bezier(0.2, 0.7, 0.3, 1), y 350ms cubic-bezier(0.2, 0.7, 0.3, 1); }
.vtv-tooltip-accent { fill: var(--vtv-orange); }
.vtv-bands { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 10px; margin-bottom: 24px; }
.vtv-band-tile { position: relative; overflow: hidden; background: var(--vtv-panel); border: 1px solid var(--vtv-line); border-radius: var(--vtv-radius); padding: 14px 14px 12px; transition: all 280ms ease; }
.vtv-band-tile::before { content: ''; position: absolute; inset: 0 auto 0 0; width: 3px; background: var(--vtv-orange); opacity: var(--vtv-tile-accent, 0.15); transition: opacity 280ms ease; }
.vtv-band-tile.vtv-active { background: linear-gradient(160deg, #0a0e27 0%, #161b3d 100%); border-color: var(--vtv-coral); color: #fff; box-shadow: 0 8px 24px -8px rgba(255, 79, 0, 0.35), 0 0 0 1px rgba(255, 79, 0, 0.3); animation: vtv-tile-pulse 600ms ease-out; }
@keyframes vtv-tile-pulse { 0% { transform: scale(1); } 40% { transform: scale(1.025); } 100% { transform: scale(1); } }
.vtv-band-tile.vtv-active::before { background: var(--vtv-orange); opacity: 1; width: 4px; }
.vtv-tile-head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 8px; }
.vtv-tile-num { font-size: 10px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--vtv-ink-3); }
.vtv-band-tile.vtv-active .vtv-tile-num { color: var(--vtv-orange); }
.vtv-tile-range { font-size: 10px; font-family: var(--vtv-mono); color: var(--vtv-ink-4); font-variant-numeric: tabular-nums; }
.vtv-band-tile.vtv-active .vtv-tile-range { color: rgba(255, 255, 255, 0.55); }
.vtv-tile-discount { font-size: 26px; font-weight: 700; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; line-height: 1; margin-bottom: 10px; color: var(--vtv-ink); }
.vtv-band-tile.vtv-active .vtv-tile-discount { color: var(--vtv-orange); }
.vtv-tile-discount .vtv-pct { font-size: 14px; font-weight: 600; color: var(--vtv-ink-3); margin-left: 2px; }
.vtv-band-tile.vtv-active .vtv-tile-discount .vtv-pct { color: rgba(255, 255, 255, 0.5); }
.vtv-tile-metric { display: flex; justify-content: space-between; font-size: 11px; padding: 3px 0; font-variant-numeric: tabular-nums; }
.vtv-tile-metric span:first-child { color: var(--vtv-ink-3); }
.vtv-tile-metric span:last-child { font-family: var(--vtv-mono); font-weight: 600; color: var(--vtv-ink-2); }
.vtv-band-tile.vtv-active .vtv-tile-metric span:first-child { color: rgba(255, 255, 255, 0.6); }
.vtv-band-tile.vtv-active .vtv-tile-metric span:last-child { color: #fff; }
.vtv-tile-metric.vtv-save span:last-child { color: var(--vtv-coral); }
.vtv-band-tile.vtv-active .vtv-tile-metric.vtv-save span:last-child { color: var(--vtv-orange); }
.vtv-tile-acv { margin-top: 8px; padding-top: 8px; border-top: 1px dashed var(--vtv-line); font-size: 10.5px; color: var(--vtv-ink-3); font-family: var(--vtv-mono); font-variant-numeric: tabular-nums; line-height: 1.4; }
.vtv-band-tile.vtv-active .vtv-tile-acv { border-top-color: rgba(255, 255, 255, 0.15); color: rgba(255, 255, 255, 0.7); }
.vtv-tile-acv strong { color: var(--vtv-ink); font-weight: 700; }
.vtv-band-tile.vtv-active .vtv-tile-acv strong { color: #fff; }
.vtv-callout { position: relative; background: linear-gradient(135deg, #0a0e27 0%, #1a1f47 60%, #2a1f1a 100%); color: #fff; padding: 20px 24px; border-radius: var(--vtv-radius); display: flex; align-items: flex-start; gap: 16px; overflow: hidden; }
.vtv-callout::before { content: ''; position: absolute; top: -50%; right: -10%; width: 280px; height: 280px; border-radius: 50%; background: radial-gradient(circle, rgba(255, 113, 57, 0.25), transparent 65%); pointer-events: none; }
.vtv-callout-star { flex: 0 0 36px; width: 36px; height: 36px; border-radius: 10px; background: linear-gradient(135deg, var(--vtv-orange), var(--vtv-coral)); display: flex; align-items: center; justify-content: center; font-size: 18px; color: #fff; box-shadow: 0 4px 14px rgba(255, 79, 0, 0.4); position: relative; z-index: 1; }
.vtv-callout-body { font-size: 14px; line-height: 1.55; position: relative; z-index: 1; }
.vtv-callout-body strong { color: var(--vtv-orange); font-weight: 700; font-variant-numeric: tabular-nums; }
.vtv-callout-body em { font-style: normal; color: rgba(255, 255, 255, 0.6); font-size: 12.5px; display: block; margin-top: 4px; }

/* =====================================================================
   v2.4 — Chat Agent + Deliverables Download Center
   ===================================================================== */

/* ==== Chat Agent ==== */
.chat-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  height: calc(100vh - 200px);
  min-height: 600px;
  max-height: 900px;
  background: var(--bg-panel);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  overflow: hidden;
}
.chat-thread {
  flex: 1;
  overflow-y: auto;
  padding: 24px 28px;
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.chat-empty {
  margin: auto;
  text-align: center;
  max-width: 600px;
  padding: 32px;
}
.chat-empty-icon {
  width: 64px; height: 64px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--moz-orange) 0%, var(--moz-coral) 100%);
  display: inline-flex; align-items: center; justify-content: center;
  color: white; font-size: 28px;
  margin-bottom: 18px;
  box-shadow: 0 12px 32px -8px rgba(255, 79, 0, 0.5);
}
.chat-empty h2 {
  font-size: 24px;
  margin-bottom: 10px;
  letter-spacing: -0.02em;
}
.chat-empty p { color: var(--ink-3); margin-bottom: 24px; }
.chat-suggestions {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
  text-align: left;
}
@media (max-width: 600px) { .chat-suggestions { grid-template-columns: 1fr; } }
.chat-suggest {
  background: var(--bg-tint);
  border: 1px solid var(--line);
  padding: 12px 14px;
  border-radius: var(--r-md);
  font-size: 13px;
  color: var(--ink-2);
  cursor: pointer;
  text-align: left;
  font: inherit;
  transition: border-color 120ms, background 120ms;
}
.chat-suggest:hover {
  border-color: var(--moz-orange);
  background: var(--bg-panel);
}
.chat-suggest .chat-suggest-arrow {
  float: right;
  color: var(--moz-orange-deep);
  font-weight: 600;
}

.chat-msg {
  display: flex;
  gap: 12px;
  max-width: 92%;
}
.chat-msg.user { align-self: flex-end; flex-direction: row-reverse; }
.chat-avatar {
  width: 32px; height: 32px;
  border-radius: 50%;
  flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  font-weight: 700; font-size: 13px;
}
.chat-msg.user .chat-avatar {
  background: var(--ink-1);
  color: var(--on-dark-1);
}
.chat-msg.assistant .chat-avatar {
  background: linear-gradient(135deg, var(--moz-orange) 0%, var(--moz-coral) 100%);
  color: white;
  box-shadow: 0 4px 12px rgba(255, 79, 0, 0.3);
}
.chat-bubble {
  background: var(--bg-tint);
  padding: 14px 18px;
  border-radius: var(--r-lg);
  font-size: 14.5px;
  line-height: 1.55;
  color: var(--ink-2);
}
.chat-msg.user .chat-bubble {
  background: var(--ink-1);
  color: var(--on-dark-1);
}
.chat-bubble h4 {
  color: var(--moz-orange-deep);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin: 14px 0 6px;
}
.chat-bubble h4:first-child { margin-top: 0; }
.chat-bubble p { margin: 0 0 10px; color: inherit; font-size: inherit; line-height: inherit; }
.chat-bubble p:last-child { margin-bottom: 0; }
.chat-bubble ul { margin: 4px 0 10px; padding-left: 20px; }
.chat-bubble li { margin-bottom: 4px; }
.chat-bubble strong { color: var(--ink-1); }
.chat-msg.user .chat-bubble strong { color: var(--moz-orange); }
.chat-bubble code {
  background: var(--bg-panel);
  border: 1px solid var(--line);
  padding: 1px 6px;
  border-radius: 4px;
  font-family: var(--font-mono);
  font-size: 12px;
}
.chat-citations {
  display: flex; flex-wrap: wrap; gap: 6px;
  margin-top: 14px; padding-top: 12px;
  border-top: 1px dashed var(--line);
}
.chat-citation {
  display: inline-flex; align-items: center; gap: 6px;
  background: var(--bg-panel);
  border: 1px solid var(--line);
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 600;
  color: var(--ink-2);
  cursor: pointer;
  text-decoration: none;
  border-bottom-width: 1px;
}
.chat-citation:hover {
  border-color: var(--moz-orange);
  color: var(--ink-1);
}
.chat-citation-num {
  font-family: var(--font-mono);
  color: var(--moz-orange-deep);
}

.chat-followups {
  display: flex; flex-wrap: wrap; gap: 6px;
  margin-top: 12px;
}
.chat-followup {
  background: var(--bg-panel);
  border: 1px solid var(--line);
  padding: 6px 12px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 500;
  color: var(--ink-2);
  cursor: pointer;
  border-bottom-width: 1px;
  font: inherit;
  font-size: 12px;
}
.chat-followup::before { content: '↗ '; color: var(--moz-orange-deep); font-weight: 700; }
.chat-followup:hover { border-color: var(--moz-orange); color: var(--ink-1); }

.chat-typing {
  display: inline-flex; gap: 4px;
  padding: 4px;
}
.chat-typing span {
  width: 7px; height: 7px;
  border-radius: 50%;
  background: var(--moz-orange);
  animation: chatTyping 1.2s infinite;
}
.chat-typing span:nth-child(2) { animation-delay: 0.2s; }
.chat-typing span:nth-child(3) { animation-delay: 0.4s; }
@keyframes chatTyping {
  0%, 60%, 100% { transform: scale(0.7); opacity: 0.5; }
  30% { transform: scale(1); opacity: 1; }
}

.chat-composer {
  border-top: 1px solid var(--line);
  background: var(--bg-tint);
  padding: 14px 20px;
  display: flex;
  align-items: end;
  gap: 12px;
}
.chat-composer textarea {
  flex: 1;
  border: 0;
  background: var(--bg-panel);
  padding: 12px 14px;
  border-radius: var(--r-md);
  font: inherit;
  font-size: 14px;
  resize: none;
  min-height: 44px;
  max-height: 140px;
  line-height: 1.4;
  color: var(--ink-1);
}
.chat-composer textarea:focus { outline: 2px solid var(--moz-orange); outline-offset: -1px; }
.chat-send {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: linear-gradient(135deg, var(--moz-orange) 0%, var(--moz-coral) 100%);
  color: white;
  border: 0;
  padding: 11px 18px;
  border-radius: var(--r-md);
  font: inherit;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  box-shadow: 0 4px 12px rgba(255, 79, 0, 0.3);
  transition: transform 100ms, box-shadow 100ms;
}
.chat-send:hover { transform: translateY(-1px); box-shadow: 0 6px 16px rgba(255, 79, 0, 0.4); }
.chat-send:disabled { opacity: 0.5; cursor: default; transform: none; }
.chat-toolbar {
  display: flex; align-items: center; gap: 10px;
  padding: 0 20px 14px;
  background: var(--bg-tint);
  font-size: 12px;
  color: var(--ink-3);
}
.chat-toolbar .toolbar-kbd {
  font-family: var(--font-mono);
  background: var(--bg-panel);
  border: 1px solid var(--line);
  padding: 1px 5px;
  border-radius: 4px;
  margin: 0 2px;
}
.chat-reset { margin-left: auto; border: 0; background: transparent; color: var(--ink-3); cursor: pointer; font: inherit; font-size: 12px; padding: 4px 8px; border-radius: 6px; }
.chat-reset:hover { background: var(--bg-panel); color: var(--ink-1); }

/* ==== Deliverables Download Center ==== */
.dl-toolbar {
  display: flex; gap: 10px; flex-wrap: wrap;
  margin-bottom: 20px; align-items: center;
}
.dl-search {
  flex: 1;
  min-width: 220px;
  padding: 9px 14px;
  border: 1px solid var(--line-strong);
  border-radius: var(--r-md);
  background: var(--bg-panel);
  font: inherit;
  font-size: 14px;
  color: var(--ink-1);
}
.dl-search:focus { outline: 2px solid var(--moz-orange); outline-offset: -1px; }
.dl-filter {
  padding: 9px 14px;
  border: 1px solid var(--line-strong);
  border-radius: var(--r-md);
  background: var(--bg-panel);
  font: inherit;
  font-size: 13px;
  color: var(--ink-1);
}
.dl-count {
  margin-left: auto;
  font-size: 12px;
  color: var(--ink-3);
}
.dl-actions {
  display: flex; gap: 10px; flex-wrap: wrap;
  margin-bottom: 24px;
}

.dl-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 14px;
}
.dl-card {
  background: var(--bg-panel);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  padding: 18px;
  display: flex;
  gap: 14px;
  position: relative;
  transition: transform 120ms, box-shadow 120ms, border-color 120ms;
}
.dl-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
  border-color: var(--moz-orange);
}
.dl-card-icon {
  flex-shrink: 0;
  width: 48px; height: 56px;
  border-radius: 6px;
  display: flex; align-items: flex-end; justify-content: center;
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  padding-bottom: 8px;
  color: white;
  position: relative;
}
.dl-card-icon.dl-docx { background: linear-gradient(135deg, #2b579a 0%, #1a3d6e 100%); }
.dl-card-icon.dl-xlsx { background: linear-gradient(135deg, #217346 0%, #14502f 100%); }
.dl-card-icon.dl-pptx { background: linear-gradient(135deg, #c43e1c 0%, #872b13 100%); }
.dl-card-icon.dl-pdf { background: linear-gradient(135deg, #b30b00 0%, #7a0700 100%); }
.dl-card-icon::before {
  content: '';
  position: absolute;
  top: 0; right: 0;
  border-width: 0 12px 12px 0;
  border-style: solid;
  border-color: rgba(255,255,255,0.3) rgba(255,255,255,0.15);
}
.dl-card-body { flex: 1; min-width: 0; }
.dl-card-num {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 700;
  color: var(--moz-orange-deep);
  letter-spacing: 0.06em;
}
.dl-card-title {
  font-size: 15px;
  font-weight: 600;
  color: var(--ink-1);
  letter-spacing: -0.01em;
  margin: 2px 0 6px;
  line-height: 1.25;
  word-break: break-word;
}
.dl-card-meta {
  display: flex; align-items: center; gap: 8px;
  font-size: 11px;
  color: var(--ink-3);
}
.dl-card-tag {
  background: var(--bg-tint);
  padding: 2px 7px;
  border-radius: 4px;
  font-weight: 600;
  letter-spacing: 0.04em;
}
.dl-card-size { font-family: var(--font-mono); }
.dl-card-actions {
  display: flex; gap: 6px;
  margin-top: 10px;
}
.dl-btn {
  display: inline-flex; align-items: center; gap: 5px;
  background: var(--bg-tint);
  border: 1px solid var(--line);
  color: var(--ink-2);
  padding: 5px 10px;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 600;
  text-decoration: none;
  border-bottom-width: 1px;
  cursor: pointer;
  font: inherit;
  font-size: 11px;
}
.dl-btn:hover { border-color: var(--moz-orange); color: var(--ink-1); }
.dl-btn-primary {
  background: var(--ink-1);
  color: var(--on-dark-1);
  border-color: var(--ink-1);
}
.dl-btn-primary:hover {
  background: var(--moz-orange);
  border-color: var(--moz-orange);
  color: white;
}
.dl-card.dl-pending { opacity: 0.65; }
.dl-card.dl-pending::after {
  content: 'PENDING UPLOAD';
  position: absolute;
  top: 8px; right: 8px;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.1em;
  background: var(--warn-soft);
  color: var(--warn);
  padding: 2px 7px;
  border-radius: 999px;
}


/* =====================================================================
   v2.5 — Drag-and-drop upload zone
   ===================================================================== */
.dz-root { margin-bottom: 28px; }
.dz-zone {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 40px 32px;
  background: linear-gradient(180deg, #fbf8f2 0%, #f7f3eb 100%);
  border: 2px dashed rgba(255, 113, 57, 0.4);
  border-radius: var(--r-lg);
  text-align: center;
  cursor: pointer;
  transition: all 180ms ease;
}
.dz-zone:hover {
  border-color: var(--moz-orange);
  background: linear-gradient(180deg, #fff5ed 0%, #fde9d9 100%);
}
.dz-zone.dz-dragging {
  border-color: var(--moz-coral);
  background: linear-gradient(180deg, #ffe9d9 0%, #ffd2b8 100%);
  transform: scale(1.01);
  box-shadow: 0 0 0 6px rgba(255, 113, 57, 0.15);
}
.dz-zone input[type="file"] {
  position: absolute; inset: 0; opacity: 0; cursor: pointer;
}
.dz-icon {
  font-size: 32px;
  width: 64px; height: 64px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--moz-orange) 0%, var(--moz-coral) 100%);
  color: white;
  display: inline-flex; align-items: center; justify-content: center;
  box-shadow: 0 12px 32px -8px rgba(255, 79, 0, 0.5);
  font-weight: 300;
}
.dz-title {
  font-size: 20px;
  font-weight: 700;
  letter-spacing: -0.015em;
  color: var(--ink-1);
  margin: 6px 0 0;
}
.dz-sub {
  font-size: 13px;
  color: var(--ink-3);
  max-width: 480px;
}
.dz-types {
  display: flex; gap: 6px;
  margin-top: 6px;
}
.dz-type-pill {
  background: var(--bg-panel);
  border: 1px solid var(--line);
  padding: 3px 9px;
  border-radius: 999px;
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 700;
  color: var(--ink-3);
  letter-spacing: 0.05em;
}

.dz-status {
  display: flex; align-items: center; gap: 12px;
  padding: 12px 16px;
  background: var(--bg-tint);
  border-radius: var(--r-md);
  margin-top: 10px;
  font-size: 13px;
  color: var(--ink-2);
}
.dz-status-ok { color: var(--ok); }
.dz-status-warn { color: var(--warn); }
.dz-storage-meter {
  margin-left: auto;
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--ink-3);
}

.dl-card.dl-uploaded {
  border-left: 3px solid var(--moz-orange);
}
.dl-card .dl-card-source {
  position: absolute;
  top: 8px; right: 8px;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.08em;
  padding: 2px 7px;
  border-radius: 999px;
  text-transform: uppercase;
}
.dl-card.dl-uploaded .dl-card-source {
  background: var(--moz-orange-soft);
  color: var(--moz-orange-deep);
}
.dl-card-delete {
  display: inline-flex; align-items: center; gap: 4px;
  background: transparent;
  border: 0;
  color: var(--ink-4);
  padding: 5px 8px;
  border-radius: 6px;
  font: inherit; font-size: 11px;
  cursor: pointer;
}
.dl-card-delete:hover { color: var(--danger); background: var(--danger-soft); }

/* =====================================================================
   v2.6 — MBB-grade exhibit treatment (mpm3) — Master Pricing Model rebuild
   ===================================================================== */
.mpm3-root { --mpm3-ink: #1a1a1a; --mpm3-ink-2: #404040; --mpm3-muted: #737373; --mpm3-rule: #d4d4d4; --mpm3-rule-soft: #e5e5e5; --mpm3-paper: #ffffff; --mpm3-paper-2: #fafafa; --mpm3-accent: #c4520f; --mpm3-serif: "Charter", "Iowan Old Style", "Georgia", "Times New Roman", serif; --mpm3-sans: "Inter", "SF Pro Text", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif; --mpm3-mono: "JetBrains Mono", "SF Mono", "Menlo", "Consolas", monospace; max-width: 1100px; margin: 0 auto; padding: 48px; background: var(--mpm3-paper); color: var(--mpm3-ink); font-family: var(--mpm3-sans); font-size: 14px; line-height: 1.5; text-align: left; opacity: 0; transform: translateY(4px); animation: mpm3-fade 600ms ease-out 80ms forwards; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
@keyframes mpm3-fade { to { opacity: 1; transform: translateY(0); } }
.mpm3-eyebrow { font-family: var(--mpm3-sans); font-size: 11px; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: var(--mpm3-muted); margin: 0 0 14px 0; }
.mpm3-eyebrow .mpm3-eyebrow-sep { display: inline-block; margin: 0 8px; color: var(--mpm3-rule); }
.mpm3-h1 { font-family: var(--mpm3-serif); font-weight: 400; font-size: 30px; line-height: 1.2; letter-spacing: -0.01em; color: var(--mpm3-ink); margin: 0 0 8px 0; }
.mpm3-h1 .mpm3-h1-price { font-family: var(--mpm3-mono); font-weight: 500; font-feature-settings: "tnum" 1; color: var(--mpm3-accent); letter-spacing: 0; }
.mpm3-subtitle { font-size: 13.5px; color: var(--mpm3-ink-2); margin: 0 0 36px 0; max-width: 780px; }
.mpm3-exhibit { position: relative; border-top: 1px solid var(--mpm3-rule); border-bottom: 1px solid var(--mpm3-rule); padding: 40px 8px 32px 8px; margin: 0 0 28px 0; }
.mpm3-chips { position: relative; height: 38px; margin: 0 0 18px 0; }
.mpm3-chip { position: absolute; transform: translateX(-50%); display: inline-flex; flex-direction: column; align-items: flex-start; padding: 4px 10px; border: 1px solid var(--mpm3-rule); background: var(--mpm3-paper-2); white-space: nowrap; }
.mpm3-chip-label { font-size: 9.5px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--mpm3-muted); line-height: 1.2; }
.mpm3-chip-val { font-family: var(--mpm3-mono); font-size: 12px; font-weight: 500; color: var(--mpm3-ink); font-feature-settings: "tnum" 1; line-height: 1.2; }
.mpm3-chip-stem { position: absolute; left: 50%; bottom: -10px; width: 1px; height: 10px; background: var(--mpm3-rule); }
.mpm3-scale { position: relative; height: 56px; margin: 0 24px; }
.mpm3-scale-line { position: absolute; left: 0; right: 0; top: 18px; height: 1px; background: var(--mpm3-ink); }
.mpm3-tick { position: absolute; top: 12px; transform: translateX(-50%); width: 1px; height: 14px; background: var(--mpm3-ink); }
.mpm3-tick-label { position: absolute; top: 30px; transform: translateX(-50%); font-family: var(--mpm3-mono); font-size: 11.5px; font-weight: 500; color: var(--mpm3-ink); font-feature-settings: "tnum" 1; white-space: nowrap; }
.mpm3-recline { position: absolute; top: 0; bottom: 0; width: 0; border-left: 1px dashed var(--mpm3-accent); opacity: 0.45; pointer-events: none; }
.mpm3-anchors { position: relative; margin: 14px 24px 0 24px; height: 80px; }
.mpm3-anchor { position: absolute; top: 0; transform: translateX(-50%); display: flex; flex-direction: column; align-items: flex-start; white-space: nowrap; }
.mpm3-anchor--center { align-items: center; }
.mpm3-anchor-stem { width: 1px; height: 8px; background: var(--mpm3-rule); margin-bottom: 4px; }
.mpm3-anchor-label { font-size: 10.5px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--mpm3-muted); line-height: 1.3; }
.mpm3-anchor-caption { font-size: 11.5px; color: var(--mpm3-ink-2); font-style: italic; margin-top: 2px; line-height: 1.3; }
.mpm3-pointer { width: 0; height: 0; border-left: 7px solid transparent; border-right: 7px solid transparent; border-bottom: 9px solid var(--mpm3-accent); margin-bottom: 6px; }
.mpm3-rec-tag { display: inline-block; padding: 3px 8px; background: var(--mpm3-accent); color: #ffffff; font-size: 10px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; line-height: 1.2; margin-bottom: 6px; }
.mpm3-rec-caption { font-size: 11.5px; color: var(--mpm3-ink-2); text-align: center; line-height: 1.35; max-width: 240px; }
.mpm3-table-wrap { margin: 0 0 32px 0; }
.mpm3-table { width: 100%; border-collapse: collapse; font-size: 13px; table-layout: fixed; }
.mpm3-table thead th { font-family: var(--mpm3-sans); font-size: 10.5px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--mpm3-muted); text-align: right; padding: 0 16px 10px 16px; border-bottom: 1px solid var(--mpm3-ink); vertical-align: bottom; }
.mpm3-table thead th:first-child { text-align: left; }
.mpm3-table tbody td { padding: 12px 16px; border-bottom: 1px solid var(--mpm3-rule-soft); text-align: right; font-family: var(--mpm3-mono); font-feature-settings: "tnum" 1; font-size: 13px; color: var(--mpm3-ink); vertical-align: middle; }
.mpm3-table tbody td:first-child { text-align: left; font-family: var(--mpm3-sans); font-size: 13px; color: var(--mpm3-ink); }
.mpm3-table tbody tr:last-child td { border-bottom: 1px solid var(--mpm3-ink); }
.mpm3-table tbody tr.mpm3-row--rec td { font-weight: 700; background: transparent; }
.mpm3-table tbody tr.mpm3-row--rec td:first-child { color: var(--mpm3-accent); }
.mpm3-row-label { display: inline-flex; align-items: center; gap: 8px; }
.mpm3-row-marker { display: inline-block; width: 6px; height: 6px; border: 1px solid var(--mpm3-muted); background: transparent; }
.mpm3-row--rec .mpm3-row-marker { background: var(--mpm3-accent); border-color: var(--mpm3-accent); }
.mpm3-table th + th, .mpm3-table td + td { border-left: 1px solid var(--mpm3-rule-soft); }
.mpm3-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; border-top: 1px solid var(--mpm3-rule); border-bottom: 1px solid var(--mpm3-rule); margin: 0 0 18px 0; }
.mpm3-metric { padding: 14px 18px; border-left: 1px solid var(--mpm3-rule-soft); }
.mpm3-metric:first-child { border-left: none; padding-left: 0; }
.mpm3-metric-label { font-size: 10.5px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--mpm3-muted); margin-bottom: 4px; }
.mpm3-metric-val { font-family: var(--mpm3-mono); font-size: 16px; font-weight: 500; color: var(--mpm3-ink); font-feature-settings: "tnum" 1; letter-spacing: -0.01em; }
.mpm3-metric-val .mpm3-metric-accent { color: var(--mpm3-accent); }
.mpm3-footnotes { margin: 0; padding: 0; list-style: none; font-size: 11px; color: var(--mpm3-muted); line-height: 1.6; }
.mpm3-footnotes li { padding-left: 14px; position: relative; }
.mpm3-footnotes li::before { content: "—"; position: absolute; left: 0; color: var(--mpm3-rule); }
@media (max-width: 720px) {
  .mpm3-root { padding: 28px 20px; }
  .mpm3-h1 { font-size: 24px; }
  .mpm3-exhibit { padding: 32px 0 24px 0; }
  .mpm3-scale, .mpm3-anchors { margin-left: 12px; margin-right: 12px; }
  .mpm3-metrics { grid-template-columns: 1fr; }
  .mpm3-metric { border-left: none; border-top: 1px solid var(--mpm3-rule-soft); padding: 12px 0; }
  .mpm3-metric:first-child { border-top: none; padding-top: 0; }
  .mpm3-table { font-size: 12px; }
  .mpm3-table thead th, .mpm3-table tbody td { padding: 10px 8px; }
}

/* =====================================================================
   v2.6 — Scenario Compare (sc-) and Deal Memo (dm-)
   ===================================================================== */
#scenario-compare { --sc-charcoal: #1a1a1a; --sc-text-2: #737373; --sc-text-3: #a3a3a3; --sc-accent: #c4520f; --sc-accent-soft: #f4ebe4; --sc-line: #e5e5e5; --sc-line-soft: #f0f0f0; --sc-paper: #fdfdfc; --sc-bg: #f7f6f3; --sc-ok: #2f6f4e; --sc-warn: #a35a00; --sc-mono: 'JetBrains Mono', ui-monospace, monospace; --sc-sans: 'Inter', -apple-system, sans-serif; --sc-serif: Charter, 'Iowan Old Style', Georgia, serif; font-family: var(--sc-sans); color: var(--sc-charcoal); background: var(--sc-bg); padding: 28px 24px 40px; font-size: 13px; line-height: 1.45; }
#scenario-compare *, #scenario-compare *::before, #scenario-compare *::after { box-sizing: border-box; }
.sc-titlebar { display: flex; align-items: baseline; justify-content: space-between; padding-bottom: 14px; margin-bottom: 18px; border-bottom: 1px solid var(--sc-line); }
.sc-title { font-family: var(--sc-serif); font-weight: 500; font-size: 22px; letter-spacing: -0.01em; }
.sc-subtitle { font-size: 11px; text-transform: uppercase; letter-spacing: 0.12em; color: var(--sc-text-2); font-weight: 500; }
.sc-exhibit { background: var(--sc-paper); border: 1px solid var(--sc-line); display: grid; grid-template-columns: 1fr 1fr 1fr; }
.sc-col { padding: 22px 22px 26px; border-right: 1px solid var(--sc-line); display: flex; flex-direction: column; gap: 14px; }
.sc-col:last-child { border-right: none; }
.sc-col[data-recommended="true"] { border-top: 2px solid var(--sc-charcoal); margin-top: -1px; }
.sc-colhead { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 22px; }
.sc-scenario-name { font-family: var(--sc-serif); font-weight: 500; font-size: 15px; color: var(--sc-charcoal); border: none; background: transparent; padding: 2px 0; outline: none; width: 100%; }
.sc-scenario-name:focus { border-bottom: 1px solid var(--sc-charcoal); }
.sc-rec-badge { font-size: 9px; text-transform: uppercase; letter-spacing: 0.14em; font-weight: 600; color: var(--sc-charcoal); border: 1px solid var(--sc-charcoal); padding: 2px 6px; white-space: nowrap; }
.sc-inputs { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 12px; padding: 12px 0; border-top: 1px solid var(--sc-line-soft); border-bottom: 1px solid var(--sc-line-soft); }
.sc-field { display: flex; flex-direction: column; gap: 4px; }
.sc-field-full { grid-column: 1 / -1; }
.sc-label { font-size: 10px; text-transform: uppercase; letter-spacing: 0.1em; color: var(--sc-text-2); font-weight: 500; }
.sc-input, .sc-select { font-family: var(--sc-mono); font-size: 12px; padding: 5px 7px; border: 1px solid var(--sc-line); background: #fff; color: var(--sc-charcoal); border-radius: 0; outline: none; font-variant-numeric: tabular-nums; height: 28px; }
.sc-input:focus, .sc-select:focus { border-color: var(--sc-charcoal); }
.sc-seg { display: grid; grid-template-columns: 1fr 1fr 1fr; border: 1px solid var(--sc-line); height: 28px; }
.sc-seg button { background: #fff; border: none; border-right: 1px solid var(--sc-line); font-family: var(--sc-mono); font-size: 11px; color: var(--sc-text-2); cursor: pointer; padding: 0; font-variant-numeric: tabular-nums; }
.sc-seg button:last-child { border-right: none; }
.sc-seg button[data-active="true"] { background: var(--sc-charcoal); color: #fff; font-weight: 600; }
.sc-seg button[data-active="true"][data-rec="true"] { background: var(--sc-accent); }
.sc-toggle { display: flex; align-items: center; gap: 8px; height: 28px; }
.sc-toggle input { margin: 0; accent-color: var(--sc-charcoal); }
.sc-toggle-label { font-size: 12px; color: var(--sc-charcoal); }
.sc-toggle-hint { font-size: 10px; color: var(--sc-text-2); }
.sc-out { display: flex; flex-direction: column; gap: 14px; padding-top: 4px; }
.sc-bignet-wrap { display: flex; flex-direction: column; gap: 2px; }
.sc-bignet { font-family: var(--sc-mono); font-size: 36px; font-weight: 500; font-variant-numeric: tabular-nums; letter-spacing: -0.02em; color: var(--sc-charcoal); line-height: 1; }
.sc-bignet-cap { font-size: 10px; text-transform: uppercase; letter-spacing: 0.12em; color: var(--sc-text-2); }
.sc-acv-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; padding: 12px 0; border-top: 1px solid var(--sc-line-soft); border-bottom: 1px solid var(--sc-line-soft); }
.sc-metric { display: flex; flex-direction: column; gap: 3px; }
.sc-metric-label { font-size: 10px; text-transform: uppercase; letter-spacing: 0.1em; color: var(--sc-text-2); }
.sc-acv { font-family: var(--sc-mono); font-size: 28px; font-weight: 500; font-variant-numeric: tabular-nums; color: var(--sc-charcoal); line-height: 1; }
.sc-tcv { font-family: var(--sc-mono); font-size: 17px; font-weight: 500; font-variant-numeric: tabular-nums; color: var(--sc-charcoal); line-height: 1; }
.sc-detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 14px; }
.sc-detail-label { font-size: 10px; text-transform: uppercase; letter-spacing: 0.1em; color: var(--sc-text-2); margin-bottom: 2px; }
.sc-detail-val { font-family: var(--sc-mono); font-size: 13px; font-variant-numeric: tabular-nums; color: var(--sc-charcoal); }
.sc-floor-row { display: flex; align-items: center; gap: 6px; font-size: 11px; padding: 8px 10px; border: 1px solid var(--sc-line); background: #fafaf8; }
.sc-floor-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--sc-ok); flex-shrink: 0; }
.sc-floor-dot[data-status="warn"] { background: var(--sc-warn); }
.sc-floor-text { color: var(--sc-charcoal); font-weight: 500; }
.sc-floor-auth { color: var(--sc-text-2); margin-left: auto; font-size: 10px; text-transform: uppercase; letter-spacing: 0.08em; }
.sc-compare-row { background: var(--sc-paper); border: 1px solid var(--sc-line); border-top: none; display: grid; grid-template-columns: 1.3fr 1fr 1fr; padding: 16px 22px; gap: 24px; }
.sc-cmp-block { display: flex; flex-direction: column; gap: 6px; }
.sc-cmp-label { font-size: 10px; text-transform: uppercase; letter-spacing: 0.12em; color: var(--sc-text-2); font-weight: 500; }
.sc-cmp-acv-line { font-family: var(--sc-mono); font-size: 16px; font-variant-numeric: tabular-nums; color: var(--sc-charcoal); }
.sc-cmp-acv-line .sc-cmp-win { color: var(--sc-accent); font-weight: 600; }
.sc-cmp-acv-line .sc-cmp-sep { color: var(--sc-text-3); padding: 0 4px; }
.sc-cmp-best { font-family: var(--sc-mono); font-size: 15px; color: var(--sc-accent); font-weight: 600; }
.sc-cmp-delta { font-family: var(--sc-mono); font-size: 13px; color: var(--sc-charcoal); font-variant-numeric: tabular-nums; }
.sc-cmp-delta-pos { color: var(--sc-accent); }
.sc-cmp-delta-neg { color: var(--sc-text-2); }
.sc-deck { margin-top: 24px; background: var(--sc-paper); border: 1px solid var(--sc-line); display: grid; grid-template-columns: 1.15fr 1fr; gap: 0; }
.sc-deck-head { grid-column: 1 / -1; padding: 14px 22px 10px; border-bottom: 1px solid var(--sc-line); display: flex; align-items: baseline; justify-content: space-between; }
.sc-deck-title { font-family: var(--sc-serif); font-weight: 500; font-size: 14px; }
.sc-deck-sub { font-size: 10px; text-transform: uppercase; letter-spacing: 0.12em; color: var(--sc-text-2); }
.sc-chart-wrap { padding: 18px 22px 22px; border-right: 1px solid var(--sc-line); min-height: 260px; }
.sc-narrative { padding: 18px 22px 22px; display: flex; flex-direction: column; gap: 12px; }
.sc-narr-row { display: flex; gap: 10px; align-items: flex-start; padding-bottom: 10px; border-bottom: 1px solid var(--sc-line-soft); }
.sc-narr-row:last-child { border-bottom: none; padding-bottom: 0; }
.sc-narr-tag { font-family: var(--sc-mono); font-size: 10px; font-weight: 600; color: var(--sc-charcoal); border: 1px solid var(--sc-charcoal); padding: 2px 5px; letter-spacing: 0.04em; flex-shrink: 0; margin-top: 1px; }
.sc-narr-tag[data-kind="rec"] { color: var(--sc-accent); border-color: var(--sc-accent); }
.sc-narr-text { font-size: 12px; color: var(--sc-charcoal); line-height: 1.5; }
.sc-narr-text em { font-style: normal; font-family: var(--sc-mono); font-variant-numeric: tabular-nums; color: var(--sc-accent); font-weight: 600; }
.sc-footer { display: flex; align-items: center; justify-content: space-between; padding-top: 16px; margin-top: 18px; border-top: 1px solid var(--sc-line); gap: 12px; }
.sc-footer-meta { font-size: 11px; color: var(--sc-text-2); }
.sc-footer-actions { display: flex; gap: 8px; }
.sc-btn { font-family: var(--sc-sans); font-size: 11px; font-weight: 500; text-transform: uppercase; letter-spacing: 0.08em; padding: 7px 12px; border: 1px solid var(--sc-line); background: #fff; color: var(--sc-charcoal); cursor: pointer; border-radius: 0; }
.sc-btn:hover { border-color: var(--sc-charcoal); }
.sc-btn-primary { background: var(--sc-charcoal); color: #fff; border-color: var(--sc-charcoal); }
.sc-toast { position: fixed; bottom: 24px; left: 50%; transform: translateX(-50%); background: var(--sc-charcoal); color: #fff; font-size: 12px; padding: 10px 16px; z-index: 9999; opacity: 0; transition: opacity 0.2s; pointer-events: none; }
.sc-toast[data-show="true"] { opacity: 1; }
@media (max-width: 900px) { .sc-exhibit { grid-template-columns: 1fr; } .sc-col { border-right: none; border-bottom: 1px solid var(--sc-line); } .sc-col:last-child { border-bottom: none; } .sc-compare-row { grid-template-columns: 1fr; gap: 14px; } .sc-deck { grid-template-columns: 1fr; } }

/* Deal Memo */
#deal-memo { --dm-ink: #1a1a1a; --dm-ink-2: #404040; --dm-mute: #737373; --dm-line: #e5e5e5; --dm-line-2: #d4d4d4; --dm-paper: #ffffff; --dm-accent: #c4520f; --dm-accent-soft: #fef3ec; --dm-green: #15803d; --dm-amber: #b45309; --dm-red: #b91c1c; --dm-serif: Charter, 'Iowan Old Style', Georgia, serif; --dm-sans: Inter, sans-serif; --dm-mono: 'JetBrains Mono', monospace; background: #fafaf9; color: var(--dm-ink); font-family: var(--dm-sans); font-size: 13px; padding: 24px 16px 64px; }
#deal-memo * { box-sizing: border-box; }
.dm-actions { max-width: 900px; margin: 0 auto 16px; display: flex; gap: 8px; justify-content: flex-end; flex-wrap: wrap; }
.dm-actions button { font-family: var(--dm-sans); font-size: 12px; font-weight: 500; color: var(--dm-ink); background: var(--dm-paper); border: 1px solid var(--dm-line-2); padding: 7px 12px; border-radius: 4px; cursor: pointer; }
.dm-actions button:hover { background: #fafaf9; border-color: var(--dm-ink); }
.dm-actions button.dm-primary { background: var(--dm-ink); color: #fff; border-color: var(--dm-ink); }
.dm-toast { position: fixed; bottom: 24px; left: 50%; transform: translateX(-50%); background: var(--dm-ink); color: #fff; padding: 10px 16px; border-radius: 4px; font-size: 12px; opacity: 0; pointer-events: none; transition: opacity 0.2s; z-index: 9999; }
.dm-toast.dm-show { opacity: 1; }
.dm-paper { max-width: 900px; margin: 0 auto; background: var(--dm-paper); border: 1px solid var(--dm-line); padding: 56px 64px 48px; }
.dm-header { display: flex; justify-content: space-between; align-items: flex-end; padding-bottom: 14px; border-bottom: 2px solid var(--dm-ink); margin-bottom: 28px; }
.dm-header-left, .dm-header-right { font-size: 10px; color: var(--dm-mute); letter-spacing: 0.08em; text-transform: uppercase; }
.dm-eyebrow { color: var(--dm-ink); font-weight: 600; letter-spacing: 0.16em; margin-bottom: 4px; }
.dm-meta-line { margin-top: 2px; }
.dm-header-right { text-align: right; line-height: 1.6; }
.dm-mark { color: var(--dm-ink); font-weight: 600; }
.dm-title-block { margin-bottom: 32px; }
.dm-title { font-family: var(--dm-serif); font-weight: 600; font-size: 28px; line-height: 1.2; letter-spacing: -0.01em; color: var(--dm-ink); margin: 0 0 8px; }
.dm-subtitle { font-size: 13px; color: var(--dm-mute); letter-spacing: 0.01em; }
.dm-section { margin-bottom: 28px; }
.dm-section-label { font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--dm-mute); font-weight: 600; margin-bottom: 10px; padding-bottom: 6px; border-bottom: 1px solid var(--dm-line); }
.dm-exec { font-size: 14px; line-height: 1.65; color: var(--dm-ink-2); font-family: var(--dm-serif); }
.dm-exec b { color: var(--dm-ink); font-weight: 600; }
.dm-table { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.dm-table th, .dm-table td { text-align: left; padding: 7px 10px; border-bottom: 1px solid var(--dm-line); vertical-align: top; font-family: var(--dm-mono); font-variant-numeric: tabular-nums; }
.dm-table td:first-child, .dm-table th:first-child { font-family: var(--dm-sans); }
.dm-table th { font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; font-weight: 600; color: var(--dm-mute); border-bottom: 1px solid var(--dm-line-2); }
.dm-table td:last-child { text-align: right; white-space: nowrap; }
.dm-row-strong td { font-weight: 600; color: var(--dm-ink); background: #fafafa; }
.dm-row-anchor td { font-weight: 600; color: var(--dm-ink); background: var(--dm-accent-soft); }
.dm-anchor-mark { color: var(--dm-accent); font-weight: 700; margin-left: 4px; }
.dm-row-divider td { border-top: 1px solid var(--dm-ink); padding-top: 9px; }
.dm-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.dm-callout { border: 1px solid var(--dm-line); padding: 14px 16px; }
.dm-callout-h { font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--dm-mute); font-weight: 600; margin-bottom: 8px; }
.dm-status { display: flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 600; color: var(--dm-ink); margin-bottom: 6px; }
.dm-dot { width: 9px; height: 9px; border-radius: 50%; display: inline-block; flex-shrink: 0; }
.dm-dot-green { background: var(--dm-green); }
.dm-dot-amber { background: var(--dm-amber); }
.dm-dot-red { background: var(--dm-red); }
.dm-authority { font-size: 12px; color: var(--dm-ink-2); line-height: 1.55; }
.dm-warning-item { font-size: 12px; color: var(--dm-ink-2); line-height: 1.5; padding: 4px 0; border-bottom: 1px dotted var(--dm-line); }
.dm-warning-item.dm-clean { color: var(--dm-mute); font-style: italic; }
.dm-steps { list-style: none; padding: 0; margin: 0; counter-reset: step; }
.dm-steps li { counter-increment: step; position: relative; padding: 8px 0 8px 32px; font-size: 13px; line-height: 1.55; color: var(--dm-ink-2); border-bottom: 1px solid var(--dm-line); }
.dm-steps li::before { content: counter(step, decimal-leading-zero); position: absolute; left: 0; top: 9px; font-family: var(--dm-mono); font-size: 10px; color: var(--dm-accent); font-weight: 600; }
.dm-footer { margin-top: 32px; padding-top: 14px; border-top: 1px solid var(--dm-line); display: flex; justify-content: space-between; align-items: flex-end; font-size: 10px; color: var(--dm-mute); letter-spacing: 0.05em; }
.dm-footer-right { text-align: right; line-height: 1.6; }
@media print {
  @page { size: A4; margin: 12mm 14mm; }
  html, body { background: #fff !important; -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
  body * { visibility: hidden !important; }
  #deal-memo, #deal-memo * { visibility: visible !important; }
  #deal-memo { position: absolute; top: 0; left: 0; width: 100%; background: #fff !important; padding: 0 !important; }
  .dm-actions, .dm-toast { display: none !important; }
  .dm-paper { border: none !important; padding: 0 !important; max-width: 100% !important; margin: 0 !important; }
  .dm-section { margin-bottom: 18px; page-break-inside: avoid; }
  .dm-row-anchor td { background: #fef3ec !important; }
  .dm-row-strong td { background: #fafafa !important; }
}

/* =====================================================================
   v2.7 — Sales Playbook (sp-) + Executive Briefing (eb-)
   ===================================================================== */

/* Sales Playbook */
.sp-root { font-family: Inter, sans-serif; color: #1a1a1a; max-width: 1280px; margin: 0 auto; }
.sp-tabs { display: flex; gap: 32px; border-bottom: 1px solid #e5e5e5; margin-bottom: 0; }
.sp-tab { background: none; border: none; padding: 14px 0; font-size: 14px; color: #737373; cursor: pointer; border-bottom: 2px solid transparent; margin-bottom: -1px; font-weight: 500; font-family: inherit; }
.sp-tab:hover { color: #1a1a1a; }
.sp-tab.sp-active { color: #1a1a1a; border-bottom-color: #1a1a1a; }
.sp-tab-count { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: #a3a3a3; margin-left: 6px; font-variant-numeric: tabular-nums; }
.sp-pane { padding-top: 28px; display: none; }
.sp-pane.sp-active { display: block; }

/* Objections */
.sp-obj-toolbar { display: flex; gap: 14px; align-items: center; margin-bottom: 24px; flex-wrap: wrap; }
.sp-search { flex: 1; min-width: 240px; border: 1px solid #e5e5e5; padding: 9px 14px; border-radius: 4px; font: inherit; font-size: 14px; background: white; }
.sp-search:focus { outline: none; border-color: #1a1a1a; }
.sp-chips { display: flex; gap: 6px; flex-wrap: wrap; }
.sp-chip { background: white; border: 1px solid #e5e5e5; padding: 6px 12px; border-radius: 999px; font-size: 12px; font-weight: 500; color: #1a1a1a; cursor: pointer; font-family: inherit; }
.sp-chip:hover { border-color: #1a1a1a; }
.sp-chip-active { background: #1a1a1a; color: white; border-color: #1a1a1a; }
.sp-count { font-size: 12px; color: #737373; margin-left: auto; }
.sp-obj-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
@media (max-width: 900px) { .sp-obj-grid { grid-template-columns: 1fr; } }
.sp-obj-card { background: white; border: 1px solid #e5e5e5; border-radius: 4px; padding: 22px; transition: border-color 0.15s, box-shadow 0.15s; }
.sp-obj-card:hover { border-color: #d4d4d4; box-shadow: 0 2px 8px rgba(0,0,0,0.04); }
.sp-obj-tags { display: flex; gap: 6px; align-items: center; margin-bottom: 14px; flex-wrap: wrap; }
.sp-obj-tag { font-size: 10px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: #737373; padding: 2px 8px; background: #fafaf9; border: 1px solid #e5e5e5; border-radius: 2px; }
.sp-obj-diff { margin-left: auto; font-family: 'JetBrains Mono', monospace; font-size: 10px; color: #c4520f; letter-spacing: 0.1em; }
.sp-obj-quote { font-family: Charter, Georgia, serif; font-style: italic; font-size: 17px; line-height: 1.4; color: #1a1a1a; margin: 0 0 18px; padding-left: 14px; border-left: 2px solid #c4520f; }
.sp-obj-label { font-size: 10px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: #c4520f; display: block; margin-bottom: 6px; }
.sp-obj-why { font-size: 13px; color: #404040; margin-bottom: 14px; line-height: 1.55; }
.sp-obj-response { font-size: 14px; color: #1a1a1a; margin-bottom: 14px; line-height: 1.6; }
.sp-obj-anchors { font-size: 12px; }
.sp-obj-anchors ul { margin: 0; padding-left: 18px; color: #404040; line-height: 1.6; }

/* Pitch Narrative */
.sp-pitch-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
@media (max-width: 1100px) { .sp-pitch-grid { grid-template-columns: 1fr; } }
.sp-pitch-card { background: white; border: 1px solid #e5e5e5; border-radius: 4px; padding: 28px; }
.sp-pitch-hero { background: #1a1a1a; color: white; border: 0; grid-column: span 2; }
@media (max-width: 1100px) { .sp-pitch-hero { grid-column: span 1; } }
.sp-pitch-hero h3 { color: white; }
.sp-pitch-hero .sp-pitch-label { color: #c4520f; }
.sp-pitch-head { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 6px; }
.sp-pitch-head h3 { font-family: Charter, Georgia, serif; font-size: 22px; font-weight: 500; margin: 0; }
.sp-pitch-priority { font-size: 9px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; padding: 3px 8px; border-radius: 2px; }
.sp-pitch-primary { background: #c4520f; color: white; }
.sp-pitch-secondary { background: #fbf2ec; color: #c4520f; border: 1px solid #c4520f; }
.sp-pitch-tertiary { background: rgba(255,255,255,0.1); color: rgba(255,255,255,0.6); border: 1px solid rgba(255,255,255,0.2); }
.sp-pitch-hero .sp-pitch-tertiary { background: rgba(255,255,255,0.05); }
.sp-pitch-meta { font-size: 12px; color: #737373; margin-bottom: 22px; }
.sp-pitch-hero .sp-pitch-meta { color: rgba(255,255,255,0.5); }
.sp-pitch-section { margin-bottom: 18px; }
.sp-pitch-label { font-size: 10px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: #737373; display: block; margin-bottom: 8px; }
.sp-pitch-section p { font-size: 14px; line-height: 1.6; color: #404040; margin: 0; }
.sp-pitch-hero .sp-pitch-section p { color: rgba(255,255,255,0.85); }
.sp-pitch-opener { font-family: Charter, Georgia, serif; font-style: italic; font-size: 16px; line-height: 1.5; padding: 14px 18px; border-left: 2px solid #c4520f; background: #fafaf9; margin: 0; color: #1a1a1a; }
.sp-pitch-hero .sp-pitch-opener { background: rgba(255,255,255,0.05); color: white; }
.sp-pitch-reasons { margin: 0; padding-left: 22px; font-size: 14px; line-height: 1.6; color: #404040; }
.sp-pitch-hero .sp-pitch-reasons { color: rgba(255,255,255,0.85); }
.sp-pitch-reasons li { margin-bottom: 8px; }
.sp-pitch-bridge { font-size: 14px; line-height: 1.6; padding: 12px 16px; background: #fbf2ec; border-left: 2px solid #c4520f; }
.sp-pitch-hero .sp-pitch-bridge { background: rgba(196,82,15,0.15); }
.sp-pitch-rebuttals { margin: 0; padding-left: 22px; font-size: 13px; line-height: 1.55; color: #404040; }
.sp-pitch-hero .sp-pitch-rebuttals { color: rgba(255,255,255,0.85); }
.sp-pitch-targets { margin: 0; padding-left: 22px; font-size: 12px; line-height: 1.5; color: #737373; }
.sp-pitch-hero .sp-pitch-targets { color: rgba(255,255,255,0.6); }

/* Buying Committee */
.sp-cmt-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 18px; }
@media (max-width: 1100px) { .sp-cmt-grid { grid-template-columns: 1fr; } }
.sp-cmt-segment { background: white; border: 1px solid #e5e5e5; border-radius: 4px; padding: 20px; }
.sp-cmt-head { display: flex; align-items: center; gap: 10px; margin-bottom: 18px; padding-bottom: 12px; border-bottom: 1px solid #1a1a1a; }
.sp-cmt-head h3 { font-family: Charter, Georgia, serif; font-size: 17px; font-weight: 500; margin: 0; }
.sp-cmt-flag { font-size: 20px; }
.sp-cmt-persona { display: flex; gap: 12px; padding: 14px 0; border-bottom: 1px solid #f0f0f0; }
.sp-cmt-persona:last-child { border-bottom: none; }
.sp-cmt-num { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: #c4520f; font-weight: 600; }
.sp-cmt-body { flex: 1; }
.sp-cmt-title { font-size: 13px; font-weight: 600; color: #1a1a1a; margin-bottom: 6px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.sp-cmt-infl { font-size: 9px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; padding: 2px 6px; border-radius: 2px; }
.sp-cmt-infl-h { background: #c4520f; color: white; }
.sp-cmt-infl-m { background: #fafaf9; color: #737373; border: 1px solid #e5e5e5; }
.sp-cmt-cares { font-size: 12px; color: #404040; line-height: 1.5; margin-bottom: 8px; }
.sp-cmt-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; font-size: 11px; margin-bottom: 8px; }
.sp-cmt-grid-2 ul { margin: 4px 0 0; padding-left: 14px; color: #404040; line-height: 1.45; }
.sp-cmt-label { font-size: 9px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: #737373; }
.sp-cmt-track { font-size: 12px; color: #1a1a1a; padding: 6px 10px; background: #fbf2ec; border-left: 2px solid #c4520f; margin-top: 4px; }

/* Meeting Prep */
.sp-prep { max-width: 900px; }
.sp-prep-controls { display: flex; gap: 14px; align-items: end; flex-wrap: wrap; padding-bottom: 18px; border-bottom: 1px solid #e5e5e5; margin-bottom: 24px; }
.sp-prep-field { display: flex; flex-direction: column; gap: 4px; }
.sp-prep-field label { font-size: 10px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: #737373; }
.sp-prep-field select { font-family: inherit; font-size: 14px; padding: 9px 12px; border: 1px solid #e5e5e5; border-radius: 4px; background: white; min-width: 200px; }
.sp-prep-print { margin-left: auto; background: #1a1a1a; color: white; border: 0; padding: 10px 18px; font-family: inherit; font-size: 12px; font-weight: 500; letter-spacing: 0.04em; cursor: pointer; border-radius: 4px; }
.sp-prep-section { margin-bottom: 28px; }
.sp-prep-section h3 { font-family: Charter, Georgia, serif; font-size: 17px; font-weight: 500; color: #1a1a1a; margin: 0 0 12px; padding-bottom: 8px; border-bottom: 1px solid #e5e5e5; }
.sp-prep-section ul { margin: 0; padding: 0; list-style: none; }
.sp-prep-section li { padding: 8px 0; border-bottom: 1px dotted #e5e5e5; }
.sp-prep-section li:last-child { border-bottom: none; }
.sp-prep-section label { display: flex; gap: 10px; align-items: flex-start; cursor: pointer; font-size: 14px; line-height: 1.5; color: #404040; }
.sp-prep-section input[type="checkbox"] { margin-top: 4px; }

/* Executive Briefing */
.eb-root { font-family: Inter, sans-serif; color: #1a1a1a; padding: 0; }
.eb-hero { background: #1a1a1a; color: #f5f1ea; border-radius: 4px; padding: 48px 48px; display: grid; grid-template-columns: 1.15fr 1px 0.95fr; gap: 48px; margin-bottom: 56px; }
@media (max-width: 900px) { .eb-hero { grid-template-columns: 1fr; gap: 32px; padding: 32px 24px; } .eb-hero-divider { display: none; } }
.eb-hero-eyebrow { font-family: Charter, Georgia, serif; font-style: italic; font-size: 13px; color: #9a958c; letter-spacing: 0.04em; margin-bottom: 18px; }
.eb-hero-eyebrow::before { content: ""; display: inline-block; width: 24px; height: 1px; background: #c4520f; vertical-align: middle; margin-right: 10px; transform: translateY(-2px); }
.eb-hero h1 { font-family: Charter, Georgia, serif; font-weight: 500; font-size: 36px; line-height: 1.1; letter-spacing: -0.015em; color: #f5f1ea; margin: 0 0 22px; max-width: 18ch; }
.eb-hero-context { font-size: 14.5px; line-height: 1.65; color: #cbc6bd; max-width: 52ch; margin: 0 0 28px; }
.eb-hero-context strong { color: #f5f1ea; font-weight: 500; }
.eb-hero-meta { display: flex; gap: 24px; font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: #9a958c; flex-wrap: wrap; }
.eb-hero-meta span { display: inline-flex; align-items: center; gap: 8px; }
.eb-dot { width: 6px; height: 6px; border-radius: 50%; background: #4ade80; }
.eb-hero-divider { background: #c4520f; width: 2px; height: 100%; }
.eb-hero-right { display: grid; grid-template-columns: 1fr 1fr; gap: 28px 36px; align-content: center; }
.eb-stat { display: flex; flex-direction: column; gap: 6px; }
.eb-stat-label { font-size: 10.5px; letter-spacing: 0.16em; text-transform: uppercase; color: #9a958c; font-weight: 500; }
.eb-stat-value { font-family: 'JetBrains Mono', monospace; font-variant-numeric: tabular-nums; font-size: 36px; font-weight: 500; color: #f5f1ea; letter-spacing: -0.02em; line-height: 1; }
.eb-stat-value.eb-accent { color: #e8732a; }
.eb-stat-sub { font-size: 11px; color: #9a958c; }
.eb-section { margin-top: 48px; }
.eb-section-head { display: flex; align-items: baseline; justify-content: space-between; padding-bottom: 14px; border-bottom: 1px solid #1a1a1a; margin-bottom: 24px; }
.eb-section-head h2 { font-family: Charter, Georgia, serif; font-weight: 500; font-size: 22px; letter-spacing: -0.01em; margin: 0; color: #1a1a1a; }
.eb-section-meta { font-size: 11px; color: #737373; letter-spacing: 0.06em; text-transform: uppercase; }
.eb-insights { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
@media (max-width: 1000px) { .eb-insights { grid-template-columns: 1fr; } }
.eb-insight { background: white; border: 1px solid #e5e5e5; border-radius: 3px; padding: 24px; display: flex; flex-direction: column; gap: 12px; transition: transform 0.18s, box-shadow 0.18s, border-color 0.18s; }
.eb-insight:hover { transform: translateY(-2px); box-shadow: 0 12px 28px -16px rgba(26,26,26,0.18); border-color: #d4d4d4; }
.eb-insight-tag { display: inline-flex; align-items: center; gap: 8px; font-size: 10.5px; letter-spacing: 0.16em; text-transform: uppercase; font-weight: 600; color: #737373; }
.eb-insight-tag::before { content: ""; width: 6px; height: 6px; background: #1a1a1a; border-radius: 50%; }
.eb-tag-today::before { background: #c4520f; }
.eb-tag-watch::before { background: #b8860b; }
.eb-tag-decision::before { background: #1a1a1a; }
.eb-insight h3 { font-family: Charter, Georgia, serif; font-weight: 500; font-size: 17.5px; line-height: 1.3; color: #1a1a1a; margin: 0; }
.eb-insight p { font-size: 13.5px; line-height: 1.55; color: #404040; margin: 0; }
.eb-insight-meta { margin-top: auto; padding-top: 12px; border-top: 1px solid #f0f0f0; display: flex; justify-content: space-between; font-size: 11.5px; color: #737373; }
.eb-insight-meta a { color: #1a1a1a; text-decoration: none; font-weight: 500; }
.eb-insight-meta a:hover { color: #c4520f; }
.eb-actions { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
@media (max-width: 1000px) { .eb-actions { grid-template-columns: 1fr 1fr; } }
@media (max-width: 700px) { .eb-actions { grid-template-columns: 1fr; } }
.eb-action { background: white; border: 1px solid #e5e5e5; border-radius: 3px; padding: 24px; text-decoration: none; color: inherit; transition: transform 0.18s, box-shadow 0.18s, border-color 0.18s; display: flex; flex-direction: column; justify-content: space-between; gap: 16px; min-height: 140px; }
.eb-action:hover { transform: translateY(-2px); box-shadow: 0 12px 28px -16px rgba(26,26,26,0.18); border-color: #1a1a1a; }
.eb-action h3 { font-family: Charter, Georgia, serif; font-weight: 500; font-size: 18px; margin: 0 0 6px; color: #1a1a1a; }
.eb-action p { font-size: 12.5px; color: #737373; margin: 0; line-height: 1.5; }
.eb-action-cta { font-size: 12.5px; font-weight: 500; color: #1a1a1a; }
.eb-action:hover .eb-action-cta { color: #c4520f; }

/* =====================================================================
   v2.8 — Tier 1 surfaces (tri- · acc- · lh- · ev- · evo-)
   ===================================================================== */

/* === Common shared === */
.tri-num, .lh-num-val, .acc-stat-num, .evo-date, .ev-card-date { font-family: 'JetBrains Mono', monospace; font-variant-numeric: tabular-nums; }

/* === Triangulation === */
.tri-root { max-width: 1200px; margin: 0 auto; font-family: Inter, sans-serif; color: #1a1a1a; }
.tri-head { margin-bottom: 36px; }
.tri-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: #c4520f; margin-bottom: 14px; }
.tri-title { font-family: Charter, Georgia, serif; font-size: clamp(28px, 3.6vw, 40px); font-weight: 500; line-height: 1.1; letter-spacing: -0.02em; margin: 0 0 16px; }
.tri-lede { font-size: 16px; line-height: 1.6; color: #404040; max-width: 70ch; }
.tri-exhibit { background: white; border: 1px solid #e5e5e5; border-radius: 4px; padding: 40px; margin-bottom: 24px; }
.tri-lens-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-bottom: 40px; }
@media (max-width: 900px) { .tri-lens-grid { grid-template-columns: 1fr; } }
.tri-lens { padding: 24px; border: 1px solid #e5e5e5; border-radius: 4px; background: #fafaf9; }
.tri-lens-mark { font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 600; letter-spacing: 0.16em; color: #737373; margin-bottom: 8px; }
.tri-lens-name { font-family: Charter, Georgia, serif; font-size: 18px; font-weight: 500; margin-bottom: 16px; }
.tri-lens-value { font-family: 'JetBrains Mono', monospace; font-variant-numeric: tabular-nums; font-size: 48px; font-weight: 500; color: #1a1a1a; letter-spacing: -0.025em; line-height: 1; margin-bottom: 14px; }
.tri-lens-value span { font-size: 14px; color: #737373; font-weight: 400; letter-spacing: 0; margin-left: 6px; }
.tri-lens-source { font-size: 12px; line-height: 1.55; color: #404040; margin-bottom: 12px; padding-bottom: 12px; border-bottom: 1px dotted #e5e5e5; }
.tri-lens-conf { font-size: 11px; color: #737373; display: flex; align-items: center; gap: 8px; }
.tri-conf-dot { width: 8px; height: 8px; border-radius: 50%; }
.tri-conf-high { background: #2d6a4f; }
.tri-conf-med { background: #b8860b; }
.tri-converge { background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 100%); color: #fafafa; padding: 32px; border-radius: 4px; margin-bottom: 32px; }
.tri-converge-head { font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 600; letter-spacing: 0.18em; color: #c4520f; margin-bottom: 24px; }
.tri-converge-band { display: grid; grid-template-columns: 60px 1fr 60px; gap: 16px; align-items: center; margin-bottom: 24px; }
.tri-converge-low, .tri-converge-high { font-family: 'JetBrains Mono', monospace; font-size: 18px; font-weight: 500; color: #cbc6bd; text-align: center; }
.tri-converge-bar { position: relative; height: 60px; }
.tri-converge-bar::before { content: ''; position: absolute; top: 28px; left: 0; right: 0; height: 3px; background: #c4520f; }
.tri-converge-mid { position: absolute; top: 0; left: 50%; transform: translateX(-50%); font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: #9a958c; white-space: nowrap; }
.tri-converge-mark { position: absolute; top: 20px; width: 1px; height: 18px; background: #cbc6bd; }
.tri-converge-rec { position: absolute; top: 18px; width: 3px; height: 22px; background: #c4520f; transform: translateX(-50%); border-radius: 2px; box-shadow: 0 0 8px rgba(196,82,15,0.6); }
.tri-converge-rec-label { position: absolute; top: 44px; transform: translateX(-50%); font-size: 12px; color: #c4520f; font-weight: 600; white-space: nowrap; text-align: center; }
.tri-rec-sub { font-size: 10px; color: #9a958c; font-weight: 400; letter-spacing: 0.04em; }
.tri-converge-foot { font-size: 13px; line-height: 1.65; color: #cbc6bd; padding-top: 24px; border-top: 1px solid rgba(255,255,255,0.1); }
.tri-converge-foot strong { color: #fafafa; }
.tri-converge-foot .tri-num { color: #fafafa; }
.tri-rationale { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
@media (max-width: 900px) { .tri-rationale { grid-template-columns: 1fr; } }
.tri-rationale-section h3 { font-family: Charter, Georgia, serif; font-size: 16px; font-weight: 500; margin: 0 0 10px; padding-bottom: 8px; border-bottom: 1px solid #1a1a1a; }
.tri-rationale-section p { font-size: 13.5px; line-height: 1.6; color: #404040; margin: 0; }
.tri-foot { font-size: 12px; color: #737373; line-height: 1.5; padding-top: 24px; border-top: 1px solid #e5e5e5; }

/* === EU Target Accounts === */
.acc-root { font-family: Inter, sans-serif; color: #1a1a1a; }
.acc-head { margin-bottom: 28px; }
.acc-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: #c4520f; margin-bottom: 14px; }
.acc-title { font-family: Charter, Georgia, serif; font-size: clamp(26px, 3.2vw, 36px); font-weight: 500; line-height: 1.1; margin: 0 0 14px; }
.acc-lede { font-size: 15px; line-height: 1.6; color: #404040; max-width: 75ch; }
.acc-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 28px; }
@media (max-width: 900px) { .acc-stats { grid-template-columns: repeat(2, 1fr); } }
.acc-stat { background: white; border: 1px solid #e5e5e5; padding: 18px; border-radius: 4px; }
.acc-stat-primary { background: #1a1a1a; color: #fafafa; border-color: #1a1a1a; }
.acc-stat-label { font-size: 10px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #737373; margin-bottom: 6px; }
.acc-stat-primary .acc-stat-label { color: #cbc6bd; }
.acc-stat-num { font-family: 'JetBrains Mono', monospace; font-variant-numeric: tabular-nums; font-size: 28px; font-weight: 500; letter-spacing: -0.02em; line-height: 1; color: #1a1a1a; }
.acc-stat-primary .acc-stat-num { color: #c4520f; }
.acc-stat-sub { font-size: 11.5px; color: #737373; margin-top: 6px; }
.acc-stat-primary .acc-stat-sub { color: #9a958c; }
.acc-toolbar { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; padding: 16px; background: white; border: 1px solid #e5e5e5; margin-bottom: 16px; border-radius: 4px; }
.acc-search { flex: 1; min-width: 240px; border: 1px solid #e5e5e5; padding: 8px 12px; border-radius: 4px; font: inherit; font-size: 14px; background: #fafaf9; }
.acc-chips { display: flex; gap: 4px; flex-wrap: wrap; }
.acc-chip { background: white; border: 1px solid #e5e5e5; padding: 6px 10px; border-radius: 4px; font: inherit; font-size: 11px; font-weight: 500; color: #404040; cursor: pointer; }
.acc-chip:hover { border-color: #1a1a1a; }
.acc-chip-active { background: #1a1a1a; color: white; border-color: #1a1a1a; }
.acc-sort { font: inherit; font-size: 12px; padding: 7px 10px; border: 1px solid #e5e5e5; border-radius: 4px; background: white; }
.acc-count { font-size: 12px; color: #737373; margin-left: auto; }
.acc-list { background: white; border: 1px solid #e5e5e5; border-radius: 4px; overflow: hidden; }
.acc-row { display: grid; grid-template-columns: 2.5fr 1fr 1.2fr 1.2fr 1fr 0.6fr; padding: 12px 16px; border-bottom: 1px solid #f0f0f0; font-size: 13px; align-items: center; }
.acc-row:last-child { border-bottom: none; }
.acc-row-head { background: #fafaf9; border-bottom: 1px solid #1a1a1a; font-size: 10px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: #737373; }
.acc-row:not(.acc-row-head):hover { background: #fafaf9; }
.acc-name { font-weight: 500; color: #1a1a1a; }
.acc-meta { font-size: 11.5px; color: #737373; margin-top: 2px; }
.acc-cell-num { font-family: 'JetBrains Mono', monospace; font-variant-numeric: tabular-nums; text-align: right; }
.acc-cell-num strong { color: #c4520f; }
.acc-sub { color: #737373; font-size: 11px; }
.acc-cell-deploy { font-size: 11.5px; color: #404040; }
.acc-tier-badge { display: inline-block; font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 600; padding: 3px 7px; border-radius: 3px; letter-spacing: 0.04em; }
.acc-tier-1 .acc-tier-badge { background: #c4520f; color: white; }
.acc-tier-2 .acc-tier-badge { background: #fbf2ec; color: #c4520f; border: 1px solid #c4520f; }
.acc-tier-3 .acc-tier-badge { background: #f0f0f0; color: #737373; }

/* === Lighthouse === */
.lh-root { max-width: 1280px; margin: 0 auto; font-family: Inter, sans-serif; color: #1a1a1a; }
.lh-head { margin-bottom: 36px; }
.lh-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: #c4520f; margin-bottom: 14px; }
.lh-title { font-family: Charter, Georgia, serif; font-size: clamp(28px, 3.6vw, 40px); font-weight: 500; line-height: 1.1; margin: 0 0 16px; letter-spacing: -0.02em; }
.lh-lede { font-size: 16px; line-height: 1.6; color: #404040; max-width: 75ch; }
.lh-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
@media (max-width: 900px) { .lh-grid { grid-template-columns: 1fr; } }
.lh-card { background: white; border: 1px solid #e5e5e5; padding: 28px; border-radius: 4px; }
.lh-card-eyebrow { font-size: 10px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: #737373; margin-bottom: 14px; }
.lh-card-numbers { grid-column: span 2; }
@media (max-width: 900px) { .lh-card-numbers { grid-column: span 1; } }
.lh-num-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
@media (max-width: 900px) { .lh-num-grid { grid-template-columns: repeat(2, 1fr); } }
.lh-num { padding: 16px; background: #fafaf9; border-radius: 4px; }
.lh-num-label { font-size: 10px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: #737373; margin-bottom: 6px; }
.lh-num-val { font-family: 'JetBrains Mono', monospace; font-variant-numeric: tabular-nums; font-size: 32px; font-weight: 500; letter-spacing: -0.02em; line-height: 1; color: #1a1a1a; }
.lh-num-sub { font-size: 11px; color: #737373; margin-top: 5px; }
.lh-commits { margin: 0; padding-left: 22px; font-size: 13.5px; line-height: 1.6; color: #404040; }
.lh-commits li { margin-bottom: 10px; }
.lh-commits li strong { color: #1a1a1a; font-weight: 600; }
.lh-authority, .lh-math { width: 100%; border-collapse: collapse; font-size: 13px; }
.lh-authority th, .lh-authority td, .lh-math th, .lh-math td { text-align: left; padding: 8px 10px; border-bottom: 1px solid #f0f0f0; }
.lh-authority th, .lh-math th { font-size: 10px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: #737373; border-bottom: 1px solid #1a1a1a; }
.lh-num-cell { font-family: 'JetBrains Mono', monospace; font-variant-numeric: tabular-nums; text-align: right; }
.lh-row-floor { background: #fbf2ec; }
.lh-row-floor td { font-weight: 600; }
.lh-math-foot { font-size: 12px; color: #737373; line-height: 1.6; margin-top: 14px; padding-top: 14px; border-top: 1px solid #e5e5e5; }
.lh-foot { font-size: 12px; color: #737373; line-height: 1.5; padding-top: 24px; border-top: 1px solid #e5e5e5; margin-top: 28px; }

/* === Evidence === */
.ev-root { max-width: 1200px; margin: 0 auto; font-family: Inter, sans-serif; color: #1a1a1a; }
.ev-head { margin-bottom: 28px; }
.ev-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: #c4520f; margin-bottom: 14px; }
.ev-title { font-family: Charter, Georgia, serif; font-size: clamp(26px, 3.2vw, 36px); font-weight: 500; line-height: 1.1; margin: 0 0 14px; }
.ev-lede { font-size: 15px; line-height: 1.6; color: #404040; max-width: 75ch; }
.ev-lede .ev-verified { color: #2d6a4f; font-weight: 600; }
.ev-lede .ev-estimate { color: #b8860b; font-weight: 600; }
.ev-lede .ev-signal { color: #737373; font-weight: 600; }
.ev-toolbar { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; padding: 14px; background: white; border: 1px solid #e5e5e5; margin-bottom: 20px; border-radius: 4px; }
.ev-search { flex: 1; min-width: 220px; border: 1px solid #e5e5e5; padding: 8px 12px; font: inherit; font-size: 14px; border-radius: 4px; background: #fafaf9; }
.ev-chips { display: flex; gap: 4px; flex-wrap: wrap; }
.ev-chip { background: white; border: 1px solid #e5e5e5; padding: 6px 10px; border-radius: 4px; font: inherit; font-size: 11px; font-weight: 500; color: #404040; cursor: pointer; }
.ev-chip:hover { border-color: #1a1a1a; }
.ev-chip-active { background: #1a1a1a; color: white; border-color: #1a1a1a; }
.ev-list { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 900px) { .ev-list { grid-template-columns: 1fr; } }
.ev-card { background: white; border: 1px solid #e5e5e5; padding: 18px; border-radius: 4px; transition: border-color 0.15s; }
.ev-card:hover { border-color: #1a1a1a; }
.ev-card-head { display: flex; gap: 10px; align-items: center; margin-bottom: 10px; flex-wrap: wrap; }
.ev-card-cat { font-size: 10px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: #737373; padding: 2px 7px; background: #fafaf9; border: 1px solid #e5e5e5; border-radius: 2px; }
.ev-card-status { font-size: 10px; font-weight: 600; letter-spacing: 0.06em; }
.ev-status-verified { color: #2d6a4f; }
.ev-status-estimate { color: #b8860b; }
.ev-status-signal { color: #737373; }
.ev-card-date { font-size: 10.5px; color: #737373; margin-left: auto; }
.ev-card-claim { font-size: 14px; font-weight: 500; color: #1a1a1a; line-height: 1.5; margin-bottom: 8px; }
.ev-card-source { font-size: 11.5px; color: #737373; line-height: 1.5; padding-top: 8px; border-top: 1px dotted #e5e5e5; }
.ev-foot { font-size: 12px; color: #737373; line-height: 1.5; padding-top: 24px; border-top: 1px solid #e5e5e5; margin-top: 28px; }

/* === Evolution === */
.evo-root { max-width: 1000px; margin: 0 auto; font-family: Inter, sans-serif; color: #1a1a1a; }
.evo-head { margin-bottom: 36px; }
.evo-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: #c4520f; margin-bottom: 14px; }
.evo-title { font-family: Charter, Georgia, serif; font-size: clamp(26px, 3.2vw, 36px); font-weight: 500; line-height: 1.1; margin: 0 0 14px; }
.evo-lede { font-size: 15px; line-height: 1.6; color: #404040; max-width: 70ch; }
.evo-timeline { padding: 0; }
.evo-milestone { display: grid; grid-template-columns: 60px 1fr; gap: 24px; padding-bottom: 36px; }
.evo-marker { display: flex; flex-direction: column; align-items: center; }
.evo-marker-dot { width: 16px; height: 16px; border-radius: 50%; background: white; border: 3px solid #e5e5e5; flex-shrink: 0; margin-top: 6px; }
.evo-complete .evo-marker-dot { background: #2d6a4f; border-color: #2d6a4f; }
.evo-active .evo-marker-dot { background: #c4520f; border-color: #c4520f; box-shadow: 0 0 0 4px rgba(196,82,15,0.2); }
.evo-pending .evo-marker-dot { background: white; border-color: #cbc6bd; }
.evo-marker-line { flex: 1; width: 2px; background: #e5e5e5; margin-top: 8px; min-height: 60px; }
.evo-active + .evo-pending .evo-marker-line, .evo-pending .evo-marker-line { background: repeating-linear-gradient(180deg, #e5e5e5 0 4px, transparent 4px 8px); }
.evo-body { background: white; border: 1px solid #e5e5e5; padding: 22px; border-radius: 4px; }
.evo-active .evo-body { border-color: #c4520f; }
.evo-meta { display: flex; gap: 10px; align-items: center; margin-bottom: 12px; flex-wrap: wrap; font-size: 11px; }
.evo-gate { font-family: 'JetBrains Mono', monospace; font-weight: 600; color: #c4520f; letter-spacing: 0.06em; }
.evo-phase { color: #737373; font-weight: 500; }
.evo-date { color: #1a1a1a; font-weight: 500; }
.evo-status { margin-left: auto; font-size: 10px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; padding: 3px 8px; border-radius: 2px; }
.evo-complete .evo-status { background: #d4ead8; color: #2d6a4f; }
.evo-active .evo-status { background: #c4520f; color: white; }
.evo-pending .evo-status { background: #f0f0f0; color: #737373; }
.evo-title-inner { font-family: Charter, Georgia, serif; font-size: 18px; font-weight: 500; margin: 0 0 10px; }
.evo-text { font-size: 13.5px; line-height: 1.65; color: #404040; margin: 0 0 14px; }
.evo-artifacts { display: flex; gap: 6px; flex-wrap: wrap; padding-top: 12px; border-top: 1px dotted #e5e5e5; }
.evo-artifacts-label { font-size: 10px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: #737373; margin-right: 4px; align-self: center; }
.evo-artifact { font-family: 'JetBrains Mono', monospace; font-size: 10px; color: #1a1a1a; padding: 3px 7px; background: #fafaf9; border: 1px solid #e5e5e5; border-radius: 2px; }
.evo-foot { font-size: 12px; color: #737373; line-height: 1.5; padding-top: 24px; border-top: 1px solid #e5e5e5; }

/* =====================================================================
   v2.9 — Phase A (gtm- · ref- · cs-) + Onboarding (onboard-)
   ===================================================================== */

/* === GTM Maturity === */
.gtm-root { max-width: 1100px; margin: 0 auto; font-family: Inter, sans-serif; color: #1a1a1a; }
.gtm-head { margin-bottom: 36px; }
.gtm-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: #c4520f; margin-bottom: 14px; }
.gtm-title { font-family: Charter, Georgia, serif; font-size: clamp(28px, 3.6vw, 40px); font-weight: 500; line-height: 1.1; margin: 0 0 16px; letter-spacing: -0.02em; }
.gtm-lede { font-size: 16px; line-height: 1.6; color: #404040; max-width: 75ch; }
.gtm-thesis { background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 100%); color: #fafafa; padding: 36px; border-radius: 4px; margin-bottom: 36px; }
.gtm-thesis-mark { font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 600; letter-spacing: 0.18em; color: #c4520f; margin-bottom: 16px; }
.gtm-thesis h2 { font-family: Charter, Georgia, serif; font-style: italic; font-size: 28px; font-weight: 500; line-height: 1.25; margin: 0 0 18px; color: #fafafa; }
.gtm-thesis p { font-size: 15px; line-height: 1.65; color: #cbc6bd; margin: 0; }
.gtm-thesis strong { color: #fafafa; }
.gtm-cases { margin-bottom: 36px; }
.gtm-cases-head { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: #737373; padding-bottom: 10px; border-bottom: 1px solid #1a1a1a; margin-bottom: 18px; }
.gtm-case { background: white; border: 1px solid #e5e5e5; padding: 24px; border-radius: 4px; margin-bottom: 14px; }
.gtm-case-head { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; margin-bottom: 16px; padding-bottom: 12px; border-bottom: 1px dotted #e5e5e5; flex-wrap: wrap; }
.gtm-case-co { font-family: Charter, Georgia, serif; font-size: 22px; font-weight: 600; }
.gtm-case-yr { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: #737373; letter-spacing: 0.06em; text-transform: uppercase; }
.gtm-case-body { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 18px; }
@media (max-width: 900px) { .gtm-case-body { grid-template-columns: 1fr; } }
.gtm-case-section p { font-size: 13.5px; line-height: 1.55; color: #404040; margin: 0; }
.gtm-case-label { font-size: 9.5px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: #737373; display: block; margin-bottom: 6px; }
.gtm-case-relevance { background: #fbf2ec; padding: 14px; margin: 0 -14px -14px; border-left: 2px solid #c4520f; }
.gtm-case-relevance .gtm-case-label { color: #c4520f; }
.gtm-counter { background: white; border: 1px solid #e5e5e5; padding: 28px; border-radius: 4px; margin-bottom: 32px; }
.gtm-counter h2 { font-family: Charter, Georgia, serif; font-size: 22px; font-weight: 500; margin: 0 0 18px; padding-bottom: 12px; border-bottom: 1px solid #1a1a1a; }
.gtm-counter-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
@media (max-width: 900px) { .gtm-counter-grid { grid-template-columns: 1fr; } }
.gtm-counter-card { padding: 16px; background: #fafaf9; border-left: 3px solid #b91c1c; }
.gtm-counter-label { font-size: 11px; font-weight: 600; letter-spacing: 0.04em; color: #b91c1c; margin-bottom: 10px; }
.gtm-counter-card p { font-size: 13px; line-height: 1.55; color: #404040; margin: 0; }
.gtm-conclusion { background: white; border: 1px solid #e5e5e5; padding: 28px; border-radius: 4px; margin-bottom: 24px; }
.gtm-conclusion h2 { font-family: Charter, Georgia, serif; font-size: 22px; font-weight: 500; margin: 0 0 14px; }
.gtm-conclusion p { font-size: 14.5px; line-height: 1.65; color: #404040; margin: 0 0 14px; }
.gtm-conclusion em { font-family: Charter, Georgia, serif; color: #1a1a1a; }
.gtm-conclusion-cta { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 18px; padding-top: 18px; border-top: 1px dotted #e5e5e5; }
.gtm-cta-link, .ref-cta-link, .cs-cta-link { font-size: 13px; color: #c4520f; text-decoration: none; font-weight: 500; padding: 6px 12px; border: 1px solid #c4520f; border-radius: 4px; transition: background 0.15s; }
.gtm-cta-link:hover, .ref-cta-link:hover, .cs-cta-link:hover { background: #c4520f; color: white; }
.gtm-foot, .ref-foot, .cs-foot { font-size: 12px; color: #737373; line-height: 1.5; padding-top: 24px; border-top: 1px solid #e5e5e5; }

/* === Y1 Reference Strategy === */
.ref-root { max-width: 1100px; margin: 0 auto; font-family: Inter, sans-serif; color: #1a1a1a; }
.ref-head { margin-bottom: 32px; }
.ref-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: #c4520f; margin-bottom: 14px; }
.ref-title { font-family: Charter, Georgia, serif; font-size: clamp(28px, 3.6vw, 40px); font-weight: 500; line-height: 1.1; margin: 0 0 16px; letter-spacing: -0.02em; }
.ref-lede { font-size: 15.5px; line-height: 1.6; color: #404040; max-width: 75ch; }
.ref-targets { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-bottom: 36px; }
@media (max-width: 900px) { .ref-targets { grid-template-columns: 1fr; } }
.ref-target-card { background: white; border: 1px solid #e5e5e5; padding: 24px; border-radius: 4px; }
.ref-target-primary { background: #1a1a1a; color: #fafafa; border-color: #1a1a1a; }
.ref-target-label { font-size: 10.5px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #737373; margin-bottom: 10px; }
.ref-target-primary .ref-target-label { color: #cbc6bd; }
.ref-target-num { font-family: 'JetBrains Mono', monospace; font-variant-numeric: tabular-nums; font-size: 36px; font-weight: 500; letter-spacing: -0.02em; line-height: 1; color: #1a1a1a; margin-bottom: 8px; }
.ref-target-primary .ref-target-num { color: #c4520f; }
.ref-target-sub { font-size: 12px; line-height: 1.5; color: #737373; }
.ref-target-primary .ref-target-sub { color: #cbc6bd; }
.ref-phases h2 { font-family: Charter, Georgia, serif; font-size: 22px; font-weight: 500; margin: 0 0 18px; padding-bottom: 10px; border-bottom: 1px solid #1a1a1a; }
.ref-phase { display: grid; grid-template-columns: 70px 1fr; gap: 16px; margin-bottom: 18px; }
.ref-phase-marker { display: flex; justify-content: center; padding-top: 24px; }
.ref-phase-num { font-family: 'JetBrains Mono', monospace; font-size: 18px; font-weight: 600; color: #c4520f; padding: 12px 0; border: 2px solid #c4520f; border-radius: 50%; width: 56px; height: 56px; display: flex; align-items: center; justify-content: center; background: white; }
.ref-phase-body { background: white; border: 1px solid #e5e5e5; padding: 20px 24px; border-radius: 4px; }
.ref-phase-head { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; margin-bottom: 14px; padding-bottom: 12px; border-bottom: 1px dotted #e5e5e5; flex-wrap: wrap; }
.ref-phase-name { font-family: Charter, Georgia, serif; font-size: 18px; font-weight: 500; }
.ref-phase-period { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: #737373; letter-spacing: 0.06em; text-transform: uppercase; }
.ref-phase-deliverables { margin: 0 0 14px; padding-left: 20px; font-size: 13.5px; line-height: 1.6; color: #404040; }
.ref-phase-deliverables li { margin-bottom: 5px; }
.ref-phase-meta { padding-top: 14px; border-top: 1px dotted #e5e5e5; font-size: 12.5px; line-height: 1.55; }
.ref-phase-kpi { color: #404040; margin-bottom: 6px; }
.ref-phase-risk { color: #b8860b; }
.ref-phase-label { font-weight: 600; color: #1a1a1a; }
.ref-cta { background: white; border: 1px solid #e5e5e5; padding: 24px 28px; border-radius: 4px; margin: 28px 0 24px; }
.ref-cta h3 { font-family: Charter, Georgia, serif; font-size: 18px; font-weight: 500; margin: 0 0 12px; }
.ref-cta p { font-size: 14px; line-height: 1.65; color: #404040; margin: 0 0 14px; }
.ref-cta-buttons { display: flex; gap: 12px; flex-wrap: wrap; padding-top: 14px; border-top: 1px dotted #e5e5e5; }

/* === Customer Success Playbook === */
.cs-root { max-width: 1100px; margin: 0 auto; font-family: Inter, sans-serif; color: #1a1a1a; }
.cs-head { margin-bottom: 32px; }
.cs-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: #c4520f; margin-bottom: 14px; }
.cs-title { font-family: Charter, Georgia, serif; font-size: clamp(28px, 3.6vw, 40px); font-weight: 500; line-height: 1.1; margin: 0 0 16px; letter-spacing: -0.02em; }
.cs-lede { font-size: 15.5px; line-height: 1.6; color: #404040; max-width: 75ch; }
.cs-motion { background: white; border: 1px solid #e5e5e5; border-radius: 4px; margin-bottom: 18px; }
.cs-motion-head { display: flex; align-items: center; gap: 14px; padding: 18px 24px; background: #fafaf9; border-bottom: 1px solid #e5e5e5; flex-wrap: wrap; }
.cs-motion-num { font-family: 'JetBrains Mono', monospace; font-size: 14px; font-weight: 600; color: #c4520f; }
.cs-motion-name { font-family: Charter, Georgia, serif; font-size: 18px; font-weight: 500; flex: 1; }
.cs-motion-period { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: #737373; letter-spacing: 0.06em; text-transform: uppercase; }
.cs-motion-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 0; }
@media (max-width: 900px) { .cs-motion-grid { grid-template-columns: 1fr; } }
.cs-motion-section { padding: 20px 24px; border-right: 1px solid #f0f0f0; }
.cs-motion-section:last-child { border-right: none; }
@media (max-width: 900px) { .cs-motion-section { border-right: none; border-bottom: 1px solid #f0f0f0; } .cs-motion-section:last-child { border-bottom: none; } }
.cs-motion-label { font-size: 10px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: #737373; display: block; margin-bottom: 10px; }
.cs-motion-section ul { margin: 0; padding-left: 18px; font-size: 13px; line-height: 1.6; color: #404040; }
.cs-motion-section li { margin-bottom: 5px; }
.cs-motion-red { background: #fef9f5; }
.cs-motion-red .cs-motion-label { color: #b91c1c; }
.cs-motion-red ul { color: #1a1a1a; }
.cs-renewal { background: white; border: 1px solid #e5e5e5; padding: 28px; border-radius: 4px; margin: 28px 0 24px; }
.cs-renewal h2 { font-family: Charter, Georgia, serif; font-size: 22px; font-weight: 500; margin: 0 0 14px; }
.cs-renewal p { font-size: 14px; line-height: 1.65; color: #404040; margin: 0 0 14px; }
.cs-renewal strong { color: #c4520f; }
.cs-renewal-cta { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 18px; padding-top: 18px; border-top: 1px dotted #e5e5e5; }

/* === Onboarding === */
.onboard-overlay { position: fixed; inset: 0; background: rgba(10, 10, 10, 0.65); z-index: 99999; display: flex; align-items: center; justify-content: center; padding: 20px; font-family: Inter, sans-serif; animation: onboard-fade 0.3s; }
.onboard-overlay.onboard-closing { opacity: 0; transition: opacity 0.25s; }
@keyframes onboard-fade { from { opacity: 0; } to { opacity: 1; } }
.onboard-modal { background: white; max-width: 640px; width: 100%; padding: 48px 48px 36px; border-radius: 4px; position: relative; }
.onboard-mark { display: flex; align-items: center; justify-content: center; margin-bottom: 18px; }
.onboard-mark span { width: 42px; height: 42px; background: #1a1a1a; color: white; display: flex; align-items: center; justify-content: center; font-family: Charter, Georgia, serif; font-size: 18px; font-weight: 600; border-radius: 4px; }
.onboard-step-indicator { display: flex; justify-content: center; gap: 8px; margin-bottom: 28px; }
.onboard-dot { width: 8px; height: 8px; border-radius: 50%; background: #e5e5e5; transition: background 0.2s; }
.onboard-dot-active { background: #c4520f; }
.onboard-pane { display: none; }
.onboard-pane-active { display: block; animation: onboard-slide 0.3s; }
@keyframes onboard-slide { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
.onboard-modal h2 { font-family: Charter, Georgia, serif; font-size: 26px; font-weight: 500; line-height: 1.2; margin: 0 0 14px; text-align: center; letter-spacing: -0.015em; }
.onboard-modal p { font-size: 15px; line-height: 1.6; color: #404040; text-align: center; margin: 0 0 24px; }
.onboard-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-bottom: 24px; }
.onboard-stat { background: #fafaf9; padding: 16px 12px; border-radius: 4px; text-align: center; }
.onboard-stat span { font-family: 'JetBrains Mono', monospace; font-size: 28px; font-weight: 500; color: #c4520f; display: block; margin-bottom: 4px; line-height: 1; }
.onboard-stat strong { font-size: 13px; font-weight: 600; display: block; color: #1a1a1a; }
.onboard-stat small { font-size: 11px; color: #737373; }
.onboard-roles { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 16px; }
@media (max-width: 600px) { .onboard-roles { grid-template-columns: 1fr; } }
.onboard-role { background: white; border: 1px solid #e5e5e5; padding: 22px 20px; border-radius: 4px; text-align: left; cursor: pointer; font-family: inherit; transition: border-color 0.15s, background 0.15s; }
.onboard-role:hover { border-color: #c4520f; background: #fbf2ec; }
.onboard-role-name { font-family: Charter, Georgia, serif; font-size: 17px; font-weight: 500; margin-bottom: 8px; color: #1a1a1a; }
.onboard-role p { text-align: left; font-size: 13px; margin: 0; color: #737373; line-height: 1.5; }
.onboard-tips { background: #fafaf9; padding: 18px 20px; border-radius: 4px; margin-bottom: 20px; }
.onboard-tip { display: flex; gap: 14px; padding: 10px 0; border-bottom: 1px dotted #e5e5e5; font-size: 13px; }
.onboard-tip:last-child { border-bottom: none; }
.onboard-tip strong { color: #1a1a1a; min-width: 130px; }
.onboard-tip span { color: #737373; flex: 1; }
.onboard-modal kbd { font-family: 'JetBrains Mono', monospace; font-size: 11px; padding: 2px 6px; background: white; border: 1px solid #e5e5e5; border-radius: 3px; color: #1a1a1a; }
.onboard-next, .onboard-finish { display: block; margin: 0 auto; background: #1a1a1a; color: white; border: 0; padding: 12px 24px; font-family: inherit; font-size: 13px; font-weight: 500; letter-spacing: 0.04em; cursor: pointer; border-radius: 4px; transition: background 0.15s; }
.onboard-next:hover, .onboard-finish:hover { background: #c4520f; }

/* === Chat navigation link styling === */
.chat-nav-link { display: inline-block; margin-top: 6px; padding: 5px 10px; background: #c4520f; color: white !important; text-decoration: none; border-radius: 3px; font-size: 12px; font-weight: 500; border-bottom: 0 !important; }
.chat-nav-link:hover { background: #1a1a1a; }


/* =====================================================================
   v2.10 — Pricing world-class (ue- · arr- · vb- · cp-)
   ===================================================================== */

/* === Unit Economics === */
.ue-root { max-width: 1200px; margin: 0 auto; font-family: Inter, sans-serif; color: #1a1a1a; }
.ue-head { margin-bottom: 28px; }
.ue-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: #c4520f; margin-bottom: 14px; }
.ue-title { font-family: Charter, Georgia, serif; font-size: clamp(28px, 3.6vw, 40px); font-weight: 500; line-height: 1.1; margin: 0 0 16px; letter-spacing: -0.02em; }
.ue-lede { font-size: 15px; line-height: 1.6; color: #404040; max-width: 75ch; }
.ue-controls { display: flex; gap: 16px; align-items: end; padding: 18px 24px; background: white; border: 1px solid #e5e5e5; border-radius: 4px; margin-bottom: 24px; flex-wrap: wrap; }
.ue-control { display: flex; flex-direction: column; gap: 6px; }
.ue-control label { font-size: 10px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #737373; }
.ue-seg { display: flex; border: 1px solid #e5e5e5; border-radius: 4px; overflow: hidden; }
.ue-seg button { background: white; border: 0; border-right: 1px solid #e5e5e5; padding: 8px 14px; font-family: inherit; font-size: 13px; font-weight: 500; color: #404040; cursor: pointer; transition: all 0.15s; }
.ue-seg button:last-child { border-right: 0; }
.ue-seg button[data-active] { background: #1a1a1a; color: white; font-weight: 600; }
.ue-seats { font-family: 'JetBrains Mono', monospace; font-size: 14px; padding: 8px 12px; border: 1px solid #e5e5e5; border-radius: 4px; width: 130px; }
.ue-hero { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 28px; }
@media (max-width: 900px) { .ue-hero { grid-template-columns: repeat(2, 1fr); } }
.ue-hero-block { background: white; border: 1px solid #e5e5e5; padding: 22px; border-radius: 4px; }
.ue-hero-primary { background: #1a1a1a; color: #fafafa; border-color: #1a1a1a; }
.ue-hero-label { font-size: 10.5px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #737373; margin-bottom: 8px; }
.ue-hero-primary .ue-hero-label { color: #cbc6bd; }
.ue-hero-val { font-family: 'JetBrains Mono', monospace; font-variant-numeric: tabular-nums; font-size: 32px; font-weight: 500; letter-spacing: -0.02em; line-height: 1; color: #1a1a1a; margin-bottom: 6px; }
.ue-hero-primary .ue-hero-val { color: #c4520f; }
.ue-hero-neg { color: #b91c1c; }
.ue-hero-sub { font-size: 11.5px; color: #737373; }
.ue-hero-primary .ue-hero-sub { color: #cbc6bd; }
.ue-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 18px; margin-bottom: 32px; }
@media (max-width: 1100px) { .ue-grid { grid-template-columns: 1fr; } }
.ue-card { background: white; border: 1px solid #e5e5e5; padding: 22px; border-radius: 4px; }
.ue-card h3 { font-family: Charter, Georgia, serif; font-size: 17px; font-weight: 500; margin: 0 0 4px; }
.ue-card-sub { font-size: 12px; color: #737373; margin-bottom: 14px; padding-bottom: 12px; border-bottom: 1px dotted #e5e5e5; }
.ue-cost-table, .ue-sens-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.ue-cost-table th, .ue-cost-table td { text-align: left; padding: 7px 8px; border-bottom: 1px solid #f0f0f0; }
.ue-cost-table th { font-size: 10px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: #737373; border-bottom: 1px solid #1a1a1a; }
.ue-num { font-family: 'JetBrains Mono', monospace; font-variant-numeric: tabular-nums; text-align: right; }
.ue-row-total td { font-weight: 600; background: #fafaf9; border-bottom: none; border-top: 1px solid #1a1a1a; }
.ue-cost-note { font-size: 12px; color: #737373; line-height: 1.55; margin-top: 12px; padding-top: 12px; border-top: 1px dotted #e5e5e5; }
.ue-deal-grid { display: flex; flex-direction: column; gap: 6px; margin-bottom: 14px; }
.ue-deal-row { display: flex; justify-content: space-between; padding: 6px 0; border-bottom: 1px dotted #f0f0f0; font-size: 13px; }
.ue-deal-discount { color: #b91c1c; }
.ue-deal-cogs { color: #b91c1c; }
.ue-deal-strong { font-weight: 600; background: #fafaf9; padding: 8px 6px; border-bottom: none; margin: 4px -6px; }
.ue-deal-final { background: #fbf2ec; color: #c4520f; }
.ue-deal-meta { display: flex; justify-content: space-between; padding-top: 10px; border-top: 1px dotted #e5e5e5; font-size: 12px; color: #737373; }
.ue-deal-meta strong { color: #1a1a1a; font-family: 'JetBrains Mono', monospace; }
.ue-ltv-bars { display: flex; flex-direction: column; gap: 14px; margin-bottom: 18px; }
.ue-ltv-bar { display: grid; grid-template-columns: 30px 1fr 80px; gap: 12px; align-items: center; }
.ue-ltv-year { font-family: 'JetBrains Mono', monospace; font-size: 12px; font-weight: 600; color: #1a1a1a; }
.ue-ltv-track { height: 14px; background: #fafaf9; border-radius: 2px; overflow: hidden; border: 1px solid #f0f0f0; }
.ue-ltv-fill { height: 100%; background: linear-gradient(90deg, #c4520f, #e8732a); }
.ue-ltv-val { font-family: 'JetBrains Mono', monospace; font-variant-numeric: tabular-nums; font-size: 13px; text-align: right; }
.ue-ltv-totals { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 10px; padding-top: 14px; border-top: 1px dotted #e5e5e5; }
.ue-ltv-total { padding: 10px 8px; background: #fafaf9; border-radius: 2px; }
.ue-ltv-total-primary { background: #fbf2ec; }
.ue-ltv-total-label { font-size: 9.5px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: #737373; display: block; }
.ue-ltv-total-val { font-family: 'JetBrains Mono', monospace; font-variant-numeric: tabular-nums; font-size: 16px; font-weight: 600; color: #1a1a1a; margin-top: 4px; display: block; }
.ue-ltv-total-primary .ue-ltv-total-val { color: #c4520f; }
.ue-sensitivity { background: white; border: 1px solid #e5e5e5; padding: 28px; border-radius: 4px; margin-bottom: 24px; }
.ue-sensitivity h2 { font-family: Charter, Georgia, serif; font-size: 20px; font-weight: 500; margin: 0 0 8px; }
.ue-sens-sub { font-size: 13px; color: #737373; margin-bottom: 18px; }
.ue-sens-table { font-size: 13px; }
.ue-sens-table th { padding: 12px 10px; text-align: left; font-size: 11px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: #737373; border-bottom: 1px solid #1a1a1a; }
.ue-sens-table td { padding: 16px 12px; border-bottom: 1px solid #f0f0f0; vertical-align: top; }
.ue-sens-rec { background: #fbf2ec; }
.ue-sens-rec th { color: #c4520f; font-weight: 700; }
.ue-sens-hi { background: rgba(45,106,79,0.06); }
.ue-sens-md { background: rgba(184,134,11,0.06); }
.ue-sens-lo { background: rgba(185,28,28,0.06); }
.ue-sens-current { box-shadow: inset 0 0 0 2px #c4520f; }
.ue-sens-gm { font-family: 'JetBrains Mono', monospace; font-variant-numeric: tabular-nums; font-size: 20px; font-weight: 600; color: #1a1a1a; }
.ue-sens-detail { font-size: 11px; color: #737373; margin-top: 3px; }
.ue-foot { font-size: 12px; color: #737373; line-height: 1.5; padding-top: 24px; border-top: 1px solid #e5e5e5; }

/* === ARR Build === */
.arr-root { max-width: 1200px; margin: 0 auto; font-family: Inter, sans-serif; color: #1a1a1a; }
.arr-head { margin-bottom: 28px; }
.arr-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: #c4520f; margin-bottom: 14px; }
.arr-title { font-family: Charter, Georgia, serif; font-size: clamp(28px, 3.6vw, 40px); font-weight: 500; line-height: 1.1; margin: 0 0 16px; letter-spacing: -0.02em; }
.arr-lede { font-size: 15px; line-height: 1.6; color: #404040; max-width: 78ch; }
.arr-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 32px; }
@media (max-width: 900px) { .arr-stats { grid-template-columns: repeat(2, 1fr); } }
.arr-stat { background: white; border: 1px solid #e5e5e5; padding: 22px; border-radius: 4px; }
.arr-stat-primary { background: #1a1a1a; color: #fafafa; border-color: #1a1a1a; }
.arr-stat-label { font-size: 10.5px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #737373; margin-bottom: 8px; }
.arr-stat-primary .arr-stat-label { color: #cbc6bd; }
.arr-stat-val { font-family: 'JetBrains Mono', monospace; font-variant-numeric: tabular-nums; font-size: 32px; font-weight: 500; letter-spacing: -0.02em; line-height: 1; color: #1a1a1a; margin-bottom: 6px; }
.arr-stat-primary .arr-stat-val { color: #c4520f; }
.arr-stat-sub { font-size: 11.5px; color: #737373; }
.arr-stat-primary .arr-stat-sub { color: #cbc6bd; }
.arr-chart-section, .arr-bridge, .arr-segments-detail { background: white; border: 1px solid #e5e5e5; padding: 28px; border-radius: 4px; margin-bottom: 24px; }
.arr-chart-section h2, .arr-bridge h2, .arr-segments-detail h2 { font-family: Charter, Georgia, serif; font-size: 20px; font-weight: 500; margin: 0 0 8px; }
.arr-chart-sub { font-size: 13px; color: #737373; margin-bottom: 24px; }
.arr-bars { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 24px; align-items: end; height: 380px; padding: 20px 0; border-bottom: 1px solid #e5e5e5; margin-bottom: 18px; }
.arr-bar-col { display: flex; flex-direction: column; align-items: center; height: 100%; justify-content: flex-end; }
.arr-bar-stack { width: 100%; max-width: 140px; display: flex; flex-direction: column-reverse; border-radius: 2px 2px 0 0; overflow: hidden; min-height: 40px; }
.arr-bar-seg { width: 100%; transition: opacity 0.2s; }
.arr-bar-seg:hover { opacity: 0.85; }
.arr-bar-label { font-size: 12px; font-weight: 500; color: #1a1a1a; margin-top: 12px; }
.arr-bar-val { font-family: 'JetBrains Mono', monospace; font-variant-numeric: tabular-nums; font-size: 18px; font-weight: 600; color: #c4520f; margin-top: 4px; }
.arr-legend { display: flex; gap: 18px; flex-wrap: wrap; padding-top: 14px; justify-content: center; }
.arr-legend-item { display: flex; align-items: center; gap: 6px; font-size: 12px; color: #404040; }
.arr-legend-item i { width: 14px; height: 10px; display: inline-block; }
.arr-bridge-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.arr-bridge-table th, .arr-bridge-table td { padding: 10px; border-bottom: 1px solid #f0f0f0; }
.arr-bridge-table th { text-align: left; font-size: 10.5px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: #737373; border-bottom: 1px solid #1a1a1a; }
.arr-bridge-table th:not(:first-child), .arr-bridge-table td:not(:first-child) { text-align: right; }
.arr-num { font-family: 'JetBrains Mono', monospace; font-variant-numeric: tabular-nums; }
.arr-pos { color: #2d6a4f; }
.arr-neg { color: #b91c1c; }
.arr-row-strong td { font-weight: 600; background: #fbf2ec; }
.arr-seg-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; }
.arr-seg-card { padding: 18px 20px; background: #fafaf9; border-left: 4px solid; border-radius: 0 4px 4px 0; }
.arr-seg-name { font-size: 12px; font-weight: 600; color: #1a1a1a; margin-bottom: 8px; }
.arr-seg-num { font-family: 'JetBrains Mono', monospace; font-variant-numeric: tabular-nums; font-size: 22px; font-weight: 600; color: #1a1a1a; margin-bottom: 6px; }
.arr-seg-meta { font-size: 11.5px; color: #737373; line-height: 1.55; }
.arr-foot { font-size: 12px; color: #737373; line-height: 1.5; padding-top: 24px; border-top: 1px solid #e5e5e5; }

/* === Volume Benchmark === */
.vb-root { max-width: 1200px; margin: 0 auto; font-family: Inter, sans-serif; color: #1a1a1a; }
.vb-head { margin-bottom: 32px; }
.vb-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: #c4520f; margin-bottom: 14px; }
.vb-title { font-family: Charter, Georgia, serif; font-size: clamp(28px, 3.6vw, 40px); font-weight: 500; line-height: 1.1; margin: 0 0 16px; letter-spacing: -0.02em; }
.vb-lede { font-size: 15px; line-height: 1.6; color: #404040; max-width: 78ch; }
.vb-ladders { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-bottom: 32px; }
@media (max-width: 900px) { .vb-ladders { grid-template-columns: 1fr; } }
.vb-ladder { background: white; border: 1px solid #e5e5e5; padding: 24px; border-radius: 4px; }
.vb-ladder-moz { background: #1a1a1a; color: #fafafa; border-color: #1a1a1a; }
.vb-ladder-head { padding-bottom: 14px; border-bottom: 1px solid #e5e5e5; margin-bottom: 18px; }
.vb-ladder-moz .vb-ladder-head { border-bottom-color: #404040; }
.vb-ladder-name { font-family: Charter, Georgia, serif; font-size: 18px; font-weight: 500; }
.vb-ladder-bars { display: flex; flex-direction: column; gap: 8px; }
.vb-band { display: flex; align-items: center; gap: 14px; }
.vb-band-bar { height: 18px; background: #c4520f; border-radius: 2px; min-width: 4px; }
.vb-ladder-moz .vb-band-bar { background: #c4520f; }
.vb-ladder:not(.vb-ladder-moz) .vb-band-bar { background: #1a1a1a; opacity: 0.7; }
.vb-band-info { display: flex; justify-content: space-between; flex: 1; font-size: 12px; font-family: 'JetBrains Mono', monospace; }
.vb-ladder-moz .vb-band-info { color: #cbc6bd; }
.vb-band-disc { font-weight: 600; color: #1a1a1a; }
.vb-ladder-moz .vb-band-disc { color: #fafafa; }
.vb-ladder-notes { font-size: 12px; color: #737373; line-height: 1.55; margin-top: 18px; padding-top: 14px; border-top: 1px dotted #e5e5e5; }
.vb-ladder-moz .vb-ladder-notes { color: #9a958c; border-top-color: #404040; }
.vb-design { background: white; border: 1px solid #e5e5e5; padding: 28px; border-radius: 4px; margin-bottom: 24px; }
.vb-design h2 { font-family: Charter, Georgia, serif; font-size: 22px; font-weight: 500; margin: 0 0 18px; padding-bottom: 12px; border-bottom: 1px solid #1a1a1a; }
.vb-design-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
@media (max-width: 700px) { .vb-design-grid { grid-template-columns: 1fr; } }
.vb-design-card { padding: 18px 20px; background: #fafaf9; border-left: 3px solid #c4520f; }
.vb-design-card h3 { font-family: Charter, Georgia, serif; font-size: 16px; font-weight: 500; margin: 0 0 8px; }
.vb-design-card p { font-size: 13px; line-height: 1.6; color: #404040; margin: 0; }
.vb-stacked { background: white; border: 1px solid #e5e5e5; padding: 28px; border-radius: 4px; margin-bottom: 24px; }
.vb-stacked h2 { font-family: Charter, Georgia, serif; font-size: 22px; font-weight: 500; margin: 0 0 18px; padding-bottom: 12px; border-bottom: 1px solid #1a1a1a; }
.vb-stacked-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.vb-stacked-table th { padding: 12px 10px; text-align: left; font-size: 10.5px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: #737373; border-bottom: 1px solid #1a1a1a; }
.vb-stacked-table td { padding: 12px 10px; border-bottom: 1px solid #f0f0f0; }
.vb-stacked-table td:nth-child(2), .vb-stacked-table td:nth-child(3), .vb-stacked-table td:nth-child(4) { font-family: 'JetBrains Mono', monospace; font-variant-numeric: tabular-nums; }
.vb-row-moz { background: #fbf2ec; }
.vb-row-moz td { font-weight: 600; }
.vb-row-moz td strong { color: #c4520f; }
.vb-stacked-note { font-size: 13px; color: #737373; line-height: 1.6; margin-top: 14px; padding-top: 14px; border-top: 1px dotted #e5e5e5; }
.vb-foot { font-size: 12px; color: #737373; line-height: 1.5; padding-top: 24px; border-top: 1px solid #e5e5e5; }

/* === Pricing Cockpit === */
.cp-root { max-width: 1280px; margin: 0 auto; font-family: Inter, sans-serif; color: #1a1a1a; }
.cp-head { margin-bottom: 32px; }
.cp-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: #c4520f; margin-bottom: 14px; }
.cp-title { font-family: Charter, Georgia, serif; font-size: clamp(28px, 3.6vw, 44px); font-weight: 500; line-height: 1.1; margin: 0 0 16px; letter-spacing: -0.02em; }
.cp-lede { font-size: 15px; line-height: 1.6; color: #404040; max-width: 75ch; }
.cp-block-recommendation { background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 100%); color: #fafafa; padding: 36px 40px; border-radius: 4px; margin-bottom: 24px; }
.cp-block-eyebrow { font-family: 'JetBrains Mono', monospace; font-size: 10.5px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: #c4520f; margin-bottom: 18px; }
.cp-rec-grid { display: grid; grid-template-columns: 1.5fr 1fr; gap: 32px; align-items: center; }
@media (max-width: 800px) { .cp-rec-grid { grid-template-columns: 1fr; } }
.cp-rec-anchor { font-family: 'JetBrains Mono', monospace; font-variant-numeric: tabular-nums; font-size: 64px; font-weight: 500; color: #c4520f; line-height: 1; letter-spacing: -0.03em; margin-bottom: 12px; }
.cp-rec-sub { font-family: Charter, Georgia, serif; font-style: italic; font-size: 17px; color: #fafafa; margin-bottom: 8px; }
.cp-rec-lens { font-size: 13px; color: #cbc6bd; }
.cp-rec-actions { display: flex; flex-direction: column; gap: 8px; }
.cp-rec-btn { padding: 12px 18px; background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.15); color: #fafafa; text-decoration: none; font-size: 13px; font-weight: 500; border-radius: 4px; transition: all 0.15s; border-bottom: 1px solid rgba(255,255,255,0.15) !important; }
.cp-rec-btn:hover { background: #c4520f; border-color: #c4520f; color: white; }
.cp-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-bottom: 24px; }
@media (max-width: 900px) { .cp-grid { grid-template-columns: 1fr; } }
.cp-block { background: white; border: 1px solid #e5e5e5; padding: 24px; border-radius: 4px; }
.cp-block-arr { grid-column: span 2; }
@media (max-width: 900px) { .cp-block-arr { grid-column: span 1; } }
.cp-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.cp-table th, .cp-table td { padding: 8px 10px; border-bottom: 1px solid #f0f0f0; text-align: left; }
.cp-table th { font-size: 10px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: #737373; border-bottom: 1px solid #1a1a1a; }
.cp-num { font-family: 'JetBrains Mono', monospace; font-variant-numeric: tabular-nums; text-align: right; }
.cp-neg { color: #b91c1c; }
.cp-row-rec { background: #fbf2ec; }
.cp-row-strong { background: #fafaf9; }
.cp-block-cta { margin-top: 14px; padding-top: 12px; border-top: 1px dotted #e5e5e5; font-size: 12px; }
.cp-block-cta a { color: #c4520f; text-decoration: none; font-weight: 500; }
.cp-block-cta a:hover { text-decoration: underline; }
.cp-disc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.cp-disc { padding: 12px 14px; background: #fafaf9; border-radius: 3px; }
.cp-disc-label { font-size: 9.5px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: #737373; display: block; }
.cp-disc-val { font-family: 'JetBrains Mono', monospace; font-variant-numeric: tabular-nums; font-size: 18px; font-weight: 600; color: #1a1a1a; margin: 4px 0 2px; display: block; }
.cp-disc-floor { color: #c4520f; }
.cp-disc-sub { font-size: 11px; color: #737373; display: block; }
.cp-path { display: flex; align-items: center; gap: 8px; margin: 8px 0 12px; flex-wrap: wrap; }
.cp-path-step { flex: 1; min-width: 110px; padding: 12px 14px; background: #fafaf9; border-radius: 3px; display: flex; flex-direction: column; gap: 3px; }
.cp-path-current { background: #1a1a1a; color: #fafafa; }
.cp-path-yr { font-size: 9.5px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: #737373; }
.cp-path-current .cp-path-yr { color: #cbc6bd; }
.cp-path-price { font-family: 'JetBrains Mono', monospace; font-variant-numeric: tabular-nums; font-size: 18px; font-weight: 600; color: #1a1a1a; }
.cp-path-current .cp-path-price { color: #c4520f; }
.cp-path-status { font-size: 11px; color: #737373; }
.cp-path-current .cp-path-status { color: #cbc6bd; }
.cp-path-arrow { color: #cbc6bd; font-size: 16px; flex-shrink: 0; }
.cp-path-note { font-size: 11.5px; color: #737373; padding-top: 10px; border-top: 1px dotted #e5e5e5; line-height: 1.55; }
.cp-arr-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.cp-arr-yr { padding: 16px; background: #fafaf9; border-radius: 3px; }
.cp-arr-yr-primary { background: #1a1a1a; color: #fafafa; }
.cp-arr-label { font-size: 10px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: #737373; display: block; margin-bottom: 6px; }
.cp-arr-yr-primary .cp-arr-label { color: #cbc6bd; }
.cp-arr-val { font-family: 'JetBrains Mono', monospace; font-variant-numeric: tabular-nums; font-size: 24px; font-weight: 600; color: #1a1a1a; display: block; line-height: 1; margin-bottom: 4px; }
.cp-arr-yr-primary .cp-arr-val { color: #c4520f; }
.cp-arr-sub { font-size: 11px; color: #737373; }
.cp-arr-yr-primary .cp-arr-sub { color: #cbc6bd; }
.cp-focus { margin: 0; padding-left: 18px; font-size: 13px; line-height: 1.6; color: #404040; }
.cp-focus li { margin-bottom: 8px; }
.cp-focus strong { color: #c4520f; }
.cp-auth td:first-child { font-weight: 500; }
.cp-auth td:last-child { text-align: right; color: #404040; }
.cp-foot { font-size: 11.5px; color: #737373; line-height: 1.5; padding-top: 24px; border-top: 1px solid #e5e5e5; }

/* =====================================================================
   v2.11 — Simplified Downloads (drop → click → download)
   ===================================================================== */
.dl-simple-root { max-width: 1100px; margin: 0 auto; }
.dl-search-row { display: flex; align-items: center; gap: 14px; margin: 24px 0 16px; padding: 14px 18px; background: white; border: 1px solid #e5e5e5; border-radius: 4px; }
.dl-search-row .dl-search { flex: 1; min-width: 220px; border: 1px solid #e5e5e5; padding: 9px 13px; font: inherit; font-size: 14px; background: #fafaf9; border-radius: 4px; outline: none; }
.dl-search-row .dl-search:focus { border-color: #1a1a1a; }
.dl-search-row .dl-count { font-size: 12px; color: #737373; }
.dl-search-row .dl-count strong { color: #1a1a1a; font-family: 'JetBrains Mono', monospace; }
.dl-empty { text-align: center; padding: 64px 32px; margin: 24px 0; background: white; border: 1px dashed #e5e5e5; border-radius: 4px; }
.dl-empty-arrow { font-size: 48px; color: #cbc6bd; line-height: 1; margin-bottom: 16px; }
.dl-empty-text { font-family: Charter, Georgia, serif; font-size: 18px; color: #1a1a1a; margin-bottom: 6px; }
.dl-empty-sub { font-size: 13px; color: #737373; }
.dl-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 12px; margin-top: 18px; }
.dl-tile { background: white; border: 1px solid #e5e5e5; border-radius: 4px; padding: 16px; display: flex; align-items: center; gap: 14px; cursor: pointer; transition: all 0.15s; font: inherit; text-align: left; width: 100%; border-bottom: 1px solid #e5e5e5; }
.dl-tile:hover { border-color: #c4520f; background: #fbf2ec; transform: translateY(-1px); box-shadow: 0 4px 12px rgba(196,82,15,0.1); }
.dl-tile:active { transform: scale(0.97); }
.dl-tile-icon { flex-shrink: 0; width: 44px; height: 56px; display: flex; align-items: flex-end; justify-content: center; padding-bottom: 8px; color: white; font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 700; letter-spacing: 0.06em; border-radius: 4px 4px 2px 2px; position: relative; }
.dl-tile-icon.dl-docx { background: linear-gradient(135deg, #2b579a, #1a3d6e); }
.dl-tile-icon.dl-xlsx { background: linear-gradient(135deg, #217346, #14502f); }
.dl-tile-icon.dl-pptx { background: linear-gradient(135deg, #c43e1c, #872b13); }
.dl-tile-icon.dl-pdf  { background: linear-gradient(135deg, #b30b00, #7a0700); }
.dl-tile-icon::before { content: ''; position: absolute; top: 0; right: 0; border-style: solid; border-width: 0 10px 10px 0; border-color: rgba(255,255,255,0.3) rgba(255,255,255,0.15); }
.dl-tile-body { flex: 1; min-width: 0; }
.dl-tile-num { font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 600; color: #c4520f; letter-spacing: 0.04em; margin-bottom: 4px; }
.dl-tile-title { font-size: 14px; font-weight: 600; color: #1a1a1a; line-height: 1.3; margin-bottom: 6px; word-break: break-word; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.dl-tile-meta { display: flex; gap: 6px; align-items: center; font-size: 11px; color: #737373; }
.dl-tile-cta { display: flex; flex-direction: column; align-items: center; gap: 6px; flex-shrink: 0; }
.dl-tile-arrow { width: 28px; height: 28px; border-radius: 50%; background: #fbf2ec; color: #c4520f; display: flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 700; transition: all 0.15s; }
.dl-tile:hover .dl-tile-arrow { background: #c4520f; color: white; transform: translateY(2px); }
.dl-tile-delete { width: 22px; height: 22px; border-radius: 50%; color: #cbc6bd; display: flex; align-items: center; justify-content: center; font-size: 12px; transition: all 0.15s; cursor: pointer; }
.dl-tile-delete:hover { background: #b91c1c; color: white; }

/* =====================================================================
   PRICING NARRATIVE — 24-slide executive story
   Long-form scrollable + Present mode + Print
   ===================================================================== */

.narr-root { display: grid; grid-template-columns: 220px 1fr; gap: 0; min-height: 100vh; background: #faf6f0; font-family: var(--font-sans, 'Inter', sans-serif); color: #1a1a1a; }

/* Toolbar */
.narr-toolbar { grid-column: 1 / -1; display: flex; align-items: center; gap: 10px; padding: 14px 32px; background: white; border-bottom: 1px solid #e8e3d8; position: sticky; top: 0; z-index: 50; }
.narr-btn { display: inline-flex; align-items: center; gap: 6px; padding: 8px 16px; font-size: 13px; font-weight: 600; border: 1px solid #d6d0c0; background: white; color: #1a1a1a; border-radius: 4px; cursor: pointer; text-decoration: none; transition: all 0.15s; font-family: inherit; }
.narr-btn:hover { border-color: #c4520f; color: #c4520f; }
.narr-btn-primary { background: #c4520f; color: white; border-color: #c4520f; }
.narr-btn-primary:hover { background: #a8430a; border-color: #a8430a; color: white; }
.narr-toolbar-meta { margin-left: auto; display: flex; gap: 16px; align-items: center; font-family: 'JetBrains Mono', monospace; font-size: 11px; color: #737373; letter-spacing: 0.06em; }
.narr-conf { color: #c4520f; font-weight: 700; }

/* Sidebar nav */
.narr-nav { background: #f4ede1; border-right: 1px solid #e8e3d8; padding: 24px 0; position: sticky; top: 53px; align-self: start; max-height: calc(100vh - 53px); overflow-y: auto; }
.narr-nav-item { display: flex; align-items: baseline; gap: 10px; padding: 7px 20px; font-size: 12px; color: #555b7a; text-decoration: none; border-left: 2px solid transparent; transition: all 0.1s; }
.narr-nav-item:hover { background: rgba(196,82,15,0.06); color: #c4520f; border-left-color: rgba(196,82,15,0.4); }
.narr-nav-num { font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 600; color: #8b91a8; min-width: 18px; }
.narr-nav-title { line-height: 1.3; }

/* Main reading column */
.narr-main { padding: 0 0 120px 0; max-width: none; }

/* Slide container */
.narr-slide { padding: 80px 80px 60px 80px; max-width: 1080px; margin: 0 auto; border-bottom: 1px solid rgba(10,14,39,0.06); position: relative; scroll-margin-top: 70px; }
.narr-slide:last-child { border-bottom: none; }
.narr-page-num { position: absolute; top: 36px; right: 80px; font-family: 'JetBrains Mono', monospace; font-size: 10px; color: #8b91a8; letter-spacing: 0.08em; }

/* Slide header */
.narr-slide-head { margin-bottom: 40px; }
.narr-slide-meta { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; font-family: 'JetBrains Mono', monospace; font-size: 10px; color: #8b91a8; letter-spacing: 0.1em; text-transform: uppercase; }
.narr-slide-num { font-weight: 700; color: #c4520f; }
.narr-slide-section { }
.narr-eyebrow { font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 600; color: #c4520f; letter-spacing: 0.08em; text-transform: uppercase; margin-bottom: 10px; }
.narr-title { font-family: var(--font-serif, 'Charter', Georgia, serif); font-size: 38px; line-height: 1.12; font-weight: 500; color: #0a0e27; letter-spacing: -0.02em; margin: 0 0 18px 0; max-width: 920px; }
.narr-bottomline { background: #fff7ed; border-left: 3px solid #c4520f; padding: 14px 18px; font-size: 15px; line-height: 1.55; color: #1a1a1a; margin: 0; }
.narr-bottomline strong { color: #c4520f; font-weight: 700; }

/* Cover */
.narr-cover { padding: 80px 60px; text-align: left; max-width: 900px; }
.narr-cover-mark { font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 700; color: #c4520f; letter-spacing: 0.18em; margin-bottom: 60px; }
.narr-cover-title { font-family: var(--font-serif, 'Charter', Georgia, serif); font-size: 56px; line-height: 1.06; font-weight: 500; color: #0a0e27; letter-spacing: -0.025em; margin: 0 0 18px 0; }
.narr-cover-subtitle { font-family: var(--font-serif, 'Charter', Georgia, serif); font-size: 26px; line-height: 1.25; font-weight: 400; font-style: italic; color: #555b7a; margin: 0 0 40px 0; }
.narr-cover-body { font-size: 17px; line-height: 1.65; color: #2d3148; max-width: 740px; margin: 0 0 80px 0; }
.narr-cover-meta { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: #8b91a8; letter-spacing: 0.06em; line-height: 1.9; border-top: 1px solid #e8e3d8; padding-top: 20px; }

/* Three-column layouts */
.narr-three-col { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.narr-col { padding: 22px; background: white; border: 1px solid #e8e3d8; border-radius: 4px; }
.narr-col-eyebrow { font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 700; color: #c4520f; letter-spacing: 0.08em; text-transform: uppercase; margin-bottom: 10px; }
.narr-col-head { font-family: var(--font-serif, 'Charter', Georgia, serif); font-size: 19px; font-weight: 600; color: #0a0e27; line-height: 1.25; margin: 0 0 12px 0; }
.narr-col-body { font-size: 14px; line-height: 1.6; color: #2d3148; margin: 0; }

/* Stat grid */
.narr-stat-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 16px; }
.narr-stat { padding: 24px 20px; background: white; border: 1px solid #e8e3d8; border-radius: 4px; text-align: left; }
.narr-stat-val { font-family: var(--font-serif, 'Charter', Georgia, serif); font-size: 36px; line-height: 1; font-weight: 600; color: #c4520f; letter-spacing: -0.02em; margin-bottom: 10px; }
.narr-stat-label { font-size: 13px; font-weight: 600; color: #0a0e27; line-height: 1.3; margin-bottom: 6px; }
.narr-stat-sub { font-size: 12px; color: #737373; line-height: 1.5; }

/* M&A timeline */
.narr-ma-timeline { display: grid; gap: 6px; margin-bottom: 16px; }
.narr-ma-event { display: grid; grid-template-columns: 80px 1fr 1fr 120px; gap: 16px; padding: 12px 16px; background: white; border-left: 3px solid #d6d0c0; align-items: center; }
.narr-ma-highlight { border-left-color: #c4520f; background: #fff7ed; }
.narr-ma-date { font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 700; color: #555b7a; }
.narr-ma-vendor { font-size: 14px; font-weight: 600; color: #0a0e27; }
.narr-ma-arrow { font-size: 13px; color: #555b7a; }
.narr-ma-arrow::before { content: '→ '; color: #c4520f; }
.narr-ma-value { font-family: 'JetBrains Mono', monospace; font-size: 12px; font-weight: 600; color: #c4520f; text-align: right; }

/* Three-lens math */
.narr-lens-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-bottom: 32px; }
.narr-lens-card { padding: 24px 22px; background: white; border: 1px solid #e8e3d8; border-radius: 4px; position: relative; }
.narr-lens-num { position: absolute; top: 16px; right: 18px; font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 700; color: #c4520f; letter-spacing: 0.06em; }
.narr-lens-label { font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 700; color: #c4520f; letter-spacing: 0.1em; text-transform: uppercase; margin-bottom: 10px; }
.narr-lens-val { font-family: var(--font-serif, 'Charter', Georgia, serif); font-size: 28px; font-weight: 600; color: #0a0e27; margin-bottom: 12px; line-height: 1.1; }
.narr-lens-body { font-size: 13px; line-height: 1.55; color: #2d3148; margin-bottom: 12px; }
.narr-lens-sub { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: #737373; padding: 8px 12px; background: #faf6f0; border-radius: 3px; margin-bottom: 12px; }
.narr-lens-tag { font-size: 11px; font-weight: 600; color: #c4520f; }

/* WTP curve */
.narr-wtp-curve { background: white; border: 1px solid #e8e3d8; padding: 24px; border-radius: 4px; }
.narr-wtp-curve-label { font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 600; color: #555b7a; letter-spacing: 0.08em; text-transform: uppercase; margin-bottom: 18px; }
.narr-wtp-points { display: flex; justify-content: space-between; align-items: flex-end; gap: 10px; }
.narr-wtp-point { flex: 1; padding: 14px 10px; background: #faf6f0; border: 1px solid #e8e3d8; text-align: center; border-radius: 3px; }
.narr-wtp-mozilla { background: #fff7ed; border-color: #c4520f; box-shadow: 0 0 0 2px rgba(196,82,15,0.15); }
.narr-wtp-primary { background: #fdf4eb; border-color: #d8843a; }
.narr-wtp-seg { font-size: 11px; color: #555b7a; margin-bottom: 6px; font-weight: 500; }
.narr-wtp-mozilla .narr-wtp-seg, .narr-wtp-primary .narr-wtp-seg { color: #c4520f; font-weight: 700; }
.narr-wtp-val { font-family: 'JetBrains Mono', monospace; font-size: 14px; font-weight: 700; color: #0a0e27; }

/* Convergence bar */
.narr-convergence { position: relative; padding: 80px 40px 100px 40px; background: white; border: 1px solid #e8e3d8; border-radius: 4px; }
.narr-convergence-axis { position: relative; height: 4px; background: #e8e3d8; border-radius: 2px; margin: 60px 0; }
.narr-axis-tick { position: absolute; top: -4px; width: 1px; height: 12px; background: #c5c9d6; }
.narr-axis-tick span { position: absolute; top: 16px; left: 50%; transform: translateX(-50%); font-family: 'JetBrains Mono', monospace; font-size: 10px; color: #737373; white-space: nowrap; }
.narr-convergence-band { position: absolute; top: 130px; height: 24px; background: rgba(196,82,15,0.15); border: 1px solid rgba(196,82,15,0.3); border-radius: 4px; }
.narr-converge-mark { position: absolute; transform: translateX(-50%); }
.narr-converge-mark:nth-child(odd) { top: 30px; }
.narr-converge-mark:nth-child(even) { top: 180px; }
.narr-converge-pin { width: 12px; height: 12px; background: #555b7a; border-radius: 50%; margin: 0 auto 4px; border: 2px solid white; box-shadow: 0 2px 4px rgba(0,0,0,0.1); }
.narr-converge-mozilla .narr-converge-pin { background: #c4520f; transform: scale(1.4); }
.narr-converge-pin-label { font-family: 'JetBrains Mono', monospace; font-size: 12px; font-weight: 700; color: #0a0e27; text-align: center; }
.narr-converge-mozilla .narr-converge-pin-label { color: #c4520f; font-size: 14px; }
.narr-converge-pin-name { font-size: 11px; font-weight: 600; color: #2d3148; text-align: center; margin-top: 2px; white-space: nowrap; }
.narr-converge-pin-sub { font-size: 10px; color: #737373; text-align: center; white-space: nowrap; }

/* Numbered list */
.narr-numbered { display: grid; gap: 16px; }
.narr-num-item { display: grid; grid-template-columns: 60px 1fr; gap: 20px; padding: 22px 24px; background: white; border: 1px solid #e8e3d8; border-radius: 4px; align-items: start; }
.narr-num-mark { font-family: var(--font-serif, 'Charter', Georgia, serif); font-size: 32px; font-weight: 600; color: #c4520f; line-height: 1; }
.narr-num-body h3 { font-family: var(--font-serif, 'Charter', Georgia, serif); font-size: 19px; font-weight: 600; color: #0a0e27; line-height: 1.25; margin: 0 0 8px 0; }
.narr-num-body p { font-size: 14px; line-height: 1.6; color: #2d3148; margin: 0; }
.narr-num-owner { margin-top: 10px; font-family: 'JetBrains Mono', monospace; font-size: 11px; color: #555b7a; }
.narr-num-owner strong { color: #c4520f; }

/* Platform split */
.narr-section-label { font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 700; color: #c4520f; letter-spacing: 0.1em; text-transform: uppercase; margin-bottom: 16px; }
.narr-splits { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.narr-split-card { padding: 22px; background: white; border: 1px solid #e8e3d8; border-radius: 4px; }
.narr-split-icp { font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 700; color: #555b7a; letter-spacing: 0.06em; margin-bottom: 12px; }
.narr-split-val { font-family: var(--font-serif, 'Charter', Georgia, serif); font-size: 28px; font-weight: 600; color: #c4520f; margin-bottom: 12px; line-height: 1; }
.narr-split-card p { font-size: 13px; line-height: 1.55; color: #2d3148; margin: 0; }

/* Three-split comparison (structures) */
.narr-structure-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.narr-structure { padding: 22px; background: white; border: 1px solid #e8e3d8; border-radius: 4px; }
.narr-structure-rec { border-color: #c4520f; border-width: 2px; box-shadow: 0 4px 12px rgba(196,82,15,0.08); }
.narr-structure-tag { font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 700; color: #c4520f; letter-spacing: 0.08em; text-transform: uppercase; margin-bottom: 8px; }
.narr-structure h3 { font-family: var(--font-serif, 'Charter', Georgia, serif); font-size: 17px; font-weight: 600; color: #0a0e27; margin: 0 0 14px 0; }
.narr-structure-table { width: 100%; border-collapse: collapse; }
.narr-structure-table td { padding: 7px 0; font-size: 13px; color: #2d3148; vertical-align: top; border-bottom: 1px solid #f4ede1; }
.narr-structure-table td:first-child { font-weight: 600; color: #0a0e27; width: 40%; }
.narr-structure-table tr:last-child td { border-bottom: none; }

/* Two list */
.narr-two-list { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.narr-list-col { padding: 22px; background: white; border: 1px solid #e8e3d8; border-radius: 4px; }
.narr-list-col h3 { font-family: var(--font-serif, 'Charter', Georgia, serif); font-size: 17px; font-weight: 600; color: #0a0e27; margin: 0 0 12px 0; }
.narr-list-col ul { margin: 0; padding-left: 18px; }
.narr-list-col li { font-size: 14px; line-height: 1.6; color: #2d3148; margin-bottom: 8px; }

/* Range decision */
.narr-anchor-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-bottom: 24px; }
.narr-anchor { padding: 22px; background: white; border: 1px solid #e8e3d8; border-radius: 4px; text-align: left; }
.narr-anchor-rec { border-color: #c4520f; border-width: 2px; background: #fff7ed; }
.narr-anchor-val { font-family: var(--font-serif, 'Charter', Georgia, serif); font-size: 36px; font-weight: 600; color: #c4520f; margin-bottom: 6px; line-height: 1; }
.narr-anchor-label { font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 700; color: #555b7a; letter-spacing: 0.08em; text-transform: uppercase; margin-bottom: 12px; }
.narr-anchor ul { margin: 0; padding-left: 16px; }
.narr-anchor li { font-size: 13px; line-height: 1.55; color: #2d3148; margin-bottom: 6px; }
.narr-decisions { display: grid; gap: 8px; padding: 18px; background: white; border: 1px solid #e8e3d8; border-radius: 4px; }
.narr-decision { display: grid; grid-template-columns: 1fr 30px 1fr; gap: 14px; padding: 8px 0; font-size: 13px; color: #2d3148; align-items: center; }
.narr-decision:not(:last-child) { border-bottom: 1px solid #f4ede1; }
.narr-decision-arrow { text-align: center; color: #c4520f; font-weight: 700; font-size: 16px; }
.narr-decision-cond { font-weight: 500; }
.narr-decision-action { font-weight: 600; color: #0a0e27; }

/* Three-anchor recommendation */
.narr-rec-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.narr-rec-card { padding: 28px 24px; background: white; border: 1px solid #e8e3d8; border-radius: 4px; text-align: center; }
.narr-rec-card-primary { border-color: #c4520f; border-width: 2px; background: linear-gradient(180deg, #fff7ed 0%, #ffffff 60%); box-shadow: 0 6px 18px rgba(196,82,15,0.1); transform: translateY(-4px); }
.narr-rec-tag { font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 700; color: #c4520f; letter-spacing: 0.1em; text-transform: uppercase; margin-bottom: 14px; }
.narr-rec-monthly { font-family: var(--font-serif, 'Charter', Georgia, serif); font-size: 44px; font-weight: 600; color: #0a0e27; line-height: 1; margin-bottom: 6px; }
.narr-rec-card-primary .narr-rec-monthly { color: #c4520f; }
.narr-rec-yearly { font-family: 'JetBrains Mono', monospace; font-size: 12px; color: #737373; margin-bottom: 14px; }
.narr-rec-card p { font-size: 13px; line-height: 1.55; color: #2d3148; margin: 0; }

/* Decision matrix */
.narr-matrix { width: 100%; border-collapse: collapse; background: white; border: 1px solid #e8e3d8; border-radius: 4px; overflow: hidden; }
.narr-matrix th { background: #faf6f0; padding: 14px 16px; text-align: left; font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 700; color: #555b7a; letter-spacing: 0.08em; text-transform: uppercase; border-bottom: 1px solid #e8e3d8; }
.narr-matrix td { padding: 13px 16px; font-size: 13px; color: #2d3148; border-bottom: 1px solid #f4ede1; vertical-align: top; }
.narr-matrix tr:last-child td { border-bottom: none; }
.narr-matrix td:first-child { font-weight: 600; color: #0a0e27; }
.narr-matrix-win { background: #fff7ed; color: #c4520f !important; font-weight: 700; }

/* Growth path */
.narr-growth-stages { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.narr-growth-stage { padding: 22px 16px; background: white; border: 1px solid #e8e3d8; border-radius: 4px; position: relative; }
.narr-growth-current { border-color: #c4520f; border-width: 2px; background: #fff7ed; }
.narr-growth-year { font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 700; color: #c4520f; letter-spacing: 0.08em; margin-bottom: 10px; }
.narr-growth-price { font-family: var(--font-serif, 'Charter', Georgia, serif); font-size: 30px; font-weight: 600; color: #0a0e27; margin-bottom: 4px; line-height: 1; }
.narr-growth-sub { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: #737373; margin-bottom: 12px; }
.narr-growth-stage p { font-size: 12px; line-height: 1.55; color: #2d3148; margin: 0 0 10px 0; }
.narr-growth-trigger { font-size: 11px; padding: 8px 10px; background: #faf6f0; border-left: 2px solid #c4520f; color: #555b7a; line-height: 1.5; }

/* Renewal commitments */
.narr-commitments { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-bottom: 32px; }
.narr-commitment { padding: 22px; background: white; border: 1px solid #e8e3d8; border-radius: 4px; }
.narr-commitment h3 { font-family: var(--font-serif, 'Charter', Georgia, serif); font-size: 17px; font-weight: 600; color: #0a0e27; margin: 0 0 10px 0; }
.narr-commitment p { font-size: 13px; line-height: 1.55; color: #2d3148; margin: 0; }
.narr-commitment-warn { border-left: 3px solid #c4520f; background: #fff7ed; }
.narr-example { padding: 24px; background: white; border: 1px solid #e8e3d8; border-radius: 4px; }
.narr-example h3 { font-family: var(--font-serif, 'Charter', Georgia, serif); font-size: 17px; font-weight: 600; color: #0a0e27; margin: 0 0 14px 0; }
.narr-example-col { background: #faf6f0; border-color: #e8e3d8; }
.narr-example-tag { font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 700; color: #c4520f; margin-bottom: 8px; }
.narr-example-price { font-family: var(--font-serif, 'Charter', Georgia, serif); font-size: 22px; font-weight: 600; color: #0a0e27; margin-bottom: 8px; }

/* Segment focus */
.narr-segments { display: grid; gap: 18px; }
.narr-segment { padding: 26px; background: white; border: 1px solid #e8e3d8; border-radius: 4px; }
.narr-segment h3 { font-family: var(--font-serif, 'Charter', Georgia, serif); font-size: 22px; font-weight: 600; color: #c4520f; margin: 0 0 18px 0; }
.narr-seg-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 16px; padding-bottom: 16px; border-bottom: 1px solid #f4ede1; }
.narr-seg-field { display: flex; flex-direction: column; gap: 4px; }
.narr-seg-label { font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 600; color: #8b91a8; letter-spacing: 0.06em; text-transform: uppercase; }
.narr-seg-field span:last-child { font-size: 14px; font-weight: 600; color: #0a0e27; }
.narr-seg-split-val { color: #c4520f !important; }
.narr-segment p { font-size: 14px; line-height: 1.6; color: #2d3148; margin: 0; }

/* NPI precedent */
.narr-npi-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.narr-npi-card { padding: 22px; background: white; border: 1px solid #e8e3d8; border-radius: 4px; }
.narr-npi-co { font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 700; color: #c4520f; letter-spacing: 0.06em; margin-bottom: 4px; }
.narr-npi-model { font-size: 12px; color: #737373; margin-bottom: 12px; }
.narr-npi-headline { font-family: var(--font-serif, 'Charter', Georgia, serif); font-size: 17px; font-weight: 600; color: #0a0e27; margin-bottom: 10px; line-height: 1.3; }
.narr-npi-card p { font-size: 13px; line-height: 1.55; color: #2d3148; margin: 0; }

/* Implementation */
.narr-impl { display: grid; gap: 14px; }
.narr-impl-move { display: grid; grid-template-columns: 140px 1fr; gap: 24px; padding: 22px 24px; background: white; border: 1px solid #e8e3d8; border-radius: 4px; align-items: start; }
.narr-impl-period { font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 700; color: #c4520f; letter-spacing: 0.06em; text-transform: uppercase; padding-top: 4px; border-right: 1px solid #f4ede1; padding-right: 16px; }
.narr-impl-body h3 { font-family: var(--font-serif, 'Charter', Georgia, serif); font-size: 18px; font-weight: 600; color: #0a0e27; margin: 0 0 6px 0; }
.narr-impl-owner { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: #555b7a; margin-bottom: 10px; }
.narr-impl-owner strong { color: #c4520f; }
.narr-impl-body p { font-size: 14px; line-height: 1.6; color: #2d3148; margin: 0; }

/* Closing hero */
.narr-closing { padding: 60px 40px; background: linear-gradient(180deg, #fff7ed 0%, white 60%); border: 1px solid #c4520f; border-radius: 6px; text-align: center; }
.narr-closing-headline { font-family: var(--font-serif, 'Charter', Georgia, serif); font-size: 42px; font-weight: 600; color: #0a0e27; margin: 0 0 14px 0; line-height: 1.15; letter-spacing: -0.02em; }
.narr-closing-sub { font-family: var(--font-serif, 'Charter', Georgia, serif); font-size: 22px; font-style: italic; color: #555b7a; margin: 0 0 50px 0; line-height: 1.35; max-width: 760px; margin-left: auto; margin-right: auto; }
.narr-closing-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 24px; max-width: 920px; margin: 0 auto; }
.narr-closing-stat { padding: 18px; background: white; border: 1px solid #e8e3d8; border-radius: 4px; }
.narr-closing-label { font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 700; color: #c4520f; letter-spacing: 0.08em; text-transform: uppercase; margin-bottom: 10px; }
.narr-closing-val { font-family: var(--font-serif, 'Charter', Georgia, serif); font-size: 28px; font-weight: 600; color: #0a0e27; margin-bottom: 6px; line-height: 1.1; }
.narr-closing-sub-stat { font-size: 11px; color: #737373; line-height: 1.4; }

/* Appendix accounts */
.narr-accounts-table-wrap { background: white; border: 1px solid #e8e3d8; border-radius: 4px; overflow-x: auto; }
.narr-accounts-table { width: 100%; border-collapse: collapse; min-width: 800px; }
.narr-accounts-table th { background: #faf6f0; padding: 12px 14px; text-align: left; font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 700; color: #555b7a; letter-spacing: 0.06em; text-transform: uppercase; border-bottom: 1px solid #e8e3d8; }
.narr-accounts-table td { padding: 11px 14px; font-size: 12px; color: #2d3148; border-bottom: 1px solid #f4ede1; }
.narr-accounts-acv { font-family: 'JetBrains Mono', monospace; color: #c4520f !important; font-weight: 700; }
.narr-accounts-table tr:last-child td { border-bottom: none; }

/* Footers */
.narr-footer { margin-top: 28px; padding: 16px 20px; background: #faf6f0; border-left: 3px solid #c4520f; font-size: 13px; line-height: 1.6; color: #2d3148; border-radius: 0 3px 3px 0; }
.narr-footer-warn { background: #fdf4eb; }

/* =====================================================================
   PRESENT MODE
   ===================================================================== */
.narr-present { position: fixed; inset: 0; background: #0a0e27; z-index: 9999; display: flex; flex-direction: column; }
.narr-present-topbar { display: flex; align-items: center; justify-content: space-between; padding: 14px 24px; border-bottom: 1px solid rgba(255,255,255,0.1); }
.narr-present-meta { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: #8b91a8; letter-spacing: 0.08em; }
.narr-present-close { background: transparent; border: 1px solid rgba(255,255,255,0.2); color: white; width: 32px; height: 32px; border-radius: 50%; cursor: pointer; font-size: 14px; transition: all 0.15s; }
.narr-present-close:hover { background: rgba(255,255,255,0.1); border-color: white; }
.narr-present-stage { flex: 1; overflow: auto; background: white; margin: 24px; border-radius: 6px; box-shadow: 0 20px 60px rgba(0,0,0,0.4); }
.narr-present-stage .narr-slide { padding: 60px 70px 50px 70px; border-bottom: none; }
.narr-present-controls { display: flex; align-items: center; justify-content: center; gap: 24px; padding: 16px; }
.narr-present-prev, .narr-present-next { background: rgba(255,255,255,0.06); color: white; border: 1px solid rgba(255,255,255,0.15); width: 44px; height: 44px; border-radius: 50%; cursor: pointer; font-size: 18px; transition: all 0.15s; }
.narr-present-prev:hover, .narr-present-next:hover { background: #c4520f; border-color: #c4520f; }
.narr-present-counter { font-family: 'JetBrains Mono', monospace; font-size: 14px; font-weight: 700; color: white; letter-spacing: 0.1em; min-width: 100px; text-align: center; }
.narr-present-hint { text-align: center; padding-bottom: 14px; font-family: 'JetBrains Mono', monospace; font-size: 10px; color: #555b7a; letter-spacing: 0.08em; }
@keyframes narrFadeIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }

/* =====================================================================
   PRINT — clean PDF output
   ===================================================================== */
@media print {
  body * { visibility: hidden; }
  #narrative-container, #narrative-container * { visibility: visible; }
  #narrative-container { position: absolute; left: 0; top: 0; width: 100%; }
  .narr-toolbar, .narr-nav { display: none !important; }
  .narr-root { grid-template-columns: 1fr !important; background: white; }
  .narr-slide { page-break-after: always; padding: 40px 50px; max-width: none; }
  .narr-slide:last-child { page-break-after: auto; }
  .narr-cover { padding: 40px; }
  .narr-present { display: none !important; }
  .narr-bottomline, .narr-stat, .narr-col, .narr-num-item, .narr-rec-card, .narr-anchor, .narr-segment, .narr-impl-move, .narr-commitment, .narr-example, .narr-closing { box-shadow: none !important; break-inside: avoid; }
}

/* Mobile */
@media (max-width: 900px) {
  .narr-root { grid-template-columns: 1fr; }
  .narr-nav { display: none; }
  .narr-slide { padding: 50px 28px; }
  .narr-three-col, .narr-lens-grid, .narr-rec-grid, .narr-anchor-row, .narr-splits, .narr-structure-grid, .narr-npi-grid, .narr-growth-stages, .narr-commitments, .narr-two-list { grid-template-columns: 1fr; }
  .narr-title { font-size: 28px; }
  .narr-cover-title { font-size: 38px; }
  .narr-seg-grid { grid-template-columns: repeat(2, 1fr); }
  .narr-impl-move { grid-template-columns: 1fr; }
  .narr-impl-period { border-right: none; padding-right: 0; padding-bottom: 8px; }
}

/* =====================================================================
   v2.13 ADDITIONS — Methodology callouts, floor warnings, charts, badges
   ===================================================================== */

/* Methodology callout in Three-Lens (P0-1) */
.tri-lens-method {
  margin-top: 14px;
  padding: 12px 14px;
  background: #faf6f0;
  border-left: 3px solid #c4520f;
  font-size: 12px;
  line-height: 1.55;
  color: #2d3148;
  border-radius: 0 3px 3px 0;
}
.tri-method-kicker {
  display: block;
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #c4520f;
  margin-bottom: 6px;
}
.tri-lens-method strong { color: #0a0e27; font-weight: 700; }

/* 47.5% floor warning marker on waterfall (P0-3) */
.wf2-floorline {
  position: relative;
  margin: 8px 0 14px 0;
  padding: 10px 14px;
  background: linear-gradient(90deg, rgba(196,82,15,0.04) 0%, rgba(196,82,15,0.08) 47.5%, rgba(196,82,15,0.04) 100%);
  border-left: 3px solid #c4520f;
  font-size: 11px;
  line-height: 1.5;
  color: #1a1a1a;
  border-radius: 0 3px 3px 0;
}
.wf2-floorline-bar {
  position: relative;
  height: 3px;
  background: #e8e3d8;
  margin: 8px 0 6px 0;
  border-radius: 2px;
}
.wf2-floorline-marker {
  position: absolute;
  left: 47.5%;
  top: -3px;
  width: 2px;
  height: 9px;
  background: #c4520f;
}
.wf2-floorline-marker::after {
  content: '47.5% floor';
  position: absolute;
  top: 11px;
  left: 50%;
  transform: translateX(-50%);
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  font-weight: 700;
  color: #c4520f;
  letter-spacing: 0.04em;
  white-space: nowrap;
}
.wf2-floorline-pos {
  position: absolute;
  top: -3px;
  width: 8px;
  height: 9px;
  background: #1a1a1a;
  border-radius: 1px;
  transform: translateX(-4px);
}
.wf2-floorline-pos.breach { background: #c1284b; }
.wf2-floorline-pos.warn { background: #b8540a; }
.wf2-floorline-text {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-top: 14px;
  font-size: 11px;
}
.wf2-floorline-text strong { font-family: 'JetBrains Mono', monospace; font-size: 12px; color: #0a0e27; }
.wf2-floorline.breach { background: linear-gradient(90deg, rgba(193,40,75,0.06) 0%, rgba(193,40,75,0.12) 100%); border-left-color: #c1284b; }
.wf2-floorline.breach strong { color: #c1284b; }

/* CFO override banner — when deal summary is blocked (P0-2) */
.cfo-gate-banner {
  margin: 16px 0;
  padding: 18px 22px;
  background: #fadee5;
  border: 2px solid #c1284b;
  border-radius: 4px;
  color: #1a1a1a;
  font-size: 14px;
  line-height: 1.5;
}
.cfo-gate-banner-head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 8px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #c1284b;
}
.cfo-gate-banner-head::before { content: '⛔'; font-size: 18px; }
.cfo-gate-banner-body { font-size: 13px; line-height: 1.6; color: #1a1a1a; }
.cfo-gate-banner-body strong { color: #c1284b; font-weight: 700; }
.cfo-gate-actions { display: flex; gap: 10px; margin-top: 14px; }
.cfo-gate-btn { display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; font-size: 12px; font-weight: 600; border: 1px solid #c1284b; background: white; color: #c1284b; border-radius: 3px; cursor: pointer; text-decoration: none; }
.cfo-gate-btn-primary { background: #c1284b; color: white; }
.cfo-gate-btn:hover { background: #c1284b; color: white; }

/* Drivers expander in Unit Economics (P0-4) */
.ue-drivers {
  margin-top: 24px;
  padding: 20px 24px;
  background: white;
  border: 1px solid #e8e3d8;
  border-radius: 4px;
}
.ue-drivers-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  font-weight: 700;
  color: #c4520f;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.ue-drivers-head::after { content: '+'; font-size: 18px; transition: transform 0.2s; }
.ue-drivers.open .ue-drivers-head::after { transform: rotate(45deg); }
.ue-drivers-body { display: none; margin-top: 18px; }
.ue-drivers.open .ue-drivers-body { display: block; }
.ue-drivers-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; }
.ue-driver {
  padding: 14px;
  background: #faf6f0;
  border-radius: 3px;
}
.ue-driver-key {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  font-weight: 700;
  color: #c4520f;
  letter-spacing: 0.06em;
  margin-bottom: 6px;
}
.ue-driver-val {
  font-family: 'Charter', Georgia, serif;
  font-size: 22px;
  font-weight: 600;
  color: #0a0e27;
  margin-bottom: 4px;
}
.ue-driver-formula {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  color: #555b7a;
  line-height: 1.4;
}

/* NRR sensitivity strip in ARR Build (P0-4) */
.arr-nrr-sens {
  margin-top: 28px;
  padding: 22px;
  background: white;
  border: 1px solid #e8e3d8;
  border-radius: 4px;
}
.arr-nrr-sens-head {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #c4520f;
  text-transform: uppercase;
  margin-bottom: 6px;
}
.arr-nrr-sens-sub { font-size: 13px; color: #555b7a; margin-bottom: 18px; }
.arr-nrr-table { width: 100%; border-collapse: collapse; }
.arr-nrr-table th { padding: 10px 12px; text-align: left; font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 700; letter-spacing: 0.08em; color: #555b7a; text-transform: uppercase; background: #faf6f0; border-bottom: 1px solid #e8e3d8; }
.arr-nrr-table td { padding: 11px 12px; font-size: 13px; color: #2d3148; border-bottom: 1px solid #f4ede1; }
.arr-nrr-table td:first-child { font-weight: 600; color: #0a0e27; }
.arr-nrr-base { background: #fff7ed; }
.arr-nrr-base td { color: #c4520f; font-weight: 700; }

/* Local-answer badge on chat (P1-8) */
.chat-msg-source-badge {
  display: inline-block;
  padding: 2px 8px;
  margin-left: 8px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  border-radius: 2px;
  vertical-align: middle;
}
.chat-msg-source-badge.claude { background: #d8f0e1; color: #1b7a4a; }
.chat-msg-source-badge.local { background: #fde9b4; color: #b8540a; }

/* Vendor win/loss chips (P2-10) */
.vm2-winloss {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid #f4ede1;
}
.vm2-wl-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 8px;
  font-size: 10px;
  font-weight: 600;
  border-radius: 2px;
  line-height: 1.3;
}
.vm2-wl-chip-win { background: #d8f0e1; color: #1b7a4a; }
.vm2-wl-chip-win::before { content: '↑'; font-weight: 700; }
.vm2-wl-chip-loss { background: #fadee5; color: #c1284b; }
.vm2-wl-chip-loss::before { content: '↓'; font-weight: 700; }
.vm2-wl-label {
  display: block;
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #555b7a;
  text-transform: uppercase;
  margin-bottom: 8px;
  width: 100%;
}

/* Board-brief style (P2-9) — replaces eb-hero gradient */
.eb-brief {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-bottom: 32px;
}
.eb-brief-block {
  padding: 22px 24px;
  background: white;
  border: 1px solid #e8e3d8;
  border-radius: 3px;
}
.eb-brief-block.primary {
  border-left: 3px solid #c4520f;
}
.eb-brief-eyebrow {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: #c4520f;
  text-transform: uppercase;
  margin-bottom: 12px;
}
.eb-brief-headline {
  font-family: 'Charter', Georgia, serif;
  font-size: 22px;
  line-height: 1.2;
  font-weight: 600;
  color: #0a0e27;
  margin: 0 0 10px 0;
}
.eb-brief-body { font-size: 13px; line-height: 1.6; color: #2d3148; margin: 0; }
.eb-brief-stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin-top: 14px; }
.eb-brief-stat-label { font-family: 'JetBrains Mono', monospace; font-size: 9px; font-weight: 600; color: #8b91a8; letter-spacing: 0.06em; text-transform: uppercase; }
.eb-brief-stat-val { font-family: 'Charter', Georgia, serif; font-size: 26px; font-weight: 600; color: #0a0e27; line-height: 1; margin-top: 4px; }
.eb-brief-stat-val.accent { color: #c4520f; }

/* Chart containers for Unit Econ + Cockpit (P2-11) */
.econ-chart-wrap {
  margin-top: 28px;
  padding: 24px;
  background: white;
  border: 1px solid #e8e3d8;
  border-radius: 4px;
}
.econ-chart-head {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  font-weight: 700;
  color: #c4520f;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 6px;
}
.econ-chart-title {
  font-family: 'Charter', Georgia, serif;
  font-size: 18px;
  font-weight: 600;
  color: #0a0e27;
  margin: 0 0 12px 0;
}
.econ-chart-sub { font-size: 12px; color: #737373; margin-bottom: 18px; line-height: 1.5; }
.econ-chart-canvas { position: relative; height: 280px; }

/* Markdown rendering polish for chat (P1-5) */
.chat-msg-bubble h1, .chat-msg-bubble h2, .chat-msg-bubble h3 {
  font-family: 'Charter', Georgia, serif;
  font-weight: 600;
  color: #0a0e27;
  margin: 14px 0 8px 0;
  line-height: 1.3;
}
.chat-msg-bubble h1 { font-size: 18px; }
.chat-msg-bubble h2 { font-size: 16px; }
.chat-msg-bubble h3 { font-size: 14px; }
.chat-msg-bubble h1:first-child, .chat-msg-bubble h2:first-child, .chat-msg-bubble h3:first-child { margin-top: 0; }
.chat-msg-bubble ul, .chat-msg-bubble ol { margin: 8px 0 12px 0; padding-left: 22px; }
.chat-msg-bubble li { margin-bottom: 5px; line-height: 1.55; }
.chat-msg-bubble blockquote { margin: 10px 0; padding: 8px 14px; background: #faf6f0; border-left: 3px solid #c4520f; color: #2d3148; font-style: italic; }
.chat-msg-bubble code { font-family: 'JetBrains Mono', monospace; font-size: 12px; background: #faf6f0; padding: 1px 5px; border-radius: 2px; color: #c4520f; }
.chat-msg-bubble pre { background: #1a1a1a; color: #e8e3d8; padding: 12px 14px; border-radius: 3px; overflow-x: auto; margin: 10px 0; font-size: 12px; line-height: 1.5; }
.chat-msg-bubble pre code { background: transparent; color: inherit; padding: 0; }
.chat-msg-bubble table { border-collapse: collapse; margin: 12px 0; width: 100%; font-size: 13px; }
.chat-msg-bubble th, .chat-msg-bubble td { padding: 8px 10px; text-align: left; border-bottom: 1px solid #e8e3d8; }
.chat-msg-bubble th { background: #faf6f0; font-weight: 700; font-size: 11px; letter-spacing: 0.04em; text-transform: uppercase; color: #555b7a; }

@media (max-width: 880px) {
  .eb-brief { grid-template-columns: 1fr; }
}

/* =====================================================================
   v3.0 — Method · WTP Lab · Teardowns · Voices · NPI
   ===================================================================== */

.m3-empty { padding: 60px; text-align: center; color: #737373; }

/* THE METHOD */
.m3-root { background: #faf6f0; min-height: 100vh; }
.m3-cover { padding: 80px 80px 60px; max-width: 1080px; margin: 0 auto; border-bottom: 1px solid #e8e3d8; }
.m3-cover-mark { font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 700; letter-spacing: 0.18em; color: #c4520f; margin-bottom: 40px; }
.m3-cover-title { font-family: Charter, Georgia, serif; font-size: 52px; line-height: 1.06; font-weight: 500; color: #0a0e27; letter-spacing: -0.025em; margin: 0 0 18px 0; }
.m3-cover-sub { font-family: Charter, Georgia, serif; font-size: 22px; line-height: 1.3; font-style: italic; color: #555b7a; margin: 0 0 40px 0; max-width: 780px; }
.m3-cover-meta { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: #737373; letter-spacing: 0.06em; margin-bottom: 48px; }
.m3-cover-toc { border-top: 1px solid #e8e3d8; padding-top: 30px; }
.m3-cover-toc-lbl { font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 700; color: #c4520f; letter-spacing: 0.1em; text-transform: uppercase; margin-bottom: 14px; }
.m3-cover-toc-link { display: block; font-size: 14px; color: #2d3148; padding: 8px 0; text-decoration: none; border-bottom: 1px solid #f4ede1; transition: color 0.15s; }
.m3-cover-toc-link:hover { color: #c4520f; }

.m3-shell { display: grid; grid-template-columns: 240px 1fr; gap: 0; max-width: 1280px; margin: 0 auto; padding: 0 32px 120px; }
.m3-nav { padding: 30px 0; position: sticky; top: 20px; align-self: start; max-height: calc(100vh - 40px); overflow-y: auto; border-right: 1px solid #e8e3d8; }
.m3-nav-item { display: flex; align-items: baseline; gap: 12px; padding: 9px 18px 9px 0; font-size: 12px; color: #555b7a; text-decoration: none; border-left: 2px solid transparent; padding-left: 16px; transition: all 0.1s; }
.m3-nav-item:hover { color: #c4520f; border-left-color: rgba(196,82,15,0.4); background: rgba(196,82,15,0.04); }
.m3-nav-num { font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 700; color: #8b91a8; min-width: 20px; }
.m3-nav-t { line-height: 1.35; }

.m3-main { padding: 30px 0 30px 50px; }
.m3-section { margin-bottom: 70px; max-width: 760px; }
.m3-section-head { margin-bottom: 28px; }
.m3-section-meta { display: flex; align-items: center; gap: 14px; margin-bottom: 12px; font-family: 'JetBrains Mono', monospace; font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: #8b91a8; }
.m3-section-num { font-weight: 700; color: #c4520f; }
.m3-section-eyebrow { color: #555b7a; }
.m3-section-title { font-family: Charter, Georgia, serif; font-size: 34px; line-height: 1.15; font-weight: 500; color: #0a0e27; letter-spacing: -0.018em; margin: 0 0 16px 0; }
.m3-bottomline { background: #fff7ed; border-left: 3px solid #c4520f; padding: 14px 18px; font-size: 15px; line-height: 1.55; color: #1a1a1a; margin: 0 0 24px 0; border-radius: 0 3px 3px 0; }
.m3-bottomline strong { color: #c4520f; font-weight: 700; }
.m3-section-body { font-size: 16px; line-height: 1.7; color: #2d3148; }
.m3-section-body p { margin: 0 0 18px 0; }
.m3-section-body p:last-child { margin-bottom: 0; }
.m3-section-body strong { color: #0a0e27; font-weight: 700; }

.m3-statrow { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 14px; margin: 28px 0; }
.m3-stat { padding: 18px 16px; background: white; border: 1px solid #e8e3d8; border-radius: 3px; }
.m3-stat-v { font-family: Charter, Georgia, serif; font-size: 30px; font-weight: 600; color: #c4520f; line-height: 1; margin-bottom: 8px; letter-spacing: -0.015em; }
.m3-stat-l { font-size: 13px; font-weight: 600; color: #0a0e27; line-height: 1.3; margin-bottom: 4px; }
.m3-stat-s { font-size: 11px; color: #737373; line-height: 1.4; }

.m3-callout { margin: 24px 0; padding: 22px 26px; background: white; border: 1px solid #e8e3d8; border-left: 3px solid #c4520f; border-radius: 0 3px 3px 0; font-family: Charter, Georgia, serif; font-size: 17px; line-height: 1.55; font-style: italic; color: #1f2547; }
.m3-callout-attr { margin-top: 12px; font-family: 'Inter', sans-serif; font-size: 12px; font-style: normal; color: #737373; }

.m3-tbl-wrap { margin: 24px 0; overflow-x: auto; }
.m3-tbl { width: 100%; border-collapse: collapse; background: white; border: 1px solid #e8e3d8; border-radius: 3px; }
.m3-tbl th { padding: 12px 14px; text-align: left; font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: #555b7a; background: #faf6f0; border-bottom: 1px solid #e8e3d8; }
.m3-tbl td { padding: 11px 14px; font-size: 13px; line-height: 1.5; color: #2d3148; border-bottom: 1px solid #f4ede1; vertical-align: top; }
.m3-tbl tr:last-child td { border-bottom: none; }
.m3-tbl-rowhead { font-weight: 600; color: #0a0e27 !important; }
.m3-tbl-num { font-family: 'JetBrains Mono', monospace; color: #c4520f; font-weight: 700; }

.m3-cites { margin-top: 20px; padding-top: 14px; border-top: 1px solid #f4ede1; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.m3-cites-lbl { font-family: 'JetBrains Mono', monospace; font-size: 9px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: #8b91a8; margin-right: 4px; }
.m3-cite { font-family: 'JetBrains Mono', monospace; font-size: 10px; padding: 3px 8px; background: #faf6f0; border: 1px solid #e8e3d8; border-radius: 2px; color: #555b7a; }

/* WTP RESEARCH LAB */
.wtp-root { background: #faf6f0; padding: 50px 40px 100px; max-width: 1240px; margin: 0 auto; }
.wtp-head { margin-bottom: 40px; padding-bottom: 28px; border-bottom: 1px solid #e8e3d8; }
.wtp-eyebrow { font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 700; letter-spacing: 0.1em; color: #c4520f; text-transform: uppercase; margin-bottom: 10px; }
.wtp-title { font-family: Charter, Georgia, serif; font-size: 40px; font-weight: 500; line-height: 1.1; color: #0a0e27; letter-spacing: -0.02em; margin: 0 0 16px 0; }
.wtp-lede { font-size: 15px; line-height: 1.65; color: #2d3148; max-width: 880px; margin: 0; }

.wtp-status { display: inline-block; padding: 3px 10px; font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; border-radius: 2px; margin-left: 8px; }
.wtp-status-done { background: #d8f0e1; color: #1b7a4a; }
.wtp-status-derived { background: #fde9b4; color: #b8540a; }

.wtp-block { margin-bottom: 48px; padding: 28px 30px; background: white; border: 1px solid #e8e3d8; border-radius: 4px; }
.wtp-block-eyebrow { font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 700; letter-spacing: 0.1em; color: #c4520f; text-transform: uppercase; margin-bottom: 16px; }
.wtp-block-sub { font-size: 14px; line-height: 1.65; color: #2d3148; margin: 0 0 20px 0; }
.wtp-methodology { font-size: 13px; line-height: 1.65; color: #555b7a; padding: 14px 16px; background: #faf6f0; border-left: 3px solid #c4520f; border-radius: 0 3px 3px 0; margin: 14px 0 0 0; }
.wtp-design { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 12px; }
.wtp-design-row { display: flex; flex-direction: column; gap: 4px; padding: 14px; background: #faf6f0; border-radius: 3px; }
.wtp-design-k { font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 700; color: #c4520f; letter-spacing: 0.08em; text-transform: uppercase; }
.wtp-design-v { font-size: 14px; font-weight: 600; color: #0a0e27; }

.psm-grid { display: grid; grid-template-columns: 1fr; gap: 20px; margin-top: 8px; }
.psm-card { padding: 22px 24px; background: #faf6f0; border: 1px solid #e8e3d8; border-radius: 4px; }
.psm-head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 16px; }
.psm-name { font-family: Charter, Georgia, serif; font-size: 18px; font-weight: 600; color: #0a0e27; }
.psm-anchor { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: #555b7a; }
.psm-anchor strong { color: #c4520f; font-size: 13px; font-weight: 700; }
.psm-curve { position: relative; height: 100px; margin: 24px 0 28px; }
.psm-axis { position: relative; height: 1px; top: 50px; background: #e8e3d8; }
.psm-tick { position: absolute; top: -5px; width: 1px; height: 10px; background: #c5c9d6; }
.psm-tick span { position: absolute; top: 14px; left: 50%; transform: translateX(-50%); font-family: 'JetBrains Mono', monospace; font-size: 10px; color: #737373; white-space: nowrap; }
.psm-band { position: absolute; top: 38px; height: 24px; background: rgba(196,82,15,0.18); border-top: 1px solid rgba(196,82,15,0.4); border-bottom: 1px solid rgba(196,82,15,0.4); border-radius: 2px; }
.psm-pt { position: absolute; top: 36px; transform: translateX(-50%); text-align: center; }
.psm-pt span { display: block; font-family: 'JetBrains Mono', monospace; font-size: 9px; line-height: 1.3; color: #555b7a; white-space: nowrap; background: white; padding: 2px 4px; border-radius: 1px; border: 1px solid #e8e3d8; margin-top: -8px; }
.psm-opp { top: -10px; }
.psm-opp span { background: #c4520f; color: white; border-color: #c4520f; font-weight: 700; }
.psm-tc span, .psm-te span { color: #8b91a8; }
.psm-rationale { font-size: 13px; line-height: 1.6; color: #2d3148; margin: 0 0 12px 0; }
.psm-foot { font-family: 'JetBrains Mono', monospace; font-size: 10px; color: #737373; padding-top: 12px; border-top: 1px solid #e8e3d8; }

.gg-table { background: #faf6f0; padding: 18px 20px; border-radius: 3px; }
.gg-axis { display: grid; grid-template-columns: repeat(auto-fit, minmax(80px, 1fr)); gap: 4px; padding-left: 200px; padding-bottom: 12px; border-bottom: 1px solid #e8e3d8; font-family: 'JetBrains Mono', monospace; font-size: 10px; color: #737373; }
.gg-axis span { text-align: center; }
.gg-row { display: grid; grid-template-columns: 200px 1fr; gap: 16px; align-items: end; padding: 14px 0; border-bottom: 1px solid #f4ede1; }
.gg-row:last-child { border-bottom: none; }
.gg-label { font-size: 12px; font-weight: 600; color: #0a0e27; padding-bottom: 8px; }
.gg-curve { display: grid; grid-template-columns: repeat(auto-fit, minmax(80px, 1fr)); gap: 4px; align-items: end; height: 80px; }
.gg-bar-slot { display: flex; flex-direction: column; align-items: center; gap: 4px; }
.gg-bar { width: 100%; background: var(--gg-c, #c4520f); border-radius: 2px 2px 0 0; min-height: 2px; }
.gg-bar-v { font-family: 'JetBrains Mono', monospace; font-size: 9px; color: #555b7a; }

.eve-formula { margin-top: 16px; padding: 16px 18px; background: #faf6f0; border-left: 3px solid #c4520f; border-radius: 0 3px 3px 0; }
.eve-formula-lbl { display: block; font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 700; color: #c4520f; letter-spacing: 0.08em; text-transform: uppercase; margin-bottom: 8px; }
.eve-formula code { display: block; font-family: 'JetBrains Mono', monospace; font-size: 12px; color: #1a1a1a; line-height: 1.55; padding: 8px 0; }
.eve-formula-out { font-family: Charter, Georgia, serif; font-size: 18px; color: #c4520f; }

.tri-summary { padding: 22px; background: #faf6f0; border-radius: 3px; }
.tri-summary-band { display: flex; align-items: center; gap: 16px; margin-bottom: 16px; padding-bottom: 16px; border-bottom: 1px solid #e8e3d8; }
.tri-summary-end { font-family: Charter, Georgia, serif; font-size: 28px; font-weight: 600; color: #555b7a; }
.tri-summary-mid { flex: 1; text-align: center; padding: 8px 14px; background: rgba(196,82,15,0.12); border-radius: 3px; font-size: 12px; color: #555b7a; }
.tri-summary-mid strong { font-family: Charter, Georgia, serif; font-size: 22px; color: #c4520f; }
.tri-summary-rec { text-align: center; font-size: 14px; color: #2d3148; }
.tri-summary-rec strong { font-family: Charter, Georgia, serif; font-size: 22px; color: #0a0e27; }

.g2-grid { display: grid; gap: 12px; }
.g2-hyp { display: grid; grid-template-columns: 50px 1fr; gap: 16px; padding: 18px 20px; background: #faf6f0; border-radius: 3px; }
.g2-hyp-id { font-family: Charter, Georgia, serif; font-size: 24px; font-weight: 600; color: #c4520f; line-height: 1; }
.g2-hyp-text { font-size: 14px; font-weight: 600; color: #0a0e27; line-height: 1.45; margin-bottom: 8px; }
.g2-hyp-pass { font-size: 12px; color: #555b7a; margin-bottom: 6px; }
.g2-hyp-lbl { font-family: 'JetBrains Mono', monospace; font-size: 9px; font-weight: 700; letter-spacing: 0.08em; color: #8b91a8; text-transform: uppercase; margin-right: 6px; }
.g2-hyp-why { font-size: 12px; color: #737373; line-height: 1.55; font-style: italic; }

.wtp-foot { margin-top: 30px; padding: 14px 18px; background: #faf6f0; border-left: 3px solid #c4520f; font-size: 12px; color: #555b7a; line-height: 1.6; border-radius: 0 3px 3px 0; font-style: italic; }

/* VENDOR TEARDOWNS */
.td-root { background: #faf6f0; min-height: 100vh; padding: 50px 40px 100px; max-width: 1280px; margin: 0 auto; }
.td-head { margin-bottom: 32px; padding-bottom: 24px; border-bottom: 1px solid #e8e3d8; }
.td-head-eyebrow { font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 700; letter-spacing: 0.1em; color: #c4520f; text-transform: uppercase; margin-bottom: 10px; }
.td-head-title { font-family: Charter, Georgia, serif; font-size: 40px; font-weight: 500; line-height: 1.1; color: #0a0e27; letter-spacing: -0.02em; margin: 0 0 14px 0; }
.td-head-lede { font-size: 14px; line-height: 1.65; color: #2d3148; max-width: 880px; margin: 0; }

.td-shell { display: grid; grid-template-columns: 240px 1fr; gap: 32px; align-items: start; }
.td-nav { position: sticky; top: 20px; display: flex; flex-direction: column; gap: 6px; }
.td-nav-item { display: flex; flex-direction: column; gap: 4px; padding: 14px 16px; background: white; border: 1px solid #e8e3d8; border-radius: 3px; text-align: left; cursor: pointer; font-family: inherit; transition: all 0.15s; }
.td-nav-item:hover { border-color: #c4520f; }
.td-nav-active { border-left: 3px solid #c4520f; background: #fff7ed; }
.td-nav-name { font-size: 14px; font-weight: 600; color: #0a0e27; }
.td-nav-meta { font-family: 'JetBrains Mono', monospace; font-size: 10px; color: #737373; }

.td-main { background: white; border: 1px solid #e8e3d8; border-radius: 4px; padding: 36px 40px; }
.td-vendor-head { margin-bottom: 28px; padding-bottom: 20px; border-bottom: 1px solid #f4ede1; }
.td-vendor-eyebrow { font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 700; letter-spacing: 0.1em; color: #c4520f; text-transform: uppercase; margin-bottom: 10px; }
.td-vendor-name { font-family: Charter, Georgia, serif; font-size: 34px; font-weight: 500; line-height: 1.1; color: #0a0e27; margin: 0 0 8px 0; letter-spacing: -0.018em; }
.td-vendor-status { font-size: 13px; color: #737373; margin: 0 0 14px 0; }
.td-headline { font-family: Charter, Georgia, serif; font-size: 18px; line-height: 1.4; color: #1f2547; font-style: italic; margin: 0; padding: 14px 18px; background: #fff7ed; border-left: 3px solid #c4520f; border-radius: 0 3px 3px 0; }

.td-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; margin-bottom: 28px; }
.td-stat { padding: 16px 14px; background: #faf6f0; border-radius: 3px; }
.td-stat-v { font-family: Charter, Georgia, serif; font-size: 22px; font-weight: 600; color: #c4520f; margin-bottom: 6px; line-height: 1; }
.td-stat-l { font-size: 12px; font-weight: 600; color: #0a0e27; margin-bottom: 4px; }
.td-stat-s { font-size: 10px; color: #737373; line-height: 1.4; }

.td-section { margin-bottom: 36px; }
.td-section-t { font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 700; letter-spacing: 0.1em; color: #c4520f; text-transform: uppercase; margin: 0 0 14px 0; }
.td-positioning { font-size: 14px; line-height: 1.7; color: #2d3148; }
.td-positioning p { margin: 0 0 12px 0; }

.td-pi { padding: 18px 20px; background: #faf6f0; border-radius: 3px; }
.td-pi-conf { display: inline-block; padding: 3px 8px; background: #d8f0e1; color: #1b7a4a; font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; border-radius: 2px; }
.td-pi-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 14px; margin: 14px 0; }
.td-pi-grid > div { display: flex; flex-direction: column; gap: 2px; }
.td-pi-k { font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 600; color: #8b91a8; letter-spacing: 0.06em; text-transform: uppercase; }
.td-pi-v { font-size: 14px; font-weight: 600; color: #0a0e27; }
.td-pi-src { display: flex; align-items: center; gap: 8px; padding: 8px 10px; background: white; border-radius: 2px; font-size: 12px; color: #555b7a; margin-bottom: 4px; }
.td-pi-src-c { font-family: 'JetBrains Mono', monospace; font-size: 9px; font-weight: 700; padding: 2px 6px; background: rgba(27,122,74,0.15); color: #1b7a4a; border-radius: 2px; text-transform: uppercase; }
.td-pi-notes { font-size: 12px; color: #737373; margin: 8px 0 0 0; line-height: 1.55; }

.td-patterns { display: grid; gap: 12px; }
.td-pattern { padding: 16px 18px; background: #faf6f0; border-radius: 3px; }
.td-pattern-ctx { font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 700; color: #c4520f; letter-spacing: 0.06em; text-transform: uppercase; margin-bottom: 8px; }
.td-pattern-pat { font-size: 13px; color: #2d3148; line-height: 1.55; margin-bottom: 8px; }
.td-pattern-play { font-size: 13px; color: #1a1a1a; line-height: 1.55; }
.td-pattern-play-lbl { font-family: 'JetBrains Mono', monospace; font-size: 9px; font-weight: 700; color: #c4520f; letter-spacing: 0.06em; text-transform: uppercase; margin-right: 6px; }

.td-plays { display: grid; gap: 10px; }
.td-play { padding: 14px 16px; background: #faf6f0; border-radius: 3px; border-left: 3px solid transparent; }
.td-win { border-left-color: #1b7a4a; }
.td-loss { border-left-color: #c1284b; }
.td-play-trigger { font-size: 13px; font-weight: 600; color: #0a0e27; margin-bottom: 6px; }
.td-play-arrow { font-family: 'JetBrains Mono', monospace; font-size: 14px; font-weight: 700; margin-right: 6px; }
.td-win .td-play-arrow { color: #1b7a4a; }
.td-loss .td-play-arrow { color: #c1284b; }
.td-play-play { font-size: 13px; color: #2d3148; line-height: 1.55; }
.td-play-cite { font-family: 'JetBrains Mono', monospace; font-size: 10px; color: #737373; margin-top: 6px; }

.td-rebs { display: grid; gap: 10px; }
.td-reb { display: grid; grid-template-columns: 1fr 26px 1.5fr; gap: 14px; padding: 14px 16px; background: #faf6f0; border-radius: 3px; align-items: start; }
.td-reb-obj { font-family: Charter, Georgia, serif; font-size: 14px; font-style: italic; color: #2d3148; line-height: 1.5; }
.td-reb-arrow { text-align: center; color: #c4520f; font-weight: 700; font-size: 16px; padding-top: 4px; }
.td-reb-rebut { font-size: 13px; color: #0a0e27; line-height: 1.55; }
.td-reb-src { grid-column: 1 / -1; font-family: 'JetBrains Mono', monospace; font-size: 10px; color: #737373; margin-top: 4px; }

.td-quote { font-family: Charter, Georgia, serif; font-size: 16px; line-height: 1.55; font-style: italic; color: #1f2547; padding: 16px 20px; background: #fff7ed; border-left: 3px solid #c4520f; border-radius: 0 3px 3px 0; margin: 0 0 10px 0; }

.td-proofs { display: grid; gap: 8px; }
.td-proof { padding: 10px 14px; background: #faf6f0; border-radius: 3px; }
.td-proof-claim { font-size: 13px; color: #0a0e27; margin-bottom: 4px; }
.td-proof-src { font-family: 'JetBrains Mono', monospace; font-size: 10px; color: #737373; }
.td-proof-conf { color: #1b7a4a; font-weight: 700; text-transform: uppercase; }

.td-onepage { margin-top: 36px; padding: 22px 26px; background: #fff7ed; border: 1px solid #c4520f; border-radius: 3px; }
.td-onepage-lbl { font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 700; letter-spacing: 0.1em; color: #c4520f; text-transform: uppercase; margin-bottom: 12px; }

/* CUSTOMER VOICES */
.cv-root { background: #faf6f0; min-height: 100vh; padding: 50px 60px 100px; max-width: 1160px; margin: 0 auto; }
.cv-head { margin-bottom: 40px; padding-bottom: 28px; border-bottom: 1px solid #e8e3d8; }
.cv-eyebrow { font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 700; letter-spacing: 0.1em; color: #c4520f; text-transform: uppercase; margin-bottom: 10px; }
.cv-title { font-family: Charter, Georgia, serif; font-size: 40px; font-weight: 500; line-height: 1.1; color: #0a0e27; margin: 0 0 14px 0; letter-spacing: -0.02em; }
.cv-lede { font-size: 14px; line-height: 1.65; color: #2d3148; max-width: 880px; margin: 0 0 14px 0; }
.cv-status { display: inline-block; padding: 8px 14px; background: white; border: 1px dashed #b8540a; color: #b8540a; font-family: 'JetBrains Mono', monospace; font-size: 11px; line-height: 1.4; border-radius: 3px; }

.cv-section-lbl { font-family: 'JetBrains Mono', monospace; font-size: 12px; font-weight: 700; letter-spacing: 0.1em; color: #c4520f; text-transform: uppercase; margin: 40px 0 18px 0; padding-bottom: 8px; border-bottom: 1px solid #e8e3d8; }

.cv-theme { background: white; border: 1px solid #e8e3d8; border-radius: 4px; padding: 28px 32px; margin-bottom: 20px; }
.cv-theme-head { display: grid; grid-template-columns: 60px 1fr; gap: 16px; align-items: start; margin-bottom: 18px; }
.cv-theme-num { font-family: Charter, Georgia, serif; font-size: 36px; font-weight: 600; color: #c4520f; line-height: 1; }
.cv-theme-eyebrow { font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 700; letter-spacing: 0.08em; color: #c4520f; text-transform: uppercase; margin-bottom: 8px; }
.cv-theme-title { font-family: Charter, Georgia, serif; font-size: 22px; font-weight: 600; color: #0a0e27; line-height: 1.25; margin: 0; }
.cv-theme-sub { font-size: 14px; line-height: 1.65; color: #2d3148; margin: 0 0 18px 0; }

.cv-quotes { display: grid; gap: 14px; }
.cv-quote { margin: 0; padding: 16px 18px; background: #faf6f0; border-radius: 3px; }
.cv-quote-verbatim { background: #fff7ed; border-left: 3px solid #c4520f; border-radius: 0 3px 3px 0; }
.cv-quote blockquote { margin: 0 0 12px 0; padding: 0; font-family: Charter, Georgia, serif; font-size: 15px; line-height: 1.55; color: #1f2547; }
.cv-quote blockquote::before { content: '"'; color: #c4520f; font-size: 22px; line-height: 0; margin-right: 2px; vertical-align: -8px; }
.cv-quote blockquote::after { content: '"'; color: #c4520f; font-size: 22px; line-height: 0; margin-left: 2px; vertical-align: -8px; }
.cv-quote figcaption { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; font-size: 12px; color: #555b7a; }
.cv-quote-speaker { font-weight: 600; color: #0a0e27; }
.cv-quote-meta { color: #737373; }
.cv-tag { display: inline-block; padding: 2px 6px; font-family: 'JetBrains Mono', monospace; font-size: 9px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; border-radius: 2px; }
.cv-tag-rep { background: #fde9b4; color: #b8540a; }
.cv-tag-verbatim { background: #d8f0e1; color: #1b7a4a; }

.cv-seg { background: white; border: 1px solid #e8e3d8; border-radius: 4px; padding: 28px 32px; margin-bottom: 20px; }
.cv-seg-head { display: grid; grid-template-columns: 60px 1fr; gap: 16px; align-items: center; margin-bottom: 18px; }
.cv-seg-mark { display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; background: #c4520f; color: white; font-family: 'JetBrains Mono', monospace; font-size: 16px; font-weight: 700; border-radius: 50%; }
.cv-seg-name { font-family: Charter, Georgia, serif; font-size: 22px; font-weight: 600; color: #0a0e27; margin: 0 0 4px 0; }
.cv-seg-anchor { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: #555b7a; }
.cv-seg-anchor strong { color: #c4520f; font-size: 12px; }
.cv-seg-profile { font-size: 13px; line-height: 1.65; color: #2d3148; margin: 0 0 14px 0; }
.cv-seg-heard { font-size: 13px; line-height: 1.65; color: #2d3148; margin: 0 0 14px 0; padding: 12px 14px; background: #faf6f0; border-left: 3px solid #c4520f; border-radius: 0 3px 3px 0; }
.cv-seg-heard strong { color: #c4520f; font-weight: 700; }
.cv-seg-price { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 18px; }
.cv-seg-pr { padding: 12px 14px; background: #faf6f0; border-radius: 3px; }
.cv-seg-pr-l { display: block; font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 700; color: #c4520f; letter-spacing: 0.06em; text-transform: uppercase; margin-bottom: 4px; }
.cv-seg-pr-v { font-size: 13px; color: #2d3148; line-height: 1.5; }

.cv-verbatim-list { display: grid; gap: 12px; }

/* NPI PRECEDENT LIBRARY */
.npi-root { background: #faf6f0; min-height: 100vh; padding: 50px 40px 100px; max-width: 1200px; margin: 0 auto; }
.npi-head { margin-bottom: 36px; padding-bottom: 24px; border-bottom: 1px solid #e8e3d8; }
.npi-eyebrow { font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 700; letter-spacing: 0.1em; color: #c4520f; text-transform: uppercase; margin-bottom: 10px; }
.npi-title { font-family: Charter, Georgia, serif; font-size: 40px; font-weight: 500; line-height: 1.1; color: #0a0e27; margin: 0 0 14px 0; letter-spacing: -0.02em; }
.npi-lede { font-size: 14px; line-height: 1.65; color: #2d3148; max-width: 880px; margin: 0; }

.npi-block-l { font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 700; letter-spacing: 0.1em; color: #c4520f; text-transform: uppercase; margin-bottom: 16px; }

.npi-laws-block { margin-bottom: 40px; }
.npi-laws { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 12px; }
.npi-law { display: grid; grid-template-columns: 40px 1fr; gap: 12px; padding: 18px 20px; background: white; border: 1px solid #e8e3d8; border-radius: 3px; }
.npi-law-id { font-family: Charter, Georgia, serif; font-size: 28px; font-weight: 600; color: #c4520f; line-height: 1; }
.npi-law-text { font-size: 13px; font-weight: 600; color: #0a0e27; line-height: 1.4; margin-bottom: 8px; }
.npi-law-sum { font-size: 12px; line-height: 1.6; color: #555b7a; margin: 0 0 8px 0; }
.npi-law-egs { display: flex; flex-wrap: wrap; gap: 6px; }
.npi-law-eg { font-family: 'JetBrains Mono', monospace; font-size: 9px; padding: 2px 6px; background: #faf6f0; border-radius: 2px; color: #737373; }

.npi-prec-block { margin-bottom: 24px; }
.npi-precs { display: grid; gap: 12px; }
.npi-prec { background: white; border: 1px solid #e8e3d8; border-radius: 4px; overflow: hidden; }
.npi-prec-open { border-color: #c4520f; }
.npi-prec-head { display: grid; grid-template-columns: 1fr auto auto; gap: 14px; align-items: center; padding: 18px 22px; cursor: pointer; transition: background 0.15s; }
.npi-prec-head:hover { background: #faf6f0; }
.npi-prec-open .npi-prec-head { background: #fff7ed; }
.npi-prec-co { display: flex; flex-direction: column; gap: 4px; }
.npi-prec-name { font-family: Charter, Georgia, serif; font-size: 22px; font-weight: 600; color: #0a0e27; line-height: 1; }
.npi-prec-cat { font-family: 'JetBrains Mono', monospace; font-size: 10px; color: #737373; letter-spacing: 0.06em; }
.npi-prec-eyebrow { font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 700; color: #c4520f; letter-spacing: 0.08em; text-transform: uppercase; }
.npi-prec-toggle { font-family: Charter, Georgia, serif; font-size: 28px; font-weight: 600; color: #c4520f; line-height: 1; width: 28px; text-align: center; }
.npi-prec-relevance { padding: 0 22px 16px; font-size: 13px; line-height: 1.65; color: #555b7a; font-style: italic; }
.npi-prec-open .npi-prec-relevance { border-bottom: 1px solid #f4ede1; }
.npi-prec-body { padding: 20px 22px 24px; }
.npi-prec-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 10px; margin-bottom: 20px; }
.npi-stat { padding: 12px 14px; background: #faf6f0; border-radius: 3px; }
.npi-stat-v { font-family: Charter, Georgia, serif; font-size: 20px; font-weight: 600; color: #c4520f; margin-bottom: 4px; line-height: 1; }
.npi-stat-l { font-size: 11px; font-weight: 600; color: #0a0e27; margin-bottom: 2px; }
.npi-stat-s { font-size: 10px; color: #737373; line-height: 1.4; }
.npi-prec-sum { font-size: 14px; line-height: 1.65; color: #2d3148; margin-bottom: 20px; }
.npi-prec-sum p { margin: 0 0 12px 0; }
.npi-prec-block { margin-top: 18px; }
.npi-prec-jr { display: grid; gap: 6px; }
.npi-jr { display: grid; grid-template-columns: 140px 200px 1fr; gap: 14px; padding: 10px 14px; background: #faf6f0; border-radius: 3px; align-items: start; }
.npi-jr-phase { font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 700; color: #c4520f; letter-spacing: 0.06em; text-transform: uppercase; }
.npi-jr-price { font-family: 'JetBrains Mono', monospace; font-size: 12px; font-weight: 600; color: #0a0e27; }
.npi-jr-ctx { font-size: 12px; color: #555b7a; line-height: 1.5; }
.npi-prec-lessons { display: grid; gap: 10px; }
.npi-lesson { padding: 12px 14px; background: #faf6f0; border-left: 3px solid #c4520f; border-radius: 0 3px 3px 0; }
.npi-lesson-l { font-size: 13px; font-weight: 600; color: #0a0e27; margin-bottom: 6px; line-height: 1.45; }
.npi-lesson-app { font-size: 12px; line-height: 1.6; color: #2d3148; }
.npi-lesson-app strong { color: #c4520f; }
.npi-prec-srcs { display: grid; gap: 4px; }
.npi-src { display: grid; grid-template-columns: 70px 1fr 1fr; gap: 10px; padding: 8px 12px; background: #faf6f0; border-radius: 3px; font-size: 11px; align-items: center; }
.npi-src-c { font-family: 'JetBrains Mono', monospace; font-weight: 700; padding: 2px 6px; background: rgba(27,122,74,0.15); color: #1b7a4a; border-radius: 2px; letter-spacing: 0.06em; text-transform: uppercase; font-size: 9px; text-align: center; }
.npi-src-f { font-size: 12px; color: #0a0e27; }
.npi-src-s { font-family: 'JetBrains Mono', monospace; font-size: 10px; color: #737373; }

@media (max-width: 900px) {
  .m3-shell, .td-shell { grid-template-columns: 1fr; }
  .m3-cover, .wtp-root, .td-root, .cv-root, .npi-root { padding: 40px 20px; }
  .m3-cover-title { font-size: 36px; }
  .m3-main { padding: 20px 0; }
}

/* =====================================================================
   v3.1 — THE TWO-LENS COMPETITIVE MAP
   ===================================================================== */
.cmp-root { background: #faf6f0; min-height: 100vh; padding: 50px 40px 100px; max-width: 1240px; margin: 0 auto; }

.cmp-head { margin-bottom: 48px; padding-bottom: 28px; border-bottom: 1px solid #e8e3d8; }
.cmp-eyebrow { font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 700; letter-spacing: 0.1em; color: #c4520f; text-transform: uppercase; margin-bottom: 10px; }
.cmp-title { font-family: Charter, Georgia, serif; font-size: 40px; line-height: 1.1; font-weight: 500; color: #0a0e27; letter-spacing: -0.02em; margin: 0 0 18px 0; }
.cmp-bottomline { background: #fff7ed; border-left: 3px solid #c4520f; padding: 14px 20px; font-size: 15px; line-height: 1.55; color: #1a1a1a; margin: 0 0 20px 0; border-radius: 0 3px 3px 0; }
.cmp-bottomline strong { color: #c4520f; font-weight: 700; }
.cmp-primer-body { font-size: 14px; line-height: 1.7; color: #2d3148; }
.cmp-primer-body p { margin: 0 0 12px 0; }

.cmp-block { margin-bottom: 50px; }
.cmp-block-l { font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 700; letter-spacing: 0.1em; color: #c4520f; text-transform: uppercase; margin-bottom: 20px; padding-bottom: 8px; border-bottom: 1px solid #e8e3d8; }

.cmp-lane { background: white; border: 1px solid #e8e3d8; border-radius: 4px; padding: 28px 32px; margin-bottom: 18px; }
.cmp-lane-productivity { border-left: 4px solid #555b7a; }
.cmp-lane-premium-seb { border-left: 4px solid #c4520f; }
.cmp-lane-head { margin-bottom: 18px; }
.cmp-lane-eyebrow { font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 700; letter-spacing: 0.1em; color: #c4520f; text-transform: uppercase; margin-bottom: 8px; }
.cmp-lane-productivity .cmp-lane-eyebrow { color: #555b7a; }
.cmp-lane-title { font-family: Charter, Georgia, serif; font-size: 24px; font-weight: 600; color: #0a0e27; margin: 0 0 14px 0; line-height: 1.2; }
.cmp-lane-meta { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; padding: 12px; background: #faf6f0; border-radius: 3px; }
.cmp-lane-meta-k { display: block; font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 700; color: #c4520f; letter-spacing: 0.06em; text-transform: uppercase; margin-bottom: 4px; }
.cmp-lane-productivity .cmp-lane-meta-k { color: #555b7a; }
.cmp-lane-meta-v { font-size: 12px; color: #0a0e27; line-height: 1.4; }
.cmp-lane-sum { font-size: 14px; line-height: 1.6; color: #2d3148; margin: 16px 0 24px 0; }

.cmp-lane-track { position: relative; height: 140px; margin: 30px 0 24px 0; padding: 24px 0; }
.cmp-lane-axis { position: relative; height: 3px; background: #e8e3d8; border-radius: 2px; margin-top: 60px; }
.cmp-lane-tick { position: absolute; top: -4px; width: 1px; height: 11px; background: #c5c9d6; }
.cmp-lane-tick span { position: absolute; top: 16px; left: 50%; transform: translateX(-50%); font-family: 'JetBrains Mono', monospace; font-size: 10px; color: #737373; white-space: nowrap; }
.cmp-lane-band { position: absolute; top: 55px; height: 13px; border-radius: 2px; }
.cmp-lane-productivity .cmp-lane-band { background: rgba(85, 91, 122, 0.12); border: 1px solid rgba(85, 91, 122, 0.3); }
.cmp-lane-premium-seb .cmp-lane-band { background: rgba(196, 82, 15, 0.15); border: 1px solid rgba(196, 82, 15, 0.35); }
.cmp-lane-vendor { position: absolute; top: 0; transform: translateX(-50%); text-align: center; width: 140px; }
.cmp-lane-vendor-pin { width: 12px; height: 12px; background: #1a1a1a; border-radius: 50%; margin: 50px auto 8px; border: 2px solid white; box-shadow: 0 2px 4px rgba(0,0,0,0.15); }
.cmp-lane-vendor-moz .cmp-lane-vendor-pin { background: #c4520f; transform: scale(1.4); }
.cmp-lane-vendor-name { font-size: 11px; font-weight: 600; color: #0a0e27; line-height: 1.25; margin-bottom: 2px; }
.cmp-lane-vendor-moz .cmp-lane-vendor-name { color: #c4520f; font-size: 12px; font-weight: 700; }
.cmp-lane-vendor-price { font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 700; color: #1a1a1a; }
.cmp-lane-vendor-moz .cmp-lane-vendor-price { color: #c4520f; font-size: 12px; }
.cmp-lane-vendor-note { font-size: 9px; color: #737373; line-height: 1.3; margin-top: 2px; }

.cmp-lane-vendor-detail { margin-top: 16px; padding: 16px 18px; background: #faf6f0; border-radius: 3px; }
.cmp-lane-vd-head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 12px; padding-bottom: 8px; border-bottom: 1px solid #e8e3d8; }
.cmp-lane-vd-name { font-family: Charter, Georgia, serif; font-size: 16px; font-weight: 600; color: #0a0e27; }
.cmp-lane-vd-install { font-family: 'JetBrains Mono', monospace; font-size: 11px; color: #c4520f; font-weight: 700; }
.cmp-lane-productivity .cmp-lane-vd-install { color: #555b7a; }
.cmp-lane-vd-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.cmp-lane-vd-grid > div { font-size: 11px; line-height: 1.5; color: #2d3148; }
.cmp-lane-vd-k { display: block; font-family: 'JetBrains Mono', monospace; font-size: 9px; font-weight: 700; color: #c4520f; letter-spacing: 0.06em; text-transform: uppercase; margin-bottom: 4px; }
.cmp-lane-productivity .cmp-lane-vd-k { color: #555b7a; }

/* Displacement math block */
.cmp-disp { background: white; border: 1px solid #c4520f; border-radius: 4px; padding: 32px 36px; }
.cmp-disp-bottomline { background: #fff7ed; border-left: 3px solid #c4520f; padding: 14px 18px; font-size: 15px; line-height: 1.55; color: #1a1a1a; margin: 0 0 16px 0; border-radius: 0 3px 3px 0; }
.cmp-disp-bottomline strong { color: #c4520f; font-weight: 700; }
.cmp-disp-sum { font-size: 14px; line-height: 1.65; color: #2d3148; margin: 0 0 24px 0; }

.cmp-disp-tbl-wrap { margin-bottom: 28px; }
.cmp-disp-tbl-head { font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 700; color: #c4520f; letter-spacing: 0.08em; text-transform: uppercase; margin-bottom: 12px; }
.cmp-disp-tbl { width: 100%; border-collapse: collapse; background: #faf6f0; border-radius: 3px; overflow: hidden; }
.cmp-disp-tbl th { padding: 12px 14px; text-align: left; font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 700; letter-spacing: 0.08em; color: #555b7a; text-transform: uppercase; background: rgba(196,82,15,0.04); border-bottom: 1px solid #e8e3d8; }
.cmp-disp-tbl td { padding: 12px 14px; font-size: 13px; line-height: 1.55; color: #2d3148; border-bottom: 1px solid #e8e3d8; vertical-align: top; }
.cmp-disp-tbl tr:last-child td { border-bottom: none; }
.cmp-disp-tbl-num { font-family: 'JetBrains Mono', monospace; font-weight: 700; color: #c4520f; }
.cmp-disp-tbl-conf { display: inline-block; padding: 2px 6px; font-family: 'JetBrains Mono', monospace; font-size: 9px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; border-radius: 2px; }
.cmp-disp-tbl-conf-high { background: rgba(27,122,74,0.15); color: #1b7a4a; }
.cmp-disp-tbl-conf-medium { background: rgba(184,84,10,0.18); color: #b8540a; }

.cmp-disp-five { background: #faf6f0; padding: 24px 28px; border-radius: 3px; margin-bottom: 24px; }
.cmp-disp-five-head { font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 700; color: #c4520f; letter-spacing: 0.08em; text-transform: uppercase; margin-bottom: 18px; }
.cmp-disp-five-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; margin-bottom: 24px; }
.cmp-disp-five-stat { padding: 16px 18px; background: white; border: 1px solid #e8e3d8; border-radius: 3px; }
.cmp-disp-five-stat-h { border-color: #c4520f; border-width: 2px; background: #fff7ed; }
.cmp-disp-five-stat-v { font-family: Charter, Georgia, serif; font-size: 26px; font-weight: 600; color: #0a0e27; line-height: 1; margin-bottom: 8px; }
.cmp-disp-five-stat-h .cmp-disp-five-stat-v { color: #c4520f; }
.cmp-disp-five-stat-l { font-size: 12px; font-weight: 600; color: #0a0e27; margin-bottom: 4px; }
.cmp-disp-five-stat-s { font-size: 10px; color: #737373; line-height: 1.4; }

.cmp-disp-lines { display: grid; gap: 4px; margin-bottom: 18px; }
.cmp-disp-line { display: grid; grid-template-columns: 1fr 140px 1.5fr; gap: 14px; padding: 10px 14px; background: white; border-radius: 2px; font-size: 12px; align-items: baseline; }
.cmp-disp-line-h { background: #fff7ed; border-left: 3px solid #c4520f; }
.cmp-disp-line-what { font-weight: 600; color: #0a0e27; }
.cmp-disp-line-amt { font-family: 'JetBrains Mono', monospace; font-weight: 700; color: #c4520f; text-align: right; font-size: 13px; }
.cmp-disp-line-detail { color: #737373; font-size: 11px; line-height: 1.5; }

.cmp-disp-formula { padding: 14px 18px; background: white; border-left: 3px solid #c4520f; border-radius: 0 3px 3px 0; }
.cmp-disp-formula-l { display: block; font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 700; color: #c4520f; letter-spacing: 0.08em; text-transform: uppercase; margin-bottom: 6px; }
.cmp-disp-formula code { font-family: 'JetBrains Mono', monospace; font-size: 12px; color: #1a1a1a; line-height: 1.55; }

.cmp-cfo { margin-top: 28px; padding: 24px 28px; background: #1a1a1a; color: #fdf9ef; border-radius: 4px; }
.cmp-cfo-q { font-family: Charter, Georgia, serif; font-size: 22px; font-style: italic; color: #fdf9ef; line-height: 1.35; margin-bottom: 14px; }
.cmp-cfo-q::before { content: 'CFO asks · '; font-family: 'JetBrains Mono', monospace; font-size: 10px; font-style: normal; font-weight: 700; color: #c4520f; letter-spacing: 0.1em; text-transform: uppercase; display: block; margin-bottom: 8px; }
.cmp-cfo-a { font-size: 14px; line-height: 1.7; color: #fdf9ef; margin-bottom: 18px; }
.cmp-cfo-a::before { content: 'PeerSix answers · '; font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 700; color: #c4520f; letter-spacing: 0.1em; text-transform: uppercase; display: block; margin-bottom: 8px; }
.cmp-cfo-v { font-family: Charter, Georgia, serif; font-size: 15px; font-style: italic; color: #fdf9ef; line-height: 1.55; padding: 14px 18px; background: rgba(196,82,15,0.15); border-left: 3px solid #c4520f; border-radius: 0 3px 3px 0; margin: 0; }
.cmp-cfo-v::before { content: 'Seller says · '; display: block; font-family: 'JetBrains Mono', monospace; font-size: 10px; font-style: normal; font-weight: 700; color: #c4520f; letter-spacing: 0.1em; text-transform: uppercase; margin-bottom: 8px; }

.cmp-advs { display: grid; gap: 16px; }
.cmp-adv { padding: 22px 26px; background: white; border: 1px solid #e8e3d8; border-radius: 4px; }
.cmp-adv-h { font-family: Charter, Georgia, serif; font-size: 20px; font-weight: 600; color: #c4520f; margin: 0 0 16px 0; }
.cmp-adv-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.cmp-adv-k { font-family: 'JetBrains Mono', monospace; font-size: 10px; font-weight: 700; color: #c4520f; letter-spacing: 0.06em; text-transform: uppercase; margin-bottom: 8px; }
.cmp-adv-grid p { font-size: 13px; line-height: 1.6; color: #2d3148; margin: 0; }

.cmp-foot { margin-top: 30px; padding: 14px 18px; background: #faf6f0; border-left: 3px solid #c4520f; font-size: 11px; line-height: 1.6; color: #555b7a; border-radius: 0 3px 3px 0; font-style: italic; }

/* Teardowns nav grouping (v3.1) */
.td-nav-group { display: flex; flex-direction: column; gap: 4px; margin-bottom: 16px; }
.td-nav-group-label { font-family: 'JetBrains Mono', monospace; font-size: 9px; font-weight: 700; letter-spacing: 0.08em; color: #c4520f; text-transform: uppercase; padding: 10px 12px 6px 12px; }
.td-nav-group:first-child .td-nav-group-label { padding-top: 0; }

@media (max-width: 880px) {
  .cmp-adv-grid { grid-template-columns: 1fr; }
  .cmp-disp-line { grid-template-columns: 1fr; gap: 4px; }
  .cmp-lane-track { height: 200px; }
  .cmp-lane-vendor { width: 100px; }
}

/* =====================================================================
   v3.2 — GOOGLE REPLACEMENT PROGRAMME · stated strategic priority
   ===================================================================== */
.cmp-block-gr {
  padding: 32px 36px;
  background: linear-gradient(180deg, #fff7ed 0%, white 100%);
  border: 2px solid #c4520f;
  border-radius: 4px;
}
.cmp-block-l-gr {
  background: #c4520f;
  color: white !important;
  padding: 8px 14px;
  border-radius: 3px;
  display: inline-block;
  border-bottom: none !important;
  margin-bottom: 18px;
}
.gr-headline {
  font-family: Charter, Georgia, serif;
  font-size: 32px;
  font-weight: 500;
  color: #0a0e27;
  line-height: 1.15;
  letter-spacing: -0.02em;
  margin: 0 0 16px 0;
}
.gr-bottomline {
  background: white;
  border-left: 3px solid #c4520f;
  padding: 14px 18px;
  font-size: 14px;
  line-height: 1.6;
  color: #1a1a1a;
  margin: 0 0 20px 0;
  border-radius: 0 3px 3px 0;
}
.gr-bottomline strong { color: #c4520f; font-weight: 700; }
.gr-rationale { font-size: 14px; line-height: 1.7; color: #2d3148; margin-bottom: 28px; }
.gr-rationale p { margin: 0 0 12px 0; }
.gr-rationale strong { color: #c4520f; font-weight: 700; }

.gr-sub-l {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #c4520f;
  text-transform: uppercase;
  margin: 28px 0 14px 0;
  padding-bottom: 6px;
  border-bottom: 1px solid #e8e3d8;
}

.gr-profiles { display: grid; grid-template-columns: 1fr; gap: 12px; margin-bottom: 24px; }
.gr-profile {
  background: white;
  border: 1px solid #e8e3d8;
  border-left-width: 4px;
  border-radius: 3px;
  padding: 20px 24px;
}
.gr-rel-highest { border-left-color: #c4520f; }
.gr-rel-high { border-left-color: #b8540a; }
.gr-rel-medium { border-left-color: #8b91a8; }
.gr-profile-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 16px;
  margin-bottom: 14px;
  padding-bottom: 12px;
  border-bottom: 1px solid #f4ede1;
}
.gr-profile-seg {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  font-weight: 700;
  color: #c4520f;
  letter-spacing: 0.06em;
  margin-bottom: 4px;
}
.gr-profile-name {
  font-family: Charter, Georgia, serif;
  font-size: 17px;
  font-weight: 600;
  color: #0a0e27;
  line-height: 1.3;
  margin: 0;
}
.gr-profile-rel {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 4px 10px;
  border-radius: 2px;
  white-space: nowrap;
}
.gr-rel-highest .gr-profile-rel { background: #c4520f; color: white; }
.gr-rel-high .gr-profile-rel { background: rgba(184,84,10,0.2); color: #b8540a; }
.gr-rel-medium .gr-profile-rel { background: rgba(139,145,168,0.2); color: #555b7a; }
.gr-profile-grid {
  display: grid;
  grid-template-columns: 1fr 1.5fr 1.5fr;
  gap: 18px;
}
.gr-profile-k {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #c4520f;
  text-transform: uppercase;
  margin-bottom: 6px;
}
.gr-profile-grid p { font-size: 12px; line-height: 1.55; color: #2d3148; margin: 0; }

.gr-eco-wrap { margin-bottom: 24px; background: white; border: 1px solid #e8e3d8; border-radius: 3px; overflow-x: auto; }
.gr-eco-tbl { width: 100%; border-collapse: collapse; min-width: 760px; }
.gr-eco-tbl th {
  padding: 12px 14px;
  text-align: left;
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #555b7a;
  background: #faf6f0;
  border-bottom: 1px solid #e8e3d8;
  vertical-align: bottom;
}
.gr-eco-tbl td { padding: 12px 14px; font-size: 12px; line-height: 1.55; color: #2d3148; border-bottom: 1px solid #f4ede1; vertical-align: top; }
.gr-eco-tbl tr:last-child td { border-bottom: none; }
.gr-eco-layer { font-family: Charter, Georgia, serif; font-size: 13px; color: #0a0e27 !important; width: 18%; }
.gr-eco-google { color: #555b7a; width: 24%; }
.gr-eco-moz { color: #c4520f !important; font-weight: 600; width: 24%; }
.gr-eco-adv { width: 34%; }

.gr-vs-ms {
  margin-top: 24px;
  padding: 24px 28px;
  background: #1a1a1a;
  color: #fdf9ef;
  border-radius: 4px;
}
.gr-vs-ms-head h3 {
  font-family: Charter, Georgia, serif;
  font-size: 22px;
  font-weight: 600;
  color: #fdf9ef;
  line-height: 1.25;
  margin: 0 0 14px 0;
  letter-spacing: -0.01em;
}
.gr-vs-ms-sum { font-size: 14px; line-height: 1.7; color: #fdf9ef; margin: 0 0 18px 0; }
.gr-vs-ms-pts { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.gr-vs-ms-pts li {
  padding: 10px 14px 10px 36px;
  background: rgba(196,82,15,0.15);
  border-left: 3px solid #c4520f;
  border-radius: 0 3px 3px 0;
  font-size: 13px;
  line-height: 1.55;
  color: #fdf9ef;
  position: relative;
}
.gr-vs-ms-pts li::before {
  content: '×';
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  font-family: 'JetBrains Mono', monospace;
  font-size: 16px;
  font-weight: 700;
  color: #c4520f;
}
.gr-vs-ms-pts li:last-child::before { content: '✓'; }

@media (max-width: 880px) {
  .gr-profile-grid { grid-template-columns: 1fr; }
  .gr-eco-tbl { font-size: 11px; }
}

/* =====================================================================
   v3.3 — TIER 0 hero strip in Vendor Matrix
   Mozilla's #1 competitors · Chrome FIRST + Edge SECOND
   ===================================================================== */
.t0-hero { margin-bottom: 48px; }

.t0-banner {
  background: linear-gradient(135deg, #1a1a1a 0%, #2a2a2a 100%);
  color: #fdf9ef;
  padding: 28px 36px;
  border-radius: 4px 4px 0 0;
  margin-bottom: 0;
}
.t0-banner-eyebrow {
  display: inline-block;
  padding: 4px 12px;
  background: #c4520f;
  color: white;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  border-radius: 2px;
  margin-bottom: 14px;
}
.t0-banner-headline {
  font-family: Charter, Georgia, serif;
  font-size: 30px;
  line-height: 1.2;
  font-weight: 500;
  color: #fdf9ef;
  letter-spacing: -0.02em;
  margin: 0 0 12px 0;
}
.t0-banner-sub {
  font-size: 13px;
  line-height: 1.65;
  color: rgba(253, 249, 239, 0.85);
  margin: 0;
  max-width: 920px;
}

.t0-cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  background: #1a1a1a;
  padding: 0 4px 4px;
  border-radius: 0 0 4px 4px;
}
.t0-card {
  background: white;
  padding: 28px 32px;
  border-radius: 3px;
  margin: 0 4px;
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.t0-card-orange { border-top: 4px solid #c4520f; }
.t0-card-amber { border-top: 4px solid #b8540a; }

.t0-card-head {
  display: grid;
  grid-template-columns: 70px 1fr auto;
  gap: 16px;
  align-items: start;
  padding-bottom: 16px;
  border-bottom: 1px solid #e8e3d8;
}
.t0-card-rank {
  font-family: 'JetBrains Mono', monospace;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: white;
  background: #c4520f;
  padding: 8px 0;
  text-align: center;
  border-radius: 3px;
}
.t0-card-amber .t0-card-rank { background: #b8540a; }
.t0-card-headtext {
  min-width: 0;
}
.t0-card-product {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  font-weight: 600;
  color: #555b7a;
  letter-spacing: 0.04em;
  margin-bottom: 6px;
}
.t0-card-name {
  font-family: Charter, Georgia, serif;
  font-size: 26px;
  font-weight: 500;
  color: #0a0e27;
  letter-spacing: -0.02em;
  margin: 0 0 6px 0;
  line-height: 1.1;
}
.t0-card-eco {
  font-size: 11px;
  color: #737373;
  line-height: 1.4;
}
.t0-card-threat {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
  padding: 8px 12px;
  background: #faf6f0;
  border-radius: 3px;
}
.t0-card-threat-l {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: #555b7a;
  text-transform: uppercase;
}
.t0-card-threat-v {
  font-family: 'JetBrains Mono', monospace;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.08em;
}
.t0-card-orange .t0-card-threat-v { color: #c4520f; }
.t0-card-amber .t0-card-threat-v { color: #b8540a; }

.t0-card-priority {
  padding: 14px 18px;
  background: linear-gradient(180deg, #fff7ed 0%, #ffffff 100%);
  border-left: 3px solid #c4520f;
  border-radius: 0 3px 3px 0;
}
.t0-card-priority-l {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #c4520f;
  text-transform: uppercase;
  margin-bottom: 6px;
}
.t0-card-priority-n {
  font-size: 13px;
  line-height: 1.55;
  color: #1a1a1a;
  margin: 0;
}

.t0-card-stats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.t0-card-stat {
  padding: 14px 16px;
  background: #faf6f0;
  border-radius: 3px;
}
.t0-card-stat-l {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #c4520f;
  text-transform: uppercase;
  margin-bottom: 6px;
}
.t0-card-stat-v {
  font-family: Charter, Georgia, serif;
  font-size: 18px;
  font-weight: 600;
  color: #0a0e27;
  line-height: 1.2;
  margin-bottom: 4px;
}
.t0-card-stat-s {
  font-size: 10px;
  color: #737373;
  line-height: 1.4;
}

.t0-card-section { }
.t0-card-section-l {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #c4520f;
  text-transform: uppercase;
  margin-bottom: 10px;
  padding-bottom: 6px;
  border-bottom: 1px solid #f4ede1;
}

.t0-eco {
  display: grid;
  gap: 6px;
}
.t0-eco-row {
  display: grid;
  grid-template-columns: 130px 1fr;
  gap: 12px;
  padding: 7px 0;
  border-bottom: 1px solid #f4ede1;
  font-size: 12px;
}
.t0-eco-row:last-child { border-bottom: none; }
.t0-eco-k {
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  font-weight: 700;
  color: #555b7a;
  letter-spacing: 0.04em;
}
.t0-eco-v {
  color: #2d3148;
  line-height: 1.45;
}

.t0-card-bundling {
  margin: 12px 0 0 0;
  padding: 10px 14px;
  background: #faf6f0;
  border-left: 2px solid #555b7a;
  font-size: 12px;
  line-height: 1.5;
  color: #2d3148;
  border-radius: 0 3px 3px 0;
}
.t0-card-bundling-l {
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px;
  font-weight: 700;
  color: #555b7a;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin-right: 6px;
}

.t0-wins, .t0-risks {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 6px;
}
.t0-wins li, .t0-risks li {
  font-size: 12px;
  line-height: 1.55;
  padding: 8px 12px 8px 28px;
  position: relative;
  border-radius: 3px;
}
.t0-wins li {
  background: rgba(27, 122, 74, 0.06);
  color: #1a1a1a;
}
.t0-wins li::before {
  content: '✓';
  position: absolute;
  left: 10px;
  top: 8px;
  color: #1b7a4a;
  font-weight: 700;
  font-size: 12px;
}
.t0-risks li {
  background: #faf6f0;
  color: #2d3148;
}
.t0-risks li::before {
  content: '!';
  position: absolute;
  left: 10px;
  top: 8px;
  color: #c4520f;
  font-weight: 700;
  font-size: 12px;
  font-family: 'JetBrains Mono', monospace;
}

.t0-keydeals {
  font-size: 12px;
  line-height: 1.6;
  color: #2d3148;
  margin: 0;
  padding: 12px 14px;
  background: #faf6f0;
  border-left: 2px solid #c4520f;
  border-radius: 0 3px 3px 0;
}

.t0-card-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding-top: 14px;
  border-top: 1px solid #f4ede1;
}
.t0-xlink {
  display: inline-block;
  padding: 6px 12px;
  background: #fff7ed;
  border: 1px solid rgba(196, 82, 15, 0.3);
  color: #c4520f;
  font-size: 11px;
  font-weight: 600;
  text-decoration: none;
  border-radius: 2px;
  transition: all 0.15s;
}
.t0-xlink:hover {
  background: #c4520f;
  color: white;
  border-color: #c4520f;
}

.t0-footnote {
  margin: 24px 0 0 0;
  padding: 14px 18px;
  background: #faf6f0;
  border-left: 3px solid #555b7a;
  font-size: 12px;
  line-height: 1.65;
  color: #555b7a;
  font-style: italic;
  border-radius: 0 3px 3px 0;
}

.t0-divider {
  margin: 32px 0 8px 0;
  padding-bottom: 14px;
  border-bottom: 2px solid #1a1a1a;
}
.t0-divider-l {
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #555b7a;
  text-transform: uppercase;
}

@media (max-width: 1000px) {
  .t0-cards { grid-template-columns: 1fr; padding: 0 4px; gap: 6px; }
  .t0-card { margin: 0 4px; }
  .t0-card-stats { grid-template-columns: 1fr; }
  .t0-card-head { grid-template-columns: 60px 1fr; }
  .t0-card-threat { grid-column: 1 / -1; flex-direction: row; justify-content: space-between; }
}
