:root {
  --pk-plum: #311e33;
  --pk-gold: #eebd4a;
  --pk-ivory: #f3e8d0;
  --pk-charcoal: #171418;
  --pk-white: #fffdf8;
  --pk-muted: #756b74;
  --pk-shadow: 0 22px 70px rgba(23, 20, 24, .28);
}

.pk-launcher {
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 99998;
  border: 1px solid rgba(238, 189, 74, .6);
  border-radius: 999px;
  padding: 13px 18px;
  background: linear-gradient(135deg, var(--pk-plum), #4b2c50 58%, #241426);
  color: var(--pk-white);
  box-shadow: var(--pk-shadow), inset 0 1px 0 rgba(255,255,255,.18);
  min-height: 56px;
  font: 700 16px/1.3 Montserrat, Arial, sans-serif;
  letter-spacing: .02em;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 10px;
}

.pk-launcher[aria-expanded="true"] { display: none; }

.pk-launcher-dot {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: var(--pk-charcoal);
  background: radial-gradient(circle at 35% 25%, #fff4bf, var(--pk-gold) 58%, #a87517);
  box-shadow: 0 0 0 3px rgba(238,189,74,.12), inset 0 1px 1px rgba(255,255,255,.8);
}

.pk-panel {
  position: fixed;
  right: 22px;
  bottom: 82px;
  z-index: 99999;
  width: min(440px, calc(100vw - 24px));
  height: min(700px, calc(100dvh - 110px));
  border-radius: 22px;
  overflow: hidden;
  background: var(--pk-white);
  color: var(--pk-charcoal);
  border: 1px solid rgba(49,30,51,.14);
  box-shadow: var(--pk-shadow);
  display: none;
  grid-template-rows: auto minmax(0, 1fr) auto;
}

.pk-panel.pk-open { display: grid; }

.pk-header {
  padding: 15px 16px;
  background:
    radial-gradient(circle at 85% 0%, rgba(238,189,74,.26), transparent 34%),
    linear-gradient(135deg, var(--pk-charcoal), var(--pk-plum));
  color: var(--pk-white);
  display: flex;
  gap: 12px;
  align-items: center;
  border-bottom: 1px solid rgba(238,189,74,.38);
}

.pk-avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  flex: 0 0 44px;
  display: grid;
  place-items: center;
  background: radial-gradient(circle at 35% 25%, #fff4bf, var(--pk-gold) 58%, #a87517);
  color: var(--pk-charcoal);
  font: 800 14px/1 Montserrat, Arial, sans-serif;
  box-shadow: 0 0 0 3px rgba(255,255,255,.08);
}

.pk-title { min-width: 0; flex: 1; }
.pk-title strong { display: block; font: 700 16px/1.25 Montserrat, Arial, sans-serif; }
.pk-title span { display: block; opacity: .82; margin-top: 2px; font: 500 14px/1.35 Montserrat, Arial, sans-serif; }
.pk-close { width: 48px; height: 48px; flex: 0 0 48px; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; background: rgba(255,255,255,.08); color: inherit; font-size: 28px; line-height: 1; cursor: pointer; padding: 0; opacity: 1; }

.pk-body {
  overflow-y: auto;
  padding: 18px 14px 20px;
  background:
    linear-gradient(rgba(255,253,248,.94), rgba(255,253,248,.94)),
    radial-gradient(circle at 10% 5%, rgba(238,189,74,.2), transparent 32%);
}

.pk-message {
  max-width: 88%;
  margin: 0 0 12px;
  padding: 11px 13px;
  border-radius: 15px;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  font: 500 16px/1.6 Montserrat, Arial, sans-serif;
}

.pk-message.assistant {
  background: #f4eee3;
  border: 1px solid rgba(49,30,51,.09);
  border-top-left-radius: 5px;
}

.pk-message.user {
  margin-left: auto;
  background: var(--pk-plum);
  color: var(--pk-white);
  border-top-right-radius: 5px;
}

.pk-suggestions { display: flex; flex-wrap: wrap; gap: 7px; margin: 4px 0 14px; }
.pk-suggestion {
  border: 1px solid rgba(49,30,51,.2);
  background: #fff;
  color: var(--pk-plum);
  border-radius: 999px;
  padding: 8px 10px;
  cursor: pointer;
  min-height: 46px;
  font: 600 14px/1.35 Montserrat, Arial, sans-serif;
}

.pk-sources {
  max-width: 88%;
  margin: -6px 0 12px;
  color: var(--pk-muted);
  font: 500 13px/1.45 Montserrat, Arial, sans-serif;
}

.pk-typing { opacity: .6; font-style: italic; }

.pk-footer {
  padding: 10px;
  border-top: 1px solid rgba(49,30,51,.12);
  background: #fff;
}

.pk-form { display: grid; grid-template-columns: 1fr auto; gap: 8px; align-items: end; }
.pk-input {
  width: 100%;
  min-height: 52px;
  max-height: 120px;
  resize: none;
  border: 1px solid rgba(49,30,51,.22);
  border-radius: 13px;
  padding: 11px 12px;
  outline: none;
  color: var(--pk-charcoal);
  background: #fff;
  font: 500 17px/1.5 Montserrat, Arial, sans-serif;
  box-sizing: border-box;
}
.pk-input:focus { border-color: var(--pk-gold); box-shadow: 0 0 0 3px rgba(238,189,74,.16); }
.pk-send {
  width: 52px;
  height: 52px;
  border: 0;
  border-radius: 13px;
  cursor: pointer;
  background: linear-gradient(135deg, var(--pk-gold), #d39a25);
  color: var(--pk-charcoal);
  font-size: 19px;
  font-weight: 800;
}
.pk-send:disabled { opacity: .45; cursor: wait; }
.pk-disclaimer { margin: 9px 4px 0; color: #5f5660; text-align: center; font: 500 13px/1.45 Montserrat, Arial, sans-serif; }
.pk-disclaimer a { color: var(--pk-plum); font-weight: 700; text-underline-offset: 2px; }
.pk-safety { display: block; margin-top: 4px; }

@media (max-width: 520px) {
  .pk-launcher {
    right: 12px;
    bottom: max(18px, calc(env(safe-area-inset-bottom, 0px) + 12px));
  }
  .pk-panel {
    top: max(10px, calc(env(safe-area-inset-top, 0px) + 8px));
    right: 6px;
    bottom: max(10px, calc(env(safe-area-inset-bottom, 0px) + 8px));
    width: calc(100vw - 12px);
    height: auto;
    max-height: calc(100dvh - max(20px, env(safe-area-inset-top, 0px)) - max(20px, env(safe-area-inset-bottom, 0px)));
    border-radius: 18px;
  }

  .pk-header { padding: 12px 13px; }
  .pk-body { padding: 16px 13px 18px; }
  .pk-footer { padding: 10px 10px 12px; }
}
