  /* ---------- Dot grid (usado em outras seções) ---------- */
  .dot-grid{
    background-image: radial-gradient(rgba(245,243,236,.18) 1.5px, transparent 1.5px);
    background-size: 26px 26px;
  }

  /* ---------- Hero: documentos convergindo para o repositório central ---------- */
  .ged-flow-dot{ transform-box: fill-box; transform-origin: center; }
  @keyframes ged-flow-tl{ 0%{ transform:translate(0,0); opacity:0; } 15%,80%{ opacity:1; } 100%{ transform:translate(118px,86px); opacity:0; } }
  @keyframes ged-flow-tr{ 0%{ transform:translate(0,0); opacity:0; } 15%,80%{ opacity:1; } 100%{ transform:translate(-118px,86px); opacity:0; } }
  @keyframes ged-flow-bl{ 0%{ transform:translate(0,0); opacity:0; } 15%,80%{ opacity:1; } 100%{ transform:translate(118px,-86px); opacity:0; } }
  @keyframes ged-flow-br{ 0%{ transform:translate(0,0); opacity:0; } 15%,80%{ opacity:1; } 100%{ transform:translate(-118px,-86px); opacity:0; } }
  .ged-flow-tl{ animation: ged-flow-tl 3.2s ease-in-out infinite; }
  .ged-flow-tr{ animation: ged-flow-tr 3.2s ease-in-out infinite .8s; }
  .ged-flow-bl{ animation: ged-flow-bl 3.2s ease-in-out infinite 1.6s; }
  .ged-flow-br{ animation: ged-flow-br 3.2s ease-in-out infinite 2.4s; }

  /* ---------- Segurança: escudo pulsando ---------- */
  @keyframes shield-pulse{
    0%, 100%{ transform: scale(1); }
    50%{ transform: scale(1.06); }
  }
  .shield-pulse{ animation: shield-pulse 2.8s ease-in-out infinite; transform-origin:center; }

  @keyframes shield-glow-pulse{
    0%, 100%{ opacity:.25; }
    50%{ opacity:.6; }
  }
  .shield-glow{ animation: shield-glow-pulse 2.8s ease-in-out infinite; }

  @keyframes lock-blink{
    0%, 100%{ opacity:1; }
    50%{ opacity:.4; }
  }
  .lock-blink{ animation: lock-blink 2.8s ease-in-out infinite; }

  /* ---------- Hero: dashboard vetorizado do GED (mesma família do card da Home) ---------- */
  @keyframes ged-dash-online-pulse{ 0%,100%{ opacity:1 } 50%{ opacity:.4 } }
  .ged-dash-online{ animation: ged-dash-online-pulse 1.8s ease-in-out infinite; }

  /* Barras do gráfico: crescem uma vez ao entrar na tela (via JS/transição), depois respiram devagar */
  .ged-dash-bar{ transition: height 1s cubic-bezier(.22,.9,.3,1), y 1s cubic-bezier(.22,.9,.3,1); }
  @keyframes ged-dash-bar-breathe{ 0%,100%{ transform:scaleY(1) } 50%{ transform:scaleY(.86) } }
  .ged-dash-bar.is-breathing{ animation: ged-dash-bar-breathe 3.4s ease-in-out infinite; transform-box:fill-box; transform-origin:bottom; }

  /* Sweep de leitura: um brilho fino descendo bem devagar pelo painel inteiro */
  @keyframes ged-sweep-move{ 0%{ transform:translateY(0) } 100%{ transform:translateY(400px) } }
  .ged-sweep{ animation: ged-sweep-move 9s linear infinite; }

  /* Linhas de pasta: reagem ao passar o mouse, parecendo clicáveis */
  .ged-folder-row{ cursor:pointer; outline:none; transition: transform .2s ease; transform-box: fill-box; }
  .ged-folder-row:hover, .ged-folder-row:focus-visible{ transform: translateX(3px); }
  .ged-folder-bg{ transition: fill .2s ease; }
  .ged-folder-row:hover .ged-folder-bg, .ged-folder-row:focus-visible .ged-folder-bg{ fill: rgba(245,243,236,.06); }
