/* public/xv-order-assist.css — [UPDATE 2026-09-30 v2] "Asisten Order" Nokos & SMM, didesain ulang:
   panggung maskot bercahaya (karakter toko asli dari XvMascot), status online, pelacak langkah yang maju, tombol cepat bergaya
   kartu dengan lencana warna aplikasi, kartu rekomendasi berbingkai cahaya. Cocok untuk tema terang & gelap (token web utama).
   Semua animasi mati bila prefers-reduced-motion. */
.xoa{--xa-ease:cubic-bezier(.2,.8,.2,1);--xa-spring:cubic-bezier(.2,.9,.25,1.25);--xa-a:var(--vio,#2563eb);--xa-b:var(--cy,#06b6d4);
  position:relative;isolation:isolate;margin:20px 0 26px;border-radius:30px;padding:22px 22px 18px;overflow:hidden;
  background:linear-gradient(180deg,color-mix(in srgb,var(--xa-a) 7%,var(--bg2,#fff)),var(--bg2,#fff) 46%);
  border:1px solid color-mix(in srgb,var(--xa-a) 22%,var(--line));box-shadow:0 1px 0 rgba(255,255,255,.6) inset,0 30px 60px -38px color-mix(in srgb,var(--xa-a) 55%,transparent);animation:xaIn .7s var(--xa-ease)}
.xoa::before{content:"";position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,transparent,var(--xa-a),var(--xa-b),transparent);background-size:200% 100%;animation:xaFlow 4s linear infinite;z-index:1}
.xoa::after{content:"";position:absolute;width:420px;height:420px;right:-160px;top:-220px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--xa-b) 22%,transparent),transparent 65%);z-index:-1;animation:xaDrift 12s ease-in-out infinite alternate}

/* ---------- kepala: panggung maskot ---------- */
.xoa-head{display:flex;gap:16px;align-items:center;margin-bottom:16px}
.xoa-stage{position:relative;width:96px;height:96px;flex:0 0 96px;border-radius:50%;display:grid;place-items:center;
  background:radial-gradient(circle at 50% 38%,#fff 0,color-mix(in srgb,var(--xa-b) 26%,#fff) 46%,color-mix(in srgb,var(--xa-a) 40%,transparent) 72%,transparent 73%);
  box-shadow:0 18px 34px -18px color-mix(in srgb,var(--xa-a) 80%,transparent)}
.xoa-stage::before{content:"";position:absolute;inset:-6px;border-radius:50%;border:2px dashed color-mix(in srgb,var(--xa-a) 35%,transparent);animation:xaSpin 18s linear infinite}
.xoa-stage::after{content:"";position:absolute;left:18%;right:18%;bottom:6px;height:10px;border-radius:50%;background:radial-gradient(closest-side,color-mix(in srgb,var(--xa-a) 35%,transparent),transparent);animation:xaShadow 3s ease-in-out infinite}
.xoa-face{position:relative;z-index:1;display:grid;place-items:center;animation:xaBob 3s ease-in-out infinite}
.xoa-face>svg:not(.xvm){width:34px;height:34px;color:var(--xa-a)}
.xoa-stage.has-mascot .xoa-face{margin-top:-6px}
.xoa-spark{position:absolute;width:8px;height:8px;border-radius:50%;background:var(--xa-b);box-shadow:0 0 10px var(--xa-b);z-index:2}
.xoa-spark.a{top:6px;right:10px;animation:xaTwinkle 2.4s ease-in-out infinite}
.xoa-spark.b{bottom:16px;left:2px;width:6px;height:6px;background:var(--xa-a);box-shadow:0 0 10px var(--xa-a);animation:xaTwinkle 2.4s ease-in-out .8s infinite}
.xoa-spark.c{top:30px;left:-4px;width:5px;height:5px;animation:xaTwinkle 2.4s ease-in-out 1.5s infinite}
.xoa-ht{flex:1;min-width:0}
.xoa-nr{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.xoa-name{font-family:var(--font-d);font-size:1.35rem;letter-spacing:-.3px;line-height:1.1}
.xoa-role{font-size:.72rem;font-weight:800;letter-spacing:.3px;text-transform:uppercase;color:var(--xa-a);padding:3px 9px;border-radius:99px;background:color-mix(in srgb,var(--xa-a) 10%,transparent)}
.xoa-live{display:inline-flex;align-items:center;gap:6px;font-size:.74rem;font-weight:700;color:#16a34a}
.xoa-live i{width:8px;height:8px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 0 rgba(34,197,94,.55);animation:xaLive 1.8s ease-out infinite}
.xoa-sub{display:block;color:var(--mut);font-size:.88rem;margin-top:4px;line-height:1.5}
.xoa-reset{flex:none;display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);background:var(--glass);color:var(--mut);border-radius:14px;padding:9px 13px;font-size:.78rem;font-weight:700;cursor:pointer;transition:color .2s,border-color .2s,transform .3s var(--xa-spring)}
.xoa-reset svg{width:16px;height:16px;transition:transform .5s var(--xa-ease)}
.xoa-reset:hover{color:var(--txt);border-color:var(--xa-a)}.xoa-reset:hover svg{transform:rotate(-200deg)}

/* ---------- pelacak langkah ---------- */
.xoa-steps{position:relative;list-style:none;margin:0 0 16px;padding:0;display:grid;grid-template-columns:repeat(var(--n,4),1fr);gap:8px}
.xoa-bar{position:absolute;left:calc(100% / var(--n,4) / 2);right:calc(100% / var(--n,4) / 2);top:15px;height:3px;border-radius:3px;background:var(--line);z-index:0}
.xoa-bar i{position:absolute;left:0;top:0;bottom:0;width:calc(var(--p,0) * 100%);border-radius:3px;background:linear-gradient(90deg,var(--xa-a),var(--xa-b));transition:width .7s var(--xa-ease);box-shadow:0 0 10px color-mix(in srgb,var(--xa-b) 60%,transparent)}
.xoa-step{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:7px;text-align:center;font-size:.74rem;line-height:1.35;color:var(--mut);animation:xaIn .5s var(--xa-ease) both;animation-delay:calc(var(--i) * 90ms)}
.xoa-step b{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-size:.8rem;font-weight:800;background:var(--bg2,#fff);border:2px solid var(--line);color:var(--mut);transition:all .4s var(--xa-spring)}
.xoa-step.done b{background:linear-gradient(135deg,var(--xa-a),var(--xa-b));border-color:transparent;color:transparent;position:relative}
.xoa-step.done b::after{content:"";position:absolute;width:11px;height:6px;border-left:2.5px solid #fff;border-bottom:2.5px solid #fff;transform:translateY(-2px) rotate(-45deg)}
.xoa-step.now b{border-color:var(--xa-a);color:var(--xa-a);transform:scale(1.12);box-shadow:0 0 0 6px color-mix(in srgb,var(--xa-a) 14%,transparent);animation:xaRing 1.8s ease-out infinite}
.xoa-step.now{color:var(--txt);font-weight:700}

/* ---------- percakapan ---------- */
.xoa-log{display:flex;flex-direction:column;gap:10px;max-height:460px;overflow-y:auto;padding:4px 2px 10px;scroll-behavior:smooth;scrollbar-width:thin}
.xoa-msg{position:relative;max-width:min(78%,560px);padding:11px 15px;border-radius:20px;font-size:.92rem;line-height:1.55;animation:xaPop .45s var(--xa-spring) both}
.xoa-msg.bot{align-self:flex-start;background:var(--bg2,#fff);border:1px solid color-mix(in srgb,var(--xa-a) 16%,var(--line));border-bottom-left-radius:6px;box-shadow:0 10px 24px -20px color-mix(in srgb,var(--xa-a) 80%,transparent)}
.xoa-msg.me{align-self:flex-end;color:#fff;background:linear-gradient(135deg,var(--xa-a),color-mix(in srgb,var(--xa-b) 75%,var(--xa-a)));border-bottom-right-radius:6px;box-shadow:0 12px 24px -16px var(--xa-a)}
.xoa-msg.wide{max-width:100%;width:100%;background:transparent;border:0;padding:2px 0;box-shadow:none}
.xoa-msg.typing{display:flex;gap:5px;padding:14px 16px}
.xoa-msg.typing i{width:8px;height:8px;border-radius:50%;background:linear-gradient(135deg,var(--xa-a),var(--xa-b));animation:xaDot 1s ease-in-out infinite}
.xoa-msg.typing i:nth-child(2){animation-delay:.15s}.xoa-msg.typing i:nth-child(3){animation-delay:.3s}
.xoa-chips{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:9px}
.xoa-chip{position:relative;display:flex;align-items:center;gap:10px;text-align:left;border:1px solid var(--line);background:var(--bg2,#fff);color:var(--txt);border-radius:16px;padding:10px 12px;font-size:.88rem;font-weight:700;cursor:pointer;
  transition:transform .3s var(--xa-spring),border-color .25s,box-shadow .3s,opacity .3s;animation:xaPop .45s var(--xa-spring) both;animation-delay:calc(var(--i) * 45ms);box-shadow:0 6px 16px -14px #0f172a}
.xoa-chip:hover:not(:disabled){transform:translateY(-3px);border-color:var(--xa-a);box-shadow:0 16px 28px -18px var(--xa-a)}
.xoa-chip:active:not(:disabled){transform:scale(.97)}
.xoa-badge{width:30px;height:30px;flex:none;border-radius:10px;display:grid;place-items:center;color:#fff;font-size:.82rem;font-weight:800;background:linear-gradient(135deg,var(--xa-a),var(--xa-b));box-shadow:0 6px 12px -8px rgba(15,23,42,.6)}
.xoa-chip.on{border-color:transparent;background:linear-gradient(135deg,var(--xa-a),var(--xa-b));color:#fff;box-shadow:0 14px 28px -16px var(--xa-a)}
.xoa-chip.on .xoa-badge{background:rgba(255,255,255,.22)!important}
.xoa-chip:disabled:not(.on){opacity:.38;cursor:default;transform:none}
.xoa-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.xoa-card{position:relative;text-align:left;display:flex;flex-direction:column;gap:5px;padding:16px;border-radius:22px;border:1px solid var(--line);background:var(--bg2,#fff);color:var(--txt);cursor:pointer;overflow:hidden;isolation:isolate;
  transition:transform .35s var(--xa-spring),border-color .3s,box-shadow .35s;animation:xaUp .55s var(--xa-ease) both;animation-delay:calc(var(--i) * 100ms);box-shadow:0 10px 26px -22px #0f172a}
.xoa-card:first-child{border:1.5px solid transparent;background:linear-gradient(var(--bg2,#fff),var(--bg2,#fff)) padding-box,linear-gradient(135deg,var(--xa-a),var(--xa-b)) border-box;box-shadow:0 18px 36px -24px var(--xa-a)}
.xoa-card:hover{transform:translateY(-6px);box-shadow:0 24px 40px -24px var(--xa-a)}
.xoa-card::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(115deg,transparent 35%,color-mix(in srgb,var(--xa-b) 14%,transparent) 50%,transparent 65%);transform:translateX(-120%);transition:transform .9s var(--xa-ease)}
.xoa-card:hover::after{transform:translateX(120%)}
.xoa-tag{align-self:flex-start;font-size:.68rem;font-weight:800;padding:4px 10px;border-radius:99px;color:var(--xa-a);background:color-mix(in srgb,var(--xa-a) 10%,transparent);margin-bottom:4px}
.xoa-card:first-child .xoa-tag{color:#fff;background:linear-gradient(135deg,var(--xa-a),var(--xa-b))}
.xoa-card b{font-size:.92rem;line-height:1.35}.xoa-card small{color:var(--mut);font-size:.76rem;line-height:1.45}
.xoa-card strong{font-family:var(--font-d);font-size:1.45rem;letter-spacing:-.4px;margin-top:6px}
.xoa-card em{font-style:normal;color:#16a34a;font-size:.76rem;font-weight:700}
.xoa-cta{margin-top:10px;align-self:stretch;text-align:center;padding:11px;border-radius:14px;font-weight:800;font-size:.86rem;color:#fff;background:linear-gradient(135deg,var(--xa-a),var(--xa-b));box-shadow:0 10px 20px -14px var(--xa-a);transition:filter .2s}
.xoa-card:hover .xoa-cta{filter:brightness(1.08)}
.xoa-input{position:relative;display:flex;gap:8px;margin-top:12px;padding:6px;border-radius:20px;background:var(--glass);border:1px solid var(--line);transition:border-color .25s,box-shadow .25s}
.xoa-input:focus-within{border-color:var(--xa-a);box-shadow:0 0 0 5px color-mix(in srgb,var(--xa-a) 14%,transparent)}
.xoa-input input{flex:1;min-width:0;border:0;background:transparent;color:var(--txt);padding:10px 12px;font-size:.92rem;outline:none}
.xoa-send{width:46px;height:46px;flex:none;border:0;border-radius:15px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,var(--xa-a),var(--xa-b));cursor:pointer;box-shadow:0 10px 20px -12px var(--xa-a);transition:transform .25s var(--xa-spring)}
.xoa-send:hover{transform:translateY(-2px) rotate(-8deg)}.xoa-send:active{transform:scale(.9)}.xoa-send svg{width:19px;height:19px}

@keyframes xaIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes xaUp{from{opacity:0;transform:translateY(20px) scale(.96)}to{opacity:1;transform:none}}
@keyframes xaPop{from{opacity:0;transform:translateY(10px) scale(.94)}to{opacity:1;transform:none}}
@keyframes xaDot{0%,100%{transform:translateY(0);opacity:.45}50%{transform:translateY(-5px);opacity:1}}
@keyframes xaSpin{to{transform:rotate(360deg)}}
@keyframes xaBob{50%{transform:translateY(-5px)}}
@keyframes xaShadow{50%{transform:scaleX(.82);opacity:.6}}
@keyframes xaTwinkle{0%,100%{opacity:.2;transform:scale(.6)}50%{opacity:1;transform:scale(1.2)}}
@keyframes xaLive{70%{box-shadow:0 0 0 7px rgba(34,197,94,0)}100%{box-shadow:0 0 0 0 rgba(34,197,94,0)}}
@keyframes xaRing{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--xa-a) 35%,transparent)}100%{box-shadow:0 0 0 12px transparent}}
@keyframes xaFlow{to{background-position:-200% 0}}
@keyframes xaDrift{to{transform:translate(-60px,40px)}}
@media (max-width:640px){
  .xoa{padding:16px 14px 14px;border-radius:24px}
  .xoa-head{gap:12px}.xoa-stage{width:78px;height:78px;flex-basis:78px}.xoa-stage .xvm{width:66px;height:auto}
  .xoa-name{font-size:1.15rem}.xoa-reset span{display:none}.xoa-reset{padding:9px}
  .xoa-step span{font-size:.66rem}.xoa-step b{width:28px;height:28px}.xoa-bar{top:13px}
  .xoa-chips{grid-template-columns:repeat(2,minmax(0,1fr))}.xoa-cards{grid-template-columns:1fr}.xoa-msg{max-width:90%}.xoa-log{max-height:60vh}
}
@media (prefers-reduced-motion:reduce){.xoa,.xoa *,.xoa::before,.xoa::after{animation:none!important;transition:none!important}}
