.pslsc-widget * { box-sizing: border-box; }
.pslsc-bubble {
  position: fixed; right: 22px; bottom: 22px; z-index: 99998;
  border: 0; border-radius: 999px; background: #000; color: #fff;
  font-weight: 800; letter-spacing: .02em; padding: 15px 24px; cursor: pointer;
  min-width: max-content; white-space: nowrap;
  box-shadow: 0 16px 38px rgba(0,0,0,.24); font-size: 15px;
}
.pslsc-panel {
  position: fixed; right: 22px; bottom: 82px; z-index: 99999;
  width: min(380px, calc(100vw - 28px)); max-height: min(620px, calc(var(--pslsc-vh, 100vh) - 110px));
  background: #fff; border: 1px solid #111; border-radius: 22px; overflow: hidden;
  box-shadow: 0 22px 70px rgba(0,0,0,.28); display: none; flex-direction: column;
  font-family: inherit; min-height: 0;
}
.pslsc-panel.is-open { display: flex; }
.pslsc-header { background:#000; color:#fff; padding: 16px 18px; display:flex; justify-content:space-between; align-items:center; flex: 0 0 auto; }
.pslsc-header strong { display:block; font-size: 17px; line-height: 1.1; }
.pslsc-header span { display:block; opacity:.72; font-size: 12px; margin-top: 3px; }
.pslsc-close { background:transparent; color:#fff; border:0; font-size: 28px; line-height:1; cursor:pointer; }
.pslsc-body { padding: 15px; overflow-y: auto; flex: 1 1 auto; background: #fafafa; min-height: 0; -webkit-overflow-scrolling: touch; overscroll-behavior-y: contain; }
.pslsc-welcome { font-size: 14px; line-height: 1.35; margin-bottom: 8px; }
.pslsc-legal { font-size: 11px; line-height: 1.25; opacity: .62; margin-bottom: 12px; }
.pslsc-messages { display:flex; flex-direction:column; gap: 9px; }
.pslsc-msg { display:flex; width:100%; }
.pslsc-msg span { display:inline-block; padding: 10px 12px; border-radius: 15px; max-width: 86%; font-size: 14px; line-height: 1.3; white-space: pre-wrap; }
.pslsc-msg.from-visitor { justify-content:flex-end; }
.pslsc-msg.from-visitor span { background:#000; color:#fff; border-bottom-right-radius: 4px; }
.pslsc-msg.from-owner { justify-content:flex-start; }
.pslsc-msg.from-owner span { background:#e9e9e9; color:#000; border-bottom-left-radius: 4px; }
.pslsc-form { border-top: 1px solid #ddd; padding: 12px; background:#fff; display:grid; gap: 9px; flex: 0 0 auto; }
.pslsc-fields { display:grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.pslsc-form input, .pslsc-form textarea { width:100%; border:1px solid #ccc; border-radius: 12px; padding: 10px 11px; font: inherit; resize:none; }
.pslsc-form textarea { min-height: 48px; }
.pslsc-form button[type="submit"] { border:0; border-radius: 999px; background:#000; color:#fff; font-weight:800; padding: 11px 14px; cursor:pointer; }
.pslsc-form button[disabled] { opacity:.55; cursor:not-allowed; }
@media (max-width: 480px) {
  .pslsc-panel {
    right: 14px; bottom: 76px;
    height: min(560px, calc(var(--pslsc-vh, 100vh) - 104px));
    max-height: calc(var(--pslsc-vh, 100vh) - 104px);
  }
  .pslsc-bubble { right: 14px; bottom: 16px; }
  .pslsc-fields { grid-template-columns: 1fr; }
}

/* Desktop-only button fit fix. Mobile styling above is intentionally untouched from v0.10. */
@media (min-width: 1024px) {
  .pslsc-bubble {
    right: 34px !important;
    bottom: 30px !important;
    width: auto !important;
    min-width: 0 !important;
    min-height: 0 !important;
    padding: 18px 30px !important;
    font-size: 27px !important;
    line-height: 1 !important;
    letter-spacing: .055em !important;
    text-transform: uppercase !important;
    font-weight: 900 !important;
    box-shadow: 0 18px 46px rgba(0,0,0,.32) !important;
  }

  .pslsc-panel {
    right: 34px !important;
    bottom: 102px !important;
    width: min(430px, calc(100vw - 68px)) !important;
  }
}
