/* Nuria / Nuño, la asistente con IA de NutriGes (misma base que Vera, con los colores vivos de la web de venta).
   Sin estilos en línea (CSP). Móvil primero: en pantallas estrechas la ventana ocupa casi toda la pantalla. */
.nuria-ia {
  --n-violeta: #6a3df0; --n-magenta: #e02a80; --n-coral: #ff6b6b; --n-sol: #ffc145; --n-verde: #3fcf8e; --n-cielo: #4cc9f0; --n-uva: #2a1676;
  --n-degradado: linear-gradient(135deg, #6a3df0 0%, #e02a80 55%, #ff6b6b 100%);
  --n-anillo: conic-gradient(from 200deg, #4cc9f0, #3fcf8e, #c6f36b, #ffc145, #ff6b6b, #e02a80, #6a3df0, #4cc9f0);
  --n-fondo: #fff8ee; --n-tarjeta: #ffffff; --n-tinta: #1d2a44; --n-suave: #4a5a73; --n-linea: #ece4ff; --n-nota: #f0eaff; --n-nota-tx: #4b2bb8;
  --n-error: #fff0f3; --n-error-tx: #b0164f;
  position: fixed; right: 20px; bottom: 20px; z-index: 900; font: 16px/1.5 system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; color: var(--n-tinta);
}
:root[data-tema="oscuro"] .nuria-ia {
  --n-fondo: #140d33; --n-tarjeta: #241a52; --n-tinta: #f3efff; --n-suave: #c7bff0; --n-linea: #3a2d7a; --n-nota: #2e2266; --n-nota-tx: #d9ccff;
  --n-error: #4a1430; --n-error-tx: #ffc2d6;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-tema="claro"]) .nuria-ia {
    --n-fondo: #140d33; --n-tarjeta: #241a52; --n-tinta: #f3efff; --n-suave: #c7bff0; --n-linea: #3a2d7a; --n-nota: #2e2266; --n-nota-tx: #d9ccff;
    --n-error: #4a1430; --n-error-tx: #ffc2d6;
  }
}
.nuria-ia *, .nuria-ia *::before, .nuria-ia *::after { box-sizing: border-box; }
.nuria-ia [hidden] { display: none !important; }
.nuria-ia button { font: inherit; margin: 0; }
.nuria-foto { display: block; border-radius: 50%; object-fit: cover; background: #1f8a7a; }

/* ---------- botón flotante ---------- */
.nuria-boton { position: relative; width: 84px; height: 84px; padding: 5px; border: 0; border-radius: 50%; background: var(--n-anillo); cursor: pointer;
  box-shadow: 0 18px 36px -10px rgba(106, 61, 240, .6); animation: nuria-flota 5s ease-in-out infinite; }
.nuria-foto-boton { width: 100%; height: 100%; border: 3px solid #fff; transition: transform .25s; }
.nuria-boton:hover .nuria-foto-boton { transform: scale(1.05) rotate(-3deg); }
.nuria-boton::before, .nuria-boton::after { content: ''; position: absolute; inset: -6px; border-radius: 50%; border: 3px solid var(--n-magenta); opacity: 0; animation: nuria-onda 3.2s ease-out infinite; pointer-events: none; }
.nuria-boton::after { border-color: var(--n-cielo); animation-delay: 1.6s; }
.nuria-en-linea { position: absolute; right: 4px; top: 5px; width: 17px; height: 17px; border-radius: 50%; background: #22c55e; border: 3px solid #fff; animation: nuria-pulso 2s infinite; }
.nuria-nombre { position: absolute; left: 50%; bottom: -11px; transform: translateX(-50%); background: var(--n-degradado); color: #fff; font-size: .78rem; font-weight: 800;
  padding: 3px 13px; border-radius: 99px; letter-spacing: .03em; white-space: nowrap; box-shadow: 0 6px 14px -4px rgba(224, 42, 128, .6); }
.nuria-ia.abierta .nuria-boton { animation: none; }
.nuria-ia.abierta .nuria-boton::before, .nuria-ia.abierta .nuria-boton::after { display: none; }
.nuria-ia.saluda .nuria-boton { animation: nuria-saluda 1s ease-in-out 3; }
.nuria-ia.hablando .nuria-foto-mini, .nuria-ia.hablando .nuria-foto-boton { animation: nuria-habla .5s ease-in-out infinite alternate; }

.nuria-bocadillo { position: absolute; right: 100px; bottom: 18px; width: 260px; background: var(--n-tarjeta); color: var(--n-tinta); padding: 14px 16px; border-radius: 20px 20px 4px 20px;
  box-shadow: 0 20px 44px -12px rgba(42, 22, 118, .45); cursor: pointer; line-height: 1.4; border: 2px solid transparent;
  background-image: linear-gradient(var(--n-tarjeta), var(--n-tarjeta)), var(--n-degradado); background-origin: border-box; background-clip: padding-box, border-box;
  animation: nuria-entra .45s cubic-bezier(.2, .9, .3, 1.3); }
.nuria-bocadillo b { color: var(--n-magenta); }

/* ---------- ventana ---------- */
.nuria-panel { position: absolute; right: 0; bottom: 104px; width: 400px; max-width: calc(100vw - 32px); height: min(640px, calc(100vh - 140px));
  display: flex; flex-direction: column; background: var(--n-fondo); border-radius: 28px; overflow: hidden;
  box-shadow: 0 34px 80px -20px rgba(42, 22, 118, .6), 0 0 0 1px rgba(106, 61, 240, .12); animation: nuria-entra .3s ease-out; }
.nuria-cab { display: flex; align-items: center; gap: 10px; padding: 14px 12px 14px 16px; background: var(--n-degradado); color: #fff; position: relative; }
.nuria-cab::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: linear-gradient(90deg, #4cc9f0, #3fcf8e, #c6f36b, #ffc145, #ff6b6b); }
.nuria-foto-mini { width: 48px; height: 48px; border: 3px solid #fff; flex: none; }
.nuria-titulo { flex: 1; min-width: 0; }
.nuria-titulo b { display: block; font-size: 1.15rem; line-height: 1.2; }
.nuria-titulo span { display: block; font-size: .78rem; opacity: .95; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nuria-titulo span::before { content: ''; display: inline-block; width: 8px; height: 8px; margin-right: 6px; border-radius: 50%; background: #4ade80; vertical-align: 1px; }
.nuria-icono { width: 38px; height: 38px; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .18); color: #fff; font-size: 1.05rem; line-height: 1; cursor: pointer; flex: none; display: grid; place-items: center; padding: 0; }
.nuria-icono:hover, .nuria-icono:focus-visible { background: rgba(255, 255, 255, .32); }
.nuria-icono img { width: 26px; height: 26px; border-radius: 50%; border: 2px solid #fff; }
.nuria-cerrar { font-size: 1.6rem; }

.nuria-mensajes { flex: 1; overflow-y: auto; padding: 16px 14px 10px; display: flex; flex-direction: column; gap: 10px; overscroll-behavior: contain;
  background: radial-gradient(circle at 10% 0, rgba(76, 201, 240, .18) 0, transparent 40%), radial-gradient(circle at 95% 10%, rgba(224, 42, 128, .14) 0, transparent 40%), var(--n-fondo); }
.nuria-portada { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 4px 0 8px; }
.nuria-foto-grande { width: 104px; height: 104px; padding: 4px; background: var(--n-anillo); margin-bottom: 8px; box-shadow: 0 14px 30px -10px rgba(106, 61, 240, .55); }
.nuria-portada b { font-size: 1.2rem; background: var(--n-degradado); -webkit-background-clip: text; background-clip: text; color: transparent; }
.nuria-portada span { font-size: .82rem; color: var(--n-suave); }
.nuria-msg { max-width: 86%; padding: 10px 14px; border-radius: 18px; line-height: 1.5; overflow-wrap: anywhere; animation: nuria-msg .25s ease-out; }
.nuria-de-ella { align-self: flex-start; background: var(--n-tarjeta); color: var(--n-tinta); border-bottom-left-radius: 5px; box-shadow: 0 4px 14px -6px rgba(42, 22, 118, .25); border-left: 4px solid var(--n-verde); }
.nuria-de-ella a { color: var(--n-magenta); font-weight: 700; }
.nuria-de-ella b { color: inherit; }
.nuria-de-usuario { align-self: flex-end; background: var(--n-degradado); color: #fff; border-bottom-right-radius: 5px; box-shadow: 0 6px 16px -8px rgba(224, 42, 128, .7); }
.nuria-error { background: var(--n-error); color: var(--n-error-tx); border-left-color: var(--n-coral); }
.nuria-nota { background: var(--n-nota); color: var(--n-nota-tx); font-size: .88rem; border-left-color: var(--n-violeta); }
.nuria-cta { display: inline-block; margin-top: 8px; padding: 8px 14px; border-radius: 99px; background: var(--n-degradado); color: #fff !important; text-decoration: none; font-weight: 800; }
.nuria-escribiendo { display: flex; gap: 5px; padding: 14px 16px; }
.nuria-escribiendo i { width: 8px; height: 8px; border-radius: 50%; background: var(--n-magenta); animation: nuria-puntos 1s infinite; }
.nuria-escribiendo i:nth-child(2) { background: var(--n-sol); animation-delay: .15s; }
.nuria-escribiendo i:nth-child(3) { background: var(--n-cielo); animation-delay: .3s; }
.nuria-imprimir-resp { display: block; margin: 6px 0 0 auto; padding: 2px 9px; border: 1px solid var(--n-linea); border-radius: 99px; background: transparent; color: var(--n-suave); font-size: .85rem; cursor: pointer; opacity: .7; }
.nuria-imprimir-resp:hover, .nuria-imprimir-resp:focus-visible { opacity: 1; }

/* aceptación previa de los avisos de la IA */
.nuria-acepto { margin: 0; padding: 12px 14px; background: var(--n-tarjeta); border-top: 3px solid var(--n-sol); font-size: .85rem; color: var(--n-tinta); max-height: 50%; overflow-y: auto; }
.nuria-acepto-titulo { margin: 0 0 6px; font-weight: 800; }
.nuria-acepto ul { margin: 0 0 8px; padding-left: 18px; list-style: disc; }
.nuria-acepto li { margin: 2px 0; }
.nuria-acepto label { display: flex; gap: 8px; align-items: flex-start; cursor: pointer; margin-bottom: 8px; }
.nuria-acepto input { width: 20px; height: 20px; margin: 1px 0 0; flex: none; accent-color: var(--n-magenta); }
.nuria-acepto button { width: 100%; border: 0; border-radius: 99px; padding: 11px; background: var(--n-degradado); color: #fff; font-weight: 800; cursor: pointer; }
.nuria-acepto button:disabled { opacity: .45; cursor: not-allowed; }
.nuria-acepto-error { color: var(--n-error-tx); margin: 6px 0 0; }
.nuria-sin-aceptar .nuria-sugerencias, .nuria-sin-aceptar .nuria-escribir { opacity: .45; pointer-events: none; }

.nuria-sugerencias { display: flex; gap: 6px; padding: 10px 14px 0; overflow-x: auto; scrollbar-width: none; background: var(--n-fondo); }
.nuria-sugerencias::-webkit-scrollbar { display: none; }
.nuria-sugerencias button { flex: none; border: 2px solid transparent; border-radius: 99px; padding: 7px 13px; font-size: .84rem; font-weight: 700; cursor: pointer; color: var(--n-tinta);
  background-image: linear-gradient(var(--n-tarjeta), var(--n-tarjeta)), var(--n-degradado); background-origin: border-box; background-clip: padding-box, border-box; white-space: nowrap; }
.nuria-sugerencias button:hover { transform: translateY(-1px); }
.nuria-escribir { display: flex; gap: 8px; padding: 12px 14px; background: var(--n-fondo); }
.nuria-escribir input { flex: 1; min-width: 0; border: 2px solid var(--n-linea); border-radius: 99px; padding: 12px 16px; font: inherit; font-size: 16px; background: var(--n-tarjeta); color: var(--n-tinta); }
.nuria-escribir input:focus { outline: none; border-color: var(--n-violeta); box-shadow: 0 0 0 4px rgba(106, 61, 240, .18); }
.nuria-enviar { width: 48px; height: 48px; flex: none; border: 0; border-radius: 50%; background: var(--n-degradado); color: #fff; font-size: 1.15rem; cursor: pointer; box-shadow: 0 8px 18px -8px rgba(224, 42, 128, .8); }
.nuria-enviar:active { transform: scale(.92); }
.nuria-aviso { margin: 0; padding: 0 14px 10px; background: var(--n-fondo); color: var(--n-suave); font-size: .7rem; line-height: 1.35; }
#nuria-consumo { display: block; margin-top: 4px; font-weight: 700; }

@keyframes nuria-flota { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-5px); } }
@keyframes nuria-onda { 0% { transform: scale(.95); opacity: .8; } 80%, 100% { transform: scale(1.38); opacity: 0; } }
@keyframes nuria-pulso { 0% { box-shadow: 0 0 0 0 rgba(34, 197, 94, .6); } 70% { box-shadow: 0 0 0 8px rgba(34, 197, 94, 0); } 100% { box-shadow: 0 0 0 0 rgba(34, 197, 94, 0); } }
@keyframes nuria-saluda { 0%, 100% { transform: scale(1) rotate(0); } 30% { transform: scale(1.08) rotate(-5deg); } 60% { transform: scale(1.08) rotate(5deg); } }
@keyframes nuria-habla { from { transform: scale(1); } to { transform: scale(1.07); } }
@keyframes nuria-entra { from { opacity: 0; transform: translateY(14px) scale(.96); } to { opacity: 1; transform: none; } }
@keyframes nuria-msg { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
@keyframes nuria-puntos { 0%, 100% { opacity: .35; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-3px); } }

/* ---------- móvil: ventana casi a pantalla completa, letra cómoda ---------- */
@media (max-width: 560px) {
  .nuria-ia { right: 12px; bottom: 14px; }
  .nuria-boton { width: 68px; height: 68px; padding: 4px; }
  .nuria-panel { position: fixed; left: 6px; right: 6px; top: 6px; bottom: 6px; width: auto; max-width: none; height: auto; border-radius: 22px; }
  .nuria-ia.abierta .nuria-boton, .nuria-ia.abierta .nuria-bocadillo { display: none; }
  .nuria-bocadillo { right: 80px; bottom: 10px; width: min(240px, calc(100vw - 110px)); font-size: .92rem; }
  .nuria-foto-grande { width: 84px; height: 84px; }
  .nuria-msg { max-width: 92%; font-size: 1rem; }
  .nuria-icono { width: 36px; height: 36px; }
}
@media (prefers-reduced-motion: reduce) {
  .nuria-boton, .nuria-boton::before, .nuria-boton::after, .nuria-en-linea, .nuria-ia.hablando .nuria-foto-mini, .nuria-ia.hablando .nuria-foto-boton { animation: none !important; }
}

/* ---------- dentro de la app: más discreta y por encima de la barra inferior ---------- */
.nuria-ia.nuria-app { right: 14px; bottom: calc(84px + env(safe-area-inset-bottom, 0px)); }
.nuria-app .nuria-boton { width: 58px; height: 58px; padding: 3px; animation: none; }
.nuria-app .nuria-boton::before, .nuria-app .nuria-boton::after { display: none; }
.nuria-app .nuria-en-linea { width: 13px; height: 13px; border-width: 2px; right: 1px; top: 2px; }
.nuria-app .nuria-nombre { font-size: .66rem; padding: 2px 9px; bottom: -8px; }
.nuria-app .nuria-panel { bottom: 74px; }

/* ---------- imprimir o guardar en PDF: solo la hoja de Nuria ---------- */
.nuria-impresion { display: none; }
@media print {
  .nuria-ia { display: none !important; }
  html.nuria-imprimiendo body > *:not(.nuria-impresion) { display: none !important; }
  html.nuria-imprimiendo .nuria-impresion { display: block !important; color: #1d2a44; font: 11.5pt/1.5 system-ui, "Segoe UI", Arial, sans-serif; background: #fff; }
  .nuria-impresion .ni-cab { display: flex; justify-content: space-between; align-items: flex-end; border-bottom: 3px solid #e02a80; padding-bottom: 8px; margin-bottom: 14px; }
  .nuria-impresion .ni-cab b { font-size: 17pt; color: #6a3df0; }
  .nuria-impresion .ni-cab span { font-size: 9.5pt; color: #4a5a73; }
  .nuria-impresion .ni-msg { margin: 0 0 12px; break-inside: avoid; }
  .nuria-impresion .ni-quien { font-size: 9pt; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: #6a3df0; }
  .nuria-impresion .ni-u .ni-quien { color: #8a949d; }
  .nuria-impresion .ni-a .ni-txt { border-left: 3px solid #3fcf8e; padding-left: 10px; }
  .nuria-impresion .url { color: #4a5a73; font-size: 9.5pt; word-break: break-all; }
  .nuria-impresion .ni-pie { margin-top: 18px; border-top: 1px solid #ccc; padding-top: 4px; font-size: 8pt; color: #4a5a73; text-align: center; }
  @page { size: A4; margin: 18mm; }
}

/* Órdenes en la app: botones de confirmación, opciones y micrófono */
.nuria-acciones { display: flex; flex-wrap: wrap; gap: 8px; margin: 2px 0 10px; align-items: center; }
.nuria-acciones button { border: 2px solid transparent; border-radius: 99px; padding: 9px 16px; font: inherit; font-size: .9rem; font-weight: 800; cursor: pointer; }
.nuria-acciones .nuria-si { background: var(--n-degradado); color: #fff; }
.nuria-acciones .nuria-no { background: var(--n-tarjeta); color: var(--n-tinta); border-color: var(--n-linea); }
.nuria-acciones .nuria-opcion { background: var(--n-nota); color: var(--n-nota-tx); font-weight: 700; font-size: .84rem; text-align: left; }
.nuria-acciones .nuria-otras { flex-basis: 100%; font-size: .8rem; opacity: .75; margin-top: 4px; }
.nuria-mic { width: 48px; height: 48px; flex: none; border: 2px solid var(--n-linea); border-radius: 50%; background: var(--n-tarjeta); color: var(--n-tinta); font-size: 1.15rem; cursor: pointer; }
.nuria-mic[hidden] { display: none; }
.escuchando .nuria-mic { background: #e02a2a; border-color: #e02a2a; color: #fff; animation: nuria-late 1s ease-in-out infinite; }
@keyframes nuria-late { 50% { transform: scale(1.1); } }
@media (prefers-reduced-motion: reduce) { .escuchando .nuria-mic { animation: none; } }
