

.concierge-launcher{
  position:fixed;right:22px;bottom:22px;z-index:60;
  display:flex;align-items:center;gap:12px;
  padding:12px 20px 12px 13px;border-radius:999px;cursor:pointer;
  background:linear-gradient(140deg,rgba(45,11,61,.96),rgba(13,5,16,.96));
  border:1px solid rgba(0,170,255,.42);
  box-shadow:0 18px 44px -14px rgba(0,0,0,.85),0 0 0 1px rgba(0,170,255,.16);
  color:var(--text);font-family:var(--font);
  opacity:0;transform:translateY(14px) scale(.96);pointer-events:none;
  transition:opacity .5s cubic-bezier(.2,.7,.3,1),transform .5s cubic-bezier(.2,.7,.3,1),
             border-color .3s,box-shadow .3s;
}
html[data-concierge-launcher-visible="true"] .concierge-launcher{
  opacity:1;transform:none;pointer-events:auto;
}
.concierge-launcher:hover{
  border-color:rgba(0,170,255,.75);
  box-shadow:0 22px 52px -14px rgba(0,0,0,.9),0 0 26px -4px rgba(0,170,255,.5);
}
.concierge-launcher:focus-visible{outline:3px solid var(--accent-2);outline-offset:3px}
.concierge-launcher__mark{
  position:relative;width:40px;height:40px;border-radius:50%;
  display:grid;place-items:center;flex:0 0 auto;
  background:linear-gradient(140deg,var(--accent),#0084d6);color:#04121c;
}
.concierge-launcher__mark svg{width:21px;height:21px;fill:currentColor;display:block}
.concierge-launcher__pulse{
  position:absolute;inset:0;border-radius:50%;
  border:1px solid rgba(0,170,255,.6);animation:cpulse 2.4s ease-out infinite;
}
@keyframes cpulse{
  0%{transform:scale(1);opacity:.7}
  70%{transform:scale(1.55);opacity:0}
  100%{transform:scale(1.55);opacity:0}
}
.concierge-launcher__copy{display:flex;flex-direction:column;text-align:left;line-height:1.2}
.concierge-launcher__copy small{
  font-size:9px;letter-spacing:.15em;text-transform:uppercase;color:var(--accent-2);font-weight:700}
.concierge-launcher__copy strong{margin-top:3px;font-size:14px}

.concierge-modal{
  position:fixed;inset:0;z-index:70;display:none;
  align-items:flex-end;justify-content:flex-end;padding:22px;
}
.concierge-modal.open{display:flex}
.concierge-modal__scrim{position:absolute;inset:0;background:rgba(6,2,9,.62);backdrop-filter:blur(4px)}
.concierge-panel{
  position:relative;width:min(420px,94vw);max-height:min(660px,86vh);
  display:flex;flex-direction:column;overflow:hidden;
  background:linear-gradient(168deg,rgba(45,11,61,.98),rgba(13,5,16,.99));
  border:1px solid rgba(0,170,255,.34);border-radius:20px;
  box-shadow:0 40px 90px -24px rgba(0,0,0,.92);
  animation:cslide .42s cubic-bezier(.2,.7,.3,1);
}
@keyframes cslide{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
.concierge-head{
  display:flex;align-items:center;gap:12px;padding:18px 18px 14px;
  border-bottom:1px solid var(--line)}
.concierge-head__dot{
  width:9px;height:9px;border-radius:50%;background:var(--accent);flex:0 0 auto;
  box-shadow:0 0 0 4px rgba(0,170,255,.16)}
.concierge-head__txt{flex:1;min-width:0}
.concierge-head__txt strong{display:block;font-size:14px}
.concierge-head__txt span{font-size:11.5px;color:var(--muted)}
.concierge-close{
  width:32px;height:32px;border-radius:9px;flex:0 0 auto;cursor:pointer;
  background:rgba(255,255,255,.07);border:1px solid var(--line);color:var(--text);
  font-size:17px;line-height:1;transition:background .25s}
.concierge-close:hover{background:rgba(255,255,255,.16)}

.concierge-transcript{
  flex:1;overflow-y:auto;padding:16px 18px;display:flex;flex-direction:column;gap:11px}
.concierge-message{
  margin:0;padding:11px 14px;border-radius:14px;font-size:14px;line-height:1.5;max-width:88%}
.concierge-message--agent{
  background:rgba(255,255,255,.07);border:1px solid var(--line);align-self:flex-start;
  border-bottom-left-radius:5px}
.concierge-message--user{
  background:linear-gradient(135deg,var(--accent),#0084d6);color:#04121c;font-weight:600;
  align-self:flex-end;border-bottom-right-radius:5px}

.concierge-foot{padding:14px 18px 18px;border-top:1px solid var(--line);display:grid;gap:10px}
.concierge-state{font-size:11.5px;color:var(--muted);text-align:center;min-height:15px}
.concierge-controls{display:flex;gap:9px}
.concierge-controls .btn{flex:1;justify-content:center;padding:12px 16px;font-size:14px}
.concierge-chat{display:flex;gap:9px}
.concierge-chat input{
  flex:1;min-width:0;padding:12px 14px;border-radius:11px;font-family:var(--font);font-size:14px;
  background:rgba(255,255,255,.07);border:1px solid var(--line);color:var(--text)}
.concierge-chat input:focus{outline:none;border-color:rgba(0,170,255,.6)}
.concierge-chat button{
  padding:12px 17px;border-radius:11px;cursor:pointer;font-weight:700;font-size:14px;
  background:rgba(0,170,255,.18);border:1px solid rgba(0,170,255,.42);color:var(--text)}
.concierge-chat button:hover{background:rgba(0,170,255,.3)}

@media (max-width:860px){
  .concierge-chat input{font-size:16px}
  .concierge-chat button{font-size:15px}
}
.concierge-error{
  margin:0;padding:10px 13px;border-radius:11px;font-size:12.5px;
  background:rgba(255,86,86,.12);border:1px solid rgba(255,86,86,.34);color:#ffc9c9}

@media (max-width:560px){
  .concierge-modal{padding:0;align-items:stretch;justify-content:stretch}
  .concierge-panel{width:100%;max-height:100%;border-radius:0;border:none}
  
  .concierge-transcript{flex:0 1 auto;min-height:0}
  .concierge-foot{flex:0 0 auto}
  .concierge-launcher{right:14px;bottom:14px;padding:10px 17px 10px 11px}
  .concierge-launcher__copy small{font-size:8.5px}
}
@media (prefers-reduced-motion:reduce){
  .concierge-launcher__pulse{animation:none}
  .concierge-panel{animation:none}
}

.concierge-controls .btn[hidden]{display:none!important}
