/* Voice buttons inside the NEXILENSE AI Assistant composer. */
.nxai-composer .nxav-mic, .nxai-composer .nxav-spk { flex: 0 0 auto; width: 40px; height: 40px; min-width: 40px; border-radius: 50%; border: 1px solid rgba(127,127,127,.35); background: transparent; color: inherit; display: inline-grid; place-items: center; cursor: pointer; padding: 0; margin-right: 6px; align-self: flex-end; }
.nxai-composer .nxav-mic svg, .nxai-composer .nxav-spk svg { width: 20px; height: 20px; }
.nxai-composer .nxav-mic.is-on { background: #e11d48; border-color: #e11d48; color: #fff; animation: nxav-pulse 1.2s ease-in-out infinite; }
.nxai-composer .nxav-spk[aria-pressed="true"] { border-color: #00CCFF; color: #00CCFF; }
.nxai-composer .nxav-spk.is-speaking { box-shadow: 0 0 0 3px rgba(0,204,255,.35); }
.nxai-composer .nxav-mic.is-unsupported { opacity: .45; cursor: not-allowed; }
.nxai-composer .nxav-mic:focus-visible, .nxai-composer .nxav-spk:focus-visible { outline: 3px solid #00CCFF; outline-offset: 2px; }
.nxav-status { font-size: 12px; padding: 6px 12px; color: inherit; opacity: .85; }
@keyframes nxav-pulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(225,29,72,.5); } 50% { box-shadow: 0 0 0 8px rgba(225,29,72,0); } }
@media (prefers-reduced-motion: reduce) { .nxai-composer .nxav-mic.is-on { animation: none; } }
