/* AI assistant chat (assets/assistant.js) */
.as-btn{position:fixed;right:20px;bottom:20px;z-index:70;width:58px;height:58px;border-radius:50%;border:0;cursor:pointer;color:#fff;background:linear-gradient(135deg,#fa6964,#e0453f);box-shadow:0 10px 28px rgba(250,105,100,.45);display:grid;place-items:center;transition:transform .2s,opacity .2s}
.as-btn:hover{transform:scale(1.06)}.as-btn.off{opacity:0;pointer-events:none;transform:scale(.6)}
.as-box{position:fixed;right:20px;bottom:20px;z-index:71;width:min(390px,calc(100vw - 24px));height:min(600px,calc(100dvh - 40px));display:flex;flex-direction:column;background:var(--card,#1d1d1d);color:var(--tx,#eee);border-radius:20px;box-shadow:0 24px 60px rgba(0,0,0,.45);overflow:hidden;opacity:0;transform:translateY(16px) scale(.98);transition:opacity .22s,transform .22s}
.as-box.on{opacity:1;transform:none}
.as-h{display:flex;align-items:center;gap:10px;padding:12px 14px;background:linear-gradient(135deg,#fa6964,#d8433d);color:#fff}
.as-h b{flex:1;font-size:16px}.as-ava{width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,.2);display:grid;place-items:center}
.as-x{border:0;background:rgba(255,255,255,.2);color:#fff;width:30px;height:30px;border-radius:50%;font-size:18px;cursor:pointer}
.as-log{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:8px;overscroll-behavior:contain}
.as-m{max-width:86%;padding:9px 13px;border-radius:16px;font-size:14.5px;line-height:1.45;white-space:pre-wrap;word-wrap:break-word}
.as-a{align-self:flex-start;background:rgba(127,127,127,.14);border-bottom-left-radius:5px}
.as-u{align-self:flex-end;background:#fa6964;color:#fff;border-bottom-right-radius:5px}
.as-typing{display:flex;gap:4px;padding:12px 14px}.as-typing i{width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.4;animation:asDot 1s infinite}.as-typing i:nth-child(2){animation-delay:.15s}.as-typing i:nth-child(3){animation-delay:.3s}
@keyframes asDot{50%{opacity:1;transform:translateY(-3px)}}
.as-cards{display:flex;gap:8px;overflow-x:auto;padding:2px 0 6px;scroll-snap-type:x mandatory}
.as-card{flex:0 0 150px;scroll-snap-align:start;background:rgba(127,127,127,.1);border-radius:14px;overflow:hidden;display:flex;flex-direction:column}
.as-card img{width:100%;height:100px;object-fit:cover;cursor:pointer;background:rgba(127,127,127,.15)}
.as-ct{font-size:13px;font-weight:600;padding:7px 9px 2px;line-height:1.25;flex:1}
.as-cp{font-size:13px;padding:0 9px 6px;color:#fa6964;font-weight:700}.as-cp s{color:inherit;opacity:.5;font-weight:400}
.as-cb{padding:0 8px 8px}.as-add{width:100%;border:0;border-radius:10px;padding:7px;background:#fa6964;color:#fff;font-weight:600;cursor:pointer;font-size:13px}.as-add:disabled{background:#2e9e5b}
.as-chips{display:flex;gap:6px;flex-wrap:wrap;padding:0 14px 8px}
.as-chips button{border:1px solid rgba(250,105,100,.5);background:transparent;color:inherit;border-radius:999px;padding:6px 11px;font-size:13px;cursor:pointer}
.as-chips button:hover{background:rgba(250,105,100,.12)}
.as-f{display:flex;gap:8px;padding:10px 12px;border-top:1px solid rgba(127,127,127,.2)}
.as-f textarea{flex:1;resize:none;border:1px solid rgba(127,127,127,.35);border-radius:14px;padding:9px 12px;background:transparent;color:inherit;font:inherit;font-size:15px;max-height:120px}
.as-f button{width:42px;border:0;border-radius:50%;background:#fa6964;color:#fff;font-size:16px;cursor:pointer;flex:none;height:42px;align-self:flex-end}
.as-note{margin:0;padding:0 14px 10px;font-size:11px;opacity:.55;text-align:center}
html.light .as-box{background:#fff;color:#222}
@media (max-width:899px){.as-btn{bottom:84px;right:14px;width:52px;height:52px}}
@media (max-width:600px){.as-box{right:0;bottom:0;width:100vw;height:100dvh;border-radius:0}}
.as-box[hidden]{display:none}
.as-log>*{flex-shrink:0}
.as-cards{scrollbar-width:thin;scrollbar-color:rgba(127,127,127,.35) transparent}.as-cards::-webkit-scrollbar{height:6px}.as-cards::-webkit-scrollbar-thumb{background:rgba(127,127,127,.35);border-radius:3px}.as-cards::-webkit-scrollbar-track{background:transparent}
.as-log{scrollbar-width:thin;scrollbar-color:rgba(127,127,127,.35) transparent}
/* dish cards: a compact list (photo, name, price, button) — everything fits in the narrow chat, no side scroll */
.as-cards{display:flex;flex-direction:column;gap:6px;overflow:visible;padding:0 0 4px;max-width:100%;align-self:stretch}
.as-card{flex:none;display:grid;grid-template-columns:64px 1fr auto;grid-template-rows:auto auto;align-items:center;column-gap:10px;padding:6px;border-radius:14px}
.as-card img{grid-row:1/3;width:64px;height:64px;border-radius:10px;object-fit:cover}
.as-ct{padding:0;align-self:end;font-size:13.5px}
.as-cp{padding:0;align-self:start;grid-column:2}
.as-cb{grid-column:3;grid-row:1/3;padding:0}
.as-add{width:auto;white-space:nowrap;padding:8px 12px}
.as-noimg{grid-row:1/3;width:64px;height:64px;border-radius:10px;background:rgba(127,127,127,.15);display:grid;place-items:center;font-size:24px}
.as-add.in{background:#2e9e5b}
.as-a a{color:#ff8a85;text-decoration:underline;word-break:break-all}
/* phone: 16px in the field so iOS does not zoom in on tap; the box is exactly the screen, nothing wider */
.as-box,.as-log,.as-m,.as-card{min-width:0;box-sizing:border-box}.as-box{overflow:hidden;max-width:100%}.as-log{overflow-x:hidden}
.as-ct{min-width:0;overflow-wrap:anywhere}
@media (max-width:600px){.as-box{left:0;right:0;top:0;bottom:0;width:auto;height:100%;max-height:100dvh}.as-f textarea{font-size:16px}.as-m{max-width:88%}}
