/* Top-right dock (column on desktop, row on phones) */
.top-dock{position:fixed;z-index:210;right:23px;top:92px;display:flex;flex-direction:column;align-items:flex-end;gap:10px;transition:top .35s cubic-bezier(.16,1,.3,1)}
.cd-scrolled .top-dock{top:10px}
.top-dock .pin-quick,.top-dock .cd-mini{position:static!important;top:auto!important;right:auto!important}
.top-dock .cd-mini{display:flex;gap:6px}
.top-dock .cd-mini[hidden]{display:none!important}
.top-dock #command-voice,.top-dock #command-call{position:relative;width:56px;height:52px;display:grid;place-items:center;padding:0;border:1px solid #4f7f74;border-radius:15px;background:#123932;color:#baf7df;box-shadow:0 8px 30px #0008;cursor:pointer;transition:transform .25s,box-shadow .25s}
.top-dock #command-call{border-color:#6a5f95;background:linear-gradient(135deg,#221c3c,#17303a);color:#d9ccff}
.top-dock #command-voice:hover,.top-dock #command-call:hover{transform:translateY(-2px);box-shadow:0 0 22px #69e7be44,0 8px 30px #0008}

/* AI voice orb */
.ai-orb{position:relative;width:30px;height:30px;display:flex;align-items:center;justify-content:center;gap:2.5px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#2bd4a955,#0f4c4588 60%,transparent 72%);box-shadow:0 0 14px #6ff7d844}
.ai-orb:before{content:'';position:absolute;inset:-3px;border-radius:50%;border:1.5px solid #6ff7d866;animation:aiRing 2.8s ease-in-out infinite}
.ai-orb i{width:3px;height:6px;border-radius:2px;background:linear-gradient(#bfffee,#c3a9fd);animation:aiIdle 1.8s ease-in-out infinite}
.ai-orb i:nth-child(2){animation-delay:.15s}.ai-orb i:nth-child(3){animation-delay:.3s}.ai-orb i:nth-child(4){animation-delay:.45s}.ai-orb i:nth-child(5){animation-delay:.6s}
@keyframes aiIdle{50%{height:12px}}
@keyframes aiRing{50%{transform:scale(1.12);opacity:.4}}
#command-voice.is-speaking .ai-orb{box-shadow:0 0 22px #6ff7d899}
#command-voice.is-speaking .ai-orb i{animation:aiTalk .42s ease-in-out infinite alternate}
#command-voice.is-speaking .ai-orb i:nth-child(odd){animation-duration:.33s}
@keyframes aiTalk{from{height:4px}to{height:20px}}
.ai-off{position:absolute;right:6px;top:4px;display:none;color:#ff9c9c;font-size:15px}
#command-voice.is-off{border-color:#3a4e55;background:#0f1c22;color:#6f8893}
#command-voice.is-off .ai-orb{filter:grayscale(1);opacity:.5;box-shadow:none}#command-voice.is-off .ai-orb i,#command-voice.is-off .ai-orb:before{animation:none}
#command-voice.is-off .ai-off{display:block}

/* LIVE microphone */
.space-command #command-mic{width:96px;gap:7px}
.live-mic{position:relative;width:26px;height:26px;display:grid;place-items:center}
.live-mic svg{position:relative;z-index:1;width:20px;height:20px;fill:none;stroke:#bfffee;stroke-width:1.8;stroke-linecap:round}
.live-mic svg rect{fill:#6ff7d833}
.live-mic i{position:absolute;inset:0;border-radius:50%;border:1.5px solid #6ff7d888;animation:micRing 2.4s cubic-bezier(.2,.6,.3,1) infinite}
.live-mic i+i{animation-delay:1.2s;border-color:#c3a9fd88}
@keyframes micRing{from{transform:scale(.6);opacity:1}to{transform:scale(1.7);opacity:0}}
.space-command #command-mic.recording .live-mic svg{stroke:#fff}.space-command #command-mic.recording .live-mic svg rect{fill:#ff6b6b88}
.space-command #command-mic.recording .live-mic i{animation-duration:1s;border-color:#ff9c9c}

@media(max-width:1050px){
  .top-dock{flex-direction:row;align-items:center;right:12px;top:64px;gap:6px}
  .top-dock #command-voice,.top-dock #command-call{width:46px;height:46px;border-radius:14px}
  .ai-orb{width:26px;height:26px}
}
@media(max-width:760px){.space-command #command-mic{width:78px}}
@media(prefers-reduced-motion:reduce){.ai-orb i,.ai-orb:before,.live-mic i{animation:none!important}}
/* While a product card is open, the floating icons step aside so they never cover its close button */
.top-dock{transition:top .35s cubic-bezier(.16,1,.3,1),opacity .25s,transform .25s}
body:has(#detail-drawer.open) .top-dock,body:has(#site-product-overlay) .top-dock,body.vp-full-open .top-dock{opacity:0;pointer-events:none;transform:translateY(-12px)}
.pin-photo-host{position:relative}
.pin-in-photo{position:absolute!important;top:12px;right:12px;z-index:4;margin:0!important}
