/* Kim Voice: one compact read-only transcript bubble above the floating microphone. */
.kim-voice-root{
 position:fixed;left:0;top:0;right:auto;bottom:auto;width:58px;height:58px;
 z-index:450;pointer-events:none;
}
.kim-voice-root[hidden],.kim-voice-sheet[hidden],.kim-voice-move-hint[hidden]{display:none!important}
.kim-voice-fab{
 pointer-events:auto;display:grid;place-items:center;width:58px;height:58px;
 cursor:pointer;touch-action:none;user-select:none;-webkit-user-select:none;
 color:#fff;background:linear-gradient(145deg,#2563eb,#1744ae);
 border:1px solid rgba(255,255,255,.3);border-radius:50%;
 box-shadow:0 8px 25px rgba(4,16,40,.5);
}
.kim-voice-fab svg{
 width:27px;height:27px;fill:none;stroke:currentColor;
 stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;
}
.kim-voice-fab[data-state=listening]{
 background:linear-gradient(145deg,#ef4444,#b91c1c);
 animation:kim-voice-pulse 1.4s ease-in-out infinite;
}
.kim-voice-fab[data-state=processing]{background:#475569}
@keyframes kim-voice-pulse{50%{box-shadow:0 0 0 10px rgba(239,68,68,.16)}}
.kim-voice-sheet{
 position:absolute;right:0;bottom:70px;box-sizing:border-box;
 width:min(250px,calc(100vw - 28px));max-height:min(36dvh,230px);
 overflow:auto;pointer-events:none;
 background:rgba(15,23,42,.95);border:1px solid rgba(148,163,184,.34);
 border-radius:15px;box-shadow:0 14px 40px rgba(0,0,0,.4);
 padding:10px 13px;color:#f8fafc;font-size:13px;line-height:1.45;
 text-align:center;backdrop-filter:blur(14px);
}
.kim-voice-message{margin:0;overflow-wrap:anywhere;white-space:normal}
.kim-voice-root.is-left-side .kim-voice-sheet{left:0;right:auto}
.kim-voice-root.sheet-below .kim-voice-sheet{top:70px;bottom:auto}
.kim-voice-root.is-moving .kim-voice-fab{
 border:2px dashed #99f6e4;box-shadow:0 0 0 7px rgba(20,184,166,.18);
 background:#0f766e;
}
.kim-voice-move-hint{
 position:absolute;right:0;bottom:70px;min-width:185px;
 max-width:min(245px,calc(100vw - 28px));padding:10px 12px;
 text-align:center;font-size:12px;color:white;background:rgba(15,23,42,.95);
 border:1px solid rgba(148,163,184,.35);border-radius:13px;
 box-shadow:0 10px 30px rgba(0,0,0,.32);pointer-events:none;
}
.kim-voice-root.is-left-side .kim-voice-move-hint{right:auto;left:0}
.kim-voice-root.sheet-below .kim-voice-move-hint{bottom:auto;top:70px}
@media(prefers-reduced-motion:reduce){.kim-voice-fab{animation:none!important}}
