/* ============================================================ AI Shopping Agent — floating widget ============================================================ */:root{--sa-ease:cubic-bezier(0.16,1,0.3,1)}.sa-fab{position:fixed;right:24px;bottom:24px;z-index:460;display:flex;align-items:center;gap:8px;padding:13px 20px;border:none;border-radius:999px;background:linear-gradient(135deg,var(--primary),var(--primary-dark));background-size:200% 200%;color:#fff;font-family:var(--font-body,inherit);font-weight:700;font-size:14px;cursor:pointer;box-shadow:0 10px 28px rgba(142,30,63,0.38),0 0 0 0 rgba(142,30,63,0.35);transition:transform 0.25s var(--sa-ease),box-shadow 0.25s var(--sa-ease),background-position 0.6s ease;animation:sa-fab-in 0.5s var(--sa-ease),sa-fab-glow 2.6s ease-in-out infinite 1s}.sa-fab:hover{transform:translateY(-3px) scale(1.03);box-shadow:0 16px 36px rgba(142,30,63,0.48);background-position:100% 50%}.sa-fab:active{transform:translateY(-1px) scale(0.98)}.sa-fab-icon{font-size:18px;line-height:1;display:inline-block;animation:sa-icon-bob 2.4s ease-in-out infinite}.sa-fab.is-open{display:none}@keyframes sa-fab-in{from{opacity:0;transform:translateY(16px) scale(0.9)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes sa-fab-glow{0%,100%{box-shadow:0 10px 28px rgba(142,30,63,0.38),0 0 0 0 rgba(142,30,63,0.3)}50%{box-shadow:0 10px 28px rgba(142,30,63,0.38),0 0 0 10px rgba(142,30,63,0)}}@keyframes sa-icon-bob{0%,100%{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-2px) rotate(-6deg)}}@media (prefers-reduced-motion:reduce){.sa-fab,.sa-fab-icon{animation:none !important}}@media (max-width:640px){.sa-fab{bottom:78px;right:14px;padding:12px 14px}.sa-fab-label{display:none}}.sa-backdrop{position:fixed;inset:0;background:rgba(20,13,8,0.45);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);z-index:470;display:none;opacity:0;transition:opacity 0.25s ease}.sa-backdrop.open{display:block}.sa-backdrop.open.show{opacity:1}.sa-panel{position:fixed;right:20px;bottom:24px;z-index:480;width:390px;max-width:calc(100vw - 32px);height:580px;max-height:calc(100vh - 48px);background:var(--surface,#fff);border-radius:22px;box-shadow:0 28px 72px rgba(20,13,8,0.32),0 4px 16px rgba(20,13,8,0.12);display:none;flex-direction:column;overflow:hidden;border:1px solid var(--border);opacity:0;transform:translateY(24px) scale(0.96);transform-origin:bottom right;transition:opacity 0.3s var(--sa-ease),transform 0.35s var(--sa-ease)}.sa-panel.open{display:flex}.sa-panel.open.show{opacity:1;transform:translateY(0) scale(1)}@media (max-width:640px){.sa-panel{right:0;left:0;bottom:0;width:100%;max-width:100%;height:86vh;max-height:86vh;border-radius:22px 22px 0 0;transform:translateY(100%);transform-origin:bottom center}.sa-panel.open.show{transform:translateY(0)}}.sa-head{position:relative;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px 18px;background:linear-gradient(125deg,var(--primary),var(--primary-dark) 60%,var(--gold-deep,var(--primary-dark)));color:#fff;flex:none;overflow:hidden}.sa-head::after{content:"";position:absolute;inset:0;background:radial-gradient(120px 80px at 85% -20%,rgba(255,255,255,0.35),transparent 70%);pointer-events:none}.sa-head-title{display:flex;align-items:center;gap:10px;position:relative;z-index:1}.sa-head-icon{font-size:23px;display:inline-block;animation:sa-icon-bob 2.4s ease-in-out infinite}.sa-head-name{font-weight:700;font-size:15.5px;letter-spacing:0.1px}.sa-head-sub{font-size:12px;opacity:0.88;margin-top:2px}.sa-close{position:relative;z-index:1;background:rgba(255,255,255,0.15);border:none;color:#fff;width:30px;height:30px;border-radius:50%;cursor:pointer;font-size:14px;line-height:1;flex:none;transition:background 0.15s ease,transform 0.15s ease}.sa-close:hover{background:rgba(255,255,255,0.28);transform:rotate(90deg)}.sa-new{position:relative;z-index:1;background:rgba(255,255,255,0.15);border:none;color:#fff;width:30px;height:30px;border-radius:50%;cursor:pointer;font-size:13px;line-height:1;flex:none;margin-right:6px;transition:background 0.15s ease,transform 0.4s ease}.sa-new:hover{background:rgba(255,255,255,0.28);transform:rotate(180deg)}.sa-thread{flex:1;overflow-y:auto;overflow-x:hidden;padding:14px 12px;background:var(--bg);display:flex;flex-direction:column;gap:12px;scroll-behavior:smooth}.sa-thread::-webkit-scrollbar{width:6px}.sa-thread::-webkit-scrollbar-track{background:transparent}.sa-thread::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:999px}.sa-thread::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.sa-msg{display:flex;animation:sa-msg-in 0.32s var(--sa-ease) both}.sa-msg-user{justify-content:flex-end}.sa-msg-bot{justify-content:flex-start}@keyframes sa-msg-in{from{opacity:0;transform:translateY(8px) scale(0.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media (prefers-reduced-motion:reduce){.sa-msg{animation:none}}.sa-bubble{max-width:88%;padding:10px 13px;border-radius:14px;font-size:13.5px;line-height:1.5;box-shadow:0 1px 2px rgba(20,13,8,0.04)}.sa-msg-bot .sa-bubble{background:var(--surface,#fff);border:1px solid var(--border);color:var(--text);border-bottom-left-radius:4px}.sa-msg-user .sa-bubble{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;border-bottom-right-radius:4px;box-shadow:0 4px 12px rgba(142,30,63,0.22)}.sa-suggest{display:flex;flex-wrap:wrap;gap:8px;padding:2px 2px 4px}.sa-chip{border:1px solid var(--border-strong);background:var(--surface,#fff);color:var(--text-secondary);border-radius:999px;padding:7px 12px;font-size:12.5px;cursor:pointer;white-space:nowrap;transition:background 0.18s ease,border-color 0.18s ease,transform 0.18s ease,box-shadow 0.18s ease}.sa-chip:hover{background:var(--surface-2);border-color:var(--gold);transform:translateY(-1px);box-shadow:0 4px 10px rgba(20,13,8,0.08)}.sa-chip:active{transform:translateY(0) scale(0.97)}.sa-typing{display:inline-flex;gap:4px;align-items:center;padding:4px 2px}.sa-typing span{width:6px;height:6px;border-radius:50%;background:var(--text-muted);animation:sa-blink 1.1s infinite ease-in-out}.sa-typing span:nth-child(2){animation-delay:0.15s}.sa-typing span:nth-child(3){animation-delay:0.3s}@keyframes sa-blink{0%,80%,100%{opacity:0.25}40%{opacity:1}}.sa-results{display:flex;flex-direction:column;gap:10px;max-width:100%}.sa-card{display:flex;gap:10px;background:var(--surface,#fff);border:1px solid var(--border);border-radius:12px;padding:9px;align-items:flex-start;transition:transform 0.18s var(--sa-ease),box-shadow 0.18s var(--sa-ease),border-color 0.18s ease}.sa-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(20,13,8,0.1);border-color:var(--gold)}.sa-card-img{width:62px;height:62px;border-radius:9px;object-fit:cover;flex:none;background:var(--surface-2)}.sa-card-body{flex:1;min-width:0}.sa-card-name{font-size:13px;font-weight:700;color:var(--text);text-decoration:none;display:block;line-height:1.3}.sa-card-name:hover{color:var(--primary)}.sa-card-meta{display:flex;align-items:baseline;gap:6px;margin-top:2px;flex-wrap:wrap}.sa-card-price{font-weight:700;color:var(--primary);font-size:13px}.sa-card-compare{font-size:11px;color:var(--text-muted);text-decoration:line-through}.sa-card-rating{font-size:11px;color:var(--gold-deep)}.sa-card-reason{font-size:11.5px;color:var(--text-secondary);margin-top:4px;line-height:1.4}.sa-card-actions{margin-top:6px;display:flex;gap:6px}.sa-card-add{border:none;background:var(--primary);color:#fff;font-size:11.5px;font-weight:600;padding:6px 10px;border-radius:8px;cursor:pointer;transition:background 0.15s ease,transform 0.15s ease}.sa-card-add:hover{background:var(--primary-dark);transform:translateY(-1px)}.sa-card-add:active{transform:translateY(0) scale(0.96)}.sa-card-add:disabled{opacity:0.6;cursor:default;transform:none}.sa-card-view{border:1px solid var(--border-strong);background:transparent;color:var(--text-secondary);font-size:11.5px;padding:6px 10px;border-radius:8px;text-decoration:none;transition:border-color 0.15s ease,color 0.15s ease,transform 0.15s ease}.sa-card-view:hover{border-color:var(--gold);color:var(--gold-deep);transform:translateY(-1px)}.sa-form{flex:none;display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--border);background:var(--surface,#fff)}.sa-input{flex:1;border:1.5px solid var(--border-strong);border-radius:999px;padding:10px 14px;font-size:13.5px;outline:none;background:var(--bg);color:var(--text);transition:border-color 0.18s ease,box-shadow 0.18s ease,background 0.18s ease}.sa-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(142,30,63,0.12);background:var(--surface,#fff)}.sa-send{width:40px;height:40px;border-radius:50%;border:none;background:var(--primary);color:#fff;font-size:16px;cursor:pointer;flex:none;transition:background 0.18s ease,transform 0.18s ease,box-shadow 0.18s ease}.sa-send:hover:not(:disabled){background:var(--primary-dark);transform:scale(1.06);box-shadow:0 6px 16px rgba(142,30,63,0.32)}.sa-send:active:not(:disabled){transform:scale(0.94)}.sa-send:disabled{opacity:0.6;cursor:default}.sa-voice-btn,.sa-photo-btn{width:40px;height:40px;border-radius:50%;border:1px solid var(--border,#e5e5e5);background:#fff;font-size:16px;cursor:pointer;flex:none;transition:background 0.18s ease,border-color 0.18s ease,transform 0.18s ease}.sa-voice-btn:hover,.sa-photo-btn:hover{background:#f5f5f5;transform:translateY(-1px)}.sa-voice-btn:active,.sa-photo-btn:active{transform:translateY(0) scale(0.94)}.sa-voice-btn.listening{background:var(--danger,#e0364e);border-color:var(--danger,#e0364e);animation:sa-pulse 1s infinite}@keyframes sa-pulse{0%,100%{box-shadow:0 0 0 0 rgba(224,54,78,0.4)}50%{box-shadow:0 0 0 8px rgba(224,54,78,0)}}.sa-bubble-photo{padding:6px}.sa-bubble-photo img{max-width:160px;max-height:160px;border-radius:10px;display:block}.sa-msg-err .sa-bubble{border-color:var(--danger);color:var(--danger)}/* ════════════════════════════════════════════════════════════ PREMIUM AI FAB — sparkle orb + rotating aura + twinkles ════════════════════════════════════════════════════════════ */ .sa-fab{overflow:visible!important}.sa-fab.sa-fab-hot::before{content:"";position:absolute;inset:-4px;border-radius:999px;z-index:-1;background:conic-gradient(from 0deg,#dc143c,#ffb199,#ffd166,#dc143c);filter:blur(9px);opacity:.75;animation:bhAura 5s linear infinite}@keyframes bhAura{to{transform:rotate(360deg)}}.sa-orb{position:relative;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;flex:0 0 auto;background:radial-gradient(circle at 30% 25%,rgba(255,255,255,.38),rgba(255,255,255,.05));box-shadow:inset 0 0 12px rgba(255,255,255,.22),0 2px 8px rgba(0,0,0,.18)}.sa-orb svg{filter:drop-shadow(0 1px 3px rgba(0,0,0,.35));animation:sa-icon-bob 2.6s ease-in-out infinite}.sa-tw{position:absolute;font-style:normal;color:#ffd166;font-size:11px;line-height:1;text-shadow:0 0 6px rgba(255,209,102,.9);pointer-events:none;animation:bhTwinkle 2.2s ease-in-out infinite}.sa-tw.t1{top:-7px;right:-5px;animation-delay:.3s}.sa-tw.t2{bottom:-6px;left:-7px;font-size:9px;animation-delay:1.1s}@keyframes bhTwinkle{0%,100%{opacity:.15;transform:scale(.6) rotate(0)}50%{opacity:1;transform:scale(1.15) rotate(40deg)}}@media (max-width:767px){.sa-fab .sa-fab-label{display:none}.sa-orb{width:30px;height:30px}}.lite-fx .sa-fab-hot::before,.lite-fx .sa-tw{animation:none!important;opacity:.6}