/* =========================================================================
   Leaf pages — long-form content with sidebar TOC
   ========================================================================= */

.leaf-body {
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  gap: var(--sp-12);
  padding: var(--sp-10) 0 var(--sp-16);
}
@media (max-width: 1024px) {
  .leaf-body { grid-template-columns: 1fr; }
  .toc-side { display: none; }
}

/* ---- Sticky TOC ---- */
.toc-side {
  position: sticky;
  top: calc(var(--header-h) + var(--ribbon-h) + 24px);
  align-self: start;
  max-height: calc(100vh - var(--header-h) - var(--ribbon-h) - 48px);
  overflow-y: auto;
  padding-right: 8px;
}
.toc-side__label {
  font-family: var(--font-mono);
  font-size: var(--fs-xs);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent-400);
  margin-bottom: var(--sp-3);
  padding-bottom: 10px;
  border-bottom: 1px solid var(--border);
}
.toc-side ol, .toc-side ul {
  list-style: none;
  padding: 0;
  margin: 0;
  counter-reset: toc;
}
.toc-side li {
  margin: 0;
  counter-increment: toc;
}
.toc-side a {
  display: block;
  padding: 8px 12px 8px 32px;
  font-size: var(--fs-sm);
  color: var(--text-muted);
  border-left: 2px solid transparent;
  position: relative;
  transition: all var(--dur-fast);
  line-height: 1.4;
}
.toc-side a::before {
  content: counter(toc, decimal-leading-zero);
  position: absolute;
  left: 12px;
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--text-subtle);
}
.toc-side a:hover, .toc-side a.is-active {
  color: var(--text);
  background: var(--card);
  border-left-color: var(--accent-500);
}
.toc-side a.is-active::before { color: var(--accent-400); }

/* ---- Main content ---- */
.leaf-content {
  min-width: 0;
}
.leaf-content h2 {
  scroll-margin-top: 120px;
}
.leaf-content h2:first-child { margin-top: 0; }
.leaf-content > * { max-width: 72ch; }
.leaf-content table.data,
.leaf-content .table-wrap,
.leaf-content .attr-table,
.leaf-content .proscons,
.leaf-content .steps,
.leaf-content .pcf,
.leaf-content .callout,
.leaf-content .featured-cta,
.leaf-content .faq-list,
.leaf-content .related-grid { max-width: none; }

/* ---- Answer nugget for H2 sections ---- */
.answer-nugget {
  padding: var(--sp-4) var(--sp-5);
  background: rgba(255,193,7,0.05);
  border-left: 3px solid var(--accent-500);
  border-radius: 0 var(--r-md) var(--r-md) 0;
  margin: 0 0 var(--sp-5);
  color: var(--text);
  font-size: var(--fs-lg);
  line-height: 1.6;
}
.answer-nugget__label {
  display: block;
  font-family: var(--font-mono);
  font-size: var(--fs-xs);
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--accent-400);
  margin-bottom: 6px;
}

/* ---- Related grid ---- */
.related-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--sp-4);
  margin: var(--sp-6) 0;
}
@media (max-width: 900px) { .related-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .related-grid { grid-template-columns: 1fr; } }
.related-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  padding: var(--sp-4);
  text-decoration: none;
  color: inherit;
  transition: all var(--dur-fast);
}
.related-card:hover {
  border-color: var(--primary-500);
  transform: translateY(-2px);
}
.related-card__pillar {
  font-family: var(--font-mono);
  font-size: var(--fs-xs);
  color: var(--accent-400);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-bottom: 6px;
  display: block;
}
.related-card__title {
  color: var(--text);
  font-weight: 600;
  margin-bottom: 4px;
}
.related-card__desc {
  color: var(--text-muted);
  font-size: var(--fs-sm);
}

/* ---- Highlight KV block ---- */
.kv-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: var(--sp-4);
  margin: var(--sp-6) 0;
}
.kv-grid__cell {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  padding: var(--sp-4);
}
.kv-grid__label {
  display: block;
  font-family: var(--font-mono);
  font-size: var(--fs-xs);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--text-subtle);
  margin-bottom: 6px;
}
.kv-grid__value {
  color: var(--accent-400);
  font-family: var(--font-mono);
  font-size: var(--fs-xl);
  font-weight: 700;
  line-height: 1;
}
.kv-grid__note {
  display: block;
  color: var(--text-muted);
  font-size: var(--fs-xs);
  margin-top: 6px;
}

/* ---- Pokie header (for /pokies/ leaf) ---- */
.pokie-hero {
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: var(--sp-10);
  padding: var(--sp-10) 0;
}
@media (max-width: 900px) { .pokie-hero { grid-template-columns: 1fr; } }

.pokie-poster {
  aspect-ratio: 3/4;
  background: linear-gradient(135deg, var(--primary-800), var(--primary-900));
  border-radius: var(--r-xl);
  border: 1px solid var(--border);
  padding: var(--sp-6);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  position: relative;
  overflow: hidden;
}
.pokie-poster::before {
  content: "";
  position: absolute;
  inset: -50%;
  background: radial-gradient(circle, rgba(255,193,7,0.16), transparent 60%);
}
.pokie-poster__badge {
  position: relative;
  align-self: flex-start;
}
.pokie-poster__meta {
  position: relative;
  color: white;
}
.pokie-poster__provider {
  font-family: var(--font-mono);
  font-size: var(--fs-xs);
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--accent-400);
  margin-bottom: 6px;
}
.pokie-poster__name {
  font-family: var(--font-serif);
  font-size: var(--fs-3xl);
  font-weight: 700;
  line-height: 1.1;
  color: white;
  margin: 0 0 6px;
}

.pokie-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--sp-4);
  padding: var(--sp-5);
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  margin: var(--sp-4) 0;
}
@media (max-width: 600px) { .pokie-stats { grid-template-columns: repeat(2, 1fr); } }
.pokie-stat__value {
  font-family: var(--font-mono);
  font-size: var(--fs-2xl);
  font-weight: 700;
  color: var(--accent-400);
  line-height: 1;
}
.pokie-stat__label {
  font-size: var(--fs-xs);
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-family: var(--font-mono);
  display: block;
  margin-top: 6px;
}

/* Volatility bar */
.vol-bar { display: flex; gap: 3px; margin-top: 4px; }
.vol-bar__seg {
  height: 6px;
  flex: 1;
  border-radius: 2px;
  background: var(--border);
}
.vol-bar__seg.on { background: var(--accent-500); }
