:root {
  --fundo: #fafafa; --papel: #ffffff; --tinta: #1c1c1e; --tinta-2: #55555c; --linha: #e4e4e7;
  --acento: #aa1d1d; --acento-leve: #fbeaea; --nota: #fff7e0; --nota-borda: #e8b400; --codigo: #f1f1f3;
}
@media (prefers-color-scheme: dark) {
  :root {
    --fundo: #141416; --papel: #1c1c1f; --tinta: #ececef; --tinta-2: #a7a7ae; --linha: #2e2e33;
    --acento: #e0605f; --acento-leve: #3a1c1c; --nota: #2e2712; --nota-borda: #b58c00; --codigo: #26262a;
  }
}
* { box-sizing: border-box; }
html { scroll-padding-top: 72px; }
body { margin: 0; background: var(--fundo); color: var(--tinta);
  font: 16px/1.6 "Inter", system-ui, -apple-system, "Segoe UI", sans-serif; }
a { color: var(--acento); }
.topo { position: sticky; top: 0; z-index: 10; display: flex; align-items: center; gap: 16px;
  padding: 10px 20px; background: var(--papel); border-bottom: 1px solid var(--linha); }
.marca { text-decoration: none; color: var(--tinta); white-space: nowrap; }
.marca b { color: var(--acento); }
.marca span { color: var(--tinta-2); margin-left: 6px; font-size: 14px; }
#busca { margin-left: auto; width: min(360px, 45vw); padding: 7px 12px; border: 1px solid var(--linha);
  border-radius: 8px; background: var(--fundo); color: var(--tinta); font-size: 14px; }
#resultados { display: none; position: absolute; right: 20px; top: 52px; width: min(520px, 92vw);
  max-height: 70vh; overflow: auto; background: var(--papel); border: 1px solid var(--linha);
  border-radius: 10px; box-shadow: 0 10px 30px rgba(0,0,0,.15); padding: 6px; }
#resultados a { display: block; padding: 8px 10px; border-radius: 6px; text-decoration: none; color: var(--tinta); }
#resultados a:hover { background: var(--acento-leve); }
#resultados span { display: block; font-size: 13px; color: var(--tinta-2); }
#resultados p { margin: 8px 10px; color: var(--tinta-2); }
.abre-menu { display: none; border: 0; background: none; font-size: 22px; color: var(--tinta); cursor: pointer; }
.corpo { display: grid; grid-template-columns: 280px minmax(0, 1fr); }
.menu { position: sticky; top: 53px; height: calc(100vh - 53px); overflow: auto; padding: 18px 14px 40px;
  border-right: 1px solid var(--linha); background: var(--papel); font-size: 14px; }
.menu .parte { margin: 16px 8px 4px; font-size: 11px; font-weight: 700; letter-spacing: .06em;
  text-transform: uppercase; color: var(--tinta-2); }
.menu a { display: block; padding: 5px 8px; border-radius: 6px; color: var(--tinta); text-decoration: none; }
.menu a:hover { background: var(--fundo); }
.menu a.atual { background: var(--acento-leve); color: var(--acento); font-weight: 600; }
.texto { max-width: 920px; padding: 28px 40px 80px; }
.texto h1 { font-size: 30px; line-height: 1.25; margin: 0 0 8px; }
.texto h2 { font-size: 22px; margin: 36px 0 8px; padding-top: 8px; border-top: 1px solid var(--linha); }
.texto h3 { font-size: 17px; margin: 24px 0 6px; }
.texto code { background: var(--codigo); padding: 1px 5px; border-radius: 4px; font-size: 14px; }
.texto kbd { border: 1px solid var(--linha); border-bottom-width: 2px; border-radius: 4px; padding: 0 5px;
  font-size: 13px; background: var(--papel); }
.texto table { border-collapse: collapse; width: 100%; margin: 12px 0; font-size: 14px; }
.texto th, .texto td { border: 1px solid var(--linha); padding: 6px 10px; text-align: left; vertical-align: top; }
.texto th { background: var(--papel); }
.texto blockquote { margin: 16px 0; padding: 10px 14px; background: var(--nota);
  border-left: 4px solid var(--nota-borda); border-radius: 0 8px 8px 0; }
.texto blockquote p { margin: 4px 0; }
figure { margin: 18px 0 24px; }
figure img { display: block; max-width: 100%; height: auto; border: 1px solid var(--linha); border-radius: 8px;
  box-shadow: 0 2px 10px rgba(0,0,0,.06); }
figcaption { margin-top: 6px; font-size: 13px; color: var(--tinta-2); }
.passos { display: flex; justify-content: space-between; gap: 16px; margin-top: 48px; padding-top: 16px;
  border-top: 1px solid var(--linha); font-size: 14px; }
@media (max-width: 860px) {
  .corpo { grid-template-columns: 1fr; }
  .menu { display: none; position: fixed; top: 53px; left: 0; width: 86vw; z-index: 9; }
  body.menu-aberto .menu { display: block; }
  .abre-menu { display: block; }
  .texto { padding: 20px 16px 60px; }
  .marca span { display: none; }
}
@media print {
  .topo, .menu, .passos { display: none; }
  .corpo { display: block; }
  .texto { max-width: none; padding: 0; }
}
