/* Kiki, the waiter mascot chatbot */
#kiki-root{position:fixed;right:16px;bottom:calc(96px + var(--safe-b,0px));z-index:40;font-size:.92rem}
body.dash #kiki-root{bottom:20px}
.kiki-fab{position:relative;width:62px;height:62px;border-radius:50%;border:0;padding:0;background:none;cursor:pointer;filter:drop-shadow(0 10px 20px rgba(0,0,0,.28));transition:transform .2s ease}
.kiki-fab:hover{transform:scale(1.06)}
.kiki-fab .kiki-face{width:62px;height:62px;display:block}
.kiki-bubble{position:absolute;right:68px;top:14px;background:#fff;color:#141414;font-weight:600;font-size:.78rem;padding:.3rem .65rem;border-radius:12px 12px 2px 12px;box-shadow:0 6px 18px rgba(0,0,0,.15);white-space:nowrap;opacity:0;transform:translateX(8px);transition:opacity .3s,transform .3s;pointer-events:none}
#kiki-root.wave:not(.open) .kiki-bubble{opacity:1;transform:none;animation:kikiBubble 6s ease 1 forwards}
#kiki-root.wave:not(.open) .kiki-tray{animation:kikiTray .8s ease-in-out 2}
.kiki-tray{transform-origin:44px 17px}
.kiki-eye{transform-box:fill-box;transform-origin:center;animation:kikiBlink 4s infinite}
@keyframes kikiBubble{0%,85%{opacity:1}100%{opacity:0}}
@keyframes kikiTray{50%{transform:translateY(-3px) rotate(-6deg)}}
@keyframes kikiBlink{0%,94%,100%{transform:scaleY(1)}97%{transform:scaleY(.1)}}
#kiki-root.open .kiki-fab{display:none}

.kiki-panel{position:fixed;right:16px;bottom:calc(16px + var(--safe-b,0px));width:min(380px,calc(100vw - 32px));height:min(560px,calc(100vh - 110px));background:#fff;color:#141414;border-radius:22px;box-shadow:0 20px 60px rgba(0,0,0,.28);display:flex;flex-direction:column;overflow:hidden;animation:kikiIn .25s cubic-bezier(.2,.8,.2,1)}
.kiki-panel[hidden]{display:none}
@keyframes kikiIn{from{opacity:0;transform:translateY(16px) scale(.97)}}
.kiki-head{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--primary,#1f3d2b);color:var(--on-primary,#fff)}
.kiki-head .kiki-face{width:38px;height:38px;flex:none;border-radius:50%;box-shadow:0 0 0 2px rgba(255,255,255,.6)}
.kiki-head div{flex:1;display:flex;flex-direction:column;line-height:1.2}
.kiki-head small{opacity:.8;font-size:.72rem}
.kiki-x{border:0;background:rgba(255,255,255,.15);color:inherit;width:34px;height:34px;border-radius:50%;font-size:1.4rem;line-height:1;cursor:pointer}
.kiki-log{flex:1;overflow-y:auto;padding:14px 12px;display:flex;flex-direction:column;gap:10px;background:#f6f5f2}
.kiki-msg{display:flex;gap:6px;align-items:flex-end;max-width:88%}
.kiki-msg .kiki-face{width:24px;height:24px;flex:none}
.kiki-text{padding:.55rem .8rem;border-radius:16px;white-space:pre-wrap;word-wrap:break-word}
.kiki-msg.assistant .kiki-text{background:#fff;border-bottom-left-radius:4px;box-shadow:0 1px 3px rgba(0,0,0,.06)}
.kiki-msg.user{align-self:flex-end}
.kiki-msg.user .kiki-text{background:var(--primary,#1f3d2b);color:var(--on-primary,#fff);border-bottom-right-radius:4px}
.kiki-item{border:0;background:var(--secondary,#F5B800);color:var(--on-secondary,#141414);font-weight:600;font-size:.72rem;padding:.12rem .55rem;border-radius:999px;margin:0 .2rem;cursor:pointer;vertical-align:1px}
.kiki-chips{display:flex;flex-wrap:wrap;gap:6px;margin-left:30px}
.kiki-chips button{border:1.5px solid var(--line,#ececec);background:#fff;border-radius:999px;padding:.35rem .75rem;font-size:.8rem;cursor:pointer;color:#141414}
.kiki-chips button:hover{border-color:var(--primary,#1f3d2b)}
.typing .kiki-text{display:flex;gap:4px;padding:.75rem .9rem}
.typing i{width:6px;height:6px;border-radius:50%;background:#aaa;animation:kikiDot 1s infinite}
.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}
@keyframes kikiDot{50%{transform:translateY(-4px);background:#666}}
.kiki-form{display:flex;gap:8px;padding:10px;border-top:1px solid #eee;background:#fff}
.kiki-form textarea{margin:0;min-height:42px;max-height:110px;resize:none;border-radius:14px;padding:.6rem .8rem;font:inherit}
.kiki-send{flex:none;width:42px;height:42px;border:0;border-radius:50%;background:var(--primary,#1f3d2b);color:var(--on-primary,#fff);font-size:1rem;cursor:pointer}
.kiki-note{margin:0;padding:0 12px 8px;font-size:.68rem;color:#888;text-align:center;background:#fff}
@media (max-width:480px){.kiki-panel{right:0;bottom:0;width:100vw;height:min(88vh,640px);border-radius:22px 22px 0 0}}
@media (prefers-reduced-motion:reduce){.kiki-panel,.kiki-eye,.kiki-tray,.kiki-bubble{animation:none!important}}
