/* ===========================================================
   ISAFI · Public surface v2 (home)
   Tokens replicam lunoflow_v3.css (V3 interno) — continuidade
   visual entre marketing e produto.

   Carregado APENAS pelo layout public_v2.html.erb. Coexiste com
   Tailwind no mesmo body — colisões esperadas apenas se outras
   páginas usarem este layout, o que não está no escopo atual.
   =========================================================== */

:root {
  /* Surfaces */
  --pv2-bg:           #f6f7f8;
  --pv2-surface:      #ffffff;
  --pv2-surface-2:    #fafbfc;
  --pv2-surface-3:    #f1f3f5;

  /* Ink */
  --pv2-ink:          #0f172a;
  --pv2-ink-2:        #1e293b;
  --pv2-ink-3:        #475569;
  --pv2-ink-4:        #64748b;
  --pv2-ink-5:        #94a3b8;

  /* Lines */
  --pv2-line:         #e7e9ec;
  --pv2-line-2:       #eef0f3;
  --pv2-line-strong:  #d4d8de;

  /* Semantic */
  --pv2-pos:          #047857;
  --pv2-pos-bg:       #ecfdf5;
  --pv2-neg:          #b91c1c;
  --pv2-neg-bg:       #fef2f2;
  --pv2-warn:         #b45309;
  --pv2-warn-bg:      #fffbeb;
  --pv2-info:         #0369a1;
  --pv2-info-bg:      #f0f9ff;
  --pv2-action:       #0f172a;
  --pv2-action-hover: #1e293b;

  /* Radii */
  --pv2-r-sm: 6px;
  --pv2-r:    10px;
  --pv2-r-lg: 14px;
  --pv2-r-xl: 18px;

  /* Type stacks */
  --pv2-sans:   -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, "Helvetica Neue", Arial, sans-serif;
  --pv2-serif:  "Newsreader", "Source Serif 4", "Charter", Georgia, serif;
  --pv2-mono:   ui-monospace, "SF Mono", Menlo, Consolas, "Roboto Mono", monospace;

  /* Layout */
  --pv2-container: 1200px;
  --pv2-gutter: 24px;

  /* Shadows */
  --pv2-shadow-sm: 0 1px 2px rgba(15, 23, 42, 0.04), 0 1px 1px rgba(15, 23, 42, 0.03);
  --pv2-shadow-lg: 0 12px 32px -8px rgba(15, 23, 42, 0.10), 0 4px 12px -4px rgba(15, 23, 42, 0.06);
  --pv2-shadow-xl: 0 24px 48px -12px rgba(15, 23, 42, 0.14), 0 8px 16px -4px rgba(15, 23, 42, 0.06);
}

/* Body baseline — scoped to body.public-v2 so other public pages stay untouched. */
html:has(body.public-v2) {
  scroll-behavior: smooth;
  scroll-padding-top: 80px;
}
body.public-v2 {
  margin: 0;
  background: var(--pv2-surface);
  color: var(--pv2-ink-2);
  font-family: var(--pv2-sans);
  font-size: 16px;
  line-height: 1.55;
  font-feature-settings: "ss01", "cv11";
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
body.public-v2 *,
body.public-v2 *::before,
body.public-v2 *::after { box-sizing: border-box; }
body.public-v2 a:not(.pv2-btn):not(.pv2-auth-submit):not(.pv2-chip):not(.pv2-legal-link) { color: inherit; text-decoration: none; }
body.public-v2 a.pv2-btn { text-decoration: none; }
body.public-v2 button { font-family: inherit; cursor: pointer; }
body.public-v2 img,
body.public-v2 svg { display: block; max-width: 100%; }
body.public-v2 h1,
body.public-v2 h2,
body.public-v2 h3,
body.public-v2 h4,
body.public-v2 h5,
body.public-v2 p { margin: 0; }

/* Utility */
.pv2-mono { font-family: var(--pv2-mono); font-variant-numeric: tabular-nums; }
.pv2-serif { font-family: var(--pv2-serif); font-feature-settings: "lnum", "tnum"; }
.pv2-eyebrow {
  display: inline-block;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--pv2-ink-4);
}

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

/* Buttons */
.pv2-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 22px;
  font-family: inherit;
  font-size: 15px;
  font-weight: 600;
  line-height: 1;
  border-radius: var(--pv2-r);
  border: 1px solid transparent;
  transition: background 120ms ease, border-color 120ms ease, color 120ms ease, transform 120ms ease;
  white-space: nowrap;
}
.pv2-btn-primary {
  background: var(--pv2-action);
  color: #fff;
  box-shadow: var(--pv2-shadow-sm);
}
.pv2-btn-primary:hover { background: var(--pv2-action-hover); color: #fff; }
.pv2-btn-secondary {
  background: var(--pv2-surface);
  color: var(--pv2-ink);
  border-color: var(--pv2-line-strong);
}
.pv2-btn-secondary:hover { background: var(--pv2-surface-3); color: var(--pv2-ink); }
.pv2-btn-link {
  color: var(--pv2-info);
  font-weight: 500;
  font-size: 14px;
}
.pv2-btn-link:hover { text-decoration: underline; text-underline-offset: 3px; }
.pv2-btn-sm { padding: 8px 14px; font-size: 13px; border-radius: var(--pv2-r-sm); }

/* Badges */
.pv2-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  font-size: 12px;
  font-weight: 500;
  color: var(--pv2-ink-3);
  background: var(--pv2-surface-3);
  border-radius: 999px;
  border: 1px solid var(--pv2-line);
}
.pv2-badge-dot {
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: var(--pv2-ink-4);
}
.pv2-badge-success { background: var(--pv2-pos-bg); color: var(--pv2-pos); border-color: rgba(4, 120, 87, 0.18); }
.pv2-badge-success .pv2-badge-dot { background: var(--pv2-pos); }
.pv2-badge-warn { background: var(--pv2-warn-bg); color: var(--pv2-warn); border-color: rgba(180, 83, 9, 0.18); }
.pv2-badge-warn .pv2-badge-dot { background: var(--pv2-warn); }
.pv2-badge-info { background: var(--pv2-info-bg); color: var(--pv2-info); border-color: rgba(3, 105, 161, 0.18); }
.pv2-badge-info .pv2-badge-dot { background: var(--pv2-info); }
.pv2-badge-neg { background: var(--pv2-neg-bg); color: var(--pv2-neg); border-color: rgba(185, 28, 28, 0.2); }
.pv2-badge-neg .pv2-badge-dot { background: var(--pv2-neg); }

/* ===========================================================
   NAV
   =========================================================== */
.pv2-nav {
  position: sticky; top: 0; z-index: 30;
  background: rgba(255, 255, 255, 0.86);
  backdrop-filter: saturate(160%) blur(10px);
  -webkit-backdrop-filter: saturate(160%) blur(10px);
  border-bottom: 1px solid var(--pv2-line);
}
.pv2-nav-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 64px;
}
.pv2-nav-brand {
  display: inline-flex;
  align-items: center;
  color: var(--pv2-ink);
  text-decoration: none;
  flex-shrink: 0;
  padding-right: 36px;
}
.pv2-nav-brand-mark {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-weight: 800;
  font-size: 18px;
  letter-spacing: 0.06em;
  color: var(--pv2-ink);
  line-height: 1;
  font-feature-settings: "ss01", "ss02", "tnum";
}
.pv2-nav-brand:hover .pv2-nav-brand-mark { color: var(--pv2-ink-2); }
.pv2-brand-mark {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-style: normal;
  font-weight: 800;
  font-size: 0.78em;
  letter-spacing: 0.04em;
  color: var(--pv2-ink);
  font-feature-settings: "ss01", "ss02", "tnum";
  white-space: nowrap;
}
.pv2-nav-links {
  display: flex; gap: 28px;
  font-size: 14px;
  color: var(--pv2-ink-3);
}
.pv2-nav-links a:hover { color: var(--pv2-ink); }
.pv2-nav-actions { display: flex; align-items: center; gap: 10px; }
.pv2-nav-signin {
  font-size: 14px;
  font-weight: 500;
  color: var(--pv2-ink-3);
  padding: 8px 12px;
}
.pv2-nav-signin:hover { color: var(--pv2-ink); }
.pv2-nav-signout {
  background: transparent;
  border: 0;
  padding: 8px 12px;
  font-size: 14px;
  font-weight: 500;
  color: var(--pv2-ink-3);
}
.pv2-nav-signout:hover { color: var(--pv2-ink); }
.pv2-nav-mobile-actions {
  display: none;
  align-items: center;
  gap: 8px;
}
.pv2-menu-button {
  width: 40px;
  height: 40px;
  border-radius: var(--pv2-r);
  border: 1px solid var(--pv2-line-strong);
  background: var(--pv2-surface);
  color: var(--pv2-ink-2);
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.pv2-menu-button:hover { background: var(--pv2-surface-3); }
.pv2-menu-button svg {
  width: 20px;
  height: 20px;
}

@media (max-width: 860px) {
  .pv2-nav-links { display: none; }
  .pv2-nav-actions { display: none; }
  .pv2-nav-mobile-actions { display: flex; }
}

.pv2-mobile-nav[hidden] { display: none; }
.pv2-mobile-nav-overlay {
  position: fixed;
  inset: 0;
  z-index: 40;
  background: rgba(15, 23, 42, 0.38);
}
.pv2-mobile-nav-panel {
  position: fixed;
  inset: 0 0 0 auto;
  z-index: 50;
  width: min(360px, 100vw);
  background: var(--pv2-surface);
  box-shadow: var(--pv2-shadow-xl);
  border-left: 1px solid var(--pv2-line);
  display: flex;
  flex-direction: column;
}
.pv2-mobile-nav-head {
  height: 64px;
  padding: 0 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid var(--pv2-line);
}
.pv2-mobile-nav-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 28px;
  padding: 20px 16px 24px;
  overflow-y: auto;
}
.pv2-mobile-nav-links {
  display: grid;
  gap: 4px;
}
.pv2-mobile-nav-links a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 44px;
  padding: 10px 12px;
  border-radius: var(--pv2-r);
  color: var(--pv2-ink-2);
  font-size: 15px;
  font-weight: 500;
}
.pv2-mobile-nav-links a:hover { background: var(--pv2-surface-3); color: var(--pv2-ink); }
.pv2-mobile-nav-auth {
  display: grid;
  gap: 10px;
  padding-top: 18px;
  border-top: 1px solid var(--pv2-line);
}
.pv2-mobile-nav-auth .pv2-btn {
  width: 100%;
  min-height: 44px;
}
.pv2-mobile-signout {
  width: 100%;
  min-height: 44px;
  border-radius: var(--pv2-r);
  border: 1px solid var(--pv2-line-strong);
  background: var(--pv2-surface);
  color: var(--pv2-ink);
  font-size: 15px;
  font-weight: 600;
}
.pv2-mobile-signout:hover {
  background: var(--pv2-surface-3);
}

/* ===========================================================
   HERO
   =========================================================== */
.pv2-hero {
  background:
    radial-gradient(1100px 480px at 110% -10%, rgba(3, 105, 161, 0.05), transparent 60%),
    linear-gradient(to bottom, var(--pv2-surface), var(--pv2-bg));
  border-bottom: 1px solid var(--pv2-line);
  padding: 88px 0 96px;
}
.pv2-hero-grid {
  display: grid;
  grid-template-columns: 1fr 1.05fr;
  gap: 64px;
  align-items: center;
}
.pv2-hero-eyebrow { margin-bottom: 18px; }
.pv2-hero h1 {
  font-family: var(--pv2-sans);
  font-size: clamp(34px, 4.2vw, 56px);
  line-height: 1.04;
  letter-spacing: -0.025em;
  font-weight: 600;
  color: var(--pv2-ink);
  margin-bottom: 24px;
}
.pv2-hero h1 em {
  font-family: var(--pv2-serif);
  font-style: italic;
  font-weight: 400;
  color: var(--pv2-ink);
}
.pv2-hero-sub {
  font-size: 18px;
  line-height: 1.55;
  color: var(--pv2-ink-3);
  margin-bottom: 32px;
  max-width: 540px;
}
.pv2-hero-ctas {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 20px;
}
.pv2-hero-secondary {
  display: flex; gap: 24px;
  font-size: 14px;
  color: var(--pv2-ink-4);
}
.pv2-hero-secondary a {
  color: var(--pv2-info);
  font-weight: 500;
}
.pv2-hero-secondary a:hover { text-decoration: underline; text-underline-offset: 3px; }

.pv2-hero-pills {
  margin-top: 40px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}
.pv2-pill {
  background: var(--pv2-surface);
  border: 1px solid var(--pv2-line);
  border-radius: var(--pv2-r);
  padding: 14px 16px;
}
.pv2-pill-title {
  font-size: 13px;
  font-weight: 600;
  color: var(--pv2-ink);
  margin-bottom: 4px;
  display: flex; align-items: center; gap: 8px;
}
.pv2-pill-title svg { width: 14px; height: 14px; color: var(--pv2-ink-4); }
.pv2-pill-desc {
  font-size: 12.5px;
  color: var(--pv2-ink-4);
  line-height: 1.45;
}

.pv2-hero-art {
  display: grid;
  gap: 14px;
}
.pv2-hero-art-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

@media (max-width: 980px) {
  .pv2-hero { padding: 64px 0 72px; }
  .pv2-hero-grid { grid-template-columns: 1fr; gap: 48px; }
  .pv2-hero-sub { max-width: none; }
  .pv2-hero-pills { grid-template-columns: 1fr; }
  .pv2-hero-art-row { grid-template-columns: 1fr; }
}

/* ===========================================================
   MOCK PRODUCT SURFACES
   =========================================================== */
.pv2-surface {
  background: var(--pv2-surface);
  border: 1px solid var(--pv2-line);
  border-radius: var(--pv2-r-lg);
  box-shadow: var(--pv2-shadow-lg);
  overflow: hidden;
}
.pv2-surface-sm { box-shadow: var(--pv2-shadow-sm); }

.pv2-surface-chrome {
  display: flex; align-items: center; gap: 10px;
  height: 32px;
  padding: 0 12px;
  background: var(--pv2-surface-2);
  border-bottom: 1px solid var(--pv2-line);
}
.pv2-surface-dots { display: flex; gap: 5px; }
.pv2-surface-dots i {
  width: 9px; height: 9px; border-radius: 999px;
  background: var(--pv2-line-strong);
  display: inline-block;
}
.pv2-surface-title {
  font-size: 11px;
  color: var(--pv2-ink-4);
  font-family: var(--pv2-mono);
  margin-left: 4px;
}
.pv2-surface-body { padding: 20px; }

/* Mock 1: Pix invoice paid */
.pv2-mock-invoice .pv2-row-head {
  display: flex; justify-content: space-between; align-items: flex-start;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--pv2-line-2);
}
.pv2-mock-invoice .pv2-inv-eyebrow {
  font-size: 10.5px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--pv2-ink-4);
}
.pv2-mock-invoice .pv2-inv-counterparty {
  margin-top: 6px;
  font-size: 15px;
  font-weight: 600;
  color: var(--pv2-ink);
}
.pv2-mock-invoice .pv2-inv-doc {
  margin-top: 2px;
  font-size: 11.5px;
  font-family: var(--pv2-mono);
  color: var(--pv2-ink-4);
}
.pv2-mock-invoice .pv2-inv-amount {
  font-family: var(--pv2-serif);
  font-size: 38px;
  font-weight: 500;
  letter-spacing: -0.02em;
  line-height: 1;
  color: var(--pv2-ink);
  font-variant-numeric: tabular-nums lining-nums;
}
.pv2-mock-invoice .pv2-inv-amount .pv2-cents { font-size: 22px; color: var(--pv2-ink-3); }

.pv2-mock-invoice .pv2-timeline {
  margin-top: 18px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.pv2-timeline-step {
  display: grid;
  grid-template-columns: 18px 1fr auto;
  gap: 12px;
  align-items: center;
}
.pv2-timeline-step .pv2-node {
  width: 14px; height: 14px; border-radius: 999px;
  background: var(--pv2-surface);
  border: 2px solid var(--pv2-line-strong);
  position: relative;
  margin-left: 2px;
}
.pv2-timeline-step.is-done .pv2-node {
  background: var(--pv2-pos);
  border-color: var(--pv2-pos);
}
.pv2-timeline-step.is-done .pv2-node::after {
  content: "";
  position: absolute; top: 3px; left: 1.5px;
  width: 7px; height: 4px;
  border-left: 1.5px solid #fff;
  border-bottom: 1.5px solid #fff;
  transform: rotate(-45deg);
}
.pv2-timeline-step .pv2-label {
  font-size: 13px;
  color: var(--pv2-ink-2);
}
.pv2-timeline-step .pv2-label strong { color: var(--pv2-ink); font-weight: 600; }
.pv2-timeline-step .pv2-time {
  font-family: var(--pv2-mono);
  font-size: 11.5px;
  color: var(--pv2-ink-4);
  font-variant-numeric: tabular-nums;
}

.pv2-mock-invoice .pv2-footer-row {
  margin-top: 22px; padding-top: 16px;
  border-top: 1px solid var(--pv2-line-2);
  display: flex; justify-content: space-between; align-items: center;
}

/* Mock 2: bank reconcile mini */
.pv2-mock-bank .pv2-bank-rows { display: flex; flex-direction: column; gap: 0; }
.pv2-bank-row {
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: 12px;
  align-items: center;
  padding: 11px 0;
  border-bottom: 1px solid var(--pv2-line-2);
}
.pv2-bank-row:last-child { border-bottom: 0; }
.pv2-bank-row .pv2-desc {
  font-size: 12.5px;
  color: var(--pv2-ink-2);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.pv2-bank-row .pv2-desc small {
  display: block;
  font-size: 10.5px;
  color: var(--pv2-ink-4);
  margin-top: 1px;
  font-family: var(--pv2-mono);
}
.pv2-bank-row .pv2-amt {
  font-family: var(--pv2-mono);
  font-size: 12.5px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.pv2-bank-row.is-in .pv2-amt  { color: var(--pv2-pos); }
.pv2-bank-row.is-out .pv2-amt { color: var(--pv2-neg); }
.pv2-bank-state {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 2px 7px;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  border-radius: 999px;
  border: 1px solid var(--pv2-line);
  color: var(--pv2-ink-4);
}
.pv2-bank-state.is-matched { color: var(--pv2-pos); border-color: rgba(4, 120, 87, 0.22); background: var(--pv2-pos-bg); }
.pv2-bank-state.is-pending { color: var(--pv2-warn); border-color: rgba(180, 83, 9, 0.22); background: var(--pv2-warn-bg); }
.pv2-bank-state .pv2-dot {
  width: 5px; height: 5px;
  border-radius: 99px;
  display: inline-block;
}
.pv2-bank-state.is-matched .pv2-dot { background: var(--pv2-pos); }
.pv2-bank-state.is-pending .pv2-dot { background: var(--pv2-warn); }

/* Mock 3: month close mini */
.pv2-mock-month .pv2-month-head {
  display: flex; justify-content: space-between; align-items: baseline;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--pv2-line-2);
}
.pv2-mock-month h4 { font-size: 14px; font-weight: 600; color: var(--pv2-ink); }
.pv2-mock-month .pv2-mlabel { font-size: 11px; color: var(--pv2-ink-4); font-family: var(--pv2-mono); text-transform: uppercase; letter-spacing: 0.06em; }
.pv2-month-progress { margin-top: 16px; display: flex; flex-direction: column; gap: 10px; }
.pv2-month-line {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 12px;
  align-items: center;
  font-size: 12.5px;
  color: var(--pv2-ink-2);
}
.pv2-month-line .pv2-check {
  width: 14px; height: 14px;
  border-radius: 999px;
  background: var(--pv2-pos);
  display: inline-grid; place-items: center;
  margin-right: 8px;
  vertical-align: -3px;
  position: relative;
}
.pv2-month-line .pv2-check::after {
  content: "";
  width: 6px; height: 3px;
  border-left: 1.5px solid #fff;
  border-bottom: 1.5px solid #fff;
  transform: rotate(-45deg);
  margin-top: -2px;
}
.pv2-month-line .pv2-check.is-pending {
  background: var(--pv2-surface);
  border: 1.5px solid var(--pv2-warn);
}
.pv2-month-line .pv2-check.is-pending::after { display: none; }
.pv2-month-line .pv2-tag {
  font-family: var(--pv2-mono);
  font-size: 10.5px;
  color: var(--pv2-ink-4);
}
.pv2-month-line.is-done strong { color: var(--pv2-ink); font-weight: 500; }

/* ===========================================================
   SECTION shells
   =========================================================== */
.pv2-section {
  padding: 96px 0;
  border-bottom: 1px solid var(--pv2-line);
}
.pv2-section-head {
  max-width: 760px;
  margin-bottom: 56px;
}
.pv2-section-num {
  display: inline-flex;
  align-items: baseline;
  gap: 12px;
  font-family: var(--pv2-mono);
  font-feature-settings: "tnum";
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--pv2-ink-4);
  margin-bottom: 22px;
}
.pv2-section-num strong {
  font-weight: 700;
  color: var(--pv2-ink);
}
.pv2-section-num::before {
  content: "";
  display: inline-block;
  width: 28px;
  height: 1px;
  background: var(--pv2-line-strong);
  transform: translateY(-3px);
}
.pv2-section-head h2 {
  font-family: var(--pv2-sans);
  font-size: clamp(20px, 2.1vw, 28px);
  line-height: 1.2;
  letter-spacing: 0.01em;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--pv2-ink);
  margin-bottom: 18px;
  max-width: 720px;
}
.pv2-section-head p {
  font-size: 17px;
  color: var(--pv2-ink-3);
  line-height: 1.55;
  max-width: 640px;
}

@media (max-width: 700px) {
  .pv2-section { padding: 64px 0; }
  .pv2-section-head { margin-bottom: 36px; }
}

/* ===========================================================
   CYCLE PROOF
   =========================================================== */
.pv2-section-cycle { background: var(--pv2-bg); }
.pv2-cycle-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 16px;
  position: relative;
}
.pv2-cycle-grid::before {
  content: "";
  position: absolute;
  top: 28px;
  left: 5%;
  right: 5%;
  height: 1px;
  background: linear-gradient(to right, transparent, var(--pv2-line-strong) 12%, var(--pv2-line-strong) 88%, transparent);
  z-index: 0;
}
.pv2-cycle-step {
  position: relative;
  z-index: 1;
  background: var(--pv2-surface);
  border: 1px solid var(--pv2-line);
  border-radius: var(--pv2-r-lg);
  padding: 22px 18px;
  text-align: left;
}
.pv2-cycle-num {
  display: inline-flex;
  width: 30px; height: 30px;
  border-radius: 999px;
  background: var(--pv2-ink);
  color: #fff;
  font-family: var(--pv2-serif);
  font-size: 14px;
  font-weight: 500;
  align-items: center;
  justify-content: center;
  padding-bottom: 2px;
  margin-bottom: 18px;
}
.pv2-cycle-step h3 {
  font-size: 14px;
  font-weight: 600;
  color: var(--pv2-ink);
  margin-bottom: 6px;
  letter-spacing: -0.005em;
}
.pv2-cycle-step p {
  font-size: 13px;
  color: var(--pv2-ink-3);
  line-height: 1.5;
}
.pv2-cycle-step .pv2-micro {
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid var(--pv2-line-2);
  font-size: 11px;
  font-family: var(--pv2-mono);
  color: var(--pv2-ink-4);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  display: flex; align-items: center; gap: 6px;
}
.pv2-cycle-step .pv2-micro-dot {
  width: 4px; height: 4px;
  border-radius: 99px;
  display: inline-block;
}
.pv2-cycle-step .pv2-micro-dot.is-pos { background: var(--pv2-pos); }
.pv2-cycle-step .pv2-micro-dot.is-info { background: var(--pv2-info); }
.pv2-cycle-step .pv2-micro-dot.is-warn { background: var(--pv2-warn); }

@media (max-width: 980px) {
  .pv2-cycle-grid { grid-template-columns: repeat(2, 1fr); }
  .pv2-cycle-grid::before { display: none; }
}
@media (max-width: 520px) {
  .pv2-cycle-grid { grid-template-columns: 1fr; }
}

/* ===========================================================
   INVOICES SCREEN
   =========================================================== */
.pv2-section-invoices { background: var(--pv2-bg); }
.pv2-mock-faturas { font-family: var(--pv2-sans); }
.pv2-mock-faturas .pv2-fx-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  padding: 16px 20px;
  border-bottom: 1px solid var(--pv2-line-2);
}
.pv2-mock-faturas .pv2-fx-title { display: flex; flex-direction: column; gap: 2px; }
.pv2-mock-faturas .pv2-fx-title h4 {
  font-size: 15px;
  font-weight: 600;
  color: var(--pv2-ink);
}
.pv2-mock-faturas .pv2-fx-title small {
  font-family: var(--pv2-mono);
  font-size: 11px;
  color: var(--pv2-ink-4);
  font-variant-numeric: tabular-nums;
}
.pv2-mock-faturas .pv2-fx-actions { display: flex; align-items: center; gap: 10px; }
.pv2-fx-search {
  display: flex; align-items: center; gap: 8px;
  width: 220px; height: 32px;
  padding: 0 12px;
  background: var(--pv2-bg);
  border: 1px solid var(--pv2-line);
  border-radius: 8px;
  font-size: 12.5px;
  color: var(--pv2-ink-4);
}
.pv2-fx-cta {
  height: 32px;
  padding: 0 14px;
  background: var(--pv2-ink);
  color: #fff;
  border-radius: 8px;
  font-size: 12.5px;
  font-weight: 600;
  display: inline-flex; align-items: center; gap: 8px;
  border: none;
}
.pv2-fx-summary {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  padding: 16px 20px;
  border-bottom: 1px solid var(--pv2-line-2);
  background: var(--pv2-surface-2);
}
.pv2-fx-stat { display: flex; flex-direction: column; gap: 4px; }
.pv2-fx-stat .pv2-lbl {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--pv2-ink-4);
}
.pv2-fx-stat .pv2-val {
  font-family: var(--pv2-mono);
  font-size: 17px;
  font-weight: 600;
  color: var(--pv2-ink);
  font-variant-numeric: tabular-nums lining-nums;
}
.pv2-fx-stat .pv2-val.is-neg { color: var(--pv2-neg); }
.pv2-fx-stat .pv2-delta {
  font-family: var(--pv2-mono);
  font-size: 11px;
  color: var(--pv2-ink-4);
  font-variant-numeric: tabular-nums;
}
.pv2-fx-tabs {
  display: flex;
  gap: 4px;
  padding: 12px 20px 0;
  border-bottom: 1px solid var(--pv2-line-2);
}
.pv2-fx-tab {
  padding: 8px 14px;
  font-size: 12.5px;
  color: var(--pv2-ink-4);
  font-weight: 500;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
}
.pv2-fx-tab.is-active {
  color: var(--pv2-ink);
  border-color: var(--pv2-ink);
  font-weight: 600;
}
.pv2-fx-tab .pv2-count {
  font-family: var(--pv2-mono);
  font-size: 11px;
  color: var(--pv2-ink-4);
  margin-left: 6px;
}
.pv2-fx-thead {
  display: grid;
  grid-template-columns: 110px 1.6fr 1fr 0.9fr 0.9fr 28px;
  gap: 16px;
  padding: 12px 20px;
  border-bottom: 1px solid var(--pv2-line-2);
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--pv2-ink-4);
}
.pv2-fx-row {
  display: grid;
  grid-template-columns: 110px 1.6fr 1fr 0.9fr 0.9fr 28px;
  gap: 16px;
  padding: 14px 20px;
  border-bottom: 1px solid var(--pv2-line-2);
  align-items: center;
  font-size: 13px;
}
.pv2-fx-row:last-child { border-bottom: 0; }
.pv2-fx-row:hover { background: var(--pv2-surface-2); }
.pv2-fx-client-cell {
  display: flex; flex-direction: column; gap: 2px; min-width: 0;
}
.pv2-fx-client {
  font-weight: 600;
  color: var(--pv2-ink);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.pv2-fx-client-meta {
  font-family: var(--pv2-mono);
  font-size: 11px;
  color: var(--pv2-ink-4);
}
.pv2-fx-amount {
  font-family: var(--pv2-mono);
  font-size: 13.5px;
  font-weight: 600;
  color: var(--pv2-ink);
  font-variant-numeric: tabular-nums lining-nums;
  text-align: right;
}
.pv2-fx-date {
  font-family: var(--pv2-mono);
  font-size: 12px;
  color: var(--pv2-ink-3);
  font-variant-numeric: tabular-nums;
}
.pv2-fx-date.is-late { color: var(--pv2-neg); font-weight: 500; }
.pv2-fx-row-arrow {
  color: var(--pv2-ink-5);
  display: flex; justify-content: center;
}
.pv2-fx-foot {
  padding: 12px 20px;
  display: flex; justify-content: space-between; align-items: center;
  font-family: var(--pv2-mono);
  font-size: 11.5px;
  color: var(--pv2-ink-4);
  font-variant-numeric: tabular-nums;
  background: var(--pv2-surface-2);
}
.pv2-fx-foot strong { color: var(--pv2-ink); font-weight: 600; }

@media (max-width: 900px) {
  .pv2-fx-summary { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .pv2-fx-thead, .pv2-fx-row {
    grid-template-columns: 100px 1.4fr 1fr 0.9fr;
  }
  .pv2-fx-thead > :nth-child(5), .pv2-fx-thead > :nth-child(6),
  .pv2-fx-row > :nth-child(5), .pv2-fx-row > :nth-child(6) { display: none; }
}

/* ===========================================================
   COMMUNICATION (in-context thread)
   =========================================================== */
.pv2-section-thread { background: #fff; }
.pv2-mock-thread { font-family: var(--pv2-sans); }
.pv2-tx-head {
  padding: 18px 22px 16px;
  border-bottom: 1px solid var(--pv2-line-2);
}
.pv2-tx-eyebrow {
  font-family: var(--pv2-mono);
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--pv2-ink-4);
}
.pv2-tx-title-row {
  display: flex; justify-content: space-between; align-items: baseline;
  margin-top: 8px;
}
.pv2-tx-title { font-size: 16px; font-weight: 600; color: var(--pv2-ink); }
.pv2-tx-title small {
  display: block;
  font-size: 12px;
  color: var(--pv2-ink-4);
  font-weight: 400;
  margin-top: 2px;
  font-family: var(--pv2-mono);
}
.pv2-tx-amount {
  font-family: var(--pv2-mono);
  font-size: 18px;
  font-weight: 600;
  color: var(--pv2-ink);
  font-variant-numeric: tabular-nums lining-nums;
}
.pv2-tx-meta-row {
  display: flex; align-items: center; gap: 8px;
  margin-top: 14px;
  flex-wrap: wrap;
}
.pv2-tx-thread {
  padding: 22px 22px 14px;
  display: flex;
  flex-direction: column;
  gap: 22px;
}
.pv2-tx-msg {
  display: grid;
  grid-template-columns: 32px 1fr;
  gap: 14px;
  align-items: flex-start;
}
.pv2-tx-avatar {
  width: 32px; height: 32px;
  border-radius: 8px;
  display: grid; place-items: center;
  font-family: var(--pv2-serif);
  font-size: 12.5px;
  font-weight: 500;
  color: #fff;
  flex-shrink: 0;
}
.pv2-tx-avatar.is-acct { background: var(--pv2-info); }
.pv2-tx-avatar.is-self { background: var(--pv2-ink); }
.pv2-tx-msg-body { min-width: 0; }
.pv2-tx-msg-head {
  display: flex;
  align-items: baseline;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 6px;
}
.pv2-tx-msg-name { font-size: 13.5px; font-weight: 600; color: var(--pv2-ink); }
.pv2-tx-msg-role {
  font-family: var(--pv2-mono);
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 2px 6px;
  border-radius: 4px;
  color: #fff;
  line-height: 1.4;
}
.pv2-tx-msg-role.is-acct { background: var(--pv2-info); }
.pv2-tx-msg-role.is-self { background: var(--pv2-ink); }
.pv2-tx-msg-time {
  font-family: var(--pv2-mono);
  font-size: 11px;
  color: var(--pv2-ink-4);
  margin-left: auto;
  font-variant-numeric: tabular-nums;
}
.pv2-tx-msg-text {
  font-size: 14px;
  color: var(--pv2-ink-2);
  line-height: 1.55;
}
.pv2-tx-msg-text strong { color: var(--pv2-ink); font-weight: 600; }
.pv2-tx-msg-tags {
  display: flex; align-items: center; gap: 6px;
  margin-top: 10px;
  flex-wrap: wrap;
}
.pv2-tx-msg-tag {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 3px 8px;
  background: var(--pv2-surface-3);
  border: 1px solid var(--pv2-line);
  border-radius: 6px;
  font-size: 11px;
  font-weight: 500;
  color: var(--pv2-ink-3);
}
.pv2-tx-msg-tag svg { width: 11px; height: 11px; color: var(--pv2-ink-4); }
.pv2-tx-msg-attach {
  display: inline-flex; align-items: center; gap: 8px;
  margin-top: 10px;
  padding: 8px 12px;
  background: var(--pv2-surface-2);
  border: 1px solid var(--pv2-line);
  border-radius: 8px;
  font-size: 12.5px;
  color: var(--pv2-ink-2);
}
.pv2-tx-msg-attach svg { width: 13px; height: 13px; color: var(--pv2-ink-4); }
.pv2-tx-msg-attach .pv2-size {
  font-family: var(--pv2-mono);
  font-size: 11px;
  color: var(--pv2-ink-4);
  margin-left: 4px;
}

.pv2-tx-msg.is-system { grid-template-columns: 1fr; }
.pv2-tx-msg.is-system .pv2-tx-msg-body {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 14px;
  background: var(--pv2-pos-bg);
  border: 1px solid rgba(4, 120, 87, 0.18);
  border-radius: 8px;
  font-size: 12.5px;
  color: var(--pv2-pos);
  font-weight: 500;
}
.pv2-tx-msg.is-system svg { width: 14px; height: 14px; flex-shrink: 0; }
.pv2-tx-msg.is-system .pv2-tx-msg-time { margin-left: auto; color: var(--pv2-pos); opacity: .8; }

.pv2-tx-reply {
  padding: 14px 22px 22px;
  border-top: 1px solid var(--pv2-line-2);
}
.pv2-tx-reply-box {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 14px;
  background: var(--pv2-bg);
  border: 1px solid var(--pv2-line);
  border-radius: 10px;
  font-size: 13px;
  color: var(--pv2-ink-4);
}
.pv2-tx-reply-box .pv2-input { flex: 1; }
.pv2-tx-reply-icons { display: flex; gap: 6px; color: var(--pv2-ink-5); }
.pv2-tx-reply-icons svg { width: 14px; height: 14px; }
.pv2-tx-reply-send {
  height: 30px;
  padding: 0 14px;
  background: var(--pv2-ink);
  color: #fff;
  border-radius: 7px;
  font-size: 12px;
  font-weight: 600;
  border: none;
}

.pv2-thread-grid {
  display: grid;
  grid-template-columns: 1fr 1.15fr;
  gap: 56px;
  align-items: center;
}
.pv2-thread-text h3 {
  font-size: 17px;
  font-weight: 600;
  color: var(--pv2-ink);
  margin-top: 28px;
  margin-bottom: 8px;
}
.pv2-thread-text > p {
  font-size: 17px;
  color: var(--pv2-ink-3);
  line-height: 1.55;
}
.pv2-thread-text .pv2-thread-list {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-top: 28px;
}
.pv2-thread-list-item {
  display: grid;
  grid-template-columns: 28px 1fr;
  gap: 14px;
  align-items: flex-start;
}
.pv2-thread-list-item .pv2-num {
  font-family: var(--pv2-mono);
  font-size: 12px;
  font-weight: 600;
  color: var(--pv2-ink-4);
  width: 28px;
  height: 28px;
  border-radius: 6px;
  background: var(--pv2-surface-3);
  display: grid; place-items: center;
  font-variant-numeric: tabular-nums;
}
.pv2-thread-list-item .pv2-body { font-size: 14.5px; color: var(--pv2-ink-2); line-height: 1.5; }
.pv2-thread-list-item .pv2-body strong { color: var(--pv2-ink); font-weight: 600; }

@media (max-width: 980px) {
  .pv2-thread-grid { grid-template-columns: 1fr; gap: 40px; }
}

/* ===========================================================
   COVERAGE
   =========================================================== */
.pv2-section-coverage { background: var(--pv2-bg); }
.pv2-coverage-grid {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 24px;
  align-items: start;
}
.pv2-coverage-panel {
  background: var(--pv2-surface);
  border: 1px solid var(--pv2-line);
  border-radius: var(--pv2-r-lg);
  box-shadow: var(--pv2-shadow-sm);
  overflow: hidden;
}
.pv2-coverage-panel-head {
  padding: 18px 20px;
  border-bottom: 1px solid var(--pv2-line-2);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.pv2-coverage-panel-head h3 {
  font-size: 15px;
  font-weight: 600;
  color: var(--pv2-ink);
}
.pv2-coverage-list { display: grid; }
.pv2-coverage-item {
  display: grid;
  grid-template-columns: 28px 1fr auto;
  gap: 14px;
  align-items: start;
  padding: 18px 20px;
  border-bottom: 1px solid var(--pv2-line-2);
}
.pv2-coverage-item:last-child { border-bottom: 0; }
.pv2-coverage-icon {
  width: 28px;
  height: 28px;
  border-radius: 7px;
  background: var(--pv2-surface-3);
  display: grid;
  place-items: center;
  color: var(--pv2-ink-3);
}
.pv2-coverage-icon svg { width: 15px; height: 15px; }
.pv2-coverage-copy strong {
  display: block;
  font-size: 14px;
  color: var(--pv2-ink);
  font-weight: 600;
  margin-bottom: 3px;
}
.pv2-coverage-copy span {
  display: block;
  font-size: 13px;
  line-height: 1.45;
  color: var(--pv2-ink-3);
}
.pv2-coverage-status {
  font-family: var(--pv2-mono);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 4px 8px;
  border-radius: 999px;
  white-space: nowrap;
}
.pv2-coverage-status.is-live { background: var(--pv2-pos-bg); color: var(--pv2-pos); }
.pv2-coverage-status.is-beta { background: var(--pv2-warn-bg); color: var(--pv2-warn); }
.pv2-coverage-status.is-soon { background: var(--pv2-info-bg); color: var(--pv2-info); }
.pv2-coverage-note {
  background: var(--pv2-surface);
  border: 1px solid var(--pv2-line);
  border-radius: var(--pv2-r-lg);
  padding: 22px;
  box-shadow: var(--pv2-shadow-sm);
}
.pv2-coverage-note h3 {
  font-size: 15px;
  font-weight: 600;
  color: var(--pv2-ink);
  margin-bottom: 10px;
}
.pv2-coverage-note p {
  color: var(--pv2-ink-3);
  font-size: 14px;
  line-height: 1.55;
}
.pv2-coverage-note p a { color: var(--pv2-info); }
.pv2-coverage-note .pv2-btn { margin-top: 20px; }

@media (max-width: 900px) {
  .pv2-coverage-grid { grid-template-columns: 1fr; }
  .pv2-coverage-item { grid-template-columns: 28px 1fr; }
  .pv2-coverage-status { grid-column: 2; justify-self: start; }
}

/* ===========================================================
   PRICING
   =========================================================== */
.pv2-section-pricing { background: var(--pv2-surface); }
.pv2-pricing-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
.pv2-price-card {
  background: var(--pv2-surface);
  border: 1px solid var(--pv2-line);
  border-radius: var(--pv2-r-lg);
  padding: 24px;
  box-shadow: var(--pv2-shadow-sm);
  display: flex;
  flex-direction: column;
  min-height: 360px;
}
.pv2-price-card.is-featured {
  border-color: rgba(15, 23, 42, 0.26);
  box-shadow: var(--pv2-shadow-lg);
}
.pv2-price-kicker {
  font-family: var(--pv2-mono);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--pv2-ink-4);
  margin-bottom: 14px;
}
.pv2-price-card h3 {
  font-size: 18px;
  font-weight: 600;
  color: var(--pv2-ink);
  margin-bottom: 10px;
}
.pv2-price-card p {
  color: var(--pv2-ink-3);
  font-size: 14px;
  line-height: 1.5;
}
.pv2-price-value {
  font-family: var(--pv2-mono);
  font-size: 24px;
  font-weight: 700;
  color: var(--pv2-ink);
  font-variant-numeric: tabular-nums;
  margin: 22px 0 4px;
}
.pv2-price-note {
  font-size: 12.5px;
  color: var(--pv2-ink-4);
  margin-bottom: 18px;
}
.pv2-price-list {
  display: grid;
  gap: 10px;
  margin: 18px 0 24px;
  padding: 0;
  list-style: none;
}
.pv2-price-list li {
  display: grid;
  grid-template-columns: 16px 1fr;
  gap: 10px;
  font-size: 13.5px;
  color: var(--pv2-ink-2);
  line-height: 1.45;
}
.pv2-price-list svg {
  width: 15px;
  height: 15px;
  color: var(--pv2-pos);
  margin-top: 2px;
}
.pv2-price-card .pv2-btn { margin-top: auto; }
.pv2-pricing-disclaimer {
  margin-top: 18px;
  color: var(--pv2-ink-4);
  font-size: 13px;
}
.pv2-pricing-disclaimer a { color: var(--pv2-info); }

@media (max-width: 980px) {
  .pv2-pricing-grid { grid-template-columns: 1fr; }
  .pv2-price-card { min-height: auto; }
}

/* ===========================================================
   CTA FINAL
   =========================================================== */
.pv2-section-cta {
  padding: 96px 0;
  background:
    radial-gradient(700px 320px at 50% 110%, rgba(15, 23, 42, 0.04), transparent 60%),
    var(--pv2-surface);
  border-bottom: 1px solid var(--pv2-line);
  text-align: center;
}
.pv2-cta-inner { max-width: 640px; margin: 0 auto; }
.pv2-cta-inner h2 {
  font-family: var(--pv2-sans);
  font-size: clamp(28px, 3vw, 42px);
  line-height: 1.1;
  letter-spacing: -0.02em;
  font-weight: 600;
  color: var(--pv2-ink);
  margin-top: 16px;
  margin-bottom: 18px;
}
.pv2-cta-inner h2 em { font-family: var(--pv2-serif); font-style: italic; font-weight: 400; }
.pv2-cta-inner p {
  font-size: 17px;
  color: var(--pv2-ink-3);
  margin-bottom: 32px;
}
.pv2-cta-buttons {
  display: inline-flex;
  gap: 12px;
  flex-wrap: wrap;
  justify-content: center;
}
.pv2-cta-fine {
  margin-top: 24px;
  font-size: 13px;
  color: var(--pv2-ink-4);
}
.pv2-cta-fine a { color: var(--pv2-info); }

/* ===========================================================
   FOOTER
   =========================================================== */
.pv2-footer {
  padding: 48px 0 56px;
  background: var(--pv2-surface);
  font-size: 13px;
  color: var(--pv2-ink-4);
}
.pv2-footer-top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 32px;
  padding-bottom: 32px;
  border-bottom: 1px solid var(--pv2-line);
}
.pv2-footer-brand { display: flex; flex-direction: column; gap: 8px; max-width: 320px; }
.pv2-footer-brand-row { display: flex; align-items: center; gap: 10px; }
.pv2-footer-tagline { font-size: 13px; color: var(--pv2-ink-4); line-height: 1.55; }
.pv2-footer-cols {
  display: grid;
  grid-template-columns: repeat(3, minmax(140px, auto));
  gap: 40px;
}
.pv2-footer-col h5 {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--pv2-ink-3);
  margin-bottom: 14px;
}
.pv2-footer-col a { display: block; padding: 4px 0; color: var(--pv2-ink-3); }
.pv2-footer-col a:hover { color: var(--pv2-ink); }
.pv2-footer-bottom {
  margin-top: 24px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
  font-size: 12px;
}
.pv2-footer-bottom .pv2-mono { color: var(--pv2-ink-4); }

@media (max-width: 760px) {
  .pv2-footer-cols { grid-template-columns: 1fr 1fr; gap: 24px; }
}

/* ===========================================================
   PRICING /pricing — pilot v1 portado
   =========================================================== */

/* Utility — JetBrains Mono (paridade com home nav-brand-mark) */
.pv2-jbmono {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-variant-numeric: tabular-nums;
}
.pv2-badge-dark {
  background: var(--pv2-ink);
  color: #fff;
  border-color: var(--pv2-ink);
}
.pv2-badge-dark .pv2-badge-dot { background: #fff; }

.pv2-btn-block { width: 100%; }

/* HERO + FOUNDER STRIP */
.pv2-pricing-hero {
  position: relative;
  background:
    radial-gradient(900px 360px at 105% -20%, rgba(15, 23, 42, 0.06), transparent 55%),
    linear-gradient(to bottom, var(--pv2-surface), var(--pv2-surface-2, #fafbfc));
  border-bottom: 1px solid var(--pv2-line);
  padding: 88px 0 64px;
  overflow: hidden;
}
.pv2-pricing-hero-grid {
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: 64px;
  align-items: start;
}
.pv2-pricing-hero-eyebrow { margin-bottom: 18px; }
.pv2-pricing-hero h1 {
  font-family: var(--pv2-sans);
  font-size: clamp(34px, 4.2vw, 54px);
  line-height: 1.04;
  letter-spacing: -0.025em;
  font-weight: 600;
  color: var(--pv2-ink);
  margin-bottom: 24px;
}
.pv2-pricing-hero h1 em {
  font-family: var(--pv2-serif);
  font-style: italic;
  font-weight: 400;
  color: var(--pv2-ink);
}
.pv2-pricing-hero-sub {
  font-size: 18px;
  line-height: 1.55;
  color: var(--pv2-ink-3);
  margin-bottom: 32px;
  max-width: 520px;
}
.pv2-pricing-hero-anchors {
  display: flex;
  gap: 20px;
  font-size: 14px;
  color: var(--pv2-ink-4);
}
.pv2-pricing-hero-anchors a {
  color: var(--pv2-info);
  font-weight: 500;
}
.pv2-pricing-hero-anchors a:hover { text-decoration: underline; text-underline-offset: 3px; }

/* Founder strip — coração da página, slate-950 com accent contido */
.pv2-founder-strip {
  position: relative;
  background: var(--pv2-ink);
  color: #fff;
  border-radius: var(--pv2-r-lg);
  padding: 28px 28px 24px;
  box-shadow: var(--pv2-shadow-xl, 0 24px 48px -12px rgba(15, 23, 42, 0.14), 0 8px 16px -4px rgba(15, 23, 42, 0.06));
  overflow: hidden;
}
.pv2-founder-strip::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(420px 200px at 100% 0%, rgba(3, 105, 161, 0.22), transparent 60%),
    radial-gradient(360px 180px at 0% 100%, rgba(4, 120, 87, 0.12), transparent 60%);
  pointer-events: none;
}
.pv2-founder-strip > * { position: relative; z-index: 1; }
.pv2-founder-eyebrow {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.55);
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 18px;
}
.pv2-founder-eyebrow::before {
  content: "";
  width: 8px; height: 8px; border-radius: 99px;
  background: var(--pv2-pos);
  box-shadow: 0 0 0 3px rgba(4, 120, 87, 0.28);
  animation: pv2-pulse 2.4s ease-in-out infinite;
}
@keyframes pv2-pulse {
  0%, 100% { box-shadow: 0 0 0 3px rgba(4, 120, 87, 0.28); }
  50% { box-shadow: 0 0 0 7px rgba(4, 120, 87, 0.06); }
}
.pv2-founder-title {
  font-family: var(--pv2-sans);
  font-size: 22px;
  font-weight: 600;
  line-height: 1.2;
  margin-bottom: 8px;
  color: #fff;
}
.pv2-founder-title em {
  font-family: var(--pv2-serif);
  font-style: italic;
  font-weight: 400;
}
.pv2-founder-sub {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.7);
  line-height: 1.5;
  max-width: 420px;
  margin-bottom: 22px;
}
.pv2-founder-price-row {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 24px;
  align-items: center;
  padding: 18px 0 16px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.pv2-founder-price {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 38px;
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1;
  color: #fff;
  font-variant-numeric: tabular-nums lining-nums;
}
.pv2-founder-price-suffix {
  font-family: var(--pv2-sans);
  font-size: 13px;
  color: rgba(255, 255, 255, 0.55);
  margin-left: 6px;
  font-weight: 400;
  letter-spacing: 0;
}
.pv2-founder-meta {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.7);
}
.pv2-founder-meta strong { color: #fff; font-weight: 600; }
.pv2-founder-meta-line {
  display: flex;
  align-items: center;
  gap: 8px;
}
.pv2-founder-meta-line svg {
  width: 13px; height: 13px;
  color: rgba(255, 255, 255, 0.55);
  flex-shrink: 0;
}

.pv2-founder-spots { margin-top: 18px; }
.pv2-founder-spots-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 8px;
}
.pv2-founder-spots-label {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.55);
}
.pv2-founder-spots-count {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 14px;
  font-weight: 700;
  color: #fff;
  font-variant-numeric: tabular-nums;
}
.pv2-founder-spots-count em {
  font-style: normal;
  color: rgba(255, 255, 255, 0.5);
  font-weight: 500;
  margin-left: 4px;
}
.pv2-founder-spots-bar {
  height: 4px;
  background: rgba(255, 255, 255, 0.10);
  border-radius: 99px;
  overflow: hidden;
}
.pv2-founder-spots-fill {
  height: 100%;
  background: linear-gradient(to right, rgba(4, 120, 87, 0.95), rgba(4, 120, 87, 0.7));
  border-radius: 99px;
}

.pv2-founder-cta-row {
  display: flex;
  gap: 12px;
  margin-top: 22px;
  flex-wrap: wrap;
}
.pv2-btn-founder {
  background: #fff;
  color: var(--pv2-ink);
  font-weight: 700;
}
.pv2-btn-founder:hover { background: rgba(255, 255, 255, 0.92); color: var(--pv2-ink); }
.pv2-btn-ghost-on-dark {
  background: transparent;
  color: rgba(255, 255, 255, 0.78);
  border: 1px solid rgba(255, 255, 255, 0.18);
}
.pv2-btn-ghost-on-dark:hover {
  color: #fff;
  border-color: rgba(255, 255, 255, 0.34);
  background: rgba(255, 255, 255, 0.04);
}

@media (max-width: 980px) {
  .pv2-pricing-hero { padding: 64px 0 56px; }
  .pv2-pricing-hero-grid { grid-template-columns: 1fr; gap: 48px; }
  .pv2-pricing-hero-sub { max-width: none; }
  .pv2-founder-strip { padding: 24px 22px 22px; }
  .pv2-founder-price-row { grid-template-columns: 1fr; gap: 14px; align-items: start; }
}

/* SECTION shells — paridade com home v2 */
.pv2-section {
  padding: 96px 0;
  border-bottom: 1px solid var(--pv2-line);
}
.pv2-section-head {
  max-width: 760px;
  margin-bottom: 56px;
}
.pv2-section-num {
  display: inline-flex;
  align-items: baseline;
  gap: 12px;
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-feature-settings: "tnum";
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--pv2-ink-4);
  margin-bottom: 22px;
}
.pv2-section-num strong {
  font-weight: 700;
  color: var(--pv2-ink);
}
.pv2-section-num::before {
  content: "";
  display: inline-block;
  width: 28px;
  height: 1px;
  background: var(--pv2-line-strong);
  transform: translateY(-3px);
}
.pv2-section-head h2 {
  font-family: var(--pv2-sans);
  font-size: clamp(20px, 2.1vw, 28px);
  line-height: 1.2;
  letter-spacing: 0.01em;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--pv2-ink);
  margin-bottom: 18px;
  max-width: 720px;
}
.pv2-section-head p {
  font-size: 17px;
  color: var(--pv2-ink-3);
  line-height: 1.55;
  max-width: 640px;
}
@media (max-width: 700px) {
  .pv2-section { padding: 64px 0; }
  .pv2-section-head { margin-bottom: 36px; }
}

/* PLANS — 2 cards (Gratis + Fundador) lado a lado */
.pv2-section-plans { background: var(--pv2-surface-2, #fafbfc); }
.pv2-plans-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
  max-width: 900px;
}
.pv2-plan-card {
  background: var(--pv2-surface);
  border: 1px solid var(--pv2-line);
  border-radius: var(--pv2-r-lg);
  padding: 32px 28px 28px;
  box-shadow: var(--pv2-shadow-sm, 0 1px 2px rgba(15, 23, 42, 0.04));
  display: flex;
  flex-direction: column;
  position: relative;
}
.pv2-plan-card.is-featured {
  border-color: var(--pv2-ink);
  box-shadow: 0 12px 32px -8px rgba(15, 23, 42, 0.10), 0 4px 12px -4px rgba(15, 23, 42, 0.06);
}
.pv2-plan-card.is-featured::before {
  content: "";
  position: absolute;
  inset: -1px;
  border-radius: var(--pv2-r-lg);
  pointer-events: none;
  background: linear-gradient(180deg, rgba(15, 23, 42, 0.04), transparent 30%);
}
.pv2-plan-badges {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 16px;
  min-height: 22px;
}
.pv2-plan-eyebrow {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--pv2-ink-4);
}
.pv2-plan-card.is-featured .pv2-plan-eyebrow { color: var(--pv2-ink); }
.pv2-plan-name {
  font-family: var(--pv2-sans);
  font-size: 24px;
  font-weight: 600;
  color: var(--pv2-ink);
  margin-bottom: 6px;
  letter-spacing: -0.01em;
}
.pv2-plan-tagline {
  font-size: 14px;
  color: var(--pv2-ink-3);
  line-height: 1.5;
  margin-bottom: 24px;
  min-height: 42px;
}
.pv2-plan-price {
  display: flex;
  align-items: baseline;
  gap: 4px;
  margin-bottom: 8px;
}
.pv2-plan-price-amount {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 44px;
  font-weight: 700;
  color: var(--pv2-ink);
  font-variant-numeric: tabular-nums lining-nums;
  letter-spacing: -0.02em;
  line-height: 1;
}
.pv2-plan-price-cents {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 22px;
  font-weight: 700;
  color: var(--pv2-ink-3);
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.01em;
}
.pv2-plan-price-period {
  font-size: 14px;
  color: var(--pv2-ink-4);
  margin-left: 4px;
}
.pv2-plan-price-strike {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 13px;
  color: var(--pv2-ink-5, #94a3b8);
  text-decoration: line-through;
  margin-top: 4px;
  font-variant-numeric: tabular-nums;
}
.pv2-plan-lock {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--pv2-pos);
  background: var(--pv2-pos-bg);
  border: 1px solid rgba(4, 120, 87, 0.18);
  padding: 5px 10px;
  border-radius: 99px;
  margin-top: 8px;
  align-self: flex-start;
}
.pv2-plan-lock svg { width: 11px; height: 11px; }
.pv2-plan-cta-wrap { margin: 28px 0 24px; }
.pv2-plan-cta-note {
  margin-top: 10px;
  font-size: 12px;
  color: var(--pv2-ink-4);
  text-align: center;
}
.pv2-plan-divider {
  height: 1px;
  background: var(--pv2-line-2, var(--pv2-line));
  margin: 0 0 20px;
}
.pv2-plan-section-label {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--pv2-ink-4);
  margin-bottom: 14px;
}
.pv2-plan-limits {
  display: grid;
  gap: 10px;
  margin: 0 0 24px;
  padding: 0;
  list-style: none;
}
.pv2-plan-limits li {
  display: grid;
  grid-template-columns: 18px 1fr auto;
  gap: 10px;
  font-size: 13.5px;
  color: var(--pv2-ink-2);
  line-height: 1.45;
  align-items: baseline;
}
.pv2-plan-limits .pv2-limit-val {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 13px;
  font-weight: 600;
  color: var(--pv2-ink);
  font-variant-numeric: tabular-nums;
}
.pv2-plan-limits .pv2-limit-val.pv2-limit-unlimited { color: var(--pv2-pos); }
.pv2-plan-limits svg {
  width: 14px;
  height: 14px;
  color: var(--pv2-ink-4);
  margin-top: 2px;
}
.pv2-plan-limits .is-cap { color: var(--pv2-ink-3); }
.pv2-plan-limits .is-cap svg { color: var(--pv2-warn); }
.pv2-plan-features {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.pv2-plan-features li {
  display: grid;
  grid-template-columns: 16px 1fr;
  gap: 10px;
  font-size: 13.5px;
  color: var(--pv2-ink-2);
  line-height: 1.45;
}
.pv2-plan-features li.is-off { color: var(--pv2-ink-5, #94a3b8); }
.pv2-plan-features li.is-off span { text-decoration: line-through; }
.pv2-plan-features svg {
  width: 15px;
  height: 15px;
  color: var(--pv2-pos);
  margin-top: 1px;
  flex-shrink: 0;
}
.pv2-plan-features li.is-off svg { color: var(--pv2-ink-5, #94a3b8); }
.pv2-plan-footnote {
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px solid var(--pv2-line-2, var(--pv2-line));
  font-size: 12px;
  color: var(--pv2-ink-4);
  line-height: 1.5;
}
.pv2-plans-hint {
  margin-top: 20px;
  font-size: 13px;
  color: var(--pv2-ink-4);
  display: flex;
  align-items: center;
  gap: 8px;
  max-width: 900px;
}
.pv2-plans-hint svg { width: 14px; height: 14px; color: var(--pv2-ink-5, #94a3b8); flex-shrink: 0; }
@media (max-width: 860px) {
  .pv2-plans-grid { grid-template-columns: 1fr; max-width: none; }
}

/* ADD-ONS + RECEIPT MOCK */
.pv2-section-extras { background: var(--pv2-surface); }
.pv2-extras-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: start;
}
.pv2-addons-block h3 {
  font-family: var(--pv2-sans);
  font-size: 17px;
  font-weight: 600;
  color: var(--pv2-ink);
  margin: 0 0 6px;
}
.pv2-addons-block > p {
  font-size: 14px;
  color: var(--pv2-ink-3);
  line-height: 1.55;
  margin: 0 0 24px;
}
.pv2-addons-grid {
  display: grid;
  gap: 12px;
}
.pv2-addon {
  display: grid;
  grid-template-columns: 36px 1fr auto;
  gap: 16px;
  align-items: center;
  padding: 16px 18px;
  background: var(--pv2-surface);
  border: 1px solid var(--pv2-line);
  border-radius: var(--pv2-r);
}
.pv2-addon-icon {
  width: 36px;
  height: 36px;
  border-radius: 8px;
  background: var(--pv2-surface-3);
  display: grid;
  place-items: center;
  color: var(--pv2-ink-3);
}
.pv2-addon-icon svg { width: 17px; height: 17px; }
.pv2-addon.is-soon .pv2-addon-icon { color: var(--pv2-ink-5, #94a3b8); }
.pv2-addon-body { min-width: 0; }
.pv2-addon-name {
  font-size: 14px;
  font-weight: 600;
  color: var(--pv2-ink);
  margin-bottom: 2px;
}
.pv2-addon.is-soon .pv2-addon-name { color: var(--pv2-ink-4); }
.pv2-addon-meta {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11.5px;
  color: var(--pv2-ink-4);
  font-variant-numeric: tabular-nums;
  line-height: 1.4;
}
.pv2-addon-flag {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--pv2-ink-4);
  background: var(--pv2-surface-3);
  padding: 4px 9px;
  border-radius: 99px;
  border: 1px solid var(--pv2-line);
}
.pv2-addon.is-soon .pv2-addon-flag {
  color: var(--pv2-info);
  background: var(--pv2-info-bg);
  border-color: rgba(3, 105, 161, 0.18);
}

/* Mock denso: proxima cobranca (Stripe-style) */
.pv2-mock-receipt {
  background: var(--pv2-surface);
  border: 1px solid var(--pv2-line);
  border-radius: var(--pv2-r-lg);
  box-shadow: 0 12px 32px -8px rgba(15, 23, 42, 0.10), 0 4px 12px -4px rgba(15, 23, 42, 0.06);
  overflow: hidden;
  font-family: var(--pv2-sans);
}
.pv2-receipt-body { padding: 22px; }
.pv2-receipt-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--pv2-line-2, var(--pv2-line));
}
.pv2-receipt-title {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--pv2-ink-4);
}
.pv2-receipt-date {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11.5px;
  color: var(--pv2-ink-4);
  font-variant-numeric: tabular-nums;
}
.pv2-receipt-amount-block {
  margin-top: 18px;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--pv2-line-2, var(--pv2-line));
}
.pv2-receipt-amount-row {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
  flex-wrap: wrap;
}
.pv2-receipt-amount-label {
  font-size: 13px;
  color: var(--pv2-ink-3);
  margin-bottom: 6px;
}
.pv2-receipt-amount {
  font-family: var(--pv2-serif);
  font-size: 36px;
  font-weight: 500;
  letter-spacing: -0.02em;
  line-height: 1;
  color: var(--pv2-ink);
  font-variant-numeric: tabular-nums lining-nums;
}
.pv2-receipt-amount .pv2-cents { font-size: 20px; color: var(--pv2-ink-3); }
.pv2-receipt-locked { margin-top: 6px; }
.pv2-receipt-lines {
  margin-top: 18px;
  display: flex;
  flex-direction: column;
}
.pv2-receipt-line {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px dashed var(--pv2-line-2, var(--pv2-line));
  font-size: 13px;
  color: var(--pv2-ink-2);
  align-items: baseline;
}
.pv2-receipt-line:last-of-type { border-bottom: 0; }
.pv2-receipt-lbl strong { color: var(--pv2-ink); font-weight: 500; }
.pv2-receipt-lbl small {
  display: block;
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px;
  color: var(--pv2-ink-4);
  margin-top: 2px;
}
.pv2-receipt-amt {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 13px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  color: var(--pv2-ink);
}
.pv2-receipt-amt.pv2-amt-discount { color: var(--pv2-pos); }
.pv2-receipt-total {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--pv2-line-strong);
  display: flex;
  justify-content: space-between;
  align-items: baseline;
}
.pv2-receipt-total-label {
  font-size: 13px;
  font-weight: 600;
  color: var(--pv2-ink);
}
.pv2-receipt-total-amount {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 20px;
  font-weight: 700;
  color: var(--pv2-ink);
  font-variant-numeric: tabular-nums lining-nums;
}
.pv2-receipt-meta {
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid var(--pv2-line-2, var(--pv2-line));
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  font-size: 12px;
  color: var(--pv2-ink-4);
}
.pv2-receipt-meta a { color: var(--pv2-info); font-weight: 500; }
.pv2-receipt-meta-sep { color: var(--pv2-ink-5, #94a3b8); }
@media (max-width: 980px) {
  .pv2-extras-layout { grid-template-columns: 1fr; gap: 36px; }
}

/* POLICY — 3 cards horizontais */
.pv2-section-policy { background: var(--pv2-surface-2, #fafbfc); }
.pv2-policy-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
.pv2-policy-card {
  background: var(--pv2-surface);
  border: 1px solid var(--pv2-line);
  border-radius: var(--pv2-r-lg);
  padding: 24px 22px;
}
.pv2-policy-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: var(--pv2-surface-3);
  color: var(--pv2-ink);
  font-family: var(--pv2-serif);
  font-size: 15px;
  font-weight: 500;
  margin-bottom: 16px;
}
.pv2-policy-card h3 {
  font-family: var(--pv2-sans);
  font-size: 15px;
  font-weight: 600;
  color: var(--pv2-ink);
  margin: 0 0 8px;
}
.pv2-policy-card p {
  font-size: 13.5px;
  color: var(--pv2-ink-3);
  line-height: 1.55;
  margin: 0;
}
.pv2-policy-micro {
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid var(--pv2-line-2, var(--pv2-line));
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10.5px;
  color: var(--pv2-ink-4);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  display: flex;
  align-items: center;
  gap: 6px;
}
.pv2-policy-dot {
  width: 4px; height: 4px; border-radius: 99px;
  background: var(--pv2-pos);
  display: inline-block;
}
@media (max-width: 800px) {
  .pv2-policy-grid { grid-template-columns: 1fr; }
}

/* FAQ */
.pv2-section-faq { background: var(--pv2-surface); }
.pv2-faq-list {
  max-width: 760px;
  display: grid;
  gap: 0;
  border-top: 1px solid var(--pv2-line);
}
.pv2-faq-item {
  border-bottom: 1px solid var(--pv2-line);
  padding: 22px 0;
  display: grid;
  grid-template-columns: 44px 1fr;
  gap: 16px;
  align-items: start;
}
.pv2-faq-num {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 13px;
  font-weight: 700;
  color: var(--pv2-ink-4);
  font-variant-numeric: tabular-nums;
  padding-top: 2px;
}
.pv2-faq-q {
  font-family: var(--pv2-sans);
  font-size: 16px;
  font-weight: 600;
  color: var(--pv2-ink);
  margin-bottom: 8px;
  line-height: 1.4;
}
.pv2-faq-a {
  font-size: 14.5px;
  color: var(--pv2-ink-3);
  line-height: 1.6;
  max-width: 640px;
}
.pv2-faq-a a { color: var(--pv2-info); font-weight: 500; }
.pv2-faq-a a:hover { text-decoration: underline; text-underline-offset: 3px; }
.pv2-faq-foot {
  margin-top: 36px;
  padding: 22px 24px;
  background: var(--pv2-surface-2, #fafbfc);
  border: 1px solid var(--pv2-line);
  border-radius: var(--pv2-r-lg);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  flex-wrap: wrap;
  max-width: 760px;
}
.pv2-faq-foot-text {
  font-size: 14px;
  color: var(--pv2-ink-3);
  line-height: 1.5;
}
.pv2-faq-foot-text strong { color: var(--pv2-ink); font-weight: 600; }

/* CTA FINAL */
.pv2-section-cta {
  padding: 96px 0;
  background:
    radial-gradient(700px 320px at 50% 110%, rgba(15, 23, 42, 0.04), transparent 60%),
    var(--pv2-surface);
  border-bottom: 1px solid var(--pv2-line);
  text-align: center;
}
.pv2-cta-inner { max-width: 640px; margin: 0 auto; }
.pv2-cta-inner .pv2-section-num { margin-left: auto; margin-right: auto; }
.pv2-cta-inner h2 {
  font-family: var(--pv2-sans);
  font-size: clamp(28px, 3vw, 42px);
  line-height: 1.1;
  letter-spacing: -0.02em;
  font-weight: 600;
  color: var(--pv2-ink);
  margin: 16px 0 18px;
  text-transform: none;
}
.pv2-cta-inner h2 em {
  font-family: var(--pv2-serif);
  font-style: italic;
  font-weight: 400;
}
.pv2-cta-inner p {
  font-size: 17px;
  color: var(--pv2-ink-3);
  margin: 0 0 32px;
}
.pv2-cta-buttons {
  display: inline-flex;
  gap: 12px;
  flex-wrap: wrap;
  justify-content: center;
}
.pv2-cta-fine {
  margin-top: 24px;
  font-size: 13px;
  color: var(--pv2-ink-4);
}
.pv2-cta-fine a { color: var(--pv2-info); }

/* ────────────────────────────────────────────────────────────────────────────
   ACCOUNTANTS V2 (/contadores)
   ──────────────────────────────────────────────────────────────────────── */

.pv2-accountants-hero {
  padding: 82px 0 92px;
  background:
    radial-gradient(900px 360px at 88% 0%, rgba(4, 120, 87, 0.055), transparent 62%),
    linear-gradient(to bottom, var(--pv2-surface), var(--pv2-bg));
  border-bottom: 1px solid var(--pv2-line);
}
.pv2-accountants-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.88fr) minmax(620px, 1.12fr);
  gap: 54px;
  align-items: center;
}
.pv2-accountants-hero-copy h1 {
  font-family: var(--pv2-sans);
  font-size: clamp(36px, 4.4vw, 58px);
  line-height: 1.04;
  letter-spacing: -0.025em;
  font-weight: 600;
  color: var(--pv2-ink);
  margin-bottom: 24px;
}
.pv2-accountants-hero-copy h1 em {
  font-family: var(--pv2-serif);
  font-style: italic;
  font-weight: 400;
}
.pv2-accountants-trust-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 30px;
}
.pv2-accountants-trust-row span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 30px;
  padding: 6px 10px;
  border: 1px solid var(--pv2-line);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.72);
  color: var(--pv2-ink-3);
  font-size: 12.5px;
  font-weight: 500;
}
.pv2-accountants-trust-row span::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 99px;
  background: var(--pv2-pos);
}

.pv2-accountant-console {
  background: var(--pv2-surface);
  border: 1px solid var(--pv2-line);
  border-radius: var(--pv2-r-lg);
  box-shadow: var(--pv2-shadow-xl);
  overflow: hidden;
  min-width: 0;
}
.pv2-accountant-console-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 20px;
  padding: 20px 22px 18px;
  border-bottom: 1px solid var(--pv2-line-2);
}
.pv2-accountant-console-kicker {
  font-family: var(--pv2-mono);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  color: var(--pv2-ink-4);
  margin-bottom: 6px;
}
.pv2-accountant-console-head h2 {
  font-size: 22px;
  line-height: 1.15;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--pv2-ink);
  margin: 0 0 5px;
}
.pv2-accountant-console-head span {
  display: block;
  font-size: 12.5px;
  color: var(--pv2-ink-4);
}
.pv2-accountant-console-period {
  flex-shrink: 0;
  min-width: 118px;
  padding: 10px 12px;
  border: 1px solid var(--pv2-line);
  border-radius: 9px;
  background: var(--pv2-surface-2);
  text-align: right;
}
.pv2-accountant-console-period strong {
  display: block;
  font-family: var(--pv2-mono);
  font-size: 12.5px;
  color: var(--pv2-ink);
  font-variant-numeric: tabular-nums;
}
.pv2-accountant-console-period span {
  margin-top: 2px;
  font-family: var(--pv2-mono);
  font-size: 10.5px;
  color: var(--pv2-ink-4);
}

.pv2-accountant-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  padding: 16px 20px;
  background: var(--pv2-surface-2);
  border-bottom: 1px solid var(--pv2-line-2);
}
.pv2-accountant-summary-card {
  display: grid;
  gap: 4px;
  min-width: 0;
  padding: 13px 12px;
  border: 1px solid var(--pv2-line);
  border-radius: 9px;
  background: var(--pv2-surface);
}
.pv2-accountant-summary-card span {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--pv2-ink-4);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.pv2-accountant-summary-card strong {
  font-family: var(--pv2-serif);
  font-size: 30px;
  line-height: 1;
  font-weight: 500;
  color: var(--pv2-ink);
  font-variant-numeric: tabular-nums;
}
.pv2-accountant-summary-card small {
  font-size: 11.5px;
  line-height: 1.35;
  color: var(--pv2-ink-4);
}
.pv2-accountant-summary-card.is-risk strong { color: var(--pv2-neg); }
.pv2-accountant-summary-card.is-accountant strong { color: var(--pv2-info); }
.pv2-accountant-summary-card.is-guide strong { color: var(--pv2-warn); }
.pv2-accountant-summary-card.is-reopen strong { color: var(--pv2-pos); }

.pv2-accountant-tabs {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 12px 20px 0;
  border-bottom: 1px solid var(--pv2-line-2);
  overflow-x: auto;
}
.pv2-accountant-tabs span {
  padding: 8px 12px 9px;
  border-bottom: 2px solid transparent;
  color: var(--pv2-ink-4);
  font-size: 12.5px;
  font-weight: 500;
  white-space: nowrap;
}
.pv2-accountant-tabs span.is-active {
  color: var(--pv2-ink);
  border-color: var(--pv2-ink);
  font-weight: 600;
}
.pv2-accountant-table { min-width: 0; }
.pv2-accountant-table-head,
.pv2-accountant-table-row {
  display: grid;
  grid-template-columns: 82px 1.25fr 1.45fr 108px 116px;
  gap: 14px;
  align-items: center;
}
.pv2-accountant-table-head {
  padding: 12px 20px;
  border-bottom: 1px solid var(--pv2-line-2);
  color: var(--pv2-ink-4);
  font-family: var(--pv2-mono);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}
.pv2-accountant-table-row {
  padding: 14px 20px;
  border-bottom: 1px solid var(--pv2-line-2);
  font-size: 13px;
}
.pv2-accountant-table-row:last-child { border-bottom: 0; }
.pv2-accountant-table-row:hover { background: var(--pv2-surface-2); }
.pv2-accountant-priority,
.pv2-accountant-owner {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 24px;
  width: fit-content;
  padding: 3px 8px;
  border-radius: 999px;
  border: 1px solid var(--pv2-line);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  white-space: nowrap;
}
.pv2-accountant-priority.is-high {
  background: var(--pv2-neg-bg);
  border-color: rgba(185, 28, 28, 0.2);
  color: var(--pv2-neg);
}
.pv2-accountant-priority.is-medium {
  background: var(--pv2-warn-bg);
  border-color: rgba(180, 83, 9, 0.2);
  color: var(--pv2-warn);
}
.pv2-accountant-priority.is-low {
  background: var(--pv2-surface-3);
  color: var(--pv2-ink-4);
}
.pv2-accountant-owner.is-accountant {
  background: var(--pv2-info-bg);
  border-color: rgba(3, 105, 161, 0.18);
  color: var(--pv2-info);
}
.pv2-accountant-owner.is-client {
  background: var(--pv2-surface-3);
  color: var(--pv2-ink-3);
}
.pv2-accountant-client,
.pv2-accountant-signal {
  min-width: 0;
}
.pv2-accountant-client strong,
.pv2-accountant-signal strong {
  display: block;
  color: var(--pv2-ink);
  font-size: 13.5px;
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.pv2-accountant-client small,
.pv2-accountant-signal small {
  display: block;
  margin-top: 2px;
  color: var(--pv2-ink-4);
  font-size: 11.5px;
  line-height: 1.35;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.pv2-accountant-action {
  color: var(--pv2-ink);
  font-size: 12.5px;
  font-weight: 600;
  text-align: right;
}

.pv2-section-accountants-portfolio { background: var(--pv2-bg); }
.pv2-accountants-portfolio-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(300px, 0.88fr);
  gap: 28px;
  align-items: start;
}
.pv2-accountants-client-stack {
  display: grid;
  gap: 12px;
}
.pv2-accountants-client-card {
  display: grid;
  gap: 16px;
  padding: 18px;
  border: 1px solid var(--pv2-line);
  border-radius: var(--pv2-r-lg);
  background: var(--pv2-surface);
  box-shadow: var(--pv2-shadow-sm);
}
.pv2-accountants-client-card-main {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  min-width: 0;
}
.pv2-accountants-client-avatar {
  width: 42px;
  height: 42px;
  border-radius: 10px;
  display: grid;
  place-items: center;
  flex-shrink: 0;
  background: var(--pv2-ink);
  color: var(--pv2-surface);
  font-family: var(--pv2-mono);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.05em;
}
.pv2-accountants-client-card h3 {
  font-size: 15px;
  font-weight: 600;
  color: var(--pv2-ink);
  margin-bottom: 3px;
}
.pv2-accountants-client-card p {
  color: var(--pv2-ink-3);
  font-size: 13px;
  line-height: 1.45;
}
.pv2-accountants-client-card dl {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin: 0;
}
.pv2-accountants-client-card dl > div {
  padding: 10px 11px;
  border-radius: 8px;
  background: var(--pv2-surface-2);
  border: 1px solid var(--pv2-line-2);
}
.pv2-accountants-client-card dt {
  margin: 0 0 3px;
  color: var(--pv2-ink-4);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}
.pv2-accountants-client-card dd {
  margin: 0;
  color: var(--pv2-ink);
  font-family: var(--pv2-mono);
  font-size: 12.5px;
  font-weight: 700;
}
.pv2-accountants-client-card.is-risk { border-left: 4px solid var(--pv2-neg); }
.pv2-accountants-client-card.is-warn { border-left: 4px solid var(--pv2-warn); }
.pv2-accountants-client-card.is-info { border-left: 4px solid var(--pv2-info); }
.pv2-accountants-client-card.is-success { border-left: 4px solid var(--pv2-pos); }

.pv2-accountants-signal-panel {
  position: sticky;
  top: 88px;
  padding: 24px;
  background: var(--pv2-surface);
  border: 1px solid var(--pv2-line);
  border-radius: var(--pv2-r-lg);
  box-shadow: var(--pv2-shadow-sm);
}
.pv2-accountants-signal-panel h3 {
  margin: 12px 0 8px;
  color: var(--pv2-ink);
  font-size: 22px;
  line-height: 1.2;
  font-weight: 600;
  letter-spacing: -0.01em;
}
.pv2-accountants-signal-panel p {
  color: var(--pv2-ink-3);
  font-size: 14px;
  line-height: 1.55;
}
.pv2-accountants-signal-list {
  display: grid;
  gap: 12px;
  margin-top: 22px;
}
.pv2-accountants-signal-item {
  display: grid;
  grid-template-columns: 12px 1fr;
  gap: 12px;
  align-items: start;
  padding: 13px 0;
  border-top: 1px solid var(--pv2-line-2);
}
.pv2-accountants-signal-item:first-child { border-top: 0; padding-top: 0; }
.pv2-accountants-signal-dot {
  width: 9px;
  height: 9px;
  border-radius: 99px;
  margin-top: 5px;
  background: var(--pv2-ink-4);
}
.pv2-accountants-signal-item.is-risk .pv2-accountants-signal-dot { background: var(--pv2-neg); }
.pv2-accountants-signal-item.is-warn .pv2-accountants-signal-dot { background: var(--pv2-warn); }
.pv2-accountants-signal-item.is-info .pv2-accountants-signal-dot { background: var(--pv2-info); }
.pv2-accountants-signal-item.is-success .pv2-accountants-signal-dot { background: var(--pv2-pos); }
.pv2-accountants-signal-item strong {
  display: block;
  color: var(--pv2-ink);
  font-size: 14px;
  font-weight: 600;
  margin-bottom: 2px;
}
.pv2-accountants-signal-item small {
  display: block;
  color: var(--pv2-ink-4);
  font-size: 12.5px;
  line-height: 1.45;
}

.pv2-section-accountants-process { background: var(--pv2-surface); }
.pv2-accountants-process-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 14px;
}
.pv2-accountants-process-step {
  min-width: 0;
  padding: 22px 18px;
  background: var(--pv2-surface);
  border: 1px solid var(--pv2-line);
  border-radius: var(--pv2-r-lg);
  box-shadow: var(--pv2-shadow-sm);
}
.pv2-accountants-step-num {
  display: inline-grid;
  place-items: center;
  width: 34px;
  height: 34px;
  margin-bottom: 18px;
  border-radius: 9px;
  background: var(--pv2-ink);
  color: var(--pv2-surface);
  font-family: var(--pv2-mono);
  font-size: 12px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.pv2-accountants-process-step h3 {
  color: var(--pv2-ink);
  font-size: 14.5px;
  font-weight: 600;
  line-height: 1.25;
  margin: 0 0 8px;
}
.pv2-accountants-process-step p {
  color: var(--pv2-ink-3);
  font-size: 13px;
  line-height: 1.5;
}
.pv2-accountants-process-step small {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-top: 16px;
  padding-top: 12px;
  border-top: 1px solid var(--pv2-line-2);
  color: var(--pv2-ink-4);
  font-family: var(--pv2-mono);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}
.pv2-accountants-process-step small::before {
  content: "";
  width: 5px;
  height: 5px;
  border-radius: 99px;
  background: var(--pv2-pos);
}

.pv2-section-accountants-evidence { background: var(--pv2-bg); }
.pv2-accountants-evidence-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(440px, 1.1fr);
  gap: 48px;
  align-items: center;
}
.pv2-accountants-evidence-grid .pv2-section-head {
  margin-bottom: 28px;
}
.pv2-accountants-evidence-list {
  display: grid;
  gap: 14px;
}
.pv2-accountants-evidence-item {
  display: grid;
  grid-template-columns: 42px 1fr;
  gap: 14px;
  align-items: start;
  padding: 16px 0;
  border-top: 1px solid var(--pv2-line-strong);
}
.pv2-accountants-evidence-item span {
  width: 34px;
  height: 34px;
  border-radius: 9px;
  background: var(--pv2-surface);
  border: 1px solid var(--pv2-line);
  color: var(--pv2-ink-3);
  display: grid;
  place-items: center;
  font-family: var(--pv2-mono);
  font-size: 11px;
  font-weight: 700;
}
.pv2-accountants-evidence-item h3 {
  color: var(--pv2-ink);
  font-size: 15px;
  font-weight: 600;
  margin: 0 0 4px;
}
.pv2-accountants-evidence-item p {
  color: var(--pv2-ink-3);
  font-size: 13.5px;
  line-height: 1.5;
}

.pv2-accountants-thread-card {
  background: var(--pv2-surface);
  border: 1px solid var(--pv2-line);
  border-radius: var(--pv2-r-lg);
  box-shadow: var(--pv2-shadow-lg);
  overflow: hidden;
}
.pv2-accountants-thread-head {
  padding: 18px 20px;
  border-bottom: 1px solid var(--pv2-line-2);
}
.pv2-accountants-thread-head span {
  display: block;
  color: var(--pv2-ink-4);
  font-family: var(--pv2-mono);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  margin-bottom: 7px;
}
.pv2-accountants-thread-head strong {
  display: block;
  color: var(--pv2-ink);
  font-size: 17px;
  font-weight: 600;
  margin-bottom: 3px;
}
.pv2-accountants-thread-head small {
  display: block;
  color: var(--pv2-ink-4);
  font-family: var(--pv2-mono);
  font-size: 11.5px;
}
.pv2-accountants-thread-body {
  display: grid;
  gap: 18px;
  padding: 22px 20px;
}
.pv2-accountants-thread-message {
  display: grid;
  grid-template-columns: 34px 1fr;
  gap: 12px;
  align-items: start;
}
.pv2-accountants-thread-message span {
  width: 34px;
  height: 34px;
  border-radius: 9px;
  display: grid;
  place-items: center;
  color: var(--pv2-surface);
  font-family: var(--pv2-mono);
  font-size: 11px;
  font-weight: 700;
}
.pv2-accountants-thread-message.is-accountant span { background: var(--pv2-info); }
.pv2-accountants-thread-message.is-client span { background: var(--pv2-ink); }
.pv2-accountants-thread-message.is-system span { background: var(--pv2-pos); }
.pv2-accountants-thread-message p {
  margin: 0;
  padding: 12px 14px;
  background: var(--pv2-surface-2);
  border: 1px solid var(--pv2-line);
  border-radius: 10px;
  color: var(--pv2-ink-2);
  font-size: 13.5px;
  line-height: 1.5;
}
.pv2-accountants-thread-message.is-system p {
  background: var(--pv2-pos-bg);
  border-color: rgba(4, 120, 87, 0.18);
  color: var(--pv2-pos);
  font-weight: 500;
}
.pv2-accountants-thread-footer {
  padding: 13px 20px;
  border-top: 1px solid var(--pv2-line-2);
  background: var(--pv2-surface-2);
  color: var(--pv2-ink-4);
  font-family: var(--pv2-mono);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.pv2-section-accountants-start { background: var(--pv2-surface); }
.pv2-accountants-start-grid {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(360px, 0.72fr);
  gap: 48px;
  align-items: start;
}
.pv2-accountants-start-grid .pv2-section-head {
  margin-bottom: 0;
}
.pv2-accountants-start-panel {
  padding: 28px;
  background: var(--pv2-surface);
  border: 1px solid var(--pv2-line);
  border-radius: var(--pv2-r-lg);
  box-shadow: var(--pv2-shadow-lg);
}
.pv2-accountants-start-price {
  padding-bottom: 22px;
  border-bottom: 1px solid var(--pv2-line-2);
  margin-bottom: 20px;
}
.pv2-accountants-start-price span {
  display: block;
  color: var(--pv2-ink-4);
  font-family: var(--pv2-mono);
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  margin-bottom: 8px;
}
.pv2-accountants-start-price strong {
  display: block;
  color: var(--pv2-ink);
  font-family: var(--pv2-serif);
  font-size: 36px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: -0.02em;
}
.pv2-accountants-start-price small {
  display: block;
  color: var(--pv2-ink-4);
  font-size: 13px;
  margin-top: 8px;
}
.pv2-accountants-start-panel ul {
  display: grid;
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.pv2-accountants-start-panel li {
  display: grid;
  grid-template-columns: 18px 1fr;
  gap: 10px;
  align-items: start;
  color: var(--pv2-ink-2);
  font-size: 14px;
  line-height: 1.45;
}
.pv2-accountants-start-panel li svg {
  width: 16px;
  height: 16px;
  color: var(--pv2-pos);
  margin-top: 2px;
}
.pv2-accountants-start-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 24px;
}
.pv2-section-accountants-faq { background: var(--pv2-bg); }

@media (max-width: 1080px) {
  .pv2-accountants-hero-grid {
    grid-template-columns: 1fr;
    gap: 42px;
  }
  .pv2-accountants-process-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .pv2-accountants-process-step:last-child {
    grid-column: span 2;
  }
}
@media (max-width: 900px) {
  .pv2-accountants-hero { padding: 64px 0 72px; }
  .pv2-accountants-portfolio-grid,
  .pv2-accountants-evidence-grid,
  .pv2-accountants-start-grid {
    grid-template-columns: 1fr;
  }
  .pv2-accountants-signal-panel {
    position: static;
  }
  .pv2-accountant-table {
    overflow-x: auto;
  }
  .pv2-accountant-table-head,
  .pv2-accountant-table-row {
    min-width: 760px;
  }
}
@media (max-width: 640px) {
  .pv2-accountant-console-head,
  .pv2-accountants-start-actions {
    flex-direction: column;
    align-items: stretch;
  }
  .pv2-accountant-console-period {
    width: 100%;
    text-align: left;
  }
  .pv2-accountant-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .pv2-accountant-table {
    overflow: visible;
  }
  .pv2-accountant-table-head {
    display: none;
  }
  .pv2-accountant-table-row {
    min-width: 0;
    grid-template-columns: 1fr auto;
    gap: 10px 12px;
    align-items: start;
    padding: 16px 18px;
  }
  .pv2-accountant-table-row .pv2-accountant-priority {
    grid-column: 1;
    grid-row: 1;
  }
  .pv2-accountant-table-row .pv2-accountant-owner {
    grid-column: 2;
    grid-row: 1;
    justify-self: end;
  }
  .pv2-accountant-table-row .pv2-accountant-client,
  .pv2-accountant-table-row .pv2-accountant-signal,
  .pv2-accountant-table-row .pv2-accountant-action {
    grid-column: 1 / -1;
  }
  .pv2-accountant-client strong,
  .pv2-accountant-signal strong,
  .pv2-accountant-client small,
  .pv2-accountant-signal small {
    white-space: normal;
  }
  .pv2-accountant-action {
    text-align: left;
    padding-top: 4px;
  }
  .pv2-accountants-client-card dl {
    grid-template-columns: 1fr;
  }
  .pv2-accountants-process-grid {
    grid-template-columns: 1fr;
  }
  .pv2-accountants-process-step:last-child {
    grid-column: auto;
  }
  .pv2-accountants-start-panel {
    padding: 22px;
  }
  .pv2-accountants-start-actions .pv2-btn {
    width: 100%;
  }
}

/* ────────────────────────────────────────────────────────────────────────────
   COVERAGE V2 (/cobertura)
   ──────────────────────────────────────────────────────────────────────── */

.pv2-coverage-hero {
  padding: 88px 0 32px;
  background:
    radial-gradient(1100px 360px at 50% -10%, rgba(15, 23, 42, 0.04), transparent 70%),
    var(--pv2-surface);
}
.pv2-coverage-hero .pv2-section-head { max-width: 760px; margin: 0 auto 32px; text-align: left; }
.pv2-coverage-hero h1 {
  font-family: var(--pv2-serif);
  font-weight: 500;
  font-size: clamp(40px, 5vw, 60px);
  line-height: 1.05;
  letter-spacing: -0.018em;
  color: var(--pv2-ink);
  margin: 0 0 16px;
}
.pv2-coverage-hero h1 em {
  font-style: italic;
  color: var(--pv2-ink-2);
}
.pv2-coverage-hero p {
  font-size: 17px;
  line-height: 1.55;
  color: var(--pv2-ink-3);
  max-width: 620px;
  margin: 0;
}

.pv2-coverage-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 24px 0 8px;
  max-width: 760px;
}
.pv2-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 14px;
  font-size: 13px;
  font-weight: 500;
  color: var(--pv2-ink-3);
  background: var(--pv2-surface);
  border: 1px solid var(--pv2-line-strong);
  border-radius: 999px;
  text-decoration: none;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.pv2-chip:hover { background: var(--pv2-surface-2); color: var(--pv2-ink); }
.pv2-chip.is-active {
  background: var(--pv2-ink);
  border-color: var(--pv2-ink);
  color: var(--pv2-surface);
}
.pv2-chip.is-active:hover { background: var(--pv2-action-hover); }

.pv2-section-coverage-cat { padding: 56px 0; border-top: 1px solid var(--pv2-line-2); }
.pv2-section-coverage-cat:first-of-type { border-top: 0; padding-top: 24px; }
.pv2-section-coverage-cat .pv2-section-head { max-width: none; text-align: left; margin-bottom: 24px; }
.pv2-section-coverage-cat .pv2-section-head p { color: var(--pv2-ink-3); margin: 8px 0 0; max-width: 720px; }

.pv2-coverage-table-wrap {
  border: 1px solid var(--pv2-line);
  border-radius: var(--pv2-r-lg);
  background: var(--pv2-surface);
  overflow: hidden;
}
.pv2-coverage-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}
.pv2-coverage-table thead th {
  text-align: left;
  font-family: "JetBrains Mono", var(--pv2-mono);
  font-weight: 600;
  font-size: 11px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--pv2-ink-4);
  padding: 14px 16px;
  background: var(--pv2-surface-2);
  border-bottom: 1px solid var(--pv2-line);
}
.pv2-coverage-table tbody td {
  padding: 16px;
  border-bottom: 1px solid var(--pv2-line-2);
  color: var(--pv2-ink-2);
  vertical-align: top;
  line-height: 1.5;
}
.pv2-coverage-table tbody tr:last-child td { border-bottom: 0; }
.pv2-coverage-table tbody tr:hover td { background: var(--pv2-surface-2); }

.pv2-col-item { width: 22%; min-width: 180px; }
.pv2-col-status { width: 14%; min-width: 140px; white-space: nowrap; }
.pv2-col-evidence { width: 34%; color: var(--pv2-ink-3); }
.pv2-col-validated { width: 16%; min-width: 150px; font-family: "JetBrains Mono", var(--pv2-mono); font-size: 12px; color: var(--pv2-ink-4); }
.pv2-col-note { width: 14%; color: var(--pv2-ink-3); }

.pv2-coverage-name {
  display: block;
  font-weight: 600;
  color: var(--pv2-ink);
  font-size: 14px;
}
.pv2-coverage-code {
  display: inline-block;
  margin-top: 4px;
  font-family: "JetBrains Mono", var(--pv2-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.03em;
  color: var(--pv2-ink-4);
  background: var(--pv2-surface-3);
  padding: 2px 6px;
  border-radius: var(--pv2-r-sm);
}

.pv2-coverage-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px 4px 8px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 600;
  line-height: 1;
  border: 1px solid;
}
.pv2-coverage-pill-dot {
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: currentColor;
}
.pv2-coverage-pill.is-supported    { color: var(--pv2-pos);  background: var(--pv2-pos-bg);  border-color: rgba(4, 120, 87, 0.20); }
.pv2-coverage-pill.is-assisted     { color: var(--pv2-info); background: var(--pv2-info-bg); border-color: rgba(3, 105, 161, 0.20); }
.pv2-coverage-pill.is-experimental { color: var(--pv2-warn); background: var(--pv2-warn-bg); border-color: rgba(180, 83, 9, 0.22); }
.pv2-coverage-pill.is-unsupported  { color: var(--pv2-ink-4); background: var(--pv2-surface-3); border-color: var(--pv2-line-strong); }

.pv2-chip.is-supported.is-active    { background: var(--pv2-pos);  border-color: var(--pv2-pos); }
.pv2-chip.is-assisted.is-active     { background: var(--pv2-info); border-color: var(--pv2-info); }
.pv2-chip.is-experimental.is-active { background: var(--pv2-warn); border-color: var(--pv2-warn); }
.pv2-chip.is-unsupported.is-active  { background: var(--pv2-ink-3); border-color: var(--pv2-ink-3); }

.pv2-coverage-empty {
  padding: 40px 24px;
  text-align: center;
  color: var(--pv2-ink-4);
  font-size: 14px;
}

@media (max-width: 900px) {
  .pv2-coverage-table-wrap { border-radius: var(--pv2-r); }
  .pv2-coverage-table thead { display: none; }
  .pv2-coverage-table, .pv2-coverage-table tbody, .pv2-coverage-table tr, .pv2-coverage-table td { display: block; width: 100%; }
  .pv2-coverage-table tr {
    padding: 16px;
    border-bottom: 1px solid var(--pv2-line-2);
  }
  .pv2-coverage-table tr:hover td { background: transparent; }
  .pv2-coverage-table tbody td {
    border-bottom: 0;
    padding: 4px 0;
  }
  .pv2-coverage-table tbody td:first-child { padding-top: 0; }
  .pv2-coverage-table tbody td.pv2-col-status { padding-bottom: 8px; }
  .pv2-coverage-table tbody td.pv2-col-evidence,
  .pv2-coverage-table tbody td.pv2-col-validated,
  .pv2-coverage-table tbody td.pv2-col-note {
    font-size: 13px;
  }
  .pv2-col-item, .pv2-col-status, .pv2-col-evidence, .pv2-col-validated, .pv2-col-note {
    width: 100%; min-width: 0;
  }
}

/* ===========================================================
   Flash banners (used by public_v2 layout)
   =========================================================== */
.pv2-flash {
  padding: 12px 16px;
  border-radius: var(--pv2-r);
  font-size: 14px;
  line-height: 1.45;
  border: 1px solid;
}
.pv2-flash-success {
  background: var(--pv2-pos-bg);
  border-color: color-mix(in oklab, var(--pv2-pos) 25%, transparent);
  color: var(--pv2-pos);
}
.pv2-flash-error {
  background: var(--pv2-neg-bg);
  border-color: color-mix(in oklab, var(--pv2-neg) 25%, transparent);
  color: var(--pv2-neg);
}

/* ===========================================================
   Auth shell (devise_v2 layout)
   Minimal centered card: logo on top, card, footnote.
   =========================================================== */
body.public-v2.pv2-auth-body {
  background: var(--pv2-bg);
  min-height: 100vh;
}
.pv2-auth-shell {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 48px 24px;
  gap: 24px;
}
.pv2-auth-brand {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  color: var(--pv2-ink);
  padding: 6px 12px;
  border-radius: var(--pv2-r-sm);
  transition: opacity 0.15s ease;
}
.pv2-auth-brand:hover { opacity: 0.7; }

.pv2-auth-card {
  width: 100%;
  max-width: 420px;
  background: var(--pv2-surface);
  border: 1px solid var(--pv2-line);
  border-radius: var(--pv2-r-lg);
  box-shadow: var(--pv2-shadow-lg);
  padding: 36px 32px;
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.pv2-auth-card--wide { max-width: 520px; }
.pv2-auth-flash { margin-bottom: 4px; }

.pv2-auth-head {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.pv2-auth-eyebrow {
  font-family: var(--pv2-mono);
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--pv2-ink-4);
}
.pv2-auth-title {
  font-family: var(--pv2-serif);
  font-weight: 500;
  font-size: 28px;
  line-height: 1.15;
  letter-spacing: -0.01em;
  color: var(--pv2-ink);
  margin: 0;
}
.pv2-auth-subtitle {
  font-size: 14px;
  color: var(--pv2-ink-3);
  line-height: 1.5;
  margin: 4px 0 0;
}

.pv2-auth-form {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.pv2-auth-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.pv2-auth-field > label {
  font-size: 13px;
  font-weight: 600;
  color: var(--pv2-ink-2);
  letter-spacing: 0.01em;
}
.pv2-auth-input {
  width: 100%;
  box-sizing: border-box;
  padding: 11px 14px;
  border: 1px solid var(--pv2-line-strong);
  border-radius: var(--pv2-r);
  background: var(--pv2-surface);
  color: var(--pv2-ink);
  font-family: var(--pv2-sans);
  font-size: 15px;
  line-height: 1.4;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.pv2-auth-input:focus {
  outline: none;
  border-color: var(--pv2-ink-2);
  box-shadow: 0 0 0 3px rgba(15, 23, 42, 0.08);
}
.pv2-auth-input::placeholder { color: var(--pv2-ink-5); }
.pv2-auth-hint {
  font-size: 12px;
  color: var(--pv2-ink-4);
  margin: 2px 0 0;
}
.pv2-auth-error {
  font-size: 12px;
  color: var(--pv2-neg);
  margin: 2px 0 0;
}

.pv2-auth-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}
.pv2-auth-remember {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  color: var(--pv2-ink-3);
  cursor: pointer;
}
.pv2-auth-remember input[type="checkbox"] {
  width: 16px;
  height: 16px;
  accent-color: var(--pv2-ink);
  cursor: pointer;
}
.pv2-auth-link {
  font-size: 14px;
  color: var(--pv2-ink-2);
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-color: var(--pv2-line-strong);
  transition: text-decoration-color 0.15s ease;
}
.pv2-auth-link:hover { text-decoration-color: var(--pv2-ink-2); }

.pv2-auth-submit {
  width: 100%;
  padding: 13px 16px;
  font-size: 15px;
  font-weight: 600;
  border-radius: var(--pv2-r);
  background: var(--pv2-action);
  color: #fff;
  border: 1px solid var(--pv2-action);
  cursor: pointer;
  transition: background 0.15s ease;
  font-family: var(--pv2-sans);
  letter-spacing: 0.01em;
}
.pv2-auth-submit:hover { background: var(--pv2-action-hover); }
.pv2-auth-submit:disabled { opacity: 0.55; cursor: not-allowed; }

.pv2-auth-links {
  border-top: 1px solid var(--pv2-line-2);
  padding-top: 18px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  font-size: 14px;
}
.pv2-auth-links a, .pv2-auth-links button {
  color: var(--pv2-ink-2);
  text-decoration: none;
  background: none;
  border: none;
  padding: 0;
  font: inherit;
  cursor: pointer;
  text-align: left;
  transition: color 0.15s ease;
}
.pv2-auth-links a:hover, .pv2-auth-links button:hover { color: var(--pv2-ink); text-decoration: underline; text-underline-offset: 3px; }

.pv2-auth-footnote {
  font-family: var(--pv2-mono);
  font-size: 11px;
  letter-spacing: 0.04em;
  color: var(--pv2-ink-4);
  margin: 0;
}

.pv2-auth-error-notification {
  background: var(--pv2-neg-bg);
  border: 1px solid color-mix(in oklab, var(--pv2-neg) 25%, transparent);
  color: var(--pv2-neg);
  padding: 10px 14px;
  border-radius: var(--pv2-r);
  font-size: 13px;
}

/* Signup-specific blocks (plan info card, trust badges, terms text) */
.pv2-signup-plan {
  background: var(--pv2-surface-3);
  border: 1px solid var(--pv2-line);
  border-radius: var(--pv2-r);
  padding: 16px 18px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.pv2-signup-plan-head {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 8px;
  font-size: 14px;
}
.pv2-signup-plan-name {
  font-weight: 600;
  color: var(--pv2-ink);
}
.pv2-signup-plan-meta {
  font-family: var(--pv2-mono);
  font-size: 12px;
  color: var(--pv2-ink-4);
  letter-spacing: 0.02em;
}
.pv2-signup-plan-features {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 13.5px;
  color: var(--pv2-ink-3);
  border-top: 1px solid var(--pv2-line-2);
  padding-top: 10px;
}
.pv2-signup-plan-features li::before {
  content: "·";
  display: inline-block;
  width: 14px;
  color: var(--pv2-ink-5);
  font-weight: 700;
}
.pv2-signup-trial-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  background: var(--pv2-pos-bg);
  color: var(--pv2-pos);
  border: 1px solid color-mix(in oklab, var(--pv2-pos) 22%, transparent);
  border-radius: 99px;
  font-size: 12px;
  font-weight: 600;
  font-family: var(--pv2-mono);
  letter-spacing: 0.02em;
  margin-top: 4px;
  align-self: flex-start;
}
.pv2-signup-accountant-badge {
  display: inline-flex;
  align-items: center;
  padding: 5px 10px;
  background: var(--pv2-info-bg);
  color: var(--pv2-info);
  border: 1px solid color-mix(in oklab, var(--pv2-info) 22%, transparent);
  border-radius: 99px;
  font-size: 11px;
  font-weight: 700;
  font-family: var(--pv2-mono);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  align-self: flex-start;
  margin-bottom: 4px;
}
.pv2-signup-terms {
  font-size: 12px;
  color: var(--pv2-ink-4);
  text-align: center;
  line-height: 1.5;
  margin: 0;
}
.pv2-signup-terms a {
  color: var(--pv2-ink-2);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.pv2-signup-trust {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 18px;
  margin-top: 8px;
  font-family: var(--pv2-mono);
  font-size: 11px;
  letter-spacing: 0.04em;
  color: var(--pv2-ink-4);
}
.pv2-signup-trust span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.pv2-signup-trust span::before {
  content: "";
  display: inline-block;
  width: 4px;
  height: 4px;
  border-radius: 99px;
  background: var(--pv2-pos);
}

@media (max-width: 480px) {
  .pv2-auth-shell { padding: 24px 16px; }
  .pv2-auth-card { padding: 28px 22px; }
  .pv2-auth-title { font-size: 24px; }
}

/* ===========================================================
   Compliance v2 (/compliance)
   Reusa .pv2-coverage-table / .pv2-coverage-pill da matriz.
   =========================================================== */
.pv2-coverage-hero .pv2-section-head h1 em,
.pv2-coverage-hero h1 em { font-style: italic; }

.pv2-section-compliance-summary .pv2-section-head,
.pv2-section-compliance-matrix .pv2-section-head {
  max-width: none;
  text-align: left;
  margin-bottom: 24px;
}
.pv2-section-compliance-matrix .pv2-section-head p {
  color: var(--pv2-ink-3);
  margin: 8px 0 0;
  max-width: 720px;
}

/* 02 — Hoje vs roadmap */
.pv2-compliance-summary-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}
.pv2-compliance-summary-card {
  border: 1px solid var(--pv2-line);
  border-radius: var(--pv2-r-lg);
  padding: 24px;
  background: var(--pv2-surface);
}
.pv2-compliance-summary-card.is-today {
  background: var(--pv2-pos-bg);
  border-color: rgba(4, 120, 87, 0.18);
}
.pv2-compliance-summary-card.is-roadmap {
  background: var(--pv2-surface-2);
}
.pv2-compliance-summary-label {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin: 0 0 14px;
  color: var(--pv2-ink);
}
.pv2-compliance-summary-card.is-today .pv2-compliance-summary-label { color: var(--pv2-pos); }
.pv2-compliance-summary-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.pv2-compliance-summary-list li {
  position: relative;
  padding-left: 24px;
  font-size: 14px;
  line-height: 1.5;
  color: var(--pv2-ink-3);
}
.pv2-compliance-summary-list li::before {
  content: "";
  position: absolute;
  left: 4px;
  top: 8px;
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: var(--pv2-ink-5);
}
.pv2-compliance-summary-card.is-today .pv2-compliance-summary-list li::before { background: var(--pv2-pos); }

/* 03 — Matriz: larguras de coluna próprias */
.pv2-col-cat { width: 18%; min-width: 150px; }
.pv2-col-feature { width: 38%; min-width: 200px; }
.pv2-col-obs { width: 30%; color: var(--pv2-ink-3); }
.pv2-compliance-cat {
  font-family: "JetBrains Mono", var(--pv2-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--pv2-ink-4);
}

/* 04 — Disclaimer */
.pv2-compliance-disclaimer {
  border: 1px solid var(--pv2-line);
  border-left: 3px solid var(--pv2-action);
  border-radius: var(--pv2-r-lg);
  background: var(--pv2-surface-2);
  padding: 32px;
  max-width: 760px;
}
.pv2-compliance-disclaimer-title {
  font-family: var(--pv2-serif);
  font-size: 24px;
  font-weight: 500;
  line-height: 1.2;
  color: var(--pv2-ink);
  margin: 12px 0 10px;
}
.pv2-compliance-disclaimer-body {
  color: var(--pv2-ink-3);
  font-size: 15px;
  line-height: 1.6;
  margin: 0 0 22px;
}

@media (max-width: 900px) {
  .pv2-compliance-summary-grid { grid-template-columns: 1fr; }
  .pv2-col-cat, .pv2-col-feature, .pv2-col-obs { width: 100%; min-width: 0; }
}
@media (max-width: 480px) {
  .pv2-compliance-disclaimer { padding: 24px 20px; }
  .pv2-compliance-disclaimer-title { font-size: 21px; }
}

/* ===========================================================
   Legal / docs pages (/privacy, /terms)
   Coluna de leitura confortável; tom V3 (slate ink, Newsreader
   só no título do hero, sans no corpo).
   =========================================================== */
.pv2-legal-hero {
  padding: 80px 0 24px;
  background:
    radial-gradient(1100px 360px at 50% -10%, rgba(15, 23, 42, 0.04), transparent 70%),
    var(--pv2-surface);
}
.pv2-legal-hero .pv2-legal-inner { max-width: 760px; margin: 0 auto; }
.pv2-legal-hero h1 {
  font-family: var(--pv2-serif);
  font-weight: 500;
  font-size: clamp(34px, 4.4vw, 52px);
  line-height: 1.06;
  letter-spacing: -0.018em;
  color: var(--pv2-ink);
  margin: 14px 0 12px;
}
.pv2-legal-meta {
  font-family: var(--pv2-mono);
  font-size: 12px;
  letter-spacing: 0.04em;
  color: var(--pv2-ink-4);
  margin: 0;
}
.pv2-legal-hero .pv2-hero-sub {
  font-size: 17px;
  line-height: 1.55;
  color: var(--pv2-ink-3);
  max-width: 620px;
  margin: 0;
}

.pv2-section-legal { padding: 32px 0 88px; background: var(--pv2-surface); }
.pv2-legal { max-width: 760px; margin: 0 auto; }
.pv2-legal > p,
.pv2-legal .pv2-legal-lede {
  font-size: 16px;
  line-height: 1.7;
  color: var(--pv2-ink-3);
  margin: 0 0 18px;
}
.pv2-legal .pv2-legal-lede {
  font-size: 18px;
  color: var(--pv2-ink-2);
  margin-bottom: 32px;
}
.pv2-legal h2 {
  font-family: var(--pv2-sans);
  font-size: 20px;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: 0.005em;
  color: var(--pv2-ink);
  margin: 0 0 16px;
  padding-top: 36px;
  margin-top: 40px;
  border-top: 1px solid var(--pv2-line);
}
.pv2-legal > h2:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.pv2-legal h3 {
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.01em;
  color: var(--pv2-ink-2);
  margin: 28px 0 10px;
}
.pv2-legal ul {
  list-style: none;
  margin: 0 0 18px;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.pv2-legal ul li {
  position: relative;
  padding-left: 22px;
  font-size: 15px;
  line-height: 1.6;
  color: var(--pv2-ink-3);
}
.pv2-legal ul li::before {
  content: "";
  position: absolute;
  left: 3px;
  top: 9px;
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: var(--pv2-ink-5);
}
.pv2-legal strong { color: var(--pv2-ink); font-weight: 600; }
.pv2-legal-link {
  color: var(--pv2-info);
  text-decoration: underline;
  text-underline-offset: 2px;
  text-decoration-color: color-mix(in oklab, var(--pv2-info) 40%, transparent);
  transition: text-decoration-color 0.15s ease;
}
.pv2-legal-link:hover { text-decoration-color: var(--pv2-info); }

/* Callouts dentro do corpo legal */
.pv2-legal-callout {
  border: 1px solid var(--pv2-line);
  border-left: 3px solid var(--pv2-ink-5);
  border-radius: var(--pv2-r-lg);
  background: var(--pv2-surface-2);
  padding: 22px 24px;
  margin: 24px 0;
}
.pv2-legal-callout h3 { margin-top: 0; }
.pv2-legal-callout > :last-child { margin-bottom: 0; }
.pv2-legal-callout.is-info {
  border-left-color: var(--pv2-info);
  background: var(--pv2-info-bg);
}
.pv2-legal-callout.is-warn {
  border-left-color: var(--pv2-warn);
  background: var(--pv2-warn-bg);
}
.pv2-legal-callout.is-info h3 { color: var(--pv2-info); }
.pv2-legal-callout.is-warn h3 { color: var(--pv2-warn); }

/* Tabela editorial (retenção de dados) */
.pv2-legal-table-wrap { overflow-x: auto; margin: 8px 0 18px; }
.pv2-legal-table {
  width: 100%;
  border-collapse: collapse;
  border: 1px solid var(--pv2-line);
  border-radius: var(--pv2-r);
  overflow: hidden;
  font-size: 14px;
}
.pv2-legal-table thead th {
  text-align: left;
  background: var(--pv2-surface-2);
  color: var(--pv2-ink);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 12px 16px;
  border-bottom: 1px solid var(--pv2-line);
}
.pv2-legal-table tbody td {
  padding: 12px 16px;
  color: var(--pv2-ink-3);
  border-bottom: 1px solid var(--pv2-line-2);
}
.pv2-legal-table tbody tr:last-child td { border-bottom: 0; }

@media (max-width: 700px) {
  .pv2-legal-hero { padding: 56px 0 16px; }
  .pv2-section-legal { padding: 24px 0 64px; }
  .pv2-legal h2 { font-size: 18px; padding-top: 28px; margin-top: 32px; }
}

/* ===========================================================
   Changelog (/changelog)
   =========================================================== */
.pv2-section-changelog { padding: 32px 0 88px; background: var(--pv2-surface); }
.pv2-changelog { max-width: 760px; margin: 0 auto; display: flex; flex-direction: column; gap: 16px; }
.pv2-changelog-entry {
  border: 1px solid var(--pv2-line);
  border-radius: var(--pv2-r-lg);
  background: var(--pv2-surface);
  padding: 26px 28px;
  box-shadow: var(--pv2-shadow-sm);
}
.pv2-changelog-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 14px;
}
.pv2-changelog-date {
  font-family: var(--pv2-mono);
  font-size: 12px;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.04em;
  color: var(--pv2-ink-4);
  margin: 0 0 4px;
}
.pv2-changelog-title {
  font-size: 19px;
  font-weight: 700;
  line-height: 1.25;
  color: var(--pv2-ink);
  margin: 0;
}
.pv2-changelog-tag {
  flex-shrink: 0;
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--pv2-ink-3);
  background: var(--pv2-surface-3);
  border: 1px solid var(--pv2-line);
  border-radius: 999px;
  padding: 4px 11px;
}
.pv2-changelog-summary {
  font-size: 15px;
  line-height: 1.6;
  color: var(--pv2-ink-3);
  margin: 0 0 16px;
}
.pv2-changelog-bullets {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 9px;
}
.pv2-changelog-bullets li {
  position: relative;
  padding-left: 22px;
  font-size: 14px;
  line-height: 1.55;
  color: var(--pv2-ink-2);
}
.pv2-changelog-bullets li::before {
  content: "";
  position: absolute;
  left: 3px;
  top: 8px;
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: var(--pv2-pos);
}

/* ===========================================================
   Contact (/contact)
   Reusa .pv2-auth-field / .pv2-auth-input / .pv2-auth-submit.
   =========================================================== */
.pv2-section-contact { padding: 32px 0 88px; background: var(--pv2-surface); }
.pv2-contact-grid {
  max-width: 920px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 28px;
  align-items: start;
}
.pv2-contact-card {
  border: 1px solid var(--pv2-line);
  border-radius: var(--pv2-r-lg);
  background: var(--pv2-surface);
  padding: 32px;
  box-shadow: var(--pv2-shadow-sm);
}
.pv2-contact-form { display: flex; flex-direction: column; gap: 16px; }
.pv2-contact-aside { display: flex; flex-direction: column; gap: 16px; }
.pv2-contact-side-card {
  border: 1px solid var(--pv2-line);
  border-radius: var(--pv2-r-lg);
  padding: 24px;
  background: var(--pv2-surface-2);
}
.pv2-contact-side-card.is-accent {
  background: var(--pv2-pos-bg);
  border-color: rgba(4, 120, 87, 0.18);
}
.pv2-contact-side-title {
  font-size: 16px;
  font-weight: 700;
  color: var(--pv2-ink);
  margin: 0 0 8px;
}
.pv2-contact-side-body {
  font-size: 14px;
  line-height: 1.55;
  color: var(--pv2-ink-3);
  margin: 0 0 14px;
}
.pv2-contact-side-link {
  font-size: 14px;
  font-weight: 600;
  color: var(--pv2-ink);
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.pv2-contact-side-link:hover { color: var(--pv2-action-hover); text-decoration: underline; text-underline-offset: 3px; }
.pv2-contact-flash {
  background: var(--pv2-pos-bg);
  border: 1px solid rgba(4, 120, 87, 0.22);
  color: var(--pv2-pos);
  padding: 12px 16px;
  border-radius: var(--pv2-r);
  font-size: 14px;
  margin-bottom: 20px;
  max-width: 920px;
  margin-left: auto;
  margin-right: auto;
}
.pv2-contact-errors {
  background: var(--pv2-neg-bg);
  border: 1px solid color-mix(in oklab, var(--pv2-neg) 25%, transparent);
  color: var(--pv2-neg);
  padding: 12px 16px;
  border-radius: var(--pv2-r);
  font-size: 13px;
}
.pv2-contact-errors p { font-weight: 700; margin: 0 0 6px; }
.pv2-contact-errors ul { margin: 0; padding-left: 18px; }

@media (max-width: 820px) {
  .pv2-contact-grid { grid-template-columns: 1fr; }
  .pv2-contact-card { padding: 26px 22px; }
}
