#fsb-widget {
  --fsb-accent: #e9a5c4;
  --fsb-ink: #382b32;
  --fsb-paper: #fff9fc;
  font-family: inherit;
}
#fsb-widget * { box-sizing: border-box; }
.fsb-launcher {
  position: fixed;
  z-index: 99990;
  right: 22px;
  bottom: 100px;
  display: flex;
  align-items: center;
  gap: 9px;
  max-width: calc(100vw - 32px);
  border: 0;
  border-radius: 999px;
  padding: 13px 18px;
  background: var(--fsb-button-color, #e9a5c4);
  color: var(--fsb-button-text, #fff);
  box-shadow: 0 8px 26px rgba(55, 28, 42, .2);
  cursor: pointer;
  font: inherit;
  font-weight: 700;
  transition: transform .2s ease, box-shadow .2s ease;
}
.fsb-launcher:hover { transform: translateY(-3px); box-shadow: 0 12px 30px rgba(55, 28, 42, .25); }
.fsb-launcher:focus-visible, .fsb-primary:focus-visible, .fsb-close:focus-visible { outline: 3px solid #4b88e8; outline-offset: 3px; }
.fsb-launcher-icon { display: block; width: 42px; height: 42px; flex: 0 0 42px; object-fit: contain; border-radius: 50%; background: #f7efff; }
.fsb-launcher-label { white-space: nowrap; }
.fsb-modal[hidden], .fsb-modal [hidden] { display: none !important; }
.fsb-modal { position: fixed; inset: 0; z-index: 99999; display: grid; place-items: center; padding: 18px; }
.fsb-backdrop { position: absolute; inset: 0; background: rgba(27, 20, 25, .56); backdrop-filter: blur(3px); }
.fsb-dialog {
  position: relative;
  z-index: 1;
  width: min(100%, 430px);
  max-height: min(90vh, 760px);
  overflow-y: auto;
  padding: 34px 26px 28px;
  border: 1px solid rgba(255,255,255,.8);
  border-radius: 24px;
  background: var(--fsb-paper);
  color: var(--fsb-ink);
  box-shadow: 0 24px 90px rgba(0,0,0,.25);
  text-align: center;
  animation: fsb-pop-in .22s ease-out;
}
.fsb-close {
  position: absolute; top: 10px; right: 13px;
  border: 0; background: transparent; color: #6f5c66;
  font-size: 29px; line-height: 1; cursor: pointer; padding: 4px 8px;
}
.fsb-sparkle { color: var(--fsb-accent); font-size: 23px; letter-spacing: 7px; margin-bottom: 9px; }
.fsb-dialog h2 { margin: 5px 0 10px; color: inherit; font: inherit; font-size: clamp(23px, 5vw, 29px); font-weight: 800; line-height: 1.2; }
.fsb-intro, #fsb-result-message { margin: 0 auto 20px; color: #76636d; font-size: 15px; line-height: 1.6; }
.fsb-primary {
  border: 0; border-radius: 999px; padding: 13px 22px;
  background: var(--fsb-accent); color: #fff;
  font: inherit; font-weight: 800; cursor: pointer;
  box-shadow: 0 5px 14px rgba(180, 93, 135, .2);
}
.fsb-primary:hover { filter: brightness(.96); }
.fsb-result-image { display: block; width: auto; max-width: 100%; max-height: 48vh; object-fit: contain; margin: 0 auto 20px; border-radius: 14px; }
.fsb-placeholder { display: grid; place-items: center; width: 150px; height: 150px; margin: 0 auto 20px; border-radius: 50%; background: #fde6f0; font-size: 72px; }
.fsb-modal-open { overflow: hidden; }
@keyframes fsb-pop-in { from { opacity: 0; transform: translateY(8px) scale(.98); } to { opacity: 1; transform: translateY(0) scale(1); } }
@media (max-width: 480px) {
  .fsb-launcher { right: 14px; bottom: 90px; padding: 9px 13px; gap: 8px; }
  .fsb-launcher-icon { width: 38px; height: 38px; flex-basis: 38px; }
  .fsb-dialog { padding: 32px 20px 24px; border-radius: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  .fsb-launcher, .fsb-dialog { transition: none; animation: none; }
}
