.ai-concierge-launcher{
  position:fixed;
  right:20px;
  bottom:20px;
  z-index:80;
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:50px;
  padding:11px 16px;
  border:1px solid rgba(255,255,255,.22);
  border-radius:999px;
  background:#183b34;
  color:#fff;
  box-shadow:0 12px 30px rgba(24,59,52,.22);
  font:inherit;
  font-weight:800;
  cursor:pointer;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(8px);
  transition:opacity .24s ease,transform .24s ease,box-shadow .16s ease,background-color .16s ease;
}
.ai-concierge-launcher:hover{transform:translateY(-2px);background:#234f45;box-shadow:0 16px 36px rgba(24,59,52,.27)}
.ai-concierge-launcher.is-visible{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}
.ai-concierge-launcher[hidden]{display:none}
.ai-concierge-launcher-icon{display:grid;place-items:center;font-size:18px;line-height:1}
.ai-concierge-launcher-label{max-width:112px;overflow:hidden;white-space:nowrap;opacity:1;transition:max-width .18s ease,opacity .14s ease}
.ai-concierge-launcher-icon.is-mobile,.ai-concierge-launcher-label.is-mobile{display:none}

.ai-concierge-backdrop{
  position:fixed;
  inset:0;
  z-index:78;
  background:rgba(16,30,27,.35);
  backdrop-filter:blur(0);
  -webkit-backdrop-filter:blur(0);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .28s ease,backdrop-filter .28s ease,-webkit-backdrop-filter .28s ease,visibility 0s linear .28s;
}
.ai-concierge-backdrop.is-open{opacity:1;visibility:visible;pointer-events:auto;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);transition-delay:0s}

.ai-concierge-panel{
  position:fixed;
  right:20px;
  bottom:82px;
  z-index:79;
  width:min(418px,calc(100vw - 24px));
  height:min(84dvh,800px);
  max-height:calc(100dvh - 102px);
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border:1px solid rgba(219,229,224,.96);
  border-radius:22px;
  background:#fffdf9;
  box-shadow:0 26px 70px rgba(16,30,27,.27);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(28px) scale(.985);
  transform-origin:bottom right;
  transition:opacity .26s ease,transform .32s cubic-bezier(.22,1,.36,1),visibility 0s linear .32s;
  will-change:transform,opacity;
}
.ai-concierge-panel.is-open{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0) scale(1);transition-delay:0s}
body.ai-concierge-open{overflow:hidden;overscroll-behavior:none}
body.ai-concierge-ready .float-wa[data-link="houseWhatsapp"]{display:none}
.ai-concierge-drag-handle{display:none}
.ai-concierge-drag-handle::before{content:"";position:absolute;left:50%;top:9px;width:40px;height:4px;transform:translateX(-50%);border-radius:999px;background:#c7d2cd}

.ai-concierge-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:14px;
  padding:15px 16px 13px;
  border-bottom:1px solid #dbe5e0;
  background:#f1f7f4;
}
.ai-concierge-head h2{margin:0 0 5px;color:#183b34;font-size:21px;line-height:1.15}
.ai-concierge-room-context{display:inline-flex;align-items:center;min-height:30px;padding:4px 9px;border:1px solid #c5d8d0;border-radius:999px;background:#fff;color:#2f6f5f;font:inherit;font-size:12px;font-weight:800;cursor:pointer}
.ai-concierge-close{display:grid;place-items:center;width:42px;height:42px;flex:0 0 auto;padding:0;border:0;border-radius:10px;background:transparent;color:#183b34;font-size:26px;line-height:1;cursor:pointer}
.ai-concierge-close:hover{background:#e2eee9}

.ai-concierge-body{min-height:0;padding:16px;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.ai-concierge-welcome{margin-bottom:14px;color:#183b34}
.ai-concierge-welcome h3{margin:0 0 5px;font-size:19px;line-height:1.25}
.ai-concierge-welcome p{margin:0;color:#64756f;font-size:14px;line-height:1.52}
.ai-concierge-registration-status{margin:0 0 10px;padding:8px 10px;border:1px solid #dfcfa9;border-radius:10px;background:#fff9e9;color:#6d5724;font-size:12px;font-weight:800;line-height:1.35}
.ai-concierge-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.ai-concierge-action{
  display:flex;
  align-items:center;
  gap:9px;
  min-width:0;
  min-height:54px;
  padding:10px 11px;
  border:1px solid #d7e3de;
  border-radius:12px;
  background:#fff;
  color:#183b34;
  font:inherit;
  font-size:13px;
  font-weight:800;
  line-height:1.3;
  text-align:left;
  text-decoration:none;
  overflow-wrap:anywhere;
  cursor:pointer;
  transition:background-color .15s ease,border-color .15s ease,transform .15s ease;
}
.ai-concierge-action>span:first-child{display:grid;place-items:center;width:24px;min-width:24px;font-size:18px;line-height:1}
.ai-concierge-action>span:last-child{min-width:0}
.ai-concierge-action:hover{transform:translateY(-1px);border-color:#bfd3ca;background:#edf6f2}
.ai-concierge-service-hours{margin:0;padding:10px 1px 0;color:#68736f;font-size:11px;line-height:1.45}

.ai-concierge-context{margin-top:16px;padding-top:14px;border-top:1px solid #dfe7e2}
.ai-concierge-context h4{margin:0 0 9px;color:#183b34;font-size:14px}
.ai-concierge-prompt{width:100%;min-height:42px;margin:0 0 7px;padding:9px 11px;border:1px solid #dbe5e0;border-radius:10px;background:#fff;color:#183b34;text-align:left;font:inherit;font-size:13px;line-height:1.4;cursor:pointer}
.ai-concierge-prompt:hover{background:#edf6f2}

.ai-concierge-room-selector{margin-top:14px;padding:13px;border:1px solid #c8dbd3;border-radius:14px;background:#f2f8f5;color:#183b34}
.ai-concierge-room-selector[hidden]{display:none}
.ai-concierge-room-selector-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.ai-concierge-room-selector-head button{display:grid;place-items:center;width:40px;height:40px;padding:0;border:0;border-radius:9px;background:transparent;color:#183b34;font-size:22px;cursor:pointer}
.ai-concierge-room-selector p{margin:4px 0 11px;color:#64756f;font-size:13px;line-height:1.45}
.ai-concierge-room-options{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.ai-concierge-room-options button{min-width:0;min-height:40px;padding:7px 4px;border:1px solid #c8d9d2;border-radius:9px;background:#fff;color:#183b34;font:inherit;font-size:12px;font-weight:800;cursor:pointer}
.ai-concierge-room-options button:hover{background:#e5f1ec}

.ai-concierge-chat{margin-top:16px;padding-top:14px;border-top:1px solid #dfe7e2}
.ai-concierge-messages{display:flex;flex-direction:column;gap:12px;max-height:310px;margin-bottom:12px;padding:2px 3px 2px 0;overflow:auto;overscroll-behavior:contain;scroll-behavior:smooth}
.ai-concierge-message{display:flex;flex-direction:column;align-items:flex-start;gap:7px;min-width:0}
.ai-concierge-message.is-guest{align-items:flex-end}
.ai-concierge-bubble{max-width:92%;padding:11px 13px;border:1px solid #d5e4de;border-radius:14px 14px 14px 5px;background:#edf6f2;color:#183b34;font-size:14px;line-height:1.58;white-space:pre-wrap;overflow-wrap:anywhere;word-break:normal}
.ai-concierge-message.is-guest .ai-concierge-bubble{border-color:#183b34;border-radius:14px 14px 5px 14px;background:#183b34;color:#fff}
.ai-concierge-message.is-status .ai-concierge-bubble{display:inline-flex;min-width:54px;align-items:center;justify-content:center;padding:13px 15px}
.ai-concierge-thinking-dots{display:inline-flex;align-items:center;gap:5px}
.ai-concierge-thinking-dots span{width:7px;height:7px;border-radius:50%;background:#47756a;opacity:.32;animation:ai-concierge-thinking-dot 1.15s ease-in-out infinite}
.ai-concierge-thinking-dots span:nth-child(2){animation-delay:.15s}
.ai-concierge-thinking-dots span:nth-child(3){animation-delay:.3s}
@keyframes ai-concierge-thinking-dot{0%,60%,100%{transform:translateY(0);opacity:.32}30%{transform:translateY(-4px);opacity:1}}

.ai-concierge-message-actions{display:flex;flex-wrap:wrap;gap:7px;max-width:100%}
.ai-concierge-message-action{display:inline-flex;align-items:center;justify-content:center;min-width:0;min-height:42px;max-width:100%;padding:8px 11px;border:1px solid #2f6f5f;border-radius:10px;background:#fff;color:#2f6f5f;font:inherit;font-size:13px;font-weight:800;line-height:1.3;text-align:center;text-decoration:none;white-space:normal;overflow-wrap:anywhere;cursor:pointer}
.ai-concierge-message-action:hover{background:#edf6f2}
.ai-concierge-message-action:disabled{opacity:.52;cursor:wait}
.ai-concierge-message-action.is-danger,.ai-concierge-message-action.is-danger:link,.ai-concierge-message-action.is-danger:visited{border-color:#8f2925!important;background:#a9342f!important;color:#fff!important;text-shadow:0 1px 0 rgba(0,0,0,.12)}
.ai-concierge-message-action.is-danger:hover,.ai-concierge-message-action.is-danger:focus-visible{border-color:#76211e!important;background:#8f2925!important;color:#fff!important}
.ai-concierge-feedback{display:inline-flex;align-items:center;gap:5px;padding-left:3px;color:#71807b;font-size:11px}
.ai-concierge-feedback button{min-height:30px;padding:4px 8px;border:1px solid #d2dfda;border-radius:999px;background:#fff;color:#47675e;font:inherit;font-size:11px;font-weight:800;cursor:pointer}
.ai-concierge-feedback button:hover{background:#edf6f2}
.ai-concierge-feedback button:disabled{opacity:.5;cursor:wait}

.ai-concierge-input-row{display:flex;align-items:stretch;gap:8px}
.ai-concierge-input{flex:1;min-width:0;min-height:48px;padding:11px 12px;border:1px solid #cbdad4;border-radius:12px;background:#fff;color:#183b34;font:inherit;font-size:16px}
.ai-concierge-send{min-width:68px;min-height:48px;padding:10px 13px;border:1px solid #2f6f5f;border-radius:12px;background:#2f6f5f;color:#fff;font:inherit;font-weight:800;cursor:pointer}
.ai-concierge-send:hover{background:#234f45}
.ai-concierge-send:disabled{opacity:.52;cursor:wait}
.ai-concierge-note{margin:8px 0 0;color:#6e7c77;font-size:11px;line-height:1.45}

.ai-concierge-input:focus-visible,.ai-concierge-send:focus-visible,.ai-concierge-action:focus-visible,.ai-concierge-prompt:focus-visible,.ai-concierge-room-context:focus-visible,.ai-concierge-room-options button:focus-visible,.ai-concierge-message-action:focus-visible,.ai-concierge-feedback button:focus-visible,.ai-concierge-close:focus-visible,.ai-concierge-room-selector-head button:focus-visible,.ai-concierge-launcher:focus-visible{outline:3px solid rgba(47,111,95,.26);outline-offset:2px}

@media(min-width:641px){
  .ai-concierge-panel.has-conversation .ai-concierge-head{padding:12px 15px 10px}
  .ai-concierge-panel.has-conversation .ai-concierge-head h2{font-size:19px}
  .ai-concierge-panel.has-conversation .ai-concierge-body{display:flex;flex-direction:column;overflow:hidden;padding:12px 15px 14px}
  .ai-concierge-panel.has-conversation .ai-concierge-welcome,.ai-concierge-panel.has-conversation .ai-concierge-context{display:none}
  .ai-concierge-panel.has-conversation .ai-concierge-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
  .ai-concierge-panel.has-conversation .ai-concierge-action{min-height:46px;padding:8px 9px;font-size:12px}
  .ai-concierge-panel.has-conversation .ai-concierge-action>span:first-child{width:21px;min-width:21px;font-size:16px}
  .ai-concierge-panel.has-conversation .ai-concierge-service-hours{padding-top:7px;font-size:10px}
  .ai-concierge-panel.has-conversation .ai-concierge-chat{display:flex;flex:1;min-height:0;flex-direction:column;margin-top:9px;padding-top:9px}
  .ai-concierge-panel.has-conversation .ai-concierge-messages{flex:1;min-height:160px;max-height:none}
}

@media(max-width:640px){
  .ai-concierge-panel{left:0;right:0;bottom:0;width:100%;height:min(92dvh,820px);max-height:92dvh;border-radius:22px 22px 0 0;transform:translateY(100%);transform-origin:bottom center}
  .ai-concierge-panel.is-open{transform:translateY(0)}
  .ai-concierge-drag-handle{display:none}
  .ai-concierge-head{padding:11px 14px 10px}
  .ai-concierge-body{display:flex;min-height:0;flex-direction:column;padding:14px 12px max(12px,env(safe-area-inset-bottom))}
  .ai-concierge-panel.has-conversation .ai-concierge-welcome,.ai-concierge-panel.has-conversation .ai-concierge-context{display:none}
  .ai-concierge-panel.has-conversation .ai-concierge-head{padding:9px 14px 8px}
  .ai-concierge-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
  .ai-concierge-action{min-height:50px;padding:9px;font-size:12.5px}
  .ai-concierge-panel.has-conversation .ai-concierge-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
  .ai-concierge-panel.has-conversation .ai-concierge-action{min-height:39px;padding:6px 6px;font-size:11px;line-height:1.2}
  .ai-concierge-panel.has-conversation .ai-concierge-action>span:first-child{width:18px;min-width:18px;font-size:15px}
  .ai-concierge-panel.has-conversation .ai-concierge-service-hours{padding-top:5px;font-size:9.5px;line-height:1.3}
  .ai-concierge-room-options{grid-template-columns:repeat(3,minmax(0,1fr))}
  .ai-concierge-chat{display:flex;min-height:0;flex:1;flex-direction:column}
  .ai-concierge-panel.has-conversation .ai-concierge-chat{margin-top:9px;padding-top:9px}
  .ai-concierge-messages{flex:1;min-height:170px;max-height:none}
  .ai-concierge-bubble{max-width:94%;font-size:14px;line-height:1.56}
  .ai-concierge-input-row{position:sticky;bottom:0;background:#fffdf9}
}

@media(max-width:767px){
  body.ai-concierge-ready{padding-bottom:calc(72px + env(safe-area-inset-bottom))}
  .ai-concierge-launcher{
    right:calc(12px + env(safe-area-inset-right));
    bottom:calc(12px + env(safe-area-inset-bottom));
    justify-content:center;
    width:148px;
    min-width:148px;
    height:52px;
    min-height:52px;
    padding:0 15px;
    border-radius:999px;
  }
  .ai-concierge-launcher-icon.is-desktop,.ai-concierge-launcher-label.is-desktop{display:none}
  .ai-concierge-launcher-icon.is-mobile{display:grid;font-size:20px}
  .ai-concierge-launcher-label.is-mobile{display:block}
}

@media(max-width:340px){
  .ai-concierge-panel{height:94dvh;max-height:94dvh}
  .ai-concierge-head h2{font-size:19px}
  .ai-concierge-actions{grid-template-columns:1fr 1fr}
  .ai-concierge-action{padding-inline:8px}
  .ai-concierge-send{min-width:62px;padding-inline:10px}
}

@media(prefers-reduced-motion:reduce){
  .ai-concierge-thinking-dots span{animation:none;opacity:.72}
  .ai-concierge-panel,.ai-concierge-backdrop,.ai-concierge-launcher{transition-duration:.01ms}
}
