/* Nexus 0.7.2 Patch 1: unobtrusive icon-only voice controls. */
.nexus-voice-input-shell{position:relative;display:block;width:100%}
.nexus-voice-input-shell>textarea{display:block;width:100%;padding-right:54px!important}
.nexus-voice-record-button,
.nexus-speak-button,
.nexus-voice-settings-button{
  display:grid;place-items:center;margin:0;padding:0;border:0;color:#d9c7eb;background:transparent;box-shadow:none;
  font-size:0;line-height:0;white-space:nowrap;overflow:hidden;text-indent:0;
  cursor:pointer;transition:color .18s ease,transform .18s ease,filter .18s ease,box-shadow .18s ease
}
.nexus-voice-record-button{
  position:absolute;right:10px;top:10px;z-index:6;width:34px;height:34px;border-radius:50%
}
.nexus-voice-record-button:hover,
.nexus-voice-record-button:focus-visible,
.nexus-speak-button:hover,
.nexus-speak-button:focus-visible,
.nexus-voice-settings-button:hover,
.nexus-voice-settings-button:focus-visible{
  color:#fff;transform:scale(1.08);filter:drop-shadow(0 0 8px rgba(218,91,244,.52));outline:0
}
.nexus-voice-record-button:focus-visible,
.nexus-speak-button:focus-visible,
.nexus-voice-settings-button:focus-visible{box-shadow:0 0 0 3px rgba(206,95,244,.2)}
.nexus-voice-record-button svg{display:block;width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.85;stroke-linecap:round;stroke-linejoin:round}
.nexus-voice-record-button.is-recording{color:#ff77b7;animation:nexusMicPulse 1.35s ease-in-out infinite}
.nexus-voice-record-button.is-processing{color:#a993ff;animation:nexusVoiceProcessing 1.15s linear infinite}
.nexus-voice-record-button:disabled{cursor:wait;opacity:.9}
.nexus-voice-status{display:block;min-height:18px;margin:7px 4px 0;color:#8e8998;font-size:.7rem;line-height:1.35;text-align:right}
.nexus-voice-status[data-tone="working"]{color:#d8b5f5}.nexus-voice-status[data-tone="success"]{color:#86e4b6}.nexus-voice-status[data-tone="error"]{color:#ff9aaa}

.nexus-speech-controls{position:relative;z-index:12;display:inline-flex;align-items:center;gap:11px;margin-left:10px;vertical-align:middle}
.nexus-speak-button,.nexus-voice-settings-button{width:27px;height:27px;border-radius:50%;flex:0 0 auto}
.nexus-speak-button svg,.nexus-voice-settings-button svg{display:block;width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.85;stroke-linecap:round;stroke-linejoin:round}
.nexus-speaker-icon-active{display:none!important}
.nexus-speak-button.is-speaking{color:#ff79b8;animation:nexusSpeakerPulse 1.35s ease-in-out infinite}
.nexus-speak-button.is-speaking .nexus-speaker-icon-idle{display:none!important}
.nexus-speak-button.is-speaking .nexus-speaker-icon-active{display:block!important}
.nexus-voice-settings-button[aria-expanded="true"]{color:#fff;filter:drop-shadow(0 0 8px rgba(161,104,255,.6))}
.nexus-voice-menu{
  position:fixed;left:0;top:0;z-index:2147483000;width:min(248px,calc(100vw - 24px));padding:10px;
  border:1px solid rgba(191,118,255,.3);border-radius:15px;background:rgba(16,12,24,.99);
  box-shadow:0 18px 50px rgba(0,0,0,.58),inset 0 1px 0 rgba(255,255,255,.055);text-align:left;
  isolation:isolate;transform:translateZ(0)
}
.nexus-voice-menu[hidden]{display:none!important}
.nexus-voice-menu-heading{display:block;padding:3px 6px 8px;color:#eee5f5;font-size:.72rem;font-weight:900;letter-spacing:.07em;text-transform:uppercase}
.nexus-voice-option{display:grid;width:100%;gap:2px;padding:9px 10px;border:0;border-radius:10px;color:#d7d0dd;background:transparent;text-align:left;cursor:pointer}
.nexus-voice-option strong{font-size:.8rem}.nexus-voice-option span{color:#9992a2;font-size:.69rem}
.nexus-voice-option:hover,.nexus-voice-option:focus-visible{outline:0;background:rgba(163,79,233,.13)}
.nexus-voice-option.is-selected{color:#fff;background:linear-gradient(135deg,rgba(225,57,157,.15),rgba(116,76,229,.16));box-shadow:inset 0 0 0 1px rgba(220,111,255,.18)}
.nexus-voice-option.is-selected span{color:#d0bfdc}
.nexus-voice-menu small{display:block;padding:8px 6px 2px;color:#777181;font-size:.62rem;line-height:1.35}
.profile-section>.nexus-speech-controls,.result-card>.nexus-speech-controls,.journey-result-card>.nexus-speech-controls,.do-next-tile>.nexus-speech-controls{margin:12px 0 0}

@keyframes nexusMicPulse{0%,100%{transform:scale(1);filter:drop-shadow(0 0 4px rgba(255,75,157,.36))}50%{transform:scale(1.13);filter:drop-shadow(0 0 13px rgba(255,75,157,.82))}}
@keyframes nexusSpeakerPulse{0%,100%{transform:scale(1);filter:drop-shadow(0 0 4px rgba(255,75,157,.3))}50%{transform:scale(1.12);filter:drop-shadow(0 0 12px rgba(255,75,157,.75))}}
@keyframes nexusVoiceProcessing{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.nexus-voice-record-button,.nexus-speak-button,.nexus-voice-settings-button{transition:none}.nexus-voice-record-button.is-recording,.nexus-voice-record-button.is-processing,.nexus-speak-button.is-speaking{animation:none!important}}
