/* v4.css — тема функционала transcribe-v2 в дизайн-коде SpeechGen (замена ZG-порта V4, 12.10.2026).
   Только CSS поверх DOM прода: HTML и JS не меняются. Раскладка (сетка, sticky-сайдбар, мобильные карточки) — как в V4,
   цвета/типографика/компоненты — как на живых страницах SG и в макетах (home-page/transcribe-v2/mockups).
   Inter — текст, JetBrains Mono — «приборный» слой (капс-лейблы, цифры, бейджи, CTA). Один синий #2563eb + slate.
   Без цветных border-left. Грузится после app.css и до speechgen.css (там — лендинг #subDesc). */

body.transcribe-v2 {
    --tv2-header-height:56px;
    --tv2-ink:#0f172a; --tv2-ink-2:#1e293b; --tv2-ink-3:#475569; --tv2-muted:#64748b; --tv2-subtle:#94a3b8;
    --tv2-line:#e2e8f0; --tv2-line-2:#f1f5f9; --tv2-hover:#f1f5f9; --tv2-paper:#f8fafc;
    --tv2-accent:#2563eb; --tv2-accent-hover:#1d4ed8; --tv2-accent-active:#1e40af; --tv2-tint:rgba(37,99,235,.05); --tv2-tint-2:rgba(37,99,235,.08);
    --tv2-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
    --tv2-shadow:0 1px 3px rgba(13,27,56,.03),0 4px 16px rgba(13,27,56,.04),0 12px 40px rgba(13,27,56,.03);
    --tv2-shadow-hero:0 1px 3px rgba(13,27,56,.07),0 4px 16px rgba(13,27,56,.10),0 16px 48px rgba(13,27,56,.07);
    --tv2-shadow-pop:0 4px 24px rgba(15,23,42,.10),0 1px 4px rgba(15,23,42,.06);
    --tv2-shadow-cta:0 2px 8px rgba(37,99,235,.25); --tv2-shadow-cta-hover:0 4px 14px rgba(37,99,235,.35);
    --pr-blue:#2563eb; --l-blue:#dbeafe;
    background:var(--tv2-paper); color:var(--tv2-ink); font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif; font-size:14px; line-height:1.5; letter-spacing:0;
}
body.transcribe-v2 *, body.transcribe-v2 *::before, body.transcribe-v2 *::after { box-sizing:border-box; }

/* ---------- раскладка (как V4) ---------- */
/* глобальное `button{margin-right:5px;padding:…}` сайта (style_att.css) раздвигает слова результата и кнопки — внутри рабочей области обнуляем */
body.transcribe-v2 .tv2-workspace button { margin-right:0; }
/* отступ сверху задаёт site-shell.css (40px / 36px на странице файла) — здесь margin-top не ставим, иначе перебиваем его */
body.transcribe-v2 .contnr.morda.newgrid.nofixbox { max-width:1290px; width:100%; padding:0 24px; margin-left:auto; margin-right:auto; margin-bottom:40px; background:transparent; }
body.transcribe-v2.tv2-node .contnr.morda.newgrid.nofixbox { margin-top:36px; } /* app.css ставит 92px странице файла; 36px — как задумано в site-shell.css */
body.transcribe-v2 .contnr.nofixbox .oh, body.transcribe-v2 .contnr.newgrid .w100.ATTContainer { overflow:visible; float:none; display:block; width:100%; padding:0; margin:0; background:transparent; border:0; min-height:0; }
body.transcribe-v2 .tv2-workspace { display:grid; grid-template-columns:minmax(0,1fr) 272px; gap:24px; align-items:stretch; }
body.transcribe-v2 .ATTRightArea { grid-column:1; grid-row:1; float:none; width:auto; padding:0; margin:0; border:0; }
body.transcribe-v2 .contnr.newgrid .ATTcontent { padding:32px 32px 28px; background:#fff; border:1px solid var(--tv2-line); border-radius:12px; box-shadow:var(--tv2-shadow); min-height:0; }
body.transcribe-v2:not(.tv2-node) .contnr.newgrid .ATTcontent:has(#upload-window) { border-color:rgba(26,60,120,.16); box-shadow:var(--tv2-shadow-hero); }
body.transcribe-v2 .contnr.newgrid .ATTside#menuToggle { grid-column:2; grid-row:1; position:sticky; top:92px; align-self:start; width:auto; height:auto; min-height:440px; max-height:calc(100dvh - 116px - var(--tv2-player-height,0px)); margin:0; padding:20px; background:#fff; border:1px solid var(--tv2-line); border-radius:12px; box-shadow:var(--tv2-shadow); overflow:auto; scrollbar-width:thin; }
body.transcribe-v2 .ATTmenu#menu { position:static; display:flex; flex-direction:column; width:100%; min-height:100%; height:100%; max-height:none; padding:0; margin:0; overflow:visible; background:transparent; border:0; }
@media (min-width:961px) {
    body.transcribe-v2 .contnr.newgrid .ATTside#menuToggle { height:calc(100dvh - 116px - var(--tv2-player-height,0px)); min-height:0; }
    body.transcribe-v2.tv2-node .tv2-display-settings { margin-top:0; padding-top:0; border-top:0; }
}

/* ---------- сайдбар: белая карточка, простой список; активный — бледно-синий фон, без рельс ---------- */
body.transcribe-v2 .contnr.newgrid .ATTside .tv2-side-nav { display:flex; flex-direction:column; gap:2px; margin:0; padding:0; }
body.transcribe-v2 .contnr.newgrid .ATTside .tv2-side-nav a { display:flex; align-items:center; gap:10px; min-height:40px; padding:8px 12px; border-radius:6px; font-size:14px; color:var(--tv2-ink-3); text-decoration:none; }
body.transcribe-v2 .contnr.newgrid .ATTside .tv2-side-nav a .tv2-icon { color:var(--tv2-subtle); }
body.transcribe-v2 .contnr.newgrid .ATTside .tv2-side-nav a:hover { background:var(--tv2-hover); color:var(--tv2-ink); }
body.transcribe-v2 .contnr.newgrid .ATTside .tv2-side-nav a[aria-current=page] { background:rgba(37,99,235,.06); color:var(--tv2-accent-active); font-weight:600; }
body.transcribe-v2 .contnr.newgrid .ATTside .tv2-side-nav a[aria-current=page] .tv2-icon { color:var(--tv2-accent); }
body.transcribe-v2 .contnr.newgrid .ATTside .tv2-admin-tag { margin-left:auto; padding:1px 5px; border-radius:2px; background:var(--tv2-hover); color:var(--tv2-muted); font:700 9px/14px var(--tv2-mono); letter-spacing:.06em; text-transform:uppercase; }
body.transcribe-v2 .contnr.newgrid .ATTside .tv2-side-section { padding:16px 0 0; margin-top:16px; border-top:1px solid var(--tv2-line-2); }
body.transcribe-v2 .contnr.newgrid .ATTside .tv2-side-section h2 { margin:0 0 8px; padding:0 12px; color:var(--tv2-subtle); font:700 10px/1.4 var(--tv2-mono); letter-spacing:.08em; text-transform:uppercase; }
body.transcribe-v2 .contnr.newgrid .ATTside .tv2-side-action { display:flex; align-items:center; gap:10px; width:100%; min-height:40px; padding:8px 12px; border:0; border-radius:6px; background:transparent; color:var(--tv2-ink-3); font-size:14px; text-align:left; }
body.transcribe-v2 .contnr.newgrid .ATTside .tv2-side-action .tv2-icon { color:var(--tv2-subtle); }
body.transcribe-v2 .contnr.newgrid .ATTside .tv2-side-action:hover { background:var(--tv2-hover); color:var(--tv2-ink); }
body.transcribe-v2 .contnr.newgrid .ATTside .tv2-side-action:hover .tv2-icon { color:var(--tv2-ink); }
/* баланс: число моно, «Top up» — вторичная кнопка моно-капсом */
body.transcribe-v2 .contnr.newgrid .ATTside .tv2-balance-section { margin-top:auto; padding-top:16px; }
body.transcribe-v2 .contnr.newgrid .ATTside .tv2-balance-section h2 { padding:0; color:var(--tv2-ink-3); }
body.transcribe-v2 .contnr.newgrid .ATTside .tv2-balance-line { display:flex; flex-wrap:wrap; align-items:baseline; gap:8px; margin:0 0 14px; }
body.transcribe-v2 .contnr.newgrid .ATTside .tv2-balance-line strong { font:600 22px/1.1 var(--tv2-mono); letter-spacing:-.02em; color:var(--tv2-ink); overflow-wrap:anywhere; }
body.transcribe-v2 .contnr.newgrid .ATTside .tv2-balance-line span { font:500 11px/1 var(--tv2-mono); letter-spacing:.04em; text-transform:uppercase; color:var(--tv2-subtle); }
body.transcribe-v2 .ATTmenu .getTokens { display:flex; align-items:center; justify-content:center; gap:8px; min-height:40px; padding:9px 12px; border:1px solid var(--tv2-line); border-radius:6px; background:#fff; color:var(--tv2-muted); font:700 10px/1.4 var(--tv2-mono); letter-spacing:.1em; text-transform:uppercase; text-decoration:none; }
body.transcribe-v2 .ATTmenu .getTokens:hover { border-color:var(--tv2-accent); color:var(--tv2-accent); background:rgba(37,99,235,.04); }
body.transcribe-v2 .contnr.newgrid .ATTside .tv2-side-nav + .tv2-balance-section { margin-top:auto; }
body.transcribe-v2 .ATTmenu#menu > .tv2-balance-section { margin-bottom:0; }

/* ---------- заголовок страницы ---------- */
body.transcribe-v2 .contnr.newgrid.morda .ATTcontent .main-h1 { margin:0; padding:0; font-size:clamp(1.5rem,2.6vw,1.85rem); line-height:1.18; letter-spacing:-.035em; font-weight:800; color:var(--tv2-ink); overflow-wrap:anywhere; }
body.transcribe-v2 .main-h1 span { color:var(--tv2-muted); font-weight:400; font-size:inherit; letter-spacing:-.02em; }
body.transcribe-v2 .tv2-page-heading { display:flex; margin:0 0 12px; align-items:center; gap:12px; }
body.transcribe-v2 .tv2-badge { padding:1px 7px; border-radius:3px; background:var(--tv2-hover); color:var(--tv2-muted); font:700 11px/18px var(--tv2-mono); }
body.transcribe-v2 .transList .header { padding:0; border:0; margin:0; }
body.transcribe-v2 .tv2-landing-description { flex:0 0 100%; margin:0 0 20px; padding:0; color:var(--tv2-muted); font-size:15px; line-height:1.6; overflow-wrap:anywhere; }
body.transcribe-v2 #upload-window.upload-window.expanded { padding:0; margin:0; border:0; }
body.transcribe-v2 .transList.history { padding:0; }

/* ---------- источник: B4 — три равные кнопки на серой подложке; активная — белая, ТЁМНАЯ (синий = действие) ---------- */
body.transcribe-v2 .tv2-source-tabs { width:100%; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:4px; padding:4px; margin:0 0 20px; border-radius:8px; background:var(--tv2-hover); }
body.transcribe-v2 .tv2-source-tabs button { display:flex; justify-content:center; align-items:center; gap:8px; min-height:40px; padding:8px; border:0; border-radius:6px; background:transparent; color:var(--tv2-muted); font-size:14px; font-weight:600; }
body.transcribe-v2 .tv2-source-tabs button .tv2-icon { width:16px; height:16px; color:var(--tv2-subtle); }
body.transcribe-v2 .tv2-source-tabs button:hover { color:var(--tv2-ink); }
body.transcribe-v2 .tv2-source-tabs button[aria-selected=true] { background:#fff; color:var(--tv2-ink); box-shadow:0 1px 3px rgba(13,27,56,.08),0 1px 2px rgba(13,27,56,.04); }
body.transcribe-v2 .tv2-source-tabs button[aria-selected=true] .tv2-icon { color:var(--tv2-ink); }

/* ---------- зона загрузки: пунктир slate, «бумага» с сеткой 48px, иконка в белой плашке ---------- */
body.transcribe-v2 #source-panel-upload .drop-zone { display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:285px; padding:32px 20px; border:2px dashed #cbd5e1; border-radius:12px; background-color:#fafbfd; background-image:linear-gradient(rgba(37,99,235,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(37,99,235,.04) 1px,transparent 1px); background-size:48px 48px; background-position:-1px -1px; cursor:pointer; transition:border-color .15s,background-color .15s; }
body.transcribe-v2 #source-panel-upload .drop-zone:hover, body.transcribe-v2 #source-panel-upload .drop-zone.dragover, body.transcribe-v2 #source-panel-upload .drop-zone.drag-over { border-color:var(--tv2-accent); background-color:#f6f8ff; }
body.transcribe-v2 .tv2-upload-symbol { width:56px; height:56px; display:grid; place-items:center; margin-bottom:16px; border:1px solid var(--tv2-line); border-radius:12px; background:#fff; color:var(--tv2-accent); box-shadow:0 1px 3px rgba(13,27,56,.06); }
body.transcribe-v2 .tv2-upload-symbol .tv2-icon { width:26px; height:26px; }
body.transcribe-v2 .dragtext { text-align:center; margin:0; padding:0; }
body.transcribe-v2 .drop-zone .dragtext strong { display:block; font-size:21px; line-height:28px; font-weight:800; letter-spacing:-.025em; color:var(--tv2-ink); }
body.transcribe-v2 .dragtext > span { display:block; margin-top:8px; font-size:13px; line-height:20px; color:var(--tv2-muted); }
body.transcribe-v2 .dragtext .tv2-drop-cta { display:inline-flex; align-items:center; min-height:44px; padding:0 24px; margin-top:20px; border-radius:8px; color:#fff; background:var(--tv2-accent); font:700 12px/44px var(--tv2-mono); letter-spacing:.12em; text-transform:uppercase; box-shadow:var(--tv2-shadow-cta); }
body.transcribe-v2 .drop-zone:hover .dragtext .tv2-drop-cta { background:var(--tv2-accent-hover); box-shadow:var(--tv2-shadow-cta-hover); }
body.transcribe-v2 .drop-zone .dragtext .tv2-drop-mobile { display:none; }
body.transcribe-v2 #source-panel-upload .drop-zone.tv2-has-files { min-height:64px; flex-direction:row; padding:14px 16px; gap:12px; background-image:none; }
body.transcribe-v2 .drop-zone.tv2-has-files .tv2-upload-symbol { margin:0; width:28px; height:28px; border:0; background:transparent; box-shadow:none; }
body.transcribe-v2 .drop-zone.tv2-has-files .tv2-upload-symbol .tv2-icon { width:20px; height:20px; }
body.transcribe-v2 .drop-zone.tv2-has-files .addtext { margin:0; padding:0; color:var(--tv2-accent); font-size:14px; font-weight:600; }
/* шаги — хейрлайны вместо плиток, номер моно синим */
body.transcribe-v2 .tv2-upload-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; margin-top:16px; border:1px solid var(--tv2-line-2); border-radius:10px; overflow:hidden; }
body.transcribe-v2 .tv2-upload-steps > div { padding:14px 16px; background:#fff; font-size:13px; line-height:1.5; color:var(--tv2-ink-3); }
body.transcribe-v2 .tv2-upload-steps > div + div { border-left:1px solid var(--tv2-line-2); }
body.transcribe-v2 .tv2-upload-steps small { display:block; margin-bottom:4px; color:var(--tv2-accent); opacity:.75; font:700 10px/1.4 var(--tv2-mono); letter-spacing:.08em; text-transform:uppercase; }

/* ---------- запись: как зона загрузки; старт — синяя кнопка, красная точка — только смысловая ---------- */
body.transcribe-v2 #source-panel-record:not([hidden]) { display:block; }
body.transcribe-v2 .tv2-recorder { display:flex; flex-direction:column; flex-wrap:nowrap; align-items:center; justify-content:center; gap:10px; min-height:232px; padding:32px 16px; border:2px dashed #cbd5e1; border-radius:12px; background:var(--tv2-paper); }
body.transcribe-v2 #record-status { font-size:16px; font-weight:700; color:var(--tv2-ink); }
body.transcribe-v2 #record-time { font:600 32px/1.1 var(--tv2-mono); letter-spacing:-.02em; color:var(--tv2-ink); font-variant-numeric:tabular-nums; }
body.transcribe-v2 .tv2-record-controls { display:flex; gap:8px; align-items:center; margin-top:4px; }
body.transcribe-v2 .tv2-record-start { display:inline-flex; align-items:center; gap:8px; min-height:44px; padding:0 20px; border:0; border-radius:8px; background:var(--tv2-accent); color:#fff; font-size:14px; font-weight:600; box-shadow:var(--tv2-shadow-cta); }
body.transcribe-v2 .tv2-record-start:hover { background:var(--tv2-accent-hover); box-shadow:var(--tv2-shadow-cta-hover); }
body.transcribe-v2 .tv2-record-start span { color:inherit; }
body.transcribe-v2 .tv2-record-start .tv2-icon { width:16px; height:16px; }
body.transcribe-v2 .tv2-record-icon { display:grid; place-items:center; width:44px; height:44px; padding:0; border:1px solid var(--tv2-line); border-radius:8px; background:#fff; color:var(--tv2-ink-3); }
body.transcribe-v2 .tv2-record-icon:hover { border-color:#cbd5e1; color:var(--tv2-ink); background:var(--tv2-hover); }
body.transcribe-v2 #record-stop { color:#dc2626; }

/* ---------- «From a link»: как зона загрузки — иконка, заголовок, крупное поле, синяя «Add» ----------
   только :not([hidden]) — панели вкладок прод скрывает атрибутом hidden */
body.transcribe-v2 #source-panel-youtube:not([hidden]) { position:relative; display:flex; flex-direction:column; align-items:center; gap:14px; min-height:232px; padding:84px 24px 32px; border:2px dashed #cbd5e1; border-radius:12px; background:var(--tv2-paper); text-align:center; }
body.transcribe-v2 #source-panel-youtube::before { content:""; position:absolute; top:24px; left:50%; width:44px; height:44px; margin-left:-22px; border:1px solid var(--tv2-line); border-radius:10px; background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='%232563eb' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71'/%3E%3Cpath d='M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71'/%3E%3C/svg%3E") center/22px no-repeat; box-shadow:0 1px 3px rgba(13,27,56,.06); }
body.transcribe-v2 #source-panel-youtube > label { margin:0; font-size:16px; font-weight:700; line-height:1.3; letter-spacing:-.01em; color:var(--tv2-ink); }
body.transcribe-v2 #source-panel-youtube .tv2-youtube-input { display:flex; width:100%; max-width:640px; margin:0; gap:8px; }
body.transcribe-v2 #youtube-url { flex:1; min-width:0; min-height:52px; padding:0 14px 0 42px; border:1.5px solid #cbd5e1; border-radius:10px; background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71'/%3E%3Cpath d='M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71'/%3E%3C/svg%3E") 14px center/18px no-repeat; font-size:15px; color:var(--tv2-ink); box-shadow:0 1px 2px rgba(13,27,56,.04); }
body.transcribe-v2 #youtube-url:focus { outline:none; border-color:var(--tv2-accent); box-shadow:0 0 0 4px rgba(37,99,235,.12); }
body.transcribe-v2 #youtube-check { min-height:52px; padding:0 22px; border:0; border-radius:10px; background:var(--tv2-accent); color:#fff; font-size:15px; font-weight:600; box-shadow:var(--tv2-shadow-cta); }
body.transcribe-v2 #youtube-check:hover { background:var(--tv2-accent-hover); color:#fff; }
body.transcribe-v2 #youtube-check:disabled { background:#cbd5e1; box-shadow:none; }
body.transcribe-v2 #source-panel-youtube #youtube-info, body.transcribe-v2 #source-panel-youtube #link-progress { width:100%; max-width:640px; margin:0; text-align:left; }

/* ---------- выбранные файлы, настройки, запуск ---------- */
body.transcribe-v2 #fileTable { border-collapse:separate; border-spacing:0 6px; margin-top:8px; }
body.transcribe-v2 #fileTable td { border-block:1px solid var(--tv2-line); padding-block:12px; background:#fff; }
body.transcribe-v2 #fileTable td:first-child { border-left:1px solid var(--tv2-line); border-radius:8px 0 0 8px; }
body.transcribe-v2 #fileTable td:last-child { border-right:1px solid var(--tv2-line); border-radius:0 8px 8px 0; }
body.transcribe-v2 .tv2-pending-name { font-weight:600; color:var(--tv2-ink-2); }
body.transcribe-v2 #upload-settings { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin-top:20px; padding:18px; background:var(--tv2-paper); border:1px solid var(--tv2-line); border-radius:10px; }
body.transcribe-v2 .select-box .sbox { width:auto; padding:0; margin:0; }
body.transcribe-v2 .tv2-field-heading { display:flex; align-items:center; justify-content:flex-start; gap:7px; margin-bottom:8px; }
body.transcribe-v2 .tv2-field-heading label { color:var(--tv2-muted); font:700 10px/1.4 var(--tv2-mono); letter-spacing:.08em; text-transform:uppercase; }
body.transcribe-v2 .tv2-field-help { width:28px; height:28px; flex-basis:28px; border-radius:6px; color:var(--tv2-subtle); }
body.transcribe-v2 .tv2-field-help:hover, body.transcribe-v2 .tv2-field-help[aria-expanded=true] { background:var(--tv2-tint); color:var(--tv2-accent); }
body.transcribe-v2 .tv2-submit-row { display:flex; flex-direction:column; align-items:center; gap:8px; margin:24px 0 0; }
body.transcribe-v2 #pending-summary { order:2; min-height:0; font:500 11px/1.5 var(--tv2-mono); letter-spacing:.02em; color:var(--tv2-subtle); text-align:center; }
body.transcribe-v2 .tv2-submit-controls { display:flex; flex-direction:column; align-items:center; width:100%; gap:12px; }
body.transcribe-v2 .tv2-submit-actions { display:flex; justify-content:center; width:100%; }
/* главный CTA = .button-synthesize: 56px, радиус 10, моно-капс; стоимость — после разделителя */
body.transcribe-v2 #transcribe-button { display:inline-flex; align-items:center; justify-content:center; gap:14px; margin:0; min-height:56px; min-width:380px; padding:0 28px; border:0; border-radius:10px; background:var(--tv2-accent); color:#fff; font:700 13px/1 var(--tv2-mono); letter-spacing:.28em; text-transform:uppercase; box-shadow:var(--tv2-shadow-cta); }
body.transcribe-v2 #transcribe-button:hover:not(:disabled) { background:var(--tv2-accent-hover); box-shadow:var(--tv2-shadow-cta-hover); }
body.transcribe-v2 #transcribe-button:active:not(:disabled) { background:var(--tv2-accent-active); }
body.transcribe-v2 #transcribe-button:disabled { background:#cbd5e1; box-shadow:none; }
body.transcribe-v2 #token-estimate { margin-left:0; padding-left:14px; border-left:1px solid rgba(255,255,255,.35); color:#fff; font:500 11px/1 var(--tv2-mono); letter-spacing:.02em; text-transform:none; opacity:.92; white-space:normal; }
body.transcribe-v2 #token-estimate:empty { display:none; }
/* сайдбар на ПК: без своей прокрутки — растёт по высоте под содержимое, всегда идёт рядом с рабочей областью.
   Липнет к верху (top 92px), а если сам выше окна — липнет так, что его НИЗ стоит у низа экрана (top = окно − высота − 24px):
   при прокрутке вниз доезжает до низа и держится, при прокрутке вверх возвращается к верху. Высокий сайдбар бывает только у админа,
   высоты содержимого замерены 12.10 (main/youtube/video 690, история 648, страница файла 524 + плеер) — при новых пунктах меню обновить. */
@media (min-width:961px) {
    body.transcribe-v2 .contnr.newgrid .ATTside#menuToggle { height:auto; min-height:max(440px, calc(100dvh - 116px - var(--tv2-player-height,0px))); max-height:none; overflow:visible; }
    body.transcribe-v2.tv2-has-admin .contnr.newgrid .ATTside#menuToggle { top:min(92px, calc(100dvh - 714px)); }
    body.transcribe-v2.tv2-has-admin .tv2-workspace:has(.transList.history) .ATTside#menuToggle { top:min(92px, calc(100dvh - 672px)); }
    body.transcribe-v2.tv2-has-admin.tv2-node .contnr.newgrid .ATTside#menuToggle { top:min(92px, calc(100dvh - 548px - var(--tv2-player-height,0px))); }
}

/* окно выбора модели/языка: в SG это модалка по центру (speechgen.css; в pickers.js SG нет position() — нет привязки к полю).
   Оформляем как модалку: шапка с заголовком и аккуратным крестиком на всех ширинах, затемнение фона. Портал висит в body. */
body.transcribe-v2 .tv2-picker-panel { border:1px solid var(--tv2-line); border-radius:12px; padding:8px; box-shadow:0 20px 50px rgba(15,23,42,.18),0 2px 6px rgba(15,23,42,.06); }
body.transcribe-v2 .tv2-picker-backdrop { display:block; position:fixed; inset:0; background:rgba(15,23,42,.30); }
body.transcribe-v2 .tv2-picker-head { display:flex; flex:0 0 auto; align-items:center; justify-content:space-between; gap:12px; margin:0 0 8px; padding:4px 4px 10px 8px; border-bottom:1px solid var(--tv2-line-2); }
body.transcribe-v2 .tv2-picker-head strong { font-size:16px; font-weight:700; letter-spacing:-.01em; color:var(--tv2-ink); }
body.transcribe-v2 button.tv2-picker-close { display:grid; place-items:center; flex:0 0 36px; width:36px; height:36px; margin:0; padding:0; border:1px solid var(--tv2-line); border-radius:8px; background:#fff; color:var(--tv2-muted); box-shadow:none; font-size:20px; line-height:1; cursor:pointer; }
body.transcribe-v2 button.tv2-picker-close:hover { border-color:#cbd5e1; background:var(--tv2-hover); color:var(--tv2-ink); }
body.transcribe-v2 button.tv2-picker-close .tv2-picker-icon { width:18px; height:18px; }
body.transcribe-v2 .tv2-picker-bars i.is-filled { background:var(--tv2-accent); }
/* единая сетка окна: шапка, поиск и текст карточек начинаются с одного отступа (24px от края окна) */
body.transcribe-v2 .tv2-picker-panel { padding:12px; }
body.transcribe-v2 .tv2-picker-head { margin:0 0 12px; padding:0 0 12px 12px; }
body.transcribe-v2 input.tv2-picker-search { width:100%; min-height:42px; margin:0 0 8px; padding:0 12px 0 38px; border:1px solid var(--tv2-line); border-radius:8px; background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") 12px center/16px no-repeat; box-shadow:none; color:var(--tv2-ink); font-size:14px; line-height:20px; }
body.transcribe-v2 input.tv2-picker-search::placeholder { color:var(--tv2-subtle); }
body.transcribe-v2 input.tv2-picker-search:focus { outline:none; border-color:var(--tv2-accent); box-shadow:0 0 0 3px rgba(37,99,235,.12); }
body.transcribe-v2 .tv2-picker-list { margin:0; padding:0; }
body.transcribe-v2 .tv2-picker-group-title { padding:10px 12px 6px; color:var(--tv2-subtle); font:700 10px/1.4 var(--tv2-mono); letter-spacing:.08em; text-transform:uppercase; }
body.transcribe-v2 .tv2-picker-option { gap:6px; margin:0 0 4px; padding:12px 40px 12px 11px; border:1px solid transparent; border-radius:10px; }
body.transcribe-v2 .tv2-picker-option:hover, body.transcribe-v2 .tv2-picker-option.is-active { border-color:var(--tv2-line); background:var(--tv2-paper); }
body.transcribe-v2 .tv2-picker-option[aria-selected="true"], body.transcribe-v2 .tv2-picker-option[aria-selected="true"].is-active { border-color:#bfdbfe; background:var(--tv2-tint); }
body.transcribe-v2 .tv2-picker-check { top:14px; right:14px; }
body.transcribe-v2 .tv2-picker-details-head { align-items:center; gap:10px; }
body.transcribe-v2 .tv2-picker-name { font-size:15px; font-weight:700; line-height:22px; color:var(--tv2-ink); }
body.transcribe-v2 .tv2-picker-option[aria-disabled="true"] .tv2-picker-name { color:var(--tv2-muted); }
body.transcribe-v2 .tv2-picker-price { padding:2px 7px; border-radius:4px; background:var(--tv2-hover); color:var(--tv2-ink-3); font:600 11px/18px var(--tv2-mono); letter-spacing:.01em; }
body.transcribe-v2 .tv2-picker-option[aria-selected="true"] .tv2-picker-price { background:#fff; }
body.transcribe-v2 .tv2-picker-facts { color:var(--tv2-muted); font-size:13px; line-height:1.5; }
body.transcribe-v2 .tv2-picker-meta { gap:6px; margin-top:2px; }
body.transcribe-v2 .tv2-picker-scale, body.transcribe-v2 .tv2-picker-feature { display:inline-flex; align-items:center; gap:6px; min-height:24px; padding:2px 8px; border:1px solid var(--tv2-line); border-radius:6px; background:#fff; color:var(--tv2-ink-3); font-size:12px; line-height:18px; }
body.transcribe-v2 .tv2-picker-scale { color:var(--tv2-muted); }
@media (max-width:600px) {
    body.transcribe-v2 .tv2-picker-panel { border-radius:12px 12px 0 0; border-bottom:0; }
    body.transcribe-v2 button.tv2-picker-close { flex-basis:44px; width:44px; height:44px; }
}

/* «Transcribe again» (страница файла): вариант A — стоимость и кнопка одним сплит-контролом (выбор владельца 12.10).
   DOM прода: p#restart-note, .tv2-restart-actions > output#restart-cost + button#restart-current — HTML не меняется */
body.transcribe-v2 #restart-panel { padding:24px; border:1px solid var(--tv2-line); border-radius:12px; background:var(--tv2-paper); }
body.transcribe-v2 #restart-panel .tv2-restart-note { margin:20px 0 0; color:var(--tv2-muted); font-size:13px; line-height:1.55; text-align:center; }
body.transcribe-v2 #restart-panel .tv2-restart-actions { justify-content:center; gap:0; margin-top:14px; }
body.transcribe-v2 #restart-panel #restart-cost:not([hidden]) { display:inline-flex; align-items:center; height:48px; padding:0 16px; border:1px solid #bfdbfe; border-right:0; border-radius:10px 0 0 10px; background:#fff; color:var(--tv2-accent-active); font:600 13px/1 var(--tv2-mono); letter-spacing:.01em; white-space:nowrap; }
body.transcribe-v2 #restart-panel #restart-cost::before { content:'L'; display:inline-grid; place-items:center; flex:0 0 16px; width:16px; height:16px; margin-right:8px; border-radius:4px; background:var(--tv2-accent); color:#fff; font:700 10px/1 var(--tv2-mono); }
body.transcribe-v2 #restart-panel #restart-current { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:48px; margin:0; padding:0 22px; border:0; border-radius:0 10px 10px 0; background:var(--tv2-accent); color:#fff; font:700 12px/1 var(--tv2-mono); letter-spacing:.14em; text-transform:uppercase; box-shadow:var(--tv2-shadow-cta); }
body.transcribe-v2 #restart-panel #restart-current .tv2-icon { width:18px; height:18px; }
body.transcribe-v2 #restart-panel #restart-current:hover:not(:disabled) { background:var(--tv2-accent-hover); box-shadow:var(--tv2-shadow-cta-hover); }
body.transcribe-v2 #restart-panel #restart-current:disabled { background:#cbd5e1; box-shadow:none; }
body.transcribe-v2 #restart-panel .tv2-restart-actions:has(#restart-current:disabled) #restart-cost { border-color:var(--tv2-line); color:var(--tv2-subtle); }
body.transcribe-v2 #restart-panel #restart-cost[hidden] + #restart-current { border-radius:10px; }
@media (max-width:600px) {
    body.transcribe-v2 #restart-panel { padding:16px; }
    body.transcribe-v2 #restart-panel #restart-cost:not([hidden]) { padding:0 12px; font-size:12px; }
    body.transcribe-v2 #restart-panel #restart-current { flex:1 1 auto; min-width:0; padding:0 14px; letter-spacing:.1em; }
}
@media (max-width:420px) {
    body.transcribe-v2 #restart-panel .tv2-restart-actions { flex-direction:column; align-items:stretch; }
    body.transcribe-v2 #restart-panel #restart-cost:not([hidden]) { justify-content:center; height:40px; border-right:1px solid #bfdbfe; border-bottom:0; border-radius:10px 10px 0 0; }
    body.transcribe-v2 #restart-panel #restart-current { border-radius:0 0 10px 10px; }
}

/* загрузка файла: карточка — иконка, имя, полоса с бегущей штриховкой, отмена (DOM прода: #upload-name, progress#progress, #cancel-upload) */
@keyframes tv2-stripes { to { background-position:24px 0; } }
@keyframes tv2-lift { 0%,100% { transform:translateY(1px); } 50% { transform:translateY(-2px); } }
body.transcribe-v2 #upload-progress:not([hidden]) { display:grid; grid-template-columns:44px minmax(0,1fr) 36px; grid-template-rows:auto auto; align-items:center; column-gap:14px; row-gap:10px; margin-top:20px; padding:16px 16px 18px; border:1px solid var(--tv2-line); border-radius:12px; background:#fff; box-shadow:0 1px 3px rgba(13,27,56,.04),0 4px 14px rgba(13,27,56,.05); }
body.transcribe-v2 #upload-progress::before { content:""; grid-column:1; grid-row:1 / 3; width:44px; height:44px; border-radius:10px; background:var(--tv2-tint-2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='%232563eb' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 16V4'/%3E%3Cpath d='m6 10 6-6 6 6'/%3E%3Cpath d='M4 20h16'/%3E%3C/svg%3E") center/22px no-repeat; animation:tv2-lift 1.4s ease-in-out infinite; }
body.transcribe-v2 #upload-name { grid-column:2; grid-row:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; overflow-wrap:normal; color:var(--tv2-ink); font-size:14px; font-weight:600; line-height:20px; }
body.transcribe-v2 #progress { grid-column:2; grid-row:2; -webkit-appearance:none; appearance:none; width:100%; height:8px; border:0; border-radius:99px; background:var(--tv2-line-2); overflow:hidden; }
body.transcribe-v2 #progress::-webkit-progress-bar { border-radius:99px; background:var(--tv2-line-2); }
body.transcribe-v2 #progress::-webkit-progress-value { border-radius:99px; background:linear-gradient(90deg,#3b82f6,var(--tv2-accent)); background-image:repeating-linear-gradient(-45deg,rgba(255,255,255,.18) 0 6px,transparent 6px 12px),linear-gradient(90deg,#3b82f6,var(--tv2-accent)); background-size:24px 100%,100% 100%; animation:tv2-stripes .8s linear infinite; transition:width .3s ease; }
body.transcribe-v2 #progress::-moz-progress-bar { border-radius:99px; background-image:repeating-linear-gradient(-45deg,rgba(255,255,255,.18) 0 6px,transparent 6px 12px),linear-gradient(90deg,#3b82f6,var(--tv2-accent)); background-size:24px 100%,100% 100%; animation:tv2-stripes .8s linear infinite; }
body.transcribe-v2 #cancel-upload { grid-column:3; grid-row:1 / 3; display:grid; place-items:center; width:36px; height:36px; padding:0; border:1px solid var(--tv2-line); border-radius:8px; background:#fff; color:var(--tv2-muted); font-size:20px; line-height:1; }
body.transcribe-v2 #cancel-upload:hover { border-color:#fecaca; background:#fef2f2; color:#dc2626; }
@media (prefers-reduced-motion:reduce) { body.transcribe-v2 #upload-progress::before, body.transcribe-v2 #progress::-webkit-progress-value, body.transcribe-v2 #progress::-moz-progress-bar { animation:none; } }
body.transcribe-v2 .tv2-preview-choice { display:flex; justify-content:center; align-items:center; gap:8px; font-size:13px; color:var(--tv2-ink-3); }
body.transcribe-v2 .tv2-preview-choice input { accent-color:var(--tv2-ink-3); }

/* ---------- список файлов: th моно-капс + линия 2px, цифры моно, бейджи статусов ---------- */
body.transcribe-v2 #files-section { margin-top:40px; }
body.transcribe-v2 .history #files-section { margin-top:0; }
body.transcribe-v2 .tv2-files-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:16px; }
body.transcribe-v2 .tv2-files-heading h2 { margin:0; padding:0; font-size:17px; line-height:1.3; font-weight:700; letter-spacing:-.01em; color:var(--tv2-ink); }
body.transcribe-v2 .tv2-search { display:flex; align-items:center; gap:8px; width:250px; max-width:55%; min-height:40px; padding:0 12px; border:1px solid var(--tv2-line); border-radius:8px; background:#fff; color:var(--tv2-subtle); }
body.transcribe-v2 .tv2-search:focus-within { border-color:var(--tv2-accent); box-shadow:0 0 0 3px rgba(37,99,235,.08); }
body.transcribe-v2 #file-search { width:100%; border:0; padding:8px 0; background:transparent; color:var(--tv2-ink); outline:none; }
body.transcribe-v2 .history .tv2-files-heading { justify-content:flex-end; }
body.transcribe-v2 .tv2-history-filters { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-bottom:16px; }
body.transcribe-v2 .tv2-filter-segments { display:flex; flex-wrap:wrap; gap:4px; padding:0; border-radius:0; background:none; }
body.transcribe-v2 .tv2-filter-segments button { min-height:32px; padding:5px 10px; border:1px solid var(--tv2-line); border-radius:4px; background:#fff; color:var(--tv2-subtle); font:700 10px/16px var(--tv2-mono); letter-spacing:.1em; text-transform:uppercase; }
body.transcribe-v2 .tv2-filter-segments button:hover { color:var(--tv2-ink); border-color:#cbd5e1; }
body.transcribe-v2 .tv2-filter-segments button[aria-pressed=true] { background:var(--tv2-hover); border-color:var(--tv2-subtle); color:var(--tv2-ink); box-shadow:none; }
body.transcribe-v2 .tv2-history-filters select { min-height:32px; max-width:100%; padding:5px 30px 5px 10px; border:1px solid var(--tv2-line); border-radius:4px; background-color:#fff; color:var(--tv2-muted); font:700 10px/16px var(--tv2-mono); letter-spacing:.1em; text-transform:uppercase; }
body.transcribe-v2 #history-sort { border:0; background:transparent; font:inherit; letter-spacing:inherit; text-transform:inherit; color:inherit; padding:4px 0; }
body.transcribe-v2 .uploaded-file-table { table-layout:fixed; width:100%; border-collapse:collapse; }
body.transcribe-v2 .uploaded-file-table thead, body.transcribe-v2 .uploaded-file-table thead tr, body.transcribe-v2 #uploaded-file-head th { background:none; }
body.transcribe-v2 #uploaded-file-head th { padding:10px 6px; border:0; border-bottom:2px solid var(--tv2-line); border-radius:0; color:var(--tv2-subtle); font:700 10px/1.4 var(--tv2-mono); letter-spacing:.08em; text-transform:uppercase; text-align:left; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
body.transcribe-v2 .tv2-select-all { display:inline-flex; align-items:center; gap:8px; cursor:pointer; }
body.transcribe-v2 .tv2-select-all span { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; } /* колонка чекбокса 32px: на компьютере подпись «Select all files» давала «…» — оставляем только для экранного диктора */
body.transcribe-v2 .uploaded-file-table .checkbox { width:32px; padding:8px 4px; }
body.transcribe-v2 .uploaded-file-table .checkbox input[type="checkbox"] { width:18px; height:18px; margin:0; padding:0; vertical-align:middle; accent-color:var(--tv2-ink-3); }
body.transcribe-v2 .uploaded-file-table .file-menu { width:36px; padding:0; }
body.transcribe-v2 .uploaded-file-table th.file-name, body.transcribe-v2 .uploaded-file-table td.file-name { width:auto; }
body.transcribe-v2 .uploaded-file-table th.file-date, body.transcribe-v2 .uploaded-file-table td.file-date { width:176px; }
body.transcribe-v2 .uploaded-file-table th.file-duration, body.transcribe-v2 .uploaded-file-table td.file-duration { width:92px; }
body.transcribe-v2 .uploaded-file-table .file-charge { width:92px; }
body.transcribe-v2 .uploaded-file-table th.file-status, body.transcribe-v2 .uploaded-file-table td.file-status { width:118px; }
body.transcribe-v2 .uploaded-file-table td { padding:12px 6px; vertical-align:middle; border-bottom:1px solid var(--tv2-line-2); color:var(--tv2-ink-3); }
body.transcribe-v2 .uploaded-file-table tbody tr:not(.tv2-file-group):hover > td { background:#fafbfd; }
body.transcribe-v2 .uploaded-file-table tbody tr.tv2-selected > td { background:var(--tv2-tint); }
body.transcribe-v2 #uploaded-file-list td.file-date, body.transcribe-v2 #uploaded-file-list td.file-duration, body.transcribe-v2 #uploaded-file-list td.file-charge { font:500 12px/1.4 var(--tv2-mono); font-variant-numeric:tabular-nums; color:var(--tv2-muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
/* списано — с жетоном кредитов «L», как в шапке сайта (вместо подписи) */
body.transcribe-v2 .uploaded-file-table td.file-charge::before { content:'L'; display:inline-grid; place-items:center; width:14px; height:14px; margin-right:6px; border-radius:3px; background:var(--tv2-accent); color:#fff; font:700 9px/1 var(--tv2-mono); vertical-align:-2px; }
body.transcribe-v2 .uploaded-file-table .file-link { display:block; padding:0; color:var(--tv2-ink); font-size:13.5px; font-weight:600; line-height:20px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; text-decoration:none; }
body.transcribe-v2 .uploaded-file-table .file-link:hover { color:var(--tv2-accent); }
body.transcribe-v2 .tv2-model-name { display:block; padding:2px 0 0; color:var(--tv2-subtle); font-size:11.5px; line-height:16px; }
body.transcribe-v2 .tv2-file-group td { padding:20px 6px 8px; border-bottom:1px solid var(--tv2-line); background:none; color:var(--tv2-ink-3); font:700 10px/1.4 var(--tv2-mono); letter-spacing:.08em; text-transform:uppercase; }
/* статусы — бейджи моно-капсом; «готово» нейтральное (SG не использует зелёный успех) */
body.transcribe-v2 .tv2-status { display:inline-flex; align-items:center; gap:6px; max-width:100%; padding:2px 7px; border-radius:3px; background:var(--tv2-paper); box-shadow:inset 0 0 0 1px #edf2f7; color:var(--tv2-subtle); font:700 9.5px/16px var(--tv2-mono); letter-spacing:.06em; text-transform:uppercase; white-space:normal; }
body.transcribe-v2 .tv2-status-done { background:var(--tv2-hover); box-shadow:none; color:var(--tv2-ink-3); }
body.transcribe-v2 .tv2-status-preview { background:rgba(245,158,11,.08); box-shadow:inset 0 0 0 1px rgba(245,158,11,.30); color:#b45309; }
body.transcribe-v2 .tv2-status-error { background:#fef2f2; box-shadow:inset 0 0 0 1px #fecaca; color:#dc2626; }
body.transcribe-v2 .tv2-status-empty { background:var(--tv2-paper); box-shadow:inset 0 0 0 1px var(--tv2-line); color:var(--tv2-muted); }
body.transcribe-v2 .tv2-status-processing, body.transcribe-v2 .tv2-status-waiting, body.transcribe-v2 .tv2-status-preparing { background:#eff4ff; box-shadow:inset 0 0 0 1px #bfdbfe; color:var(--tv2-accent); }
body.transcribe-v2 .tv2-list-footer { display:flex; justify-content:space-between; gap:12px; align-items:center; margin-top:18px; color:var(--tv2-subtle); font:500 11px/1.4 var(--tv2-mono); letter-spacing:.04em; }
body.transcribe-v2 #all-history { color:var(--tv2-accent); font:600 12px/1.4 var(--tv2-mono); letter-spacing:.02em; text-decoration:none; }
body.transcribe-v2 #all-history:hover { text-decoration:underline; text-decoration-thickness:1.5px; text-underline-offset:3px; }
body.transcribe-v2 #load-more, body.transcribe-v2 #reset-filters { min-height:40px; padding:9px 14px; border:1px solid var(--tv2-line); border-radius:8px; background:#fff; color:var(--tv2-ink-3); font:700 10px/1.4 var(--tv2-mono); letter-spacing:.1em; text-transform:uppercase; }
body.transcribe-v2 #load-more:hover, body.transcribe-v2 #reset-filters:hover { border-color:var(--tv2-accent); color:var(--tv2-accent); background:rgba(37,99,235,.04); }
body.transcribe-v2 #empty-files { padding:32px 12px 14px; text-align:center; color:var(--tv2-muted); }
body.transcribe-v2 #reset-filters, body.transcribe-v2 #first-record { margin:0 auto 20px; }

/* ---------- результат ---------- */
body.transcribe-v2 .transResult .file-info { display:flex; flex-wrap:wrap; align-items:center; gap:6px 16px; margin:8px 0 20px; color:var(--tv2-muted); font:500 12px/1.5 var(--tv2-mono); letter-spacing:.01em; }
body.transcribe-v2 .file-info p { margin:0; padding:0; font:inherit; }
body.transcribe-v2 #result-model { display:inline-flex; gap:6px; align-items:center; padding:2px 0; border:0; border-bottom:1px dashed #cbd5e1; background:transparent; color:var(--tv2-ink-3); font:600 13px/1.4 Inter,system-ui,sans-serif; }
body.transcribe-v2 #result-model:hover { color:var(--tv2-accent); border-bottom-color:var(--tv2-accent); }
body.transcribe-v2 .tv2-result-model-wrap { position:relative; }
body.transcribe-v2 #result-model-details { position:absolute; top:100%; left:0; z-index:40; width:300px; max-width:calc(100vw - 32px); padding:16px; border:1px solid var(--tv2-line); border-radius:8px; background:#fff; box-shadow:var(--tv2-shadow-pop); font:400 13px/1.55 Inter,system-ui,sans-serif; color:var(--tv2-ink-3); }
body.transcribe-v2 #result-model-details p { margin:7px 0; padding:0; }
body.transcribe-v2 .tv2-billing-note { padding-top:10px; border-top:1px solid var(--tv2-line); font-family:var(--tv2-mono); font-size:12px; }
body.transcribe-v2 #result-preview-label { padding:2px 7px; border-radius:3px; background:rgba(245,158,11,.08); box-shadow:inset 0 0 0 1px rgba(245,158,11,.30); color:#b45309; font:700 9.5px/16px var(--tv2-mono); letter-spacing:.06em; text-transform:uppercase; }
body.transcribe-v2 #result-wait { padding:28px; border:1px solid var(--tv2-line); border-radius:10px; background:var(--tv2-paper); color:var(--tv2-ink-3); }
body.transcribe-v2 .tv2-result-toolbar { position:sticky; top:var(--tv2-header-height); z-index:20; display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin:0 -32px 12px; padding:12px 32px; border-block:1px solid var(--tv2-line-2); background:#fff; }
body.transcribe-v2 .tv2-result-actions { margin-left:auto; display:flex; align-items:center; gap:8px; }
body.transcribe-v2 .tv2-icon-button { display:grid; place-items:center; width:36px; height:36px; padding:0; border:1px solid var(--tv2-line); border-radius:8px; background:#fff; color:var(--tv2-muted); }
body.transcribe-v2 .tv2-icon-button:hover { border-color:#cbd5e1; color:var(--tv2-ink); background:var(--tv2-hover); }
body.transcribe-v2 .tv2-result-toolbar .goExp { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:36px; padding:0 14px; border:0; border-radius:8px; background:var(--tv2-accent); color:#fff; font:700 11px/1.4 var(--tv2-mono); letter-spacing:.08em; text-transform:uppercase; box-shadow:var(--tv2-shadow-cta); filter:none; }
body.transcribe-v2 .tv2-result-toolbar .goExp:hover { background:var(--tv2-accent-hover); box-shadow:var(--tv2-shadow-cta-hover); }
/* форматы TXT/SRT/VTT/CSV — малые сегменты моно-капсом, выбранное — светлая подсветка */
body.transcribe-v2 .tabsTnslt { display:flex; flex-wrap:wrap; gap:4px; margin:0; padding:0; border-radius:0; background:none; }
body.transcribe-v2 .tabsTnslt .tabFormat { min-height:32px; min-width:0; padding:5px 10px; border:1px solid var(--tv2-line); border-radius:4px; background:#fff; color:var(--tv2-subtle); font:700 10px/16px var(--tv2-mono); letter-spacing:.1em; text-transform:uppercase; box-shadow:none; }
body.transcribe-v2 .tabsTnslt .tabFormat:hover { color:var(--tv2-ink); border-color:#cbd5e1; }
body.transcribe-v2 .tabsTnslt .tabFormat.active, body.transcribe-v2 .tabsTnslt .tabFormat[aria-selected=true] { background:var(--tv2-hover); border-color:var(--tv2-subtle); color:var(--tv2-ink); box-shadow:none; }
body.transcribe-v2 #result-transcript { margin:0; padding:0; background:transparent; border:0; }
body.transcribe-v2 #result-transcript pre { margin:0; padding:16px; border:1px solid var(--tv2-line); border-radius:8px; background:var(--tv2-paper); color:var(--tv2-ink-3); font:500 12.5px/1.7 var(--tv2-mono); white-space:pre-wrap; overflow-wrap:anywhere; }
body.transcribe-v2 #txt-text { --tv2-speaker-column:160px; }
body.transcribe-v2 #txt-text.tv2-named-speakers { --tv2-speaker-column:160px; }
body.transcribe-v2 .tv2-phrase { padding:14px 12px; margin:0 -12px; border-bottom:1px solid var(--tv2-line-2); border-radius:8px; color:var(--tv2-ink-2); font-size:15px; line-height:1.65; column-gap:18px; text-align:left; word-spacing:normal; }
body.transcribe-v2 .tv2-phrase:hover { background:var(--tv2-paper); }
body.transcribe-v2 .tv2-phrase.tv2-active-phrase { background:var(--tv2-tint); }
body.transcribe-v2 .tv2-phrase-body, body.transcribe-v2 .tv2-named-speakers .tv2-phrase-body { border:0; padding:0; }
body.transcribe-v2 .tv2-phrase-text { text-align:left; }
body.transcribe-v2 .tv2-word { text-align:left; }
body.transcribe-v2 .tv2-word:hover, body.transcribe-v2 .tv2-word.playing { background:#dbeafe; color:var(--tv2-accent-active); }
body.transcribe-v2 .tv2-time-gutter { display:block; margin:0 0 4px; }
body.transcribe-v2 .tv2-phrase .tcode { color:var(--tv2-subtle); font:500 11px/1.4 var(--tv2-mono); letter-spacing:.02em; }
body.transcribe-v2 .tv2-phrase .tcode:hover { color:var(--tv2-accent); }
body.transcribe-v2 .tv2-speaker-controls { font-size:12px; gap:7px; }
body.transcribe-v2 .tv2-speaker-name { max-width:123px; min-height:30px; color:var(--tv2-ink); font-weight:600; }
body.transcribe-v2 .tv2-speaker-name:hover { color:var(--tv2-accent); }
body.transcribe-v2 .tv2-speaker-avatar { font-family:var(--tv2-mono); font-weight:700; }
body.transcribe-v2 #delete-submit { background:#dc2626; border-color:#dc2626; color:#fff; }
body.transcribe-v2 #delete-submit:hover { background:#b91c1c; border-color:#b91c1c; }
body.transcribe-v2 #result-menu-toggle, body.transcribe-v2 #result-menu-close { display:none; }
body.transcribe-v2 #subDesc { margin:40px 0 0; padding:0; border:0; }
body.transcribe-v2 #result-player .tv2-player-play, body.transcribe-v2 #result-player #player-play { background:var(--tv2-accent); box-shadow:var(--tv2-shadow-cta); }

/* ---------- меню строки, модалки ---------- */
body.transcribe-v2 .menu-dots { border-radius:6px; color:var(--tv2-muted); }
body.transcribe-v2 .menu-dots:hover, body.transcribe-v2 .context-menu.active .menu-dots { background:var(--tv2-hover); color:var(--tv2-ink); }
body.transcribe-v2 .menu-dropdown { padding:6px; border:1px solid var(--tv2-line); border-radius:8px; background:#fff; box-shadow:var(--tv2-shadow-pop); }
body.transcribe-v2 .menu-dropdown button { min-height:40px; font-size:13.5px; }
body.transcribe-v2 .menu-dropdown .tv2-file-action { display:flex; align-items:center; gap:10px; width:100%; margin:0; padding:9px 12px; border:0; border-radius:6px; background:transparent; color:var(--tv2-ink-2); line-height:20px; text-align:left; }
body.transcribe-v2 .menu-dropdown .tv2-file-action .tv2-icon { width:18px; height:18px; flex:0 0 18px; color:var(--tv2-subtle); }
body.transcribe-v2 .menu-dropdown .tv2-file-action span { min-width:0; overflow-wrap:anywhere; }
body.transcribe-v2 .menu-dropdown .tv2-file-action:hover, body.transcribe-v2 .menu-dropdown .tv2-file-action:focus-visible { background:var(--tv2-hover); color:var(--tv2-ink); }
body.transcribe-v2 .menu-dropdown .tv2-file-action:hover .tv2-icon { color:var(--tv2-ink); }
body.transcribe-v2 .menu-dropdown .tv2-file-action:focus-visible { outline:2px solid var(--tv2-accent); outline-offset:-2px; }
body.transcribe-v2 .menu-dropdown .tv2-file-action.mDelete { margin-top:4px; border-top:1px solid var(--tv2-line-2); border-radius:0 0 6px 6px; color:#dc2626; }
body.transcribe-v2 .menu-dropdown .tv2-file-action.mDelete .tv2-icon { color:#dc2626; }
body.transcribe-v2 .menu-dropdown .tv2-file-action.mDelete:hover, body.transcribe-v2 .menu-dropdown .tv2-file-action.mDelete:focus-visible { background:#fef2f2; color:#b91c1c; }
body.transcribe-v2 .tv2-menu-title, body.transcribe-v2 .tv2-menu-close { display:none; }
body.transcribe-v2 .tv2-restart-confirm { border:0; border-radius:12px; box-shadow:0 20px 50px rgba(15,23,42,.18); color:var(--tv2-ink-3); }
body.transcribe-v2 .tv2-restart-confirm::backdrop { background:rgba(15,23,42,.35); }
body.transcribe-v2 .tv2-restart-confirm h2 { font-size:18px; font-weight:700; letter-spacing:-.02em; color:var(--tv2-ink); }
body.transcribe-v2 #restart-confirm-cost { font:600 12px/1.4 var(--tv2-mono); color:var(--tv2-ink-3); }
body.transcribe-v2 .tv2-admin-score-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
body.transcribe-v2 .tv2-admin-field select { width:100%; min-height:44px; padding:10px 12px; border:1px solid var(--tv2-line); border-radius:8px; background:#fff; color:var(--tv2-ink-2); font:inherit; }

/* ---------- переключатели (Вид) ---------- */
body.transcribe-v2 .tv2-switch { color:var(--tv2-ink-3); }
body.transcribe-v2 .tv2-display-settings .tv2-switch { display:flex; align-items:center; justify-content:space-between; gap:10px; min-height:36px; padding:0 12px; font-size:14px; }
body.transcribe-v2 .tv2-display-settings .tv2-switch input { appearance:none; position:relative; width:30px; height:18px; flex:0 0 30px; border:0; border-radius:10px; margin:0; padding:0; background:#cbd5e1; cursor:pointer; }
body.transcribe-v2 .tv2-display-settings .tv2-switch input::after { content:''; position:absolute; width:14px; height:14px; border-radius:50%; background:#fff; top:2px; left:2px; box-shadow:0 1px 2px rgba(15,23,42,.15); }
body.transcribe-v2 .tv2-display-settings .tv2-switch input:checked { background:var(--tv2-accent); }
body.transcribe-v2 .tv2-display-settings .tv2-switch input:checked::after { transform:translateX(12px); }
body.transcribe-v2 .tv2-display-settings #menu-timestamps { position:relative; display:block; width:30px; height:18px; flex:0 0 30px; margin:0; }

@media (max-width:1100px) and (min-width:961px) {
    body.transcribe-v2 .tv2-workspace { grid-template-columns:minmax(0,1fr) 230px; gap:18px; }
    body.transcribe-v2 .contnr.newgrid .ATTcontent { padding:24px; }
    body.transcribe-v2 .tv2-result-toolbar { padding:12px 24px; margin-inline:-24px; }
    body.transcribe-v2 .uploaded-file-table th.file-date, body.transcribe-v2 .uploaded-file-table td.file-date { width:120px; }
    body.transcribe-v2 .uploaded-file-table th.file-duration, body.transcribe-v2 .uploaded-file-table td.file-duration { width:80px; }
}
@media (max-width:960px) {
    body.transcribe-v2 .tv2-workspace { grid-template-columns:minmax(0,1fr); gap:20px; }
    body.transcribe-v2 .contnr.newgrid .ATTside#menuToggle { display:none; }
    body.transcribe-v2.tv2-node .contnr.newgrid .ATTside#menuToggle { display:block; grid-column:1; grid-row:2; position:static; max-height:none; min-height:0; height:auto; overflow:visible; }
    body.transcribe-v2 .ATTmenu#menu { height:auto; min-height:0; }
    body.transcribe-v2 .tv2-mobile-nav { display:flex; align-items:center; justify-content:flex-end; gap:8px; flex-wrap:wrap; margin:0 0 16px; }
    body.transcribe-v2 .tv2-mobile-nav a { display:inline-flex; align-items:center; gap:6px; min-height:36px; padding:6px 10px; border:1px solid var(--tv2-line); border-radius:6px; background:#fff; color:var(--tv2-ink-3); font-size:13px; text-decoration:none; }
    body.transcribe-v2 .tv2-mobile-nav a:hover { border-color:#cbd5e1; color:var(--tv2-ink); }
    body.transcribe-v2 .tv2-mobile-nav .getTokens { font:600 11px/1.4 var(--tv2-mono); letter-spacing:.02em; color:var(--tv2-ink-2); }
    body.transcribe-v2 .tv2-display-settings { display:flex; flex-wrap:wrap; justify-content:space-between; gap:4px 12px; width:100%; padding:0; border:0; margin:0; }
    body.transcribe-v2 .tv2-display-settings h2 { display:none; }
    body.transcribe-v2 .tv2-display-settings .tv2-switch { flex-direction:row-reverse; justify-content:flex-end; min-width:0; min-height:44px; padding:0; gap:6px; font-size:12px; }
    body.transcribe-v2 .tv2-display-settings #menu-timestamps { margin:0; }
    body.transcribe-v2 .tv2-result-toolbar { top:var(--tv2-header-height); }
    /* админ на мобильном: admin-shell.css ставит админ-пункты над карточкой — делаем их строкой чипов, а не столбиком */
    body.transcribe-v2.tv2-has-admin:not(.tv2-node) .contnr.newgrid .ATTside .tv2-admin-section .tv2-side-nav { flex-direction:row; flex-wrap:wrap; gap:6px; }
    body.transcribe-v2.tv2-has-admin:not(.tv2-node) .contnr.newgrid .ATTside .tv2-admin-section .tv2-side-nav a { min-height:34px; padding:5px 10px; gap:6px; border:1px solid var(--tv2-line); font-size:13px; }
    body.transcribe-v2.tv2-has-admin:not(.tv2-node) .contnr.newgrid .ATTside .tv2-admin-section .tv2-side-nav a .tv2-icon { width:16px; height:16px; }
    body.transcribe-v2 .contnr.newgrid .ATTside .tv2-balance-section { margin-top:16px; }
}
@media (max-width:600px) {
    body.transcribe-v2 { font-size:15px; }
    body.transcribe-v2 .contnr.morda.newgrid.nofixbox { padding:0 12px; }
    body.transcribe-v2 .contnr.newgrid .ATTcontent { padding:20px 16px 24px; border-radius:12px; }
    body.transcribe-v2 .contnr.newgrid.morda .ATTcontent .main-h1 { font-size:22px; line-height:1.25; }
    body.transcribe-v2 .tv2-page-heading { margin-bottom:10px; }
    body.transcribe-v2 .tv2-landing-description { font-size:14px; margin-bottom:16px; }
    body.transcribe-v2 .tv2-source-tabs button { min-height:44px; padding:8px 6px; gap:5px; font-size:13px; }
    body.transcribe-v2 .tv2-source-tabs button .tv2-icon { display:none; }
    body.transcribe-v2 #source-panel-upload .drop-zone { min-height:220px; padding:22px 14px; }
    body.transcribe-v2 .drop-zone .dragtext strong { font-size:18px; line-height:24px; }
    body.transcribe-v2 .dragtext > span { font-size:12.5px; line-height:20px; }
    body.transcribe-v2 .drop-zone .dragtext .tv2-drop-desktop { display:none; }
    body.transcribe-v2 .drop-zone .dragtext .tv2-drop-mobile { display:inline; }
    body.transcribe-v2 .tv2-upload-steps { grid-template-columns:minmax(0,1fr); }
    body.transcribe-v2 .tv2-upload-steps > div { display:flex; gap:10px; padding:10px 12px; }
    body.transcribe-v2 .tv2-upload-steps > div + div { border-left:0; border-top:1px solid var(--tv2-line-2); }
    body.transcribe-v2 .tv2-upload-steps small { flex:0 0 52px; margin:0; }
    body.transcribe-v2 .tv2-recorder { min-height:200px; padding:24px 14px; }
    body.transcribe-v2 #source-panel-youtube:not([hidden]) { min-height:0; padding:76px 14px 20px; }
    body.transcribe-v2 #source-panel-youtube .tv2-youtube-input { flex-direction:column; }
    body.transcribe-v2 #youtube-check { width:100%; }
    body.transcribe-v2 #upload-settings { grid-template-columns:minmax(0,1fr); gap:14px; padding:14px; }
    body.transcribe-v2 .tv2-field-help { min-width:36px; min-height:36px; }
    body.transcribe-v2 .tv2-submit-row #pending-summary { flex:auto; }
    body.transcribe-v2 #transcribe-button { width:100%; min-width:0; min-height:52px; padding:0 16px; flex-wrap:wrap; row-gap:6px; letter-spacing:.18em; }
    body.transcribe-v2 #token-estimate { flex:0 1 auto; }
    body.transcribe-v2 .tv2-files-heading { gap:10px; flex-wrap:wrap; }
    body.transcribe-v2 .tv2-search { max-width:100%; flex:1; min-width:140px; }
    body.transcribe-v2 .tv2-filter-segments { width:100%; }
    body.transcribe-v2 .tv2-filter-segments button { flex:1; min-height:40px; padding:6px 4px; letter-spacing:.06em; }
    body.transcribe-v2 .tv2-history-filters select { flex:1; min-width:0; max-width:100%; min-height:40px; }
    body.transcribe-v2 .uploaded-file-table, body.transcribe-v2 .uploaded-file-table tbody { display:block; }
    body.transcribe-v2 .uploaded-file-table thead { display:block; }
    body.transcribe-v2 .uploaded-file-table thead tr { display:block; }
    body.transcribe-v2 .uploaded-file-table thead th { border-bottom:0; }
    body.transcribe-v2 .uploaded-file-table thead th:not(.checkbox) { display:none; }
    body.transcribe-v2 .uploaded-file-table tbody tr:not(.tv2-file-group) { position:relative; display:grid; grid-template-columns:26px minmax(0,1fr) auto 32px; align-items:center; gap:6px 8px; height:auto; padding:14px 0; border-bottom:1px solid var(--tv2-line-2); }
    body.transcribe-v2 .uploaded-file-table tbody td { width:auto; border:0; padding:0; min-width:0; }
    body.transcribe-v2 .uploaded-file-table tbody tr:not(.tv2-file-group) > td { width:auto; height:auto; padding:0; white-space:normal; overflow:visible; text-align:left; background:none; }
    body.transcribe-v2 .uploaded-file-table tbody tr.tv2-selected { background:var(--tv2-tint); }
    body.transcribe-v2 .uploaded-file-table tbody tr .checkbox { grid-column:1; grid-row:1 / 4; align-self:start; padding:2px 0 0; }
    body.transcribe-v2 .uploaded-file-table .file-name { grid-column:2 / 4; grid-row:1; }
    body.transcribe-v2 .uploaded-file-table .file-link { font-size:14px; line-height:21px; white-space:normal; overflow-wrap:anywhere; }
    body.transcribe-v2 #uploaded-file-head th { border-bottom:0; }
    body.transcribe-v2 #uploaded-file-head th.checkbox { width:auto; overflow:visible; }
    body.transcribe-v2 .tv2-select-all span { position:static; width:auto; height:auto; overflow:visible; clip:auto; } /* на телефоне колонок нет — подпись нужна */
    body.transcribe-v2 #uploaded-file-list td.file-date { display:block; grid-column:2; grid-row:2; white-space:normal; overflow:visible; } /* старый мобильный CSS сайта прячет дату и длительность */
    body.transcribe-v2 #uploaded-file-list td.file-charge { grid-column:3; grid-row:2; justify-self:end; }
    body.transcribe-v2 .transList:not(.history) #uploaded-file-list td.file-date { grid-column:2 / 4; } /* без «Списано» дата занимает строку целиком */
    body.transcribe-v2 #uploaded-file-list td.file-duration { display:block; grid-column:2; grid-row:3; }
    body.transcribe-v2 #uploaded-file-list td.file-status { grid-column:3; grid-row:3; justify-self:end; }
    body.transcribe-v2 .uploaded-file-table .file-menu { grid-column:4; grid-row:1 / 3; align-self:start; }
    body.transcribe-v2 .uploaded-file-table .menu-dots { min-height:44px; width:32px; }
    body.transcribe-v2 .tv2-file-group { display:block; }
    body.transcribe-v2 .tv2-file-group td { display:block; padding:20px 0 8px; }
    body.transcribe-v2 .tv2-result-toolbar { margin-inline:-16px; padding:10px 16px; gap:10px; top:var(--tv2-header-height); }
    body.transcribe-v2 #result-tabs { width:100%; display:flex; }
    body.transcribe-v2 #result-tabs button { flex:1; min-width:0; min-height:40px; }
    body.transcribe-v2 .tv2-result-actions { width:100%; justify-content:flex-start; }
    body.transcribe-v2 .tv2-result-actions .goExp { margin-left:auto; min-height:44px; }
    body.transcribe-v2 .tv2-result-actions .tv2-icon-button { width:44px; height:44px; }
    body.transcribe-v2 #txt-text .tv2-phrase { display:flex; flex-direction:column; gap:8px; padding:14px 8px; margin-inline:-8px; font-size:15px; line-height:1.7; }
    body.transcribe-v2 .tv2-speaker-name { max-width:none; white-space:normal; overflow-wrap:anywhere; }
    body.transcribe-v2 .tv2-speaker-controls { max-width:100%; }
    body.transcribe-v2 .tv2-phrase-body { width:100%; }
    body.transcribe-v2 #result-model-details { position:fixed; inset:auto 16px calc(var(--tv2-player-height,90px) + 12px); width:auto; max-height:55dvh; overflow:auto; }
    body.transcribe-v2 #file-menu-backdrop { position:fixed; inset:0; z-index:100010; background:rgba(15,23,42,.30); }
    body.transcribe-v2 .context-menu.active { z-index:auto; }
    body.transcribe-v2 .context-menu.active .menu-dropdown { position:fixed; inset:auto 0 0; z-index:100011; width:100%; max-width:none; max-height:70dvh; overflow:auto; border-radius:12px 12px 0 0; padding:16px 16px max(20px,env(safe-area-inset-bottom)); }
    body.transcribe-v2 .menu-dropdown button { min-height:48px; width:100%; }
    body.transcribe-v2 .menu-dropdown .tv2-menu-close { display:flex; position:absolute; right:12px; top:8px; width:44px; padding:12px; background:none; }
    body.transcribe-v2 .tv2-menu-title { display:block; padding:0 40px 12px 4px; overflow-wrap:anywhere; font-weight:600; color:var(--tv2-ink); }
    body.transcribe-v2 .tv2-list-footer { flex-wrap:wrap; }
    body.transcribe-v2 .tv2-admin-score-grid { grid-template-columns:minmax(0,1fr); }
}

/* Quick export is available beside the transcript on desktop. */
@media (max-width:960px) {
    body.transcribe-v2 .contnr.newgrid .ATTside .tv2-quick-export { display:none; }
}

/* Result controls meet the 56px shared navigation without a text-revealing gap. */
@media (min-width:961px) {
    body.transcribe-v2.tv2-node .contnr.newgrid .ATTside#menuToggle,
    body.transcribe-v2.tv2-has-admin.tv2-node .contnr.newgrid .ATTside#menuToggle { top:var(--tv2-header-height); }
}

/* Compact desktop result sidebar; keep all controls above the player. */
@media (min-width:961px) {
    body.transcribe-v2.tv2-node { --tv2-sidebar-player-space:0px; }
    body.transcribe-v2.tv2-node.tv2-player-visible { --tv2-sidebar-player-space:var(--tv2-player-height,100px); }
    body.transcribe-v2.tv2-node .contnr.newgrid .ATTside#menuToggle {
        height:auto; min-height:0; max-height:calc(100dvh - var(--tv2-header-height,56px) - var(--tv2-sidebar-player-space) - 12px);
        overflow-y:auto; scrollbar-width:thin; padding:16px;
    }
    body.transcribe-v2.tv2-node .ATTmenu#menu { height:auto; min-height:0; }
    body.transcribe-v2.tv2-node .contnr.newgrid .ATTside .tv2-side-section { margin-top:12px; padding-top:12px; }
    body.transcribe-v2.tv2-node .contnr.newgrid .ATTside .tv2-side-section h2 { margin-bottom:4px; }
    body.transcribe-v2.tv2-node .contnr.newgrid .ATTside .tv2-side-action { margin-top:0; }
    body.transcribe-v2 .tv2-quick-export-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:2px 6px; }
    body.transcribe-v2 .contnr.newgrid .ATTside .tv2-quick-export-grid .tv2-side-action { min-width:0; min-height:40px; padding:8px 12px; }
}
