/* Asistente Dual Studio — burbuja de chat + botón de WhatsApp. Estilo de la agencia: negro, amarillo y tipografía sin serifas. */
.dsa, .dsa * { box-sizing: border-box; }
.dsa {
  --d-negro: #0a0a0b; --d-carbon: #131315; --d-carbon2: #1b1b1e; --d-amarillo: #ffd60a; --d-blanco: #ffffff;
  --d-suave: #a3a3a8; --d-linea: rgba(255, 255, 255, .16); --d-wa: #25d366;
  font-family: Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; color: var(--d-blanco);
}

/* Botón flotante "Asistente" */
.dsa-btn { position: fixed; z-index: 250; right: max(16px, env(safe-area-inset-right, 0px)); }
.dsa-btn {
  bottom: max(16px, env(safe-area-inset-bottom, 0px));
  display: inline-flex; align-items: center; gap: 10px; min-height: 54px; padding: 0 20px 0 16px; border: 0; border-radius: 999px; cursor: pointer;
  background: var(--d-amarillo); color: var(--d-negro); font: 700 15px/1 "Inter Tight", Inter, system-ui, sans-serif; letter-spacing: -.005em;
  box-shadow: 0 12px 30px rgba(0, 0, 0, .45), 0 0 0 1px rgba(0, 0, 0, .25) inset; transition: transform .18s ease, box-shadow .18s ease;
}
.dsa-btn:hover { transform: translateY(-2px); box-shadow: 0 16px 34px rgba(0, 0, 0, .55); }
.dsa-btn:focus-visible { outline: 3px solid var(--d-blanco); outline-offset: 3px; }
.dsa-btn svg { width: 24px; height: 24px; flex: none; }
.dsa.abierto .dsa-btn { display: none; }

/* Ventana */
.dsa-panel {
  position: fixed; z-index: 251; right: max(16px, env(safe-area-inset-right, 0px)); bottom: max(16px, env(safe-area-inset-bottom, 0px));
  width: min(392px, calc(100vw - 32px)); height: min(620px, calc(100svh - 32px)); display: none; flex-direction: column; overflow: hidden;
  background: var(--d-carbon); border: 1px solid var(--d-linea); border-radius: 18px; box-shadow: 0 24px 60px rgba(0, 0, 0, .6);
}
.dsa.abierto .dsa-panel { display: flex; animation: dsa-entra .22s ease-out; }
@keyframes dsa-entra { from { opacity: 0; transform: translateY(14px) scale(.98); } to { opacity: 1; transform: none; } }

.dsa-cab { display: flex; align-items: center; gap: 12px; padding: 14px 14px 14px 16px; background: var(--d-negro); border-bottom: 1px solid var(--d-linea); }
.dsa-avatar { width: 38px; height: 38px; border-radius: 50%; background: var(--d-amarillo); color: var(--d-negro); display: grid; place-items: center; flex: none; font: 800 15px/1 "Inter Tight", Inter, sans-serif; }
.dsa-tit { min-width: 0; flex: 1; }
.dsa-tit b { display: block; font: 700 16px/1.2 "Inter Tight", Inter, system-ui, sans-serif; }
.dsa-tit span { display: block; margin-top: 2px; font-size: 12.5px; color: var(--d-suave); }
.dsa-cab a, .dsa-cab button {
  display: inline-grid; place-items: center; min-width: 40px; height: 40px; padding: 0 10px; border: 0; border-radius: 10px; cursor: pointer;
  background: rgba(255, 255, 255, .10); color: #fff; font: 600 13px/1 Inter, sans-serif; text-decoration: none;
}
.dsa-cab a:hover, .dsa-cab button:hover { background: rgba(255, 255, 255, .20); }
.dsa-cab a:focus-visible, .dsa-cab button:focus-visible { outline: 3px solid var(--d-amarillo); outline-offset: 2px; }
.dsa-cab svg { width: 20px; height: 20px; }

.dsa-msgs { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 16px 14px 8px; display: flex; flex-direction: column; gap: 10px; scroll-behavior: smooth; }
.dsa-m { max-width: 86%; padding: 10px 13px; border-radius: 14px; font-size: 15px; line-height: 1.5; overflow-wrap: anywhere; }
.dsa-m a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.dsa-m.bot { align-self: flex-start; background: var(--d-carbon2); border: 1px solid var(--d-linea); border-bottom-left-radius: 4px; }
.dsa-m.bot a { color: var(--d-amarillo); }
.dsa-m.yo { align-self: flex-end; background: var(--d-amarillo); color: var(--d-negro); border-bottom-right-radius: 4px; font-weight: 500; }
.dsa-m b { font-weight: 700; }
.dsa-escribe { align-self: flex-start; display: inline-flex; gap: 4px; padding: 13px 14px; background: var(--d-carbon2); border: 1px solid var(--d-linea); border-radius: 14px; border-bottom-left-radius: 4px; }
.dsa-escribe i { width: 7px; height: 7px; border-radius: 50%; background: var(--d-suave); animation: dsa-punto 1s infinite ease-in-out; }
.dsa-escribe i:nth-child(2) { animation-delay: .15s; } .dsa-escribe i:nth-child(3) { animation-delay: .3s; }
@keyframes dsa-punto { 0%, 80%, 100% { opacity: .25; transform: translateY(0); } 40% { opacity: 1; transform: translateY(-3px); } }

.dsa-sug { display: flex; flex-wrap: wrap; gap: 8px; padding: 2px 14px 10px; }
.dsa-sug button { border: 1px solid var(--d-linea); background: transparent; color: var(--d-blanco); border-radius: 999px; padding: 9px 14px; font: 600 13.5px/1.2 Inter, sans-serif; cursor: pointer; min-height: 40px; text-align: left; }
.dsa-sug button:hover { border-color: var(--d-amarillo); color: var(--d-amarillo); }
.dsa-sug button:focus-visible { outline: 3px solid var(--d-amarillo); outline-offset: 2px; }

.dsa-form { display: flex; align-items: flex-end; gap: 8px; padding: 10px 12px; border-top: 1px solid var(--d-linea); background: var(--d-negro); }
.dsa-form textarea { overflow-y: hidden; flex: 1; min-width: 0; resize: none; max-height: 110px; min-height: 44px; padding: 11px 13px; border: 1px solid var(--d-linea); border-radius: 12px; background: var(--d-carbon); color: var(--d-blanco); font: 400 16px/1.35 Inter, system-ui, sans-serif; }
.dsa-form textarea::placeholder { color: var(--d-suave); }
.dsa-form textarea:focus { outline: 2px solid var(--d-amarillo); outline-offset: 0; border-color: transparent; }
.dsa-form button { flex: none; width: 46px; height: 46px; border: 0; border-radius: 12px; cursor: pointer; background: var(--d-amarillo); color: var(--d-negro); display: grid; place-items: center; }
.dsa-form button:hover { filter: brightness(1.08); }
.dsa-form button:disabled { opacity: .5; cursor: default; }
.dsa-form button:focus-visible { outline: 3px solid var(--d-blanco); outline-offset: 2px; }
.dsa-form button svg { width: 22px; height: 22px; }
.dsa-pie { padding: 0 14px 10px; background: var(--d-negro); font-size: 11.5px; color: var(--d-suave); text-align: center; }
.dsa-trampa { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }

/* Celular: la ventana ocupa casi toda la pantalla */
@media (max-width: 520px) {
  .dsa-panel { right: 8px; left: 8px; bottom: max(8px, env(safe-area-inset-bottom, 0px)); width: auto; height: min(calc(100svh - 16px), 640px); border-radius: 16px; }
  .dsa-btn { min-height: 52px; padding: 0 18px 0 14px; }
}
@media (prefers-reduced-motion: reduce) {
  .dsa-btn, .dsa.abierto .dsa-panel, .dsa-escribe i { animation: none !important; transition: none !important; }
  .dsa-msgs { scroll-behavior: auto; }
}
