/* ---------------------------------------------------------------
   Estilo próprio, sem frameworks. Mexa à vontade.
   Todas as cores ficam nas variáveis abaixo.
--------------------------------------------------------------- */

:root {
  --fundo: #ffffff;
  --texto: #1f2328;
  --texto-suave: #656d76;
  --destaque: #0b4f8a;
  --borda: #e3e6ea;
  --codigo-fundo: #f6f8fa;
  --largura: 44rem;
  --fonte-texto: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --fonte-titulo: Georgia, "Times New Roman", serif;
  --fonte-codigo: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", monospace;
}

@media (prefers-color-scheme: dark) {
  :root {
    --fundo: #14171a;
    --texto: #e6e6e6;
    --texto-suave: #9aa3ad;
    --destaque: #6fb3f2;
    --borda: #2b3036;
    --codigo-fundo: #1c2126;
  }
}

* { box-sizing: border-box; }

body {
  margin: 0;
  background: var(--fundo);
  color: var(--texto);
  font-family: var(--fonte-texto);
  font-size: 17px;
  line-height: 1.65;
  -webkit-text-size-adjust: 100%;
}

.wrap {
  max-width: var(--largura);
  margin: 0 auto;
  padding: 0 1.25rem;
}

a { color: var(--destaque); text-decoration: none; }
a:hover { text-decoration: underline; }

/* ------------------------------ cabeçalho ------------------------------ */

.site-header {
  border-bottom: 1px solid var(--borda);
  padding: 2.5rem 0 1.25rem;
  margin-bottom: 2.5rem;
}

.site-title {
  font-family: var(--fonte-titulo);
  font-size: 1.9rem;
  font-weight: 700;
  color: var(--texto);
  display: inline-block;
}

.site-desc {
  color: var(--texto-suave);
  margin: 0.3rem 0 1rem;
  font-size: 0.95rem;
}

.site-header nav a {
  margin-right: 1.1rem;
  font-size: 0.9rem;
  color: var(--texto-suave);
}
.site-header nav a:hover,
.site-header nav a.ativo { color: var(--destaque); }

/* ------------------------------ títulos ------------------------------ */

h1, h2, h3, h4 {
  font-family: var(--fonte-titulo);
  line-height: 1.25;
  margin: 2rem 0 0.6rem;
}
h1 { font-size: 2rem; margin-top: 0; }
h2 { font-size: 1.45rem; }
h3 { font-size: 1.2rem; }

.subtitulo {
  color: var(--texto-suave);
  font-size: 1.05rem;
  margin-top: -0.2rem;
}

/* ------------------------------ metadados ------------------------------ */

.meta {
  color: var(--texto-suave);
  font-size: 0.85rem;
  margin: 0.4rem 0 1.5rem;
}
.meta .tags a {
  margin-left: 0.5rem;
  padding: 0.1rem 0.5rem;
  border: 1px solid var(--borda);
  border-radius: 999px;
  font-size: 0.78rem;
}
.meta .leitura { margin-left: 0.75rem; }

/* ------------------------------ listagens ------------------------------ */

.resumo { margin-bottom: 2.5rem; }
.resumo h2 { margin-top: 0; }
.resumo p { margin: 0; }

.lista-compacta { list-style: none; padding: 0; }
.lista-compacta li {
  display: flex;
  gap: 0.9rem;
  padding: 0.35rem 0;
  border-bottom: 1px solid var(--borda);
}
.lista-compacta time {
  color: var(--texto-suave);
  font-size: 0.85rem;
  font-variant-numeric: tabular-nums;
  flex-shrink: 0;
  min-width: 4.5rem;
}

.nuvem-tags { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 0.6rem; }
.nuvem-tags li {
  border: 1px solid var(--borda);
  border-radius: 999px;
  padding: 0.2rem 0.75rem;
  font-size: 0.9rem;
}
.nuvem-tags span { color: var(--texto-suave); font-size: 0.8rem; }

/* ------------------------------ conteúdo ------------------------------ */

.conteudo img { max-width: 100%; height: auto; border-radius: 4px; }

.conteudo blockquote {
  margin: 1.5rem 0;
  padding: 0.2rem 1.1rem;
  border-left: 3px solid var(--borda);
  color: var(--texto-suave);
}

.conteudo table { width: 100%; border-collapse: collapse; font-size: 0.92rem; }
.conteudo th, .conteudo td { border: 1px solid var(--borda); padding: 0.45rem 0.7rem; text-align: left; }

code {
  font-family: var(--fonte-codigo);
  font-size: 0.88em;
  background: var(--codigo-fundo);
  padding: 0.12em 0.35em;
  border-radius: 4px;
}
pre {
  background: var(--codigo-fundo);
  border: 1px solid var(--borda);
  border-radius: 6px;
  padding: 0.9rem 1rem;
  overflow-x: auto;
}
pre code { background: none; padding: 0; font-size: 0.85rem; }

.sumario {
  border: 1px solid var(--borda);
  border-radius: 6px;
  padding: 0.5rem 1rem;
  margin-bottom: 2rem;
  font-size: 0.92rem;
}
.sumario ul { margin: 0.3rem 0; padding-left: 1.1rem; }

/* ------------------------------ navegação ------------------------------ */

.navegacao {
  display: flex;
  justify-content: space-between;
  gap: 2rem;
  margin-top: 3rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--borda);
  font-size: 0.92rem;
}
.navegacao .direita { text-align: right; }
.navegacao .rotulo {
  display: block;
  color: var(--texto-suave);
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

/* ------------------------------ rodapé ------------------------------ */

.site-footer {
  margin-top: 4rem;
  padding: 1.5rem 0 3rem;
  border-top: 1px solid var(--borda);
  font-size: 0.87rem;
  color: var(--texto-suave);
}
.site-footer .acoes a { margin-right: 1rem; }
.site-footer .tenue { opacity: 0.7; font-size: 0.8rem; }

@media (max-width: 34rem) {
  body { font-size: 16px; }
  .navegacao { flex-direction: column; }
  .navegacao .direita { text-align: left; }
}
