#aish-fab,#aish-overlay{--ink: #1f2937;--primary: #dc2626;--primary-dark: #b91c1c;--cream: #ffffff;--muted: #6b7280;--accent: #fde68a;--accent-light: #fef2f2;--surface: #f9fafb;--border: #e5e7eb;--green: #22c55e;--loc-blue: #dc2626}#aish-fab{position:relative;display:flex;align-items:center;gap:.75rem;background:var(--primary);color:var(--cream);padding:.875rem 1.5rem;border-radius:100px;border:none;cursor:pointer;font-family:DM Sans,sans-serif;font-size:.9rem;font-weight:500;box-shadow:0 8px 32px #1a181440;transition:transform .2s,box-shadow .2s}#aish-fab:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 16px 48px #1a18144d}.fab-avatar{width:40px;height:40px;background:var(--accent);border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:"DM Serif Display",serif;font-size:.85rem;color:var(--ink);flex-shrink:0;overflow:hidden}.fab-avatar img,.agent-avatar img,.bubble-avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%}.fab-dot{width:7px;height:7px;background:var(--green);border-radius:50%;position:absolute;top:6px;right:6px;animation:pulse-dot 2s infinite}@keyframes fab-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.75)}}#aish-overlay{position:fixed;inset:0;background:#1a181473;backdrop-filter:blur(4px);z-index:200;display:none;align-items:flex-end;justify-content:flex-end;padding:1.5rem}#aish-overlay.open{display:flex}#aish-modal{background:var(--surface);border:1px solid var(--border);border-radius:20px;width:100%;max-width:400px;height:640px;max-height:92vh;display:flex;flex-direction:column;box-shadow:0 32px 80px #1a181433;overflow:hidden;position:relative;animation:modal-in .35s cubic-bezier(.16,1,.3,1)}@keyframes modal-in{0%{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{padding:1.25rem 1.5rem;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;flex-shrink:0;background:#fff}.modal-agent{display:flex;align-items:center;gap:.75rem}.agent-avatar{width:38px;height:38px;background:var(--primary);border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:"DM Serif Display",serif;font-size:1rem;color:var(--cream);flex-shrink:0;overflow:hidden}.agent-info h4{font-family:"DM Serif Display",serif;font-size:1rem;color:var(--ink);line-height:1.2}.agent-status{display:flex;align-items:center;gap:.4rem;font-size:.72rem;color:var(--muted);font-weight:500}.agent-status .dot{width:6px;height:6px;background:var(--green);border-radius:50%;animation:pulse-dot 2s infinite}.btn-close{background:none;border:none;cursor:pointer;color:var(--muted);padding:.25rem;border-radius:6px;transition:color .15s,background .15s;display:flex}.btn-close:hover{color:var(--ink);background:var(--border)}.btn-close svg{width:18px;height:18px}#name-gate{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2.5rem 2rem;text-align:center}#name-gate h3{font-family:"DM Serif Display",serif;font-size:1.4rem;color:var(--ink);margin-bottom:.5rem}#name-gate p{font-size:.85rem;color:var(--muted);line-height:1.6;margin-bottom:2rem}.name-input-wrap{width:100%;max-width:280px}.name-input-wrap input{width:100%;background:#fff;border:1px solid var(--border);border-radius:10px;padding:.75rem 1rem;font-family:DM Sans,sans-serif;font-size:.9rem;color:var(--ink);outline:none;transition:border-color .2s,box-shadow .2s;text-align:center;margin-bottom:.875rem}.name-input-wrap input::placeholder{color:var(--muted)}.name-input-wrap input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #dc262626}.name-input-wrap button{width:100%;background:var(--primary);color:var(--cream);font-family:DM Sans,sans-serif;font-size:.875rem;font-weight:500;padding:.75rem;border-radius:10px;border:none;cursor:pointer;transition:background .2s}.name-input-wrap button:hover{background:var(--primary-dark)}#chat-body{display:none;flex-direction:column;flex:1;min-height:0}#loc-banner{display:none;align-items:center;gap:.75rem;background:#fef2f2;border-bottom:1px solid #fecaca;padding:.7rem 1.25rem;font-size:.78rem;color:#b91c1c;flex-shrink:0;animation:slide-down .3s cubic-bezier(.16,1,.3,1)}#loc-banner.show{display:flex}@keyframes slide-down{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}#loc-banner>svg{width:15px;height:15px;flex-shrink:0}#loc-banner-text{flex:1;line-height:1.4}#loc-banner-text strong{display:block;font-weight:600;color:#991b1b;font-size:.8rem}#loc-banner-allow{background:var(--loc-blue);color:#fff;border:none;border-radius:6px;padding:.35rem .8rem;font-size:.72rem;font-weight:600;cursor:pointer;white-space:nowrap;flex-shrink:0;font-family:DM Sans,sans-serif;transition:background .15s,transform .1s}#loc-banner-allow:hover{background:var(--primary-dark);transform:scale(1.03)}#chat-messages{flex:1;overflow-y:auto;padding:1.25rem;display:flex;flex-direction:column;gap:1rem;scroll-behavior:smooth}#chat-messages::-webkit-scrollbar{width:4px}#chat-messages::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.bubble-wrap{display:flex;gap:.5rem;align-items:flex-end;animation:bubble-in .25s cubic-bezier(.16,1,.3,1)}@keyframes bubble-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.bubble-wrap.user{flex-direction:row-reverse}.bubble-avatar{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:600;flex-shrink:0;overflow:hidden}.bubble-avatar.ai{background:var(--primary);color:var(--cream);font-family:"DM Serif Display",serif}.bubble-avatar.user-av{background:var(--accent-light);color:var(--primary-dark)}.bubble{max-width:78%;padding:.7rem 1rem;border-radius:14px;font-size:.875rem;line-height:1.55}.bubble.ai{background:#fff;border:1px solid var(--border);color:var(--ink);border-bottom-left-radius:4px}.bubble.user{background:var(--primary);color:var(--cream);border-bottom-right-radius:4px}.typing-dots{display:flex;gap:4px;align-items:center;padding:.7rem 1rem}.typing-dots span{width:6px;height:6px;background:var(--muted);border-radius:50%;animation:bounce-dot 1.2s ease-in-out infinite}.typing-dots span:nth-child(2){animation-delay:.2s}.typing-dots span:nth-child(3){animation-delay:.4s}@keyframes bounce-dot{0%,80%,to{transform:scale(.7);opacity:.4}40%{transform:scale(1);opacity:1}}.chat-toolbar{padding:.625rem 1.25rem 0;display:flex;gap:.5rem;flex-shrink:0}#btn-nearest-store{display:inline-flex;align-items:center;gap:.45rem;font-family:DM Sans,sans-serif;font-size:.75rem;font-weight:600;padding:.45rem .9rem;border-radius:100px;border:1.5px solid var(--border);background:#fff;color:var(--muted);cursor:pointer;letter-spacing:.02em;transition:all .25s cubic-bezier(.16,1,.3,1);position:relative}#btn-nearest-store svg{width:14px;height:14px;flex-shrink:0}#btn-nearest-store.locked{color:var(--muted);border-color:var(--border);background:#fff;cursor:pointer}#btn-nearest-store.unlocked{color:#fff;background:var(--primary);border-color:var(--primary);box-shadow:0 4px 14px #dc26262e}#btn-nearest-store.unlocked:hover{background:var(--primary-dark);transform:translateY(-1px)}#btn-nearest-store.loading{color:#fff;background:var(--primary);border-color:var(--primary);cursor:wait}#btn-nearest-store.locked:after{content:"Aktifkan lokasi dulu";position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background:var(--ink);color:var(--cream);font-size:.68rem;font-weight:500;padding:.3rem .65rem;border-radius:6px;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .15s}#btn-nearest-store.locked:before{content:"";position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%);border:4px solid transparent;border-top-color:var(--ink);pointer-events:none;opacity:0;transition:opacity .15s}#btn-nearest-store.locked:hover:after,#btn-nearest-store.locked:hover:before{opacity:1}.chat-input-area{padding:.75rem 1.25rem 1rem;border-top:1px solid var(--border);display:flex;align-items:flex-end;gap:.75rem;background:#fff;flex-shrink:0}.chat-input-area textarea{flex:1;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:.65rem .875rem;font-family:DM Sans,sans-serif;font-size:.875rem;color:var(--ink);outline:none;resize:none;line-height:1.5;max-height:120px;transition:border-color .2s}.chat-input-area textarea:focus{border-color:var(--accent)}.chat-input-area textarea::placeholder{color:var(--muted)}.chat-input-area textarea::-webkit-scrollbar{display:none}.btn-send{width:38px;height:38px;flex-shrink:0;background:var(--primary);color:var(--cream);border:none;border-radius:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,transform .15s}.btn-send:hover:not(:disabled){background:var(--primary-dark);transform:scale(1.05)}.btn-send:disabled{opacity:.4;cursor:not-allowed}.btn-send svg{width:16px;height:16px}#loc-nudge{position:absolute;inset:0;z-index:10;background:#faf7f2f7;backdrop-filter:blur(2px);display:none;flex-direction:column;align-items:center;justify-content:center;padding:2.5rem 2rem;text-align:center;border-radius:20px}#loc-nudge.show{display:flex;animation:nudge-in .3s cubic-bezier(.16,1,.3,1)}@keyframes nudge-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.nudge-icon{width:72px;height:72px;background:var(--primary);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 1.5rem;position:relative}.nudge-icon svg{width:30px;height:30px;color:var(--accent)}.nudge-icon:after{content:"";position:absolute;inset:-6px;border:2px solid var(--accent);border-radius:50%;opacity:.3;animation:ring-pulse 2s ease-in-out infinite}@keyframes ring-pulse{0%,to{transform:scale(1);opacity:.3}50%{transform:scale(1.06);opacity:.6}}.nudge-steps{display:flex;flex-direction:column;gap:.6rem;margin:1.25rem 0 1.75rem;text-align:left;width:100%;max-width:276px}.nudge-step{display:flex;align-items:flex-start;gap:.7rem;font-size:.8rem;color:var(--muted);line-height:1.5}.nudge-step-num{width:20px;height:20px;background:var(--accent-light);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.65rem;font-weight:700;color:var(--primary-dark);flex-shrink:0;margin-top:1px}.btn-allow-loc{width:100%;max-width:276px;background:var(--primary);color:var(--cream);border:none;border-radius:12px;padding:.875rem;font-family:DM Sans,sans-serif;font-size:.88rem;font-weight:600;cursor:pointer;letter-spacing:.02em;display:flex;align-items:center;justify-content:center;gap:.5rem;margin-bottom:.75rem;transition:background .2s,transform .15s}.btn-allow-loc:hover{background:var(--primary-dark);transform:translateY(-1px)}.btn-allow-loc:disabled{opacity:.4;cursor:not-allowed}.btn-allow-loc svg{width:17px;height:17px}.btn-nudge-cancel{font-size:.8rem;color:var(--muted);background:none;border:none;cursor:pointer;font-family:DM Sans,sans-serif;transition:color .15s}.btn-nudge-cancel:hover{color:var(--ink)}#loc-denied-msg{display:none;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;padding:.75rem 1rem;font-size:.78rem;color:#991b1b;line-height:1.5;width:100%;max-width:276px;margin-bottom:.75rem;text-align:left}#loc-denied-msg.show{display:block}#loc-denied-msg strong{display:block;margin-bottom:.2rem;font-weight:600}.store-card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:1rem 1.1rem;margin-top:.25rem}.store-card-header{display:flex;align-items:center;gap:.6rem;margin-bottom:.75rem}.store-live-dot{width:8px;height:8px;background:var(--green);border-radius:50%;flex-shrink:0;animation:pulse-dot 2s infinite}.store-card-header strong{font-size:.85rem;color:var(--ink)}.store-row{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem;margin-bottom:.4rem;font-size:.78rem}.store-label{color:var(--muted);white-space:nowrap}.store-value{color:var(--ink);font-weight:500;text-align:right}.store-badge{display:inline-flex;align-items:center;gap:.3rem;background:var(--accent-light);color:var(--primary-dark);font-size:.68rem;font-weight:600;padding:.2rem .55rem;border-radius:100px;letter-spacing:.04em;text-transform:uppercase}.store-badge svg{width:10px;height:10px}.btn-route{display:inline-flex;align-items:center;gap:.3rem;background:var(--primary);color:#fff;font-size:.7rem;font-weight:600;padding:.3rem .7rem;border-radius:100px;text-decoration:none;white-space:nowrap;transition:background .15s,transform .1s}.btn-route:hover{background:var(--primary-dark);transform:translateY(-1px)}@media (max-width:640px){#aish-overlay{padding:0;align-items:flex-end;justify-content:stretch}#aish-modal{max-width:100%;border-radius:20px 20px 0 0;height:78vh}}
/* Penilaian akhir chat: reaksi animasi + kritik dan saran */
#feedback-reaction,#feedback-comment{text-align:center}
.fb-stage{position:relative;height:104px;display:flex;align-items:center;justify-content:center;overflow:visible}
.fb-emoji{display:inline-block;font-size:3.6rem;line-height:1}
.fb-emoji.pop{animation:fb-pop .75s cubic-bezier(.34,1.56,.64,1) both}
.fb-emoji.sink{animation:fb-sink 1.1s cubic-bezier(.22,.8,.3,1) both}
@keyframes fb-pop{0%{transform:scale(0) rotate(-24deg);opacity:0}60%{transform:scale(1.28) rotate(8deg);opacity:1}100%{transform:scale(1) rotate(0);opacity:1}}
@keyframes fb-sink{0%{transform:translateY(-18px) scale(.85);opacity:0}100%{transform:none;opacity:1}}
.fb-confetti{position:absolute;left:50%;top:46%;width:0;height:0;pointer-events:none}
.fb-confetti i{position:absolute;display:block;width:8px;height:12px;border-radius:2px;background:var(--c);opacity:0;animation:fb-burst 1.7s cubic-bezier(.2,.75,.3,1) var(--d) forwards}
@keyframes fb-burst{0%{opacity:1;transform:translate(0,0) rotate(0)}85%{opacity:1}100%{opacity:0;transform:translate(var(--x),var(--y)) rotate(var(--r))}}
#fb-title{font-family:"DM Serif Display",serif;font-size:1.15rem;color:var(--ink);margin:.25rem 0 .35rem}
#fb-sub{font-size:.85rem;color:var(--muted);margin-bottom:1rem;line-height:1.5}
#feedback-comment{animation:bubble-in .35s cubic-bezier(.16,1,.3,1)}
#feedback-comment label{display:block;text-align:left;font-size:.78rem;font-weight:600;color:var(--ink);margin-bottom:.35rem}
#fb-text{width:100%;box-sizing:border-box;min-height:96px;resize:vertical;background:#fff;border:1px solid var(--border);border-radius:10px;padding:.7rem .85rem;font-family:DM Sans,sans-serif;font-size:.875rem;color:var(--ink);line-height:1.5;outline:none;transition:border-color .2s,box-shadow .2s}
#fb-text:focus{border-color:var(--primary);box-shadow:0 0 0 3px #dc262626}
.fb-count{text-align:right;font-size:.7rem;color:var(--muted);margin:.25rem 0 .5rem}
#fb-error{display:none;background:#fef2f2;border:1px solid #fecaca;color:#991b1b;border-radius:8px;padding:.5rem .75rem;font-size:.78rem;text-align:left;margin-bottom:.6rem}
.fb-actions{display:flex;gap:.6rem;justify-content:center}
#fb-send{background:var(--primary);color:#fff;border:none;border-radius:10px;padding:.65rem 1.4rem;font-family:DM Sans,sans-serif;font-size:.85rem;font-weight:600;cursor:pointer;transition:background .2s,transform .15s}
#fb-send:hover:not(:disabled){background:var(--primary-dark);transform:translateY(-1px)}
#fb-skip{background:transparent;color:var(--muted);border:1px solid var(--border);border-radius:10px;padding:.65rem 1.1rem;font-family:DM Sans,sans-serif;font-size:.85rem;cursor:pointer}
#fb-send:disabled,#fb-skip:disabled{opacity:.5;cursor:not-allowed}
.fb-heart{display:inline-block;font-size:2.6rem;animation:fb-heart 1.1s ease-in-out infinite}
@keyframes fb-heart{0%,100%{transform:scale(1)}30%{transform:scale(1.25)}60%{transform:scale(.95)}}
@media (prefers-reduced-motion:reduce){.fb-emoji,.fb-heart,#feedback-comment{animation:none!important}.fb-confetti{display:none}}
