.ai-assistant-launcher {
  position: fixed;
  z-index: 121;
  left: 1rem;
  bottom: calc(1rem + env(safe-area-inset-bottom));
  display: inline-flex;
  align-items: center;
  gap: .65rem;
  min-height: 52px;
  padding: .7rem 1rem;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 999px;
  color: #fff;
  background: rgba(23,23,19,.96);
  box-shadow: 0 16px 44px rgba(0,0,0,.26);
  font: 800 .8rem/1.1 var(--sans, Arial, sans-serif);
  cursor: pointer;
  backdrop-filter: blur(14px);
}
.ai-assistant-launcher::before { content: ''; width: 9px; height: 9px; border-radius: 50%; background: #4aa66c; box-shadow: 0 0 0 4px rgba(74,166,108,.16); }
.ai-assistant-launcher[aria-expanded="true"] { visibility: hidden; }

.ai-assistant-panel {
  position: fixed;
  z-index: 170;
  right: 5.6rem;
  left: auto;
  bottom: calc(1rem + env(safe-area-inset-bottom));
  display: grid;
  grid-template-rows: auto minmax(0,1fr) auto;
  width: min(410px, calc(100vw - 2rem));
  height: min(680px, calc(100dvh - 2rem));
  overflow: hidden;
  border: 1px solid rgba(23,23,19,.18);
  border-radius: 1.25rem;
  color: #171713;
  background: #f5f0e9;
  box-shadow: 0 28px 80px rgba(0,0,0,.3);
  transform: translateY(16px) scale(.98);
  opacity: 0;
  visibility: hidden;
  transition: opacity .2s ease, transform .2s ease, visibility .2s;
  contain: layout paint;
}
.ai-assistant-panel.is-open { transform: none; opacity: 1; visibility: visible; }
.ai-assistant-header { display: flex; align-items: center; gap: .75rem; padding: .9rem 1rem; color: #fff; background: #171713; }
.ai-assistant-identity { min-width: 0; flex: 1; }
.ai-assistant-identity strong, .ai-assistant-identity span { display: block; }
.ai-assistant-identity strong { font: 700 1rem/1.2 var(--serif, Georgia, serif); }
.ai-assistant-identity span { margin-top: .16rem; color: rgba(255,255,255,.68); font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; }
.ai-assistant-header button { width: 38px; height: 38px; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; color: #fff; background: transparent; cursor: pointer; font-size: 1.2rem; }
.ai-assistant-messages { overflow-y: auto; padding: 1rem; scroll-behavior: smooth; overscroll-behavior: contain; }
.ai-message { max-width: 88%; margin: 0 0 .75rem; padding: .78rem .9rem; border-radius: 1rem; white-space: pre-wrap; font-size: .87rem; line-height: 1.5; }
.ai-message.assistant { border-bottom-left-radius: .25rem; background: #fff; box-shadow: 0 4px 18px rgba(23,23,19,.06); }
.ai-message.user { margin-left: auto; border-bottom-right-radius: .25rem; color: #fff; background: #6c4e3a; }
.ai-message.status { max-width: 100%; padding: .35rem 0; color: #6f675f; background: transparent; font-size: .74rem; text-align: center; }
.ai-message.error { color: #8d2f27; background: #fae8e5; }
.ai-assistant-actions { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0 1rem .75rem; }
.ai-assistant-actions button { padding: .48rem .72rem; border: 1px solid rgba(23,23,19,.2); border-radius: 999px; color: #171713; background: transparent; cursor: pointer; font: 700 .72rem/1.2 var(--sans, Arial, sans-serif); }
.ai-assistant-form { padding: .75rem; border-top: 1px solid rgba(23,23,19,.12); background: rgba(255,255,255,.72); }
.ai-assistant-privacy { margin: 0 0 .55rem; color: #6f675f; font-size: .66rem; line-height: 1.35; }
.ai-assistant-privacy a { color: inherit; }
.ai-assistant-compose { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: end; gap: .42rem; }
.ai-assistant-compose textarea { width: 100%; min-height: 46px; max-height: 120px; resize: none; padding: .72rem .8rem; border: 1px solid rgba(23,23,19,.18); border-radius: .8rem; color: #171713; background: #fff; font: .86rem/1.35 var(--sans, Arial, sans-serif); }
.ai-upload-button, .ai-send-button { display: grid; place-items: center; width: 46px; height: 46px; border: 0; border-radius: .8rem; cursor: pointer; }
.ai-upload-button { border: 1px solid rgba(23,23,19,.18); background: #fff; }
.ai-send-button { color: #fff; background: #171713; font-size: 1.1rem; }
.ai-send-button:disabled, .ai-upload-button.is-disabled { cursor: wait; opacity: .5; }
.ai-upload-preview { display: flex; align-items: center; gap: .55rem; margin: 0 0 .55rem; padding: .45rem .55rem; border-radius: .65rem; background: #ece2d6; font-size: .72rem; }
.ai-upload-preview img { width: 42px; height: 42px; object-fit: cover; border-radius: .4rem; }
.ai-upload-preview button { margin-left: auto; border: 0; background: transparent; cursor: pointer; }
.ai-assistant-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }

@media (max-width: 760px) {
  .ai-assistant-launcher { left: .7rem; bottom: calc(84px + env(safe-area-inset-bottom)); min-height: 46px; padding: .62rem .8rem; }
  .ai-assistant-panel { right: .7rem; bottom: calc(78px + env(safe-area-inset-bottom)); left: .7rem; width: auto; height: min(650px, calc(100dvh - 94px - env(safe-area-inset-top))); }
}

@media (prefers-reduced-motion: reduce) {
  .ai-assistant-panel { transition: none; }
  .ai-assistant-messages { scroll-behavior: auto; }
}
