/* AURA floating AI assistant: an iridescent glass orb that opens a chat panel. Shared by storefront and admin. */
:root{
  --ai-bg:#f8f4ee;--ai-ink:#1f1a33;--ai-ink-2:#4a4360;--ai-muted:#6a6380;--ai-line:rgba(31,26,51,.1);
  --ai-field:rgba(255,255,255,.86);--ai-bubble:#ffffff;--ai-out:linear-gradient(135deg,#3a2f5e,#1f1a33);--ai-on-out:#ffffff;
  --ai-accent:#5b44b0;--ai-accent-soft:#ece6fb;--ai-ok:#2f8257;--ai-warn:#8a5a12;--ai-err:#a3343f;
  --ai-shadow:0 30px 80px rgba(14,10,28,.35);
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --ai-bg:#1d192c;--ai-ink:#f2eefa;--ai-ink-2:#d3cbe6;--ai-muted:#a99fc2;--ai-line:rgba(255,255,255,.12);
  --ai-field:rgba(255,255,255,.07);--ai-bubble:rgba(255,255,255,.08);--ai-out:linear-gradient(135deg,#efe9ff,#cfc2ff);--ai-on-out:#17122a;
  --ai-accent:#a996f0;--ai-accent-soft:rgba(169,150,240,.18);--ai-ok:#6cc08f;--ai-warn:#f0b968;--ai-err:#ff9aa3}}
:root[data-theme="dark"]{
  --ai-bg:#1d192c;--ai-ink:#f2eefa;--ai-ink-2:#d3cbe6;--ai-muted:#a99fc2;--ai-line:rgba(255,255,255,.12);
  --ai-field:rgba(255,255,255,.07);--ai-bubble:rgba(255,255,255,.08);--ai-out:linear-gradient(135deg,#efe9ff,#cfc2ff);--ai-on-out:#17122a;
  --ai-accent:#a996f0;--ai-accent-soft:rgba(169,150,240,.18);--ai-ok:#6cc08f;--ai-warn:#f0b968;--ai-err:#ff9aa3}

.ai-root{font:14px/1.55 "Jost","PingFang SC","Microsoft YaHei","Noto Sans SC",system-ui,sans-serif;color:var(--ai-ink)}
.ai-root *{box-sizing:border-box}
.ai-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* orb */
.ai-orb{position:fixed;z-index:55;right:calc(20px + env(safe-area-inset-right,0px));bottom:calc(20px + env(safe-area-inset-bottom,0px));width:64px;height:64px;padding:0;border:0;border-radius:50%;cursor:pointer;
  background:radial-gradient(circle at 32% 28%,#ffffff 0,#fde7f0 16%,#e8dcff 42%,#ad90f2 72%,#6247c9 100%);
  box-shadow:0 14px 34px rgba(76,48,170,.45),inset 0 -6px 14px rgba(60,30,140,.35),inset 0 4px 10px rgba(255,255,255,.8);
  transition:scale .25s cubic-bezier(.3,1.4,.5,1),box-shadow .25s,opacity .3s;opacity:0}
.ai-root.ready .ai-orb{opacity:1}
.ai-orb:hover{scale:1.08;box-shadow:0 18px 44px rgba(76,48,170,.55),inset 0 -6px 14px rgba(60,30,140,.35),inset 0 4px 10px rgba(255,255,255,.8)}
.ai-orb:focus-visible{outline:3px solid #fff;outline-offset:4px}
.ai-orb-glow{position:absolute;inset:-8px;border-radius:50%;background:radial-gradient(circle,rgba(190,160,255,.55),rgba(190,160,255,0) 70%);animation:aiGlow 3.2s ease-in-out infinite;pointer-events:none}
.ai-orb-core{position:absolute;inset:0;display:grid;place-items:center;color:#fff;filter:drop-shadow(0 2px 4px rgba(60,30,140,.45))}
.ai-orb-core svg{width:28px;height:28px;animation:aiSpin 14s linear infinite}
.ai-orb-tag{position:absolute;top:-4px;right:-4px;padding:2px 7px;border-radius:999px;background:#1f1a33;color:#fff;font:700 10px/1.4 system-ui,sans-serif;letter-spacing:.06em;box-shadow:0 4px 10px rgba(0,0,0,.25)}
.ai-root.open .ai-orb{scale:.9}
@keyframes aiGlow{0%,100%{opacity:.55;scale:1}50%{opacity:1;scale:1.12}}
@keyframes aiSpin{to{rotate:360deg}}
/* panel */
.ai-panel{position:fixed;z-index:56;right:calc(20px + env(safe-area-inset-right,0px));bottom:calc(96px + env(safe-area-inset-bottom,0px));width:min(390px,calc(100vw - 24px));height:min(620px,calc(100dvh - 130px));display:flex;flex-direction:column;
  color:var(--ai-ink);background:color-mix(in srgb,var(--ai-bg) 94%,transparent);-webkit-backdrop-filter:blur(26px) saturate(1.4);backdrop-filter:blur(26px) saturate(1.4);border:1px solid rgba(255,255,255,.35);border-radius:28px;box-shadow:var(--ai-shadow);
  opacity:0;translate:0 18px;scale:.96;transform-origin:100% 100%;transition:opacity .25s,translate .35s cubic-bezier(.2,.8,.2,1),scale .35s cubic-bezier(.2,.8,.2,1)}
.ai-panel.on{opacity:1;translate:0 0;scale:1}
.ai-head{display:flex;align-items:center;gap:10px;padding:14px 14px 12px 16px;border-bottom:1px solid var(--ai-line)}
.ai-mini{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;color:#fff;background:radial-gradient(circle at 32% 28%,#fff 0,#e8dcff 35%,#8d6be6 85%)}
.ai-mini svg{width:18px;height:18px}
.ai-title{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.25}
.ai-title b{font:500 17px/1.2 "Bodoni Moda","Noto Serif SC",Georgia,serif}
.ai-title small{font-size:11.5px;color:var(--ai-ok)}
.ai-title small::before{content:"";display:inline-block;width:7px;height:7px;margin-right:6px;border-radius:50%;background:currentColor;vertical-align:1px}
.ai-title small.off{color:var(--ai-warn)}
.ai-icon{width:34px;height:34px;flex-shrink:0;border:0;border-radius:50%;display:grid;place-items:center;cursor:pointer;background:transparent;color:var(--ai-muted)}
.ai-icon:hover{background:var(--ai-accent-soft);color:var(--ai-ink)}
.ai-icon svg{width:17px;height:17px}
.ai-log{flex:1;min-height:0;overflow-y:auto;padding:14px 14px 6px;display:flex;flex-direction:column;gap:10px;scroll-behavior:smooth}
.ai-msg{display:flex;flex-direction:column;gap:6px;max-width:88%}
.ai-msg.in{align-self:flex-start}.ai-msg.out{align-self:flex-end}
.ai-bubble{padding:10px 13px;border-radius:18px;font-size:13.5px;line-height:1.6;word-break:break-word}
.ai-msg.in .ai-bubble{background:var(--ai-bubble);color:var(--ai-ink);border:1px solid var(--ai-line);border-bottom-left-radius:6px}
.ai-msg.out .ai-bubble{background:var(--ai-out);color:var(--ai-on-out);border-bottom-right-radius:6px}
.ai-msg.err .ai-bubble{border-color:color-mix(in srgb,var(--ai-err) 40%,transparent);color:var(--ai-err)}
.ai-bubble p{margin:0}.ai-bubble p+p,.ai-bubble ul+p,.ai-bubble p+ul{margin-top:6px}
.ai-bubble ul{margin:0;padding-left:18px}
.ai-typing{display:flex;gap:5px;padding:14px 16px}
.ai-typing i{width:7px;height:7px;border-radius:50%;background:var(--ai-muted);animation:aiDot 1s infinite}
.ai-typing i:nth-child(2){animation-delay:.15s}.ai-typing i:nth-child(3){animation-delay:.3s}
@keyframes aiDot{0%,80%,100%{opacity:.25;translate:0 0}40%{opacity:1;translate:0 -3px}}
.ai-prods{display:grid;gap:8px}
.ai-prod{position:relative;display:flex;align-items:center;gap:10px;padding:8px;border-radius:16px;background:var(--ai-field);border:1px solid var(--ai-line)}
.ai-prod-art{width:46px;height:46px;flex-shrink:0;border-radius:12px;overflow:hidden;background:var(--tone)}
.ai-prod-art svg,.ai-prod-art img{width:100%;height:100%;object-fit:cover;display:block}
.ai-prod-t{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.3}
.ai-prod-t b{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ai-prod-t small{color:var(--ai-muted);font-size:12px}
.ai-prod-act{display:flex;gap:6px}
.ai-prod-act button{height:30px;padding:0 11px;border:0;border-radius:999px;cursor:pointer;font:600 12px/1 inherit;background:var(--ai-accent-soft);color:var(--ai-ink)}
.ai-prod-act button.pri{background:var(--ai-out);color:var(--ai-on-out)}
.ai-prod-act button:disabled{opacity:.6;cursor:default}
.ai-action{align-self:flex-start;padding:7px 12px;border-radius:999px;background:var(--ai-accent-soft);color:var(--ai-ink);font-size:12.5px;font-weight:600;text-decoration:none}
.ai-chips{display:flex;flex-wrap:wrap;gap:6px;padding:0 14px 8px}
.ai-chips:empty{display:none}
.ai-chips button{padding:7px 12px;border:1px solid var(--ai-line);border-radius:999px;cursor:pointer;background:var(--ai-field);color:var(--ai-ink-2);font:500 12.5px/1.2 inherit;text-align:left}
.ai-chips button:hover{background:var(--ai-accent-soft);color:var(--ai-ink)}
.ai-form{display:flex;align-items:flex-end;gap:8px;margin:0 12px;padding:6px 6px 6px 14px;border-radius:22px;background:var(--ai-field);border:1px solid var(--ai-line)}
.ai-form:focus-within{border-color:var(--ai-accent);box-shadow:0 0 0 3px var(--ai-accent-soft)}
.ai-form textarea{flex:1;min-width:0;max-height:120px;padding:8px 0;border:0;outline:none;resize:none;background:transparent;color:var(--ai-ink);font:14px/1.45 inherit}
.ai-form textarea::placeholder{color:var(--ai-muted)}
.ai-send{width:38px;height:38px;flex-shrink:0;border:0;border-radius:50%;display:grid;place-items:center;cursor:pointer;background:var(--ai-out);color:var(--ai-on-out)}
.ai-send svg{width:17px;height:17px}
.ai-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 16px 12px;font-size:11.5px;color:var(--ai-muted)}
.ai-foot button{display:inline-flex;align-items:center;gap:5px;padding:0;border:0;background:none;cursor:pointer;color:var(--ai-accent);font:600 12px/1 inherit}
.ai-foot svg{width:14px;height:14px}
.ai-root :focus-visible{outline:2px solid var(--ai-accent);outline-offset:2px}
@media (max-width:640px){
  .ai-orb{width:56px;height:56px;right:calc(14px + env(safe-area-inset-right,0px));bottom:calc(14px + env(safe-area-inset-bottom,0px))}
  .ai-panel{right:12px;left:12px;width:auto;bottom:calc(80px + env(safe-area-inset-bottom,0px));height:min(600px,calc(100dvh - 110px))}
}
@media (prefers-reduced-motion:reduce){.ai-orb-glow,.ai-orb-core svg,.ai-typing i{animation:none}.ai-panel,.ai-orb{transition:none}}
.ai-form textarea:focus-visible{outline:none}
