/* Voice Search Widget - Floating mic button and popup */
:root{
  --vsw-bg:#ff6a00;
  --vsw-fg:#ffffff;
  --vsw-shadow:0 6px 18px rgba(0,0,0,0.18);
}
.vsw-container{position:fixed;right:18px;bottom:18px;z-index:99999;font-family:inherit}
.vsw-btn-wrap{display:flex;flex-direction:column;align-items:center;gap:6px}
.vsw-button{width:56px;height:56px;border-radius:50%;background:var(--vsw-bg);color:var(--vsw-fg);display:flex;align-items:center;justify-content:center;box-shadow:var(--vsw-shadow);cursor:pointer;border:none;outline:none;transition:transform .18s ease,box-shadow .18s ease}
.vsw-label{font-size:12px;color:var(--vsw-fg);background:rgba(0,0,0,0.12);padding:4px 8px;border-radius:12px}
.vsw-button:active{transform:scale(.96)}
.vsw-button.disabled{opacity:.45;cursor:not-allowed}
.vsw-popup{position:fixed;right:88px;bottom:30px;min-width:260px;max-width:360px;background:#fff;border-radius:12px;box-shadow:0 12px 30px rgba(0,0,0,0.2);overflow:hidden;transform:translateY(12px) scale(.98);opacity:0;pointer-events:none;transition:opacity .18s ease,transform .18s ease}
.vsw-popup.open{opacity:1;transform:none;pointer-events:auto}
.vsw-popup .header{padding:10px 14px;border-bottom:1px solid #f1f1f1;display:flex;gap:8px;align-items:center}
.vsw-popup .title{font-weight:600;font-size:14px;color:#222}
.vsw-popup .status{font-size:12px;color:#666;margin-left:auto}
.vsw-popup .body{padding:12px}
.vsw-popup .input-wrap{display:flex;gap:8px;align-items:center}
.vsw-popup input[type="text"]{flex:1;padding:10px 12px;border:1px solid #e6e6e6;border-radius:8px;font-size:14px}
.vsw-popup .mic-toggle{width:44px;height:44px;border-radius:8px;background:var(--vsw-bg);color:var(--vsw-fg);display:flex;align-items:center;justify-content:center;border:none;cursor:pointer}
.vsw-popup .mic-toggle.listening{box-shadow:0 0 0 6px rgba(255,106,0,0.12)}
.vsw-popup .hint{font-size:12px;color:#666;margin-top:8px}

/* small screens */
@media (max-width:520px){
  .vsw-popup{right:14px;left:14px;bottom:86px}
  .vsw-button{width:50px;height:50px}
}

/* accessibility focus */
.vsw-button:focus,.vsw-popup button:focus{box-shadow:0 0 0 3px rgba(0,123,255,0.12)}
