/* ═══════════ GALAXY RADIAL MENU CSS — Sprint G3 (13/05/2026) ═══════════ */
.gal-radial-menu {
  position: fixed;
  z-index: 10000;
  width: 0; height: 0;
  pointer-events: none;
  transform: translate(-50%, -50%);
}
.gal-radial-menu .gal-radial-center,
.gal-radial-menu .gal-radial-item { pointer-events: auto; }

.gal-radial-center {
  position: absolute;
  left: 0; top: 0;
  transform: translate(-50%, -50%);
  width: 56px; height: 56px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(var(--accent-rgb), 0.35), rgba(var(--accent-rgb), 0.08));
  border: 1px solid rgba(var(--accent-rgb), 0.5);
  box-shadow: 0 0 24px rgba(var(--accent-rgb), 0.45), inset 0 0 12px rgba(var(--accent-rgb), 0.25);
  color: var(--accent);
  font-family: var(--font-mono);
  font-size: 13px;
  font-weight: 700;
  display: flex; align-items: center; justify-content: center;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  animation: galRadialCenter 0.32s cubic-bezier(0.32, 0.72, 0, 1) both;
}
@keyframes galRadialCenter {
  from { transform: translate(-50%, -50%) scale(0.4); opacity: 0; }
  to   { transform: translate(-50%, -50%) scale(1); opacity: 1; }
}

.gal-radial-item {
  position: absolute;
  left: 0; top: 0;
  width: 64px; height: 64px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,0.18);
  background: rgba(8, 14, 28, 0.92);
  backdrop-filter: blur(10px) saturate(140%);
  -webkit-backdrop-filter: blur(10px) saturate(140%);
  color: #fff;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 1px;
  cursor: pointer;
  transform: translate(-50%, -50%) scale(0);
  opacity: 0;
  animation: galRadialFan 0.36s cubic-bezier(0.32, 0.72, 0, 1) both;
  animation-delay: var(--delay, 0ms);
  box-shadow: 0 4px 18px rgba(0,0,0,0.55), 0 0 0 0 currentColor;
  transition: box-shadow 0.18s, transform 0.18s;
}
@keyframes galRadialFan {
  from { transform: translate(-50%, -50%) scale(0); opacity: 0; }
  60%  { opacity: 1; }
  to   { transform: translate(calc(-50% + var(--dx)), calc(-50% + var(--dy))) scale(1); opacity: 1; }
}
.gal-radial-item:active {
  transform: translate(calc(-50% + var(--dx)), calc(-50% + var(--dy))) scale(0.92);
  box-shadow: 0 0 18px currentColor, 0 4px 18px rgba(0,0,0,0.6);
}
.gal-radial-item:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
.gal-radial-icon {
  font-size: 22px;
  line-height: 1;
  filter: drop-shadow(0 0 4px currentColor);
}
.gal-radial-label {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 0.4px;
  text-transform: uppercase;
  opacity: 0.88;
  max-width: 56px;
  text-align: center;
  line-height: 1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Tiers de couleurs — accord avec faction/danger codes du jeu */
.gal-radial-danger  { color: #ff7a7a; border-color: rgba(255,90,90,0.5); }
.gal-radial-success { color: #7affb1; border-color: rgba(90,255,150,0.5); }
.gal-radial-cyan    { color: #79f0ff; border-color: rgba(80,200,240,0.55); }
.gal-radial-gold    { color: #ffd76b; border-color: rgba(255,216,96,0.55); }
.gal-radial-accent  { color: var(--accent); border-color: rgba(var(--accent-rgb), 0.55); }
.gal-radial-neutral { color: #c8d3e6; border-color: rgba(200,210,230,0.35); }

/* Reduced motion → pas d'animation, juste apparition */
@media (prefers-reduced-motion: reduce) {
  .gal-radial-center,
  .gal-radial-item { animation: none; opacity: 1; }
  .gal-radial-item { transform: translate(calc(-50% + var(--dx)), calc(-50% + var(--dy))); }
}
