:root{
  --font-display:'Inter',system-ui,sans-serif;
  --font-mono:'JetBrains Mono',ui-monospace,monospace;
  --font-body:'Inter',system-ui,sans-serif;

  --bg: oklch(12.6% .011 285);
  --surface: oklch(16.1% .012 285);
  --card: oklch(18.5% .013 285);
  --card-alt: oklch(21.2% .013 285);
  --border: oklch(100% 0 0/.12);
  --border-subtle: oklch(100% 0 0/.08);
  --border-accent: oklch(60.6% .226 296/.35);

  --ink-primary: oklch(97.5% .002 285);
  --ink-muted: oklch(73.5% .008 285);
  --ink-mute: oklch(60% .01 285);

  --primary: oklch(60.6% .226 296);
  --primary-light: oklch(69.4% .176 296);
  --primary-dark: oklch(47.8% .219 295);
  --primary-soft: oklch(79.6% .106 296);
  --destructive: oklch(65% .21 25);
  --positive: oklch(73.2% .187 149);

  --gradient-primary: linear-gradient(135deg, var(--primary-dark), var(--primary-light));
  --gradient-surface: linear-gradient(180deg, oklch(18.5% .013 285/.9), oklch(15.5% .012 285/.6));
  --shadow-glow: 0 0 40px oklch(58% .24 293/.22);
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{ background:var(--bg); color:var(--ink-muted); font-family:var(--font-body); -webkit-font-smoothing:antialiased; }
.font-display{ font-family:var(--font-display); }
.font-mono{ font-family:var(--font-mono); }
.font-body{ font-family:var(--font-body); }
.font-500{ font-weight:500; } .font-600{ font-weight:600; } .font-700{ font-weight:700; } .font-800{ font-weight:800; }
::selection{ background:var(--primary); color:#fff; }

.dotgrid{ background-image:radial-gradient(circle, var(--border-subtle) 1px, transparent 1px); background-size:26px 26px; }

.text-gradient-primary{
  background:linear-gradient(135deg, var(--primary-light), var(--primary-soft));
  -webkit-background-clip:text; background-clip:text; color:transparent;
}

.section-pad{ padding-top:4.5rem; padding-bottom:4.5rem; }
.eyebrow{ font-family:var(--font-mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--primary-soft); margin-bottom:.75rem; }
.section-h2{ font-family:var(--font-display); font-weight:700; font-size:1.65rem; line-height:1.2; color:var(--ink-primary); }
@media(min-width:768px){ .section-h2{ font-size:2.1rem; } }
.section-lead{ margin-top:1rem; font-size:1rem; color:var(--ink-muted); max-width:38rem; margin-left:auto; margin-right:auto; }

/* stat cards (hero) */
.stat-card{ background:var(--card); border:1px solid var(--border-subtle); border-radius:14px; padding:1.1rem; text-align:left; position:relative; }
.stat-index{ font-family:var(--font-mono); font-size:11px; color:var(--ink-mute); }
.stat-label{ font-family:var(--font-display); font-weight:600; color:var(--ink-primary); margin-top:.35rem; font-size:.9rem; }
.stat-sub{ font-size:.72rem; color:var(--ink-mute); margin-top:.1rem; }
.stat-value{ font-family:var(--font-mono); font-weight:600; font-size:1.6rem; color:var(--primary-soft); margin-top:.5rem; }
.illustrative{ display:inline-block; margin-top:.4rem; font-family:var(--font-mono); font-size:9px; letter-spacing:.05em; text-transform:uppercase; color:var(--ink-mute); border:1px solid var(--border-subtle); border-radius:999px; padding:.15rem .5rem; }

/* pipeline stages */
.stage-card{ background:var(--card); border:1px solid var(--border-subtle); border-radius:12px; padding:1rem; }
.stage-leak{ border-color:var(--border-accent); background:color-mix(in oklch, var(--destructive) 10%, var(--card)); }
.stage-tag{ display:inline-block; font-family:var(--font-mono); font-size:10px; text-transform:uppercase; letter-spacing:.05em; color:var(--ink-mute); }
.stage-tag-leak{ color:oklch(78% .18 25); }
.stage-title{ font-family:var(--font-display); font-weight:600; color:var(--ink-primary); margin-top:.4rem; }
.stage-sub{ font-size:.75rem; color:var(--ink-mute); margin-top:.15rem; }

/* diagnóstico mini cards */
.mini-card{ background:var(--card); border:1px solid var(--border-subtle); border-radius:12px; padding:1rem; }
.mini-title{ font-family:var(--font-display); font-weight:600; color:var(--ink-primary); font-size:.9rem; }
.mini-sub{ font-size:.75rem; color:var(--ink-mute); margin-top:.2rem; }

/* revenue leak map rows */
.leak-row{ display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.9rem 1.1rem; border-bottom:1px solid var(--border-subtle); font-size:.85rem; color:var(--ink-muted); }
.leak-row > span:first-child{ color:var(--ink-primary); }
.badge{ font-family:var(--font-mono); font-size:10px; text-transform:uppercase; letter-spacing:.05em; padding:.2rem .55rem; border-radius:999px; white-space:nowrap; }
.badge-medido{ background:color-mix(in oklch, var(--positive) 18%, transparent); color:var(--positive); }
.badge-leak{ background:color-mix(in oklch, var(--destructive) 18%, transparent); color:oklch(78% .18 25); }
.badge-lacuna{ background:color-mix(in oklch, var(--primary) 18%, transparent); color:var(--primary-soft); }

/* mecanismo cards */
.mech-card{ background:var(--card); border:1px solid var(--border-subtle); border-radius:14px; padding:1.5rem; }
.mech-index{ font-family:var(--font-mono); font-size:11px; color:var(--ink-mute); }
.mech-title{ font-family:var(--font-display); font-weight:700; color:var(--ink-primary); font-size:1.1rem; margin-top:.4rem; }
.mech-tag{ font-family:var(--font-mono); font-size:10px; color:var(--primary-soft); font-weight:500; }
.mech-desc{ font-size:.85rem; color:var(--ink-muted); margin-top:.6rem; }
.mech-list{ margin-top:.9rem; font-size:.8rem; color:var(--ink-muted); display:flex; flex-direction:column; gap:.35rem; }
.mech-list li{ padding-left:1rem; position:relative; }
.mech-list li:before{ content:'—'; position:absolute; left:0; color:var(--primary-soft); }

/* pipeline (8 stages) */
.pipe-card{ background:var(--card); border:1px solid var(--border-subtle); border-radius:12px; padding:1rem; }
.pipe-num{ font-family:var(--font-mono); font-size:11px; color:var(--primary-soft); }
.pipe-title{ font-family:var(--font-display); font-weight:600; color:var(--ink-primary); margin-top:.35rem; font-size:.88rem; }
.pipe-sub{ font-size:.72rem; color:var(--ink-mute); margin-top:.15rem; }

/* infra cards */
.infra-card{ background:var(--card); border:1px solid var(--border-subtle); border-radius:12px; padding:1.1rem; }
.infra-num{ font-family:var(--font-mono); font-size:11px; color:var(--ink-mute); }
.infra-cat{ display:block; font-family:var(--font-mono); font-size:9px; text-transform:uppercase; letter-spacing:.05em; color:var(--primary-soft); margin-top:.3rem; }
.infra-title{ font-family:var(--font-display); font-weight:600; color:var(--ink-primary); margin-top:.35rem; font-size:.9rem; }
.infra-desc{ font-size:.75rem; color:var(--ink-mute); margin-top:.35rem; }

/* comparação */
.compare-card{ background:var(--card); border:1px solid var(--border-subtle); border-radius:14px; padding:1.5rem; }
.compare-card-highlight{ border-color:var(--border-accent); background:color-mix(in oklch, var(--primary) 8%, var(--card)); }
.compare-title{ font-family:var(--font-display); font-weight:700; margin-bottom:1rem; }
.compare-list{ display:flex; flex-direction:column; gap:.6rem; font-size:.85rem; }
.compare-list li{ padding-left:1.3rem; position:relative; }
.compare-list-bad li:before{ content:'✕'; position:absolute; left:0; color:var(--ink-mute); }
.compare-list-good li{ color:var(--ink-primary); }
.compare-list-good li:before{ content:'✓'; position:absolute; left:0; color:var(--primary-light); }

/* dashboard */
.dash-card{ background:var(--card); border:1px solid var(--border-subtle); border-radius:12px; padding:1rem; }
.dash-value{ font-family:var(--font-mono); font-weight:600; font-size:1.4rem; color:var(--primary-soft); }
.dash-label{ font-family:var(--font-display); font-size:.78rem; color:var(--ink-primary); margin-top:.35rem; }
.dash-sub{ font-size:.68rem; color:var(--ink-mute); margin-top:.1rem; }

.chart-bars{ display:flex; align-items:flex-end; gap:.4rem; height:120px; }
.chart-bar{ flex:1; height:var(--h); background:linear-gradient(180deg, var(--primary-light), var(--primary-dark)); border-radius:4px 4px 0 0; opacity:.85; }

.reason-row{ display:flex; align-items:center; justify-content:space-between; font-size:.82rem; color:var(--ink-muted); }
.reason-row span:first-child{ color:var(--ink-primary); }

/* metodologia */
.method-card{ background:var(--card); border:1px solid var(--border-subtle); border-radius:14px; padding:1.5rem; }
.empty-slot{ border:1px dashed var(--border); border-radius:8px; padding:.9rem .5rem; text-align:center; }

/* escada de stacks */
.ladder-row{ display:flex; align-items:flex-start; gap:1rem; background:var(--card); border:1px solid var(--border-subtle); border-radius:12px; padding:1rem 1.2rem; }
.ladder-num{ font-family:var(--font-mono); font-size:1rem; color:var(--primary-soft); flex-shrink:0; }
.ladder-title{ font-family:var(--font-display); font-weight:700; color:var(--ink-primary); }
.ladder-desc{ font-size:.8rem; color:var(--ink-mute); margin-top:.2rem; }

/* faq */
.faq-item{ padding:1.1rem 0; }
.faq-item summary{ cursor:pointer; list-style:none; font-family:var(--font-display); font-weight:600; color:var(--ink-primary); font-size:.95rem; display:flex; justify-content:space-between; align-items:center; gap:1rem; }
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary:after{ content:'+'; font-family:var(--font-mono); font-size:1.2rem; color:var(--ink-mute); flex-shrink:0; transition:transform .2s ease; }
.faq-item[open] summary:after{ content:'–'; }
.faq-item p{ margin-top:.75rem; font-size:.87rem; color:var(--ink-muted); line-height:1.55; }

/* form */
.field{ display:flex; flex-direction:column; gap:.35rem; }
.field label{ font-family:var(--font-mono); font-size:11px; color:var(--ink-mute); }
.field input, .field select, .field textarea{
  background:var(--surface); border:1px solid var(--border); border-radius:8px; padding:.65rem .75rem;
  color:var(--ink-primary); font-family:var(--font-body); font-size:.88rem; outline:none;
}
.field input:focus, .field select:focus, .field textarea:focus{ border-color:var(--primary-light); box-shadow:0 0 0 3px color-mix(in oklch, var(--primary) 25%, transparent); }
.field textarea{ resize:vertical; }

.btn-cta{ cursor:pointer; border:none; }
.btn-cta:disabled{ opacity:.6; cursor:not-allowed; }
