/* Tema Mapper Idea sobre o sphinx_rtd_theme: as cores, as fontes e o logo do site mapperidea.io
 * (tokens de website-mapperidea/site/historia.css). Só sobrescreve o tema; nada aqui muda o conteúdo. */
:root {
  --azul: #0074fb;
  --azul-fundo: #0c4aba;
  --azul-na-mesa: #5aa4ff;
  --ciano: #36c6ff;
  --quase-preto: #13131b;
  --mesa-alta: #1c1c27;
  --mesa-funda: #0d0d14;
  --mesa-borda: rgba(185, 186, 186, 0.22);
  --cinza: #b9baba;
  --cinza-claro: #e8e8e8;
  --papel: #ffffff;
  --papel-borda: #d6d7dc;
  --papel-fundo: #f4f5f8;
  --texto-papel: #13131b;
  --texto-papel-2: #4a4b57;
  --tinta-comentario: #5c6488;
  --fonte: "Urbanist", "Segoe UI", system-ui, sans-serif;
  --mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;
}

/* ---------- texto ---------- */
body,
.rst-content .toctree-wrapper > p.caption,
h1, h2, h3, h4, h5, h6, legend,
input, button, select, textarea,
.btn, .wy-menu-vertical a {
  font-family: var(--fonte);
}
body {
  color: var(--texto-papel);
  background: var(--papel-fundo);
  font-feature-settings: "tnum" 1;
}
.wy-nav-content-wrap { background: var(--papel-fundo); }
.wy-nav-content {
  background: var(--papel);
  max-width: 960px;
  min-height: 100vh;
  padding: 2rem 3rem 3rem;
}
.rst-content p, .rst-content li, .rst-content dd { font-size: 1.0625rem; line-height: 1.6; font-weight: 500; }
.rst-content p { margin-bottom: 1.1rem; }

h1, h2, h3, h4, h5, h6 { color: var(--texto-papel); font-weight: 800; }
.rst-content h1 { font-size: 2.4rem; line-height: 1.05; letter-spacing: -0.03em; margin-bottom: 1.25rem; }
.rst-content h2 { font-size: 1.6rem; line-height: 1.1; letter-spacing: -0.02em; margin-top: 2.25rem; }
.rst-content h3 { font-size: 1.2rem; }

a, a:visited { color: var(--azul-fundo); }
a:hover, a:focus { color: var(--azul); }
.rst-content a:focus-visible, .wy-menu-vertical a:focus-visible { outline: 2px solid var(--azul); outline-offset: 2px; }

/* ---------- código ---------- */
.rst-content code, .rst-content tt, code,
.rst-content pre.literal-block, .rst-content div[class^="highlight"] pre,
.rst-content .linenodiv pre {
  font-family: var(--mono);
}
.rst-content code.literal, .rst-content tt.literal, code {
  color: var(--azul-fundo);
  background: #eef3fd;
  border: 1px solid #d9e3f7;
  border-radius: 4px;
  padding: 1px 5px;
  font-size: 0.85em;
}
.rst-content div[class^="highlight"], .rst-content pre.literal-block {
  border: 1px solid var(--mesa-borda);
  border-radius: 8px;
  background: var(--quase-preto);
  color: var(--cinza-claro);
}
.rst-content div[class^="highlight"] pre, .rst-content pre.literal-block {
  font-size: 0.82rem;
  line-height: 1.55;
  padding: 14px 16px;
  background: transparent;
  color: var(--cinza-claro);
}
.highlight { background: transparent !important; }
.highlight * { color: inherit !important; background: transparent !important; }

/* ---------- tabelas (parâmetros e exemplos) ---------- */
.wy-table-responsive table { border-radius: 8px; overflow: hidden; }
.rst-content table.docutils, .wy-table-bordered-all {
  border: 1px solid var(--papel-borda);
  border-collapse: separate;
  border-spacing: 0;
  border-radius: 8px;
}
.rst-content table.docutils thead th, .rst-content table.docutils thead td {
  background: var(--quase-preto);
  color: var(--papel);
  border-color: var(--quase-preto);
  font-weight: 700;
  font-size: 0.82rem;
  letter-spacing: 0.02em;
}
.rst-content table.docutils td, .rst-content table.docutils th { border-color: var(--papel-borda); padding: 9px 16px; }
.rst-content table.docutils td { font-size: 0.95rem; }
.rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td,
.wy-table-striped tr:nth-child(2n-1) td { background: #f7f8fb; }
.rst-content table.docutils td:first-child { font-family: var(--mono); font-size: 0.82rem; color: var(--texto-papel); }

/* ---------- avisos ---------- */
.rst-content .admonition, .rst-content .note, .rst-content .tip, .rst-content .warning { border-radius: 8px; overflow: hidden; }
.rst-content .note .admonition-title, .rst-content .tip .admonition-title, .rst-content .admonition .admonition-title {
  background: var(--azul-fundo);
}
.rst-content .note, .rst-content .tip, .rst-content .admonition { background: #eef3fd; }

/* ---------- menu lateral (a "mesa" escura do site) ---------- */
.wy-nav-side { background: var(--quase-preto); }
.wy-side-nav-search {
  background: var(--quase-preto);
  border-bottom: 1px solid var(--mesa-borda);
  padding: 1.25rem 1rem 1rem;
}
.wy-side-nav-search > a { padding: 0; margin: 0; }
.wy-side-nav-search > a img.logo, .wy-side-nav-search .wy-dropdown > a img.logo {
  width: 170px;
  max-width: 100%;
  padding: 0;
  margin: 0 auto 0.4rem;
  background: none;
}
.wy-side-nav-search > a.icon, .wy-side-nav-search > a.icon::before { font-size: 0; }
.wy-side-nav-search > div.switch-menus, .wy-side-nav-search > div.version {
  color: var(--cinza);
}
.mi-subtitulo {
  display: block;
  color: var(--cinza);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin: 0.15rem 0 0.9rem;
}
.wy-side-nav-search input[type="text"] {
  background: var(--mesa-alta);
  border: 1px solid var(--mesa-borda);
  border-radius: 999px;
  color: var(--cinza-claro);
  box-shadow: none;
  padding: 7px 14px;
}
.wy-side-nav-search input[type="text"]::placeholder { color: #8a8b94; }
.wy-side-nav-search input[type="text"]:focus { border-color: var(--azul); outline: none; }

.wy-menu-vertical { padding-bottom: 1.5rem; }
.wy-menu-vertical header, .wy-menu-vertical p.caption { color: var(--azul-na-mesa); font-family: var(--fonte); }
.wy-menu-vertical a { color: var(--cinza); font-size: 0.92rem; font-weight: 600; }
.wy-menu-vertical a:hover { background: var(--mesa-alta); color: #fff; }
.wy-menu-vertical a:active { background: var(--azul-fundo); }
.wy-menu-vertical a button.toctree-expand { color: #8a8b94; }

/* item aberto e os níveis abaixo dele: tons da mesa em vez dos cinzas claros do tema */
.wy-menu-vertical li.current { background: var(--mesa-alta); }
.wy-menu-vertical li.current > a,
.wy-menu-vertical li.on a {
  background: var(--mesa-alta);
  color: #fff;
  border: none;
  font-weight: 700;
}
.wy-menu-vertical li.toctree-l1.current > a {
  border-top: none;
  border-bottom: none;
  border-left: 3px solid var(--azul);
  padding-left: calc(1.618em - 3px);
}
.wy-menu-vertical li.current a { border-right: none; color: var(--cinza); }
.wy-menu-vertical li.current a:hover { background: #262634; color: #fff; }
.wy-menu-vertical li.toctree-l2.current > a,
.wy-menu-vertical li.toctree-l2.current li.toctree-l3 > a { background: #191924; }
.wy-menu-vertical li.toctree-l3.current > a,
.wy-menu-vertical li.toctree-l3.current li.toctree-l4 > a { background: var(--mesa-funda); }
.wy-menu-vertical li.toctree-l2 a, .wy-menu-vertical li.toctree-l3 a, .wy-menu-vertical li.toctree-l4 a { font-size: 0.86rem; }
.wy-menu-vertical li.current > a.current,
.wy-menu-vertical li.current li > a.current,
.wy-menu-vertical a.reference.internal.current {
  color: #fff;
  background: var(--azul-fundo) !important;
}
.wy-menu-vertical li.current > a button.toctree-expand,
.wy-menu-vertical li.on a button.toctree-expand { color: var(--cinza); }

/* volta para o site */
.wy-menu-vertical a.mi-voltar {
  display: block;
  margin: 0.75rem 1.618em 1.5rem;
  padding: 1rem 0 0;
  border-top: 1px solid var(--mesa-borda);
  color: var(--cinza);
  font-size: 0.88rem;
  font-weight: 700;
}
.mi-voltar button.toctree-expand { display: none; }
.wy-menu-vertical a.mi-voltar:hover { color: #fff; background: none; }
.mi-voltar:visited { color: var(--cinza); }

/* ---------- topo no celular ---------- */
.wy-nav-top { background: var(--quase-preto); font-family: var(--fonte); font-weight: 800; }
.wy-nav-top a, .wy-nav-top a:visited { color: #fff; }
.wy-nav-top i { color: #fff; }

/* ---------- migalhas, rodapé, botões ---------- */
.wy-breadcrumbs li { font-size: 0.9rem; font-weight: 600; color: var(--texto-papel-2); }
.wy-breadcrumbs li a { color: var(--azul-fundo); }
.rst-content .section > hr, .rst-content hr, footer hr { border-top-color: var(--papel-borda); }
footer { color: var(--tinta-comentario); font-size: 0.88rem; }
.btn, .btn-neutral, .btn-neutral:visited {
  background: var(--papel) !important;
  color: var(--texto-papel) !important;
  border: 1px solid var(--papel-borda);
  border-radius: 999px;
  box-shadow: none;
  font-weight: 700;
  padding: 8px 18px;
}
.btn:hover, .btn-neutral:hover { border-color: var(--azul); color: var(--azul-fundo) !important; }

/* busca: realce dos termos */
.rst-content .highlighted { background: rgba(54, 198, 255, 0.3); box-shadow: none; }

@media screen and (max-width: 768px) {
  .wy-nav-content { padding: 1.25rem 16px 2rem; }
  .rst-content h1 { font-size: 1.9rem; }
}

/* ---------- ícones da iconografia (PNGs do Freemapper, quase todos 32 px) ---------- */
.rst-content img.mi-icone {
  width: 64px;
  height: 64px;
  object-fit: contain;
  padding: 12px;
  box-sizing: content-box;
  background: var(--papel-fundo);
  border: 1px solid var(--papel-borda);
  border-radius: 12px;
  margin: 0 0 1rem;
}
.rst-content table.mi-tabela-icones img.mi-icone { width: 48px; height: 48px; padding: 6px; border-radius: 10px; margin: 0; }
.rst-content table.mi-tabela-icones td { vertical-align: middle; }
.rst-content table.mi-tabela-icones td:first-child { width: 76px; text-align: center; }
.rst-content table.mi-tabela-icones td:nth-child(2) { font-family: var(--fonte); font-size: 0.95rem; }

/* sem ligaduras no código: <!-- e --> continuam legíveis */
.rst-content code, .rst-content pre, .rst-content tt, code, pre { font-variant-ligatures: none; font-feature-settings: "liga" 0, "calt" 0; }

/* troca de idioma (EN | PT) abaixo do nome do guia */
.mi-idiomas { display: flex; justify-content: center; gap: 6px; margin: -0.35rem 0 0.9rem; font-size: 0.78rem; font-weight: 700; letter-spacing: 0.06em; }
.mi-idiomas a, .mi-idiomas span { padding: 2px 10px; border-radius: 999px; border: 1px solid var(--mesa-borda); }
.mi-idiomas a, .mi-idiomas a:visited { color: var(--cinza); }
.mi-idiomas a:hover { color: #fff; border-color: var(--azul); }
.mi-idiomas span[aria-current] { color: #fff; background: var(--azul-fundo); border-color: var(--azul-fundo); }

/* o tema não deixa as células quebrarem linha; aqui elas quebram, para nenhuma tabela passar da página */
.rst-content .wy-table-responsive table td,
.rst-content .wy-table-responsive table th { white-space: normal; }
.rst-content table.docutils td code { white-space: normal; overflow-wrap: anywhere; }
.rst-content table.mi-tabela-icones td code { white-space: nowrap; overflow-wrap: normal; font-size: 0.78em; }
