/* "Live Site Activity" box in the footer of the public pages.
   Filled in by assets/live-visits.js from api/visits.php; stays hidden
   until the first real numbers arrive, so a failed request shows nothing
   rather than a row of zeros. */
.live-box{
  margin-top:22px;max-width:300px;padding:16px 18px 16px;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:14px;
  animation:liveIn .6s cubic-bezier(.22,.61,.36,1) both;
}
.live-box[hidden]{display:none;}
@keyframes liveIn{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:none;}}
.live-head{display:flex;align-items:center;gap:9px;font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#9CA3AF;}
.live-dot{position:relative;width:9px;height:9px;border-radius:50%;background:#22C55E;flex-shrink:0;}
.live-dot::after{content:"";position:absolute;inset:0;border-radius:50%;background:#22C55E;animation:livePing 1.8s ease-out infinite;}
@keyframes livePing{0%{transform:scale(1);opacity:.7;}100%{transform:scale(2.8);opacity:0;}}
.live-now{display:flex;align-items:baseline;gap:8px;margin:10px 0 14px;font-size:14px;color:#D1D5DB;}
.live-now b{font-size:26px;font-weight:800;color:#fff;line-height:1;}
.live-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.live-stats div{background:rgba(255,255,255,.05);border-radius:10px;padding:10px 12px;}
.live-stats b{display:block;font-size:17px;font-weight:800;color:#fff;line-height:1.2;}
.live-stats span{display:block;font-size:11.5px;color:#9CA3AF;margin-top:2px;}
.live-box b{display:inline-block;}
.live-bump{animation:liveBump .6s ease;}
@keyframes liveBump{0%{transform:none;color:#fff;}35%{transform:scale(1.18);color:#4ADE80;}100%{transform:none;color:#fff;}}
@media (prefers-reduced-motion: reduce){
  .live-box,.live-bump{animation:none;}
  .live-dot::after{animation:none;opacity:0;}
}
