.qai-root,.qai-root *{box-sizing:border-box}
.qai-root{
  --qai-blue:#1e73be;
  --qai-blue-dark:#185f9d;
  --qai-blue-soft:#eef6fd;
  position:fixed;
  right:22px;
  bottom:22px;
  z-index:999999;
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:#1f2937;
  visibility:hidden;
  opacity:0;
  transition:opacity .12s ease;
}
.qai-root.qai-ready{visibility:visible;opacity:1}
.qai-root.qai-initializing{pointer-events:none}
.qai-teaser{
  position:absolute;
  right:0;
  bottom:72px;
  width:280px;
  max-width:calc(100vw - 28px);
  border:1px solid #dbe8f4;
  border-radius:14px;
  background:#fff;
  color:#1f2937;
  box-shadow:0 12px 32px rgba(15,52,86,.18);
  padding:12px 14px;
  font:inherit;
  font-size:14px;
  line-height:1.42;
  font-weight:600;
  text-align:left;
  white-space:pre-line;
  cursor:pointer;
  opacity:0;
  visibility:hidden;
  transform:translateY(8px);
  pointer-events:none;
  transition:opacity .2s ease,transform .2s ease,visibility .2s ease;
  appearance:none;
  -webkit-appearance:none;
}
.qai-teaser:after{
  content:"";
  position:absolute;
  right:22px;
  bottom:-7px;
  width:12px;
  height:12px;
  background:#fff;
  border-right:1px solid #dbe8f4;
  border-bottom:1px solid #dbe8f4;
  transform:rotate(45deg);
}
.qai-teaser.qai-teaser-visible{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto}
.qai-teaser:hover{border-color:#c4d9ec;box-shadow:0 14px 36px rgba(15,52,86,.22)}
.qai-teaser:focus-visible{outline:3px solid rgba(30,115,190,.25);outline-offset:3px}
.qai-launcher{
  width:60px;
  height:60px;
  border:0;
  border-radius:50%;
  background:var(--qai-blue);
  color:#fff;
  box-shadow:0 12px 30px rgba(30,115,190,.32);
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0;
  transition:transform .15s ease,background .15s ease,box-shadow .15s ease;
  appearance:none;
  -webkit-appearance:none;
}
.qai-launcher:hover{transform:translateY(-2px);background:var(--qai-blue-dark);box-shadow:0 14px 34px rgba(30,115,190,.38)}
.qai-launcher:focus-visible{outline:3px solid rgba(30,115,190,.25);outline-offset:3px}
.qai-launcher svg{width:29px;height:29px;display:block;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.qai-hidden{display:none!important}
.qai-panel{
  display:none;
  width:min(390px,calc(100vw - 28px));
  height:min(600px,calc(100vh - 44px));
  background:#fff;
  border:1px solid #dbe8f4;
  border-radius:18px;
  box-shadow:0 20px 55px rgba(15,52,86,.22);
  overflow:hidden;
  flex-direction:column;
}
.qai-panel.qai-open{display:flex}
.qai-header{display:flex;justify-content:space-between;align-items:center;padding:15px 16px;background:var(--qai-blue);color:#fff}
.qai-title-wrap{display:flex;flex-direction:column;gap:1px}
.qai-title{font-size:15px;line-height:1.25}
.qai-subtitle{font-size:11px;opacity:.82}
.qai-close{border:0;background:transparent;color:#fff;font-size:28px;line-height:1;cursor:pointer;padding:2px 5px;border-radius:8px}
.qai-close:hover{background:rgba(255,255,255,.12)}
.qai-messages{flex:1;overflow:auto;padding:15px;background:#f7fbff}
.qai-msg{display:flex;margin:0 0 10px}
.qai-user{justify-content:flex-end}
.qai-assistant{justify-content:flex-start}
.qai-bubble{max-width:86%;border-radius:14px;padding:10px 12px;font-size:14px;line-height:1.48;white-space:pre-wrap;overflow-wrap:anywhere}
.qai-user .qai-bubble{background:var(--qai-blue);color:#fff;border-bottom-right-radius:5px;box-shadow:0 4px 12px rgba(30,115,190,.12)}
.qai-assistant .qai-bubble{background:#fff;border:1px solid #dbe8f4;border-bottom-left-radius:5px;box-shadow:0 3px 10px rgba(15,52,86,.04)}
.qai-bubble a{color:var(--qai-blue);text-decoration:underline;font-weight:700}
.qai-user .qai-bubble a{color:#fff}
.qai-typing{opacity:.65}
.qai-note{font-size:10.5px;color:#5f6f7f;padding:8px 14px;background:var(--qai-blue-soft);border-top:1px solid #dbe8f4}
.qai-footer{display:flex;gap:8px;padding:10px 12px 12px;background:#fff;border-top:1px solid #edf2f7}
.qai-input{flex:1;min-height:40px;max-height:95px;resize:none;border:1px solid #cfd9e3;border-radius:11px;padding:10px 11px;font:inherit;font-size:14px;outline:none;background:#fff;color:#1f2937}
.qai-input:focus{border-color:var(--qai-blue);box-shadow:0 0 0 3px rgba(30,115,190,.12)}
.qai-send{border:0;border-radius:11px;background:var(--qai-blue);color:#fff;padding:0 16px;font-weight:700;cursor:pointer;transition:background .15s ease}
.qai-send:hover{background:var(--qai-blue-dark)}
.qai-send:disabled{opacity:.5;cursor:not-allowed}
.qai-sources{margin-top:10px;padding-top:8px;border-top:1px solid #dbe8f4;display:flex;flex-direction:column;gap:4px}
.qai-sources-title{font-size:11px;font-weight:700;opacity:.72}
.qai-source{font-size:11px;font-weight:600!important}
@media(max-width:520px){
  .qai-root{
    left:12px;
    right:12px;
    bottom:12px;
    left:max(12px,env(safe-area-inset-left));
    right:max(12px,env(safe-area-inset-right));
    bottom:max(12px,env(safe-area-inset-bottom));
    width:auto;
    max-width:none;
  }
  .qai-panel{
    width:100%;
    max-width:none;
    height:calc(100vh - 24px);
    max-height:calc(100vh - 24px);
    height:min(620px,calc(var(--qai-viewport-height,100dvh) - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom)));
    max-height:calc(var(--qai-viewport-height,100dvh) - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    min-height:320px;
    border-radius:15px;
  }
  .qai-teaser{
    right:0;
    bottom:68px;
    width:min(290px,calc(100vw - 24px - env(safe-area-inset-left) - env(safe-area-inset-right)));
    max-width:100%;
  }
  .qai-launcher{
    width:56px;
    height:56px;
    margin-left:auto;
  }
  .qai-header{padding:13px 14px}
  .qai-messages{padding:12px}
  .qai-bubble{max-width:90%;font-size:14px}
  .qai-footer{padding:9px 10px 10px}
  .qai-input{min-width:0}
  .qai-send{padding:0 13px}
}

@media(max-width:360px){
  .qai-root{
    left:8px;
    right:8px;
    bottom:8px;
    left:max(8px,env(safe-area-inset-left));
    right:max(8px,env(safe-area-inset-right));
    bottom:max(8px,env(safe-area-inset-bottom));
  }
  .qai-panel{
    height:min(600px,calc(var(--qai-viewport-height,100dvh) - 16px - env(safe-area-inset-top) - env(safe-area-inset-bottom)));
    max-height:calc(var(--qai-viewport-height,100dvh) - 16px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
  }
}
