/* v239 — dyktowanie napisane od zera, bez niebieskich przycisków
   v239b 2026-05-18: dodano .app-btn do selektorow (zgodnie ze zmiana w JS).
   Buttony dyktanda maja teraz klase "app-btn wsp-dict-*-v239" - są wykluczone
   z globalnej reguly ".app-shell-unified-v211 button:not(.app-btn)" (niebieski
   gradient 42px) a lokalne reguly maja wyzsza specyfike przez button.app-btn
   (0,2,1 vs 0,1,1) plus !important - belt-and-suspenders. */
.wsp-dictation-field-v239{position:relative!important;display:block!important;width:100%!important;max-width:100%!important;}
.wsp-dictation-field-v239 textarea,
.wsp-dictation-field-v239 input[type="text"],
.wsp-dictation-field-v239 input[type="search"],
.wsp-dictation-field-v239 input[type="email"],
.wsp-dictation-field-v239 input[type="tel"],
.wsp-dictation-field-v239 input[type="url"],
.wsp-dictation-field-v239 [contenteditable="true"]{width:100%!important;max-width:100%!important;box-sizing:border-box!important;padding-right:96px!important;}
.wsp-dictation-ui-v239{position:absolute!important;right:12px!important;bottom:10px!important;z-index:20!important;display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:14px!important;height:28px!important;min-width:28px!important;max-width:96px!important;background:transparent!important;border:0!important;box-shadow:none!important;pointer-events:none!important;}
.wsp-dictation-ui-v239 button,
.wsp-dictation-ui-v239 button.app-btn{pointer-events:auto!important;width:24px!important;height:24px!important;min-width:24px!important;min-height:24px!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;background-color:transparent!important;box-shadow:none!important;outline:none!important;color:#111827!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;cursor:pointer!important;line-height:1!important;font-size:22px!important;font-weight:400!important;gap:0!important;appearance:none!important;-webkit-appearance:none!important;filter:none!important;transform:none!important;}
.wsp-dictation-ui-v239 button:hover,
.wsp-dictation-ui-v239 button.app-btn:hover{background:transparent!important;color:#000!important;transform:none!important;box-shadow:none!important;filter:none!important;}
.wsp-dictation-ui-v239 button:focus-visible,
.wsp-dictation-ui-v239 button.app-btn:focus-visible{outline:2px solid rgba(31, 41, 55,.25)!important;outline-offset:3px!important;border-radius:6px!important;}
.wsp-dictation-ui-v239 svg{width:22px!important;height:22px!important;display:block!important;stroke:currentColor!important;fill:none!important;stroke-width:2.25!important;stroke-linecap:round!important;stroke-linejoin:round!important;}
/* v239b: selektory podbite o "button" zeby przebily 0,2,1 specyfika z sizing-rule
   (".wsp-dictation-ui-v239 button.app-btn"). Bez tego state-toggle is-recording
   nie dziala - wszystkie 3 ikony sa widoczne jednoczesnie. */
.wsp-dictation-ui-v239 button.wsp-dict-mic-v239{display:inline-flex!important;}
.wsp-dictation-ui-v239 span.wsp-dict-live-v239,
.wsp-dictation-ui-v239 button.wsp-dict-cancel-v239,
.wsp-dictation-ui-v239 button.wsp-dict-accept-v239{display:none!important;}
.wsp-dictation-field-v239.is-recording button.wsp-dict-mic-v239{display:none!important;}
.wsp-dictation-field-v239.is-recording span.wsp-dict-live-v239,
.wsp-dictation-field-v239.is-recording button.wsp-dict-cancel-v239,
.wsp-dictation-field-v239.is-recording button.wsp-dict-accept-v239{display:inline-flex!important;}
.wsp-dict-live-v239{width:28px!important;height:24px!important;overflow:hidden!important;color:#111827!important;}
.wsp-dict-live-v239 span{display:inline-block!important;width:3px!important;margin:0 1px!important;background:#111827!important;border-radius:999px!important;vertical-align:middle!important;animation:wspDictWave239 .9s infinite ease-in-out!important;}
.wsp-dict-live-v239 span:nth-child(1){height:18px!important;animation-delay:-.32s!important;}
.wsp-dict-live-v239 span:nth-child(2){height:24px!important;animation-delay:-.16s!important;}
.wsp-dict-live-v239 span:nth-child(3){height:14px!important;animation-delay:0s!important;}
.wsp-dict-live-v239 span:nth-child(4){height:8px!important;animation-delay:.12s!important;}
@keyframes wspDictWave239{0%,100%{transform:scaleY(.45);opacity:.65}50%{transform:scaleY(1);opacity:1}}
@media(max-width:700px){.wsp-dictation-field-v239 textarea,.wsp-dictation-field-v239 [contenteditable="true"]{padding-right:88px!important}.wsp-dictation-ui-v239{right:10px!important;bottom:9px!important;gap:12px!important}}

/* v240 - dyktowanie także w krótkich polach tekstowych */
.wsp-dictation-field-v239 input[type="text"],
.wsp-dictation-field-v239 input[type="search"],
.wsp-dictation-field-v239 input[type="email"],
.wsp-dictation-field-v239 input[type="tel"],
.wsp-dictation-field-v239 input[type="url"]{padding-right:42px!important;}
.wsp-dictation-field-v239:has(input) .wsp-dictation-ui-v239{right:10px!important;bottom:50%!important;transform:translateY(50%)!important;gap:8px!important;max-width:88px!important;}
.wsp-dictation-field-v239:has(input):not(.is-recording) .wsp-dictation-ui-v239{max-width:28px!important;}
