/* Famílias de línguas: cores categóricas (validadas para claro e escuro) e situação de ameaça */
:root {
  --k1: #2a78d6; --k2: #eb6834; --k3: #1baf7a; --k4: #eda100; --k5: #e87ba4; --k6: #008300; --k7: #6250d6; --k8: #e34948; --k0: #b9bdb9;
  --s1: #dfe3e0; --s2: #f4c7b8; --s3: #e8977c; --s4: #d4613f; --s5: #a8331c; --s6: #3d3f3e;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --k1: #3987e5; --k2: #d95926; --k3: #199e70; --k4: #c98500; --k5: #d55181; --k6: #008300; --k7: #9085e9; --k8: #e66767; --k0: #5a5f5c;
    --s1: #3a3f3c; --s2: #6b3326; --s3: #9c4630; --s4: #cf5e3f; --s5: #f08a6c; --s6: #c9ccca;
  }
}
:root[data-theme="dark"] {
  --k1: #3987e5; --k2: #d95926; --k3: #199e70; --k4: #c98500; --k5: #d55181; --k6: #008300; --k7: #9085e9; --k8: #e66767; --k0: #5a5f5c;
  --s1: #3a3f3c; --s2: #6b3326; --s3: #9c4630; --s4: #cf5e3f; --s5: #f08a6c; --s6: #c9ccca;
}
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.mapa { width: 100%; display: block; }
.tm rect { stroke: none; }
.tm.clicavel { cursor: pointer; }
.tm.clicavel:hover rect, .tm.clicavel:focus rect { stroke: var(--ink); stroke-width: 2; }
.tm.sel rect { stroke: var(--ink); stroke-width: 3; }
.tm-rot { font: 600 12px var(--body); pointer-events: none; }
.tm-num { font: 400 11px var(--body); pointer-events: none; }
.ic { cursor: pointer; }
.ic:hover rect { stroke: var(--ink); stroke-width: 1.5; }
.ic.sel rect { stroke: var(--ink); stroke-width: 3; fill-opacity: 1; }
.ic-rot { font: 500 12px var(--body); pointer-events: none; }
.eixo-txt { font: 400 13px var(--body); }
.eixo-txt.forte { font-weight: 600; }
.clicavel { cursor: pointer; }
.clicavel:hover .eixo-txt, .clicavel.sel .eixo-txt { font-weight: 600; text-decoration: underline; }
.trilha { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.trilha .chip { min-height: 32px; padding: 3px 12px; font-size: 13px; }
.trilha .sep { color: var(--ink-3); }
.busca-linha { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.busca-linha input { flex: 1 1 260px; min-height: 42px; border: 1.5px solid var(--ink); border-radius: 99px; padding: 6px 16px; font: 15px var(--body); background: var(--paper); color: var(--ink); }
.busca-lista { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.busca-lista button { border: 1.5px solid var(--ink); background: var(--paper); color: var(--ink); border-radius: 99px; padding: 4px 12px; font: 14px var(--body); cursor: pointer; }
.busca-lista button:hover { background: var(--pill); }
.ficha { margin-top: 20px; display: flex; flex-direction: column; gap: 12px; }
.ficha-nome { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; }
.ficha-nome h3 { margin: 0; font-size: 28px; }
.legenda .leg-btn { cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.traco-desc { font-size: 17px; max-width: 72ch; margin: 16px 0 4px; }
