/* ===== Calme Concierge — glass chat UI ===== */
.cw-launch{
  position:fixed;right:16px;bottom:16px;z-index:75;
  width:58px;height:58px;border-radius:50%;
  background:rgba(46,61,47,.88);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  border:1px solid rgba(184,151,90,.55);
  box-shadow:0 10px 32px -8px rgba(20,28,21,.55), inset 0 1px 0 rgba(245,240,232,.08);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;opacity:0;transform:translateY(12px) scale(.9);
  transition:opacity .9s ease, transform .9s ease, box-shadow .3s ease;
}
.cw-launch.cw-in{opacity:1;transform:none}
.cw-launch:hover{box-shadow:0 14px 40px -8px rgba(20,28,21,.65), 0 0 0 5px rgba(184,151,90,.12)}
.cw-launch.cw-above-bar{bottom:calc(84px + env(safe-area-inset-bottom) + 34px)}
.cw-launch .cw-moon{
  width:24px;height:24px;border-radius:50%;position:relative;display:block;
}
.cw-launch .cw-moon::before{
  content:"";position:absolute;inset:0;border-radius:50%;
  box-shadow:inset -8px -2px 0 0 #C9AD78;
}
.cw-hint{
  position:fixed;right:82px;bottom:30px;z-index:75;
  font-family:"Noto Serif JP",serif;font-size:12px;letter-spacing:.1em;
  color:#F5F0E8;background:rgba(46,61,47,.92);
  border:1px solid rgba(184,151,90,.4);border-radius:999px;
  padding:9px 16px;white-space:nowrap;pointer-events:none;
  opacity:0;transform:translateX(8px);
  transition:opacity .8s ease,transform .8s ease;
}
.cw-hint.cw-in{opacity:1;transform:none}
.cw-hint.cw-above-bar{bottom:calc(84px + env(safe-area-inset-bottom) + 48px)}

.cw-panel{
  position:fixed;z-index:80;display:flex;flex-direction:column;overflow:hidden;
  left:0;right:0;bottom:0;height:min(78vh,640px);
  border-radius:20px 20px 0 0;
  background:linear-gradient(165deg, rgba(52,68,53,.94), rgba(36,48,37,.96));
  -webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);
  border:1px solid rgba(184,151,90,.35);border-bottom:none;
  box-shadow:0 -18px 60px -12px rgba(15,21,16,.6);
  opacity:0;transform:translateY(24px);pointer-events:none;
  transition:opacity .55s cubic-bezier(.22,.7,.3,1), transform .55s cubic-bezier(.22,.7,.3,1);
}
.cw-panel.cw-open{opacity:1;transform:none;pointer-events:auto}
@media(min-width:560px){
  .cw-panel{
    left:auto;right:20px;bottom:20px;width:392px;height:min(80vh,620px);
    border-radius:16px;border-bottom:1px solid rgba(184,151,90,.35);
  }
}
.cw-head{
  display:flex;align-items:center;gap:11px;flex:none;
  padding:16px 18px 14px;border-bottom:1px solid rgba(184,151,90,.25);
}
.cw-head .cw-moon{width:17px;height:17px;border-radius:50%;position:relative}
.cw-head .cw-moon::before{content:"";position:absolute;inset:0;border-radius:50%;box-shadow:inset -6px -1px 0 0 #C9AD78}
.cw-head .cw-title{
  font-family:"Cormorant Garamond","Noto Serif JP",serif;
  font-size:17px;letter-spacing:.14em;color:#F5F0E8;
}
.cw-head .cw-sub{
  font-family:"Noto Serif JP",serif;font-size:10px;letter-spacing:.2em;
  color:rgba(201,173,120,.9);margin-left:auto;margin-right:6px;
}
.cw-close{
  flex:none;width:32px;height:32px;border-radius:50%;
  color:rgba(245,240,232,.75);font-size:14px;line-height:1;
  border:1px solid rgba(245,240,232,.2);background:none;cursor:pointer;
  transition:color .2s ease,border-color .2s ease;
}
.cw-close:hover{color:#F5F0E8;border-color:rgba(245,240,232,.5)}
.cw-body{
  flex:1;overflow-y:auto;padding:20px 16px 24px;
  display:flex;flex-direction:column;gap:12px;
  overscroll-behavior:contain;-webkit-overflow-scrolling:touch;
  font-family:"Noto Serif JP",serif;
}
.cw-msg{
  max-width:86%;padding:13px 16px;border-radius:4px 16px 16px 16px;
  background:rgba(245,240,232,.1);
  border:1px solid rgba(245,240,232,.1);
  color:#F5F0E8;font-size:13.5px;line-height:2;letter-spacing:.04em;
  opacity:0;transform:translateY(8px);
  transition:opacity .6s ease,transform .6s ease;
  white-space:pre-line;
}
.cw-msg.cw-in{opacity:1;transform:none}
.cw-msg b{color:#C9AD78;font-weight:600}
.cw-msg a{color:#C9AD78;text-decoration:underline;text-underline-offset:3px}
.cw-msg.cw-user{
  align-self:flex-end;border-radius:16px 4px 16px 16px;
  background:rgba(184,151,90,.2);border-color:rgba(184,151,90,.35);
  color:#F5F0E8;
}
.cw-typing{
  align-self:flex-start;display:inline-flex;gap:5px;padding:15px 18px;
  background:rgba(245,240,232,.08);border-radius:4px 16px 16px 16px;
}
.cw-typing i{
  width:5px;height:5px;border-radius:50%;background:rgba(201,173,120,.9);
  animation:cwDot 1.2s ease-in-out infinite;
}
.cw-typing i:nth-child(2){animation-delay:.18s}
.cw-typing i:nth-child(3){animation-delay:.36s}
@keyframes cwDot{0%,60%,100%{opacity:.25;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}
.cw-chips{
  display:flex;flex-wrap:wrap;gap:8px;padding-top:2px;
  opacity:0;transform:translateY(8px);
  transition:opacity .6s ease,transform .6s ease;
}
.cw-chips.cw-in{opacity:1;transform:none}
.cw-chip{
  font-family:"Noto Serif JP",serif;font-size:12.5px;letter-spacing:.06em;
  color:#F5F0E8;background:rgba(245,240,232,.05);
  border:1px solid rgba(184,151,90,.5);border-radius:999px;
  padding:9px 16px;cursor:pointer;
  transition:background .25s ease,color .25s ease,border-color .25s ease;
}
.cw-chip:hover{background:rgba(184,151,90,.9);color:#2E3D2F;border-color:rgba(184,151,90,.9)}
.cw-chip.cw-line{
  background:#B8975A;color:#2E3D2F;border-color:#B8975A;font-weight:600;
  display:inline-flex;align-items:center;gap:7px;text-decoration:none;
}
.cw-chip.cw-line:hover{background:#C9AD78;border-color:#C9AD78}
.cw-chip.cw-sel{
  background:rgba(184,151,90,.9);color:#2E3D2F;border-color:#C9AD78;font-weight:600;
}
.cw-msg small{font-size:11px;color:rgba(245,240,232,.6);letter-spacing:.06em}
.cw-form{
  display:flex;flex-direction:column;gap:10px;width:100%;
  opacity:0;transform:translateY(8px);
  transition:opacity .6s ease,transform .6s ease;
}
.cw-form.cw-in{opacity:1;transform:none}
.cw-ta{
  width:100%;box-sizing:border-box;resize:none;
  font-family:"Noto Serif JP",serif;font-size:13.5px;line-height:1.9;letter-spacing:.04em;
  color:#F5F0E8;background:rgba(245,240,232,.07);
  border:1px solid rgba(184,151,90,.45);border-radius:12px;
  padding:12px 14px;outline:none;
}
.cw-ta::placeholder{color:rgba(245,240,232,.4)}
.cw-ta:focus{border-color:#C9AD78;background:rgba(245,240,232,.1)}
.cw-form-actions{display:flex;flex-wrap:wrap;gap:8px}
.cw-note{
  font-size:10.5px;letter-spacing:.12em;color:rgba(245,240,232,.5);
  text-align:center;padding:10px 14px calc(10px + env(safe-area-inset-bottom));
  border-top:1px solid rgba(184,151,90,.18);flex:none;
  font-family:"Noto Serif JP",serif;
}
@media (prefers-reduced-motion:reduce){
  .cw-launch,.cw-hint,.cw-panel,.cw-msg,.cw-chips{transition:none}
  .cw-typing i{animation:none}
}
