.voice-control{--voice-ink:#172033;--voice-gold:#b79247;--voice-danger:#c9362c;direction:rtl;position:relative;display:inline-flex;align-items:center;flex:0 0 auto;z-index:30020}
.voice-control-mic{position:relative;inset:auto;z-index:1;width:38px;height:38px;min-width:38px;border:1px solid rgba(132,151,176,.28);border-radius:11px;display:grid;place-items:center;background:rgba(255,255,255,.08);color:inherit;box-shadow:none;font-size:1.05rem;transition:transform .16s ease,box-shadow .16s ease,background .16s ease,border-color .16s ease,color .16s ease;overflow:visible}
.topbar .voice-control-mic{color:var(--topbar-text,#f7fbff);background:color-mix(in srgb,var(--topbar-bg,#172033) 82%,#fff 18%);border-color:color-mix(in srgb,var(--topbar-text,#fff) 24%,transparent)}
.platform-topbar .voice-control-mic{color:#eaf2ff;background:#10213a;border-color:#284463}
.voice-control-mic:hover{transform:translateY(-1px);border-color:rgba(183,146,71,.72);box-shadow:0 7px 18px rgba(15,23,42,.14)}
.voice-control-mic:focus-visible,.voice-confirm-card button:focus-visible{outline:3px solid rgba(183,146,71,.4);outline-offset:3px}
.voice-control-mic.is-listening{background:linear-gradient(145deg,#a9221a,#e24a3f)!important;color:#fff!important;border-color:#f17369!important;box-shadow:0 0 0 5px rgba(220,38,38,.12),0 8px 20px rgba(114,25,20,.22)}
.voice-control-mic.is-processing{background:linear-gradient(145deg,#75561d,#b79247)!important;color:#fff!important;border-color:#d2b066!important}
.voice-control-mic>i{position:relative;z-index:2}.voice-control-mic.is-listening>i{animation:voiceMicBeat 1s ease-in-out infinite}
.voice-control-rings{position:absolute;inset:-5px;border:2px solid transparent;border-radius:13px;pointer-events:none}.voice-control-mic.is-listening .voice-control-rings{border-color:rgba(220,38,38,.24);animation:voiceRing 1.15s ease-out infinite}
.voice-control-label{display:none}
.voice-control-status{position:absolute;inset-inline-end:0;top:calc(100% + 10px);left:auto;bottom:auto;z-index:30030;width:max-content;max-width:min(440px,calc(100vw - 32px));min-height:44px;padding:9px 13px;display:flex;align-items:center;gap:9px;background:#fff;color:#26364d;border:1px solid #dfe6ee;border-radius:13px;box-shadow:0 14px 36px rgba(15,23,42,.19);font-size:12px;font-weight:850;line-height:1.45;white-space:normal}.voice-control-status[hidden]{display:none!important}.voice-control-status i{font-size:18px;color:#b79247}.voice-control-status.is-listening{border-color:#fecaca;color:#991b1b}.voice-control-status.is-listening i{color:#dc2626}.voice-control-status.is-success{border-color:#bbf7d0;color:#166534}.voice-control-status.is-success i{color:#16a34a}.voice-control-status.is-error{border-color:#fed7aa;color:#9a3412}.voice-control-status.is-error i{color:#ea580c}.voice-control-status.is-warning{border-color:#fde68a;color:#854d0e}.voice-control-status.is-warning i{color:#d97706}
.platform-voice-slot{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}
.voice-confirm-backdrop{position:fixed;inset:0;z-index:30050;display:grid;place-items:center;padding:18px;background:rgba(15,23,42,.34);backdrop-filter:blur(2px)}.voice-confirm-backdrop[hidden]{display:none!important}.voice-confirm-card{width:min(470px,100%);background:#fff;border:1px solid #e1e7ee;border-radius:20px;box-shadow:0 28px 90px rgba(15,23,42,.34);padding:20px;display:grid;grid-template-columns:52px minmax(0,1fr);gap:14px;color:#172033}.voice-confirm-icon{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:#fff8e8;color:#9a6b12;font-size:24px}.voice-confirm-copy{min-width:0}.voice-confirm-copy strong{display:block;font-size:16px;font-weight:950}.voice-confirm-copy p{margin:5px 0 2px;color:#445267;font-size:13px;font-weight:750;line-height:1.65;white-space:pre-line}.voice-confirm-copy small{color:#8a96a7;font-size:10px;font-weight:700}.voice-confirm-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:8px;padding-top:4px}.voice-confirm-actions .btn{min-width:105px;font-weight:850}
@keyframes voiceRing{0%{transform:scale(.95);opacity:1}100%{transform:scale(1.23);opacity:0}}@keyframes voiceMicBeat{50%{transform:scale(.88)}}
@media(max-width:700px){.voice-control-mic{width:36px;height:36px;min-width:36px;border-radius:10px}.voice-control-status{position:fixed;top:64px;left:12px;right:12px;inset-inline-end:auto;width:auto;max-width:none;justify-content:center}.voice-confirm-card{grid-template-columns:44px minmax(0,1fr);padding:16px;border-radius:17px}.voice-confirm-icon{width:44px;height:44px;border-radius:13px}.voice-confirm-actions .btn{flex:1;min-width:0}}
@media(prefers-reduced-motion:reduce){.voice-control-mic,.voice-control-rings,.voice-control-mic>i{animation:none!important;transition:none!important}}
/* 18.4.49 — microphone moved into top bar; device TTS replies pause recognition while speaking. */
/* 18.4.47 — active measurement field for sequential voice entry */
.measurement-field-cell.voice-measurement-active{position:relative;border-color:#b79247!important;box-shadow:0 0 0 3px rgba(183,146,71,.16),0 10px 24px rgba(15,23,42,.08);background:linear-gradient(180deg,rgba(255,252,244,.96),rgba(255,255,255,.99));transition:box-shadow .16s ease,border-color .16s ease,background .16s ease}
.measurement-field-cell.voice-measurement-active::after{content:'🎙';position:absolute;top:7px;left:8px;font-size:14px;line-height:1;opacity:.8;pointer-events:none}
.measurement-field-cell.voice-measurement-active .measurement-value:focus,.measurement-field-cell.voice-measurement-active .index-measurement-value:focus{border-color:#b79247;box-shadow:0 0 0 .18rem rgba(183,146,71,.14)}

/* 18.4.49 — universal voice focus follows the field currently owned by the microphone. */
.voice-field-active{outline:3px solid rgba(13,110,253,.28)!important;outline-offset:2px;box-shadow:0 0 0 .22rem rgba(13,110,253,.12)!important;transition:outline-color .15s ease,box-shadow .15s ease}
