.jw-ai,
.jw-ai * { box-sizing: border-box; }

.jw-ai {
  --jw-ai-green: #9be000;
  --jw-ai-green-2: #b7ef25;
  --jw-ai-bg: #0d0f10;
  --jw-ai-panel: #111416;
  --jw-ai-card: #181c1f;
  --jw-ai-text: #f4f6f7;
  --jw-ai-muted: #939aa0;
  --jw-ai-border: rgba(255,255,255,.09);
  position: fixed;
  right: 28px;
  bottom: 68px;
  z-index: 999999;
  font-family: "Montserrat", Arial, sans-serif;
}

 .jw-ai__launcher {
  display: inline-flex;
  flex-direction: row-reverse;
  align-items: center;
  justify-content: flex-start;
  gap: 9px;
  width: 54px;
  min-width: 54px;
  height: 54px;
  min-height: 54px;
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: 999px;
  background: var(--jw-ai-green);
  color: #111;
  box-shadow: 0 10px 30px rgba(0,0,0,.24), 0 0 0 1px rgba(255,255,255,.16) inset;
  font: inherit;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .02em;
  white-space: nowrap;
  cursor: pointer;
  transform-origin: 100% 50%;
  transition: width .38s cubic-bezier(.2,.8,.2,1), background .22s ease, border-color .22s ease, transform .18s ease, box-shadow .18s ease;
}
.jw-ai__launcher:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 36px rgba(0,0,0,.30), 0 0 20px rgba(155,224,0,.20);
}
.jw-ai__launcher-icon {
  flex: 0 0 54px;
  display: grid;
  place-items: center;
  width: 54px;
  height: 54px;
  border-radius: 50%;
  background: var(--jw-ai-green);
  color: #111;
}
.jw-ai__launcher-icon svg {
  width: 25px;
  height: 25px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.75;
}
.jw-ai__launcher-label {
  display: block;
  max-width: 0;
  overflow: hidden;
  opacity: 0;
  transform: translateX(8px);
  color: #f4f6f7;
  transition: max-width .34s cubic-bezier(.2,.8,.2,1), opacity .2s ease .05s, transform .34s cubic-bezier(.2,.8,.2,1);
}
.jw-ai.jw-ai--tease .jw-ai__launcher {
  width: 154px;
  padding-left: 14px;
  border: 1px solid rgba(155,224,0,.78);
  background: #0d1011;
  box-shadow: 0 14px 38px rgba(0,0,0,.30), 0 0 24px rgba(155,224,0,.12);
}
.jw-ai.jw-ai--tease .jw-ai__launcher-label {
  max-width: 90px;
  opacity: 1;
  transform: none;
}

.jw-ai[data-open="1"] .jw-ai__launcher { display: none; }
 .jw-ai[data-open="1"] { bottom: 22px; }

.jw-ai__panel {
  width: min(410px, calc(100vw - 28px));
  height: min(690px, calc(100vh - 38px));
  overflow: hidden;
  border: 1px solid var(--jw-ai-border);
  border-radius: 20px;
  background: var(--jw-ai-panel);
  color: var(--jw-ai-text);
  box-shadow: 0 28px 90px rgba(0,0,0,.44), 0 0 0 1px rgba(155,224,0,.035) inset;
  animation: jw-ai-in .18s ease-out;
}
@keyframes jw-ai-in { from { opacity: 0; transform: translateY(10px) scale(.98); } to { opacity: 1; transform: none; } }

.jw-ai__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 72px;
  padding: 0 15px 0 17px;
  border-bottom: 1px solid var(--jw-ai-border);
  background: linear-gradient(180deg, #121618 0%, #101315 100%);
}
.jw-ai__brand { display: flex; align-items: center; gap: 11px; min-width: 0; }
.jw-ai__brand-icon {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border: 1px solid rgba(155,224,0,.6);
  border-radius: 50%;
  background: rgba(155,224,0,.08);
  color: var(--jw-ai-green);
  font-size: 11px;
  font-weight: 900;
}
.jw-ai__brand strong { display: block; color: #fff; font-size: 14px; line-height: 1.2; font-weight: 800; }
.jw-ai__brand small { display: flex; align-items: center; gap: 6px; margin-top: 4px; color: #8e969b; font-size: 10px; font-weight: 600; }
.jw-ai__brand small i { width: 6px; height: 6px; border-radius: 50%; background: var(--jw-ai-green); box-shadow: 0 0 8px rgba(155,224,0,.55); }
.jw-ai__header-actions { display: flex; gap: 4px; }
.jw-ai__header-actions button {
  width: 34px; height: 34px; padding: 0; border: 0; border-radius: 10px; background: transparent; color: #a6adb2; font: inherit; font-size: 23px; line-height: 1; cursor: pointer;
}
.jw-ai__header-actions button:hover { background: rgba(255,255,255,.06); color: #fff; }
.jw-ai__reset { font-size: 18px !important; }

.jw-ai__messages {
  height: calc(100% - 72px - 55px - 68px - 30px);
  min-height: 260px;
  padding: 16px 14px 12px;
  overflow: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: #34393c transparent;
}
.jw-ai__message { display: flex; flex-direction: column; margin: 0 0 12px; }
.jw-ai__message--user { align-items: flex-end; }
.jw-ai__message--assistant { align-items: flex-start; }
.jw-ai__bubble {
  max-width: 88%;
  padding: 11px 13px;
  border-radius: 14px;
  color: #e9ecee;
  background: #202427;
  font-size: 12.5px;
  line-height: 1.48;
  font-weight: 500;
  box-shadow: 0 4px 12px rgba(0,0,0,.08);
}
.jw-ai__message--user .jw-ai__bubble { background: linear-gradient(135deg, #74ad00, #8dca00); color: #fff; border-bottom-right-radius: 5px; }
.jw-ai__message--assistant .jw-ai__bubble { border-bottom-left-radius: 5px; }

.jw-ai__typing { display: flex; gap: 5px; align-items: center; min-width: 56px; }
.jw-ai__typing i { width: 6px; height: 6px; border-radius: 50%; background: #8d969b; animation: jw-ai-dot 1s infinite ease-in-out; }
.jw-ai__typing i:nth-child(2) { animation-delay: .14s; }
.jw-ai__typing i:nth-child(3) { animation-delay: .28s; }
@keyframes jw-ai-dot { 0%, 60%, 100% { opacity: .35; transform: translateY(0); } 30% { opacity: 1; transform: translateY(-3px); } }

.jw-ai__products {
  display: flex;
  gap: 9px;
  width: 100%;
  max-width: 100%;
  margin-top: 9px;
  padding: 2px 1px 5px;
  overflow-x: auto;
  scroll-snap-type: x proximity;
  scrollbar-width: none;
}
.jw-ai__products::-webkit-scrollbar { display: none; }
.jw-ai__product {
  flex: 0 0 176px;
  scroll-snap-align: start;
  overflow: hidden;
  border: 1px solid var(--jw-ai-border);
  border-radius: 13px;
  background: #171b1d;
  color: #fff !important;
  text-decoration: none !important;
  transition: transform .18s ease, border-color .18s ease;
}
.jw-ai__product:hover { transform: translateY(-2px); border-color: rgba(155,224,0,.42); }
.jw-ai__product-media { position: relative; height: 128px; background: #f3f3f3; }
.jw-ai__product-media img { width: 100%; height: 100%; display: block; object-fit: contain; }
.jw-ai__product-media span { position: absolute; left: 8px; bottom: 7px; padding: 4px 6px; border-radius: 999px; background: #111; color: var(--jw-ai-green); font-size: 7px; font-style: normal; font-weight: 900; letter-spacing: .05em; }
.jw-ai__product-body { padding: 10px 10px 11px; }
.jw-ai__product-body strong { display: -webkit-box; min-height: 31px; overflow: hidden; -webkit-line-clamp: 2; -webkit-box-orient: vertical; color: #f5f6f7; font-size: 11px; line-height: 1.35; font-weight: 800; }
.jw-ai__product-body small { display: block; min-height: 29px; margin-top: 5px; color: #8f979c; font-size: 9px; line-height: 1.35; }
.jw-ai__product-body b { display: block; margin-top: 8px; color: #fff; font-size: 14px; font-weight: 900; }
.jw-ai__product-body em { color: #7f878c; font-size: 8px; font-style: normal; }
.jw-ai__product-link { display: block; margin-top: 8px; color: var(--jw-ai-green); font-size: 9px; font-weight: 800; }

.jw-ai__suggestions {
  display: flex;
  gap: 7px;
  height: 55px;
  padding: 8px 14px;
  overflow-x: auto;
  border-top: 1px solid rgba(255,255,255,.04);
  scrollbar-width: none;
}
.jw-ai__suggestions::-webkit-scrollbar { display: none; }
.jw-ai__suggestions button {
  flex: 0 0 auto;
  height: 36px;
  padding: 0 11px;
  border: 1px solid rgba(155,224,0,.28);
  border-radius: 10px;
  background: rgba(155,224,0,.045);
  color: #b9c0c4;
  font: inherit;
  font-size: 9.5px;
  font-weight: 700;
  cursor: pointer;
}
.jw-ai__suggestions button:hover { border-color: rgba(155,224,0,.6); color: var(--jw-ai-green); }

.jw-ai__form {
  display: flex;
  align-items: flex-end;
  gap: 9px;
  min-height: 68px;
  padding: 10px 12px;
  border-top: 1px solid var(--jw-ai-border);
  background: #0f1213;
}
.jw-ai__input {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 44px;
  max-height: 110px;
  margin: 0 !important;
  padding: 12px 13px !important;
  resize: none;
  border: 1px solid #292e31 !important;
  border-radius: 12px !important;
  outline: none !important;
  background: #181c1e !important;
  color: #f1f3f4 !important;
  box-shadow: none !important;
  font-family: inherit !important;
  font-size: 12px !important;
  line-height: 1.45 !important;
}
.jw-ai__input::placeholder { color: #6f777c; }
.jw-ai__input:focus { border-color: rgba(155,224,0,.45) !important; }
.jw-ai__send {
  flex: 0 0 44px;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 50% !important;
  background: var(--jw-ai-green) !important;
  color: #121415 !important;
  cursor: pointer;
}
.jw-ai__send:disabled { opacity: .45; cursor: default; }
.jw-ai__send svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

.jw-ai__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 30px;
  padding: 0 13px;
  background: #0c0e0f;
  color: #626a6f;
  font-size: 7.5px;
  font-weight: 600;
}
.jw-ai__footer a { color: #8fca12 !important; font-weight: 800; text-decoration: none !important; }



/* =========================================================
   v0.1.1 — WoodMart compatibility + compact layout
   ========================================================= */
.jw-ai[data-open="0"] .jw-ai__panel,
.jw-ai__panel[hidden] {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}
.jw-ai[data-open="1"] .jw-ai__panel {
  display: block !important;
  visibility: visible !important;
  pointer-events: auto !important;
}
.jw-ai[data-open="1"] .jw-ai__launcher { display: none !important; }
.jw-ai[data-open="0"] .jw-ai__launcher { display: inline-flex !important; }

.jw-ai__panel {
  width: min(360px, calc(100vw - 32px)) !important;
  height: min(520px, calc(100vh - 56px)) !important;
  border-radius: 16px !important;
}
.jw-ai__header {
  height: 58px !important;
  padding: 0 11px 0 13px !important;
}
.jw-ai__brand-icon { width: 32px !important; height: 32px !important; }
.jw-ai__brand strong { font-size: 13px !important; }
.jw-ai__brand small { margin-top: 2px !important; font-size: 8px !important; }
.jw-ai__header-actions button {
  position: relative !important;
  z-index: 5 !important;
  width: 30px !important;
  height: 30px !important;
  pointer-events: auto !important;
  touch-action: manipulation !important;
}
.jw-ai__messages {
  height: calc(100% - 58px - 45px - 58px - 24px) !important;
  min-height: 170px !important;
  padding: 12px 11px 8px !important;
}
.jw-ai__bubble {
  max-width: 90% !important;
  padding: 9px 11px !important;
  font-size: 11.5px !important;
  line-height: 1.42 !important;
}
.jw-ai__suggestions {
  height: 45px !important;
  gap: 5px !important;
  padding: 6px 10px !important;
}
.jw-ai__suggestions button {
  height: 32px !important;
  padding: 0 9px !important;
  border-radius: 8px !important;
  font-size: 8px !important;
  pointer-events: auto !important;
  touch-action: manipulation !important;
}
.jw-ai__form {
  min-height: 58px !important;
  gap: 7px !important;
  padding: 7px 9px !important;
}
.jw-ai__input {
  min-height: 40px !important;
  max-height: 88px !important;
  padding: 10px 11px !important;
  border-radius: 10px !important;
  font-size: 11.5px !important;
}
.jw-ai__send {
  flex-basis: 40px !important;
  width: 40px !important;
  height: 40px !important;
  pointer-events: auto !important;
  touch-action: manipulation !important;
}
.jw-ai__send svg { width: 19px !important; height: 19px !important; }
.jw-ai__footer {
  height: 24px !important;
  padding: 0 10px !important;
  font-size: 6.5px !important;
}
.jw-ai__product { flex-basis: 156px !important; }
.jw-ai__product-media { height: 108px !important; }





/* =========================================================
   v0.1.3 — FINAL launcher override
   ========================================================= */
.jw-ai[data-open="0"] .jw-ai__launcher {
  width: 54px !important;
  min-width: 54px !important;
  height: 54px !important;
  min-height: 54px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: var(--jw-ai-green) !important;
}
.jw-ai[data-open="0"] .jw-ai__launcher-icon {
  flex: 0 0 54px !important;
  width: 54px !important;
  height: 54px !important;
  background: var(--jw-ai-green) !important;
  color: #111 !important;
}
.jw-ai[data-open="0"] .jw-ai__launcher-label {
  max-width: 0 !important;
  opacity: 0 !important;
  transform: translateX(8px) !important;
}
.jw-ai[data-open="0"].jw-ai--tease .jw-ai__launcher {
  width: 154px !important;
  padding-left: 14px !important;
  border: 1px solid rgba(155,224,0,.78) !important;
  background: #0d1011 !important;
}
.jw-ai[data-open="0"].jw-ai--tease .jw-ai__launcher-label {
  max-width: 90px !important;
  opacity: 1 !important;
  transform: none !important;
}


\n\n/* =========================================================\n   v0.1.6 — compact UI, clean carousel, overlay protection\n   ========================================================= */\n.jw-ai { z-index: 2147483000 !important; }\n.jw-ai__panel { width: min(370px, calc(100vw - 24px)) !important; height: min(560px, calc(100dvh - 46px)) !important; }\n.jw-ai__messages { padding-left: 10px !important; padding-right: 10px !important; }\n.jw-ai__products {\n  gap: 8px !important;\n  margin-top: 8px !important;\n  padding: 2px 14px 7px 0 !important;\n  scroll-snap-type: x mandatory !important;\n  overscroll-behavior-x: contain;\n}\n.jw-ai__product { flex: 0 0 154px !important; border-radius: 12px !important; scroll-snap-align: start !important; }\n.jw-ai__product-media { height: 106px !important; }\n.jw-ai__product-body { padding: 9px 9px 10px !important; }\n.jw-ai__product-body strong { min-height: 30px !important; font-size: 10.5px !important; }\n.jw-ai__product-body small { min-height: 26px !important; margin-top: 4px !important; font-size: 8.5px !important; }\n.jw-ai__product-body b { margin-top: 7px !important; font-size: 13px !important; }\n.jw-ai__product-body em { font-size: 7.5px !important; }\n.jw-ai__product-link { margin-top: 7px !important; font-size: 8px !important; }\n.jw-ai__suggestions { height: 39px !important; padding: 4px 9px !important; gap: 5px !important; }\n.jw-ai__suggestions button { height: 30px !important; padding: 0 8px !important; font-size: 7.5px !important; border-radius: 8px !important; }\n.jw-ai__form { min-height: 54px !important; padding: 6px 8px !important; gap: 7px !important; position: relative !important; z-index: 2147483001 !important; }\n.jw-ai__input { min-height: 40px !important; padding: 9px 11px !important; font-size: 11px !important; }\n.jw-ai__send { width: 40px !important; height: 40px !important; flex-basis: 40px !important; }\n.jw-ai__footer { height: 21px !important; }\n\n\n

/* =========================================================
   v0.1.7 — fresh product turns, less duplication, widget clearance
   ========================================================= */
@media (min-width: 768px) {
  .jw-ai[data-open="1"] {
    right: 92px !important;
  }
}
.jw-ai__message--assistant .jw-ai__bubble {
  max-width: 88% !important;
}
.jw-ai__message--assistant:has(.jw-ai__products) .jw-ai__bubble {
  margin-bottom: 2px !important;
}

/* =========================================================
   v0.1.8 — AI headset launcher above messenger widget
   ========================================================= */
.jw-ai {
  z-index: 2147483647 !important;
}

/* Closed state: place AI button clearly ABOVE the existing messenger widget. */
.jw-ai[data-open="0"] {
  right: 28px !important;
  bottom: 118px !important;
}

.jw-ai[data-open="0"] .jw-ai__launcher {
  display: inline-flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 12px !important;
  width: 58px !important;
  min-width: 58px !important;
  height: 58px !important;
  min-height: 58px !important;
  padding: 0 !important;
  overflow: visible !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: transparent !important;
  color: #fff !important;
  box-shadow: none !important;
  transform-origin: 100% 50% !important;
  transition: width .42s cubic-bezier(.2,.8,.2,1), transform .18s ease !important;
}

.jw-ai[data-open="0"] .jw-ai__launcher:hover {
  transform: translateY(-2px) !important;
}

.jw-ai[data-open="0"] .jw-ai__launcher-icon {
  position: relative !important;
  flex: 0 0 58px !important;
  display: grid !important;
  place-items: center !important;
  width: 58px !important;
  height: 58px !important;
  min-width: 58px !important;
  min-height: 58px !important;
  border: 1.5px solid rgba(158,235,21,.88) !important;
  border-radius: 50% !important;
  background: radial-gradient(circle at 35% 28%, #16261a 0%, #0b100d 58%, #070a08 100%) !important;
  color: #f7fff2 !important;
  box-shadow:
    0 10px 28px rgba(0,0,0,.34),
    0 0 18px rgba(155,224,0,.20),
    inset 0 0 18px rgba(155,224,0,.055) !important;
  overflow: visible !important;
}

.jw-ai[data-open="0"] .jw-ai__launcher-icon::after {
  content: "";
  position: absolute;
  inset: 3px;
  border: 1px solid rgba(255,255,255,.055);
  border-radius: 50%;
  pointer-events: none;
}

.jw-ai[data-open="0"] .jw-ai__headset {
  width: 34px !important;
  height: 34px !important;
  fill: none !important;
  stroke: #f5f7f5 !important;
  stroke-width: 2.15 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
}

.jw-ai[data-open="0"] .jw-ai__launcher-ai {
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  transform: translate(-50%, -48%) !important;
  z-index: 2 !important;
  color: #9be000 !important;
  font-family: "Montserrat", Arial, sans-serif !important;
  font-size: 10px !important;
  line-height: 1 !important;
  font-weight: 900 !important;
  letter-spacing: -.02em !important;
  text-shadow: 0 0 7px rgba(155,224,0,.28) !important;
}

.jw-ai[data-open="0"] .jw-ai__launcher-status {
  position: absolute !important;
  top: 1px !important;
  right: 1px !important;
  z-index: 4 !important;
  display: block !important;
  width: 12px !important;
  height: 12px !important;
  border: 2px solid #0b100d !important;
  border-radius: 50% !important;
  background: #9be000 !important;
  box-shadow: 0 0 10px rgba(155,224,0,.58) !important;
}

.jw-ai[data-open="0"] .jw-ai__launcher-label {
  display: block !important;
  order: 0 !important;
  max-width: 0 !important;
  margin: 0 !important;
  overflow: hidden !important;
  opacity: 0 !important;
  transform: translateX(14px) !important;
  color: #fff !important;
  font-family: "Montserrat", Arial, sans-serif !important;
  font-size: 13px !important;
  line-height: 1 !important;
  font-weight: 800 !important;
  letter-spacing: 0 !important;
  white-space: nowrap !important;
  transition: max-width .34s cubic-bezier(.2,.8,.2,1), opacity .18s ease .05s, transform .34s cubic-bezier(.2,.8,.2,1) !important;
}

/* First visit only: the label slides out to the LEFT of the round AI button. */
.jw-ai[data-open="0"].jw-ai--tease .jw-ai__launcher {
  width: 194px !important;
  padding: 0 0 0 18px !important;
  border: 1px solid rgba(155,224,0,.72) !important;
  border-radius: 999px !important;
  background: linear-gradient(90deg, rgba(10,14,11,.98), rgba(12,18,13,.96)) !important;
  box-shadow: 0 12px 34px rgba(0,0,0,.34), 0 0 19px rgba(155,224,0,.13) !important;
}

.jw-ai[data-open="0"].jw-ai--tease .jw-ai__launcher-label {
  max-width: 108px !important;
  opacity: 1 !important;
  transform: none !important;
}

/* Keep the open chat clear of the external messenger widget. */
@media (min-width: 768px) {
  .jw-ai[data-open="1"] {
    right: 92px !important;
    bottom: 22px !important;
  }
}



/* =========================================================
   v0.1.9 — launcher alignment with external messenger button
   ========================================================= */
@media (min-width: 768px) {
  /* Shift only the CLOSED AI launcher 8px left so its center
     aligns with the existing messenger widget below. */
  .jw-ai[data-open="0"] {
    right: 36px !important;
  }
}


/* =========================================================
   v0.1.12 — FINAL reference variant 4
   Button never moves; dialog overlaps the button like a real chat bubble.
   ========================================================= */

.jw-ai,
.jw-ai[data-open="0"],
.jw-ai[data-open="1"] {
  position: fixed !important;
  right: 36px !important;
  bottom: 118px !important;
  width: 58px !important;
  height: 58px !important;
  overflow: visible !important;
  z-index: 2147483647 !important;
  isolation: isolate !important;
}

/* Anchor the launcher to one immutable point. */
.jw-ai .jw-ai__launcher,
.jw-ai[data-open="0"] .jw-ai__launcher,
.jw-ai[data-open="1"] .jw-ai__launcher {
  position: absolute !important;
  right: 0 !important;
  bottom: 0 !important;
  left: auto !important;
  top: auto !important;
  z-index: 20 !important;

  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  width: 58px !important;
  min-width: 58px !important;
  height: 58px !important;
  min-height: 58px !important;
  margin: 0 !important;
  padding: 0 !important;

  appearance: none !important;
  -webkit-appearance: none !important;
  border: 0 !important;
  outline: 0 !important;
  border-radius: 999px !important;
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
  overflow: visible !important;
}

/* Kill theme button decorations that caused the white/green square in open state. */
.jw-ai .jw-ai__launcher::before,
.jw-ai .jw-ai__launcher::after {
  content: none !important;
  display: none !important;
}

.jw-ai .jw-ai__launcher-icon,
.jw-ai[data-open="0"] .jw-ai__launcher-icon,
.jw-ai[data-open="1"] .jw-ai__launcher-icon {
  position: relative !important;
  flex: 0 0 58px !important;
  display: grid !important;
  place-items: center !important;
  width: 58px !important;
  height: 58px !important;
  min-width: 58px !important;
  min-height: 58px !important;
  padding: 0 !important;
  margin: 0 !important;

  border: 1.5px solid #9be000 !important;
  border-radius: 50% !important;
  background:
    radial-gradient(circle at 34% 28%, rgba(45,75,39,.74) 0%, rgba(15,25,17,.98) 46%, #070a08 100%) !important;
  color: #fff !important;
  box-shadow:
    0 12px 30px rgba(0,0,0,.40),
    0 0 20px rgba(155,224,0,.22),
    inset 0 0 18px rgba(155,224,0,.055) !important;
  overflow: visible !important;
}

.jw-ai .jw-ai__launcher-icon::after {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  inset: 3px !important;
  border: 1px solid rgba(255,255,255,.05) !important;
  border-radius: 50% !important;
  background: transparent !important;
  pointer-events: none !important;
}

.jw-ai .jw-ai__headset {
  width: 34px !important;
  height: 34px !important;
  fill: none !important;
  stroke: #f7f9f7 !important;
  stroke-width: 2.05 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
}

.jw-ai .jw-ai__launcher-ai {
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  transform: translate(-50%, -47%) !important;
  z-index: 3 !important;
  color: #9be000 !important;
  font-family: "Montserrat", Arial, sans-serif !important;
  font-size: 10px !important;
  line-height: 1 !important;
  font-weight: 900 !important;
}

.jw-ai .jw-ai__launcher-status {
  position: absolute !important;
  top: 0 !important;
  right: 0 !important;
  z-index: 4 !important;
  display: block !important;
  width: 11px !important;
  height: 11px !important;
  border: 2px solid #0b100d !important;
  border-radius: 50% !important;
  background: #9be000 !important;
  box-shadow: 0 0 10px rgba(155,224,0,.62) !important;
}

/* One-time intro extends LEFT while the circular button stays put. */
.jw-ai[data-open="0"] .jw-ai__launcher-label {
  display: block !important;
  order: -1 !important;
  max-width: 0 !important;
  overflow: hidden !important;
  opacity: 0 !important;
  transform: translateX(10px) !important;
  color: #fff !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  white-space: nowrap !important;
}
.jw-ai[data-open="0"].jw-ai--tease .jw-ai__launcher {
  width: 194px !important;
  padding-left: 17px !important;
  gap: 10px !important;
  border: 1px solid rgba(155,224,0,.70) !important;
  background: linear-gradient(90deg, rgba(10,14,11,.98), rgba(12,18,13,.96)) !important;
  box-shadow: 0 14px 36px rgba(0,0,0,.36), 0 0 20px rgba(155,224,0,.13) !important;
}
.jw-ai[data-open="0"].jw-ai--tease .jw-ai__launcher-label {
  max-width: 108px !important;
  opacity: 1 !important;
  transform: none !important;
}
.jw-ai[data-open="1"] .jw-ai__launcher-label {
  display: none !important;
}

/* Variant 4: panel ends on the centre line of the round button and overlaps it. */
.jw-ai[data-open="1"] .jw-ai__panel {
  position: absolute !important;
  right: 29px !important;      /* panel's right edge = launcher centre */
  bottom: -30px !important;    /* round button sits on the lower-right edge */
  left: auto !important;
  top: auto !important;
  z-index: 10 !important;

  display: block !important;
  width: 360px !important;
  max-width: calc(100vw - 92px) !important;
  height: 490px !important;
  max-height: calc(100dvh - 145px) !important;

  overflow: hidden !important;
  border: 1px solid rgba(155,224,0,.72) !important;
  border-radius: 18px !important;
  background: #0e1112 !important;
  color: #f4f6f7 !important;
  box-shadow:
    0 28px 76px rgba(0,0,0,.50),
    0 0 28px rgba(155,224,0,.10),
    inset 0 0 0 1px rgba(255,255,255,.025) !important;

  transform-origin: 100% 88% !important;
  animation: jw-ai-ref4 .20s cubic-bezier(.2,.8,.2,1) !important;
}

/* The green edge continues down into the AI button, matching the reference. */
.jw-ai[data-open="1"]::before {
  content: "" !important;
  position: absolute !important;
  right: 28px !important;
  bottom: 28px !important;
  width: 1px !important;
  height: 42px !important;
  z-index: 12 !important;
  background: linear-gradient(180deg, rgba(155,224,0,.25), #9be000) !important;
  box-shadow: 0 0 8px rgba(155,224,0,.26) !important;
  pointer-events: none !important;
}

@keyframes jw-ai-ref4 {
  from { opacity: 0; transform: translateY(8px) scale(.97); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}

.jw-ai[data-open="1"] .jw-ai__header {
  height: 58px !important;
  padding: 0 12px 0 14px !important;
  border-bottom: 1px solid rgba(255,255,255,.07) !important;
  background: linear-gradient(180deg, #121617 0%, #0f1213 100%) !important;
}
.jw-ai[data-open="1"] .jw-ai__brand-icon {
  width: 33px !important;
  height: 33px !important;
}
.jw-ai[data-open="1"] .jw-ai__brand strong {
  font-size: 12.5px !important;
}
.jw-ai[data-open="1"] .jw-ai__brand small {
  font-size: 8px !important;
}

/* Four reference-style quick action rows. */
.jw-ai[data-open="1"] .jw-ai__suggestions {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 5px !important;
  height: 132px !important;
  padding: 6px 10px 7px !important;
  overflow: hidden !important;
  border-top: 1px solid rgba(255,255,255,.04) !important;
  background: #0f1213 !important;
}
.jw-ai[data-open="1"] .jw-ai__suggestions button {
  display: grid !important;
  grid-template-columns: 20px 1fr 18px !important;
  align-items: center !important;
  width: 100% !important;
  height: 27px !important;
  min-height: 27px !important;
  padding: 0 10px !important;
  border: 1px solid rgba(155,224,0,.30) !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.022) !important;
  color: #d9dddf !important;
  text-align: left !important;
  font-size: 8.2px !important;
  font-weight: 700 !important;
}
.jw-ai[data-open="1"] .jw-ai__suggestions button span {
  color: #f4f6f7 !important;
  font-size: 11px !important;
}
.jw-ai[data-open="1"] .jw-ai__suggestions button i {
  color: #9be000 !important;
  font-style: normal !important;
  text-align: right !important;
  font-size: 11px !important;
}
.jw-ai[data-open="1"] .jw-ai__suggestions button:hover {
  border-color: rgba(155,224,0,.72) !important;
  background: rgba(155,224,0,.055) !important;
  color: #fff !important;
}

.jw-ai[data-open="1"] .jw-ai__messages {
  height: calc(100% - 58px - 132px - 56px - 21px) !important;
  min-height: 120px !important;
  padding: 12px 11px 9px !important;
}
.jw-ai[data-open="1"] .jw-ai__form {
  min-height: 56px !important;
  padding: 7px 9px !important;
}
.jw-ai[data-open="1"] .jw-ai__footer {
  height: 21px !important;
}

/* Mobile keeps exactly the same geometry: button never jumps. */



/* =========================================================
   v0.1.13 — tighter Variant 4 geometry
   Closed launcher position is unchanged.
   Open dialog sits ABOVE/LEFT of the button and no longer overlaps send.
   ========================================================= */

@media (min-width: 768px) {
  .jw-ai[data-open="1"] .jw-ai__panel {
    right: 22px !important;
    bottom: 68px !important;
    width: 350px !important;
    max-width: calc(100vw - 92px) !important;
    height: 438px !important;
    max-height: calc(100dvh - 180px) !important;
    border-radius: 18px !important;
  }

  /* Connector from lower-right corner of panel to the fixed AI button. */
  .jw-ai[data-open="1"]::before {
    right: 27px !important;
    bottom: 57px !important;
    width: 1px !important;
    height: 20px !important;
    background: #9be000 !important;
    box-shadow: 0 0 7px rgba(155,224,0,.30) !important;
  }

  .jw-ai[data-open="1"]::after {
    content: "" !important;
    position: absolute !important;
    right: 20px !important;
    bottom: 63px !important;
    width: 13px !important;
    height: 13px !important;
    z-index: 11 !important;
    background: #0e1112 !important;
    border-right: 1px solid rgba(155,224,0,.72) !important;
    border-bottom: 1px solid rgba(155,224,0,.72) !important;
    transform: rotate(45deg) !important;
    pointer-events: none !important;
  }

  .jw-ai[data-open="1"] .jw-ai__messages {
    height: calc(100% - 58px - 132px - 56px - 21px) !important;
    min-height: 0 !important;
    padding: 11px 10px 8px !important;
  }

  .jw-ai[data-open="1"] .jw-ai__bubble {
    max-width: 94% !important;
  }

  .jw-ai[data-open="1"] .jw-ai__suggestions {
    height: 132px !important;
    padding: 6px 9px 7px !important;
  }

  .jw-ai[data-open="1"] .jw-ai__form {
    min-height: 56px !important;
    padding: 7px 9px !important;
  }

  /* Give send button breathing room from the launcher side. */
  .jw-ai[data-open="1"] .jw-ai__form {
    padding-right: 11px !important;
  }
}

/* Mobile: same docked-dialog behavior, compact height. */



/* =========================================================
   v0.1.14 — larger dialog + larger typography
   Closed AI launcher geometry remains unchanged.
   ========================================================= */
@media (min-width: 768px) {
  .jw-ai[data-open="1"] .jw-ai__panel {
    right: 22px !important;
    bottom: 38px !important;
    width: 410px !important;
    max-width: calc(100vw - 92px) !important;
    height: 520px !important;
    max-height: calc(100dvh - 150px) !important;
    border-radius: 20px !important;
  }

  /* Short connector only — no long green line. */
  .jw-ai[data-open="1"]::before {
    right: 26px !important;
    bottom: 52px !important;
    width: 1px !important;
    height: 12px !important;
  }
  .jw-ai[data-open="1"]::after {
    right: 19px !important;
    bottom: 56px !important;
    width: 13px !important;
    height: 13px !important;
  }

  .jw-ai[data-open="1"] .jw-ai__header {
    height: 64px !important;
    padding: 0 14px 0 16px !important;
  }
  .jw-ai[data-open="1"] .jw-ai__brand-icon {
    width: 36px !important;
    height: 36px !important;
    font-size: 12px !important;
  }
  .jw-ai[data-open="1"] .jw-ai__brand strong {
    font-size: 14px !important;
  }
  .jw-ai[data-open="1"] .jw-ai__brand small {
    font-size: 9px !important;
  }

  .jw-ai[data-open="1"] .jw-ai__messages {
    height: calc(100% - 64px - 142px - 62px - 24px) !important;
    padding: 14px 12px 10px !important;
  }
  .jw-ai[data-open="1"] .jw-ai__bubble {
    max-width: 94% !important;
    padding: 12px 14px !important;
    border-radius: 15px !important;
    font-size: 13px !important;
    line-height: 1.5 !important;
  }

  .jw-ai[data-open="1"] .jw-ai__suggestions {
    height: 142px !important;
    gap: 6px !important;
    padding: 7px 11px 8px !important;
  }
  .jw-ai[data-open="1"] .jw-ai__suggestions button {
    height: 29px !important;
    min-height: 29px !important;
    grid-template-columns: 22px 1fr 18px !important;
    padding: 0 11px !important;
    font-size: 9.3px !important;
  }
  .jw-ai[data-open="1"] .jw-ai__suggestions button span,
  .jw-ai[data-open="1"] .jw-ai__suggestions button i {
    font-size: 12px !important;
  }

  .jw-ai[data-open="1"] .jw-ai__form {
    min-height: 62px !important;
    padding: 8px 10px !important;
  }
  .jw-ai[data-open="1"] .jw-ai__input {
    min-height: 44px !important;
    padding: 11px 13px !important;
    font-size: 12.5px !important;
  }
  .jw-ai[data-open="1"] .jw-ai__send {
    width: 44px !important;
    height: 44px !important;
    flex-basis: 44px !important;
  }
  .jw-ai[data-open="1"] .jw-ai__send svg {
    width: 21px !important;
    height: 21px !important;
  }
  .jw-ai[data-open="1"] .jw-ai__footer {
    height: 24px !important;
    font-size: 7.5px !important;
  }

  .jw-ai[data-open="1"] .jw-ai__product {
    flex-basis: 170px !important;
  }
  .jw-ai[data-open="1"] .jw-ai__product-media {
    height: 116px !important;
  }
  .jw-ai[data-open="1"] .jw-ai__product-body strong {
    font-size: 11.5px !important;
  }
  .jw-ai[data-open="1"] .jw-ai__product-body small {
    font-size: 9.3px !important;
  }
  .jw-ai[data-open="1"] .jw-ai__product-body b {
    font-size: 14.5px !important;
  }
  .jw-ai[data-open="1"] .jw-ai__product-link {
    font-size: 8.8px !important;
  }
}




/* =========================================================
   v0.1.15 — straighter dialog anchor + slightly larger UI
   Closed launcher position is intentionally unchanged.
   ========================================================= */

@media (min-width: 768px) {
  /* Dialog is aligned by the center axis of the round AI launcher.
     No overlap with the send button; a short straight connector joins them. */
  .jw-ai[data-open="1"] .jw-ai__panel {
    right: 29px !important;
    bottom: 74px !important;
    width: 440px !important;
    max-width: calc(100vw - 94px) !important;
    height: 560px !important;
    max-height: calc(100dvh - 180px) !important;
    border-radius: 21px !important;
    transform-origin: 100% 100% !important;
  }

  /* Remove the diagonal/awkward tail from previous revisions. */
  .jw-ai[data-open="1"]::after {
    content: none !important;
    display: none !important;
  }

  /* Straight short line from dialog to the button center. */
  .jw-ai[data-open="1"]::before {
    content: "" !important;
    position: absolute !important;
    right: 28px !important;
    bottom: 58px !important;
    width: 1px !important;
    height: 16px !important;
    z-index: 12 !important;
    background: linear-gradient(180deg, rgba(155,224,0,.38), #9be000) !important;
    box-shadow: 0 0 7px rgba(155,224,0,.26) !important;
    pointer-events: none !important;
  }

  .jw-ai[data-open="1"] .jw-ai__header {
    height: 68px !important;
    padding: 0 16px 0 18px !important;
  }
  .jw-ai[data-open="1"] .jw-ai__brand-icon {
    width: 38px !important;
    height: 38px !important;
    font-size: 12.5px !important;
  }
  .jw-ai[data-open="1"] .jw-ai__brand strong {
    font-size: 15.5px !important;
    line-height: 1.2 !important;
  }
  .jw-ai[data-open="1"] .jw-ai__brand small {
    margin-top: 3px !important;
    font-size: 9.5px !important;
  }

  .jw-ai[data-open="1"] .jw-ai__messages {
    height: calc(100% - 68px - 152px - 66px - 24px) !important;
    min-height: 0 !important;
    padding: 15px 13px 11px !important;
  }
  .jw-ai[data-open="1"] .jw-ai__bubble {
    max-width: 95% !important;
    padding: 13px 15px !important;
    border-radius: 16px !important;
    font-size: 14px !important;
    line-height: 1.52 !important;
  }

  .jw-ai[data-open="1"] .jw-ai__suggestions {
    height: 152px !important;
    gap: 7px !important;
    padding: 8px 12px 9px !important;
  }
  .jw-ai[data-open="1"] .jw-ai__suggestions button {
    height: 30px !important;
    min-height: 30px !important;
    grid-template-columns: 23px 1fr 19px !important;
    padding: 0 12px !important;
    font-size: 10.2px !important;
  }
  .jw-ai[data-open="1"] .jw-ai__suggestions button span,
  .jw-ai[data-open="1"] .jw-ai__suggestions button i {
    font-size: 12.5px !important;
  }

  .jw-ai[data-open="1"] .jw-ai__form {
    min-height: 66px !important;
    gap: 9px !important;
    padding: 9px 11px !important;
  }
  .jw-ai[data-open="1"] .jw-ai__input {
    min-height: 46px !important;
    padding: 12px 14px !important;
    border-radius: 12px !important;
    font-size: 13.5px !important;
  }
  .jw-ai[data-open="1"] .jw-ai__send {
    width: 46px !important;
    height: 46px !important;
    flex-basis: 46px !important;
  }
  .jw-ai[data-open="1"] .jw-ai__send svg {
    width: 22px !important;
    height: 22px !important;
  }
  .jw-ai[data-open="1"] .jw-ai__footer {
    height: 24px !important;
    padding: 0 12px !important;
    font-size: 8px !important;
  }

  /* Product cards scale with the larger dialog. */
  .jw-ai[data-open="1"] .jw-ai__product {
    flex-basis: 184px !important;
  }
  .jw-ai[data-open="1"] .jw-ai__product-media {
    height: 124px !important;
  }
  .jw-ai[data-open="1"] .jw-ai__product-body strong {
    font-size: 12px !important;
  }
  .jw-ai[data-open="1"] .jw-ai__product-body small {
    font-size: 9.8px !important;
  }
  .jw-ai[data-open="1"] .jw-ai__product-body b {
    font-size: 15px !important;
  }
  .jw-ai[data-open="1"] .jw-ai__product-link {
    font-size: 9.2px !important;
  }
}




/* =========================================================
   v0.1.16 — mobile launcher clearance
   Keep desktop unchanged; lift AI above the external messenger button.
   ========================================================= */





/* =========================================================
   v0.1.17 — mobile horizontal alignment with messenger widget
   Shift AI launcher left so both circular buttons share one vertical axis.
   Desktop unchanged.
   ========================================================= */



/* =========================================================
   v0.1.18 — mobile axis correction
   Previous revision moved the AI launcher in the wrong direction.
   Align its center with the messenger button below.
   ========================================================= */



/* =========================================================
   v0.1.19 — dynamic launcher geometry from .lottie-container
   JS writes exact right/bottom/size inline after measuring the messenger button.
   ========================================================= */

.jw-ai {
  --jw-ai-ref-size: 58px;
}

/* Let JS own root geometry. */
.jw-ai,
.jw-ai[data-open="0"],
.jw-ai[data-open="1"] {
  width: var(--jw-ai-ref-size) !important;
  height: var(--jw-ai-ref-size) !important;
}

/* Match external widget diameter exactly. */
.jw-ai .jw-ai__launcher,
.jw-ai[data-open="0"] .jw-ai__launcher,
.jw-ai[data-open="1"] .jw-ai__launcher,
.jw-ai .jw-ai__launcher-icon,
.jw-ai[data-open="0"] .jw-ai__launcher-icon,
.jw-ai[data-open="1"] .jw-ai__launcher-icon {
  width: var(--jw-ai-ref-size) !important;
  min-width: var(--jw-ai-ref-size) !important;
  height: var(--jw-ai-ref-size) !important;
  min-height: var(--jw-ai-ref-size) !important;
}

.jw-ai .jw-ai__launcher-icon {
  flex-basis: var(--jw-ai-ref-size) !important;
}

/* Open dialog remains anchored to the measured AI button. */
@media (min-width: 768px) {
  .jw-ai[data-open="1"] .jw-ai__panel {
    right: calc(var(--jw-ai-ref-size) / 2) !important;
    bottom: calc(var(--jw-ai-ref-size) + 16px) !important;
  }

  .jw-ai[data-open="1"]::before {
    right: calc(var(--jw-ai-ref-size) / 2 - .5px) !important;
    bottom: calc(var(--jw-ai-ref-size) + 1px) !important;
  }
}




/* =========================================================
   v0.1.21 — exact geometry from F12 measurements
   Tested viewports:
   390x844, 430x932, 768x1024, 820x1180, 1024x768,
   1024x1366, 1180x820, 1366x1024, 1016x932.
   Messenger button: 64x64px, right 16px, bottom 74px.
   AI button: same axis/size, 14px gap above => bottom 152px.
   ========================================================= */

.jw-ai,
.jw-ai[data-open="0"],
.jw-ai[data-open="1"] {
  --jw-ai-ref-size: 64px !important;
  position: fixed !important;
  right: 16px !important;
  bottom: 152px !important;
  width: 64px !important;
  height: 64px !important;
}

/* Exact same diameter as the messenger button. */
.jw-ai .jw-ai__launcher,
.jw-ai[data-open="0"] .jw-ai__launcher,
.jw-ai[data-open="1"] .jw-ai__launcher,
.jw-ai .jw-ai__launcher-icon,
.jw-ai[data-open="0"] .jw-ai__launcher-icon,
.jw-ai[data-open="1"] .jw-ai__launcher-icon {
  width: 64px !important;
  min-width: 64px !important;
  height: 64px !important;
  min-height: 64px !important;
}

.jw-ai .jw-ai__launcher-icon,
.jw-ai[data-open="0"] .jw-ai__launcher-icon,
.jw-ai[data-open="1"] .jw-ai__launcher-icon {
  flex: 0 0 64px !important;
  flex-basis: 64px !important;
}

/* Scale the headset slightly so the 64px circle looks balanced. */
.jw-ai .jw-ai__headset,
.jw-ai[data-open="0"] .jw-ai__headset,
.jw-ai[data-open="1"] .jw-ai__headset {
  width: 36px !important;
  height: 36px !important;
}

/* Keep the dialog attached to the now-exact 64px button. */
@media (min-width: 768px) {
  .jw-ai[data-open="1"] .jw-ai__panel {
    right: 32px !important;
    bottom: 80px !important;
  }

  .jw-ai[data-open="1"]::before {
    right: 31.5px !important;
    bottom: 65px !important;
  }
}




/* =========================================================
   v0.1.22 — built-in Telegram / MAX / WhatsApp menu
   Lower button exactly matches the 64px reference geometry.
   ========================================================= */

.jw-contacts,
.jw-contacts * {
  box-sizing: border-box;
}

.jw-contacts {
  --jw-c-green: #9be000;
  position: fixed;
  right: 16px;
  bottom: 74px;
  z-index: 2147483646;
  width: 64px;
  height: 64px;
  font-family: "Montserrat", Arial, sans-serif;
}

.jw-contacts__launcher {
  position: absolute;
  right: 0;
  bottom: 0;
  z-index: 3;
  display: grid;
  place-items: center;
  width: 64px;
  height: 64px;
  padding: 0;
  border: 1.5px solid rgba(155,224,0,.9);
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #203021 0%, #101511 55%, #080b09 100%);
  color: #f5f7f5;
  cursor: pointer;
  box-shadow: 0 12px 30px rgba(0,0,0,.36), 0 0 20px rgba(155,224,0,.16);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.jw-contacts__launcher:hover {
  transform: translateY(-2px);
  border-color: var(--jw-c-green);
  box-shadow: 0 14px 34px rgba(0,0,0,.42), 0 0 24px rgba(155,224,0,.22);
}

.jw-contacts__launcher svg {
  width: 30px;
  height: 30px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.jw-contacts__close-mark {
  display: none;
  font-size: 30px;
  line-height: 1;
  font-weight: 300;
}

.jw-contacts[data-open="1"] .jw-contacts__launcher svg {
  display: none;
}
.jw-contacts[data-open="1"] .jw-contacts__close-mark {
  display: block;
}

.jw-contacts__menu[hidden] {
  display: none !important;
}

.jw-contacts__menu {
  position: absolute;
  right: 76px;
  bottom: 0;
  display: grid;
  gap: 8px;
  width: 245px;
  padding: 10px;
  border: 1px solid rgba(155,224,0,.55);
  border-radius: 16px;
  background: rgba(12,15,13,.98);
  box-shadow: 0 20px 52px rgba(0,0,0,.44), 0 0 24px rgba(155,224,0,.08);
  backdrop-filter: blur(12px);
  animation: jw-contacts-in .18s ease-out;
}

@keyframes jw-contacts-in {
  from { opacity: 0; transform: translateX(10px) scale(.98); }
  to { opacity: 1; transform: translateX(0) scale(1); }
}

.jw-contacts__item {
  display: grid;
  grid-template-columns: 38px 1fr 18px;
  align-items: center;
  gap: 10px;
  min-height: 52px;
  padding: 7px 9px;
  border: 1px solid rgba(255,255,255,.075);
  border-radius: 12px;
  background: rgba(255,255,255,.025);
  color: #f3f5f5 !important;
  text-decoration: none !important;
  transition: border-color .18s ease, background .18s ease, transform .18s ease;
}

.jw-contacts__item:hover {
  transform: translateX(-2px);
  border-color: rgba(155,224,0,.48);
  background: rgba(155,224,0,.05);
}

.jw-contacts__item > span:nth-child(2) {
  min-width: 0;
}

.jw-contacts__item strong {
  display: block;
  color: #fff;
  font-size: 12px;
  line-height: 1.2;
  font-weight: 800;
}

.jw-contacts__item small {
  display: block;
  margin-top: 3px;
  overflow: hidden;
  color: #8f979c;
  font-size: 8px;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.jw-contacts__item i {
  color: var(--jw-c-green);
  font-size: 14px;
  font-style: normal;
  text-align: right;
}

.jw-contacts__icon {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  color: #fff;
  font-size: 13px;
  font-weight: 900;
}

.jw-contacts__icon svg {
  width: 21px;
  height: 21px;
  fill: currentColor;
}

.jw-contacts__icon--tg {
  background: #2aabee;
}
.jw-contacts__icon--wa {
  background: #25d366;
}
.jw-contacts__icon--max {
  background: linear-gradient(135deg, #43a7ff, #7b5cff);
}




/* =========================================================
   v0.1.23 — ONE master button; actions open vertically upward
   Bottom-up order: AI assistant → WhatsApp → MAX → Telegram
   ========================================================= */

/* Hide the standalone AI launcher. Chat panel stays available programmatically. */
.jw-ai[data-open="0"] .jw-ai__launcher,
.jw-ai[data-open="1"] .jw-ai__launcher {
  display: none !important;
}

/* Remove legacy v0.1.22 contacts UI if cached markup exists. */
.jw-contacts {
  display: none !important;
}

.jw-hub,
.jw-hub * {
  box-sizing: border-box;
}

.jw-hub {
  --jw-hub-size: 64px;
  --jw-hub-gap: 12px;
  position: fixed;
  right: 16px;
  bottom: 74px;
  z-index: 2147483647;
  width: var(--jw-hub-size);
  height: var(--jw-hub-size);
  font-family: "Montserrat", Arial, sans-serif;
}

/* Master launcher */
.jw-hub__launcher {
  position: absolute;
  right: 0;
  bottom: 0;
  z-index: 20;
  display: grid;
  place-items: center;
  width: var(--jw-hub-size);
  height: var(--jw-hub-size);
  padding: 0;
  border: 1.5px solid rgba(155,224,0,.9);
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #223124 0%, #101511 56%, #070a08 100%);
  color: #f5f7f5;
  cursor: pointer;
  box-shadow: 0 12px 30px rgba(0,0,0,.40), 0 0 20px rgba(155,224,0,.16);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.jw-hub__launcher:hover {
  transform: translateY(-2px);
  border-color: #9be000;
  box-shadow: 0 14px 34px rgba(0,0,0,.44), 0 0 24px rgba(155,224,0,.22);
}

.jw-hub__launcher-icon {
  width: 30px;
  height: 30px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.jw-hub__launcher-close {
  display: none;
  font-size: 32px;
  line-height: 1;
  font-weight: 300;
}

.jw-hub[data-open="1"] .jw-hub__launcher-icon {
  display: none;
}
.jw-hub[data-open="1"] .jw-hub__launcher-close {
  display: block;
}

/* Vertical stack grows upward from the master button. */
.jw-hub__actions[hidden] {
  display: none !important;
}

.jw-hub__actions {
  position: absolute;
  right: 0;
  bottom: calc(var(--jw-hub-size) + var(--jw-hub-gap));
  display: flex;
  flex-direction: column-reverse;
  gap: var(--jw-hub-gap);
  align-items: flex-end;
  z-index: 15;
}

/* DOM order is AI, WA, MAX, TG; column-reverse produces:
   visually bottom→top AI, WA, MAX, TG as requested. */
.jw-hub__action {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 9px;
  width: max-content;
  color: #fff !important;
  text-decoration: none !important;
  background: transparent;
  border: 0;
  padding: 0;
  cursor: pointer;
  opacity: 0;
  transform: translateY(10px) scale(.96);
  animation: jw-hub-action-in .20s ease-out forwards;
}

.jw-hub__action:nth-child(1) { animation-delay: .02s; }
.jw-hub__action:nth-child(2) { animation-delay: .05s; }
.jw-hub__action:nth-child(3) { animation-delay: .08s; }
.jw-hub__action:nth-child(4) { animation-delay: .11s; }

@keyframes jw-hub-action-in {
  to { opacity: 1; transform: translateY(0) scale(1); }
}

.jw-hub__label {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 0 10px;
  border: 1px solid rgba(155,224,0,.28);
  border-radius: 999px;
  background: rgba(10,14,11,.94);
  color: #f0f3f1;
  box-shadow: 0 8px 20px rgba(0,0,0,.28);
  font-size: 10px;
  font-weight: 750;
  white-space: nowrap;
}

.jw-hub__circle {
  position: relative;
  display: grid;
  place-items: center;
  width: var(--jw-hub-size);
  height: var(--jw-hub-size);
  min-width: var(--jw-hub-size);
  min-height: var(--jw-hub-size);
  border-radius: 50%;
  box-shadow: 0 12px 28px rgba(0,0,0,.34);
  transition: transform .16s ease, filter .16s ease;
}

.jw-hub__action:hover .jw-hub__circle {
  transform: scale(1.05);
  filter: brightness(1.04);
}

.jw-hub__action svg {
  width: 29px;
  height: 29px;
  fill: currentColor;
}

/* AI */
.jw-hub__action--ai .jw-hub__circle {
  border: 1.5px solid #9be000;
  background: radial-gradient(circle at 35% 30%, rgba(42,68,37,.76), rgba(15,24,17,.98) 50%, #070a08 100%);
  color: #fff;
  box-shadow: 0 12px 30px rgba(0,0,0,.40), 0 0 20px rgba(155,224,0,.18);
}
.jw-hub__headset {
  width: 36px !important;
  height: 36px !important;
  fill: none !important;
  stroke: #fff !important;
  stroke-width: 2 !important;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.jw-hub__action--ai .jw-hub__circle > b {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -47%);
  color: #9be000;
  font-size: 10px;
  font-weight: 900;
}

/* WhatsApp */
.jw-hub__action--wa .jw-hub__circle {
  background: #25d366;
  color: #fff;
}

/* MAX */
.jw-hub__action--max .jw-hub__circle {
  background: linear-gradient(135deg, #47b2ff 0%, #5a8cff 45%, #7c58ff 100%);
  color: #fff;
}
.jw-hub__action--max .jw-hub__circle > b {
  font-size: 22px;
  font-weight: 900;
}

/* Telegram */
.jw-hub__action--tg .jw-hub__circle {
  background: #2aabee;
  color: #fff;
}

/* Keep AI chat panel in the same right-side zone even though its launcher is hidden. */
.jw-ai[data-open="1"] {
  right: 16px !important;
  bottom: 152px !important;
  width: 64px !important;
  height: 64px !important;
}
.jw-ai[data-open="1"] .jw-ai__panel {
  right: 32px !important;
}




/* =========================================================
   v0.1.24 — HUB VARIANT 1
   Clean vertical stack: Telegram / MAX / WhatsApp / AI / close.
   Labels are visually attached to the circular buttons.
   ========================================================= */

.jw-hub {
  --jw-hub-size: 64px !important;
  --jw-hub-gap: 16px !important;
  right: 16px !important;
  bottom: 74px !important;
  width: 64px !important;
  height: 64px !important;
}

/* Master button */
.jw-hub .jw-hub__launcher {
  appearance: none !important;
  -webkit-appearance: none !important;
  width: 64px !important;
  min-width: 64px !important;
  height: 64px !important;
  min-height: 64px !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 2px solid #a7ed00 !important;
  border-radius: 50% !important;
  background:
    radial-gradient(circle at 34% 28%, rgba(43,65,42,.88) 0%, #151b17 46%, #080b09 100%) !important;
  color: #fff !important;
  box-shadow:
    0 12px 30px rgba(0,0,0,.42),
    0 0 18px rgba(167,237,0,.22),
    inset 0 0 18px rgba(167,237,0,.05) !important;
  outline: none !important;
}

.jw-hub .jw-hub__launcher::before,
.jw-hub .jw-hub__launcher::after {
  content: none !important;
  display: none !important;
}

.jw-hub[data-open="1"] .jw-hub__launcher {
  border-color: #b6ff00 !important;
  box-shadow:
    0 12px 30px rgba(0,0,0,.46),
    0 0 22px rgba(182,255,0,.28) !important;
}

.jw-hub__launcher-icon {
  width: 29px !important;
  height: 29px !important;
}

.jw-hub__launcher-close {
  font-family: Arial, sans-serif !important;
  font-size: 34px !important;
  font-weight: 300 !important;
  transform: translateY(-1px);
}

/* Stack directly above the master button */
.jw-hub__actions {
  right: 0 !important;
  bottom: calc(64px + 16px) !important;
  gap: 16px !important;
  align-items: flex-end !important;
  width: max-content !important;
}

/* Kill WoodMart/default button styling, especially on the AI button */
.jw-hub .jw-hub__action,
.jw-hub button.jw-hub__action,
.jw-hub a.jw-hub__action {
  appearance: none !important;
  -webkit-appearance: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 0 !important;
  width: max-content !important;
  min-width: 0 !important;
  max-width: none !important;
  height: 64px !important;
  min-height: 64px !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  outline: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
  color: #fff !important;
  text-decoration: none !important;
  overflow: visible !important;
}

.jw-hub .jw-hub__action::before,
.jw-hub .jw-hub__action::after {
  content: none !important;
  display: none !important;
}

/* Attached pill label */
.jw-hub .jw-hub__label {
  position: relative !important;
  z-index: 1 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 112px !important;
  width: auto !important;
  height: 40px !important;
  min-height: 40px !important;
  margin: 0 -17px 0 0 !important;
  padding: 0 34px 0 18px !important;
  border: 1px solid rgba(167,237,0,.62) !important;
  border-radius: 999px !important;
  background:
    linear-gradient(180deg, rgba(17,22,19,.98) 0%, rgba(9,12,10,.98) 100%) !important;
  color: #f7f9f7 !important;
  box-shadow:
    0 8px 24px rgba(0,0,0,.28),
    inset 0 0 0 1px rgba(255,255,255,.015) !important;
  font-family: "Montserrat", Arial, sans-serif !important;
  font-size: 13px !important;
  line-height: 1 !important;
  font-weight: 750 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  white-space: nowrap !important;
}

/* Circle sits over the right edge of the pill */
.jw-hub .jw-hub__circle {
  position: relative !important;
  z-index: 2 !important;
  flex: 0 0 64px !important;
  display: grid !important;
  place-items: center !important;
  width: 64px !important;
  min-width: 64px !important;
  height: 64px !important;
  min-height: 64px !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 2px solid #a7ed00 !important;
  border-radius: 50% !important;
  box-shadow:
    0 12px 28px rgba(0,0,0,.36),
    0 0 16px rgba(167,237,0,.20) !important;
  overflow: hidden !important;
}

.jw-hub__action:hover .jw-hub__label {
  border-color: rgba(182,255,0,.90) !important;
  background: linear-gradient(180deg, rgba(22,28,23,.99), rgba(10,14,11,.99)) !important;
}

.jw-hub__action:hover .jw-hub__circle {
  transform: scale(1.035) !important;
  filter: brightness(1.03) !important;
}

/* Brand circles */
.jw-hub .jw-hub__action--tg .jw-hub__circle {
  background: #2aabee !important;
  color: #fff !important;
}

.jw-hub .jw-hub__action--max .jw-hub__circle {
  background: linear-gradient(135deg, #43b5ff 0%, #5d8cff 48%, #7c58ff 100%) !important;
  color: #fff !important;
}

.jw-hub .jw-hub__action--wa .jw-hub__circle {
  background: #25d366 !important;
  color: #fff !important;
}

.jw-hub .jw-hub__action--ai .jw-hub__circle {
  background:
    radial-gradient(circle at 34% 28%, rgba(47,73,43,.88) 0%, #151b17 49%, #080b09 100%) !important;
  color: #fff !important;
}

/* Icon sizing */
.jw-hub .jw-hub__action--tg svg,
.jw-hub .jw-hub__action--wa svg {
  width: 31px !important;
  height: 31px !important;
}

.jw-hub .jw-hub__action--max .jw-hub__circle > b {
  font-family: "Montserrat", Arial, sans-serif !important;
  font-size: 24px !important;
  line-height: 1 !important;
  font-weight: 850 !important;
}

.jw-hub .jw-hub__headset {
  width: 37px !important;
  height: 37px !important;
}

.jw-hub .jw-hub__action--ai .jw-hub__circle > b {
  font-size: 10px !important;
}

/* Slightly longer AI label, matching the reference */
.jw-hub .jw-hub__action--ai .jw-hub__label {
  min-width: 145px !important;
}

.jw-hub .jw-hub__action--wa .jw-hub__label {
  min-width: 128px !important;
}

.jw-hub .jw-hub__action--tg .jw-hub__label {
  min-width: 126px !important;
}

/* Compact entry animation — straight up, no sideways drift */
.jw-hub__action {
  transform: translateY(8px) scale(.97) !important;
  animation: jw-hub-v1-in .19s cubic-bezier(.2,.8,.2,1) forwards !important;
}

@keyframes jw-hub-v1-in {
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

/* Mobile: same visual system, a little tighter */



/* =========================================================
   v0.1.25 — approved hub layout
   Telegram / MAX / WhatsApp: circles only.
   AI Assistant: label + circle.
   MAX uses the supplied official-looking icon asset.
   ========================================================= */

/* Keep the master launcher / close button aligned with the action column. */
.jw-hub {
  --jw-hub-size: 64px !important;
  --jw-hub-gap: 16px !important;
  right: 16px !important;
  bottom: 74px !important;
  width: 64px !important;
  height: 64px !important;
}

/* Stack */
.jw-hub__actions {
  right: 0 !important;
  bottom: calc(64px + 16px) !important;
  gap: 16px !important;
  align-items: flex-end !important;
  width: max-content !important;
}

/* Base action remains transparent and unstyled. */
.jw-hub .jw-hub__action,
.jw-hub button.jw-hub__action,
.jw-hub a.jw-hub__action {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 0 !important;
  width: max-content !important;
  min-width: 64px !important;
  height: 64px !important;
  min-height: 64px !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  text-decoration: none !important;
  overflow: visible !important;
}

/* Hide labels for Telegram / MAX / WhatsApp exactly as approved. */
.jw-hub .jw-hub__action--tg .jw-hub__label,
.jw-hub .jw-hub__action--max .jw-hub__label,
.jw-hub .jw-hub__action--wa .jw-hub__label {
  display: none !important;
}

/* Keep only the AI Assistant label. */
.jw-hub .jw-hub__action--ai .jw-hub__label {
  display: inline-flex !important;
  position: relative !important;
  z-index: 1 !important;
  align-items: center !important;
  justify-content: center !important;
  width: auto !important;
  min-width: 166px !important;
  height: 42px !important;
  min-height: 42px !important;
  margin: 0 -18px 0 0 !important;
  padding: 0 36px 0 20px !important;
  border: 1px solid rgba(167,237,0,.58) !important;
  border-radius: 999px !important;
  background:
    linear-gradient(180deg, rgba(18,23,20,.985), rgba(8,11,9,.985)) !important;
  color: #f7f9f7 !important;
  box-shadow:
    0 8px 24px rgba(0,0,0,.28),
    inset 0 0 0 1px rgba(255,255,255,.015) !important;
  font-family: "Montserrat", Arial, sans-serif !important;
  font-size: 14px !important;
  line-height: 1 !important;
  font-weight: 800 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  white-space: nowrap !important;
}

/* Equal circular buttons */
.jw-hub .jw-hub__circle {
  position: relative !important;
  z-index: 2 !important;
  flex: 0 0 64px !important;
  display: grid !important;
  place-items: center !important;
  width: 64px !important;
  min-width: 64px !important;
  height: 64px !important;
  min-height: 64px !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 2px solid #a7ed00 !important;
  border-radius: 50% !important;
  box-shadow:
    0 12px 28px rgba(0,0,0,.36),
    0 0 18px rgba(167,237,0,.20) !important;
  overflow: hidden !important;
}

/* Telegram */
.jw-hub .jw-hub__action--tg .jw-hub__circle {
  background: #2aabee !important;
  color: #fff !important;
}
.jw-hub .jw-hub__action--tg svg {
  width: 31px !important;
  height: 31px !important;
  fill: #fff !important;
}

/* MAX: supplied icon fills the circle, no letter M fallback. */
.jw-hub .jw-hub__action--max .jw-hub__circle {
  background: transparent !important;
}
.jw-hub .jw-hub__max-icon {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  object-fit: cover !important;
  border-radius: 50% !important;
}

/* WhatsApp — clean centered icon */
.jw-hub .jw-hub__action--wa .jw-hub__circle {
  background: #25d366 !important;
  color: #fff !important;
}
.jw-hub .jw-hub__action--wa svg {
  width: 31px !important;
  height: 31px !important;
  fill: #fff !important;
  display: block !important;
  flex: 0 0 auto !important;
  transform: translateY(0) !important;
}

/* AI */
.jw-hub .jw-hub__action--ai .jw-hub__circle {
  background:
    radial-gradient(circle at 34% 28%, rgba(47,73,43,.88) 0%, #151b17 49%, #080b09 100%) !important;
  color: #fff !important;
}
.jw-hub .jw-hub__headset {
  width: 37px !important;
  height: 37px !important;
}
.jw-hub .jw-hub__action--ai .jw-hub__circle > b {
  font-size: 10px !important;
}

/* Close / master button same diameter and axis */
.jw-hub .jw-hub__launcher {
  width: 64px !important;
  min-width: 64px !important;
  height: 64px !important;
  min-height: 64px !important;
  border: 2px solid #a7ed00 !important;
  border-radius: 50% !important;
}

/* Mobile — same approved composition, just slightly smaller */



/* =========================================================
   v0.1.28 — hub shifted slightly left and scaled up
   Larger round buttons, larger AI pill, larger icons.
   ========================================================= */

.jw-hub {
  --jw-hub-size: 68px !important;
  --jw-hub-gap: 16px !important;
  right: 26px !important;
  bottom: 74px !important;
  width: 68px !important;
  height: 68px !important;
}

.jw-hub__actions {
  right: 0 !important;
  bottom: calc(68px + 16px) !important;
  gap: 16px !important;
}

.jw-hub .jw-hub__action,
.jw-hub button.jw-hub__action,
.jw-hub a.jw-hub__action {
  min-width: 68px !important;
  height: 68px !important;
  min-height: 68px !important;
}

.jw-hub .jw-hub__circle,
.jw-hub .jw-hub__launcher {
  flex-basis: 68px !important;
  width: 68px !important;
  min-width: 68px !important;
  height: 68px !important;
  min-height: 68px !important;
}

.jw-hub .jw-hub__launcher {
  border-width: 2px !important;
}

.jw-hub__launcher-icon {
  width: 32px !important;
  height: 32px !important;
}

.jw-hub__launcher-close {
  font-size: 36px !important;
}

.jw-hub .jw-hub__action--ai .jw-hub__label {
  min-width: 182px !important;
  height: 46px !important;
  min-height: 46px !important;
  margin-right: -19px !important;
  padding: 0 39px 0 22px !important;
  font-size: 15px !important;
}

.jw-hub .jw-hub__action--tg svg,
.jw-hub .jw-hub__action--wa svg {
  width: 34px !important;
  height: 34px !important;
}

.jw-hub .jw-hub__headset {
  width: 39px !important;
  height: 39px !important;
}

.jw-hub .jw-hub__action--ai .jw-hub__circle > b {
  font-size: 11px !important;
}

/* Keep the AI dialog visually aligned with the new button axis. */
.jw-ai[data-open="1"] {
  right: 26px !important;
  width: 68px !important;
  height: 68px !important;
}

.jw-ai[data-open="1"] .jw-ai__panel {
  right: 34px !important;
}




/* =========================================================
   v0.1.29 — mutually exclusive AI/hub + opening animation
   ========================================================= */

/* Main launcher click: short spring + green ripple. */
.jw-hub.jw-hub--press .jw-hub__launcher {
  animation: jw-hub-v129-launcher-press .38s cubic-bezier(.2,.85,.25,1) both !important;
}

.jw-hub.jw-hub--press .jw-hub__launcher::after {
  content: '' !important;
  display: block !important;
  position: absolute !important;
  inset: -2px !important;
  border: 2px solid rgba(182,255,0,.88) !important;
  border-radius: 50% !important;
  pointer-events: none !important;
  opacity: 0;
  animation: jw-hub-v129-ripple .42s ease-out both !important;
}

@keyframes jw-hub-v129-launcher-press {
  0%   { transform: scale(1); }
  34%  { transform: scale(.88); }
  68%  { transform: scale(1.08); }
  100% { transform: scale(1); }
}

@keyframes jw-hub-v129-ripple {
  0%   { opacity: .9; transform: scale(.92); }
  100% { opacity: 0; transform: scale(1.34); }
}

/* When the menu appears, buttons rise one after another from the launcher. */
.jw-hub[data-open="1"] .jw-hub__action {
  opacity: 0;
  transform: translateY(18px) scale(.78) !important;
  animation: jw-hub-v129-item-in .32s cubic-bezier(.16,.9,.24,1.18) forwards !important;
  transform-origin: center bottom !important;
}

/* DOM order = AI, WhatsApp, MAX, Telegram.
   With column-reverse this creates a natural bottom-to-top reveal. */
.jw-hub[data-open="1"] .jw-hub__action:nth-child(1) { animation-delay: .03s !important; }
.jw-hub[data-open="1"] .jw-hub__action:nth-child(2) { animation-delay: .08s !important; }
.jw-hub[data-open="1"] .jw-hub__action:nth-child(3) { animation-delay: .13s !important; }
.jw-hub[data-open="1"] .jw-hub__action:nth-child(4) { animation-delay: .18s !important; }

@keyframes jw-hub-v129-item-in {
  0%   { opacity: 0; transform: translateY(18px) scale(.78); }
  72%  { opacity: 1; transform: translateY(-2px) scale(1.035); }
  100% { opacity: 1; transform: translateY(0) scale(1); }
}

/* The X appears with a small rotation/scale instead of switching abruptly. */
.jw-hub[data-open="1"] .jw-hub__launcher-close {
  animation: jw-hub-v129-close-in .25s cubic-bezier(.2,.9,.2,1.1) both !important;
}

@keyframes jw-hub-v129-close-in {
  0%   { opacity: 0; transform: rotate(-70deg) scale(.55); }
  100% { opacity: 1; transform: rotate(0) scale(1); }
}

/* AI selection gives the AI circle a quick confirmation pulse before the chat appears. */
.jw-hub.jw-hub--select-ai .jw-hub__action--ai .jw-hub__circle {
  animation: jw-hub-v129-ai-select .30s ease-out both !important;
}

@keyframes jw-hub-v129-ai-select {
  0%   { transform: scale(1); }
  45%  { transform: scale(.90); }
  100% { transform: scale(1.06); }
}

@media (prefers-reduced-motion: reduce) {
  .jw-hub.jw-hub--press .jw-hub__launcher,
  .jw-hub.jw-hub--press .jw-hub__launcher::after,
  .jw-hub[data-open="1"] .jw-hub__action,
  .jw-hub[data-open="1"] .jw-hub__launcher-close,
  .jw-hub.jw-hub--select-ai .jw-hub__action--ai .jw-hub__circle {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}


/* =========================================================
   v0.1.30 — smooth hub motion, fixed geometry
   Keep v0.1.28 positions and diameters exactly:
   desktop 68px / right 26px; mobile 62px / right 20px.
   No scale/bounce: only opacity + small vertical movement + glow.
   ========================================================= */

/* Never change button size or position on hover/click. */
.jw-hub .jw-hub__launcher,
.jw-hub .jw-hub__launcher:hover,
.jw-hub .jw-hub__action:hover .jw-hub__circle,
.jw-hub.jw-hub--press .jw-hub__launcher,
.jw-hub.jw-hub--select-ai .jw-hub__action--ai .jw-hub__circle {
  transform: none !important;
}

/* Replace the old spring/ripple with a soft stationary glow. */
.jw-hub.jw-hub--press .jw-hub__launcher {
  animation: jw-hub-v130-glow .30s ease-out both !important;
}

.jw-hub.jw-hub--press .jw-hub__launcher::after {
  content: none !important;
  display: none !important;
  animation: none !important;
}

@keyframes jw-hub-v130-glow {
  0% {
    box-shadow: 0 12px 30px rgba(0,0,0,.42), 0 0 18px rgba(167,237,0,.20);
  }
  45% {
    box-shadow: 0 12px 30px rgba(0,0,0,.42), 0 0 30px rgba(182,255,0,.38);
  }
  100% {
    box-shadow: 0 12px 30px rgba(0,0,0,.42), 0 0 18px rgba(167,237,0,.20);
  }
}

/* Smooth opening from the main button upward. No scaling. */
.jw-hub[data-open="1"] .jw-hub__action {
  opacity: 0;
  transform: translateY(10px) !important;
  transform-origin: center bottom !important;
  animation: jw-hub-v130-item-in .30s cubic-bezier(.22,.61,.36,1) forwards !important;
}

/* Visual bottom -> top: AI, WhatsApp, MAX, Telegram. */
.jw-hub[data-open="1"] .jw-hub__action:nth-child(1) { animation-delay: .00s !important; }
.jw-hub[data-open="1"] .jw-hub__action:nth-child(2) { animation-delay: .035s !important; }
.jw-hub[data-open="1"] .jw-hub__action:nth-child(3) { animation-delay: .070s !important; }
.jw-hub[data-open="1"] .jw-hub__action:nth-child(4) { animation-delay: .105s !important; }

@keyframes jw-hub-v130-item-in {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Smooth closing before JS applies [hidden]. */
.jw-hub[data-closing="1"] .jw-hub__action {
  opacity: 1;
  transform: translateY(0) !important;
  animation: jw-hub-v130-item-out .18s cubic-bezier(.4,0,1,1) forwards !important;
}

@keyframes jw-hub-v130-item-out {
  from { opacity: 1; transform: translateY(0); }
  to   { opacity: 0; transform: translateY(7px); }
}

/* X comes in gently, without changing launcher geometry. */
.jw-hub[data-open="1"] .jw-hub__launcher-close {
  animation: jw-hub-v130-close-in .24s ease-out both !important;
}

@keyframes jw-hub-v130-close-in {
  from { opacity: 0; transform: rotate(-18deg); }
  to   { opacity: 1; transform: rotate(0); }
}

/* AI selection: soft glow only, no pulse/scale. */
.jw-hub.jw-hub--select-ai .jw-hub__action--ai .jw-hub__circle {
  animation: jw-hub-v130-ai-glow .24s ease-out both !important;
}

@keyframes jw-hub-v130-ai-glow {
  0%   { box-shadow: 0 12px 28px rgba(0,0,0,.36), 0 0 18px rgba(167,237,0,.20); }
  50%  { box-shadow: 0 12px 28px rgba(0,0,0,.36), 0 0 30px rgba(182,255,0,.42); }
  100% { box-shadow: 0 12px 28px rgba(0,0,0,.36), 0 0 18px rgba(167,237,0,.20); }
}

/* Reassert exact v0.1.28 desktop geometry after all animation rules. */
@media (min-width: 768px) {
  .jw-hub {
    --jw-hub-size: 68px !important;
    --jw-hub-gap: 16px !important;
    right: 26px !important;
    bottom: 74px !important;
    width: 68px !important;
    height: 68px !important;
  }

  .jw-hub__actions {
    right: 0 !important;
    bottom: 84px !important;
    gap: 16px !important;
  }

  .jw-hub .jw-hub__circle,
  .jw-hub .jw-hub__launcher,
  .jw-hub .jw-hub__action,
  .jw-hub button.jw-hub__action,
  .jw-hub a.jw-hub__action {
    width: 68px !important;
    min-width: 68px !important;
    height: 68px !important;
    min-height: 68px !important;
  }

  .jw-hub .jw-hub__circle {
    flex-basis: 68px !important;
  }
}

/* Reassert exact v0.1.28 mobile geometry. */


@media (prefers-reduced-motion: reduce) {
  .jw-hub.jw-hub--press .jw-hub__launcher,
  .jw-hub[data-open="1"] .jw-hub__action,
  .jw-hub[data-closing="1"] .jw-hub__action,
  .jw-hub[data-open="1"] .jw-hub__launcher-close,
  .jw-hub.jw-hub--select-ai .jw-hub__action--ai .jw-hub__circle {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}


/* =========================================================
   v0.1.31 — PREMIUM FADE-UP
   Final geometry stays EXACTLY as v0.1.28/v0.1.30.
   Only opacity + 10px vertical travel are animated.
   No scaling, bounce, ripple, or positional drift.
   ========================================================= */

/* Kill previous click/selection animation effects. */
.jw-hub.jw-hub--press .jw-hub__launcher,
.jw-hub.jw-hub--select-ai .jw-hub__action--ai .jw-hub__circle {
  animation: none !important;
  transform: none !important;
}

.jw-hub.jw-hub--press .jw-hub__launcher::after {
  content: none !important;
  display: none !important;
  animation: none !important;
}

/* Launcher remains absolutely stationary. Subtle border/halo transition only. */
.jw-hub .jw-hub__launcher {
  transition:
    border-color .32s cubic-bezier(.22,1,.36,1),
    box-shadow .32s cubic-bezier(.22,1,.36,1),
    background .32s ease !important;
  transform: none !important;
}

.jw-hub[data-open="1"] .jw-hub__launcher {
  border-color: #b6ff00 !important;
  box-shadow:
    0 12px 30px rgba(0,0,0,.42),
    0 0 22px rgba(182,255,0,.24) !important;
}

/* Premium reveal: calm 10px fade-up, bottom -> top. */
.jw-hub[data-open="1"] .jw-hub__action {
  opacity: 0 !important;
  transform: translate3d(0,10px,0) !important;
  animation: jw-hub-v131-premium-in .48s cubic-bezier(.16,1,.3,1) forwards !important;
  will-change: opacity, transform;
}

/* DOM order is AI, WhatsApp, MAX, Telegram; visually bottom -> top. */
.jw-hub[data-open="1"] .jw-hub__action:nth-child(1) { animation-delay: .00s !important; }
.jw-hub[data-open="1"] .jw-hub__action:nth-child(2) { animation-delay: .055s !important; }
.jw-hub[data-open="1"] .jw-hub__action:nth-child(3) { animation-delay: .110s !important; }
.jw-hub[data-open="1"] .jw-hub__action:nth-child(4) { animation-delay: .165s !important; }

@keyframes jw-hub-v131-premium-in {
  0% {
    opacity: 0;
    transform: translate3d(0,10px,0);
  }
  100% {
    opacity: 1;
    transform: translate3d(0,0,0);
  }
}

/* Closing: one quiet fade-down, no cascade and no snap. */
.jw-hub[data-closing="1"] .jw-hub__action {
  opacity: 1 !important;
  transform: translate3d(0,0,0) !important;
  animation: jw-hub-v131-premium-out .26s cubic-bezier(.4,0,.2,1) forwards !important;
  animation-delay: 0s !important;
}

@keyframes jw-hub-v131-premium-out {
  0% {
    opacity: 1;
    transform: translate3d(0,0,0);
  }
  100% {
    opacity: 0;
    transform: translate3d(0,6px,0);
  }
}

/* Main icon -> X: soft fade/rotation, still no launcher movement. */
.jw-hub__launcher-icon,
.jw-hub__launcher-close {
  transition: opacity .24s ease, transform .34s cubic-bezier(.22,1,.36,1) !important;
  transform-origin: 50% 50% !important;
}

.jw-hub[data-open="1"] .jw-hub__launcher-close {
  animation: jw-hub-v131-x-in .34s cubic-bezier(.22,1,.36,1) both !important;
}

@keyframes jw-hub-v131-x-in {
  from {
    opacity: 0;
    transform: rotate(-10deg);
  }
  to {
    opacity: 1;
    transform: rotate(0deg);
  }
}

/* AI selection has no separate pulse. Clicking it simply transitions to the dialog. */
.jw-hub.jw-hub--select-ai .jw-hub__action--ai .jw-hub__circle {
  box-shadow:
    0 12px 28px rgba(0,0,0,.36),
    0 0 18px rgba(167,237,0,.20) !important;
}

/* Reassert geometry exactly. Desktop. */
@media (min-width: 768px) {
  .jw-hub {
    --jw-hub-size: 68px !important;
    --jw-hub-gap: 16px !important;
    right: 26px !important;
    bottom: 74px !important;
    width: 68px !important;
    height: 68px !important;
  }

  .jw-hub__actions {
    right: 0 !important;
    bottom: 84px !important;
    gap: 16px !important;
  }

  .jw-hub .jw-hub__circle,
  .jw-hub .jw-hub__launcher,
  .jw-hub .jw-hub__action,
  .jw-hub button.jw-hub__action,
  .jw-hub a.jw-hub__action {
    width: 68px !important;
    min-width: 68px !important;
    height: 68px !important;
    min-height: 68px !important;
  }

  .jw-hub .jw-hub__circle { flex-basis: 68px !important; }
}

/* Reassert geometry exactly. Mobile. */


@media (prefers-reduced-motion: reduce) {
  .jw-hub[data-open="1"] .jw-hub__action,
  .jw-hub[data-closing="1"] .jw-hub__action,
  .jw-hub[data-open="1"] .jw-hub__launcher-close {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
  }
}


/* =========================================================
   v0.1.32 — PREMIUM FADE-UP / STABLE TRANSITIONS
   Fixes v0.1.31 flicker:
   - action buttons are always mounted
   - no hidden toggling
   - no animation timers/keyframes
   - size and final coordinates remain exactly unchanged
   ========================================================= */

/* Override every old animation layer. */
.jw-hub .jw-hub__action,
.jw-hub[data-open="0"] .jw-hub__action,
.jw-hub[data-open="1"] .jw-hub__action,
.jw-hub[data-closing="1"] .jw-hub__action,
.jw-hub.jw-hub--press .jw-hub__launcher,
.jw-hub.jw-hub--select-ai .jw-hub__action--ai .jw-hub__circle {
  animation: none !important;
}

/* Never remove the action stack from layout after JS initialization. */
.jw-hub .jw-hub__actions,
.jw-hub .jw-hub__actions[hidden] {
  display: flex !important;
  visibility: visible !important;
}

/* Closed state: same final geometry, only visually hidden 8px lower. */
.jw-hub[data-open="0"] .jw-hub__actions {
  pointer-events: none !important;
}

.jw-hub[data-open="0"] .jw-hub__action {
  opacity: 0 !important;
  transform: translate3d(0, 8px, 0) !important;
  pointer-events: none !important;
  transition:
    opacity .22s cubic-bezier(.4,0,.2,1),
    transform .28s cubic-bezier(.4,0,.2,1) !important;
  transition-delay: 0s !important;
}

/* Open state: subtle, smooth 8px fade-up. */
.jw-hub[data-open="1"] .jw-hub__actions {
  pointer-events: auto !important;
}

.jw-hub[data-open="1"] .jw-hub__action {
  opacity: 1 !important;
  transform: translate3d(0, 0, 0) !important;
  pointer-events: auto !important;
  transition:
    opacity .34s cubic-bezier(.22,1,.36,1),
    transform .42s cubic-bezier(.22,1,.36,1) !important;
}

/* Bottom -> top, very small stagger. No dead pause after clicking. */
.jw-hub[data-open="1"] .jw-hub__action:nth-child(1) {
  transition-delay: 0s !important;
}
.jw-hub[data-open="1"] .jw-hub__action:nth-child(2) {
  transition-delay: .035s !important;
}
.jw-hub[data-open="1"] .jw-hub__action:nth-child(3) {
  transition-delay: .070s !important;
}
.jw-hub[data-open="1"] .jw-hub__action:nth-child(4) {
  transition-delay: .105s !important;
}

/* Main button itself never moves or scales. */
.jw-hub .jw-hub__launcher,
.jw-hub[data-open="0"] .jw-hub__launcher,
.jw-hub[data-open="1"] .jw-hub__launcher {
  transform: none !important;
  animation: none !important;
  transition:
    border-color .28s ease,
    box-shadow .28s ease,
    background .28s ease !important;
}

/* Smooth icon <-> X crossfade without display:none jump. */
.jw-hub .jw-hub__launcher-icon,
.jw-hub .jw-hub__launcher-close,
.jw-hub[data-open="0"] .jw-hub__launcher-icon,
.jw-hub[data-open="0"] .jw-hub__launcher-close,
.jw-hub[data-open="1"] .jw-hub__launcher-icon,
.jw-hub[data-open="1"] .jw-hub__launcher-close {
  display: block !important;
  grid-area: 1 / 1 !important;
  transform-origin: 50% 50% !important;
  transition:
    opacity .22s ease,
    transform .30s cubic-bezier(.22,1,.36,1) !important;
  animation: none !important;
}

.jw-hub[data-open="0"] .jw-hub__launcher-icon {
  opacity: 1 !important;
  transform: rotate(0deg) !important;
}
.jw-hub[data-open="0"] .jw-hub__launcher-close {
  opacity: 0 !important;
  transform: rotate(-12deg) !important;
  pointer-events: none !important;
}

.jw-hub[data-open="1"] .jw-hub__launcher-icon {
  opacity: 0 !important;
  transform: rotate(12deg) !important;
  pointer-events: none !important;
}
.jw-hub[data-open="1"] .jw-hub__launcher-close {
  opacity: 1 !important;
  transform: rotate(0deg) !important;
}

/* Preserve exact v0.1.31/v0.1.28 geometry. */
@media (min-width: 768px) {
  .jw-hub {
    --jw-hub-size: 68px !important;
    --jw-hub-gap: 16px !important;
    right: 26px !important;
    bottom: 74px !important;
    width: 68px !important;
    height: 68px !important;
  }

  .jw-hub__actions {
    right: 0 !important;
    bottom: 84px !important;
    gap: 16px !important;
  }

  .jw-hub .jw-hub__circle,
  .jw-hub .jw-hub__launcher,
  .jw-hub .jw-hub__action,
  .jw-hub button.jw-hub__action,
  .jw-hub a.jw-hub__action {
    width: 68px !important;
    min-width: 68px !important;
    height: 68px !important;
    min-height: 68px !important;
  }
}



@media (prefers-reduced-motion: reduce) {
  .jw-hub .jw-hub__action,
  .jw-hub .jw-hub__launcher-icon,
  .jw-hub .jw-hub__launcher-close {
    transition-duration: .01ms !important;
    transition-delay: 0s !important;
  }
}


/* =========================================================
   v0.1.33 — FIX ICON WARPING
   Fade remains, but circles/icons never move, scale, rotate or filter.
   This prevents subpixel rasterization/hover scaling from deforming icons.
   ========================================================= */

/* The action rows are always at their FINAL coordinates. */
.jw-hub[data-open="0"] .jw-hub__action,
.jw-hub[data-open="1"] .jw-hub__action {
  transform: none !important;
  animation: none !important;
}

/* Closed = transparent only. No Y movement. */
.jw-hub[data-open="0"] .jw-hub__action {
  opacity: 0 !important;
  pointer-events: none !important;
  transition: opacity .20s cubic-bezier(.4,0,.2,1) !important;
  transition-delay: 0s !important;
}

/* Open = premium staggered fade only. */
.jw-hub[data-open="1"] .jw-hub__action {
  opacity: 1 !important;
  pointer-events: auto !important;
  transition: opacity .34s cubic-bezier(.22,1,.36,1) !important;
}

.jw-hub[data-open="1"] .jw-hub__action:nth-child(1) { transition-delay: 0s !important; }
.jw-hub[data-open="1"] .jw-hub__action:nth-child(2) { transition-delay: .045s !important; }
.jw-hub[data-open="1"] .jw-hub__action:nth-child(3) { transition-delay: .090s !important; }
.jw-hub[data-open="1"] .jw-hub__action:nth-child(4) { transition-delay: .135s !important; }

/* Absolutely no hover scaling/filtering on round buttons. */
.jw-hub .jw-hub__circle,
.jw-hub .jw-hub__action:hover .jw-hub__circle,
.jw-hub .jw-hub__action:focus .jw-hub__circle,
.jw-hub .jw-hub__action:active .jw-hub__circle {
  transform: none !important;
  filter: none !important;
  animation: none !important;
  transition:
    box-shadow .22s ease,
    border-color .22s ease !important;
}

/* Keep all actual icon graphics rasterized at a fixed size. */
.jw-hub .jw-hub__circle svg,
.jw-hub .jw-hub__circle img,
.jw-hub .jw-hub__headset,
.jw-hub .jw-hub__max-icon {
  transform: none !important;
  filter: none !important;
  animation: none !important;
  transition: none !important;
  backface-visibility: hidden !important;
}

/* MAX image must stay exactly square/circular with no interpolation scaling. */
.jw-hub .jw-hub__max-icon {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  border-radius: 50% !important;
}

/* Main launcher: also use a clean crossfade only, no rotation. */
.jw-hub .jw-hub__launcher-icon,
.jw-hub .jw-hub__launcher-close {
  transform: none !important;
  animation: none !important;
  transition: opacity .24s ease !important;
}

.jw-hub[data-open="0"] .jw-hub__launcher-icon {
  opacity: 1 !important;
}
.jw-hub[data-open="0"] .jw-hub__launcher-close {
  opacity: 0 !important;
  pointer-events: none !important;
}
.jw-hub[data-open="1"] .jw-hub__launcher-icon {
  opacity: 0 !important;
  pointer-events: none !important;
}
.jw-hub[data-open="1"] .jw-hub__launcher-close {
  opacity: 1 !important;
}

/* Preserve exact geometry from v0.1.32. */
@media (min-width: 768px) {
  .jw-hub {
    --jw-hub-size: 68px !important;
    right: 26px !important;
    bottom: 74px !important;
    width: 68px !important;
    height: 68px !important;
  }

  .jw-hub__actions {
    right: 0 !important;
    bottom: 84px !important;
    gap: 16px !important;
  }

  .jw-hub .jw-hub__circle,
  .jw-hub .jw-hub__launcher,
  .jw-hub .jw-hub__action,
  .jw-hub button.jw-hub__action,
  .jw-hub a.jw-hub__action {
    width: 68px !important;
    min-width: 68px !important;
    height: 68px !important;
    min-height: 68px !important;
  }
}




/* =========================================================
   v0.1.34 — MAIN LAUNCHER ICONS LOCKED TO EXACT CENTER
   Bubble and X occupy the same absolute center point in both states.
   Only opacity changes; no layout, transform or font-baseline drift.
   ========================================================= */

.jw-hub .jw-hub__launcher,
.jw-hub[data-open="0"] .jw-hub__launcher,
.jw-hub[data-open="1"] .jw-hub__launcher {
  position: relative !important;
  display: block !important;
  padding: 0 !important;
  overflow: hidden !important;
  text-align: initial !important;
}

.jw-hub .jw-hub__launcher-icon,
.jw-hub .jw-hub__launcher-close {
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  right: auto !important;
  bottom: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  display: block !important;
  transform: translate(-50%, -50%) !important;
  transform-origin: 50% 50% !important;
  animation: none !important;
  filter: none !important;
  pointer-events: none !important;
  backface-visibility: hidden !important;
  transition: opacity .24s ease !important;
}

/* Closed-state bubble icon — exact fixed center. */
.jw-hub .jw-hub__launcher-icon {
  width: 32px !important;
  height: 32px !important;
  fill: none !important;
  stroke: #fff !important;
  stroke-width: 1.7 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
}

/* Open-state X — same exact center, SVG instead of text glyph. */
.jw-hub .jw-hub__launcher-close {
  width: 31px !important;
  height: 31px !important;
  fill: none !important;
  stroke: #fff !important;
  stroke-width: 2.7 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
}

.jw-hub[data-open="0"] .jw-hub__launcher-icon {
  opacity: 1 !important;
}
.jw-hub[data-open="0"] .jw-hub__launcher-close {
  opacity: 0 !important;
}
.jw-hub[data-open="1"] .jw-hub__launcher-icon {
  opacity: 0 !important;
}
.jw-hub[data-open="1"] .jw-hub__launcher-close {
  opacity: 1 !important;
}



/* =========================================================
   v0.1.35 — hard-center master button icons
   The launcher icon and close icon must stay on the exact same center point.
   No grid auto-placement, no baseline shift, no layout jump.
   ========================================================= */
.jw-hub .jw-hub__launcher {
  position: absolute !important;
  display: block !important;
  overflow: hidden !important;
}

.jw-hub .jw-hub__launcher-icon,
.jw-hub .jw-hub__launcher-close {
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  pointer-events: none !important;
  transform: translate(-50%, -50%) !important;
  transform-origin: 50% 50% !important;
  transition: opacity .18s ease !important;
}

.jw-hub .jw-hub__launcher-icon {
  width: 29px !important;
  height: 29px !important;
  opacity: 1 !important;
}

.jw-hub .jw-hub__launcher-close {
  width: 26px !important;
  height: 26px !important;
  opacity: 0 !important;
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 2.4 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
}

.jw-hub[data-open="1"] .jw-hub__launcher-icon {
  opacity: 0 !important;
}

.jw-hub[data-open="1"] .jw-hub__launcher-close {
  opacity: 1 !important;
}



/* =========================================================
   v0.1.36 — launcher icon stage: hard pixel centering
   A dedicated full-size stage owns the center point. Theme SVG rules
   can no longer move the speech bubble or X independently.
   ========================================================= */
.jw-hub .jw-hub__launcher {
  position: absolute !important;
  right: 0 !important;
  bottom: 0 !important;
  display: block !important;
  padding: 0 !important;
  margin: 0 !important;
  text-align: initial !important;
  line-height: 0 !important;
  overflow: hidden !important;
}

.jw-hub .jw-hub__launcher-stage {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  display: grid !important;
  place-items: center !important;
  padding: 0 !important;
  margin: 0 !important;
  line-height: 0 !important;
  pointer-events: none !important;
}

.jw-hub .jw-hub__launcher-stage > .jw-hub__launcher-icon,
.jw-hub .jw-hub__launcher-stage > .jw-hub__launcher-close {
  position: static !important;
  grid-area: 1 / 1 !important;
  left: auto !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  transform: none !important;
  transform-origin: center center !important;
  vertical-align: middle !important;
  align-self: center !important;
  justify-self: center !important;
}

.jw-hub .jw-hub__launcher-stage > .jw-hub__launcher-icon {
  width: 30px !important;
  height: 30px !important;
}

.jw-hub .jw-hub__launcher-stage > .jw-hub__launcher-close {
  width: 27px !important;
  height: 27px !important;
}




/* =========================================================
   v0.1.38 — quick action buttons removed
   Messages now use the freed vertical space; input/footer stay anchored below.
   ========================================================= */
.jw-ai[data-open="1"] .jw-ai__messages {
  height: calc(100% - 58px - 56px - 21px) !important;
  min-height: 240px !important;
}



/* =========================================================
   v0.1.39 — lower AI dialog closer to the main button
   The dialog should sit noticeably lower: just above the main hub button.
   ========================================================= */
@media (min-width: 768px) {
  .jw-ai[data-open="1"] .jw-ai__panel {
    bottom: 4px !important;
  }

  .jw-ai[data-open="1"]::before,
  .jw-ai[data-open="1"]::after {
    content: none !important;
    display: none !important;
  }
}




/* =========================================================
   v0.1.40 — contextual response CTA buttons
   - manager suggestion -> "Написать в Telegram"
   - product selection -> "Посмотреть варианты"
   ========================================================= */
.jw-ai__response-actions {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 7px !important;
  width: 100% !important;
  margin: -3px 0 10px !important;
  padding: 0 1px !important;
}

.jw-ai__response-action {
  appearance: none !important;
  -webkit-appearance: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  min-height: 38px !important;
  padding: 0 14px !important;
  border: 1px solid rgba(155,224,0,.62) !important;
  border-radius: 999px !important;
  background: rgba(155,224,0,.055) !important;
  color: #f7f9f7 !important;
  box-shadow: none !important;
  font-family: "Montserrat", Arial, sans-serif !important;
  font-size: 10.5px !important;
  line-height: 1 !important;
  font-weight: 800 !important;
  text-decoration: none !important;
  cursor: pointer !important;
  transition: background .18s ease, border-color .18s ease, color .18s ease !important;
}

.jw-ai__response-action:hover {
  border-color: #9be000 !important;
  background: rgba(155,224,0,.11) !important;
  color: #fff !important;
}

.jw-ai__response-action i {
  color: #9be000 !important;
  font-size: 14px !important;
  line-height: 1 !important;
  font-style: normal !important;
  font-weight: 700 !important;
}

.jw-ai__response-action--telegram {
  background: #9be000 !important;
  border-color: #9be000 !important;
  color: #0c100d !important;
}

.jw-ai__response-action--telegram:hover {
  background: #b0fa00 !important;
  border-color: #b0fa00 !important;
  color: #080b09 !important;
}

.jw-ai__response-action--telegram i {
  color: #0c100d !important;
}

.jw-ai__products[hidden],
.jw-ai__response-action[hidden] {
  display: none !important;
}




/* =========================================================
   v0.1.41 — vehicle confirmation quick replies
   Russian/transliterated vehicle names -> compact Yes / No buttons.
   ========================================================= */
.jw-ai__response-action--confirm {
  min-width: 82px !important;
  justify-content: center !important;
  padding: 0 20px !important;
}

.jw-ai__response-action--yes {
  background: #9be000 !important;
  border-color: #9be000 !important;
  color: #0b0f0c !important;
}

.jw-ai__response-action--yes:hover {
  background: #b0fa00 !important;
  border-color: #b0fa00 !important;
  color: #080b09 !important;
}

.jw-ai__response-action--no {
  background: rgba(255,255,255,.025) !important;
  border-color: rgba(155,224,0,.42) !important;
  color: #f4f6f7 !important;
}




/* =========================================================
   v0.1.42 — intelligent vehicle clarification
   Generation buttons appear only when the selected year maps to >1 generation.
   ========================================================= */
.jw-ai__response-action--vehicle-option {
  flex: 1 1 100% !important;
  width: 100% !important;
  min-height: 38px !important;
  justify-content: space-between !important;
  padding: 0 14px !important;
  background: rgba(255,255,255,.025) !important;
  border-color: rgba(155,224,0,.48) !important;
}

.jw-ai__response-action--vehicle-option:hover {
  background: rgba(155,224,0,.09) !important;
  border-color: #9be000 !important;
}




/* =========================================================
   v0.1.43 — one-shot vehicle confirmation + aligned buttons
   ========================================================= */
.jw-ai__response-actions[hidden] {
  display: none !important;
}

.jw-ai__response-actions--confirm {
  display: grid !important;
  grid-template-columns: 92px 92px !important;
  justify-content: start !important;
  align-items: center !important;
  column-gap: 8px !important;
  row-gap: 0 !important;
  width: auto !important;
  max-width: 100% !important;
  margin: -2px 0 10px !important;
  padding: 0 !important;
}

.jw-ai__response-actions--confirm .jw-ai__response-action--confirm {
  box-sizing: border-box !important;
  width: 92px !important;
  min-width: 92px !important;
  max-width: 92px !important;
  height: 38px !important;
  min-height: 38px !important;
  padding: 0 !important;
  margin: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
}

.jw-ai__response-actions--confirm .jw-ai__response-action--confirm span {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1 !important;
  text-align: center !important;
}




/* =========================================================
   v0.1.46 — cleaner contextual buttons + immediate product preview
   ========================================================= */

/* CTAs must breathe below the assistant bubble instead of sticking to it. */
.jw-ai__response-actions,
.jw-ai__response-actions--confirm {
  margin-top: 10px !important;
  margin-bottom: 13px !important;
}

/* Product preview appears immediately; CTA goes below it. */
.jw-ai__products {
  margin-top: 12px !important;
  margin-bottom: 0 !important;
}

.jw-ai__products + .jw-ai__response-actions {
  margin-top: 11px !important;
}

/* "View all" is a clean standalone catalog CTA. */
.jw-ai__response-action--catalog {
  min-width: 190px !important;
  justify-content: space-between !important;
  background: rgba(155,224,0,.055) !important;
  border-color: rgba(155,224,0,.68) !important;
}

.jw-ai__response-action--catalog:hover {
  background: rgba(155,224,0,.12) !important;
  border-color: #9be000 !important;
}

/* Confirmation buttons keep their exact aligned grid, now with proper spacing. */
.jw-ai__response-actions--confirm {
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-top: 0 !important;
}




/* =========================================================
   v0.1.47 — five product previews + desktop arrows
   Desktop: arrows. Tablet/mobile: native touch horizontal scrolling.
   ========================================================= */

.jw-ai__products-shell {
  position: relative !important;
  width: 100% !important;
  max-width: 100% !important;
  margin-top: 12px !important;
  margin-bottom: 0 !important;
  overflow: visible !important;
}

.jw-ai__products-shell .jw-ai__products {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding-top: 2px !important;
  padding-bottom: 7px !important;
  scroll-behavior: smooth !important;
}

.jw-ai__products-shell + .jw-ai__response-actions {
  margin-top: 11px !important;
}

.jw-ai__products-arrow {
  position: absolute !important;
  top: 50% !important;
  z-index: 8 !important;
  display: none !important;
  align-items: center !important;
  justify-content: center !important;
  width: 34px !important;
  height: 34px !important;
  min-width: 34px !important;
  min-height: 34px !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 1px solid rgba(155,224,0,.78) !important;
  border-radius: 50% !important;
  background: rgba(10,14,11,.96) !important;
  color: #b5ff00 !important;
  box-shadow: 0 8px 22px rgba(0,0,0,.38), 0 0 12px rgba(155,224,0,.14) !important;
  font-family: Arial, sans-serif !important;
  font-size: 27px !important;
  line-height: 1 !important;
  cursor: pointer !important;
  transform: translateY(-50%) !important;
}

.jw-ai__products-arrow:hover {
  background: rgba(155,224,0,.12) !important;
  border-color: #9be000 !important;
}

.jw-ai__products-arrow--prev {
  left: 5px !important;
}

.jw-ai__products-arrow--next {
  right: 5px !important;
}

@media (min-width: 1025px) {
  .jw-ai__products-arrow {
    display: flex !important;
  }

  .jw-ai__products-shell .jw-ai__products {
    overflow-x: hidden !important;
    scrollbar-width: none !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .jw-ai__products-shell .jw-ai__products::-webkit-scrollbar {
    display: none !important;
  }
}

@media (min-width: 768px) and (max-width: 1024px) {
  .jw-ai__products-arrow {
    display: none !important;
  }

  .jw-ai__products-shell,
  .jw-ai__products-shell .jw-ai__products {
    touch-action: pan-x pan-y !important;
  }

  .jw-ai__products-shell .jw-ai__products {
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    scroll-snap-type: x mandatory !important;
    overscroll-behavior-x: contain !important;
  }
}




/* =========================================================
   v0.2.2 — consultant naming, cleaner cards, button refresh
   ========================================================= */
.jw-ai__brand strong,
.jw-hub__label,
.jw-ai__launcher-label { letter-spacing: 0 !important; }

.jw-ai__header-actions { gap: 0 !important; }
.jw-ai__close {
  width: 36px !important;
  height: 36px !important;
  border-radius: 12px !important;
  background: linear-gradient(180deg, #b7ef25 0%, #96de00 100%) !important;
  color: #111315 !important;
  box-shadow: 0 8px 22px rgba(155,224,0,.25), 0 0 0 1px rgba(255,255,255,.08) inset !important;
  transition: transform .18s ease, box-shadow .2s ease, filter .2s ease !important;
}
.jw-ai__close:hover {
  transform: translateY(-1px) !important;
  filter: brightness(1.03) !important;
  box-shadow: 0 12px 26px rgba(155,224,0,.3), 0 0 0 1px rgba(255,255,255,.08) inset !important;
}

.jw-ai__product-body { padding: 11px 11px 12px !important; }
.jw-ai__product-body strong {
  min-height: 34px !important;
  font-size: 12.5px !important;
  line-height: 1.28 !important;
  font-weight: 800 !important;
}
.jw-ai__product-body small {
  min-height: 38px !important;
  margin-top: 7px !important;
  color: #a8b0b5 !important;
  font-size: 10px !important;
  line-height: 1.45 !important;
}
.jw-ai__product-body b {
  margin-top: 10px !important;
  font-size: 15px !important;
  line-height: 1.1 !important;
}
.jw-ai__product-body em {
  display: block !important;
  margin-top: 5px !important;
  color: #99a2a8 !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: .01em !important;
}
.jw-ai__product-link {
  margin-top: 8px !important;
  font-size: 9.5px !important;
}

.jw-ai__response-actions { margin-top: 14px !important; }

.jw-ai__form {
  gap: 10px !important;
}
.jw-ai__input {
  min-height: 48px !important;
  border-radius: 14px !important;
}
.jw-ai__send {
  position: relative !important;
  overflow: hidden !important;
  display: grid !important;
  place-items: center !important;
  width: 48px !important;
  height: 48px !important;
  flex: 0 0 48px !important;
  border: 1px solid rgba(155,224,0,.72) !important;
  border-radius: 15px !important;
  background: linear-gradient(180deg, #b8ef1f 0%, #99df04 100%) !important;
  color: #101314 !important;
  box-shadow: 0 10px 24px rgba(155,224,0,.25), 0 0 0 1px rgba(255,255,255,.08) inset !important;
  transition: transform .18s ease, box-shadow .22s ease, filter .22s ease !important;
}
.jw-ai__send:hover {
  transform: translateY(-1px) !important;
  filter: brightness(1.03) !important;
  box-shadow: 0 14px 28px rgba(155,224,0,.32), 0 0 0 1px rgba(255,255,255,.08) inset !important;
}
.jw-ai__send:active { transform: scale(.95) !important; }
.jw-ai__send svg {
  width: 20px !important;
  height: 20px !important;
  stroke: currentColor !important;
  stroke-width: 2.1 !important;
}
.jw-ai__send::after {
  content: '';
  position: absolute;
  inset: auto;
  width: 12px;
  height: 12px;
  border-radius: 999px;
  background: rgba(255,255,255,.42);
  opacity: 0;
  transform: scale(.4);
  pointer-events: none;
}
.jw-ai__send--flash::after {
  animation: jw-ai-send-ripple .42s ease-out;
}
@keyframes jw-ai-send-ripple {
  0% { opacity: .55; transform: scale(.3); }
  100% { opacity: 0; transform: scale(5.2); }
}

.jw-ai__launcher,
.jw-hub__launcher {
  will-change: transform, box-shadow;
}
.jw-ai[data-open="0"] .jw-ai__launcher {
  animation: jw-ai-launcher-breath 3.6s ease-in-out infinite !important;
}
.jw-hub[data-open="0"] .jw-hub__launcher {
  animation: jw-hub-launcher-breath 3.9s ease-in-out infinite !important;
}
@keyframes jw-ai-launcher-breath {
  0%, 100% { transform: translateY(0) scale(1); box-shadow: 0 10px 30px rgba(0,0,0,.24), 0 0 0 1px rgba(255,255,255,.16) inset; }
  50% { transform: translateY(-2px) scale(1.03); box-shadow: 0 14px 38px rgba(0,0,0,.30), 0 0 18px rgba(155,224,0,.16); }
}
@keyframes jw-hub-launcher-breath {
  0%, 100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.035); }
}
.jw-ai__launcher--tap,
.jw-hub__launcher--tap {
  animation: jw-ui-tap .38s cubic-bezier(.2,.8,.2,1) !important;
}
@keyframes jw-ui-tap {
  0% { transform: scale(1); }
  45% { transform: scale(.94); }
  100% { transform: scale(1); }
}




/* =========================================================
   v0.2.3 — launcher / close / send visual polish
   ========================================================= */
.jw-ai__header-actions {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
}

.jw-ai__close {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 40px !important;
  width: 40px !important;
  min-width: 40px !important;
  max-width: 40px !important;
  height: 40px !important;
  min-height: 40px !important;
  max-height: 40px !important;
  aspect-ratio: 1 / 1 !important;
  padding: 0 !important;
  border-radius: 12px !important;
  line-height: 1 !important;
  font-size: 26px !important;
  font-weight: 700 !important;
  text-align: center !important;
  background: linear-gradient(180deg, #baf11d 0%, #9be000 100%) !important;
  color: #111315 !important;
}
.jw-ai__close span,
.jw-ai__close i { line-height: 1 !important; }

.jw-ai__form {
  align-items: center !important;
}
.jw-ai__send {
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  align-self: center !important;
  width: 50px !important;
  min-width: 50px !important;
  max-width: 50px !important;
  height: 50px !important;
  min-height: 50px !important;
  max-height: 50px !important;
  flex: 0 0 50px !important;
  padding: 0 !important;
  border-radius: 16px !important;
  background: linear-gradient(180deg, #bff51f 0%, #9ae100 100%) !important;
  box-shadow: 0 12px 28px rgba(155,224,0,.24), 0 0 0 1px rgba(255,255,255,.08) inset !important;
}
.jw-ai__send::before {
  content: '' !important;
  position: absolute !important;
  inset: 4px !important;
  border-radius: 13px !important;
  background: linear-gradient(180deg, rgba(255,255,255,.14) 0%, rgba(255,255,255,0) 55%) !important;
  pointer-events: none !important;
}
.jw-ai__send svg {
  position: relative !important;
  width: 20px !important;
  height: 20px !important;
  transform: translateX(-1px) translateY(0.5px) !important;
  fill: none !important;
  stroke: #0f1211 !important;
  stroke-width: 2.05 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
}
.jw-ai__send:hover {
  transform: translateY(-1px) !important;
  box-shadow: 0 16px 30px rgba(155,224,0,.30), 0 0 0 1px rgba(255,255,255,.08) inset !important;
}
.jw-ai__send:active { transform: scale(.94) !important; }
.jw-ai__send--flash {
  animation: jw-ai-send-press .34s cubic-bezier(.2,.9,.2,1) !important;
}
@keyframes jw-ai-send-press {
  0% { transform: scale(1); }
  45% { transform: scale(.92); }
  100% { transform: scale(1); }
}

/* Main floating button: more obvious but still premium animation */
.jw-ai[data-open="0"] .jw-ai__launcher {
  animation: jw-ai-launcher-float 3.4s ease-in-out infinite !important;
}
.jw-ai[data-open="0"] .jw-ai__launcher-icon {
  animation: jw-ai-launcher-glow 3.4s ease-in-out infinite !important;
}
@keyframes jw-ai-launcher-float {
  0%, 100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-4px) scale(1.045); }
}
@keyframes jw-ai-launcher-glow {
  0%, 100% { box-shadow: 0 12px 30px rgba(0,0,0,.40), 0 0 20px rgba(155,224,0,.22), inset 0 0 18px rgba(155,224,0,.055) !important; }
  50% { box-shadow: 0 18px 38px rgba(0,0,0,.42), 0 0 26px rgba(155,224,0,.34), inset 0 0 20px rgba(155,224,0,.09) !important; }
}
.jw-ai__launcher--tap .jw-ai__launcher-icon,
.jw-hub__launcher--tap {
  animation: jw-ai-launcher-tap .34s cubic-bezier(.2,.9,.2,1) !important;
}
@keyframes jw-ai-launcher-tap {
  0% { transform: scale(1); }
  45% { transform: scale(.92); }
  100% { transform: scale(1); }
}




/* =========================================================
   v0.2.4 — acid green main launcher + Border Run
   ========================================================= */
.jw-hub .jw-hub__launcher,
.jw-hub[data-open="0"] .jw-hub__launcher,
.jw-hub[data-open="1"] .jw-hub__launcher {
  background: #c6ff00 !important;
  background-image: linear-gradient(180deg, #d4ff22 0%, #baff00 100%) !important;
  color: #0b0e0c !important;
  border: 1.5px solid #dfff67 !important;
  box-shadow:
    0 12px 30px rgba(0,0,0,.34),
    0 0 22px rgba(198,255,0,.34),
    inset 0 1px 0 rgba(255,255,255,.38),
    inset 0 -2px 6px rgba(72,102,0,.12) !important;
  overflow: hidden !important;
  animation: none !important;
  transition: box-shadow .22s ease, filter .22s ease !important;
}

.jw-hub .jw-hub__launcher:hover {
  filter: brightness(1.025) !important;
  box-shadow:
    0 14px 34px rgba(0,0,0,.36),
    0 0 28px rgba(198,255,0,.46),
    inset 0 1px 0 rgba(255,255,255,.42),
    inset 0 -2px 6px rgba(72,102,0,.10) !important;
}

/* Keep the actual chat / close icon perfectly static in the center. */
.jw-hub .jw-hub__launcher-stage > .jw-hub__launcher-icon,
.jw-hub .jw-hub__launcher-stage > .jw-hub__launcher-close {
  color: #0b0e0c !important;
  stroke: #0b0e0c !important;
  filter: none !important;
  animation: none !important;
}

/* White/lime highlight runs around the perimeter only. */
.jw-hub .jw-hub__launcher-stage::before {
  content: '' !important;
  position: absolute !important;
  inset: 1px !important;
  z-index: 0 !important;
  border-radius: 50% !important;
  pointer-events: none !important;
  background: conic-gradient(
    from 0deg,
    transparent 0deg,
    transparent 286deg,
    rgba(255,255,255,.06) 300deg,
    rgba(255,255,255,.72) 320deg,
    #ffffff 335deg,
    rgba(233,255,158,.94) 348deg,
    transparent 360deg
  ) !important;
  -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 3.5px), #000 calc(100% - 2.4px)) !important;
  mask: radial-gradient(farthest-side, transparent calc(100% - 3.5px), #000 calc(100% - 2.4px)) !important;
  transform-origin: 50% 50% !important;
  animation: jw-hub-border-run 4.1s linear infinite !important;
}

/* A subtle outer neon halo follows the light, without moving the button. */
.jw-hub .jw-hub__launcher-stage::after {
  content: '' !important;
  position: absolute !important;
  inset: -1px !important;
  z-index: 0 !important;
  border-radius: 50% !important;
  pointer-events: none !important;
  background: conic-gradient(
    from 0deg,
    transparent 0deg 308deg,
    rgba(224,255,112,.02) 314deg,
    rgba(255,255,255,.20) 334deg,
    transparent 355deg 360deg
  ) !important;
  filter: blur(3px) !important;
  transform-origin: 50% 50% !important;
  animation: jw-hub-border-run 4.1s linear infinite !important;
}

@keyframes jw-hub-border-run {
  0%   { transform: rotate(0deg); }
  64%  { transform: rotate(360deg); }
  100% { transform: rotate(360deg); }
}

/* The icons must render above the animated rings. */
.jw-hub .jw-hub__launcher-stage > .jw-hub__launcher-icon,
.jw-hub .jw-hub__launcher-stage > .jw-hub__launcher-close {
  position: relative !important;
  z-index: 2 !important;
}

/* Short press response; returns immediately to the static centered geometry. */
.jw-hub .jw-hub__launcher.jw-hub__launcher--tap {
  animation: jw-hub-acid-tap .34s cubic-bezier(.2,.9,.2,1) !important;
}
@keyframes jw-hub-acid-tap {
  0%   { transform: scale(1); }
  45%  { transform: scale(.94); }
  100% { transform: scale(1); }
}

@media (prefers-reduced-motion: reduce) {
  .jw-hub .jw-hub__launcher-stage::before,
  .jw-hub .jw-hub__launcher-stage::after {
    animation: none !important;
  }
}


/* =========================================================
   v0.2.5 — assistant **bold** accent
   Text wrapped by the model in **double asterisks** is rendered
   as a bold Jetwheels acid-green accent instead of showing stars.
   ========================================================= */
.jw-ai__message--assistant .jw-ai__acid-strong {
  color: #c6ff00 !important;
  font-weight: 900 !important;
  letter-spacing: 0 !important;
}


/* =========================================================
   v0.2.6 — route action button
   ========================================================= */
.jw-ai__response-action--route {
  background: #b7ff00 !important;
  border-color: #b7ff00 !important;
  color: #0b0e0c !important;
  font-weight: 900 !important;
}
.jw-ai__response-action--route:hover {
  background: #c5ff25 !important;
  border-color: #c5ff25 !important;
  color: #080b09 !important;
  box-shadow: 0 8px 22px rgba(183,255,0,.2) !important;
}
.jw-ai__response-action--route i { color: #0b0e0c !important; }


/* =========================================================
   v0.2.8 — guided warranty choices
   ========================================================= */
.jw-ai__response-actions--choice {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  margin-top: 10px !important;
}

.jw-ai__response-action--choice {
  min-width: 116px !important;
  height: 38px !important;
  padding: 0 14px !important;
  border-radius: 999px !important;
  background: rgba(155,224,0,.055) !important;
  border: 1px solid rgba(155,224,0,.62) !important;
  color: #f4f6f7 !important;
}

.jw-ai__response-action--choice:hover {
  background: rgba(155,224,0,.14) !important;
  border-color: #b7ef25 !important;
  color: #b7ef25 !important;
}

.jw-ai__response-action--choice i {
  color: #b7ef25 !important;
}


/* =========================================================
   v0.3.0 — mobile layout #1: near-fullscreen chat
   ========================================================= */


/* Short screens: preserve the same near-fullscreen layout, only tighten chrome. */



/* =========================================================
   v0.3.1 — mobile bottom flush + hide master hub while chat is open
   ========================================================= */

/* The master floating contact button must not compete with the open AI dialog. */
.jw-ai[data-open="1"] + .jw-hub {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transform: scale(.94) !important;
  transition:
    opacity .18s ease,
    visibility .18s ease,
    transform .18s ease !important;
}

/* Restore it when the dialog is closed. */
.jw-ai[data-open="0"] + .jw-hub {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transform: none !important;
  transition:
    opacity .20s ease,
    visibility .20s ease,
    transform .20s ease !important;
}






/* =========================================================
   v0.3.2 — F12 geometry fix
   Console showed:
   viewport bottom = 938
   panel bottom    = 938
   footer bottom   = 937
   so panel geometry is already correct. Remaining overlap was #jw-hub.
   ========================================================= */

/* Do not depend on sibling order — hide the master hub from the page-open state. */
html.jw-ai-mobile-open #jw-hub,
body.jw-ai-mobile-open #jw-hub {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/* Desktop/open safety as well: if the assistant is open, the hub must not overlap it. */
.jw-ai[data-open="1"] ~ #jw-hub,
.jw-ai[data-open="1"] ~ .jw-hub {
  display: none !important;
}

/* Keep the mobile dialog mathematically flush with the visual viewport. */



/* =========================================================
   v0.3.4 — finalized chat shell
   Mobile: approved Bottom Sheet above Woodmart white toolbar.
   Desktop/iPad: same borderless neon language.
   ========================================================= */

/* ---------- ALL DEVICES: borderless panel + brighter neon ---------- */
.jw-ai[data-open="1"] .jw-ai__panel {
  border: 0 !important;
  outline: 0 !important;
  background: rgba(8, 12, 14, .97) !important;
  box-shadow:
    0 28px 65px rgba(0,0,0,.72),
    0 12px 34px rgba(0,0,0,.58),
    0 0 12px rgba(183,239,37,.58),
    0 0 24px rgba(183,239,37,.42),
    0 0 42px rgba(183,239,37,.30),
    0 0 70px rgba(183,239,37,.20),
    0 0 100px rgba(183,239,37,.12) !important;
}

/* Remove the service text under the input everywhere. */
.jw-ai__footer,
.jw-ai[data-open="1"] .jw-ai__footer {
  display: none !important;
  height: 0 !important;
  min-height: 0 !important;
  max-height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow: hidden !important;
}

/* Input field: green frame only around textarea/input; send button stays separate. */
.jw-ai__form,
.jw-ai[data-open="1"] .jw-ai__form {
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  gap: 8px !important;
}

.jw-ai__input,
.jw-ai[data-open="1"] .jw-ai__input {
  flex: 1 1 auto !important;
  width: auto !important;
  min-width: 0 !important;
  border: 2.5px solid rgba(183,239,37,1) !important;
  border-radius: 14px !important;
  background: rgba(18,22,23,.96) !important;
  box-shadow:
    0 0 12px rgba(183,239,37,.18),
    inset 0 0 0 1px rgba(183,239,37,.035) !important;
  outline: none !important;
}

.jw-ai__input:focus,
.jw-ai[data-open="1"] .jw-ai__input:focus {
  border-color: #c6ff00 !important;
  box-shadow:
    0 0 15px rgba(198,255,0,.25),
    0 0 26px rgba(198,255,0,.08) !important;
}

/* Keep send control independent from the input frame. */
.jw-ai__send,
.jw-ai[data-open="1"] .jw-ai__send {
  margin: 0 !important;
}

/* ---------- MOBILE FINAL LAYOUT ---------- */


/* Small mobile screens: keep the sheet usable. */


/* ---------- TABLET / iPad ---------- */
@media (min-width: 768px) and (max-width: 1180px) {
  .jw-ai[data-open="1"] .jw-ai__panel {
    border: 0 !important;
    outline: 0 !important;
    box-shadow:
      0 28px 65px rgba(0,0,0,.72),
      0 12px 34px rgba(0,0,0,.58),
      0 0 12px rgba(183,239,37,.58),
      0 0 24px rgba(183,239,37,.42),
      0 0 42px rgba(183,239,37,.30),
      0 0 70px rgba(183,239,37,.20),
      0 0 100px rgba(183,239,37,.12) !important;
  }

  .jw-ai[data-open="1"] .jw-ai__input {
    border: 2.5px solid rgba(183,239,37,1) !important;
    box-shadow: 0 0 12px rgba(183,239,37,.18) !important;
  }
}

/* ---------- DESKTOP ---------- */
@media (min-width: 1181px) {
  .jw-ai[data-open="1"] .jw-ai__panel {
    border: 0 !important;
    outline: 0 !important;
    box-shadow:
      0 28px 65px rgba(0,0,0,.72),
      0 12px 34px rgba(0,0,0,.58),
      0 0 12px rgba(183,239,37,.58),
      0 0 24px rgba(183,239,37,.42),
      0 0 42px rgba(183,239,37,.30),
      0 0 70px rgba(183,239,37,.20),
      0 0 100px rgba(183,239,37,.12) !important;
  }

  .jw-ai[data-open="1"] .jw-ai__input {
    border: 2.5px solid rgba(183,239,37,1) !important;
    box-shadow: 0 0 12px rgba(183,239,37,.18) !important;
  }
}


/* =========================================================
   v0.3.5 — approved desktop/iPad refinements
   Mobile rules from v0.3.4 intentionally remain unchanged.
   ========================================================= */

@media (min-width: 768px) {
  /* Clean messenger bubbles without tails. */
  .jw-ai[data-open="1"] .jw-ai__message {
    margin-bottom: 15px !important;
  }

  .jw-ai[data-open="1"] .jw-ai__bubble {
    position: relative !important;
    width: fit-content !important;
    max-width: 84% !important;
    padding: 11px 13px !important;
    border: 0 !important;
    overflow: hidden !important;
    font-size: 12.5px !important;
    line-height: 1.45 !important;
  }

  .jw-ai[data-open="1"] .jw-ai__bubble::before,
  .jw-ai[data-open="1"] .jw-ai__bubble::after {
    content: none !important;
    display: none !important;
  }

  .jw-ai[data-open="1"] .jw-ai__message--assistant {
    align-items: flex-start !important;
    padding-left: 7px !important;
  }

  .jw-ai[data-open="1"] .jw-ai__message--assistant .jw-ai__bubble {
    background: linear-gradient(180deg, #252b2f 0%, #202529 100%) !important;
    color: #f3f4f5 !important;
    border: 1px solid rgba(255,255,255,.055) !important;
    border-radius: 17px 17px 17px 6px !important;
    box-shadow:
      0 8px 20px rgba(0,0,0,.22),
      0 0 0 1px rgba(183,239,37,.025) !important;
  }

  .jw-ai[data-open="1"] .jw-ai__message--user {
    align-items: flex-end !important;
    padding-right: 7px !important;
  }

  .jw-ai[data-open="1"] .jw-ai__message--user .jw-ai__bubble {
    background: linear-gradient(135deg, #88c900 0%, #a3e800 100%) !important;
    color: #fff !important;
    border-radius: 17px 17px 6px 17px !important;
    box-shadow: 0 7px 18px rgba(128,190,0,.13) !important;
  }

  /* Slightly lighter conversation canvas with a very faint, dense wheel pattern. */
  .jw-ai[data-open="1"] .jw-ai__messages {
    background-color: #151b1f !important;
    background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNDAiIGhlaWdodD0iMTQwIiB2aWV3Qm94PSIwIDAgMTQwIDE0MCI+CjxnIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2M3ZmYzOCIgc3Ryb2tlLXdpZHRoPSIxIiBzdHJva2Utb3BhY2l0eT0iMC4wNDUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+CjxjaXJjbGUgY3g9IjIyIiBjeT0iMjQiIHI9IjEwIi8+PGNpcmNsZSBjeD0iMjIiIGN5PSIyNCIgcj0iMyIvPjxwYXRoIGQ9Ik0yMiAxNHYyME0xMiAyNGgyME0xNSAxN2wxNCAxNE0yOSAxN0wxNSAzMSIvPgo8Y2lyY2xlIGN4PSI3MiIgY3k9IjI4IiByPSI5Ii8+PGNpcmNsZSBjeD0iNzIiIGN5PSIyOCIgcj0iMi41Ii8+PHBhdGggZD0iTTcyIDE5bDQgOSA5IDQtOSA0LTQgOS00LTktOS00IDktNHoiLz4KPGNpcmNsZSBjeD0iMTE4IiBjeT0iMjIiIHI9IjguNSIvPjxjaXJjbGUgY3g9IjExOCIgY3k9IjIyIiByPSIyLjUiLz48cGF0aCBkPSJNMTE4IDEzbDMgOSA4IDMtOCAzLTMgOC0zLTgtOC0zIDgtM3oiLz4KPHBhdGggZD0iTTE4IDY2aDExYTUgNSAwIDAgMSA1IDV2NWE1IDUgMCAwIDEtNSA1aC01bC00IDN2LTNoLTJhNSA1IDAgMCAxLTUtNXYtNWE1IDUgMCAwIDEgNS01eiIvPgo8cGF0aCBkPSJNNjEgNjNoMTBhNCA0IDAgMCAxIDQgNHY0YTQgNCAwIDAgMS00IDRoLTRsLTMgM3YtM2gtM2E0IDQgMCAwIDEtNC00di00YTQgNCAwIDAgMSA0LTR6Ii8+CjxwYXRoIGQ9Ik0xMDMgNjloMTBNMTA5IDY1bDQgNC00IDQiLz4KPGNpcmNsZSBjeD0iMzEiIGN5PSIxMTEiIHI9IjgiLz48Y2lyY2xlIGN4PSIzMSIgY3k9IjExMSIgcj0iMi41Ii8+PHBhdGggZD0iTTMxIDEwM3YxNk0yMyAxMTFoMTZNMjUgMTA1bDEyIDEyTTM3IDEwNWwtMTIgMTIiLz4KPGNpcmNsZSBjeD0iODMiIGN5PSIxMDciIHI9IjkiLz48Y2lyY2xlIGN4PSI4MyIgY3k9IjEwNyIgcj0iMi41Ii8+PHBhdGggZD0iTTgzIDk4bDMgOSA5IDMtOSAzLTMgOS0zLTktOS0zIDktM3oiLz4KPHBhdGggZD0iTTExNSAxMDRoOE0xMTkgMTAwbDQgNC00IDRNMTExIDExOWwyIDMgMyAyLTMgMi0yIDMtMi0zLTMtMiAzLTJ6Ii8+CjwvZz48L3N2Zz4=") !important;
    background-repeat: repeat !important;
    background-size: 140px 140px !important;
    background-position: 0 0 !important;
  }

  /* Messenger-style input auto-grow: form stays at the bottom, messages give up
     vertical space as the textarea grows upward. */
  .jw-ai[data-open="1"] .jw-ai__panel {
    display: flex !important;
    flex-direction: column !important;
  }

  .jw-ai[data-open="1"] .jw-ai__header {
    flex: 0 0 auto !important;
  }

  .jw-ai[data-open="1"] .jw-ai__messages {
    flex: 1 1 auto !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow-y: auto !important;
  }

  .jw-ai[data-open="1"] .jw-ai__form {
    flex: 0 0 auto !important;
    height: auto !important;
    min-height: 58px !important;
    align-items: flex-end !important;
    margin-top: auto !important;
  }

  .jw-ai[data-open="1"] .jw-ai__input {
    box-sizing: border-box !important;
    min-height: 46px !important;
    height: 46px;
    max-height: 132px !important;
    resize: none !important;
    overflow-y: hidden;
    line-height: 1.42 !important;
    padding-top: 12px !important;
    padding-bottom: 12px !important;
  }

  .jw-ai[data-open="1"] .jw-ai__send {
    align-self: flex-end !important;
    flex-shrink: 0 !important;
  }

  /* Compact product cards, matching the approved F12 version. */
  .jw-ai[data-open="1"] .jw-ai__product {
    flex: 0 0 145px !important;
    width: 145px !important;
    max-width: 145px !important;
    border-radius: 11px !important;
  }

  .jw-ai[data-open="1"] .jw-ai__product-media {
    height: 94px !important;
  }

  .jw-ai[data-open="1"] .jw-ai__product-body {
    padding: 8px 8px 9px !important;
  }

  .jw-ai[data-open="1"] .jw-ai__product-body strong {
    min-height: 27px !important;
    font-size: 10.5px !important;
    line-height: 1.25 !important;
  }

  .jw-ai[data-open="1"] .jw-ai__product-body small {
    min-height: 24px !important;
    margin-top: 4px !important;
    font-size: 8.5px !important;
    line-height: 1.3 !important;
  }

  .jw-ai[data-open="1"] .jw-ai__product-body b {
    margin-top: 6px !important;
    font-size: 13px !important;
  }

  .jw-ai[data-open="1"] .jw-ai__product-body em {
    margin-top: 2px !important;
    font-size: 8px !important;
  }

  .jw-ai[data-open="1"] .jw-ai__product-link {
    margin-top: 5px !important;
    font-size: 8px !important;
  }

  /* Hide the top close button only on tablet/desktop. Mobile stays exactly as-is. */
  .jw-ai[data-open="1"] .jw-ai__close {
    display: none !important;
  }

  /* Stable lower master-button close mode. */
  html body.jw-ai-desktop-open #jw-hub.jw-hub,
  html body.jw-ai-desktop-pending #jw-hub.jw-hub {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: none !important;
    animation: none !important;
    z-index: 2147483647 !important;
  }

  body.jw-ai-desktop-open #jw-hub .jw-hub__actions,
  body.jw-ai-desktop-pending #jw-hub .jw-hub__actions {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }

  body.jw-ai-desktop-open #jw-hub .jw-hub__launcher,
  body.jw-ai-desktop-pending #jw-hub .jw-hub__launcher {
    transform: none !important;
    animation: none !important;
    transition: box-shadow .20s ease, background .20s ease !important;
  }

  body.jw-ai-desktop-open #jw-hub .jw-hub__launcher-icon,
  body.jw-ai-desktop-pending #jw-hub .jw-hub__launcher-icon {
    opacity: 0 !important;
    visibility: hidden !important;
  }

  body.jw-ai-desktop-open #jw-hub .jw-hub__launcher-close,
  body.jw-ai-desktop-pending #jw-hub .jw-hub__launcher-close {
    opacity: 1 !important;
    visibility: visible !important;
    width: 28px !important;
    height: 28px !important;
    fill: none !important;
    stroke: #0b0e0c !important;
    stroke-width: 2.8 !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
    transform: none !important;
  }

  body.jw-ai-desktop-open #jw-hub .jw-hub__launcher,
  body.jw-ai-desktop-pending #jw-hub .jw-hub__launcher {
    background: linear-gradient(180deg, #d8ff28 0%, #baff00 100%) !important;
    border-color: #d7ff43 !important;
    box-shadow:
      0 14px 34px rgba(0,0,0,.40),
      0 0 28px rgba(198,255,0,.52),
      0 0 50px rgba(198,255,0,.25) !important;
  }
}

/* Desktop only: move carousel controls next to "Посмотреть все варианты". */
@media (min-width: 1025px) {
  .jw-ai__response-actions.jw-product-actions-row {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
    width: 100% !important;
  }

  .jw-product-nav {
    display: flex !important;
    align-items: center !important;
    gap: 3px !important;
    margin-left: auto !important;
    padding: 3px !important;
    border: 1px solid rgba(183,239,37,.72) !important;
    border-radius: 14px !important;
    background: rgba(13,17,18,.94) !important;
    box-shadow:
      0 8px 22px rgba(0,0,0,.30),
      0 0 14px rgba(183,239,37,.10) !important;
  }

  .jw-product-nav .jw-ai__products-arrow {
    position: static !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 34px !important;
    min-width: 34px !important;
    height: 32px !important;
    min-height: 32px !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 10px !important;
    box-shadow: none !important;
    font-family: Arial, sans-serif !important;
    font-size: 24px !important;
    font-weight: 400 !important;
    line-height: 1 !important;
    transition:
      transform .16s ease,
      background .18s ease,
      box-shadow .18s ease !important;
  }

  .jw-product-nav .jw-ai__products-arrow--prev {
    background: rgba(255,255,255,.035) !important;
    color: #b7ef25 !important;
  }

  .jw-product-nav .jw-ai__products-arrow--next {
    background: linear-gradient(180deg, #caff20 0%, #a8ea00 100%) !important;
    color: #101310 !important;
    box-shadow: 0 4px 12px rgba(183,239,37,.18) !important;
  }

  .jw-product-nav .jw-ai__products-arrow:hover {
    transform: translateY(-1px) !important;
  }

  .jw-product-nav .jw-ai__products-arrow--prev:hover {
    background: rgba(183,239,37,.11) !important;
  }

  .jw-product-nav .jw-ai__products-arrow--next:hover {
    box-shadow: 0 6px 16px rgba(183,239,37,.30) !important;
  }

  .jw-product-nav .jw-ai__products-arrow:active {
    transform: scale(.94) !important;
  }
}

/* iPad/mobile use swipe, so the relocated desktop nav is intentionally hidden. */
@media (min-width: 768px) and (max-width: 1024px) {
  .jw-product-nav {
    display: none !important;
  }
}


/* =========================================================
   v0.3.6 — close animation + refined desktop product navigation
   ========================================================= */

@media (min-width: 768px) {
  /* Keep the hub/X perfectly stationary while the panel closes. */
  .jw-ai.jw-ai--closing + #jw-hub,
  body.jw-ai-desktop-open #jw-hub,
  body.jw-ai-desktop-pending #jw-hub {
    transform: none !important;
  }
}

@media (min-width: 1025px) {
  .jw-product-nav {
    box-sizing: border-box !important;
    min-width: 76px !important;
    height: 38px !important;
    padding: 3px !important;
    gap: 3px !important;
    border: 1.5px solid rgba(183,239,37,.74) !important;
    border-radius: 13px !important;
    background: rgba(11,15,16,.96) !important;
    box-shadow:
      0 8px 20px rgba(0,0,0,.30),
      0 0 12px rgba(183,239,37,.09) !important;
  }

  .jw-product-nav .jw-ai__products-arrow {
    position: static !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    width: 32px !important;
    min-width: 32px !important;
    height: 30px !important;
    min-height: 30px !important;
    border-radius: 9px !important;
    transform: none !important;
    overflow: hidden !important;
  }

  .jw-product-nav .jw-ai__products-arrow-icon {
    display: block !important;
    width: 17px !important;
    height: 17px !important;
    fill: none !important;
    stroke: currentColor !important;
    stroke-width: 2.15 !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
    pointer-events: none !important;
  }

  .jw-product-nav .jw-ai__products-arrow--prev {
    background: rgba(255,255,255,.025) !important;
    color: #b7ef25 !important;
  }

  .jw-product-nav .jw-ai__products-arrow--next {
    background: linear-gradient(180deg, #d0ff24 0%, #a9eb00 100%) !important;
    color: #0c110d !important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.28),
      0 4px 12px rgba(183,239,37,.18) !important;
  }

  .jw-product-nav .jw-ai__products-arrow:hover {
    transform: none !important;
  }

  .jw-product-nav .jw-ai__products-arrow--prev:hover {
    background: rgba(183,239,37,.10) !important;
  }

  .jw-product-nav .jw-ai__products-arrow--next:hover {
    background: linear-gradient(180deg, #dbff3f 0%, #b4f200 100%) !important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.32),
      0 5px 15px rgba(183,239,37,.27) !important;
  }

  .jw-product-nav .jw-ai__products-arrow:active {
    transform: scale(.95) !important;
  }
}
