.kmy-kb{
  position:fixed;
  /* Default offsets; can be overridden via inline CSS variables */
  --kmy-fx:18px;
  --kmy-fy:18px;
  z-index:99999;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
}

/* Position presets */
.kmy-kb--pos-br{right:var(--kmy-fx);bottom:var(--kmy-fy);}
.kmy-kb--pos-bl{left:var(--kmy-fx);bottom:var(--kmy-fy);}
.kmy-kb--pos-bc{left:50%;bottom:var(--kmy-fy);transform:translateX(-50%);}

.kmy-kb--pos-mr{right:var(--kmy-fx);top:50%;transform:translateY(-50%);}
.kmy-kb--pos-ml{left:var(--kmy-fx);top:50%;transform:translateY(-50%);}

.kmy-kb--pos-tr{right:var(--kmy-fx);top:var(--kmy-fy);}
.kmy-kb--pos-tl{left:var(--kmy-fx);top:var(--kmy-fy);}
.kmy-kb--pos-tc{left:50%;top:var(--kmy-fy);transform:translateX(-50%);}
.kmy-kb__btn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:12px 14px;
  border-radius:999px;
  border:1px solid rgba(0,0,0,.12);
  background:#ffffff;
  box-shadow:0 10px 30px rgba(0,0,0,.14);
  cursor:pointer;
  font-weight:800;
}
.kmy-kb__dot{
  width:10px;height:10px;border-radius:50%;
  background:#22c55e;
}
.kmy-kb__panel{
  width:min(380px, calc(100vw - 36px));
  /* Responsive height so the input bar (Send) stays visible with mobile keyboards */
  height:min(560px, calc(100dvh - 24px));
  height:min(560px, calc(100vh - 24px)); /* fallback */
  background:#fff;
  border:1px solid rgba(0,0,0,.12);
  border-radius:16px;
  box-shadow:0 20px 50px rgba(0,0,0,.2);
  overflow:hidden;
  display:none;
  flex-direction:column;
  margin-bottom:10px;
}
.kmy-kb__panel.is-open{
  display:flex;
  animation:kmyKbPop .14s ease-out;
}

@keyframes kmyKbPop{
  from{transform:translateY(10px);opacity:.0;}
  to{transform:translateY(0);opacity:1;}
}
.kmy-kb__head{
  padding:12px 12px;
  border-bottom:1px solid rgba(0,0,0,.08);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  background:linear-gradient(180deg,#fff,#f8fafc);
}
.kmy-kb__title{font-weight:900;}
.kmy-kb__close{border:none;background:transparent;font-size:20px;cursor:pointer;line-height:1;}
.kmy-kb__body{
  padding:12px;
  flex:1;
  min-height:0;
  overflow:auto;
}
.kmy-kb__msg{margin:10px 0;display:flex;}
.kmy-kb__msg--user{justify-content:flex-end;}
.kmy-kb__bubble{
  max-width:88%;
  padding:10px 12px;
  border-radius:14px;
  border:1px solid rgba(0,0,0,.08);
  background:#f8fafc;
  white-space:pre-wrap;
  word-wrap:break-word;
  font-size:14px;
  line-height:1.35;
}
.kmy-kb__msg--user .kmy-kb__bubble{background:#ecfeff;}
.kmy-kb__form{
  padding:10px;
  padding-bottom:calc(10px + env(safe-area-inset-bottom));
  border-top:1px solid rgba(0,0,0,.08);
  display:flex;
  gap:8px;
}
.kmy-kb__foot{
  padding:0 10px 10px;
  color:#6b7280;
  font-size:12px;
}
.kmy-kb__input{
  flex:1;
  padding:10px 12px;
  border-radius:12px;
  border:1px solid rgba(0,0,0,.16);
  outline:none;
  font-size:16px; /* prevents iOS Safari auto-zoom */
  line-height:1.2;
}
.kmy-kb__send{
  padding:10px 12px;
  border-radius:12px;
  border:1px solid rgba(0,0,0,.12);
  background:linear-gradient(180deg,#111827,#0b1220);
  color:#fff;
  cursor:pointer;
  font-weight:900;
  font-size:16px; /* keep consistent and prevent zoom */
}
.kmy-kb__sources{
  margin-top:8px;
  color:#6b7280;
  font-size:12px;
}
@media (max-width:480px){
  .kmy-kb{--kmy-fx:12px;--kmy-fy:12px;}
  .kmy-kb__panel{width:calc(100vw - 24px);}
}


.kmy-kb--no-btn .kmy-kb__btn{display:none!important;}
