/* Organismo — Pesquisa (DESIGN.md, Pesquisa; protótipo prototipos/raiz.html). A tela inteira, a faixa do evento e o fundo
   vêm do organismo.css. Aqui, a composição própria: a contenção em ciano no topo (é humana), a linha de estado e duas
   colunas com filamento: o lado humano (polos, ciano) e as respostas da IA (laranja). O lugar logo depois do título fica
   livre para a Raiz. */
:root{--human-core:#e6fbff;--human-deep:#1d6670;--rule-strong:#3d5f66}
/* Topo: título, contenção (número principal), ritmo com a barra fina, "Por quê?" e fechar. */
body.map-first #research-dialog .research-top{grid-area:top;position:static;display:flex;align-items:center;gap:18px;min-height:44px;margin:0;padding:0;background:none}
body.map-first #research-dialog .research-top h2{flex:none;margin:0;color:var(--ink);font:600 24px/1.1 var(--display)}
body.map-first #research-dialog .research-strip{flex:1;min-width:0;display:flex;align-items:center;justify-content:flex-end;gap:16px}
body.map-first #research-dialog #research-containment{flex:none;color:var(--human);font:600 26px/1 var(--display);font-variant-numeric:tabular-nums}
body.map-first #research-dialog .research-pace{flex:0 1 auto;min-width:120px;max-width:170px;display:grid;gap:4px;color:var(--ink-soft);font:12px/1.3 var(--body);font-variant-numeric:tabular-nums}
body.map-first #research-dialog .research-pace-bar{display:block;width:120px;height:3px;border-radius:3px;background:var(--rule);overflow:hidden}
body.map-first #research-dialog .research-pace-bar em{display:block;height:100%;background:var(--human);transform-origin:left center;transform:scaleX(var(--w,0));transition:transform .5s cubic-bezier(.16,1,.3,1)}
body.map-first #research-dialog #research-why{flex:none;width:auto;height:auto;min-height:44px;margin:0;padding:0 6px;border:0;border-radius:0;background:none;color:var(--ink-soft);font:600 12px var(--body);text-decoration:underline;text-decoration-color:#7d979880;text-underline-offset:4px;cursor:pointer}
body.map-first #research-dialog .research-top .close{flex:none;width:44px;height:44px;border:1px solid var(--rule);border-radius:5px;background:transparent}
/* Estado (não é compra): a fase e a evidência numa linha; o efeito do teto fica no "Por quê?". */
body.map-first #research-dialog .research-state{grid-area:state;display:flex;flex-wrap:wrap;align-items:baseline;column-gap:18px;row-gap:2px;padding:0 0 6px;border-bottom:1px solid var(--rule)}
body.map-first #research-dialog #research-phase{color:var(--ink);font:600 14px/1.2 var(--body)}
body.map-first #research-dialog #research-evidence-total{color:var(--ink-soft);font:12px/1.3 var(--body);font-variant-numeric:tabular-nums}
/* Corpo: duas colunas; o cabeçalho de cada uma na cor da espécie. As respostas da IA ganham mais largura: as linhas delas
   levam efeito e conta, e as dos polos são curtas (nome e "9% da pesquisa · opera a 40%"). */
body.map-first #research-dialog .research-cols{grid-area:body;position:relative;display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);column-gap:28px;align-items:start;min-height:0}
body.map-first #research-dialog .research-col{display:grid;align-content:start;gap:0;min-width:0}
body.map-first #research-dialog .research-col>h3{margin:0;padding:0 0 2px 26px;font:600 11px/1.2 var(--body);letter-spacing:.06em;text-transform:uppercase}
body.map-first #research-dialog .research-humans>h3{color:#5fd8e8b3}
body.map-first #research-dialog .research-answers>h3{color:#ffb15cb3}
body.map-first #research-dialog #research-leaders{display:grid;gap:0;margin:0}
body.map-first #research-dialog .research-empty{margin:4px 0 0 26px;color:var(--ink-soft);font:12px/1.3 var(--body)}
/* Linha: nó e filamento, nome, efeito (até duas linhas, sem corte) e o botão no fim. */
body.map-first #research-dialog .research-row{position:relative;display:flex;align-items:center;gap:10px;min-height:44px;margin:0;padding:0 0 0 26px;border:0;border-radius:0;background:none;box-shadow:none}
body.map-first #research-dialog .research-row[hidden]{display:none}
/* Os polos têm folga de altura (três linhas curtas): um respiro entre eles; as respostas usam a altura toda. */
body.map-first #research-dialog .research-humans .research-row{padding-block:2px}
/* O Reconfigurar é uma linha como as outras (awareness.css e rolagem-pesquisa.css davam caixa própria ao painel). */
body.map-first #research-dialog #reconfiguration-panel:not([hidden]){display:flex;margin:0;padding:0 0 0 26px;border:0;border-radius:0;background:none}
body.map-first #research-dialog .research-info{flex:1;min-width:0;min-height:44px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:0;margin:0;padding:0;border:0;background:none;color:inherit;text-align:left}
body.map-first #research-dialog button.research-info{cursor:pointer}
body.map-first #research-dialog button.research-info:focus-visible{outline:2px solid var(--tissue-core);outline-offset:2px}
body.map-first #research-dialog .research-info strong{display:flex;align-items:center;gap:6px;color:var(--ink);font:600 14px/1.2 var(--body)}
body.map-first #research-dialog .research-info strong i{flex:none;display:inline-grid;place-items:center;width:14px;height:14px;border:1px solid #7d979880;border-radius:50%;color:var(--ink-faint);font:italic 600 11px/1 var(--body)}
body.map-first #research-dialog .research-info[aria-expanded=true] strong i{background:var(--ink-faint);color:var(--slide)}
body.map-first #research-dialog :is(.research-effect,.research-account){display:block;white-space:normal;color:var(--ink-soft);font:12px/1.3 var(--body);font-variant-numeric:tabular-nums}
body.map-first #research-dialog .research-account[hidden]{display:none}
/* Motivo da recomendação e risco: texto 600 na cor da IA (é ela quem decide ou quem se arrisca). */
body.map-first #research-dialog .research-account:is(.is-urge,.is-risk){color:var(--tissue-hot);font-weight:600}
/* Filamento: um tronco irregular por linha e um ramo até o nó; o traço não escala com a altura da linha. */
body.map-first #research-dialog .vein{position:absolute;left:0;top:0;width:20px;height:100%;overflow:visible;pointer-events:none}
body.map-first #research-dialog .vein path{fill:none;stroke-linecap:round;vector-effect:non-scaling-stroke}
body.map-first #research-dialog .vein-trunk{stroke-width:1.2}
body.map-first #research-dialog .vein-branch{stroke-width:1;transition:stroke .4s}
body.map-first #research-dialog .vein-pulse{stroke-width:1.6;stroke-dasharray:.25 1.25;stroke-dashoffset:.25;opacity:0}
body.map-first #research-dialog .research-humans .vein-trunk{stroke:#5fd8e838}
body.map-first #research-dialog .research-humans .vein-branch{stroke:#5fd8e830}
body.map-first #research-dialog .research-humans .vein-pulse{stroke:var(--human)}
body.map-first #research-dialog .research-answers .vein-trunk{stroke:#ff7a2e38}
body.map-first #research-dialog .research-answers .vein-branch{stroke:#ff7a2e30}
body.map-first #research-dialog .research-answers .vein-pulse{stroke:var(--tissue-hot)}
/* Nó: apagado = parado; aceso = polo ativo (ciano) ou resposta da IA em vigor (laranja). */
body.map-first #research-dialog .research-row::before{content:"";position:absolute;z-index:1;left:10px;top:50%;width:9px;height:9px;margin-top:-5px;border-radius:50%;border:1px solid var(--rule-strong);background:var(--slide);transition:background .4s,border-color .4s,box-shadow .4s}
body.map-first #research-dialog .research-humans .research-row[data-live="1"] .vein-branch{stroke:#5fd8e8bf}
body.map-first #research-dialog .research-humans .research-row[data-live="1"]::before{border-color:transparent;background:radial-gradient(circle,var(--human-core) 0 25%,var(--human) 60%,var(--human-deep) 90%);box-shadow:0 0 5px #5fd8e880}
body.map-first #research-dialog .research-answers .research-row[data-live="1"] .vein-branch{stroke:#ff7a2ebf}
body.map-first #research-dialog .research-answers .research-row[data-live="1"]::before{border-color:transparent;background:radial-gradient(circle,var(--tissue-core) 0 25%,var(--tissue) 60%,var(--tissue-deep) 90%);box-shadow:0 0 5px #ff7a2e80}
/* Pulso: quando o estado começa, a luz desce pelo tronco e entra no ramo até o nó, uma vez (keyframes no organismo.css). */
body.map-first #research-dialog .research-row.is-pulse .vein-pulse{animation:vein-pulse 1.1s cubic-bezier(.16,1,.3,1)}
/* Botões: 104×44, cantos discretos, neutros por padrão. */
body.map-first #research-dialog .research-row :is(#reassure,#influence-all,#auto-influence,#reconfigure-core,[data-research-country]){flex:none;display:block;width:104px;max-width:none;height:auto;min-height:44px;margin:0;padding:3px 6px;border:1px solid var(--rule-strong);border-radius:5px;background:transparent;color:var(--ink);font:600 12px/1.2 var(--body);text-align:center;box-shadow:none;opacity:1;cursor:pointer;transition:background .2s,border-color .2s}
body.map-first #research-dialog .research-row :is(#reassure,#influence-all,#auto-influence,#reconfigure-core,[data-research-country]) small{display:block;margin:0;color:var(--ink-soft);font:400 12px/1.2 var(--body);letter-spacing:0;white-space:normal}
body.map-first #research-dialog .research-row :is(#reassure,#influence-all,#auto-influence,#reconfigure-core,[data-research-country]):focus-visible{outline:2px solid var(--tissue-core);outline-offset:2px}
body.map-first #research-dialog .research-answers .research-row button:not(.research-info):not(:disabled):hover{border-color:var(--tissue-hot);background:#ff7a2e14}
body.map-first #research-dialog .research-humans .research-row button:hover{border-color:var(--human);background:#5fd8e814}
/* Armado = preenchido (o próximo toque confirma); recomendado = só a borda, com o motivo escrito na linha. */
body.map-first #research-dialog .research-row #influence-all.is-armed{border-color:var(--tissue-hot);background:var(--tissue);color:#1a0a03}
body.map-first #research-dialog .research-row #influence-all.is-armed small{color:#3a1606}
body.map-first #research-dialog .research-row #reconfigure-core.is-urge:not(:disabled){border-color:var(--tissue-hot);background:#ff7a2e0f}
/* Desabilitado: borda apagada e tinta suave, sem opacidade reduzida (o motivo e o preço são decisão). */
body.map-first #research-dialog .research-row :is(#reassure,#influence-all,#auto-influence,#reconfigure-core):disabled{opacity:1;border-style:solid;border-color:var(--rule);background:transparent;color:var(--ink-soft);cursor:default}
body.map-first #research-dialog .research-row :is(#reassure,#influence-all,#auto-influence,#reconfigure-core):disabled small{color:var(--ink-soft)}
/* Painéis sobrepostos ("i" e "Por quê?"): lâmina opaca sobre as colunas, sem sombra; um toque volta. Só o "Por quê?" rola. */
body.map-first #research-dialog :is(.research-tip,.research-why){position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;gap:6px;margin:0;padding:10px 14px;border:1px solid var(--rule);border-radius:6px;background:var(--slide-2);box-shadow:none}
body.map-first #research-dialog .research-tip{cursor:pointer}
body.map-first #research-dialog .research-why{overflow:auto;overscroll-behavior:contain}
body.map-first #research-dialog :is(.research-tip,.research-why)[hidden],body.map-first #research-dialog .research-why [hidden]{display:none}
body.map-first #research-dialog :is(.research-tip,.research-why) p{margin:0;color:var(--ink);font:12px/1.3 var(--body)}
body.map-first #research-dialog .research-tip>span{margin-top:auto;color:var(--ink-soft);font:11px/1.2 var(--body)}
body.map-first #research-dialog .research-why .research-evidence{margin:0;padding:0;border:0;background:none}
body.map-first #research-dialog .research-why .research-evidence p{margin:0 0 2px;color:var(--ink);font:12px/1.3 var(--body)}
body.map-first #research-dialog .research-why .research-evidence p strong{color:var(--ink);font:600 12px/1.3 var(--body)}
body.map-first #research-dialog .research-why .research-evidence li{display:flex;justify-content:space-between;gap:10px;color:var(--ink-soft);font:12px/1.3 var(--body)}
body.map-first #research-dialog .research-why .research-evidence li b{color:var(--tissue-hot);font:600 12px/1.3 var(--body);font-variant-numeric:tabular-nums}
body.map-first #research-dialog .research-why .research-evidence>small{color:var(--ink-soft);font:12px/1.3 var(--body)}
body.map-first #research-dialog .research-polos-detail ul{display:grid;gap:2px;margin:0;padding:0;list-style:none;color:var(--human);font:12px/1.3 var(--body)}
body.map-first #research-dialog .research-polos-detail p{margin-top:4px;color:var(--ink-soft)}
body.map-first #research-dialog .counter-alerts{display:grid;gap:4px;margin:0;padding:0;list-style:none}
body.map-first #research-dialog .counter-alerts li{padding:0;border:0;background:none;color:var(--ink-soft);font:12px/1.3 var(--body)}
body.map-first #research-dialog .counter-alerts li:is(.is-emergency,.is-reserve){color:var(--tissue-hot);font-weight:600}
body.map-first #research-dialog .counter-alerts li.is-floor{color:var(--human)}
@media(prefers-reduced-motion:reduce){body.map-first #research-dialog *{transition:none!important;animation:none!important}}
