/* finesse · component: embedded voice tags · register=product
 * states: default · hover · focus-visible · active · disabled · loading · error · success
 * tokens: inherited from the active studio theme */
.tts-tagbar{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:5px;padding:8px 24px 0;flex-shrink:0;color:var(--text);background:transparent;min-width:0}
.tts-tagbar-label{font-size:11px;color:var(--muted);margin-right:3px}
.tts-tag-trigger{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:32px;white-space:nowrap;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--text);padding:5px 8px;font:inherit;font-size:12px;line-height:1.3;outline:2px solid transparent;outline-offset:2px;transition:background-color .14s,border-color .14s}
.tts-tag-trigger[aria-expanded=true]{background:var(--light);border-color:var(--muted);color:var(--ink)}
.tts-tag-info{padding:5px;min-width:30px;background:transparent;border-color:transparent}
.tts-tag-trigger:focus-visible,.tts-tag-option:focus-visible,.tts-tag-dismiss:focus-visible,.tts-pause-form button:focus-visible,.tts-pause-form input:focus-visible,.tts-tag-trigger.is-focus{outline:2px solid var(--accent);outline-offset:2px}
.tts-tag-trigger:active,.tts-tag-trigger.is-active,.tts-tag-option:active{background:var(--line);transform:translateY(1px)}
.tts-tag-trigger:disabled{opacity:.5;cursor:not-allowed}
.tts-tag-trigger[aria-disabled=true],.tts-tag-option[aria-disabled=true]{opacity:.45;cursor:not-allowed}
.tts-tag-trigger[aria-disabled=true]:hover,.tts-tag-option[aria-disabled=true]:hover{background:transparent;color:var(--muted);transform:none}
.tts-tagbar[data-state=loading] .tts-tag-trigger{cursor:wait}
.tts-tag-status{display:none;width:100%;text-align:right;font-size:11px;color:var(--danger)}
.tts-tag-status:not(:empty){display:block}
.tts-tagbar[data-state=error] .tts-tag-trigger{border-color:var(--danger)}
.tts-tagbar[data-state=success] .tts-tag-trigger{color:var(--text)}
.tts-tag-popover{position:fixed;z-index:1600;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding:7px;border:1px solid var(--line);border-radius:14px;background:var(--bg);color:var(--ink);box-shadow:var(--shadow);font:inherit;font-size:13px;animation:tts-tag-appear .12s ease-out}
.tts-tag-menu-title{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 9px 10px;font-size:12px;font-weight:600;color:var(--ink);border-bottom:1px solid var(--line2);margin-bottom:3px}
.tts-tag-menu-title small{font-size:10px;font-weight:400;color:var(--muted)}
.tts-tag-option{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:39px;padding:9px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--text);text-align:left;font:inherit;outline:2px solid transparent;outline-offset:-2px}
.tts-tag-option code{font:11px ui-monospace,monospace;color:var(--muted);overflow-wrap:anywhere;text-align:right}
.tts-tag-option small{color:var(--muted);font-size:11px}
.tts-tag-help{padding:9px;line-height:1.7}
.tts-tag-help strong{font-size:13px;color:var(--ink)}
.tts-tag-help p{margin:6px 0 14px;font-size:12px;color:var(--text)}
.tts-tag-help small{display:block;font-size:11px;color:var(--text)}
.tts-tag-dismiss,.tts-pause-form button{min-height:36px;padding:7px 12px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--ink);font:inherit;font-size:12px}
.tts-tag-dismiss{display:block;margin:14px 0 0 auto}
.tts-pause-form{padding:10px 9px;border-top:1px solid var(--line2);display:grid;gap:9px}
.tts-pause-form[hidden]{display:none}
.tts-pause-form label{display:grid;gap:7px;font-size:12px}
.tts-pause-form input{min-height:38px;color:var(--ink)}
.tts-pause-form small{font-size:11px;color:var(--text)}
.tts-pause-error{color:var(--danger);font-size:12px;min-height:1.3em}
.tts-auto-model{cursor:default!important}
.tts-auto-model .model-row-arrow,.tts-auto-model .model-badge:empty{display:none}
.tts-auto-model-note{margin:6px 0 0;font-size:11px;color:var(--muted);line-height:1.6}
.tts-parameters .setting-field[hidden],.tts-parameters .check-label[hidden]{display:none!important}
@media(hover:hover){.tts-tag-trigger:hover,.tts-tag-trigger.is-hover,.tts-tag-option:hover,.tts-tag-dismiss:hover,.tts-pause-form button:hover{background:var(--line2);color:var(--ink)}}
@media(max-width:700px){.tts-tagbar{padding:6px 12px 2px;gap:3px}.tts-tagbar-label{display:none}.tts-tag-trigger{min-height:44px;padding:7px 6px;gap:3px;font-size:11px}.tts-tag-info{min-width:32px}.tts-tag-option{min-height:44px}.tts-tag-dismiss,.tts-pause-form button{min-height:44px}}
@keyframes tts-tag-appear{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.tts-tag-popover{animation:none}.tts-tag-trigger{transition:none}}

/* Tag ink follows the supplied reference; marks never change text geometry. */
:root{--control-tag-ink:#c32de0;--control-tag-edge:rgba(195,45,224,.24)}
html[data-theme=dark]{--control-tag-ink:#e38cff;--control-tag-edge:rgba(227,140,255,.35)}
.tag-editor-wrap{position:relative;display:flex;flex:1;min-width:0;min-height:0;overflow:hidden}
.tag-editor-mirror{position:absolute;inset:0;box-sizing:border-box;white-space:pre-wrap;overflow:hidden;overflow-wrap:break-word;pointer-events:none;user-select:none;color:var(--ink);background:transparent;z-index:0}
.tag-editor-wrap .tag-highlight-textarea{position:relative;z-index:1;background:transparent!important;color:transparent!important;-webkit-text-fill-color:transparent!important;caret-color:var(--ink)!important;text-shadow:none!important}
.tag-editor-wrap .tag-highlight-textarea::placeholder{-webkit-text-fill-color:var(--muted);color:var(--muted)}
.script-control-tag{color:var(--control-tag-ink);-webkit-text-fill-color:var(--control-tag-ink);background:transparent;box-shadow:inset 0 0 0 1px var(--control-tag-edge);border-radius:4px;font:inherit;letter-spacing:inherit;padding:0}
.dialogue-editor>.tts-tagbar{padding-right:24px;padding-left:24px}
@media(max-width:700px){.dialogue-editor>.tts-tagbar{padding-right:12px;padding-left:12px}}
@media(forced-colors:active){.tag-editor-mirror{display:none}.tag-editor-wrap .tag-highlight-textarea{color:CanvasText!important;-webkit-text-fill-color:CanvasText!important;caret-color:CanvasText!important}}

/* Embedded language picker shares the studio tokens and existing flag assets. */
#languageSelect[hidden]{display:none!important}
.tts-language-picker{min-width:0}
.tts-language-button{width:100%;display:flex;align-items:center;gap:10px;min-height:39px;padding:9px 12px;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--ink);font:inherit;text-align:left}
.tts-language-button>span{flex:1;min-width:0}
.tts-language-button>.flag,.tts-language-options .flag{width:20px;height:14px;object-fit:cover;border-radius:2px;flex-shrink:0}
.tts-language-button>svg:last-child{color:var(--muted)}
.tts-language-button:focus-visible,.tts-language-options button:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.tts-language-button:active,.tts-language-options button:active{background:var(--line2)}
.tts-language-button:disabled{opacity:.5;cursor:not-allowed}
.tts-language-options{position:fixed;z-index:1100;overflow-y:auto;padding:6px;box-sizing:border-box;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 36px #0002;overscroll-behavior:contain}
.tts-language-note{padding:7px 8px 9px;font-size:11px;color:var(--muted);line-height:1.6;border-bottom:1px solid var(--line2);margin-bottom:4px}
.tts-language-options button{width:100%;display:flex;align-items:center;gap:10px;min-height:39px;padding:8px;border:0;border-radius:7px;background:transparent;color:var(--ink);font:inherit;font-size:13px;text-align:left}
.tts-language-options button>span:not(.tts-language-check){flex:1}
.tts-language-options [aria-selected=true]{background:var(--line2)}
.tts-language-recommend{padding:2px 7px;font-size:10px;border:1px solid var(--line);border-radius:5px;background:var(--light);color:var(--text);white-space:nowrap}
.tts-language-check{width:16px;display:flex;align-items:center;flex-shrink:0}
@media(hover:hover){.tts-language-button:hover,.tts-language-options button:hover{background:var(--line2)}}
@media(max-width:700px){.tts-language-button,.tts-language-options button{min-height:44px}}

/* Import is a secondary editor tool, aligned with the footer actions. */
html .script-card #importText{min-height:36px;padding:7px 8px;gap:6px;border:1px solid transparent;background:transparent;color:var(--muted);box-shadow:none;font-size:12px;line-height:1.4;transition:background-color .14s,color .14s}
html .script-card #importText .import-label{font-size:12px;color:inherit;text-decoration:none;line-height:1.4}
html .script-card #importText .import-glyph,html .script-card #importText .ui-icon{width:14px;height:14px}
html .script-card #importText:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
html .script-card #importText:active{background:var(--line2);color:var(--ink)}
html .script-card #importText:disabled{opacity:.5;cursor:not-allowed}
@media(hover:hover){html .script-card #importText:hover{background:var(--line2);border-color:transparent;color:var(--text)}}
@media(max-width:700px){html .script-card #importText{min-height:44px}}
@media(prefers-reduced-motion:reduce){html .script-card #importText{transition:none}}
/* Continuous loading motion: no abrupt end-to-start sweep, no layout animation. */
#generationProgress.indeterminate i{width:35%;animation:dockProgressTravel 2.4s ease-in-out infinite alternate;will-change:transform;transition:none}
#generationProgress:not(.indeterminate) i{transform:translateX(0);transition:width .55s ease-out}
@keyframes dockProgressTravel{from{transform:translateX(-100%)}to{transform:translateX(285.72%)}}
.bar-visualizer i{height:88%;transform-origin:center;animation:dockBarBreathe 1.5s ease-in-out infinite}
@keyframes dockBarBreathe{0%,100%{transform:scaleY(.32)}50%{transform:scaleY(.88)}}
.generation-dock{min-height:92px}
.generation-dock .result-timeline{min-height:34px}
.generation-dock .wave-host{--wave-muted:color-mix(in srgb,var(--ink) 36%,transparent)}
.wave-host.is-loading{cursor:progress;opacity:.55}
.wave-host.is-unavailable{opacity:.65}
.wave-host canvas{transition:opacity .2s ease}
@media(prefers-reduced-motion:reduce){#generationProgress.indeterminate i{animation:none;transform:translateX(92%)}.bar-visualizer i{animation:none;transform:scaleY(.6)}.wave-host canvas{transition:none}}

/* Search is explicit: the embedded magnifier submits the current draft. */
.filter-search-wrap .voice-search-submit{position:absolute;left:5px;top:3px;display:grid;place-items:center;width:34px;height:34px;min-height:34px;padding:7px;border:0;border-radius:50%;background:transparent;color:var(--muted);box-shadow:none}
.filter-search-wrap .voice-search-submit svg{width:17px;height:17px}
.filter-search-wrap .voice-search-submit:focus-visible{outline:2px solid var(--ink);outline-offset:1px}
.filter-search-wrap .voice-search-submit:active{background:var(--line2);color:var(--ink)}
@media(hover:hover){.filter-search-wrap .voice-search-submit:hover{background:var(--line2);color:var(--ink)}}
