.launcher-orbit {
  --disco-borda: rgba(255, 255, 255, .14);
  --disco-brilho: rgba(255, 255, 255, .09);
  --disco-metal: rgba(255, 255, 255, .045);
  --disco-fundo: #0a0b10;
  --ponto-opacidade-min: .56;
  --ponto-opacidade-max: .88;
  isolation: isolate;
}

.launcher-orbit__ring--outer {
  overflow: hidden;
  border-color: var(--disco-borda);
  background: radial-gradient(
    circle at 45% 38%, var(--disco-brilho), transparent 66%
  );
  box-shadow: inset 0 0 56px var(--disco-metal);
}

.launcher-orbit__ring--outer::before {
  position: absolute;
  inset: 5%;
  border: 1px solid var(--disco-borda);
  border-radius: 50%;
  background: repeating-radial-gradient(
    circle, transparent 0 10%, var(--disco-metal) 10.2% 10.5%,
    transparent 10.7% 19%
  );
  content: '';
}

.launcher-orbit__plato {
  position: absolute;
  inset: 2%;
  border-radius: 50%;
  background: conic-gradient(
    from 0deg, transparent 0deg, var(--disco-brilho) 34deg,
    transparent 72deg, var(--disco-metal) 175deg,
    transparent 240deg, var(--disco-brilho) 315deg,
    transparent 360deg
  );
  opacity: .55;
  pointer-events: none;
}

.launcher-orbit[data-disco-ativo="true"] .launcher-orbit__plato {
  animation: disco-giro 9s linear infinite;
}

.launcher-orbit__ring--inner {
  inset: 20.6%;
  animation: none;
}

.launcher-orbit__agulha {
  position: absolute;
  top: 50%;
  right: 11%;
  width: 29%;
  height: 2px;
  border-radius: 2px;
  background: linear-gradient(90deg, transparent, var(--disco-borda));
  opacity: .42;
  transform: rotate(-18deg);
  transform-origin: 95% 50%;
  pointer-events: none;
}

.launcher-orbit__agulha::before {
  position: absolute;
  left: 12%;
  top: -4px;
  width: 10px;
  height: 10px;
  border: 1px solid var(--disco-borda);
  border-radius: 3px;
  background: var(--disco-brilho);
  content: '';
}

.launcher-orbit[data-disco-ativo="true"] .launcher-orbit__agulha {
  animation: disco-leitura 4s ease-in-out infinite alternate;
}

.launcher-orbit__points {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.launcher-orbit__point {
  position: absolute;
  top: calc(50% + 48% * sin(var(--angulo)));
  left: calc(50% + 48% * cos(var(--angulo)));
  z-index: 3;
  width: 10px;
  height: 10px;
  padding: 0;
  border: 2px solid var(--disco-fundo);
  border-radius: 50%;
  background: var(--ponto-cor, #777);
  opacity: var(--ponto-opacidade-min);
  transform: translate(-50%, -50%);
  pointer-events: auto;
  cursor: pointer;
}

.launcher-orbit__point[data-online="true"] {
  animation: disco-pisca var(--duracao, 2.8s) ease-in-out infinite;
  animation-delay: var(--atraso, 0s);
}

.launcher-orbit__point[data-online="false"] {
  opacity: .34;
  background: #90959d;
  box-shadow: none;
  cursor: default;
}

.launcher-orbit__point:disabled {
  pointer-events: none;
}

.launcher-orbit__point:focus-visible {
  outline: 2px solid var(--launcher-text);
  outline-offset: 4px;
}

.launcher-orbit__core {
  z-index: 2;
}

.launcher-orbit__core:hover {
  box-shadow: 0 25px 80px rgba(0, 0, 0, .45),
    0 0 78px var(--disco-brilho);
}

/* Identidade do card no prato; status online verde em todos os cards. */
.agent-card__status--online i {
  background: #22c55e;
  box-shadow: 0 0 9px rgba(34, 197, 94, .35);
}

.agent-card__platform > span {
  color: #e2e4e9;
  text-shadow: 0 0 14px rgba(255, 255, 255, .07);
}

[data-theme="light"] .launcher-orbit {
  --disco-borda: rgba(50, 55, 63, .22);
  --disco-brilho: rgba(86, 92, 104, .14);
  --disco-metal: rgba(44, 48, 56, .075);
  --disco-fundo: #f5f5f6;
  --ponto-opacidade-min: .40;
  --ponto-opacidade-max: .70;
}

[data-theme="light"] .launcher-orbit__ring--outer {
  background: radial-gradient(
    circle at 45% 38%, rgba(96, 102, 112, .10), transparent 63%
  ), linear-gradient(145deg, rgba(255, 255, 255, .95),
    rgba(233, 236, 241, .88));
  box-shadow: inset 0 0 64px rgba(44, 48, 56, .06),
    inset 0 0 0 1px rgba(44, 48, 56, .04),
    0 16px 30px rgba(0, 0, 0, .04);
}

[data-theme="light"] .launcher-orbit__plato {
  opacity: .74;
  filter: contrast(1.08) brightness(.97);
}

[data-theme="light"] .launcher-orbit__agulha {
  opacity: .58;
}

[data-theme="light"] .agent-card__platform > span {
  color: #4f5662;
  text-shadow: none;
}

[data-theme="light"] .agent-card__status--online i {
  box-shadow: 0 0 9px rgba(34, 197, 94, .22);
}

@keyframes disco-giro {
  to { transform: rotate(360deg); }
}

@keyframes disco-leitura {
  from { transform: rotate(-27deg); }
  to { transform: rotate(15deg); }
}

@keyframes disco-pisca {
  0%, 100% {
    opacity: var(--ponto-opacidade-min);
    transform: translate(-50%, -50%) scale(1);
    box-shadow: 0 0 5px var(--ponto-cor);
  }

  50% {
    opacity: var(--ponto-opacidade-max);
    transform: translate(-50%, -50%) scale(1.13);
    box-shadow: 0 0 12px var(--ponto-cor);
  }
}

@media (prefers-reduced-motion: reduce) {
  .launcher-orbit__plato,
  .launcher-orbit__agulha,
  .launcher-orbit__point {
    animation: none !important;
  }
}
