.kip-chat-preview {
  position: fixed;
  right: max(1rem, env(safe-area-inset-right));
  bottom: max(1rem, env(safe-area-inset-bottom));
  z-index: 1000;
  color: #f4f7f8;
  font: 1rem/1.4 system-ui, sans-serif;
}
.kip-chat-preview button { font: inherit; cursor: pointer; }
.kip-chat-preview button:focus-visible, .kip-chat-preview textarea:focus-visible {
  outline: 2px solid #f4c343;
  outline-offset: 3px;
}
.kip-chat-preview .kip-chat-launch, .kip-chat-preview button[type="submit"] {
  padding: .65rem .95rem;
  border: 0;
  border-radius: .55rem;
  background: #f4c343;
  color: #102530;
  font-weight: 650;
}
.kip-chat-preview button:disabled { opacity: .6; cursor: wait; }
.kip-chat-preview .kip-chat-launch {
  display: grid;
  place-items: center;
  width: 3.25rem;
  height: 3.25rem;
  padding: 0;
  border-radius: 50%;
  box-shadow: 0 6px 18px #0004;
}
.kip-chat-preview .kip-chat-launch:hover { background: #ffd66b; }
.kip-chat-preview section {
  display: flex;
  flex-direction: column;
  position: absolute;
  right: 0;
  bottom: calc(100% + .75rem);
  width: min(30rem, calc(100vw - 2rem));
  height: min(42rem, calc(100vh - 6rem));
  height: min(42rem, calc(100dvh - 6rem));
  box-sizing: border-box;
  border: 1px solid #42606b;
  border-radius: 1rem;
  background: #102530;
  box-shadow: 0 12px 42px #0007;
  overflow: hidden;
}
.kip-chat-preview section[hidden] { display: none; }
.kip-chat-preview header, .kip-chat-preview form {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .5rem;
  padding: .75rem 1rem;
}
.kip-chat-preview header {
  border-bottom: 1px solid #42606b;
  background: #162e39;
}
.kip-chat-preview form {
  align-items: flex-end;
  border-top: 1px solid #42606b;
}
.kip-chat-preview .kip-chat-close {
  min-width: 2.75rem;
  min-height: 2.75rem;
  border: 1px solid #42606b;
  border-radius: .55rem;
  background: #102530;
  color: inherit;
  font-size: 1.4rem;
}
.kip-chat-preview .kip-chat-messages {
  position: relative;
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: .65rem;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior-y: contain;
  padding: 1rem;
}
.kip-chat-preview .kip-chat-messages p {
  flex: 0 0 auto;
  align-self: flex-start;
  max-inline-size: 94%;
  box-sizing: border-box;
  margin: 0;
  padding: .7rem .85rem;
  border-radius: .75rem;
  overflow-wrap: anywhere;
  white-space: pre-wrap;
  text-align: start;
  line-height: 1.55;
  color: #f4f7f8;
  background: #233f4b;
}
.kip-chat-preview .kip-chat-messages .kip-chat-outgoing {
  align-self: flex-end;
  background: #395362;
}
.kip-chat-preview .kip-chat-status {
  flex: 0 0 auto;
  padding: .35rem 1rem;
  font-size: .88rem;
}
.kip-chat-preview .kip-chat-status:empty { padding: 0; }
.kip-chat-preview textarea {
  flex: 1;
  min-width: 0;
  min-height: 2.75rem;
  max-height: 7rem;
  box-sizing: border-box;
  padding: .6rem;
  border: 1px solid #69838f;
  border-radius: .45rem;
  background: #0a1a22;
  color: inherit;
  font: inherit;
  line-height: 1.4;
  resize: none;
  overflow-y: auto;
}
.kip-chat-preview button[type="submit"] {
  flex: 0 0 auto;
  min-height: 2.75rem;
}

@media (max-width: 640px) {
  .kip-chat-preview section {
    position: fixed;
    left: max(.5rem, env(safe-area-inset-left));
    right: max(.5rem, env(safe-area-inset-right));
    bottom: calc(var(--kip-chat-keyboard-inset, 0px) + max(.5rem, env(safe-area-inset-bottom)));
    width: auto;
    height: min(42rem, calc(100vh - 1rem));
    height: min(42rem, calc(var(--kip-chat-viewport-height, 100dvh) - max(.5rem, env(safe-area-inset-top)) - max(.5rem, env(safe-area-inset-bottom))));
  }
  .kip-chat-preview .kip-chat-launch[aria-expanded="true"] { visibility: hidden; }
  .kip-chat-preview header, .kip-chat-preview form { padding: .6rem .75rem; }
  .kip-chat-preview .kip-chat-messages { padding: .75rem; }
  .kip-chat-preview .kip-chat-messages p { max-inline-size: 97%; }
  .kip-chat-preview textarea { max-height: 5.5rem; font-size: 16px; }
}
