
@keyframes jhbAttentionPulse{
  0%{ transform:translateZ(0) scale(1); box-shadow:var(--jhb-fab-shadow), 0 0 0 0 rgba(233,98,11,.18); }
  35%{ transform:translateZ(0) scale(1.03); box-shadow:var(--jhb-fab-shadow-hover), 0 0 0 10px rgba(233,98,11,0); }
  70%{ transform:translateZ(0) scale(1); box-shadow:var(--jhb-fab-shadow), 0 0 0 0 rgba(233,98,11,0); }
  100%{ transform:translateZ(0) scale(1); box-shadow:var(--jhb-fab-shadow), 0 0 0 0 rgba(233,98,11,0); }
}

@keyframes jhbAttentionGlow{
  0%{ opacity:0; transform:scale(.94); }
  35%{ opacity:.2; transform:scale(1.08); }
  100%{ opacity:0; transform:scale(1.18); }
}

.jhbBot3__fab.is-attention{
  animation:jhbAttentionPulse 1.9s cubic-bezier(.22,.61,.36,1) 2;
}

.jhbBot3__fab.is-attention::after{
  content:"";
  position:absolute;
  inset:-8px;
  border-radius:999px;
  border:1.5px solid rgba(255,255,255,.28);
  animation:jhbAttentionGlow 1.9s ease-out 2;
  pointer-events:none;
}
/* -------------------------------------------------------------------------- */
/* Root and theme tokens                                                      */
/* -------------------------------------------------------------------------- */
:host{
  all:initial;
  color-scheme:light;
  font-family:"Nunito","Nunito Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
}

:host,
:root{
  --jhb-brand:#E9620B;
  --jhb-brand-strong:#cf5400;
  --jhb-brand-soft:#fff7f1;
  --jhb-panel:#ffffff;
  --jhb-page:#f4f6f9;
  --jhb-text:#17324d;
  --jhb-text-soft:#5f6f83;
  --jhb-line:#e6ebf1;
  --jhb-shadow:0 26px 60px rgba(23,50,77,.20);
  --jhb-fab-size:64px;
  --jhb-fab-size-mobile:48px;
  --jhb-fab-radius:999px;
  --jhb-fab-radius-mobile:999px;
  --jhb-fab-icon-size:42px;
  --jhb-fab-icon-size-mobile:32px;
  --jhb-fab-grad-1:#ff8a3d;
  --jhb-fab-grad-2:#e9620b;
  --jhb-fab-shadow:0 12px 30px rgba(233,98,11,.18), 0 4px 10px rgba(0,0,0,.08);
  --jhb-fab-shadow-hover:0 18px 40px rgba(233,98,11,.28), 0 6px 14px rgba(0,0,0,.12);
}

:host,
:host *,
:host *::before,
:host *::after{ box-sizing:border-box; }

:host a{ color:inherit; }

.jhbBot3,
.jhbBot3 input,
.jhbBot3 button,
.jhbBot3 textarea{
  font-family:"Nunito","Nunito Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
}

/* -------------------------------------------------------------------------- */
/* Floating launcher                                                          */
/* -------------------------------------------------------------------------- */
.jhbBot3{
  position:fixed;
  left:18px;
  bottom:18px;
  z-index:999999;
  color:var(--jhb-text);
}

.jhbBot3 svg{ display:block; }

.jhbBot3__fab{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:0;
  width:var(--jhb-fab-size);
  min-width:var(--jhb-fab-size);
  min-height:var(--jhb-fab-size);
  height:var(--jhb-fab-size);
  padding:0;
  border:1px solid rgba(255,255,255,.25);
  border-radius:var(--jhb-fab-radius);
  background:linear-gradient(145deg, var(--jhb-fab-grad-1), var(--jhb-fab-grad-2));
  color:#fff;
  cursor:pointer;
  overflow:hidden;
  box-shadow:var(--jhb-fab-shadow);
  transition:transform .25s ease, box-shadow .25s ease, opacity .22s ease, filter .22s ease;
  animation:jhbBot3FabDrift 5.6s ease-in-out infinite;
}

.jhbBot3__fab::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  background:radial-gradient(circle at 30% 30%, rgba(255,255,255,.25), transparent 60%);
  opacity:.95;
  animation:jhbBot3FabPulse 5.2s ease-in-out infinite;
  pointer-events:none;
}

.jhbBot3__fab:hover{
  transform:translateY(-2px);
  box-shadow:var(--jhb-fab-shadow-hover);
}

.jhbBot3__fab.is-scrolling{ opacity:.92; }

.jhbBot3__fab img,
.jhbBot3__fabFallback{
  position:relative;
  z-index:1;
  display:grid;
  place-items:center;
  width:var(--jhb-fab-icon-size);
  height:var(--jhb-fab-icon-size);
  flex:0 0 var(--jhb-fab-icon-size);
  padding:0;
  border-radius:50%;
  line-height:0;
}

.jhbBot3__fab img{
  display:block;
  object-fit:contain;
  object-position:center;
  filter:drop-shadow(0 5px 12px rgba(0,0,0,.14));
  transform:translateY(1px);
  animation:jhbBot3FabFloat 6.2s ease-in-out infinite;
  overflow:clip;
}

.jhbBot3__fab img:hover{ filter:drop-shadow(0 5px 12px rgba(0,0,0,.18)); }
.jhbBot3__fabFallback{ background:rgba(255,255,255,.16); font-weight:800; }
.jhbBot3__fabLabel{ font-size:14px; font-weight:800; white-space:nowrap; }

@keyframes jhbBot3FabDrift{
  0%,100%{ transform:translateY(0); }
  50%{ transform:translateY(-1px); }
}

@keyframes jhbBot3FabFloat{
  0%,100%{ transform:translateY(0); }
  50%{ transform:translateY(-1.5px); }
}

.jhbBot3__tooltip{
  position:absolute;
  left:84px;
  bottom:12px;
  width:188px;
  max-width:188px;
  min-height:96px;
  padding:14px 16px;
  display:flex;
  align-items:center;
  border-radius:18px;
  background:rgba(255,255,255,.97);
  color:#21312c;
  border:1px solid rgba(230,235,241,.96);
  box-shadow:0 12px 30px rgba(16,24,40,.10), 0 4px 12px rgba(16,24,40,.06);
  font-size:15px;
  font-weight:700;
  line-height:1.34;
  letter-spacing:-.01em;
  opacity:0;
  transform:translateY(8px) scale(.988);
  pointer-events:none;
  transition:opacity .26s ease, transform .34s cubic-bezier(.22,.61,.36,1);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}

.jhbBot3__tooltip::after{
  content:"";
  position:absolute;
  left:-6px;
  bottom:22px;
  width:12px;
  height:12px;
  background:rgba(255,255,255,.97);
  border-left:1px solid rgba(230,235,241,.92);
  border-bottom:1px solid rgba(230,235,241,.92);
  transform:rotate(45deg);
  border-radius:2px;
}

.jhbBot3__tooltipText{
  display:block;
  padding-right:18px;
}

.jhbBot3__tooltipClose{
  position:absolute;
  top:8px;
  right:8px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:26px;
  height:26px;
  padding:0;
  border:1px solid rgba(230,235,241,.92);
  border-radius:10px;
  background:#fff;
  color:#6c7785;
  cursor:pointer;
  box-shadow:0 1px 0 rgba(255,255,255,.95) inset;
}

.jhbBot3__tooltipClose:hover,
.jhbBot3__tooltipClose:focus{
  color:var(--jhb-brand);
  border-color:#e5b58a;
  background:#fff8f1;
  outline:none;
}

.jhbBot3__tooltipClose svg{
  width:13px;
  height:13px;
  stroke-width:2.2;
}

.jhbBot3__tooltipClose svg,
.jhbBot3__tooltipClose svg *{
  stroke:currentColor;
  fill:none;
}

.jhbBot3__tooltip.is-visible{
  opacity:1;
  transform:translateY(0) scale(1);
  pointer-events:auto;
}

@media (max-width: 768px){
  .jhbBot3__attention{
    left:0;
    bottom:82px;
    max-width:min(240px, calc(100vw - 52px));
    font-size:12px;
  }
}
.jhbBot3__panel{
  position:absolute;
  left:0;
  bottom:82px;
  display:flex;
  flex-direction:column;
  width:min(420px,calc(100vw - 36px));
  height:min(760px,86vh);
  background:var(--jhb-panel);
  border:1px solid var(--jhb-line);
  border-radius:28px;
  box-shadow:var(--jhb-shadow);
  overflow:hidden;
  opacity:0;
  pointer-events:none;
  transform:translateY(12px) scale(.985);
  transition:opacity .2s ease, transform .22s ease;
}

.jhbBot3__panel[hidden],
.jhbBot3__typing[hidden],
.jhbBot3__swipeHint[hidden],
.jhbBot3__secondaryWrap.is-hidden{ display:none; }

.jhbBot3__panel.is-open{
  opacity:1;
  pointer-events:auto;
  transform:translateY(0) scale(1);
}

.jhbBot3__head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  padding:12px 14px 10px;
  background:linear-gradient(180deg,#fff,#fffaf6);
  border-bottom:1px solid var(--jhb-line);
}

.jhbBot3__brand{
  display:flex;
  align-items:flex-start;
  gap:12px;
  min-width:0;
}

.jhbBot3__logo{
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  flex:0 0 42px;
  border-radius:14px;
  color:var(--jhb-brand);
  background:#fff;
  box-shadow:inset 0 0 0 1px #f1d0b1;
  font-weight:800;
  overflow:hidden;
}

.jhbBot3__logo.has-image{
  background:transparent;
  box-shadow:none;
  border-radius:0;
}

.jhbBot3__logo img{
  width:30px;
  height:30px;
  object-fit:contain;
}

.jhbBot3__brand strong{
  display:block;
  font-size:15px;
  line-height:1.2;
}

.jhbBot3__brand small{
  display:block;
  margin-top:2px;
  color:var(--jhb-text-soft);
  font-size:12px;
  line-height:1.25;
}

.jhbBot3__status{
  display:flex;
  align-items:center;
  gap:7px;
  margin-top:6px;
  color:var(--jhb-text-soft);
  font-size:12px;
}

.jhbBot3__statusDot{
  width:8px;
  height:8px;
  border-radius:50%;
  background:#42b85c;
  box-shadow:0 0 0 4px rgba(66,184,92,.12);
}

.jhbBot3__headActions{
  display:flex;
  align-items:center;
  gap:8px;
  flex:0 0 auto;
  isolation:isolate;
}

.jhbBot3__headBtn{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:36px;
  height:36px;
  border:1px solid #dcc8b7;
  border-radius:12px;
  background:linear-gradient(180deg,#ffffff 0%,#fbf6f0 100%);
  color:#465566;
  cursor:pointer;
  box-shadow:0 1px 0 rgba(255,255,255,.95) inset,0 4px 10px rgba(23,50,77,.06);
  transition:transform .16s ease, background .16s ease, border-color .16s ease, color .16s ease;
}

.jhbBot3__headBtn:hover,
.jhbBot3__headBtn:focus{
  transform:none;
  color:var(--jhb-brand);
  background:#fff8f1;
  border-color:#e5b58a;
}

.jhbBot3__headBtn svg{
  width:17px;
  height:17px;
  stroke-width:2.1;
}

.jhbBot3__headBtn svg,
.jhbBot3__headBtn svg *{
  stroke:currentColor;
  fill:none;
}

.jhbBot3__reset{ color:#8d643d; }
.jhbBot3__close{ color:#5c6876; }

.jhbBot3__introCard{
  margin:10px 12px 0;
  padding:10px 12px;
  border:1px solid #f2e7dc;
  border-radius:18px;
  background:linear-gradient(180deg,#fffdfb,#fff9f5);
}

.jhbBot3__introCard strong{ display:block; margin-bottom:3px; font-size:14px; }
.jhbBot3__introCard p{ margin:0; color:var(--jhb-text-soft); font-size:13px; line-height:1.45; }

/* -------------------------------------------------------------------------- */
/* Navigation and contextual filters                                          */
/* -------------------------------------------------------------------------- */
.jhbBot3__nav{
  padding:8px 12px;
  border-bottom:1px solid var(--jhb-line);
  background:#fff;
}

.jhbBot3__primary,
.jhbBot3__secondary{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.jhbBot3__secondary{
  align-items:flex-start;
  align-content:flex-start;
  min-width:0;
  margin:0;
  padding:2px 0 0;
  overflow:visible;
  transition:opacity .18s ease, transform .18s ease;
  cursor:grab;
  user-select:none;
  -webkit-user-select:none;
}

.jhbBot3__secondary::-webkit-scrollbar{ display:none; }

.jhbBot3__chip{
  min-height:34px;
  padding:8px 13px;
  border:1px solid #e3cdb8;
  border-radius:999px;
  background:linear-gradient(180deg,#fffefc,#fff8f2);
  color:#6b5c4f;
  font:inherit;
  font-size:12px;
  font-weight:800;
  line-height:1.15;
  cursor:pointer;
  box-shadow:0 1px 0 rgba(255,255,255,.92) inset;
  transition:all .16s ease;
}

.jhbBot3__chip:hover{
  border-color:var(--jhb-brand);
  background:var(--jhb-brand);
  color:#fff;
  box-shadow:0 8px 16px rgba(233,98,11,.16);
}

.jhbBot3__chip--primary{
  border-color:#e3b98d;
  background:linear-gradient(180deg,#fffefc,#fff7f0);
  color:#8a5c31;
  box-shadow:0 1px 0 rgba(255,255,255,.96) inset,0 3px 10px rgba(233,98,11,.05);
}

.jhbBot3__chip--primary.is-main,
.jhbBot3__chip--primary.is-active,
.jhbBot3__chip.is-active,
.jhbBot3__chip.is-primary{
  background:linear-gradient(180deg,#fff4ea,#ffeddc);
  color:#93501d;
  border-color:#efb887;
  box-shadow:0 1px 0 rgba(255,255,255,.92) inset;
}

.jhbBot3__chip--primary.is-main:hover,
.jhbBot3__chip--primary.is-active:hover,
.jhbBot3__chip.is-active:hover,
.jhbBot3__chip.is-primary:hover{
  background:var(--jhb-brand);
  color:#fff;
  border-color:var(--jhb-brand);
  box-shadow:0 8px 16px rgba(233,98,11,.16);
}

.jhbBot3__chip.is-context{
  background:var(--jhb-brand);
  border-color:var(--jhb-brand);
  color:#fff;
  cursor:default;
  pointer-events:none;
  box-shadow:none;
}

.jhbBot3__chip.is-offer-ambulant{
  background:#eef6ff;
  border-color:#cddff3;
  color:#2d6ca3;
}

.jhbBot3__chip.is-offer-schulbegleitung{
  background:#fff5cf;
  border-color:#ecdca0;
  color:#8c6b00;
}

.jhbBot3__chip.is-offer-stationaer{
  background:#ecf7ed;
  border-color:#cde4cf;
  color:#34723b;
}

.jhbBot3__chip.is-offer-ambulant:hover,
.jhbBot3__chip.is-offer-ambulant.is-active{
  background:#dfeeff;
  border-color:#bcd4ec;
  color:#245782;
}

.jhbBot3__chip.is-offer-schulbegleitung:hover,
.jhbBot3__chip.is-offer-schulbegleitung.is-active{
  background:#ffefbb;
  border-color:#e2d18b;
  color:#735700;
}

.jhbBot3__chip.is-offer-stationaer:hover,
.jhbBot3__chip.is-offer-stationaer.is-active{
  background:#e0f1e2;
  border-color:#b9d7bc;
  color:#2b5f31;
}

.jhbBot3__chip--secondary{
  flex:0 0 auto;
  white-space:nowrap;
  scroll-snap-align:start;
  user-select:none;
  -webkit-user-select:none;
}

.jhbBot3__chip.is-nudging{ animation:jhbBot3ChipNudge .78s cubic-bezier(.22,.7,.22,1); }

@keyframes jhbBot3ChipNudge{
  0%,28%{ transform:translateY(0) scale(1); }
  58%{ transform:translateY(-2px) scale(1.06); box-shadow:0 14px 28px rgba(233,98,11,.18); }
  100%{ transform:translateY(0) scale(1); }
}

.jhbBot3__secondaryWrap{
  position:relative;
  margin-top:10px;
  padding:12px 12px 10px;
  border:1px solid #eef2f6;
  border-radius:16px;
  background:linear-gradient(180deg,#f8fafc 0%,#f4f7fb 100%);
  overflow:visible;
  max-height:1000px;
  opacity:1;
  box-shadow:0 8px 22px rgba(32,56,85,.05);
  transition:max-height .28s ease, opacity .2s ease, padding .2s ease, margin-top .2s ease, box-shadow .2s ease;
}

.jhbBot3__secondaryWrap.is-collapsed{ max-height:56px; }

.jhbBot3__secondaryWrap.is-collapsed .jhbBot3__secondary{
  opacity:0;
  transform:translateY(-4px);
  pointer-events:none;
}

.jhbBot3__secondaryBar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:10px;
}

.jhbBot3__secondaryWrap:not(.is-collapsed)::after{ content:none; }

.jhbBot3__secondaryTitle{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:12px;
  font-weight:800;
  color:#6e7b8e;
  letter-spacing:.01em;
}

.jhbBot3__secondaryToggle{
  flex:0 0 auto;
  padding:7px 12px;
  border:1px solid #e7ddd5;
  border-radius:13px;
  background:#fffdfb;
  color:#7a6858;
  font:inherit;
  font-size:12px;
  font-weight:800;
  white-space:nowrap;
  cursor:pointer;
  box-shadow:0 1px 0 rgba(255,255,255,.9) inset;
}

.jhbBot3__secondaryToggle:hover{
  background:var(--jhb-brand);
  border-color:var(--jhb-brand);
  color:#fff;
}

.jhbBot3__swipeHint{
  display:none;
  align-items:center;
  gap:6px;
  margin:0 0 8px;
  color:#8a6a4b;
  font-size:11px;
  font-weight:800;
}

.jhbBot3__swipeHint span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:20px;
  height:20px;
  border-radius:999px;
  background:#fff2e7;
  color:var(--jhb-brand);
  box-shadow:0 1px 0 rgba(255,255,255,.9) inset;
  animation:jhbBot3SwipeHint 1.45s ease-in-out infinite;
}

.jhbBot3__secondaryWrap.has-overflow:not(.is-collapsed) .jhbBot3__swipeHint{ display:none; }
.jhbBot3__secondaryWrap.is-swipe-hint-visible:not(.is-collapsed) .jhbBot3__swipeHint{ display:flex; }

@keyframes jhbBot3SwipeHint{
  0%,100%{ transform:translateX(0); opacity:.78; }
  50%{ transform:translateX(-4px); opacity:1; }
}

.jhbBot3__swipeCue{
  display:none;
  align-items:center;
  gap:3px;
  min-width:22px;
  color:var(--jhb-brand);
  opacity:.98;
}

.jhbBot3__swipeCue svg{
  width:13px;
  height:13px;
  stroke:currentColor;
  stroke-width:2.6;
  fill:none;
  stroke-linecap:round;
  stroke-linejoin:round;
  opacity:.72;
  filter:drop-shadow(0 1px 0 rgba(255,255,255,.25));
}

.jhbBot3__swipeCue svg path,
.jhbBot3__swipeCue svg polyline{
  stroke:currentColor;
  fill:none;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.jhbBot3__secondaryWrap.is-swipe-cue-visible .jhbBot3__swipeCue{ display:inline-flex; }
.jhbBot3__secondaryWrap.is-at-end .jhbBot3__swipeCue{ display:none; }
.jhbBot3__secondaryWrap.is-swipe-cue-visible .jhbBot3__swipeCue svg:first-child{ animation:jhbBot3SwipeCue 1.45s ease-in-out infinite; }
.jhbBot3__secondaryWrap.is-swipe-cue-visible .jhbBot3__swipeCue svg:last-child{ animation:jhbBot3SwipeCue 1.45s ease-in-out .18s infinite; }

@keyframes jhbBot3SwipeCue{
  0%,100%{ transform:translateX(0); opacity:.42; }
  50%{ transform:translateX(3px); opacity:1; }
}

.jhbBot3__secondary.is-dragging{
  cursor:grabbing;
  scroll-behavior:auto;
}

/* -------------------------------------------------------------------------- */
/* Conversation stream and cards                                              */
/* -------------------------------------------------------------------------- */
.jhbBot3__stream{
  display:flex;
  flex:1;
  flex-direction:column;
  gap:12px;
  padding:14px;
  overflow:auto;
  background:var(--jhb-page);
}

.jhbBot3__result{ display:grid; gap:10px; }
.jhbBot3__msg{ display:flex; width:100%; }
.jhbBot3__msg--bot{ justify-content:flex-start; }
.jhbBot3__msg--user{ justify-content:flex-end; }
.jhbBot3__msg--cards{ display:block; width:100%; }

.jhbBot3__bubble{
  max-width:84%;
  padding:11px 13px;
  border-radius:16px;
  line-height:1.5;
  font-size:14px;
  box-shadow:0 2px 8px rgba(15,23,42,.04);
}

.jhbBot3__msg + .jhbBot3__msg{
  margin-top:8px;
}

.jhbBot3__result > .jhbBot3__msg--bot + .jhbBot3__msg--bot,
.jhbBot3__result > .jhbBot3__msg--bot + .jhbBot3__msg--cards,
.jhbBot3__result > .jhbBot3__msg--cards + .jhbBot3__msg--bot{
  margin-top:12px;
}

.jhbBot3__msg.is-staged,
.jhbBot3__msg--cards.is-staged{
  display:none;
  opacity:0;
  transform:translateY(8px);
}

.jhbBot3__msg.is-visible,
.jhbBot3__msg--cards.is-visible{
  display:flex;
  opacity:1;
  transform:translateY(0);
  animation:jhbBotBubbleIn .28s cubic-bezier(.22,.61,.36,1);
}

.jhbBot3__msg--cards.is-visible{
  display:block;
}

@keyframes jhbBotBubbleIn{
  from{
    opacity:0;
    transform:translateY(8px);
  }
  to{
    opacity:1;
    transform:translateY(0);
  }
}

.jhbBot3__msg--bot .jhbBot3__bubble{
  background:#fff;
  border:1px solid #e7edf4;
  border-top-left-radius:8px;
}

.jhbBot3__msg--user .jhbBot3__bubble{
  background:var(--jhb-text);
  color:#fff;
  border-top-right-radius:8px;
}

.jhbBot3__msg--welcome .jhbBot3__bubble,
.jhbBot3__msg--guide .jhbBot3__bubble,
.jhbBot3__msg--note .jhbBot3__bubble{
  position:relative;
  padding-left:28px;
  isolation:isolate;
}

.jhbBot3__msg--welcome .jhbBot3__bubble{
  background:linear-gradient(180deg,#fff6ef,#ffefe2);
  border:1px solid #f0d3ba;
  color:#704723;
  box-shadow:0 10px 24px rgba(233,98,11,.08);
}

.jhbBot3__msg--guide .jhbBot3__bubble{
  background:linear-gradient(180deg,#f5f8ff,#edf3ff);
  border:1px solid #d9e4fb;
  color:#284261;
  box-shadow:0 10px 24px rgba(40,66,97,.06);
}

.jhbBot3__msg--note .jhbBot3__bubble{
  background:linear-gradient(180deg,#f8fafc,#f1f5f9);
  border:1px solid #dde6ee;
  color:#435468;
  box-shadow:0 8px 20px rgba(67,84,104,.06);
}

.jhbBot3__msg--welcome .jhbBot3__bubble > *,
.jhbBot3__msg--guide .jhbBot3__bubble > *,
.jhbBot3__msg--note .jhbBot3__bubble > *{
  position:relative;
  z-index:1;
}

.jhbBot3__msg--welcome .jhbBot3__bubble::before,
.jhbBot3__msg--guide .jhbBot3__bubble::before,
.jhbBot3__msg--note .jhbBot3__bubble::before{
  content:"";
  position:absolute;
  top:13px;
  left:12px;
  width:6px;
  height:6px;
  border-radius:50%;
  background:currentColor;
  opacity:.16;
  pointer-events:none;
  z-index:0;
}

.jhbBot3__cards{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:10px;
  width:100%;
}

.jhbBot3__result{
  opacity:1;
  transform:translateY(0);
  transition:opacity .24s ease, transform .28s cubic-bezier(.22,.61,.36,1);
}

.jhbBot3__result.is-entering{
  opacity:0;
  transform:translateY(8px);
}

.jhbBot3__card{
  display:flex;
  flex-direction:column;
  width:100%;
  min-width:0;
  min-height:184px;
  padding:15px;
  border:1px solid #e8edf2;
  border-radius:20px;
  background:linear-gradient(180deg,#ffffff 0%,#fcfdff 100%);
  box-shadow:0 6px 18px rgba(23,50,77,.06);
  text-align:left;
}

.jhbBot3__card *,
.jhbBot3__card h3,
.jhbBot3__card p,
.jhbBot3__card .jhbBot3__subtitle,
.jhbBot3__card .jhbBot3__meta,
.jhbBot3__card .jhbBot3__actions{ text-align:left; }

.jhbBot3__card.is-clickable{ cursor:pointer; }
.jhbBot3__card.is-clickable:hover{ transform:translateY(-1px); }
.jhbBot3__card.is-clickable:focus-visible{ outline:2px solid rgba(233,98,11,.38); outline-offset:2px; }

.jhbBot3__cardHeader{
  display:flex;
  align-items:flex-start;
  gap:12px;
  text-align:left;
}

.jhbBot3__cardMedia{
  display:flex;
  align-items:flex-start;
  justify-content:flex-start;
  width:40px;
  min-width:40px;
  height:40px;
  flex:0 0 40px;
  overflow:hidden;
}

/* Karte: Medien und Icons bewusst klein und ruhig halten, damit sie die Inhalte nicht dominieren. */

.jhbBot3__cardMedia > *{
  flex:0 0 auto;
}

.jhbBot3__cardImg,
.jhbBot3__avatarIcon,
.jhbBot3__avatarInitials{
  width:40px;
  height:40px;
  border-radius:12px;
  display:block;
  max-width:40px;
  max-height:40px;
}

.jhbBot3__cardImg{
  object-fit:cover;
  object-position:center;
}

.jhbBot3__cardMedia img,
.jhbBot3__cardMedia svg{
  display:block;
  width:100%;
  height:100%;
  max-width:40px;
  max-height:40px;
}

.jhbBot3__avatarIcon,
.jhbBot3__avatarInitials{
  display:grid;
  place-items:center;
}

.jhbBot3__avatarIcon{
  background:#fff7f1;
  color:var(--jhb-brand);
}

.jhbBot3__avatarIcon svg{
  width:18px;
  height:18px;
}

.jhbBot3__avatarInitials{
  border-radius:50%;
  background:linear-gradient(135deg,#eef2f3,#f7f9fa);
  color:#2c3e3f;
  font-size:14px;
  font-weight:800;
  letter-spacing:.02em;
  box-shadow:inset 0 1px 2px rgba(255,255,255,.8), 0 2px 6px rgba(23,50,77,.08);
}

.jhbBot3__cardMain{
  display:flex;
  flex:1;
  flex-direction:column;
  align-items:flex-start;
  min-width:0;
  text-align:left;
}

.jhbBot3__card h3{
  width:100%;
  margin:0 0 4px;
  font-size:18px;
  font-weight:800;
  line-height:1.2;
}

.jhbBot3__subtitle{
  width:100%;
  margin-bottom:6px;
  color:#5a6a7d;
  font-size:13px;
  font-weight:700;
}

.jhbBot3__card p{
  width:100%;
  margin:0 0 6px;
  color:#5b6879;
  font-size:13px;
  line-height:1.5;
}

.jhbBot3__badges{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-start;
  gap:7px;
  margin-bottom:9px;
}

.jhbBot3__badge{
  display:inline-flex;
  align-items:center;
  padding:6px 11px;
  border:1px solid rgba(233,98,11,.12);
  border-radius:999px;
  background:#fff7f1;
  color:#a85e24;
  font-size:12px;
  font-weight:800;
}

.jhbBot3__badge.job-ambulant,
.jhbBot3__badge.ambulant{ background:#e9f4ff; color:#2d6ca3; border-color:rgba(45,108,163,.14); }
.jhbBot3__badge.job-stationaer,
.jhbBot3__badge.station{ background:#e8f7e8; color:#34723b; border-color:rgba(52,114,59,.14); }
.jhbBot3__badge.job-schulbegleitung,
.jhbBot3__badge.schul,
.jhbBot3__badge.schulbegleitung{ background:#fff3c8; color:#8c6b00; border-color:rgba(140,107,0,.14); }
.jhbBot3__badge.region{ background:#eef4fb; color:#587090; border-color:rgba(88,112,144,.12); }
.jhbBot3__badge.offer{ background:#fff7f1; color:#b15b1d; border-color:rgba(177,91,29,.14); }
.jhbBot3__badge.time{ background:#f7f8fa; color:#6e7785; border-color:rgba(110,119,133,.14); }
.jhbBot3__badge.warning{ background:#fff0f0; color:#b84d4d; border-color:rgba(184,77,77,.14); }

.jhbBot3__cardMeta{
  display:grid;
  gap:9px;
  width:100%;
  margin-top:12px;
  padding-top:10px;
  border-top:1px solid #eef2f6;
  text-align:left;
}

.jhbBot3__meta{
  display:flex;
  align-items:center;
  gap:8px;
  transition:background .16s ease, border-color .16s ease, transform .16s ease, box-shadow .16s ease;
  border:1px solid transparent;
  border-radius:10px;
  padding:6px 8px;
  margin:-4px -6px 0;
}

.jhbBot3__meta > svg{
  flex:0 0 16px;
  width:16px;
  height:16px;
  min-width:16px;
  min-height:16px;
  color:var(--jhb-brand);
  opacity:.72;
}

.jhbBot3__meta.is-link{
  cursor:pointer;
}

.jhbBot3__meta.is-link:hover,
.jhbBot3__meta.is-link.is-hover{
  background:rgba(233,98,11,.05);
  border-color:rgba(233,98,11,.12);
  box-shadow:none;
  transform:none;
}

.jhbBot3__meta--pin,
.jhbBot3__meta--pin:hover,
.jhbBot3__meta--pin.is-hover{
  background:transparent;
  border-color:transparent;
  box-shadow:none;
  transform:none;
  cursor:default;
}

.jhbBot3__meta a,
.jhbBot3__bubble a{
  display:inline-flex;
  align-items:center;
  gap:4px;
  color:var(--jhb-brand);
  font-weight:700;
  text-decoration:none;
  border-radius:8px;
  padding:1px 2px;
  transition:color .16s ease, opacity .16s ease;
}

.jhbBot3__meta a:hover,
.jhbBot3__meta a:focus,
.jhbBot3__bubble a:hover,
.jhbBot3__bubble a:focus{
  background:transparent;
  color:var(--jhb-brand-strong);
  box-shadow:none;
  outline:none;
}

.jhbBot3__hoursList{
  display:grid;
  gap:8px;
  padding:10px 12px;
  border:1px solid #f3dfcb;
  border-radius:14px;
  background:#fff;
}

.jhbBot3__hoursRow{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
}

.jhbBot3__hoursLabel{ color:#6b7280; font-size:12px; font-weight:700; }
.jhbBot3__hoursValue{ color:#1f2937; font-size:12px; text-align:right; }

.jhbBot3__actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-start;
  gap:10px;
  width:100%;
  margin-top:auto;
  padding-top:12px;
}

.jhbBot3__cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  min-height:40px;
  padding:9px 13px;
  border:1px solid #e8ddd3;
  border-radius:12px;
  background:#fffdfb;
  color:#7a6858;
  font-size:13px;
  font-weight:800;
  text-decoration:none;
  cursor:pointer;
  transition:background .16s ease, border-color .16s ease, color .16s ease, transform .16s ease;
}

.jhbBot3__cta:hover{
  background:var(--jhb-brand);
  border-color:var(--jhb-brand);
  color:#fff;
  transform:translateY(-1px);
}

.jhbBot3__cta.is-secondary{
  background:#fff;
  color:var(--jhb-brand);
  border-color:#efc7a2;
  box-shadow:none;
}

.jhbBot3__cta.is-secondary:hover{
  background:var(--jhb-brand-soft);
  color:var(--jhb-brand-strong);
  border-color:var(--jhb-brand);
}

.jhbBot3__typing{
  display:flex;
  align-items:center;
  gap:6px;
  padding:0 14px 10px;
  background:#fff;
  color:#6b7280;
  font-size:12px;
}

.jhbBot3__typing span{
  display:inline-block;
  width:7px;
  height:7px;
  border-radius:50%;
  background:#c2cad4;
  animation:jhbBot3Typing 1.2s infinite ease-in-out;
}

.jhbBot3__typing span:nth-child(2){ animation-delay:.15s; }
.jhbBot3__typing span:nth-child(3){ animation-delay:.3s; }
.jhbBot3__typing em{ margin-left:4px; font-style:normal; }

@keyframes jhbBot3Typing{
  0%,80%,100%{ transform:translateY(0); opacity:.45; }
  40%{ transform:translateY(-3px); opacity:1; }
}

/* -------------------------------------------------------------------------- */
/* Composer and footer                                                        */
/* -------------------------------------------------------------------------- */
.jhbBot3__footer{
  display:flex;
  align-items:stretch;
  gap:10px;
  padding:12px;
  border-top:1px solid var(--jhb-line);
  background:linear-gradient(180deg,#ffffff 0%,#fbfcfe 100%);
}

.jhbBot3__input{
  flex:1;
  min-width:0;
  min-height:50px;
  padding:12px 16px;
  border:1px solid #d7dee8;
  border-radius:16px;
  background:#fff;
  color:#223042;
  font:inherit;
  box-shadow:0 1px 0 rgba(255,255,255,.95) inset,0 8px 18px rgba(31,41,55,.06);
  transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease, background .18s ease;
}

.jhbBot3__input::placeholder{
  color:#7f8ba0;
  text-overflow:ellipsis;
}

.jhbBot3__input:hover{ border-color:#c7d1de; }
.jhbBot3__input[readonly]{ cursor:progress; }

.jhbBot3__send{
  min-width:110px;
  padding:0 18px;
  border:0;
  border-radius:16px;
  background:linear-gradient(180deg,#f4741e 0%,var(--jhb-brand) 100%);
  color:#fff;
  font:inherit;
  font-weight:800;
  letter-spacing:.01em;
  cursor:pointer;
  box-shadow:0 10px 18px rgba(233,98,11,.18);
  transition:transform .18s ease, box-shadow .18s ease, filter .18s ease;
}

.jhbBot3__send:hover{
  transform:translateY(-1px);
  box-shadow:0 14px 22px rgba(233,98,11,.24);
  filter:saturate(1.03);
}

.jhbBot3__send:active{
  transform:translateY(0);
  box-shadow:0 8px 14px rgba(233,98,11,.18);
}

.jhbBot3__send[disabled]{
  opacity:.58;
  cursor:not-allowed;
  transform:none;
  box-shadow:none;
  filter:none;
}

.jhbBot3__trust{
  padding:0 14px 14px;
  background:#fff;
  color:#6b7280;
  font-size:11px;
  line-height:1.4;
}

/* -------------------------------------------------------------------------- */
/* Focus and busy states                                                      */
/* -------------------------------------------------------------------------- */
.jhbBot3__focusTarget:focus,
.jhbBot3__input:focus,
.jhbBot3__send:focus,
.jhbBot3__chip:focus,
.jhbBot3__cta:focus,
.jhbBot3__fab:focus,
.jhbBot3__headBtn:focus,
.jhbBot3__secondaryToggle:focus{
  outline:2px solid rgba(233,98,11,.35);
  outline-offset:2px;
}

.jhbBot3__input:focus{
  border-color:rgba(233,98,11,.55);
  box-shadow:0 0 0 4px rgba(233,98,11,.12),0 10px 22px rgba(31,41,55,.08);
  background:#fffefd;
  outline:none;
}

.jhbBot3.is-busy .jhbBot3__send,
.jhbBot3.is-busy .jhbBot3__reset{
  opacity:.68;
  pointer-events:none;
}

/* -------------------------------------------------------------------------- */
/* Responsive layout                                                          */
/* -------------------------------------------------------------------------- */
@media (max-width:1024px){
  /* -------------------------------------------------------------------------- */
/* Floating launcher                                                          */
/* -------------------------------------------------------------------------- */
.jhbBot3{
    left:12px;
    bottom:max(14px,env(safe-area-inset-bottom,0px) + 14px);
  }

  .jhbBot3__panel{
    width:min(400px,calc(100vw - 28px));
    height:min(82vh,700px);
  }

  .jhbBot3.is-under-header-overlay{
    z-index:1;
    pointer-events:none;
  }

  .jhbBot3.is-under-header-overlay .jhbBot3__fab,
  .jhbBot3.is-under-header-overlay .jhbBot3__panel,
  .jhbBot3.is-under-header-overlay .jhbBot3__tooltip{
    opacity:.06;
    pointer-events:none;
  }
}

@media (max-width:767px){
  /* -------------------------------------------------------------------------- */
/* Floating launcher                                                          */
/* -------------------------------------------------------------------------- */
.jhbBot3{
    left:12px;
    right:auto;
    bottom:max(12px,env(safe-area-inset-bottom,0px) + 12px);
  }

  .jhbBot3__fab,
  .jhbBot3__fab.is-scrolling{
    width:var(--jhb-fab-size-mobile);
    min-width:var(--jhb-fab-size-mobile);
    min-height:var(--jhb-fab-size-mobile);
    height:var(--jhb-fab-size-mobile);
    padding:0;
    gap:0;
    justify-content:center;
    border-radius:var(--jhb-fab-radius-mobile);
  }

  .jhbBot3__fab{ box-shadow:0 8px 18px rgba(233,98,11,.18); }

  .jhbBot3__fab::before{
    inset:0;
    width:auto;
    border-radius:inherit;
    opacity:.82;
  }

  .jhbBot3__fab img,
  .jhbBot3__fabFallback,
  .jhbBot3__fab.is-scrolling img,
  .jhbBot3__fab.is-scrolling .jhbBot3__fabFallback{
    width:var(--jhb-fab-icon-size-mobile);
    height:var(--jhb-fab-icon-size-mobile);
    flex-basis:var(--jhb-fab-icon-size-mobile);
    padding:0;
  }

  .jhbBot3__fabLabel{ display:none; }

  .jhbBot3__fab.is-scrolling{
    background:rgba(255,255,255,.04);
    box-shadow:none;
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
  }

  .jhbBot3__fab.is-scrolling::before{ opacity:0; }

  .jhbBot3__fab.is-scrolling .jhbBot3__fabLabel{
    width:0;
    overflow:hidden;
    opacity:0;
    transform:translateX(-4px);
  }

  .jhbBot3__fab.is-scrolling img,
  .jhbBot3__fab.is-scrolling .jhbBot3__fabFallback{
    filter:none;
    animation:none;
    opacity:.62;
  }

  .jhbBot3.is-mobile-open .jhbBot3__fab{
    opacity:0;
    pointer-events:none;
    transform:translateY(10px) scale(.92);
  }

  .jhbBot3.is-mobile-minimizing .jhbBot3__fab{
    opacity:1;
    pointer-events:auto;
    transform:translateY(0) scale(1);
  }

  .jhbBot3.is-mobile-minimizing .jhbBot3__panel{
    opacity:0;
    pointer-events:none;
    transform:translateY(18px);
  }

  .jhbBot3__panel{
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    width:100%;
    height:100dvh;
    max-height:none;
    border-radius:16px 16px 0 0;
    transform:translateY(12px);
    overscroll-behavior:contain;
    touch-action:pan-y;
  }

  .jhbBot3__head{
    gap:10px;
    padding:12px 12px 10px;
  }

  .jhbBot3__brand{ gap:10px; }

  .jhbBot3__logo{
    width:36px;
    height:36px;
    flex:0 0 36px;
    border-radius:12px;
  }

  .jhbBot3__logo img{ width:24px; height:24px; }
  .jhbBot3__brand strong{ font-size:13px; line-height:1.18; }
  .jhbBot3__brand small{ display:none; }

  .jhbBot3__status{
    gap:5px;
    margin-top:3px;
    font-size:10px;
    line-height:1.15;
  }

  .jhbBot3__statusDot{
    width:6px;
    height:6px;
    box-shadow:0 0 0 3px rgba(66,184,92,.12);
  }

  .jhbBot3__headActions{ gap:8px; }

  .jhbBot3__headBtn{
    width:42px;
    height:42px;
    border-radius:13px;
  }

  .jhbBot3__headBtn svg{ width:18px; height:18px; }

  .jhbBot3__introCard{
    margin:6px 10px 0;
    padding:8px 10px;
    border-radius:14px;
  }

  .jhbBot3__introCard strong{ margin-bottom:2px; font-size:12px; }
  .jhbBot3__introCard p{ font-size:11.5px; line-height:1.35; }

  .jhbBot3__nav{ padding:6px 10px; }
  .jhbBot3__primary,
  .jhbBot3__secondary{ gap:6px; }

  .jhbBot3__chip{
    min-height:30px;
    padding:6px 11px;
    font-size:11px;
  }

  .jhbBot3__secondaryWrap{
    margin-top:7px;
    padding:8px 8px 7px;
    border-radius:14px;
    overflow:hidden;
  }

  .jhbBot3__secondaryBar{
    align-items:center;
    gap:10px;
    margin-bottom:6px;
  }

  .jhbBot3__secondaryTitle{ gap:10px; font-size:12px; }
  .jhbBot3__secondaryToggle{ padding:6px 10px; font-size:11px; }

  .jhbBot3__secondary{
    flex-wrap:nowrap;
    align-items:center;
    overflow-x:auto;
    overflow-y:hidden;
    padding:2px 2px 6px;
    margin:0 -2px -6px;
    scroll-behavior:auto;
    scroll-snap-type:none;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    overscroll-behavior-inline:contain;
    overscroll-behavior-y:none;
    touch-action:pan-x pinch-zoom;
  }

  .jhbBot3__chip--secondary:last-child{ margin-right:10px; }
  .jhbBot3__chip--secondary{ touch-action:pan-x; }

  .jhbBot3__stream{
    gap:9px;
    padding:9px;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
  }

  .jhbBot3__bubble{
    max-width:92%;
    padding:11px 13px;
    font-size:13px;
    line-height:1.45;
  }

  .jhbBot3__card{
    min-height:170px;
    padding:12px;
    border-radius:16px;
  }

  .jhbBot3__cardHeader{
    gap:10px;
    align-items:flex-start;
  }

  .jhbBot3__cardMedia,
  .jhbBot3__cardImg,
  .jhbBot3__avatarIcon,
  .jhbBot3__avatarInitials{
    width:34px;
    height:34px;
    min-width:34px;
    max-width:34px;
    flex-basis:34px;
  }

  .jhbBot3__avatarIcon svg{
    width:16px;
    height:16px;
  }

  .jhbBot3__avatarInitials{
    font-size:12.5px;
  }

  .jhbBot3__cardMedia img,
  .jhbBot3__cardMedia svg{
    width:100%;
    height:100%;
    max-width:34px;
    max-height:34px;
  }

  .jhbBot3__card h3{ font-size:15px; }
  .jhbBot3__cta{ min-width:104px; }

  .jhbBot3__subtitle,
  .jhbBot3__card p,
  .jhbBot3__meta,
  .jhbBot3__badge{ font-size:12px; }

  .jhbBot3__footer{
    position:sticky;
    bottom:0;
    gap:8px;
    padding:8px 10px 6px;
  }

  .jhbBot3__input{
    min-height:40px;
    padding:9px 12px;
    border-radius:12px;
  }

  .jhbBot3__send{
    min-width:96px;
    padding:0 16px;
    border-radius:12px;
  }

  .jhbBot3__trust{
    padding:0 10px calc(10px + env(safe-area-inset-bottom,0px));
    font-size:9.5px;
    line-height:1.25;
  }
}

@media (max-width:767px) and (max-height:760px){
  .jhbBot3__introCard,
  .jhbBot3__trust{ display:none; }
}

@media (max-width:420px){
  .jhbBot3__head{ padding:11px 10px 9px; }

  .jhbBot3__logo{
    width:34px;
    height:34px;
    flex-basis:34px;
  }

  .jhbBot3__brand strong{ font-size:12.25px; }
  .jhbBot3__status{ font-size:9.75px; }

  .jhbBot3__headBtn{
    width:40px;
    height:40px;
    border-radius:12px;
  }

  .jhbBot3__headBtn svg{ width:17px; height:17px; }

  .jhbBot3__chip{
    min-height:29px;
    padding:6px 10px;
    font-size:10.5px;
  }

  .jhbBot3__send{ min-width:92px; }
}

@media (min-width: 769px) and (max-width: 1180px){
  .jhbBot3{
    left:20px;
    bottom:20px;
  }

  .jhbBot3__panel{
    width:min(396px,calc(100vw - 40px));
    height:min(78vh,700px);
  }

  .jhbBot3__cardMedia,
  .jhbBot3__cardImg,
  .jhbBot3__avatarIcon,
  .jhbBot3__avatarInitials{
    width:38px;
    height:38px;
    min-width:38px;
    max-width:38px;
    flex-basis:38px;
  }

  .jhbBot3__avatarIcon svg{
    width:17px;
    height:17px;
  }

  .jhbBot3__avatarInitials{
    font-size:13px;
  }

  .jhbBot3__cardMedia img,
  .jhbBot3__cardMedia svg{
    width:100%;
    height:100%;
    max-width:38px;
    max-height:38px;
  }
}

@media (min-width:768px){
  .jhbBot3__secondaryWrap{
    max-height:1200px;
    overflow:visible;
  }

  .jhbBot3__secondaryBar{ align-items:flex-start; }
  .jhbBot3__secondary{ overflow:visible; padding-right:0; }

  .jhbBot3__card{
    border-radius:22px;
    box-shadow:0 8px 24px rgba(23,50,77,.06);
  }
}

@media (prefers-reduced-motion:reduce){
  .jhbBot3__fab::before,
  .jhbBot3__fab,
  .jhbBot3__fab img,
  .jhbBot3__swipeCue svg{ animation:none; }
}

@media (max-width:768px){
  .jhbBot3,
  .jhbBot3__panel,
  .jhbBot3__fab{
    z-index:90;
  }
}

.jhbBot3.is-busy .jhbBot3__send{
  opacity:.78;
  cursor:wait;
}

.jhbBot3__send:disabled,
.jhbBot3__input:disabled{
  cursor:wait;
}

@media (max-width: 768px){
  .jhbBot3__tooltip{
    left:68px;
    bottom:8px;
    width:176px;
    max-width:176px;
    min-height:88px;
    padding:12px 14px;
    font-size:13px;
    line-height:1.34;
    border-radius:16px;
  }

  .jhbBot3__tooltipClose{
    top:7px;
    right:7px;
    width:24px;
    height:24px;
    border-radius:9px;
  }

  .jhbBot3__tooltipClose svg{
    width:12px;
    height:12px;
  }

  .jhbBot3__tooltip::after{
    left:-5px;
    bottom:16px;
    width:10px;
    height:10px;
    border-right:0;
    border-top:0;
    border-left:1px solid rgba(230,235,241,.92);
    border-bottom:1px solid rgba(230,235,241,.92);
  }
}

/* Fix: custom FAB logo can visually collapse into a small square when the asset has its own frame or fails to load. */
.jhbBot3__fab{
  min-width:var(--jhb-fab-size);
  min-height:var(--jhb-fab-size);
}

.jhbBot3__fab img{
  display:block;
  max-width:var(--jhb-fab-icon-size);
  max-height:var(--jhb-fab-icon-size);
  width:var(--jhb-fab-icon-size);
  height:var(--jhb-fab-icon-size);
  border-radius:50%;
  background:transparent;
}

@media (min-width:768px){
  .jhbBot3__fab.is-scrolling{
    background:linear-gradient(145deg, var(--jhb-fab-grad-1), var(--jhb-fab-grad-2));
    box-shadow:var(--jhb-fab-shadow);
    opacity:1;
  }

  .jhbBot3__fab.is-scrolling::before{ opacity:.88; }

  .jhbBot3__fab.is-scrolling img,
  .jhbBot3__fab.is-scrolling .jhbBot3__fabFallback{
    opacity:1;
    filter:drop-shadow(0 4px 10px rgba(0,0,0,.15));
    animation:jhbBot3FabFloat 5.2s ease-in-out infinite;
  }
}

/* === 5.1.0 FAB icon balance polish === */
.jhbBot3__fab img,
.jhbBot3__fabFallback{
  max-width:var(--jhb-fab-icon-size);
  max-height:var(--jhb-fab-icon-size);
}

@media (max-width: 768px){
  .jhbBot3__fab img,
  .jhbBot3__fabFallback,
  .jhbBot3__fab.is-scrolling img,
  .jhbBot3__fab.is-scrolling .jhbBot3__fabFallback{
    max-width:var(--jhb-fab-icon-size-mobile);
    max-height:var(--jhb-fab-icon-size-mobile);
  }
}

/* === 5.1.0 Mobile FAB size + center correction === */
@media (max-width: 768px){
  .jhbBot3__fab,
  .jhbBot3__fab.is-scrolling{
    width:var(--jhb-fab-size-mobile);
    min-width:var(--jhb-fab-size-mobile);
    min-height:var(--jhb-fab-size-mobile);
    height:var(--jhb-fab-size-mobile);
  }

  .jhbBot3__fab img,
  .jhbBot3__fabFallback,
  .jhbBot3__fab.is-scrolling img,
  .jhbBot3__fab.is-scrolling .jhbBot3__fabFallback{
    width:var(--jhb-fab-icon-size-mobile);
    height:var(--jhb-fab-icon-size-mobile);
    max-width:var(--jhb-fab-icon-size-mobile);
    max-height:var(--jhb-fab-icon-size-mobile);
  }
}

/* === 5.1.0 attention + mobile effects === */
.jhbBot3__fab.is-attention{
  animation:jhbAttentionPulse 1.9s cubic-bezier(.22,.61,.36,1) 2 !important;
}

.jhbBot3__fab.is-attention::before{
  opacity:.96;
}

.jhbBot3__fab.is-attention::after{
  animation:jhbAttentionGlow 1.9s ease-out 2 !important;
}

@media (max-width: 768px){
  .jhbBot3__fab{
    box-shadow:0 10px 22px rgba(233,98,11,.20), 0 4px 10px rgba(0,0,0,.08);
  }

  .jhbBot3__fab.is-scrolling{
    opacity:.96;
  }

  .jhbBot3__fab.is-scrolling::before{
    opacity:.4;
  }

  .jhbBot3__fab.is-scrolling img,
  .jhbBot3__fab.is-scrolling .jhbBot3__fabFallback{
    opacity:.86;
    filter:drop-shadow(0 4px 10px rgba(0,0,0,.10));
  }
}

/* === 5.1.0 consolidated widget polish === */
:root{
  --jhb-fab-size:64px;
  --jhb-fab-size-mobile:48px;
  --jhb-fab-icon-size:42px;
  --jhb-fab-icon-size-mobile:32px;
}

.jhbBot3__tooltip{
  pointer-events:none;
}

.jhbBot3__tooltip.is-visible{
  pointer-events:auto;
}

.jhbBot3__fab img{
  transform:scale(1.08);
  transform-origin:center center;
}

.jhbBot3__fab.is-attention{
  animation:jhbAttentionPulse 1.9s cubic-bezier(.22,.61,.36,1) 2;
}

.jhbBot3__fab.is-attention::before{
  opacity:.96;
}

.jhbBot3__fab.is-attention::after{
  animation:jhbAttentionGlow 1.9s ease-out 2;
}

@media (max-width: 768px){
  .jhbBot3__head{
    align-items:center;
    gap:12px;
    padding:14px 14px 12px;
  }

  .jhbBot3__brand{
    flex:1 1 auto;
    min-width:0;
    align-items:center;
    justify-content:flex-start;
    gap:10px;
  }

  .jhbBot3__logo{
    width:44px;
    height:44px;
    flex:0 0 44px;
    border-radius:13px;
  }

  .jhbBot3__logo img{
    width:30px;
    height:30px;
  }

  .jhbBot3__brand > div{
    min-width:0;
    display:flex;
    flex-direction:column;
    justify-content:center;
  }

  .jhbBot3__brand strong{
    font-size:15px;
    line-height:1.18;
    text-align:left;
  }

  .jhbBot3__status{
    justify-content:flex-start;
  }

  .jhbBot3__headActions{
    gap:8px;
    flex:0 0 auto;
  }

  .jhbBot3__headBtn{
    width:44px;
    height:44px;
    border-radius:13px;
    border-color:rgba(32,41,51,.12);
  }

  .jhbBot3__fab,
  .jhbBot3__fab.is-scrolling{
    width:var(--jhb-fab-size-mobile);
    min-width:var(--jhb-fab-size-mobile);
    min-height:var(--jhb-fab-size-mobile);
    height:var(--jhb-fab-size-mobile);
  }

  .jhbBot3__fab{
    animation:jhbBot3FabDrift 6.8s ease-in-out infinite;
    box-shadow:0 10px 22px rgba(233,98,11,.20), 0 4px 10px rgba(0,0,0,.08);
  }

  .jhbBot3__fab::before{
    animation:jhbBot3FabPulse 6.4s ease-in-out infinite;
    opacity:.76;
  }

  .jhbBot3__fab img{
    animation:jhbBot3FabFloat 7.2s ease-in-out infinite;
  }

  .jhbBot3__fab img,
  .jhbBot3__fabFallback,
  .jhbBot3__fab.is-scrolling img,
  .jhbBot3__fab.is-scrolling .jhbBot3__fabFallback{
    width:var(--jhb-fab-icon-size-mobile);
    height:var(--jhb-fab-icon-size-mobile);
    max-width:var(--jhb-fab-icon-size-mobile);
    max-height:var(--jhb-fab-icon-size-mobile);
  }

  .jhbBot3__fab.is-scrolling{
    opacity:.96;
  }

  .jhbBot3__fab.is-scrolling::before{
    opacity:.36;
  }

  .jhbBot3__tooltip{
    left:68px;
    bottom:8px;
    width:176px;
    max-width:176px;
    min-height:88px;
    padding:12px 14px;
    font-size:13px;
    line-height:1.34;
    border-radius:16px;
  }

  .jhbBot3__tooltipClose{
    top:7px;
    right:7px;
    width:24px;
    height:24px;
    border-radius:9px;
  }

  .jhbBot3__tooltipClose svg{
    width:12px;
    height:12px;
  }
}

@media (max-width: 420px){
  .jhbBot3__head{
    padding:13px 12px 11px;
  }

  .jhbBot3__logo{
    width:42px;
    height:42px;
    flex-basis:42px;
  }

  .jhbBot3__logo img{
    width:29px;
    height:29px;
  }

  .jhbBot3__brand strong{
    font-size:14px;
  }

  .jhbBot3__headBtn{
    width:42px;
    height:42px;
  }
}

/* === 5.1.0 reliable tooltip polish === */
.jhbBot3__tooltip{
  z-index: 12;
}

.jhbBot3__tooltip[hidden]{
  display: none !important;
}

.jhbBot3__tooltip.is-visible{
  opacity: 1;
  visibility: visible;
  transform: translateY(0) scale(1);
  pointer-events: auto;
}

/* === 5.1.0 clean rebuild helpers === */
.jhbBot3__cardMain{min-width:0;display:flex;flex-direction:column;gap:4px}
.jhbBot3__summary{margin-top:10px;color:#314255;line-height:1.5}
.jhbBot3__meta{display:grid;gap:8px;margin-top:12px}
.jhbBot3__metaRow{display:flex;align-items:flex-start;gap:8px;color:#425166}
.jhbBot3__metaRow svg{width:16px;height:16px;flex:0 0 16px;margin-top:2px}
.jhbBot3__metaRow a{color:inherit;text-decoration:none}
.jhbBot3__hours{display:grid;gap:6px;margin-top:10px}
.jhbBot3__hoursRow{display:flex;justify-content:space-between;gap:12px;font-size:13px;color:#536173}
.jhbBot3__actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}

/* === 5.1.0 dialog + card polish === */
.jhbBot3__cards{
  gap:14px;
}

.jhbBot3__card{
  position:relative;
  min-height:196px;
  padding:16px;
  border:1px solid #e6ecf3;
  border-radius:22px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(250,252,255,.98)),
    linear-gradient(135deg, rgba(233,98,11,.06), rgba(255,255,255,0));
  box-shadow:
    0 14px 34px rgba(23,50,77,.08),
    inset 0 1px 0 rgba(255,255,255,.96);
  overflow:hidden;
}

.jhbBot3__card::before{
  content:'';
  position:absolute;
  inset:0 auto 0 0;
  width:4px;
  background:linear-gradient(180deg, rgba(233,98,11,.75), rgba(233,98,11,.14));
  opacity:.75;
}

.jhbBot3__card.is-contact-card::before{
  background:linear-gradient(180deg, rgba(30,123,106,.78), rgba(30,123,106,.18));
}

.jhbBot3__card.is-hours-card::before{
  background:linear-gradient(180deg, rgba(233,98,11,.82), rgba(233,98,11,.22));
}

.jhbBot3__cardHeader{
  gap:14px;
  align-items:flex-start;
}

.jhbBot3__cardMedia{
  width:46px;
  min-width:46px;
  height:46px;
  flex-basis:46px;
}

.jhbBot3__cardImg,
.jhbBot3__avatarIcon,
.jhbBot3__avatarInitials{
  width:46px;
  height:46px;
  max-width:46px;
  max-height:46px;
  border-radius:14px;
}

.jhbBot3__avatarIcon{
  background:linear-gradient(180deg, #fff7f1, #fff2e8);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.95);
}

.jhbBot3__avatarIcon svg{
  width:20px;
  height:20px;
}

.jhbBot3__card h3{
  margin-bottom:5px;
  color:#182c44;
  font-size:19px;
  line-height:1.18;
}

.jhbBot3__subtitle{
  margin-bottom:8px;
  color:#66768a;
  font-size:13px;
  font-weight:800;
}

.jhbBot3__badges{
  gap:8px;
  margin-bottom:10px;
}

.jhbBot3__badge{
  padding:6px 11px;
  border-color:rgba(233,98,11,.15);
  background:#fff7f1;
  font-size:11px;
  letter-spacing:.01em;
}

.jhbBot3__summary{
  margin-top:12px;
  padding:10px 12px;
  border:1px solid #eef3f7;
  border-radius:14px;
  background:linear-gradient(180deg,#ffffff,#f9fbfd);
  color:#46576b;
  font-size:13px;
  line-height:1.55;
}

.jhbBot3__meta{
  gap:10px;
  margin-top:14px;
  padding:12px 12px;
  border:1px solid #edf2f7;
  border-radius:16px;
  background:rgba(255,255,255,.76);
}

.jhbBot3__metaRow{
  display:flex;
  align-items:flex-start;
  gap:10px;
  color:#42556b;
  font-size:14px;
  line-height:1.45;
}

.jhbBot3__metaRow svg{
  color:var(--jhb-brand);
  opacity:.8;
}

.jhbBot3__metaRow a{
  color:#1d7b6a;
  font-weight:800;
}

.jhbBot3__hours{
  gap:8px;
  margin-top:14px;
  padding:12px;
  border:1px solid #f2dfcd;
  border-radius:16px;
  background:linear-gradient(180deg,#fffaf6,#fff6ef);
}

.jhbBot3__hoursRow{
  align-items:center;
  gap:12px;
  padding:5px 0;
}

.jhbBot3__hoursRow span{
  color:#7a6758;
  font-size:12px;
  font-weight:800;
}

.jhbBot3__hoursRow strong{
  color:#243244;
  font-size:13px;
  text-align:right;
}

.jhbBot3__card.is-hours-card .jhbBot3__actions{
  margin-top:16px;
}

.jhbBot3__actions{
  gap:9px;
  padding-top:14px;
}

.jhbBot3__cta{
  min-height:42px;
  padding:10px 14px;
  border-radius:14px;
  font-size:13px;
  box-shadow:0 4px 10px rgba(23,50,77,.04);
}

.jhbBot3__cta:not(.is-secondary){
  background:linear-gradient(180deg,#f67f29,#e9620b);
  border-color:#e9620b;
  color:#fff;
}

.jhbBot3__cta:not(.is-secondary):hover{
  background:linear-gradient(180deg,#f88938,#dc5600);
  border-color:#dc5600;
  color:#fff;
}

.jhbBot3__cta.is-secondary{
  background:#fff;
  color:#6b5a4d;
  border-color:#ead1bb;
}

.jhbBot3__cta.is-secondary:hover{
  background:#fff7f1;
  color:var(--jhb-brand-strong);
  border-color:#e5b58a;
}

.jhbBot3__result + .jhbBot3__result{
  margin-top:2px;
}

@media (max-width:768px){
  .jhbBot3__cards{
    gap:12px;
  }

  .jhbBot3__card{
    padding:14px;
    border-radius:20px;
  }

  .jhbBot3__card h3{
    font-size:17px;
  }

  .jhbBot3__meta{
    padding:11px 12px;
  }

  .jhbBot3__hours{
    padding:11px 12px;
  }
}


/* v6.3 intelligent intro handling */
.jhbBot3__introCard{
  display:none;
}

.jhbBot3__sensitiveHint{
  margin: 8px 0 0;
  padding: 8px 10px;
  border: 1px solid rgba(233, 98, 11, 0.18);
  background: rgba(233, 98, 11, 0.06);
  color: #8a4e17;
  border-radius: 12px;
  font-size: 12px;
  line-height: 1.4;
}

.jhbBot3__primary .jhbBot3__chip.is-primary-intro{
  border-color: rgba(233, 98, 11, 0.32);
}

.jhbBot3__primary .jhbBot3__chip.is-primary-intro:hover,
.jhbBot3__primary .jhbBot3__chip.is-primary-intro.is-active{
  border-color: var(--jhb-brand);
}


.jhbBot3__card[role="button"]{
  cursor:pointer;
}

.jhb-assistant-target-highlight{
  animation:jhbAssistantTargetHighlight 1.8s ease;
}

@keyframes jhbAssistantTargetHighlight{
  0%{ box-shadow:0 0 0 0 rgba(233,98,11,0); }
  20%{ box-shadow:0 0 0 6px rgba(233,98,11,.16); }
  100%{ box-shadow:0 0 0 0 rgba(233,98,11,0); }
}


.jhbBot3__panel{
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.jhbBot3__result{
  will-change: transform, opacity;
}

.jhbBot3__msg--bot .jhbBot3__bubble,
.jhbBot3__msg--welcome .jhbBot3__bubble,
.jhbBot3__msg--guide .jhbBot3__bubble,
.jhbBot3__msg--note .jhbBot3__bubble{
  box-shadow: 0 12px 28px rgba(15, 35, 24, 0.08);
}

.jhbBot3__card{
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.jhbBot3__card:hover{
  transform: translateY(-2px);
  box-shadow: 0 16px 34px rgba(18, 32, 22, 0.10);
}

@keyframes jhbAssistantResponseIn{
  0%{ opacity:0; transform:translate3d(0,10px,0) scale(.985); }
  100%{ opacity:1; transform:translate3d(0,0,0) scale(1); }
}

.jhbBot3__msg.is-visible,
.jhbBot3__msg--cards.is-visible{
  animation:jhbAssistantResponseIn .24s cubic-bezier(.22,.61,.36,1);
}
