.raumo-widget {
  --raumo-ink: #2f3a34;
  --raumo-muted: #5d6c64;
  --raumo-edge: #d5e1da;
  font: 500 14px/1.5 var(--rg-sans, system-ui, sans-serif);
  letter-spacing: normal;
  color: var(--raumo-ink);
}
.raumo-widget :focus-visible { outline: 2px solid #35654b; outline-offset: 3px; }
.raumo-widget button { cursor: pointer; font: inherit; }
.raumo-launch {
  position: fixed;
  z-index: 980;
  right: max(16px, env(safe-area-inset-right));
  bottom: max(16px, env(safe-area-inset-bottom));
  display: flex;
  gap: 8px;
  align-items: center;
  padding: 5px 14px 5px 5px;
  border: 1px solid #ffffffc9;
  border-radius: 999px;
  background: linear-gradient(135deg,#ffffffdf,#edf3efcf 58%,#d8e7deca);
  color: var(--raumo-ink);
  box-shadow: 0 12px 34px #321b4440, inset 0 1px #fff, inset 0 -1px #ffffff61;
  -webkit-backdrop-filter: blur(18px) saturate(1.28);
  backdrop-filter: blur(18px) saturate(1.28);
  text-align: left;
  transition: translate .55s cubic-bezier(.2,.8,.2,1), opacity .35s ease, visibility 0s linear 0s, box-shadow .25s ease;
}
.raumo-launch:hover { translate: 0 -4px; box-shadow: 0 13px 34px #2b163d57, inset 0 1px #fff; }
.raumo-launch:is(:hover,:focus-visible,:active) { background: linear-gradient(135deg,#ffffffed,#e5f0e9dd 55%,#cfe2d7d8); }
.raumo-launch-face { display: grid; place-items: center; width: 72px; height: 72px; overflow: hidden; border: 1px solid #ffffffb8; border-radius: 50%; background: radial-gradient(circle at 35% 22%,#ffffffeb 0,#e9d9f4b8 48%,#b98fd0b8 100%); box-shadow: inset 0 1px #fff,0 5px 16px #5232662b; transition: rotate .25s ease; pointer-events: none; }
.raumo-launch-face iframe { display: block; width: 72px; height: 72px; border: 0; background: transparent; pointer-events: none; }
.raumo-launch:hover .raumo-launch-face { rotate: -5deg; }
.raumo-launch-label { display: grid; line-height: 1.25; }
.raumo-launch-label strong { font-weight: 600; }
.raumo-launch-label small { font-size: .74rem; color: var(--raumo-muted); }
.raumo-launch-label small { transition: opacity .18s ease, translate .18s ease; }
.raumo-launch-label small.is-changing { opacity: 0; translate: 0 3px; }
.raumo-widget--home:not(.raumo-widget--arrived) .raumo-launch { opacity: 0; visibility: hidden; translate: calc(100% + 34px) 0; pointer-events: none; transition-delay: 0s,0s,.55s,0s; }
.raumo-widget--home.raumo-widget--arrived .raumo-launch { opacity: 1; visibility: visible; translate: 0 0; pointer-events: auto; animation: raumo-arrive .72s cubic-bezier(.18,.88,.25,1.15) both; }
@keyframes raumo-arrive { 0% { opacity: 0; translate: calc(100% + 34px) 0; } 72% { opacity: 1; translate: -7px 0; } 100% { opacity: 1; translate: 0 0; } }
.raumo-chat {
  --raumo-chat-height: 580px;
  position: fixed;
  inset: auto max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) auto;
  width: min(clamp(390px, 22vw, 420px), calc(100vw - 32px));
  max-width: none;
  max-height: calc(100dvh - 32px);
  padding: 0;
  margin: 0;
  border: 1px solid #ffffffe8;
  border-radius: 22px;
  background: linear-gradient(145deg, #ffffffc4 0%, #faf4fbbb 52%, #e7f2eab3 100%);
  color: var(--raumo-ink);
  box-shadow: 0 28px 82px #25113052, inset 0 1px #fff, inset 0 -1px #ffffff7d, 0 0 0 1px #ffffff38;
  -webkit-backdrop-filter: blur(30px) saturate(1.35);
  backdrop-filter: blur(30px) saturate(1.35);
  overflow: hidden;
}
.raumo-chat[open] { animation: raumo-enter .58s cubic-bezier(.2,.78,.22,1) both; }
.raumo-chat.raumo-chat--closing { animation: raumo-exit .4s cubic-bezier(.4,0,.7,.2) both; pointer-events: none; }
@keyframes raumo-enter {
  from { opacity: 0; translate: 0 24px; scale: .965; }
  to { opacity: 1; translate: 0; scale: 1; }
}
@keyframes raumo-exit {
  from { opacity: 1; translate: 0; scale: 1; }
  to { opacity: 0; translate: 0 16px; scale: .975; }
}
.raumo-chat::backdrop { background: #24193144; }
.raumo-chat[open]::backdrop { animation: raumo-backdrop-in .48s ease both; }
.raumo-chat.raumo-chat--closing::backdrop { animation: raumo-backdrop-out .36s ease both; }
@keyframes raumo-backdrop-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes raumo-backdrop-out { from { opacity: 1; } to { opacity: 0; } }
.raumo-shell {
  display: flex;
  flex-direction: column;
  height: min(var(--raumo-chat-height), clamp(480px, 72dvh, 580px), calc(100dvh - 36px));
  transition: height .62s cubic-bezier(.2,.75,.22,1);
}
.raumo-chat[open]:not(.raumo-chat--closing) :is(.raumo-top,.raumo-feed,.raumo-prompts,.raumo-booking,.raumo-compose,.raumo-privacy) {
  animation: raumo-content-in .46s cubic-bezier(.2,.72,.25,1) both;
}
.raumo-chat[open]:not(.raumo-chat--closing) .raumo-top { animation-delay: .08s; }
.raumo-chat[open]:not(.raumo-chat--closing) .raumo-feed { animation-delay: .14s; }
.raumo-chat[open]:not(.raumo-chat--closing) .raumo-prompts { animation-delay: .2s; }
.raumo-chat[open]:not(.raumo-chat--closing) .raumo-booking { animation-delay: .24s; }
.raumo-chat[open]:not(.raumo-chat--closing) .raumo-compose { animation-delay: .28s; }
.raumo-chat[open]:not(.raumo-chat--closing) .raumo-privacy { animation-delay: .31s; }
@keyframes raumo-content-in {
  from { opacity: 0; translate: 0 8px; }
  to { opacity: 1; translate: 0; }
}
.raumo-top { display: grid; grid-template-columns: 138px minmax(0,1fr) auto; align-items: center; gap: 6px; min-height: 124px; padding: 3px 12px 3px 2px; background: radial-gradient(circle at 18% 10%,#ffffffcf 0,transparent 43%),linear-gradient(115deg,#e6d8f2b8,#f6eef9a3); color: var(--raumo-ink); overflow: hidden; box-shadow: inset 0 -1px #90709c30; }
.raumo-avatar-3d { align-self: stretch; min-height: 118px; pointer-events: none; }
.raumo-avatar-3d iframe { display: block; width: 100%; height: 100%; min-height: 118px; border: 0; background: transparent; pointer-events: none; }
.raumo-top h2 { margin: 0; font-size: 1.22rem; line-height: 1.2; color: inherit; }
.raumo-top p { margin: 3px 0 0; color: var(--raumo-muted); font-size: .76rem; line-height: 1.3; }
.raumo-close { width: 35px; height: 35px; border: 1px solid var(--raumo-edge); border-radius: 50%; background: #fff5; color: var(--raumo-ink); font-size: 22px !important; line-height: 1 !important; }
.raumo-close:is(:hover,:focus-visible,:active) { background: #fff; color: var(--raumo-ink); }
.raumo-feed { flex: 1 1 auto; min-height: 50px; overflow: auto; overscroll-behavior: contain; padding: 13px; display: flex; flex-direction: column; gap: 9px; }
.raumo-message { align-self: flex-start; max-width: 94%; padding: 9px 11px; margin: 0; border: 1px solid #eadcf1; border-radius: 4px 14px 14px; background: #fff; overflow-wrap: anywhere; }
.raumo-message p { margin: 0; font: inherit; }
.raumo-message--user { align-self: flex-end; border-radius: 14px 4px 14px 14px; border-color: #ccded3; background: #e5efe9; }
.raumo-actions { display: flex; gap: 5px 11px; flex-wrap: wrap; margin-top: 6px; }
.raumo-actions a { color: #3f654f; font-size: .82rem; font-weight: 550; text-underline-offset: 3px; }
.raumo-prompts { display: flex; gap: 6px; flex-wrap: wrap; padding: 6px 12px 9px; }
.raumo-prompts button { border: 1px solid var(--raumo-edge); border-radius: 999px; padding: 4px 8px; background: #fff; color: var(--raumo-ink); font-size: .72rem; font-weight: 650; }
.raumo-prompts button:is(:hover,:focus-visible,:active) { background: #d7ecdb; }
.raumo-booking { padding: 0 12px 9px; }
.raumo-booking a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 6px 12px;
  border: 1px solid #a687b7;
  border-radius: 12px;
  background: linear-gradient(115deg,#e7d8f2,#f4eef8);
  color: var(--raumo-ink);
  font-size: .82rem;
  font-weight: 750;
  text-align: center;
  text-decoration: none;
}
.raumo-booking a:is(:hover,:focus-visible,:active) { background: #e6d5f0; color: var(--raumo-ink); }
.raumo-compose { display: flex; align-items: center; gap: 7px; padding: 8px 12px 4px; margin: 0; border-top: 1px solid #ecddf0; }
.raumo-compose input { flex: 1 1 auto; min-width: 0; padding: 8px 10px; border: 1px solid #b59dc4; border-radius: 10px; background: #fff; color: var(--raumo-ink); font: 500 16px/1.3 var(--rg-sans, system-ui, sans-serif); }
.raumo-compose button { flex: 0 0 39px; height: 39px; border: 0; border-radius: 12px; background: #456655; color: #fff; font-size: 1.23rem; }
.raumo-compose button:is(:hover,:focus-visible,:active) { background: #315d45; }
.raumo-privacy { padding: 0 12px 8px; margin: 0; color: var(--raumo-muted); font-size: .68rem; }
@media (max-width: 700px) {
  .raumo-launch { padding: 4px; }
  .raumo-launch-face,.raumo-launch-face iframe { width: 68px; height: 68px; }
  .raumo-launch-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .raumo-chat {
    inset: auto max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) auto;
    width: min(390px, calc(100vw - 24px));
  }
  .raumo-top { grid-template-columns: 124px minmax(0,1fr) auto; }
}
@media (min-width: 481px) and (max-width: 900px) {
  .raumo-shell { height: min(var(--raumo-chat-height), 520px, calc(100dvh - 36px)); }
}
@media (max-width: 480px) {
  .raumo-chat { inset: auto 8px max(8px, env(safe-area-inset-bottom)) 8px; width: auto; }
}
@media (prefers-reduced-motion: reduce) {
  .raumo-chat[open],.raumo-chat[open]::backdrop,.raumo-chat[open] *,.raumo-launch,.raumo-launch-face { animation: none !important; transition: none !important; translate: none !important; rotate: none !important; scale: none !important; }
}
