/* Shell do guia (Docsify) — api-v4-docs.
 *
 * Extraído do `index.html` em 20/08/2026, cumprindo a regra do `CLAUDE.md` deste repo: CSS não
 * nasce inline, e o débito conhecido do `index.html` se paga quando o arquivo é tocado. Tocamos
 * ao reativar o menu lateral, então migrou.
 */

:root{
  --azul-escuro:#00152B; --preto-azulado:#002954; --verde:#5CCF78;
  --azul:#0B73D9; --azul-claro:#CEE3F7; --branco:#F7F9FC; --verde-escuro:#00874F;
  --theme-color:#0B73D9; --header-h:58px;
}
*{ -webkit-font-smoothing:antialiased; }
body, .sidebar, .markdown-section{
  font-family:'Figtree', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

/* ================= Header padrão (igual nas duas páginas) ================= */
.econo-topbar{
  position:fixed; top:0; left:0; right:0; height:var(--header-h); z-index:100;
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:0 22px; background:var(--azul-escuro); border-bottom:2px solid var(--verde);
  box-sizing:border-box;
}
.econo-topbar > *{ display:flex; align-items:center; }
.econo-topbar .brand img{ height:26px; display:block; }
/* !important: neutraliza margem que o docsify injeta se tratar o nav como .app-nav */
.econo-topbar .links{ gap:22px; margin:0 !important; padding:0 !important; }
.econo-topbar .links a{
  display:inline-flex; align-items:center; line-height:1;
  color:var(--azul-claro); text-decoration:none; font-weight:600; font-size:14px;
}
.econo-topbar .links a:hover{ color:var(--verde); }
.econo-topbar .links a.active{ color:var(--verde); }
.econo-topbar .links a.primary{
  color:var(--azul-escuro); background:var(--verde); padding:9px 15px; border-radius:6px;
}
.econo-topbar .links a.primary:hover{ filter:brightness(1.06); color:var(--azul-escuro); }

/* ================= Menu lateral ================= */
/* Reativado em 20/08/2026. Antes havia `display:none !important` aqui e
   `loadSidebar:false` no config — o `_sidebar.md` existia no repo mas NÃO era renderizado,
   então editá-lo não tinha efeito no site. Todo o estilo de `.sidebar` abaixo já estava
   escrito de quando o menu existia; só a exibição estava desligada. */
.content{ top:var(--header-h) !important; }
.markdown-section{ margin:0 auto; padding:2rem 3rem; }

/* O menu começa abaixo do header fixo, senão a primeira entrada fica atrás dele.
   ⚠️ O `background` navy é obrigatório, não decoração: as cores de texto abaixo
   (`#DCE9F5`, `--azul-claro`) e o campo de busca (`rgba(255,255,255,.06)`) foram escritas
   para fundo escuro. Sem ele o menu herda o branco default do Docsify e o texto fica
   ilegível — foi o que aconteceu ao reativar, e só apareceu na verificação visual. */
.sidebar{
  top:var(--header-h); padding-top:6px;
  /* `!important` pelo mesmo motivo das cores de texto abaixo: o Docsify injeta estilo em
     runtime DEPOIS desta folha, e sem isto o fundo claro dele vence — o menu saía
     acinzentado, com o texto claro quase ilegível. */
  background:var(--azul-escuro) !important;
}
/* O contêiner da busca herda o mesmo fundo; sem isto fica uma faixa clara no topo do menu. */
.sidebar .search{ background:transparent; }
/* ⚠️ O botão de menu do Docsify se sobrepõe à coluna da sidebar e ENGOLE o clique nos itens
   — medido com automação de browser: o clique no item "10. Agentes de IA (MCP)" era
   interceptado por ele. No desktop o menu está sempre visível, então o botão não tem função;
   no mobile é o único jeito de abrir, e ali ele volta. */
.sidebar-toggle{ display:none; }

/* Documento de página única: sem sub-níveis, o menu é curto e cabe sem rolagem própria na
   maioria das telas — mas garantimos a rolagem para telas baixas. */
.sidebar .sidebar-nav{ overflow-y:auto; }

@media (max-width: 768px) {
  /* No mobile o Docsify colapsa o menu; o conteúdo ocupa tudo e o botão volta a existir,
     porque sem ele não há como abrir o menu. */
  .content{ left:0 !important; }
  .sidebar-toggle{ display:block; top:calc(var(--header-h) + 6px); }
}

/* ---------- Sidebar (só navegação/TOC; logo fica no header) ---------- */
.sidebar{ padding-top:6px; }
.sidebar .app-name{ display:none; }
.sidebar .sidebar-nav{ padding:6px 8px 40px; line-height:1.55; }
.sidebar .sidebar-nav > ul > li > a{ font-size:14px; }
/* !important: docsify injeta estilos em runtime DEPOIS deste bloco; sem isto a cor
   default (escura) dele vence e o texto some no fundo navy em alguns navegadores. */
.sidebar .sidebar-nav a,
.sidebar ul li a{ color:#DCE9F5 !important; font-weight:500; border:none; }
.sidebar .sidebar-nav a:hover,
.sidebar ul li a:hover{ color:var(--verde) !important; text-decoration:none; }
.sidebar ul li.active > a, .sidebar ul li > a.active{ color:var(--verde) !important; font-weight:700; border-right:3px solid var(--verde); }
.sidebar ul li ul{ padding-left:12px; }
.sidebar ul li ul li a{ color:#AFC4DA !important; font-weight:400; }
.search{ border-bottom:1px solid rgba(255,255,255,.08); margin-bottom:6px; }
.search input{ background:rgba(255,255,255,.06); color:var(--branco); border:none; border-radius:6px; }
.search .clear-button svg circle{ fill:var(--verde); }
.search .matching-post{ border-bottom:1px solid rgba(255,255,255,.06); }
.search p, .search h2{ color:var(--azul-claro) !important; }
.progress{ background-color:var(--verde); top:var(--header-h); }

/* ---------- Conteúdo claro, legível ---------- */
body{ color:#1c2b3a; background:#ffffff; }
.content{ background:#ffffff; }
.markdown-section{ max-width:1240px; }
.markdown-section h1, .markdown-section h2, .markdown-section h3,
.markdown-section h4{ color:var(--azul-escuro); font-weight:800; }
.markdown-section h1{ font-size:2.1rem; }
.markdown-section h2{ font-size:1.55rem; padding-top:.4em; border-bottom:2px solid #eef2f6; padding-bottom:.25em; }
.markdown-section h3{ font-size:1.2rem; font-weight:700; }
.markdown-section a{ color:var(--azul); font-weight:600; text-decoration:none; }
.markdown-section a:hover{ text-decoration:underline; }
.markdown-section strong{ color:var(--azul-escuro); }
.markdown-section blockquote{
  border-left:4px solid var(--verde); background:#f4fbf6; color:#0f3d24; border-radius:0 6px 6px 0;
}
.markdown-section code{ color:#b5177e; background:#f6f8fa; }
.markdown-section pre{ background:#0d2137 !important; }
.markdown-section pre > code{ color:#e6f0fa; background:transparent; }
.token.comment{ color:#7f9bb5 !important; }
.token.string{ color:#5CCF78 !important; }
.token.keyword, .token.property{ color:#7fc4ff !important; }

.markdown-section img{
  max-width:100%; border:1px solid #e2e8f0; border-radius:8px;
  box-shadow:0 2px 10px rgba(0,21,43,.08); margin:.6em 0;
}
/* botão de download (coleção Postman) */
.markdown-section a.btn-download{
  display:inline-flex; align-items:center; gap:8px;
  background:var(--verde); color:var(--azul-escuro) !important;
  font-weight:700; text-decoration:none; padding:11px 18px; border-radius:8px;
  box-shadow:0 2px 10px rgba(92,207,120,.25);
}
.markdown-section a.btn-download:hover{ filter:brightness(1.06); text-decoration:none; }
/* tabelas markdown com cabeçalho navy */
.markdown-section table{ border-collapse:collapse; width:100%; margin:1em 0; display:table; font-size:.95em; }
.markdown-section th, .markdown-section td{ border:1px solid #e2e8f0; padding:8px 12px; text-align:left; vertical-align:top; }
.markdown-section thead tr th{ background:var(--azul-escuro); color:#fff; font-weight:600; }
.markdown-section tbody tr:nth-child(even){ background:#f8fafc; }

@media (max-width:768px){
  .markdown-section img{ box-shadow:none; }
  /* `.keep` preserva o link do MCP no celular: sem ele, `a:not(.primary)` escondia a única
     entrada do header para a `mcp.html`, e o `_navbar.md` não supre porque o Docsify roda
     com `loadNavbar: false` — a LP ficava inalcançável pelo topo em telas pequenas. */
  .econo-topbar .links a:not(.primary):not(.keep){ display:none; }
}

/* ================= Dark mode: segue o navegador e usa a MESMA paleta do Scalar (referência) ================= */
/* Scalar dark: bg #0f0f0f · painel #1a1a1a · painel2 #272727 · texto #e7e7e7 · muted #a4a4a4 · borda #2d2d2d */
@media (prefers-color-scheme: dark){
  body{ color:#c9c9c9; background:#0f0f0f; }
  .content{ background:#0f0f0f; }
  /* sidebar neutra igual ao Scalar (some o navy no dark) */
  .sidebar{ background:#1a1a1a !important; }
  .sidebar .sidebar-nav a,
  .sidebar ul li a{ color:#c9c9c9 !important; }
  .sidebar ul li ul li a{ color:#9a9a9a !important; }
  .sidebar ul li.active > a, .sidebar ul li > a.active{ color:var(--verde) !important; border-right-color:var(--verde); }
  .search{ border-bottom-color:#2d2d2d; }
  .search input{ background:#272727; color:#e7e7e7; }

  .markdown-section h1, .markdown-section h2, .markdown-section h3,
  .markdown-section h4{ color:#e7e7e7; }
  .markdown-section h2{ border-bottom-color:#2d2d2d; }
  .markdown-section strong{ color:#ffffff; }
  .markdown-section a{ color:#7fb2ff; }
  .markdown-section blockquote{ background:#14251b; color:#cdebd8; border-left-color:var(--verde); }
  .markdown-section code{ color:#ff9ad2; background:#1f1f1f; }
  .markdown-section pre{ background:#1a1a1a !important; border:1px solid #2d2d2d; }
  .markdown-section pre > code{ color:#e7e7e7; }
  .markdown-section img{ border-color:#2d2d2d; box-shadow:none; }
  .markdown-section th, .markdown-section td{ border-color:#2d2d2d; }
  .markdown-section thead tr th{ background:#272727; color:#e7e7e7; }
  .markdown-section tbody tr:nth-child(even){ background:#161616; }
  .markdown-section hr{ border-color:#2d2d2d; }
}
