#polly-widget { position: fixed; right: 22px; bottom: 22px; z-index: 500; font-family: var(--font-body); }
#polly-fab {
  width: 60px; height: 60px; border-radius: 50%; border: 2px solid var(--gold-accent);
  background: var(--card-bg); backdrop-filter: blur(10px); cursor: pointer; padding: 6px;
  box-shadow: var(--shadow-elevated); transition: transform .2s ease;
}
#polly-fab:hover { transform: translateY(-3px) scale(1.03); }
#polly-fab img { width: 100%; height: 100%; object-fit: contain; border-radius: 50%; }

.polly-panel[hidden] { display: none !important; }
.polly-panel {
  position: absolute; right: 0; bottom: 74px; width: 320px; max-height: 460px;
  background: var(--surface-bright); border: 1px solid var(--card-border); border-radius: var(--radius-lg);
  box-shadow: var(--shadow-elevated); display: flex; flex-direction: column; overflow: hidden;
  animation: polly-in .22s ease;
}
@keyframes polly-in { from { opacity: 0; transform: translateY(10px);} to { opacity: 1; transform: translateY(0);} }
.polly-panel-head { display: flex; align-items: center; gap: 10px; padding: 14px 16px; border-bottom: 1px solid var(--card-border); }
.polly-panel-head img { width: 32px; height: 32px; border-radius: 50%; object-fit: contain; }
.polly-panel-head div { flex: 1; display: flex; flex-direction: column; line-height: 1.2; }
.polly-panel-head span { font-size: 11px; color: var(--on-surface-variant); }
.polly-panel-head button { background: none; border: none; font-size: 20px; cursor: pointer; color: var(--on-surface-variant); }

.polly-thread { flex: 1; overflow-y: auto; padding: 14px 16px; display: flex; flex-direction: column; gap: 10px; min-height: 160px; }
.polly-msg { max-width: 84%; padding: 10px 13px; border-radius: 14px; font-size: 13px; line-height: 1.45; }
.polly-msg-bot { align-self: flex-start; background: var(--toggle-bg); border-bottom-left-radius: 4px; }
.polly-msg-user { align-self: flex-end; background: var(--gold-accent); color: #17130a; border-bottom-right-radius: 4px; }

.polly-suggest { display: flex; flex-wrap: wrap; gap: 6px; padding: 0 16px 10px; }
.polly-suggest .chip { font-size: 10px; padding: 5px 10px; }

.polly-form { display: flex; gap: 8px; padding: 12px; border-top: 1px solid var(--card-border); }
.polly-form .input { flex: 1; padding: 9px 12px; font-size: 13px; }

@media (max-width: 480px) {
  .polly-panel { width: calc(100vw - 32px); right: -6px; }
}
