/* AQcredix — Departments Galaxy UI */

.gx-stage{
  position:relative;width:100%;
  display:flex;align-items:center;justify-content:center;
}
.gx-wrap{
  position:relative;width:100%;aspect-ratio:1/1;min-height:300px;
  border-radius:24px;overflow:hidden;
  background:radial-gradient(circle at 50% 45%, rgba(79,70,229,.14), transparent 70%);
}
#galaxyCanvas{width:100%;height:100%;display:block;cursor:grab;touch-action:none;}
#galaxyCanvas:active{cursor:grabbing;}

.gx-fallback{
  width:100%;aspect-ratio:16/10;border-radius:24px;
  background:radial-gradient(circle at 38% 32%, rgba(79,70,229,.5), rgba(14,165,160,.22) 55%, transparent 75%);
  display:flex;align-items:center;justify-content:center;text-align:center;color:rgba(255,255,255,.6);font-size:13px;padding:20px;
}

.gx-loading{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;
  color:rgba(255,255,255,.4);font-family:var(--font-mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;
  transition:opacity .5s ease;pointer-events:none;
}
.gx-loading .spin{width:24px;height:24px;border-radius:50%;border:2px solid rgba(94,234,212,.2);border-top-color:#5eead4;animation:gxspin .8s linear infinite;}
@keyframes gxspin{to{transform:rotate(360deg);}}
.gx-loading.hidden{opacity:0;}

.gx-node-hit{
  position:absolute;width:24px;height:24px;transform:translate(-50%,-50%);
  background:transparent;border:none;border-radius:50%;cursor:pointer;padding:0;
  pointer-events:auto;
}
.gx-node-hit:focus-visible{
  outline:2px solid #5eead4;outline-offset:3px;background:rgba(94,234,212,.12);border-radius:50%;
}

/* Auto-cycling label — appears without any hover, like the Moffett reference */
.gx-auto-label{
  position:absolute;z-index:15;transform:translate(-50%,-140%);
  font-family:var(--font-mono);font-size:11px;font-weight:600;color:#fff;
  background:rgba(8,11,32,.85);backdrop-filter:blur(6px);
  border:1px solid rgba(94,234,212,.3);border-radius:999px;padding:5px 12px;
  white-space:nowrap;pointer-events:none;
  opacity:0;transition:opacity .5s ease, transform .5s ease;
}
.gx-auto-label.show{opacity:1;transform:translate(-50%,-160%);}

.gx-tooltip{
  position:absolute;z-index:20;transform:translate(-50%,-100%);
  background:rgba(8,11,32,.94);backdrop-filter:blur(10px);
  border:1px solid rgba(94,234,212,.3);border-radius:10px;padding:9px 13px;
  font-size:12px;color:#fff;white-space:nowrap;
  opacity:0;pointer-events:none;transition:opacity .18s ease, transform .18s ease;
}
.gx-tooltip.show{opacity:1;transform:translate(-50%,-108%);}
.gx-tooltip b{display:block;font-family:var(--font-display);font-size:13px;font-weight:700;}
.gx-tooltip span{display:block;font-size:10.5px;color:#5eead4;font-family:var(--font-mono);margin-top:2px;}

@media (max-width:700px){
  .gx-wrap{aspect-ratio:1/1;}
}
