/* Asistente guiado: un botón discreto que abre un panel, sin competir con el mapa. */
.trip-chat { position: fixed; right: 1rem; bottom: 1rem; z-index: 900; display: flex; flex-direction: column; align-items: flex-end; gap: .6rem; }
.trip-chat [hidden], .trip-chat[hidden] { display: none !important; }
.trip-chat-toggle {
  width: 48px;
  min-height: 48px;
  height: 48px;
  padding: 0;
  border-radius: 50%;
  border-color: var(--linea-fuerte);
  background: var(--panel);
  box-shadow: var(--sombra);
  color: var(--acento);
  font-size: 1.1rem;
}
.trip-chat-toggle .trip-chat-label {
  position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap;
}
.trip-chat-panel {
  display: flex;
  flex-direction: column;
  width: min(380px, calc(100vw - 2rem));
  max-height: min(70dvh, 620px);
  overflow: hidden;
  border: 1px solid var(--linea);
  border-radius: var(--radio-l);
  background: var(--panel);
  box-shadow: var(--sombra-flotante);
}
.trip-chat-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding: .9rem 1rem .6rem; }
.trip-chat-eyebrow { color: var(--texto-3); font-family: var(--fuente-mono); font-size: .6875rem; letter-spacing: .04em; }
.trip-chat-header h2 { font-size: 1rem; }
.trip-chat-header button { width: 36px; min-height: 36px; padding: 0; border-color: transparent; background: transparent; font-size: 1.25rem; }
.trip-chat-notice { padding: 0 1rem .6rem; border-bottom: 1px solid var(--linea); color: var(--texto-3); font-size: .75rem; }
.trip-chat-log { flex: 1; display: flex; flex-direction: column; gap: .5rem; min-height: 100px; padding: .75rem 1rem; overflow-y: auto; }
.trip-chat-message {
  align-self: flex-start;
  max-width: 92%;
  padding: .5rem .7rem;
  border-radius: var(--radio);
  background: var(--panel-2);
  font-size: .875rem;
  white-space: pre-line;
}
.trip-chat-message-user { align-self: flex-end; background: var(--acento-suave); color: var(--texto); }
.trip-chat-options { display: flex; flex-wrap: wrap; gap: .35rem; padding: .25rem 1rem .75rem; }
.trip-chat-options button, .trip-chat-options a {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  padding: .3rem .65rem;
  border: 1px solid var(--linea-fuerte);
  border-radius: var(--radio-s);
  background: var(--panel);
  color: var(--texto);
  font-size: .8125rem;
  font-weight: 500;
  text-decoration: none;
}
.trip-chat-options button:hover, .trip-chat-options a:hover { background: var(--panel-3); }
.trip-chat-footer { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .5rem 1rem; border-top: 1px solid var(--linea); color: var(--texto-3); font-size: .75rem; }
.trip-chat-footer button { min-height: 32px; padding: .2rem .5rem; border-color: transparent; background: transparent; color: var(--acento); font-size: .75rem; }
@media (max-width: 860px) {
  .trip-chat-options button, .trip-chat-options a, .trip-chat-footer button, .trip-chat-header button { min-height: 44px; }
}
