.wcbvs-floating-buttons{position:fixed;z-index:9999;display:flex;flex-direction:column;gap:10px}.wcbvs-floating-buttons.bottom-right{bottom:20px;right:20px}.wcbvs-floating-buttons.bottom-left{bottom:20px;left:20px}.wcbvs-floating-buttons.top-right{top:80px;right:20px}.wcbvs-floating-buttons.top-left{top:80px;left:20px}.wcbvs-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;background:#0073aa;color:#fff;border:none;border-radius:50px;font-size:14px;font-weight:600;cursor:pointer;box-shadow:0 4px 12px rgb(0 115 170 / .3);transition:all 0.3s ease}.wcbvs-btn:hover{background:#005a87;transform:translateY(-2px);box-shadow:0 6px 16px rgb(0 115 170 / .4)}.wcbvs-btn:active{transform:translateY(0)}.wcbvs-btn svg{width:20px;height:20px}.wcbvs-scan-btn{background:#0073aa}.wcbvs-voice-btn{background:#e74c3c}.wcbvs-voice-btn:hover{background:#c0392b;box-shadow:0 6px 16px rgb(231 76 60 / .4)}.wcbvs-modal{position:fixed;top:0;left:0;width:100%;height:100%;z-index:9999;display:flex;align-items:center;justify-content:center}.wcbvs-modal-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:rgb(0 0 0 / .85);backdrop-filter:blur(5px)}.wcbvs-modal-content{position:relative;width:90%;max-width:600px;background:#fff;border-radius:16px;box-shadow:0 20px 60px rgb(0 0 0 / .5);overflow:hidden;animation:modalSlideIn 0.3s ease}@keyframes modalSlideIn{from{transform:translateY(-50px);opacity:0}to{transform:translateY(0);opacity:1}}.wcbvs-modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;background:#f8f9fa;border-bottom:1px solid #e9ecef}.wcbvs-modal-header h3{margin:0;font-size:18px;font-weight:600;color:#333}.wcbvs-modal-close{background:none;border:none;padding:4px;cursor:pointer;color:#666;transition:color 0.2s}.wcbvs-modal-close:hover{color:#333}.wcbvs-modal-close svg{width:24px;height:24px}.wcbvs-modal-body{padding:24px}.wcbvs-scanner-viewport{position:relative;width:100%;aspect-ratio:4/3;background:#000;border-radius:12px;overflow:hidden;margin-bottom:16px}#wcbvs-scanner-video{width:100%;height:100%;object-fit:cover;-webkit-transform:scaleX(-1);transform:scaleX(-1)}.wcbvs-scanner-overlay{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;pointer-events:none}.wcbvs-scanner-frame{position:relative;width:85%;height:70%;border:3px solid rgb(255 255 255 / .5);border-radius:12px}.wcbvs-scanner-line{position:absolute;top:0;left:0;width:100%;height:3px;background:linear-gradient(90deg,transparent,#00ff00,transparent);animation:scannerLine 2s ease-in-out infinite}@keyframes scannerLine{0%{top:0}50%{top:calc(100% - 3px)}100%{top:0}}.wcbvs-scanner-viewport.detected .wcbvs-scanner-frame{border-color:lime;box-shadow:0 0 20px rgb(0 255 0 / .5);animation:detectedFlash 0.5s ease}@keyframes detectedFlash{0%,100%{opacity:1}50%{opacity:.5}}.wcbvs-voice-viewport{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;padding:40px 20px}.wcbvs-voice-animation{position:relative;margin-bottom:30px}.wcbvs-voice-animation svg{color:#e74c3c;position:relative;z-index:1}.wcbvs-voice-pulse{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:80px;height:80px;border:3px solid #e74c3c;border-radius:50%;opacity:.6}.wcbvs-voice-viewport.listening .wcbvs-voice-pulse{animation:voicePulse 1.5s ease-out infinite}@keyframes voicePulse{0%{transform:translate(-50%,-50%) scale(.8);opacity:.8}50%{transform:translate(-50%,-50%) scale(1.2);opacity:.4}100%{transform:translate(-50%,-50%) scale(1.5);opacity:0}}.wcbvs-voice-transcript{min-height:60px;padding:16px;background:#f8f9fa;border-radius:8px;font-size:16px;line-height:1.6;color:#333;text-align:center;max-width:100%;word-wrap:break-word}.wcbvs-voice-transcript .interim{color:#999;font-style:italic}.wcbvs-status{text-align:center;margin-bottom:16px}.wcbvs-status-text{margin:0;padding:12px;border-radius:8px;font-size:14px;font-weight:500}.wcbvs-status-text.info{background:#e3f2fd;color:#1976d2}.wcbvs-status-text.scanning{background:#fff3e0;color:#f57c00;animation:pulse 1.5s ease-in-out infinite}.wcbvs-status-text.listening{background:#ffebee;color:#e74c3c;animation:pulse 1.5s ease-in-out infinite}.wcbvs-status-text.success{background:#e8f5e9;color:#2e7d32}.wcbvs-status-text.error{background:#ffebee;color:#c62828}.wcbvs-status-text.loading{background:#e3f2fd;color:#1976d2}@keyframes pulse{0%,100%{opacity:1}50%{opacity:.7}}.wcbvs-controls{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:16px}.wcbvs-control-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background:#f8f9fa;border:1px solid #dee2e6;border-radius:6px;font-size:13px;color:#495057;cursor:pointer;transition:all 0.2s}.wcbvs-control-btn:hover{background:#e9ecef;border-color:#adb5bd}.wcbvs-control-btn.active{background:#0073aa;border-color:#0073aa;color:#fff}.wcbvs-control-btn svg{width:18px;height:18px}.wcbvs-manual-form{display:flex;gap:10px;margin-top:16px}.wcbvs-manual-input{flex:1;padding:12px 16px;border:2px solid #dee2e6;border-radius:8px;font-size:16px;transition:border-color 0.2s}.wcbvs-manual-input:focus{outline:none;border-color:#0073aa}.wcbvs-btn-primary{padding:12px 24px;background:#0073aa;color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:background 0.2s}.wcbvs-btn-primary:hover{background:#005a87}.wcbvs-loading{position:fixed;top:0;left:0;width:100%;height:100%;background:rgb(0 0 0 / .7);z-index:99999;display:flex;align-items:center;justify-content:center}.wcbvs-spinner{width:60px;height:60px;border:4px solid rgb(255 255 255 / .2);border-top-color:#fff;border-radius:50%;animation:spin 0.8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width:768px){.wcbvs-modal-content{width:95%;max-width:none;margin:10px}.wcbvs-modal-body{padding:16px}.wcbvs-scanner-viewport{aspect-ratio:3/4}.wcbvs-btn span{display:none}.wcbvs-btn{width:50px;height:50px;padding:0;border-radius:50%}.wcbvs-floating-buttons{bottom:15px;right:15px}}@media (max-width:480px){.wcbvs-modal-header{padding:16px}.wcbvs-modal-header h3{font-size:16px}.wcbvs-controls{flex-direction:column}.wcbvs-control-btn{width:100%;justify-content:center}}@media (prefers-color-scheme:dark){.wcbvs-modal-content{background:#1e1e1e}.wcbvs-modal-header{background:#2a2a2a;border-bottom-color:#404040}.wcbvs-modal-header h3{color:#fff}.wcbvs-voice-transcript{background:#2a2a2a;color:#fff}.wcbvs-manual-input{background:#2a2a2a;color:#fff;border-color:#404040}}#wcbvs-scanner-viewport{position:relative;overflow:hidden;background:#000}.wcbvs-focus-marker{position:absolute;width:50px;height:50px;border:2px solid #ffeb3b;border-radius:50%;pointer-events:none;z-index:11;box-shadow:0 0 10px rgb(255 235 59 / .6);animation:wcbvs-focus-pulse 0.7s ease-out forwards}@keyframes wcbvs-focus-pulse{0%{transform:scale(1.4);opacity:1}60%{transform:scale(1);opacity:1}100%{transform:scale(.9);opacity:0}}.wcbvs-engine-badge{position:absolute;top:12px;left:12px;background:rgb(0 0 0 / .7);color:#fff;padding:4px 10px;border-radius:12px;font-size:11px;font-weight:600;z-index:12;transition:opacity 0.5s ease}.wcbvs-engine-badge.fade-out{opacity:0}