/* Text to Speech (OW10): standard tool skin. Scoped to .tts-*, used only by this tool. */
.tts-wrap{width:100%;padding:10px 0 34px}
.tts-wrap h1#title{font-size:32px;font-weight:800;color:#1a202c;text-align:center;margin:6px 0 0}
.tts-intro{text-align:center;color:#5b6675;font-size:15px;line-height:1.6;margin:12px auto 12px;max-width:820px}
.tts-trust{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:8px 18px;margin:0 0 18px;padding:0}
.tts-trust li{display:inline-flex;align-items:center;gap:6px;color:#334155;font-size:14px;font-weight:600}
.tts-trust svg{color:#16a34a;flex:none}
.tts-panel{background:linear-gradient(135deg,#fff7f3,#ffeee6);border:1px solid #ffe2d5;border-radius:16px;box-shadow:0 6px 24px rgba(250,76,16,.06);padding:18px}
.tts-grid{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:18px;align-items:stretch}   /* step 1: text 60%, settings 40% */
.tts-resgrid{grid-template-columns:minmax(0,1fr) 400px}
.tts-card{background:#fff;border:1px solid #f1e4dd;border-radius:14px;padding:20px;min-width:0;box-shadow:0 1px 2px rgba(120,50,10,.04),0 6px 18px rgba(120,50,10,.05)}
.tts-h{font-size:17px;font-weight:800;color:#1a202c;margin:0 0 12px}
.tts-hide{display:none!important}
.tts-wrap [hidden]{display:none!important}
/* tabs */
.tts-modes{display:flex;gap:4px;padding:4px;margin:0 0 16px;background:#fff7f3;border:1px solid #f1d5c8;border-radius:12px}
.tts-mode{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 14px;border:0;border-radius:9px;background:none;color:#7c2d12;font-weight:700;font-size:15px;cursor:pointer;touch-action:manipulation}
.tts-mode[aria-selected=true]{background:#c93d0c;color:#fff}
.tts-mode:not([aria-selected=true]):hover{background:#fff}
/* text */
.tts-labelrow{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:0 0 6px}
.tts-label{font-size:15px;font-weight:800;color:#1a202c;margin:0}
.tts-count{font-size:13px;color:#64748b;font-variant-numeric:tabular-nums}
.tts-count.is-over{color:#b91c1c;font-weight:700}
.tts-text{display:block;width:100%;min-height:220px;max-height:60vh;resize:vertical;border:1px solid #d5dde6;border-radius:12px;padding:14px;font-size:16px;line-height:1.6;color:#1a202c;background:#fff;outline:none;box-sizing:border-box;unicode-bidi:plaintext}
.tts-text:focus{border-color:#fa4c10;box-shadow:0 0 0 3px rgba(250,76,16,.14)}
.tts-over{margin:8px 0 0;padding:10px 12px;border-radius:10px;background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;font-size:14px;line-height:1.45}
.tts-tools{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 0}
.tts-tools input[type=file]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.tts-tools label.tts-mini{position:relative;margin:0}
.tts-tools label.tts-mini:focus-within{outline:3px solid rgba(250,76,16,.35);outline-offset:2px}
.tts-help{color:#64748b;font-size:13.5px;margin:8px 0 0;line-height:1.5}
.tts-help code{font:inherit;font-weight:600;color:#475569;background:#f1f5f9;border-radius:4px;padding:0 4px;white-space:nowrap}
/* buttons */
.tts-go{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:50px;padding:0 24px;border:0;border-radius:10px;background:#c93d0c;color:#fff;font-size:16px;font-weight:700;cursor:pointer;transition:background .15s;touch-action:manipulation;text-decoration:none}
.tts-go:hover{background:#b13509;color:#fff}
.tts-go:disabled{opacity:.55;cursor:default;background:#c93d0c}
.tts-mini{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:0 14px;border:1px solid #f1d5c8;border-radius:10px;background:#fff;color:#9a3412;font-weight:600;font-size:14px;cursor:pointer;text-decoration:none;touch-action:manipulation;white-space:nowrap}
.tts-mini:hover{background:#fff7f3;color:#9a3412}
.tts-mini:disabled{opacity:.5;cursor:default;background:#fff}
.tts-mini.is-busy{opacity:.7}
.tts-icon{width:48px;min-height:48px;padding:0;flex:none}
.tts-go:focus-visible,.tts-mini:focus-visible,.tts-mode:focus-visible,.tts-play:focus-visible,.tts-s:focus-visible{outline:3px solid rgba(250,76,16,.35);outline-offset:2px}
/* step 1: settings card, three tabs; panels share one grid cell so the card keeps the tallest panel's height */
.tts-optcard .tts-h{margin:0}
.tts-otabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin:14px 0 0;border-bottom:1px solid #f1e4dd}
.tts-otab{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:58px;padding:6px 4px 8px;border:0;border-bottom:3px solid transparent;margin-bottom:-1px;background:none;color:#64748b;font-family:inherit;font-size:13px;font-weight:600;line-height:1.25;text-align:center;cursor:pointer;border-radius:8px 8px 0 0;transition:color .15s,background-color .15s}
.tts-otab svg{flex:none}
.tts-otab span{max-width:100%;hyphens:auto;overflow-wrap:anywhere}   /* long words (ru, fr) in a narrow phone tab */
.tts-otab:hover{color:#1a202c;background:#fff7f3}
.tts-otab[aria-selected=true]{color:#c93d0c;border-bottom-color:#c93d0c}
.tts-otab:focus-visible{outline:3px solid rgba(250,76,16,.35);outline-offset:-3px}
.tts-odot{position:absolute;top:6px;inset-inline-end:calc(50% - 20px);width:8px;height:8px;border-radius:50%;background:#fa4c10;box-shadow:0 0 0 2px #fff;display:none}
.tts-otab.has-change .tts-odot{display:block}
.tts-opanes{display:grid;padding:16px 0 0}
.tts-opane{grid-area:1/1;min-width:0;display:flex;flex-direction:column;gap:14px}
.tts-opane.is-off{visibility:hidden}
.tts-opane>.tts-help{margin:0}
.tts-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;padding:0;margin:-1px;border:0}
.tts-f{min-width:0}
.tts-f>label{display:block;font-size:13px;font-weight:600;color:#475569;margin:0 0 4px}
.tts-f>label output{color:#9a3412;margin:0 0 0 6px;font-variant-numeric:tabular-nums}
.tts-in{width:100%;min-height:48px;border:1px solid #d5dde6;border-radius:10px;padding:10px 12px;font-size:16px;color:#1a202c;background:#fff;outline:none;box-sizing:border-box}
.tts-in:focus{border-color:#fa4c10;box-shadow:0 0 0 3px rgba(250,76,16,.14)}
.tts-voicerow{display:flex;gap:8px}
.tts-voicerow .tts-in{flex:1;min-width:0}
.tts-range{width:100%;height:44px;accent-color:#c93d0c;margin:0;cursor:pointer}
.tts-dict{margin:0;padding:0;border:0;min-width:0}
.tts-dhelp{margin:0}
.tts-dlist{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.tts-dlist:empty{display:none}
.tts-dlist li{display:flex;align-items:center;gap:10px;padding:4px 4px 4px 12px;border:1px solid #f1e4dd;border-radius:10px;background:#fffaf7;font-size:14.5px}
.tts-dlist li span{flex:1;min-width:0;overflow-wrap:anywhere}
.tts-dlist b{color:#1a202c}
.tts-drow{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:10px;align-items:end;margin:10px 0 0}
/* step 1 action */
.tts-start{display:flex;width:100%;margin:16px 0 0;font-size:16.5px;font-weight:800;border-radius:12px}
/* step 2: result panel */
.tts-reshead{display:flex;align-items:center;gap:10px;margin:0 0 4px}
.tts-reshead .tts-h{margin:0;outline:none;overflow-wrap:anywhere}
.tts-tick{display:inline-flex;align-items:center;justify-content:center;flex:none;width:38px;height:38px;border-radius:50%;background:#16a34a;color:#fff}
.tts-tick svg{display:none}
.tts-tick.is-ok .tts-i-ok{display:block}
.tts-tick.is-run,.tts-tick.is-dev{background:#fff1ea;color:#c93d0c}
.tts-tick.is-run .tts-i-wave,.tts-tick.is-dev .tts-i-wave{display:block}
.tts-tick.is-run .tts-i-wave{animation:tts-pulse 1.1s ease-in-out infinite}
.tts-tick.is-fail{background:#fef2f2;color:#b91c1c}
.tts-tick.is-fail .tts-i-wave{display:block}
@keyframes tts-pulse{50%{opacity:.45}}
.tts-cancel{margin:10px 0 0}
.tts-player{margin:14px 0 0}
.tts-resbtns{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 0;padding:14px 0 0;border-top:1px solid #f1e4dd}
.tts-resbtns .tts-mini{flex:1 1 140px}
.tts-readcard .tts-h{margin:0}
.tts-rhelp{margin:4px 0 0}
.tts-prog{height:8px;margin:12px 0 0;border-radius:4px;background:#fde7dc;overflow:hidden}
.tts-prog i{display:block;height:100%;width:0;background:#c93d0c;border-radius:4px;transition:width .3s ease-out}
.tts-status{margin:12px 0 0;padding:11px 14px;border-radius:10px;border:1px solid #e2e8f0;background:#f8fafc;color:#475569;font-size:14px;line-height:1.45}
.tts-status:empty{display:none}
.tts-status.is-ok{background:#f0fdf4;border-color:#bbf7d0;color:#166534}
.tts-status.is-fail{background:#fef2f2;border-color:#fecaca;color:#b91c1c}
/* result */
.tts-ctl{display:flex;align-items:center;gap:12px}
.tts-play{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;flex:none;border:0;border-radius:50%;background:#c93d0c;color:#fff;cursor:pointer;touch-action:manipulation;transition:background .15s}
.tts-play:hover{background:#b13509}
.tts-play:disabled{opacity:.5;cursor:default}
.tts-play .tts-i-pause,.tts-play.is-on .tts-i-play{display:none}
.tts-play.is-on .tts-i-pause{display:block}
.tts-time{flex:1;font-size:15px;font-weight:700;color:#1a202c;font-variant-numeric:tabular-nums}
.tts-seek{display:block;margin:6px 0 0}
.tts-wait{margin:2px 0 0;color:#9a3412;font-size:13.5px}
.tts-reader{margin:12px 0 0;padding:12px 14px;max-height:460px;overflow:auto;border:1px solid #f1e4dd;border-radius:12px;background:#fffdfb;font-size:15.5px;line-height:1.75;color:#334155;white-space:pre-wrap;overflow-wrap:anywhere;unicode-bidi:plaintext}
.tts-s{border-radius:4px;cursor:pointer;transition:background .15s,color .15s}
.tts-s:hover{background:#fff1ea}
.tts-s.is-done{color:#64748b}
.tts-s.is-cur{background:#ffe1d3;color:#1a202c;box-shadow:0 0 0 2px #ffe1d3}
.tts-s.is-todo{color:#94a3b8}
.tts-pz{display:inline-block;padding:0 7px;margin:0 2px;border-radius:10px;background:#f1f5f9;color:#64748b;font-size:12.5px;font-weight:700;line-height:20px;vertical-align:1px;white-space:nowrap}
::highlight(tts-word){background-color:#fbbf8a;color:#1a202c}
.tts-dl{display:flex;flex-direction:column;gap:8px;margin:14px 0 0}
.tts-dl .tts-go,.tts-dl .tts-mini{width:100%}
.tts-privacy{display:flex;align-items:center;gap:8px;margin:14px 0 0;color:#64748b;font-size:13.5px;line-height:1.45}
.tts-privacy svg{flex:none;color:#16a34a}
.tts-credits{margin:10px 0 0;color:#64748b;font-size:13.5px;line-height:1.55}
.tts-credits summary{display:inline-flex;align-items:center;min-height:44px;cursor:pointer;font-weight:700;color:#7c2d12}
.tts-credits p{margin:4px 0 8px}
.tts-credits ul{margin:0 0 4px;padding:0 0 0 18px}
.tts-credits a{color:#9a3412}
/* RTL */
[dir=rtl] #ttsEdit svg{transform:scaleX(-1)}
[dir=rtl] .tts-time{direction:ltr;unicode-bidi:isolate;text-align:right}   /* "0:12 / 1:30" keeps its order */
[dir=rtl] .tts-f>label output{margin:0 6px 0 0}
[dir=rtl] .tts-dlist li{padding:4px 12px 4px 4px}
[dir=rtl] .tts-credits ul{padding:0 18px 0 0}
@media (prefers-reduced-motion:reduce){.tts-prog i,.tts-s,.tts-otab{transition:none}.tts-tick.is-run .tts-i-wave{animation:none}}
@media(max-width:991px){
  .tts-grid,.tts-resgrid{grid-template-columns:minmax(0,1fr)}
  .tts-respanel{order:-1}
}
@media(max-width:560px){
  .tts-wrap h1#title{font-size:26px}.tts-panel{padding:8px}.tts-card{padding:14px}
  .tts-tools .tts-mini{flex:1 1 calc(50% - 4px)}
  .tts-drow{grid-template-columns:minmax(0,1fr)}
  .tts-mode{padding:0 8px;font-size:14px}
  /* phone: option tabs become chips that wrap, so long labels (ru, fr) stay on one line */
  .tts-otabs{display:flex;flex-wrap:wrap;gap:6px;border:0}
  .tts-otab{flex:1 1 auto;flex-direction:row;justify-content:center;gap:8px;min-height:44px;padding:6px 12px;margin:0;border:1px solid #e8ded8;border-radius:10px}
  .tts-otab[aria-selected=true]{background:#fff7f3;border-color:#c93d0c;box-shadow:inset 0 0 0 1px #c93d0c}
  .tts-otab span{hyphens:manual;overflow-wrap:normal}
  .tts-odot{top:-3px;inset-inline-end:-3px}
}
