/* Sebastian compact presentation layer.
   Keeps web results concise so the same information hierarchy can map cleanly to WhatsApp. */

.wa-avatar {
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  border-radius: 50%;
  overflow: hidden;
  background: #15130f;
  border: 1px solid rgba(210, 169, 86, .55);
  box-shadow: 0 1px 5px rgba(0,0,0,.18);
  display: grid;
  place-items: center;
}

.wa-avatar img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
  padding: 2px;
}

.wa-header {
  min-height: 60px;
  padding: 8px 16px;
  background: linear-gradient(135deg, #16130f, #282015);
  border-bottom: 1px solid rgba(210, 169, 86, .48);
}

.wa-status { color: rgba(238, 213, 164, .82); }

.chat { padding-top: 14px; padding-bottom: 14px; }
.message { margin-bottom: 8px; }

.welcome-bubble {
  width: auto !important;
  min-height: 0 !important;
  height: auto !important;
  padding: 8px 10px 15px !important;
  white-space: normal;
}

.welcome-title { font-size: 14px; line-height: 1.25; }
.welcome-text { margin-top: 2px; font-size: 12px; line-height: 1.38; }
.welcome-text small { font-size: 11px; }

/* Conversation rhythm: closer to a messaging product than a dashboard. */
.message.assistant .bubble {
  width: min(680px, 78vw);
  max-width: 680px;
}

.message.user .bubble {
  max-width: min(620px, 72vw);
}

.assistant-intro {
  margin-bottom: 6px !important;
  padding: 2px 2px 5px !important;
  line-height: 1.35;
  font-size: 12px;
}

.hotel-card,
.wine-card {
  margin: 0 0 6px !important;
  border-radius: 10px !important;
  box-shadow: none !important;
}

.hotel-content,
.wine-content {
  padding: 9px 10px !important;
}

.hotel-card-header,
.wine-card-header {
  gap: 8px;
  align-items: flex-start;
  margin-bottom: 4px !important;
}

.hotel-card-title,
.wine-card-title {
  font-size: 14px !important;
  line-height: 1.32 !important;
  margin-bottom: 2px !important;
}

.wine-producer,
.hotel-rank,
.welcome-time {
  font-size: 11px !important;
}

.wine-producer { margin-top: 1px !important; line-height: 1.25; }

.wine-score,
.hotel-score {
  flex: 0 0 auto;
  font-size: 11px !important;
  padding: 3px 6px !important;
}

.wine-meta,
.hotel-amenities,
.wine-pairings {
  gap: 4px !important;
  margin: 4px 0 0 !important;
}

.wine-tag,
.amenity-tag {
  font-size: 10px !important;
  padding: 3px 6px !important;
}

.hotel-description,
.wine-description {
  font-size: 12px !important;
  line-height: 1.35 !important;
  margin: 5px 0 0 !important;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}

.hotel-card.expanded .hotel-description,
.wine-card.expanded .wine-description {
  display: block;
  overflow: visible;
}

.hotel-image,
.wine-image,
.wine-section-title,
.wine-pairings,
.hotel-card-footer,
.wine-card-footer {
  display: none !important;
}

.hotel-card.expanded .hotel-image,
.wine-card.expanded .wine-image {
  display: block !important;
  height: 140px !important;
  object-fit: cover;
}

.wine-card.expanded .wine-section-title,
.wine-card.expanded .wine-pairings,
.hotel-card.expanded .hotel-card-footer,
.wine-card.expanded .wine-card-footer {
  display: flex !important;
}

.hotel-card-footer {
  margin-top: 9px !important;
  padding-top: 8px !important;
}

.compact-card-action {
  margin-top: 5px;
  border: 0;
  background: transparent;
  padding: 2px 0;
  color: #6f542f;
  font-size: 11px;
  font-weight: 600;
}

.compact-list-action {
  width: 100%;
  margin: 6px 0 2px;
  border: 1px solid #ddd4c8;
  border-radius: 10px;
  background: #fff;
  color: #625b52;
  padding: 7px 10px;
  font-size: 11px;
  font-weight: 600;
}

.compact-hidden-result {
  display: none !important;
}

.compact-results-group { display: contents; }

.wine-results-controls { margin-top: 6px !important; }
.wine-results-controls:empty { display: none; }
.wine-results-controls .load-more-button {
  width: 100%;
  min-height: 0;
  margin: 0;
  padding: 7px 10px;
  border: 1px solid #ddd4c8;
  border-radius: 10px;
  background: #fff;
  color: #625b52;
  font-size: 11px;
  font-weight: 600;
}

/* Avoid a second visual language inside recommendation_list responses. */
.message.assistant .hotel-card .hotel-description {
  color: #4d5358;
}

@media (max-width: 720px) {
  .message.assistant .bubble,
  .message.user .bubble {
    width: auto;
    max-width: 88vw;
  }

  .hotel-content,
  .wine-content {
    padding: 8px 9px !important;
  }

  .hotel-description,
  .wine-description {
    -webkit-line-clamp: 1;
  }

  .chat { padding: 10px 9px; }
  .wa-header { min-height: 56px; padding: 7px 10px; }
  .wa-header-actions { display: none; }
}
