/* Coach OS v21 — additive voice-input UI only. */
.voice-input-btn{
  width:32px;
  height:32px;
  min-width:32px;
  display:inline-grid;
  place-items:center;
  flex:0 0 32px;
  margin:0;
  padding:0;
  border:1px solid #dfe5eb;
  border-radius:9px;
  background:#fff;
  color:#42546a;
  cursor:pointer;
  box-sizing:border-box;
  transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease;
}
.voice-input-btn svg{
  width:17px!important;
  height:17px!important;
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:1.8!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
  pointer-events:none;
}
.voice-input-btn:hover{background:#f7f9fb;border-color:#b9c4cf;color:#172f49}
.voice-input-btn:focus-visible{outline:2px solid rgba(47,111,228,.28);outline-offset:2px}
.voice-input-btn.voice-listening{
  color:#fff;
  background:#f06413;
  border-color:#f06413;
  box-shadow:0 0 0 4px rgba(240,100,19,.14);
  animation:voicePulse 1.15s ease-in-out infinite;
}
.voice-input-btn.voice-error{color:#c93442;border-color:#efb8be;background:#fff5f6}
.voice-input-btn.voice-unsupported{opacity:.6}
@keyframes voicePulse{0%,100%{box-shadow:0 0 0 3px rgba(240,100,19,.11)}50%{box-shadow:0 0 0 7px rgba(240,100,19,.05)}}

.voice-inline-host{min-width:0}
.voice-inline-host .voice-input-btn{margin-left:5px}
.voice-inline-host input{min-width:0}

.voice-field-shell{
  position:relative;
  display:flex;
  align-items:center;
  min-width:0;
  width:100%;
}
.voice-field-shell>input,
.voice-field-shell>textarea{width:100%;min-width:0;padding-right:44px!important;box-sizing:border-box}
.voice-field-shell>.voice-input-btn{
  position:absolute;
  right:6px;
  top:50%;
  transform:translateY(-50%);
  z-index:2;
  background:rgba(255,255,255,.96);
}
.voice-chat-shell{align-items:stretch}
.voice-chat-shell>.voice-input-btn{top:auto;bottom:7px;transform:none}

/* Active Session: mic sits with existing composer actions, consuming no extra row height. */
.active-session-v2 .ref-composer .voice-chat-action{
  height:36px;
  width:36px;
  min-width:36px;
  border-color:#dce3ea;
  background:#fff;
}
.active-session-v2 .ref-composer .voice-chat-action.voice-listening{background:#f06413;border-color:#f06413;color:#fff}

/* Keep Coach/Admin header and Help search bars compact. */
.coach-global-search.voice-inline-host,
.cw-help-search.voice-inline-host,
.aw-global-search.voice-inline-host,
.aw-help-search.voice-inline-host{gap:6px}
.coach-global-search.voice-inline-host .voice-input-btn,
.cw-help-search.voice-inline-host .voice-input-btn,
.aw-global-search.voice-inline-host .voice-input-btn,
.aw-help-search.voice-inline-host .voice-input-btn{width:30px;height:30px;min-width:30px;border:0;background:transparent}
.coach-global-search.voice-inline-host .voice-input-btn.voice-listening,
.cw-help-search.voice-inline-host .voice-input-btn.voice-listening,
.aw-global-search.voice-inline-host .voice-input-btn.voice-listening,
.aw-help-search.voice-inline-host .voice-input-btn.voice-listening{background:#f06413;color:#fff}

/* Client search controls preserve their existing one-line density. */
.sv2-search.voice-inline-host,
.cv4-search.voice-inline-host,
.control.voice-inline-host,
.mp-search.voice-inline-host{gap:5px}
.sv2-search.voice-inline-host .voice-input-btn,
.cv4-search.voice-inline-host .voice-input-btn,
.control.voice-inline-host .voice-input-btn,
.mp-search.voice-inline-host .voice-input-btn{width:30px;height:30px;min-width:30px;border:0;background:transparent}
.sv2-search.voice-inline-host .voice-input-btn.voice-listening,
.cv4-search.voice-inline-host .voice-input-btn.voice-listening,
.control.voice-inline-host .voice-input-btn.voice-listening,
.mp-search.voice-inline-host .voice-input-btn.voice-listening{background:#f06413;color:#fff}

@media(max-width:700px){
  .voice-input-btn{width:34px;height:34px;min-width:34px}
}

/* Search containers that are positioned rather than flex-based keep the mic inside the field. */
.sv2-search.voice-inline-host,
.mp-search.voice-inline-host{position:relative!important;display:block!important}
.sv2-search.voice-inline-host input,
.mp-search.voice-inline-host input{padding-right:43px!important}
.sv2-search.voice-inline-host>.voice-input-btn,
.mp-search.voice-inline-host>.voice-input-btn{
  position:absolute;
  right:6px;
  top:50%;
  transform:translateY(-50%);
  margin:0;
  z-index:3;
  border:0;
  background:transparent;
}
.sv2-search.voice-inline-host>.voice-input-btn.voice-listening,
.mp-search.voice-inline-host>.voice-input-btn.voice-listening{background:#f06413;color:#fff}
