@keyframes pulse-voice{0%{opacity:.6;transform:scale(.95)}50%{opacity:1;transform:scale(1.05)}to{opacity:.6;transform:scale(.95)}}.voice-indicator{display:inline-flex;align-items:center;justify-content:center;margin-left:8px;padding:4px 8px;border-radius:12px;background-color:rgba(var(--primary-rgb),.1);color:var(--primary);font-size:.75rem;font-weight:500;animation:pulse-voice 1.5s ease-in-out infinite}.playing-voice .voice-button{color:var(--primary);position:relative}.voice-playing-animation{display:flex;align-items:center;margin-left:4px;height:12px}.voice-playing-animation span{display:inline-block;width:3px;height:100%;margin-right:2px;background-color:currentColor;border-radius:1px;animation:voice-bar-animation 1.2s ease-in-out infinite}.voice-playing-animation span:first-child{animation-delay:0s}.voice-playing-animation span:nth-child(2){animation-delay:.3s;height:60%}.voice-playing-animation span:nth-child(3){animation-delay:.6s;height:80%}@keyframes voice-bar-animation{0%{transform:scaleY(.5)}50%{transform:scaleY(1)}to{transform:scaleY(.5)}}.voice-active-indicator{position:relative}.voice-active-indicator:after{content:"";position:absolute;top:-2px;right:-2px;width:8px;height:8px;border-radius:50%;background-color:var(--primary);box-shadow:0 0 0 2px var(--background)}.voice-progress-container{position:fixed;bottom:0;left:0;width:100%;height:auto;z-index:1000;display:flex;flex-direction:column;align-items:center;pointer-events:none;background-color:rgba(0,0,0,.7);backdrop-filter:blur(4px);padding:6px 0}.voice-progress-status{margin-bottom:6px;display:flex;align-items:center;justify-content:center;color:white;font-size:12px;font-weight:500}.voice-error,.voice-progress-info{display:flex;align-items:center;gap:8px;padding:4px 12px;border-radius:16px;background-color:rgba(255,255,255,.1)}.voice-error{background-color:rgba(239,68,68,.2);color:rgb(239,68,68)}.voice-language-badge{display:inline-block;margin-left:6px;padding:1px 4px;background-color:rgba(255,255,255,.15);border-radius:4px;font-size:10px;font-weight:600;text-transform:uppercase}.voice-error-icon,.voice-icon{animation:pulse-voice 1.5s ease-in-out infinite}.voice-progress-bar{height:3px;width:0;background-color:var(--primary);transition:width .2s linear;border-radius:3px;max-width:90%}.voice-progress-error{background-color:rgb(239,68,68)}body.playing-voice .voice-progress-bar{animation:progress-animation 3s ease-out forwards}@keyframes progress-animation{0%{width:0}10%{width:10%}20%{width:25%}50%{width:40%}70%{width:60%}90%{width:85%}to{width:100%}}.voice-chat-overlay{position:fixed;inset:0;background:linear-gradient(135deg,rgba(0,0,0,.8),rgba(0,0,0,.9));backdrop-filter:blur(8px);z-index:1000;display:flex;flex-direction:column;align-items:center;justify-content:center;color:white;font-family:system-ui,-apple-system,sans-serif}.voice-chat-content{text-align:center;padding:2rem;max-width:500px;width:90%}.voice-chat-title{font-size:2rem;font-weight:600;margin-bottom:1rem;background:linear-gradient(45deg,#3b82f6,#8b5cf6);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.voice-chat-status{font-size:1.125rem;margin-bottom:2rem;opacity:.9}.voice-chat-controls{display:flex;gap:1rem;justify-content:center;margin-bottom:2rem}.voice-chat-button{padding:.75rem 1.5rem;border:2px solid rgba(255,255,255,.3);background:rgba(255,255,255,.1);color:white;border-radius:.5rem;cursor:pointer;transition:all .2s ease;font-weight:500}.voice-chat-button:hover{background:rgba(255,255,255,.2);border-color:rgba(255,255,255,.5)}.voice-chat-button.primary{background:linear-gradient(45deg,#3b82f6,#8b5cf6);border-color:transparent}.voice-chat-button.primary:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(59,130,246,.3)}.voice-input-container{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);border-radius:1rem;margin:1rem 0;backdrop-filter:blur(4px)}.voice-input-icon{width:2.5rem;height:2.5rem;border-radius:50%;display:flex;align-items:center;justify-content:center;background:linear-gradient(45deg,#3b82f6,#8b5cf6);color:white;flex-shrink:0}.voice-input-text{flex:1;font-size:1rem;color:white;opacity:.9}.voice-input-placeholder{opacity:.6;font-style:italic}.voice-listening-pulse{animation:listening-pulse 1.5s ease-in-out infinite}.voice-listening-indicator{display:flex;align-items:center;gap:3px;height:16px}.voice-listening-indicator span{width:3px;height:8px;background-color:currentColor;border-radius:2px;animation:voice-listening-wave 1.4s ease-in-out infinite}.voice-listening-indicator span:first-child{animation-delay:0s}.voice-listening-indicator span:nth-child(2){animation-delay:.2s}.voice-listening-indicator span:nth-child(3){animation-delay:.4s}@keyframes voice-listening-wave{0%,40%,to{transform:scaleY(.4);opacity:.5}20%{transform:scaleY(1);opacity:1}}.voice-mic-visual{position:relative;display:flex;align-items:center;justify-content:center}.voice-mic-circles{position:absolute;width:100%;height:100%;pointer-events:none}.voice-mic-circle{position:absolute;border:2px solid rgba(255,255,255,.3);border-radius:50%;animation:mic-ripple 2s ease-out infinite}.voice-mic-circle:first-child{animation-delay:0s}.voice-mic-circle:nth-child(2){animation-delay:.5s}.voice-mic-circle:nth-child(3){animation-delay:1s}@keyframes mic-ripple{0%{transform:scale(1);opacity:1}to{transform:scale(2);opacity:0}}.voice-mic-button{position:relative;overflow:visible}.voice-mic-button.listening{animation:mic-pulse 2s ease-in-out infinite}.voice-mic-button.processing{animation:mic-processing 1.5s ease-in-out infinite}.voice-mic-button.speaking{animation:mic-speaking 1s ease-in-out infinite}@keyframes mic-pulse{0%,to{transform:scale(1);box-shadow:0 0 0 0 rgba(var(--primary),.4)}50%{transform:scale(1.05);box-shadow:0 0 0 20px rgba(var(--primary),0)}}@keyframes mic-processing{0%,to{transform:scale(1) rotate(0deg);box-shadow:0 0 15px rgba(245,158,11,.3)}25%{transform:scale(1.02) rotate(2deg);box-shadow:0 0 20px rgba(245,158,11,.5)}75%{transform:scale(1.02) rotate(-2deg);box-shadow:0 0 20px rgba(245,158,11,.5)}}@keyframes mic-speaking{0%,to{transform:scale(1);box-shadow:0 0 15px rgba(34,197,94,.4)}50%{transform:scale(1.03);box-shadow:0 0 25px rgba(34,197,94,.6)}}.voice-progress-enhanced{position:relative;overflow:hidden}.voice-progress-enhanced:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);animation:progress-shimmer 2s infinite}@keyframes progress-shimmer{0%{left:-100%}to{left:100%}}.voice-overlay-enter{animation:overlay-slide-up .3s ease-out forwards}@keyframes overlay-slide-up{0%{opacity:0;transform:translateY(50px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.voice-transcript-enter{animation:transcript-fade-in .4s ease-out forwards}@keyframes transcript-fade-in{0%{opacity:0;transform:translateY(10px);max-height:0}to{opacity:1;transform:translateY(0);max-height:200px}}.voice-status-processing{animation:status-pulse 1.5s ease-in-out infinite}.voice-status-success{animation:status-success .5s ease-out forwards}@keyframes status-pulse{0%,to{opacity:.7}50%{opacity:1}}@keyframes status-success{0%{transform:scale(.8);opacity:0}50%{transform:scale(1.1);opacity:1}to{transform:scale(1);opacity:1}}.voice-button-enhanced{position:relative;overflow:hidden;transition:all .3s ease}.voice-button-enhanced:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;background:rgba(255,255,255,.1);border-radius:50%;transform:translate(-50%,-50%);transition:width .6s ease,height .6s ease}.voice-button-enhanced:hover:before{width:300px;height:300px}.voice-element:focus-visible{outline:3px solid rgba(var(--primary),.5);outline-offset:2px;border-radius:4px}.voice-animation-gpu{will-change:transform,opacity;transform:translateZ(0);backface-visibility:hidden}@media (max-width:768px){.voice-chat-title{font-size:1.5rem}.voice-chat-content{padding:1.5rem}.voice-chat-controls{flex-direction:column;align-items:center}.voice-chat-button{width:100%;max-width:200px}}@media (max-width:640px){.voice-listening-indicator{height:14px}.voice-listening-indicator span{width:2px;height:6px}.voice-mic-button{transform:scale(.9)}@keyframes mic-pulse{0%,to{transform:scale(.9);box-shadow:0 0 0 0 rgba(var(--primary),.4)}50%{transform:scale(.95);box-shadow:0 0 0 15px rgba(var(--primary),0)}}}@media (prefers-color-scheme:dark){.voice-input-container{background:rgba(0,0,0,.3);border-color:rgba(255,255,255,.1)}}@media (prefers-contrast:high){.voice-listening-indicator span{background-color:currentColor;opacity:1}.voice-progress-bar{border:1px solid}}@media (prefers-reduced-motion:reduce){.voice-button-enhanced:before,.voice-listening-indicator span,.voice-mic-button,.voice-progress-enhanced:before{animation:none}.voice-mic-button.listening{border:2px solid var(--primary)}}[data-transcript-display]{transition:opacity .05s ease-out,transform .1s ease-out;will-change:opacity,transform}[data-transcript-display]:not(:empty){animation:transcript-pulse .15s ease-out}@keyframes transcript-pulse{0%{opacity:.8;transform:scale(.99)}50%{opacity:1;transform:scale(1.01)}to{opacity:1;transform:scale(1)}}.voice-mode-active{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.voice-mode-active [data-transcript-display]{contain:layout style paint;transform:translateZ(0)}.voice-mic-button{transition:all .1s cubic-bezier(.4,0,.2,1);will-change:background-color,transform,box-shadow}.voice-mic-button:active{transform:scale(.98)}.voice-listening-indicator{animation:listening-pulse 1s ease-in-out infinite;transform:translateZ(0)}@keyframes listening-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.05)}}.voice-chat-overlay{contain:layout style paint;transform:translateZ(0);backface-visibility:hidden}.voice-state-transition{transition:all .15s cubic-bezier(.25,.46,.45,.94)}.voice-transcript-container{contain:layout style;min-height:1.5rem;overflow-wrap:break-word;word-break:break-word}.voice-real-time-update{pointer-events:none;user-select:none;transform:translateZ(0);backface-visibility:hidden}.voice-submit-feedback{animation:submit-success .3s ease-out}@keyframes submit-success{0%{transform:scale(1)}50%{transform:scale(1.05);background-color:rgba(34,197,94,.1)}to{transform:scale(1)}}.voice-error-feedback{animation:error-shake .4s ease-out}@keyframes error-shake{0%,to{transform:translateX(0)}25%{transform:translateX(-2px)}75%{transform:translateX(2px)}}@media (hover:none) and (pointer:coarse){.voice-mic-button{min-width:48px;min-height:48px}[data-transcript-display]{transition-duration:.1s}}@media (prefers-reduced-motion:reduce){.voice-listening-indicator,.voice-mic-button,[data-transcript-display]{animation:none;transition:none}}