/* ANIMUS Verde v0.4.15 — correções pontuais mobile + loader Catálogo */

/* Indicadores de carregamento reutilizáveis */
.mini-spinner{
  width:18px;height:18px;border-radius:50%;display:inline-block;margin-right:8px;vertical-align:-4px;
  border:2px solid rgba(13,103,77,.18);border-top-color:#0d674d;animation:avSpin .72s linear infinite
}
@keyframes avSpin{to{transform:rotate(360deg)}}

/* Loading de abertura do Catálogo Vivo */
.catalog-opening-layer{
  position:fixed;inset:0;z-index:1900;display:grid;place-items:center;padding:24px;
  background:rgba(239,246,242,.72);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  animation:catalogLayerIn .16s ease-out both
}
.catalog-opening-card,.species-loading-card{
  width:min(390px,calc(100vw - 32px));display:flex;flex-direction:column;align-items:center;text-align:center;
  padding:30px 24px 28px;border:1px solid rgba(24,92,70,.11);border-radius:28px;background:rgba(255,255,255,.97);
  box-shadow:0 24px 70px rgba(15,62,47,.16)
}
.catalog-opening-card small,.species-loading-card small{margin-top:14px;font-size:9px;font-weight:900;letter-spacing:.16em;color:#4a8570}
.catalog-opening-card>strong,.species-loading-card>strong{margin-top:7px;font-size:21px;line-height:1.12;color:#173a30}
.catalog-opening-card>span,.species-loading-card>span{margin-top:8px;max-width:290px;font-size:12px;line-height:1.55;color:#6b8078}
.catalog-loader-mark{position:relative;width:74px;height:74px;border-radius:50%;background:radial-gradient(circle at 50% 52%,#eff8f3 0 47%,transparent 49%);animation:loaderFloat 1.8s ease-in-out infinite}
.catalog-loader-mark.large{width:88px;height:88px}
.catalog-loader-mark:before,.catalog-loader-mark:after{content:"";position:absolute;border-radius:50%;inset:4px;border:1px solid rgba(13,103,77,.14);animation:loaderRing 1.8s ease-out infinite}
.catalog-loader-mark:after{inset:12px;animation-delay:.48s}
.catalog-loader-mark i{position:absolute;left:50%;top:50%;width:18px;height:30px;border-radius:100% 0 100% 0;background:linear-gradient(160deg,#50a47f,#0c6b50);transform-origin:2px 26px;box-shadow:0 7px 16px rgba(11,93,69,.14)}
.catalog-loader-mark .leaf-one{transform:translate(-2px,-26px) rotate(-44deg);animation:leafPulse 1.2s ease-in-out infinite}
.catalog-loader-mark .leaf-two{transform:translate(-12px,-21px) rotate(-102deg);animation:leafPulse 1.2s .2s ease-in-out infinite}
.catalog-loader-mark .leaf-three{transform:translate(5px,-20px) rotate(14deg);animation:leafPulse 1.2s .4s ease-in-out infinite}
.catalog-loader-mark>span{position:absolute;left:50%;top:42%;width:4px;height:31px;border-radius:4px;background:#315e4e;transform:translateX(-50%)}
.species-loading-page{min-height:calc(100dvh - 150px);display:grid!important;place-items:center!important;padding:28px!important}
.species-loading-line{width:100%;height:4px;border-radius:999px;overflow:hidden;background:#edf4f0;margin-top:20px}
.species-loading-line i{display:block;width:42%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#8ec8ac,#0b6b50);animation:loadingSweep 1.15s ease-in-out infinite}
@keyframes catalogLayerIn{from{opacity:0}to{opacity:1}}
@keyframes loaderFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@keyframes loaderRing{0%{transform:scale(.72);opacity:.7}100%{transform:scale(1.2);opacity:0}}
@keyframes leafPulse{0%,100%{filter:saturate(.88);opacity:.72}50%{filter:saturate(1.15);opacity:1}}
@keyframes loadingSweep{0%{transform:translateX(-115%)}55%{transform:translateX(95%)}100%{transform:translateX(245%)}}

@media (max-width:820px){
  /* FAB central: sólido, verde e inequivocamente clicável */
  html.mn-mobile-app .mn-create,
  html.mn-mobile-app .mn-create:link,
  html.mn-mobile-app .mn-create:visited{
    width:62px!important;height:62px!important;min-width:62px!important;min-height:62px!important;
    border:4px solid #f3f7f5!important;border-radius:50%!important;
    background:#0b6b50!important;background-image:linear-gradient(150deg,#15906c,#075840)!important;
    color:#fff!important;opacity:1!important;box-shadow:0 14px 30px rgba(7,88,64,.35),0 3px 8px rgba(7,70,53,.16)!important;
    isolation:isolate!important;overflow:visible!important
  }
  html.mn-mobile-app .mn-create:before{background:#f3f7f5!important;inset:-8px!important;opacity:1!important}
  html.mn-mobile-app .mn-create svg{stroke:#fff!important;color:#fff!important;opacity:1!important;position:relative!important;z-index:3!important}
  html.mn-mobile-app .mn-create.active{background:#064b39!important;background-image:none!important}
  html.mn-mobile-app .mn-create span{color:#3f6256!important;font-size:9px!important;font-weight:900!important}

  /* Inventário mobile */
  .mobile-tree-list{display:grid!important;gap:11px!important}
  .desktop-tree-table{display:none!important}
  .mobile-tree-card-head{display:grid!important;grid-template-columns:44px minmax(0,1fr) auto!important;gap:10px!important;align-items:center!important}
  .mobile-tree-icon{display:grid!important;place-items:center!important;background:#edf7f1!important;color:#0a674c!important}
  .mobile-tree-title{display:flex!important;flex-direction:column!important;min-width:0!important}
  .mobile-tree-title strong{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
  .mobile-tree-title em{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;color:#71827c!important}
  .mobile-tree-code{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:8px!important;color:#60766d!important}
  .mobile-tree-code span{display:flex!important;align-items:center!important;gap:3px!important;min-width:0!important}
  .mobile-tree-meta{display:grid!important;margin-top:10px!important}
  .mobile-tree-meta>span{display:flex!important;flex-direction:column!important;gap:5px!important;min-width:0!important}
  .mobile-tree-street{display:flex!important;align-items:center!important;gap:5px!important;margin-top:9px!important;color:#74867f!important}

  /* Overlay de catálogo respeita header/footer mobile */
  .catalog-opening-layer{padding-top:calc(22px + env(safe-area-inset-top));padding-bottom:calc(92px + env(safe-area-inset-bottom))}
  .catalog-opening-card,.species-loading-card{border-radius:26px;padding:27px 20px 25px}
  .catalog-opening-card>strong,.species-loading-card>strong{font-size:20px}
}

@media(max-width:390px){
  html.mn-mobile-app .mn-create,html.mn-mobile-app .mn-create:link,html.mn-mobile-app .mn-create:visited{width:58px!important;height:58px!important;min-width:58px!important;min-height:58px!important}
}

@media (prefers-reduced-motion:reduce){
  .catalog-loader-mark,.catalog-loader-mark:before,.catalog-loader-mark:after,.catalog-loader-mark i,.species-loading-line i,.mini-spinner{animation-duration:2.8s!important}
}
