/* v8.9.7: buttons must remain legible even while UI state updates */
.action-hub .hub-actions{display:flex!important;align-items:stretch;gap:12px;flex-wrap:wrap;min-width:0}
.action-hub .hub-actions>button{display:inline-flex!important;align-items:center;justify-content:center;gap:9px;flex:1 1 190px;min-width:170px;min-height:62px;white-space:normal;text-align:center;color:#f2fbff!important;opacity:1!important;visibility:visible!important;filter:none!important;text-shadow:0 1px 3px #001b38;font-size:16px!important;line-height:1.35!important;transition:background .2s,border-color .2s,box-shadow .2s,transform .2s}
.action-hub .hub-actions>button:hover{transform:translateY(-2px);box-shadow:0 0 18px #35b9ff55}
.action-hub .hub-actions>button:focus-visible{outline:3px solid #a5efff;outline-offset:3px}
.action-hub .hub-actions>button kbd{color:#d6efff;font-size:12px;white-space:nowrap}
#hubAudio{background:#1b4b78!important;border-color:#76caff!important}
#commandBtn{background:#17375c!important;border-color:#5b94c6!important}
#npcWelcome .npc-satellite{cursor:pointer;pointer-events:auto}
#npcWelcome .npc-satellite:focus-visible{outline:2px solid #83eaff;outline-offset:8px}
#npcWelcome .npc-satellite.is-pinging{filter:drop-shadow(0 0 24px #80ffff);animation:npcPing .65s ease-out 2}
@keyframes npcPing{50%{scale:1.2;filter:drop-shadow(0 0 32px #b5ffff)}}
#npcWelcome .npc-welcome-content{transition:transform .2s ease}
#npcWelcome .npc-signal{position:absolute;inset:0;pointer-events:none;z-index:1;background:radial-gradient(circle at var(--signal-x,50%) var(--signal-y,50%),#4cdcff24,transparent 22%);opacity:0;transition:opacity .35s}
#npcWelcome.is-tracking .npc-signal{opacity:1}
@media(prefers-reduced-motion:reduce){#npcWelcome .npc-satellite.is-pinging{animation:none}}
