/* ==========================================================================
   Asistent — plutajući widget
   Spremnik nema pointer-events, pa kursor normalno radi preko cijele stranice.
   Samo gumb i otvoreni panel primaju klikove.
   ========================================================================== */

.assistant {
  position: fixed;
  right: clamp(0.9rem, 2.2vw, 1.75rem);
  bottom: clamp(0.9rem, 2.2vw, 1.75rem);
  z-index: 150;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.75rem;
  pointer-events: none; /* ključno: spremnik ne hvata kursor */
  font-family: var(--f-body);
}

.assistant > * { pointer-events: auto; }
.assistant__panel[hidden] { display: none; }

/* ---------- Gumb ---------- */
.assistant__launch {
  order: 2;
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.85rem 1.25rem;
  min-height: 50px;
  background: var(--c-assistant-bg, var(--c-ink));
  color: var(--c-assistant-fg, var(--c-bg));
  border: 1px solid var(--c-assistant-bg, var(--c-ink));
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  cursor: pointer;
  box-shadow: 0 12px 34px -14px rgba(0, 0, 0, 0.45);
  transition: transform 0.35s var(--ease), box-shadow 0.35s var(--ease);
}
.assistant__launch:hover { transform: translateY(-2px); box-shadow: 0 18px 40px -16px rgba(0, 0, 0, 0.5); }
.assistant__launch-icon { display: grid; place-items: center; width: 20px; height: 20px; flex: none; }
.assistant__launch-icon svg { width: 20px; height: 20px; }
.assistant.is-open .assistant__launch-text { display: none; }
.assistant.is-open .assistant__launch { padding: 0.85rem; border-radius: 50%; }

/* ---------- Panel ---------- */
.assistant__panel {
  order: 1;
  width: min(370px, calc(100vw - 2rem));
  max-height: min(560px, calc(100dvh - 7rem));
  display: flex;
  flex-direction: column;
  background: var(--c-bg);
  color: var(--c-ink);
  border: 1px solid var(--c-line-strong);
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 28px 70px -28px rgba(0, 0, 0, 0.5);
}

.assistant__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.1rem 1.25rem;
  background: var(--c-assistant-bg, var(--c-ink));
  color: var(--c-assistant-fg, var(--c-bg));
}
.assistant__title { margin: 0; font-size: 0.95rem; font-weight: 700; letter-spacing: 0.02em; line-height: 1.3; }
.assistant__sub { margin: 0.2rem 0 0; font-size: 0.75rem; line-height: 1.4; opacity: 0.8; }
.assistant__close {
  background: none; border: 0; color: inherit; font-size: 1.5rem; line-height: 1;
  cursor: pointer; padding: 0.15rem 0.35rem; border-radius: 4px; opacity: 0.85;
}
.assistant__close:hover { opacity: 1; }

.assistant__log {
  flex: 1;
  overflow-y: auto;
  padding: 1.1rem 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  background: var(--c-surface);
  scrollbar-width: thin;
}

.assistant__msg {
  max-width: 88%;
  padding: 0.75rem 0.95rem;
  border-radius: 12px;
  font-size: 0.875rem;
  line-height: 1.6;
}
.assistant__msg p { margin: 0 0 0.6em; }
.assistant__msg p:last-child { margin-bottom: 0; }
.assistant__msg ul { margin: 0.4em 0 0.6em; padding-left: 1.15em; }
.assistant__msg li { margin-bottom: 0.3em; }
.assistant__msg a { color: var(--c-accent-ink); text-underline-offset: 3px; }
.assistant__msg strong { font-weight: 700; }

.assistant__msg--bot {
  align-self: flex-start;
  background: var(--c-bg);
  border: 1px solid var(--c-line);
  border-bottom-left-radius: 3px;
}
.assistant__msg--me {
  align-self: flex-end;
  background: var(--c-assistant-bg, var(--c-ink));
  color: var(--c-assistant-fg, var(--c-bg));
  border-bottom-right-radius: 3px;
}
.assistant__msg--me a { color: inherit; }

.assistant__dots { display: inline-flex; gap: 4px; padding: 2px 0; }
.assistant__dots i {
  width: 6px; height: 6px; border-radius: 50%; background: var(--c-muted);
  animation: assistant-dot 1.1s infinite ease-in-out;
}
.assistant__dots i:nth-child(2) { animation-delay: 0.16s; }
.assistant__dots i:nth-child(3) { animation-delay: 0.32s; }
@keyframes assistant-dot { 0%, 60%, 100% { opacity: 0.28; } 30% { opacity: 1; } }

.assistant__chips {
  display: flex; flex-wrap: wrap; gap: 0.4rem;
  padding: 0 1.25rem;
  background: var(--c-surface);
}
.assistant__chips:not(:empty) { padding-bottom: 0.9rem; }
.assistant__chip {
  background: var(--c-bg);
  border: 1px solid var(--c-line-strong);
  border-radius: 999px;
  padding: 0.45rem 0.85rem;
  font-family: inherit;
  font-size: 0.75rem;
  line-height: 1.35;
  color: var(--c-ink);
  cursor: pointer;
  text-align: left;
  transition: background 0.3s var(--ease), border-color 0.3s var(--ease);
}
.assistant__chip:hover { background: var(--c-assistant-bg, var(--c-ink)); color: var(--c-assistant-fg, var(--c-bg)); border-color: transparent; }

.assistant__form {
  display: flex; align-items: center; gap: 0.5rem;
  padding: 0.75rem 0.85rem 0.75rem 1.1rem;
  border-top: 1px solid var(--c-line);
  background: var(--c-bg);
}
.assistant__input {
  flex: 1; min-width: 0;
  border: 0; background: none; outline: none;
  font-family: inherit; font-size: 0.875rem; color: var(--c-ink);
  padding: 0.55rem 0;
}
.assistant__input::placeholder { color: var(--c-muted); }
.assistant__input:focus-visible { outline: none; }
.assistant__form:focus-within { box-shadow: inset 0 0 0 2px var(--c-focus); border-radius: 0 0 13px 13px; }
.assistant__send {
  flex: none; width: 38px; height: 38px; border-radius: 50%;
  display: grid; place-items: center; cursor: pointer;
  background: var(--c-assistant-bg, var(--c-ink));
  color: var(--c-assistant-fg, var(--c-bg));
  border: 0;
}
.assistant__send svg { width: 17px; height: 17px; }
.assistant__send:hover { opacity: 0.88; }

@media (max-width: 560px) {
  .assistant__panel { width: calc(100vw - 1.8rem); max-height: calc(100dvh - 6.5rem); }
  .assistant__launch-text { display: none; }
  .assistant__launch { padding: 0.9rem; border-radius: 50%; }
}

@media print { .assistant { display: none; } }
