:root {
  --jerome-indigo: #4f46a5;
  --jerome-indigo-dark: #373078;
  --jerome-lavender: #f2efff;
  --jerome-ink: #242335;
  --jerome-muted: #66657a;
  --jerome-white: #fff;
  --jerome-danger: #9b1c1c;
  --jerome-shadow: 0 16px 48px rgba(35, 32, 75, .22);
}

.pvl-jerome *, .pvl-jerome *::before, .pvl-jerome *::after { box-sizing: border-box; }
.pvl-jerome { font-family: inherit; color: var(--jerome-ink); }
.pvl-jerome__launcher {
  position: fixed; right: 20px; bottom: 20px; z-index: 99998;
  display: flex; align-items: center; gap: 10px; min-height: 52px;
  border: 0; border-radius: 999px; padding: 7px 16px 7px 7px;
  background: var(--jerome-indigo); color: var(--jerome-white);
  box-shadow: var(--jerome-shadow); cursor: pointer; font: inherit; font-weight: 700;
}
.pvl-jerome__launcher:hover, .pvl-jerome__launcher:focus-visible { background: var(--jerome-indigo-dark); }
.pvl-jerome__launcher img { width: 38px; height: 38px; border-radius: 50%; object-fit: cover; background: #fff; }
.pvl-jerome__panel {
  position: fixed; right: 20px; bottom: 84px; z-index: 99999;
  width: min(390px, calc(100vw - 28px)); height: min(650px, calc(100dvh - 110px));
  display: none; grid-template-rows: auto 1fr auto;
  overflow: hidden; border: 1px solid rgba(79,70,165,.16); border-radius: 20px;
  background: var(--jerome-white); box-shadow: var(--jerome-shadow);
}
.pvl-jerome__panel[aria-hidden="false"] { display: grid; }
.pvl-jerome__header { display: flex; align-items: center; gap: 11px; padding: 13px 14px; background: var(--jerome-lavender); }
.pvl-jerome__avatar { width: 46px; height: 46px; border-radius: 50%; object-fit: cover; background: #fff; }
.pvl-jerome__identity { flex: 1; min-width: 0; }
.pvl-jerome__identity strong, .pvl-jerome__identity span { display: block; }
.pvl-jerome__identity span { color: var(--jerome-muted); font-size: 12px; margin-top: 1px; }
.pvl-jerome__close { border: 0; background: transparent; color: var(--jerome-ink); width: 38px; height: 38px; border-radius: 50%; cursor: pointer; font-size: 24px; line-height: 1; }
.pvl-jerome__close:hover, .pvl-jerome__close:focus-visible { background: rgba(79,70,165,.1); }
.pvl-jerome__messages { overflow-y: auto; padding: 16px; scroll-behavior: smooth; background: linear-gradient(#fff, #fcfbff); }
.pvl-jerome__message { max-width: 88%; margin: 0 0 10px; padding: 11px 13px; border-radius: 15px; white-space: pre-line; line-height: 1.45; font-size: 14px; }
.pvl-jerome__message--bot { background: var(--jerome-lavender); border-bottom-left-radius: 5px; }
.pvl-jerome__message--user { margin-left: auto; color: #fff; background: var(--jerome-indigo); border-bottom-right-radius: 5px; }
.pvl-jerome__message--danger { max-width: 100%; background: #fff1f1; color: var(--jerome-danger); border: 1px solid #f2b8b8; font-weight: 600; }
.pvl-jerome__actions { display: grid; gap: 8px; margin: 4px 0 14px; }
.pvl-jerome__choice, .pvl-jerome__link {
  width: 100%; border: 1px solid rgba(79,70,165,.3); border-radius: 12px;
  padding: 10px 12px; background: #fff; color: var(--jerome-indigo-dark);
  text-align: left; font: inherit; font-size: 13px; font-weight: 650; cursor: pointer; text-decoration: none;
}
.pvl-jerome__choice:hover, .pvl-jerome__choice:focus-visible, .pvl-jerome__link:hover, .pvl-jerome__link:focus-visible { background: var(--jerome-lavender); }
.pvl-jerome__link { display: block; }
.pvl-jerome__resource { margin: 4px 0 14px; padding: 12px; border-left: 4px solid var(--jerome-indigo); border-radius: 10px; background: #faf9ff; }
.pvl-jerome__resource small { display: block; margin-bottom: 5px; color: var(--jerome-muted); }
.pvl-jerome__footer { border-top: 1px solid #eceaf6; padding: 10px 12px; background: #fff; }
.pvl-jerome__footer p { margin: 0; color: var(--jerome-muted); font-size: 11px; text-align: center; }
.pvl-jerome__form { display: grid; gap: 8px; margin: 4px 0 14px; }
.pvl-jerome__form label { font-size: 12px; font-weight: 650; }
.pvl-jerome__form input, .pvl-jerome__form textarea, .pvl-jerome__form select {
  width: 100%; border: 1px solid #c9c6d8; border-radius: 10px; padding: 10px; font: inherit; font-size: 14px; background: #fff;
}
.pvl-jerome__form textarea { min-height: 84px; resize: vertical; }
.pvl-jerome__form button { border: 0; border-radius: 11px; padding: 11px 14px; background: var(--jerome-indigo); color: #fff; font: inherit; font-weight: 700; cursor: pointer; }
.pvl-jerome__form button:disabled { opacity: .55; cursor: wait; }
.pvl-jerome__consent { display: flex; align-items: flex-start; gap: 7px; font-size: 11px !important; font-weight: 400 !important; }
.pvl-jerome__consent input { width: auto; margin-top: 3px; }
.pvl-jerome__captcha { max-width: 100%; overflow: hidden; min-height: 78px; }
.pvl-jerome__captcha .h-captcha { transform-origin: left top; }
.pvl-jerome__notice { color: var(--jerome-muted); font-size: 11px; line-height: 1.4; }
.pvl-jerome__typing { color: var(--jerome-muted); font-size: 12px; margin: 0 0 10px; }
.pvl-jerome__sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

@media (max-width: 600px) {
  .pvl-jerome__launcher { right: 12px; bottom: 12px; min-height: 46px; padding-right: 13px; font-size: 13px; }
  .pvl-jerome__launcher img { width: 34px; height: 34px; }
  .pvl-jerome__panel { inset: auto 7px 67px 7px; width: auto; height: min(78dvh, 680px); border-radius: 17px; }
  .pvl-jerome__message { max-width: 94%; }
  .pvl-jerome__captcha .h-captcha { transform: scale(.9); margin-bottom: -8px; }
}

@media (prefers-reduced-motion: reduce) {
  .pvl-jerome__messages { scroll-behavior: auto; }
}
