.voice-dialog{border:1px solid #d8e3f2;border-radius:28px;padding:0;width:min(620px,calc(100vw - 28px));max-height:calc(100dvh - 28px);background:#f9fbff;color:#19263b;box-shadow:0 28px 100px #142e5438;overflow:auto}
.voice-dialog::backdrop{background:#0c193bcc;backdrop-filter:blur(8px)}
.voice-shell{padding:24px;display:flex;flex-direction:column;align-items:center;gap:12px;min-width:0}
.voice-top{display:flex;align-items:center;justify-content:space-between;width:100%;gap:12px}.voice-top h2{font-size:20px;letter-spacing:-.04em;margin:0}
.voice-dialog button{min-height:46px;border:1px solid #d8e3f2;border-radius:16px;padding:10px 17px;font:inherit;font-weight:650;cursor:pointer;white-space:normal}
.voice-dialog button:focus-visible{outline:3px solid #6698f0;outline-offset:3px}.voice-dialog button:disabled{opacity:.5;cursor:wait}.voice-dialog [hidden]{display:none!important}
.voice-dialog .voice-close{padding:8px 14px;min-height:40px;background:#fff;color:#526177}.voice-model{margin:0;text-align:center;color:#596b83;font-size:12px;overflow-wrap:anywhere}
.voice-orb{width:150px;height:150px;border-radius:50%;margin:20px auto 8px;display:flex;justify-content:center;align-items:center;gap:8px;background:radial-gradient(circle at 30% 25%,#c1ddff,#7895ee 58%,#576dcc);box-shadow:0 12px 40px #7d9bee50}
.voice-wave{display:block;width:8px;height:24px;border-radius:8px;background:#fffffff0;transform-origin:center}.voice-wave:nth-child(2),.voice-wave:nth-child(4){height:42px}.voice-wave:nth-child(3){height:62px}
.voice-speaking .voice-wave{animation:voice-wave 750ms ease-in-out infinite alternate}.voice-speaking .voice-wave:nth-child(2){animation-delay:-400ms}.voice-speaking .voice-wave:nth-child(3){animation-delay:-150ms}.voice-speaking .voice-wave:nth-child(4){animation-delay:-550ms}.voice-speaking .voice-wave:nth-child(5){animation-delay:-300ms}
.voice-connecting,.voice-thinking{animation:voice-pulse 1.8s ease-in-out infinite}.voice-listening{box-shadow:0 0 0 9px #b6cdf330,0 12px 40px #7d9bee50}
.voice-status{text-align:center;font-size:17px;font-weight:700;line-height:1.55;margin:0;min-height:28px;word-break:keep-all}.voice-timer{font-variant-numeric:tabular-nums;margin:0;font-size:13px;color:#667890}
.voice-notice,.voice-scope{font-size:12px;line-height:1.7;text-align:center;color:#66748a;margin:0;max-width:490px;word-break:keep-all}.voice-notice{margin-top:7px}.voice-scope{color:#7a8798}
.voice-error{background:#fff1ed;color:#a8432c;border:1px solid #f3c6b9;padding:12px 14px;border-radius:14px;width:100%;box-sizing:border-box;font-size:13px;line-height:1.6;margin:0}
.voice-controls{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;width:100%;margin-top:4px}.voice-dialog .voice-primary{background:#315cb4;color:white;border-color:#315cb4}.voice-dialog .voice-end{background:#b8374a;border-color:#b8374a;color:white}.voice-dialog .voice-secondary{background:white;color:#29476e}.voice-dialog .voice-secondary[aria-pressed=true]{background:#fff0e4;border-color:#dfb086;color:#98542e}
.voice-transcript{width:100%;max-height:210px;overflow:auto;overscroll-behavior:contain;border-top:1px solid #e0e7f1}.voice-transcript:empty{display:none}.voice-line{display:flex;gap:12px;padding:12px 4px;margin:0;font-size:13px;line-height:1.65;border-bottom:1px solid #e8edf5}.voice-line strong{flex:0 0 22px;font-size:12px;color:#5877a4}.voice-line span{white-space:pre-wrap;overflow-wrap:anywhere;min-width:0}.voice-line-user strong{color:#397e6a}.voice-audio{display:none}
@keyframes voice-wave{from{transform:scaleY(.45)}to{transform:scaleY(1.15)}}@keyframes voice-pulse{50%{opacity:.65;transform:scale(.97)}}
@media(max-width:560px){.voice-dialog{width:100%;max-width:100%;height:100dvh;max-height:100dvh;border-radius:0;border:0;margin:0}.voice-shell{min-height:100%;box-sizing:border-box;padding:24px 20px max(26px,env(safe-area-inset-bottom));gap:13px}.voice-top{padding-top:env(safe-area-inset-top)}.voice-orb{margin-top:30px}.voice-controls{margin-top:auto;padding-top:14px}.voice-transcript{max-height:24dvh}.voice-dialog button{min-height:48px}}
@media(prefers-reduced-motion:reduce){.voice-speaking .voice-wave,.voice-connecting,.voice-thinking{animation:none}}
