/* NEXUS R002 — ajustes sobre a R001 (carregado depois de nexus-r001.css). */
/* WhatsApp no estilo do site da THERMOENG: cartão escuro, ícone azul redondo, rótulo branco, canto inferior direito. */
.whatsapp-float{position:fixed;right:max(20px,env(safe-area-inset-right,0px));bottom:calc(20px + env(safe-area-inset-bottom,0px));z-index:30;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;width:112px;padding:12px 6px 10px;
  background:#121212;color:#fff;border-radius:10px;box-shadow:0 4px 6px rgba(0,0,0,.25);text-decoration:none;border:0;min-height:0}
.whatsapp-float .wa-ico{width:44px;height:44px;border-radius:50%;background:#2647B5;display:grid;place-items:center}
.whatsapp-float .wa-ico svg{width:24px;height:24px;fill:#fff}
.whatsapp-float span{font-size:13px;font-weight:700;letter-spacing:.01em;line-height:1}
.whatsapp-float:hover{background:#1d1d1d}
.whatsapp-float:focus-visible{outline:2px solid #2647B5;outline-offset:3px}
@media (max-width:640px){.whatsapp-float{width:84px;padding:9px 4px 8px;gap:5px;right:max(12px,env(safe-area-inset-right,0px));bottom:calc(12px + env(safe-area-inset-bottom,0px))}
  .whatsapp-float .wa-ico{width:36px;height:36px}.whatsapp-float .wa-ico svg{width:20px;height:20px}.whatsapp-float span{font-size:11.5px}}
/* espaço no fim da página para o botão flutuante não cobrir conteúdo */
.area-colab .pagina{padding-bottom:120px}
/* instalar o app: só na tela de login, dentro do formulário (não flutua) */
.install-app.no-login{position:static;display:block;width:100%;margin-top:12px;background:transparent;color:var(--pri);border:1px solid var(--borda-forte);border-radius:10px;padding:10px 14px}
.install-app.no-login[hidden]{display:none}
/* Entrada (colaborador e administrativo): fotos de projeto em rodízio sob azul translúcido, como o ATLAS. Lado branco do formulário mantido. */
.entrada .lado{position:relative;overflow:hidden;isolation:isolate;background:#06263A url("/fundos/fundo-01.jpg") center/cover no-repeat}
.entrada .lado .fundo{position:absolute;inset:-2%;z-index:-2;background:center/cover no-repeat;opacity:0;transition:opacity 1.8s ease;transform:scale(1.02)}
.entrada .lado .fundo.on{opacity:1;animation:nx-zoom 9s ease-out forwards}
.entrada .lado::before{content:"";position:absolute;inset:0;z-index:-1;
  background:radial-gradient(700px 360px at 30% 12%,rgba(30,170,225,.30),transparent 62%),linear-gradient(155deg,rgba(4,32,52,.86) 0%,rgba(9,70,104,.74) 55%,rgba(11,79,115,.66) 100%)}
.entrada.adm .lado{background-color:#1B232C}
.entrada.adm .lado::before{background:linear-gradient(155deg,rgba(18,24,31,.88),rgba(34,46,58,.76))}
.entrada .lado img,.entrada .lado .palavra,.entrada .lado p{position:relative;text-shadow:0 2px 14px rgba(0,0,0,.35)}
@keyframes nx-zoom{from{transform:scale(1.02)}to{transform:scale(1.08)}}
@media (prefers-reduced-motion:reduce){.entrada .lado .fundo{transition:none}.entrada .lado .fundo.on{animation:none}}
/* Sem caixa alta: rótulos, títulos de grupo, indicadores e cabeçalhos de tabela em Title Case (pedido do usuário). */
.rotulo,.grupo .tit,.kpi small,th,.entrada .lado p{text-transform:none!important;letter-spacing:.01em!important}
.grupo .tit{font-size:12px;font-weight:650}
th{font-size:12.5px;font-weight:650}
.entrada .lado p{font-size:14px;letter-spacing:.04em!important}
/* Tabelas → cartões no celular */
td.num,.num{white-space:nowrap}
@media (max-width:640px){
  .tabela{background:transparent;border:0;overflow:visible}
  table.cartoes-cel thead{display:none}
  table.cartoes-cel,table.cartoes-cel tbody,table.cartoes-cel tr,table.cartoes-cel td{display:block;width:100%}
  table.cartoes-cel tr{background:var(--superficie);border:1px solid var(--borda);border-radius:var(--raio);padding:10px 14px;margin-bottom:10px}
  table.cartoes-cel td{border:0!important;padding:5px 0!important;text-align:left!important;display:grid;grid-template-columns:minmax(96px,38%) minmax(0,1fr);gap:10px;align-items:start}
  table.cartoes-cel td::before{content:attr(data-label);font-size:12px;font-weight:600;color:var(--mudo);padding-top:2px}
  table.cartoes-cel td:not([data-label]),table.cartoes-cel td[data-label=""]{display:block}
  table.cartoes-cel td:not([data-label])::before,table.cartoes-cel td[data-label=""]::before{content:none}
  table.cartoes-cel td .acoes{justify-content:flex-start!important;flex-wrap:wrap}
  .capa .linha span:nth-child(even){display:none}.capa .linha{flex-direction:column;align-items:flex-start;gap:2px}
}
/* ---------- Colaboradores e Ficha de Registro (R002) ---------- */
.abas a .selo{margin-left:6px;font-size:11px;padding:0 7px}
.busca{display:flex;gap:8px;margin:0 0 14px}.busca input{flex:1;min-width:0;border:1px solid var(--borda-forte);border-radius:9px;padding:9px 12px;font:inherit;background:var(--superficie);color:var(--texto)}
.lista-pessoas{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:10px;margin-bottom:18px}
.pessoa{display:grid;grid-template-columns:52px minmax(0,1fr);gap:4px 12px;align-items:center;padding:12px 14px;background:var(--superficie);border:1px solid var(--borda);border-radius:var(--raio);text-decoration:none;color:var(--texto);transition:border-color .15s,box-shadow .15s}
.pessoa:hover,.pessoa:focus-visible{border-color:var(--pri);box-shadow:var(--sombra)}
.pessoa .foto,.ficha-foto{display:grid;place-items:center;overflow:hidden;background:var(--pri-suave);color:var(--pri);font-weight:700;border-radius:50%}
.pessoa .foto{width:52px;height:52px;grid-row:span 2}.pessoa .foto img,.ficha-foto img{width:100%;height:100%;object-fit:cover}
.pessoa .dados{display:flex;flex-direction:column;min-width:0}.pessoa .dados b{font-weight:650}.pessoa .dados small{color:var(--mudo);font-size:var(--f12);overflow-wrap:anywhere}
.pessoa .selos{grid-column:2;display:flex;flex-wrap:wrap;gap:4px}.pessoa .selos:empty{display:none}
.ficha-cab{display:flex;gap:20px;align-items:center;margin-bottom:14px;flex-wrap:wrap}
.ficha-foto{width:112px;height:136px;border-radius:12px;position:relative;font-size:28px;flex:none}
.troca-foto{position:absolute;inset:auto 0 0 0;display:flex;justify-content:center;padding:6px;background:linear-gradient(transparent,rgba(0,0,0,.45));opacity:0;transition:opacity .15s}
.ficha-foto:hover .troca-foto,.ficha-foto:focus-within .troca-foto{opacity:1}.troca-foto .btn{font-size:11px;padding:4px 8px}
.ficha-tit{flex:1;min-width:240px}.ficha-tit h1{margin:4px 0 2px}.ficha-tit p{color:var(--mudo);margin:0 0 8px}
.barra-ficha{margin-bottom:16px;flex-wrap:wrap}.barra-ficha form{display:inline}
.ficha-sec{margin-bottom:14px}.ficha-sec h2{margin:0 0 12px}
.grade-fv{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 18px}
.fv{display:flex;flex-direction:column;gap:2px;min-width:0}.fv span{font-size:var(--f12);color:var(--mudo);font-weight:600}.fv b{font-weight:500;overflow-wrap:anywhere}.fv.largo{grid-column:1/-1}
.ficha-form fieldset{border:1px solid var(--borda);border-radius:var(--raio);padding:14px 16px 16px;margin:0 0 14px}.ficha-form legend{font-weight:650;padding:0 6px}
.grade-campos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 14px}.grade-campos .largo{grid-column:1/-1}
.zona-risco{border-color:var(--erro-suave)}.zona-risco h2{color:var(--erro)}
.btn.perigo{background:var(--erro);border-color:var(--erro);color:#fff}
.aviso.alerta{background:var(--alerta-suave);color:var(--alerta);border-radius:10px;padding:12px 14px;margin-bottom:12px}
@media (max-width:900px){.grade-fv,.grade-campos{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.grade-fv{grid-template-columns:repeat(2,minmax(0,1fr))}.grade-campos{grid-template-columns:1fr}.lista-pessoas{grid-template-columns:1fr}.ficha-cab{align-items:flex-start}.ficha-foto{width:88px;height:108px}.troca-foto{opacity:1}}
/* Marca d'água e proteção de tela (não impede print; identifica quem vê) */
[data-marca]{position:relative}
.marca-dagua{position:fixed;inset:0;z-index:25;pointer-events:none;overflow:hidden;opacity:.07;color:var(--texto);font-size:13px;font-weight:600;
  display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-auto-rows:120px;transform:rotate(-24deg) scale(1.5);user-select:none}
.marca-dagua span{white-space:nowrap}
.tela-oculta .pagina,.tela-oculta .conteudo{filter:blur(14px)}
[data-marca]{-webkit-user-select:none;user-select:none}
@media print{.marca-dagua{opacity:.12}}
details.alteracao{display:block;padding:8px 0;border-bottom:1px solid var(--borda)}details.alteracao summary{cursor:pointer;list-style:none}details.alteracao summary::-webkit-details-marker{display:none}
details.alteracao summary .txt::after{content:" ▸";color:var(--mudo)}details.alteracao[open] summary .txt::after{content:" ▾"}
details.alteracao ul{margin:6px 0 2px;padding-left:18px;font-size:var(--f13);color:var(--mudo);display:grid;gap:2px}details.alteracao li b{color:var(--texto);font-weight:600}
.area-admin .marca-dagua{opacity:.035}
.linha-link a{color:inherit;text-decoration:none}.linha-link a:hover b{color:var(--pri);text-decoration:underline}
a.item.linha-link{text-decoration:none;color:inherit}a.item.linha-link:hover{background:var(--suave)}
/* ATENA IA — orbe/constelação, só no painel administrativo */
.capa{padding-right:200px}
.orbe-atena{position:absolute;right:26px;top:50%;transform:translateY(-50%);width:150px;display:flex;flex-direction:column;align-items:center;gap:2px}
.orbe-atena svg{width:132px;height:132px;overflow:visible;filter:drop-shadow(0 8px 22px rgba(25,180,230,.35))}
.orbe-atena .orbitas ellipse{fill:none;stroke:rgba(143,227,255,.55);stroke-width:1.2}.orbe-atena .orbitas .fina{stroke:rgba(143,227,255,.22);stroke-dasharray:3 6}
.orbe-atena .orbitas{transform-origin:100px 100px;animation:nx-gira 28s linear infinite}
.orbe-atena .satelites{transform-origin:100px 100px;animation:nx-gira 9s linear infinite reverse}.orbe-atena .satelites circle{fill:#BFF0FF}
.orbe-atena .rede path{fill:none;stroke:rgba(255,255,255,.55);stroke-width:1}.orbe-atena .nos circle{fill:#fff;animation:nx-pisca 3.2s ease-in-out infinite}
.orbe-atena .nos circle:nth-child(2n){animation-delay:1.1s}.orbe-atena .nos circle:nth-child(3n){animation-delay:2s}
.orbe-atena text{font:700 30px Inter,system-ui,sans-serif;fill:#fff;opacity:.92}
.orbe-atena>span{font-size:11px;font-weight:700;letter-spacing:.18em;color:#BFF0FF}
@keyframes nx-gira{to{transform:rotate(360deg)}}@keyframes nx-pisca{0%,100%{opacity:.45}50%{opacity:1}}
@media (prefers-reduced-motion:reduce){.orbe-atena *{animation:none!important}}
@media (max-width:900px){.capa{padding-right:26px}.orbe-atena{display:none}}
