/* ============================================================
   Restaurant Web — AI chat widget (v4, 科技风)
   全部取 site.css 的 token：--card --bg --line --ink --muted --accent --btn-bg --btn-fg --mono
   ============================================================ */

#rw-chat-launch{
  position:fixed;right:18px;bottom:18px;z-index:220;
  width:54px;height:54px;border-radius:16px;
  background:var(--btn-bg,#0c0e12);color:var(--btn-fg,#fff);border:none;cursor:pointer;
  box-shadow:0 12px 30px rgba(12,14,18,.28);
  display:grid;place-items:center;
  transition:transform .15s ease, box-shadow .15s ease;
}
#rw-chat-launch:hover{transform:translateY(-2px);box-shadow:0 16px 36px rgba(12,14,18,.34)}
#rw-chat-launch.rw-pulse{animation:rwpulse 1.6s ease 2}
@keyframes rwpulse{0%,100%{transform:none}30%{transform:translateY(-7px)}55%{transform:none}}
#rw-chat-launch svg{width:24px;height:24px;display:block}
#rw-chat-launch .ic-close{display:none}
#rw-chat-launch.open .ic-chat{display:none}
#rw-chat-launch.open .ic-close{display:block}

/* "Questions?" nudge next to the launcher */
#rw-chat-hint{
  position:fixed;right:82px;bottom:27px;z-index:219;
  background:var(--card,#fff);border:1px solid var(--line,#e3e6ea);border-radius:10px;
  padding:9px 13px;font:500 .84rem/1.35 Inter,system-ui,sans-serif;color:var(--ink,#0c0e12);
  box-shadow:0 10px 26px rgba(12,14,18,.14);
  opacity:0;transform:translateY(6px);pointer-events:none;
  transition:opacity .25s ease, transform .25s ease;white-space:nowrap;
}
#rw-chat-hint.show{opacity:1;transform:none}

/* panel */
#rw-chat{
  position:fixed;right:18px;bottom:84px;z-index:230;padding:0;margin:0;
  width:min(392px,calc(100vw - 24px));
  height:min(78vh,620px);
  background:var(--bg,#f6f7f9);border:1px solid var(--line,#e3e6ea);border-radius:16px;
  box-shadow:0 30px 80px rgba(12,14,18,.3);
  display:flex;flex-direction:column;overflow:hidden;
  opacity:0;pointer-events:none;transform:translateY(14px) scale(.98);
  transition:opacity .18s ease, transform .18s ease;
  font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;
}
#rw-chat.open{opacity:1;pointer-events:auto;transform:none}

.rw-head{
  background:var(--card,#fff);color:var(--ink,#0c0e12);padding:12px 14px 12px 16px;
  display:flex;align-items:center;gap:11px;flex:none;border-bottom:1px solid var(--line,#e3e6ea);
}
.rw-head .dot{width:8px;height:8px;border-radius:50%;background:var(--ok,#1f9d55);flex:none;
  box-shadow:0 0 0 3px color-mix(in srgb,var(--ok,#1f9d55) 22%,transparent)}
.rw-head b{font-weight:600;font-size:.95rem;letter-spacing:-.01em}
.rw-head small{display:block;font-size:.72rem;color:var(--muted,#6b717a);font-weight:400;margin-top:1px;font-family:var(--mono,ui-monospace,monospace)}
.rw-head button{
  margin-left:auto;background:none;border:none;color:var(--muted,#6b717a);cursor:pointer;
  font-size:1.2rem;line-height:1;padding:4px 7px;border-radius:7px;
}
.rw-head button:hover{background:var(--sunk,#eef0f3);color:var(--ink,#0c0e12)}

.rw-msgs{flex:1;overflow-y:auto;padding:16px 14px;display:flex;flex-direction:column;gap:10px;
  scrollbar-width:thin;overscroll-behavior:contain}

.rw-m{max-width:88%;padding:10px 13px;border-radius:12px;
  font-size:.92rem;line-height:1.5;white-space:pre-wrap;overflow-wrap:break-word}
.rw-m.user{align-self:flex-end;background:var(--btn-bg,#0c0e12);color:var(--btn-fg,#fff);border-bottom-right-radius:4px}
.rw-m.bot{align-self:flex-start;background:var(--card,#fff);border:1px solid var(--line,#e3e6ea);color:var(--ink,#0c0e12);
  border-bottom-left-radius:4px}
.rw-m.bot a{color:var(--accent-ink,#c2431f);font-weight:600}
.rw-m.err{border-left:3px solid var(--accent,#e5532c)}

/* typing indicator */
.rw-typing{display:inline-flex;gap:5px;align-items:center;padding:13px 16px}
.rw-typing i{width:6px;height:6px;border-radius:50%;background:var(--line-2,#cdd2d8);animation:rwb 1.1s infinite}
.rw-typing i:nth-child(2){animation-delay:.18s}
.rw-typing i:nth-child(3){animation-delay:.36s}
@keyframes rwb{0%,60%,100%{opacity:.35;transform:none}30%{opacity:1;transform:translateY(-3px)}}

/* quick-question chips */
.rw-chips{display:flex;flex-wrap:wrap;gap:7px;padding:2px 14px 10px;flex:none}
.rw-chips button{
  background:var(--card,#fff);border:1px solid var(--line-2,#cdd2d8);border-radius:8px;
  padding:7px 11px;font:500 .78rem/1 Inter,sans-serif;color:var(--ink-2,#3a3f47);cursor:pointer;
}
.rw-chips button:hover{border-color:var(--ink,#0c0e12);color:var(--ink,#0c0e12)}

/* call-back card (rendered inside the message list) */
.rw-lead{width:88%}
.rw-lead b{font-weight:600;font-size:.95rem;display:block;margin-bottom:8px}
.rw-lead input{
  width:100%;border:1px solid var(--line-2,#cdd2d8);border-radius:8px;padding:9px 11px;
  font:400 .88rem/1.3 Inter,sans-serif;margin-bottom:7px;background:var(--bg,#f6f7f9);color:var(--ink,#0c0e12);
}
.rw-lead input:focus{outline:2px solid var(--accent,#e5532c);outline-offset:0;border-color:var(--accent,#e5532c)}
.rw-lead .rw-go{
  width:100%;background:var(--btn-bg,#0c0e12);color:var(--btn-fg,#fff);border:none;border-radius:8px;
  padding:10px;font:600 .88rem/1 Inter,sans-serif;cursor:pointer;
}
.rw-lead .rw-go:hover{box-shadow:0 0 0 3px color-mix(in srgb,var(--ink,#0c0e12) 14%,transparent)}
.rw-lead .rw-go:disabled{opacity:.55;cursor:default}
.rw-lead .rw-err-t{color:var(--accent-ink,#c2431f);font-size:.78rem;margin-top:6px;display:none}

/* footer / composer */
.rw-foot{border-top:1px solid var(--line,#e3e6ea);background:var(--card,#fff);padding:10px 10px 6px;flex:none}
.rw-row{display:flex;gap:8px;align-items:flex-end}
.rw-input{
  flex:1;resize:none;border:1px solid var(--line-2,#cdd2d8);border-radius:10px;padding:10px 12px;
  font:400 .92rem/1.4 Inter,sans-serif;color:var(--ink,#0c0e12);background:var(--bg,#f6f7f9);
  max-height:110px;min-height:42px;
}
.rw-input:focus{outline:2px solid var(--accent,#e5532c);outline-offset:0;border-color:var(--accent,#e5532c)}
.rw-send{
  flex:none;width:42px;height:42px;border-radius:10px;border:none;cursor:pointer;
  background:var(--btn-bg,#0c0e12);color:var(--btn-fg,#fff);display:grid;place-items:center;
}
.rw-send:hover{box-shadow:0 0 0 3px color-mix(in srgb,var(--ink,#0c0e12) 14%,transparent)}
.rw-send:disabled{opacity:.5;cursor:default}
.rw-send svg{width:18px;height:18px}
.rw-tools{display:flex;justify-content:space-between;align-items:center;padding:6px 4px 2px}
.rw-cb{background:none;border:none;color:var(--accent-ink,#c2431f);font:600 .78rem/1 Inter,sans-serif;
  cursor:pointer;padding:4px;text-decoration:underline;text-underline-offset:2px}
.rw-note{font-size:.68rem;color:var(--muted,#6b717a);font-family:var(--mono,ui-monospace,monospace)}

@media (max-width:480px){
  #rw-chat{right:8px;left:8px;bottom:80px;width:auto;height:min(78dvh,calc(100dvh - 100px))}
  #rw-chat-hint{display:none}
}
@media (prefers-reduced-motion:reduce){
  #rw-chat,#rw-chat-launch,#rw-chat-hint{transition:none}
  .rw-typing i{animation:none}
}
