/* Bot BC — botón de voz "mantén para hablar" (Nemo). */
.nemo-voice {
  position: fixed;
  left: 50%;
  bottom: max(16px, env(safe-area-inset-bottom));
  transform: translateX(-50%);
  width: min(560px, calc(100vw - 24px));
  z-index: 50;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  font-family: inherit;
  pointer-events: none;
}
.nemo-voice * { box-sizing: border-box; }

.nv-panel {
  pointer-events: auto;
  width: 100%;
  background: rgba(8, 13, 23, .92);
  border: 1px solid rgba(99, 246, 255, .28);
  border-radius: 14px;
  padding: 12px 14px;
  color: #dbe8ff;
  box-shadow: 0 10px 30px rgba(0, 0, 0, .45);
  display: none;
  max-height: 42vh;
  overflow: auto;
}
.nv-panel.show { display: block; }
.nv-row { margin: 4px 0; line-height: 1.35; font-size: 15px; }
.nv-label { color: #63f6ff; font-weight: 700; margin-right: 6px; font-size: 13px; }
.nv-me { color: #aab8cf; }
.nv-bot { color: #eaf3ff; }
.nv-err { color: #ff9b9b; }

.nv-controls { pointer-events: auto; display: flex; align-items: center; gap: 12px; }

.nv-mic {
  -webkit-tap-highlight-color: transparent;
  -webkit-touch-callout: none;
  user-select: none;
  touch-action: none;
  width: 96px;
  height: 96px;
  border-radius: 50%;
  border: 3px solid #63f6ff;
  background: radial-gradient(circle at 50% 38%, #12324a, #071019 75%);
  color: #e8fbff;
  font: inherit;
  font-size: 13px;
  font-weight: 700;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  cursor: pointer;
  box-shadow: 0 0 0 0 rgba(99, 246, 255, .45);
  transition: transform .08s ease, box-shadow .2s ease, background .2s ease;
}
.nv-mic .nv-ico { font-size: 30px; line-height: 1; }
.nv-mic.rec {
  transform: scale(.94);
  background: radial-gradient(circle at 50% 38%, #2a1430, #1a0a16 75%);
  border-color: #ff5d8f;
  box-shadow: 0 0 0 14px rgba(255, 93, 143, .18);
  animation: nv-pulse 1.1s ease-in-out infinite;
}
.nv-mic.busy { border-color: #ffd166; opacity: .9; }
.nv-mic:disabled { opacity: .5; cursor: default; }
@keyframes nv-pulse {
  0%, 100% { box-shadow: 0 0 0 6px rgba(255, 93, 143, .10); }
  50% { box-shadow: 0 0 0 18px rgba(255, 93, 143, .22); }
}

.nv-hint { pointer-events: none; font-size: 12px; color: #8fa2bd; text-align: center; }

.nv-fallback { pointer-events: auto; display: none; width: 100%; gap: 8px; }
.nv-fallback.show { display: flex; }
.nv-fallback input {
  flex: 1; min-width: 0; padding: 10px 12px; border-radius: 10px;
  border: 1px solid rgba(99, 246, 255, .3); background: #0b1524; color: #e8f1ff; font: inherit;
}
.nv-fallback button {
  padding: 10px 14px; border-radius: 10px; border: 1px solid #63f6ff;
  background: #0e2b3d; color: #e8fbff; font: inherit; font-weight: 700; cursor: pointer;
}
@media (max-width: 420px) {
  .nv-mic { width: 84px; height: 84px; }
}

.nv-replay {
  pointer-events: auto;
  border-radius: 50px;
  border: 2px solid #63f6ff;
  background: rgba(14, 43, 61, .9);
  color: #e8fbff;
  font: inherit;
  font-weight: 700;
  font-size: 14px;
  padding: 12px 16px;
  cursor: pointer;
}
.nv-replay:active { transform: scale(.96); }

.nv-side { display: flex; flex-direction: column; gap: 8px; }
.nv-mode {
  pointer-events: auto;
  border-radius: 50px;
  border: 1px dashed rgba(99, 246, 255, .5);
  background: transparent;
  color: #9fd8ff;
  font: inherit;
  font-size: 13px;
  font-weight: 700;
  padding: 10px 14px;
  cursor: pointer;
}
.nv-mode:active { transform: scale(.96); }

.nv-hands {
  pointer-events: auto;
  border-radius: 50px;
  border: 2px solid rgba(99, 246, 255, .45);
  background: rgba(10, 22, 36, .85);
  color: #cfe9ff;
  font: inherit;
  font-size: 13px;
  font-weight: 700;
  padding: 11px 14px;
  cursor: pointer;
}
.nv-hands.on {
  border-color: #54ffb0;
  color: #06231a;
  background: #54ffb0;
}
.nv-hands:active { transform: scale(.96); }
